diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..297b91976a8 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,82 @@ +# CODEOWNERS file +# +# This file is used to describe who owns what in this repository. This file does not +# replace `meta.maintainers` but is instead used for other things than derivations +# and modules, like documentation, package sets, and other assets. +# +# For documentation on this file, see https://help.github.com/articles/about-codeowners/ +# Mentioned users will get code review requests. + +# This file +/.github/CODEOWNERS @edolstra + +# Boostraping and core infra +/pkgs/stdenv @edolstra +/pkgs/build-support/cc-wrapper @edolstra + +# Libraries +/lib @edolstra @nbp + +# Nixpkgs Internals +/default.nix @nbp +/pkgs/top-level/default.nix @nbp +/pkgs/top-level/impure.nix @nbp +/pkgs/top-level/stage.nix @nbp + +# NixOS Internals +/nixos/default.nix @nbp +/nixos/lib/from-env.nix @nbp +/nixos/lib/eval-config.nix @nbp +/nixos/doc/manual/configuration/abstractions.xml @nbp +/nixos/doc/manual/configuration/config-file.xml @nbp +/nixos/doc/manual/configuration/config-syntax.xml @nbp +/nixos/doc/manual/configuration/modularity.xml @nbp +/nixos/doc/manual/development/assertions.xml @nbp +/nixos/doc/manual/development/meta-attributes.xml @nbp +/nixos/doc/manual/development/option-declarations.xml @nbp +/nixos/doc/manual/development/option-def.xml @nbp +/nixos/doc/manual/development/option-types.xml @nbp +/nixos/doc/manual/development/replace-modules.xml @nbp +/nixos/doc/manual/development/writing-modules.xml @nbp +/nixos/doc/manual/man-nixos-option.xml @nbp +/nixos/modules/installer/tools/nixos-option.sh @nbp + +# Python-related code and docs +/pkgs/top-level/python-packages.nix @FRidh +/pkgs/development/interpreters/python @FRidh +/pkgs/development/python-modules @FRidh +/doc/languages-frameworks/python.md @FRidh + +# Haskell +/pkgs/development/compilers/ghc @peti +/pkgs/development/haskell-modules @peti +/pkgs/development/haskell-modules/default.nix @peti +/pkgs/development/haskell-modules/generic-builder.nix @peti +/pkgs/development/haskell-modules/hoogle.nix @peti + +# R +/pkgs/applications/science/math/R @peti +/pkgs/development/r-modules @peti + +# Ruby +/pkgs/development/interpreters/ruby @zimbatm +/pkgs/development/ruby-modules @zimbatm + +# Darwin-related +/pkgs/stdenv/darwin @NixOS/darwin-maintainers +/pkgs/os-specific/darwin @NixOS/darwin-maintainers + +# Beam-related (Erlang, Elixir, LFE, etc) +/pkgs/development/beam-modules @gleber +/pkgs/development/interpreters/erlang @gleber +/pkgs/development/interpreters/lfe @gleber +/pkgs/development/interpreters/elixir @gleber +/pkgs/development/tools/build-managers/rebar @gleber +/pkgs/development/tools/build-managers/rebar3 @gleber +/pkgs/development/tools/erlang @gleber + +# Jetbrains +/pkgs/applications/editors/jetbrains @edwtjo + +# Eclipse +/pkgs/applications/editors/eclipse @rycee diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 14f60b936f8..41e85bd5ac4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,7 +15,7 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license. * Format the commits in the following way: ``` - (pkg-name | service-name): (from -> to | init at version | refactor | etc) + (pkg-name | nixos/): (from -> to | init at version | refactor | etc) (Motivation for change. Additional information.) ``` @@ -23,20 +23,23 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license. Examples: * nginx: init at 2.0.1 - * firefox: 3.0 -> 3.1.1 - * hydra service: add bazBaz option + * firefox: 54.0.1 -> 55.0 + * nixos/hydra: add bazBaz option Dual baz behavior is needed to do foo. - * nginx service: refactor config generation + * nixos/nginx: refactor config generation The old config generation system used impure shell scripts and could break in specific circumstances (see #1234). * `meta.description` should: - * Be capitalized - * Not start with the package name - * Not have a dot at the end + * Be capitalized. + * Not start with the package name. + * Not have a period at the end. +* `meta.license` must be set and fit the upstream license. + * If there is no upstream license, `meta.license` should default to `stdenv.lib.licenses.unfree`. +* `meta.maintainers` must be set. -See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes). +See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes). ## Writing good commit messages diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 5d99147051f..756a2a30f0c 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -11,3 +11,4 @@ * System: (NixOS: `nixos-version`, Ubuntu/Fedora: `lsb_release -a`, ...) * Nix version: (run `nix-env --version`) * Nixpkgs version: (run `nix-instantiate --eval '' -A lib.nixpkgsVersion`) +* Sandboxing enabled: (run `grep build-use-sandbox /etc/nix/nix.conf`) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3482ae16e26..75db8e1377c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,14 +3,14 @@ ###### Things done -- [ ] Tested using sandboxing - ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, - or option `build-use-sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) - on non-NixOS) + + +- [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `build-use-sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS) - Built on platform(s) - [ ] NixOS - [ ] macOS - - [ ] Linux + - [ ] other Linux distributions +- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests)) - [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run "nox-review wip"` - [ ] Tested execution of all binary files (usually in `./result/bin/`) - [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md). diff --git a/.mention-bot b/.mention-bot deleted file mode 100644 index 33c7e41c1dc..00000000000 --- a/.mention-bot +++ /dev/null @@ -1,14 +0,0 @@ -{ - "userBlacklist": [ - "civodul", - "jhasse", - "shlevy", - "bbenoist" - ], - "alwaysNotifyForPaths": [ - { "name": "FRidh", "files": ["pkgs/top-level/python-packages.nix", "pkgs/development/interpreters/python/*", "pkgs/development/python-modules/*" ] }, - { "name": "LnL7", "files": ["pkgs/stdenv/darwin/*", "pkgs/os-specific/darwin/*"] }, - { "name": "copumpkin", "files": ["pkgs/stdenv/darwin/*", "pkgs/os-specific/darwin/apple-source-releases/*"] } - ], - "fileBlacklist": ["pkgs/top-level/all-packages.nix"] -} diff --git a/.travis.yml b/.travis.yml index 2bd784ed30a..e746d390e76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,20 +12,24 @@ matrix: script: - ./maintainers/scripts/travis-nox-review-pr.sh nixpkgs-verify nixpkgs-manual nixpkgs-tarball nixpkgs-unstable - ./maintainers/scripts/travis-nox-review-pr.sh nixos-options nixos-manual + env: + - BUILD_TYPE="Test Nixpkgs evaluation & NixOS manual build" - os: linux sudo: required dist: trusty before_script: - sudo mount -o remount,exec,size=2G,mode=755 /run/user script: ./maintainers/scripts/travis-nox-review-pr.sh nox pr + env: + - BUILD_TYPE="Build affected packages (Linux)" - os: osx osx_image: xcode7.3 script: ./maintainers/scripts/travis-nox-review-pr.sh nox pr + env: + - BUILD_TYPE="Build affected packages (macOS)" env: global: - GITHUB_TOKEN=5edaaf1017f691ed34e7f80878f8f5fbd071603f notifications: - email: - on_success: never - on_failure: change + email: false diff --git a/.version b/.version index 2fdad9f4058..a88d2ca3231 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -17.09 +18.03 diff --git a/README.md b/README.md index 1d5fbd218e2..64cfb25eac3 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,12 @@ build daemon as so-called channels. To get channel information via git, add ``` For stability and maximum binary package support, it is recommended to maintain -custom changes on top of one of the channels, e.g. `nixos-17.03` for the latest +custom changes on top of one of the channels, e.g. `nixos-17.09` for the latest release and `nixos-unstable` for the latest successful build of master: ``` % git remote update channels -% git rebase channels/nixos-17.03 +% git rebase channels/nixos-17.09 ``` For pull-requests, please rebase onto nixpkgs `master`. @@ -30,13 +30,13 @@ For pull-requests, please rebase onto nixpkgs `master`. * [Documentation (Nix Expression Language chapter)](https://nixos.org/nix/manual/#ch-expression-language) * [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/) * [Manual (NixOS)](https://nixos.org/nixos/manual/) -* [Nix Wiki](https://nixos.org/wiki/) (deprecated, see milestone ["Move the Wiki!"](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Move+the+wiki%21%22)) +* [Community maintained wiki](https://nixos.wiki/) * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined) -* [Continuous package builds for 17.03 release](https://hydra.nixos.org/jobset/nixos/release-17.03) +* [Continuous package builds for 17.09 release](https://hydra.nixos.org/jobset/nixos/release-17.09) * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents) -* [Tests for 17.03 release](https://hydra.nixos.org/job/nixos/release-17.03/tested#tabs-constituents) +* [Tests for 17.09 release](https://hydra.nixos.org/job/nixos/release-17.09/tested#tabs-constituents) Communication: -* [Mailing list](http://lists.science.uu.nl/mailman/listinfo/nix-dev) +* [Mailing list](https://groups.google.com/forum/#!forum/nix-devel) * [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos) diff --git a/doc/coding-conventions.xml b/doc/coding-conventions.xml index f89437af445..0776e70f14e 100644 --- a/doc/coding-conventions.xml +++ b/doc/coding-conventions.xml @@ -254,7 +254,7 @@ bound to the variable name e2fsprogs in dash) — e.g., "hello-0.3.1rc2". If a package is not a release but a commit from a repository, then - the version part of the name must be the date of that + the version part of the name must be the date of that (fetched) commit. The date must be in "YYYY-MM-DD" format. Also append "unstable" to the name - e.g., "pkgname-unstable-2014-09-23". @@ -365,7 +365,7 @@ splitting up an existing category. If it’s a (set of) tool(s): - (A tool is a relatively small program, especially one intented + (A tool is a relatively small program, especially one intended to be used non-interactively.) @@ -456,7 +456,7 @@ splitting up an existing category. If it’s a window manager: - applications/window-managers (e.g. awesome, compiz, stumpwm) + applications/window-managers (e.g. awesome, stumpwm) @@ -608,7 +608,7 @@ evaluate correctly.
Fetching Sources There are multiple ways to fetch a package source in nixpkgs. The - general guidline is that you should package sources with a high degree of + general guideline is that you should package sources with a high degree of availability. Right now there is only one fetcher which has mirroring support and that is fetchurl. Note that you should also prefer protocols which have a corresponding proxy environment variable. @@ -661,9 +661,9 @@ src = fetchFromGitHub {
Patches - Only patches that are unique to nixpkgs should be + Only patches that are unique to nixpkgs should be included in nixpkgs source. - Patches available online should be retrieved using + Patches available online should be retrieved using fetchpatch. diff --git a/doc/configuration.xml b/doc/configuration.xml index 56950e07ab5..55c5ea809d3 100644 --- a/doc/configuration.xml +++ b/doc/configuration.xml @@ -55,6 +55,10 @@ configuration file located at +Note that we are not able to test or build unfree software on Hydra +due to policy. Most unfree licenses prohibit us from either executing or +distributing the software. +
Installing broken packages @@ -227,7 +231,7 @@ packages via packageOverrides You can define a function called packageOverrides in your local -~/.config/nixpkgs/config.nix to overide nix packages. It +~/.config/nixpkgs/config.nix to override nix packages. It must be a function that takes pkgs as an argument and return modified set of packages. @@ -243,5 +247,218 @@ set of packages.
+
+ Declarative Package Management + +
+ Build an environment + + + Using packageOverrides, it is possible to manage + packages declaratively. This means that we can list all of our desired + packages within a declarative Nix expression. For example, to have + aspell, bc, + ffmpeg, coreutils, + gdb, nixUnstable, + emscripten, jq, + nox, and silver-searcher, we could + use the following in ~/.config/nixpkgs/config.nix: + + + +{ + packageOverrides = pkgs: with pkgs; { + myPackages = pkgs.buildEnv { + name = "my-packages"; + paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ]; + }; + }; +} + + + + To install it into our environment, you can just run nix-env -iA + nixpkgs.myPackages. If you want to load the packages to be built + from a working copy of nixpkgs you just run + nix-env -f. -iA myPackages. To explore what's been + installed, just look through ~/.nix-profile/. You can + see that a lot of stuff has been installed. Some of this stuff is useful + some of it isn't. Let's tell Nixpkgs to only link the stuff that we want: + + + +{ + packageOverrides = pkgs: with pkgs; { + myPackages = pkgs.buildEnv { + name = "my-packages"; + paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ]; + pathsToLink = [ "/share" "/bin" ]; + }; + }; +} + + + + pathsToLink tells Nixpkgs to only link the paths listed + which gets rid of the extra stuff in the profile. + /bin and /share are good + defaults for a user environment, getting rid of the clutter. If you are + running on Nix on MacOS, you may want to add another path as well, + /Applications, that makes GUI apps available. + + +
+ +
+ Getting documentation + + + After building that new environment, look through + ~/.nix-profile to make sure everything is there that + we wanted. Discerning readers will note that some files are missing. Look + inside ~/.nix-profile/share/man/man1/ to verify this. + There are no man pages for any of the Nix tools! This is because some + packages like Nix have multiple outputs for things like documentation (see + section 4). Let's make Nix install those as well. + + + +{ + packageOverrides = pkgs: with pkgs; { + myPackages = pkgs.buildEnv { + name = "my-packages"; + paths = [ aspell bc coreutils ffmpeg nixUnstable emscripten jq nox silver-searcher ]; + pathsToLink = [ "/share/man" "/share/doc" /bin" ]; + extraOutputsToInstall = [ "man" "doc" ]; + }; + }; +} + + + + This provides us with some useful documentation for using our packages. + However, if we actually want those manpages to be detected by man, we need + to set up our environment. This can also be managed within Nix + expressions. + + + +{ + packageOverrides = pkgs: with pkgs; rec { + myProfile = writeText "my-profile" '' +export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin +export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man + ''; + myPackages = pkgs.buildEnv { + name = "my-packages"; + paths = [ + (runCommand "profile" {} '' +mkdir -p $out/etc/profile.d +cp ${myProfile} $out/etc/profile.d/my-profile.sh + '') + aspell + bc + coreutils + ffmpeg + man + nixUnstable + emscripten + jq + nox + silver-searcher + ]; + pathsToLink = [ "/share/man" "/share/doc" /bin" "/etc" ]; + extraOutputsToInstall = [ "man" "doc" ]; + }; + }; +} + + + + For this to work fully, you must also have this script sourced when you + are logged in. Try adding something like this to your + ~/.profile file: + + + +#!/bin/sh +if [ -d $HOME/.nix-profile/etc/profile.d ]; then + for i in $HOME/.nix-profile/etc/profile.d/*.sh; do + if [ -r $i ]; then + . $i + fi + done +fi + + + + Now just run source $HOME/.profile and you can starting + loading man pages from your environent. + + +
+ +
+ GNU info setup + + + Configuring GNU info is a little bit trickier than man pages. To work + correctly, info needs a database to be generated. This can be done with + some small modifications to our environment scripts. + + + +{ + packageOverrides = pkgs: with pkgs; rec { + myProfile = writeText "my-profile" '' +export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin +export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man +export INFOPATH=$HOME/.nix-profile/share/info:/nix/var/nix/profiles/default/share/info:/usr/share/info + ''; + myPackages = pkgs.buildEnv { + name = "my-packages"; + paths = [ + (runCommand "profile" {} '' +mkdir -p $out/etc/profile.d +cp ${myProfile} $out/etc/profile.d/my-profile.sh + '') + aspell + bc + coreutils + ffmpeg + man + nixUnstable + emscripten + jq + nox + silver-searcher + texinfoInteractive + ]; + pathsToLink = [ "/share/man" "/share/doc" "/share/info" "/bin" "/etc" ]; + extraOutputsToInstall = [ "man" "doc" "info" ]; + postBuild = '' + if [ -x $out/bin/install-info -a -w $out/share/info ]; then + shopt -s nullglob + for i in $out/share/info/*.info $out/share/info/*.info.gz; do + $out/bin/install-info $i $out/share/info/dir + done + fi + ''; + }; + }; +} + + + + postBuild tells Nixpkgs to run a command after building + the environment. In this case, install-info adds the + installed info pages to dir which is GNU info's default + root node. Note that texinfoInteractive is added to the + environment to give the install-info command. + + +
+ +
diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml index 06a8919c2a1..77d020afa2d 100644 --- a/doc/cross-compilation.xml +++ b/doc/cross-compilation.xml @@ -30,15 +30,16 @@
Platform parameters - The three GNU Autoconf platforms, build, host, and cross, are historically the result of much confusion. + The three GNU Autoconf platforms, build, host, and target, are historically the result of much confusion. clears this up somewhat but there is more to be said. An important advice to get out the way is, unless you are packaging a compiler or other build tool, just worry about the build and host platforms. Dealing with just two platforms usually better matches people's preconceptions, and in this case is completely correct. In Nixpkgs, these three platforms are defined as attribute sets under the names buildPlatform, hostPlatform, and targetPlatform. - All three are always defined at the top level, so one can get at them just like a dependency in a function that is imported with callPackage: - { stdenv, buildPlatform, hostPlatform, fooDep, barDep, .. }: ... + All three are always defined as attributes in the standard environment, and at the top level. That means one can get at them just like a dependency in a function that is imported with callPackage: + { stdenv, buildPlatform, hostPlatform, fooDep, barDep, .. }: ...buildPlatform..., or just off stdenv: + { stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform.... @@ -62,8 +63,8 @@ The "target platform" is black sheep. The other two intrinsically apply to all compiled software—or any build process with a notion of "build-time" followed by "run-time". The target platform only applies to programming tools, and even then only is a good for for some of them. - Briefly, GCC, Binutils, GHC, and certain other tools are written in such a way such that a single build can only compiler code for a single platform. - Thus, when building them, one must think ahead about what platforms they wish to use the tool to produce machine code for, and build binaries for each. + Briefly, GCC, Binutils, GHC, and certain other tools are written in such a way such that a single build can only compile code for a single platform. + Thus, when building them, one must think ahead about which platforms they wish to use the tool to produce machine code for, and build binaries for each. There is no fundamental need to think about the target ahead of time like this. @@ -79,13 +80,9 @@ - - If you dig around nixpkgs, you may notice there is also stdenv.cross. - This field defined as hostPlatform when the host and build platforms differ, but otherwise not defined at all. - This field is obsolete and will soon disappear—please do not use it. - - The exact scheme these fields is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up. + The exact schema these fields follow is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up. + You can see examples of ones used in practice in lib.systems.examples; note how they are not all very consistent. For now, here are few fields can count on them containing: @@ -118,8 +115,27 @@ This is a nix representation of a parsed LLVM target triple with white-listed components. This can be specified directly, or actually parsed from the config. [Technically, only one need be specified and the others can be inferred, though the precision of inference may not be very good.] - See lib.systems.parse for the exact representation, along with some is*predicates. - These predicates are superior to the ones in stdenv as they aren't tied to the build platform (host, as previously discussed, would be a saner default). + See lib.systems.parse for the exact representation. + + + + + libc + + + This is a string identifying the standard C library used. + Valid identifiers include "glibc" for GNU libc, "libSystem" for Darwin's Libsystem, and "uclibc" for µClibc. + It should probably be refactored to use the module system, like parse. + + + + + is* + + + These predicates are defined in lib.systems.inspect, and slapped on every platform. + They are superior to the ones in stdenv as they force the user to be explicit about which platform they are inspecting. + Please use these instead of those. @@ -128,7 +144,7 @@ This is, quite frankly, a dumping ground of ad-hoc settings (it's an attribute set). - See lib.systems.platforms for examples—there's hopefully one in there that will work verbatim for each platform one is working. + See lib.systems.platforms for examples—there's hopefully one in there that will work verbatim for each platform that is working. Please help us triage these flags and give them better homes! @@ -158,15 +174,20 @@ The depending package's target platform is unconstrained by the sliding window principle, which makes sense in that one can in principle build cross compilers targeting arbitrary platforms. - How does this work in practice? Nixpkgs is now structured so that build-time dependencies are taken from from buildPackages, whereas run-time dependencies are taken from the top level attribute set. + How does this work in practice? Nixpkgs is now structured so that build-time dependencies are taken from buildPackages, whereas run-time dependencies are taken from the top level attribute set. For example, buildPackages.gcc should be used at build time, while gcc should be used at run time. Now, for most of Nixpkgs's history, there was no buildPackages, and most packages have not been refactored to use it explicitly. - Instead, one can use the four attributes used for specifying dependencies as documented in . + Instead, one can use the four attributes used for specifying dependencies as documented in . We "splice" together the run-time and build-time package sets with callPackage, and then mkDerivation for each of four attributes pulls the right derivation out. This splicing can be skipped when not cross compiling as the package sets are the same, but is a bit slow for cross compiling. Because of this, a best-of-both-worlds solution is in the works with no splicing or explicit access of buildPackages needed. For now, feel free to use either method. + + There is also a "backlink" __targetPackages, yielding a package set whose buildPackages is the current package set. + This is a hack, though, to accommodate compilers with lousy build systems. + Please do not use this unless you are absolutely sure you are packaging such a compiler and there is no other way. +
@@ -179,11 +200,27 @@ More information needs to moved from the old wiki, especially , for this section. - Many sources (manual, wiki, etc) probably mention passing system, platform, and, optionally, crossSystem to nixpkgs: - import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; }. - system and platform together determine the system on which packages are built, and crossSystem specifies the platform on which packages are ultimately intended to run, if it is different. - This still works, but with more recent changes, one can alternatively pass localSystem, containing system and platform, for symmetry. + Nixpkgs can be instantiated with localSystem alone, in which case there is no cross compiling and everything is built by and for that system, + or also with crossSystem, in which case packages run on the latter, but all building happens on the former. + Both parameters take the same schema as the 3 (build, host, and target) platforms defined in the previous section. + As mentioned above, lib.systems.examples has some platforms which are used as arguments for these parameters in practice. + You can use them programmatically, or on the command line like nix-build <nixpkgs> --arg crossSystem '(import <nixpkgs/lib>).systems.examples.fooBarBaz'. + + While one is free to pass both parameters in full, there's a lot of logic to fill in missing fields. + As discussed in the previous section, only one of system, config, and parsed is needed to infer the other two. + Additionally, libc will be inferred from parse. + Finally, localSystem.system is also impurely inferred based on the platform evaluation occurs. + This means it is often not necessary to pass localSystem at all, as in the command-line example in the previous paragraph. + + + + Many sources (manual, wiki, etc) probably mention passing system, platform, along with the optional crossSystem to nixpkgs: + import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; }. + Passing those two instead of localSystem is still supported for compatibility, but is discouraged. + Indeed, much of the inference we do for these parameters is motivated by compatibility as much as convenience. + + One would think that localSystem and crossSystem overlap horribly with the three *Platforms (buildPlatform, hostPlatform, and targetPlatform; see stage.nix or the manual). Actually, those identifiers are purposefully not used here to draw a subtle but important distinction: diff --git a/doc/default.nix b/doc/default.nix index 540a209c2ac..cfd51fba257 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -26,7 +26,7 @@ pkgs.stdenv.mkDerivation { extraHeader = ''xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" ''; in '' { - pandoc '${inputFile}' -w docbook ${lib.optionalString useChapters "--chapters"} \ + pandoc '${inputFile}' -w docbook ${lib.optionalString useChapters "--top-level-division=chapter"} \ --smart \ | sed -e 's|||' \ diff --git a/doc/functions.xml b/doc/functions.xml index 4e7159638ca..52bdf13eba9 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -70,7 +70,7 @@ In the above example, the separateDebugInfo attribute is - overriden to be true, thus building debug info for + overridden to be true, thus building debug info for helloWithDebug, while all other attributes will be retained from the original hello package. @@ -358,8 +358,8 @@ pkgs.dockerTools is a set of functions for creating and manipulating Docker images according to the - - Docker Image Specification v1.0.0 + + Docker Image Specification v1.2.0 . Docker itself is not used to perform any of the operations done by these functions. @@ -493,8 +493,8 @@ config is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the - - Docker Image Specification v1.0.0 + + Docker Image Specification v1.2.0 . diff --git a/doc/introduction.md b/doc/introduction.md index 96a5571b426..8b03221c64b 100644 --- a/doc/introduction.md +++ b/doc/introduction.md @@ -48,6 +48,4 @@ The binaries are made available via a [binary cache](https://cache.nixos.org). The current Nix expressions of the channels are available in the [`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository, -which has branches corresponding to the available channels. There is also the -[Nixpkgs Monitor](http://monitor.nixos.org) which keeps track of updates -and security vulnerabilities. +which has branches corresponding to the available channels. diff --git a/doc/languages-frameworks/beam.xml b/doc/languages-frameworks/beam.xml index efb2e60cf3a..1a18ed27237 100644 --- a/doc/languages-frameworks/beam.xml +++ b/doc/languages-frameworks/beam.xml @@ -2,60 +2,120 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-beam"> - Beam Languages (Erlang & Elixir) + BEAM Languages (Erlang, Elixir & LFE)
Introduction - In this document and related Nix expressions we use the term - Beam to describe the environment. Beam is - the name of the Erlang Virtial Machine and, as far as we know, - from a packaging perspective all languages that run on Beam are - interchangable. The things that do change, like the build - system, are transperant to the users of the package. So we make - no distinction. + In this document and related Nix expressions, we use the term, + BEAM, to describe the environment. BEAM is the name + of the Erlang Virtual Machine and, as far as we're concerned, from a + packaging perspective, all languages that run on the BEAM are + interchangeable. That which varies, like the build system, is transparent + to users of any given BEAM package, so we make no distinction.
-
+
+ Structure + + All BEAM-related expressions are available via the top-level + beam attribute, which includes: + + + + + interpreters: a set of compilers running on the + BEAM, including multiple Erlang/OTP versions + (beam.interpreters.erlangR19, etc), Elixir + (beam.interpreters.elixir) and LFE + (beam.interpreters.lfe). + + + + + packages: a set of package sets, each compiled with + a specific Erlang/OTP version, e.g. + beam.packages.erlangR19. + + + + + The default Erlang compiler, defined by + beam.interpreters.erlang, is aliased as + erlang. The default BEAM package set is defined by + beam.packages.erlang and aliased at the top level as + beamPackages. + + + To create a package set built with a custom Erlang version, use the + lambda, beam.packagesWith, which accepts an Erlang/OTP + derivation and produces a package set similar to + beam.packages.erlang. + + + Many Erlang/OTP distributions available in + beam.interpreters have versions with ODBC and/or Java + enabled. For example, there's + beam.interpreters.erlangR19_odbc_javac, which + corresponds to beam.interpreters.erlangR19. + + + We also provide the lambda, + beam.packages.erlang.callPackage, which simplifies + writing BEAM package definitions by injecting all packages from + beam.packages.erlang into the top-level context. + +
+
Build Tools
Rebar3 - By default Rebar3 wants to manage it's own dependencies. In the - normal non-Nix, this is perfectly acceptable. In the Nix world it - is not. To support this we have created two versions of rebar3, - rebar3 and rebar3-open. The - rebar3 version has been patched to remove the - ability to download anything from it. If you are not running it a - nix-shell or a nix-build then its probably not going to work for - you. rebar3-open is the normal, un-modified - rebar3. It should work exactly as would any other version of - rebar3. Any Erlang package should rely on - rebar3 and thats really what you should be - using too. + By default, Rebar3 wants to manage its own dependencies. This is perfectly + acceptable in the normal, non-Nix setup, but in the Nix world, it is not. + To rectify this, we provide two versions of Rebar3: + + + + rebar3: patched to remove the ability to download + anything. When not running it via nix-shell or + nix-build, it's probably not going to work as + desired. + + + + + rebar3-open: the normal, unmodified Rebar3. It + should work exactly as would any other version of Rebar3. Any Erlang + package should rely on rebar3 instead. See . + + +
Mix & Erlang.mk - Both Mix and Erlang.mk work exactly as you would expect. There - is a bootstrap process that needs to be run for both of - them. However, that is supported by the - buildMix and buildErlangMk derivations. + Both Mix and Erlang.mk work exactly as expected. There is a bootstrap + process that needs to be run for both, however, which is supported by the + buildMix and buildErlangMk + derivations, respectively.
-
- How to install Beam packages + How to Install BEAM Packages - Beam packages are not registered in the top level simply because - they are not relevant to the vast majority of Nix users. They are - installable using the beamPackages attribute - set. + BEAM packages are not registered at the top level, simply because they are + not relevant to the vast majority of Nix users. They are installable using + the beam.packages.erlang attribute set (aliased as + beamPackages), which points to packages built by the + default Erlang/OTP version in Nixpkgs, as defined by + beam.interpreters.erlang. - You can list the avialable packages in the - beamPackages with the following command: + To list the available packages in + beamPackages, use the following command: @@ -69,115 +129,152 @@ beamPackages.meck meck-0.8.3 beamPackages.rebar3-pc pc-1.1.0 - To install any of those packages into your profile, refer to them by - their attribute path (first column): + To install any of those packages into your profile, refer to them by their + attribute path (first column): $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse - The attribute path of any Beam packages corresponds to the name - of that particular package in Hex or its OTP Application/Release name. + The attribute path of any BEAM package corresponds to the name of that + particular package in Hex or its + OTP Application/Release name.
- Packaging Beam Applications + Packaging BEAM Applications
Erlang Applications
Rebar3 Packages - There is a Nix functional called - buildRebar3. We use this function to make a - derivation that understands how to build the rebar3 project. For - example, the epression we use to build the hex2nix - project follows. + The Nix function, buildRebar3, defined in + beam.packages.erlang.buildRebar3 and aliased at the + top level, can be used to build a derivation that understands how to + build a Rebar3 project. For example, we can build hex2nix as + follows: - {stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }: + { stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons }: - buildRebar3 rec { - name = "hex2nix"; - version = "0.0.1"; + buildRebar3 rec { + name = "hex2nix"; + version = "0.0.1"; - src = fetchFromGitHub { - owner = "ericbmerritt"; - repo = "hex2nix"; - rev = "${version}"; - sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg"; - }; + src = fetchFromGitHub { + owner = "ericbmerritt"; + repo = "hex2nix"; + rev = "${version}"; + sha256 = "1w7xjidz1l5yjmhlplfx7kphmnpvqm67w99hd2m7kdixwdxq0zqg"; + }; beamDeps = [ ibrowse jsx erlware_commons ]; } - The only visible difference between this derivation and - something like stdenv.mkDerivation is that we - have added erlangDeps to the derivation. If - you add your Beam dependencies here they will be correctly - handled by the system. + Such derivations are callable with + beam.packages.erlang.callPackage (see ). To call this package using the normal + callPackage, refer to dependency packages via + beamPackages, e.g. + beamPackages.ibrowse. - If your package needs to compile native code via Rebar's port - compilation mechenism. You should add compilePort = - true; to the derivation. + Notably, buildRebar3 includes + beamDeps, while + stdenv.mkDerivation does not. BEAM dependencies added + there will be correctly handled by the system. + + + If a package needs to compile native code via Rebar3's port compilation + mechanism, add compilePort = true; to the derivation.
Erlang.mk Packages - Erlang.mk functions almost identically to Rebar. The only real - difference is that buildErlangMk is called - instead of buildRebar3 + Erlang.mk functions similarly to Rebar3, except we use + buildErlangMk instead of + buildRebar3. - { buildErlangMk, fetchHex, cowlib, ranch }: - buildErlangMk { - name = "cowboy"; - version = "1.0.4"; - src = fetchHex { - pkg = "cowboy"; - version = "1.0.4"; - sha256 = - "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac"; - }; - beamDeps = [ cowlib ranch ]; + { buildErlangMk, fetchHex, cowlib, ranch }: - meta = { - description = ''Small, fast, modular HTTP server written in - Erlang.''; - license = stdenv.lib.licenses.isc; - homepage = "https://github.com/ninenines/cowboy"; - }; + buildErlangMk { + name = "cowboy"; + version = "1.0.4"; + + src = fetchHex { + pkg = "cowboy"; + version = "1.0.4"; + sha256 = "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac"; + }; + + beamDeps = [ cowlib ranch ]; + + meta = { + description = '' + Small, fast, modular HTTP server written in Erlang + ''; + license = stdenv.lib.licenses.isc; + homepage = https://github.com/ninenines/cowboy; + }; }
Mix Packages - Mix functions almost identically to Rebar. The only real - difference is that buildMix is called - instead of buildRebar3 + Mix functions similarly to Rebar3, except we use + buildMix instead of buildRebar3. { buildMix, fetchHex, plug, absinthe }: + buildMix { name = "absinthe_plug"; version = "1.0.0"; + src = fetchHex { pkg = "absinthe_plug"; version = "1.0.0"; - sha256 = - "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33"; + sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33"; }; - beamDeps = [ plug absinthe]; + + beamDeps = [ plug absinthe ]; meta = { - description = ''A plug for Absinthe, an experimental GraphQL - toolkit''; + description = '' + A plug for Absinthe, an experimental GraphQL toolkit + ''; license = stdenv.lib.licenses.bsd3; - homepage = "https://github.com/CargoSense/absinthe_plug"; + homepage = https://github.com/CargoSense/absinthe_plug; + }; + } + + + Alternatively, we can use buildHex as a shortcut: + + + { buildHex, buildMix, plug, absinthe }: + + buildHex { + name = "absinthe_plug"; + version = "1.0.0"; + + sha256 = "08459823fe1fd4f0325a8bf0c937a4520583a5a26d73b193040ab30a1dfc0b33"; + + builder = buildMix; + + beamDeps = [ plug absinthe ]; + + meta = { + description = '' + A plug for Absinthe, an experimental GraphQL toolkit + ''; + license = stdenv.lib.licenses.bsd3; + homepage = https://github.com/CargoSense/absinthe_plug; }; } @@ -185,18 +282,18 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse
- How to develop + How to Develop
Accessing an Environment - Often, all you want to do is be able to access a valid - environment that contains a specific package and its - dependencies. we can do that with the env - part of a derivation. For example, lets say we want to access an - erlang repl with ibrowse loaded up. We could do the following. + Often, we simply want to access a valid environment that contains a + specific package and its dependencies. We can accomplish that with the + env attribute of a derivation. For example, let's say + we want to access an Erlang REPL with ibrowse loaded + up. We could do the following: - ~/w/nixpkgs ❯❯❯ nix-shell -A beamPackages.ibrowse.env --run "erl" + $ nix-shell -A beamPackages.ibrowse.env --run "erl" Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.0 (abort with ^G) @@ -237,20 +334,19 @@ $ nix-env -f "<nixpkgs>" -iA beamPackages.ibrowse 2> - Notice the -A beamPackages.ibrowse.env.That - is the key to this functionality. + Notice the -A beamPackages.ibrowse.env. That is the key + to this functionality.
Creating a Shell Getting access to an environment often isn't enough to do real - development. Many times we need to create a - shell.nix file and do our development inside - of the environment specified by that file. This file looks a lot - like the packaging described above. The main difference is that - src points to project root and we call the - package directly. + development. Usually, we need to create a shell.nix + file and do our development inside of the environment specified therein. + This file looks a lot like the packaging described above, except that + src points to the project root and we call the package + directly. { pkgs ? import "<nixpkgs"> {} }: @@ -264,18 +360,19 @@ let name = "hex2nix"; version = "0.1.0"; src = ./.; - erlangDeps = [ ibrowse jsx erlware_commons ]; + beamDeps = [ ibrowse jsx erlware_commons ]; }; drv = beamPackages.callPackage f {}; in - drv + + drv
- Building in a shell + Building in a Shell (for Mix Projects) - We can leveral the support of the Derivation, regardless of - which build Derivation is called by calling the commands themselv.s + We can leverage the support of the derivation, irrespective of the build + derivation, by calling the commands themselves. # ============================================================================= @@ -335,42 +432,43 @@ analyze: build plt - If you add the shell.nix as described and - user rebar as follows things should simply work. Aside from the + Using a shell.nix as described (see ) should just work. Aside from test, plt, and - analyze the talks work just fine for all of - the build Derivations. + analyze, the Make targets work just fine for all of the + build derivations.
- Generating Packages from Hex with Hex2Nix + Generating Packages from Hex with <literal>hex2nix</literal> - Updating the Hex packages requires the use of the - hex2nix tool. Given the path to the Erlang - modules (usually - pkgs/development/erlang-modules). It will - happily dump a file called - hex-packages.nix. That file will contain all - the packages that use a recognized build system in Hex. However, - it can't know whether or not all those packages are buildable. + Updating the Hex package set + requires hex2nix. Given the + path to the Erlang modules (usually + pkgs/development/erlang-modules), it will dump a file + called hex-packages.nix, containing all the packages that + use a recognized build system in Hex. It can't be determined, however, + whether every package is buildable. - To make life easier for our users, it makes good sense to go - ahead and attempt to build all those packages and remove the - ones that don't build. To do that, simply run the command (in - the root of your nixpkgs repository). that follows. + To make life easier for our users, try to build every Hex package and remove those that fail. + To do that, simply run the following command in the root of your + nixpkgs repository: $ nix-build -A beamPackages - That will build every package in - beamPackages. Then you can go through and - manually remove the ones that fail. Hopefully, someone will - improve hex2nix in the future to automate - that. + That will attempt to build every package in + beamPackages. Then manually remove those that fail. + Hopefully, someone will improve hex2nix in the + future to automate the process.
diff --git a/doc/languages-frameworks/go.xml b/doc/languages-frameworks/go.xml index 026acb4e8fb..54ea60c9021 100644 --- a/doc/languages-frameworks/go.xml +++ b/doc/languages-frameworks/go.xml @@ -13,7 +13,7 @@ standard Go programs. deis = buildGoPackage rec { name = "deis-${version}"; version = "1.13.0"; - + goPackagePath = "github.com/deis/deis"; subPackages = [ "client" ]; @@ -130,6 +130,9 @@ the following arguments are of special significance to the function: +To extract dependency information from a Go package in automated way use go2nix. + It can produce complete derivation and goDeps file for Go programs. + buildGoPackage produces where bin includes program binaries. You can test build a Go binary as follows: @@ -160,7 +163,4 @@ done -To extract dependency information from a Go package in automated way use go2nix. - It can produce complete derivation and goDeps file for Go programs.
- diff --git a/doc/languages-frameworks/haskell.md b/doc/languages-frameworks/haskell.md index 1cab3d1e4ee..da3fd770ce7 100644 --- a/doc/languages-frameworks/haskell.md +++ b/doc/languages-frameworks/haskell.md @@ -11,32 +11,35 @@ date: 2015-06-01 Nixpkgs distributes build instructions for all Haskell packages registered on [Hackage](http://hackage.haskell.org/), but strangely enough normal Nix package lookups don't seem to discover any of them, except for the default version of ghc, cabal-install, and stack: - - $ nix-env -i alex - error: selector ‘alex’ matches no derivations - $ nix-env -qa ghc - ghc-7.10.2 +``` +$ nix-env -i alex +error: selector ‘alex’ matches no derivations +$ nix-env -qa ghc +ghc-7.10.2 +``` The Haskell package set is not registered in the top-level namespace because it is *huge*. If all Haskell packages were visible to these commands, then name-based search/install operations would be much slower than they are now. We avoided that by keeping all Haskell-related packages in a separate attribute set called `haskellPackages`, which the following command will list: - - $ nix-env -f "" -qaP -A haskellPackages - haskellPackages.a50 a50-0.5 - haskellPackages.abacate haskell-abacate-0.0.0.0 - haskellPackages.abcBridge haskell-abcBridge-0.12 - haskellPackages.afv afv-0.1.1 - haskellPackages.alex alex-3.1.4 - haskellPackages.Allure Allure-0.4.101.1 - haskellPackages.alms alms-0.6.7 - [... some 8000 entries omitted ...] +``` +$ nix-env -f "" -qaP -A haskellPackages +haskellPackages.a50 a50-0.5 +haskellPackages.abacate haskell-abacate-0.0.0.0 +haskellPackages.abcBridge haskell-abcBridge-0.12 +haskellPackages.afv afv-0.1.1 +haskellPackages.alex alex-3.1.4 +haskellPackages.Allure Allure-0.4.101.1 +haskellPackages.alms alms-0.6.7 +[... some 8000 entries omitted ...] +``` To install any of those packages into your profile, refer to them by their attribute path (first column): - - $ nix-env -f "" -iA haskellPackages.Allure ... +```shell +nix-env -f "" -iA haskellPackages.Allure ... +``` The attribute path of any Haskell packages corresponds to the name of that particular package on Hackage: the package `cabal-install` has the attribute @@ -58,55 +61,60 @@ Attribute paths are deterministic inside of Nixpkgs, but the path necessary to reach Nixpkgs varies from system to system. We dodged that problem by giving `nix-env` an explicit `-f ""` parameter, but if you call `nix-env` without that flag, then chances are the invocation fails: - - $ nix-env -iA haskellPackages.cabal-install - error: attribute ‘haskellPackages’ in selection path - ‘haskellPackages.cabal-install’ not found +``` +$ nix-env -iA haskellPackages.cabal-install +error: attribute ‘haskellPackages’ in selection path + ‘haskellPackages.cabal-install’ not found +``` On NixOS, for example, Nixpkgs does *not* exist in the top-level namespace by default. To figure out the proper attribute path, it's easiest to query for the path of a well-known Nixpkgs package, i.e.: - - $ nix-env -qaP coreutils - nixos.coreutils coreutils-8.23 +``` +$ nix-env -qaP coreutils +nixos.coreutils coreutils-8.23 +``` If your system responds like that (most NixOS installations will), then the attribute path to `haskellPackages` is `nixos.haskellPackages`. Thus, if you want to use `nix-env` without giving an explicit `-f` flag, then that's the way to do it: - - $ nix-env -qaP -A nixos.haskellPackages - $ nix-env -iA nixos.haskellPackages.cabal-install +```shell +nix-env -qaP -A nixos.haskellPackages +nix-env -iA nixos.haskellPackages.cabal-install +``` Our current default compiler is GHC 7.10.x and the `haskellPackages` set contains packages built with that particular version. Nixpkgs contains the latest major release of every GHC since 6.10.4, however, and there is a whole family of package sets available that defines Hackage packages built with each of those compilers, too: - - $ nix-env -f "" -qaP -A haskell.packages.ghc6123 - $ nix-env -f "" -qaP -A haskell.packages.ghc763 +```shell +nix-env -f "" -qaP -A haskell.packages.ghc6123 +nix-env -f "" -qaP -A haskell.packages.ghc763 +``` The name `haskellPackages` is really just a synonym for `haskell.packages.ghc7102`, because we prefer that package set internally and recommend it to our users as their default choice, but ultimately you are free to compile your Haskell packages with any GHC version you please. The following command displays the complete list of available compilers: - - $ nix-env -f "" -qaP -A haskell.compiler - haskell.compiler.ghc6104 ghc-6.10.4 - haskell.compiler.ghc6123 ghc-6.12.3 - haskell.compiler.ghc704 ghc-7.0.4 - haskell.compiler.ghc722 ghc-7.2.2 - haskell.compiler.ghc742 ghc-7.4.2 - haskell.compiler.ghc763 ghc-7.6.3 - haskell.compiler.ghc784 ghc-7.8.4 - haskell.compiler.ghc7102 ghc-7.10.2 - haskell.compiler.ghcHEAD ghc-7.11.20150402 - haskell.compiler.ghcNokinds ghc-nokinds-7.11.20150704 - haskell.compiler.ghcjs ghcjs-0.1.0 - haskell.compiler.jhc jhc-0.8.2 - haskell.compiler.uhc uhc-1.1.9.0 +``` +$ nix-env -f "" -qaP -A haskell.compiler +haskell.compiler.ghc6104 ghc-6.10.4 +haskell.compiler.ghc6123 ghc-6.12.3 +haskell.compiler.ghc704 ghc-7.0.4 +haskell.compiler.ghc722 ghc-7.2.2 +haskell.compiler.ghc742 ghc-7.4.2 +haskell.compiler.ghc763 ghc-7.6.3 +haskell.compiler.ghc784 ghc-7.8.4 +haskell.compiler.ghc7102 ghc-7.10.2 +haskell.compiler.ghcHEAD ghc-7.11.20150402 +haskell.compiler.ghcNokinds ghc-nokinds-7.11.20150704 +haskell.compiler.ghcjs ghcjs-0.1.0 +haskell.compiler.jhc jhc-0.8.2 +haskell.compiler.uhc uhc-1.1.9.0 +``` We have no package sets for `jhc` or `uhc` yet, unfortunately, but for every version of GHC listed above, there exists a package set based on that compiler. @@ -121,8 +129,9 @@ A simple development environment consists of a Haskell compiler and one or both of the tools `cabal-install` and `stack`. We saw in section [How to install Haskell packages] how you can install those programs into your user profile: - - $ nix-env -f "" -iA haskellPackages.ghc haskellPackages.cabal-install +```shell +nix-env -f "" -iA haskellPackages.ghc haskellPackages.cabal-install +``` Instead of the default package set `haskellPackages`, you can also use the more precise name `haskell.compiler.ghc7102`, which has the advantage that it refers @@ -131,24 +140,25 @@ given time. Once you've made those tools available in `$PATH`, it's possible to build Hackage packages the same way people without access to Nix do it all the time: - - $ cabal get lens-4.11 && cd lens-4.11 - $ cabal install -j --dependencies-only - $ cabal configure - $ cabal build +```shell +cabal get lens-4.11 && cd lens-4.11 +cabal install -j --dependencies-only +cabal configure +cabal build +``` If you enjoy working with Cabal sandboxes, then that's entirely possible too: just execute the command - - $ cabal sandbox init - +```shell +cabal sandbox init +``` before installing the required dependencies. The `nix-shell` utility makes it easy to switch to a different compiler version; just enter the Nix shell environment with the command - - $ nix-shell -p haskell.compiler.ghc784 - +```shell +nix-shell -p haskell.compiler.ghc784 +``` to bring GHC 7.8.4 into `$PATH`. Alternatively, you can use Stack instead of `nix-shell` directly to select compiler versions and other build tools per-project. It uses `nix-shell` under the hood when Nix support is turned on. @@ -159,8 +169,9 @@ shell switches your build to use that compiler instead. If you're working on a project that doesn't depend on any additional system libraries outside of GHC, then it's even sufficient to just run the `cabal configure` command inside of the shell: - - $ nix-shell -p haskell.compiler.ghc784 --command "cabal configure" +```shell +nix-shell -p haskell.compiler.ghc784 --command "cabal configure" +``` Afterwards, all other commands like `cabal build` work just fine in any shell environment, because the configure phase recorded the absolute paths to all @@ -187,29 +198,30 @@ packages, which determines the libraries known to that particular version of GHC. For example, the Nix expression `ghcWithPackages (pkgs: [pkgs.mtl])` generates a copy of GHC that has the `mtl` library registered in addition to its normal core packages: +``` +$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])" - $ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])" - - [nix-shell:~]$ ghc-pkg list mtl - /nix/store/zy79...-ghc-7.10.2/lib/ghc-7.10.2/package.conf.d: - mtl-2.2.1 +[nix-shell:~]$ ghc-pkg list mtl +/nix/store/zy79...-ghc-7.10.2/lib/ghc-7.10.2/package.conf.d: + mtl-2.2.1 +``` This function allows users to define their own development environment by means of an override. After adding the following snippet to `~/.config/nixpkgs/config.nix`, - - { - packageOverrides = super: let self = super.pkgs; in - { - myHaskellEnv = self.haskell.packages.ghc7102.ghcWithPackages - (haskellPackages: with haskellPackages; [ - # libraries - arrows async cgi criterion - # tools - cabal-install haskintex - ]); - }; - } - +```nix +{ + packageOverrides = super: let self = super.pkgs; in + { + myHaskellEnv = self.haskell.packages.ghc7102.ghcWithPackages + (haskellPackages: with haskellPackages; [ + # libraries + arrows async cgi criterion + # tools + cabal-install haskintex + ]); + }; +} +``` it's possible to install that compiler with `nix-env -f "" -iA myHaskellEnv`. If you'd like to switch that development environment to a different version of GHC, just replace the `ghc7102` bit in the previous @@ -221,14 +233,15 @@ file conflicts.) The generated `ghc` program is a wrapper script that re-directs the real GHC executable to use a new `lib` directory --- one that we specifically constructed to contain all those packages the user requested: - - $ cat $(type -p ghc) - #! /nix/store/xlxj...-bash-4.3-p33/bin/bash -e - export NIX_GHC=/nix/store/19sm...-ghc-7.10.2/bin/ghc - export NIX_GHCPKG=/nix/store/19sm...-ghc-7.10.2/bin/ghc-pkg - export NIX_GHC_DOCDIR=/nix/store/19sm...-ghc-7.10.2/share/doc/ghc/html - export NIX_GHC_LIBDIR=/nix/store/19sm...-ghc-7.10.2/lib/ghc-7.10.2 - exec /nix/store/j50p...-ghc-7.10.2/bin/ghc "-B$NIX_GHC_LIBDIR" "$@" +``` +$ cat $(type -p ghc) +#! /nix/store/xlxj...-bash-4.3-p33/bin/bash -e +export NIX_GHC=/nix/store/19sm...-ghc-7.10.2/bin/ghc +export NIX_GHCPKG=/nix/store/19sm...-ghc-7.10.2/bin/ghc-pkg +export NIX_GHC_DOCDIR=/nix/store/19sm...-ghc-7.10.2/share/doc/ghc/html +export NIX_GHC_LIBDIR=/nix/store/19sm...-ghc-7.10.2/lib/ghc-7.10.2 +exec /nix/store/j50p...-ghc-7.10.2/bin/ghc "-B$NIX_GHC_LIBDIR" "$@" +``` The variables `$NIX_GHC`, `$NIX_GHCPKG`, etc. point to the *new* store path `ghcWithPackages` constructed specifically for this environment. The last line @@ -248,23 +261,25 @@ than trying to guess them at compile-time. To make sure that mechanism works properly all the time, we recommend that you set those variables to meaningful values in your shell environment, too, i.e. by adding the following code to your `~/.bashrc`: - - if type >/dev/null 2>&1 -p ghc; then - eval "$(egrep ^export "$(type -p ghc)")" - fi +```bash +if type >/dev/null 2>&1 -p ghc; then + eval "$(egrep ^export "$(type -p ghc)")" +fi +``` If you are certain that you'll use only one GHC environment which is located in your user profile, then you can use the following code, too, which has the advantage that it doesn't contain any paths from the Nix store, i.e. those settings always remain valid even if a `nix-env -u` operation updates the GHC environment in your profile: - - if [ -e ~/.nix-profile/bin/ghc ]; then - export NIX_GHC="$HOME/.nix-profile/bin/ghc" - export NIX_GHCPKG="$HOME/.nix-profile/bin/ghc-pkg" - export NIX_GHC_DOCDIR="$HOME/.nix-profile/share/doc/ghc/html" - export NIX_GHC_LIBDIR="$HOME/.nix-profile/lib/ghc-$($NIX_GHC --numeric-version)" - fi +```bash +if [ -e ~/.nix-profile/bin/ghc ]; then + export NIX_GHC="$HOME/.nix-profile/bin/ghc" + export NIX_GHCPKG="$HOME/.nix-profile/bin/ghc-pkg" + export NIX_GHC_DOCDIR="$HOME/.nix-profile/share/doc/ghc/html" + export NIX_GHC_LIBDIR="$HOME/.nix-profile/lib/ghc-$($NIX_GHC --numeric-version)" +fi +``` ### How to install a compiler with libraries, hoogle and documentation indexes @@ -280,20 +295,20 @@ uses all those things. A precise name for this thing would be long and scary. For example, installing the following environment - - { - packageOverrides = super: let self = super.pkgs; in - { - myHaskellEnv = self.haskellPackages.ghcWithHoogle - (haskellPackages: with haskellPackages; [ - # libraries - arrows async cgi criterion - # tools - cabal-install haskintex - ]); - }; - } - +```nix +{ + packageOverrides = super: let self = super.pkgs; in + { + myHaskellEnv = self.haskellPackages.ghcWithHoogle + (haskellPackages: with haskellPackages; [ + # libraries + arrows async cgi criterion + # tools + cabal-install haskintex + ]); + }; +} +``` allows one to browse module documentation index [not too dissimilar to this](https://downloads.haskell.org/~ghc/latest/docs/html/libraries/index.html) for all the specified packages and their dependencies by directing a browser of @@ -303,23 +318,24 @@ choice to `~/.nix-profiles/share/doc/hoogle/index.html` (or After you've marveled enough at that try adding the following to your `~/.ghc/ghci.conf` - - :def hoogle \s -> return $ ":! hoogle search -cl --count=15 \"" ++ s ++ "\"" - :def doc \s -> return $ ":! hoogle search -cl --info \"" ++ s ++ "\"" - +``` +:def hoogle \s -> return $ ":! hoogle search -cl --count=15 \"" ++ s ++ "\"" +:def doc \s -> return $ ":! hoogle search -cl --info \"" ++ s ++ "\"" +``` and test it by typing into `ghci`: - - :hoogle a -> a - :doc a -> a +``` +:hoogle a -> a +:doc a -> a +``` Be sure to note the links to `haddock` files in the output. With any modern and properly configured terminal emulator you can just click those links to navigate there. Finally, you can run - - hoogle server -p 8080 - +```shell +hoogle server -p 8080 +``` and navigate to http://localhost:8080/ for your own local [Hoogle](https://www.haskell.org/hoogle/). Note, however, that Firefox and possibly other browsers disallow navigation from `http:` to `file:` URIs for @@ -334,18 +350,20 @@ It has first-class support for Nix. Stack can optionally use Nix to automatically select the right version of GHC and other build tools to build, test and execute apps in an existing project downloaded from somewhere on the Internet. Pass the `--nix` flag to any `stack` command to do so, e.g. - - $ git clone --recursive http://github.com/yesodweb/wai - $ cd wai - $ stack --nix build +```shell +git clone --recursive http://github.com/yesodweb/wai +cd wai +stack --nix build +``` If you want `stack` to use Nix by default, you can add a `nix` section to the `stack.yaml` file, as explained in the [Stack documentation][stack-nix-doc]. For example: - - nix: - enable: true - packages: [pkgconfig zeromq zlib] +```yaml +nix: + enable: true + packages: [pkgconfig zeromq zlib] +``` The example configuration snippet above tells Stack to create an ad hoc environment for `nix-shell` as in the below section, in which the `pkgconfig`, @@ -356,10 +374,11 @@ Some projects have more sophisticated needs. For examples, some ad hoc environments might need to expose Nixpkgs packages compiled in a certain way, or with extra environment variables. In these cases, you'll need a `shell` field instead of `packages`: - - nix: - enable: true - shell-file: shell.nix +```yaml +nix: + enable: true + shell-file: shell.nix +``` For more on how to write a `shell.nix` file see the below section. You'll need to express a derivation. Note that Nixpkgs ships with a convenience wrapper @@ -368,32 +387,34 @@ create this derivation in exactly the way Stack expects. All of the same inputs as `mkDerivation` can be provided. For example, to build a Stack project that including packages that link against a version of the R library compiled with special options turned on: +```nix +with (import { }); - with (import { }); - - let R = pkgs.R.override { enableStrictBarrier = true; }; - in - haskell.lib.buildStackProject { - name = "HaskellR"; - buildInputs = [ R zeromq zlib ]; - } +let R = pkgs.R.override { enableStrictBarrier = true; }; +in +haskell.lib.buildStackProject { + name = "HaskellR"; + buildInputs = [ R zeromq zlib ]; +} +``` You can select a particular GHC version to compile with by setting the `ghc` attribute as an argument to `buildStackProject`. Better yet, let Stack choose what GHC version it wants based on the snapshot specified in `stack.yaml` (only works with Stack >= 1.1.3): +```nix +{nixpkgs ? import { }, ghc ? nixpkgs.ghc}: - {nixpkgs ? import { }, ghc ? nixpkgs.ghc}: +with nixpkgs; - with nixpkgs; - - let R = pkgs.R.override { enableStrictBarrier = true; }; - in - haskell.lib.buildStackProject { - name = "HaskellR"; - buildInputs = [ R zeromq zlib ]; - inherit ghc; - } +let R = pkgs.R.override { enableStrictBarrier = true; }; +in +haskell.lib.buildStackProject { + name = "HaskellR"; + buildInputs = [ R zeromq zlib ]; + inherit ghc; +} +``` [stack-nix-doc]: http://docs.haskellstack.org/en/stable/nix_integration.html @@ -401,24 +422,26 @@ in `stack.yaml` (only works with Stack >= 1.1.3): The easiest way to create an ad hoc development environment is to run `nix-shell` with the appropriate GHC environment given on the command-line: - - nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [mtl pandoc])" +```shell +nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [mtl pandoc])" +``` For more sophisticated use-cases, however, it's more convenient to save the desired configuration in a file called `shell.nix` that looks like this: - - { nixpkgs ? import {}, compiler ? "ghc7102" }: - let - inherit (nixpkgs) pkgs; - ghc = pkgs.haskell.packages.${compiler}.ghcWithPackages (ps: with ps; [ - monad-par mtl - ]); - in - pkgs.stdenv.mkDerivation { - name = "my-haskell-env-0"; - buildInputs = [ ghc ]; - shellHook = "eval $(egrep ^export ${ghc}/bin/ghc)"; - } +```nix +{ nixpkgs ? import {}, compiler ? "ghc7102" }: +let + inherit (nixpkgs) pkgs; + ghc = pkgs.haskell.packages.${compiler}.ghcWithPackages (ps: with ps; [ + monad-par mtl + ]); +in +pkgs.stdenv.mkDerivation { + name = "my-haskell-env-0"; + buildInputs = [ ghc ]; + shellHook = "eval $(egrep ^export ${ghc}/bin/ghc)"; +} +``` Now run `nix-shell` --- or even `nix-shell --pure` --- to enter a shell environment that has the appropriate compiler in `$PATH`. If you use `--pure`, @@ -434,13 +457,14 @@ already! Every Haskell package has an `env` attribute that provides a shell environment suitable for compiling that particular package. If you'd like to hack the `lens` library, for example, then you just have to check out the source code and enter the appropriate environment: +``` +$ cabal get lens-4.11 && cd lens-4.11 +Downloading lens-4.11... +Unpacking to lens-4.11/ - $ cabal get lens-4.11 && cd lens-4.11 - Downloading lens-4.11... - Unpacking to lens-4.11/ - - $ nix-shell "" -A haskellPackages.lens.env - [nix-shell:/tmp/lens-4.11]$ +$ nix-shell "" -A haskellPackages.lens.env +[nix-shell:/tmp/lens-4.11]$ +``` At point, you can run `cabal configure`, `cabal build`, and all the other development commands. Note that you need `cabal-install` installed in your @@ -459,18 +483,20 @@ convert those automatically into build instructions for Nix using the For example, let's assume that you're working on a private project called `foo`. To generate a Nix build expression for it, change into the project's top-level directory and run the command: - - $ cabal2nix . >foo.nix - +```shell +cabal2nix . > foo.nix +``` Then write the following snippet into a file called `default.nix`: - - { nixpkgs ? import {}, compiler ? "ghc7102" }: - nixpkgs.pkgs.haskell.packages.${compiler}.callPackage ./foo.nix { } +```nix +{ nixpkgs ? import {}, compiler ? "ghc7102" }: +nixpkgs.pkgs.haskell.packages.${compiler}.callPackage ./foo.nix { } +``` Finally, store the following code in a file called `shell.nix`: - - { nixpkgs ? import {}, compiler ? "ghc7102" }: - (import ./default.nix { inherit nixpkgs compiler; }).env +```nix +{ nixpkgs ? import {}, compiler ? "ghc7102" }: +(import ./default.nix { inherit nixpkgs compiler; }).env +``` At this point, you can run `nix-build` to have Nix compile your project and install it into a Nix store path. The local directory will contain a symlink @@ -486,9 +512,9 @@ libraries your package might need. If your package does not depend on any system-level libraries, then it's sufficient to run - - $ nix-shell --command "cabal configure" - +```shell +nix-shell --command "cabal configure" +``` once to set up your build. `cabal-install` determines the absolute paths to all resources required for the build and writes them into a config file in the `dist/` directory. Once that's done, you can run `cabal build` and any other @@ -502,14 +528,15 @@ If you want to do some quick-and-dirty hacking and don't want to bother setting up a `default.nix` and `shell.nix` file manually, then you can use the `--shell` flag offered by `cabal2nix` to have it generate a stand-alone `nix-shell` environment for you. With that feature, running - - $ cabal2nix --shell . >shell.nix - $ nix-shell --command "cabal configure" - +```shell +cabal2nix --shell . > shell.nix +nix-shell --command "cabal configure" +``` is usually enough to set up a build environment for any given Haskell package. You can even use that generated file to run `nix-build`, too: - - $ nix-build shell.nix +```shell +nix-build shell.nix +``` ### How to build projects that depend on each other @@ -518,33 +545,34 @@ you'll have to register those packages in the Nixpkgs set to make them visible for the dependency resolution performed by `callPackage`. First of all, change into each of your projects top-level directories and generate a `default.nix` file with `cabal2nix`: - - $ cd ~/src/foo && cabal2nix . >default.nix - $ cd ~/src/bar && cabal2nix . >default.nix - +```shell +cd ~/src/foo && cabal2nix . > default.nix +cd ~/src/bar && cabal2nix . > default.nix +``` Then edit your `~/.config/nixpkgs/config.nix` file to register those builds in the default Haskell package set: - - { - packageOverrides = super: let self = super.pkgs; in - { - haskellPackages = super.haskellPackages.override { - overrides = self: super: { - foo = self.callPackage ../src/foo {}; - bar = self.callPackage ../src/bar {}; - }; - }; - }; - } - +```nix +{ + packageOverrides = super: let self = super.pkgs; in + { + haskellPackages = super.haskellPackages.override { + overrides = self: super: { + foo = self.callPackage ../src/foo {}; + bar = self.callPackage ../src/bar {}; + }; + }; + }; +} +``` Once that's accomplished, `nix-env -f "" -qA haskellPackages` will show your packages like any other package from Hackage, and you can build them - - $ nix-build "" -A haskellPackages.foo - +```shell +nix-build "" -A haskellPackages.foo +``` or enter an interactive shell environment suitable for building them: - - $ nix-shell "" -A haskellPackages.bar.env +```shell +nix-shell "" -A haskellPackages.bar.env +``` ## Miscellaneous Topics @@ -555,20 +583,20 @@ to manipulate the package as much as you please. One useful application of this feature is to replace the default `mkDerivation` function with one that enables library profiling for all packages. To accomplish that, add configure the following snippet in your `~/.config/nixpkgs/config.nix` file: - - { - packageOverrides = super: let self = super.pkgs; in - { - profiledHaskellPackages = self.haskellPackages.override { - overrides = self: super: { - mkDerivation = args: super.mkDerivation (args // { - enableLibraryProfiling = true; - }); - }; - }; +```nix +{ + packageOverrides = super: let self = super.pkgs; in + { + profiledHaskellPackages = self.haskellPackages.override { + overrides = self: super: { + mkDerivation = args: super.mkDerivation (args // { + enableLibraryProfiling = true; + }); }; - } - + }; + }; +} +``` Then, replace instances of `haskellPackages` in the `cabal2nix`-generated `default.nix` or `shell.nix` files with `profiledHaskellPackages`. @@ -580,35 +608,39 @@ at the time of this writing. This is fine for users of GHC 7.10.x, but GHC 7.8.4 cannot compile that binary. Now, one way to solve that problem is to register an older version of `ghc-events` in the 7.8.x-specific package set. The first step is to generate Nix build instructions with `cabal2nix`: - - $ cabal2nix cabal://ghc-events-0.4.3.0 >~/.nixpkgs/ghc-events-0.4.3.0.nix - +```shell +cabal2nix cabal://ghc-events-0.4.3.0 > ~/.nixpkgs/ghc-events-0.4.3.0.nix +``` Then add the override in `~/.config/nixpkgs/config.nix`: - - { - packageOverrides = super: let self = super.pkgs; in - { - haskell = super.haskell // { - packages = super.haskell.packages // { - ghc784 = super.haskell.packages.ghc784.override { - overrides = self: super: { - ghc-events = self.callPackage ./ghc-events-0.4.3.0.nix {}; - }; - }; +```nix +{ + packageOverrides = super: let self = super.pkgs; in + { + haskell = super.haskell // { + packages = super.haskell.packages // { + ghc784 = super.haskell.packages.ghc784.override { + overrides = self: super: { + ghc-events = self.callPackage ./ghc-events-0.4.3.0.nix {}; }; }; }; - } + }; + }; +} +``` This code is a little crazy, no doubt, but it's necessary because the intuitive version +```nix +{ # ... - haskell.packages.ghc784 = super.haskell.packages.ghc784.override { - overrides = self: super: { - ghc-events = self.callPackage ./ghc-events-0.4.3.0.nix {}; - }; + haskell.packages.ghc784 = super.haskell.packages.ghc784.override { + overrides = self: super: { + ghc-events = self.callPackage ./ghc-events-0.4.3.0.nix {}; }; - + }; +} +``` doesn't do what we want it to: that code replaces the `haskell` package set in Nixpkgs with one that contains only one entry,`packages`, which contains only one entry `ghc784`. This override loses the `haskell.compiler` set, and it @@ -618,16 +650,16 @@ iterating over each step in hierarchy. Once it's accomplished, however, we can install a variant of `ghc-events` that's compiled with GHC 7.8.4: - - nix-env -f "" -iA haskell.packages.ghc784.ghc-events - +```shell +nix-env -f "" -iA haskell.packages.ghc784.ghc-events +``` Unfortunately, it turns out that this build fails again while executing the test suite! Apparently, the release archive on Hackage is missing some data files that the test suite requires, so we cannot run it. We accomplish that by re-generating the Nix expression with the `--no-check` flag: - - $ cabal2nix --no-check cabal://ghc-events-0.4.3.0 >~/.nixpkgs/ghc-events-0.4.3.0.nix - +```shell +cabal2nix --no-check cabal://ghc-events-0.4.3.0 > ~/.nixpkgs/ghc-events-0.4.3.0.nix +``` Now the builds succeeds. Of course, in the concrete example of `ghc-events` this whole exercise is not @@ -642,91 +674,71 @@ older version might be useful. GHC and distributed build farms don't get along well: - https://ghc.haskell.org/trac/ghc/ticket/4012 + - https://ghc.haskell.org/trac/ghc/ticket/4012 When you see an error like this one - - package foo-0.7.1.0 is broken due to missing package - text-1.2.0.4-98506efb1b9ada233bb5c2b2db516d91 - +``` +package foo-0.7.1.0 is broken due to missing package +text-1.2.0.4-98506efb1b9ada233bb5c2b2db516d91 +``` then you have to download and re-install `foo` and all its dependents from scratch: - - # nix-store -q --referrers /nix/store/*-haskell-text-1.2.0.4 \ - | xargs -L 1 nix-store --repair-path +```shell +nix-store -q --referrers /nix/store/*-haskell-text-1.2.0.4 \ + | xargs -L 1 nix-store --repair-path +``` If you're using additional Hydra servers other than `hydra.nixos.org`, then it might be necessary to purge the local caches that store data from those machines to disable these binary channels for the duration of the previous command, i.e. by running: - - rm /nix/var/nix/binary-cache-v3.sqlite - rm /nix/var/nix/manifests/* - rm /nix/var/nix/channel-cache/* - -### How to use the Haste Haskell-to-Javascript transpiler - -Open a shell with `haste-compiler` and `haste-cabal-install` (you don't actually need -`node`, but it can be useful to test stuff): - - $ nix-shell -p "haskellPackages.ghcWithPackages (self: with self; [haste-cabal-install haste-compiler])" -p nodejs - -You may not need the following step but if `haste-boot` fails to compile all the -packages it needs, this might do the trick - - $ haste-cabal update - -`haste-boot` builds a set of core libraries so that they can be used from Javascript -transpiled programs: - - $ haste-boot - -Transpile and run a "Hello world" program: - - $ echo 'module Main where main = putStrLn "Hello world"' > hello-world.hs - $ hastec --onexec hello-world.hs - $ node hello-world.js - Hello world +```shell +rm /nix/var/nix/binary-cache-v3.sqlite +rm /nix/var/nix/manifests/* +rm /nix/var/nix/channel-cache/* +``` ### Builds on Darwin fail with `math.h` not found Users of GHC on Darwin have occasionally reported that builds fail, because the compiler complains about a missing include file: - - fatal error: 'math.h' file not found - +``` +fatal error: 'math.h' file not found +``` The issue has been discussed at length in [ticket 6390](https://github.com/NixOS/nixpkgs/issues/6390), and so far no good solution has been proposed. As a work-around, users who run into this problem can configure the environment variables - - export NIX_CFLAGS_COMPILE="-idirafter /usr/include" - export NIX_CFLAGS_LINK="-L/usr/lib" - +```shell +export NIX_CFLAGS_COMPILE="-idirafter /usr/include" +export NIX_CFLAGS_LINK="-L/usr/lib" +``` in their `~/.bashrc` file to avoid the compiler error. ### Builds using Stack complain about missing system libraries - -- While building package zlib-0.5.4.2 using: - runhaskell -package=Cabal-1.22.4.0 -clear-package-db [... lots of flags ...] - Process exited with code: ExitFailure 1 - Logs have been written to: /home/foo/src/stack-ide/.stack-work/logs/zlib-0.5.4.2.log +``` +-- While building package zlib-0.5.4.2 using: + runhaskell -package=Cabal-1.22.4.0 -clear-package-db [... lots of flags ...] +Process exited with code: ExitFailure 1 +Logs have been written to: /home/foo/src/stack-ide/.stack-work/logs/zlib-0.5.4.2.log - Configuring zlib-0.5.4.2... - Setup.hs: Missing dependency on a foreign library: - * Missing (or bad) header file: zlib.h - This problem can usually be solved by installing the system package that - provides this library (you may need the "-dev" version). If the library is - already installed but in a non-standard location then you can use the flags - --extra-include-dirs= and --extra-lib-dirs= to specify where it is. - If the header file does exist, it may contain errors that are caught by the C - compiler at the preprocessing stage. In this case you can re-run configure - with the verbosity flag -v3 to see the error messages. +Configuring zlib-0.5.4.2... +Setup.hs: Missing dependency on a foreign library: +* Missing (or bad) header file: zlib.h +This problem can usually be solved by installing the system package that +provides this library (you may need the "-dev" version). If the library is +already installed but in a non-standard location then you can use the flags +--extra-include-dirs= and --extra-lib-dirs= to specify where it is. +If the header file does exist, it may contain errors that are caught by the C +compiler at the preprocessing stage. In this case you can re-run configure +with the verbosity flag -v3 to see the error messages. +``` When you run the build inside of the nix-shell environment, the system -is configured to find libz.so without any special flags -- the compiler +is configured to find `libz.so` without any special flags -- the compiler and linker "just know" how to find it. Consequently, Cabal won't record -any search paths for libz.so in the package description, which means +any search paths for `libz.so` in the package description, which means that the package works fine inside of nix-shell, but once you leave the shell the shared object can no longer be found. That issue is by no means specific to Stack: you'll have that problem with any other @@ -735,63 +747,66 @@ environment. You can remedy this issue in several ways. The easiest is to add a `nix` section to the `stack.yaml` like the following: +```yaml +nix: + enable: true + packages: [ zlib ] +``` - nix: - enable: true - packages: [ zlib ] - -Stack's Nix support knows to add `${zlib.out}/lib` and `${zlib.dev}/include` as an -`--extra-lib-dirs` and `extra-include-dirs`, respectively. Alternatively, you -can achieve the same effect by hand. First of all, run - - $ nix-build --no-out-link "" -A zlib - /nix/store/alsvwzkiw4b7ip38l4nlfjijdvg3fvzn-zlib-1.2.8 - +Stack's Nix support knows to add `${zlib.out}/lib` and `${zlib.dev}/include` +as an `--extra-lib-dirs` and `extra-include-dirs`, respectively. +Alternatively, you can achieve the same effect by hand. First of all, run +``` +$ nix-build --no-out-link "" -A zlib +/nix/store/alsvwzkiw4b7ip38l4nlfjijdvg3fvzn-zlib-1.2.8 +``` to find out the store path of the system's zlib library. Now, you can -1) add that path (plus a "/lib" suffix) to your $LD_LIBRARY_PATH - environment variable to make sure your system linker finds libz.so - automatically. It's no pretty solution, but it will work. + 1. add that path (plus a "/lib" suffix) to your `$LD_LIBRARY_PATH` + environment variable to make sure your system linker finds `libz.so` + automatically. It's no pretty solution, but it will work. -2) As a variant of (1), you can also install any number of system - libraries into your user's profile (or some other profile) and point - $LD_LIBRARY_PATH to that profile instead, so that you don't have to - list dozens of those store paths all over the place. + 2. As a variant of (1), you can also install any number of system + libraries into your user's profile (or some other profile) and point + `$LD_LIBRARY_PATH` to that profile instead, so that you don't have to + list dozens of those store paths all over the place. -3) The solution I prefer is to call stack with an appropriate - --extra-lib-dirs flag like so: + 3. The solution I prefer is to call stack with an appropriate + --extra-lib-dirs flag like so: + ```shell + stack --extra-lib-dirs=/nix/store/alsvwzkiw4b7ip38l4nlfjijdvg3fvzn-zlib-1.2.8/lib build + ``` - $ stack --extra-lib-dirs=/nix/store/alsvwzkiw4b7ip38l4nlfjijdvg3fvzn-zlib-1.2.8/lib build + Typically, you'll need `--extra-include-dirs` as well. It's possible + to add those flag to the project's `stack.yaml` or your user's + global `~/.stack/global/stack.yaml` file so that you don't have to + specify them manually every time. But again, you're likely better off + using Stack's Nix support instead. - Typically, you'll need --extra-include-dirs as well. It's possible - to add those flag to the project's "stack.yaml" or your user's - global "~/.stack/global/stack.yaml" file so that you don't have to - specify them manually every time. But again, you're likely better off using - Stack's Nix support instead. - - The same thing applies to `cabal configure`, of course, if you're - building with `cabal-install` instead of Stack. + The same thing applies to `cabal configure`, of course, if you're + building with `cabal-install` instead of Stack. ### Creating statically linked binaries There are two levels of static linking. The first option is to configure the build with the Cabal flag `--disable-executable-dynamic`. In Nix expressions, this can be achieved by setting the attribute: - - enableSharedExecutables = false; - +``` +enableSharedExecutables = false; +``` That gives you a binary with statically linked Haskell libraries and dynamically linked system libraries. To link both Haskell libraries and system libraries statically, the additional flags `--ghc-option=-optl=-static --ghc-option=-optl=-pthread` need to be used. In Nix, this is accomplished with: +``` +configureFlags = [ "--ghc-option=-optl=-static" "--ghc-option=-optl=-pthread" ]; +``` - configureFlags = [ "--ghc-option=-optl=-static" "--ghc-option=-optl=-pthread" ]; - -It's important to realize, however, that most system libraries in Nix are built -as shared libraries only, i.e. there is just no static library available that -Cabal could link! +It's important to realize, however, that most system libraries in Nix are +built as shared libraries only, i.e. there is just no static library +available that Cabal could link! ### Building GHC with integer-simple @@ -801,7 +816,7 @@ The implementation can be found in the [integer-gmp](http://hackage.haskell.org/package/integer-gmp) package. A potential problem with this is that GMP is licensed under the -[​GNU Lesser General Public License (LGPL)](http://www.gnu.org/copyleft/lesser.html), +[GNU Lesser General Public License (LGPL)](http://www.gnu.org/copyleft/lesser.html), a kind of "copyleft" license. According to the terms of the LGPL, paragraph 5, you may distribute a program that is designed to be compiled and dynamically linked with the library under the terms of your choice (i.e., commercially) but @@ -812,9 +827,9 @@ the work to be licensed" under the terms of the LGPL (including for free). The LGPL licensing for GMP is a problem for the overall licensing of binary programs compiled with GHC because most distributions (and builds) of GHC use -static libraries. (Dynamic libraries are currently distributed only for OS X.) +static libraries. (Dynamic libraries are currently distributed only for macOS.) The LGPL licensing situation may be worse: even though -​[The Glasgow Haskell Compiler License](https://www.haskell.org/ghc/license) +[The Glasgow Haskell Compiler License](https://www.haskell.org/ghc/license) is essentially a "free software" license (BSD3), according to paragraph 2 of the LGPL, GHC must be distributed under the terms of the LGPL! @@ -825,58 +840,120 @@ alternative implemention for Integer called To get a GHC compiler build with `integer-simple` instead of `integer-gmp` use the attribute: `haskell.compiler.integer-simple."${ghcVersion}"`. For example: - - $ nix-build -E '(import {}).haskell.compiler.integer-simple.ghc802' - ... - $ result/bin/ghc-pkg list | grep integer - integer-simple-0.1.1.1 - +``` +$ nix-build -E '(import {}).haskell.compiler.integer-simple.ghc802' +... +$ result/bin/ghc-pkg list | grep integer + integer-simple-0.1.1.1 +``` The following command displays the complete list of GHC compilers build with `integer-simple`: - - $ nix-env -f "" -qaP -A haskell.compiler.integer-simple - haskell.compiler.integer-simple.ghc7102 ghc-7.10.2 - haskell.compiler.integer-simple.ghc7103 ghc-7.10.3 - haskell.compiler.integer-simple.ghc722 ghc-7.2.2 - haskell.compiler.integer-simple.ghc742 ghc-7.4.2 - haskell.compiler.integer-simple.ghc783 ghc-7.8.3 - haskell.compiler.integer-simple.ghc784 ghc-7.8.4 - haskell.compiler.integer-simple.ghc801 ghc-8.0.1 - haskell.compiler.integer-simple.ghc802 ghc-8.0.2 - haskell.compiler.integer-simple.ghcHEAD ghc-8.1.20170106 +``` +$ nix-env -f "" -qaP -A haskell.compiler.integer-simple +haskell.compiler.integer-simple.ghc7102 ghc-7.10.2 +haskell.compiler.integer-simple.ghc7103 ghc-7.10.3 +haskell.compiler.integer-simple.ghc722 ghc-7.2.2 +haskell.compiler.integer-simple.ghc742 ghc-7.4.2 +haskell.compiler.integer-simple.ghc783 ghc-7.8.3 +haskell.compiler.integer-simple.ghc784 ghc-7.8.4 +haskell.compiler.integer-simple.ghc801 ghc-8.0.1 +haskell.compiler.integer-simple.ghc802 ghc-8.0.2 +haskell.compiler.integer-simple.ghcHEAD ghc-8.1.20170106 +``` To get a package set supporting `integer-simple` use the attribute: `haskell.packages.integer-simple."${ghcVersion}"`. For example use the following to get the `scientific` package build with `integer-simple`: +```shell +nix-build -A haskell.packages.integer-simple.ghc802.scientific +``` - $ nix-build -A haskell.packages.integer-simple.ghc802.scientific +### Quality assurance +The `haskell.lib` library includes a number of functions for checking for +various imperfections in Haskell packages. It's useful to apply these functions +to your own Haskell packages and integrate that in a Continuous Integration +server like [hydra](https://nixos.org/hydra/) to assure your packages maintain a +minimum level of quality. This section discusses some of these functions. + +#### failOnAllWarnings + +Applying `haskell.lib.failOnAllWarnings` to a Haskell package enables the +`-Wall` and `-Werror` GHC options to turn all warnings into build failures. + +#### buildStrictly + +Applying `haskell.lib.buildStrictly` to a Haskell package calls +`failOnAllWarnings` on the given package to turn all warnings into build +failures. Additionally the source of your package is gotten from first invoking +`cabal sdist` to ensure all needed files are listed in the Cabal file. + +#### checkUnusedPackages + +Applying `haskell.lib.checkUnusedPackages` to a Haskell package invokes +the [packunused](http://hackage.haskell.org/package/packunused) tool on the +package. `packunused` complains when it finds packages listed as build-depends +in the Cabal file which are redundant. For example: + +``` +$ nix-build -E 'let pkgs = import {}; in pkgs.haskell.lib.checkUnusedPackages {} pkgs.haskellPackages.scientific' +these derivations will be built: + /nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv +... +detected package components +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + - library + - testsuite(s): test-scientific + - benchmark(s): bench-scientific* + +(component names suffixed with '*' are not configured to be built) + +library +~~~~~~~ + +The following package dependencies seem redundant: + + - ghc-prim-0.5.0.0 + +testsuite(test-scientific) +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +no redundant packages dependencies found + +builder for ‘/nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv’ failed with exit code 1 +error: build of ‘/nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv’ failed +``` + +As you can see, `packunused` finds out that although the testsuite component has +no redundant dependencies the library component of `scientific-0.3.5.1` depends +on `ghc-prim` which is unused in the library. ## Other resources -- The Youtube video [Nix Loves Haskell](https://www.youtube.com/watch?v=BsBhi_r-OeE) - provides an introduction into Haskell NG aimed at beginners. The slides are - available at http://cryp.to/nixos-meetup-3-slides.pdf and also -- in a form - ready for cut & paste -- at - https://github.com/NixOS/cabal2nix/blob/master/doc/nixos-meetup-3-slides.md. + - The Youtube video [Nix Loves Haskell](https://www.youtube.com/watch?v=BsBhi_r-OeE) + provides an introduction into Haskell NG aimed at beginners. The slides are + available at http://cryp.to/nixos-meetup-3-slides.pdf and also -- in a form + ready for cut & paste -- at + https://github.com/NixOS/cabal2nix/blob/master/doc/nixos-meetup-3-slides.md. -- Another Youtube video is [Escaping Cabal Hell with Nix](https://www.youtube.com/watch?v=mQd3s57n_2Y), - which discusses the subject of Haskell development with Nix but also provides - a basic introduction to Nix as well, i.e. it's suitable for viewers with - almost no prior Nix experience. + - Another Youtube video is [Escaping Cabal Hell with Nix](https://www.youtube.com/watch?v=mQd3s57n_2Y), + which discusses the subject of Haskell development with Nix but also provides + a basic introduction to Nix as well, i.e. it's suitable for viewers with + almost no prior Nix experience. -- Oliver Charles wrote a very nice [Tutorial how to develop Haskell packages with Nix](http://wiki.ocharles.org.uk/Nix). + - Oliver Charles wrote a very nice [Tutorial how to develop Haskell packages with Nix](http://wiki.ocharles.org.uk/Nix). -- The *Journey into the Haskell NG infrastructure* series of postings - describe the new Haskell infrastructure in great detail: + - The *Journey into the Haskell NG infrastructure* series of postings + describe the new Haskell infrastructure in great detail: - - [Part 1](http://lists.science.uu.nl/pipermail/nix-dev/2015-January/015591.html) - explains the differences between the old and the new code and gives - instructions how to migrate to the new setup. + - [Part 1](https://nixos.org/nix-dev/2015-January/015591.html) + explains the differences between the old and the new code and gives + instructions how to migrate to the new setup. - - [Part 2](http://lists.science.uu.nl/pipermail/nix-dev/2015-January/015608.html) - looks in-depth at how to tweak and configure your setup by means of - overrides. + - [Part 2](https://nixos.org/nix-dev/2015-January/015608.html) + looks in-depth at how to tweak and configure your setup by means of + overrides. - - [Part 3](http://lists.science.uu.nl/pipermail/nix-dev/2015-April/016912.html) - describes the infrastructure that keeps the Haskell package set in Nixpkgs - up-to-date. + - [Part 3](https://nixos.org/nix-dev/2015-April/016912.html) + describes the infrastructure that keeps the Haskell package set in Nixpkgs + up-to-date. diff --git a/doc/languages-frameworks/python.md b/doc/languages-frameworks/python.md index b127ba2faae..7bdbbbd903a 100644 --- a/doc/languages-frameworks/python.md +++ b/doc/languages-frameworks/python.md @@ -2,115 +2,204 @@ ## User Guide -Several versions of Python are available on Nix as well as a high amount of -packages. The default interpreter is CPython 2.7. - ### Using Python +#### Overview + +Several versions of the Python interpreter are available on Nix, as well as a +high amount of packages. The attribute `python` refers to the default +interpreter, which is currently CPython 2.7. It is also possible to refer to +specific versions, e.g. `python35` refers to CPython 3.5, and `pypy` refers to +the default PyPy interpreter. + +Python is used a lot, and in different ways. This affects also how it is +packaged. In the case of Python on Nix, an important distinction is made between +whether the package is considered primarily an application, or whether it should +be used as a library, i.e., of primary interest are the modules in +`site-packages` that should be importable. + +In the Nixpkgs tree Python applications can be found throughout, depending on +what they do, and are called from the main package set. Python libraries, +however, are in separate sets, with one set per interpreter version. + +The interpreters have several common attributes. One of these attributes is +`pkgs`, which is a package set of Python libraries for this specific +interpreter. E.g., the `toolz` package corresponding to the default interpreter +is `python.pkgs.toolz`, and the CPython 3.5 version is `python35.pkgs.toolz`. +The main package set contains aliases to these package sets, e.g. +`pythonPackages` refers to `python.pkgs` and `python35Packages` to +`python35.pkgs`. + #### Installing Python and packages -It is important to make a distinction between Python packages that are -used as libraries, and applications that are written in Python. +The Nix and NixOS manuals explain how packages are generally installed. In the +case of Python and Nix, it is important to make a distinction between whether the +package is considered an application or a library. -Applications on Nix are installed typically into your user +Applications on Nix are typically installed into your user profile imperatively using `nix-env -i`, and on NixOS declaratively by adding the package name to `environment.systemPackages` in `/etc/nixos/configuration.nix`. Dependencies such as libraries are automatically installed and should not be installed explicitly. The same goes for Python applications and libraries. Python applications can be -installed in your profile, but Python libraries you would like to use to develop -cannot. If you do install libraries in your profile, then you will end up with -import errors. +installed in your profile. But Python libraries you would like to use for +development cannot be installed, at least not individually, because they won't +be able to find each other resulting in import errors. Instead, it is possible +to create an environment with `python.buildEnv` or `python.withPackages` where +the interpreter and other executables are able to find each other and all of the +modules. -#### Python environments using `nix-shell` +In the following examples we create an environment with Python 3.5, `numpy` and +`toolz`. As you may imagine, there is one limitation here, and that's that +you can install only one environment at a time. You will notice the complaints +about collisions when you try to install a second environment. -The recommended method for creating Python environments for development is with -`nix-shell`. Executing +##### Environment defined in separate `.nix` file -```sh -$ nix-shell -p python35Packages.numpy python35Packages.toolz +Create a file, e.g. `build.nix`, with the following expression +```nix +with import {}; + +python35.withPackages (ps: with ps; [ numpy toolz ]) +``` +and install it in your profile with +```shell +nix-env -if build.nix +``` +Now you can use the Python interpreter, as well as the extra packages (`numpy`, +`toolz`) that you added to the environment. + +##### Environment defined in `~/.config/nixpkgs/config.nix` + +If you prefer to, you could also add the environment as a package override to the Nixpkgs set, e.g. +using `config.nix`, +```nix +{ # ... + + packageOverrides = pkgs: with pkgs; { + myEnv = python35.withPackages (ps: with ps; [ numpy toolz ]); + }; +} +``` +and install it in your profile with +```shell +nix-env -iA nixpkgs.myEnv +``` +The environment is is installed by referring to the attribute, and considering +the `nixpkgs` channel was used. + +##### Environment defined in `/etc/nixos/configuration.nix` + +For the sake of completeness, here's another example how to install the environment system-wide. + +```nix +{ # ... + + environment.systemPackages = with pkgs; [ + (python35.withPackages(ps: with ps; [ numpy toolz ])) + ]; +} ``` -opens a Nix shell which has available the requested packages and dependencies. -Now you can launch the Python interpreter (which is itself a dependency) +#### Temporary Python environment with `nix-shell` +The examples in the previous section showed how to install a Python environment +into a profile. For development you may need to use multiple environments. +`nix-shell` gives the possibility to temporarily load another environment, akin +to `virtualenv`. + +There are two methods for loading a shell with Python packages. The first and recommended method +is to create an environment with `python.buildEnv` or `python.withPackages` and load that. E.g. +```sh +$ nix-shell -p 'python35.withPackages(ps: with ps; [ numpy toolz ])' +``` +opens a shell from which you can launch the interpreter ```sh [nix-shell:~] python3 ``` +The other method, which is not recommended, does not create an environment and requires you to list the packages directly, -If the packages were not available yet in the Nix store, Nix would download or -build them automatically. A convenient option with `nix-shell` is the `--run` -option, with which you can execute a command in the `nix-shell`. Let's say we -want the above environment and directly run the Python interpreter +```sh +$ nix-shell -p python35.pkgs.numpy python35.pkgs.toolz +``` +Again, it is possible to launch the interpreter from the shell. +The Python interpreter has the attribute `pkgs` which contains all Python libraries for that specific interpreter. +##### Load environment from `.nix` expression +As explained in the Nix manual, `nix-shell` can also load an +expression from a `.nix` file. Say we want to have Python 3.5, `numpy` +and `toolz`, like before, in an environment. Consider a `shell.nix` file +with +```nix +with import {}; + +python35.withPackages (ps: [ps.numpy ps.toolz]) +``` +Executing `nix-shell` gives you again a Nix shell from which you can run Python. + +What's happening here? + +1. We begin with importing the Nix Packages collections. `import ` imports the `` function, `{}` calls it and the `with` statement brings all attributes of `nixpkgs` in the local scope. These attributes form the main package set. +2. Then we create a Python 3.5 environment with the `withPackages` function. +3. The `withPackages` function expects us to provide a function as an argument that takes the set of all python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` from the package set. + +##### Execute command with `--run` +A convenient option with `nix-shell` is the `--run` +option, with which you can execute a command in the `nix-shell`. We can +e.g. directly open a Python shell ```sh $ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3" ``` - -This way you can use the `--run` option also to directly run a script - +or run a script ```sh $ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3 myscript.py" ``` -In fact, for this specific use case there is a more convenient method. You can +##### `nix-shell` as shebang +In fact, for the second use case, there is a more convenient method. You can add a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script -specifying which dependencies Nix shell needs. With the following shebang, you -can use `nix-shell myscript.py` and it will make available all dependencies and +specifying which dependencies `nix-shell` needs. With the following shebang, you +can just execute `./myscript.py`, and it will make available all dependencies and run the script in the `python3` shell. ```py #! /usr/bin/env nix-shell -#! nix-shell -i python3 -p python3Packages.numpy +#! nix-shell -i 'python3.withPackages(ps: [ps.numpy])' import numpy print(numpy.__version__) ``` -Likely you do not want to type your dependencies each and every time. What you -can do is write a simple Nix expression which sets up an environment for you, -requiring you only to type `nix-shell`. Say we want to have Python 3.5, `numpy` -and `toolz`, like before, in an environment. With a `shell.nix` file -containing -```nix -with import {}; - -(pkgs.python35.withPackages (ps: [ps.numpy ps.toolz])).env -``` -executing `nix-shell` gives you again a Nix shell from which you can run Python. - -What's happening here? - -1. We begin with importing the Nix Packages collections. `import ` import the `` function, `{}` calls it and the `with` statement brings all attributes of `nixpkgs` in the local scope. Therefore we can now use `pkgs`. -2. Then we create a Python 3.5 environment with the `withPackages` function. -3. The `withPackages` function expects us to provide a function as an argument that takes the set of all python packages and returns a list of packages to include in the environment. Here, we select the packages `numpy` and `toolz` from the package set. -4. And finally, for in interactive use we return the environment by using the `env` attribute. - ### Developing with Python +Now that you know how to get a working Python environment with Nix, it is time +to go forward and start actually developing with Python. We will first have a +look at how Python packages are packaged on Nix. Then, we will look at how you +can use development mode with your code. -Now that you know how to get a working Python environment on Nix, it is time to go forward and start actually developing with Python. -We will first have a look at how Python packages are packaged on Nix. Then, we will look how you can use development mode with your code. +#### Packaging a library -#### Python packaging on Nix - -On Nix all packages are built by functions. The main function in Nix for building Python packages is [`buildPythonPackage`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/python/build-python-package.nix). -Let's see how we would build the `toolz` package. According to [`python-packages.nix`](https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/python-packages.nix) `toolz` is build using +With Nix all packages are built by functions. The main function in Nix for +building Python libraries is `buildPythonPackage`. Let's see how we can build the +`toolz` package. ```nix { # ... toolz = buildPythonPackage rec { - name = "toolz-${version}"; + pname = "toolz"; version = "0.7.4"; + name = "${pname}-${version}"; - src = pkgs.fetchurl { - url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; + src = fetchPypi { + inherit pname version; sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd"; }; + doCheck = false; + meta = { homepage = "http://github.com/pytoolz/toolz/"; description = "List processing tools and functional utilities"; @@ -122,63 +211,37 @@ Let's see how we would build the `toolz` package. According to [`python-packages ``` What happens here? The function `buildPythonPackage` is called and as argument -it accepts a set. In this case the set is a recursive set ([`rec`](http://nixos.org/nix/manual/#sec-constructs)). -One of the arguments is the name of the package, which consists of a basename -(generally following the name on PyPi) and a version. Another argument, `src` -specifies the source, which in this case is fetched from an url. `fetchurl` not -only downloads the target file, but also validates its hash. Furthermore, we -specify some (optional) [meta information](http://nixos.org/nixpkgs/manual/#chap-meta). - -The output of the function is a derivation, which is an attribute with the name -`toolz` of the set `pythonPackages`. Actually, sets are created for all interpreter versions, -so e.g. `python27Packages`, `python35Packages` and `pypyPackages`. +it accepts a set. In this case the set is a recursive set, `rec`. One of the +arguments is the name of the package, which consists of a basename (generally +following the name on PyPi) and a version. Another argument, `src` specifies the +source, which in this case is fetched from PyPI using the helper function +`fetchPypi`. The argument `doCheck` is used to set whether tests should be run +when building the package. Furthermore, we specify some (optional) meta +information. The output of the function is a derivation. +An expression for `toolz` can be found in the Nixpkgs repository. As explained +in the introduction of this Python section, a derivation of `toolz` is available +for each interpreter version, e.g. `python35.pkgs.toolz` refers to the `toolz` +derivation corresponding to the CPython 3.5 interpreter. The above example works when you're directly working on `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though, -you will want to test a Nix expression outside of the Nixpkgs tree. If you -create a `shell.nix` file with the following contents +you will want to test a Nix expression outside of the Nixpkgs tree. -```nix -with import {}; - -pkgs.python35Packages.buildPythonPackage rec { - name = "toolz-${version}"; - version = "0.8.0"; - - src = pkgs.fetchurl { - url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; - sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479"; - }; - - doCheck = false; - - meta = { - homepage = "http://github.com/pytoolz/toolz/"; - description = "List processing tools and functional utilities"; - license = licenses.bsd3; - maintainers = with maintainers; [ fridh ]; - }; -} -``` - -and then execute `nix-shell` will result in an environment in which you can use -Python 3.5 and the `toolz` package. As you can see we had to explicitly mention -for which Python version we want to build a package. - -The above example considered only a single package. Generally you will want to use multiple packages. -If we create a `shell.nix` file with the following contents +The following expression creates a derivation for the `toolz` package, +and adds it along with a `numpy` package to a Python environment. ```nix with import {}; ( let - toolz = pkgs.python35Packages.buildPythonPackage rec { - name = "toolz-${version}"; - version = "0.8.0"; + my_toolz = python35.pkgs.buildPythonPackage rec { + pname = "toolz"; + version = "0.7.4"; + name = "${pname}-${version}"; - src = pkgs.fetchurl { - url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; - sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479"; + src = python35.pkgs.fetchPypi { + inherit pname version; + sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd"; }; doCheck = false; @@ -189,24 +252,24 @@ with import {}; }; }; - in pkgs.python35.withPackages (ps: [ps.numpy toolz]) + in python35.withPackages (ps: [ps.numpy my_toolz]) ).env ``` +Executing `nix-shell` will result in an environment in which you can use +Python 3.5 and the `toolz` package. As you can see we had to explicitly mention +for which Python version we want to build a package. -and again execute `nix-shell`, then we get a Python 3.5 environment with our -locally defined package as well as `numpy` which is build according to the -definition in Nixpkgs. What did we do here? Well, we took the Nix expression -that we used earlier to build a Python environment, and said that we wanted to -include our own version of `toolz`. To introduce our own package in the scope of -`withPackages` we used a -[`let`](http://nixos.org/nix/manual/#sec-constructs) expression. -You can see that we used `ps.numpy` to select numpy from the nixpkgs package set (`ps`). -But we do not take `toolz` from the nixpkgs package set this time. -Instead, `toolz` will resolve to our local definition that we introduced with `let`. +So, what did we do here? Well, we took the Nix expression that we used earlier +to build a Python environment, and said that we wanted to include our own +version of `toolz`, named `my_toolz`. To introduce our own package in the scope +of `withPackages` we used a `let` expression. You can see that we used +`ps.numpy` to select numpy from the nixpkgs package set (`ps`). We did not take +`toolz` from the Nixpkgs package set this time, but instead took our own version +that we introduced with the `let` expression. -### Handling dependencies +#### Handling dependencies -Our example, `toolz`, doesn't have any dependencies on other Python +Our example, `toolz`, does not have any dependencies on other Python packages or system libraries. According to the manual, `buildPythonPackage` uses the arguments `buildInputs` and `propagatedBuildInputs` to specify dependencies. If something is exclusively a build-time dependency, then the dependency should be included as a @@ -340,7 +403,7 @@ other packages we like to have in the environment, all specified with `propagate Indeed, we can just add any package we like to have in our environment to `propagatedBuildInputs`. ```nix -with import ; +with import {}; with pkgs.python35Packages; buildPythonPackage rec { @@ -423,7 +486,7 @@ and in this case the `python35` interpreter is automatically used. ### Interpreters Versions 2.7, 3.3, 3.4, 3.5 and 3.6 of the CPython interpreter are available as -respectively `python27`, `python33`, `python34`, `python35` and `python36`. The PyPy interpreter +respectively `python27`, `python34`, `python35` and `python36`. The PyPy interpreter is available as `pypy`. The aliases `python2` and `python3` correspond to respectively `python27` and `python35`. The default interpreter, `python`, maps to `python2`. The Nix expressions for the interpreters can be found in @@ -469,7 +532,6 @@ sets are * `pkgs.python26Packages` * `pkgs.python27Packages` -* `pkgs.python33Packages` * `pkgs.python34Packages` * `pkgs.python35Packages` * `pkgs.python36Packages` @@ -528,7 +590,7 @@ By default tests are run because `doCheck = true`. Test dependencies, like e.g. the test runner, should be added to `buildInputs`. By default `meta.platforms` is set to the same value -as the interpreter unless overriden otherwise. +as the interpreter unless overridden otherwise. ##### `buildPythonPackage` parameters @@ -546,6 +608,35 @@ All parameters from `mkDerivation` function are still supported. * `catchConflicts` If `true`, abort package build if a package name appears more than once in dependency tree. Default is `true`. * `checkInputs` Dependencies needed for running the `checkPhase`. These are added to `buildInputs` when `doCheck = true`. +##### Overriding Python packages + +The `buildPythonPackage` function has a `overridePythonAttrs` method that +can be used to override the package. In the following example we create an +environment where we have the `blaze` package using an older version of `pandas`. +We override first the Python interpreter and pass +`packageOverrides` which contains the overrides for packages in the package set. + +```nix +with import {}; + +(let + python = let + packageOverrides = self: super: { + pandas = super.pandas.overridePythonAttrs(old: rec { + version = "0.19.1"; + name = "pandas-${version}"; + src = super.fetchPypi { + pname = "pandas"; + inherit version; + sha256 = "08blshqj9zj1wyjhhw3kl2vas75vhhicvv72flvf1z3jvapgw295"; + }; + }); + }; + in pkgs.python3.override {inherit packageOverrides;}; + +in python.withPackages(ps: [ps.blaze])).env +``` + #### `buildPythonApplication` function The `buildPythonApplication` function is practically the same as `buildPythonPackage`. @@ -580,7 +671,7 @@ running `nix-shell` with the following `shell.nix` with import {}; (python3.buildEnv.override { - extraLibs = with python3Packages; [ numpy requests2 ]; + extraLibs = with python3Packages; [ numpy requests ]; }).env ``` @@ -622,7 +713,7 @@ attribute. The `shell.nix` file from the previous section can thus be also writt ```nix with import {}; -(python33.withPackages (ps: [ps.numpy ps.requests2])).env +(python36.withPackages (ps: [ps.numpy ps.requests])).env ``` In contrast to `python.buildEnv`, `python.withPackages` does not support the more advanced options @@ -683,65 +774,36 @@ The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` and Both are also exported in `nix-shell`. +### Automatic tests + +It is recommended to test packages as part of the build process. +Source distributions (`sdist`) often include test files, but not always. + +By default the command `python setup.py test` is run as part of the +`checkPhase`, but often it is necessary to pass a custom `checkPhase`. An +example of such a situation is when `py.test` is used. + +#### Common issues + +- Non-working tests can often be deselected. By default `buildPythonPackage` runs `python setup.py test`. + Most python modules follows the standard test protocol where the pytest runner can be used instead. + `py.test` supports a `-k` parameter to ignore test methods or classes: + + ```nix + buildPythonPackage { + # ... + # assumes the tests are located in tests + checkInputs = [ pytest ]; + checkPhase = '' + py.test -k 'not function_name and not other_function' tests + ''; + } + ``` +- Unicode issues can typically be fixed by including `glibcLocales` in `buildInputs` and exporting `LC_ALL=en_US.utf-8`. +- Tests that attempt to access `$HOME` can be fixed by using the following work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` + ## FAQ -### How can I install a working Python environment? - -As explained in the user's guide installing individual Python packages -imperatively with `nix-env -i` or declaratively in `environment.systemPackages` -is not supported. However, it is possible to install a Python environment with packages (`python.buildEnv`). - -In the following examples we create an environment with Python 3.5, `numpy` and `ipython`. -As you might imagine there is one limitation here, and that's you can install -only one environment at a time. You will notice the complaints about collisions -when you try to install a second environment. - -#### Environment defined in separate `.nix` file - -Create a file, e.g. `build.nix`, with the following expression -```nix -with import {}; - -pkgs.python35.withPackages (ps: with ps; [ numpy ipython ]) -``` -and install it in your profile with -```shell -nix-env -if build.nix -``` -Now you can use the Python interpreter, as well as the extra packages that you added to the environment. - -#### Environment defined in `~/.nixpkgs/config.nix` - -If you prefer to, you could also add the environment as a package override to the Nixpkgs set. -```nix -{ # ... - - packageOverrides = pkgs: with pkgs; { - myEnv = python35.withPackages (ps: with ps; [ numpy ipython ]); - }; -} -``` -and install it in your profile with -```shell -nix-env -iA nixpkgs.myEnv -``` - -We're installing using the attribute path and assume the channels is named `nixpkgs`. -Note that I'm using the attribute path here. - -#### Environment defined in `/etc/nixos/configuration.nix` - -For the sake of completeness, here's another example how to install the environment system-wide. - -```nix -{ # ... - - environment.systemPackages = with pkgs; [ - (python35.withPackages(ps: with ps; [ numpy ipython ])) - ]; -} -``` - ### How to solve circular dependencies? Consider the packages `A` and `B` that depend on each other. When packaging `B`, @@ -755,17 +817,17 @@ In the following example we rename the `pandas` package and build it. ```nix with import {}; -let +(let python = let packageOverrides = self: super: { - pandas = super.pandas.override {name="foo";}; + pandas = super.pandas.overridePythonAttrs(old: {name="foo";}); }; in pkgs.python35.override {inherit packageOverrides;}; -in python.pkgs.pandas +in python.withPackages(ps: [ps.pandas])).env ``` -Using `nix-build` on this expression will build the package `pandas` -but with the new name `foo`. +Using `nix-build` on this expression will build an environment that contains the +package `pandas` but with the new name `foo`. All packages in the package set will use the renamed package. A typical use case is to switch to another version of a certain package. @@ -923,14 +985,37 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul If you are using the `bepasty-server` package somewhere, for example in `systemPackages` or indirectly from `services.bepasty`, then a `nixos-rebuild switch` will rebuild the system but with the `bepasty-server` package using a different `src` attribute. This way one can modify `python` based software/libraries easily. Using `self` and `super` one can also alter dependencies (`buildInputs`) between the old state (`self`) and new state (`super`). +### How to override a Python package using overlays? + +To alter a python package using overlays, you would use the following approach: + +```nix +self: super: +rec { + python = super.python.override { + packageOverrides = python-self: python-super: { + bepasty-server = python-super.bepasty-server.overrideAttrs ( oldAttrs: { + src = self.pkgs.fetchgit { + url = "https://github.com/bepasty/bepasty-server"; + sha256 = "9ziqshmsf0rjvdhhca55sm0x8jz76fsf2q4rwh4m6lpcf8wr0nps"; + rev = "e2516e8cf4f2afb5185337073607eb9e84a61d2d"; + }; + }); + }; + }; + pythonPackages = python.pkgs; +} +``` + ## Contributing ### Contributing guidelines Following rules are desired to be respected: -* Python libraries are supposed to be called from `python-packages.nix` and packaged with `buildPythonPackage`. The expression of a library should be in `pkgs/development/python-modules//default.nix`. Libraries in `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid merge conflicts. +* Python libraries are called from `python-packages.nix` and packaged with `buildPythonPackage`. The expression of a library should be in `pkgs/development/python-modules//default.nix`. Libraries in `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid merge conflicts. * Python applications live outside of `python-packages.nix` and are packaged with `buildPythonApplication`. * Make sure libraries build for all Python interpreters. * By default we enable tests. Make sure the tests are found and, in the case of libraries, are passing for all interpreters. If certain tests fail they can be disabled individually. Try to avoid disabling the tests altogether. In any case, when you disable tests, leave a comment explaining why. -* Commit names of Python libraries should include `pythonPackages`, for example `pythonPackages.numpy: 1.11 -> 1.12`. +* Commit names of Python libraries should reflect that they are Python libraries, so write for example `pythonPackages.numpy: 1.11 -> 1.12`. + diff --git a/doc/languages-frameworks/qt.xml b/doc/languages-frameworks/qt.xml index b6c8f0e899e..1dbbb5341ba 100644 --- a/doc/languages-frameworks/qt.xml +++ b/doc/languages-frameworks/qt.xml @@ -2,31 +2,55 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-language-qt"> -Qt and KDE +Qt -Qt is a comprehensive desktop and mobile application development toolkit for C++. Legacy support is available for Qt 3 and Qt 4, but all current development uses Qt 5. The Qt 5 packages in Nixpkgs are updated frequently to take advantage of new features, but older versions are typically retained to support packages that may not be compatible with the latest version. When packaging applications and libraries for Nixpkgs, it is important to ensure that compatible versions of Qt 5 are used throughout; this consideration motivates the tools described below. + +Qt is a comprehensive desktop and mobile application development toolkit for C++. +Legacy support is available for Qt 3 and Qt 4, but all current development uses Qt 5. +The Qt 5 packages in Nixpkgs are updated frequently to take advantage of new features, +but older versions are typically retained until their support window ends. +The most important consideration in packaging Qt-based software is ensuring that each package and all its dependencies use the same version of Qt 5; +this consideration motivates most of the tools described below. + -
Libraries +
Packaging Libraries for Nixpkgs -Libraries that depend on Qt 5 should be built with each available version to avoid linking a dependent package against incompatible versions of Qt 5. (Although Qt 5 maintains backward ABI compatibility, linking against multiple versions at once is generally not possible; at best it will lead to runtime faults.) Packages that provide libraries should be added to the top-level function mkLibsForQt5, which is used to build a set of libraries for every Qt 5 version. The callPackage provided in this scope will ensure that only one Qt version will be used throughout the dependency tree. Dependencies should be imported unqualified, i.e. qtbase not qt5.qtbase, so that callPackage can do its work. Do not import a package set such as qt5 or libsForQt5 into your package; although it may work fine in the moment, it could well break at the next Qt update. + +Whenever possible, libraries that use Qt 5 should be built with each available version. +Packages providing libraries should be added to the top-level function mkLibsForQt5, +which is used to build a set of libraries for every Qt 5 version. +A special callPackage function is used in this scope to ensure that the entire dependency tree uses the same Qt 5 version. +Import dependencies unqualified, i.e., qtbase not qt5.qtbase. +Do not import a package set such as qt5 or libsForQt5. + -If a library does not support a particular version of Qt 5, it is best to mark it as broken by setting its meta.broken attribute. A package may be marked broken for certain versions by testing the qtbase.version attribute, which will always give the current Qt 5 version. + +If a library does not support a particular version of Qt 5, it is best to mark it as broken by setting its meta.broken attribute. +A package may be marked broken for certain versions by testing the qtbase.version attribute, which will always give the current Qt 5 version. +
-
Applications +
Packaging Applications for Nixpkgs -Applications generally do not need to be built with every Qt version because they do not provide any libraries for dependent packages to link against. The primary consideration is merely ensuring that the application itself and its dependencies are linked against only one version of Qt. To call your application expression, use libsForQt5.callPackage instead of callPackage. Dependencies should be imported unqualified, i.e. qtbase not qt5.qtbase. Do not import a package set such as qt5 or libsForQt5 into your package; although it may work fine in the moment, it could well break at the next Qt update. + +Call your application expression using libsForQt5.callPackage instead of callPackage. +Import dependencies unqualified, i.e., qtbase not qt5.qtbase. +Do not import a package set such as qt5 or libsForQt5. + -It is generally best to build an application package against the libsForQt5 library set. In case a package does not build with the latest Qt version, it is possible to pick a set pinned to a particular version, e.g. libsForQt55 for Qt 5.5, if that is the latest version the package supports. + +Qt 5 maintains strict backward compatibility, so it is generally best to build an application package against the latest version using the libsForQt5 library set. +In case a package does not build with the latest Qt version, it is possible to pick a set pinned to a particular version, e.g. libsForQt55 for Qt 5.5, if that is the latest version the package supports. +If a package must be pinned to an older Qt version, be sure to file a bug upstream; +because Qt is strictly backwards-compatible, any incompatibility is by definition a bug in the application. + -Qt-based applications require that several paths be set at runtime. This is accomplished by wrapping the provided executables in a package with wrapQtProgram or makeQtWrapper during the postFixup phase. To use the wrapper generators, add makeQtWrapper to nativeBuildInputs. The wrapper generators support the same options as wrapProgram and makeWrapper respectively. It is usually only necessary to generate wrappers for programs intended to be invoked by the user. - -
- -
KDE - -The KDE Frameworks are a set of libraries for Qt 5 which form the basis of the Plasma desktop environment and the KDE Applications suite. Packaging a Frameworks-based library does not require any steps beyond those described above for general Qt-based libraries. Frameworks-based applications should not use makeQtWrapper; instead, use kdeWrapper to create the necessary wrappers: kdeWrapper { unwrapped = expr; targets = exes; }, where expr is the un-wrapped package expression and exes is a list of strings giving the relative paths to programs in the package which should be wrapped. + +When testing applications in Nixpkgs, it is a common practice to build the package with nix-build and run it using the created symbolic link. +This will not work with Qt applications, however, because they have many hard runtime requirements that can only be guaranteed if the package is actually installed. +To test a Qt application, install it with nix-env or run it inside nix-shell. +
diff --git a/doc/languages-frameworks/ruby.xml b/doc/languages-frameworks/ruby.xml index 3c6e4f5e01a..6bb809192f8 100644 --- a/doc/languages-frameworks/ruby.xml +++ b/doc/languages-frameworks/ruby.xml @@ -4,10 +4,14 @@ Ruby - There currently is support to bundle applications that are packaged as Ruby gems. The utility "bundix" allows you to write a Gemfile, let bundler create a Gemfile.lock, and then convert - this into a nix expression that contains all Gem dependencies automatically. +There currently is support to bundle applications that are packaged as +Ruby gems. The utility "bundix" allows you to write a +Gemfile, let bundler create a +Gemfile.lock, and then convert this into a nix +expression that contains all Gem dependencies automatically. + - For example, to package sensu, we did: +For example, to package sensu, we did: Gemfile source 'https://rubygems.org' gem 'sensu' -$ $(nix-build '' -A bundix)/bin/bundix --magic +$ $(nix-build '' -A bundix --no-out-link)/bin/bundix --magic $ cat > default.nix { lib, bundlerEnv, ruby }: @@ -38,15 +42,61 @@ bundlerEnv rec { }]]> -Please check in the Gemfile, Gemfile.lock and the gemset.nix so future updates can be run easily. +Please check in the Gemfile, +Gemfile.lock and the +gemset.nix so future updates can be run easily. -Resulting derivations also have two helpful items, env and wrapper. The first one allows one to quickly drop into -nix-shell with the specified environment present. E.g. nix-shell -A sensu.env would give you an environment with Ruby preset -so it has all the libraries necessary for sensu in its paths. The second one can be used to make derivations from custom Ruby scripts which have -Gemfiles with their dependencies specified. It is a derivation with ruby wrapped so it can find all the needed dependencies. -For example, to make a derivation my-script for a my-script.rb (which should be placed in bin) you should -run bundix as specified above and then use bundlerEnv lile this: +For tools written in Ruby - i.e. where the desire is to install +a package and then execute e.g. rake at the command +line, there is an alternative builder called bundlerApp. +Set up the gemset.nix the same way, and then, for +example: + + + + + + +The chief advantage of bundlerApp over +bundlerEnv is the executables introduced in the +environment are precisely those selected in the exes +list, as opposed to bundlerEnv which adds all the +executables made available by gems in the gemset, which can mean e.g. +rspec or rake in unpredictable +versions available from various packages. + + +Resulting derivations for both builders also have two helpful +attributes, env and wrappedRuby. +The first one allows one to quickly drop into +nix-shell with the specified environment present. +E.g. nix-shell -A sensu.env would give you an +environment with Ruby preset so it has all the libraries necessary +for sensu in its paths. The second one can be +used to make derivations from custom Ruby scripts which have +Gemfiles with their dependencies specified. It is +a derivation with ruby wrapped so it can find all +the needed dependencies. For example, to make a derivation +my-script for a my-script.rb +(which should be placed in bin) you should run +bundix as specified above and then use +bundlerEnv like this: + bundix as specified above and then use bundlerEn in stdenv.mkDerivation { name = "my-script"; - - buildInputs = [ env.wrapper ]; - + buildInputs = [ env.wrappedRuby ]; script = ./my-script.rb; - buildCommand = '' - mkdir -p $out/bin install -D -m755 $script $out/bin/my-script patchShebangs $out/bin/my-script ''; @@ -74,4 +120,3 @@ in stdenv.mkDerivation {
- diff --git a/doc/languages-frameworks/rust.md b/doc/languages-frameworks/rust.md index ef6ebc392b3..276b5496fbb 100644 --- a/doc/languages-frameworks/rust.md +++ b/doc/languages-frameworks/rust.md @@ -9,16 +9,15 @@ date: 2017-03-05 To install the rust compiler and cargo put ``` -rustStable.rustc -rustStable.cargo +rust ``` -into the `environment.systemPackages` or bring them into scope with -`nix-shell -p rustStable.rustc -p rustStable.cargo`. +into the `environment.systemPackages` or bring them into +scope with `nix-shell -p rust`. -There are also `rustBeta` and `rustNightly` package sets available. -These are not updated very regulary. For daily builds use either rustup from -nixpkgs or use the [Rust nightlies overlay](#using-the-rust-nightlies-overlay). +For daily builds (beta and nightly) use either rustup from +nixpkgs or use the [Rust nightlies +overlay](#using-the-rust-nightlies-overlay). ## Packaging Rust applications @@ -38,7 +37,7 @@ buildRustPackage rec { sha256 = "0y5d1n6hkw85jb3rblcxqas2fp82h3nghssa4xqrhqnz25l799pj"; }; - depsSha256 = "0q68qyl2h6i0qsz82z840myxlnjay8p1w5z7hfyr8fqp7wgwa9cx"; + cargoSha256 = "0q68qyl2h6i0qsz82z840myxlnjay8p1w5z7hfyr8fqp7wgwa9cx"; meta = with stdenv.lib; { description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep"; @@ -50,7 +49,7 @@ buildRustPackage rec { } ``` -`buildRustPackage` requires a `depsSha256` attribute which is computed over +`buildRustPackage` requires a `cargoSha256` attribute which is computed over all crate sources of this package. Currently it is obtained by inserting a fake checksum into the expression and building the package once. The correct checksum can be then take from the failed build. @@ -76,11 +75,11 @@ in the `~/.config/nixpkgs/overlays` directory. The latest version can be installed with the following command: - $ nix-env -Ai nixos.rustChannels.stable.rust + $ nix-env -Ai nixos.latest.rustChannels.stable.rust Or using the attribute with nix-shell: - $ nix-shell -p nixos.rustChannels.stable.rust + $ nix-shell -p nixos.latest.rustChannels.stable.rust To install the beta or nightly channel, "stable" should be substituted by "nightly" or "beta", or diff --git a/doc/languages-frameworks/vim.md b/doc/languages-frameworks/vim.md index 5442d706cb0..1d6a4fe8da8 100644 --- a/doc/languages-frameworks/vim.md +++ b/doc/languages-frameworks/vim.md @@ -8,15 +8,48 @@ date: 2016-06-25 You'll get a vim(-your-suffix) in PATH also loading the plugins you want. Loading can be deferred; see examples. -VAM (=vim-addon-manager) and Pathogen plugin managers are supported. -Vundle, NeoBundle could be your turn. +Vim packages, VAM (=vim-addon-manager) and Pathogen are supported to load +packages. -## dependencies by Vim plugins +## Custom configuration + +Adding custom .vimrc lines can be done using the following code: + +``` +vim_configurable.customize { + name = "vim-with-plugins"; + + vimrcConfig.customRC = '' + set hidden + ''; +} +``` + +## Vim packages + +To store you plugins in Vim packages the following example can be used: + +``` +vim_configurable.customize { + vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; { + # loaded on launch + start = [ youcompleteme fugitive ]; + # manually loadable by calling `:packadd $plugin-name` + opt = [ phpCompletion elm-vim ]; + # To automatically load a plugin when opening a filetype, add vimrc lines like: + # autocmd FileType php :packadd phpCompletion + } +}; +``` + +## VAM + +### dependencies by Vim plugins VAM introduced .json files supporting dependencies without versioning assuming that "using latest version" is ok most of the time. -## HOWTO +### Example First create a vim-scripts file having one plugin name per line. Example: diff --git a/doc/multiple-output.xml b/doc/multiple-output.xml index b7a363c750e..a2acc91e55a 100644 --- a/doc/multiple-output.xml +++ b/doc/multiple-output.xml @@ -16,7 +16,6 @@
Installing a split package When installing a package via systemPackages or nix-env you have several options: - Currently nix-env almost always installs all outputs until https://github.com/NixOS/nix/pull/815 gets merged. You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The outputs attribute contains a list of output names. You can let it use the default outputs. These are handled by meta.outputsToInstall attribute that contains a list of output names. @@ -74,7 +73,7 @@ $outputMan - is for man pages (except for section 3). They go to man or doc or $outputBin by default. + is for man pages (except for section 3). They go to man or $outputBin by default. @@ -84,7 +83,7 @@ $outputInfo - is for info pages. They go to info or doc or $outputMan by default. + is for info pages. They go to info or $outputBin by default. diff --git a/doc/overlays.xml b/doc/overlays.xml index 4b95f3e7288..cc0aef447d2 100644 --- a/doc/overlays.xml +++ b/doc/overlays.xml @@ -8,59 +8,88 @@ overlays. Overlays are used to add layers in the fix-point used by Nixpkgs to compose the set of all packages. +Nixpkgs can be configured with a list of overlays, which are +applied in order. This means that the order of the overlays can be significant +if multiple layers override the same package. +
-Installing Overlays +Installing overlays -The set of overlays is looked for in the following places. The -first one present is considered, and all the rest are ignored: +The list of overlays is determined as follows. + +If the overlays argument is not provided explicitly, we look for overlays in a path. The path +is determined as follows: + First, if an overlays argument to the nixpkgs function itself is given, + then that is used. - As an argument of the imported attribute set. When importing Nixpkgs, - the overlays attribute argument can be set to a list of - functions, which is described in . - + This can be passed explicitly when importing nipxkgs, for example + import <nixpkgs> { overlays = [ overlay1 overlay2 ]; }. + Otherwise, if the Nix path entry <nixpkgs-overlays> exists, we look for overlays + at that path, as described below. - In the directory pointed to by the Nix search path entry - <nixpkgs-overlays>. + See the section on NIX_PATH in the Nix manual for more details on how to + set a value for <nixpkgs-overlays>. - - In the directory ~/.config/nixpkgs/overlays/. + If one of ~/.config/nixpkgs/overlays.nix and + ~/.config/nixpkgs/overlays/ exists, then we look for overlays at that path, as + described below. It is an error if both exist. -For the second and third options, the directory should contain Nix expressions defining the -overlays. Each overlay can be a file, a directory containing a -default.nix, or a symlink to one of those. The expressions should follow -the syntax described in . +If we are looking for overlays at a path, then there are two cases: + + + If the path is a file, then the file is imported as a Nix expression and used as the list of + overlays. + -The order of the overlay layers can influence the recipe of packages if multiple layers override -the same recipe. In the case where overlays are loaded from a directory, they are loaded in -alphabetical order. + + If the path is a directory, then we take the content of the directory, order it + lexicographically, and attempt to interpret each as an overlay by: + + + Importing the file, if it is a .nix file. + + + Importing a top-level default.nix file, if it is a directory. + + + + + + -To install an overlay using the last option, you can clone the overlay's repository and add -a symbolic link to it in ~/.config/nixpkgs/overlays/ directory. +On a NixOS system the value of the nixpkgs.overlays option, if present, +is passed to the system Nixpkgs directly as an argument. Note that this does not affect the overlays for +non-NixOS operations (e.g. nix-env), which are looked up independently. + +The overlays.nix option therefore provides a convenient way to use the same +overlays for a NixOS system configuration and user configuration: the same file can be used +as overlays.nix and imported as the value of nixpkgs.overlays.
-
-Overlays Layout +
+Defining overlays -Overlays are expressed as Nix functions which accept 2 arguments and return a set of -packages. +Overlays are Nix functions which accept two arguments, +conventionally called self and super, +and return a set of packages. For example, the following is a valid overlay. self: super: @@ -75,25 +104,31 @@ self: super: } -The first argument, usually named self, corresponds to the final package +The first argument (self) corresponds to the final package set. You should use this set for the dependencies of all packages specified in your overlay. For example, all the dependencies of rr in the example above come -from self, as well as the overriden dependencies used in the +from self, as well as the overridden dependencies used in the boost override. -The second argument, usually named super, +The second argument (super) corresponds to the result of the evaluation of the previous stages of Nixpkgs. It does not contain any of the packages added by the current -overlay nor any of the following overlays. This set should be used either +overlay, nor any of the following overlays. This set should be used either to refer to packages you wish to override, or to access functions defined in Nixpkgs. For example, the original recipe of boost in the above example, comes from super, as well as the callPackage function. The value returned by this function should be a set similar to -pkgs/top-level/all-packages.nix, which contains +pkgs/top-level/all-packages.nix, containing overridden and/or new packages. +Overlays are similar to other methods for customizing Nixpkgs, in particular +the packageOverrides attribute described in . +Indeed, packageOverrides acts as an overlay with only the +super argument. It is therefore appropriate for basic use, +but overlays are more powerful and easier to distribute. +
diff --git a/doc/package-notes.xml b/doc/package-notes.xml index 0f148f5c898..4d87a3a67fe 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -101,7 +101,7 @@ modulesTree = [kernel] $ nix-env -i ncurses $ export NIX_CFLAGS_LINK=-lncurses $ make menuconfig ARCH=arch - + @@ -111,9 +111,9 @@ $ make menuconfig ARCH=arch - + - + @@ -366,15 +366,33 @@ it. Place the resulting package.nix file into
-
+
-Autojump +Interactive shell helpers - autojump needs the shell integration to be useful but unlike other systems, - nix doesn't have a standard share directory location. This is why a - autojump-share script is shipped that prints the location - of the shared folder. This can then be used in the .bashrc like this: + Some packages provide the shell integration to be more useful. But + unlike other systems, nix doesn't have a standard share directory + location. This is why a bunch PACKAGE-share + scripts are shipped that print the location of the corresponding + shared folder. + + Current list of such packages is as following: + + + + + autojump: autojump-share + + + + + fzf: fzf-share + + + + + E.g. autojump can then used in the .bashrc like this: source "$(autojump-share)/autojump.bash" @@ -391,24 +409,24 @@ it. Place the resulting package.nix file into Steam in Nix - Steam is distributed as a .deb file, for now only - as an i686 package (the amd64 package only has documentation). - When unpacked, it has a script called steam that + Steam is distributed as a .deb file, for now only + as an i686 package (the amd64 package only has documentation). + When unpacked, it has a script called steam that in ubuntu (their target distro) would go to /usr/bin - . When run for the first time, this script copies some - files to the user's home, which include another script that is the - ultimate responsible for launching the steam binary, which is also + . When run for the first time, this script copies some + files to the user's home, which include another script that is the + ultimate responsible for launching the steam binary, which is also in $HOME. Nix problems and constraints: - We don't have /bin/bash and many + We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python . We don't have the dynamic loader in /lib . - The steam.sh script in $HOME can + The steam.sh script in $HOME can not be patched, as it is checked and rewritten by steam. The steam binary cannot be patched, it's also checked. @@ -428,10 +446,10 @@ it. Place the resulting package.nix file into How to play - For 64-bit systems it's important to have - hardware.opengl.driSupport32Bit = true; - in your /etc/nixos/configuration.nix. You'll also need - hardware.pulseaudio.support32Bit = true; + For 64-bit systems it's important to have + hardware.opengl.driSupport32Bit = true; + in your /etc/nixos/configuration.nix. You'll also need + hardware.pulseaudio.support32Bit = true; if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller, you need to add services.udev.extraRules = '' @@ -452,31 +470,25 @@ it. Place the resulting package.nix file into Steam fails to start. What do I do? - Try to run + Try to run strace steam to see what is causing steam to fail. - Using the FOSS Radeon drivers - - The open source radeon drivers need a newer libc++ than is provided - by the default runtime, which leads to a crash on launch. Use - environment.systemPackages = [(pkgs.steam.override { newStdcpp = true; })]; - in your config if you get an error like - -libGL error: unable to load driver: radeonsi_dri.so -libGL error: driver pointer missing -libGL error: failed to load driver: radeonsi -libGL error: unable to load driver: swrast_dri.so -libGL error: failed to load driver: swrast - - Steam ships statically linked with a version of libcrypto that - conflics with the one dynamically loaded by radeonsi_dri.so. - If you get the error - steam.sh: line 713: 7842 Segmentation fault (core dumped) - have a look at this pull request. - + Using the FOSS Radeon or nouveau (nvidia) drivers + + The newStdcpp parameter + was removed since NixOS 17.09 and should not be needed anymore. + + + + Steam ships statically linked with a version of libcrypto that + conflics with the one dynamically loaded by radeonsi_dri.so. + If you get the error + steam.sh: line 713: 7842 Segmentation fault (core dumped) + have a look at this pull request. + @@ -486,7 +498,7 @@ libGL error: failed to load driver: swrast There is no java in steam chrootenv by default. If you get a message like /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found - You need to add + You need to add steam.override { withJava = true; }; to your configuration. @@ -501,14 +513,14 @@ libGL error: failed to load driver: swrast steam-run -The FHS-compatible chroot used for steam can also be used to run +The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. -To do it, add +To do it, add pkgs.(steam.override { nativeOnly = true; newStdcpp = true; }).run -to your configuration, rebuild, and run the game with +to your configuration, rebuild, and run the game with steam-run ./foo @@ -516,4 +528,140 @@ to your configuration, rebuild, and run the game with
+
+ +Emacs + +
+ +Configuring Emacs + + + The Emacs package comes with some extra helpers to make it easier to + configure. emacsWithPackages allows you to manage + packages from ELPA. This means that you will not have to install + that packages from within Emacs. For instance, if you wanted to use + company, counsel, + flycheck, ivy, + magit, projectile, and + use-package you could use this as a + ~/.config/nixpkgs/config.nix override: + + + +{ + packageOverrides = pkgs: with pkgs; { + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + } +} + + + + You can install it like any other packages via nix-env -iA + myEmacs. However, this will only install those packages. + It will not configure them for us. To do this, we + need to provide a configuration file. Luckily, it is possible to do + this from within Nix! By modifying the above example, we can make + Emacs load a custom config file. The key is to create a package that + provide a default.el file in + /share/emacs/site-start/. Emacs knows to load + this file automatically when it starts. + + + +{ + packageOverrides = pkgs: with pkgs; rec { + myEmacsConfig = writeText "default.el" '' +;; initialize package + +(require 'package) +(package-initialize 'noactivate) +(eval-when-compile + (require 'use-package)) + +;; load some packages + +(use-package company + :bind ("<C-tab>" . company-complete) + :diminish company-mode + :commands (company-mode global-company-mode) + :defer 1 + :config + (global-company-mode)) + +(use-package counsel + :commands (counsel-descbinds) + :bind (([remap execute-extended-command] . counsel-M-x) + ("C-x C-f" . counsel-find-file) + ("C-c g" . counsel-git) + ("C-c j" . counsel-git-grep) + ("C-c k" . counsel-ag) + ("C-x l" . counsel-locate) + ("M-y" . counsel-yank-pop))) + +(use-package flycheck + :defer 2 + :config (global-flycheck-mode)) + +(use-package ivy + :defer 1 + :bind (("C-c C-r" . ivy-resume) + ("C-x C-b" . ivy-switch-buffer) + :map ivy-minibuffer-map + ("C-j" . ivy-call)) + :diminish ivy-mode + :commands ivy-mode + :config + (ivy-mode 1)) + +(use-package magit + :defer + :if (executable-find "git") + :bind (("C-x g" . magit-status) + ("C-x G" . magit-dispatch-popup)) + :init + (setq magit-completing-read-function 'ivy-completing-read)) + +(use-package projectile + :commands projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + :defer 5 + :config + (projectile-global-mode)) + ''; + myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ + (runCommand "default.el" {} '' +mkdir -p $out/share/emacs/site-lisp +cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el +'') + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + }; +} + + + + This provides a fairly full Emacs start file. It will load in + addition to the user's presonal config. You can always disable it by + passing -q to the Emacs command. + + +
+ +
+ diff --git a/doc/quick-start.xml b/doc/quick-start.xml index 5ed959abace..ca86e6c9519 100644 --- a/doc/quick-start.xml +++ b/doc/quick-start.xml @@ -212,7 +212,7 @@ $ nix-env -f . -iA libfoo Optionally commit the new package and open a pull request, or send a patch to - nix-dev@cs.uu.nl. + https://groups.google.com/forum/#!forum/nix-devel. diff --git a/doc/reviewing-contributions.xml b/doc/reviewing-contributions.xml index f86928bcd5d..0813e0968e8 100644 --- a/doc/reviewing-contributions.xml +++ b/doc/reviewing-contributions.xml @@ -18,7 +18,7 @@ The high change rate of nixpkgs make any pull request that is open for long enough subject to conflicts that will require extra work from the submitter or the merger. Reviewing pull requests in a timely manner and being - responsive to the comments is the key to avoid these. Github provides sort + responsive to the comments is the key to avoid these. GitHub provides sort filters that can be used to see the most recently and the NIX_DEBUG - If set, stdenv will print some - debug information during the build. In particular, the - gcc and ld wrapper scripts - will print out the complete command line passed to the wrapped - tools. + + A natural number indicating how much information to log. + If set to 1 or higher, stdenv will print moderate debug information during the build. + In particular, the gcc and ld wrapper scripts will print out the complete command line passed to the wrapped tools. + If set to 6 or higher, the stdenv setup script will be run with set -x tracing. + If set to 7 or higher, the gcc and ld wrapper scripts will also be run with set -x tracing. + @@ -318,7 +320,13 @@ containing some shell commands to be executed, or by redefining the shell function namePhase. The former is convenient to override a phase from the derivation, while the -latter is convenient from a build script. +latter is convenient from a build script. + +However, typically one only wants to add some +commands to a phase, e.g. by defining postInstall +or preFixup, as skipping some of the default actions +may have unexpected consequences. +
Controlling @@ -634,6 +642,16 @@ script) if it exists.</para> true.</para></listitem> </varlistentry> + <varlistentry> + <term><varname>configurePlatforms</varname></term> + <listitem><para> + By default, when cross compiling, the configure script has <option>--build=...</option> and <option>--host=...</option> passed. + Packages can instead pass <literal>[ "build" "host" "target" ]</literal> or a subset to control exactly which platform flags are passed. + Compilers and other tools should use this to also pass the target platform, for example. + Note eventually these will be passed when in native builds too, to improve determinism: build-time guessing, as is done today, is a risk of impurity. + </para></listitem> + </varlistentry> + <varlistentry> <term><varname>preConfigure</varname></term> <listitem><para>Hook executed at the start of the configure @@ -680,8 +698,14 @@ nothing.</para> <listitem><para>A list of strings passed as additional flags to <command>make</command>. These flags are also used by the default install and check phase. For setting make flags specific to the - build phase, use <varname>buildFlags</varname> (see - below).</para></listitem> + build phase, use <varname>buildFlags</varname> (see below). + +<programlisting> +makeFlags = [ "PREFIX=$(out)" ]; +</programlisting> + + <note><para>The flags are quoted in bash, but environment variables can + be specified by using the make syntax.</para></note></para></listitem> </varlistentry> <varlistentry> @@ -1137,7 +1161,7 @@ makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello </listitem> </varlistentry> - + <varlistentry xml:id='fun-substitute'> <term><function>substitute</function> @@ -1156,7 +1180,7 @@ makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello <term><option>--replace</option> <replaceable>s1</replaceable> <replaceable>s2</replaceable></term> - <listitem><para>Replace every occurence of the string + <listitem><para>Replace every occurrence of the string <replaceable>s1</replaceable> by <replaceable>s2</replaceable>.</para></listitem> </varlistentry> @@ -1164,7 +1188,7 @@ makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello <varlistentry> <term><option>--subst-var</option> <replaceable>varName</replaceable></term> - <listitem><para>Replace every occurence of + <listitem><para>Replace every occurrence of <literal>@<replaceable>varName</replaceable>@</literal> by the contents of the environment variable <replaceable>varName</replaceable>. This is useful for @@ -1177,7 +1201,7 @@ makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello <term><option>--subst-var-by</option> <replaceable>varName</replaceable> <replaceable>s</replaceable></term> - <listitem><para>Replace every occurence of + <listitem><para>Replace every occurrence of <literal>@<replaceable>varName</replaceable>@</literal> by the string <replaceable>s</replaceable>.</para></listitem> </varlistentry> @@ -1225,7 +1249,7 @@ substitute ./foo.in ./foo.out \ <term><function>substituteAll</function> <replaceable>infile</replaceable> <replaceable>outfile</replaceable></term> - <listitem><para>Replaces every occurence of + <listitem><para>Replaces every occurrence of <literal>@<replaceable>varName</replaceable>@</literal>, where <replaceable>varName</replaceable> is any environment variable, in <replaceable>infile</replaceable>, writing the result to @@ -1296,7 +1320,7 @@ someVar=$(stripHash $name) </para></listitem> </varlistentry> - + <varlistentry xml:id='fun-wrapProgram'> <term><function>wrapProgram</function> @@ -1326,12 +1350,34 @@ someVar=$(stripHash $name) <variablelist> <varlistentry> - <term>GCC wrapper</term> - <listitem><para>Adds the <filename>include</filename> subdirectory - of each build input to the <envar>NIX_CFLAGS_COMPILE</envar> - environment variable, and the <filename>lib</filename> and - <filename>lib64</filename> subdirectories to - <envar>NIX_LDFLAGS</envar>.</para></listitem> + <term>CC Wrapper</term> + <listitem> + <para> + CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes. + Specifically, a C compiler (GCC or Clang), Binutils (or the CCTools + binutils mashup when targetting Darwin), and a C standard library (glibc or Darwin's libSystem) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by CC Wrapper. + Packages typically depend on only CC Wrapper, instead of those 3 inputs directly. + </para> + <para> + Dependency finding is undoubtedly the main task of CC wrapper. + It is currently accomplished by collecting directories of host-platform dependencies (i.e. <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>) in environment variables. + CC wrapper's setup hook causes any <filename>include</filename> subdirectory of such a dependency to be added to <envar>NIX_CFLAGS_COMPILE</envar>, and any <filename>lib</filename> and <filename>lib64</filename> subdirectories to <envar>NIX_LDFLAGS</envar>. + The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished. + </para> + <para> + A final task of the setup hook is defining a number of standard environment variables to tell build systems which executables full-fill which purpose. + They are defined to just be the base name of the tools, under the assumption that CC Wrapper's binaries will be on the path. + Firstly, this helps poorly-written packages, e.g. ones that look for just <command>gcc</command> when <envar>CC</envar> isn't defined yet <command>clang</command> is to be used. + Secondly, this helps packages not get confused when cross-compiling, in which case multiple CC wrappers may be simultaneous in use (targeting different platforms). + <envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of the normal environment variable are defined for the additional CC Wrappers, properly disambiguating them. + </para> + <para> + A problem with this final task is that CC Wrapper is honest and defines <envar>LD</envar> as <command>ld</command>. + Most packages, however, firstly use the C compiler for linking, secondly use <envar>LD</envar> anyways, defining it as the C compiler, and thirdly, only so define <envar>LD</envar> when it is undefined as a fallback. + This triple-threat means CC Wrapper will break those packages, as LD is already defined as the actually linker which the package won't override yet doesn't want to use. + The workaround is to define, just for the problematic package, <envar>LD</envar> as the C compiler. + A good way to do this would be <command>preConfigure = "LD=$CC"</command>. + </para> + </listitem> </varlistentry> <varlistentry> @@ -1528,7 +1574,7 @@ bin/blib.a(bios_console.o): In function `bios_handle_cup': depends on such a format string, it will need to be worked around. </para> - <para>Addtionally, some warnings are enabled which might trigger build + <para>Additionally, some warnings are enabled which might trigger build failures if compiler warnings are treated as errors in the package build. In this case, set <option>NIX_CFLAGS_COMPILE</option> to <option>-Wno-error=warning-type</option>.</para> @@ -1558,7 +1604,7 @@ fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute erro <term><varname>pic</varname></term> <listitem> <para>Adds the <option>-fPIC</option> compiler options. This options adds - support for position independant code in shared libraries and thus making + support for position independent code in shared libraries and thus making ASLR possible.</para> <para>Most notably, the Linux kernel, kernel modules and other code not running in an operating system environment like boot loaders won't diff --git a/doc/submitting-changes.xml b/doc/submitting-changes.xml index 0b09dffbb2d..f65b2898262 100644 --- a/doc/submitting-changes.xml +++ b/doc/submitting-changes.xml @@ -61,7 +61,7 @@ $ git checkout -b 'fix/pkg-name-update' <listitem> <para>Format the commit in a following way:</para> <programlisting> -(pkg-name | service-name): (from -> to | init at version | refactor | etc) +(pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc) Additional information. </programlisting> @@ -78,19 +78,19 @@ Additional information. <listitem> <para> -<command>firefox: 3.0 -> 3.1.1</command> +<command>firefox: 54.0.1 -> 55.0</command> </para> </listitem> <listitem> <para> -<command>hydra service: add bazBaz option</command> +<command>nixos/hydra: add bazBaz option</command> </para> </listitem> <listitem> <para> -<command>nginx service: refactor config generation</command> +<command>nixos/nginx: refactor config generation</command> </para> </listitem> </itemizedlist> @@ -196,7 +196,7 @@ Additional information. <itemizedlist> <listitem> -<para>Write the title in format <command>(pkg-name | service): improvement</command>. +<para>Write the title in format <command>(pkg-name | nixos/<module>): improvement</command>. <itemizedlist> <listitem> @@ -223,6 +223,133 @@ Additional information. </itemizedlist> </section> +<section> + <title>Pull Request Template + + The pull request template helps determine what steps have been made for a + contribution so far, and will help guide maintainers on the status of a + change. The motivation section of the PR should include any extra details + the title does not address and link any existing issues related to the pull + request. + + When a PR is created, it will be pre-populated with some checkboxes detailed below: + +
+ Tested using sandboxing + + When sandbox builds are enabled, Nix will setup an isolated environment + for each build process. It is used to remove further hidden dependencies + set by the build environment to improve reproducibility. This includes + access to the network during the build outside of + fetch* functions and files outside the Nix store. + Depending on the operating system access to other resources are blocked + as well (ex. inter process communication is isolated on Linux); see build-use-sandbox + in Nix manual for details. + + + Sandboxing is not enabled by default in Nix due to a small performance + hit on each build. In pull requests for nixpkgs people + are asked to test builds with sandboxing enabled (see Tested + using sandboxing in the pull request template) because + inhttps://nixos.org/hydra/ + sandboxing is also used. + + + Depending if you use NixOS or other platforms you can use one of the + following methods to enable sandboxing before building the package: + + + + Globally enable sandboxing on NixOS: + add the following to + configuration.nix + nix.useSandbox = true; + + + + + Globally enable sandboxing on non-NixOS platforms: + add the following to: /etc/nix/nix.conf + build-use-sandbox = true + + + + + +
+
+ Built on platform(s) + + Many Nix packages are designed to run on multiple + platforms. As such, it's important to let the maintainer know which + platforms your changes have been tested on. It's not always practical to + test a change on all platforms, and is not required for a pull request to + be merged. Only check the systems you tested the build on in this + section. + +
+
+ Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests) + + Packages with automated tests are much more likely to be merged in a + timely fashion because it doesn't require as much manual testing by the + maintainer to verify the functionality of the package. If there are + existing tests for the package, they should be run to verify your changes + do not break the tests. Tests only apply to packages with NixOS modules + defined and can only be run on Linux. For more details on writing and + running tests, see the section + in the NixOS manual. + +
+
+ Tested compilation of all pkgs that depend on this change using <command>nox-review</command> + + If you are updating a package's version, you can use nox to make sure all + packages that depend on the updated package still compile correctly. This + can be done using the nox utility. The nox-review + utility can look for and build all dependencies either based on + uncommited changes with the wip option or specifying a + github pull request number. + + + review uncommitted changes: + nix-shell -p nox --run nox-review wip + + + review changes from pull request number 12345: + nix-shell -p nox --run nox-review pr 12345 + +
+
+ Tested execution of all binary files (usually in <filename>./result/bin/</filename>) + + It's important to test any executables generated by a build when you + change or create a package in nixpkgs. This can be done by looking in + ./result/bin and running any files in there, or at a + minimum, the main executable for the package. For example, if you make a change + to texlive, you probably would only check the binaries + associated with the change you made rather than testing all of them. + +
+
+ Meets nixpkgs contribution standards + + The last checkbox is fits CONTRIBUTING.md. + The contributing document has detailed information on standards the Nix + community has for commit messages, reviews, licensing of contributions + you make to the project, etc... Everyone should read and understand the + standards the community has for contributing before submitting a pull + request. + + +
+
+
Hotfixing pull requests diff --git a/lib/attrsets.nix b/lib/attrsets.nix index d2946f6ca9c..19218cfe8ec 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -1,11 +1,11 @@ +{ lib }: # Operations on attribute sets. let inherit (builtins) head tail length; - inherit (import ./trivial.nix) and or; - inherit (import ./default.nix) fold; - inherit (import ./strings.nix) concatStringsSep; - inherit (import ./lists.nix) concatMap concatLists all deepSeqList; + inherit (lib.trivial) and or; + inherit (lib.strings) concatStringsSep; + inherit (lib.lists) fold concatMap concatLists all deepSeqList; in rec { diff --git a/lib/customisation.nix b/lib/customisation.nix index 4853290db54..483ef6fd486 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -1,6 +1,6 @@ +{ lib }: let - lib = import ./default.nix; inherit (builtins) attrNames isFunction; in @@ -51,6 +51,24 @@ rec { else { })); + /* `makeOverridable` takes a function from attribute set to attribute set and + injects `override` attibute which can be used to override arguments of + the function. + + nix-repl> x = {a, b}: { result = a + b; } + + nix-repl> y = lib.makeOverridable x { a = 1; b = 2; } + + nix-repl> y + { override = «lambda»; overrideDerivation = «lambda»; result = 3; } + + nix-repl> y.override { a = 10; } + { override = «lambda»; overrideDerivation = «lambda»; result = 12; } + + Please refer to "Nixpkgs Contributors Guide" section + ".overrideDerivation" to learn about `overrideDerivation` and caveats + related to its use. + */ makeOverridable = f: origArgs: let ff = f origArgs; @@ -167,7 +185,7 @@ rec { /* Make a set of packages with a common scope. All packages called with the provided `callPackage' will be evaluated with the same arguments. Any package in the set may depend on any other. The - `override' function allows subsequent modification of the package + `overrideScope' function allows subsequent modification of the package set in a consistent way, i.e. all packages in the set will be called with the overridden packages. The package sets may be hierarchical: the packages in the set are called with the scope @@ -177,7 +195,7 @@ rec { let self = f self // { newScope = scope: newScope (self // scope); callPackage = self.newScope {}; - override = g: + overrideScope = g: makeScope newScope (self_: let super = f self_; in super // g super self_); packages = f; diff --git a/lib/debug.nix b/lib/debug.nix index 5b3878554c5..646ef220ad0 100644 --- a/lib/debug.nix +++ b/lib/debug.nix @@ -1,4 +1,6 @@ -let lib = import ./default.nix; +{ lib }: + +let inherit (builtins) trace attrNamesToStr isAttrs isFunction isList isInt isString isBool head substring attrNames; @@ -20,8 +22,32 @@ rec { traceXMLValMarked = str: x: trace (str + builtins.toXML x) x; # strict trace functions (traced structure is fully evaluated and printed) + + /* `builtins.trace`, but the value is `builtins.deepSeq`ed first. */ traceSeq = x: y: trace (builtins.deepSeq x x) y; + + /* Like `traceSeq`, but only down to depth n. + * This is very useful because lots of `traceSeq` usages + * lead to an infinite recursion. + */ + traceSeqN = depth: x: y: with lib; + let snip = v: if isList v then noQuotes "[…]" v + else if isAttrs v then noQuotes "{…}" v + else v; + noQuotes = str: v: { __pretty = const str; val = v; }; + modify = n: fn: v: if (n == 0) then fn v + else if isList v then map (modify (n - 1) fn) v + else if isAttrs v then mapAttrs + (const (modify (n - 1) fn)) v + else v; + in trace (generators.toPretty { allowPrettyValues = true; } + (modify depth snip x)) y; + + /* `traceSeq`, but the same value is traced and returned */ traceValSeq = v: traceVal (builtins.deepSeq v v); + /* `traceValSeq` but with fixed depth */ + traceValSeqN = depth: v: traceSeqN depth v v; + # this can help debug your code as well - designed to not produce thousands of lines traceShowVal = x: trace (showVal x) x; diff --git a/lib/default.nix b/lib/default.nix index e692637abf1..3e30ec515fc 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -5,56 +5,127 @@ */ let - # trivial, often used functions - trivial = import ./trivial.nix; + callLibs = file: import file { inherit lib; }; - # datatypes - attrsets = import ./attrsets.nix; - lists = import ./lists.nix; - strings = import ./strings.nix; - stringsWithDeps = import ./strings-with-deps.nix; + lib = rec { - # packaging - customisation = import ./customisation.nix; - maintainers = import ./maintainers.nix; - meta = import ./meta.nix; - sources = import ./sources.nix; + # often used, or depending on very little + trivial = callLibs ./trivial.nix; + fixedPoints = callLibs ./fixed-points.nix; - # module system - modules = import ./modules.nix; - options = import ./options.nix; - types = import ./types.nix; + # datatypes + attrsets = callLibs ./attrsets.nix; + lists = callLibs ./lists.nix; + strings = callLibs ./strings.nix; + stringsWithDeps = callLibs ./strings-with-deps.nix; - # constants - licenses = import ./licenses.nix; - systems = import ./systems; + # packaging + customisation = callLibs ./customisation.nix; + maintainers = callLibs ./maintainers.nix; + meta = callLibs ./meta.nix; + sources = callLibs ./sources.nix; - # misc - debug = import ./debug.nix; - generators = import ./generators.nix; - misc = import ./deprecated.nix; - # domain-specific - sandbox = import ./sandbox.nix; - fetchers = import ./fetchers.nix; + # module system + modules = callLibs ./modules.nix; + options = callLibs ./options.nix; + types = callLibs ./types.nix; - # Eval-time filesystem handling - filesystem = import ./filesystem.nix; + # constants + licenses = callLibs ./licenses.nix; + systems = callLibs ./systems; -in - { inherit trivial - attrsets lists strings stringsWithDeps - customisation maintainers meta sources - modules options types - licenses systems - debug generators misc - sandbox fetchers filesystem; + # misc + debug = callLibs ./debug.nix; + + generators = callLibs ./generators.nix; + misc = callLibs ./deprecated.nix; + # domain-specific + sandbox = callLibs ./sandbox.nix; + fetchers = callLibs ./fetchers.nix; + + # Eval-time filesystem handling + filesystem = callLibs ./filesystem.nix; # back-compat aliases platforms = systems.doubles; - } - # !!! don't include everything at top-level; perhaps only the most - # commonly used functions. - // trivial // lists // strings // stringsWithDeps // attrsets // sources - // options // types // meta // debug // misc // modules - // customisation + + inherit (builtins) add addErrorContext attrNames + concatLists deepSeq elem elemAt filter genericClosure genList + getAttr hasAttr head isAttrs isBool isFunction isInt isList + isString length lessThan listToAttrs pathExists readFile + replaceStrings seq stringLength sub substring tail; + inherit (trivial) id const concat or and boolToString mergeAttrs + flip mapNullable inNixShell min max importJSON warn info + nixpkgsVersion mod; + + inherit (fixedPoints) fix fix' extends composeExtensions + makeExtensible makeExtensibleWithCustomName; + inherit (attrsets) attrByPath hasAttrByPath setAttrByPath + getAttrFromPath attrVals attrValues catAttrs filterAttrs + filterAttrsRecursive foldAttrs collect nameValuePair mapAttrs + mapAttrs' mapAttrsToList mapAttrsRecursive mapAttrsRecursiveCond + genAttrs isDerivation toDerivation optionalAttrs + zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil + recursiveUpdate matchAttrs overrideExisting getOutput getBin + getLib getDev chooseDevOutputs zipWithNames zip; + inherit (lists) singleton foldr fold foldl foldl' imap0 imap1 + concatMap flatten remove findSingle findFirst any all count + optional optionals toList range partition zipListsWith zipLists + reverseList listDfs toposort sort take drop sublist last init + crossLists unique intersectLists subtractLists + mutuallyExclusive; + inherit (strings) concatStrings concatMapStrings concatImapStrings + intersperse concatStringsSep concatMapStringsSep + concatImapStringsSep makeSearchPath makeSearchPathOutput + makeLibraryPath makeBinPath makePerlPath optionalString + hasPrefix hasSuffix stringToCharacters stringAsChars escape + escapeShellArg escapeShellArgs replaceChars lowerChars upperChars + toLower toUpper addContextFrom splitString removePrefix + removeSuffix versionOlder versionAtLeast getVersion nameFromURL + enableFeature fixedWidthString fixedWidthNumber isStorePath + toInt readPathsFromFile fileContents; + inherit (stringsWithDeps) textClosureList textClosureMap + noDepEntry fullDepEntry packEntry stringAfter; + inherit (customisation) overrideDerivation makeOverridable + callPackageWith callPackagesWith addPassthru hydraJob makeScope; + inherit (meta) addMetaAttrs dontDistribute setName updateName + appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio + hiPrioSet; + inherit (sources) pathType pathIsDirectory cleanSourceFilter + cleanSource sourceByRegex sourceFilesBySuffices + commitIdFromGitRepo; + inherit (modules) evalModules closeModules unifyModuleSyntax + applyIfFunction unpackSubmodule packSubmodule mergeModules + mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions + pushDownProperties dischargeProperties filterOverrides + sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride + mkOptionDefault mkDefault mkForce mkVMOverride mkStrict + mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions + mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule + mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule + mkAliasOptionModule doRename filterModules; + inherit (options) isOption mkEnableOption mkSinkUndeclaredOptions + mergeDefaultOption mergeOneOption mergeEqualOption getValues + getFiles optionAttrSetToDocList optionAttrSetToDocList' + scrubOptionValue literalExample showOption showFiles + unknownModule mkOption; + inherit (types) isType setType defaultTypeMerge defaultFunctor + isOptionType mkOptionType; + inherit (debug) addErrorContextToAttrs traceIf traceVal + traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq + traceValSeqN traceShowVal traceShowValMarked + showVal traceCall traceCall2 traceCall3 traceValIfNot runTests + testAllTrue strict traceCallXml attrNamesToStr; + inherit (misc) maybeEnv defaultMergeArg defaultMerge foldArgs + defaultOverridableDelayableArgs composedArgsAndFun + maybeAttrNullable maybeAttr ifEnable checkFlag getValue + checkReqs uniqList uniqListExt condConcat lazyGenericClosure + innerModifySumArgs modifySumArgs innerClosePropagation + closePropagation mapAttrsFlatten nvs setAttr setAttrMerge + mergeAttrsWithFunc mergeAttrsConcatenateValues + mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults + mergeAttrsByFuncDefaultsClean mergeAttrBy + prepareDerivationArgs nixType imap overridableDelayableArgs; + }; +in lib diff --git a/lib/deprecated.nix b/lib/deprecated.nix index 983e8d26892..2a0f5a55bf1 100644 --- a/lib/deprecated.nix +++ b/lib/deprecated.nix @@ -1,11 +1,12 @@ -let lib = import ./default.nix; +{ lib }: +let inherit (builtins) isFunction head tail isList isAttrs isInt attrNames; in -with import ./lists.nix; -with import ./attrsets.nix; -with import ./strings.nix; +with lib.lists; +with lib.attrsets; +with lib.strings; rec { @@ -309,48 +310,6 @@ rec { mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; }; mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"]; - # merge attrs based on version key into mkDerivation args, see mergeAttrBy to learn about smart merge defaults - # - # This function is best explained by an example: - # - # {version ? "2.x"}: - # - # mkDerivation (mergeAttrsByVersion "package-name" version - # { # version specific settings - # "git" = { src = ..; preConfigre = "autogen.sh"; buildInputs = [automake autoconf libtool]; }; - # "2.x" = { src = ..; }; - # } - # { // shared settings - # buildInputs = [ common build inputs ]; - # meta = { .. } - # } - # ) - # - # Please note that e.g. Eelco Dolstra usually prefers having one file for - # each version. On the other hand there are valuable additional design goals - # - readability - # - do it once only - # - try to avoid duplication - # - # Marc Weber and Michael Raskin sometimes prefer keeping older - # versions around for testing and regression tests - as long as its cheap to - # do so. - # - # Very often it just happens that the "shared" code is the bigger part. - # Then using this function might be appropriate. - # - # Be aware that its easy to cause recompilations in all versions when using - # this function - also if derivations get too complex splitting into multiple - # files is the way to go. - # - # See misc.nix -> versionedDerivation - # discussion: nixpkgs: pull/310 - mergeAttrsByVersion = name: version: attrsByVersion: base: - mergeAttrsByFuncDefaultsClean [ { name = "${name}-${version}"; } - base - (maybeAttr version (throw "bad version ${version} for ${name}") attrsByVersion) - ]; - # sane defaults (same name as attr name so that inherit can be used) mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; } listToAttrs (map (n: nameValuePair n lib.concat) @@ -423,4 +382,12 @@ rec { else if isInt x then "int" else "string"; + /* deprecated: + + For historical reasons, imap has an index starting at 1. + + But for consistency with the rest of the library we want an index + starting at zero. + */ + imap = imap1; } diff --git a/lib/fetchers.nix b/lib/fetchers.nix index 21f28c32ef7..1107353b51d 100644 --- a/lib/fetchers.nix +++ b/lib/fetchers.nix @@ -1,4 +1,5 @@ # snippets that can be shared by multiple fetchers (pkgs/build-support) +{ lib }: { proxyImpureEnvVars = [ diff --git a/lib/filesystem.nix b/lib/filesystem.nix index 91b04d81c13..fc35a1a72c6 100644 --- a/lib/filesystem.nix +++ b/lib/filesystem.nix @@ -1,4 +1,23 @@ -{ # locateDominatingFile : RegExp +{ lib }: +{ # haskellPathsInDir : Path -> Map String Path + # A map of all haskell packages defined in the given path, + # identified by having a cabal file with the same name as the + # directory itself. + haskellPathsInDir = root: + let # Files in the root + root-files = builtins.attrNames (builtins.readDir root); + # Files with their full paths + root-files-with-paths = + map (file: + { name = file; value = root + "/${file}"; } + ) root-files; + # Subdirectories of the root with a cabal file. + cabal-subdirs = + builtins.filter ({ name, value }: + builtins.pathExists (value + "/${name}.cabal") + ) root-files-with-paths; + in builtins.listToAttrs cabal-subdirs; + # locateDominatingFile : RegExp # -> Path # -> Nullable { path : Path; # matches : [ MatchResults ]; diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix new file mode 100644 index 00000000000..13e053b5aa7 --- /dev/null +++ b/lib/fixed-points.nix @@ -0,0 +1,79 @@ +{ ... }: +rec { + # Compute the fixed point of the given function `f`, which is usually an + # attribute set that expects its final, non-recursive representation as an + # argument: + # + # f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } + # + # Nix evaluates this recursion until all references to `self` have been + # resolved. At that point, the final result is returned and `f x = x` holds: + # + # nix-repl> fix f + # { bar = "bar"; foo = "foo"; foobar = "foobar"; } + # + # Type: fix :: (a -> a) -> a + # + # See https://en.wikipedia.org/wiki/Fixed-point_combinator for further + # details. + fix = f: let x = f x; in x; + + # A variant of `fix` that records the original recursive attribute set in the + # result. This is useful in combination with the `extends` function to + # implement deep overriding. See pkgs/development/haskell-modules/default.nix + # for a concrete example. + fix' = f: let x = f x // { __unfix__ = f; }; in x; + + # Modify the contents of an explicitly recursive attribute set in a way that + # honors `self`-references. This is accomplished with a function + # + # g = self: super: { foo = super.foo + " + "; } + # + # that has access to the unmodified input (`super`) as well as the final + # non-recursive representation of the attribute set (`self`). `extends` + # differs from the native `//` operator insofar as that it's applied *before* + # references to `self` are resolved: + # + # nix-repl> fix (extends g f) + # { bar = "bar"; foo = "foo + "; foobar = "foo + bar"; } + # + # The name of the function is inspired by object-oriented inheritance, i.e. + # think of it as an infix operator `g extends f` that mimics the syntax from + # Java. It may seem counter-intuitive to have the "base class" as the second + # argument, but it's nice this way if several uses of `extends` are cascaded. + extends = f: rattrs: self: let super = rattrs self; in super // f self super; + + # Compose two extending functions of the type expected by 'extends' + # into one where changes made in the first are available in the + # 'super' of the second + composeExtensions = + f: g: self: super: + let fApplied = f self super; + super' = super // fApplied; + in fApplied // g self super'; + + # Create an overridable, recursive attribute set. For example: + # + # nix-repl> obj = makeExtensible (self: { }) + # + # nix-repl> obj + # { __unfix__ = «lambda»; extend = «lambda»; } + # + # nix-repl> obj = obj.extend (self: super: { foo = "foo"; }) + # + # nix-repl> obj + # { __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; } + # + # nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; }) + # + # nix-repl> obj + # { __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; } + makeExtensible = makeExtensibleWithCustomName "extend"; + + # Same as `makeExtensible` but the name of the extending attribute is + # customized. + makeExtensibleWithCustomName = extenderName: rattrs: + fix' rattrs // { + ${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs); + }; +} diff --git a/lib/generators.nix b/lib/generators.nix index 4d3c920b0ae..5f9da234f44 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -7,10 +7,11 @@ * Tests can be found in ./tests.nix * Documentation in the manual, #sec-generators */ -with import ./trivial.nix; +{ lib }: +with (lib).trivial; let - libStr = import ./strings.nix; - libAttr = import ./attrsets.nix; + libStr = lib.strings; + libAttr = lib.attrsets; flipMapAttrs = flip libAttr.mapAttrs; in @@ -90,4 +91,41 @@ rec { * parsers as well. */ toYAML = {}@args: toJSON args; + + /* Pretty print a value, akin to `builtins.trace`. + * Should probably be a builtin as well. + */ + toPretty = { + /* If this option is true, attrsets like { __pretty = fn; val = …; } + will use fn to convert val to a pretty printed representation. + (This means fn is type Val -> String.) */ + allowPrettyValues ? false + }@args: v: with builtins; + if isInt v then toString v + else if isBool v then (if v == true then "true" else "false") + else if isString v then "\"" + v + "\"" + else if null == v then "null" + else if isFunction v then + let fna = functionArgs v; + showFnas = concatStringsSep "," (libAttr.mapAttrsToList + (name: hasDefVal: if hasDefVal then "(${name})" else name) + fna); + in if fna == {} then "<λ>" + else "<λ:{${showFnas}}>" + else if isList v then "[ " + + libStr.concatMapStringsSep " " (toPretty args) v + + " ]" + else if isAttrs v then + # apply pretty values if allowed + if attrNames v == [ "__pretty" "val" ] && allowPrettyValues + then v.__pretty v.val + # TODO: there is probably a better representation? + else if v ? type && v.type == "derivation" then "<δ>" + else "{ " + + libStr.concatStringsSep " " (libAttr.mapAttrsToList + (name: value: + "${toPretty args name} = ${toPretty args value};") v) + + " }" + else "toPretty: should never happen (v = ${v})"; + } diff --git a/lib/licenses.nix b/lib/licenses.nix index 000a55224ea..1bb153ce4c3 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -1,7 +1,6 @@ +{ lib }: let - lib = import ./default.nix; - spdx = lic: lic // { url = "http://spdx.org/licenses/${lic.spdxId}"; }; @@ -45,6 +44,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "Apple Public Source License 2.0"; }; + arphicpl = { + fullName = "Arphic Public License"; + url = https://www.freedesktop.org/wiki/Arphic_Public_License/; + }; + artistic1 = spdx { spdxId = "Artistic-1.0"; fullName = "Artistic License 1.0"; @@ -170,6 +174,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "DOC License"; }; + eapl = { + fullName = "EPSON AVASYS PUBLIC LICENSE"; + url = http://avasys.jp/hp/menu000000700/hpg000000603.htm; + free = false; + }; + efl10 = spdx { spdxId = "EFL-1.0"; fullName = "Eiffel Forum License v1.0"; @@ -193,7 +203,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { eupl11 = spdx { spdxId = "EUPL-1.1"; - fullname = "European Union Public License 1.1"; + fullName = "European Union Public License 1.1"; }; fdl12 = spdx { @@ -206,6 +216,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "GNU Free Documentation License v1.3"; }; + ffsl = { + fullName = "Floodgap Free Software License"; + url = http://www.floodgap.com/software/ffsl/license.html; + }; + free = { fullName = "Unspecified free software license"; }; @@ -266,6 +281,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception; }; + hpnd = spdx { + spdxId = "HPND"; + fullName = "Historic Permission Notice and Disclaimer"; + }; + # Intel's license, seems free iasl = { fullName = "iASL"; @@ -277,9 +297,10 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "Independent JPEG Group License"; }; - inria = { - fullName = "INRIA Non-Commercial License Agreement"; + inria-compcert = { + fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; url = "http://compcert.inria.fr/doc/LICENSE"; + free = false; }; ipa = spdx { @@ -358,7 +379,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { }; miros = { - fullname = "MirOS License"; + fullName = "MirOS License"; url = https://opensource.org/licenses/MirOS; }; @@ -403,7 +424,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { url = "https://raw.githubusercontent.com/raboof/notion/master/LICENSE"; fullName = "Notion modified LGPL"; }; - + ofl = spdx { spdxId = "OFL-1.1"; fullName = "SIL Open Font License 1.1"; @@ -531,17 +552,22 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec { fullName = "Do What The F*ck You Want To Public License"; }; + wxWindows = spdx { + spdxId = "WXwindows"; + fullName = "wxWindows Library Licence, Version 3.1"; + }; + zlib = spdx { spdxId = "Zlib"; fullName = "zlib License"; }; - zpt20 = spdx { # FIXME: why zpt* instead of zpl* + zpl20 = spdx { spdxId = "ZPL-2.0"; fullName = "Zope Public License 2.0"; }; - zpt21 = spdx { + zpl21 = spdx { spdxId = "ZPL-2.1"; fullName = "Zope Public License 2.1"; }; diff --git a/lib/lists.nix b/lib/lists.nix index fd746f4f97b..8f67c6bb0ca 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -1,6 +1,6 @@ # General list operations. - -with import ./trivial.nix; +{ lib }: +with lib.trivial; rec { @@ -77,15 +77,21 @@ rec { */ foldl' = builtins.foldl' or foldl; - /* Map with index - - FIXME(zimbatm): why does this start to count at 1? + /* Map with index starting from 0 Example: - imap (i: v: "${v}-${toString i}") ["a" "b"] + imap0 (i: v: "${v}-${toString i}") ["a" "b"] + => [ "a-0" "b-1" ] + */ + imap0 = f: list: genList (n: f n (elemAt list n)) (length list); + + /* Map with index starting from 1 + + Example: + imap1 (i: v: "${v}-${toString i}") ["a" "b"] => [ "a-1" "b-2" ] */ - imap = f: list: genList (n: f (n + 1) (elemAt list n)) (length list); + imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list); /* Map and concatenate the result. @@ -471,4 +477,12 @@ rec { */ subtractLists = e: filter (x: !(elem x e)); + /* Test if two lists have no common element. + It should be slightly more efficient than (intersectLists a b == []) + */ + mutuallyExclusive = a: b: + (builtins.length a) == 0 || + (!(builtins.elem (builtins.head a) b) && + mutuallyExclusive (builtins.tail a) b); + } diff --git a/lib/maintainers.nix b/lib/maintainers.nix index bb8ca565dfd..97411d57bea 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -1,3 +1,4 @@ +{ ...}: /* List of NixOS maintainers. The format is: handle = "Real Name "; @@ -16,6 +17,7 @@ acowley = "Anthony Cowley "; adelbertc = "Adelbert Chang "; adev = "Adrien Devresse "; + adisbladis = "Adam Hose "; Adjective-Object = "Maxwell Huang-Hobbs "; adnelson = "Allen Nelson "; adolfogc = "Adolfo E. García Castro "; @@ -29,20 +31,25 @@ ak = "Alexander Kjeldaas "; akaWolf = "Artjom Vejsel "; akc = "Anders Claesson "; + alexvorobiev = "Alex Vorobiev "; dezgeg = "Tuomas Tynkkynen "; + dfordivam = "Divam "; dfoxfranke = "Daniel Fox Franke "; dgonyeo = "Derek Gonyeo "; dipinhora = "Dipin Hora "; + disassembler = "Samuel Leathers "; + dizfer = "David Izquierdo "; dmalikov = "Dmitry Malikov "; DmitryTsygankov = "Dmitry Tsygankov "; dmjio = "David Johnson "; dochang = "Desmond O. Chang "; domenkozar = "Domen Kozar "; + dotlambda = "Robert Schütz "; doublec = "Chris Double "; dpaetzel = "David Pätzel "; + dpflug = "David Pflug "; drets = "Dmytro Rets "; drewkett = "Andrew Burkett "; dsferruzza = "David Sferruzza "; dtzWill = "Will Dietz "; + dupgit = "Olivier Delhomme "; + dywedir = "Vladyslav M. "; e-user = "Alexander Kahl "; - ebzzry = "Rommel Martinez "; + earldouglas = "James Earl Douglas "; + ebzzry = "Rommel Martinez "; edanaher = "Evan Danaher "; + edef = "edef "; ederoyd46 = "Matthew Brown "; eduarrrd = "Eduard Bachmakov "; edwtjo = "Edward Tjörnhammar "; @@ -158,22 +191,31 @@ ehegnes = "Eric Hegnes "; ehmry = "Emery Hemingway "; eikek = "Eike Kettner "; + ekleog = "Leo Gaspard "; elasticdog = "Aaron Bull Schaefer "; eleanor = "Dejan Lukan "; + elijahcaine = "Elijah Caine "; elitak = "Eric Litak "; ellis = "Ellis Whitehead "; eperuffo = "Emanuele Peruffo "; epitrochoid = "Mabry Cervin "; + eqyiel = "Ruben Maher "; ericbmerritt = "Eric Merritt "; ericsagnes = "Eric Sagnes "; + erictapen = "Justin Humm "; erikryb = "Erik Rybakken "; ertes = "Ertugrul Söylemez "; ethercrow = "Dmitry Ivanov "; + etu = "Elis Hirwing "; exi = "Reno Reckling "; exlevan = "Alexey Levan "; expipiplus1 = "Joe Hermaszewski "; fadenb = "Tristan Helmich "; falsifian = "James Cook "; + fare = "Francois-Rene Rideau "; + fgaz = "Francesco Gazzetta "; + flokli = "Florian Klink "; + florianjacob = "Florian Jacob "; flosse = "Markus Kohlhase "; fluffynukeit = "Daniel Austin "; fmthoma = "Franz Thoma "; @@ -189,14 +231,18 @@ fuuzetsu = "Mateusz Kowalczyk "; fuzzy-id = "Thomas Bach "; fxfactorial = "Edgar Aroutiounian "; + gabesoft = "Gabriel Adomnicai "; gal_bolle = "Florent Becker "; garbas = "Rok Garbas "; garrison = "Jim Garrison "; gavin = "Gavin Rogers "; gebner = "Gabriel Ebner "; + geistesk = "Alvar Penning "; + georgewhewell = "George Whewell "; gilligan = "Tobias Pflug "; giogadi = "Luis G. Torres "; gleber = "Gleb Peregud "; + glenns = "Glenn Searby "; globin = "Robin Gloster "; gnidorah = "Alex Ivanov "; goibhniu = "Cillian de Róiste "; @@ -204,70 +250,92 @@ goodrone = "Andrew Trachenko "; gpyh = "Yacine Hmito "; grahamc = "Graham Christensen "; + grburst = "Julius Elias "; gridaphobe = "Eric Seidel "; guibert = "David Guibert "; + guibou = "Guillaume Bouchard "; guillaumekoenig = "Guillaume Koenig "; guyonvarch = "Joris Guyonvarch "; hakuch = "Jesse Haber-Kucharsky "; + hamhut1066 = "Hamish Hutchings "; havvy = "Ryan Scheel "; hbunke = "Hendrik Bunke "; hce = "Hans-Christian Esperer "; + hectorj = "Hector Jusforgues "; heel = "Sergii Paryzhskyi "; henrytill = "Henry Till "; + hhm = "hhm "; hinton = "Tom Hinton "; + hodapp = "Chris Hodapp "; hrdinka = "Christoph Hrdinka "; + htr = "Hugo Tavares Reis "; iand675 = "Ian Duncan "; ianwookim = "Ian-Woo Kim "; + iblech = "Ingo Blechschmidt "; igsha = "Igor Sharonov "; ikervagyok = "Balázs Lengyel "; - infinisil = "Silvan Mosberger "1-foo2-bar" */ - concatImapStrings = f: list: concatStrings (lib.imap f list); + concatImapStrings = f: list: concatStrings (lib.imap1 f list); /* Place an element between each element of a list @@ -70,7 +70,7 @@ rec { concatImapStringsSep "-" (pos: x: toString (x / pos)) [ 6 6 6 ] => "6-3-2" */ - concatImapStringsSep = sep: f: list: concatStringsSep sep (lib.imap f list); + concatImapStringsSep = sep: f: list: concatStringsSep sep (lib.imap1 f list); /* Construct a Unix-style search path consisting of each `subDir" directory of the given list of packages. @@ -438,8 +438,13 @@ rec { => true isStorePath pkgs.python => true + isStorePath [] || isStorePath 42 || isStorePath {} || … + => false */ - isStorePath = x: builtins.substring 0 1 (toString x) == "/" && dirOf (builtins.toPath x) == builtins.storeDir; + isStorePath = x: + builtins.isString x + && builtins.substring 0 1 (toString x) == "/" + && dirOf (builtins.toPath x) == builtins.storeDir; /* Convert string to int Obviously, it is a bit hacky to use fromJSON that way. diff --git a/lib/systems/default.nix b/lib/systems/default.nix index d956969a18f..b1036b80c4d 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -1,7 +1,12 @@ +{ lib }: + let inherit (lib.attrsets) mapAttrs; in + rec { - doubles = import ./doubles.nix; - parse = import ./parse.nix; - platforms = import ./platforms.nix; + doubles = import ./doubles.nix { inherit lib; }; + parse = import ./parse.nix { inherit lib; }; + inspect = import ./inspect.nix { inherit lib; }; + platforms = import ./platforms.nix { inherit lib; }; + examples = import ./examples.nix { inherit lib; }; # Elaborate a `localSystem` or `crossSystem` so that it contains everything # necessary. @@ -18,6 +23,22 @@ rec { config = parse.tripleFromSystem final.parsed; # Just a guess, based on `system` platform = platforms.selectBySystem final.system; - } // args; + libc = + /**/ if final.isDarwin then "libSystem" + else if final.isMinGW then "msvcrt" + else if final.isLinux then "glibc" + # TODO(@Ericson2314) think more about other operating systems + else "native/impure"; + extensions = { + sharedLibrary = + /**/ if final.isDarwin then ".dylib" + else if final.isWindows then ".dll" + else ".so"; + executable = + /**/ if final.isWindows then ".exe" + else ""; + }; + } // mapAttrs (n: v: v final.parsed) inspect.predicates + // args; in final; } diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 2622ddf4be1..0cae8ec56fd 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -1,8 +1,10 @@ -let lists = import ../lists.nix; in -let parse = import ./parse.nix; in -let inherit (import ../attrsets.nix) matchAttrs; in - +{ lib }: let + inherit (lib) lists; + parse = import ./parse.nix { inherit lib; }; + inherit (import ./inspect.nix { inherit lib; }) predicates; + inherit (lib.attrsets) matchAttrs; + all = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" @@ -25,20 +27,21 @@ in rec { allBut = platforms: lists.filter (x: !(builtins.elem x platforms)) all; none = []; - arm = filterDoubles (matchAttrs { cpu = { family = "arm"; bits = 32; }; }); - i686 = filterDoubles parse.isi686; - mips = filterDoubles (matchAttrs { cpu = { family = "mips"; }; }); - x86_64 = filterDoubles parse.isx86_64; + arm = filterDoubles predicates.isArm; + i686 = filterDoubles predicates.isi686; + mips = filterDoubles predicates.isMips; + x86_64 = filterDoubles predicates.isx86_64; - cygwin = filterDoubles (matchAttrs { kernel = parse.kernels.cygwin; }); - darwin = filterDoubles parse.isDarwin; - freebsd = filterDoubles (matchAttrs { kernel = parse.kernels.freebsd; }); - gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }); # Should be better - illumos = filterDoubles (matchAttrs { kernel = parse.kernels.solaris; }); - linux = filterDoubles parse.isLinux; - netbsd = filterDoubles (matchAttrs { kernel = parse.kernels.netbsd; }); - openbsd = filterDoubles (matchAttrs { kernel = parse.kernels.openbsd; }); - unix = filterDoubles parse.isUnix; + cygwin = filterDoubles predicates.isCygwin; + darwin = filterDoubles predicates.isDarwin; + freebsd = filterDoubles predicates.isFreeBSD; + # Should be better, but MinGW is unclear, and HURD is bit-rotted. + gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }); + illumos = filterDoubles predicates.isSunOS; + linux = filterDoubles predicates.isLinux; + netbsd = filterDoubles predicates.isNetBSD; + openbsd = filterDoubles predicates.isOpenBSD; + unix = filterDoubles predicates.isUnix; mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux"]; } diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix new file mode 100644 index 00000000000..ff2273febcb --- /dev/null +++ b/lib/systems/examples.nix @@ -0,0 +1,130 @@ +# These can be passed to nixpkgs as either the `localSystem` or +# `crossSystem`. They are put here for user convenience, but also used by cross +# tests and linux cross stdenv building, so handle with care! +{ lib }: +let platforms = import ./platforms.nix { inherit lib; }; in + +rec { + # + # Linux + # + + sheevaplug = rec { + config = "armv5tel-unknown-linux-gnueabi"; + bigEndian = false; + arch = "armv5tel"; + float = "soft"; + withTLS = true; + libc = "glibc"; + platform = platforms.sheevaplug; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + raspberryPi = rec { + config = "armv6l-unknown-linux-gnueabihf"; + bigEndian = false; + arch = "armv6l"; + float = "hard"; + fpu = "vfp"; + withTLS = true; + libc = "glibc"; + platform = platforms.raspberrypi; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + armv7l-hf-multiplatform = rec { + config = "arm-unknown-linux-gnueabihf"; + bigEndian = false; + arch = "armv7-a"; + float = "hard"; + fpu = "vfpv3-d16"; + withTLS = true; + libc = "glibc"; + platform = platforms.armv7l-hf-multiplatform; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + aarch64-multiplatform = rec { + config = "aarch64-unknown-linux-gnu"; + bigEndian = false; + arch = "aarch64"; + withTLS = true; + libc = "glibc"; + platform = platforms.aarch64-multiplatform; + inherit (platform) gcc; + }; + + scaleway-c1 = armv7l-hf-multiplatform // rec { + platform = platforms.scaleway-c1; + inherit (platform) gcc; + inherit (gcc) fpu; + }; + + pogoplug4 = rec { + arch = "armv5tel"; + config = "armv5tel-softfloat-linux-gnueabi"; + float = "soft"; + + platform = platforms.pogoplug4; + + inherit (platform) gcc; + libc = "glibc"; + + withTLS = true; + openssl.system = "linux-generic32"; + }; + + fuloongminipc = rec { + config = "mips64el-unknown-linux-gnu"; + bigEndian = false; + arch = "mips"; + float = "hard"; + withTLS = true; + libc = "glibc"; + platform = platforms.fuloong2f_n32; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + # + # Darwin + # + + iphone64 = { + config = "aarch64-apple-darwin14"; + arch = "arm64"; + libc = "libSystem"; + platform = {}; + }; + + iphone32 = { + config = "arm-apple-darwin10"; + arch = "armv7-a"; + libc = "libSystem"; + platform = {}; + }; + + # + # Windows + # + + # 32 bit mingw-w64 + mingw32 = { + config = "i686-pc-mingw32"; + arch = "x86"; # Irrelevant + libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain + platform = {}; + }; + + # 64 bit mingw-w64 + mingwW64 = { + # That's the triplet they use in the mingw-w64 docs. + config = "x86_64-pc-mingw32"; + arch = "x86_64"; # Irrelevant + libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain + platform = {}; + }; +} diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix new file mode 100644 index 00000000000..a4fa9af4e0a --- /dev/null +++ b/lib/systems/inspect.nix @@ -0,0 +1,42 @@ +{ lib }: +with import ./parse.nix { inherit lib; }; +with lib.attrsets; +with lib.lists; + +rec { + patterns = rec { + "32bit" = { cpu = { bits = 32; }; }; + "64bit" = { cpu = { bits = 64; }; }; + i686 = { cpu = cpuTypes.i686; }; + x86_64 = { cpu = cpuTypes.x86_64; }; + PowerPC = { cpu = cpuTypes.powerpc; }; + x86 = { cpu = { family = "x86"; }; }; + Arm = { cpu = { family = "arm"; }; }; + Aarch64 = { cpu = { family = "aarch64"; }; }; + Mips = { cpu = { family = "mips"; }; }; + BigEndian = { cpu = { significantByte = significantBytes.bigEndian; }; }; + LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; }; + + BSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; + Unix = [ BSD Darwin Linux SunOS Hurd Cygwin ]; + + Darwin = { kernel = kernels.darwin; }; + Linux = { kernel = kernels.linux; }; + SunOS = { kernel = kernels.solaris; }; + FreeBSD = { kernel = kernels.freebsd; }; + Hurd = { kernel = kernels.hurd; }; + NetBSD = { kernel = kernels.netbsd; }; + OpenBSD = { kernel = kernels.openbsd; }; + Windows = { kernel = kernels.windows; }; + Cygwin = { kernel = kernels.windows; abi = abis.cygnus; }; + MinGW = { kernel = kernels.windows; abi = abis.gnu; }; + }; + + matchAnyAttrs = patterns: + if builtins.isList patterns then attrs: any (pattern: matchAttrs pattern attrs) patterns + else matchAttrs patterns; + + predicates = mapAttrs' + (name: value: nameValuePair ("is" + name) (matchAnyAttrs value)) + patterns; +} diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index f6315b8ad2a..d14ca04bfb9 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -1,15 +1,19 @@ -# Define the list of system with their properties. Only systems tested for -# Nixpkgs are listed below - -with import ../lists.nix; -with import ../types.nix; -with import ../attrsets.nix; +# Define the list of system with their properties. +# +# See https://clang.llvm.org/docs/CrossCompilation.html and +# http://llvm.org/docs/doxygen/html/Triple_8cpp_source.html especially +# Triple::normalize. Parsing should essentially act as a more conservative +# version of that last function. +{ lib }: +with lib.lists; +with lib.types; +with lib.attrsets; +with (import ./inspect.nix { inherit lib; }).predicates; let - lib = import ../default.nix; setTypesAssert = type: pred: mapAttrs (name: value: - #assert pred value; + assert pred value; setType type ({ inherit name; } // value)); setTypes = type: setTypesAssert type (_: true); @@ -23,7 +27,6 @@ rec { littleEndian = {}; }; - isCpuType = isType "cpu-type"; cpuTypes = with significantBytes; setTypesAssert "cpu-type" (x: elem x.bits [8 16 32 64 128] @@ -36,17 +39,18 @@ rec { armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; }; armv7a = { bits = 32; significantByte = littleEndian; family = "arm"; }; armv7l = { bits = 32; significantByte = littleEndian; family = "arm"; }; - aarch64 = { bits = 64; significantByte = littleEndian; family = "arm"; }; + aarch64 = { bits = 64; significantByte = littleEndian; family = "aarch64"; }; i686 = { bits = 32; significantByte = littleEndian; family = "x86"; }; x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; }; mips64el = { bits = 32; significantByte = littleEndian; family = "mips"; }; - powerpc = { bits = 32; significantByte = bigEndian; family = "powerpc"; }; + powerpc = { bits = 32; significantByte = bigEndian; family = "power"; }; }; isVendor = isType "vendor"; vendors = setTypes "vendor" { apple = {}; pc = {}; + unknown = {}; }; @@ -56,39 +60,45 @@ rec { elf = {}; macho = {}; pe = {}; + unknown = {}; }; isKernelFamily = isType "kernel-family"; kernelFamilies = setTypes "kernel-family" { bsd = {}; - unix = {}; - windows-nt = {}; - dos = {}; }; isKernel = x: isType "kernel" x; kernels = with execFormats; with kernelFamilies; setTypesAssert "kernel" (x: isExecFormat x.execFormat && all isKernelFamily (attrValues x.families)) { - cygwin = { execFormat = pe; families = { inherit /*unix*/ windows-nt; }; }; - darwin = { execFormat = macho; families = { inherit unix; }; }; - freebsd = { execFormat = elf; families = { inherit unix bsd; }; }; - linux = { execFormat = elf; families = { inherit unix; }; }; - netbsd = { execFormat = elf; families = { inherit unix bsd; }; }; - none = { execFormat = unknown; families = { inherit unix; }; }; - openbsd = { execFormat = elf; families = { inherit unix bsd; }; }; - solaris = { execFormat = elf; families = { inherit unix; }; }; - win32 = { execFormat = pe; families = { inherit dos; }; }; + darwin = { execFormat = macho; families = { }; }; + freebsd = { execFormat = elf; families = { inherit bsd; }; }; + hurd = { execFormat = elf; families = { }; }; + linux = { execFormat = elf; families = { }; }; + netbsd = { execFormat = elf; families = { inherit bsd; }; }; + none = { execFormat = unknown; families = { }; }; + openbsd = { execFormat = elf; families = { inherit bsd; }; }; + solaris = { execFormat = elf; families = { }; }; + windows = { execFormat = pe; families = { }; }; + } // { # aliases + # TODO(@Ericson2314): Handle these Darwin version suffixes more generally. + darwin10 = kernels.darwin; + darwin14 = kernels.darwin; + win32 = kernels.windows; }; - isAbi = isType "abi"; abis = setTypes "abi" { + cygnus = {}; gnu = {}; msvc = {}; eabi = {}; androideabi = {}; + gnueabi = {}; + gnueabihf = {}; + unknown = {}; }; @@ -99,27 +109,22 @@ rec { inherit cpu vendor kernel abi; }; - is64Bit = matchAttrs { cpu = { bits = 64; }; }; - is32Bit = matchAttrs { cpu = { bits = 32; }; }; - isi686 = matchAttrs { cpu = cpuTypes.i686; }; - isx86_64 = matchAttrs { cpu = cpuTypes.x86_64; }; - - isDarwin = matchAttrs { kernel = kernels.darwin; }; - isLinux = matchAttrs { kernel = kernels.linux; }; - isUnix = matchAttrs { kernel = { families = { inherit (kernelFamilies) unix; }; }; }; - isWindows = s: matchAttrs { kernel = { families = { inherit (kernelFamilies) windows-nt; }; }; } s - || matchAttrs { kernel = { families = { inherit (kernelFamilies) dos; }; }; } s; - - mkSkeletonFromList = l: { - "2" = { cpu = elemAt l 0; kernel = elemAt l 1; }; - "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; + "2" = # We only do 2-part hacks for things Nix already supports + if elemAt l 1 == "cygwin" + then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } + else if elemAt l 1 == "gnu" + then { cpu = elemAt l 0; kernel = "hurd"; abi = "gnu"; } + else { cpu = elemAt l 0; kernel = elemAt l 1; }; "3" = # Awkwards hacks, beware! if elemAt l 1 == "apple" then { cpu = elemAt l 0; vendor = "apple"; kernel = elemAt l 2; } else if (elemAt l 1 == "linux") || (elemAt l 2 == "gnu") then { cpu = elemAt l 0; kernel = elemAt l 1; abi = elemAt l 2; } + else if (elemAt l 2 == "mingw32") # autotools breaks on -gnu for window + then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; abi = "gnu"; } else throw "Target specification with 3 components is ambiguous"; + "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; }.${toString (length l)} or (throw "system string has invalid number of hyphen-separated components"); @@ -132,39 +137,34 @@ rec { , # Also inferred below abi ? assert false; null } @ args: let - getCpu = name: - attrByPath [name] (throw "Unknown CPU type: ${name}") - cpuTypes; - getVendor = name: - attrByPath [name] (throw "Unknown vendor: ${name}") - vendors; - getKernel = name: - attrByPath [name] (throw "Unknown kernel: ${name}") - kernels; - getAbi = name: - attrByPath [name] (throw "Unknown ABI: ${name}") - abis; + getCpu = name: cpuTypes.${name} or (throw "Unknown CPU type: ${name}"); + getVendor = name: vendors.${name} or (throw "Unknown vendor: ${name}"); + getKernel = name: kernels.${name} or (throw "Unknown kernel: ${name}"); + getAbi = name: abis.${name} or (throw "Unknown ABI: ${name}"); - system = rec { + parsed = rec { cpu = getCpu args.cpu; vendor = /**/ if args ? vendor then getVendor args.vendor - else if isDarwin system then vendors.apple - else if isWindows system then vendors.pc + else if isDarwin parsed then vendors.apple + else if isWindows parsed then vendors.pc else vendors.unknown; kernel = getKernel args.kernel; abi = /**/ if args ? abi then getAbi args.abi - else if isLinux system then abis.gnu - else if isWindows system then abis.gnu + else if isLinux parsed then abis.gnu + else if isWindows parsed then abis.gnu else abis.unknown; }; - in mkSystem system; + in mkSystem parsed; mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); - doubleFromSystem = { cpu, vendor, kernel, abi, ... }: "${cpu.name}-${kernel.name}"; + doubleFromSystem = { cpu, vendor, kernel, abi, ... }: + if abi == abis.cygnus + then "${cpu.name}-cygwin" + else "${cpu.name}-${kernel.name}"; tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}"; diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index 4322c8e2ff6..9ce697a1f7a 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -1,3 +1,4 @@ +{ lib }: rec { pcBase = { name = "pc"; @@ -21,6 +22,39 @@ rec { kernelAutoModules = false; }; + pogoplug4 = { + name = "pogoplug4"; + + gcc = { + arch = "armv5te"; + float = "soft"; + }; + + kernelMajor = "2.6"; + kernelHeadersBaseConfig = "multi_v5_defconfig"; + kernelBaseConfig = "multi_v5_defconfig"; + kernelArch = "arm"; + kernelAutoModules = false; + kernelExtraConfig = + '' + # Ubi for the mtd + MTD_UBI y + UBIFS_FS y + UBIFS_FS_XATTR y + UBIFS_FS_ADVANCED_COMPR y + UBIFS_FS_LZO y + UBIFS_FS_ZLIB y + UBIFS_FS_DEBUG n + ''; + kernelMakeFlags = [ "LOADADDR=0x8000" ]; + kernelTarget = "uImage"; + # TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working + #kernelDTB = true; + + # XXX can be anything non-null, pkgs actually only cares if it is set or not + uboot = "pogoplug4"; + }; + sheevaplug = { name = "sheevaplug"; kernelMajor = "2.6"; @@ -222,6 +256,10 @@ rec { arch = "armv6"; fpu = "vfp"; float = "hard"; + # TODO(@Ericson2314) what is this and is it a good idea? It was + # used in some cross compilation examples but not others. + # + # abi = "aapcs-linux"; }; }; @@ -307,6 +345,43 @@ rec { uboot = null; }; + scaleway-c1 = armv7l-hf-multiplatform // { + gcc = { + cpu = "cortex-a9"; + fpu = "vfpv3"; + float = "hard"; + }; + }; + + utilite = { + name = "utilite"; + kernelMajor = "2.6"; + kernelHeadersBaseConfig = "multi_v7_defconfig"; + kernelBaseConfig = "multi_v7_defconfig"; + kernelArch = "arm"; + kernelAutoModules = false; + kernelExtraConfig = + '' + # Ubi for the mtd + MTD_UBI y + UBIFS_FS y + UBIFS_FS_XATTR y + UBIFS_FS_ADVANCED_COMPR y + UBIFS_FS_LZO y + UBIFS_FS_ZLIB y + UBIFS_FS_DEBUG n + ''; + kernelMakeFlags = [ "LOADADDR=0x10800000" ]; + kernelTarget = "uImage"; + kernelDTB = true; + uboot = true; #XXX: any non-null value here is needed so that mkimage is present to build kernelTarget uImage + gcc = { + cpu = "cortex-a9"; + fpu = "neon"; + float = "hard"; + }; + }; + guruplug = sheevaplug // { # Define `CONFIG_MACH_GURUPLUG' (see # ) @@ -390,7 +465,10 @@ rec { ''; kernelTarget = "vmlinux"; uboot = null; - gcc.arch = "loongson2f"; + gcc = { + arch = "loongson2f"; + abi = "n32"; + }; }; beaglebone = armv7l-hf-multiplatform // { @@ -466,6 +544,13 @@ rec { # Cavium ThunderX stuff. PCI_HOST_THUNDER_ECAM y + + # Nvidia Tegra stuff. + PCI_TEGRA y + + # The default (=y) forces us to have the XHCI firmware available in initrd, + # which our initrd builder can't currently do easily. + USB_XHCI_TEGRA m ''; uboot = null; kernelTarget = "Image"; diff --git a/lib/tests.nix b/lib/tests.nix deleted file mode 100644 index 995a743fe43..00000000000 --- a/lib/tests.nix +++ /dev/null @@ -1,290 +0,0 @@ -# to run these tests: -# nix-instantiate --eval --strict nixpkgs/lib/tests.nix -# if the resulting list is empty, all tests passed -let inherit (builtins) add; in -with import ./default.nix; - -runTests { - - testId = { - expr = id 1; - expected = 1; - }; - - testConst = { - expr = const 2 3; - expected = 2; - }; - - /* - testOr = { - expr = or true false; - expected = true; - }; - */ - - testAnd = { - expr = and true false; - expected = false; - }; - - testFix = { - expr = fix (x: {a = if x ? a then "a" else "b";}); - expected = {a = "a";}; - }; - - testConcatMapStrings = { - expr = concatMapStrings (x: x + ";") ["a" "b" "c"]; - expected = "a;b;c;"; - }; - - testConcatStringsSep = { - expr = concatStringsSep "," ["a" "b" "c"]; - expected = "a,b,c"; - }; - - testFilter = { - expr = filter (x: x != "a") ["a" "b" "c" "a"]; - expected = ["b" "c"]; - }; - - testFold = - let - f = op: fold: fold op 0 (range 0 100); - # fold with associative operator - assoc = f builtins.add; - # fold with non-associative operator - nonAssoc = f builtins.sub; - in { - expr = { - assocRight = assoc foldr; - # right fold with assoc operator is same as left fold - assocRightIsLeft = assoc foldr == assoc foldl; - nonAssocRight = nonAssoc foldr; - nonAssocLeft = nonAssoc foldl; - # with non-assoc operator the fold results are not the same - nonAssocRightIsNotLeft = nonAssoc foldl != nonAssoc foldr; - # fold is an alias for foldr - foldIsRight = nonAssoc fold == nonAssoc foldr; - }; - expected = { - assocRight = 5050; - assocRightIsLeft = true; - nonAssocRight = 50; - nonAssocLeft = (-5050); - nonAssocRightIsNotLeft = true; - foldIsRight = true; - }; - }; - - testTake = testAllTrue [ - ([] == (take 0 [ 1 2 3 ])) - ([1] == (take 1 [ 1 2 3 ])) - ([ 1 2 ] == (take 2 [ 1 2 3 ])) - ([ 1 2 3 ] == (take 3 [ 1 2 3 ])) - ([ 1 2 3 ] == (take 4 [ 1 2 3 ])) - ]; - - testFoldAttrs = { - expr = foldAttrs (n: a: [n] ++ a) [] [ - { a = 2; b = 7; } - { a = 3; c = 8; } - ]; - expected = { a = [ 2 3 ]; b = [7]; c = [8];}; - }; - - testOverridableDelayableArgsTest = { - expr = - let res1 = defaultOverridableDelayableArgs id {}; - res2 = defaultOverridableDelayableArgs id { a = 7; }; - res3 = let x = defaultOverridableDelayableArgs id { a = 7; }; - in (x.merge) { b = 10; }; - res4 = let x = defaultOverridableDelayableArgs id { a = 7; }; - in (x.merge) ( x: { b = 10; }); - res5 = let x = defaultOverridableDelayableArgs id { a = 7; }; - in (x.merge) ( x: { a = add x.a 3; }); - res6 = let x = defaultOverridableDelayableArgs id { a = 7; mergeAttrBy = { a = add; }; }; - y = x.merge {}; - in (y.merge) { a = 10; }; - - resRem7 = res6.replace (a: removeAttrs a ["a"]); - - resReplace6 = let x = defaultOverridableDelayableArgs id { a = 7; mergeAttrBy = { a = add; }; }; - x2 = x.merge { a = 20; }; # now we have 27 - in (x2.replace) { a = 10; }; # and override the value by 10 - - # fixed tests (delayed args): (when using them add some comments, please) - resFixed1 = - let x = defaultOverridableDelayableArgs id ( x: { a = 7; c = x.fixed.b; }); - y = x.merge (x: { name = "name-${builtins.toString x.fixed.c}"; }); - in (y.merge) { b = 10; }; - strip = attrs: removeAttrs attrs ["merge" "replace"]; - in all id - [ ((strip res1) == { }) - ((strip res2) == { a = 7; }) - ((strip res3) == { a = 7; b = 10; }) - ((strip res4) == { a = 7; b = 10; }) - ((strip res5) == { a = 10; }) - ((strip res6) == { a = 17; }) - ((strip resRem7) == {}) - ((strip resFixed1) == { a = 7; b = 10; c =10; name = "name-10"; }) - ]; - expected = true; - }; - - testSort = { - expr = sort builtins.lessThan [ 40 2 30 42 ]; - expected = [2 30 40 42]; - }; - - testToIntShouldConvertStringToInt = { - expr = toInt "27"; - expected = 27; - }; - - testToIntShouldThrowErrorIfItCouldNotConvertToInt = { - expr = builtins.tryEval (toInt "\"foo\""); - expected = { success = false; value = false; }; - }; - - testHasAttrByPathTrue = { - expr = hasAttrByPath ["a" "b"] { a = { b = "yey"; }; }; - expected = true; - }; - - testHasAttrByPathFalse = { - expr = hasAttrByPath ["a" "b"] { a = { c = "yey"; }; }; - expected = false; - }; - - - /* Generator tests */ - # these tests assume attributes are converted to lists - # in alphabetical order - - testMkKeyValueDefault = { - expr = generators.mkKeyValueDefault ":" "f:oo" "bar"; - expected = ''f\:oo:bar''; - }; - - testToKeyValue = { - expr = generators.toKeyValue {} { - key = "value"; - "other=key" = "baz"; - }; - expected = '' - key=value - other\=key=baz - ''; - }; - - testToINIEmpty = { - expr = generators.toINI {} {}; - expected = ""; - }; - - testToINIEmptySection = { - expr = generators.toINI {} { foo = {}; bar = {}; }; - expected = '' - [bar] - - [foo] - ''; - }; - - testToINIDefaultEscapes = { - expr = generators.toINI {} { - "no [ and ] allowed unescaped" = { - "and also no = in keys" = 42; - }; - }; - expected = '' - [no \[ and \] allowed unescaped] - and also no \= in keys=42 - ''; - }; - - testToINIDefaultFull = { - expr = generators.toINI {} { - "section 1" = { - attribute1 = 5; - x = "Me-se JarJar Binx"; - }; - "foo[]" = { - "he\\h=he" = "this is okay"; - }; - }; - expected = '' - [foo\[\]] - he\h\=he=this is okay - - [section 1] - attribute1=5 - x=Me-se JarJar Binx - ''; - }; - - /* right now only invocation check */ - testToJSONSimple = - let val = { - foobar = [ "baz" 1 2 3 ]; - }; - in { - expr = generators.toJSON {} val; - # trivial implementation - expected = builtins.toJSON val; - }; - - /* right now only invocation check */ - testToYAMLSimple = - let val = { - list = [ { one = 1; } { two = 2; } ]; - all = 42; - }; - in { - expr = generators.toYAML {} val; - # trivial implementation - expected = builtins.toJSON val; - }; - - testSplitStringsSimple = { - expr = strings.splitString "." "a.b.c.d"; - expected = [ "a" "b" "c" "d" ]; - }; - - testSplitStringsEmpty = { - expr = strings.splitString "." "a..b"; - expected = [ "a" "" "b" ]; - }; - - testSplitStringsOne = { - expr = strings.splitString ":" "a.b"; - expected = [ "a.b" ]; - }; - - testSplitStringsNone = { - expr = strings.splitString "." ""; - expected = [ "" ]; - }; - - testSplitStringsFirstEmpty = { - expr = strings.splitString "/" "/a/b/c"; - expected = [ "" "a" "b" "c" ]; - }; - - testSplitStringsLastEmpty = { - expr = strings.splitString ":" "2001:db8:0:0042::8a2e:370:"; - expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ]; - }; - - testComposeExtensions = { - expr = let obj = makeExtensible (self: { foo = self.bar; }); - f = self: super: { bar = false; baz = true; }; - g = self: super: { bar = super.baz or false; }; - f_o_g = composeExtensions f g; - composed = obj.extend f_o_g; - in composed.foo; - expected = true; - }; - -} diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix new file mode 100644 index 00000000000..4c4c06fe78d --- /dev/null +++ b/lib/tests/misc.nix @@ -0,0 +1,361 @@ +# to run these tests: +# nix-instantiate --eval --strict nixpkgs/lib/tests/misc.nix +# if the resulting list is empty, all tests passed +with import ../default.nix; + +runTests { + + +# TRIVIAL + + testId = { + expr = id 1; + expected = 1; + }; + + testConst = { + expr = const 2 3; + expected = 2; + }; + + /* + testOr = { + expr = or true false; + expected = true; + }; + */ + + testAnd = { + expr = and true false; + expected = false; + }; + + testFix = { + expr = fix (x: {a = if x ? a then "a" else "b";}); + expected = {a = "a";}; + }; + + testComposeExtensions = { + expr = let obj = makeExtensible (self: { foo = self.bar; }); + f = self: super: { bar = false; baz = true; }; + g = self: super: { bar = super.baz or false; }; + f_o_g = composeExtensions f g; + composed = obj.extend f_o_g; + in composed.foo; + expected = true; + }; + +# STRINGS + + testConcatMapStrings = { + expr = concatMapStrings (x: x + ";") ["a" "b" "c"]; + expected = "a;b;c;"; + }; + + testConcatStringsSep = { + expr = concatStringsSep "," ["a" "b" "c"]; + expected = "a,b,c"; + }; + + testSplitStringsSimple = { + expr = strings.splitString "." "a.b.c.d"; + expected = [ "a" "b" "c" "d" ]; + }; + + testSplitStringsEmpty = { + expr = strings.splitString "." "a..b"; + expected = [ "a" "" "b" ]; + }; + + testSplitStringsOne = { + expr = strings.splitString ":" "a.b"; + expected = [ "a.b" ]; + }; + + testSplitStringsNone = { + expr = strings.splitString "." ""; + expected = [ "" ]; + }; + + testSplitStringsFirstEmpty = { + expr = strings.splitString "/" "/a/b/c"; + expected = [ "" "a" "b" "c" ]; + }; + + testSplitStringsLastEmpty = { + expr = strings.splitString ":" "2001:db8:0:0042::8a2e:370:"; + expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ]; + }; + + testIsStorePath = { + expr = + let goodPath = + "${builtins.storeDir}/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11"; + in { + storePath = isStorePath goodPath; + storePathAppendix = isStorePath + "${goodPath}/bin/python"; + nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath))); + asPath = isStorePath (builtins.toPath goodPath); + otherPath = isStorePath "/something/else"; + otherVals = { + attrset = isStorePath {}; + list = isStorePath []; + int = isStorePath 42; + }; + }; + expected = { + storePath = true; + storePathAppendix = false; + nonAbsolute = false; + asPath = true; + otherPath = false; + otherVals = { + attrset = false; + list = false; + int = false; + }; + }; + }; + +# LISTS + + testFilter = { + expr = filter (x: x != "a") ["a" "b" "c" "a"]; + expected = ["b" "c"]; + }; + + testFold = + let + f = op: fold: fold op 0 (range 0 100); + # fold with associative operator + assoc = f builtins.add; + # fold with non-associative operator + nonAssoc = f builtins.sub; + in { + expr = { + assocRight = assoc foldr; + # right fold with assoc operator is same as left fold + assocRightIsLeft = assoc foldr == assoc foldl; + nonAssocRight = nonAssoc foldr; + nonAssocLeft = nonAssoc foldl; + # with non-assoc operator the fold results are not the same + nonAssocRightIsNotLeft = nonAssoc foldl != nonAssoc foldr; + # fold is an alias for foldr + foldIsRight = nonAssoc fold == nonAssoc foldr; + }; + expected = { + assocRight = 5050; + assocRightIsLeft = true; + nonAssocRight = 50; + nonAssocLeft = (-5050); + nonAssocRightIsNotLeft = true; + foldIsRight = true; + }; + }; + + testTake = testAllTrue [ + ([] == (take 0 [ 1 2 3 ])) + ([1] == (take 1 [ 1 2 3 ])) + ([ 1 2 ] == (take 2 [ 1 2 3 ])) + ([ 1 2 3 ] == (take 3 [ 1 2 3 ])) + ([ 1 2 3 ] == (take 4 [ 1 2 3 ])) + ]; + + testFoldAttrs = { + expr = foldAttrs (n: a: [n] ++ a) [] [ + { a = 2; b = 7; } + { a = 3; c = 8; } + ]; + expected = { a = [ 2 3 ]; b = [7]; c = [8];}; + }; + + testSort = { + expr = sort builtins.lessThan [ 40 2 30 42 ]; + expected = [2 30 40 42]; + }; + + testToIntShouldConvertStringToInt = { + expr = toInt "27"; + expected = 27; + }; + + testToIntShouldThrowErrorIfItCouldNotConvertToInt = { + expr = builtins.tryEval (toInt "\"foo\""); + expected = { success = false; value = false; }; + }; + + testHasAttrByPathTrue = { + expr = hasAttrByPath ["a" "b"] { a = { b = "yey"; }; }; + expected = true; + }; + + testHasAttrByPathFalse = { + expr = hasAttrByPath ["a" "b"] { a = { c = "yey"; }; }; + expected = false; + }; + + +# GENERATORS +# these tests assume attributes are converted to lists +# in alphabetical order + + testMkKeyValueDefault = { + expr = generators.mkKeyValueDefault ":" "f:oo" "bar"; + expected = ''f\:oo:bar''; + }; + + testToKeyValue = { + expr = generators.toKeyValue {} { + key = "value"; + "other=key" = "baz"; + }; + expected = '' + key=value + other\=key=baz + ''; + }; + + testToINIEmpty = { + expr = generators.toINI {} {}; + expected = ""; + }; + + testToINIEmptySection = { + expr = generators.toINI {} { foo = {}; bar = {}; }; + expected = '' + [bar] + + [foo] + ''; + }; + + testToINIDefaultEscapes = { + expr = generators.toINI {} { + "no [ and ] allowed unescaped" = { + "and also no = in keys" = 42; + }; + }; + expected = '' + [no \[ and \] allowed unescaped] + and also no \= in keys=42 + ''; + }; + + testToINIDefaultFull = { + expr = generators.toINI {} { + "section 1" = { + attribute1 = 5; + x = "Me-se JarJar Binx"; + }; + "foo[]" = { + "he\\h=he" = "this is okay"; + }; + }; + expected = '' + [foo\[\]] + he\h\=he=this is okay + + [section 1] + attribute1=5 + x=Me-se JarJar Binx + ''; + }; + + /* right now only invocation check */ + testToJSONSimple = + let val = { + foobar = [ "baz" 1 2 3 ]; + }; + in { + expr = generators.toJSON {} val; + # trivial implementation + expected = builtins.toJSON val; + }; + + /* right now only invocation check */ + testToYAMLSimple = + let val = { + list = [ { one = 1; } { two = 2; } ]; + all = 42; + }; + in { + expr = generators.toYAML {} val; + # trivial implementation + expected = builtins.toJSON val; + }; + + testToPretty = { + expr = mapAttrs (const (generators.toPretty {})) rec { + int = 42; + bool = true; + string = "fnord"; + null_ = null; + function = x: x; + functionArgs = { arg ? 4, foo }: arg; + list = [ 3 4 function [ false ] ]; + attrs = { foo = null; "foo bar" = "baz"; }; + drv = derivation { name = "test"; system = builtins.currentSystem; }; + }; + expected = rec { + int = "42"; + bool = "true"; + string = "\"fnord\""; + null_ = "null"; + function = "<λ>"; + functionArgs = "<λ:{(arg),foo}>"; + list = "[ 3 4 ${function} [ false ] ]"; + attrs = "{ \"foo\" = null; \"foo bar\" = \"baz\"; }"; + drv = "<δ>"; + }; + }; + + testToPrettyAllowPrettyValues = { + expr = generators.toPretty { allowPrettyValues = true; } + { __pretty = v: "«" + v + "»"; val = "foo"; }; + expected = "«foo»"; + }; + + +# MISC + + testOverridableDelayableArgsTest = { + expr = + let res1 = defaultOverridableDelayableArgs id {}; + res2 = defaultOverridableDelayableArgs id { a = 7; }; + res3 = let x = defaultOverridableDelayableArgs id { a = 7; }; + in (x.merge) { b = 10; }; + res4 = let x = defaultOverridableDelayableArgs id { a = 7; }; + in (x.merge) ( x: { b = 10; }); + res5 = let x = defaultOverridableDelayableArgs id { a = 7; }; + in (x.merge) ( x: { a = builtins.add x.a 3; }); + res6 = let x = defaultOverridableDelayableArgs id { a = 7; mergeAttrBy = { a = builtins.add; }; }; + y = x.merge {}; + in (y.merge) { a = 10; }; + + resRem7 = res6.replace (a: removeAttrs a ["a"]); + + resReplace6 = let x = defaultOverridableDelayableArgs id { a = 7; mergeAttrBy = { a = builtins.add; }; }; + x2 = x.merge { a = 20; }; # now we have 27 + in (x2.replace) { a = 10; }; # and override the value by 10 + + # fixed tests (delayed args): (when using them add some comments, please) + resFixed1 = + let x = defaultOverridableDelayableArgs id ( x: { a = 7; c = x.fixed.b; }); + y = x.merge (x: { name = "name-${builtins.toString x.fixed.c}"; }); + in (y.merge) { b = 10; }; + strip = attrs: removeAttrs attrs ["merge" "replace"]; + in all id + [ ((strip res1) == { }) + ((strip res2) == { a = 7; }) + ((strip res3) == { a = 7; b = 10; }) + ((strip res4) == { a = 7; b = 10; }) + ((strip res5) == { a = 10; }) + ((strip res6) == { a = 17; }) + ((strip resRem7) == {}) + ((strip resFixed1) == { a = 7; b = 10; c =10; name = "name-10"; }) + ]; + expected = true; + }; + +} diff --git a/lib/tests/release.nix b/lib/tests/release.nix index dfa4ca2676d..a6184041682 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -1,40 +1,32 @@ -{ nixpkgs ? { outPath = (import ../.).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; } -, # The platforms for which we build Nixpkgs. - supportedSystems ? [ builtins.currentSystem ] -, # Strip most of attributes when evaluating to spare memory usage - scrubJobs ? true -}: +{ pkgs ? import ((import ../.).cleanSource ../..) {} }: -with import ../../pkgs/top-level/release-lib.nix { inherit supportedSystems scrubJobs; }; -with lib; +pkgs.stdenv.mkDerivation { + name = "nixpkgs-lib-tests"; + buildInputs = [ pkgs.nix ]; + NIX_PATH="nixpkgs=${pkgs.path}"; -{ - systems = import ./systems.nix { inherit lib assertTrue; }; + buildCommand = '' + datadir="${pkgs.nix}/share" + export TEST_ROOT=$(pwd)/test-tmp + export NIX_BUILD_HOOK= + export NIX_CONF_DIR=$TEST_ROOT/etc + export NIX_DB_DIR=$TEST_ROOT/db + export NIX_LOCALSTATE_DIR=$TEST_ROOT/var + export NIX_LOG_DIR=$TEST_ROOT/var/log/nix + export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests + export NIX_STATE_DIR=$TEST_ROOT/var/nix + export NIX_STORE_DIR=$TEST_ROOT/store + export PAGER=cat + cacheDir=$TEST_ROOT/binary-cache + nix-store --init - moduleSystem = pkgs.stdenv.mkDerivation { - name = "nixpkgs-lib-tests"; - buildInputs = [ pkgs.nix ]; - NIX_PATH="nixpkgs=${nixpkgs}"; + cd ${pkgs.path}/lib/tests + ./modules.sh - buildCommand = '' - datadir="${pkgs.nix}/share" - export TEST_ROOT=$(pwd)/test-tmp - export NIX_BUILD_HOOK= - export NIX_CONF_DIR=$TEST_ROOT/etc - export NIX_DB_DIR=$TEST_ROOT/db - export NIX_LOCALSTATE_DIR=$TEST_ROOT/var - export NIX_LOG_DIR=$TEST_ROOT/var/log/nix - export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests - export NIX_STATE_DIR=$TEST_ROOT/var/nix - export NIX_STORE_DIR=$TEST_ROOT/store - export PAGER=cat - cacheDir=$TEST_ROOT/binary-cache - nix-store --init + [[ "$(nix-instantiate --eval --strict misc.nix)" == "[ ]" ]] - cd ${nixpkgs}/lib/tests - ./modules.sh + [[ "$(nix-instantiate --eval --strict systems.nix)" == "[ ]" ]] - touch $out - ''; - }; + touch $out + ''; } diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index 5eacc0defaf..523fd3feb3b 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -5,13 +5,13 @@ # calculating the lists anyway?". The answer is one can mindlessly update these # tests as new platforms become supported, and then just give the diff a quick # sanity check before committing :). -{ lib, assertTrue }: - -with lib.systems.doubles; - -let mseteq = x: y: lib.sort lib.lessThan x == lib.sort lib.lessThan y; in - -{ +let + lib = import ../default.nix; + mseteq = x: y: { + expr = lib.sort lib.lessThan x; + expected = lib.sort lib.lessThan y; + }; +in with lib.systems.doubles; lib.runTests { all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos)); arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]); diff --git a/lib/trivial.nix b/lib/trivial.nix index 735aa55e0dc..c452c7b65bc 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -1,3 +1,4 @@ +{ lib }: rec { /* The identity function @@ -38,87 +39,11 @@ rec { /* Merge two attribute sets shallowly, right side trumps left Example: - mergeAttrs { a = 1; b = 2; } // { b = 3; c = 4; } + mergeAttrs { a = 1; b = 2; } { b = 3; c = 4; } => { a = 1; b = 3; c = 4; } */ mergeAttrs = x: y: x // y; - - # Compute the fixed point of the given function `f`, which is usually an - # attribute set that expects its final, non-recursive representation as an - # argument: - # - # f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } - # - # Nix evaluates this recursion until all references to `self` have been - # resolved. At that point, the final result is returned and `f x = x` holds: - # - # nix-repl> fix f - # { bar = "bar"; foo = "foo"; foobar = "foobar"; } - # - # See https://en.wikipedia.org/wiki/Fixed-point_combinator for further - # details. - fix = f: let x = f x; in x; - - # A variant of `fix` that records the original recursive attribute set in the - # result. This is useful in combination with the `extends` function to - # implement deep overriding. See pkgs/development/haskell-modules/default.nix - # for a concrete example. - fix' = f: let x = f x // { __unfix__ = f; }; in x; - - # Modify the contents of an explicitly recursive attribute set in a way that - # honors `self`-references. This is accomplished with a function - # - # g = self: super: { foo = super.foo + " + "; } - # - # that has access to the unmodified input (`super`) as well as the final - # non-recursive representation of the attribute set (`self`). `extends` - # differs from the native `//` operator insofar as that it's applied *before* - # references to `self` are resolved: - # - # nix-repl> fix (extends g f) - # { bar = "bar"; foo = "foo + "; foobar = "foo + bar"; } - # - # The name of the function is inspired by object-oriented inheritance, i.e. - # think of it as an infix operator `g extends f` that mimics the syntax from - # Java. It may seem counter-intuitive to have the "base class" as the second - # argument, but it's nice this way if several uses of `extends` are cascaded. - extends = f: rattrs: self: let super = rattrs self; in super // f self super; - - # Compose two extending functions of the type expected by 'extends' - # into one where changes made in the first are available in the - # 'super' of the second - composeExtensions = - f: g: self: super: - let fApplied = f self super; - super' = super // fApplied; - in fApplied // g self super'; - - # Create an overridable, recursive attribute set. For example: - # - # nix-repl> obj = makeExtensible (self: { }) - # - # nix-repl> obj - # { __unfix__ = «lambda»; extend = «lambda»; } - # - # nix-repl> obj = obj.extend (self: super: { foo = "foo"; }) - # - # nix-repl> obj - # { __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; } - # - # nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; }) - # - # nix-repl> obj - # { __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; } - makeExtensible = makeExtensibleWithCustomName "extend"; - - # Same as `makeExtensible` but the name of the extending attribute is - # customized. - makeExtensibleWithCustomName = extenderName: rattrs: - fix' rattrs // { - ${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs); - }; - # Flip the order of the arguments of a binary function. flip = f: a: b: f b a; @@ -131,7 +56,7 @@ rec { isInt add sub lessThan seq deepSeq genericClosure; - inherit (import ./strings.nix) fileContents; + inherit (lib.strings) fileContents; # Return the Nixpkgs version number. nixpkgsVersion = @@ -146,6 +71,16 @@ rec { min = x: y: if x < y then x else y; max = x: y: if x > y then x else y; + /* Integer modulus + + Example: + mod 11 10 + => 1 + mod 1 10 + => 1 + */ + mod = base: int: base - (int * (builtins.div base int)); + /* Reads a JSON file. */ importJSON = path: builtins.fromJSON (builtins.readFile path); diff --git a/lib/types.nix b/lib/types.nix index 45122759bfc..db3bd381523 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -1,15 +1,16 @@ # Definitions related to run-time type checking. Used in particular # to type-check NixOS configurations. +{ lib }: +with lib.lists; +with lib.attrsets; +with lib.options; +with lib.trivial; +with lib.strings; +let -with import ./lists.nix; -with import ./attrsets.nix; -with import ./options.nix; -with import ./trivial.nix; -with import ./strings.nix; -let inherit (import ./modules.nix) mergeDefinitions filterOverrides; in - + inherit (lib.modules) mergeDefinitions filterOverrides; + outer_types = rec { - isType = type: x: (x._type or "") == type; setType = typeName: value: value // { @@ -92,8 +93,9 @@ rec { }; + # When adding new types don't forget to document them in + # nixos/doc/manual/development/option-types.xml! types = rec { - unspecified = mkOptionType { name = "unspecified"; }; @@ -177,9 +179,9 @@ rec { description = "list of ${elemType.description}s"; check = isList; merge = loc: defs: - map (x: x.value) (filter (x: x ? value) (concatLists (imap (n: def: + map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def: if isList def.value then - imap (m: def': + imap1 (m: def': (mergeDefinitions (loc ++ ["[definition ${toString n}-entry ${toString m}]"]) elemType @@ -218,7 +220,7 @@ rec { if isList def.value then { inherit (def) file; value = listToAttrs ( - imap (elemIdx: elem: + imap1 (elemIdx: elem: { name = elem.name or "unnamed-${toString defIdx}.${toString elemIdx}"; value = elem; }) def.value); @@ -231,32 +233,14 @@ rec { name = "loaOf"; description = "list or attribute set of ${elemType.description}s"; check = x: isList x || isAttrs x; - merge = loc: defs: attrOnly.merge loc (imap convertIfList defs); + merge = loc: defs: attrOnly.merge loc (imap1 convertIfList defs); getSubOptions = prefix: elemType.getSubOptions (prefix ++ [""]); getSubModules = elemType.getSubModules; substSubModules = m: loaOf (elemType.substSubModules m); functor = (defaultFunctor name) // { wrapped = elemType; }; }; - # List or element of ... - loeOf = elemType: mkOptionType rec { - name = "loeOf"; - description = "element or list of ${elemType.description}s"; - check = x: isList x || elemType.check x; - merge = loc: defs: - let - defs' = filterOverrides defs; - res = (head defs').value; - in - if isList res then concatLists (getValues defs') - else if lessThan 1 (length defs') then - throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}." - else if !isString res then - throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}." - else res; - functor = (defaultFunctor name) // { wrapped = elemType; }; - }; - + # Value of given type but with no merging (i.e. `uniq list`s are not concatenated). uniq = elemType: mkOptionType rec { name = "uniq"; inherit (elemType) description check; @@ -267,6 +251,7 @@ rec { functor = (defaultFunctor name) // { wrapped = elemType; }; }; + # Null or value of ... nullOr = elemType: mkOptionType rec { name = "nullOr"; description = "null or ${elemType.description}"; @@ -283,10 +268,11 @@ rec { functor = (defaultFunctor name) // { wrapped = elemType; }; }; + # A submodule (like typed attribute set). See NixOS manual. submodule = opts: let opts' = toList opts; - inherit (import ./modules.nix) evalModules; + inherit (lib.modules) evalModules; in mkOptionType rec { name = "submodule"; @@ -302,8 +288,17 @@ rec { }).config; getSubOptions = prefix: (evalModules { modules = opts'; inherit prefix; - # FIXME: hack to get shit to evaluate. - args = { name = ""; }; }).options; + # This is a work-around due to the fact that some sub-modules, + # such as the one included in an attribute set, expects a "args" + # attribute to be given to the sub-module. As the option + # evaluation does not have any specific attribute name, we + # provide a default one for the documentation. + # + # This is mandatory as some option declaration might use the + # "name" attribute given as argument of the submodule and use it + # as the default of option declarations. + args.name = "<name>"; + }).options; getSubModules = opts'; substSubModules = m: submodule m; functor = (defaultFunctor name) // { @@ -314,6 +309,7 @@ rec { }; }; + # A value from a set of allowed ones. enum = values: let show = v: @@ -329,6 +325,7 @@ rec { functor = (defaultFunctor name) // { payload = values; binOp = a: b: unique (a ++ b); }; }; + # Either value of type `t1` or `t2`. either = t1: t2: mkOptionType rec { name = "either"; description = "${t1.description} or ${t2.description}"; @@ -352,6 +349,8 @@ rec { functor = (defaultFunctor name) // { wrapped = [ t1 t2 ]; }; }; + # Either value of type `finalType` or `coercedType`, the latter is + # converted to `finalType` using `coerceFunc`. coercedTo = coercedType: coerceFunc: finalType: assert coercedType.getSubModules == null; mkOptionType rec { @@ -386,5 +385,6 @@ rec { addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; }; }; +}; -} +in outer_types // outer_types.types diff --git a/maintainers/scripts/gnome.sh b/maintainers/scripts/gnome.sh index 9398331d0d6..d44bda53f8d 100755 --- a/maintainers/scripts/gnome.sh +++ b/maintainers/scripts/gnome.sh @@ -2,26 +2,24 @@ set -o pipefail -GNOME_FTP="ftp.gnome.org/pub/GNOME/sources" +GNOME_FTP=ftp.gnome.org/pub/GNOME/sources # projects that don't follow the GNOME major versioning, or that we don't want to # programmatically update -NO_GNOME_MAJOR="gtkhtml gdm" +NO_GNOME_MAJOR="ghex gtkhtml gdm gucharmap" usage() { - echo "Usage: $0 gnome_dir || [major.minor]" >&2 - echo "gnome_dir is for example pkgs/desktops/gnome-3/3.18" >&2 + echo "Usage: $0 || [major.minor]" >&2 exit 0 } -if [ "$#" -lt 2 ]; then +if [ "$#" -lt 1 ]; then usage fi -GNOME_TOP="$1" -shift +GNOME_TOP=pkgs/desktops/gnome-3 -action="$1" +action=$1 # curl -l ftp://... doesn't work from my office in HSE, and I don't want to have # any conversations with sysadmin. Somehow lftp works. @@ -36,18 +34,18 @@ else fi find_project() { - exec find "$GNOME_TOP" -mindepth 2 -maxdepth 2 -type d $@ + exec find "$GNOME_TOP" -mindepth 2 -maxdepth 2 -type d "$@" } show_project() { - local project="$1" - local majorVersion="$2" - local version="" + local project=$1 + local majorVersion=$2 + local version= if [ -z "$majorVersion" ]; then echo "Looking for available versions..." >&2 - local available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` ) - if [ "$?" -ne "0" ]; then + local available_baseversions=$(ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n) + if [ "$?" -ne 0 ]; then echo "Project $project not found" >&2 return 1 fi @@ -59,11 +57,11 @@ show_project() { if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then # not a major version - version="$majorVersion" + version=$majorVersion majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2) fi - local FTPDIR="${GNOME_FTP}/${project}/${majorVersion}" + local FTPDIR=${GNOME_FTP}/${project}/${majorVersion} #version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//` # gnome's LATEST-IS is broken. Do not trust it. @@ -92,7 +90,7 @@ show_project() { esac done echo "Found versions ${!versions[@]}" >&2 - version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1` + version=$(echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1) if [ -z "$version" ]; then echo "No version available for major $majorVersion" >&2 return 1 @@ -103,7 +101,7 @@ show_project() { local name=${project}-${version} echo "Fetching .sha256 file" >&2 - local sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum) + local sha256out=$(curl -s -f http://"${FTPDIR}"/"${name}".sha256sum) if [ "$?" -ne "0" ]; then echo "Version not found" >&2 @@ -136,8 +134,8 @@ fetchurl: { } update_project() { - local project="$1" - local majorVersion="$2" + local project=$1 + local majorVersion=$2 # find project in nixpkgs tree projectPath=$(find_project -name "$project" -print) @@ -150,14 +148,14 @@ update_project() { if [ "$?" -eq "0" ]; then echo "Updating $projectPath/src.nix" >&2 - echo -e "$src" > "$projectPath/src.nix" + echo -e "$src" > "$projectPath"/src.nix fi return 0 } -if [ "$action" == "update-all" ]; then - majorVersion="$2" +if [ "$action" = "update-all" ]; then + majorVersion=$2 if [ -z "$majorVersion" ]; then echo "No major version specified" >&2 usage @@ -170,23 +168,23 @@ if [ "$action" == "update-all" ]; then echo "Skipping $project" else echo "= Updating $project to $majorVersion" >&2 - update_project $project $majorVersion + update_project "$project" "$majorVersion" echo >&2 fi done else - project="$2" - majorVersion="$3" + project=$2 + majorVersion=$3 if [ -z "$project" ]; then echo "No project specified, exiting" >&2 usage fi - if [ "$action" == "show" ]; then - show_project $project $majorVersion - elif [ "$action" == "update" ]; then - update_project $project $majorVersion + if [ "$action" = show ]; then + show_project "$project" "$majorVersion" + elif [ "$action" = update ]; then + update_project "$project" "$majorVersion" else echo "Unknown action $action" >&2 usage diff --git a/maintainers/scripts/hydra-eval-failures.py b/maintainers/scripts/hydra-eval-failures.py index 6bbc0a45e44..ddc3c7c4a96 100755 --- a/maintainers/scripts/hydra-eval-failures.py +++ b/maintainers/scripts/hydra-eval-failures.py @@ -13,10 +13,8 @@ from pyquery import PyQuery as pq maintainers_json = subprocess.check_output([ - 'nix-instantiate', - 'lib/maintainers.nix', - '--eval', - '--json']) + 'nix-instantiate', '-E', 'import ./lib/maintainers.nix {}', '--eval', '--json' +]) maintainers = json.loads(maintainers_json) MAINTAINERS = {v: k for k, v in maintainers.iteritems()} @@ -31,25 +29,28 @@ EVAL_FILE = { def get_maintainers(attr_name): - nixname = attr_name.split('.') - meta_json = subprocess.check_output([ - 'nix-instantiate', - '--eval', - '--strict', - '-A', - '.'.join(nixname[1:]) + '.meta', - EVAL_FILE[nixname[0]], - '--json']) - meta = json.loads(meta_json) - if meta.get('maintainers'): - return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)] + try: + nixname = attr_name.split('.') + meta_json = subprocess.check_output([ + 'nix-instantiate', + '--eval', + '--strict', + '-A', + '.'.join(nixname[1:]) + '.meta', + EVAL_FILE[nixname[0]], + '--json']) + meta = json.loads(meta_json) + if meta.get('maintainers'): + return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)] + except: + return [] @click.command() @click.option( '--jobset', - default="nixos/release-17.03", - help='Hydra project like nixos/release-17.03') + default="nixos/release-17.09", + help='Hydra project like nixos/release-17.09') def cli(jobset): """ Given a Hydra project, inspect latest evaluation diff --git a/maintainers/scripts/rebuild-amount.sh b/maintainers/scripts/rebuild-amount.sh index ebc5dc3b87e..098a8c88cb7 100755 --- a/maintainers/scripts/rebuild-amount.sh +++ b/maintainers/scripts/rebuild-amount.sh @@ -1,260 +1,115 @@ -#!/bin/sh +#!/usr/bin/env bash +set -e -usage () { - echo 1>&2 " -usage: - $0 - [--git commit..commit | --git commit] - [--svn rev:rev | --svn rev] - [--path path[:path]*] - [--help] - -This program is used to investigate how any changes inside your nixpkgs -repository may hurt. With these kind of information you may choose wisely -where you should commit your changes. - -This program adapts it-self to your versionning system to avoid too much -effort on your Internet bandwidth. If you need to check more than one -commits / revisions, you may use the following commands: - - --git remotes/trunk..master - --svn 17670:17677 - - Check the differences between each commit separating the first and the - last commit. - - --path /etc/nixos/nixpkgs:/tmp/nixpkgs_1:/tmp/nixpkgs_2 - - Check the differences between multiple directories containing different - versions of nixpkgs. - -All these options exist with one commit / revision argument. Such options -are used to compare your \$NIXPKGS path with the specified version. - -If you omit to mention any other commit / revision, then your \$NIXPKGS path -is compared with its last update. This command is useful to test code from -a dirty repository. - -" - - exit 1; -} - -##################### -# Process Arguments # -##################### - -: ${NIXPKGS=/etc/nixos/nixpkgs/} - -vcs="" -gitCommits="" -svnRevisions="" -pathLocations="" -verbose=false - -argfun="" -for arg; do - if test -z "$argfun"; then - case $arg in - --git) vcs="git"; argfun="set_gitCommits";; - --svn) vcs="svn"; argfun="set_svnRevisions";; - --path) vcs="path"; argfun="set_pathLocations";; - --verbose) verbose=true;; - --help) usage;; - *) usage;; - esac - else - case $argfun in - set_*) - var=$(echo $argfun | sed 's,^set_,,') - eval $var=$arg - ;; - esac - argfun="" - fi -done - -if $verbose; then - set -x -else - set +x +if [ "$#" != 1 ] && [ "$#" != 2 ]; then + cat <<-EOF + Usage: $0 commit-spec [commit-spec] + You need to be in a git-controlled nixpkgs tree. + The current state of the tree will be used if the second commit is missing. + EOF + exit 1 fi -############################ -# Find the repository type # -############################ +# A slightly hacky way to get the config. +parallel="$(echo 'config.rebuild-amount.parallel or false' | nix-repl . 2>/dev/null \ + | grep -v '^\(nix-repl.*\)\?$' | tail -n 1 || true)" -if test -z "$vcs"; then - if test -x "$NIXPKGS/.git"; then - if git --git-dir="$NIXPKGS/.git" branch > /dev/null 2>&1; then - vcs="git" - gitCommits=$(git --git-dir="$NIXPKGS/.git" log -n 1 --pretty=format:%H 2> /dev/null) - fi - elif test -x "$NIXPKGS/.svn"; then - cd "$NIXPKGS" - if svn info > /dev/null 2>&1; then - vcs="svn"; - svnRevisions=$(svn info | sed -n 's,Revision: ,,p') - fi - cd - - else - usage - fi -fi +echo "Estimating rebuild amount by counting changed Hydra jobs." -############################### -# Define a storage directory. # -############################### +toRemove=() -pkgListDir="" -exitCode=1 -cleanup(){ - test -e "$pkgListDir" && rm -rf "$pkgListDir" - exit $exitCode; +cleanup() { + rm -rf "${toRemove[@]}" } - trap cleanup EXIT SIGINT SIGQUIT ERR -pkgListDir=$(mktemp --tmpdir -d rebuild-amount-XXXXXXXX) -vcsDir="$pkgListDir/.vcs" +MKTEMP='mktemp --tmpdir nix-rebuild-amount-XXXXXXXX' -########################### -# Versionning for Dummies # -########################### +nixexpr() { + cat <<-EONIX + let + lib = import $1/lib; + hydraJobs = import $1/pkgs/top-level/release.nix + # Compromise: accuracy vs. resources needed for evaluation. + { supportedSystems = cfg.systems or [ "x86_64-linux" "x86_64-darwin" ]; }; + cfg = (import $1 {}).config.rebuild-amount or {}; -path_init() { - if test "${pathLocations#*:}" = "$pathLocations"; then - pathLocations="$NIXPKGS:$pathLocations" - fi - pathLocations="${pathLocations}:" + recurseIntoAttrs = attrs: attrs // { recurseForDerivations = true; }; + + # hydraJobs leaves recurseForDerivations as empty attrmaps; + # that would break nix-env and we also need to recurse everywhere. + tweak = lib.mapAttrs + (name: val: + if name == "recurseForDerivations" then true + else if lib.isAttrs val && val.type or null != "derivation" + then recurseIntoAttrs (tweak val) + else val + ); + + # Some of these contain explicit references to platform(s) we want to avoid; + # some even (transitively) depend on ~/.nixpkgs/config.nix (!) + blacklist = [ + "tarball" "metrics" "manual" + "darwin-tested" "unstable" "stdenvBootstrapTools" + "moduleSystem" "lib-tests" # these just confuse the output + ]; + + in + tweak (builtins.removeAttrs hydraJobs blacklist) + EONIX } -path_getNext() { - pathLoc="${pathLocations%%:*}" - pathLocations="${pathLocations#*:}" +# Output packages in tree $2 that weren't in $1. +# Changing the output hash or name is taken as a change. +# Extra nix-env parameters can be in $3 +newPkgs() { + # We use files instead of pipes, as running multiple nix-env processes + # could eat too much memory for a standard 4GiB machine. + local -a list + for i in 1 2; do + local l="$($MKTEMP)" + list[$i]="$l" + toRemove+=("$l") + + local expr="$($MKTEMP)" + toRemove+=("$expr") + nixexpr "${!i}" > "$expr" + + nix-env -f "$expr" -qaP --no-name --out-path --show-trace $3 \ + | sort > "${list[$i]}" & + + if [ "$parallel" != "true" ]; then + wait + fi + done + + wait + comm -13 "${list[@]}" } -path_setPath() { - path="$pathLoc" -} +# Prepare nixpkgs trees. +declare -a tree +for i in 1 2; do + if [ -n "${!i}" ]; then # use the given commit + dir="$($MKTEMP -d)" + tree[$i]="$dir" + toRemove+=("$dir") -path_setName() { - name=$(echo "$pathLoc" | tr '/' '_') -} - -################ -# Git Commands # -################ - -git_init() { - git clone "$NIXPKGS/.git" "$vcsDir" > /dev/null 2>&1 - if echo "gitCommits" | grep -c "\.\." > /dev/null 2>&1; then - gitCommits=$(git --git-dir="$vcsDir/.git" log --reverse --pretty=format:%H $gitCommits 2> /dev/null) - else - pathLocations="$vcsDir:$NIXPKGS" - vcs="path" - path_init - fi -} - -git_getNext() { - git --git-dir="$vcsDir/.git" checkout $(echo "$gitCommits" | head -n 1) > /dev/null 2>&1 - gitCommits=$(echo "$gitCommits" | sed '1 d') -} - -git_setPath() { - path="$vcsDir" -} - -git_setName() { - name=$(git --git-dir="$vcsDir/.git" log -n 1 --pretty=format:%H 2> /dev/null) -} - -####################### -# Subversion Commands # -####################### - -svn_init() { - cp -r "$NIXPKGS" "$vcsDir" > /dev/null 2>&1 - if echo "svnRevisions" | grep -c ":" > /dev/null 2>&1; then - svnRevisions=$(seq ${svnRevisions%:*} ${svnRevisions#*:}) - else - pathLocations="$vcsDir:$NIXPKGS" - vcs="path" - path_init - fi -} - -svn_getNext() { - cd "$vcsDir" - svn checkout $(echo "$svnRevisions" | head -n 1) > /dev/null 2>&1 - cd - - svnRevisions=$(echo "$svnRevisions" | sed '1 d') -} - -svn_setPath() { - path="$vcsDir" -} - -svn_setName() { - name=$(svn info 2> /dev/null | sed -n 's,Revision: ,,p') -} - -#################### -# Logical Commands # -#################### - -init () { ${vcs}_init; } -getNext () { ${vcs}_getNext; } -setPath () { ${vcs}_setPath; } -setName () { ${vcs}_setName; } - - -##################### -# Check for Rebuild # -##################### - -# Generate the list of all derivations that could be build from a nixpkgs -# respository. This list of derivation hashes is compared with previous -# lists and a brief summary is produced on the output. - -compareNames () { - nb=$(diff -y --suppress-common-lines --speed-large-files "$pkgListDir/$1.drvs" "$pkgListDir/$2.drvs" 2> /dev/null | wc -l) - echo "$1 -> $2: $nb" -} - -echo "Please wait, this may take some minutes ..." - -init -first="" -oldPrev="" - -prev="" -curr="" - -while true; do - getNext - setPath # set path=... - setName # set name=... - curr="$name" - - test -z "$curr" && break || true - - nix-instantiate "$path" > "$pkgListDir/$curr.drvs" > /dev/null 2>&1 || true - - if test -n "$prev"; then - compareNames "$prev" "$curr" - else - echo "Number of package to rebuild:" - first="$curr" - fi - oldPrev="$prev" - prev="$curr" + git clone --shared --no-checkout --quiet . "${tree[$i]}" + (cd "${tree[$i]}" && git checkout --quiet "${!i}") + else #use the current tree + tree[$i]="$(pwd)" + fi done -if test "$first" != "$oldPrev"; then - echo "Number of package to rebuild (first -> last):" - compareNames "$first" "$curr" -fi +newlist="$($MKTEMP)" +toRemove+=("$newlist") +# Notes: +# - the evaluation is done on x86_64-linux, like on Hydra. +# - using $newlist file so that newPkgs() isn't in a sub-shell (because of toRemove) +newPkgs "${tree[1]}" "${tree[2]}" '--argstr system "x86_64-linux"' > "$newlist" + +# Hacky: keep only the last word of each attribute path and sort. +sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \ + | sort | uniq -c -exitCode=0 diff --git a/maintainers/scripts/travis-nox-review-pr.sh b/maintainers/scripts/travis-nox-review-pr.sh index 649798ec76b..4da4f7dacfa 100755 --- a/maintainers/scripts/travis-nox-review-pr.sh +++ b/maintainers/scripts/travis-nox-review-pr.sh @@ -53,8 +53,8 @@ while test -n "$1"; do nox) echo "=== Fetching Nox from binary cache" - # build nox silently so it's not in the log - nix-build "" -A nox -A stdenv + # build nox (+ a basic nix-shell env) silently so it's not in the log + nix-shell -p nox stdenv --command true ;; pr) diff --git a/maintainers/scripts/update-python-libraries b/maintainers/scripts/update-python-libraries new file mode 100755 index 00000000000..7c73510c353 --- /dev/null +++ b/maintainers/scripts/update-python-libraries @@ -0,0 +1,243 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ requests toolz ])' + +""" +Update a Python package expression by passing in the `.nix` file, or the directory containing it. +You can pass in multiple files or paths. + +You'll likely want to use +`` + $ ./update-python-libraries ../../pkgs/development/python-modules/* +`` +to update all libraries in that folder. +""" + +import argparse +import logging +import os +import re +import requests +import toolz + +INDEX = "https://pypi.io/pypi" +"""url of PyPI""" + +EXTENSIONS = ['tar.gz', 'tar.bz2', 'tar', 'zip', '.whl'] +"""Permitted file extensions. These are evaluated from left to right and the first occurance is returned.""" + +import logging +logging.basicConfig(level=logging.INFO) + + +def _get_values(attribute, text): + """Match attribute in text and return all matches. + + :returns: List of matches. + """ + regex = '{}\s+=\s+"(.*)";'.format(attribute) + regex = re.compile(regex) + values = regex.findall(text) + return values + +def _get_unique_value(attribute, text): + """Match attribute in text and return unique match. + + :returns: Single match. + """ + values = _get_values(attribute, text) + n = len(values) + if n > 1: + raise ValueError("found too many values for {}".format(attribute)) + elif n == 1: + return values[0] + else: + raise ValueError("no value found for {}".format(attribute)) + +def _get_line_and_value(attribute, text): + """Match attribute in text. Return the line and the value of the attribute.""" + regex = '({}\s+=\s+"(.*)";)'.format(attribute) + regex = re.compile(regex) + value = regex.findall(text) + n = len(value) + if n > 1: + raise ValueError("found too many values for {}".format(attribute)) + elif n == 1: + return value[0] + else: + raise ValueError("no value found for {}".format(attribute)) + + +def _replace_value(attribute, value, text): + """Search and replace value of attribute in text.""" + old_line, old_value = _get_line_and_value(attribute, text) + new_line = old_line.replace(old_value, value) + new_text = text.replace(old_line, new_line) + return new_text + +def _fetch_page(url): + r = requests.get(url) + if r.status_code == requests.codes.ok: + return r.json() + else: + raise ValueError("request for {} failed".format(url)) + +def _get_latest_version_pypi(package, extension): + """Get latest version and hash from PyPI.""" + url = "{}/{}/json".format(INDEX, package) + json = _fetch_page(url) + + version = json['info']['version'] + for release in json['releases'][version]: + if release['filename'].endswith(extension): + # TODO: In case of wheel we need to do further checks! + sha256 = release['digests']['sha256'] + break + else: + sha256 = None + return version, sha256 + + +def _get_latest_version_github(package, extension): + raise ValueError("updating from GitHub is not yet supported.") + + +FETCHERS = { + 'fetchFromGitHub' : _get_latest_version_github, + 'fetchPypi' : _get_latest_version_pypi, + 'fetchurl' : _get_latest_version_pypi, +} + + +DEFAULT_SETUPTOOLS_EXTENSION = 'tar.gz' + + +FORMATS = { + 'setuptools' : DEFAULT_SETUPTOOLS_EXTENSION, + 'wheel' : 'whl' +} + +def _determine_fetcher(text): + # Count occurences of fetchers. + nfetchers = sum(text.count('src = {}'.format(fetcher)) for fetcher in FETCHERS.keys()) + if nfetchers == 0: + raise ValueError("no fetcher.") + elif nfetchers > 1: + raise ValueError("multiple fetchers.") + else: + # Then we check which fetcher to use. + for fetcher in FETCHERS.keys(): + if 'src = {}'.format(fetcher) in text: + return fetcher + + +def _determine_extension(text, fetcher): + """Determine what extension is used in the expression. + + If we use: + - fetchPypi, we check if format is specified. + - fetchurl, we determine the extension from the url. + - fetchFromGitHub we simply use `.tar.gz`. + """ + if fetcher == 'fetchPypi': + try: + format = _get_unique_value('format', text) + except ValueError as e: + format = None # format was not given + + try: + extension = _get_unique_value('extension', text) + except ValueError as e: + extension = None # extension was not given + + if extension is None: + if format is None: + format = 'setuptools' + extension = FORMATS[format] + + elif fetcher == 'fetchurl': + url = _get_unique_value('url', text) + extension = os.path.splitext(url)[1] + if 'pypi' not in url: + raise ValueError('url does not point to PyPI.') + + elif fetcher == 'fetchFromGitHub': + raise ValueError('updating from GitHub is not yet implemented.') + + return extension + + +def _update_package(path): + + + + # Read the expression + with open(path, 'r') as f: + text = f.read() + + # Determine pname. + pname = _get_unique_value('pname', text) + + # Determine version. + version = _get_unique_value('version', text) + + # First we check how many fetchers are mentioned. + fetcher = _determine_fetcher(text) + + extension = _determine_extension(text, fetcher) + + new_version, new_sha256 = _get_latest_version_pypi(pname, extension) + + if new_version == version: + logging.info("Path {}: no update available for {}.".format(path, pname)) + return False + if not new_sha256: + raise ValueError("no file available for {}.".format(pname)) + + text = _replace_value('version', new_version, text) + text = _replace_value('sha256', new_sha256, text) + + with open(path, 'w') as f: + f.write(text) + + logging.info("Path {}: updated {} from {} to {}".format(path, pname, version, new_version)) + + return True + + +def _update(path): + + # We need to read and modify a Nix expression. + if os.path.isdir(path): + path = os.path.join(path, 'default.nix') + + # If a default.nix does not exist, we quit. + if not os.path.isfile(path): + logging.info("Path {}: does not exist.".format(path)) + return False + + # If file is not a Nix expression, we quit. + if not path.endswith(".nix"): + logging.info("Path {}: does not end with `.nix`.".format(path)) + return False + + try: + return _update_package(path) + except ValueError as e: + logging.warning("Path {}: {}".format(path, e)) + return False + +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument('package', type=str, nargs='+') + + args = parser.parse_args() + + packages = map(os.path.abspath, args.package) + + count = list(map(_update, packages)) + + logging.info("{} package(s) updated".format(sum(count))) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/nixos/doc/manual/administration/declarative-containers.xml b/nixos/doc/manual/administration/declarative-containers.xml index f3f65edcec2..94f03a2ee11 100644 --- a/nixos/doc/manual/administration/declarative-containers.xml +++ b/nixos/doc/manual/administration/declarative-containers.xml @@ -16,7 +16,7 @@ containers.database = { config = { config, pkgs, ... }: { services.postgresql.enable = true; - services.postgresql.package = pkgs.postgresql92; + services.postgresql.package = pkgs.postgresql96; }; }; diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml index 258e1ea948d..d5d8140e076 100644 --- a/nixos/doc/manual/administration/imperative-containers.xml +++ b/nixos/doc/manual/administration/imperative-containers.xml @@ -29,8 +29,10 @@ line. For instance, to create a container that has root: -# nixos-container create foo --config 'services.openssh.enable = true; \ - users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"];' +# nixos-container create foo --config ' + services.openssh.enable = true; + users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"]; +' @@ -55,7 +57,7 @@ Thus, if something went wrong, you can get status info using -If the container has started succesfully, you can log in as +If the container has started successfully, you can log in as root using the root-login operation: @@ -97,8 +99,11 @@ This will build and activate the new configuration. You can also specify a new configuration on the command line: -# nixos-container update foo --config 'services.httpd.enable = true; \ - services.httpd.adminAddr = "foo@example.org";' +# nixos-container update foo --config ' + services.httpd.enable = true; + services.httpd.adminAddr = "foo@example.org"; + networking.firewall.allowedTCPPorts = [ 80 ]; +' # curl http://$(nixos-container show-ip foo)/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">… diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml index d1b324af3f1..ae3d124cd6b 100644 --- a/nixos/doc/manual/configuration/file-systems.xml +++ b/nixos/doc/manual/configuration/file-systems.xml @@ -35,6 +35,12 @@ or ext4, then it’s best to specify to ensure that the kernel module is available. +System startup will fail if any of the filesystems fails to mount, +dropping you to the emergency shell. +You can make a mount asynchronous and non-critical by adding +options = [ "nofail" ];. + + diff --git a/nixos/doc/manual/configuration/summary.xml b/nixos/doc/manual/configuration/summary.xml index 6ff0390c0ed..be1f2263149 100644 --- a/nixos/doc/manual/configuration/summary.xml +++ b/nixos/doc/manual/configuration/summary.xml @@ -113,7 +113,8 @@ manual for the rest. assert 1 + 1 == 2; "yes!" - Assertion check (evaluates to "yes!") + Assertion check (evaluates to "yes!"). See for using assertions in modules let x = "foo"; y = "bar"; in x + y diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml index 4a73695e094..fc6082ce3af 100644 --- a/nixos/doc/manual/configuration/x-windows.xml +++ b/nixos/doc/manual/configuration/x-windows.xml @@ -45,6 +45,13 @@ services.xserver.displayManager.lightdm.enable = true; +You can set the keyboard layout (and optionally the layout variant): + +services.xserver.layout = "de"; +services.xserver.xkbVariant = "neo"; + + + The X server is started automatically at boot time. If you don’t want this to happen, you can set: diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 40d49f1541b..9413d71a34c 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -65,7 +65,7 @@ let chmod -R u+w . ln -s ${modulesDoc} configuration/modules.xml ln -s ${optionsDocBook} options-db.xml - echo "${version}" > version + printf "%s" "${version}" > version ''; toc = builtins.toFile "toc.xml" @@ -94,25 +94,43 @@ let "--stringparam chunk.toc ${toc}" ]; + manual-combined = runCommand "nixos-manual-combined" + { inherit sources; + buildInputs = [ libxml2 libxslt ]; + meta.description = "The NixOS manual as plain docbook XML"; + } + '' + ${copySources} + + xmllint --xinclude --output ./manual-combined.xml ./manual.xml + xmllint --xinclude --noxincludenode \ + --output ./man-pages-combined.xml ./man-pages.xml + + xmllint --debug --noout --nonet \ + --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ + manual-combined.xml + xmllint --debug --noout --nonet \ + --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ + man-pages-combined.xml + + + mkdir $out + cp manual-combined.xml $out/ + cp man-pages-combined.xml $out/ + ''; + olinkDB = runCommand "manual-olinkdb" { inherit sources; buildInputs = [ libxml2 libxslt ]; } '' - ${copySources} - xsltproc \ ${manualXsltprocOptions} \ --stringparam collect.xref.targets only \ --stringparam targets.filename "$out/manual.db" \ - --nonet --xinclude \ + --nonet \ ${docbook5_xsl}/xml/xsl/docbook/xhtml/chunktoc.xsl \ - ./manual.xml - - # Check the validity of the man pages sources. - xmllint --noout --nonet --xinclude --noxincludenode \ - --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ - ./man-pages.xml + ${manual-combined}/manual-combined.xml cat > "$out/olinkdb.xml" < @@ -158,21 +176,15 @@ in rec { allowedReferences = ["out"]; } '' - ${copySources} - - # Check the validity of the manual sources. - xmllint --noout --nonet --xinclude --noxincludenode \ - --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ - manual.xml - # Generate the HTML manual. dst=$out/share/doc/nixos mkdir -p $dst xsltproc \ ${manualXsltprocOptions} \ --stringparam target.database.document "${olinkDB}/olinkdb.xml" \ - --nonet --xinclude --output $dst/ \ - ${docbook5_xsl}/xml/xsl/docbook/xhtml/chunktoc.xsl ./manual.xml + --nonet --output $dst/ \ + ${docbook5_xsl}/xml/xsl/docbook/xhtml/chunktoc.xsl \ + ${manual-combined}/manual-combined.xml mkdir -p $dst/images/callouts cp ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/images/callouts/ @@ -190,13 +202,6 @@ in rec { buildInputs = [ libxml2 libxslt zip ]; } '' - ${copySources} - - # Check the validity of the manual sources. - xmllint --noout --nonet --xinclude --noxincludenode \ - --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ - manual.xml - # Generate the epub manual. dst=$out/share/doc/nixos @@ -204,10 +209,11 @@ in rec { ${manualXsltprocOptions} \ --stringparam target.database.document "${olinkDB}/olinkdb.xml" \ --nonet --xinclude --output $dst/epub/ \ - ${docbook5_xsl}/xml/xsl/docbook/epub/docbook.xsl ./manual.xml + ${docbook5_xsl}/xml/xsl/docbook/epub/docbook.xsl \ + ${manual-combined}/manual-combined.xml mkdir -p $dst/epub/OEBPS/images/callouts - cp -r ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/epub/OEBPS/images/callouts + cp -r ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/epub/OEBPS/images/callouts # */ echo "application/epub+zip" > mimetype manual="$dst/nixos-manual.epub" zip -0Xq "$manual" mimetype @@ -227,23 +233,16 @@ in rec { allowedReferences = ["out"]; } '' - ${copySources} - - # Check the validity of the man pages sources. - xmllint --noout --nonet --xinclude --noxincludenode \ - --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ - ./man-pages.xml - # Generate manpages. mkdir -p $out/share/man - xsltproc --nonet --xinclude \ + xsltproc --nonet \ --param man.output.in.separate.dir 1 \ --param man.output.base.dir "'$out/share/man/'" \ --param man.endnotes.are.numbered 0 \ --param man.break.after.slash 1 \ --stringparam target.database.document "${olinkDB}/olinkdb.xml" \ ${docbook5_xsl}/xml/xsl/docbook/manpages/docbook.xsl \ - ./man-pages.xml + ${manual-combined}/man-pages-combined.xml ''; } diff --git a/nixos/doc/manual/development/assertions.xml b/nixos/doc/manual/development/assertions.xml new file mode 100644 index 00000000000..d3434e1f112 --- /dev/null +++ b/nixos/doc/manual/development/assertions.xml @@ -0,0 +1,80 @@ +
+ +Warnings and Assertions + + + When configuration problems are detectable in a module, it is a good + idea to write an assertion or warning. Doing so provides clear + feedback to the user and prevents errors after the build. + + + + Although Nix has the abort and + builtins.trace functions to perform such tasks, + they are not ideally suited for NixOS modules. Instead of these + functions, you can declare your warnings and assertions using the + NixOS module system. + + +
+ +Warnings + + + This is an example of using warnings. + + + + + + +
+ +
+ +Assertions + + + + This example, extracted from the + + syslogd module + shows how to use assertions. Since there + can only be one active syslog daemon at a time, an assertion is useful to + prevent such a broken system from being built. + + + + + + +
+ +
diff --git a/nixos/doc/manual/development/building-nixos.xml b/nixos/doc/manual/development/building-nixos.xml index 150fa1d7017..2f963f8666f 100644 --- a/nixos/doc/manual/development/building-nixos.xml +++ b/nixos/doc/manual/development/building-nixos.xml @@ -12,12 +12,12 @@ your configuration.nix to configure the system that would be installed on the CD.
Default CD/DVD configurations are available -inside nixos/modules/installer/cd-dvd. To build them -you have to set NIXOS_CONFIG before -running nix-build to build the ISO. +inside nixos/modules/installer/cd-dvd. -$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix +$ git clone https://github.com/NixOS/nixpkgs.git +$ cd nixpkgs/nixos +$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix default.nix diff --git a/nixos/doc/manual/development/option-declarations.xml b/nixos/doc/manual/development/option-declarations.xml index d62d0896bb7..be793152f9e 100644 --- a/nixos/doc/manual/development/option-declarations.xml +++ b/nixos/doc/manual/development/option-declarations.xml @@ -41,8 +41,9 @@ options = { default The default value used if no value is defined by any - module. A default is not required; in that case, if the option - value is never used, an error will be thrown. + module. A default is not required; but if a default is not given, + then users of the module will have to define the value of the + option, otherwise an error will be thrown. @@ -95,7 +96,7 @@ options = { - Both approachs have problems. + Both approaches have problems. Making backends independent can quickly become hard to manage. For display managers, there can be only one enabled at a time, but the type @@ -136,8 +137,8 @@ services.xserver.displayManager.enable = mkOption { }; Extending - <literal>services.foo.backend</literal> in the <literal>sddm</literal> - module + services.xserver.displayManager.enable in the + sddm module services.xserver.displayManager.enable = mkOption { type = with types; nullOr (enum [ "sddm" ]); diff --git a/nixos/doc/manual/development/option-types.xml b/nixos/doc/manual/development/option-types.xml index 8e6ac53ad48..7b86e518aaf 100644 --- a/nixos/doc/manual/development/option-types.xml +++ b/nixos/doc/manual/development/option-types.xml @@ -68,8 +68,7 @@
Value Types - Value types are type that take a value parameter. The only value type - in the library is enum. + Value types are type that take a value parameter. @@ -141,33 +140,43 @@ str. Multiple definitions cannot be merged. + + types.coercedTo from + f to + Type to or type + from which will be coerced to + type to using function + f which takes an argument of type + from and return a value of type + to. Can be used to preserve backwards + compatibility of an option if its type was changed. +
Submodule - Submodule is a very powerful type that defines a set of sub-options that - are handled like a separate module. - It is especially interesting when used with composed types like - attrsOf or listOf. + submodule is a very powerful type that defines a set + of sub-options that are handled like a separate module. - The submodule type take a parameter o, that - should be a set, or a function returning a set with an - options key defining the sub-options. - The option set can be defined directly () or as reference (). + It takes a parameter o, that should be a set, + or a function returning a set with an options key + defining the sub-options. + Submodule option definitions are type-checked accordingly to the + options declarations. + Of course, you can nest submodule option definitons for even higher + modularity. - Submodule option definitions are type-checked accordingly to the options - declarations. It is possible to declare submodule options inside a submodule - sub-options for even higher modularity. + The option set can be defined directly + () or as reference + (). Directly defined submodule options.mod = mkOption { - name = "mod"; description = "submodule example"; - type = with types; listOf (submodule { + type = with types; submodule { options = { foo = mkOption { type = int; @@ -176,10 +185,10 @@ options.mod = mkOption { type = str; }; }; - }); + }; }; -Submodule defined as a +<example xml:id='ex-submodule-reference'><title>Submodule defined as a reference let @@ -196,16 +205,20 @@ let in options.mod = mkOption { description = "submodule example"; - type = with types; listOf (submodule modOptions); + type = with types; submodule modOptions; }; -
Composed with <literal>listOf</literal> - - When composed with listOf, submodule allows multiple - definitions of the submodule option set. + The submodule type is especially interesting when + used with composed types like attrsOf or + listOf. + When composed with listOf + (), + submodule allows multiple definitions of the submodule + option set (). + Declaration of a list - of submodules + nof submodules options.mod = mkOption { description = "submodule example"; @@ -229,13 +242,11 @@ config.mod = [ { foo = 2; bar = "two"; } ]; -
- - -
Composed with <literal>attrsOf</literal> - - When composed with attrsOf, submodule allows multiple - named definitions of the submodule option set. + When composed with attrsOf + (), + submodule allows multiple named definitions of the + submodule option set (). + Declaration of attribute sets of submodules @@ -260,7 +271,6 @@ options.mod = mkOption { config.mod.one = { foo = 1; bar = "one"; }; config.mod.two = { foo = 2; bar = "two"; }; -
Extending types @@ -282,7 +292,7 @@ config.mod.two = { foo = 2; bar = "two"; }; byte = mkOption { description = "An integer between 0 and 255."; - type = addCheck (x: x >= 0 && x <= 255) types.int; + type = addCheck types.int (x: x >= 0 && x <= 255); }; Overriding a type @@ -386,7 +396,7 @@ code before creating a new type.</para> <listitem><para>For composed types that can take a submodule as type parameter, this function can be used to substitute the parameter of a submodule type. It takes a module as parameter and return the type with - the submodule options substituted. It is usally defined as a type + the submodule options substituted. It is usually defined as a type function call with a recursive call to <literal>substSubModules</literal>, e.g for a type <literal>composedType</literal> that take an <literal>elemtype</literal> diff --git a/nixos/doc/manual/development/releases.xml b/nixos/doc/manual/development/releases.xml index 01c3dbc22f1..afcb970ed70 100755 --- a/nixos/doc/manual/development/releases.xml +++ b/nixos/doc/manual/development/releases.xml @@ -10,7 +10,7 @@ <title>Release process - Going through an example of releasing NixOS 15.09: + Going through an example of releasing NixOS 17.09:
@@ -18,13 +18,13 @@ - Send an email to nix-dev mailinglist as a warning about upcoming beta "feature freeze" in a month. + Send an email to the nix-devel mailinglist as a warning about upcoming beta "feature freeze" in a month. Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. - Any issue or Pull Request targeting the release should have assigned milestone. + Any issue or Pull Request targeting the release should be included in the release milestone. @@ -32,64 +32,6 @@
At beta release time - - - Rename rl-unstable.xml -> - rl-1509.xml. - - - - - git tag -a -m "Release 15.09-beta" 15.09-beta && git push --tags - - - - - From the master branch run git checkout -B release-15.09. - - - - - - Make sure channel is created at http://nixos.org/channels/. - - - - - - - Lock the branch on github (so developers can’t force push) - - - - - - bump - system.defaultChannel attribute in - nixos/modules/misc/version.nix - - - - - update - versionSuffix in - nixos/release.nix, use - git log --format=%an|wc -l to get commit - count - - - - - echo -n "16.03" > .version in - master. - - - - - pick - a new name for unstable branch. - - Create @@ -99,26 +41,81 @@ - Use https://lwn.net/Vulnerabilities/ and - triage vulnerabilities in an issue. + git tag -a -s -m "Release 17.09-beta" 17.09-beta && git push --tags - Create two Hydra jobsets: release-15.09 and release-15.09-small with stableBranch set to false + From the master branch run git checkout -B release-17.09. + + + + + + Make sure a channel is created at http://nixos.org/channels/. + + + + + + + Let a GitHub nixpkgs admin lock the branch on github for you. + (so developers can’t force push) + + + + + + + Bump the system.defaultChannel attribute in + nixos/modules/misc/version.nix + + + + + + + Update versionSuffix in + nixos/release.nix, use + git log --format=%an|wc -l to get the commit + count + + + + + echo -n "18.03" > .version on + master. + + + + + + Pick a new name for the unstable branch. + + + + + + Create a new release notes file for the upcoming release + 1, in this + case rl-1803.xml. + + + + + Create two Hydra jobsets: release-17.09 and release-17.09-small with stableBranch set to false. Edit changelog at - nixos/doc/manual/release-notes/rl-1509.xml + nixos/doc/manual/release-notes/rl-1709.xml (double check desktop versions are noted) Get all new NixOS modules - git diff release-14.12..release-15.09 nixos/modules/module-list.nix|grep ^+ + git diff release-17.03..release-17.09 nixos/modules/module-list.nix|grep ^+ @@ -130,9 +127,25 @@
+
+ During Beta + + + + Monitor the master branch for bugfixes and minor updates + and cherry-pick them to the release branch. + + + +
Before the final release + + + Re-check that the release notes are complete. + + Release Nix (currently only Eelco Dolstra can do that). diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml index 5bdcad5ceb5..cb363b45675 100644 --- a/nixos/doc/manual/development/writing-modules.xml +++ b/nixos/doc/manual/development/writing-modules.xml @@ -178,6 +178,7 @@ in { + diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml index dae73306056..31d51816e39 100644 --- a/nixos/doc/manual/installation/installing-usb.xml +++ b/nixos/doc/manual/installation/installing-usb.xml @@ -11,7 +11,7 @@ a USB stick. You can use the dd utility to write the image: dd if=path-to-image of=/dev/sdb. Be careful about specifying the correct drive; you can use the lsblk command to get a list of -block devices. If you're on OS X you can run diskutil list +block devices. If you're on macOS you can run diskutil list to see the list of devices; the device you'll use for the USB must be ejected before writing the image. @@ -31,9 +31,14 @@ ISO, copy its contents verbatim to your drive, then either: Edit loader/entries/nixos-livecd.conf on the drive and change the root= field in the options line to point to your drive (see the documentation on root= - in + in the kernel documentation for more details). + + If you want to load the contents of the ISO to ram after bootin + (So you can remove the stick after bootup) you can append the parameter + copytoramto the options field. + diff --git a/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixos/doc/manual/installation/installing-virtualbox-guest.xml index 8fe61a5fdfd..ee9680ced39 100644 --- a/nixos/doc/manual/installation/installing-virtualbox-guest.xml +++ b/nixos/doc/manual/installation/installing-virtualbox-guest.xml @@ -37,15 +37,7 @@ - There are a few modifications you should make in configuration.nix. Enable - the virtualbox guest service in the main block: - - - -virtualisation.virtualbox.guest.enable = true; - - - + There are a few modifications you should make in configuration.nix. Enable booting: diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index 8c37643c08f..b0674307a56 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -16,7 +16,8 @@ hardware. The NixOS manual is available on virtual console 8 - (press Alt+F8 to access). + (press Alt+F8 to access) or by running nixos-help. + You get logged in as root (with empty password). @@ -139,6 +140,11 @@ the GRUB boot loader is to be installed. Without it, NixOS cannot boot. + If there are other operating systems running on the machine before + installing NixOS, the + option can be set to + true to automatically add them to the grub menu. + Another critical option is , specifying the file systems that need to be mounted by NixOS. However, you typically don’t need to set it yourself, because diff --git a/nixos/doc/manual/man-nixos-option.xml b/nixos/doc/manual/man-nixos-option.xml index 6be8bc780f1..d2b2d5b7965 100644 --- a/nixos/doc/manual/man-nixos-option.xml +++ b/nixos/doc/manual/man-nixos-option.xml @@ -17,11 +17,16 @@ nixos-option - option.name + + + path + + + + option.name - Description This command evaluates the configuration specified in @@ -33,6 +38,45 @@ attributes contained in the attribute set. +Options + +This command accepts the following options: + + + + + path + + + This option is passed to the underlying + nix-instantiate invocation. + + + + + + + + + This option enables verbose mode, which currently is just + the Bash set debug mode. + + + + + + + + + This option causes the output to be rendered as XML. + + + + + + + + Environment diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml index 2c28dd44801..9aa332f026d 100644 --- a/nixos/doc/manual/manual.xml +++ b/nixos/doc/manual/manual.xml @@ -18,7 +18,7 @@ If you encounter problems, please report them on the nix-dev@lists.science.uu.nl + xlink:href="https://groups.google.com/forum/#!forum/nix-devel">nix-devel mailing list or on the #nixos channel on Freenode. Bugs should diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml index 6065a86f60d..5ed56bde665 100644 --- a/nixos/doc/manual/release-notes/release-notes.xml +++ b/nixos/doc/manual/release-notes/release-notes.xml @@ -9,6 +9,7 @@ This section lists the release notes for each stable version of NixOS and current unstable revision. + diff --git a/nixos/doc/manual/release-notes/rl-1509.xml b/nixos/doc/manual/release-notes/rl-1509.xml index e0271485c36..6c1c46844cc 100644 --- a/nixos/doc/manual/release-notes/rl-1509.xml +++ b/nixos/doc/manual/release-notes/rl-1509.xml @@ -28,7 +28,7 @@ has the following highlights: since version 0.0 as well as the most recent Stackage Nightly snapshot. The announcement "Full + xlink:href="https://nixos.org/nix-dev/2015-September/018138.html">"Full Stackage Support in Nixpkgs" gives additional details. @@ -342,7 +342,7 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.pandoc - Python 2.6 has been marked as broken (as it no longer recieves + Python 2.6 has been marked as broken (as it no longer receives security updates from upstream). diff --git a/nixos/doc/manual/release-notes/rl-1603.xml b/nixos/doc/manual/release-notes/rl-1603.xml index f460e00e836..7279dd05827 100644 --- a/nixos/doc/manual/release-notes/rl-1603.xml +++ b/nixos/doc/manual/release-notes/rl-1603.xml @@ -362,7 +362,7 @@ services.syncthing = { networking.firewall.allowPing is now enabled by - default. Users are encourarged to configure an approiate rate limit for + default. Users are encouraged to configure an appropriate rate limit for their machines using the Kernel interface at /proc/sys/net/ipv4/icmp_ratelimit and /proc/sys/net/ipv6/icmp/ratelimit or using the diff --git a/nixos/doc/manual/release-notes/rl-1609.xml b/nixos/doc/manual/release-notes/rl-1609.xml index ade7d5581ce..893f894f42f 100644 --- a/nixos/doc/manual/release-notes/rl-1609.xml +++ b/nixos/doc/manual/release-notes/rl-1609.xml @@ -78,13 +78,13 @@ following incompatible changes: our package set it loosely based on the latest available LTS release, i.e. LTS 7.x at the time of this writing. New releases of NixOS and Nixpkgs will drop those old names entirely. The + xlink:href="https://nixos.org/nix-dev/2016-June/020585.html">The motivation for this change has been discussed at length on the nix-dev mailing list and in Github issue #14897. Development strategies for Haskell hackers who want to rely on Nix and NixOS have been described in another + xlink:href="https://nixos.org/nix-dev/2016-June/020642.html">another nix-dev article. @@ -176,7 +176,7 @@ following incompatible changes: streamlined. Desktop users should be able to simply set security.grsecurity.enable = true to get a reasonably secure system without having to sacrifice too much - functionality. See for documentation + functionality. Special filesystems, like /proc, diff --git a/nixos/doc/manual/release-notes/rl-1703.xml b/nixos/doc/manual/release-notes/rl-1703.xml index 28c573e6d23..6147b983013 100644 --- a/nixos/doc/manual/release-notes/rl-1703.xml +++ b/nixos/doc/manual/release-notes/rl-1703.xml @@ -315,7 +315,7 @@ following incompatible changes: let pkgs = import <nixpkgs> {}; in - import pkgs.path { overlays = [(self: super: ...)] } + import pkgs.path { overlays = [(self: super: ...)]; } diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml index 5fba4c34ec8..66f7b01db72 100644 --- a/nixos/doc/manual/release-notes/rl-1709.xml +++ b/nixos/doc/manual/release-notes/rl-1709.xml @@ -6,10 +6,24 @@ Release 17.09 (“Hummingbird”, 2017/09/??) +
+ +Highlights + In addition to numerous new and upgraded packages, this release has the following highlights: + + + The GNOME version is now 3.24. KDE Plasma was upgraded to 5.10, + KDE Applications to 17.08.1 and KDE Frameworks to 5.37. + + The user handling now keeps track of deallocated UIDs/GIDs. When a user @@ -17,32 +31,465 @@ has the following highlights: A consequence is that UIDs and GIDs are no longer reused. - + + + The module option now + causes the first head specified in this list to be set as the primary + head. Apart from that, it's now possible to also set additional options + by using an attribute set, for example: + +{ services.xserver.xrandrHeads = [ + "HDMI-0" + { + output = "DVI-0"; + primary = true; + monitorConfig = '' + Option "Rotate" "right" + ''; + } + ]; +} + + This will set the DVI-0 output to be the primary head, + even though HDMI-0 is the first head in the list. + + + + + The handling of SSL in the services.nginx module has + been cleaned up, renaming the misnamed enableSSL to + onlySSL which reflects its original intention. This + is not to be used with the already existing forceSSL + which creates a second non-SSL virtual host redirecting to the SSL + virtual host. This by chance had worked earlier due to specific + implementation details. In case you had specified both please remove + the enableSSL option to keep the previous behaviour. + + + Another addSSL option has been introduced to configure + both a non-SSL virtual host and an SSL virtual host with the same + configuration. + + + Options to configure resolver options and + upstream blocks have been introduced. See their information + for further details. + + + The port option has been replaced by a more generic + listen option which makes it possible to specify + multiple addresses, ports and SSL configs dependant on the new SSL + handling mentioned above. + + +
+
+ +New Services + The following new services were added since the last release: - - - + config/fonts/fontconfig-penultimate.nix + config/fonts/fontconfig-ultimate.nix + config/terminfo.nix + hardware/sensor/iio.nix + hardware/nitrokey.nix + hardware/raid/hpsa.nix + programs/browserpass.nix + programs/gnupg.nix + programs/qt5ct.nix + programs/slock.nix + programs/thefuck.nix + security/auditd.nix + security/lock-kernel-modules.nix + service-managers/docker.nix + service-managers/trivial.nix + services/admin/salt/master.nix + services/admin/salt/minion.nix + services/audio/slimserver.nix + services/cluster/kubernetes/default.nix + services/cluster/kubernetes/dns.nix + services/cluster/kubernetes/dashboard.nix + services/continuous-integration/hail.nix + services/databases/clickhouse.nix + services/databases/postage.nix + services/desktops/gnome3/gnome-disks.nix + services/desktops/gnome3/gpaste.nix + services/logging/SystemdJournal2Gelf.nix + services/logging/heartbeat.nix + services/logging/journalwatch.nix + services/logging/syslogd.nix + services/mail/mailhog.nix + services/mail/nullmailer.nix + services/misc/airsonic.nix + services/misc/autorandr.nix + services/misc/exhibitor.nix + services/misc/fstrim.nix + services/misc/gollum.nix + services/misc/irkerd.nix + services/misc/jackett.nix + services/misc/radarr.nix + services/misc/snapper.nix + services/monitoring/osquery.nix + services/monitoring/prometheus/collectd-exporter.nix + services/monitoring/prometheus/fritzbox-exporter.nix + services/network-filesystems/kbfs.nix + services/networking/dnscache.nix + services/networking/fireqos.nix + services/networking/iwd.nix + services/networking/keepalived/default.nix + services/networking/keybase.nix + services/networking/lldpd.nix + services/networking/matterbridge.nix + services/networking/squid.nix + services/networking/tinydns.nix + services/networking/xrdp.nix + services/security/shibboleth-sp.nix + services/security/sks.nix + services/security/sshguard.nix + services/security/torify.nix + services/security/usbguard.nix + services/security/vault.nix + services/system/earlyoom.nix + services/system/saslauthd.nix + services/web-apps/nexus.nix + services/web-apps/pgpkeyserver-lite.nix + services/web-apps/piwik.nix + services/web-servers/lighttpd/collectd.nix + services/web-servers/minio.nix + services/x11/display-managers/xpra.nix + services/x11/xautolock.nix + tasks/filesystems/bcachefs.nix + tasks/powertop.nix +
+
+ +Backward Incompatibilities When upgrading from a previous release, please be aware of the following incompatible changes: + + + + In an Qemu-based virtualization environment, the network interface + names changed from i.e. enp0s3 to + ens3. + + + + This is due to a kernel configuration change. The new naming + is consistent with those of other Linux distributions with + systemd. See + #29197 + for more information. + + + A machine is affected if the virt-what tool + either returns qemu or + kvm and has + interface names used in any part of its NixOS configuration, + in particular if a static network configuration with + networking.interfaces is used. + + + Before rebooting affected machines, please ensure: + + + + Change the interface names in your NixOS configuration. + The first interface will be called ens3, + the second one ens8 and starting from there + incremented by 1. + + + + + After changing the interface names, rebuild your system with + nixos-rebuild boot to activate the new + configuration after a reboot. If you switch to the new + configuration right away you might lose network connectivity! + If using nixops, deploy with + nixops deploy --force-reboot. + + + + + + + + The following changes apply if the stateVersion is changed to 17.09 or higher. + For stateVersion = "17.03" or lower the old behavior is preserved. + + + + + The postgres default version was changed from 9.5 to 9.6. + + + + + The postgres superuser name has changed from root to postgres to more closely follow what other Linux distributions are doing. + + + + + The postgres default dataDir has changed from /var/db/postgres to /var/lib/postgresql/$psqlSchema where $psqlSchema is 9.6 for example. + + + + + The mysql default dataDir has changed from /var/mysql to /var/lib/mysql. + + + + + Radicale's default package has changed from 1.x to 2.x. Instructions to migrate can be found here . It is also possible to use the newer version by setting the package to radicale2, which is done automatically when stateVersion is 17.09 or higher. The extraArgs option has been added to allow passing the data migration arguments specified in the instructions; see the radicale.nix NixOS test for an example migration. + + + + + + + The aiccu package was removed. This is due to SixXS + sunsetting its IPv6 tunnel. + + + + + The fanctl package and fan module + have been removed due to the developers not upstreaming their iproute2 + patches and lagging with compatibility to recent iproute2 versions. + + Top-level idea package collection was renamed. All JetBrains IDEs are now at jetbrains. + + + flexget's state database cannot be upgraded to its + new internal format, requiring removal of any existing + db-config.sqlite which will be automatically recreated. + + + + + The ipfs service now doesn't ignore the dataDir option anymore. If you've ever set this option to anything other than the default you'll have to either unset it (so the default gets used) or migrate the old data manually with + +dataDir=<valueOfDataDir> +mv /var/lib/ipfs/.ipfs/* $dataDir +rmdir /var/lib/ipfs/.ipfs + + + + + + The caddy service was previously using an extra + .caddy directory in the data directory specified + with the dataDir option. The contents of the + .caddy directory are now expected to be in the + dataDir. + + + + + The ssh-agent user service is not started by default + anymore. Use programs.ssh.startAgent to enable it if + needed. There is also a new programs.gnupg.agent + module that creates a gpg-agent user service. It can + also serve as a SSH agent if enableSSHSupport is set. + + + + + The services.tinc.networks.<name>.listenAddress + option had a misleading name that did not correspond to its behavior. It + now correctly defines the ip to listen for incoming connections on. To + keep the previous behaviour, use + services.tinc.networks.<name>.bindToAddress + instead. Refer to the description of the options for more details. + + + + + tlsdate package and module were removed. This is due to the project + being dead and not building with openssl 1.1. + + + + + wvdial package and module were removed. This is due to the project + being dead and not building with openssl 1.1. + + + + + cc-wrapper's setup-hook now exports a number of + environment variables corresponding to binutils binaries, + (e.g. LD, STRIP, RANLIB, + etc). This is done to prevent packages' build systems guessing, which is + harder to predict, especially when cross-compiling. However, some packages + have broken due to this—their build systems either not supporting, or + claiming to support without adequate testing, taking such environment + variables as parameters. + + + + + services.firefox.syncserver now runs by default as a + non-root user. To accomodate this change, the default sqlite database + location has also been changed. Migration should work automatically. + Refer to the description of the options for more details. + + + + + The compiz window manager and package was + removed. The system support had been broken for several years. + + + + + Touchpad support should now be enabled through + libinput as synaptics is + now deprecated. See the option + services.xserver.libinput.enable. + + + + + grsecurity/PaX support has been dropped, following upstream's + decision to cease free support. See + + upstream's announcement for more information. + No complete replacement for grsecurity/PaX is available presently. + + + + + services.mysql now has declarative + configuration of databases and users with the ensureDatabases and + ensureUsers options. + + + + These options will never delete existing databases and users, + especially not when the value of the options are changed. + + + + The MySQL users will be identified using + + Unix socket authentication. This authenticates the + Unix user with the same name only, and that without the need + for a password. + + + + If you have previously created a MySQL root + user with a password, you will need to add + root user for unix socket authentication + before using the new options. This can be done by running the + following SQL script: + + +CREATE USER 'root'@'%' IDENTIFIED BY ''; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; +FLUSH PRIVILEGES; + +-- Optionally, delete the password-authenticated user: +-- DROP USER 'root'@'localhost'; + + + + + + + services.mysqlBackup now works by default + without any user setup, including for users other than + mysql. + + + + By default, the mysql user is no longer the + user which performs the backup. Instead a system account + mysqlbackup is used. + + + + The mysqlBackup service is also now using + systemd timers instead of cron. + + + + Therefore, the services.mysqlBackup.period + option no longer exists, and has been replaced with + services.mysqlBackup.calendar, which is in + the format of systemd.time(7). + + + + If you expect to be sent an e-mail when the backup fails, + consider using a script which monitors the systemd journal for + errors. Regretfully, at present there is no built-in + functionality for this. + + + + You can check that backups still work by running + systemctl start mysql-backup then + systemctl status mysql-backup. + + + + + + Templated systemd services e.g container@name are + now handled currectly when switching to a new configuration, resulting + in them being reloaded. + + + + + Steam: the newStdcpp parameter + was removed and should not be needed anymore. + + + + + Redis has been updated to version 4 which mandates a cluster + mass-restart, due to changes in the network handling, in order + to ensure compatibility with networks NATing traffic. + + +
+
-Other notable improvements: +Other Notable Changes @@ -67,7 +514,98 @@ following incompatible changes: module where user Fontconfig settings are available. + + + ZFS/SPL have been updated to 0.7.0, zfsUnstable, splUnstable + have therefore been removed. + + + + + The option now allows the value + null in addition to timezone strings. This value + allows changing the timezone of a system imperatively using + timedatectl set-timezone. The default timezone + is still UTC. + + + + + Nixpkgs overlays may now be specified with a file as well as a directory. The + value of <nixpkgs-overlays> may be a file, and + ~/.config/nixpkgs/overlays.nix can be used instead of the + ~/.config/nixpkgs/overlays directory. + + + See the overlays chapter of the Nixpkgs manual for more details. + + + + + Definitions for /etc/hosts can now be specified + declaratively with networking.hosts. + + + + + Two new options have been added to the installer loader, in addition + to the default having changed. The kernel log verbosity has been lowered + to the upstream default for the default options, in order to not spam + the console when e.g. joining a network. + + + This therefore leads to adding a new debug option + to set the log level to the previous verbose mode, to make debugging + easier, but still accessible easily. + + + Additionally a copytoram option has been added, + which makes it possible to remove the install medium after booting. + This allows tethering from your phone after booting from it. + + + + + services.gitlab-runner.configOptions has been added + to specify the configuration of gitlab-runners declaratively. + + + + + services.jenkins.plugins has been added + to install plugins easily, this can be generated with jenkinsPlugins2nix. + + + + + services.postfix.config has been added + to specify the main.cf with NixOS options. Additionally other options + have been added to the postfix module and has been improved further. + + + + + The GitLab package and module have been updated to the latest 10.0 + release. + + + + + The systemd-boot boot loader now lists the NixOS + version, kernel version and build date of all bootable generations. + + + + + The dnscrypt-proxy service now defaults to using a random upstream resolver, + selected from the list of public non-logging resolvers with DNSSEC support. + Existing configurations can be migrated to this mode of operation by + omitting the option + or setting it to "random". + +
+
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml new file mode 100644 index 00000000000..17b385242f6 --- /dev/null +++ b/nixos/doc/manual/release-notes/rl-1803.xml @@ -0,0 +1,96 @@ +
+ +Release 18.03 (“Impala”, 2018/03/??) + +
+ +Highlights + +In addition to numerous new and upgraded packages, this release +has the following highlights: + + + + + + + + +
+
+ +New Services + +The following new services were added since the last release: + + + + + + + +
+
+ +Backward Incompatibilities + +When upgrading from a previous release, please be aware of the +following incompatible changes: + + + + + Dollar signs in options under are + passed verbatim to Postfix, which will interpret them as the beginning of + a parameter expression. This was already true for string-valued options + in the previous release, but not for list-valued options. If you need to + pass literal dollar signs through Postfix, double them. + + + + + The postage package (for web-based PostgreSQL + administration) has been renamed to pgmanage. The + corresponding module has also been renamed. To migrate please rename all + options to + . + + + + +
+
+ +Other Notable Changes + + + + + ZNC option now defaults to true. + That means that old configuration is not overwritten by default when update to the znc options are made. + + + + +
+
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix index 8c5de22f30f..9fa848301f6 100644 --- a/nixos/lib/make-disk-image.nix +++ b/nixos/lib/make-disk-image.nix @@ -33,42 +33,118 @@ , name ? "nixos-disk-image" - # This prevents errors while checking nix-store validity, see - # https://github.com/NixOS/nix/issues/1134 -, fixValidity ? true - , format ? "raw" }: with lib; -pkgs.vmTools.runInLinuxVM ( +let + extensions = { + qcow2 = "qcow2"; + vpc = "vhd"; + raw = "img"; + }; + + nixpkgs = lib.cleanSource pkgs.path; + + channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} '' + mkdir -p $out + cp -prd ${nixpkgs} $out/nixos + chmod -R u+w $out/nixos + if [ ! -e $out/nixos/nixpkgs ]; then + ln -s . $out/nixos/nixpkgs + fi + rm -rf $out/nixos/.git + echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix + ''; + + metaClosure = pkgs.writeText "meta" '' + ${config.system.build.toplevel} + ${config.nix.package.out} + ${channelSources} + ''; + + prepareImageInputs = with pkgs; [ rsync utillinux parted e2fsprogs lkl fakeroot config.system.build.nixos-prepare-root ] ++ stdenv.initialPath; + + # I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate + # image building logic. The comment right below this now appears in 4 different places in nixpkgs :) + # !!! should use XML. + sources = map (x: x.source) contents; + targets = map (x: x.target) contents; + + prepareImage = '' + export PATH=${pkgs.lib.makeSearchPathOutput "bin" "bin" prepareImageInputs} + + mkdir $out + diskImage=nixos.raw + truncate -s ${toString diskSize}M $diskImage + + ${if partitioned then '' + parted --script $diskImage -- mklabel msdos mkpart primary ext4 1M -1s + offset=$((2048*512)) + '' else '' + offset=0 + ''} + + mkfs.${fsType} -F -L nixos -E offset=$offset $diskImage + + root="$PWD/root" + mkdir -p $root + + # Copy arbitrary other files into the image + # Semi-shamelessly copied from make-etc.sh. I (@copumpkin) shall factor this stuff out as part of + # https://github.com/NixOS/nixpkgs/issues/23052. + set -f + sources_=(${concatStringsSep " " sources}) + targets_=(${concatStringsSep " " targets}) + set +f + + for ((i = 0; i < ''${#targets_[@]}; i++)); do + source="''${sources_[$i]}" + target="''${targets_[$i]}" + + if [[ "$source" =~ '*' ]]; then + # If the source name contains '*', perform globbing. + mkdir -p $root/$target + for fn in $source; do + rsync -a --no-o --no-g "$fn" $root/$target/ + done + else + mkdir -p $root/$(dirname $target) + if ! [ -e $root/$target ]; then + rsync -a --no-o --no-g $source $root/$target + else + echo "duplicate entry $target -> $source" + exit 1 + fi + fi + done + + # TODO: Nix really likes to chown things it creates to its current user... + fakeroot nixos-prepare-root $root ${channelSources} ${config.system.build.toplevel} closure + + echo "copying staging root to image..." + cptofs ${pkgs.lib.optionalString partitioned "-P 1"} -t ${fsType} -i $diskImage $root/* / + ''; +in pkgs.vmTools.runInLinuxVM ( pkgs.runCommand name - { preVM = - '' - mkdir $out - diskImage=$out/nixos.${if format == "qcow2" then "qcow2" else "img"} - ${pkgs.vmTools.qemu}/bin/qemu-img create -f ${format} $diskImage "${toString diskSize}M" - mv closure xchg/ - ''; - buildInputs = with pkgs; [ utillinux perl e2fsprogs parted rsync ]; - - # I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate - # image building logic. The comment right below this now appears in 4 different places in nixpkgs :) - # !!! should use XML. - sources = map (x: x.source) contents; - targets = map (x: x.target) contents; - - exportReferencesGraph = - [ "closure" config.system.build.toplevel ]; - inherit postVM; + { preVM = prepareImage; + buildInputs = with pkgs; [ utillinux e2fsprogs ]; + exportReferencesGraph = [ "closure" metaClosure ]; + postVM = '' + ${if format == "raw" then '' + mv $diskImage $out/nixos.img + diskImage=$out/nixos.img + '' else '' + ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} $diskImage $out/nixos.${extensions.${format}} + diskImage=$out/nixos.${extensions.${format}} + ''} + ${postVM} + ''; memSize = 1024; } '' ${if partitioned then '' - # Create a single / partition. - parted /dev/vda mklabel msdos - parted /dev/vda -- mkpart primary ext2 1M -1s . /sys/class/block/vda1/uevent mknod /dev/vda1 b $MAJOR $MINOR rootDisk=/dev/vda1 @@ -76,74 +152,34 @@ pkgs.vmTools.runInLinuxVM ( rootDisk=/dev/vda ''} - # Create an empty filesystem and mount it. - mkfs.${fsType} -L nixos $rootDisk - mkdir /mnt - mount $rootDisk /mnt - - # Register the paths in the Nix database. - printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ - ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group "" - - ${if fixValidity then '' - # Add missing size/hash fields to the database. FIXME: - # exportReferencesGraph should provide these directly. - ${config.nix.package.out}/bin/nix-store --verify --check-contents --option build-users-group "" - '' else ""} - - # In case the bootloader tries to write to /dev/sda… + # Some tools assume these exist ln -s vda /dev/xvda ln -s vda /dev/sda - # Install the closure onto the image - USER=root ${config.system.build.nixos-install}/bin/nixos-install \ - --closure ${config.system.build.toplevel} \ - --no-channel-copy \ - --no-root-passwd \ - ${optionalString (!installBootLoader) "--no-bootloader"} + mountPoint=/mnt + mkdir $mountPoint + mount $rootDisk $mountPoint - # Install a configuration.nix. + # Install a configuration.nix mkdir -p /mnt/etc/nixos ${optionalString (configFile != null) '' cp ${configFile} /mnt/etc/nixos/configuration.nix ''} - # Remove /etc/machine-id so that each machine cloning this image will get its own id - rm -f /mnt/etc/machine-id + mount --rbind /dev $mountPoint/dev + mount --rbind /proc $mountPoint/proc + mount --rbind /sys $mountPoint/sys - # Copy arbitrary other files into the image - # Semi-shamelessly copied from make-etc.sh. I (@copumpkin) shall factor this stuff out as part of - # https://github.com/NixOS/nixpkgs/issues/23052. - set -f - sources_=($sources) - targets_=($targets) - set +f + # Set up core system link, GRUB, etc. + NIXOS_INSTALL_BOOTLOADER=1 chroot $mountPoint /nix/var/nix/profiles/system/bin/switch-to-configuration boot - for ((i = 0; i < ''${#targets_[@]}; i++)); do - source="''${sources_[$i]}" - target="''${targets_[$i]}" + # TODO: figure out if I should activate, but for now I won't + # chroot $mountPoint /nix/var/nix/profiles/system/activate - if [[ "$source" =~ '*' ]]; then + # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images + rm -f $mountPoint/etc/machine-id - # If the source name contains '*', perform globbing. - mkdir -p /mnt/$target - for fn in $source; do - rsync -a --no-o --no-g "$fn" /mnt/$target/ - done - - else - - mkdir -p /mnt/$(dirname $target) - if ! [ -e /mnt/$target ]; then - rsync -a --no-o --no-g $source /mnt/$target - else - echo "duplicate entry $target -> $source" - exit 1 - fi - fi - done - - umount /mnt + umount -R /mnt # Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal # mount, so the `-c 0` and `-i 0` don't affect it. Setting it to `now` doesn't produce deterministic diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix index 23839ea487d..f06649e1991 100644 --- a/nixos/lib/make-ext4-fs.nix +++ b/nixos/lib/make-ext4-fs.nix @@ -33,7 +33,7 @@ pkgs.stdenv.mkDerivation { echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)" truncate -s $bytes $out - faketime "1970-01-01 00:00:00" mkfs.ext4 -L ${volumeLabel} -U 44444444-4444-4444-8888-888888888888 $out + faketime -f "1970-01-01 00:00:01" mkfs.ext4 -L ${volumeLabel} -U 44444444-4444-4444-8888-888888888888 $out # Populate the image contents by piping a bunch of commands to the `debugfs` tool from e2fsprogs. # For example, to copy /nix/store/abcd...efg-coreutils-8.23/bin/sleep: @@ -76,7 +76,7 @@ pkgs.stdenv.mkDerivation { echo sif $file gid 30000 # chgrp to nixbld done - ) | faketime "1970-01-01 00:00:00" debugfs -w $out -f /dev/stdin > errorlog 2>&1 + ) | faketime -f "1970-01-01 00:00:01" debugfs -w $out -f /dev/stdin > errorlog 2>&1 # The debugfs tool doesn't terminate on error nor exit with a non-zero status. Check manually. if egrep -q 'Could not allocate|File not found' errorlog; then diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm index c619264eb94..a7ed5d1faa3 100644 --- a/nixos/lib/test-driver/Machine.pm +++ b/nixos/lib/test-driver/Machine.pm @@ -219,8 +219,8 @@ sub waitForMonitorPrompt { sub retry { my ($coderef) = @_; my $n; - for ($n = 0; $n < 900; $n++) { - return if &$coderef; + for ($n = 899; $n >=0; $n--) { + return if &$coderef($n); sleep 1; } die "action timed out after $n seconds"; @@ -372,6 +372,17 @@ sub getUnitInfo { return $info; } +# Fail if the given systemd unit is not in the "active" state. +sub requireActiveUnit { + my ($self, $unit) = @_; + $self->nest("checking if unit ‘$unit’ has reached state 'active'", sub { + my $info = $self->getUnitInfo($unit); + my $state = $info->{ActiveState}; + if ($state ne "active") { + die "Expected unit ‘$unit’ to to be in state 'active' but it is in state ‘$state’\n"; + }; + }); +} # Wait for a systemd unit to reach the "active" state. sub waitForUnit { @@ -518,6 +529,12 @@ sub waitUntilTTYMatches { $self->nest("waiting for $regexp to appear on tty $tty", sub { retry sub { + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on TTY$tty, which currently contains:"); + $self->log($self->getTTYText($tty)); + } + return 1 if $self->getTTYText($tty) =~ /$regexp/; } }); @@ -566,6 +583,12 @@ sub waitForText { my ($self, $regexp) = @_; $self->nest("waiting for $regexp to appear on the screen", sub { retry sub { + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on the screen, which currently contains:"); + $self->log($self->getScreenText); + } + return 1 if $self->getScreenText =~ /$regexp/; } }); @@ -600,6 +623,13 @@ sub waitForWindow { $self->nest("waiting for a window to appear", sub { retry sub { my @names = $self->getWindowNames; + + my ($retries_remaining) = @_; + if ($retries_remaining == 0) { + $self->log("Last chance to match /$regexp/ on the the window list, which currently contains:"); + $self->log(join(", ", @names)); + } + foreach my $n (@names) { return 1 if $n =~ /$regexp/; } @@ -617,29 +647,19 @@ sub copyFileFromHost { my %charToKey = ( - '!' => "shift-0x02", - '@' => "shift-0x03", - '#' => "shift-0x04", - '$' => "shift-0x05", - '%' => "shift-0x06", - '^' => "shift-0x07", - '&' => "shift-0x08", - '*' => "shift-0x09", - '(' => "shift-0x0A", - ')' => "shift-0x0B", - '-' => "0x0C", '_' => "shift-0x0C", - '=' => "0x0D", '+' => "shift-0x0D", - '[' => "0x1A", '{' => "shift-0x1A", - ']' => "0x1B", '}' => "shift-0x1B", - ';' => "0x27", ':' => "shift-0x27", - '\'' => "0x28", '"' => "shift-0x28", - '`' => "0x29", '~' => "shift-0x29", - '\\' => "0x2B", '|' => "shift-0x2B", - ',' => "0x33", '<' => "shift-0x33", - '.' => "0x34", '>' => "shift-0x34", - '/' => "0x35", '?' => "shift-0x35", - ' ' => "spc", - "\n" => "ret", + 'A' => "shift-a", 'N' => "shift-n", '-' => "0x0C", '_' => "shift-0x0C", '!' => "shift-0x02", + 'B' => "shift-b", 'O' => "shift-o", '=' => "0x0D", '+' => "shift-0x0D", '@' => "shift-0x03", + 'C' => "shift-c", 'P' => "shift-p", '[' => "0x1A", '{' => "shift-0x1A", '#' => "shift-0x04", + 'D' => "shift-d", 'Q' => "shift-q", ']' => "0x1B", '}' => "shift-0x1B", '$' => "shift-0x05", + 'E' => "shift-e", 'R' => "shift-r", ';' => "0x27", ':' => "shift-0x27", '%' => "shift-0x06", + 'F' => "shift-f", 'S' => "shift-s", '\'' => "0x28", '"' => "shift-0x28", '^' => "shift-0x07", + 'G' => "shift-g", 'T' => "shift-t", '`' => "0x29", '~' => "shift-0x29", '&' => "shift-0x08", + 'H' => "shift-h", 'U' => "shift-u", '\\' => "0x2B", '|' => "shift-0x2B", '*' => "shift-0x09", + 'I' => "shift-i", 'V' => "shift-v", ',' => "0x33", '<' => "shift-0x33", '(' => "shift-0x0A", + 'J' => "shift-j", 'W' => "shift-w", '.' => "0x34", '>' => "shift-0x34", ')' => "shift-0x0B", + 'K' => "shift-k", 'X' => "shift-x", '/' => "0x35", '?' => "shift-0x35", + 'L' => "shift-l", 'Y' => "shift-y", ' ' => "spc", + 'M' => "shift-m", 'Z' => "shift-z", "\n" => "ret", ); diff --git a/nixos/lib/test-driver/test-driver.pl b/nixos/lib/test-driver/test-driver.pl index 854be99552a..a3354fb0e1e 100644 --- a/nixos/lib/test-driver/test-driver.pl +++ b/nixos/lib/test-driver/test-driver.pl @@ -35,7 +35,7 @@ foreach my $vlan (split / /, $ENV{VLANS} || "") { if ($pid == 0) { dup2(fileno($pty->slave), 0); dup2(fileno($stdoutW), 1); - exec "vde_switch -s $socket" or _exit(1); + exec "vde_switch -s $socket --dirmode 0700" or _exit(1); } close $stdoutW; print $pty "version\n"; diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index 58c447c76db..9339ba78ff0 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -149,6 +149,7 @@ rec { { key = "run-in-machine"; networking.hostName = "client"; nix.readOnlyStore = false; + virtualisation.writableStore = false; } ]; diff --git a/nixos/maintainers/option-usages.nix b/nixos/maintainers/option-usages.nix index 854ecf7eac5..7be0255b35a 100644 --- a/nixos/maintainers/option-usages.nix +++ b/nixos/maintainers/option-usages.nix @@ -77,7 +77,6 @@ let excludedOptions = [ "boot.systemd.services" "systemd.services" - "environment.gnome3.packageSet" "kde.extraPackages" ]; excludeOptions = list: diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix index b4190df8335..2e67edf8ee3 100644 --- a/nixos/maintainers/scripts/ec2/amazon-image.nix +++ b/nixos/maintainers/scripts/ec2/amazon-image.nix @@ -6,12 +6,15 @@ let cfg = config.amazonImage; in { - imports = - [ ../../../modules/installer/cd-dvd/channel.nix - ../../../modules/virtualisation/amazon-image.nix - ]; + imports = [ ../../../modules/virtualisation/amazon-image.nix ]; options.amazonImage = { + name = mkOption { + type = types.str; + description = "The name of the generated derivation"; + default = "nixos-disk-image"; + }; + contents = mkOption { example = literalExample '' [ { source = pkgs.memtest86 + "/memtest.bin"; @@ -25,15 +28,26 @@ in { generated image. Glob patterns work. ''; }; + + sizeMB = mkOption { + type = types.int; + default = if config.ec2.hvm then 2048 else 8192; + description = "The size in MB of the image"; + }; + + format = mkOption { + type = types.enum [ "raw" "qcow2" "vpc" ]; + default = "qcow2"; + description = "The image format to output"; + }; }; config.system.build.amazonImage = import ../../../lib/make-disk-image.nix { inherit lib config; - inherit (cfg) contents; + inherit (cfg) contents format name; pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package partitioned = config.ec2.hvm; - diskSize = if config.ec2.hvm then 2048 else 8192; - format = "qcow2"; + diskSize = cfg.sizeMB; configFile = pkgs.writeText "configuration.nix" '' { @@ -44,5 +58,4 @@ in { } ''; }; - } diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh index 24ced8da531..dfc0f8d1146 100755 --- a/nixos/maintainers/scripts/ec2/create-amis.sh +++ b/nixos/maintainers/scripts/ec2/create-amis.sh @@ -17,7 +17,7 @@ mkdir -p $stateDir rm -f ec2-amis.nix types="hvm" -stores="ebs s3" +stores="ebs" regions="eu-west-1 eu-west-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2 ca-central-1 ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 sa-east-1 ap-south-1" for type in $types; do diff --git a/nixos/maintainers/scripts/openstack/nova-image.nix b/nixos/maintainers/scripts/openstack/nova-image.nix index fa9cfb74bd6..b6f3a5b1520 100644 --- a/nixos/maintainers/scripts/openstack/nova-image.nix +++ b/nixos/maintainers/scripts/openstack/nova-image.nix @@ -1,3 +1,5 @@ +# nix-build '' -A config.system.build.novaImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/nova-image.nix ]; }" + { config, lib, pkgs, ... }: with lib; diff --git a/nixos/modules/config/debug-info.nix b/nixos/modules/config/debug-info.nix index 49991d22a93..2942ae5905d 100644 --- a/nixos/modules/config/debug-info.nix +++ b/nixos/modules/config/debug-info.nix @@ -30,14 +30,15 @@ with lib; }; - config = { + config = mkIf config.environment.enableDebugInfo { # FIXME: currently disabled because /lib is already in # environment.pathsToLink, and we can't have both. #environment.pathsToLink = [ "/lib/debug/.build-id" ]; - environment.extraOutputsToInstall = - optional config.environment.enableDebugInfo "debug"; + environment.extraOutputsToInstall = [ "debug" ]; + + environment.variables.NIX_DEBUG_INFO_DIRS = [ "/run/current-system/sw/lib/debug" ]; }; diff --git a/nixos/modules/config/fonts/fontconfig-ultimate.nix b/nixos/modules/config/fonts/fontconfig-ultimate.nix index 1bf9fdb1984..c7654ca78c3 100644 --- a/nixos/modules/config/fonts/fontconfig-ultimate.nix +++ b/nixos/modules/config/fonts/fontconfig-ultimate.nix @@ -53,7 +53,7 @@ in }; substitutions = mkOption { - type = types.nullOr (types.enum ["free" "combi" "ms"]); + type = types.enum ["free" "combi" "ms" "none"]; default = "free"; description = '' Font substitutions to replace common Type 1 fonts with nicer diff --git a/nixos/modules/config/i18n.nix b/nixos/modules/config/i18n.nix index 799f0793c74..46b22fc1285 100644 --- a/nixos/modules/config/i18n.nix +++ b/nixos/modules/config/i18n.nix @@ -2,21 +2,27 @@ with lib; -let - - glibcLocales = pkgs.glibcLocales.override { - allLocales = any (x: x == "all") config.i18n.supportedLocales; - locales = config.i18n.supportedLocales; - }; - -in - { ###### interface options = { i18n = { + glibcLocales = mkOption { + type = types.path; + default = pkgs.glibcLocales.override { + allLocales = any (x: x == "all") config.i18n.supportedLocales; + locales = config.i18n.supportedLocales; + }; + example = literalExample "pkgs.glibcLocales"; + description = '' + Customized pkg.glibcLocales package. + + Changing this option can disable handling of i18n.defaultLocale + and supportedLocale. + ''; + }; + defaultLocale = mkOption { type = types.str; default = "en_US.UTF-8"; @@ -37,7 +43,7 @@ in "all" means that all locales supported by Glibc will be installed. A full list of supported locales can be found at . + xlink:href="https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED"/>. ''; }; @@ -118,7 +124,7 @@ in ''); environment.systemPackages = - optional (config.i18n.supportedLocales != []) glibcLocales; + optional (config.i18n.supportedLocales != []) config.i18n.glibcLocales; environment.sessionVariables = { LANG = config.i18n.defaultLocale; @@ -126,7 +132,7 @@ in }; systemd.globalEnvironment = mkIf (config.i18n.supportedLocales != []) { - LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + LOCALE_ARCHIVE = "${config.i18n.glibcLocales}/lib/locale/locale-archive"; }; # ‘/etc/locale.conf’ is used by systemd. diff --git a/nixos/modules/config/krb5.nix b/nixos/modules/config/krb5.nix deleted file mode 100644 index d318b720742..00000000000 --- a/nixos/modules/config/krb5.nix +++ /dev/null @@ -1,206 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.krb5; - -in - -{ - ###### interface - - options = { - - krb5 = { - - enable = mkOption { - default = false; - description = "Whether to enable Kerberos V."; - }; - - defaultRealm = mkOption { - default = "ATENA.MIT.EDU"; - description = "Default realm."; - }; - - domainRealm = mkOption { - default = "atena.mit.edu"; - description = "Default domain realm."; - }; - - kdc = mkOption { - default = "kerberos.mit.edu"; - description = "Key Distribution Center"; - }; - - kerberosAdminServer = mkOption { - default = "kerberos.mit.edu"; - description = "Kerberos Admin Server."; - }; - - }; - - }; - - ###### implementation - - config = mkIf config.krb5.enable { - - environment.systemPackages = [ pkgs.krb5Full ]; - - environment.etc."krb5.conf".text = - '' - [libdefaults] - default_realm = ${cfg.defaultRealm} - encrypt = true - - # The following krb5.conf variables are only for MIT Kerberos. - krb4_config = /etc/krb.conf - krb4_realms = /etc/krb.realms - kdc_timesync = 1 - ccache_type = 4 - forwardable = true - proxiable = true - - # The following encryption type specification will be used by MIT Kerberos - # if uncommented. In general, the defaults in the MIT Kerberos code are - # correct and overriding these specifications only serves to disable new - # encryption types as they are added, creating interoperability problems. - - # default_tgs_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc des-cbc-md5 - # default_tkt_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc des-cbc-md5 - # permitted_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc des-cbc-md5 - - # The following libdefaults parameters are only for Heimdal Kerberos. - v4_instance_resolve = false - v4_name_convert = { - host = { - rcmd = host - ftp = ftp - } - plain = { - something = something-else - } - } - fcc-mit-ticketflags = true - - [realms] - ${cfg.defaultRealm} = { - kdc = ${cfg.kdc} - admin_server = ${cfg.kerberosAdminServer} - #kpasswd_server = ${cfg.kerberosAdminServer} - } - ATHENA.MIT.EDU = { - kdc = kerberos.mit.edu:88 - kdc = kerberos-1.mit.edu:88 - kdc = kerberos-2.mit.edu:88 - admin_server = kerberos.mit.edu - default_domain = mit.edu - } - MEDIA-LAB.MIT.EDU = { - kdc = kerberos.media.mit.edu - admin_server = kerberos.media.mit.edu - } - ZONE.MIT.EDU = { - kdc = casio.mit.edu - kdc = seiko.mit.edu - admin_server = casio.mit.edu - } - MOOF.MIT.EDU = { - kdc = three-headed-dogcow.mit.edu:88 - kdc = three-headed-dogcow-1.mit.edu:88 - admin_server = three-headed-dogcow.mit.edu - } - CSAIL.MIT.EDU = { - kdc = kerberos-1.csail.mit.edu - kdc = kerberos-2.csail.mit.edu - admin_server = kerberos.csail.mit.edu - default_domain = csail.mit.edu - krb524_server = krb524.csail.mit.edu - } - IHTFP.ORG = { - kdc = kerberos.ihtfp.org - admin_server = kerberos.ihtfp.org - } - GNU.ORG = { - kdc = kerberos.gnu.org - kdc = kerberos-2.gnu.org - kdc = kerberos-3.gnu.org - admin_server = kerberos.gnu.org - } - 1TS.ORG = { - kdc = kerberos.1ts.org - admin_server = kerberos.1ts.org - } - GRATUITOUS.ORG = { - kdc = kerberos.gratuitous.org - admin_server = kerberos.gratuitous.org - } - DOOMCOM.ORG = { - kdc = kerberos.doomcom.org - admin_server = kerberos.doomcom.org - } - ANDREW.CMU.EDU = { - kdc = vice28.fs.andrew.cmu.edu - kdc = vice2.fs.andrew.cmu.edu - kdc = vice11.fs.andrew.cmu.edu - kdc = vice12.fs.andrew.cmu.edu - admin_server = vice28.fs.andrew.cmu.edu - default_domain = andrew.cmu.edu - } - CS.CMU.EDU = { - kdc = kerberos.cs.cmu.edu - kdc = kerberos-2.srv.cs.cmu.edu - admin_server = kerberos.cs.cmu.edu - } - DEMENTIA.ORG = { - kdc = kerberos.dementia.org - kdc = kerberos2.dementia.org - admin_server = kerberos.dementia.org - } - stanford.edu = { - kdc = krb5auth1.stanford.edu - kdc = krb5auth2.stanford.edu - kdc = krb5auth3.stanford.edu - admin_server = krb5-admin.stanford.edu - default_domain = stanford.edu - } - - [domain_realm] - .${cfg.domainRealm} = ${cfg.defaultRealm} - ${cfg.domainRealm} = ${cfg.defaultRealm} - .mit.edu = ATHENA.MIT.EDU - mit.edu = ATHENA.MIT.EDU - .exchange.mit.edu = EXCHANGE.MIT.EDU - exchange.mit.edu = EXCHANGE.MIT.EDU - .media.mit.edu = MEDIA-LAB.MIT.EDU - media.mit.edu = MEDIA-LAB.MIT.EDU - .csail.mit.edu = CSAIL.MIT.EDU - csail.mit.edu = CSAIL.MIT.EDU - .whoi.edu = ATHENA.MIT.EDU - whoi.edu = ATHENA.MIT.EDU - .stanford.edu = stanford.edu - - [logging] - kdc = SYSLOG:INFO:DAEMON - admin_server = SYSLOG:INFO:DAEMON - default = SYSLOG:INFO:DAEMON - krb4_convert = true - krb4_get_tickets = false - - [appdefaults] - pam = { - debug = false - ticket_lifetime = 36000 - renew_lifetime = 36000 - max_timeout = 30 - timeout_shift = 2 - initial_timeout = 1 - } - ''; - - }; - -} diff --git a/nixos/modules/config/krb5/default.nix b/nixos/modules/config/krb5/default.nix new file mode 100644 index 00000000000..c22e99a0a2f --- /dev/null +++ b/nixos/modules/config/krb5/default.nix @@ -0,0 +1,367 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.krb5; + + # This is to provide support for old configuration options (as much as is + # reasonable). This can be removed after 18.03 was released. + defaultConfig = { + libdefaults = optionalAttrs (cfg.defaultRealm != null) + { default_realm = cfg.defaultRealm; }; + + realms = optionalAttrs (lib.all (value: value != null) [ + cfg.defaultRealm cfg.kdc cfg.kerberosAdminServer + ]) { + "${cfg.defaultRealm}" = { + kdc = cfg.kdc; + admin_server = cfg.kerberosAdminServer; + }; + }; + + domain_realm = optionalAttrs (lib.all (value: value != null) [ + cfg.domainRealm cfg.defaultRealm + ]) { + ".${cfg.domainRealm}" = cfg.defaultRealm; + "${cfg.domainRealm}" = cfg.defaultRealm; + }; + }; + + mergedConfig = (recursiveUpdate defaultConfig { + inherit (config.krb5) + kerberos libdefaults realms domain_realm capaths appdefaults plugins + extraConfig config; + }); + + filterEmbeddedMetadata = value: if isAttrs value then + (filterAttrs + (attrName: attrValue: attrName != "_module" && attrValue != null) + value) + else value; + + mkIndent = depth: concatStrings (builtins.genList (_: " ") (2 * depth)); + + mkRelation = name: value: "${name} = ${mkVal { inherit value; }}"; + + mkVal = { value, depth ? 0 }: + if (value == true) then "true" + else if (value == false) then "false" + else if (isInt value) then (toString value) + else if (isList value) then + concatMapStringsSep " " mkVal { inherit value depth; } + else if (isAttrs value) then + (concatStringsSep "\n${mkIndent (depth + 1)}" + ([ "{" ] ++ (mapAttrsToList + (attrName: attrValue: let + mappedAttrValue = mkVal { + value = attrValue; + depth = depth + 1; + }; + in "${attrName} = ${mappedAttrValue}") + value))) + "\n${mkIndent depth}}" + else value; + + mkMappedAttrsOrString = value: concatMapStringsSep "\n" + (line: if builtins.stringLength line > 0 + then "${mkIndent 1}${line}" + else line) + (splitString "\n" + (if isAttrs value then + concatStringsSep "\n" + (mapAttrsToList mkRelation value) + else value)); + +in { + + ###### interface + + options = { + krb5 = { + enable = mkEnableOption "Whether to enable Kerberos V."; + + kerberos = mkOption { + type = types.package; + default = pkgs.krb5Full; + defaultText = "pkgs.krb5Full"; + example = literalExample "pkgs.heimdalFull"; + description = '' + The Kerberos implementation that will be present in + environment.systemPackages after enabling this + service. + ''; + }; + + libdefaults = mkOption { + type = with types; either attrs lines; + default = {}; + apply = attrs: filterEmbeddedMetadata attrs; + example = literalExample '' + { + default_realm = "ATHENA.MIT.EDU"; + }; + ''; + description = '' + Settings used by the Kerberos V5 library. + ''; + }; + + realms = mkOption { + type = with types; either attrs lines; + default = {}; + example = literalExample '' + { + "ATHENA.MIT.EDU" = { + admin_server = "athena.mit.edu"; + kdc = "athena.mit.edu"; + }; + }; + ''; + apply = attrs: filterEmbeddedMetadata attrs; + description = "Realm-specific contact information and settings."; + }; + + domain_realm = mkOption { + type = with types; either attrs lines; + default = {}; + example = literalExample '' + { + "example.com" = "EXAMPLE.COM"; + ".example.com" = "EXAMPLE.COM"; + }; + ''; + apply = attrs: filterEmbeddedMetadata attrs; + description = '' + Map of server hostnames to Kerberos realms. + ''; + }; + + capaths = mkOption { + type = with types; either attrs lines; + default = {}; + example = literalExample '' + { + "ATHENA.MIT.EDU" = { + "EXAMPLE.COM" = "."; + }; + "EXAMPLE.COM" = { + "ATHENA.MIT.EDU" = "."; + }; + }; + ''; + apply = attrs: filterEmbeddedMetadata attrs; + description = '' + Authentication paths for non-hierarchical cross-realm authentication. + ''; + }; + + appdefaults = mkOption { + type = with types; either attrs lines; + default = {}; + example = literalExample '' + { + pam = { + debug = false; + ticket_lifetime = 36000; + renew_lifetime = 36000; + max_timeout = 30; + timeout_shift = 2; + initial_timeout = 1; + }; + }; + ''; + apply = attrs: filterEmbeddedMetadata attrs; + description = '' + Settings used by some Kerberos V5 applications. + ''; + }; + + plugins = mkOption { + type = with types; either attrs lines; + default = {}; + example = literalExample '' + { + ccselect = { + disable = "k5identity"; + }; + }; + ''; + apply = attrs: filterEmbeddedMetadata attrs; + description = '' + Controls plugin module registration. + ''; + }; + + extraConfig = mkOption { + type = with types; nullOr lines; + default = null; + example = '' + [logging] + kdc = SYSLOG:NOTICE + admin_server = SYSLOG:NOTICE + default = SYSLOG:NOTICE + ''; + description = '' + These lines go to the end of krb5.conf verbatim. + krb5.conf may include any of the relations that are + valid for kdc.conf (see man + kdc.conf), but it is not a recommended practice. + ''; + }; + + config = mkOption { + type = with types; nullOr lines; + default = null; + example = '' + [libdefaults] + default_realm = EXAMPLE.COM + + [realms] + EXAMPLE.COM = { + admin_server = kerberos.example.com + kdc = kerberos.example.com + default_principal_flags = +preauth + } + + [domain_realm] + example.com = EXAMPLE.COM + .example.com = EXAMPLE.COM + + [logging] + kdc = SYSLOG:NOTICE + admin_server = SYSLOG:NOTICE + default = SYSLOG:NOTICE + ''; + description = '' + Verbatim krb5.conf configuration. Note that this + is mutually exclusive with configuration via + libdefaults, realms, + domain_realm, capaths, + appdefaults, plugins and + extraConfig configuration options. Consult + man krb5.conf for documentation. + ''; + }; + + defaultRealm = mkOption { + type = with types; nullOr str; + default = null; + example = "ATHENA.MIT.EDU"; + description = '' + DEPRECATED, please use + krb5.libdefaults.default_realm. + ''; + }; + + domainRealm = mkOption { + type = with types; nullOr str; + default = null; + example = "athena.mit.edu"; + description = '' + DEPRECATED, please create a map of server hostnames to Kerberos realms + in krb5.domain_realm. + ''; + }; + + kdc = mkOption { + type = with types; nullOr str; + default = null; + example = "kerberos.mit.edu"; + description = '' + DEPRECATED, please pass a kdc attribute to a realm + in krb5.realms. + ''; + }; + + kerberosAdminServer = mkOption { + type = with types; nullOr str; + default = null; + example = "kerberos.mit.edu"; + description = '' + DEPRECATED, please pass an admin_server attribute + to a realm in krb5.realms. + ''; + }; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ cfg.kerberos ]; + + environment.etc."krb5.conf".text = if isString cfg.config + then cfg.config + else ('' + [libdefaults] + ${mkMappedAttrsOrString mergedConfig.libdefaults} + + [realms] + ${mkMappedAttrsOrString mergedConfig.realms} + + [domain_realm] + ${mkMappedAttrsOrString mergedConfig.domain_realm} + + [capaths] + ${mkMappedAttrsOrString mergedConfig.capaths} + + [appdefaults] + ${mkMappedAttrsOrString mergedConfig.appdefaults} + + [plugins] + ${mkMappedAttrsOrString mergedConfig.plugins} + '' + optionalString (mergedConfig.extraConfig != null) + ("\n" + mergedConfig.extraConfig)); + + warnings = flatten [ + (optional (cfg.defaultRealm != null) '' + The option krb5.defaultRealm is deprecated, please use + krb5.libdefaults.default_realm. + '') + (optional (cfg.domainRealm != null) '' + The option krb5.domainRealm is deprecated, please use krb5.domain_realm. + '') + (optional (cfg.kdc != null) '' + The option krb5.kdc is deprecated, please pass a kdc attribute to a + realm in krb5.realms. + '') + (optional (cfg.kerberosAdminServer != null) '' + The option krb5.kerberosAdminServer is deprecated, please pass an + admin_server attribute to a realm in krb5.realms. + '') + ]; + + assertions = [ + { assertion = !((builtins.any (value: value != null) [ + cfg.defaultRealm cfg.domainRealm cfg.kdc cfg.kerberosAdminServer + ]) && ((builtins.any (value: value != {}) [ + cfg.libdefaults cfg.realms cfg.domain_realm cfg.capaths + cfg.appdefaults cfg.plugins + ]) || (builtins.any (value: value != null) [ + cfg.config cfg.extraConfig + ]))); + message = '' + Configuration of krb5.conf by deprecated options is mutually exclusive + with configuration by section. Please migrate your config using the + attributes suggested in the warnings. + ''; + } + { assertion = !(cfg.config != null + && ((builtins.any (value: value != {}) [ + cfg.libdefaults cfg.realms cfg.domain_realm cfg.capaths + cfg.appdefaults cfg.plugins + ]) || (builtins.any (value: value != null) [ + cfg.extraConfig cfg.defaultRealm cfg.domainRealm cfg.kdc + cfg.kerberosAdminServer + ]))); + message = '' + Configuration of krb5.conf using krb.config is mutually exclusive with + configuration by section. If you want to mix the two, you can pass + lines to any configuration section or lines to krb5.extraConfig. + ''; + } + ]; + }; +} diff --git a/nixos/modules/config/ldap.nix b/nixos/modules/config/ldap.nix index da875d6e482..710dfdd01af 100644 --- a/nixos/modules/config/ldap.nix +++ b/nixos/modules/config/ldap.nix @@ -19,7 +19,6 @@ let bind_policy ${config.users.ldap.bind.policy} ${optionalString config.users.ldap.useTLS '' ssl start_tls - tls_checkpeer no ''} ${optionalString (config.users.ldap.bind.distinguishedName != "") '' binddn ${config.users.ldap.bind.distinguishedName} diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix index ae30a710bf6..619f36cd515 100644 --- a/nixos/modules/config/networking.nix +++ b/nixos/modules/config/networking.nix @@ -20,12 +20,26 @@ in options = { + networking.hosts = lib.mkOption { + type = types.attrsOf ( types.listOf types.str ); + default = {}; + example = literalExample '' + { + "127.0.0.1" = [ "foo.bar.baz" ]; + "192.168.0.2" = [ "fileserver.local" "nameserver.local" ]; + }; + ''; + description = '' + Locally defined maps of hostnames to IP addresses. + ''; + }; + networking.extraHosts = lib.mkOption { type = types.lines; default = ""; example = "192.168.0.1 lanlocalhost"; description = '' - Additional entries to be appended to /etc/hosts. + Additional verbatim entries to be appended to /etc/hosts. ''; }; @@ -188,11 +202,22 @@ in # /etc/hosts: Hostname-to-IP mappings. "hosts".text = + let oneToString = set : ip : ip + " " + concatStringsSep " " ( getAttr ip set ); + allToString = set : concatMapStringsSep "\n" ( oneToString set ) ( attrNames set ); + userLocalHosts = optionalString + ( builtins.hasAttr "127.0.0.1" cfg.hosts ) + ( concatStringsSep " " ( remove "localhost" cfg.hosts."127.0.0.1" )); + userLocalHosts6 = optionalString + ( builtins.hasAttr "::1" cfg.hosts ) + ( concatStringsSep " " ( remove "localhost" cfg.hosts."::1" )); + otherHosts = allToString ( removeAttrs cfg.hosts [ "127.0.0.1" "::1" ]); + in '' - 127.0.0.1 localhost + 127.0.0.1 ${userLocalHosts} localhost ${optionalString cfg.enableIPv6 '' - ::1 localhost + ::1 ${userLocalHosts6} localhost ''} + ${otherHosts} ${cfg.extraHosts} ''; @@ -222,13 +247,13 @@ in '' + cfg.extraResolvconfConf + '' ''; - } // (optionalAttrs config.services.resolved.enable ( - if dnsmasqResolve then { - "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf"; - } else { - "resolv.conf".source = "/run/systemd/resolve/resolv.conf"; - } - )); + } // optionalAttrs config.services.resolved.enable { + # symlink the static version of resolv.conf as recommended by upstream: + # https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf + "resolv.conf".source = "${pkgs.systemd}/lib/systemd/resolv.conf"; + } // optionalAttrs (config.services.resolved.enable && dnsmasqResolve) { + "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf"; + }; networking.proxy.envVars = optionalAttrs (cfg.proxy.default != null) { diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index 13477337bda..ae3e17ac27b 100644 --- a/nixos/modules/config/no-x-libs.nix +++ b/nixos/modules/config/no-x-libs.nix @@ -26,7 +26,16 @@ with lib; fonts.fontconfig.enable = false; - nixpkgs.config.packageOverrides = pkgs: - { dbus = pkgs.dbus.override { x11Support = false; }; }; + nixpkgs.config.packageOverrides = pkgs: { + dbus = pkgs.dbus.override { x11Support = false; }; + networkmanager_fortisslvpn = pkgs.networkmanager_fortisslvpn.override { withGnome = false; }; + networkmanager_l2tp = pkgs.networkmanager_l2tp.override { withGnome = false; }; + networkmanager_openconnect = pkgs.networkmanager_openconnect.override { withGnome = false; }; + networkmanager_openvpn = pkgs.networkmanager_openvpn.override { withGnome = false; }; + networkmanager_pptp = pkgs.networkmanager_pptp.override { withGnome = false; }; + networkmanager_vpnc = pkgs.networkmanager_vpnc.override { withGnome = false; }; + networkmanager_iodine = pkgs.networkmanager_iodine.override { withGnome = false; }; + pinentry = pkgs.pinentry.override { gtk2 = null; qt4 = null; }; + }; }; } diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix index 4e5de421d8a..7b36d4f1cbd 100644 --- a/nixos/modules/config/nsswitch.nix +++ b/nixos/modules/config/nsswitch.nix @@ -6,22 +6,30 @@ with lib; let - inherit (config.services.avahi) nssmdns; - inherit (config.services.samba) nsswins; - ldap = (config.users.ldap.enable && config.users.ldap.nsswitch); - sssd = config.services.sssd.enable; + # only with nscd up and running we can load NSS modules that are not integrated in NSS + canLoadExternalModules = config.services.nscd.enable; + myhostname = canLoadExternalModules; + mymachines = canLoadExternalModules; + nssmdns = canLoadExternalModules && config.services.avahi.nssmdns; + nsswins = canLoadExternalModules && config.services.samba.nsswins; + ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch); + sssd = canLoadExternalModules && config.services.sssd.enable; + resolved = canLoadExternalModules && config.services.resolved.enable; - hostArray = [ "files" "mymachines" ] - ++ optionals nssmdns [ "mdns_minimal [!UNAVAIL=return]" ] + hostArray = [ "files" ] + ++ optionals mymachines [ "mymachines" ] + ++ optionals nssmdns [ "mdns_minimal [NOTFOUND=return]" ] ++ optionals nsswins [ "wins" ] + ++ optionals resolved ["resolve [!UNAVAIL=return]"] ++ [ "dns" ] ++ optionals nssmdns [ "mdns" ] - ++ ["myhostname" ]; + ++ optionals myhostname ["myhostname" ]; passwdArray = [ "files" ] ++ optional sssd "sss" ++ optionals ldap [ "ldap" ] - ++ [ "mymachines" ]; + ++ optionals mymachines [ "mymachines" ] + ++ [ "systemd" ]; shadowArray = [ "files" ] ++ optional sssd "sss" @@ -34,6 +42,7 @@ in { options = { # NSS modules. Hacky! + # Only works with nscd! system.nssModules = mkOption { type = types.listOf types.path; internal = true; @@ -53,6 +62,18 @@ in { }; config = { + assertions = [ + { + # generic catch if the NixOS module adding to nssModules does not prevent it with specific message. + assertion = config.system.nssModules.path != "" -> canLoadExternalModules; + message = "Loading NSS modules from path ${config.system.nssModules.path} requires nscd being enabled."; + } + { + # resolved does not need to add to nssModules, therefore needs an extra assertion + assertion = resolved -> canLoadExternalModules; + message = "Loading systemd-resolved's nss-resolve NSS module requires nscd being enabled."; + } + ]; # Name Service Switch configuration file. Required by the C # library. !!! Factor out the mdns stuff. The avahi module @@ -76,7 +97,7 @@ in { # configured IP addresses, or ::1 and 127.0.0.2 as # fallbacks. Systemd also provides nss-mymachines to return IP # addresses of local containers. - system.nssModules = [ config.systemd.package.out ]; + system.nssModules = optionals canLoadExternalModules [ config.systemd.package.out ]; }; } diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index bf66994b502..8b9c3570476 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -6,6 +6,7 @@ with lib; let cfg = config.hardware.pulseaudio; + alsaCfg = config.sound; systemWide = cfg.enable && cfg.systemWide; nonSystemWide = cfg.enable && !cfg.systemWide; @@ -76,6 +77,7 @@ let ctl.!default { type pulse } + ${alsaCfg.extraConfig} ''); in { @@ -222,7 +224,7 @@ in { # Allow PulseAudio to get realtime priority using rtkit. security.rtkit.enable = true; - systemd.packages = [ cfg.package ]; + systemd.packages = [ overriddenPackage ]; }) (mkIf hasZeroconf { @@ -240,11 +242,14 @@ in { }; systemd.user = { services.pulseaudio = { + restartIfChanged = true; serviceConfig = { RestartSec = "500ms"; + PassEnvironment = "DISPLAY"; }; - environment = { DISPLAY = ":${toString config.services.xserver.display}"; }; - restartIfChanged = true; + }; + sockets.pulseaudio = { + wantedBy = [ "sockets.target" ]; }; }; }) diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix index 152493151fd..65f2e5d7af9 100644 --- a/nixos/modules/config/shells-environment.nix +++ b/nixos/modules/config/shells-environment.nix @@ -55,7 +55,7 @@ in environment.profileRelativeEnvVars = mkOption { type = types.attrsOf (types.listOf types.str); - example = { PATH = [ "/bin" "/sbin" ]; MANPATH = [ "/man" "/share/man" ]; }; + example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; }; description = '' Attribute set of environment variable. Each attribute maps to a list of relative paths. Each relative path is appended to the each profile diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix index e57ed2565a1..fed3fa3bc7c 100644 --- a/nixos/modules/config/swap.nix +++ b/nixos/modules/config/swap.nix @@ -5,6 +5,52 @@ with lib; let + randomEncryptionCoerce = enable: { inherit enable; }; + + randomEncryptionOpts = { ... }: { + + options = { + + enable = mkOption { + default = false; + type = types.bool; + description = '' + Encrypt swap device with a random key. This way you won't have a persistent swap device. + + WARNING: Don't try to hibernate when you have at least one swap partition with + this option enabled! We have no way to set the partition into which hibernation image + is saved, so if your image ends up on an encrypted one you would lose it! + + WARNING #2: Do not use /dev/disk/by-uuid/… or /dev/disk/by-label/… as your swap device + when using randomEncryption as the UUIDs and labels will get erased on every boot when + the partition is encrypted. Best to use /dev/disk/by-partuuid/… + ''; + }; + + cipher = mkOption { + default = "aes-xts-plain64"; + example = "serpent-xts-plain64"; + type = types.str; + description = '' + Use specified cipher for randomEncryption. + + Hint: Run "cryptsetup benchmark" to see which one is fastest on your machine. + ''; + }; + + source = mkOption { + default = "/dev/urandom"; + example = "/dev/random"; + type = types.str; + description = '' + Define the source of randomness to obtain a random key for encryption. + ''; + }; + + }; + + }; + swapCfg = {config, options, ...}: { options = { @@ -47,10 +93,17 @@ let randomEncryption = mkOption { default = false; - type = types.bool; + example = { + enable = true; + cipher = "serpent-xts-plain64"; + source = "/dev/random"; + }; + type = types.coercedTo types.bool randomEncryptionCoerce (types.submodule randomEncryptionOpts); description = '' Encrypt swap device with a random key. This way you won't have a persistent swap device. + HINT: run "cryptsetup benchmark" to test cipher performance on your machine. + WARNING: Don't try to hibernate when you have at least one swap partition with this option enabled! We have no way to set the partition into which hibernation image is saved, so if your image ends up on an encrypted one you would lose it! @@ -77,7 +130,7 @@ let device = mkIf options.label.isDefined "/dev/disk/by-label/${config.label}"; deviceName = lib.replaceChars ["\\"] [""] (escapeSystemdPath config.device); - realDevice = if config.randomEncryption then "/dev/mapper/${deviceName}" else config.device; + realDevice = if config.randomEncryption.enable then "/dev/mapper/${deviceName}" else config.device; }; }; @@ -125,14 +178,14 @@ in createSwapDevice = sw: assert sw.device != ""; - assert !(sw.randomEncryption && lib.hasPrefix "/dev/disk/by-uuid" sw.device); - assert !(sw.randomEncryption && lib.hasPrefix "/dev/disk/by-label" sw.device); + assert !(sw.randomEncryption.enable && lib.hasPrefix "/dev/disk/by-uuid" sw.device); + assert !(sw.randomEncryption.enable && lib.hasPrefix "/dev/disk/by-label" sw.device); let realDevice' = escapeSystemdPath sw.realDevice; in nameValuePair "mkswap-${sw.deviceName}" { description = "Initialisation of swap device ${sw.device}"; wantedBy = [ "${realDevice'}.swap" ]; before = [ "${realDevice'}.swap" ]; - path = [ pkgs.utillinux ] ++ optional sw.randomEncryption pkgs.cryptsetup; + path = [ pkgs.utillinux ] ++ optional sw.randomEncryption.enable pkgs.cryptsetup; script = '' @@ -145,13 +198,11 @@ in truncate --size "${toString sw.size}M" "${sw.device}" fi chmod 0600 ${sw.device} - ${optionalString (!sw.randomEncryption) "mkswap ${sw.realDevice}"} + ${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"} fi ''} - ${optionalString sw.randomEncryption '' - echo "secretkey" | cryptsetup luksFormat --batch-mode ${sw.device} - echo "secretkey" | cryptsetup luksOpen ${sw.device} ${sw.deviceName} - cryptsetup luksErase --batch-mode ${sw.device} + ${optionalString sw.randomEncryption.enable '' + cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} ${sw.device} ${sw.deviceName} mkswap ${sw.realDevice} ''} ''; @@ -159,12 +210,12 @@ in unitConfig.RequiresMountsFor = [ "${dirOf sw.device}" ]; unitConfig.DefaultDependencies = false; # needed to prevent a cycle serviceConfig.Type = "oneshot"; - serviceConfig.RemainAfterExit = sw.randomEncryption; - serviceConfig.ExecStop = optionalString sw.randomEncryption "${pkgs.cryptsetup}/bin/cryptsetup luksClose ${sw.deviceName}"; + serviceConfig.RemainAfterExit = sw.randomEncryption.enable; + serviceConfig.ExecStop = optionalString sw.randomEncryption.enable "${pkgs.cryptsetup}/bin/cryptsetup luksClose ${sw.deviceName}"; restartIfChanged = false; }; - in listToAttrs (map createSwapDevice (filter (sw: sw.size != null || sw.randomEncryption) config.swapDevices)); + in listToAttrs (map createSwapDevice (filter (sw: sw.size != null || sw.randomEncryption.enable) config.swapDevices)); }; diff --git a/nixos/modules/config/sysctl.nix b/nixos/modules/config/sysctl.nix index a3f7e8f722f..2114fb2b9d4 100644 --- a/nixos/modules/config/sysctl.nix +++ b/nixos/modules/config/sysctl.nix @@ -60,10 +60,7 @@ in # Hide kernel pointers (e.g. in /proc/modules) for unprivileged # users as these make it easier to exploit kernel vulnerabilities. - # - # Removed under grsecurity. - boot.kernel.sysctl."kernel.kptr_restrict" = - if (config.boot.kernelPackages.kernel.features.grsecurity or false) then null else 1; + boot.kernel.sysctl."kernel.kptr_restrict" = 1; # Disable YAMA by default to allow easy debugging. boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkDefault 0; diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index 3ac5f634c7a..d3212d93160 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -31,6 +31,7 @@ let pkgs.nano pkgs.ncurses pkgs.netcat + pkgs.nix-info config.programs.ssh.package pkgs.perl pkgs.procps @@ -115,10 +116,12 @@ in "/share/mime" "/share/nano" "/share/org" - "/share/terminfo" "/share/themes" "/share/vim-plugins" "/share/vulkan" + "/share/kservices5" + "/share/kservicetypes5" + "/share/kxmlgui5" ]; system.path = pkgs.buildEnv { diff --git a/nixos/modules/config/terminfo.nix b/nixos/modules/config/terminfo.nix new file mode 100644 index 00000000000..4fd6ba5ea60 --- /dev/null +++ b/nixos/modules/config/terminfo.nix @@ -0,0 +1,33 @@ +# This module manages the terminfo database +# and its integration in the system. +{ config, ... }: +{ + config = { + + environment.pathsToLink = [ + "/share/terminfo" + ]; + + environment.etc."terminfo" = { + source = "${config.system.path}/share/terminfo"; + }; + + environment.profileRelativeEnvVars = { + TERMINFO_DIRS = [ "/share/terminfo" ]; + }; + + environment.extraInit = '' + + # reset TERM with new TERMINFO available (if any) + export TERM=$TERM + ''; + + security.sudo.extraConfig = '' + + # Keep terminfo database for root and %wheel. + Defaults:root,%wheel env_keep+=TERMINFO_DIRS + Defaults:root,%wheel env_keep+=TERMINFO + ''; + + }; +} diff --git a/nixos/modules/config/timezone.nix b/nixos/modules/config/timezone.nix index 39a45042c6c..b15948f6e2e 100644 --- a/nixos/modules/config/timezone.nix +++ b/nixos/modules/config/timezone.nix @@ -5,6 +5,9 @@ with lib; let tzdir = "${pkgs.tzdata}/share/zoneinfo"; + nospace = str: filter (c: c == " ") (stringToCharacters str) == []; + timezone = types.nullOr (types.addCheck types.str nospace) + // { description = "null or string without spaces"; }; in @@ -14,13 +17,16 @@ in time = { timeZone = mkOption { - default = "UTC"; - type = types.str; + default = null; + type = timezone; example = "America/New_York"; description = '' The time zone used when displaying times and dates. See for a comprehensive list of possible values for this setting. + + If null, the timezone will default to UTC and can be set imperatively + using timedatectl. ''; }; @@ -40,13 +46,14 @@ in # This way services are restarted when tzdata changes. systemd.globalEnvironment.TZDIR = tzdir; - environment.etc.localtime = - { source = "/etc/zoneinfo/${config.time.timeZone}"; - mode = "direct-symlink"; + systemd.services.systemd-timedated.environment = lib.optionalAttrs (config.time.timeZone != null) { NIXOS_STATIC_TIMEZONE = "1"; }; + + environment.etc = { + zoneinfo.source = tzdir; + } // lib.optionalAttrs (config.time.timeZone != null) { + localtime.source = "/etc/zoneinfo/${config.time.timeZone}"; + localtime.mode = "direct-symlink"; }; - - environment.etc.zoneinfo.source = tzdir; - }; } diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 57e4940378b..a4715175cc9 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -244,6 +244,17 @@ let ''; }; + packages = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.firefox pkgs.thunderbird ]"; + description = '' + The set of packages that should be made availabe to the user. + This is in contrast to , + which adds packages to all users. + ''; + }; + }; config = mkMerge @@ -516,7 +527,7 @@ in { input.gid = ids.gids.input; }; - system.activationScripts.users = stringAfter [ "etc" ] + system.activationScripts.users = stringAfter [ "stdio" ] '' ${pkgs.perl}/bin/perl -w \ -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl \ @@ -568,5 +579,17 @@ in { imports = [ (mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ]) (mkAliasOptionModule [ "users" "extraGroups" ] [ "users" "groups" ]) + { + environment = { + etc = mapAttrs' (name: { packages, ... }: { + name = "per-user-pkgs/${name}"; + value.source = pkgs.symlinkJoin { + name = "per-user-pkgs.${name}"; + paths = packages; + }; + }) (filterAttrs (_: { packages, ... }: packages != []) cfg.users); + profiles = ["/etc/per-user-pkgs/$LOGNAME"]; + }; + } ]; } diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index bc82bfd066c..afaa65f6ce3 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -2,7 +2,9 @@ with lib; -{ +let + cfg = config.hardware; +in { ###### interface @@ -12,7 +14,16 @@ with lib; default = false; type = types.bool; description = '' - Turn on this option if you want to enable all the firmware shipped in linux-firmware. + Turn on this option if you want to enable all the firmware. + ''; + }; + + hardware.enableRedistributableFirmware = mkOption { + default = false; + type = types.bool; + description = '' + Turn on this option if you want to enable all the firmware with a license allowing redistribution. + (i.e. free firmware and firmware-linux-nonfree) ''; }; @@ -21,13 +32,27 @@ with lib; ###### implementation - config = mkIf config.hardware.enableAllFirmware { - hardware.firmware = with pkgs; [ - firmwareLinuxNonfree - intel2200BGFirmware - rtl8723bs-firmware - rtl8192su-firmware - ]; - }; - + config = mkMerge [ + (mkIf (cfg.enableAllFirmware || cfg.enableRedistributableFirmware) { + hardware.firmware = with pkgs; [ + firmwareLinuxNonfree + intel2200BGFirmware + rtl8723bs-firmware + rtl8192su-firmware + ]; + }) + (mkIf cfg.enableAllFirmware { + assertions = [{ + assertion = !cfg.enableAllFirmware || (config.nixpkgs.config.allowUnfree or false); + message = '' + the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files. + This requires nixpkgs.config.allowUnfree to be true. + An alternative is to use the hardware.enableRedistributableFirmware option. + ''; + }]; + hardware.firmware = with pkgs; [ + broadcom-bt-firmware + ]; + }) + ]; } diff --git a/nixos/modules/hardware/mcelog.nix b/nixos/modules/hardware/mcelog.nix index e4ac7d39053..13ad238870c 100644 --- a/nixos/modules/hardware/mcelog.nix +++ b/nixos/modules/hardware/mcelog.nix @@ -3,7 +3,7 @@ with lib; { - meta.maintainers = [ maintainers.grahamc ]; + meta.maintainers = with maintainers; [ grahamc ]; options = { hardware.mcelog = { @@ -19,19 +19,17 @@ with lib; }; config = mkIf config.hardware.mcelog.enable { - systemd.services.mcelog = { - description = "Machine Check Exception Logging Daemon"; - wantedBy = [ "multi-user.target" ]; + systemd = { + packages = [ pkgs.mcelog ]; - serviceConfig = { - ExecStart = "${pkgs.mcelog}/bin/mcelog --daemon --foreground"; - SuccessExitStatus = [ 0 15 ]; - - ProtectHome = true; - PrivateNetwork = true; - PrivateTmp = true; + services.mcelog = { + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ProtectHome = true; + PrivateNetwork = true; + PrivateTmp = true; + }; }; }; }; - } diff --git a/nixos/modules/hardware/network/broadcom-43xx.nix b/nixos/modules/hardware/network/broadcom-43xx.nix index 8fecdae36bf..c92b7a0509d 100644 --- a/nixos/modules/hardware/network/broadcom-43xx.nix +++ b/nixos/modules/hardware/network/broadcom-43xx.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributableFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-2030.nix b/nixos/modules/hardware/network/intel-2030.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-2030.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-2100bg.nix b/nixos/modules/hardware/network/intel-2100bg.nix deleted file mode 100644 index 89fdce415dd..00000000000 --- a/nixos/modules/hardware/network/intel-2100bg.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - - ###### interface - - options = { - - networking.enableIntel2100BGFirmware = lib.mkOption { - default = false; - type = lib.types.bool; - description = '' - Turn on this option if you want firmware for the Intel - PRO/Wireless 2100BG to be loaded automatically. This is - required if you want to use this device. - ''; - }; - - }; - - - ###### implementation - - config = lib.mkIf config.networking.enableIntel2100BGFirmware { - - hardware.enableAllFirmware = true; - - }; - -} diff --git a/nixos/modules/hardware/network/intel-3945abg.nix b/nixos/modules/hardware/network/intel-3945abg.nix deleted file mode 100644 index f4f19d20834..00000000000 --- a/nixos/modules/hardware/network/intel-3945abg.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - - ###### interface - - options = { - - networking.enableIntel3945ABGFirmware = lib.mkOption { - default = false; - type = lib.types.bool; - description = '' - This option enables automatic loading of the firmware for the Intel - PRO/Wireless 3945ABG. - ''; - }; - - }; - - - ###### implementation - - config = lib.mkIf config.networking.enableIntel3945ABGFirmware { - - hardware.enableAllFirmware = true; - - }; - -} diff --git a/nixos/modules/hardware/network/intel-4965agn.nix b/nixos/modules/hardware/network/intel-4965agn.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-4965agn.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-5000.nix b/nixos/modules/hardware/network/intel-5000.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-5000.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-5150.nix b/nixos/modules/hardware/network/intel-5150.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-5150.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-6000.nix b/nixos/modules/hardware/network/intel-6000.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-6000.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-6000g2a.nix b/nixos/modules/hardware/network/intel-6000g2a.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-6000g2a.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/intel-6000g2b.nix b/nixos/modules/hardware/network/intel-6000g2b.nix deleted file mode 100644 index 8fecdae36bf..00000000000 --- a/nixos/modules/hardware/network/intel-6000g2b.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - hardware.enableAllFirmware = true; -} diff --git a/nixos/modules/hardware/network/ralink.nix b/nixos/modules/hardware/network/ralink.nix deleted file mode 100644 index 0469ae3a1fb..00000000000 --- a/nixos/modules/hardware/network/ralink.nix +++ /dev/null @@ -1,26 +0,0 @@ -{pkgs, config, lib, ...}: - -{ - - ###### interface - - options = { - - networking.enableRalinkFirmware = lib.mkOption { - default = false; - type = lib.types.bool; - description = '' - Turn on this option if you want firmware for the RT73 NIC. - ''; - }; - - }; - - - ###### implementation - - config = lib.mkIf config.networking.enableRalinkFirmware { - hardware.enableAllFirmware = true; - }; - -} diff --git a/nixos/modules/hardware/network/rtl8192c.nix b/nixos/modules/hardware/network/rtl8192c.nix deleted file mode 100644 index deae6355492..00000000000 --- a/nixos/modules/hardware/network/rtl8192c.nix +++ /dev/null @@ -1,26 +0,0 @@ -{pkgs, config, lib, ...}: - -{ - - ###### interface - - options = { - - networking.enableRTL8192cFirmware = lib.mkOption { - default = false; - type = lib.types.bool; - description = '' - Turn on this option if you want firmware for the RTL8192c (and related) NICs. - ''; - }; - - }; - - - ###### implementation - - config = lib.mkIf config.networking.enableRTL8192cFirmware { - hardware.enableAllFirmware = true; - }; - -} diff --git a/nixos/modules/hardware/nitrokey.nix b/nixos/modules/hardware/nitrokey.nix new file mode 100644 index 00000000000..bd440de6972 --- /dev/null +++ b/nixos/modules/hardware/nitrokey.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.hardware.nitrokey; + +in + +{ + options.hardware.nitrokey = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enables udev rules for Nitrokey devices. By default grants access + to users in the "nitrokey" group. You may want to install the + nitrokey-app package, depending on your device and needs. + ''; + }; + + group = mkOption { + type = types.str; + default = "nitrokey"; + example = "wheel"; + description = '' + Grant access to Nitrokey devices to users in this group. + ''; + }; + }; + + config = mkIf cfg.enable { + services.udev.packages = [ + (pkgs.nitrokey-udev-rules.override (attrs: + { inherit (cfg) group; } + )) + ]; + users.extraGroups."${cfg.group}" = {}; + }; +} diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix index 486fe7c1cd8..c2c36f02a14 100644 --- a/nixos/modules/hardware/opengl.nix +++ b/nixos/modules/hardware/opengl.nix @@ -93,7 +93,7 @@ in hardware.opengl.extraPackages = mkOption { type = types.listOf types.package; default = []; - example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]"; + example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]"; description = '' Additional packages to add to OpenGL drivers. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc. diff --git a/nixos/modules/hardware/raid/hpsa.nix b/nixos/modules/hardware/raid/hpsa.nix new file mode 100644 index 00000000000..1b4b1fa1954 --- /dev/null +++ b/nixos/modules/hardware/raid/hpsa.nix @@ -0,0 +1,61 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + hpssacli = pkgs.stdenv.mkDerivation rec { + name = "hpssacli-${version}"; + version = "2.40-13.0"; + + src = pkgs.fetchurl { + url = "http://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/${name}_amd64.deb"; + sha256 = "11w7fwk93lmfw0yya4jpjwdmgjimqxx6412sqa166g1pz4jil4sw"; + }; + + nativeBuildInputs = [ pkgs.dpkg ]; + + unpackPhase = "dpkg -x $src ./"; + + installPhase = '' + mkdir -p $out/bin $out/share/doc $out/share/man + mv opt/hp/hpssacli/bld/{hpssascripting,hprmstr,hpssacli} $out/bin/ + mv opt/hp/hpssacli/bld/*.{license,txt} $out/share/doc/ + mv usr/man $out/share/ + + for file in $out/bin/*; do + chmod +w $file + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${lib.makeLibraryPath [ pkgs.stdenv.cc.cc ]} \ + $file + done + ''; + + dontStrip = true; + + meta = with lib; { + description = "HP Smart Array CLI"; + homepage = http://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/; + license = licenses.unfreeRedistributable; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ volth ]; + }; + }; +in { + ###### interface + + options = { + hardware.raid.HPSmartArray = { + enable = mkEnableOption "HP Smart Array kernel modules and CLI utility"; + }; + }; + + ###### implementation + + config = mkIf config.hardware.raid.HPSmartArray.enable { + + boot.initrd.kernelModules = [ "sg" ]; /* hpssacli wants it */ + boot.initrd.availableKernelModules = [ "hpsa" ]; + + environment.systemPackages = [ hpssacli ]; + }; +} diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix index 2a9382f3941..669ac849cba 100644 --- a/nixos/modules/hardware/video/displaylink.nix +++ b/nixos/modules/hardware/video/displaylink.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: with lib; @@ -6,7 +6,11 @@ let enabled = elem "displaylink" config.services.xserver.videoDrivers; - displaylink = config.boot.kernelPackages.displaylink; + evdi = config.boot.kernelPackages.evdi; + + displaylink = pkgs.displaylink.override { + inherit evdi; + }; in @@ -14,15 +18,11 @@ in config = mkIf enabled { - boot.extraModulePackages = [ displaylink ]; - - boot.kernelModules = [ "evdi" ]; + boot.extraModulePackages = [ evdi ]; # Those are taken from displaylink-installer.sh and from Arch Linux AUR package. - services.udev.extraRules = '' - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{bNumInterfaces}=="*5", TAG+="uaccess" - ''; + services.udev.packages = [ displaylink ]; powerManagement.powerDownCommands = '' #flush any bytes in pipe @@ -32,7 +32,10 @@ in echo "S" > /tmp/PmMessagesPort_in #wait until suspend of DisplayLinkManager finish - read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out + if [ -f /tmp/PmMessagesPort_out ]; then + #wait until suspend of DisplayLinkManager finish + read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out + fi ''; powerManagement.resumeCommands = '' @@ -40,10 +43,11 @@ in echo "R" > /tmp/PmMessagesPort_in ''; - systemd.services.displaylink = { + systemd.services.dlm = { description = "DisplayLink Manager Service"; after = [ "display-manager.service" ]; - wantedBy = [ "graphical.target" ]; + conflicts = [ "getty@tty7.service" ]; + path = [ pkgs.kmod ]; serviceConfig = { ExecStart = "${displaylink}/bin/DisplayLinkManager"; @@ -53,6 +57,7 @@ in preStart = '' mkdir -p /var/log/displaylink + modprobe evdi ''; }; diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index 161ed9457af..50c085dd7ee 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -28,7 +28,7 @@ let nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; }; nvidiaPackage = nvidia: pkgs: - if !nvidia.useGLVND then nvidia + if !nvidia.useGLVND then nvidia.out else pkgs.buildEnv { name = "nvidia-libs"; paths = [ pkgs.libglvnd nvidia.out ]; @@ -40,6 +40,12 @@ in { config = mkIf enabled { + assertions = [ + { + assertion = config.services.xserver.displayManager.gdm.wayland; + message = "NVidia drivers don't support wayland"; + } + ]; services.xserver.drivers = singleton { name = "nvidia"; modules = [ nvidia_x11.bin ]; libPath = [ nvidia_x11 ]; }; @@ -56,16 +62,22 @@ in hardware.opengl.package = nvidiaPackage nvidia_x11 pkgs; hardware.opengl.package32 = nvidiaPackage nvidia_libs32 pkgs_i686; - environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings nvidia_x11.persistenced ]; + environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ] + ++ lib.filter (p: p != null) [ nvidia_x11.persistenced ]; boot.extraModulePackages = [ nvidia_x11.bin ]; # nvidia-uvm is required by CUDA applications. - boot.kernelModules = [ "nvidia-uvm" ]; + boot.kernelModules = [ "nvidia-uvm" ] ++ + lib.optionals config.services.xserver.enable [ "nvidia" "nvidia_modeset" "nvidia_drm" ]; + # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded. services.udev.extraRules = '' + KERNEL=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'" + KERNEL=="nvidia_modeset", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-modeset c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'" + KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia%n c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) %n'" KERNEL=="nvidia_uvm", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'" ''; diff --git a/nixos/modules/hardware/video/radeon.nix b/nixos/modules/hardware/video/radeon.nix index 8fecdae36bf..c92b7a0509d 100644 --- a/nixos/modules/hardware/video/radeon.nix +++ b/nixos/modules/hardware/video/radeon.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributableFirmware = true; } diff --git a/nixos/modules/installer/cd-dvd/channel.nix b/nixos/modules/installer/cd-dvd/channel.nix index 663ff24c81f..ddb00f174d1 100644 --- a/nixos/modules/installer/cd-dvd/channel.nix +++ b/nixos/modules/installer/cd-dvd/channel.nix @@ -6,16 +6,7 @@ with lib; let - # Do not include these things: - # - The '.git' directory - # - Result symlinks from nix-build ('result', 'result-2', 'result-bin', ...) - # - VIM/Emacs swap/backup files ('.swp', '.swo', '.foo.swp', 'foo~', ...) - filterFn = path: type: let basename = baseNameOf (toString path); in - if type == "directory" then basename != ".git" - else if type == "symlink" then builtins.match "^result(|-.*)$" basename == null - else builtins.match "^((|\..*)\.sw[a-z]|.*~)$" basename == null; - - nixpkgs = builtins.filterSource filterFn pkgs.path; + nixpkgs = lib.cleanSource pkgs.path; # We need a copy of the Nix expressions for Nixpkgs and NixOS on the # CD. These are installed into the "nixos" channel of the root diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index d4217400352..a039f7fdcb6 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -46,10 +46,24 @@ let # A variant to boot with 'nomodeset' LABEL boot-nomodeset - MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (with nomodeset) + MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (nomodeset) LINUX /boot/bzImage APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset INITRD /boot/initrd + + # A variant to boot with 'copytoram' + LABEL boot-copytoram + MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (copytoram) + LINUX /boot/bzImage + APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram + INITRD /boot/initrd + + # A variant to boot with verbose logging to the console + LABEL boot-nomodeset + MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug) + LINUX /boot/bzImage + APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7 + INITRD /boot/initrd ''; isolinuxMemtest86Entry = '' @@ -67,19 +81,43 @@ let cp -v ${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${targetArch}.efi $out/EFI/boot/boot${targetArch}.efi mkdir -p $out/loader/entries - echo "title NixOS Live CD" > $out/loader/entries/nixos-livecd.conf - echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd.conf - echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd.conf - echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" >> $out/loader/entries/nixos-livecd.conf + cat << EOF > $out/loader/entries/nixos-iso.conf + title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} + linux /boot/bzImage + initrd /boot/initrd + options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} + EOF # A variant to boot with 'nomodeset' - echo "title NixOS Live CD (with nomodeset)" > $out/loader/entries/nixos-livecd-nomodeset.conf - echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd-nomodeset.conf - echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd-nomodeset.conf - echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset" >> $out/loader/entries/nixos-livecd-nomodeset.conf + cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf + title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} + version nomodeset + linux /boot/bzImage + initrd /boot/initrd + options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset + EOF - echo "default nixos-livecd" > $out/loader/loader.conf - echo "timeout ${builtins.toString config.boot.loader.timeout}" >> $out/loader/loader.conf + # A variant to boot with 'copytoram' + cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf + title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} + version copytoram + linux /boot/bzImage + initrd /boot/initrd + options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram + EOF + + # A variant to boot with verbose logging to the console + cat << EOF > $out/loader/entries/nixos-iso-debug.conf + title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug) + linux /boot/bzImage + initrd /boot/initrd + options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7 + EOF + + cat << EOF > $out/loader/loader.conf + default nixos-iso + timeout ${builtins.toString config.boot.loader.timeout} + EOF ''; efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; } @@ -323,6 +361,9 @@ in { source = config.isoImage.splashImage; target = "/isolinux/background.png"; } + { source = pkgs.writeText "version" config.system.nixosVersion; + target = "/version.txt"; + } ] ++ optionals config.isoImage.makeEfiBootable [ { source = efiImg; target = "/boot/efi.img"; diff --git a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix index c769bc80a48..c94dc7d4019 100644 --- a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix +++ b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix @@ -10,7 +10,7 @@ let in { imports = [ - ../../profiles/minimal.nix + ../../profiles/base.nix ../../profiles/installation-device.nix ./sd-image.nix ]; @@ -28,8 +28,12 @@ in boot.loader.generic-extlinux-compatible.enable = true; boot.kernelPackages = pkgs.linuxPackages_latest; - boot.kernelParams = ["console=ttyS0,115200n8" "console=tty0"]; - boot.consoleLogLevel = 7; + + # The serial ports listed here are: + # - ttyS0: for Tegra (Jetson TX1) + # - ttyAMA0: for QEMU's -machine virt + # Also increase the amount of CMA to ensure the virtual console on the RPi3 works. + boot.kernelParams = ["cma=32M" "console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"]; # FIXME: this probably should be in installation-device.nix users.extraUsers.root.initialHashedPassword = ""; diff --git a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix index 118ed20d47f..880a6bf2e1e 100644 --- a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix +++ b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix @@ -10,7 +10,7 @@ let in { imports = [ - ../../profiles/minimal.nix + ../../profiles/base.nix ../../profiles/installation-device.nix ./sd-image.nix ]; @@ -28,6 +28,12 @@ in boot.loader.generic-extlinux-compatible.enable = true; boot.kernelPackages = pkgs.linuxPackages_latest; + # The serial ports listed here are: + # - ttyS0: for Tegra (Jetson TK1) + # - ttymxc0: for i.MX6 (Wandboard) + # - ttyAMA0: for Allwinner (pcDuino3 Nano) and QEMU's -machine virt + # - ttyO0: for OMAP (BeagleBone Black) + # - ttySAC2: for Exynos (ODROID-XU3) boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=ttyO0,115200n8" "console=ttySAC2,115200n8" "console=tty0"]; # FIXME: this probably should be in installation-device.nix diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix index 886ffd9a092..eb676eae05e 100644 --- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix +++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix @@ -10,7 +10,7 @@ let in { imports = [ - ../../profiles/minimal.nix + ../../profiles/base.nix ../../profiles/installation-device.nix ./sd-image.nix ]; diff --git a/nixos/modules/installer/scan/detected.nix b/nixos/modules/installer/scan/detected.nix index e72c7853294..7e181acb93b 100644 --- a/nixos/modules/installer/scan/detected.nix +++ b/nixos/modules/installer/scan/detected.nix @@ -6,8 +6,7 @@ with lib; { config = mkDefault { - # Wireless card firmware - networking.enableIntel2200BGFirmware = true; - networking.enableIntel3945ABGFirmware = true; + # Common firmware, i.e. for wifi cards + hardware.enableRedistributableFirmware = true; }; } diff --git a/nixos/modules/installer/scan/not-detected.nix b/nixos/modules/installer/scan/not-detected.nix index e1a3052ba95..903933e2df0 100644 --- a/nixos/modules/installer/scan/not-detected.nix +++ b/nixos/modules/installer/scan/not-detected.nix @@ -5,5 +5,5 @@ with lib; { - hardware.enableAllFirmware = true; + hardware.enableRedistributableFirmware = true; } diff --git a/nixos/modules/installer/tools/auto-upgrade.nix b/nixos/modules/installer/tools/auto-upgrade.nix index a4d4f16d1d9..7b756b70e2f 100644 --- a/nixos/modules/installer/tools/auto-upgrade.nix +++ b/nixos/modules/installer/tools/auto-upgrade.nix @@ -76,7 +76,7 @@ let cfg = config.system.autoUpgrade; in environment = config.nix.envVars // { inherit (config.environment.sessionVariables) NIX_PATH; HOME = "/root"; - }; + } // config.networking.proxy.envVars; path = [ pkgs.gnutar pkgs.xz.bin config.nix.package.out ]; diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index 0c9981470d7..321fb9a2030 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,5 +1,5 @@ { - x86_64-linux = "/nix/store/j6q3pb75q1sbk0xsa5x6a629ph98ycdl-nix-1.11.8"; - i686-linux = "/nix/store/4m6ps568l988bbr1p2k3w9raq3rblppi-nix-1.11.8"; - x86_64-darwin = "/nix/store/cc5q944yn3j2hrs8k0kxx9r2mk9mni8a-nix-1.11.8"; + x86_64-linux = "/nix/store/b4s1gxiis1ryvybnjhdjvgc5sr1nq0ys-nix-1.11.15"; + i686-linux = "/nix/store/kgb5hs7qw13bvb6icramv1ry9dard3h9-nix-1.11.15"; + x86_64-darwin = "/nix/store/dgwz3dxdzs2wwd7pg7cdhvl8rv0qpnbj-nix-1.11.15"; } diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 29b447912e7..7c737e84de0 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -8,6 +8,7 @@ use File::Basename; use File::Slurp; use File::stat; +umask(0022); sub uniq { my %seen; @@ -103,7 +104,7 @@ if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") { foreach $e (@desired_governors) { if (index($governors, $e) != -1) { - last if (push @attrs, "powerManagement.cpuFreqGovernor = \"$e\";"); + last if (push @attrs, "powerManagement.cpuFreqGovernor = lib.mkDefault \"$e\";"); } } } @@ -398,19 +399,15 @@ EOF # Is this a btrfs filesystem? if ($fsType eq "btrfs") { - my ($status, @id_info) = runCommand("btrfs subvol show $rootDir$mountPoint"); - if ($status != 0 || join("", @id_info) =~ /ERROR:/) { + my ($status, @info) = runCommand("btrfs subvol show $rootDir$mountPoint"); + if ($status != 0 || join("", @info) =~ /ERROR:/) { die "Failed to retrieve subvolume info for $mountPoint\n"; } - my @ids = join("", @id_info) =~ m/Subvolume ID:[ \t\n]*([^ \t\n]*)/; + my @ids = join("\n", @info) =~ m/^(?!\/\n).*Subvolume ID:[ \t\n]*([0-9]+)/s; if ($#ids > 0) { die "Btrfs subvol name for $mountPoint listed multiple times in mount\n" } elsif ($#ids == 0) { - my ($status, @path_info) = runCommand("btrfs subvol list $rootDir$mountPoint"); - if ($status != 0) { - die "Failed to find $mountPoint subvolume id from btrfs\n"; - } - my @paths = join("", @path_info) =~ m/ID $ids[0] [^\n]* path ([^\n]*)/; + my @paths = join("", @info) =~ m/^([^\n]*)/; if ($#paths > 0) { die "Btrfs returned multiple paths for a single subvolume id, mountpoint $mountPoint\n"; } elsif ($#paths != 0) { @@ -583,9 +580,15 @@ $bootLoaderConfig # List packages installed in system profile. To search by name, run: # \$ nix-env -qaP | grep wget # environment.systemPackages = with pkgs; [ - # wget + # wget vim # ]; + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.bash.enableCompletion = true; + # programs.mtr.enable = true; + # programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; + # List services that you want to enable: # Enable the OpenSSH daemon. @@ -605,6 +608,9 @@ $bootLoaderConfig # services.xserver.layout = "us"; # services.xserver.xkbOptions = "eurosign:e"; + # Enable touchpad support. + # services.xserver.libinput.enable = true; + # Enable the KDE Desktop Environment. # services.xserver.displayManager.sddm.enable = true; # services.xserver.desktopManager.plasma5.enable = true; @@ -615,8 +621,11 @@ $bootLoaderConfig # uid = 1000; # }; - # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "${\(qw(@nixosRelease@))}"; + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "${\(qw(@nixosRelease@))}"; # Did you read the comment? } EOF diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh index e2ae2ee9fdf..f994d5b4bde 100644 --- a/nixos/modules/installer/tools/nixos-install.sh +++ b/nixos/modules/installer/tools/nixos-install.sh @@ -102,16 +102,44 @@ fi extraBuildFlags+=(--option "build-users-group" "$buildUsersGroup") # Inherit binary caches from the host -# TODO: will this still work with Nix 1.12 now that it has no perl? Probably not... +# TODO: will this still work with Nix 1.12 now that it has no perl? Probably not... binary_caches="$(@perl@/bin/perl -I @nix@/lib/perl5/site_perl/*/* -e 'use Nix::Config; Nix::Config::readConfig; print $Nix::Config::config{"binary-caches"};')" extraBuildFlags+=(--option "binary-caches" "$binary_caches") -nixpkgs="$(readlink -f "$(nix-instantiate --find-file nixpkgs)")" -export NIX_PATH="nixpkgs=$nixpkgs:nixos-config=$mountPoint/$NIXOS_CONFIG" +# We only need nixpkgs in the path if we don't already have a system closure to install +if [[ -z "$closure" ]]; then + nixpkgs="$(readlink -f "$(nix-instantiate --find-file nixpkgs)")" + export NIX_PATH="nixpkgs=$nixpkgs:nixos-config=$mountPoint/$NIXOS_CONFIG" +fi unset NIXOS_CONFIG -# TODO: do I need to set NIX_SUBSTITUTERS here or is the --option binary-caches above enough? +# These get created in nixos-prepare-root as well, but we want to make sure they're here in case we're +# running with --chroot. TODO: --chroot should just be split into a separate tool. +mkdir -m 0755 -p "$mountPoint/dev" "$mountPoint/proc" "$mountPoint/sys" +# Set up some bind mounts we'll want regardless of chroot or not +mount --rbind /dev "$mountPoint/dev" +mount --rbind /proc "$mountPoint/proc" +mount --rbind /sys "$mountPoint/sys" + +# If we asked for a chroot, that means we're not actually installing anything (yeah I was confused too) +# and we just want to run a command in the context of a $mountPoint that we're assuming has already been +# set up by a previous nixos-install invocation. In that case we set up some remaining bind mounts and +# exec the requested command, skipping the rest of the installation procedure. +if [ -n "$runChroot" ]; then + mount -t tmpfs -o "mode=0755" none $mountPoint/run + rm -rf $mountPoint/var/run + ln -s /run $mountPoint/var/run + for f in /etc/resolv.conf /etc/hosts; do rm -f $mountPoint/$f; [ -f "$f" ] && cp -Lf $f $mountPoint/etc/; done + for f in /etc/passwd /etc/group; do touch $mountPoint/$f; [ -f "$f" ] && mount --rbind -o ro $f $mountPoint/$f; done + + if ! [ -L $mountPoint/nix/var/nix/profiles/system ]; then + echo "$0: installation not finished; cannot chroot into installation directory" + exit 1 + fi + ln -s /nix/var/nix/profiles/system $mountPoint/run/current-system + exec chroot $mountPoint "${chrootCommand[@]}" +fi # A place to drop temporary closures trap "rm -rf $tmpdir" EXIT @@ -123,6 +151,9 @@ function closure() { } system_closure="$tmpdir/system.closure" +# Use a FIFO for piping nix-store --export into nix-store --import, saving disk +# I/O and space. nix-store --import is run by nixos-prepare-root. +mkfifo $system_closure if [ -z "$closure" ]; then expr="(import {}).system" @@ -132,7 +163,9 @@ else system_root=$closure # Create a temporary file ending in .closure (so nixos-prepare-root knows to --import it) to transport the store closure # to the filesytem we're preparing. Also delete it on exit! - nix-store --export $(nix-store -qR $closure) > $system_closure + # Run in background to avoid blocking while trying to write to the FIFO + # $system_closure refers to + nix-store --export $(nix-store -qR $closure) > $system_closure & fi channel_root="$(nix-env -p /nix/var/nix/profiles/per-user/root/channels -q nixos --no-name --out-path 2>/dev/null || echo -n "")" @@ -140,14 +173,12 @@ channel_closure="$tmpdir/channel.closure" nix-store --export $channel_root > $channel_closure # Populate the target root directory with the basics -@prepare_root@/bin/nixos-prepare-root $mountPoint $channel_root $system_root @nixClosure@ $system_closure $channel_closure +@prepare_root@/bin/nixos-prepare-root "$mountPoint" "$channel_root" "$system_root" @nixClosure@ "$system_closure" "$channel_closure" # nixos-prepare-root doesn't currently do anything with file ownership, so we set it up here instead chown @root_uid@:@nixbld_gid@ $mountPoint/nix/store -mount --rbind /dev $mountPoint/dev -mount --rbind /proc $mountPoint/proc -mount --rbind /sys $mountPoint/sys + # Grub needs an mtab. ln -sfn /proc/mounts $mountPoint/etc/mtab diff --git a/nixos/modules/installer/tools/nixos-prepare-root.sh b/nixos/modules/installer/tools/nixos-prepare-root.sh index c374330f846..0bd70d2d349 100644 --- a/nixos/modules/installer/tools/nixos-prepare-root.sh +++ b/nixos/modules/installer/tools/nixos-prepare-root.sh @@ -37,7 +37,7 @@ mkdir -m 0755 -p $mountPoint/tmp/root mkdir -m 0755 -p $mountPoint/var mkdir -m 0700 -p $mountPoint/root -ln -s /run $mountPoint/var/run +ln -sf /run $mountPoint/var/run # Create the necessary Nix directories on the target device mkdir -m 0755 -p \ @@ -70,7 +70,7 @@ for i in $closures; do rsync -a $j $mountPoint/nix/store/ done - nix-store --register-validity < $i + nix-store --option build-users-group root --register-validity < $i fi done diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh index 4b5e7b3230c..9ede74a54cd 100644 --- a/nixos/modules/installer/tools/nixos-rebuild.sh +++ b/nixos/modules/installer/tools/nixos-rebuild.sh @@ -250,7 +250,7 @@ trap cleanup EXIT # If --repair is given, don't try to use the Nix daemon, because the # flag can only be used directly. if [ -z "$repair" ] && systemctl show nix-daemon.socket nix-daemon.service | grep -q ActiveState=active; then - export NIX_REMOTE=${NIX_REMOTE:-daemon} + export NIX_REMOTE=${NIX_REMOTE-daemon} fi diff --git a/nixos/modules/misc/crashdump.nix b/nixos/modules/misc/crashdump.nix index 5ef4b7781bd..6e0b49fa9af 100644 --- a/nixos/modules/misc/crashdump.nix +++ b/nixos/modules/misc/crashdump.nix @@ -18,26 +18,23 @@ in default = false; description = '' If enabled, NixOS will set up a kernel that will - boot on crash, and leave the user to a stage1 debug1devices - interactive shell to be able to save the crashed kernel dump. + boot on crash, and leave the user in systemd rescue + to be able to save the crashed kernel dump at + /proc/vmcore. It also activates the NMI watchdog. ''; }; - kernelPackages = mkOption { - type = types.package; - default = pkgs.linuxPackages; - # We don't want to evaluate all of linuxPackages for the manual - # - some of it might not even evaluate correctly. - defaultText = "pkgs.linuxPackages"; - example = literalExample "pkgs.linuxPackages_2_6_25"; + reservedMemory = mkOption { + default = "128M"; description = '' - This will override the boot.kernelPackages, and will add some - kernel configuration parameters for the crash dump to work. + The amount of memory reserved for the crashdump kernel. + If you choose a too high value, dmesg will mention + "crashkernel reservation failed". ''; }; kernelParams = mkOption { type = types.listOf types.str; - default = [ "debug1devices" ]; + default = [ "1" "boot.shell_on_fail" ]; description = '' Parameters that will be passed to the kernel kexec-ed on crash. ''; @@ -51,29 +48,29 @@ in config = mkIf crashdump.enable { boot = { postBootCommands = '' + echo "loading crashdump kernel..."; ${pkgs.kexectools}/sbin/kexec -p /run/current-system/kernel \ --initrd=/run/current-system/initrd \ - --append="init=$(readlink -f /run/current-system/init) system=$(readlink -f /run/current-system) irqpoll maxcpus=1 reset_devices ${kernelParams}" --reset-vga --console-vga + --reset-vga --console-vga \ + --command-line="systemConfig=$(readlink -f /run/current-system) init=$(readlink -f /run/current-system/init) irqpoll maxcpus=1 reset_devices ${kernelParams}" ''; kernelParams = [ - "crashkernel=64M" + "crashkernel=${crashdump.reservedMemory}" "nmi_watchdog=panic" "softlockup_panic=1" "idle=poll" ]; - kernelPackages = mkOverride 50 (crashdump.kernelPackages // { - kernel = crashdump.kernelPackages.kernel.override - (attrs: { - extraConfig = (optionalString (attrs ? extraConfig) attrs.extraConfig) + - '' + kernelPatches = [ { + name = "crashdump-config"; + patch = null; + extraConfig = '' CRASH_DUMP y DEBUG_INFO y PROC_VMCORE y LOCKUP_DETECTOR y HARDLOCKUP_DETECTOR y ''; - }); - }); + } ]; }; }; } diff --git a/nixos/modules/misc/extra-arguments.nix b/nixos/modules/misc/extra-arguments.nix index 19002b17dac..f4ee94ecc0d 100644 --- a/nixos/modules/misc/extra-arguments.nix +++ b/nixos/modules/misc/extra-arguments.nix @@ -2,16 +2,6 @@ { _module.args = { - pkgs_i686 = import ../../.. { - system = "i686-linux"; - # FIXME: we enable config.allowUnfree to make packages like - # nvidia-x11 available. This isn't a problem because if the user has - # ‘nixpkgs.config.allowUnfree = false’, then evaluation will fail on - # the 64-bit package anyway. However, it would be cleaner to respect - # nixpkgs.config here. - config.allowUnfree = true; - }; - utils = import ../../lib/utils.nix pkgs; }; } diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index feecee3225b..7d9d9984cf2 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -139,6 +139,7 @@ btsync = 113; minecraft = 114; #monetdb = 115; # unused (not packaged), removed 2016-09-19 + vault = 115; rippled = 116; murmur = 117; foundationdb = 118; @@ -166,7 +167,7 @@ dnsmasq = 141; uhub = 142; yandexdisk = 143; - collectd = 144; + #collectd = 144; #unused consul = 145; mailpile = 146; redmine = 147; @@ -213,7 +214,7 @@ plex = 193; grafana = 196; skydns = 197; - ripple-rest = 198; + # ripple-rest = 198; # unused, removed 2017-08-12 nix-serve = 199; tvheadend = 200; uwsgi = 201; @@ -253,7 +254,6 @@ hydra-queue-runner = 235; hydra-www = 236; syncthing = 237; - mfi = 238; caddy = 239; taskd = 240; factorio = 241; @@ -289,6 +289,16 @@ rpc = 271; geoip = 272; fcron = 273; + sonarr = 274; + radarr = 275; + jackett = 276; + aria2 = 277; + clickhouse = 278; + rslsync = 279; + minio = 280; + kanboard = 281; + pykms = 282; + kodi = 283; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -327,7 +337,7 @@ dialout = 27; #polkituser = 28; # currently unused, polkitd doesn't need a group utmp = 29; - #ddclient = 30; # unused + ddclient = 30; davfs2 = 31; disnix = 33; osgi = 34; @@ -408,6 +418,7 @@ btsync = 113; #minecraft = 114; # unused #monetdb = 115; # unused (not packaged), removed 2016-09-19 + vault = 115; #ripped = 116; # unused #murmur = 117; # unused foundationdb = 118; @@ -418,7 +429,7 @@ teamspeak = 124; influxdb = 125; nsd = 126; - #gitolite = 127; # unused + gitolite = 127; znc = 128; polipo = 129; mopidy = 130; @@ -480,7 +491,7 @@ sabnzbd = 194; #grafana = 196; #unused #skydns = 197; #unused - #ripple-rest = 198; #unused + # ripple-rest = 198; # unused, removed 2017-08-12 #nix-serve = 199; #unused #tvheadend = 200; #unused uwsgi = 201; @@ -513,7 +524,6 @@ octoprint = 230; radicale = 234; syncthing = 237; - #mfi = 238; # unused caddy = 239; taskd = 240; factorio = 241; @@ -547,6 +557,16 @@ #rpc = 271; # unused #geoip = 272; # unused fcron = 273; + sonarr = 274; + radarr = 275; + jackett = 276; + aria2 = 277; + clickhouse = 278; + rslsync = 279; + minio = 280; + kanboard = 281; + pykms = 282; + kodi = 283; # When adding a gid, make sure it doesn't match an existing # uid. Users and groups with the same name should have equal diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix index 6d9bc915ba0..51953d1110c 100644 --- a/nixos/modules/misc/locate.nix +++ b/nixos/modules/misc/locate.nix @@ -125,15 +125,18 @@ in { warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support searching as user other than root" ++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component" ++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts"; - + + # directory creation needs to be separated from main service + # because ReadWritePaths fails when the directory doesn't already exist + systemd.tmpfiles.rules = [ "d ${dirOf cfg.output} 0755 root root -" ]; + systemd.services.update-locatedb = { description = "Update Locate Database"; path = mkIf (!isMLocate) [ pkgs.su ]; script = '' - install -m ${if isMLocate then "0750" else "0755"} -o root -g ${if isMLocate then "mlocate" else "root"} -d $(dirname ${cfg.output}) exec ${cfg.locate}/bin/updatedb \ - ${optionalString (cfg.localuser != null) ''--localuser=${cfg.localuser}''} \ + ${optionalString (cfg.localuser != null && ! isMLocate) ''--localuser=${cfg.localuser}''} \ --output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags} ''; environment = { @@ -147,8 +150,13 @@ in { serviceConfig.PrivateTmp = "yes"; serviceConfig.PrivateNetwork = "yes"; serviceConfig.NoNewPrivileges = "yes"; - serviceConfig.ReadOnlyDirectories = "/"; - serviceConfig.ReadWriteDirectories = dirOf cfg.output; + serviceConfig.ReadOnlyPaths = "/"; + # Use dirOf cfg.output because mlocate creates temporary files next to + # the actual database. We could specify and create them as well, + # but that would make this quite brittle when they change something. + # NOTE: If /var/cache does not exist, this leads to the misleading error message: + # update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory + serviceConfig.ReadWritePaths = dirOf cfg.output; }; systemd.timers.update-locatedb = diff --git a/nixos/modules/misc/meta.nix b/nixos/modules/misc/meta.nix index 6a5738e47ff..7a1e751394c 100644 --- a/nixos/modules/misc/meta.nix +++ b/nixos/modules/misc/meta.nix @@ -17,7 +17,7 @@ let # } merge = loc: defs: zipAttrs - (flatten (imap (n: def: imap (m: def': + (flatten (imap1 (n: def: imap1 (m: def': maintainer.merge (loc ++ ["[${toString n}-${toString m}]"]) [{ inherit (def) file; value = def'; }]) def.value) defs)); }; diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix index b8824e6374b..1793c1447d6 100644 --- a/nixos/modules/misc/nixpkgs.nix +++ b/nixos/modules/misc/nixpkgs.nix @@ -42,6 +42,8 @@ let merge = lib.mergeOneOption; }; + _pkgs = import ../../.. config.nixpkgs; + in { @@ -97,6 +99,9 @@ in }; config = { - _module.args.pkgs = import ../../.. config.nixpkgs; + _module.args = { + pkgs = _pkgs; + pkgs_i686 = _pkgs.pkgsi686Linux; + }; }; } diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix index 315c33a462c..48cde2ebbc8 100644 --- a/nixos/modules/misc/version.nix +++ b/nixos/modules/misc/version.nix @@ -95,7 +95,7 @@ in nixosVersionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId)); # Note: code names must only increase in alphabetical order. - nixosCodeName = "Hummingbird"; + nixosCodeName = "Impala"; }; # Generate /etc/os-release. See diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 6e99ead5862..e66a2ba272a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -9,7 +9,7 @@ ./config/fonts/ghostscript.nix ./config/gnu.nix ./config/i18n.nix - ./config/krb5.nix + ./config/krb5/default.nix ./config/ldap.nix ./config/networking.nix ./config/no-x-libs.nix @@ -21,6 +21,7 @@ ./config/sysctl.nix ./config/system-environment.nix ./config/system-path.nix + ./config/terminfo.nix ./config/timezone.nix ./config/unix-odbc-drivers.nix ./config/users-groups.nix @@ -34,13 +35,10 @@ ./hardware/ksm.nix ./hardware/mcelog.nix ./hardware/network/b43.nix - ./hardware/network/intel-2100bg.nix - ./hardware/network/intel-2200bg.nix - ./hardware/network/intel-3945abg.nix - ./hardware/network/ralink.nix - ./hardware/network/rtl8192c.nix + ./hardware/nitrokey.nix ./hardware/opengl.nix ./hardware/pcmcia.nix + ./hardware/raid/hpsa.nix ./hardware/usb-wwan.nix ./hardware/video/amdgpu.nix ./hardware/video/amdgpu-pro.nix @@ -70,7 +68,9 @@ ./programs/adb.nix ./programs/atop.nix ./programs/bash/bash.nix + ./programs/bcc.nix ./programs/blcr.nix + ./programs/browserpass.nix ./programs/cdemu.nix ./programs/chromium.nix ./programs/command-not-found/command-not-found.nix @@ -78,6 +78,7 @@ ./programs/environment.nix ./programs/fish.nix ./programs/freetds.nix + ./programs/gnupg.nix ./programs/gphoto2.nix ./programs/info.nix ./programs/java.nix @@ -87,7 +88,9 @@ ./programs/mosh.nix ./programs/mtr.nix ./programs/nano.nix + ./programs/npm.nix ./programs/oblogout.nix + ./programs/qt5ct.nix ./programs/screen.nix ./programs/slock.nix ./programs/shadow.nix @@ -95,26 +98,30 @@ ./programs/spacefm.nix ./programs/ssh.nix ./programs/ssmtp.nix + ./programs/sysdig.nix + ./programs/sway.nix + ./programs/thefuck.nix ./programs/tmux.nix ./programs/venus.nix ./programs/vim.nix ./programs/wireshark.nix - ./programs/wvdial.nix ./programs/xfs_quota.nix ./programs/xonsh.nix ./programs/zsh/oh-my-zsh.nix ./programs/zsh/zsh.nix + ./programs/zsh/zsh-syntax-highlighting.nix ./rename.nix ./security/acme.nix ./security/apparmor.nix ./security/apparmor-suid.nix ./security/audit.nix + ./security/auditd.nix ./security/ca.nix ./security/chromium-suid-sandbox.nix ./security/dhparams.nix ./security/duosec.nix - ./security/grsecurity.nix ./security/hidepid.nix + ./security/lock-kernel-modules.nix ./security/oath.nix ./security/pam.nix ./security/pam_usb.nix @@ -125,6 +132,8 @@ ./security/rtkit.nix ./security/wrappers/default.nix ./security/sudo.nix + ./services/admin/salt/master.nix + ./services/admin/salt/minion.nix ./services/amqp/activemq/default.nix ./services/amqp/rabbitmq.nix ./services/audio/alsa.nix @@ -144,7 +153,9 @@ ./services/backup/tarsnap.nix ./services/backup/znapzend.nix ./services/cluster/fleet.nix - ./services/cluster/kubernetes.nix + ./services/cluster/kubernetes/default.nix + ./services/cluster/kubernetes/dns.nix + ./services/cluster/kubernetes/dashboard.nix ./services/cluster/panamax.nix ./services/computing/boinc/client.nix ./services/computing/torque/server.nix @@ -153,6 +164,7 @@ ./services/continuous-integration/buildbot/master.nix ./services/continuous-integration/buildbot/worker.nix ./services/continuous-integration/buildkite-agent.nix + ./services/continuous-integration/hail.nix ./services/continuous-integration/hydra/default.nix ./services/continuous-integration/gitlab-runner.nix ./services/continuous-integration/gocd-agent/default.nix @@ -162,6 +174,7 @@ ./services/continuous-integration/jenkins/slave.nix ./services/databases/4store-endpoint.nix ./services/databases/4store.nix + ./services/databases/clickhouse.nix ./services/databases/couchdb.nix ./services/databases/firebird.nix ./services/databases/hbase.nix @@ -172,6 +185,7 @@ ./services/databases/neo4j.nix ./services/databases/openldap.nix ./services/databases/opentsdb.nix + ./services/databases/pgmanage.nix ./services/databases/postgresql.nix ./services/databases/redis.nix ./services/databases/riak.nix @@ -182,12 +196,14 @@ ./services/desktops/geoclue2.nix ./services/desktops/gnome3/at-spi2-core.nix ./services/desktops/gnome3/evolution-data-server.nix + ./services/desktops/gnome3/gnome-disks.nix ./services/desktops/gnome3/gnome-documents.nix ./services/desktops/gnome3/gnome-keyring.nix ./services/desktops/gnome3/gnome-online-accounts.nix ./services/desktops/gnome3/gnome-online-miners.nix ./services/desktops/gnome3/gnome-terminal-server.nix ./services/desktops/gnome3/gnome-user-share.nix + ./services/desktops/gnome3/gpaste.nix ./services/desktops/gnome3/gvfs.nix ./services/desktops/gnome3/seahorse.nix ./services/desktops/gnome3/sushi.nix @@ -209,6 +225,7 @@ ./services/hardware/brltty.nix ./services/hardware/freefall.nix ./services/hardware/illum.nix + ./services/hardware/interception-tools.nix ./services/hardware/irqbalance.nix ./services/hardware/nvidia-optimus.nix ./services/hardware/pcscd.nix @@ -222,32 +239,39 @@ ./services/hardware/udisks2.nix ./services/hardware/upower.nix ./services/hardware/thermald.nix + ./services/logging/SystemdJournal2Gelf.nix ./services/logging/awstats.nix ./services/logging/fluentd.nix ./services/logging/graylog.nix + ./services/logging/heartbeat.nix ./services/logging/journalbeat.nix + ./services/logging/journalwatch.nix ./services/logging/klogd.nix ./services/logging/logcheck.nix ./services/logging/logrotate.nix ./services/logging/logstash.nix ./services/logging/rsyslogd.nix - ./services/logging/syslogd.nix ./services/logging/syslog-ng.nix + ./services/logging/syslogd.nix ./services/mail/dovecot.nix ./services/mail/dspam.nix ./services/mail/exim.nix ./services/mail/freepops.nix ./services/mail/mail.nix + ./services/mail/mailhog.nix ./services/mail/mlmmj.nix ./services/mail/offlineimap.nix ./services/mail/opendkim.nix ./services/mail/opensmtpd.nix + ./services/mail/pfix-srsd.nix ./services/mail/postfix.nix ./services/mail/postsrsd.nix ./services/mail/postgrey.nix ./services/mail/spamassassin.nix ./services/mail/rspamd.nix ./services/mail/rmilter.nix + ./services/mail/nullmailer.nix + ./services/misc/airsonic.nix ./services/misc/apache-kafka.nix ./services/misc/autofs.nix ./services/misc/autorandr.nix @@ -267,18 +291,23 @@ ./services/misc/emby.nix ./services/misc/errbot.nix ./services/misc/etcd.nix + ./services/misc/exhibitor.nix ./services/misc/felix.nix ./services/misc/folding-at-home.nix + ./services/misc/fstrim.nix ./services/misc/gammu-smsd.nix ./services/misc/geoip-updater.nix + ./services/misc/gitea.nix #./services/misc/gitit.nix ./services/misc/gitlab.nix ./services/misc/gitolite.nix ./services/misc/gogs.nix + ./services/misc/gollum.nix ./services/misc/gpsd.nix #./services/misc/ihaskell.nix ./services/misc/irkerd.nix ./services/misc/jackett.nix + ./services/misc/logkeys.nix ./services/misc/leaps.nix ./services/misc/mantisbt.nix ./services/misc/mathics.nix @@ -299,13 +328,15 @@ ./services/misc/parsoid.nix ./services/misc/phd.nix ./services/misc/plex.nix + ./services/misc/plexpy.nix + ./services/misc/pykms.nix ./services/misc/radarr.nix ./services/misc/redmine.nix ./services/misc/rippled.nix - ./services/misc/ripple-rest.nix ./services/misc/ripple-data-api.nix ./services/misc/rogue.nix ./services/misc/siproxd.nix + ./services/misc/snapper.nix ./services/misc/sonarr.nix ./services/misc/spice-vdagentd.nix ./services/misc/ssm-agent.nix @@ -315,6 +346,7 @@ ./services/misc/svnserve.nix ./services/misc/synergy.nix ./services/misc/taskserver + ./services/misc/tzupdate.nix ./services/misc/uhub.nix ./services/misc/zookeeper.nix ./services/monitoring/apcupsd.nix @@ -323,7 +355,8 @@ ./services/monitoring/cadvisor.nix ./services/monitoring/collectd.nix ./services/monitoring/das_watchdog.nix - ./services/monitoring/dd-agent.nix + ./services/monitoring/dd-agent/dd-agent.nix + ./services/monitoring/fusion-inventory.nix ./services/monitoring/grafana.nix ./services/monitoring/graphite.nix ./services/monitoring/hdaps.nix @@ -333,11 +366,14 @@ ./services/monitoring/munin.nix ./services/monitoring/nagios.nix ./services/monitoring/netdata.nix + ./services/monitoring/osquery.nix ./services/monitoring/prometheus/default.nix ./services/monitoring/prometheus/alertmanager.nix ./services/monitoring/prometheus/blackbox-exporter.nix + ./services/monitoring/prometheus/collectd-exporter.nix ./services/monitoring/prometheus/fritzbox-exporter.nix ./services/monitoring/prometheus/json-exporter.nix + ./services/monitoring/prometheus/minio-exporter.nix ./services/monitoring/prometheus/nginx-exporter.nix ./services/monitoring/prometheus/node-exporter.nix ./services/monitoring/prometheus/snmp-exporter.nix @@ -361,6 +397,7 @@ ./services/network-filesystems/cachefilesd.nix ./services/network-filesystems/drbd.nix ./services/network-filesystems/glusterfs.nix + ./services/network-filesystems/kbfs.nix ./services/network-filesystems/ipfs.nix ./services/network-filesystems/netatalk.nix ./services/network-filesystems/nfsd.nix @@ -372,7 +409,6 @@ ./services/network-filesystems/u9fs.nix ./services/network-filesystems/yandex-disk.nix ./services/network-filesystems/xtreemfs.nix - ./services/networking/aiccu.nix ./services/networking/amuled.nix ./services/networking/asterisk.nix ./services/networking/atftpd.nix @@ -393,15 +429,16 @@ ./services/networking/ddclient.nix ./services/networking/dhcpcd.nix ./services/networking/dhcpd.nix + ./services/networking/dnscache.nix ./services/networking/dnschain.nix ./services/networking/dnscrypt-proxy.nix ./services/networking/dnscrypt-wrapper.nix ./services/networking/dnsmasq.nix ./services/networking/ejabberd.nix - ./services/networking/fan.nix ./services/networking/fakeroute.nix ./services/networking/ferm.nix ./services/networking/firefox/sync-server.nix + ./services/networking/fireqos.nix ./services/networking/firewall.nix ./services/networking/flannel.nix ./services/networking/flashpolicyd.nix @@ -421,14 +458,17 @@ ./services/networking/i2p.nix ./services/networking/iodine.nix ./services/networking/ircd-hybrid/default.nix + ./services/networking/iwd.nix ./services/networking/keepalived/default.nix + ./services/networking/keybase.nix ./services/networking/kippo.nix ./services/networking/kresd.nix ./services/networking/lambdabot.nix ./services/networking/libreswan.nix + ./services/networking/lldpd.nix ./services/networking/logmein-hamachi.nix ./services/networking/mailpile.nix - ./services/networking/mfi.nix + ./services/networking/matterbridge.nix ./services/networking/mjpg-streamer.nix ./services/networking/minidlna.nix ./services/networking/miniupnpd.nix @@ -467,6 +507,7 @@ ./services/networking/radvd.nix ./services/networking/rdnssd.nix ./services/networking/redsocks.nix + ./services/networking/resilio.nix ./services/networking/rpcbind.nix ./services/networking/sabnzbd.nix ./services/networking/searx.nix @@ -478,6 +519,7 @@ ./services/networking/smokeping.nix ./services/networking/softether.nix ./services/networking/spiped.nix + ./services/networking/squid.nix ./services/networking/sslh.nix ./services/networking/ssh/lshd.nix ./services/networking/ssh/sshd.nix @@ -488,8 +530,8 @@ ./services/networking/tcpcrypt.nix ./services/networking/teamspeak3.nix ./services/networking/tinc.nix + ./services/networking/tinydns.nix ./services/networking/tftpd.nix - ./services/networking/tlsdated.nix ./services/networking/tox-bootstrapd.nix ./services/networking/toxvpn.nix ./services/networking/tvheadend.nix @@ -503,6 +545,7 @@ ./services/networking/wpa_supplicant.nix ./services/networking/xinetd.nix ./services/networking/xl2tpd.nix + ./services/networking/xrdp.nix ./services/networking/zerobin.nix ./services/networking/zerotierone.nix ./services/networking/znc.nix @@ -520,7 +563,6 @@ ./services/security/fail2ban.nix ./services/security/fprintd.nix ./services/security/fprot.nix - ./services/security/frandom.nix ./services/security/haka.nix ./services/security/haveged.nix ./services/security/hologram-server.nix @@ -528,15 +570,21 @@ ./services/security/munge.nix ./services/security/oauth2_proxy.nix ./services/security/physlock.nix - ./services/security/torify.nix + ./services/security/shibboleth-sp.nix + ./services/security/sks.nix + ./services/security/sshguard.nix ./services/security/tor.nix + ./services/security/torify.nix ./services/security/torsocks.nix + ./services/security/usbguard.nix + ./services/security/vault.nix ./services/system/cgmanager.nix ./services/system/cloud-init.nix ./services/system/dbus.nix ./services/system/earlyoom.nix ./services/system/kerberos.nix ./services/system/nscd.nix + ./services/system/saslauthd.nix ./services/system/uptimed.nix ./services/torrent/deluge.nix ./services/torrent/flexget.nix @@ -552,6 +600,9 @@ ./services/web-apps/frab.nix ./services/web-apps/mattermost.nix ./services/web-apps/nixbot.nix + ./services/web-apps/nexus.nix + ./services/web-apps/pgpkeyserver-lite.nix + ./services/web-apps/piwik.nix ./services/web-apps/pump.io.nix ./services/web-apps/tt-rss.nix ./services/web-apps/selfoss.nix @@ -561,13 +612,16 @@ ./services/web-servers/fcgiwrap.nix ./services/web-servers/jboss/default.nix ./services/web-servers/lighttpd/cgit.nix + ./services/web-servers/lighttpd/collectd.nix ./services/web-servers/lighttpd/default.nix ./services/web-servers/lighttpd/gitweb.nix ./services/web-servers/lighttpd/inginious.nix + ./services/web-servers/minio.nix ./services/web-servers/nginx/default.nix ./services/web-servers/phpfpm/default.nix ./services/web-servers/shellinabox.nix ./services/web-servers/tomcat.nix + ./services/web-servers/traefik.nix ./services/web-servers/uwsgi.nix ./services/web-servers/varnish/default.nix ./services/web-servers/winstone.nix @@ -591,7 +645,6 @@ ./services/x11/redshift.nix ./services/x11/urxvtd.nix ./services/x11/window-managers/awesome.nix - #./services/x11/window-managers/compiz.nix ./services/x11/window-managers/default.nix ./services/x11/window-managers/fluxbox.nix ./services/x11/window-managers/icewm.nix @@ -602,6 +655,7 @@ ./services/x11/window-managers/windowlab.nix ./services/x11/window-managers/wmii.nix ./services/x11/window-managers/xmonad.nix + ./services/x11/xautolock.nix ./services/x11/xbanish.nix ./services/x11/xfs.nix ./services/x11/xserver.nix @@ -640,8 +694,10 @@ ./tasks/cpu-freq.nix ./tasks/encrypted-devices.nix ./tasks/filesystems.nix + ./tasks/filesystems/bcachefs.nix ./tasks/filesystems/btrfs.nix ./tasks/filesystems/cifs.nix + ./tasks/filesystems/ecryptfs.nix ./tasks/filesystems/exfat.nix ./tasks/filesystems/ext.nix ./tasks/filesystems/f2fs.nix diff --git a/nixos/modules/profiles/all-hardware.nix b/nixos/modules/profiles/all-hardware.nix index 6b4d8c737eb..3c7e516c497 100644 --- a/nixos/modules/profiles/all-hardware.nix +++ b/nixos/modules/profiles/all-hardware.nix @@ -42,15 +42,15 @@ # Virtio (QEMU, KVM etc.) support. "virtio_net" "virtio_pci" "virtio_blk" "virtio_scsi" "virtio_balloon" "virtio_console" + # VMware support. + "mptspi" "vmw_balloon" "vmwgfx" "vmw_vmci" "vmw_vsock_vmci_transport" "vmxnet3" "vsock" + # Hyper-V support. "hv_storvsc" - - # Keyboards - "usbhid" "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat" ]; # Include lots of firmware. - hardware.enableAllFirmware = true; + hardware.enableRedistributableFirmware = true; imports = [ ../hardware/network/zydas-zd1211.nix ]; diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix index 687cd9d80d3..39b8553976e 100644 --- a/nixos/modules/profiles/base.nix +++ b/nixos/modules/profiles/base.nix @@ -20,6 +20,7 @@ # Some networking tools. pkgs.fuse + pkgs.fuse3 pkgs.sshfs-fuse pkgs.socat pkgs.screen diff --git a/nixos/modules/profiles/graphical.nix b/nixos/modules/profiles/graphical.nix index e2337537518..fe9851e79a6 100644 --- a/nixos/modules/profiles/graphical.nix +++ b/nixos/modules/profiles/graphical.nix @@ -8,7 +8,7 @@ enable = true; displayManager.sddm.enable = true; desktopManager.plasma5.enable = true; - synaptics.enable = true; # for touchpad support on many laptops + libinput.enable = true; # for touchpad support on many laptops }; environment.systemPackages = [ pkgs.glxinfo ]; diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix index 9933f8b25f5..456538742f5 100644 --- a/nixos/modules/profiles/hardened.nix +++ b/nixos/modules/profiles/hardened.nix @@ -6,10 +6,32 @@ with lib; { + boot.kernelPackages = mkDefault pkgs.linuxPackages_hardened; + security.hideProcessInformation = mkDefault true; + security.lockKernelModules = mkDefault true; + security.apparmor.enable = mkDefault true; + boot.kernelParams = [ + # Overwrite free'd memory + "page_poison=1" + + # Disable legacy virtual syscalls + "vsyscall=none" + + # Disable hibernation (allows replacing the running kernel) + "nohibernate" + ]; + + boot.blacklistedKernelModules = [ + # Obscure network protocols + "ax25" + "netrom" + "rose" + ]; + # Restrict ptrace() usage to processes with a pre-defined relationship # (e.g., parent/child) boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1; @@ -32,4 +54,32 @@ with lib; # ... or at least apply some hardening to it boot.kernel.sysctl."net.core.bpf_jit_harden" = mkDefault true; + + # A recurring problem with user namespaces is that there are + # still code paths where the kernel's permission checking logic + # fails to account for namespacing, instead permitting a + # namespaced process to act outside the namespace with the + # same privileges as it would have inside it. This is particularly + # bad in the common case of running as root within the namespace. + # + # Setting the number of allowed user namespaces to 0 effectively disables + # the feature at runtime. Attempting to create a user namespace + # with unshare will then fail with "no space left on device". + boot.kernel.sysctl."user.max_user_namespaces" = mkDefault 0; + + # Raise ASLR entropy for 64bit & 32bit, respectively. + # + # Note: mmap_rnd_compat_bits may not exist on 64bit. + boot.kernel.sysctl."vm.mmap_rnd_bits" = mkDefault 32; + boot.kernel.sysctl."vm.mmap_rnd_compat_bits" = mkDefault 16; + + # Allowing users to mmap() memory starting at virtual address 0 can turn a + # NULL dereference bug in the kernel into code execution with elevated + # privilege. Mitigate by enforcing a minimum base addr beyond the NULL memory + # space. This breaks applications that require mapping the 0 page, such as + # dosemu or running 16bit applications under wine. It also breaks older + # versions of qemu. + # + # The value is taken from the KSPP recommendations (Debian uses 4096). + boot.kernel.sysctl."vm.mmap_min_addr" = mkDefault 65536; } diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix index a24fa75e01d..506a6ee3eaa 100644 --- a/nixos/modules/profiles/installation-device.nix +++ b/nixos/modules/profiles/installation-device.nix @@ -28,7 +28,7 @@ with lib; services.nixosManual.showManual = true; # Let the user play Rogue on TTY 8 during the installation. - services.rogue.enable = true; + #services.rogue.enable = true; # Disable some other stuff we don't need. security.sudo.enable = false; @@ -77,7 +77,6 @@ with lib; # Show all debug messages from the kernel but don't log refused packets # because we have the firewall enabled. This makes installs from the # console less cumbersome if the machine has a public IP. - boot.consoleLogLevel = mkDefault 7; networking.firewall.logRefusedConnections = mkDefault false; environment.systemPackages = [ pkgs.vim ]; diff --git a/nixos/modules/programs/bcc.nix b/nixos/modules/programs/bcc.nix new file mode 100644 index 00000000000..3522ab22fa8 --- /dev/null +++ b/nixos/modules/programs/bcc.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: +{ + options.programs.bcc.enable = lib.mkEnableOption "bcc"; + + config = lib.mkIf config.programs.bcc.enable { + environment.systemPackages = [ config.boot.kernelPackages.bcc ]; + boot.extraModulePackages = [ config.boot.kernelPackages.bcc ]; + }; +} diff --git a/nixos/modules/programs/browserpass.nix b/nixos/modules/programs/browserpass.nix new file mode 100644 index 00000000000..a073c7e66eb --- /dev/null +++ b/nixos/modules/programs/browserpass.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + options = { + programs.browserpass.enable = mkEnableOption "the NativeMessaging configuration for Chromium, Chrome, and Vivaldi."; + }; + + ###### implementation + config = mkIf config.programs.browserpass.enable { + environment.systemPackages = [ pkgs.browserpass ]; + environment.etc = { + "chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-host.json"; + "chromium/policies/managed/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-policy.json"; + "opt/chrome/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-host.json"; + "opt/chrome/policies/managed/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-policy.json"; + }; + }; +} diff --git a/nixos/modules/programs/command-not-found/command-not-found.nix b/nixos/modules/programs/command-not-found/command-not-found.nix index 6fb926fe1d5..bbe7165c62f 100644 --- a/nixos/modules/programs/command-not-found/command-not-found.nix +++ b/nixos/modules/programs/command-not-found/command-not-found.nix @@ -25,7 +25,14 @@ in { options.programs.command-not-found = { - enable = mkEnableOption "command-not-found hook for interactive shell"; + enable = mkOption { + type = types.bool; + default = true; + description = '' + Whether interactive shells should show which Nix package (if + any) provides a missing command. + ''; + }; dbPath = mkOption { default = "/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite" ; @@ -44,7 +51,7 @@ in '' # This function is called whenever a command is not found. command_not_found_handle() { - local p=${commandNotFound} + local p=${commandNotFound}/bin/command-not-found if [ -x $p -a -f ${cfg.dbPath} ]; then # Run the helper program. $p "$@" @@ -65,7 +72,7 @@ in '' # This function is called whenever a command is not found. command_not_found_handler() { - local p=${commandNotFound} + local p=${commandNotFound}/bin/command-not-found if [ -x $p -a -f ${cfg.dbPath} ]; then # Run the helper program. $p "$@" diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix index a1615c920c0..401d152941a 100644 --- a/nixos/modules/programs/environment.nix +++ b/nixos/modules/programs/environment.nix @@ -20,6 +20,7 @@ in { NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix"; PAGER = mkDefault "less -R"; EDITOR = mkDefault "nano"; + XCURSOR_PATH = [ "$HOME/.icons" ]; }; environment.profiles = @@ -30,10 +31,9 @@ in # TODO: move most of these elsewhere environment.profileRelativeEnvVars = - { PATH = [ "/bin" "/sbin" "/lib/kde4/libexec" ]; + { PATH = [ "/bin" ]; INFOPATH = [ "/info" "/share/info" ]; PKG_CONFIG_PATH = [ "/lib/pkgconfig" ]; - TERMINFO_DIRS = [ "/share/terminfo" ]; PERL5LIB = [ "/lib/perl5/site_perl" ]; KDEDIRS = [ "" ]; STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ]; @@ -42,15 +42,13 @@ in GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ]; XDG_CONFIG_DIRS = [ "/etc/xdg" ]; XDG_DATA_DIRS = [ "/share" ]; + XCURSOR_PATH = [ "/share/icons" ]; MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ]; LIBEXEC_PATH = [ "/lib/libexec" ]; }; environment.extraInit = '' - # reset TERM with new TERMINFO available (if any) - export TERM=$TERM - unset ASPELL_CONF for i in ${concatStringsSep " " (reverseList cfg.profiles)} ; do if [ -d "$i/lib/aspell" ]; then diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix index a99c98e166d..c8d94a47be2 100644 --- a/nixos/modules/programs/fish.nix +++ b/nixos/modules/programs/fish.nix @@ -27,6 +27,30 @@ in ''; type = types.bool; }; + + vendor.config.enable = mkOption { + type = types.bool; + default = true; + description = '' + Whether fish should source configuration snippets provided by other packages. + ''; + }; + + vendor.completions.enable = mkOption { + type = types.bool; + default = true; + description = '' + Whether fish should use completion files provided by other packages. + ''; + }; + + vendor.functions.enable = mkOption { + type = types.bool; + default = true; + description = '' + Whether fish should autoload fish functions provided by other packages. + ''; + }; shellAliases = mkOption { default = config.environment.shellAliases; @@ -79,31 +103,74 @@ in environment.etc."fish/foreign-env/loginShellInit".text = cfge.loginShellInit; environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit; + environment.etc."fish/nixos-env-preinit.fish".text = '' + # This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently + # unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish + set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $__fish_datadir/functions + + # source the NixOS environment config + fenv source ${config.system.build.setEnvironment} + + # clear fish_function_path so that it will be correctly set when we return to $__fish_datadir/config.fish + set -e fish_function_path + ''; + environment.etc."fish/config.fish".text = '' # /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically. - set fish_function_path $fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions + # if we haven't sourced the general config, do it + if not set -q __fish_nixos_general_config_sourced + set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path + fenv source /etc/fish/foreign-env/shellInit > /dev/null + set -e fish_function_path[1] + + ${cfg.shellInit} - fenv source ${config.system.build.setEnvironment} > /dev/null ^&1 - fenv source /etc/fish/foreign-env/shellInit > /dev/null - - ${cfg.shellInit} - - if status --is-login - fenv source /etc/fish/foreign-env/loginShellInit > /dev/null - ${cfg.loginShellInit} + # and leave a note so we don't source this config section again from + # this very shell (children will source the general config anew) + set -g __fish_nixos_general_config_sourced 1 end - if status --is-interactive + # if we haven't sourced the login config, do it + status --is-login; and not set -q __fish_nixos_login_config_sourced + and begin + set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path + fenv source /etc/fish/foreign-env/loginShellInit > /dev/null + set -e fish_function_path[1] + + ${cfg.loginShellInit} + + # and leave a note so we don't source this config section again from + # this very shell (children will source the general config anew) + set -g __fish_nixos_login_config_sourced 1 + end + + # if we haven't sourced the interactive config, do it + status --is-interactive; and not set -q __fish_nixos_interactive_config_sourced + and begin ${fishAliases} + + + set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path fenv source /etc/fish/foreign-env/interactiveShellInit > /dev/null + set -e fish_function_path[1] + + ${cfg.promptInit} ${cfg.interactiveShellInit} + + # and leave a note so we don't source this config section again from + # this very shell (children will source the general config anew, + # allowing configuration changes in, e.g, aliases, to propagate) + set -g __fish_nixos_interactive_config_sourced 1 end ''; # include programs that bring their own completions - environment.pathsToLink = [ "/share/fish/vendor_completions.d" ]; - + environment.pathsToLink = [] + ++ optional cfg.vendor.config.enable "/share/fish/vendor_conf.d" + ++ optional cfg.vendor.completions.enable "/share/fish/vendor_completions.d" + ++ optional cfg.vendor.functions.enable "/share/fish/vendor_functions.d"; + environment.systemPackages = [ pkgs.fish ]; environment.shells = [ diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix new file mode 100644 index 00000000000..addc9dcca87 --- /dev/null +++ b/nixos/modules/programs/gnupg.nix @@ -0,0 +1,101 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.programs.gnupg; + +in + +{ + + options.programs.gnupg = { + agent.enable = mkOption { + type = types.bool; + default = false; + description = '' + Enables GnuPG agent with socket-activation for every user session. + ''; + }; + + agent.enableSSHSupport = mkOption { + type = types.bool; + default = false; + description = '' + Enable SSH agent support in GnuPG agent. Also sets SSH_AUTH_SOCK + environment variable correctly. This will disable socket-activation + and thus always start a GnuPG agent per user session. + ''; + }; + + agent.enableExtraSocket = mkOption { + type = types.bool; + default = false; + description = '' + Enable extra socket for GnuPG agent. + ''; + }; + + agent.enableBrowserSocket = mkOption { + type = types.bool; + default = false; + description = '' + Enable browser socket for GnuPG agent. + ''; + }; + + dirmngr.enable = mkOption { + type = types.bool; + default = false; + description = '' + Enables GnuPG network certificate management daemon with socket-activation for every user session. + ''; + }; + }; + + config = mkIf cfg.agent.enable { + systemd.user.sockets.gpg-agent = { + wantedBy = [ "sockets.target" ]; + }; + + systemd.user.sockets.gpg-agent-ssh = mkIf cfg.agent.enableSSHSupport { + wantedBy = [ "sockets.target" ]; + }; + + systemd.user.sockets.gpg-agent-extra = mkIf cfg.agent.enableExtraSocket { + wantedBy = [ "sockets.target" ]; + }; + + systemd.user.sockets.gpg-agent-browser = mkIf cfg.agent.enableBrowserSocket { + wantedBy = [ "sockets.target" ]; + }; + + systemd.user.sockets.dirmngr = mkIf cfg.dirmngr.enable { + wantedBy = [ "sockets.target" ]; + }; + + systemd.packages = [ pkgs.gnupg ]; + + environment.extraInit = '' + # Bind gpg-agent to this TTY if gpg commands are used. + export GPG_TTY=$(tty) + + '' + (optionalString cfg.agent.enableSSHSupport '' + # SSH agent protocol doesn't support changing TTYs, so bind the agent + # to every new TTY. + ${pkgs.gnupg}/bin/gpg-connect-agent --quiet updatestartuptty /bye > /dev/null + + if [ -z "$SSH_AUTH_SOCK" ]; then + export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket) + fi + ''); + + assertions = [ + { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent; + message = "You can't use ssh-agent and GnuPG agent with SSH support enabled at the same time!"; + } + ]; + }; + +} diff --git a/nixos/modules/programs/mtr.nix b/nixos/modules/programs/mtr.nix index 927fe68be87..1fdec4c04f6 100644 --- a/nixos/modules/programs/mtr.nix +++ b/nixos/modules/programs/mtr.nix @@ -19,8 +19,9 @@ in { }; config = mkIf cfg.enable { - security.wrappers.mtr = { - source = "${pkgs.mtr}/bin/mtr"; + environment.systemPackages = with pkgs; [ mtr ]; + security.wrappers.mtr-packet = { + source = "${pkgs.mtr}/bin/mtr-packet"; capabilities = "cap_net_raw+p"; }; }; diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix new file mode 100644 index 00000000000..7ef172355c1 --- /dev/null +++ b/nixos/modules/programs/npm.nix @@ -0,0 +1,44 @@ +{ config, lib, ... }: + +with lib; + +let + cfg = config.programs.npm; +in + +{ + ###### interface + + options = { + programs.npm = { + enable = mkEnableOption "npm global config"; + + npmrc = lib.mkOption { + type = lib.types.lines; + description = '' + The system-wide npm configuration. + See . + ''; + default = '' + prefix = ''${HOME}/.npm + ''; + example = '' + prefix = ''${HOME}/.npm + https-proxy=proxy.example.com + init-license=MIT + init-author-url=http://npmjs.org + color=true + ''; + }; + }; + }; + + ###### implementation + + config = lib.mkIf cfg.enable { + environment.etc."npmrc".text = cfg.npmrc; + + environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc"; + }; + +} diff --git a/nixos/modules/programs/nylas-mail.nix b/nixos/modules/programs/nylas-mail.nix new file mode 100644 index 00000000000..9a6cf755f2a --- /dev/null +++ b/nixos/modules/programs/nylas-mail.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.nylas-mail; + defaultUser = "nylas-mail"; +in { + ###### interface + options = { + services.nylas-mail = { + + enable = mkEnableOption '' + nylas-mail - Open-source mail client built on the modern web with Electron, React, and Flux + ''; + + gnome3-keyring = mkOption { + type = types.bool; + default = true; + description = "Enable gnome3 keyring for nylas-mail."; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.nylas-mail-bin ]; + + services.gnome3.gnome-keyring = mkIf cfg.gnome3-keyring { + enable = true; + }; + + }; +} diff --git a/nixos/modules/programs/oblogout.nix b/nixos/modules/programs/oblogout.nix index 79a8ddb7ce3..720c29b1eae 100644 --- a/nixos/modules/programs/oblogout.nix +++ b/nixos/modules/programs/oblogout.nix @@ -27,6 +27,7 @@ in type = types.int; default = 70; description = '' + Opacity percentage of Cairo rendered backgrounds. ''; }; @@ -34,6 +35,7 @@ in type = types.str; default = "black"; description = '' + Colour name or hex code (#ffffff) of the background color. ''; }; @@ -41,6 +43,9 @@ in type = types.str; default = "simplistic"; description = '' + Icon theme for the buttons, must be in the themes folder of + the package, or in + ~/.themes/<name>/oblogout/. ''; }; @@ -48,6 +53,7 @@ in type = types.str; default = "cancel, logout, restart, shutdown, suspend, hibernate"; description = '' + List and order of buttons to show. ''; }; @@ -55,6 +61,7 @@ in type = types.str; default = "Escape"; description = '' + Cancel logout/shutdown shortcut. ''; }; @@ -62,6 +69,7 @@ in type = types.str; default = "S"; description = '' + Shutdown shortcut. ''; }; @@ -69,6 +77,7 @@ in type = types.str; default = "R"; description = '' + Restart shortcut. ''; }; @@ -76,6 +85,7 @@ in type = types.str; default = "U"; description = '' + Suspend shortcut. ''; }; @@ -83,6 +93,7 @@ in type = types.str; default = "L"; description = '' + Logout shortcut. ''; }; @@ -90,6 +101,7 @@ in type = types.str; default = "K"; description = '' + Lock session shortcut. ''; }; @@ -97,6 +109,7 @@ in type = types.str; default = "H"; description = '' + Hibernate shortcut. ''; }; @@ -104,6 +117,7 @@ in type = types.str; default = "openbox --exit"; description = '' + Command to logout. ''; }; @@ -111,6 +125,7 @@ in type = types.str; default = ""; description = '' + Command to lock screen. ''; }; @@ -118,6 +133,7 @@ in type = types.str; default = ""; description = '' + Command to switch user. ''; }; }; diff --git a/nixos/modules/programs/qt5ct.nix b/nixos/modules/programs/qt5ct.nix new file mode 100644 index 00000000000..aeb7fc50849 --- /dev/null +++ b/nixos/modules/programs/qt5ct.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + meta.maintainers = [ maintainers.romildo ]; + + ###### interface + options = { + programs.qt5ct = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + Whether to enable the Qt5 Configuration Tool (qt5ct), a + program that allows users to configure Qt5 settings (theme, + font, icons, etc.) under desktop environments or window + manager without Qt integration. + + Official home page: https://sourceforge.net/projects/qt5ct/ + ''; + }; + }; + }; + + ###### implementation + config = mkIf config.programs.qt5ct.enable { + environment.variables.QT_QPA_PLATFORMTHEME = "qt5ct"; + environment.systemPackages = with pkgs; [ qt5ct libsForQt5.qtstyleplugins ]; + }; +} diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index 5f4d4dc9475..0935bf0cae7 100644 --- a/nixos/modules/programs/ssh.nix +++ b/nixos/modules/programs/ssh.nix @@ -20,11 +20,11 @@ let knownHosts = map (h: getAttr h cfg.knownHosts) (attrNames cfg.knownHosts); - knownHostsText = flip (concatMapStringsSep "\n") knownHosts + knownHostsText = (flip (concatMapStringsSep "\n") knownHosts (h: assert h.hostNames != []; concatStringsSep "," h.hostNames + " " + (if h.publicKey != null then h.publicKey else readFile h.publicKeyFile) - ); + )) + "\n"; in { @@ -74,7 +74,7 @@ in startAgent = mkOption { type = types.bool; - default = true; + default = false; description = '' Whether to start the OpenSSH agent when you log in. The OpenSSH agent remembers private keys for you so that you don't have to type in @@ -148,11 +148,11 @@ in [ { hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ]; - publicKeyFile = "./pubkeys/myhost_ssh_host_dsa_key.pub"; + publicKeyFile = ./pubkeys/myhost_ssh_host_dsa_key.pub; } { hostNames = [ "myhost2" ]; - publicKeyFile = "./pubkeys/myhost2_ssh_host_dsa_key.pub"; + publicKeyFile = ./pubkeys/myhost2_ssh_host_dsa_key.pub; } ] ''; @@ -199,9 +199,8 @@ in environment.etc."ssh/ssh_known_hosts".text = knownHostsText; # FIXME: this should really be socket-activated for über-awesomeness. - systemd.user.services.ssh-agent = - { enable = cfg.startAgent; - description = "SSH Agent"; + systemd.user.services.ssh-agent = mkIf cfg.startAgent + { description = "SSH Agent"; wantedBy = [ "default.target" ]; serviceConfig = { ExecStartPre = "${pkgs.coreutils}/bin/rm -f %t/ssh-agent"; diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix new file mode 100644 index 00000000000..2934fba96dd --- /dev/null +++ b/nixos/modules/programs/sway.nix @@ -0,0 +1,68 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.programs.sway; + sway = pkgs.sway; + + swayWrapped = pkgs.writeScriptBin "sway" '' + #! ${pkgs.stdenv.shell} + ${cfg.extraSessionCommands} + PATH="${sway}/bin:$PATH" + exec ${pkgs.dbus.dbus-launch} --exit-with-session "${sway}/bin/sway" + ''; + swayJoined = pkgs.symlinkJoin { + name = "sway-wrapped"; + paths = [ swayWrapped sway ]; + }; +in +{ + options.programs.sway = { + enable = mkEnableOption "sway"; + + extraSessionCommands = mkOption { + default = ""; + type = types.lines; + example = '' + export XKB_DEFAULT_LAYOUT=us,de + export XKB_DEFAULT_VARIANT=,nodeadkeys + export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle, + ''; + description = '' + Shell commands executed just before sway is started. + ''; + }; + + extraPackages = mkOption { + type = with types; listOf package; + default = with pkgs; [ + i3status xwayland rxvt_unicode dmenu + ]; + example = literalExample '' + with pkgs; [ + i3status xwayland rxvt_unicode dmenu + ] + ''; + description = '' + Extra packages to be installed system wide. + ''; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages; + security.wrappers.sway = { + source = "${swayJoined}/bin/sway"; + capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip"; + owner = "root"; + group = "sway"; + permissions = "u+rx,g+rx"; + }; + + users.extraGroups.sway = {}; + + hardware.opengl.enable = mkDefault true; + fonts.enableDefaultFonts = mkDefault true; + }; +} diff --git a/nixos/modules/programs/sysdig.nix b/nixos/modules/programs/sysdig.nix new file mode 100644 index 00000000000..fbbf2906556 --- /dev/null +++ b/nixos/modules/programs/sysdig.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.sysdig; +in { + options.programs.sysdig.enable = mkEnableOption "sysdig"; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.sysdig ]; + boot.extraModulePackages = [ config.boot.kernelPackages.sysdig ]; + }; +} diff --git a/nixos/modules/programs/thefuck.nix b/nixos/modules/programs/thefuck.nix new file mode 100644 index 00000000000..eb913477cf0 --- /dev/null +++ b/nixos/modules/programs/thefuck.nix @@ -0,0 +1,39 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + prg = config.programs; + cfg = prg.thefuck; + + initScript = '' + eval $(${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias}) + ''; +in + { + options = { + programs.thefuck = { + enable = mkEnableOption "thefuck"; + + alias = mkOption { + default = "fuck"; + type = types.string; + + description = '' + `thefuck` needs an alias to be configured. + The default value is `fuck`, but you can use anything else as well. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ thefuck ]; + environment.shellInit = initScript; + + programs.zsh.shellInit = mkIf prg.zsh.enable initScript; + programs.fish.shellInit = mkIf prg.fish.enable '' + ${pkgs.thefuck}/bin/thefuck --alias | source + ''; + }; + } diff --git a/nixos/modules/programs/wvdial.nix b/nixos/modules/programs/wvdial.nix deleted file mode 100644 index 1ed929ed4af..00000000000 --- a/nixos/modules/programs/wvdial.nix +++ /dev/null @@ -1,71 +0,0 @@ -# Global configuration for wvdial. - -{ config, lib, pkgs, ... }: - -with lib; - -let - - configFile = '' - [Dialer Defaults] - PPPD PATH = ${pkgs.ppp}/sbin/pppd - ${config.environment.wvdial.dialerDefaults} - ''; - - cfg = config.environment.wvdial; - -in -{ - ###### interface - - options = { - - environment.wvdial = { - - dialerDefaults = mkOption { - default = ""; - type = types.str; - example = ''Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"''; - description = '' - Contents of the "Dialer Defaults" section of - /etc/wvdial.conf. - ''; - }; - - pppDefaults = mkOption { - default = '' - noipdefault - usepeerdns - defaultroute - persist - noauth - ''; - type = types.str; - description = "Default ppp settings for wvdial."; - }; - - }; - - }; - - ###### implementation - - config = mkIf (cfg.dialerDefaults != "") { - - environment = { - - etc = - [ - { source = pkgs.writeText "wvdial.conf" configFile; - target = "wvdial.conf"; - } - { source = pkgs.writeText "wvdial" cfg.pppDefaults; - target = "ppp/peers/wvdial"; - } - ]; - - }; - - }; - -} diff --git a/nixos/modules/programs/xonsh.nix b/nixos/modules/programs/xonsh.nix index c0be2d8884b..49cc4906e03 100644 --- a/nixos/modules/programs/xonsh.nix +++ b/nixos/modules/programs/xonsh.nix @@ -21,7 +21,7 @@ in enable = mkOption { default = false; description = '' - Whether to configure xnosh as an interactive shell. + Whether to configure xonsh as an interactive shell. ''; type = types.bool; }; diff --git a/nixos/modules/programs/zsh/oh-my-zsh.nix b/nixos/modules/programs/zsh/oh-my-zsh.nix index 335f596ca80..9077643c444 100644 --- a/nixos/modules/programs/zsh/oh-my-zsh.nix +++ b/nixos/modules/programs/zsh/oh-my-zsh.nix @@ -3,11 +3,11 @@ with lib; let - cfg = config.programs.zsh.oh-my-zsh; + cfg = config.programs.zsh.ohMyZsh; in { options = { - programs.zsh.oh-my-zsh = { + programs.zsh.ohMyZsh = { enable = mkOption { default = false; description = '' @@ -15,6 +15,16 @@ in ''; }; + package = mkOption { + default = pkgs.oh-my-zsh; + defaultText = "pkgs.oh-my-zsh"; + description = '' + Package to install for `oh-my-zsh` usage. + ''; + + type = types.package; + }; + plugins = mkOption { default = []; type = types.listOf(types.str); @@ -42,11 +52,15 @@ in }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ oh-my-zsh ]; - programs.zsh.interactiveShellInit = with pkgs; with builtins; '' + # Prevent zsh from overwriting oh-my-zsh's prompt + programs.zsh.promptInit = mkDefault ""; + + environment.systemPackages = [ cfg.package ]; + + programs.zsh.interactiveShellInit = with builtins; '' # oh-my-zsh configuration generated by NixOS - export ZSH=${oh-my-zsh}/share/oh-my-zsh + export ZSH=${cfg.package}/share/oh-my-zsh ${optionalString (length(cfg.plugins) > 0) "plugins=(${concatStringsSep " " cfg.plugins})" diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix new file mode 100644 index 00000000000..e7cf17c2c00 --- /dev/null +++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix @@ -0,0 +1,78 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.zsh.syntaxHighlighting; +in +{ + options = { + programs.zsh.syntaxHighlighting = { + enable = mkEnableOption "zsh-syntax-highlighting"; + + highlighters = mkOption { + default = [ "main" ]; + + # https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md + type = types.listOf(types.enum([ + "main" + "brackets" + "pattern" + "cursor" + "root" + "line" + ])); + + description = '' + Specifies the highlighters to be used by zsh-syntax-highlighting. + + The following defined options can be found here: + https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md + ''; + }; + + patterns = mkOption { + default = {}; + type = types.attrsOf types.string; + + example = literalExample '' + { + "rm -rf *" = "fg=white,bold,bg=red"; + } + ''; + + description = '' + Specifies custom patterns to be highlighted by zsh-syntax-highlighting. + + Please refer to the docs for more information about the usage: + https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/pattern.md + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ zsh-syntax-highlighting ]; + + assertions = [ + { + assertion = length(attrNames cfg.patterns) > 0 -> elem "pattern" cfg.highlighters; + message = '' + When highlighting patterns, "pattern" needs to be included in the list of highlighters. + ''; + } + ]; + + programs.zsh.interactiveShellInit = with pkgs; + lib.concatStringsSep "\n" ([ + "source ${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" + ] ++ optional (length(cfg.highlighters) > 0) + "ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})" + ++ optionals (length(attrNames cfg.patterns) > 0) + (mapAttrsToList ( + pattern: design: + "ZSH_HIGHLIGHT_PATTERNS+=('${pattern}' '${design}')" + ) cfg.patterns) + ); + }; +} diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix index a39c06c0913..615e54c326b 100644 --- a/nixos/modules/programs/zsh/zsh.nix +++ b/nixos/modules/programs/zsh/zsh.nix @@ -84,14 +84,6 @@ in type = types.bool; }; - enableSyntaxHighlighting = mkOption { - default = false; - description = '' - Enable zsh-syntax-highlighting - ''; - type = types.bool; - }; - enableAutosuggestions = mkOption { default = false; description = '' @@ -99,56 +91,12 @@ in ''; }; - }; }; config = mkIf cfg.enable { - programs.zsh = { - - shellInit = '' - . ${config.system.build.setEnvironment} - - ${cfge.shellInit} - ''; - - loginShellInit = cfge.loginShellInit; - - interactiveShellInit = '' - # history defaults - SAVEHIST=2000 - HISTSIZE=2000 - HISTFILE=$HOME/.zsh_history - - setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK - - # Tell zsh how to find installed completions - for p in ''${(z)NIX_PROFILES}; do - fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions) - done - - ${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""} - - ${optionalString (cfg.enableSyntaxHighlighting) - "source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" - } - - ${optionalString (cfg.enableAutosuggestions) - "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh" - } - - ${zshAliases} - ${cfg.promptInit} - - ${cfge.interactiveShellInit} - - HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help" - ''; - - }; - environment.etc."zshenv".text = '' # /etc/zshenv: DO NOT EDIT -- this file has been generated automatically. @@ -159,6 +107,10 @@ in if [ -n "$__ETC_ZSHENV_SOURCED" ]; then return; fi export __ETC_ZSHENV_SOURCED=1 + . ${config.system.build.setEnvironment} + + ${cfge.shellInit} + ${cfg.shellInit} # Read system-wide modifications. @@ -176,6 +128,8 @@ in if [ -n "$__ETC_ZPROFILE_SOURCED" ]; then return; fi __ETC_ZPROFILE_SOURCED=1 + ${cfge.loginShellInit} + ${cfg.loginShellInit} # Read system-wide modifications. @@ -195,8 +149,34 @@ in . /etc/zinputrc + # history defaults + SAVEHIST=2000 + HISTSIZE=2000 + HISTFILE=$HOME/.zsh_history + + setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK + + HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help" + + # Tell zsh how to find installed completions + for p in ''${(z)NIX_PROFILES}; do + fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions) + done + + ${optionalString cfg.enableCompletion "autoload -U compinit && compinit"} + + ${optionalString (cfg.enableAutosuggestions) + "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh" + } + + ${cfge.interactiveShellInit} + ${cfg.interactiveShellInit} + ${zshAliases} + + ${cfg.promptInit} + # Read system-wide modifications. if test -f /etc/zshrc.local; then . /etc/zshrc.local @@ -206,8 +186,7 @@ in environment.etc."zinputrc".source = ./zinputrc; environment.systemPackages = [ pkgs.zsh ] - ++ optional cfg.enableCompletion pkgs.nix-zsh-completions - ++ optional cfg.enableSyntaxHighlighting pkgs.zsh-syntax-highlighting; + ++ optional cfg.enableCompletion pkgs.nix-zsh-completions; environment.pathsToLink = optional cfg.enableCompletion "/share/zsh"; diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 0174fe544e3..f30cbe427f0 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib, pkgs, ... }: with lib; @@ -11,20 +11,30 @@ with lib; (mkRenamedOptionModule [ "fonts" "extraFonts" ] [ "fonts" "fonts" ]) (mkRenamedOptionModule [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ]) - (mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ]) + (mkRenamedOptionModule [ "networking" "enableRT73Firmware" ] [ "hardware" "enableRedistributableFirmware" ]) + (mkRenamedOptionModule [ "networking" "enableIntel3945ABGFirmware" ] [ "hardware" "enableRedistributableFirmware" ]) + (mkRenamedOptionModule [ "networking" "enableIntel2100BGFirmware" ] [ "hardware" "enableRedistributableFirmware" ]) + (mkRenamedOptionModule [ "networking" "enableRalinkFirmware" ] [ "hardware" "enableRedistributableFirmware" ]) + (mkRenamedOptionModule [ "networking" "enableRTL8192cFirmware" ] [ "hardware" "enableRedistributableFirmware" ]) (mkRenamedOptionModule [ "services" "cadvisor" "host" ] [ "services" "cadvisor" "listenAddress" ]) + (mkChangedOptionModule [ "services" "printing" "gutenprint" ] [ "services" "printing" "drivers" ] + (config: + let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config; + in if enabled then [ pkgs.gutenprint ] else [ ])) (mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ]) (mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ]) (mkRenamedOptionModule [ "services" "graphite" "web" "host" ] [ "services" "graphite" "web" "listenAddress" ]) - (mkRenamedOptionModule [ "services" "logstash" "address" ] [ "services" "logstash" "listenAddress" ]) + (mkRenamedOptionModule [ "services" "i2pd" "extIp" ] [ "services" "i2pd" "address" ]) (mkRenamedOptionModule [ "services" "kibana" "host" ] [ "services" "kibana" "listenAddress" ]) + (mkRenamedOptionModule [ "services" "logstash" "address" ] [ "services" "logstash" "listenAddress" ]) (mkRenamedOptionModule [ "services" "mpd" "network" "host" ] [ "services" "mpd" "network" "listenAddress" ]) (mkRenamedOptionModule [ "services" "neo4j" "host" ] [ "services" "neo4j" "listenAddress" ]) (mkRenamedOptionModule [ "services" "shout" "host" ] [ "services" "shout" "listenAddress" ]) (mkRenamedOptionModule [ "services" "sslh" "host" ] [ "services" "sslh" "listenAddress" ]) (mkRenamedOptionModule [ "services" "statsd" "host" ] [ "services" "statsd" "listenAddress" ]) (mkRenamedOptionModule [ "services" "subsonic" "host" ] [ "services" "subsonic" "listenAddress" ]) + (mkRenamedOptionModule [ "services" "tor" "relay" "portSpec" ] [ "services" "tor" "relay" "port" ]) (mkRenamedOptionModule [ "jobs" ] [ "systemd" "services" ]) (mkRenamedOptionModule [ "services" "gitlab" "stateDir" ] [ "services" "gitlab" "statePath" ]) @@ -102,6 +112,9 @@ with lib; (mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ]) + # opendkim + (mkRenamedOptionModule [ "services" "opendkim" "keyFile" ] [ "services" "opendkim" "keyPath" ]) + # XBMC (mkRenamedOptionModule [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]) (mkRenamedOptionModule [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]) @@ -118,26 +131,6 @@ with lib; (mkRenamedOptionModule [ "services" "iodined" "extraConfig" ] [ "services" "iodine" "server" "extraConfig" ]) (mkRemovedOptionModule [ "services" "iodined" "client" ] "") - # Grsecurity - (mkRemovedOptionModule [ "security" "grsecurity" "kernelPatch" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "mode" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "priority" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "system" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "virtualisationConfig" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "hardwareVirtualisation" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "virtualisationSoftware" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "sysctl" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "denyChrootChmod" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "denyChrootCaps" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "denyUSB" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "restrictProc" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "restrictProcWithGroup" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "unrestrictProcGid" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "disableRBAC" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "disableSimultConnect" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "verboseVersion" ] "") - (mkRemovedOptionModule [ "security" "grsecurity" "config" "kernelExtraConfig" ] "") - # Unity3D (mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ]) @@ -195,6 +188,8 @@ with lib; (mkRemovedOptionModule [ "services" "openvpn" "enable" ] "") (mkRemovedOptionModule [ "services" "printing" "cupsFilesConf" ] "") (mkRemovedOptionModule [ "services" "printing" "cupsdConf" ] "") + (mkRemovedOptionModule [ "services" "tor" "relay" "isBridge" ] "Use services.tor.relay.role instead.") + (mkRemovedOptionModule [ "services" "tor" "relay" "isExit" ] "Use services.tor.relay.role instead.") (mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ] "See the 16.09 release notes for more information.") (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ] "") @@ -204,5 +199,15 @@ with lib; "Set the option `services.xserver.displayManager.sddm.package' instead.") (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "") + + # ZSH + (mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ]) + (mkRenamedOptionModule [ "programs" "zsh" "syntax-highlighting" "enable" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ]) + (mkRenamedOptionModule [ "programs" "zsh" "syntax-highlighting" "highlighters" ] [ "programs" "zsh" "syntaxHighlighting" "highlighters" ]) + (mkRenamedOptionModule [ "programs" "zsh" "syntax-highlighting" "patterns" ] [ "programs" "zsh" "syntaxHighlighting" "patterns" ]) + (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "enable" ] [ "programs" "zsh" "ohMyZsh" "enable" ]) + (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "theme" ] [ "programs" "zsh" "ohMyZsh" "theme" ]) + (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "custom" ] [ "programs" "zsh" "ohMyZsh" "custom" ]) + (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "plugins" ] [ "programs" "zsh" "ohMyZsh" "plugins" ]) ]; } diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index 5301ac14805..fb011019f7f 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -13,7 +13,7 @@ let description = '' Where the webroot of the HTTP vhost is located. .well-known/acme-challenge/ directory - will be created automatically if it doesn't exist. + will be created below the webroot if it doesn't exist. http://example.org/.well-known/acme-challenge/ must also be available (notice unencrypted HTTP). ''; @@ -46,7 +46,10 @@ let allowKeysForGroup = mkOption { type = types.bool; default = false; - description = "Give read permissions to the specified group to read SSL private certificates."; + description = '' + Give read permissions to the specified group + () to read SSL private certificates. + ''; }; postRun = mkOption { @@ -65,21 +68,24 @@ let "cert.der" "cert.pem" "chain.pem" "external.sh" "fullchain.pem" "full.pem" "key.der" "key.pem" "account_key.json" ]); - default = [ "fullchain.pem" "key.pem" "account_key.json" ]; + default = [ "fullchain.pem" "full.pem" "key.pem" "account_key.json" ]; description = '' Plugins to enable. With default settings simp_le will - store public certificate bundle in fullchain.pem - and private key in key.pem in its state directory. + store public certificate bundle in fullchain.pem, + private key in key.pem and those two previous + files combined in full.pem in its state directory. ''; }; extraDomains = mkOption { type = types.attrsOf (types.nullOr types.str); default = {}; - example = { - "example.org" = "/srv/http/nginx"; - "mydomain.org" = null; - }; + example = literalExample '' + { + "example.org" = "/srv/http/nginx"; + "mydomain.org" = null; + } + ''; description = '' Extra domain names for which certificates are to be issued, with their own server roots if needed. @@ -133,23 +139,39 @@ in ''; }; + production = mkOption { + type = types.bool; + default = true; + description = '' + If set to true, use Let's Encrypt's production environment + instead of the staging environment. The main benefit of the + staging environment is to get much higher rate limits. + + See + https://letsencrypt.org/docs/staging-environment + for more detail. + ''; + }; + certs = mkOption { default = { }; type = with types; attrsOf (submodule certOpts); description = '' Attribute set of certificates to get signed and renewed. ''; - example = { - "example.com" = { - webroot = "/var/www/challenges/"; - email = "foo@example.com"; - extraDomains = { "www.example.com" = null; "foo.example.com" = "/var/www/foo/"; }; - }; - "bar.example.com" = { - webroot = "/var/www/challenges/"; - email = "bar@example.com"; - }; - }; + example = literalExample '' + { + "example.com" = { + webroot = "/var/www/challenges/"; + email = "foo@example.com"; + extraDomains = { "www.example.com" = null; "foo.example.com" = "/var/www/foo/"; }; + }; + "bar.example.com" = { + webroot = "/var/www/challenges/"; + email = "bar@example.com"; + }; + } + ''; }; }; }; @@ -169,7 +191,9 @@ in cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ] ++ optionals (data.email != null) [ "--email" data.email ] ++ concatMap (p: [ "-f" p ]) data.plugins - ++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains); + ++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains) + ++ (if cfg.production then [] + else ["--server" "https://acme-staging.api.letsencrypt.org/directory"]); acmeService = { description = "Renew ACME Certificate for ${cert}"; after = [ "network.target" "network-online.target" ]; @@ -185,12 +209,15 @@ in path = [ pkgs.simp_le ]; preStart = '' mkdir -p '${cfg.directory}' - chown -R '${data.user}:${data.group}' '${cfg.directory}' + chown 'root:root' '${cfg.directory}' + chmod 755 '${cfg.directory}' if [ ! -d '${cpath}' ]; then mkdir '${cpath}' fi chmod ${rights} '${cpath}' chown -R '${data.user}:${data.group}' '${cpath}' + mkdir -p '${data.webroot}/.well-known/acme-challenge' + chown -R '${data.user}:${data.group}' '${data.webroot}/.well-known/acme-challenge' ''; script = '' cd '${cpath}' @@ -235,6 +262,9 @@ in mv $workdir/server.key ${cpath}/key.pem mv $workdir/server.crt ${cpath}/fullchain.pem + # Create full.pem for e.g. lighttpd (same format as "simp_le ... -f full.pem" creates) + cat "${cpath}/key.pem" "${cpath}/fullchain.pem" > "${cpath}/full.pem" + # Clean up working directory rm $workdir/server.csr rm $workdir/server.pass.key @@ -244,6 +274,8 @@ in chown '${data.user}:${data.group}' '${cpath}/key.pem' chmod ${rights} '${cpath}/fullchain.pem' chown '${data.user}:${data.group}' '${cpath}/fullchain.pem' + chmod ${rights} '${cpath}/full.pem' + chown '${data.user}:${data.group}' '${cpath}/full.pem' ''; serviceConfig = { Type = "oneshot"; @@ -272,15 +304,14 @@ in ) ); servicesAttr = listToAttrs services; - nginxAttr = { - nginx = { - after = [ "acme-selfsigned-certificates.target" ]; - wants = [ "acme-selfsigned-certificates.target" "acme-certificates.target" ]; - }; + injectServiceDep = { + after = [ "acme-selfsigned-certificates.target" ]; + wants = [ "acme-selfsigned-certificates.target" "acme-certificates.target" ]; }; in servicesAttr // - (if config.services.nginx.enable then nginxAttr else {}); + (if config.services.nginx.enable then { nginx = injectServiceDep; } else {}) // + (if config.services.lighttpd.enable then { lighttpd = injectServiceDep; } else {}); systemd.timers = flip mapAttrs' cfg.certs (cert: data: nameValuePair ("acme-${cert}") diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml index 823806f4641..6130ed82ed3 100644 --- a/nixos/modules/security/acme.xml +++ b/nixos/modules/security/acme.xml @@ -89,8 +89,5 @@ services.nginx = { }; } - -At the moment you still have to restart Nginx after the ACME -certs arrive.
diff --git a/nixos/modules/security/auditd.nix b/nixos/modules/security/auditd.nix new file mode 100644 index 00000000000..6abac244dac --- /dev/null +++ b/nixos/modules/security/auditd.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + options.security.auditd.enable = mkEnableOption "the Linux Audit daemon"; + + config = mkIf config.security.auditd.enable { + systemd.services.auditd = { + description = "Linux Audit daemon"; + wantedBy = [ "basic.target" ]; + + unitConfig = { + ConditionVirtualization = "!container"; + ConditionSecurity = [ "audit" ]; + DefaultDependencies = false; + }; + + path = [ pkgs.audit ]; + + serviceConfig = { + ExecStartPre="${pkgs.coreutils}/bin/mkdir -p /var/log/audit"; + ExecStart = "${pkgs.audit}/bin/auditd -l -n -s nochange"; + }; + }; + }; +} diff --git a/nixos/modules/security/chromium-suid-sandbox.nix b/nixos/modules/security/chromium-suid-sandbox.nix index 0458ffb6c46..be6acb3f1f5 100644 --- a/nixos/modules/security/chromium-suid-sandbox.nix +++ b/nixos/modules/security/chromium-suid-sandbox.nix @@ -19,9 +19,6 @@ in Also, if the URL chrome://sandbox tells you that "You are not adequately sandboxed!", turning this on might resolve the issue. - - Finally, if you have enabled and you - use Chromium, you probably need this. ''; }; diff --git a/nixos/modules/security/grsecurity.nix b/nixos/modules/security/grsecurity.nix deleted file mode 100644 index 657b059faf2..00000000000 --- a/nixos/modules/security/grsecurity.nix +++ /dev/null @@ -1,169 +0,0 @@ -{ config, pkgs, lib, ... }: - -with lib; - -let - cfg = config.security.grsecurity; - grsecLockPath = "/proc/sys/kernel/grsecurity/grsec_lock"; - - # Ascertain whether NixOS container support is required - containerSupportRequired = - config.boot.enableContainers && config.containers != {}; -in - -{ - meta = { - maintainers = with maintainers; [ joachifm ]; - doc = ./grsecurity.xml; - }; - - options.security.grsecurity = { - - enable = mkOption { - type = types.bool; - default = false; - description = '' - Enable grsecurity/PaX. - ''; - }; - - lockTunables = mkOption { - type = types.bool; - default = true; - description = '' - Whether to automatically lock grsecurity tunables - (). Disable - this to allow runtime configuration of grsecurity features. Activate - the grsec-lock service unit to prevent further - configuration until the next reboot. - ''; - }; - - disableEfiRuntimeServices = mkOption { - type = types.bool; - default = true; - description = '' - Whether to disable access to EFI runtime services. Enabling EFI runtime - services creates a venue for code injection attacks on the kernel and - should be disabled if at all possible. Changing this option enters into - effect upon reboot. - ''; - }; - - }; - - config = mkIf cfg.enable { - - boot.kernelPackages = mkForce pkgs.linuxPackages_grsec_nixos; - - boot.kernelParams = [ "grsec_sysfs_restrict=0" ] - ++ optional cfg.disableEfiRuntimeServices "noefi"; - - nixpkgs.config.grsecurity = true; - - # Install PaX related utillities into the system profile. - environment.systemPackages = with pkgs; [ gradm paxctl pax-utils ]; - - # Install rules for the grsec device node - services.udev.packages = [ pkgs.gradm ]; - - # This service unit is responsible for locking the grsecurity tunables. The - # unit is always defined, but only activated on bootup if lockTunables is - # toggled. When lockTunables is toggled, failure to activate the unit will - # enter emergency mode. The intent is to make it difficult to silently - # enter multi-user mode without having locked the tunables. Some effort is - # made to ensure that starting the unit is an idempotent operation. - systemd.services.grsec-lock = { - description = "Lock grsecurity tunables"; - - wantedBy = optional cfg.lockTunables "multi-user.target"; - - wants = [ "local-fs.target" "systemd-sysctl.service" ]; - after = [ "local-fs.target" "systemd-sysctl.service" ]; - conflicts = [ "shutdown.target" ]; - - restartIfChanged = false; - - script = '' - if ${pkgs.gnugrep}/bin/grep -Fq 0 ${grsecLockPath} ; then - echo -n 1 > ${grsecLockPath} - fi - ''; - - unitConfig = { - ConditionPathIsReadWrite = grsecLockPath; - DefaultDependencies = false; - } // optionalAttrs cfg.lockTunables { - OnFailure = "emergency.target"; - }; - - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - }; - - # Configure system tunables - boot.kernel.sysctl = { - # Read-only under grsecurity - "kernel.kptr_restrict" = mkForce null; - - # All grsec tunables default to off, those not enabled below are - # *disabled*. We use mkDefault to allow expert users to override - # our choices, but use mkForce where tunables would outright - # conflict with other settings. - - # Enable all chroot restrictions by default (overwritten as - # necessary below) - "kernel.grsecurity.chroot_caps" = mkDefault 1; - "kernel.grsecurity.chroot_deny_bad_rename" = mkDefault 1; - "kernel.grsecurity.chroot_deny_chmod" = mkDefault 1; - "kernel.grsecurity.chroot_deny_chroot" = mkDefault 1; - "kernel.grsecurity.chroot_deny_fchdir" = mkDefault 1; - "kernel.grsecurity.chroot_deny_mknod" = mkDefault 1; - "kernel.grsecurity.chroot_deny_mount" = mkDefault 1; - "kernel.grsecurity.chroot_deny_pivot" = mkDefault 1; - "kernel.grsecurity.chroot_deny_shmat" = mkDefault 1; - "kernel.grsecurity.chroot_deny_sysctl" = mkDefault 1; - "kernel.grsecurity.chroot_deny_unix" = mkDefault 1; - "kernel.grsecurity.chroot_enforce_chdir" = mkDefault 1; - "kernel.grsecurity.chroot_findtask" = mkDefault 1; - "kernel.grsecurity.chroot_restrict_nice" = mkDefault 1; - - # Enable various grsec protections - "kernel.grsecurity.consistent_setxid" = mkDefault 1; - "kernel.grsecurity.deter_bruteforce" = mkDefault 1; - "kernel.grsecurity.fifo_restrictions" = mkDefault 1; - "kernel.grsecurity.harden_ipc" = mkDefault 1; - "kernel.grsecurity.harden_ptrace" = mkDefault 1; - "kernel.grsecurity.harden_tty" = mkDefault 1; - "kernel.grsecurity.ip_blackhole" = mkDefault 1; - "kernel.grsecurity.linking_restrictions" = mkDefault 1; - "kernel.grsecurity.ptrace_readexec" = mkDefault 1; - - # Enable auditing - "kernel.grsecurity.audit_ptrace" = mkDefault 1; - "kernel.grsecurity.forkfail_logging" = mkDefault 1; - "kernel.grsecurity.rwxmap_logging" = mkDefault 1; - "kernel.grsecurity.signal_logging" = mkDefault 1; - "kernel.grsecurity.timechange_logging" = mkDefault 1; - } // optionalAttrs config.nix.useSandbox { - # chroot(2) restrictions that conflict with sandboxed Nix builds - "kernel.grsecurity.chroot_caps" = mkForce 0; - "kernel.grsecurity.chroot_deny_chmod" = mkForce 0; - "kernel.grsecurity.chroot_deny_chroot" = mkForce 0; - "kernel.grsecurity.chroot_deny_mount" = mkForce 0; - "kernel.grsecurity.chroot_deny_pivot" = mkForce 0; - } // optionalAttrs containerSupportRequired { - # chroot(2) restrictions that conflict with NixOS lightweight containers - "kernel.grsecurity.chroot_caps" = mkForce 0; - "kernel.grsecurity.chroot_deny_chmod" = mkForce 0; - "kernel.grsecurity.chroot_deny_mount" = mkForce 0; - "kernel.grsecurity.chroot_restrict_nice" = mkForce 0; - # Disable privileged IO by default, unless X is enabled - } // optionalAttrs (!config.services.xserver.enable) { - "kernel.grsecurity.disable_priv_io" = mkDefault 1; - }; - - }; -} diff --git a/nixos/modules/security/grsecurity.xml b/nixos/modules/security/grsecurity.xml deleted file mode 100644 index 620e8f653f9..00000000000 --- a/nixos/modules/security/grsecurity.xml +++ /dev/null @@ -1,383 +0,0 @@ - - - Grsecurity/PaX - - - Grsecurity/PaX is a set of patches against the Linux kernel that - implements an extensive suite of - features - designed to increase the difficulty of exploiting kernel and - application bugs. - - - - The NixOS grsecurity/PaX module is designed with casual users in mind and is - intended to be compatible with normal desktop usage, without - unnecessarily compromising security. The - following sections describe the configuration and administration of - a grsecurity/PaX enabled NixOS system. For more comprehensive - coverage, please refer to the - grsecurity wikibook - and the - Arch - Linux wiki page on grsecurity. - - grsecurity/PaX is only available for the latest linux -stable - kernel; patches against older kernels are available from upstream only for - a fee. - We standardise on a desktop oriented configuration primarily due - to lack of resources. The grsecurity/PaX configuration state space is huge - and each configuration requires quite a bit of testing to ensure that the - resulting packages work as advertised. Defining additional package sets - would likely result in a large number of functionally broken packages, to - nobody's benefit. - - - Enabling grsecurity/PaX - - - To make use of grsecurity/PaX on NixOS, add the following to your - configuration.nix: - - security.grsecurity.enable = true; - - followed by - - # nixos-rebuild boot - # reboot - - - Enabling the grsecurity module overrides - , to reduce the risk of - misconfiguration. - describes how to use a custom kernel package set. - - - For most users, further configuration should be unnecessary. All users - are encouraged to look over before - using the system, however. If you experience problems, please refer to - . - - - - Once booted into the new system, you can optionally use - paxtest to exercise various PaX features: - - - - - - Declarative tuning - - - The default configuration mode is strictly declarative. Some features - simply cannot be changed at all after boot, while others are locked once the - system is up and running. Moreover, changes to the configuration enter - into effect only upon booting into the new system. - - - - The NixOS module exposes a limited number of options for tuning the behavior - of grsecurity/PaX. These are options thought to be of particular interest - to most users. For experts, further tuning is possible via - (see - ) and - (the wikibook - contains an - exhaustive listing of grsecurity sysctl tunables). - - - - - Manual tuning - - - To permit manual tuning of grsecurity runtime parameters, set: - - security.grsecurity.lockTunables = false; - - Once booted into this system, grsecurity features that have a corresponding - sysctl tunable can be changed without rebooting, either by switching into - a new system profile or via the sysctl utility. - - - - To lock all grsecurity tunables until the next boot, do: - - # systemctl start grsec-lock - - - - - - Security considerations - - - The NixOS kernel is built using upstream's recommended settings for a - desktop deployment that generally favours security over performance. This - section details deviations from upstream's recommendations that may - compromise security. - - There may be additional problems not covered here! - - - - - - - The following hardening features are disabled in the NixOS kernel: - - Kernel symbol hiding: rendered useless by redistributing - kernel objects. - - Randomization of kernel structures: rendered useless by - redistributing kernel objects. - - TCP simultaneous OPEN connection is permitted: breaking - strict TCP conformance is inappropriate for a general purpose kernel. - The trade-off is that an attacker may be able to deny outgoing - connections if they are able to guess the source port allocated by your - OS for that connection and also manage to initiate - a TCP simultaneous OPEN on that port before the connection is actually - established. - - Trusted path execution: a desirable feature, but - requires some more work to operate smoothly on NixOS. - - - - - The NixOS module conditionally weakens chroot - restrictions to accommodate NixOS lightweight containers and sandboxed Nix - builds. This can be problematic if the deployment also runs privileged - network facing processes that rely on - chroot for isolation. - - - - The NixOS kernel is patched to allow usermode helpers from anywhere in the - Nix store. A usermode helper is an executable called by the kernel in - certain circumstances, e.g., modprobe. Vanilla - grsecurity only allows usermode helpers from paths typically owned by the - super user. The NixOS kernel allows an attacker to inject malicious code - into the Nix store which could then be executed by the kernel as a - usermode helper. - - - - The following features are disabled because they overlap with - vanilla kernel mechanisms: - - - /proc hardening: - use instead. This - trades weaker protection for greater compatibility. - - - dmesg restrictions: - use instead - - - - - - - - - Using a custom grsecurity/PaX kernel - - - The NixOS kernel is likely to be either too permissive or too restrictive - for many deployment scenarios. In addition to producing a kernel more - suitable for a particular deployment, a custom kernel may improve security - by depriving an attacker the ability to study the kernel object code, adding - yet more guesswork to successfully carry out certain exploits. - - - - To build a custom kernel using upstream's recommended settings for server - deployments, while still using the NixOS module: - - nixpkgs.config.packageOverrides = super: { - linux_grsec_nixos = super.linux_grsec_nixos.override { - extraConfig = '' - GRKERNSEC_CONFIG_AUTO y - GRKERNSEC_CONFIG_SERVER y - GRKERNSEC_CONFIG_SECURITY y - ''; - }; - }; - - - - - The grsecurity/PaX wikibook provides an exhaustive listing of - kernel configuration options. - - - - The NixOS module makes several assumptions about the kernel and so - may be incompatible with your customised kernel. Currently, the only way - to work around these incompatibilities is to eschew the NixOS - module. - - - - If not using the NixOS module, a custom grsecurity package set can - be specified inline instead, as in - - boot.kernelPackages = - let - kernel = pkgs.linux_grsec_nixos.override { - extraConfig = /* as above */; - }; - self = pkgs.linuxPackagesFor kernel self; - in self; - - - - - - Per-executable PaX flags - - - Manual tuning of per-file PaX flags for executables in the Nix store is - impossible on a properly configured system. If a package in Nixpkgs fails - due to PaX, that is a bug in the package recipe and should be reported to - the maintainer (including relevant dmesg output). - - - - For executables installed outside of the Nix store, PaX flags can be set - using the paxctl utility: - - paxctl -czem foo - - - - paxctl overwrites files in-place. - - - Equivalently, on file systems that support extended attributes: - - setfattr -n user.pax.flags -v em foo - - - - - - - - Issues and work-arounds - - - User namespaces require CAP_SYS_ADMIN: - consequently, unprivileged namespaces are unsupported. Applications that - rely on namespaces for sandboxing must use a privileged helper. For chromium - there is . - - Access to EFI runtime services is disabled by default: - this plugs a potential code injection attack vector; use - to override - this behavior. - - User initiated autoloading of modules (e.g., when - using fuse or loop devices) is disallowed; either load requisite modules - as root or add them to . - - Virtualization: KVM is the preferred virtualization - solution. Xen, Virtualbox, and VMWare are - unsupported and most likely require a custom kernel. - - - - Attaching gdb to a running process is disallowed by - default: unprivileged users can only ptrace processes that are children of - the ptracing process. To relax this restriction, set - - boot.kernel.sysctl."kernel.grsecurity.harden_ptrace" = 0; - - - - - Overflows in boot critical code (e.g., the root filesystem module) can - render the system unbootable. Work around by setting - - boot.kernelParams = [ "pax_size_overflow_report_only" ]; - - - - - The modify_ldt - 2 syscall is disabled - by default. This restriction can interfere with programs designed to run - legacy 16-bit or segmented 32-bit code. To support applications that rely - on this syscall, set - - boot.kernel.sysctl."kernel.modify_ldt" = 1; - - - - - The gitlab service () - requires a variant of the ruby interpreter - built without `mprotect()` hardening, as in - - services.gitlab.packages.gitlab = pkgs.gitlab.override { - ruby = pkgs.ruby.overrideAttrs (attrs: { - postFixup = "paxmark m $out/bin/ruby"; - }); - }; - - - - - - - - Grsecurity/PaX kernel parameters - - - The NixOS kernel supports the following kernel command line parameters: - - - pax_nouderef: disable UDEREF (separate kernel and - user address spaces). - - - - pax_weakuderef: enable a faster but - weaker variant of UDEREF on 64-bit processors with PCID support - (check grep pcid /proc/cpuinfo). - - - - pax_sanitize_slab={off|fast|full}: control kernel - slab object sanitization. Defaults to fast - - - - pax_size_overflow_report_only: log size overflow - violations but leave the violating task running - - - - grsec_sysfs_restrict=[0|1]: toggle sysfs - restrictions. The NixOS module sets this to 0 - for systemd compatibility - - - - - - - diff --git a/nixos/modules/security/lock-kernel-modules.nix b/nixos/modules/security/lock-kernel-modules.nix new file mode 100644 index 00000000000..c81521ed9b0 --- /dev/null +++ b/nixos/modules/security/lock-kernel-modules.nix @@ -0,0 +1,44 @@ +{ config, lib, ... }: + +with lib; + +{ + options = { + security.lockKernelModules = mkOption { + type = types.bool; + default = false; + description = '' + Disable kernel module loading once the system is fully initialised. + Module loading is disabled until the next reboot. Problems caused + by delayed module loading can be fixed by adding the module(s) in + question to . + ''; + }; + }; + + config = mkIf config.security.lockKernelModules { + boot.kernelModules = concatMap (x: + if x.device != null + then + if x.fsType == "vfat" + then [ "vfat" "nls-cp437" "nls-iso8859-1" ] + else [ x.fsType ] + else []) config.system.build.fileSystems; + + systemd.services.disable-kernel-module-loading = rec { + description = "Disable kernel module loading"; + + wantedBy = [ config.systemd.defaultUnit ]; + + after = [ "systemd-udev-settle.service" "firewall.service" "systemd-modules-load.service" ] ++ wantedBy; + + unitConfig.ConditionPathIsReadWrite = "/proc/sys/kernel"; + + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "/bin/sh -c 'echo -n 1 >/proc/sys/kernel/modules_disabled'"; + }; + }; + }; +} diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index 5632500df2e..5ded36329f3 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -281,7 +281,7 @@ let "auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"} ${optionalString cfg.enableKwallet ("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" + - " kwalletd=${pkgs.libsForQt5.kwallet}/bin/kwalletd5")} + " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")} '') + '' ${optionalString cfg.unixAuth "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"} @@ -350,7 +350,7 @@ let "session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"} ${optionalString (cfg.enableKwallet) ("session optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" + - " kwalletd=${pkgs.libsForQt5.kwallet}/bin/kwalletd5")} + " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")} ''); }; @@ -486,8 +486,9 @@ in ++ optionals config.krb5.enable [pam_krb5 pam_ccreds] ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ] ++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ] - ++ optionals config.security.pam.enableU2F [ pkgs.pam_u2f ] - ++ optionals config.security.pam.enableEcryptfs [ pkgs.ecryptfs ]; + ++ optionals config.security.pam.enableU2F [ pkgs.pam_u2f ]; + + boot.supportedFilesystems = optionals config.security.pam.enableEcryptfs [ "ecryptfs" ]; security.wrappers = { unix_chkpwd = { @@ -495,10 +496,7 @@ in owner = "root"; setuid = true; }; - } // (if config.security.pam.enableEcryptfs then { - "mount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private"; - "umount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private"; - } else {}); + }; environment.etc = mapAttrsToList (n: v: makePAMService v) config.security.pam.services; @@ -521,6 +519,7 @@ in ftp = {}; i3lock = {}; i3lock-color = {}; + swaylock = {}; screen = {}; vlock = {}; xlock = {}; diff --git a/nixos/modules/security/pam_usb.nix b/nixos/modules/security/pam_usb.nix index 6f811dab8d7..9bc73bf0b85 100644 --- a/nixos/modules/security/pam_usb.nix +++ b/nixos/modules/security/pam_usb.nix @@ -22,7 +22,7 @@ in description = '' Enable USB login for all login systems that support it. For more information, visit . + xlink:href="https://github.com/aluzzardi/pam_usb/wiki/Getting-Started#setting-up-devices-and-users" />. ''; }; diff --git a/nixos/modules/security/sudo.nix b/nixos/modules/security/sudo.nix index 67a9b9a45ee..cfd0595e63b 100644 --- a/nixos/modules/security/sudo.nix +++ b/nixos/modules/security/sudo.nix @@ -66,10 +66,6 @@ in # Don't edit this file. Set the NixOS options ‘security.sudo.configFile’ # or ‘security.sudo.extraConfig’ instead. - # Environment variables to keep for root and %wheel. - Defaults:root,%wheel env_keep+=TERMINFO_DIRS - Defaults:root,%wheel env_keep+=TERMINFO - # Keep SSH_AUTH_SOCK so that pam_ssh_agent_auth.so can do its magic. Defaults env_keep+=SSH_AUTH_SOCK diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix index c051b7d49e3..1f64213accd 100644 --- a/nixos/modules/security/wrappers/default.nix +++ b/nixos/modules/security/wrappers/default.nix @@ -80,8 +80,8 @@ let group = "root"; } // s) else if - (s ? "setuid" && s.setuid == true) || - (s ? "setguid" && s.setguid == true) || + (s ? "setuid" && s.setuid) || + (s ? "setgid" && s.setgid) || (s ? "permissions") then mkSetuidProgram s else mkSetuidProgram @@ -155,7 +155,10 @@ in ###### implementation config = { - security.wrappers.fusermount.source = "${pkgs.fuse}/bin/fusermount"; + security.wrappers = { + fusermount.source = "${pkgs.fuse}/bin/fusermount"; + fusermount3.source = "${pkgs.fuse3}/bin/fusermount3"; + }; boot.specialFileSystems.${parentWrapperDir} = { fsType = "tmpfs"; @@ -171,7 +174,7 @@ in ###### setcap activation script system.activationScripts.wrappers = - lib.stringAfter [ "users" ] + lib.stringAfter [ "specialfs" "users" ] '' # Look in the system path and in the default profile for # programs to be wrapped. diff --git a/nixos/modules/services/admin/salt/master.nix b/nixos/modules/services/admin/salt/master.nix new file mode 100644 index 00000000000..165580b9783 --- /dev/null +++ b/nixos/modules/services/admin/salt/master.nix @@ -0,0 +1,60 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + + cfg = config.services.salt.master; + + fullConfig = lib.recursiveUpdate { + # Provide defaults for some directories to allow an immutable config dir + + # Default is equivalent to /etc/salt/master.d/*.conf + default_include = "/var/lib/salt/master.d/*.conf"; + # Default is in /etc/salt/pki/master + pki_dir = "/var/lib/salt/pki/master"; + } cfg.configuration; + +in + +{ + options = { + services.salt.master = { + enable = mkEnableOption "Salt master service"; + configuration = mkOption { + type = types.attrs; + default = {}; + description = "Salt master configuration as Nix attribute set."; + }; + }; + }; + + config = mkIf cfg.enable { + environment = { + # Set this up in /etc/salt/master so `salt`, `salt-key`, etc. work. + # The alternatives are + # - passing --config-dir to all salt commands, not just the master unit, + # - setting a global environment variable, + etc."salt/master".source = pkgs.writeText "master" ( + builtins.toJSON fullConfig + ); + systemPackages = with pkgs; [ salt ]; + }; + systemd.services.salt-master = { + description = "Salt Master"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = with pkgs; [ + utillinux # for dmesg + ]; + serviceConfig = { + ExecStart = "${pkgs.salt}/bin/salt-master"; + LimitNOFILE = 16384; + Type = "notify"; + NotifyAccess = "all"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ aneeshusa ]; +} diff --git a/nixos/modules/services/admin/salt/minion.nix b/nixos/modules/services/admin/salt/minion.nix new file mode 100644 index 00000000000..9ecefb32cfa --- /dev/null +++ b/nixos/modules/services/admin/salt/minion.nix @@ -0,0 +1,56 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + + cfg = config.services.salt.minion; + + fullConfig = lib.recursiveUpdate { + # Provide defaults for some directories to allow an immutable config dir + # NOTE: the config dir being immutable prevents `minion_id` caching + + # Default is equivalent to /etc/salt/minion.d/*.conf + default_include = "/var/lib/salt/minion.d/*.conf"; + # Default is in /etc/salt/pki/minion + pki_dir = "/var/lib/salt/pki/minion"; + } cfg.configuration; + configDir = pkgs.writeTextDir "minion" (builtins.toJSON fullConfig); + +in + +{ + options = { + services.salt.minion = { + enable = mkEnableOption "Salt minion service"; + configuration = mkOption { + type = types.attrs; + default = {}; + description = '' + Salt minion configuration as Nix attribute set. + See + for details. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ salt ]; + systemd.services.salt-minion = { + description = "Salt Minion"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = with pkgs; [ + utillinux + ]; + serviceConfig = { + ExecStart = "${pkgs.salt}/bin/salt-minion --config-dir=${configDir}"; + LimitNOFILE = 8192; + Type = "notify"; + NotifyAccess = "all"; + }; + }; + }; +} + diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix index 61545a5acba..f536d56d7c6 100644 --- a/nixos/modules/services/amqp/rabbitmq.nix +++ b/nixos/modules/services/amqp/rabbitmq.nix @@ -105,7 +105,8 @@ in { RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; RABBITMQ_NODE_PORT = toString cfg.port; - RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; + RABBITMQ_LOGS = "-"; + RABBITMQ_SASL_LOGS = "-"; RABBITMQ_PID_FILE = "${cfg.dataDir}/pid"; SYS_PREFIX = ""; RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" '' @@ -128,7 +129,7 @@ in { preStart = '' ${optionalString (cfg.cookie != "") '' echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie - chmod 400 ${cfg.dataDir}/.erlang.cookie + chmod 600 ${cfg.dataDir}/.erlang.cookie ''} ''; }; diff --git a/nixos/modules/services/audio/alsa.nix b/nixos/modules/services/audio/alsa.nix index 53786dbc627..acf48d3c3d0 100644 --- a/nixos/modules/services/audio/alsa.nix +++ b/nixos/modules/services/audio/alsa.nix @@ -7,6 +7,8 @@ let inherit (pkgs) alsaUtils; + pulseaudioEnabled = config.hardware.pulseaudio.enable; + in { @@ -80,7 +82,7 @@ in environment.systemPackages = [ alsaUtils ]; - environment.etc = mkIf (config.sound.extraConfig != "") + environment.etc = mkIf (!pulseaudioEnabled && config.sound.extraConfig != "") [ { source = pkgs.writeText "asound.conf" config.sound.extraConfig; target = "asound.conf"; diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 56af8fe152e..5f379b392ea 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -12,7 +12,7 @@ let mpdConf = pkgs.writeText "mpd.conf" '' music_directory "${cfg.musicDirectory}" - playlist_directory "${cfg.dataDir}/playlists" + playlist_directory "${cfg.playlistDirectory}" db_file "${cfg.dbFile}" state_file "${cfg.dataDir}/state" sticker_file "${cfg.dataDir}/sticker.sql" @@ -42,14 +42,34 @@ in { ''; }; + startWhenNeeded = mkOption { + type = types.bool; + default = false; + description = '' + If set, mpd is socket-activated; that + is, instead of having it permanently running as a daemon, + systemd will start it on the first incoming connection. + ''; + }; + musicDirectory = mkOption { type = types.path; default = "${cfg.dataDir}/music"; + defaultText = ''''${dataDir}/music''; description = '' The directory where mpd reads music from. ''; }; + playlistDirectory = mkOption { + type = types.path; + default = "${cfg.dataDir}/playlists"; + defaultText = ''''${dataDir}/playlists''; + description = '' + The directory where mpd stores playlists. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; @@ -108,6 +128,7 @@ in { dbFile = mkOption { type = types.str; default = "${cfg.dataDir}/tag_cache"; + defaultText = ''''${dataDir}/tag_cache''; description = '' The path to MPD's database. ''; @@ -121,16 +142,42 @@ in { config = mkIf cfg.enable { + systemd.sockets.mpd = mkIf cfg.startWhenNeeded { + description = "Music Player Daemon Socket"; + wantedBy = [ "sockets.target" ]; + listenStreams = [ + "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}" + ]; + socketConfig = { + Backlog = 5; + KeepAlive = true; + PassCredentials = true; + }; + }; + systemd.services.mpd = { after = [ "network.target" "sound.target" ]; description = "Music Player Daemon"; - wantedBy = [ "multi-user.target" ]; + wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target"; - preStart = "mkdir -p ${cfg.dataDir} && chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}"; + preStart = '' + mkdir -p "${cfg.dataDir}" && chown -R ${cfg.user}:${cfg.group} "${cfg.dataDir}" + mkdir -p "${cfg.playlistDirectory}" && chown -R ${cfg.user}:${cfg.group} "${cfg.playlistDirectory}" + ''; serviceConfig = { User = "${cfg.user}"; PermissionsStartOnly = true; ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon ${mpdConf}"; + Type = "notify"; + LimitRTPRIO = 50; + LimitRTTIME = "infinity"; + ProtectSystem = true; + NoNewPrivileges = true; + ProtectKernelTunables = true; + ProtectControlGroups = true; + ProtectKernelModules = true; + RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK"; + RestrictNamespaces = true; }; }; diff --git a/nixos/modules/services/backup/mysql-backup.nix b/nixos/modules/services/backup/mysql-backup.nix index 28f607861f7..3f533fa457d 100644 --- a/nixos/modules/services/backup/mysql-backup.nix +++ b/nixos/modules/services/backup/mysql-backup.nix @@ -6,10 +6,28 @@ let inherit (pkgs) mysql gzip; - cfg = config.services.mysqlBackup ; - location = cfg.location ; - mysqlBackupCron = db : '' - ${cfg.period} ${cfg.user} ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > ${location}/${db}.gz + cfg = config.services.mysqlBackup; + defaultUser = "mysqlbackup"; + + backupScript = '' + set -o pipefail + failed="" + ${concatMapStringsSep "\n" backupDatabaseScript cfg.databases} + if [ -n "$failed" ]; then + echo "Backup of database(s) failed:$failed" + exit 1 + fi + ''; + backupDatabaseScript = db: '' + dest="${cfg.location}/${db}.gz" + if ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then + mv $dest.tmp $dest + echo "Backed up to $dest" + else + echo "Failed to back up to $dest" + rm -f $dest.tmp + failed="$failed ${db}" + fi ''; in @@ -26,17 +44,16 @@ in ''; }; - period = mkOption { - default = "15 01 * * *"; + calendar = mkOption { + type = types.str; + default = "01:15:00"; description = '' - This option defines (in the format used by cron) when the - databases should be dumped. - The default is to update at 01:15 (at night) every day. + Configured when to run the backup service systemd unit (DayOfWeek Year-Month-Day Hour:Minute:Second). ''; }; user = mkOption { - default = "mysql"; + default = defaultUser; description = '' User to be used to perform backup. ''; @@ -66,16 +83,49 @@ in }; - config = mkIf config.services.mysqlBackup.enable { + config = mkIf cfg.enable { + users.extraUsers = optionalAttrs (cfg.user == defaultUser) (singleton + { name = defaultUser; + isSystemUser = true; + createHome = false; + home = cfg.location; + group = "nogroup"; + }); - services.cron.systemCronJobs = map mysqlBackupCron config.services.mysqlBackup.databases; - - system.activationScripts.mysqlBackup = stringAfter [ "stdio" "users" ] - '' - mkdir -m 0700 -p ${config.services.mysqlBackup.location} - chown ${config.services.mysqlBackup.user} ${config.services.mysqlBackup.location} - ''; + services.mysql.ensureUsers = [{ + name = cfg.user; + ensurePermissions = with lib; + let + privs = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES"; + grant = db: nameValuePair "${db}.*" privs; + in + listToAttrs (map grant cfg.databases); + }]; + systemd = { + timers."mysql-backup" = { + description = "Mysql backup timer"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = cfg.calendar; + AccuracySec = "5m"; + Unit = "mysql-backup.service"; + }; + }; + services."mysql-backup" = { + description = "Mysql backup service"; + enable = true; + serviceConfig = { + User = cfg.user; + PermissionsStartOnly = true; + }; + preStart = '' + mkdir -m 0700 -p ${cfg.location} + chown -R ${cfg.user} ${cfg.location} + ''; + script = backupScript; + }; + }; }; } diff --git a/nixos/modules/services/backup/tarsnap.nix b/nixos/modules/services/backup/tarsnap.nix index 67112343c33..7c9dedb67ad 100644 --- a/nixos/modules/services/backup/tarsnap.nix +++ b/nixos/modules/services/backup/tarsnap.nix @@ -230,6 +230,14 @@ in Download bandwidth rate limit in bytes. ''; }; + + verbose = mkOption { + type = types.bool; + default = false; + description = '' + Whether to produce verbose logging output. + ''; + }; }; } )); @@ -293,7 +301,10 @@ in ''; script = - let run = ''tarsnap --configfile "/etc/tarsnap/${name}.conf" -c -f "${name}-$(date +"%Y%m%d%H%M%S")" ${concatStringsSep " " cfg.directories}''; + let run = ''tarsnap --configfile "/etc/tarsnap/${name}.conf" \ + -c -f "${name}-$(date +"%Y%m%d%H%M%S")" \ + ${optionalString cfg.verbose "-v"} \ + ${concatStringsSep " " cfg.directories}''; in if (cfg.cachedir != null) then '' mkdir -p ${cfg.cachedir} chmod 0700 ${cfg.cachedir} diff --git a/nixos/modules/services/backup/znapzend.nix b/nixos/modules/services/backup/znapzend.nix index 648089f90b7..baf99930e3e 100644 --- a/nixos/modules/services/backup/znapzend.nix +++ b/nixos/modules/services/backup/znapzend.nix @@ -9,6 +9,32 @@ in options = { services.znapzend = { enable = mkEnableOption "ZnapZend daemon"; + + logLevel = mkOption { + default = "debug"; + example = "warning"; + type = lib.types.enum ["debug" "info" "warning" "err" "alert"]; + description = "The log level when logging to file. Any of debug, info, warning, err, alert. Default in daemonized form is debug."; + }; + + logTo = mkOption { + type = types.str; + default = "syslog::daemon"; + example = "/var/log/znapzend.log"; + description = "Where to log to (syslog::<facility> or <filepath>)."; + }; + + noDestroy = mkOption { + type = types.bool; + default = false; + description = "Does all changes to the filesystem except destroy."; + }; + + autoCreation = mkOption { + type = types.bool; + default = false; + description = "Automatically create the dataset on dest if it does not exists."; + }; }; }; @@ -18,19 +44,17 @@ in systemd.services = { "znapzend" = { description = "ZnapZend - ZFS Backup System"; + wantedBy = [ "zfs.target" ]; after = [ "zfs.target" ]; - path = with pkgs; [ znapzend zfs mbuffer openssh ]; + path = with pkgs; [ zfs mbuffer openssh ]; - script = '' - znapzend - ''; - - reload = '' - /bin/kill -HUP $MAINPID - ''; + serviceConfig = { + ExecStart = "${pkgs.znapzend}/bin/znapzend --logto=${cfg.logTo} --loglevel=${cfg.logLevel} ${optionalString cfg.noDestroy "--nodestroy"} ${optionalString cfg.autoCreation "--autoCreation"}"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + Restart = "on-failure"; + }; }; }; - }; } diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes.nix deleted file mode 100644 index f58306ab63e..00000000000 --- a/nixos/modules/services/cluster/kubernetes.nix +++ /dev/null @@ -1,869 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.kubernetes; - - skipAttrs = attrs: map (filterAttrs (k: v: k != "enable")) - (filter (v: !(hasAttr "enable" v) || v.enable) attrs); - - infraContainer = pkgs.dockerTools.buildImage { - name = "pause"; - tag = "latest"; - contents = cfg.package.pause; - config.Cmd = "/bin/pause"; - }; - - kubeconfig = pkgs.writeText "kubeconfig" (builtins.toJSON { - apiVersion = "v1"; - kind = "Config"; - clusters = [{ - name = "local"; - cluster.certificate-authority = cfg.kubeconfig.caFile; - cluster.server = cfg.kubeconfig.server; - }]; - users = [{ - name = "kubelet"; - user = { - client-certificate = cfg.kubeconfig.certFile; - client-key = cfg.kubeconfig.keyFile; - }; - }]; - contexts = [{ - context = { - cluster = "local"; - user = "kubelet"; - }; - current-context = "kubelet-context"; - }]; - }); - - policyFile = pkgs.writeText "kube-policy" - concatStringsSep "\n" (map (builtins.toJSON cfg.apiserver.authorizationPolicy)); - - cniConfig = pkgs.buildEnv { - name = "kubernetes-cni-config"; - paths = imap (i: entry: - pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry) - ) cfg.kubelet.cni.config; - }; - - manifests = pkgs.buildEnv { - name = "kubernetes-manifests"; - paths = mapAttrsToList (name: manifest: - pkgs.writeTextDir "${name}.json" (builtins.toJSON manifest) - ) cfg.kubelet.manifests; - }; - -in { - - ###### interface - - options.services.kubernetes = { - roles = mkOption { - description = '' - Kubernetes role that this machine should take. - - Master role will enable etcd, apiserver, scheduler and controller manager - services. Node role will enable etcd, docker, kubelet and proxy services. - ''; - default = []; - type = types.listOf (types.enum ["master" "node"]); - }; - - package = mkOption { - description = "Kubernetes package to use."; - type = types.package; - default = pkgs.kubernetes; - defaultText = "pkgs.kubernetes"; - }; - - verbose = mkOption { - description = "Kubernetes enable verbose mode for debugging"; - default = false; - type = types.bool; - }; - - etcd = { - servers = mkOption { - description = "List of etcd servers. By default etcd is started, except if this option is changed."; - default = ["http://127.0.0.1:2379"]; - type = types.listOf types.str; - }; - - keyFile = mkOption { - description = "Etcd key file"; - default = null; - type = types.nullOr types.path; - }; - - certFile = mkOption { - description = "Etcd cert file"; - default = null; - type = types.nullOr types.path; - }; - - caFile = mkOption { - description = "Etcd ca file"; - default = null; - type = types.nullOr types.path; - }; - }; - - kubeconfig = { - server = mkOption { - description = "Kubernetes apiserver server address"; - default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}"; - type = types.str; - }; - - caFile = mkOption { - description = "Certificate authrority file to use to connect to kuberentes apiserver"; - type = types.nullOr types.path; - default = null; - }; - - certFile = mkOption { - description = "Client certificate file to use to connect to kubernetes"; - type = types.nullOr types.path; - default = null; - }; - - keyFile = mkOption { - description = "Client key file to use to connect to kubernetes"; - type = types.nullOr types.path; - default = null; - }; - }; - - dataDir = mkOption { - description = "Kubernetes root directory for managing kubelet files."; - default = "/var/lib/kubernetes"; - type = types.path; - }; - - apiserver = { - enable = mkOption { - description = "Whether to enable kubernetes apiserver."; - default = false; - type = types.bool; - }; - - address = mkOption { - description = "Kubernetes apiserver listening address."; - default = "127.0.0.1"; - type = types.str; - }; - - publicAddress = mkOption { - description = '' - Kubernetes apiserver public listening address used for read only and - secure port. - ''; - default = cfg.apiserver.address; - type = types.str; - }; - - advertiseAddress = mkOption { - description = '' - Kubernetes apiserver IP address on which to advertise the apiserver - to members of the cluster. This address must be reachable by the rest - of the cluster. - ''; - default = null; - type = types.nullOr types.str; - }; - - port = mkOption { - description = "Kubernetes apiserver listening port."; - default = 8080; - type = types.int; - }; - - securePort = mkOption { - description = "Kubernetes apiserver secure port."; - default = 443; - type = types.int; - }; - - tlsCertFile = mkOption { - description = "Kubernetes apiserver certificate file."; - default = null; - type = types.nullOr types.path; - }; - - tlsKeyFile = mkOption { - description = "Kubernetes apiserver private key file."; - default = null; - type = types.nullOr types.path; - }; - - clientCaFile = mkOption { - description = "Kubernetes apiserver CA file for client auth."; - default = null; - type = types.nullOr types.path; - }; - - tokenAuth = mkOption { - description = '' - Kubernetes apiserver token authentication file. See - - ''; - default = null; - example = ''token,user,uid,"group1,group2,group3"''; - type = types.nullOr types.lines; - }; - - authorizationMode = mkOption { - description = '' - Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC). See - - ''; - default = "AlwaysAllow"; - type = types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC"]; - }; - - authorizationPolicy = mkOption { - description = '' - Kubernetes apiserver authorization policy file. See - - ''; - default = []; - example = literalExample '' - [ - {user = "admin";} - {user = "scheduler"; readonly = true; kind= "pods";} - {user = "scheduler"; kind = "bindings";} - {user = "kubelet"; readonly = true; kind = "bindings";} - {user = "kubelet"; kind = "events";} - {user= "alice"; ns = "projectCaribou";} - {user = "bob"; readonly = true; ns = "projectCaribou";} - ] - ''; - type = types.listOf types.attrs; - }; - - allowPrivileged = mkOption { - description = "Whether to allow privileged containers on kubernetes."; - default = true; - type = types.bool; - }; - - portalNet = mkOption { - description = "Kubernetes CIDR notation IP range from which to assign portal IPs"; - default = "10.10.10.10/24"; - type = types.str; - }; - - runtimeConfig = mkOption { - description = '' - Api runtime configuration. See - - ''; - default = ""; - example = "api/all=false,api/v1=true"; - type = types.str; - }; - - admissionControl = mkOption { - description = '' - Kubernetes admission control plugins to use. See - - ''; - default = ["NamespaceLifecycle" "LimitRanger" "ServiceAccount" "ResourceQuota"]; - example = [ - "NamespaceLifecycle" "NamespaceExists" "LimitRanger" - "SecurityContextDeny" "ServiceAccount" "ResourceQuota" - ]; - type = types.listOf types.str; - }; - - serviceAccountKeyFile = mkOption { - description = '' - Kubernetes apiserver PEM-encoded x509 RSA private or public key file, - used to verify ServiceAccount tokens. By default tls private key file - is used. - ''; - default = null; - type = types.nullOr types.path; - }; - - kubeletClientCaFile = mkOption { - description = "Path to a cert file for connecting to kubelet"; - default = null; - type = types.nullOr types.path; - }; - - kubeletClientCertFile = mkOption { - description = "Client certificate to use for connections to kubelet"; - default = null; - type = types.nullOr types.path; - }; - - kubeletClientKeyFile = mkOption { - description = "Key to use for connections to kubelet"; - default = null; - type = types.nullOr types.path; - }; - - kubeletHttps = mkOption { - description = "Whether to use https for connections to kubelet"; - default = true; - type = types.bool; - }; - - extraOpts = mkOption { - description = "Kubernetes apiserver extra command line options."; - default = ""; - type = types.str; - }; - }; - - scheduler = { - enable = mkOption { - description = "Whether to enable kubernetes scheduler."; - default = false; - type = types.bool; - }; - - address = mkOption { - description = "Kubernetes scheduler listening address."; - default = "127.0.0.1"; - type = types.str; - }; - - port = mkOption { - description = "Kubernetes scheduler listening port."; - default = 10251; - type = types.int; - }; - - leaderElect = mkOption { - description = "Whether to start leader election before executing main loop"; - type = types.bool; - default = false; - }; - - extraOpts = mkOption { - description = "Kubernetes scheduler extra command line options."; - default = ""; - type = types.str; - }; - }; - - controllerManager = { - enable = mkOption { - description = "Whether to enable kubernetes controller manager."; - default = false; - type = types.bool; - }; - - address = mkOption { - description = "Kubernetes controller manager listening address."; - default = "127.0.0.1"; - type = types.str; - }; - - port = mkOption { - description = "Kubernetes controller manager listening port."; - default = 10252; - type = types.int; - }; - - leaderElect = mkOption { - description = "Whether to start leader election before executing main loop"; - type = types.bool; - default = false; - }; - - serviceAccountKeyFile = mkOption { - description = '' - Kubernetes controller manager PEM-encoded private RSA key file used to - sign service account tokens - ''; - default = null; - type = types.nullOr types.path; - }; - - rootCaFile = mkOption { - description = '' - Kubernetes controller manager certificate authority file included in - service account's token secret. - ''; - default = null; - type = types.nullOr types.path; - }; - - clusterCidr = mkOption { - description = "Kubernetes controller manager CIDR Range for Pods in cluster"; - default = "10.10.0.0/16"; - type = types.str; - }; - - extraOpts = mkOption { - description = "Kubernetes controller manager extra command line options."; - default = ""; - type = types.str; - }; - }; - - kubelet = { - enable = mkOption { - description = "Whether to enable kubernetes kubelet."; - default = false; - type = types.bool; - }; - - registerNode = mkOption { - description = "Whether to auto register kubelet with API server."; - default = true; - type = types.bool; - }; - - registerSchedulable = mkOption { - description = "Register the node as schedulable. No-op if register-node is false."; - default = true; - type = types.bool; - }; - - address = mkOption { - description = "Kubernetes kubelet info server listening address."; - default = "0.0.0.0"; - type = types.str; - }; - - port = mkOption { - description = "Kubernetes kubelet info server listening port."; - default = 10250; - type = types.int; - }; - - tlsCertFile = mkOption { - description = "File containing x509 Certificate for HTTPS."; - default = null; - type = types.nullOr types.path; - }; - - tlsKeyFile = mkOption { - description = "File containing x509 private key matching tlsCertFile."; - default = null; - type = types.nullOr types.path; - }; - - healthz = { - bind = mkOption { - description = "Kubernetes kubelet healthz listening address."; - default = "127.0.0.1"; - type = types.str; - }; - - port = mkOption { - description = "Kubernetes kubelet healthz port."; - default = 10248; - type = types.int; - }; - }; - - hostname = mkOption { - description = "Kubernetes kubelet hostname override"; - default = config.networking.hostName; - type = types.str; - }; - - allowPrivileged = mkOption { - description = "Whether to allow kubernetes containers to request privileged mode."; - default = true; - type = types.bool; - }; - - cadvisorPort = mkOption { - description = "Kubernetes kubelet local cadvisor port."; - default = 4194; - type = types.int; - }; - - clusterDns = mkOption { - description = "Use alternative dns."; - default = "10.10.0.1"; - type = types.str; - }; - - clusterDomain = mkOption { - description = "Use alternative domain."; - default = "cluster.local"; - type = types.str; - }; - - networkPlugin = mkOption { - description = "Network plugin to use by kubernetes"; - type = types.nullOr (types.enum ["cni" "kubenet"]); - default = "kubenet"; - }; - - cni = { - packages = mkOption { - description = "List of network plugin packages to install"; - type = types.listOf types.package; - default = []; - }; - - config = mkOption { - description = "Kubernetes CNI configuration"; - type = types.listOf types.attrs; - default = []; - example = literalExample '' - [{ - "cniVersion": "0.2.0", - "name": "mynet", - "type": "bridge", - "bridge": "cni0", - "isGateway": true, - "ipMasq": true, - "ipam": { - "type": "host-local", - "subnet": "10.22.0.0/16", - "routes": [ - { "dst": "0.0.0.0/0" } - ] - } - } { - "cniVersion": "0.2.0", - "type": "loopback" - }] - ''; - }; - }; - - manifests = mkOption { - description = "List of manifests to bootstrap with kubelet"; - type = types.attrsOf types.attrs; - default = {}; - }; - - extraOpts = mkOption { - description = "Kubernetes kubelet extra command line options."; - default = ""; - type = types.str; - }; - }; - - proxy = { - enable = mkOption { - description = "Whether to enable kubernetes proxy."; - default = false; - type = types.bool; - }; - - address = mkOption { - description = "Kubernetes proxy listening address."; - default = "0.0.0.0"; - type = types.str; - }; - - extraOpts = mkOption { - description = "Kubernetes proxy extra command line options."; - default = ""; - type = types.str; - }; - }; - - dns = { - enable = mkEnableOption "kubernetes dns service."; - - port = mkOption { - description = "Kubernetes dns listening port"; - default = 53; - type = types.int; - }; - - domain = mkOption { - description = "Kuberntes dns domain under which to create names."; - default = cfg.kubelet.clusterDomain; - type = types.str; - }; - - extraOpts = mkOption { - description = "Kubernetes dns extra command line options."; - default = ""; - type = types.str; - }; - }; - }; - - ###### implementation - - config = mkMerge [ - (mkIf cfg.kubelet.enable { - systemd.services.kubelet = { - description = "Kubernetes Kubelet Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "network.target" "docker.service" "kube-apiserver.service" ]; - path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables ]; - preStart = '' - docker load < ${infraContainer} - rm /opt/cni/bin/* || true - ${concatMapStringsSep "\n" (p: "ln -fs ${p.plugins}/* /opt/cni/bin") cfg.kubelet.cni.packages} - ''; - serviceConfig = { - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kubelet \ - --pod-manifest-path=${manifests} \ - --kubeconfig=${kubeconfig} \ - --require-kubeconfig \ - --address=${cfg.kubelet.address} \ - --port=${toString cfg.kubelet.port} \ - --register-node=${boolToString cfg.kubelet.registerNode} \ - --register-schedulable=${boolToString cfg.kubelet.registerSchedulable} \ - ${optionalString (cfg.kubelet.tlsCertFile != null) - "--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \ - ${optionalString (cfg.kubelet.tlsKeyFile != null) - "--tls-private-key-file=${cfg.kubelet.tlsKeyFile}"} \ - --healthz-bind-address=${cfg.kubelet.healthz.bind} \ - --healthz-port=${toString cfg.kubelet.healthz.port} \ - --hostname-override=${cfg.kubelet.hostname} \ - --allow-privileged=${boolToString cfg.kubelet.allowPrivileged} \ - --root-dir=${cfg.dataDir} \ - --cadvisor_port=${toString cfg.kubelet.cadvisorPort} \ - ${optionalString (cfg.kubelet.clusterDns != "") - "--cluster-dns=${cfg.kubelet.clusterDns}"} \ - ${optionalString (cfg.kubelet.clusterDomain != "") - "--cluster-domain=${cfg.kubelet.clusterDomain}"} \ - --pod-infra-container-image=pause \ - ${optionalString (cfg.kubelet.networkPlugin != null) - "--network-plugin=${cfg.kubelet.networkPlugin}"} \ - --cni-conf-dir=${cniConfig} \ - --reconcile-cidr \ - --hairpin-mode=hairpin-veth \ - ${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \ - ${cfg.kubelet.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - }; - }; - - environment.etc = mapAttrs' (name: manifest: - nameValuePair "kubernetes/manifests/${name}.json" { - text = builtins.toJSON manifest; - mode = "0755"; - } - ) cfg.kubelet.manifests; - - # Allways include cni plugins - services.kubernetes.kubelet.cni.packages = [pkgs.cni]; - }) - - (mkIf cfg.apiserver.enable { - systemd.services.kube-apiserver = { - description = "Kubernetes Kubelet Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "network.target" "docker.service" ]; - serviceConfig = { - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kube-apiserver \ - --etcd-servers=${concatStringsSep "," cfg.etcd.servers} \ - ${optionalString (cfg.etcd.caFile != null) - "--etcd-cafile=${cfg.etcd.caFile}"} \ - ${optionalString (cfg.etcd.certFile != null) - "--etcd-certfile=${cfg.etcd.certFile}"} \ - ${optionalString (cfg.etcd.keyFile != null) - "--etcd-keyfile=${cfg.etcd.keyFile}"} \ - --insecure-port=${toString cfg.apiserver.port} \ - --bind-address=0.0.0.0 \ - ${optionalString (cfg.apiserver.advertiseAddress != null) - "--advertise-address=${cfg.apiserver.advertiseAddress}"} \ - --allow-privileged=${boolToString cfg.apiserver.allowPrivileged}\ - ${optionalString (cfg.apiserver.tlsCertFile != null) - "--tls-cert-file=${cfg.apiserver.tlsCertFile}"} \ - ${optionalString (cfg.apiserver.tlsKeyFile != null) - "--tls-private-key-file=${cfg.apiserver.tlsKeyFile}"} \ - ${optionalString (cfg.apiserver.tokenAuth != null) - "--token-auth-file=${cfg.apiserver.tokenAuth}"} \ - --kubelet-https=${boolToString cfg.apiserver.kubeletHttps} \ - ${optionalString (cfg.apiserver.kubeletClientCaFile != null) - "--kubelet-certificate-authority=${cfg.apiserver.kubeletClientCaFile}"} \ - ${optionalString (cfg.apiserver.kubeletClientCertFile != null) - "--kubelet-client-certificate=${cfg.apiserver.kubeletClientCertFile}"} \ - ${optionalString (cfg.apiserver.kubeletClientKeyFile != null) - "--kubelet-client-key=${cfg.apiserver.kubeletClientKeyFile}"} \ - ${optionalString (cfg.apiserver.clientCaFile != null) - "--client-ca-file=${cfg.apiserver.clientCaFile}"} \ - --authorization-mode=${cfg.apiserver.authorizationMode} \ - ${optionalString (cfg.apiserver.authorizationMode == "ABAC") - "--authorization-policy-file=${policyFile}"} \ - --secure-port=${toString cfg.apiserver.securePort} \ - --service-cluster-ip-range=${cfg.apiserver.portalNet} \ - ${optionalString (cfg.apiserver.runtimeConfig != "") - "--runtime-config=${cfg.apiserver.runtimeConfig}"} \ - --admission_control=${concatStringsSep "," cfg.apiserver.admissionControl} \ - ${optionalString (cfg.apiserver.serviceAccountKeyFile!=null) - "--service-account-key-file=${cfg.apiserver.serviceAccountKeyFile}"} \ - ${optionalString cfg.verbose "--v=6"} \ - ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ - ${cfg.apiserver.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - User = "kubernetes"; - Group = "kubernetes"; - AmbientCapabilities = "cap_net_bind_service"; - Restart = "on-failure"; - RestartSec = 5; - }; - }; - }) - - (mkIf cfg.scheduler.enable { - systemd.services.kube-scheduler = { - description = "Kubernetes Scheduler Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "kube-apiserver.service" ]; - serviceConfig = { - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kube-scheduler \ - --address=${cfg.scheduler.address} \ - --port=${toString cfg.scheduler.port} \ - --leader-elect=${boolToString cfg.scheduler.leaderElect} \ - --kubeconfig=${kubeconfig} \ - ${optionalString cfg.verbose "--v=6"} \ - ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ - ${cfg.scheduler.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - User = "kubernetes"; - Group = "kubernetes"; - }; - }; - }) - - (mkIf cfg.controllerManager.enable { - systemd.services.kube-controller-manager = { - description = "Kubernetes Controller Manager Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "kube-apiserver.service" ]; - serviceConfig = { - RestartSec = "30s"; - Restart = "on-failure"; - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kube-controller-manager \ - --address=${cfg.controllerManager.address} \ - --port=${toString cfg.controllerManager.port} \ - --kubeconfig=${kubeconfig} \ - --leader-elect=${boolToString cfg.controllerManager.leaderElect} \ - ${if (cfg.controllerManager.serviceAccountKeyFile!=null) - then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}" - else "--service-account-private-key-file=/var/run/kubernetes/apiserver.key"} \ - ${optionalString (cfg.controllerManager.rootCaFile!=null) - "--root-ca-file=${cfg.controllerManager.rootCaFile}"} \ - ${optionalString (cfg.controllerManager.clusterCidr!=null) - "--cluster-cidr=${cfg.controllerManager.clusterCidr}"} \ - --allocate-node-cidrs=true \ - ${optionalString cfg.verbose "--v=6"} \ - ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ - ${cfg.controllerManager.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - User = "kubernetes"; - Group = "kubernetes"; - }; - }; - }) - - (mkIf cfg.proxy.enable { - systemd.services.kube-proxy = { - description = "Kubernetes Proxy Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "kube-apiserver.service" ]; - path = [pkgs.iptables]; - serviceConfig = { - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kube-proxy \ - --kubeconfig=${kubeconfig} \ - --bind-address=${cfg.proxy.address} \ - ${optionalString cfg.verbose "--v=6"} \ - ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ - ${cfg.proxy.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - }; - }; - }) - - (mkIf cfg.dns.enable { - systemd.services.kube-dns = { - description = "Kubernetes Dns Service"; - wantedBy = [ "kubernetes.target" ]; - after = [ "kube-apiserver.service" ]; - serviceConfig = { - Slice = "kubernetes.slice"; - ExecStart = ''${cfg.package}/bin/kube-dns \ - --kubecfg-file=${kubeconfig} \ - --dns-port=${toString cfg.dns.port} \ - --domain=${cfg.dns.domain} \ - ${optionalString cfg.verbose "--v=6"} \ - ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ - ${cfg.dns.extraOpts} - ''; - WorkingDirectory = cfg.dataDir; - User = "kubernetes"; - Group = "kubernetes"; - AmbientCapabilities = "cap_net_bind_service"; - SendSIGHUP = true; - }; - }; - }) - - (mkIf cfg.kubelet.enable { - boot.kernelModules = ["br_netfilter"]; - }) - - (mkIf (any (el: el == "master") cfg.roles) { - virtualisation.docker.enable = mkDefault true; - services.kubernetes.kubelet.enable = mkDefault true; - services.kubernetes.kubelet.allowPrivileged = mkDefault true; - services.kubernetes.apiserver.enable = mkDefault true; - services.kubernetes.scheduler.enable = mkDefault true; - services.kubernetes.controllerManager.enable = mkDefault true; - services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]); - }) - - (mkIf (any (el: el == "node") cfg.roles) { - virtualisation.docker.enable = mkDefault true; - virtualisation.docker.logDriver = mkDefault "json-file"; - services.kubernetes.kubelet.enable = mkDefault true; - services.kubernetes.proxy.enable = mkDefault true; - services.kubernetes.dns.enable = mkDefault true; - }) - - (mkIf ( - cfg.apiserver.enable || - cfg.scheduler.enable || - cfg.controllerManager.enable || - cfg.kubelet.enable || - cfg.proxy.enable || - cfg.dns.enable - ) { - systemd.targets.kubernetes = { - description = "Kubernetes"; - wantedBy = [ "multi-user.target" ]; - }; - - systemd.tmpfiles.rules = [ - "d /opt/cni/bin 0755 root root -" - "d /var/run/kubernetes 0755 kubernetes kubernetes -" - "d /var/lib/kubernetes 0755 kubernetes kubernetes -" - ]; - - environment.systemPackages = [ cfg.package ]; - users.extraUsers = singleton { - name = "kubernetes"; - uid = config.ids.uids.kubernetes; - description = "Kubernetes user"; - extraGroups = [ "docker" ]; - group = "kubernetes"; - home = cfg.dataDir; - createHome = true; - }; - users.extraGroups.kubernetes.gid = config.ids.gids.kubernetes; - }) - ]; -} diff --git a/nixos/modules/services/cluster/kubernetes/dashboard.nix b/nixos/modules/services/cluster/kubernetes/dashboard.nix new file mode 100644 index 00000000000..75d71fccfda --- /dev/null +++ b/nixos/modules/services/cluster/kubernetes/dashboard.nix @@ -0,0 +1,160 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.kubernetes.addons.dashboard; + + name = "gcr.io/google_containers/kubernetes-dashboard-amd64"; + version = "v1.6.3"; + + image = pkgs.dockerTools.pullImage { + imageName = name; + imageTag = version; + sha256 = "1sf54d96nkgic9hir9c6p14gw24ns1k5d5a0r1sg414kjrvic0b4"; + }; +in { + options.services.kubernetes.addons.dashboard = { + enable = mkEnableOption "kubernetes dashboard addon"; + + enableRBAC = mkOption { + description = "Whether to enable role based access control is enabled for kubernetes dashboard"; + type = types.bool; + default = elem "RBAC" config.services.kubernetes.apiserver.authorizationMode; + }; + }; + + config = mkIf cfg.enable { + services.kubernetes.kubelet.seedDockerImages = [image]; + + services.kubernetes.addonManager.addons = { + kubernetes-dashboard-deployment = { + kind = "Deployment"; + apiVersion = "apps/v1beta1"; + metadata = { + labels = { + k8s-addon = "kubernetes-dashboard.addons.k8s.io"; + k8s-app = "kubernetes-dashboard"; + version = version; + "kubernetes.io/cluster-service" = "true"; + "addonmanager.kubernetes.io/mode" = "Reconcile"; + }; + name = "kubernetes-dashboard"; + namespace = "kube-system"; + }; + spec = { + replicas = 1; + revisionHistoryLimit = 10; + selector.matchLabels."k8s-app" = "kubernetes-dashboard"; + template = { + metadata = { + labels = { + k8s-addon = "kubernetes-dashboard.addons.k8s.io"; + k8s-app = "kubernetes-dashboard"; + version = version; + "kubernetes.io/cluster-service" = "true"; + }; + annotations = { + "scheduler.alpha.kubernetes.io/critical-pod" = ""; + #"scheduler.alpha.kubernetes.io/tolerations" = ''[{"key":"CriticalAddonsOnly", "operator":"Exists"}]''; + }; + }; + spec = { + containers = [{ + name = "kubernetes-dashboard"; + image = "${name}:${version}"; + ports = [{ + containerPort = 9090; + protocol = "TCP"; + }]; + resources = { + limits = { + cpu = "100m"; + memory = "50Mi"; + }; + requests = { + cpu = "100m"; + memory = "50Mi"; + }; + }; + livenessProbe = { + httpGet = { + path = "/"; + port = 9090; + }; + initialDelaySeconds = 30; + timeoutSeconds = 30; + }; + }]; + serviceAccountName = "kubernetes-dashboard"; + tolerations = [{ + key = "node-role.kubernetes.io/master"; + effect = "NoSchedule"; + }]; + }; + }; + }; + }; + + kubernetes-dashboard-svc = { + apiVersion = "v1"; + kind = "Service"; + metadata = { + labels = { + k8s-addon = "kubernetes-dashboard.addons.k8s.io"; + k8s-app = "kubernetes-dashboard"; + "kubernetes.io/cluster-service" = "true"; + "kubernetes.io/name" = "KubeDashboard"; + "addonmanager.kubernetes.io/mode" = "Reconcile"; + }; + name = "kubernetes-dashboard"; + namespace = "kube-system"; + }; + spec = { + ports = [{ + port = 80; + targetPort = 9090; + }]; + selector.k8s-app = "kubernetes-dashboard"; + }; + }; + + kubernetes-dashboard-sa = { + apiVersion = "v1"; + kind = "ServiceAccount"; + metadata = { + labels = { + k8s-app = "kubernetes-dashboard"; + k8s-addon = "kubernetes-dashboard.addons.k8s.io"; + "addonmanager.kubernetes.io/mode" = "Reconcile"; + }; + name = "kubernetes-dashboard"; + namespace = "kube-system"; + }; + }; + } // (optionalAttrs cfg.enableRBAC { + kubernetes-dashboard-crb = { + apiVersion = "rbac.authorization.k8s.io/v1beta1"; + kind = "ClusterRoleBinding"; + metadata = { + name = "kubernetes-dashboard"; + labels = { + k8s-app = "kubernetes-dashboard"; + k8s-addon = "kubernetes-dashboard.addons.k8s.io"; + "addonmanager.kubernetes.io/mode" = "Reconcile"; + }; + }; + roleRef = { + apiGroup = "rbac.authorization.k8s.io"; + kind = "ClusterRole"; + name = "cluster-admin"; + }; + subjects = [{ + kind = "ServiceAccount"; + name = "kubernetes-dashboard"; + namespace = "kube-system"; + }]; + }; + }); + }; +} diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix new file mode 100644 index 00000000000..077953e4d4f --- /dev/null +++ b/nixos/modules/services/cluster/kubernetes/default.nix @@ -0,0 +1,1147 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.kubernetes; + + skipAttrs = attrs: map (filterAttrs (k: v: k != "enable")) + (filter (v: !(hasAttr "enable" v) || v.enable) attrs); + + infraContainer = pkgs.dockerTools.buildImage { + name = "pause"; + tag = "latest"; + contents = cfg.package.pause; + config.Cmd = "/bin/pause"; + }; + + mkKubeConfig = name: cfg: pkgs.writeText "${name}-kubeconfig" (builtins.toJSON { + apiVersion = "v1"; + kind = "Config"; + clusters = [{ + name = "local"; + cluster.certificate-authority = cfg.caFile; + cluster.server = cfg.server; + }]; + users = [{ + name = "kubelet"; + user = { + client-certificate = cfg.certFile; + client-key = cfg.keyFile; + }; + }]; + contexts = [{ + context = { + cluster = "local"; + user = "kubelet"; + }; + current-context = "kubelet-context"; + }]; + }); + + mkKubeConfigOptions = prefix: { + server = mkOption { + description = "${prefix} kube-apiserver server address."; + default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}"; + type = types.str; + }; + + caFile = mkOption { + description = "${prefix} certificate authrority file used to connect to kube-apiserver."; + type = types.nullOr types.path; + default = cfg.caFile; + }; + + certFile = mkOption { + description = "${prefix} client certificate file used to connect to kube-apiserver."; + type = types.nullOr types.path; + default = null; + }; + + keyFile = mkOption { + description = "${prefix} client key file used to connect to kube-apiserver."; + type = types.nullOr types.path; + default = null; + }; + }; + + kubeConfigDefaults = { + server = mkDefault cfg.kubeconfig.server; + caFile = mkDefault cfg.kubeconfig.caFile; + certFile = mkDefault cfg.kubeconfig.certFile; + keyFile = mkDefault cfg.kubeconfig.keyFile; + }; + + cniConfig = pkgs.buildEnv { + name = "kubernetes-cni-config"; + paths = imap (i: entry: + pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry) + ) cfg.kubelet.cni.config; + }; + + manifests = pkgs.buildEnv { + name = "kubernetes-manifests"; + paths = mapAttrsToList (name: manifest: + pkgs.writeTextDir "${name}.json" (builtins.toJSON manifest) + ) cfg.kubelet.manifests; + }; + + addons = pkgs.runCommand "kubernetes-addons" { } '' + mkdir -p $out + # since we are mounting the addons to the addon manager, they need to be copied + ${concatMapStringsSep ";" (a: "cp -v ${a}/* $out/") (mapAttrsToList (name: addon: + pkgs.writeTextDir "${name}.json" (builtins.toJSON addon) + ) (cfg.addonManager.addons))} + ''; + + taintOptions = { name, ... }: { + options = { + key = mkOption { + description = "Key of taint."; + default = name; + type = types.str; + }; + value = mkOption { + description = "Value of taint."; + type = types.str; + }; + effect = mkOption { + description = "Effect of taint."; + example = "NoSchedule"; + type = types.enum ["NoSchedule" "PreferNoSchedule" "NoExecute"]; + }; + }; + }; + + taints = concatMapStringsSep "," (v: "${v.key}=${v.value}:${v.effect}") (mapAttrsToList (n: v: v) cfg.kubelet.taints); + + # needed for flannel to pass options to docker + mkDockerOpts = pkgs.runCommand "mk-docker-opts" { + buildInputs = [ pkgs.makeWrapper ]; + } '' + mkdir -p $out + cp ${pkgs.kubernetes.src}/cluster/centos/node/bin/mk-docker-opts.sh $out/mk-docker-opts.sh + + # bashInteractive needed for `compgen` + makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "$out/mk-docker-opts.sh" + ''; +in { + + ###### interface + + options.services.kubernetes = { + roles = mkOption { + description = '' + Kubernetes role that this machine should take. + + Master role will enable etcd, apiserver, scheduler and controller manager + services. Node role will enable etcd, docker, kubelet and proxy services. + ''; + default = []; + type = types.listOf (types.enum ["master" "node"]); + }; + + package = mkOption { + description = "Kubernetes package to use."; + type = types.package; + default = pkgs.kubernetes; + defaultText = "pkgs.kubernetes"; + }; + + verbose = mkOption { + description = "Kubernetes enable verbose mode for debugging."; + default = false; + type = types.bool; + }; + + etcd = { + servers = mkOption { + description = "List of etcd servers. By default etcd is started, except if this option is changed."; + default = ["http://127.0.0.1:2379"]; + type = types.listOf types.str; + }; + + keyFile = mkOption { + description = "Etcd key file."; + default = null; + type = types.nullOr types.path; + }; + + certFile = mkOption { + description = "Etcd cert file."; + default = null; + type = types.nullOr types.path; + }; + + caFile = mkOption { + description = "Etcd ca file."; + default = cfg.caFile; + type = types.nullOr types.path; + }; + }; + + kubeconfig = mkKubeConfigOptions "Default kubeconfig"; + + caFile = mkOption { + description = "Default kubernetes certificate authority"; + type = types.nullOr types.path; + default = null; + }; + + dataDir = mkOption { + description = "Kubernetes root directory for managing kubelet files."; + default = "/var/lib/kubernetes"; + type = types.path; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = []; + type = types.listOf types.str; + }; + + apiserver = { + enable = mkOption { + description = "Whether to enable Kubernetes apiserver."; + default = false; + type = types.bool; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = cfg.featureGates; + type = types.listOf types.str; + }; + + address = mkOption { + description = "Kubernetes apiserver listening address."; + default = "127.0.0.1"; + type = types.str; + }; + + publicAddress = mkOption { + description = '' + Kubernetes apiserver public listening address used for read only and + secure port. + ''; + default = cfg.apiserver.address; + type = types.str; + }; + + advertiseAddress = mkOption { + description = '' + Kubernetes apiserver IP address on which to advertise the apiserver + to members of the cluster. This address must be reachable by the rest + of the cluster. + ''; + default = null; + type = types.nullOr types.str; + }; + + storageBackend = mkOption { + description = '' + Kubernetes apiserver storage backend. + ''; + default = "etcd3"; + type = types.enum ["etcd2" "etcd3"]; + }; + + port = mkOption { + description = "Kubernetes apiserver listening port."; + default = 8080; + type = types.int; + }; + + securePort = mkOption { + description = "Kubernetes apiserver secure port."; + default = 443; + type = types.int; + }; + + tlsCertFile = mkOption { + description = "Kubernetes apiserver certificate file."; + default = null; + type = types.nullOr types.path; + }; + + tlsKeyFile = mkOption { + description = "Kubernetes apiserver private key file."; + default = null; + type = types.nullOr types.path; + }; + + clientCaFile = mkOption { + description = "Kubernetes apiserver CA file for client auth."; + default = cfg.caFile; + type = types.nullOr types.path; + }; + + tokenAuthFile = mkOption { + description = '' + Kubernetes apiserver token authentication file. See + + ''; + default = null; + type = types.nullOr types.path; + }; + + basicAuthFile = mkOption { + description = '' + Kubernetes apiserver basic authentication file. See + + ''; + default = pkgs.writeText "users" '' + kubernetes,admin,0 + ''; + type = types.nullOr types.path; + }; + + authorizationMode = mkOption { + description = '' + Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/RBAC). See + + ''; + default = ["RBAC"]; + type = types.listOf (types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC" "RBAC"]); + }; + + authorizationPolicy = mkOption { + description = '' + Kubernetes apiserver authorization policy file. See + + ''; + default = []; + type = types.listOf types.attrs; + }; + + allowPrivileged = mkOption { + description = "Whether to allow privileged containers on Kubernetes."; + default = true; + type = types.bool; + }; + + serviceClusterIpRange = mkOption { + description = '' + A CIDR notation IP range from which to assign service cluster IPs. + This must not overlap with any IP ranges assigned to nodes for pods. + ''; + default = "10.0.0.0/24"; + type = types.str; + }; + + runtimeConfig = mkOption { + description = '' + Api runtime configuration. See + + ''; + default = "authentication.k8s.io/v1beta1=true"; + example = "api/all=false,api/v1=true"; + type = types.str; + }; + + admissionControl = mkOption { + description = '' + Kubernetes admission control plugins to use. See + + ''; + default = ["NamespaceLifecycle" "LimitRanger" "ServiceAccount" "ResourceQuota" "DefaultStorageClass" "DefaultTolerationSeconds"]; + example = [ + "NamespaceLifecycle" "NamespaceExists" "LimitRanger" + "SecurityContextDeny" "ServiceAccount" "ResourceQuota" + "PodSecurityPolicy" "NodeRestriction" "DefaultStorageClass" + ]; + type = types.listOf types.str; + }; + + serviceAccountKeyFile = mkOption { + description = '' + Kubernetes apiserver PEM-encoded x509 RSA private or public key file, + used to verify ServiceAccount tokens. By default tls private key file + is used. + ''; + default = null; + type = types.nullOr types.path; + }; + + kubeletClientCaFile = mkOption { + description = "Path to a cert file for connecting to kubelet."; + default = cfg.caFile; + type = types.nullOr types.path; + }; + + kubeletClientCertFile = mkOption { + description = "Client certificate to use for connections to kubelet."; + default = null; + type = types.nullOr types.path; + }; + + kubeletClientKeyFile = mkOption { + description = "Key to use for connections to kubelet."; + default = null; + type = types.nullOr types.path; + }; + + kubeletHttps = mkOption { + description = "Whether to use https for connections to kubelet."; + default = true; + type = types.bool; + }; + + extraOpts = mkOption { + description = "Kubernetes apiserver extra command line options."; + default = ""; + type = types.str; + }; + }; + + scheduler = { + enable = mkOption { + description = "Whether to enable Kubernetes scheduler."; + default = false; + type = types.bool; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = cfg.featureGates; + type = types.listOf types.str; + }; + + address = mkOption { + description = "Kubernetes scheduler listening address."; + default = "127.0.0.1"; + type = types.str; + }; + + port = mkOption { + description = "Kubernetes scheduler listening port."; + default = 10251; + type = types.int; + }; + + leaderElect = mkOption { + description = "Whether to start leader election before executing main loop."; + type = types.bool; + default = true; + }; + + kubeconfig = mkKubeConfigOptions "Kubernetes scheduler"; + + extraOpts = mkOption { + description = "Kubernetes scheduler extra command line options."; + default = ""; + type = types.str; + }; + }; + + controllerManager = { + enable = mkOption { + description = "Whether to enable Kubernetes controller manager."; + default = false; + type = types.bool; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = cfg.featureGates; + type = types.listOf types.str; + }; + + address = mkOption { + description = "Kubernetes controller manager listening address."; + default = "127.0.0.1"; + type = types.str; + }; + + port = mkOption { + description = "Kubernetes controller manager listening port."; + default = 10252; + type = types.int; + }; + + leaderElect = mkOption { + description = "Whether to start leader election before executing main loop."; + type = types.bool; + default = true; + }; + + serviceAccountKeyFile = mkOption { + description = '' + Kubernetes controller manager PEM-encoded private RSA key file used to + sign service account tokens + ''; + default = null; + type = types.nullOr types.path; + }; + + rootCaFile = mkOption { + description = '' + Kubernetes controller manager certificate authority file included in + service account's token secret. + ''; + default = cfg.caFile; + type = types.nullOr types.path; + }; + + kubeconfig = mkKubeConfigOptions "Kubernetes controller manager"; + + extraOpts = mkOption { + description = "Kubernetes controller manager extra command line options."; + default = ""; + type = types.str; + }; + }; + + kubelet = { + enable = mkOption { + description = "Whether to enable Kubernetes kubelet."; + default = false; + type = types.bool; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = cfg.featureGates; + type = types.listOf types.str; + }; + + seedDockerImages = mkOption { + description = "List of docker images to preload on system"; + default = []; + type = types.listOf types.package; + }; + + registerNode = mkOption { + description = "Whether to auto register kubelet with API server."; + default = true; + type = types.bool; + }; + + address = mkOption { + description = "Kubernetes kubelet info server listening address."; + default = "0.0.0.0"; + type = types.str; + }; + + port = mkOption { + description = "Kubernetes kubelet info server listening port."; + default = 10250; + type = types.int; + }; + + tlsCertFile = mkOption { + description = "File containing x509 Certificate for HTTPS."; + default = null; + type = types.nullOr types.path; + }; + + tlsKeyFile = mkOption { + description = "File containing x509 private key matching tlsCertFile."; + default = null; + type = types.nullOr types.path; + }; + + clientCaFile = mkOption { + description = "Kubernetes apiserver CA file for client authentication."; + default = cfg.caFile; + type = types.nullOr types.path; + }; + + healthz = { + bind = mkOption { + description = "Kubernetes kubelet healthz listening address."; + default = "127.0.0.1"; + type = types.str; + }; + + port = mkOption { + description = "Kubernetes kubelet healthz port."; + default = 10248; + type = types.int; + }; + }; + + hostname = mkOption { + description = "Kubernetes kubelet hostname override."; + default = config.networking.hostName; + type = types.str; + }; + + allowPrivileged = mkOption { + description = "Whether to allow Kubernetes containers to request privileged mode."; + default = true; + type = types.bool; + }; + + cadvisorPort = mkOption { + description = "Kubernetes kubelet local cadvisor port."; + default = 4194; + type = types.int; + }; + + clusterDns = mkOption { + description = "Use alternative DNS."; + default = "10.1.0.1"; + type = types.str; + }; + + clusterDomain = mkOption { + description = "Use alternative domain."; + default = config.services.kubernetes.addons.dns.clusterDomain; + type = types.str; + }; + + networkPlugin = mkOption { + description = "Network plugin to use by Kubernetes."; + type = types.nullOr (types.enum ["cni" "kubenet"]); + default = "kubenet"; + }; + + cni = { + packages = mkOption { + description = "List of network plugin packages to install."; + type = types.listOf types.package; + default = []; + }; + + config = mkOption { + description = "Kubernetes CNI configuration."; + type = types.listOf types.attrs; + default = []; + example = literalExample '' + [{ + "cniVersion": "0.2.0", + "name": "mynet", + "type": "bridge", + "bridge": "cni0", + "isGateway": true, + "ipMasq": true, + "ipam": { + "type": "host-local", + "subnet": "10.22.0.0/16", + "routes": [ + { "dst": "0.0.0.0/0" } + ] + } + } { + "cniVersion": "0.2.0", + "type": "loopback" + }] + ''; + }; + }; + + manifests = mkOption { + description = "List of manifests to bootstrap with kubelet (only pods can be created as manifest entry)"; + type = types.attrsOf types.attrs; + default = {}; + }; + + applyManifests = mkOption { + description = "Whether to apply manifests (this is true for master node)."; + default = false; + type = types.bool; + }; + + unschedulable = mkOption { + description = "Whether to set node taint to unschedulable=true as it is the case of node that has only master role."; + default = false; + type = types.bool; + }; + + taints = mkOption { + description = "Node taints (https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)."; + default = {}; + type = types.attrsOf (types.submodule [ taintOptions ]); + }; + + nodeIp = mkOption { + description = "IP address of the node. If set, kubelet will use this IP address for the node."; + default = null; + type = types.nullOr types.str; + }; + + kubeconfig = mkKubeConfigOptions "Kubelet"; + + extraOpts = mkOption { + description = "Kubernetes kubelet extra command line options."; + default = ""; + type = types.str; + }; + }; + + proxy = { + enable = mkOption { + description = "Whether to enable Kubernetes proxy."; + default = false; + type = types.bool; + }; + + featureGates = mkOption { + description = "List set of feature gates"; + default = cfg.featureGates; + type = types.listOf types.str; + }; + + address = mkOption { + description = "Kubernetes proxy listening address."; + default = "0.0.0.0"; + type = types.str; + }; + + kubeconfig = mkKubeConfigOptions "Kubernetes proxy"; + + extraOpts = mkOption { + description = "Kubernetes proxy extra command line options."; + default = ""; + type = types.str; + }; + }; + + addonManager = { + enable = mkOption { + description = "Whether to enable Kubernetes addon manager."; + default = false; + type = types.bool; + }; + + addons = mkOption { + description = "Kubernetes addons (any kind of Kubernetes resource can be an addon)."; + default = { }; + type = types.attrsOf (types.either types.attrs (types.listOf types.attrs)); + example = literalExample '' + { + "my-service" = { + "apiVersion" = "v1"; + "kind" = "Service"; + "metadata" = { + "name" = "my-service"; + "namespace" = "default"; + }; + "spec" = { ... }; + }; + } + // import { cfg = config.services.kubernetes; }; + ''; + }; + }; + + path = mkOption { + description = "Packages added to the services' PATH environment variable. Both the bin and sbin subdirectories of each package are added."; + type = types.listOf types.package; + default = []; + }; + + clusterCidr = mkOption { + description = "Kubernetes controller manager and proxy CIDR Range for Pods in cluster."; + default = "10.1.0.0/16"; + type = types.str; + }; + + flannel.enable = mkOption { + description = "Whether to enable flannel networking"; + default = false; + type = types.bool; + }; + + }; + + ###### implementation + + config = mkMerge [ + (mkIf cfg.kubelet.enable { + services.kubernetes.kubelet.seedDockerImages = [infraContainer]; + + systemd.services.kubelet-bootstrap = { + description = "Boostrap Kubelet"; + wantedBy = ["kubernetes.target"]; + after = ["docker.service" "network.target"]; + path = with pkgs; [ docker ]; + script = '' + ${concatMapStrings (img: '' + echo "Seeding docker image: ${img}" + docker load <${img} + '') cfg.kubelet.seedDockerImages} + + rm /opt/cni/bin/* || true + ${concatMapStrings (package: '' + echo "Linking cni package: ${package}" + ln -fs ${package.plugins}/* /opt/cni/bin + '') cfg.kubelet.cni.packages} + ''; + serviceConfig = { + Slice = "kubernetes.slice"; + Type = "oneshot"; + }; + }; + + systemd.services.kubelet = { + description = "Kubernetes Kubelet Service"; + wantedBy = [ "kubernetes.target" ]; + after = [ "network.target" "docker.service" "kube-apiserver.service" "kubelet-bootstrap.service" ]; + path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ cfg.path; + serviceConfig = { + Slice = "kubernetes.slice"; + ExecStart = ''${cfg.package}/bin/kubelet \ + ${optionalString cfg.kubelet.applyManifests + "--pod-manifest-path=${manifests}"} \ + ${optionalString (taints != "") + "--register-with-taints=${taints}"} \ + --kubeconfig=${mkKubeConfig "kubelet" cfg.kubelet.kubeconfig} \ + --require-kubeconfig \ + --address=${cfg.kubelet.address} \ + --port=${toString cfg.kubelet.port} \ + --register-node=${boolToString cfg.kubelet.registerNode} \ + ${optionalString (cfg.kubelet.tlsCertFile != null) + "--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \ + ${optionalString (cfg.kubelet.tlsKeyFile != null) + "--tls-private-key-file=${cfg.kubelet.tlsKeyFile}"} \ + ${optionalString (cfg.kubelet.clientCaFile != null) + "--client-ca-file=${cfg.kubelet.clientCaFile}"} \ + --authentication-token-webhook \ + --authentication-token-webhook-cache-ttl="10s" \ + --authorization-mode=Webhook \ + --healthz-bind-address=${cfg.kubelet.healthz.bind} \ + --healthz-port=${toString cfg.kubelet.healthz.port} \ + --hostname-override=${cfg.kubelet.hostname} \ + --allow-privileged=${boolToString cfg.kubelet.allowPrivileged} \ + --root-dir=${cfg.dataDir} \ + --cadvisor_port=${toString cfg.kubelet.cadvisorPort} \ + ${optionalString (cfg.kubelet.clusterDns != "") + "--cluster-dns=${cfg.kubelet.clusterDns}"} \ + ${optionalString (cfg.kubelet.clusterDomain != "") + "--cluster-domain=${cfg.kubelet.clusterDomain}"} \ + --pod-infra-container-image=pause \ + ${optionalString (cfg.kubelet.networkPlugin != null) + "--network-plugin=${cfg.kubelet.networkPlugin}"} \ + --cni-conf-dir=${cniConfig} \ + --hairpin-mode=hairpin-veth \ + ${optionalString (cfg.kubelet.nodeIp != null) + "--node-ip=${cfg.kubelet.nodeIp}"} \ + ${optionalString (cfg.kubelet.featureGates != []) + "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.kubelet.featureGates}"} \ + ${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \ + ${cfg.kubelet.extraOpts} + ''; + WorkingDirectory = cfg.dataDir; + }; + }; + + # Allways include cni plugins + services.kubernetes.kubelet.cni.packages = [pkgs.cni]; + + boot.kernelModules = ["br_netfilter"]; + + services.kubernetes.kubelet.kubeconfig = kubeConfigDefaults; + }) + + (mkIf (cfg.kubelet.applyManifests && cfg.kubelet.enable) { + environment.etc = mapAttrs' (name: manifest: + nameValuePair "kubernetes/manifests/${name}.json" { + text = builtins.toJSON manifest; + mode = "0755"; + } + ) cfg.kubelet.manifests; + }) + + (mkIf (cfg.kubelet.unschedulable && cfg.kubelet.enable) { + services.kubernetes.kubelet.taints.unschedulable = { + value = "true"; + effect = "NoSchedule"; + }; + }) + + (mkIf cfg.apiserver.enable { + systemd.services.kube-apiserver = { + description = "Kubernetes Kubelet Service"; + wantedBy = [ "kubernetes.target" ]; + after = [ "network.target" "docker.service" ]; + serviceConfig = { + Slice = "kubernetes.slice"; + ExecStart = ''${cfg.package}/bin/kube-apiserver \ + --etcd-servers=${concatStringsSep "," cfg.etcd.servers} \ + ${optionalString (cfg.etcd.caFile != null) + "--etcd-cafile=${cfg.etcd.caFile}"} \ + ${optionalString (cfg.etcd.certFile != null) + "--etcd-certfile=${cfg.etcd.certFile}"} \ + ${optionalString (cfg.etcd.keyFile != null) + "--etcd-keyfile=${cfg.etcd.keyFile}"} \ + --insecure-port=${toString cfg.apiserver.port} \ + --bind-address=0.0.0.0 \ + ${optionalString (cfg.apiserver.advertiseAddress != null) + "--advertise-address=${cfg.apiserver.advertiseAddress}"} \ + --allow-privileged=${boolToString cfg.apiserver.allowPrivileged}\ + ${optionalString (cfg.apiserver.tlsCertFile != null) + "--tls-cert-file=${cfg.apiserver.tlsCertFile}"} \ + ${optionalString (cfg.apiserver.tlsKeyFile != null) + "--tls-private-key-file=${cfg.apiserver.tlsKeyFile}"} \ + ${optionalString (cfg.apiserver.tokenAuthFile != null) + "--token-auth-file=${cfg.apiserver.tokenAuthFile}"} \ + ${optionalString (cfg.apiserver.basicAuthFile != null) + "--basic-auth-file=${cfg.apiserver.basicAuthFile}"} \ + --kubelet-https=${if cfg.apiserver.kubeletHttps then "true" else "false"} \ + ${optionalString (cfg.apiserver.kubeletClientCaFile != null) + "--kubelet-certificate-authority=${cfg.apiserver.kubeletClientCaFile}"} \ + ${optionalString (cfg.apiserver.kubeletClientCertFile != null) + "--kubelet-client-certificate=${cfg.apiserver.kubeletClientCertFile}"} \ + ${optionalString (cfg.apiserver.kubeletClientKeyFile != null) + "--kubelet-client-key=${cfg.apiserver.kubeletClientKeyFile}"} \ + ${optionalString (cfg.apiserver.clientCaFile != null) + "--client-ca-file=${cfg.apiserver.clientCaFile}"} \ + --authorization-mode=${concatStringsSep "," cfg.apiserver.authorizationMode} \ + ${optionalString (elem "ABAC" cfg.apiserver.authorizationMode) + "--authorization-policy-file=${ + pkgs.writeText "kube-auth-policy.jsonl" + (concatMapStringsSep "\n" (l: builtins.toJSON l) cfg.apiserver.authorizationPolicy) + }" + } \ + --secure-port=${toString cfg.apiserver.securePort} \ + --service-cluster-ip-range=${cfg.apiserver.serviceClusterIpRange} \ + ${optionalString (cfg.apiserver.runtimeConfig != "") + "--runtime-config=${cfg.apiserver.runtimeConfig}"} \ + --admission_control=${concatStringsSep "," cfg.apiserver.admissionControl} \ + ${optionalString (cfg.apiserver.serviceAccountKeyFile!=null) + "--service-account-key-file=${cfg.apiserver.serviceAccountKeyFile}"} \ + ${optionalString cfg.verbose "--v=6"} \ + ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ + --storage-backend=${cfg.apiserver.storageBackend} \ + ${optionalString (cfg.kubelet.featureGates != []) + "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.kubelet.featureGates}"} \ + ${cfg.apiserver.extraOpts} + ''; + WorkingDirectory = cfg.dataDir; + User = "kubernetes"; + Group = "kubernetes"; + AmbientCapabilities = "cap_net_bind_service"; + Restart = "on-failure"; + RestartSec = 5; + }; + }; + }) + + (mkIf cfg.scheduler.enable { + systemd.services.kube-scheduler = { + description = "Kubernetes Scheduler Service"; + wantedBy = [ "kubernetes.target" ]; + after = [ "kube-apiserver.service" ]; + serviceConfig = { + Slice = "kubernetes.slice"; + ExecStart = ''${cfg.package}/bin/kube-scheduler \ + --address=${cfg.scheduler.address} \ + --port=${toString cfg.scheduler.port} \ + --leader-elect=${boolToString cfg.scheduler.leaderElect} \ + --kubeconfig=${mkKubeConfig "kube-scheduler" cfg.scheduler.kubeconfig} \ + ${optionalString cfg.verbose "--v=6"} \ + ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ + ${optionalString (cfg.scheduler.featureGates != []) + "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.scheduler.featureGates}"} \ + ${cfg.scheduler.extraOpts} + ''; + WorkingDirectory = cfg.dataDir; + User = "kubernetes"; + Group = "kubernetes"; + }; + }; + + services.kubernetes.scheduler.kubeconfig = kubeConfigDefaults; + }) + + (mkIf cfg.controllerManager.enable { + systemd.services.kube-controller-manager = { + description = "Kubernetes Controller Manager Service"; + wantedBy = [ "kubernetes.target" ]; + after = [ "kube-apiserver.service" ]; + serviceConfig = { + RestartSec = "30s"; + Restart = "on-failure"; + Slice = "kubernetes.slice"; + ExecStart = ''${cfg.package}/bin/kube-controller-manager \ + --address=${cfg.controllerManager.address} \ + --port=${toString cfg.controllerManager.port} \ + --kubeconfig=${mkKubeConfig "kube-controller-manager" cfg.controllerManager.kubeconfig} \ + --leader-elect=${boolToString cfg.controllerManager.leaderElect} \ + ${if (cfg.controllerManager.serviceAccountKeyFile!=null) + then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}" + else "--service-account-private-key-file=/var/run/kubernetes/apiserver.key"} \ + ${if (cfg.controllerManager.rootCaFile!=null) + then "--root-ca-file=${cfg.controllerManager.rootCaFile}" + else "--root-ca-file=/var/run/kubernetes/apiserver.crt"} \ + ${optionalString (cfg.clusterCidr!=null) + "--cluster-cidr=${cfg.clusterCidr}"} \ + --allocate-node-cidrs=true \ + ${optionalString (cfg.controllerManager.featureGates != []) + "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.controllerManager.featureGates}"} \ + ${optionalString cfg.verbose "--v=6"} \ + ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ + ${cfg.controllerManager.extraOpts} + ''; + WorkingDirectory = cfg.dataDir; + User = "kubernetes"; + Group = "kubernetes"; + }; + path = cfg.path; + }; + + services.kubernetes.controllerManager.kubeconfig = kubeConfigDefaults; + }) + + (mkIf cfg.proxy.enable { + systemd.services.kube-proxy = { + description = "Kubernetes Proxy Service"; + wantedBy = [ "kubernetes.target" ]; + after = [ "kube-apiserver.service" ]; + path = [pkgs.iptables pkgs.conntrack_tools]; + serviceConfig = { + Slice = "kubernetes.slice"; + ExecStart = ''${cfg.package}/bin/kube-proxy \ + --kubeconfig=${mkKubeConfig "kube-proxy" cfg.proxy.kubeconfig} \ + --bind-address=${cfg.proxy.address} \ + ${optionalString (cfg.proxy.featureGates != []) + "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.proxy.featureGates}"} \ + ${optionalString cfg.verbose "--v=6"} \ + ${optionalString cfg.verbose "--log-flush-frequency=1s"} \ + ${optionalString (cfg.clusterCidr!=null) + "--cluster-cidr=${cfg.clusterCidr}"} \ + ${cfg.proxy.extraOpts} + ''; + WorkingDirectory = cfg.dataDir; + }; + }; + + # kube-proxy needs iptables + networking.firewall.enable = mkDefault true; + + services.kubernetes.proxy.kubeconfig = kubeConfigDefaults; + }) + + (mkIf (any (el: el == "master") cfg.roles) { + virtualisation.docker.enable = mkDefault true; + services.kubernetes.kubelet.enable = mkDefault true; + services.kubernetes.kubelet.allowPrivileged = mkDefault true; + services.kubernetes.kubelet.applyManifests = mkDefault true; + services.kubernetes.apiserver.enable = mkDefault true; + services.kubernetes.scheduler.enable = mkDefault true; + services.kubernetes.controllerManager.enable = mkDefault true; + services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]); + services.kubernetes.addonManager.enable = mkDefault true; + services.kubernetes.proxy.enable = mkDefault true; + }) + + # if this node is only a master make it unschedulable by default + (mkIf (all (el: el == "master") cfg.roles) { + services.kubernetes.kubelet.unschedulable = mkDefault true; + }) + + (mkIf (any (el: el == "node") cfg.roles) { + virtualisation.docker = { + enable = mkDefault true; + + # kubernetes needs access to logs + logDriver = mkDefault "json-file"; + + # iptables must be disabled for kubernetes + extraOptions = "--iptables=false --ip-masq=false"; + }; + + services.kubernetes.kubelet.enable = mkDefault true; + services.kubernetes.proxy.enable = mkDefault true; + }) + + (mkIf cfg.addonManager.enable { + environment.etc."kubernetes/addons".source = "${addons}/"; + + systemd.services.kube-addon-manager = { + description = "Kubernetes addon manager"; + wantedBy = [ "kubernetes.target" ]; + after = [ "kube-apiserver.service" ]; + environment.ADDON_PATH = "/etc/kubernetes/addons/"; + serviceConfig = { + Slice = "kubernetes.slice"; + ExecStart = "${cfg.package}/bin/kube-addons"; + WorkingDirectory = cfg.dataDir; + User = "kubernetes"; + Group = "kubernetes"; + }; + }; + }) + + (mkIf ( + cfg.apiserver.enable || + cfg.scheduler.enable || + cfg.controllerManager.enable || + cfg.kubelet.enable || + cfg.proxy.enable + ) { + systemd.targets.kubernetes = { + description = "Kubernetes"; + wantedBy = [ "multi-user.target" ]; + }; + + systemd.tmpfiles.rules = [ + "d /opt/cni/bin 0755 root root -" + "d /var/run/kubernetes 0755 kubernetes kubernetes -" + "d /var/lib/kubernetes 0755 kubernetes kubernetes -" + ]; + + environment.systemPackages = [ cfg.package ]; + users.extraUsers = singleton { + name = "kubernetes"; + uid = config.ids.uids.kubernetes; + description = "Kubernetes user"; + extraGroups = [ "docker" ]; + group = "kubernetes"; + home = cfg.dataDir; + createHome = true; + }; + users.extraGroups.kubernetes.gid = config.ids.gids.kubernetes; + + # dns addon is enabled by default + services.kubernetes.addons.dns.enable = mkDefault true; + }) + + (mkIf cfg.flannel.enable { + services.flannel = { + enable = mkDefault true; + network = mkDefault cfg.clusterCidr; + etcd = mkDefault { + endpoints = cfg.etcd.servers; + inherit (cfg.etcd) caFile certFile keyFile; + }; + }; + + services.kubernetes.kubelet = { + networkPlugin = mkDefault "cni"; + cni.config = mkDefault [{ + name = "mynet"; + type = "flannel"; + delegate = { + isDefaultGateway = true; + bridge = "docker0"; + }; + }]; + }; + + systemd.services."mk-docker-opts" = { + description = "Pre-Docker Actions"; + wantedBy = [ "flannel.service" ]; + before = [ "docker.service" ]; + after = [ "flannel.service" ]; + path = [ pkgs.gawk pkgs.gnugrep ]; + script = '' + mkdir -p /run/flannel + ${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker + ''; + serviceConfig.Type = "oneshot"; + }; + systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/docker"; + + # read environment variables generated by mk-docker-opts + virtualisation.docker.extraOptions = "$DOCKER_OPTS"; + + networking.firewall.allowedUDPPorts = [ + 8285 # flannel udp + 8472 # flannel vxlan + ]; + }) + ]; +} diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix new file mode 100644 index 00000000000..226fdadffd1 --- /dev/null +++ b/nixos/modules/services/cluster/kubernetes/dns.nix @@ -0,0 +1,311 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + version = "1.14.4"; + + k8s-dns-kube-dns = pkgs.dockerTools.pullImage { + imageName = "gcr.io/google_containers/k8s-dns-kube-dns-amd64"; + imageTag = version; + sha256 = "0q97xfqrigrfjl2a9cxl5in619py0zv44gch09jm8gqjkxl80imp"; + }; + + k8s-dns-dnsmasq-nanny = pkgs.dockerTools.pullImage { + imageName = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64"; + imageTag = version; + sha256 = "051w5ca4qb88mwva4hbnh9xzlsvv7k1mbk3wz50lmig2mqrqqx6c"; + }; + + k8s-dns-sidecar = pkgs.dockerTools.pullImage { + imageName = "gcr.io/google_containers/k8s-dns-sidecar-amd64"; + imageTag = version; + sha256 = "1z0d129bcm8i2cqq36x5jhnrv9hirj8c6kjrmdav8vgf7py78vsm"; + }; + + cfg = config.services.kubernetes.addons.dns; +in { + options.services.kubernetes.addons.dns = { + enable = mkEnableOption "kubernetes dns addon"; + + clusterIp = mkOption { + description = "Dns addon clusterIP"; + + # this default is also what kubernetes users + default = ( + concatStringsSep "." ( + take 3 (splitString "." config.services.kubernetes.apiserver.serviceClusterIpRange + )) + ) + ".254"; + type = types.str; + }; + + clusterDomain = mkOption { + description = "Dns cluster domain"; + default = "cluster.local"; + type = types.str; + }; + }; + + config = mkIf cfg.enable { + services.kubernetes.kubelet.seedDockerImages = [ + k8s-dns-kube-dns + k8s-dns-dnsmasq-nanny + k8s-dns-sidecar + ]; + + services.kubernetes.addonManager.addons = { + kubedns-deployment = { + apiVersion = "apps/v1beta1"; + kind = "Deployment"; + metadata = { + labels = { + "addonmanager.kubernetes.io/mode" = "Reconcile"; + "k8s-app" = "kube-dns"; + "kubernetes.io/cluster-service" = "true"; + }; + name = "kube-dns"; + namespace = "kube-system"; + }; + spec = { + selector.matchLabels."k8s-app" = "kube-dns"; + strategy = { + rollingUpdate = { + maxSurge = "10%"; + maxUnavailable = 0; + }; + }; + template = { + metadata = { + annotations."scheduler.alpha.kubernetes.io/critical-pod" = ""; + labels.k8s-app = "kube-dns"; + }; + spec = { + containers = [ + { + name = "kubedns"; + args = [ + "--domain=${cfg.clusterDomain}" + "--dns-port=10053" + "--config-dir=/kube-dns-config" + "--v=2" + ]; + env = [ + { + name = "PROMETHEUS_PORT"; + value = "10055"; + } + ]; + image = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:${version}"; + livenessProbe = { + failureThreshold = 5; + httpGet = { + path = "/healthcheck/kubedns"; + port = 10054; + scheme = "HTTP"; + }; + initialDelaySeconds = 60; + successThreshold = 1; + timeoutSeconds = 5; + }; + ports = [ + { + containerPort = 10053; + name = "dns-local"; + protocol = "UDP"; + } + { + containerPort = 10053; + name = "dns-tcp-local"; + protocol = "TCP"; + } + { + containerPort = 10055; + name = "metrics"; + protocol = "TCP"; + } + ]; + readinessProbe = { + httpGet = { + path = "/readiness"; + port = 8081; + scheme = "HTTP"; + }; + initialDelaySeconds = 3; + timeoutSeconds = 5; + }; + resources = { + limits.memory = "170Mi"; + requests = { + cpu = "100m"; + memory = "70Mi"; + }; + }; + volumeMounts = [ + { + mountPath = "/kube-dns-config"; + name = "kube-dns-config"; + } + ]; + } + { + args = [ + "-v=2" + "-logtostderr" + "-configDir=/etc/k8s/dns/dnsmasq-nanny" + "-restartDnsmasq=true" + "--" + "-k" + "--cache-size=1000" + "--log-facility=-" + "--server=/${cfg.clusterDomain}/127.0.0.1#10053" + "--server=/in-addr.arpa/127.0.0.1#10053" + "--server=/ip6.arpa/127.0.0.1#10053" + ]; + image = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:${version}"; + livenessProbe = { + failureThreshold = 5; + httpGet = { + path = "/healthcheck/dnsmasq"; + port = 10054; + scheme = "HTTP"; + }; + initialDelaySeconds = 60; + successThreshold = 1; + timeoutSeconds = 5; + }; + name = "dnsmasq"; + ports = [ + { + containerPort = 53; + name = "dns"; + protocol = "UDP"; + } + { + containerPort = 53; + name = "dns-tcp"; + protocol = "TCP"; + } + ]; + resources = { + requests = { + cpu = "150m"; + memory = "20Mi"; + }; + }; + volumeMounts = [ + { + mountPath = "/etc/k8s/dns/dnsmasq-nanny"; + name = "kube-dns-config"; + } + ]; + } + { + name = "sidecar"; + image = "gcr.io/google_containers/k8s-dns-sidecar-amd64:${version}"; + args = [ + "--v=2" + "--logtostderr" + "--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.${cfg.clusterDomain},5,A" + "--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.${cfg.clusterDomain},5,A" + ]; + livenessProbe = { + failureThreshold = 5; + httpGet = { + path = "/metrics"; + port = 10054; + scheme = "HTTP"; + }; + initialDelaySeconds = 60; + successThreshold = 1; + timeoutSeconds = 5; + }; + ports = [ + { + containerPort = 10054; + name = "metrics"; + protocol = "TCP"; + } + ]; + resources = { + requests = { + cpu = "10m"; + memory = "20Mi"; + }; + }; + } + ]; + dnsPolicy = "Default"; + serviceAccountName = "kube-dns"; + tolerations = [ + { + key = "CriticalAddonsOnly"; + operator = "Exists"; + } + ]; + volumes = [ + { + configMap = { + name = "kube-dns"; + optional = true; + }; + name = "kube-dns-config"; + } + ]; + }; + }; + }; + }; + + kubedns-svc = { + apiVersion = "v1"; + kind = "Service"; + metadata = { + labels = { + "addonmanager.kubernetes.io/mode" = "Reconcile"; + "k8s-app" = "kube-dns"; + "kubernetes.io/cluster-service" = "true"; + "kubernetes.io/name" = "KubeDNS"; + }; + name = "kube-dns"; + namespace = "kube-system"; + }; + spec = { + clusterIP = cfg.clusterIp; + ports = [ + {name = "dns"; port = 53; protocol = "UDP";} + {name = "dns-tcp"; port = 53; protocol = "TCP";} + ]; + selector.k8s-app = "kube-dns"; + }; + }; + + kubedns-sa = { + apiVersion = "v1"; + kind = "ServiceAccount"; + metadata = { + name = "kube-dns"; + namespace = "kube-system"; + labels = { + "kubernetes.io/cluster-service" = "true"; + "addonmanager.kubernetes.io/mode" = "Reconcile"; + }; + }; + }; + + kubedns-cm = { + apiVersion = "v1"; + kind = "ConfigMap"; + metadata = { + name = "kube-dns"; + namespace = "kube-system"; + labels = { + "addonmanager.kubernetes.io/mode" = "EnsureExists"; + }; + }; + }; + }; + + services.kubernetes.kubelet.clusterDns = mkDefault cfg.clusterIp; + }; +} diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index ee38a42199e..fb91a29a400 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -36,9 +36,9 @@ in package = mkOption { type = types.package; - default = pkgs.slurm-llnl; - defaultText = "pkgs.slurm-llnl"; - example = literalExample "pkgs.slurm-llnl-full"; + default = pkgs.slurm; + defaultText = "pkgs.slurm"; + example = literalExample "pkgs.slurm-full"; description = '' The package to use for slurm binaries. ''; diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix index 533751734fa..846efc8b5b9 100644 --- a/nixos/modules/services/continuous-integration/buildbot/master.nix +++ b/nixos/modules/services/continuous-integration/buildbot/master.nix @@ -12,7 +12,7 @@ let factory = util.BuildFactory() c = BuildmasterConfig = dict( workers = [${concatStringsSep "," cfg.workers}], - protocols = { 'pb': {'port': ${cfg.bpPort} } }, + protocols = { 'pb': {'port': ${toString cfg.bpPort} } }, title = '${escapeStr cfg.title}', titleURL = '${escapeStr cfg.titleUrl}', buildbotURL = '${escapeStr cfg.buildbotUrl}', @@ -62,7 +62,7 @@ in { extraConfig = mkOption { type = types.str; description = "Extra configuration to append to master.cfg"; - default = ""; + default = "c['buildbotNetUsageData'] = None"; }; masterCfg = mkOption { @@ -92,10 +92,7 @@ in { workers = mkOption { type = types.listOf types.str; description = "List of Workers."; - default = [ - "worker.Worker('example-worker', 'pass')" - ]; - example = [ "worker.LocalWorker('example-worker')" ]; + default = [ "worker.Worker('example-worker', 'pass')" ]; }; status = mkOption { @@ -135,9 +132,8 @@ in { }; bpPort = mkOption { - default = "9989"; - type = types.string; - example = "tcp:10000:interface=127.0.0.1"; + default = 9989; + type = types.int; description = "Port where the master will listen to Buildbot Worker."; }; @@ -179,14 +175,14 @@ in { package = mkOption { type = types.package; - default = pkgs.buildbot-ui; - defaultText = "pkgs.buildbot-ui"; + default = pkgs.buildbot-full; + defaultText = "pkgs.buildbot-full"; description = "Package to use for buildbot."; example = literalExample "pkgs.buildbot-full"; }; packages = mkOption { - default = [ ]; + default = with pkgs; [ python27Packages.twisted git ]; example = literalExample "[ pkgs.git ]"; type = types.listOf types.package; description = "Packages to add to PATH for the buildbot process."; @@ -212,10 +208,18 @@ in { systemd.services.buildbot-master = { description = "Buildbot Continuous Integration Server."; - after = [ "network.target" ]; + after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; path = cfg.packages; + preStart = '' + env > envvars + mkdir -vp ${cfg.buildbotDir} + ln -sfv ${masterCfg} ${cfg.buildbotDir}/master.cfg + rm -fv $cfg.buildbotDir}/buildbot.tac + ${cfg.package}/bin/buildbot create-master ${cfg.buildbotDir} + ''; + serviceConfig = { Type = "simple"; User = cfg.user; @@ -224,20 +228,9 @@ in { ExecStart = "${cfg.package}/bin/buildbot start --nodaemon ${cfg.buildbotDir}"; }; - preStart = '' - ${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir} - ${pkgs.coreutils}/bin/ln -sfv ${masterCfg} ${cfg.buildbotDir}/master.cfg - ${cfg.package}/bin/buildbot create-master ${cfg.buildbotDir} - ''; - - postStart = '' - until [[ $(${pkgs.curl}/bin/curl -s --head -w '\n%{http_code}' http://localhost:${toString cfg.port} | tail -n1) =~ ^(200|403)$ ]]; do - sleep 1 - done - ''; }; }; - meta.maintainers = with lib.maintainers; [ nand0p Mic92 ]; + meta.maintainers = with lib.maintainers; [ nand0p mic92 ]; } diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix index e4ee4dd861e..a97f571e89d 100644 --- a/nixos/modules/services/continuous-integration/buildbot/worker.nix +++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix @@ -74,7 +74,7 @@ in { }; packages = mkOption { - default = [ ]; + default = with pkgs; [ python27Packages.twisted git ]; example = literalExample "[ pkgs.git ]"; type = types.listOf types.package; description = "Packages to add to PATH for the buildbot process."; @@ -106,7 +106,8 @@ in { path = cfg.packages; preStart = '' - ${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir} + mkdir -vp ${cfg.buildbotDir} + rm -fv $cfg.buildbotDir}/buildbot.tac ${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass} ''; @@ -115,7 +116,11 @@ in { User = cfg.user; Group = cfg.group; WorkingDirectory = cfg.home; - ExecStart = "${cfg.package}/bin/buildbot-worker start --nodaemon ${cfg.buildbotDir}"; + Environment = "PYTHONPATH=${cfg.package}/lib/python2.7/site-packages:${pkgs.python27Packages.future}/lib/python2.7/site-packages"; + + # NOTE: call twistd directly with stdout logging for systemd + #ExecStart = "${cfg.package}/bin/buildbot-worker start --nodaemon ${cfg.buildbotDir}"; + ExecStart = "${pkgs.python27Packages.twisted}/bin/twistd -n -l - -y ${cfg.buildbotDir}/buildbot.tac"; }; }; diff --git a/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixos/modules/services/continuous-integration/buildkite-agent.nix index 267bc16862c..9c06e1d43bb 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agent.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agent.nix @@ -9,9 +9,8 @@ let token="${cfg.token}" name="${cfg.name}" meta-data="${cfg.meta-data}" - hooks-path="${pkgs.buildkite-agent}/share/hooks" - build-path="/var/lib/buildkite-agent/builds" - bootstrap-script="${pkgs.buildkite-agent}/share/bootstrap.sh" + hooks-path="${cfg.package}/share/hooks" + build-path="${cfg.dataDir}" ''; in @@ -20,6 +19,26 @@ in services.buildkite-agent = { enable = mkEnableOption "buildkite-agent"; + package = mkOption { + default = pkgs.buildkite-agent; + defaultText = "pkgs.buildkite-agent"; + description = "Which buildkite-agent derivation to use"; + type = types.package; + }; + + dataDir = mkOption { + default = "/var/lib/buildkite-agent"; + description = "The workdir for the agent"; + type = types.str; + }; + + runtimePackages = mkOption { + default = [ pkgs.bash pkgs.nix ]; + defaultText = "[ pkgs.bash pkgs.nix ]"; + description = "Add programs to the buildkite-agent environment"; + type = types.listOf types.package; + }; + token = mkOption { type = types.str; description = '' @@ -62,27 +81,31 @@ in config = mkIf config.services.buildkite-agent.enable { users.extraUsers.buildkite-agent = { name = "buildkite-agent"; - home = "/var/lib/buildkite-agent"; + home = cfg.dataDir; createHome = true; description = "Buildkite agent user"; }; - environment.systemPackages = [ pkgs.buildkite-agent ]; + environment.systemPackages = [ cfg.package ]; systemd.services.buildkite-agent = { description = "Buildkite Agent"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - environment.HOME = "/var/lib/buildkite-agent"; + path = cfg.runtimePackages; + environment = config.networking.proxy.envVars // { + HOME = cfg.dataDir; + NIX_REMOTE = "daemon"; + }; preStart = '' - ${pkgs.coreutils}/bin/mkdir -m 0700 -p /var/lib/buildkite-agent/.ssh + ${pkgs.coreutils}/bin/mkdir -m 0700 -p ${cfg.dataDir}/.ssh - echo "${cfg.openssh.privateKey}" > /var/lib/buildkite-agent/.ssh/id_rsa - ${pkgs.coreutils}/bin/chmod 600 /var/lib/buildkite-agent/.ssh/id_rsa + echo "${cfg.openssh.privateKey}" > ${cfg.dataDir}/.ssh/id_rsa + ${pkgs.coreutils}/bin/chmod 600 ${cfg.dataDir}/.ssh/id_rsa - echo "${cfg.openssh.publicKey}" > /var/lib/buildkite-agent/.ssh/id_rsa.pub - ${pkgs.coreutils}/bin/chmod 600 /var/lib/buildkite-agent/.ssh/id_rsa.pub - ''; + echo "${cfg.openssh.publicKey}" > ${cfg.dataDir}/.ssh/id_rsa.pub + ${pkgs.coreutils}/bin/chmod 600 ${cfg.dataDir}/.ssh/id_rsa.pub + ''; serviceConfig = { ExecStart = "${pkgs.buildkite-agent}/bin/buildkite-agent start --config ${configFile}"; diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix index ba90b1b1a2c..6d5cea4f77a 100644 --- a/nixos/modules/services/continuous-integration/gitlab-runner.nix +++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix @@ -4,14 +4,82 @@ with lib; let cfg = config.services.gitlab-runner; - configFile = pkgs.writeText "config.toml" cfg.configText; + configFile = + if (cfg.configFile == null) then + (pkgs.runCommand "config.toml" { + buildInputs = [ pkgs.remarshal ]; + } '' + remarshal -if json -of toml \ + < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ + > $out + '') + else + cfg.configFile; + hasDocker = config.virtualisation.docker.enable; in { options.services.gitlab-runner = { enable = mkEnableOption "Gitlab Runner"; - configText = mkOption { - description = "Verbatim config.toml to use"; + configFile = mkOption { + default = null; + description = '' + Configuration file for gitlab-runner. + Use this option in favor of configOptions to avoid placing CI tokens in the nix store. + + takes precedence over . + + Warning: Not using will potentially result in secrets + leaking into the WORLD-READABLE nix store. + ''; + type = types.nullOr types.path; + }; + + configOptions = mkOption { + description = '' + Configuration for gitlab-runner + will take precedence over this option. + + Warning: all Configuration, especially CI token, will be stored in a + WORLD-READABLE file in the Nix Store. + + If you want to protect your CI token use instead. + ''; + type = types.attrs; + example = { + concurrent = 2; + runners = [{ + name = "docker-nix-1.11"; + url = "https://CI/"; + token = "TOKEN"; + executor = "docker"; + builds_dir = ""; + docker = { + host = ""; + image = "nixos/nix:1.11"; + privileged = true; + disable_cache = true; + cache_dir = ""; + }; + }]; + }; + }; + + gracefulTermination = mkOption { + default = false; + type = types.bool; + description = '' + Finish all remaining jobs before stopping, restarting or reconfiguring. + If not set gitlab-runner will stop immediatly without waiting for jobs to finish, + which will lead to failed builds. + ''; + }; + + gracefulTimeout = mkOption { + default = "infinity"; + type = types.str; + example = "5min 20s"; + description = ''Time to wait until a graceful shutdown is turned into a forceful one.''; }; workDir = mkOption { @@ -28,13 +96,25 @@ in example = literalExample "pkgs.gitlab-runner_1_11"; }; + packages = mkOption { + default = [ pkgs.bash pkgs.docker-machine ]; + defaultText = "[ pkgs.bash pkgs.docker-machine ]"; + type = types.listOf types.package; + description = '' + Packages to add to PATH for the gitlab-runner process. + ''; + }; + }; config = mkIf cfg.enable { systemd.services.gitlab-runner = { + path = cfg.packages; + environment = config.networking.proxy.envVars; description = "Gitlab Runner"; - after = [ "network.target" "docker.service" ]; - requires = [ "docker.service" ]; + after = [ "network.target" ] + ++ optional hasDocker "docker.service"; + requires = optional hasDocker "docker.service"; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = ''${cfg.package.bin}/bin/gitlab-runner run \ @@ -43,6 +123,11 @@ in --service gitlab-runner \ --user gitlab-runner \ ''; + + } // optionalAttrs (cfg.gracefulTermination) { + TimeoutStopSec = "${cfg.gracefulTimeout}"; + KillSignal = "SIGQUIT"; + KillMode = "process"; }; }; @@ -51,7 +136,7 @@ in users.extraUsers.gitlab-runner = { group = "gitlab-runner"; - extraGroups = [ "docker" ]; + extraGroups = optional hasDocker "docker"; uid = config.ids.uids.gitlab-runner; home = cfg.workDir; createHome = true; diff --git a/nixos/modules/services/continuous-integration/hail.nix b/nixos/modules/services/continuous-integration/hail.nix new file mode 100644 index 00000000000..5d0c3f7b4ab --- /dev/null +++ b/nixos/modules/services/continuous-integration/hail.nix @@ -0,0 +1,61 @@ +{ config, lib, pkgs, ...}: + +with lib; + +let + cfg = config.services.hail; +in { + + + ###### interface + + options.services.hail = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enables the Hail Auto Update Service. Hail can automatically deploy artifacts + built by a Hydra Continous Integration server. A common use case is to provide + continous deployment for single services or a full NixOS configuration.''; + }; + profile = mkOption { + type = types.str; + default = "hail-profile"; + description = "The name of the Nix profile used by Hail."; + }; + hydraJobUri = mkOption { + type = types.str; + description = "The URI of the Hydra Job."; + }; + netrc = mkOption { + type = types.nullOr types.path; + description = "The netrc file to use when fetching data from Hydra."; + default = null; + }; + package = mkOption { + type = types.package; + default = pkgs.haskellPackages.hail; + defaultText = "pkgs.haskellPackages.hail"; + description = "Hail package to use."; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + systemd.services.hail = { + description = "Hail Auto Update Service"; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ nix ]; + environment = { + HOME = "/var/lib/empty"; + }; + serviceConfig = { + ExecStart = "${cfg.package}/bin/hail --profile ${cfg.profile} --job-uri ${cfg.hydraJobUri}" + + lib.optionalString (cfg.netrc != null) " --netrc-file ${cfg.netrc}"; + }; + }; + }; +} diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix index 57f592a2e55..43fec5ff5bb 100644 --- a/nixos/modules/services/continuous-integration/hydra/default.nix +++ b/nixos/modules/services/continuous-integration/hydra/default.nix @@ -233,6 +233,7 @@ in hydra_logo ${cfg.logo} ''} gc_roots_dir ${cfg.gcRootsDir} + use-substitutes = ${if cfg.useSubstitutes then "1" else "0"} ''; environment.systemPackages = [ cfg.package ]; @@ -269,8 +270,8 @@ in ${optionalString haveLocalDB '' if ! [ -e ${baseDir}/.db-created ]; then - ${config.services.postgresql.package}/bin/createuser hydra - ${config.services.postgresql.package}/bin/createdb -O hydra hydra + ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createuser hydra + ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O hydra hydra touch ${baseDir}/.db-created fi ''} @@ -307,6 +308,7 @@ in requires = [ "hydra-init.service" ]; after = [ "hydra-init.service" ]; environment = serverEnv; + restartTriggers = [ hydraConf ]; serviceConfig = { ExecStart = "@${cfg.package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' " @@ -323,6 +325,7 @@ in requires = [ "hydra-init.service" ]; after = [ "hydra-init.service" "network.target" ]; path = [ cfg.package pkgs.nettools pkgs.openssh pkgs.bzip2 config.nix.package ]; + restartTriggers = [ hydraConf ]; environment = env // { PGPASSFILE = "${baseDir}/pgpass-queue-runner"; # grrr IN_SYSTEMD = "1"; # to get log severity levels @@ -343,7 +346,8 @@ in { wantedBy = [ "multi-user.target" ]; requires = [ "hydra-init.service" ]; after = [ "hydra-init.service" "network.target" ]; - path = [ cfg.package pkgs.nettools ]; + path = with pkgs; [ cfg.package nettools jq ]; + restartTriggers = [ hydraConf ]; environment = env; serviceConfig = { ExecStart = "@${cfg.package}/bin/hydra-evaluator hydra-evaluator"; diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index 4edbbf59a42..0dd59e4fb44 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -78,6 +78,13 @@ in { ''; }; + package = mkOption { + default = pkgs.jenkins; + defaultText = "pkgs.jenkins"; + type = types.package; + description = "Jenkins package to use."; + }; + packages = mkOption { default = [ pkgs.stdenv pkgs.git pkgs.jdk config.programs.ssh.package pkgs.nix ]; defaultText = "[ pkgs.stdenv pkgs.git pkgs.jdk config.programs.ssh.package pkgs.nix ]"; @@ -101,6 +108,22 @@ in { ''; }; + plugins = mkOption { + default = null; + type = types.nullOr (types.attrsOf types.package); + description = '' + A set of plugins to activate. Note that this will completely + remove and replace any previously installed plugins. If you + have manually-installed plugins that you want to keep while + using this module, set this option to + null. You can generate this set with a + tool such as jenkinsPlugins2nix. + ''; + example = literalExample '' + import path/to/jenkinsPlugins2nix-generated-plugins.nix { inherit (pkgs) fetchurl stdenv; } + ''; + }; + extraOptions = mkOption { type = types.listOf types.str; default = [ ]; @@ -109,6 +132,15 @@ in { Additional command line arguments to pass to Jenkins. ''; }; + + extraJavaOptions = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "-Xmx80m" ]; + description = '' + Additional command line arguments to pass to the Java run time (as opposed to Jenkins). + ''; + }; }; }; @@ -149,12 +181,27 @@ in { path = cfg.packages; # Force .war (re)extraction, or else we might run stale Jenkins. - preStart = '' - rm -rf ${cfg.home}/war - ''; + + preStart = + let replacePlugins = + if isNull cfg.plugins + then "" + else + let pluginCmds = lib.attrsets.mapAttrsToList + (n: v: "cp ${v} ${cfg.home}/plugins/${n}.hpi") + cfg.plugins; + in '' + rm -r ${cfg.home}/plugins || true + mkdir -p ${cfg.home}/plugins + ${lib.strings.concatStringsSep "\n" pluginCmds} + ''; + in '' + rm -rf ${cfg.home}/war + ${replacePlugins} + ''; script = '' - ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \ + ${pkgs.jdk}/bin/java ${concatStringsSep " " cfg.extraJavaOptions} -jar ${cfg.package}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \ --httpPort=${toString cfg.port} \ --prefix=${cfg.prefix} \ ${concatStringsSep " " cfg.extraOptions} diff --git a/nixos/modules/services/databases/clickhouse.nix b/nixos/modules/services/databases/clickhouse.nix new file mode 100644 index 00000000000..631d7f8cba7 --- /dev/null +++ b/nixos/modules/services/databases/clickhouse.nix @@ -0,0 +1,75 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.services.clickhouse; + confDir = "/etc/clickhouse-server"; + stateDir = "/var/lib/clickhouse"; +in +with lib; +{ + + ###### interface + + options = { + + services.clickhouse = { + + enable = mkOption { + default = false; + description = "Whether to enable ClickHouse database server."; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + users.extraUsers.clickhouse = { + name = "clickhouse"; + uid = config.ids.uids.clickhouse; + group = "clickhouse"; + description = "ClickHouse server user"; + }; + + users.extraGroups.clickhouse.gid = config.ids.gids.clickhouse; + + systemd.services.clickhouse = { + description = "ClickHouse server"; + + wantedBy = [ "multi-user.target" ]; + + after = [ "network.target" ]; + + preStart = '' + mkdir -p ${stateDir} + chown clickhouse:clickhouse ${confDir} ${stateDir} + ''; + + script = '' + cd "${confDir}" + exec ${pkgs.clickhouse}/bin/clickhouse-server + ''; + + serviceConfig = { + User = "clickhouse"; + Group = "clickhouse"; + PermissionsStartOnly = true; + }; + }; + + environment.etc = { + "clickhouse-server/config.xml" = { + source = "${pkgs.clickhouse}/etc/clickhouse-server/config.xml"; + }; + + "clickhouse-server/users.xml" = { + source = "${pkgs.clickhouse}/etc/clickhouse-server/users.xml"; + }; + }; + + }; + +} diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix index dd88624f406..15b711f57b1 100644 --- a/nixos/modules/services/databases/influxdb.nix +++ b/nixos/modules/services/databases/influxdb.nix @@ -68,9 +68,9 @@ let collectd = [{ enabled = false; - typesdb = "${pkgs.collectd}/share/collectd/types.db"; + typesdb = "${pkgs.collectd-data}/share/collectd/types.db"; database = "collectd_db"; - port = 25826; + bind-address = ":25826"; }]; opentsdb = [{ @@ -149,7 +149,6 @@ in type = types.attrs; }; }; - }; @@ -171,11 +170,16 @@ in mkdir -m 0770 -p ${cfg.dataDir} if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi ''; - postStart = mkBefore '' - until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://127.0.0.1${toString configOptions.http.bind-address}'/ping; do - sleep 1; - done - ''; + postStart = + let + scheme = if configOptions.http.https-enabled then "-k https" else "http"; + bindAddr = (ba: if hasPrefix ":" ba then "127.0.0.1${ba}" else "${ba}")(toString configOptions.http.bind-address); + in + mkBefore '' + until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${scheme}://${bindAddr}/ping; do + sleep 1; + done + ''; }; users.extraUsers = optional (cfg.user == "influxdb") { diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix index c56564f57f3..78dbf0d784c 100644 --- a/nixos/modules/services/databases/mongodb.nix +++ b/nixos/modules/services/databases/mongodb.nix @@ -108,7 +108,7 @@ in after = [ "network.target" ]; serviceConfig = { - ExecStart = "${mongodb}/bin/mongod --quiet --config ${mongoCnf} --fork --pidfilepath ${cfg.pidFile}"; + ExecStart = "${mongodb}/bin/mongod --config ${mongoCnf} --fork --pidfilepath ${cfg.pidFile}"; User = cfg.user; PIDFile = cfg.pidFile; Type = "forking"; diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix index fcf1f123cfb..845e6d4c22e 100644 --- a/nixos/modules/services/databases/mysql.nix +++ b/nixos/modules/services/databases/mysql.nix @@ -20,6 +20,7 @@ let '' [mysqld] port = ${toString cfg.port} + ${optionalString (cfg.bind != null) "bind-address = ${cfg.bind}" } ${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "log-bin=mysql-bin"} ${optionalString (cfg.replication.role == "master" || cfg.replication.role == "slave") "server-id = ${toString cfg.replication.serverId}"} ${optionalString (cfg.replication.role == "slave" && !atLeast55) @@ -29,6 +30,10 @@ let master-password = ${cfg.replication.masterPassword} master-port = ${toString cfg.replication.masterPort} ''} + ${optionalString (cfg.ensureUsers != []) + '' + plugin-load-add = auth_socket.so + ''} ${cfg.extraOptions} ''; @@ -58,6 +63,13 @@ in "; }; + bind = mkOption { + type = types.nullOr types.str; + default = null; + example = literalExample "0.0.0.0"; + description = "Address to bind to. The default it to bind to all addresses"; + }; + port = mkOption { type = types.int; default = 3306; @@ -72,7 +84,7 @@ in dataDir = mkOption { type = types.path; - default = "/var/mysql"; # !!! should be /var/db/mysql + example = "/var/lib/mysql"; description = "Location where MySQL stores its table files"; }; @@ -100,10 +112,13 @@ in initialDatabases = mkOption { default = []; - description = "List of database names and their initial schemas that should be used to create databases on the first startup of MySQL"; + description = '' + List of database names and their initial schemas that should be used to create databases on the first startup + of MySQL. The schema attribute is optional: If not specified, an empty database is created. + ''; example = [ { name = "foodatabase"; schema = literalExample "./foodatabase.sql"; } - { name = "bardatabase"; schema = literalExample "./bardatabase.sql"; } + { name = "bardatabase"; } ]; }; @@ -112,6 +127,46 @@ in description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database"; }; + ensureDatabases = mkOption { + default = []; + description = '' + Ensures that the specified databases exist. + This option will never delete existing databases, especially not when the value of this + option is changed. This means that databases created once through this option or + otherwise have to be removed manually. + ''; + example = [ + "nextcloud" + "piwik" + ]; + }; + + ensureUsers = mkOption { + default = []; + description = '' + Ensures that the specified users exist and have at least the ensured permissions. + The MySQL users will be identified using Unix socket authentication. This authenticates the Unix user with the + same name only, and that without the need for a password. + This option will never delete existing users or remove permissions, especially not when the value of this + option is changed. This means that users created and permissions assigned once through this option or + otherwise have to be removed manually. + ''; + example = [ + { + name = "nextcloud"; + ensurePermissions = { + "nextcloud.*" = "ALL PRIVILEGES"; + }; + } + { + name = "backup"; + ensurePermissions = { + "*.*" = "SELECT, LOCK TABLES"; + }; + } + ]; + }; + # FIXME: remove this option; it's a really bad idea. rootPassword = mkOption { default = null; @@ -166,6 +221,10 @@ in config = mkIf config.services.mysql.enable { + services.mysql.dataDir = + mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql" + else "/var/mysql"); + users.extraUsers.mysql = { description = "MySQL server user"; group = "mysql"; @@ -235,6 +294,8 @@ in if ! test -e "${cfg.dataDir}/${database.name}"; then echo "Creating initial database: ${database.name}" ( echo "create database ${database.name};" + + ${optionalString (database ? "schema") '' echo "use ${database.name};" if [ -f "${database.schema}" ] @@ -244,6 +305,7 @@ in then cat ${database.schema}/mysql-databases/*.sql fi + ''} ) | ${mysql}/bin/mysql -u root -N fi '') cfg.initialDatabases} @@ -287,6 +349,24 @@ in rm /tmp/mysql_init fi + + ${optionalString (cfg.ensureDatabases != []) '' + ( + ${concatMapStrings (database: '' + echo "CREATE DATABASE IF NOT EXISTS ${database};" + '') cfg.ensureDatabases} + ) | ${mysql}/bin/mysql -u root -N + ''} + + ${concatMapStrings (user: + '' + ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if mysql == pkgs.mariadb then "unix_socket" else "auth_socket"};" + ${concatStringsSep "\n" (mapAttrsToList (database: permission: '' + echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';" + '') user.ensurePermissions)} + ) | ${mysql}/bin/mysql -u root -N + '') cfg.ensureUsers} + ''; # */ }; diff --git a/nixos/modules/services/databases/pgmanage.nix b/nixos/modules/services/databases/pgmanage.nix new file mode 100644 index 00000000000..86733a3e5a0 --- /dev/null +++ b/nixos/modules/services/databases/pgmanage.nix @@ -0,0 +1,222 @@ +{ lib, pkgs, config, ... } : + +with lib; + +let + cfg = config.services.pgmanage; + + confFile = pkgs.writeTextFile { + name = "pgmanage.conf"; + text = '' + connection_file = ${pgmanageConnectionsFile} + + allow_custom_connections = ${builtins.toJSON cfg.allowCustomConnections} + + pgmanage_port = ${toString cfg.port} + + super_only = ${builtins.toJSON cfg.superOnly} + + ${optionalString (!isNull cfg.loginGroup) "login_group = ${cfg.loginGroup}"} + + login_timeout = ${toString cfg.loginTimeout} + + web_root = ${cfg.package}/etc/pgmanage/web_root + + data_root = ${cfg.dataRoot} + + ${optionalString (!isNull cfg.tls) '' + tls_cert = ${cfg.tls.cert} + tls_key = ${cfg.tls.key} + ''} + + log_level = ${cfg.logLevel} + ''; + }; + + pgmanageConnectionsFile = pkgs.writeTextFile { + name = "pgmanage-connections.conf"; + text = concatStringsSep "\n" + (mapAttrsToList (name : conn : "${name}: ${conn}") cfg.connections); + }; + + pgmanage = "pgmanage"; + + pgmanageOptions = { + enable = mkEnableOption "PostgreSQL Administration for the web"; + + package = mkOption { + type = types.package; + default = pkgs.pgmanage; + defaultText = "pkgs.pgmanage"; + description = '' + The pgmanage package to use. + ''; + }; + + connections = mkOption { + type = types.attrsOf types.str; + default = {}; + example = { + "nuc-server" = "hostaddr=192.168.0.100 port=5432 dbname=postgres"; + "mini-server" = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require"; + }; + description = '' + pgmanage requires at least one PostgreSQL server be defined. + + Detailed information about PostgreSQL connection strings is available at: + + + Note that you should not specify your user name or password. That + information will be entered on the login screen. If you specify a + username or password, it will be removed by pgmanage before attempting to + connect to a database. + ''; + }; + + allowCustomConnections = mkOption { + type = types.bool; + default = false; + description = '' + This tells pgmanage whether or not to allow anyone to use a custom + connection from the login screen. + ''; + }; + + port = mkOption { + type = types.int; + default = 8080; + description = '' + This tells pgmanage what port to listen on for browser requests. + ''; + }; + + localOnly = mkOption { + type = types.bool; + default = true; + description = '' + This tells pgmanage whether or not to set the listening socket to local + addresses only. + ''; + }; + + superOnly = mkOption { + type = types.bool; + default = true; + description = '' + This tells pgmanage whether or not to only allow super users to + login. The recommended value is true and will restrict users who are not + super users from logging in to any PostgreSQL instance through + pgmanage. Note that a connection will be made to PostgreSQL in order to + test if the user is a superuser. + ''; + }; + + loginGroup = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + This tells pgmanage to only allow users in a certain PostgreSQL group to + login to pgmanage. Note that a connection will be made to PostgreSQL in + order to test if the user is a member of the login group. + ''; + }; + + loginTimeout = mkOption { + type = types.int; + default = 3600; + description = '' + Number of seconds of inactivity before user is automatically logged + out. + ''; + }; + + dataRoot = mkOption { + type = types.str; + default = "/var/lib/pgmanage"; + description = '' + This tells pgmanage where to put the SQL file history. All tabs are saved + to this location so that if you get disconnected from pgmanage you + don't lose your work. + ''; + }; + + tls = mkOption { + type = types.nullOr (types.submodule { + options = { + cert = mkOption { + type = types.str; + description = "TLS certificate"; + }; + key = mkOption { + type = types.str; + description = "TLS key"; + }; + }; + }); + default = null; + description = '' + These options tell pgmanage where the TLS Certificate and Key files + reside. If you use these options then you'll only be able to access + pgmanage through a secure TLS connection. These options are only + necessary if you wish to connect directly to pgmanage using a secure TLS + connection. As an alternative, you can set up pgmanage in a reverse proxy + configuration. This allows your web server to terminate the secure + connection and pass on the request to pgmanage. You can find help to set + up this configuration in: + + ''; + }; + + logLevel = mkOption { + type = types.enum ["error" "warn" "notice" "info"]; + default = "error"; + description = '' + Verbosity of logs + ''; + }; + }; + + +in { + + options.services.pgmanage = pgmanageOptions; + + # This is deprecated and should be removed for NixOS-18.03. + options.services.postage = pgmanageOptions; + + config = mkMerge [ + { assertions = [ + { assertion = !config.services.postage.enable; + message = + "services.postage is deprecated in favour of pgmanage. " + + "They have the same options so just substitute postage for pgmanage." ; + } + ]; + } + (mkIf cfg.enable { + systemd.services.pgmanage = { + description = "pgmanage - PostgreSQL Administration for the web"; + wants = [ "postgresql.service" ]; + after = [ "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = pgmanage; + Group = pgmanage; + ExecStart = "${pkgs.pgmanage}/sbin/pgmanage -c ${confFile}" + + optionalString cfg.localOnly " --local-only=true"; + }; + }; + users = { + users."${pgmanage}" = { + name = pgmanage; + group = pgmanage; + home = cfg.dataRoot; + createHome = true; + }; + groups."${pgmanage}" = { + name = pgmanage; + }; + }; + }) + ]; +} diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index 24ef4637ec9..a23a0ebc736 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -38,6 +38,7 @@ let pre84 = versionOlder (builtins.parseDrvName postgresql.name).version "8.4"; + in { @@ -58,7 +59,7 @@ in package = mkOption { type = types.package; - example = literalExample "pkgs.postgresql92"; + example = literalExample "pkgs.postgresql96"; description = '' PostgreSQL package to use. ''; @@ -74,7 +75,7 @@ in dataDir = mkOption { type = types.path; - default = "/var/db/postgresql"; + example = "/var/lib/postgresql/9.6"; description = '' Data directory for PostgreSQL. ''; @@ -147,6 +148,16 @@ in Contents of the recovery.conf file. ''; }; + superUser = mkOption { + type = types.str; + default= if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root"; + internal = true; + description = '' + NixOS traditionally used `root` as superuser, most other distros use `postgres`. + From 17.09 we also try to follow this standard. Internal since changing this value + would lead to breakage while setting up databases. + ''; + }; }; }; @@ -160,7 +171,13 @@ in # Note: when changing the default, make it conditional on # ‘system.stateVersion’ to maintain compatibility with existing # systems! - mkDefault (if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql95 else pkgs.postgresql94); + mkDefault (if versionAtLeast config.system.stateVersion "17.09" then pkgs.postgresql96 + else if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql95 + else pkgs.postgresql94); + + services.postgresql.dataDir = + mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/postgresql/${config.services.postgresql.package.psqlSchema}" + else "/var/db/postgresql"); services.postgresql.authentication = mkAfter '' @@ -205,7 +222,7 @@ in '' # Initialise the database. if ! test -e ${cfg.dataDir}/PG_VERSION; then - initdb -U root + initdb -U ${cfg.superUser} # See postStart! touch "${cfg.dataDir}/.first_startup" fi @@ -237,14 +254,14 @@ in # Wait for PostgreSQL to be ready to accept connections. postStart = '' - while ! psql --port=${toString cfg.port} postgres -c "" 2> /dev/null; do + while ! ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql --port=${toString cfg.port} -d postgres -c "" 2> /dev/null; do if ! kill -0 "$MAINPID"; then exit 1; fi sleep 0.1 done if test -e "${cfg.dataDir}/.first_startup"; then ${optionalString (cfg.initialScript != null) '' - psql -f "${cfg.initialScript}" --port=${toString cfg.port} postgres + ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql -f "${cfg.initialScript}" --port=${toString cfg.port} -d postgres ''} rm -f "${cfg.dataDir}/.first_startup" fi diff --git a/nixos/modules/services/databases/rethinkdb.nix b/nixos/modules/services/databases/rethinkdb.nix new file mode 100644 index 00000000000..cd8c386b08d --- /dev/null +++ b/nixos/modules/services/databases/rethinkdb.nix @@ -0,0 +1,110 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.rethinkdb; + rethinkdb = cfg.package; +in + +{ + + ###### interface + + options = { + + services.rethinkdb = { + + enable = mkOption { + default = false; + description = "Whether to enable the RethinkDB server."; + }; + + #package = mkOption { + # default = pkgs.rethinkdb; + # description = "Which RethinkDB derivation to use."; + #}; + + user = mkOption { + default = "rethinkdb"; + description = "User account under which RethinkDB runs."; + }; + + group = mkOption { + default = "rethinkdb"; + description = "Group which rethinkdb user belongs to."; + }; + + dbpath = mkOption { + default = "/var/db/rethinkdb"; + description = "Location where RethinkDB stores its data, 1 data directory per instance."; + }; + + pidpath = mkOption { + default = "/var/run/rethinkdb"; + description = "Location where each instance's pid file is located."; + }; + + #cfgpath = mkOption { + # default = "/etc/rethinkdb/instances.d"; + # description = "Location where RethinkDB stores it config files, 1 config file per instance."; + #}; + + # TODO: currently not used by our implementation. + #instances = mkOption { + # type = types.attrsOf types.str; + # default = {}; + # description = "List of named RethinkDB instances in our cluster."; + #}; + + }; + + }; + + ###### implementation + config = mkIf config.services.rethinkdb.enable { + + environment.systemPackages = [ rethinkdb ]; + + systemd.services.rethinkdb = { + description = "RethinkDB server"; + + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + serviceConfig = { + # TODO: abstract away 'default', which is a per-instance directory name + # allowing end user of this nix module to provide multiple instances, + # and associated directory per instance + ExecStart = "${rethinkdb}/bin/rethinkdb -d ${cfg.dbpath}/default"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + User = cfg.user; + Group = cfg.group; + PIDFile = "${cfg.pidpath}/default.pid"; + PermissionsStartOnly = true; + }; + + preStart = '' + if ! test -e ${cfg.dbpath}; then + install -d -m0755 -o ${cfg.user} -g ${cfg.group} ${cfg.dbpath} + install -d -m0755 -o ${cfg.user} -g ${cfg.group} ${cfg.dbpath}/default + chown -R ${cfg.user}:${cfg.group} ${cfg.dbpath} + fi + if ! test -e "${cfg.pidpath}/default.pid"; then + install -D -o ${cfg.user} -g ${cfg.group} /dev/null "${cfg.pidpath}/default.pid" + fi + ''; + }; + + users.extraUsers.rethinkdb = mkIf (cfg.user == "rethinkdb") + { name = "rethinkdb"; + description = "RethinkDB server user"; + }; + + users.extraGroups = optionalAttrs (cfg.group == "rethinkdb") (singleton + { name = "rethinkdb"; + }); + + }; + +} diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix index 0e041fdbfbc..c5a000d5c6a 100644 --- a/nixos/modules/services/desktops/geoclue2.nix +++ b/nixos/modules/services/desktops/geoclue2.nix @@ -17,7 +17,7 @@ with lib; default = false; description = '' Whether to enable GeoClue 2 daemon, a DBus service - that provides location informationfor accessing. + that provides location information for accessing. ''; }; diff --git a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix index 6e4c59f4bb3..55ed2d9ee21 100644 --- a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix +++ b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix @@ -34,6 +34,8 @@ with lib; services.dbus.packages = [ pkgs.at_spi2_core ]; + systemd.packages = [ pkgs.at_spi2_core ]; + }; } diff --git a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix index 2db2e2fe1c3..86a47488d86 100644 --- a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix +++ b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,11 +30,11 @@ in config = mkIf config.services.gnome3.evolution-data-server.enable { - environment.systemPackages = [ gnome3.evolution_data_server ]; + environment.systemPackages = [ pkgs.gnome3.evolution_data_server ]; - services.dbus.packages = [ gnome3.evolution_data_server ]; + services.dbus.packages = [ pkgs.gnome3.evolution_data_server ]; - systemd.packages = [ gnome3.evolution_data_server ]; + systemd.packages = [ pkgs.gnome3.evolution_data_server ]; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-disks.nix b/nixos/modules/services/desktops/gnome3/gnome-disks.nix new file mode 100644 index 00000000000..139534cdb89 --- /dev/null +++ b/nixos/modules/services/desktops/gnome3/gnome-disks.nix @@ -0,0 +1,39 @@ +# GNOME Disks daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-disks = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Disks daemon, a service designed to + be a UDisks2 graphical front-end. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-disks.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-disk-utility ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-disk-utility ]; + + }; + +} diff --git a/nixos/modules/services/desktops/gnome3/gnome-documents.nix b/nixos/modules/services/desktops/gnome3/gnome-documents.nix index 88bbdadfcbd..f6efb668424 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-documents.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-documents.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,9 +30,9 @@ in config = mkIf config.services.gnome3.gnome-documents.enable { - environment.systemPackages = [ gnome3.gnome-documents ]; + environment.systemPackages = [ pkgs.gnome3.gnome-documents ]; - services.dbus.packages = [ gnome3.gnome-documents ]; + services.dbus.packages = [ pkgs.gnome3.gnome-documents ]; services.gnome3.gnome-online-accounts.enable = true; diff --git a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix index a36643a1cfb..2a68af5a7dd 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -34,9 +31,9 @@ in config = mkIf config.services.gnome3.gnome-keyring.enable { - environment.systemPackages = [ gnome3.gnome_keyring ]; + environment.systemPackages = [ pkgs.gnome3.gnome_keyring ]; - services.dbus.packages = [ gnome3.gnome_keyring gnome3.gcr ]; + services.dbus.packages = [ pkgs.gnome3.gnome_keyring pkgs.gnome3.gcr ]; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix index 82d04c62c70..0da4aca73ec 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,9 +30,9 @@ in config = mkIf config.services.gnome3.gnome-online-accounts.enable { - environment.systemPackages = [ gnome3.gnome_online_accounts ]; + environment.systemPackages = [ pkgs.gnome3.gnome_online_accounts ]; - services.dbus.packages = [ gnome3.gnome_online_accounts ]; + services.dbus.packages = [ pkgs.gnome3.gnome_online_accounts ]; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix index 6acd633b62c..d406bf6f5e3 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,9 +30,9 @@ in config = mkIf config.services.gnome3.gnome-online-miners.enable { - environment.systemPackages = [ gnome3.gnome-online-miners ]; + environment.systemPackages = [ pkgs.gnome3.gnome-online-miners ]; - services.dbus.packages = [ gnome3.gnome-online-miners ]; + services.dbus.packages = [ pkgs.gnome3.gnome-online-miners ]; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix b/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix index 384cede679c..3ac767bfa00 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,11 +30,11 @@ in config = mkIf config.services.gnome3.gnome-terminal-server.enable { - environment.systemPackages = [ gnome3.gnome_terminal ]; + environment.systemPackages = [ pkgs.gnome3.gnome_terminal ]; - services.dbus.packages = [ gnome3.gnome_terminal ]; + services.dbus.packages = [ pkgs.gnome3.gnome_terminal ]; - systemd.packages = [ gnome3.gnome_terminal ]; + systemd.packages = [ pkgs.gnome3.gnome_terminal ]; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix index e5c94cff7c8..1f6ce2ae968 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,9 +30,9 @@ in config = mkIf config.services.gnome3.gnome-user-share.enable { - environment.systemPackages = [ gnome3.gnome-user-share ]; + environment.systemPackages = [ pkgs.gnome3.gnome-user-share ]; - services.xserver.displayManager.sessionCommands = with gnome3; '' + services.xserver.displayManager.sessionCommands = with pkgs.gnome3; '' # Don't let gnome-control-center depend upon gnome-user-share export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name} ''; diff --git a/nixos/modules/services/desktops/gnome3/gpaste.nix b/nixos/modules/services/desktops/gnome3/gpaste.nix new file mode 100644 index 00000000000..5a8258775e0 --- /dev/null +++ b/nixos/modules/services/desktops/gnome3/gpaste.nix @@ -0,0 +1,27 @@ +# GPaste daemon. +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + options = { + services.gnome3.gpaste = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GPaste, a clipboard manager. + ''; + }; + }; + }; + + ###### implementation + config = mkIf config.services.gnome3.gpaste.enable { + environment.systemPackages = [ pkgs.gnome3.gpaste ]; + services.dbus.packages = [ pkgs.gnome3.gpaste ]; + services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ]; + systemd.packages = [ pkgs.gnome3.gpaste ]; + }; +} diff --git a/nixos/modules/services/desktops/gnome3/gvfs.nix b/nixos/modules/services/desktops/gnome3/gvfs.nix index 6bbabe8d3c5..4e99d191f18 100644 --- a/nixos/modules/services/desktops/gnome3/gvfs.nix +++ b/nixos/modules/services/desktops/gnome3/gvfs.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,11 +30,11 @@ in config = mkIf config.services.gnome3.gvfs.enable { - environment.systemPackages = [ gnome3.gvfs ]; + environment.systemPackages = [ pkgs.gnome3.gvfs ]; - services.dbus.packages = [ gnome3.gvfs ]; + services.dbus.packages = [ pkgs.gnome3.gvfs ]; - systemd.packages = [ gnome3.gvfs ]; + systemd.packages = [ pkgs.gnome3.gvfs ]; services.udev.packages = [ pkgs.libmtp.bin ]; diff --git a/nixos/modules/services/desktops/gnome3/seahorse.nix b/nixos/modules/services/desktops/gnome3/seahorse.nix index 45925aaca9b..e9ad738269e 100644 --- a/nixos/modules/services/desktops/gnome3/seahorse.nix +++ b/nixos/modules/services/desktops/gnome3/seahorse.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -32,9 +29,9 @@ in config = mkIf config.services.gnome3.seahorse.enable { - environment.systemPackages = [ gnome3.seahorse ]; + environment.systemPackages = [ pkgs.gnome3.seahorse ]; - services.dbus.packages = [ gnome3.seahorse ]; + services.dbus.packages = [ pkgs.gnome3.seahorse ]; }; diff --git a/nixos/modules/services/desktops/gnome3/sushi.nix b/nixos/modules/services/desktops/gnome3/sushi.nix index ff7f484602c..7a4389038b2 100644 --- a/nixos/modules/services/desktops/gnome3/sushi.nix +++ b/nixos/modules/services/desktops/gnome3/sushi.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -32,9 +29,9 @@ in config = mkIf config.services.gnome3.sushi.enable { - environment.systemPackages = [ gnome3.sushi ]; + environment.systemPackages = [ pkgs.gnome3.sushi ]; - services.dbus.packages = [ gnome3.sushi ]; + services.dbus.packages = [ pkgs.gnome3.sushi ]; }; diff --git a/nixos/modules/services/desktops/gnome3/tracker.nix b/nixos/modules/services/desktops/gnome3/tracker.nix index dcaa60103a3..c061f789049 100644 --- a/nixos/modules/services/desktops/gnome3/tracker.nix +++ b/nixos/modules/services/desktops/gnome3/tracker.nix @@ -4,9 +4,6 @@ with lib; -let - gnome3 = config.environment.gnome3.packageSet; -in { ###### interface @@ -33,11 +30,11 @@ in config = mkIf config.services.gnome3.tracker.enable { - environment.systemPackages = [ gnome3.tracker ]; + environment.systemPackages = [ pkgs.gnome3.tracker ]; - services.dbus.packages = [ gnome3.tracker ]; + services.dbus.packages = [ pkgs.gnome3.tracker ]; - systemd.packages = [ gnome3.tracker ]; + systemd.packages = [ pkgs.gnome3.tracker ]; }; diff --git a/nixos/modules/services/editors/emacs.xml b/nixos/modules/services/editors/emacs.xml index 9d6395ebd74..dd66bac442c 100644 --- a/nixos/modules/services/editors/emacs.xml +++ b/nixos/modules/services/editors/emacs.xml @@ -24,7 +24,7 @@ Emacs runs within a graphical desktop environment using the X Window System, but works equally well on a text terminal. Under - OS X, a "Mac port" edition is + macOS, a "Mac port" edition is available, which uses Apple's native GUI frameworks. @@ -84,7 +84,7 @@ Emacs 25 with the "Mac port" patches, providing a more - native look and feel under OS X. + native look and feel under macOS. diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix index e7f070d0877..1dc8ce93a0e 100644 --- a/nixos/modules/services/games/factorio.nix +++ b/nixos/modules/services/games/factorio.nix @@ -39,7 +39,7 @@ let admins = []; }; serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings)); - modDir = pkgs.factorio-mkModDirDrv cfg.mods; + modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods; in { options = { diff --git a/nixos/modules/services/hardware/amd-hybrid-graphics.nix b/nixos/modules/services/hardware/amd-hybrid-graphics.nix index 087bd0e0409..b0f9ff56d1b 100644 --- a/nixos/modules/services/hardware/amd-hybrid-graphics.nix +++ b/nixos/modules/services/hardware/amd-hybrid-graphics.nix @@ -25,15 +25,22 @@ path = [ pkgs.bash ]; description = "Disable AMD Card"; after = [ "sys-kernel-debug.mount" ]; - requires = [ "sys-kernel-debug.mount" ]; - wantedBy = [ "multi-user.target" ]; + before = [ "systemd-vconsole-setup.service" "display-manager.service" ]; + requires = [ "sys-kernel-debug.mount" "vgaswitcheroo.path" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - ExecStart = "${pkgs.bash}/bin/sh -c 'echo -e \"IGD\\nOFF\" > /sys/kernel/debug/vgaswitcheroo/switch; exit 0'"; - ExecStop = "${pkgs.bash}/bin/sh -c 'echo ON >/sys/kernel/debug/vgaswitcheroo/switch; exit 0'"; + ExecStart = "${pkgs.bash}/bin/sh -c 'echo -e \"IGD\\nOFF\" > /sys/kernel/debug/vgaswitcheroo/switch'"; + ExecStop = "${pkgs.bash}/bin/sh -c 'echo ON >/sys/kernel/debug/vgaswitcheroo/switch'"; }; }; + systemd.paths."vgaswitcheroo" = { + pathConfig = { + PathExists = "/sys/kernel/debug/vgaswitcheroo/switch"; + Unit = "amd-hybrid-graphics.service"; + }; + wantedBy = ["multi-user.target"]; + }; }; } diff --git a/nixos/modules/services/hardware/interception-tools.nix b/nixos/modules/services/hardware/interception-tools.nix new file mode 100644 index 00000000000..fadcb19a016 --- /dev/null +++ b/nixos/modules/services/hardware/interception-tools.nix @@ -0,0 +1,61 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.interception-tools; +in { + options.services.interception-tools = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the interception tools service."; + }; + + plugins = mkOption { + type = types.listOf types.package; + default = [ pkgs.interception-tools-plugins.caps2esc ]; + description = '' + A list of interception tools plugins that will be made available to use + inside the udevmon configuration. + ''; + }; + + udevmonConfig = mkOption { + type = types.either types.str types.path; + default = '' + - JOB: "intercept -g $DEVNODE | caps2esc | uinput -d $DEVNODE" + DEVICE: + EVENTS: + EV_KEY: [KEY_CAPSLOCK, KEY_ESC] + ''; + example = '' + - JOB: "intercept -g $DEVNODE | y2z | x2y | uinput -d $DEVNODE" + DEVICE: + EVENTS: + EV_KEY: [KEY_X, KEY_Y] + ''; + description = '' + String of udevmon YAML configuration, or path to a udevmon YAML + configuration file. + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.interception-tools = { + description = "Interception tools"; + path = [ pkgs.bash pkgs.interception-tools ] ++ cfg.plugins; + serviceConfig = { + ExecStart = '' + ${pkgs.interception-tools}/bin/udevmon -c \ + ${if builtins.typeOf cfg.udevmonConfig == "path" + then cfg.udevmonConfig + else pkgs.writeText "udevmon.yaml" cfg.udevmonConfig} + ''; + Nice = -20; + }; + wantedBy = [ "multi-user.target" ]; + }; + }; +} diff --git a/nixos/modules/services/hardware/tlp.nix b/nixos/modules/services/hardware/tlp.nix index 3b108c87edd..68425822a88 100644 --- a/nixos/modules/services/hardware/tlp.nix +++ b/nixos/modules/services/hardware/tlp.nix @@ -57,6 +57,8 @@ in powerManagement.scsiLinkPolicy = null; powerManagement.cpuFreqGovernor = null; + systemd.sockets."systemd-rfkill".enable = false; + systemd.services = { "systemd-rfkill@".enable = false; "systemd-rfkill".enable = false; diff --git a/nixos/modules/services/logging/SystemdJournal2Gelf.nix b/nixos/modules/services/logging/SystemdJournal2Gelf.nix new file mode 100644 index 00000000000..e90d9e7a12b --- /dev/null +++ b/nixos/modules/services/logging/SystemdJournal2Gelf.nix @@ -0,0 +1,59 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.services.SystemdJournal2Gelf; +in + +{ options = { + services.SystemdJournal2Gelf = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable SystemdJournal2Gelf. + ''; + }; + + graylogServer = mkOption { + type = types.string; + example = "graylog2.example.com:11201"; + description = '' + Host and port of your graylog2 input. This should be a GELF + UDP input. + ''; + }; + + extraOptions = mkOption { + type = types.string; + default = ""; + description = '' + Any extra flags to pass to SystemdJournal2Gelf. Note that + these are basically journalctl flags. + ''; + }; + + package = mkOption { + type = types.package; + default = pkgs.systemd-journal2gelf; + description = '' + SystemdJournal2Gelf package to use. + ''; + }; + + }; + }; + + config = mkIf cfg.enable { + systemd.services.SystemdJournal2Gelf = { + description = "SystemdJournal2Gelf"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${cfg.package}/bin/SystemdJournal2Gelf ${cfg.graylogServer} --follow ${cfg.extraOptions}"; + Restart = "on-failure"; + RestartSec = "30"; + }; + }; + }; +} \ No newline at end of file diff --git a/nixos/modules/services/logging/fluentd.nix b/nixos/modules/services/logging/fluentd.nix index 9fbec245737..95825705d9d 100644 --- a/nixos/modules/services/logging/fluentd.nix +++ b/nixos/modules/services/logging/fluentd.nix @@ -4,6 +4,8 @@ with lib; let cfg = config.services.fluentd; + + pluginArgs = concatStringsSep " " (map (x: "-p ${x}") cfg.plugins); in { ###### interface @@ -28,6 +30,15 @@ in { defaultText = "pkgs.fluentd"; description = "The fluentd package to use."; }; + + plugins = mkOption { + type = types.listOf types.path; + default = []; + description = '' + A list of plugin paths to pass into fluentd. It will make plugins defined in ruby files + there available in your config. + ''; + }; }; }; @@ -39,7 +50,7 @@ in { description = "Fluentd Daemon"; wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${cfg.package}/bin/fluentd -c ${pkgs.writeText "fluentd.conf" cfg.config}"; + ExecStart = "${cfg.package}/bin/fluentd -c ${pkgs.writeText "fluentd.conf" cfg.config} ${pluginArgs}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; }; }; diff --git a/nixos/modules/services/logging/graylog.nix b/nixos/modules/services/logging/graylog.nix index 9f0fb11f025..a0dc0d6d089 100644 --- a/nixos/modules/services/logging/graylog.nix +++ b/nixos/modules/services/logging/graylog.nix @@ -11,9 +11,7 @@ let password_secret = ${cfg.passwordSecret} root_username = ${cfg.rootUsername} root_password_sha2 = ${cfg.rootPasswordSha2} - elasticsearch_cluster_name = ${cfg.elasticsearchClusterName} - elasticsearch_discovery_zen_ping_multicast_enabled = ${boolToString cfg.elasticsearchDiscoveryZenPingMulticastEnabled} - elasticsearch_discovery_zen_ping_unicast_hosts = ${cfg.elasticsearchDiscoveryZenPingUnicastHosts} + elasticsearch_hosts = ${concatStringsSep "," cfg.elasticsearchHosts} message_journal_dir = ${cfg.messageJournalDir} mongodb_uri = ${cfg.mongodbUri} plugin_dir = /var/lib/graylog/plugins @@ -91,22 +89,10 @@ in ''; }; - elasticsearchClusterName = mkOption { - type = types.str; - example = "graylog"; - description = "This must be the same as for your Elasticsearch cluster"; - }; - - elasticsearchDiscoveryZenPingMulticastEnabled = mkOption { - type = types.bool; - default = false; - description = "Whether to use elasticsearch multicast discovery"; - }; - - elasticsearchDiscoveryZenPingUnicastHosts = mkOption { - type = types.str; - default = "127.0.0.1:9300"; - description = "Tells Graylogs Elasticsearch client how to find other cluster members. See Elasticsearch documentation for details"; + elasticsearchHosts = mkOption { + type = types.listOf types.str; + example = literalExample ''[ "http://node1:9200" "http://user:password@node2:19200" ]''; + description = "List of valid URIs of the http ports of your elastic nodes. If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that requires authentication"; }; messageJournalDir = mkOption { diff --git a/nixos/modules/services/logging/heartbeat.nix b/nixos/modules/services/logging/heartbeat.nix new file mode 100644 index 00000000000..b595ac07bf5 --- /dev/null +++ b/nixos/modules/services/logging/heartbeat.nix @@ -0,0 +1,72 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.heartbeat; + + heartbeatYml = pkgs.writeText "heartbeat.yml" '' + name: ${cfg.name} + tags: ${builtins.toJSON cfg.tags} + + ${cfg.extraConfig} + ''; + +in +{ + options = { + + services.heartbeat = { + + enable = mkEnableOption "heartbeat"; + + name = mkOption { + type = types.str; + default = "heartbeat"; + description = "Name of the beat"; + }; + + tags = mkOption { + type = types.listOf types.str; + default = []; + description = "Tags to place on the shipped log messages"; + }; + + stateDir = mkOption { + type = types.str; + default = "/var/lib/heartbeat"; + description = "The state directory. heartbeat's own logs and other data are stored here."; + }; + + extraConfig = mkOption { + type = types.lines; + default = '' + heartbeat.monitors: + - type: http + urls: ["http://localhost:9200"] + schedule: '@every 10s' + ''; + description = "Any other configuration options you want to add"; + }; + + }; + }; + + config = mkIf cfg.enable { + + systemd.services.heartbeat = with pkgs; { + description = "heartbeat log shipper"; + wantedBy = [ "multi-user.target" ]; + preStart = '' + mkdir -p "${cfg.stateDir}"/{data,logs} + chown nobody:nogroup "${cfg.stateDir}"/{data,logs} + ''; + serviceConfig = { + User = "nobody"; + PermissionsStartOnly = true; + AmbientCapabilities = "cap_net_raw"; + ExecStart = "${pkgs.heartbeat}/bin/heartbeat -c \"${heartbeatYml}\" -path.data \"${cfg.stateDir}/data\" -path.logs \"${cfg.stateDir}/logs\""; + }; + }; + }; +} diff --git a/nixos/modules/services/logging/journalwatch.nix b/nixos/modules/services/logging/journalwatch.nix new file mode 100644 index 00000000000..d49795fe2b7 --- /dev/null +++ b/nixos/modules/services/logging/journalwatch.nix @@ -0,0 +1,246 @@ +{ config, lib, pkgs, services, ... }: +with lib; + +let + cfg = config.services.journalwatch; + user = "journalwatch"; + dataDir = "/var/lib/${user}"; + + journalwatchConfig = pkgs.writeText "config" ('' + # (File Generated by NixOS journalwatch module.) + [DEFAULT] + mail_binary = ${cfg.mailBinary} + priority = ${toString cfg.priority} + mail_from = ${cfg.mailFrom} + '' + + optionalString (cfg.mailTo != null) '' + mail_to = ${cfg.mailTo} + '' + + cfg.extraConfig); + + journalwatchPatterns = pkgs.writeText "patterns" '' + # (File Generated by NixOS journalwatch module.) + + ${mkPatterns cfg.filterBlocks} + ''; + + # empty line at the end needed to to separate the blocks + mkPatterns = filterBlocks: concatStringsSep "\n" (map (block: '' + ${block.match} + ${block.filters} + + '') filterBlocks); + + +in { + options = { + services.journalwatch = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, periodically check the journal with journalwatch and report the results by mail. + ''; + }; + + priority = mkOption { + type = types.int; + default = 6; + description = '' + Lowest priority of message to be considered. + A value between 7 ("debug"), and 0 ("emerg"). Defaults to 6 ("info"). + If you don't care about anything with "info" priority, you can reduce + this to e.g. 5 ("notice") to considerably reduce the amount of + messages without needing many . + ''; + }; + + # HACK: this is a workaround for journalwatch's usage of socket.getfqdn() which always returns localhost if + # there's an alias for the localhost on a separate line in /etc/hosts, or take for ages if it's not present and + # then return something right-ish in the direction of /etc/hostname. Just bypass it completely. + mailFrom = mkOption { + type = types.str; + default = "journalwatch@${config.networking.hostName}"; + description = '' + Mail address to send journalwatch reports from. + ''; + }; + + mailTo = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Mail address to send journalwatch reports to. + ''; + }; + + mailBinary = mkOption { + type = types.path; + default = "/run/wrappers/bin/sendmail"; + description = '' + Sendmail-compatible binary to be used to send the messages. + ''; + }; + + extraConfig = mkOption { + type = types.str; + default = ""; + description = '' + Extra lines to be added verbatim to the journalwatch/config configuration file. + You can add any commandline argument to the config, without the '--'. + See journalwatch --help for all arguments and their description. + ''; + }; + + filterBlocks = mkOption { + type = types.listOf (types.submodule { + options = { + match = mkOption { + type = types.str; + example = "SYSLOG_IDENTIFIER = systemd"; + description = '' + Syntax: field = value + Specifies the log entry field this block should apply to. + If the field of a message matches this value, + this patternBlock's are applied. + If value starts and ends with a slash, it is interpreted as + an extended python regular expression, if not, it's an exact match. + The journal fields are explained in systemd.journal-fields(7). + ''; + }; + + filters = mkOption { + type = types.str; + example = '' + (Stopped|Stopping|Starting|Started) .* + (Reached target|Stopped target) .* + ''; + description = '' + The filters to apply on all messages which satisfy . + Any of those messages that match any specified filter will be removed from journalwatch's output. + Each filter is an extended Python regular expression. + You can specify multiple filters and separate them by newlines. + Lines starting with '#' are comments. Inline-comments are not permitted. + ''; + }; + }; + }); + + example = [ + # examples taken from upstream + { + match = "_SYSTEMD_UNIT = systemd-logind.service"; + filters = '' + New session [a-z]?\d+ of user \w+\. + Removed session [a-z]?\d+\. + ''; + } + + { + match = "SYSLOG_IDENTIFIER = /(CROND|crond)/"; + filters = '' + pam_unix\(crond:session\): session (opened|closed) for user \w+ + \(\w+\) CMD .* + ''; + } + ]; + + # another example from upstream. + # very useful on priority = 6, and required as journalwatch throws an error when no pattern is defined at all. + default = [ + { + match = "SYSLOG_IDENTIFIER = systemd"; + filters = '' + (Stopped|Stopping|Starting|Started) .* + (Created slice|Removed slice) user-\d*\.slice\. + Received SIGRTMIN\+24 from PID .* + (Reached target|Stopped target) .* + Startup finished in \d*ms\. + ''; + } + ]; + + + description = '' + filterBlocks can be defined to blacklist journal messages which are not errors. + Each block matches on a log entry field, and the filters in that block then are matched + against all messages with a matching log entry field. + + All messages whose PRIORITY is at least 6 (INFO) are processed by journalwatch. + If you don't specify any filterBlocks, PRIORITY is reduced to 5 (NOTICE) by default. + + All regular expressions are extended Python regular expressions, for details + see: http://doc.pyschools.com/html/regex.html + ''; + }; + + interval = mkOption { + type = types.str; + default = "hourly"; + description = '' + How often to run journalwatch. + + The format is described in systemd.time(7). + ''; + }; + accuracy = mkOption { + type = types.str; + default = "10min"; + description = '' + The time window around the interval in which the journalwatch run will be scheduled. + + The format is described in systemd.time(7). + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + users.extraUsers.${user} = { + isSystemUser = true; + createHome = true; + home = dataDir; + # for journal access + group = "systemd-journal"; + }; + + systemd.services.journalwatch = { + environment = { + XDG_DATA_HOME = "${dataDir}/share"; + XDG_CONFIG_HOME = "${dataDir}/config"; + }; + serviceConfig = { + User = user; + Type = "oneshot"; + PermissionsStartOnly = true; + ExecStart = "${pkgs.python3Packages.journalwatch}/bin/journalwatch mail"; + # lowest CPU and IO priority, but both still in best-effort class to prevent starvation + Nice=19; + IOSchedulingPriority=7; + }; + preStart = '' + chown -R ${user}:systemd-journal ${dataDir} + chmod -R u+rwX,go-w ${dataDir} + mkdir -p ${dataDir}/config/journalwatch + ln -sf ${journalwatchConfig} ${dataDir}/config/journalwatch/config + ln -sf ${journalwatchPatterns} ${dataDir}/config/journalwatch/patterns + ''; + }; + + systemd.timers.journalwatch = { + description = "Periodic journalwatch run"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = cfg.interval; + AccuracySec = cfg.accuracy; + Persistent = true; + }; + }; + + }; + + meta = { + maintainers = with stdenv.lib.maintainers; [ florianjacob ]; + }; +} diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix index c9477b9e3ab..b4abd2cd7e5 100644 --- a/nixos/modules/services/logging/logstash.nix +++ b/nixos/modules/services/logging/logstash.nix @@ -4,17 +4,46 @@ with lib; let cfg = config.services.logstash; + atLeast54 = versionAtLeast (builtins.parseDrvName cfg.package.name).version "5.4"; pluginPath = lib.concatStringsSep ":" cfg.plugins; havePluginPath = lib.length cfg.plugins > 0; ops = lib.optionalString; - verbosityFlag = { - debug = "--debug"; - info = "--verbose"; - warn = ""; # intentionally empty - error = "--quiet"; - fatal = "--silent"; - }."${cfg.logLevel}"; + verbosityFlag = + if atLeast54 + then "--log.level " + cfg.logLevel + else { + debug = "--debug"; + info = "--verbose"; + warn = ""; # intentionally empty + error = "--quiet"; + fatal = "--silent"; + }."${cfg.logLevel}"; + pluginsPath = + if atLeast54 + then "--path.plugins ${pluginPath}" + else "--pluginpath ${pluginPath}"; + + logstashConf = pkgs.writeText "logstash.conf" '' + input { + ${cfg.inputConfig} + } + + filter { + ${cfg.filterConfig} + } + + output { + ${cfg.outputConfig} + } + ''; + + logstashSettingsYml = pkgs.writeText "logstash.yml" cfg.extraSettings; + + logstashSettingsDir = pkgs.runCommand "logstash-settings" {inherit logstashSettingsYml;} '' + mkdir -p $out + ln -s $logstashSettingsYml $out/logstash.yml + ''; in { @@ -45,6 +74,15 @@ in description = "The paths to find other logstash plugins in."; }; + dataDir = mkOption { + type = types.str; + default = "/var/lib/logstash"; + description = '' + A path to directory writable by logstash that it uses to store data. + Plugins will also have access to this path. + ''; + }; + logLevel = mkOption { type = types.enum [ "debug" "info" "warn" "error" "fatal" ]; default = "warn"; @@ -116,6 +154,19 @@ in ''; }; + extraSettings = mkOption { + type = types.lines; + default = ""; + description = "Extra Logstash settings in YAML format."; + example = '' + pipeline: + batch: + size: 125 + delay: 5 + ''; + }; + + }; }; @@ -123,31 +174,34 @@ in ###### implementation config = mkIf cfg.enable { + assertions = [ + { assertion = atLeast54 -> !cfg.enableWeb; + message = '' + The logstash web interface is only available for versions older than 5.4. + So either set services.logstash.enableWeb = false, + or set services.logstash.package to an older logstash. + ''; + } + ]; + systemd.services.logstash = with pkgs; { description = "Logstash Daemon"; wantedBy = [ "multi-user.target" ]; environment = { JAVA_HOME = jre; }; path = [ pkgs.bash ]; serviceConfig = { - ExecStart = - "${cfg.package}/bin/logstash agent " + - "-w ${toString cfg.filterWorkers} " + - ops havePluginPath "--pluginpath ${pluginPath} " + - "${verbosityFlag} " + - "-f ${writeText "logstash.conf" '' - input { - ${cfg.inputConfig} - } - - filter { - ${cfg.filterConfig} - } - - output { - ${cfg.outputConfig} - } - ''} " + - ops cfg.enableWeb "-- web -a ${cfg.listenAddress} -p ${cfg.port}"; + ExecStartPre = ''${pkgs.coreutils}/bin/mkdir -p "${cfg.dataDir}" ; ${pkgs.coreutils}/bin/chmod 700 "${cfg.dataDir}"''; + ExecStart = concatStringsSep " " (filter (s: stringLength s != 0) [ + "${cfg.package}/bin/logstash" + (ops (!atLeast54) "agent") + "-w ${toString cfg.filterWorkers}" + (ops havePluginPath pluginsPath) + "${verbosityFlag}" + "-f ${logstashConf}" + (ops atLeast54 "--path.settings ${logstashSettingsDir}") + (ops atLeast54 "--path.data ${cfg.dataDir}") + (ops cfg.enableWeb "-- web -a ${cfg.listenAddress} -p ${cfg.port}") + ]); }; }; }; diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix index 3b25e41edb1..6057acc531a 100644 --- a/nixos/modules/services/mail/dovecot.nix +++ b/nixos/modules/services/mail/dovecot.nix @@ -9,6 +9,8 @@ let baseDir = "/run/dovecot2"; stateDir = "/var/lib/dovecot"; + canCreateMailUserGroup = cfg.mailUser != null && cfg.mailGroup != null; + dovecotConf = concatStrings [ '' base_dir = ${baseDir} @@ -60,6 +62,39 @@ let } '') + '' + protocol imap { + namespace inbox { + inbox=yes + ${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)} + } + } + '' + + (optionalString cfg.enableQuota '' + mail_plugins = $mail_plugins quota + service quota-status { + executable = ${dovecotPkg}/libexec/dovecot/quota-status -p postfix + inet_listener { + port = ${cfg.quotaPort} + } + client_limit = 1 + } + + protocol imap { + mail_plugins = $mail_plugins imap_quota + } + + plugin { + quota_rule = *:storage=${cfg.quotaGlobalPerUser} + quota = maildir:User quota # per virtual mail user quota # BUG/FIXME broken, we couldn't get this working + quota_status_success = DUNNO + quota_status_nouser = DUNNO + quota_status_overquota = "552 5.2.2 Mailbox is full" + quota_grace = 10%% + } + '') + cfg.extraConfig ]; @@ -68,6 +103,34 @@ let paths = map (pkg: "${pkg}/lib/dovecot") ([ dovecotPkg ] ++ map (module: module.override { dovecot = dovecotPkg; }) cfg.modules); }; + mailboxConfig = mailbox: '' + mailbox ${mailbox.name} { + auto = ${toString mailbox.auto} + '' + optionalString (mailbox.specialUse != null) '' + special_use = \${toString mailbox.specialUse} + '' + "}"; + + mailboxes = { lib, pkgs, ... }: { + options = { + name = mkOption { + type = types.str; + example = "Spam"; + description = "The name of the mailbox."; + }; + auto = mkOption { + type = types.enum [ "no" "create" "subscribe" ]; + default = "no"; + example = "subscribe"; + description = "Whether to automatically create or create and subscribe to the mailbox or not."; + }; + specialUse = mkOption { + type = types.nullOr (types.enum [ "All" "Archive" "Drafts" "Flagged" "Junk" "Sent" "Trash" ]); + default = null; + example = "Junk"; + description = "Null if no special use flag is set. Other than that every use flag mentioned in the RFC is valid."; + }; + }; + }; in { @@ -76,7 +139,7 @@ in enablePop3 = mkOption { type = types.bool; - default = true; + default = false; description = "Start the POP3 listener (when Dovecot is enabled)."; }; @@ -145,6 +208,14 @@ in description = "Default group to store mail for virtual users."; }; + createMailUser = mkOption { + type = types.bool; + default = true; + description = ''Whether to automatically create the user + given in and the group + given in .''; + }; + modules = mkOption { type = types.listOf types.package; default = []; @@ -191,6 +262,36 @@ in default = false; description = "Show the PAM failure message on authentication error (useful for OTPW)."; }; + + mailboxes = mkOption { + type = types.listOf (types.submodule mailboxes); + default = []; + example = [ { name = "Spam"; specialUse = "Junk"; auto = "create"; } ]; + description = "Configure mailboxes and auto create or subscribe them."; + }; + + enableQuota = mkOption { + type = types.bool; + default = false; + example = true; + description = "Whether to enable the dovecot quota service."; + }; + + quotaPort = mkOption { + type = types.str; + default = "12340"; + description = '' + The Port the dovecot quota service binds to. + If using postfix, add check_policy_service inet:localhost:12340 to your smtpd_recipient_restrictions in your postfix config. + ''; + }; + quotaGlobalPerUser = mkOption { + type = types.str; + default = "100G"; + example = "10G"; + description = "Quota limit for the user in bytes. Supports suffixes b, k, M, G, T and %."; + }; + }; @@ -214,11 +315,20 @@ in uid = config.ids.uids.dovecot2; description = "Dovecot user"; group = cfg.group; - }; + } + ++ optional (cfg.createMailUser && cfg.mailUser != null) + ({ name = cfg.mailUser; + description = "Virtual Mail User"; + } // optionalAttrs (cfg.mailGroup != null) { + group = cfg.mailGroup; + }); users.extraGroups = optional (cfg.group == "dovecot2") { name = "dovecot2"; gid = config.ids.gids.dovecot2; + } + ++ optional (cfg.createMailUser && cfg.mailGroup != null) + { name = cfg.mailGroup; }; environment.etc."dovecot/modules".source = modulesDir; diff --git a/nixos/modules/services/mail/mailhog.nix b/nixos/modules/services/mail/mailhog.nix new file mode 100644 index 00000000000..206fb50d31a --- /dev/null +++ b/nixos/modules/services/mail/mailhog.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.mailhog; +in { + ###### interface + + options = { + + services.mailhog = { + enable = mkEnableOption "MailHog"; + user = mkOption { + type = types.str; + default = "mailhog"; + description = "User account under which mailhog runs."; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + + users.extraUsers.mailhog = { + name = cfg.user; + description = "MailHog service user"; + }; + + systemd.services.mailhog = { + description = "MailHog service"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.mailhog}/bin/MailHog"; + User = cfg.user; + }; + }; + }; +} diff --git a/nixos/modules/services/mail/mlmmj.nix b/nixos/modules/services/mail/mlmmj.nix index 4a01745eb8b..b6439b44fb5 100644 --- a/nixos/modules/services/mail/mlmmj.nix +++ b/nixos/modules/services/mail/mlmmj.nix @@ -4,6 +4,8 @@ with lib; let + concatMapLines = f: l: lib.concatStringsSep "\n" (map f l); + cfg = config.services.mlmmj; stateDir = "/var/lib/mlmmj"; spoolDir = "/var/spool/mlmmj"; @@ -16,13 +18,24 @@ let listAddress = domain: list: "${list}@${domain}"; customHeaders = domain: list: [ "List-Id: ${list}" "Reply-To: ${list}@${domain}" ]; footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}"; - createList = d: l: '' - ${pkgs.coreutils}/bin/mkdir -p ${listCtl d l} - echo ${listAddress d l} > ${listCtl d l}/listaddress - echo "${lib.concatStringsSep "\n" (customHeaders d l)}" > ${listCtl d l}/customheaders - echo ${footer d l} > ${listCtl d l}/footer - echo ${subjectPrefix l} > ${listCtl d l}/prefix - ''; + createList = d: l: + let ctlDir = listCtl d l; in + '' + for DIR in incoming queue queue/discarded archive text subconf unsubconf \ + bounce control moderation subscribers.d digesters.d requeue \ + nomailsubs.d + do + mkdir -p '${listDir d l}'/"$DIR" + done + ${pkgs.coreutils}/bin/mkdir -p ${ctlDir} + echo ${listAddress d l} > '${ctlDir}/listaddress' + [ ! -e ${ctlDir}/customheaders ] && \ + echo "${lib.concatStringsSep "\n" (customHeaders d l)}" > '${ctlDir}/customheaders' + [ ! -e ${ctlDir}/footer ] && \ + echo ${footer d l} > '${ctlDir}/footer' + [ ! -e ${ctlDir}/prefix ] && \ + echo ${subjectPrefix l} > '${ctlDir}/prefix' + ''; in { @@ -63,6 +76,16 @@ in description = "The collection of hosted maillists"; }; + maintInterval = mkOption { + type = types.str; + default = "20min"; + description = '' + Time interval between mlmmj-maintd runs, see + systemd.time + 7 for format information. + ''; + }; + }; }; @@ -93,7 +116,7 @@ in mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nexthop ''; - extraAliases = concatMapStrings (alias cfg.listDomain) cfg.mailLists; + extraAliases = concatMapLines (alias cfg.listDomain) cfg.mailLists; extraConfig = '' transport_maps = hash:${stateDir}/transports @@ -107,17 +130,15 @@ in system.activationScripts.mlmmj = '' ${pkgs.coreutils}/bin/mkdir -p ${stateDir} ${spoolDir}/${cfg.listDomain} ${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${spoolDir} - ${lib.concatMapStrings (createList cfg.listDomain) cfg.mailLists} - echo ${lib.concatMapStrings (virtual cfg.listDomain) cfg.mailLists} > ${stateDir}/virtuals - echo ${lib.concatMapStrings (transport cfg.listDomain) cfg.mailLists} > ${stateDir}/transports + ${concatMapLines (createList cfg.listDomain) cfg.mailLists} + echo "${concatMapLines (virtual cfg.listDomain) cfg.mailLists}" > ${stateDir}/virtuals + echo "${concatMapLines (transport cfg.listDomain) cfg.mailLists}" > ${stateDir}/transports ${pkgs.postfix}/bin/postmap ${stateDir}/virtuals ${pkgs.postfix}/bin/postmap ${stateDir}/transports ''; systemd.services."mlmmj-maintd" = { description = "mlmmj maintenance daemon"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { User = cfg.user; Group = cfg.group; @@ -125,6 +146,11 @@ in }; }; + systemd.timers."mlmmj-maintd" = { + description = "mlmmj maintenance timer"; + timerConfig.OnUnitActiveSec = cfg.maintInterval; + wantedBy = [ "timers.target" ]; + }; }; } diff --git a/nixos/modules/services/mail/nullmailer.nix b/nixos/modules/services/mail/nullmailer.nix new file mode 100644 index 00000000000..59cb512c115 --- /dev/null +++ b/nixos/modules/services/mail/nullmailer.nix @@ -0,0 +1,244 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + + options = { + + services.nullmailer = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable nullmailer daemon."; + }; + + user = mkOption { + type = types.string; + default = "nullmailer"; + description = '' + User to use to run nullmailer-send. + ''; + }; + + group = mkOption { + type = types.string; + default = "nullmailer"; + description = '' + Group to use to run nullmailer-send. + ''; + }; + + setSendmail = mkOption { + type = types.bool; + default = true; + description = "Whether to set the system sendmail to nullmailer's."; + }; + + remotesFile = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Path to the remotes control file. This file contains a + list of remote servers to which to send each message. + + See man 8 nullmailer-send for syntax and available + options. + ''; + }; + + config = { + adminaddr = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + If set, all recipients to users at either "localhost" (the literal string) + or the canonical host name (from the me control attribute) are remapped to this address. + This is provided to allow local daemons to be able to send email to + "somebody@localhost" and have it go somewhere sensible instead of being bounced + by your relay host. To send to multiple addresses, + put them all on one line separated by a comma. + ''; + }; + + allmailfrom = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + If set, content will override the envelope sender on all messages. + ''; + }; + + defaultdomain = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The content of this attribute is appended to any host name that + does not contain a period (except localhost), including defaulthost + and idhost. Defaults to the value of the me attribute, if it exists, + otherwise the literal name defauldomain. + ''; + }; + + defaulthost = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The content of this attribute is appended to any address that + is missing a host name. Defaults to the value of the me control + attribute, if it exists, otherwise the literal name defaulthost. + ''; + }; + + doublebounceto = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + If the original sender was empty (the original message was a + delivery status or disposition notification), the double bounce + is sent to the address in this attribute. + ''; + }; + + helohost = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Sets the environment variable $HELOHOST which is used by the + SMTP protocol module to set the parameter given to the HELO command. + Defaults to the value of the me configuration attribute. + ''; + }; + + idhost = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The content of this attribute is used when building the message-id + string for the message. Defaults to the canonicalized value of defaulthost. + ''; + }; + + maxpause = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The maximum time to pause between successive queue runs, in seconds. + Defaults to 24 hours (86400). + ''; + }; + + me = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The fully-qualifiled host name of the computer running nullmailer. + Defaults to the literal name me. + ''; + }; + + pausetime = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The minimum time to pause between successive queue runs when there + are messages in the queue, in seconds. Defaults to 1 minute (60). + Each time this timeout is reached, the timeout is doubled to a + maximum of maxpause. After new messages are injected, the timeout + is reset. If this is set to 0, nullmailer-send will exit + immediately after going through the queue once (one-shot mode). + ''; + }; + + remotes = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + A list of remote servers to which to send each message. Each line + contains a remote host name or address followed by an optional + protocol string, separated by white space. + + See man 8 nullmailer-send for syntax and available + options. + + WARNING: This is stored world-readable in the nix store. If you need + to specify any secret credentials here, consider using the + remotesFile option instead. + ''; + }; + + sendtimeout = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The time to wait for a remote module listed above to complete sending + a message before killing it and trying again, in seconds. + Defaults to 1 hour (3600). If this is set to 0, nullmailer-send + will wait forever for messages to complete sending. + ''; + }; + }; + }; + }; + + config = let + cfg = config.services.nullmailer; + in mkIf cfg.enable { + + assertions = [ + { assertion = cfg.config.remotes == null || cfg.remotesFile == null; + message = "Only one of `remotesFile` or `config.remotes` may be used at a time."; + } + ]; + + environment = { + systemPackages = [ pkgs.nullmailer ]; + etc = let + validAttrs = filterAttrs (name: value: value != null) cfg.config; + in + (foldl' (as: name: as // { "nullmailer/${name}".text = validAttrs.${name}; }) {} (attrNames validAttrs)) + // optionalAttrs (cfg.remotesFile != null) { "nullmailer/remotes".source = cfg.remotesFile; }; + }; + + users = { + extraUsers = singleton { + name = cfg.user; + description = "Nullmailer relay-only mta user"; + group = cfg.group; + }; + + extraGroups = singleton { + name = cfg.group; + }; + }; + + systemd.services.nullmailer = { + description = "nullmailer"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + preStart = '' + mkdir -p /var/spool/nullmailer/{queue,tmp} + rm -f /var/spool/nullmailer/trigger && mkfifo -m 660 /var/spool/nullmailer/trigger + chown ${cfg.user} /var/spool/nullmailer/* + ''; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + PermissionsStartOnly=true; + ExecStart = "${pkgs.nullmailer}/bin/nullmailer-send"; + Restart = "always"; + }; + }; + + services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail { + program = "sendmail"; + source = "${pkgs.nullmailer}/bin/sendmail"; + owner = cfg.user; + group = cfg.group; + setuid = true; + setgid = true; + }; + }; +} diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix index f065208ddfc..59a8373843a 100644 --- a/nixos/modules/services/mail/opendkim.nix +++ b/nixos/modules/services/mail/opendkim.nix @@ -8,10 +8,12 @@ let defaultSock = "local:/run/opendkim/opendkim.sock"; + keyFile = "${cfg.keyPath}/${cfg.selector}.private"; + args = [ "-f" "-l" "-p" cfg.socket "-d" cfg.domains - "-k" cfg.keyFile + "-k" keyFile "-s" cfg.selector ] ++ optionals (cfg.configFile != null) [ "-x" cfg.configFile ]; @@ -57,9 +59,13 @@ in { ''; }; - keyFile = mkOption { + keyPath = mkOption { type = types.path; - description = "Secret key file used for signing messages."; + description = '' + The path that opendkim should put its generated private keys into. + The DNS settings will be found in this directory with the name selector.txt. + ''; + default = "/var/lib/opendkim/keys"; }; selector = mkOption { @@ -100,11 +106,25 @@ in { after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + preStart = '' + mkdir -p "${cfg.keyPath}" + cd "${cfg.keyPath}" + if ! test -f ${cfg.selector}.private; then + ${pkgs.opendkim}/bin/opendkim-genkey -s ${cfg.selector} -d all-domains-generic-key + echo "Generated OpenDKIM key! Please update your DNS settings:\n" + echo "-------------------------------------------------------------" + cat ${cfg.selector}.txt + echo "-------------------------------------------------------------" + fi + chown ${cfg.user}:${cfg.group} ${cfg.selector}.private + ''; + serviceConfig = { ExecStart = "${pkgs.opendkim}/bin/opendkim ${escapeShellArgs args}"; User = cfg.user; Group = cfg.group; RuntimeDirectory = optional (cfg.socket == defaultSock) "opendkim"; + PermissionsStartOnly = true; }; }; diff --git a/nixos/modules/services/mail/pfix-srsd.nix b/nixos/modules/services/mail/pfix-srsd.nix new file mode 100644 index 00000000000..ab5f4c39e8c --- /dev/null +++ b/nixos/modules/services/mail/pfix-srsd.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.pfix-srsd = { + enable = mkOption { + default = false; + type = types.bool; + description = "Whether to run the postfix sender rewriting scheme daemon."; + }; + + domain = mkOption { + description = "The domain for which to enable srs"; + type = types.str; + example = "example.com"; + }; + + secretsFile = mkOption { + description = '' + The secret data used to encode the SRS address. + to generate, use a command like: + for n in $(seq 5); do dd if=/dev/urandom count=1 bs=1024 status=none | sha256sum | sed 's/ -$//' | sed 's/^/ /'; done + ''; + type = types.path; + default = "/var/lib/pfix-srsd/secrets"; + }; + }; + }; + + ###### implementation + + config = mkIf config.services.pfix-srsd.enable { + environment = { + systemPackages = [ pkgs.pfixtools ]; + }; + + systemd.services."pfix-srsd" = { + description = "Postfix sender rewriting scheme daemon"; + before = [ "postfix.service" ]; + #note that we use requires rather than wants because postfix + #is unable to process (almost) all mail without srsd + requiredBy = [ "postfix.service" ]; + serviceConfig = { + Type = "forking"; + PIDFile = "/var/run/pfix-srsd.pid"; + ExecStart = "${pkgs.pfixtools}/bin/pfix-srsd -p /var/run/pfix-srsd.pid -I ${config.services.pfix-srsd.domain} ${config.services.pfix-srsd.secretsFile}"; + }; + }; + }; +} \ No newline at end of file diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix index caaa87b94d6..867c0ea6761 100644 --- a/nixos/modules/services/mail/postfix.nix +++ b/nixos/modules/services/mail/postfix.nix @@ -9,7 +9,8 @@ let group = cfg.group; setgidGroup = cfg.setgidGroup; - haveAliases = cfg.postmasterAlias != "" || cfg.rootAlias != "" || cfg.extraAliases != ""; + haveAliases = cfg.postmasterAlias != "" || cfg.rootAlias != "" + || cfg.extraAliases != ""; haveTransport = cfg.transport != ""; haveVirtual = cfg.virtual != ""; @@ -25,149 +26,283 @@ let clientRestrictions = concatStringsSep ", " (clientAccess ++ dnsBl); - mainCf = - '' - compatibility_level = 9999 + mainCf = let + escape = replaceStrings ["$"] ["$$"]; + mkList = items: "\n " + concatStringsSep "\n " items; + mkVal = value: + if isList value then mkList value + else " " + (if value == true then "yes" + else if value == false then "no" + else toString value); + mkEntry = name: value: "${escape name} =${mkVal value}"; + in + concatStringsSep "\n" (mapAttrsToList mkEntry (recursiveUpdate defaultConf cfg.config)) + + "\n" + cfg.extraConfig; - mail_owner = ${user} - default_privs = nobody + defaultConf = { + compatibility_level = "9999"; + mail_owner = user; + default_privs = "nobody"; - # NixOS specific locations - data_directory = /var/lib/postfix/data - queue_directory = /var/lib/postfix/queue + # NixOS specific locations + data_directory = "/var/lib/postfix/data"; + queue_directory = "/var/lib/postfix/queue"; - # Default location of everything in package - meta_directory = ${pkgs.postfix}/etc/postfix - command_directory = ${pkgs.postfix}/bin - sample_directory = /etc/postfix - newaliases_path = ${pkgs.postfix}/bin/newaliases - mailq_path = ${pkgs.postfix}/bin/mailq - readme_directory = no - sendmail_path = ${pkgs.postfix}/bin/sendmail - daemon_directory = ${pkgs.postfix}/libexec/postfix - manpage_directory = ${pkgs.postfix}/share/man - html_directory = ${pkgs.postfix}/share/postfix/doc/html - shlib_directory = no + # Default location of everything in package + meta_directory = "${pkgs.postfix}/etc/postfix"; + command_directory = "${pkgs.postfix}/bin"; + sample_directory = "/etc/postfix"; + newaliases_path = "${pkgs.postfix}/bin/newaliases"; + mailq_path = "${pkgs.postfix}/bin/mailq"; + readme_directory = false; + sendmail_path = "${pkgs.postfix}/bin/sendmail"; + daemon_directory = "${pkgs.postfix}/libexec/postfix"; + manpage_directory = "${pkgs.postfix}/share/man"; + html_directory = "${pkgs.postfix}/share/postfix/doc/html"; + shlib_directory = false; + relayhost = if cfg.relayHost == "" then "" else + if cfg.lookupMX + then "${cfg.relayHost}:${toString cfg.relayPort}" + else "[${cfg.relayHost}]:${toString cfg.relayPort}"; - '' - + optionalString config.networking.enableIPv6 '' - inet_protocols = all - '' - + (if cfg.networks != null then - '' - mynetworks = ${concatStringsSep ", " cfg.networks} - '' - else if cfg.networksStyle != "" then - '' - mynetworks_style = ${cfg.networksStyle} - '' - else - "") - + optionalString (cfg.hostname != "") '' - myhostname = ${cfg.hostname} - '' - + optionalString (cfg.domain != "") '' - mydomain = ${cfg.domain} - '' - + optionalString (cfg.origin != "") '' - myorigin = ${cfg.origin} - '' - + optionalString (cfg.destination != null) '' - mydestination = ${concatStringsSep ", " cfg.destination} - '' - + optionalString (cfg.relayDomains != null) '' - relay_domains = ${concatStringsSep ", " cfg.relayDomains} - '' - + '' - relayhost = ${if cfg.lookupMX || cfg.relayHost == "" then - cfg.relayHost - else - "[" + cfg.relayHost + "]"} + mail_spool_directory = "/var/spool/mail/"; + setgid_group = setgidGroup; + } + // optionalAttrs config.networking.enableIPv6 { inet_protocols = "all"; } + // optionalAttrs (cfg.networks != null) { mynetworks = cfg.networks; } + // optionalAttrs (cfg.networksStyle != "") { mynetworks_style = cfg.networksStyle; } + // optionalAttrs (cfg.hostname != "") { myhostname = cfg.hostname; } + // optionalAttrs (cfg.domain != "") { mydomain = cfg.domain; } + // optionalAttrs (cfg.origin != "") { myorigin = cfg.origin; } + // optionalAttrs (cfg.destination != null) { mydestination = cfg.destination; } + // optionalAttrs (cfg.relayDomains != null) { relay_domains = cfg.relayDomains; } + // optionalAttrs (cfg.recipientDelimiter != "") { recipient_delimiter = cfg.recipientDelimiter; } + // optionalAttrs haveAliases { alias_maps = "${cfg.aliasMapType}:/etc/postfix/aliases"; } + // optionalAttrs haveTransport { transport_maps = "hash:/etc/postfix/transport"; } + // optionalAttrs haveVirtual { virtual_alias_maps = "${cfg.virtualMapType}:/etc/postfix/virtual"; } + // optionalAttrs (cfg.dnsBlacklists != []) { smtpd_client_restrictions = clientRestrictions; } + // optionalAttrs cfg.useSrs { + sender_canonical_maps = "tcp:127.0.0.1:10001"; + sender_canonical_classes = "envelope_sender"; + recipient_canonical_maps = "tcp:127.0.0.1:10002"; + recipient_canonical_classes= "envelope_recipient"; + } + // optionalAttrs cfg.enableHeaderChecks { header_checks = "regexp:/etc/postfix/header_checks"; } + // optionalAttrs (cfg.sslCert != "") { + smtp_tls_CAfile = cfg.sslCACert; + smtp_tls_cert_file = cfg.sslCert; + smtp_tls_key_file = cfg.sslKey; - mail_spool_directory = /var/spool/mail/ + smtp_use_tls = true; - setgid_group = ${setgidGroup} - '' - + optionalString (cfg.sslCert != "") '' + smtpd_tls_CAfile = cfg.sslCACert; + smtpd_tls_cert_file = cfg.sslCert; + smtpd_tls_key_file = cfg.sslKey; - smtp_tls_CAfile = ${cfg.sslCACert} - smtp_tls_cert_file = ${cfg.sslCert} - smtp_tls_key_file = ${cfg.sslKey} + smtpd_use_tls = true; + }; - smtp_use_tls = yes + masterCfOptions = { options, config, name, ... }: { + options = { + name = mkOption { + type = types.str; + default = name; + example = "smtp"; + description = '' + The name of the service to run. Defaults to the attribute set key. + ''; + }; - smtpd_tls_CAfile = ${cfg.sslCACert} - smtpd_tls_cert_file = ${cfg.sslCert} - smtpd_tls_key_file = ${cfg.sslKey} + type = mkOption { + type = types.enum [ "inet" "unix" "fifo" "pass" ]; + default = "unix"; + example = "inet"; + description = "The type of the service"; + }; - smtpd_use_tls = yes - '' - + optionalString (cfg.recipientDelimiter != "") '' - recipient_delimiter = ${cfg.recipientDelimiter} - '' - + optionalString haveAliases '' - alias_maps = hash:/etc/postfix/aliases - '' - + optionalString haveTransport '' - transport_maps = hash:/etc/postfix/transport - '' - + optionalString haveVirtual '' - virtual_alias_maps = hash:/etc/postfix/virtual - '' - + optionalString (cfg.dnsBlacklists != []) '' - smtpd_client_restrictions = ${clientRestrictions} - '' - + cfg.extraConfig; + private = mkOption { + type = types.bool; + example = false; + description = '' + Whether the service's sockets and storage directory is restricted to + be only available via the mail system. If null is + given it uses the postfix default true. + ''; + }; - masterCf = '' - # ========================================================================== - # service type private unpriv chroot wakeup maxproc command + args - # (yes) (yes) (no) (never) (100) - # ========================================================================== - smtp inet n - n - - smtpd - '' + optionalString cfg.enableSubmission '' - submission inet n - n - - smtpd - ${concatStringsSep "\n " (mapAttrsToList (x: y: "-o " + x + "=" + y) cfg.submissionOptions)} - '' - + '' - pickup unix n - n 60 1 pickup - cleanup unix n - n - 0 cleanup - qmgr unix n - n 300 1 qmgr - tlsmgr unix - - n 1000? 1 tlsmgr - rewrite unix - - n - - trivial-rewrite - bounce unix - - n - 0 bounce - defer unix - - n - 0 bounce - trace unix - - n - 0 bounce - verify unix - - n - 1 verify - flush unix n - n 1000? 0 flush - proxymap unix - - n - - proxymap - proxywrite unix - - n - 1 proxymap - '' - + optionalString cfg.enableSmtp '' - smtp unix - - n - - smtp - relay unix - - n - - smtp - -o smtp_fallback_relay= - # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 - '' - + '' - showq unix n - n - - showq - error unix - - n - - error - retry unix - - n - - error - discard unix - - n - - discard - local unix - n n - - local - virtual unix - n n - - virtual - lmtp unix - - n - - lmtp - anvil unix - - n - 1 anvil - scache unix - - n - 1 scache - ${cfg.extraMasterConf} - ''; + privileged = mkOption { + type = types.bool; + example = true; + description = ""; + }; - aliases = + chroot = mkOption { + type = types.bool; + example = true; + description = '' + Whether the service is chrooted to have only access to the + and the closure of + store paths specified by the option. + ''; + }; + + wakeup = mkOption { + type = types.int; + example = 60; + description = '' + Automatically wake up the service after the specified number of + seconds. If 0 is given, never wake the service + up. + ''; + }; + + wakeupUnusedComponent = mkOption { + type = types.bool; + example = false; + description = '' + If set to false the component will only be woken + up if it is used. This is equivalent to postfix' notion of adding a + question mark behind the wakeup time in + master.cf + ''; + }; + + maxproc = mkOption { + type = types.int; + example = 1; + description = '' + The maximum number of processes to spawn for this service. If the + value is 0 it doesn't have any limit. If + null is given it uses the postfix default of + 100. + ''; + }; + + command = mkOption { + type = types.str; + default = name; + example = "smtpd"; + description = '' + A program name specifying a Postfix service/daemon process. + By default it's the attribute . + ''; + }; + + args = mkOption { + type = types.listOf types.str; + default = []; + example = [ "-o" "smtp_helo_timeout=5" ]; + description = '' + Arguments to pass to the . There is no shell + processing involved and shell syntax is passed verbatim to the + process. + ''; + }; + + rawEntry = mkOption { + type = types.listOf types.str; + default = []; + internal = true; + description = '' + The raw configuration line for the master.cf. + ''; + }; + }; + + config.rawEntry = let + mkBool = bool: if bool then "y" else "n"; + mkArg = arg: "${optionalString (hasPrefix "-" arg) "\n "}${arg}"; + + maybeOption = fun: option: + if options.${option}.isDefined then fun config.${option} else "-"; + + # This is special, because we have two options for this value. + wakeup = let + wakeupDefined = options.wakeup.isDefined; + wakeupUCDefined = options.wakeupUnusedComponent.isDefined; + finalValue = toString config.wakeup + + optionalString (wakeupUCDefined && !config.wakeupUnusedComponent) "?"; + in if wakeupDefined then finalValue else "-"; + + in [ + config.name + config.type + (maybeOption mkBool "private") + (maybeOption (b: mkBool (!b)) "privileged") + (maybeOption mkBool "chroot") + wakeup + (maybeOption toString "maxproc") + (config.command + " " + concatMapStringsSep " " mkArg config.args) + ]; + }; + + masterCfContent = let + + labels = [ + "# service" "type" "private" "unpriv" "chroot" "wakeup" "maxproc" + "command + args" + ]; + + labelDefaults = [ + "# " "" "(yes)" "(yes)" "(no)" "(never)" "(100)" "" "" + ]; + + masterCf = mapAttrsToList (const (getAttr "rawEntry")) cfg.masterConfig; + + # A list of the maximum width of the columns across all lines and labels + maxWidths = let + foldLine = line: acc: let + columnLengths = map stringLength line; + in zipListsWith max acc columnLengths; + # We need to handle the last column specially here, because it's + # open-ended (command + args). + lines = [ labels labelDefaults ] ++ (map (l: init l ++ [""]) masterCf); + in fold foldLine (genList (const 0) (length labels)) lines; + + # Pad a string with spaces from the right (opposite of fixedWidthString). + pad = width: str: let + padWidth = width - stringLength str; + padding = concatStrings (genList (const " ") padWidth); + in str + optionalString (padWidth > 0) padding; + + # It's + 2 here, because that's the amount of spacing between columns. + fullWidth = fold (width: acc: acc + width + 2) 0 maxWidths; + + formatLine = line: concatStringsSep " " (zipListsWith pad maxWidths line); + + formattedLabels = let + sep = "# " + concatStrings (genList (const "=") (fullWidth + 5)); + lines = [ sep (formatLine labels) (formatLine labelDefaults) sep ]; + in concatStringsSep "\n" lines; + + in formattedLabels + "\n" + concatMapStringsSep "\n" formatLine masterCf + "\n" + cfg.extraMasterConf; + + headerCheckOptions = { ... }: + { + options = { + pattern = mkOption { + type = types.str; + default = "/^.*/"; + example = "/^X-Mailer:/"; + description = "A regexp pattern matching the header"; + }; + action = mkOption { + type = types.str; + default = "DUNNO"; + example = "BCC mail@example.com"; + description = "The action to be executed when the pattern is matched"; + }; + }; + }; + + headerChecks = concatStringsSep "\n" (map (x: "${x.pattern} ${x.action}") cfg.headerChecks) + cfg.extraHeaderChecks; + + aliases = let seperator = if cfg.aliasMapType == "hash" then ":" else ""; in optionalString (cfg.postmasterAlias != "") '' - postmaster: ${cfg.postmasterAlias} + postmaster${seperator} ${cfg.postmasterAlias} '' + optionalString (cfg.rootAlias != "") '' - root: ${cfg.rootAlias} + root${seperator} ${cfg.rootAlias} '' + cfg.extraAliases ; @@ -176,8 +311,9 @@ let virtualFile = pkgs.writeText "postfix-virtual" cfg.virtual; checkClientAccessFile = pkgs.writeText "postfix-check-client-access" cfg.dnsBlacklistOverrides; mainCfFile = pkgs.writeText "postfix-main.cf" mainCf; - masterCfFile = pkgs.writeText "postfix-master.cf" masterCf; + masterCfFile = pkgs.writeText "postfix-master.cf" masterCfContent; transportFile = pkgs.writeText "postfix-transport" cfg.transport; + headerChecksFile = pkgs.writeText "postfix-header-checks" headerChecks; in @@ -199,27 +335,29 @@ in default = true; description = "Whether to enable smtp in master.cf."; }; - + enableSubmission = mkOption { type = types.bool; default = false; - description = "Whether to enable smtp submission"; + description = "Whether to enable smtp submission."; }; submissionOptions = mkOption { type = types.attrs; - default = { "smtpd_tls_security_level" = "encrypt"; - "smtpd_sasl_auth_enable" = "yes"; - "smtpd_client_restrictions" = "permit_sasl_authenticated,reject"; - "milter_macro_daemon_name" = "ORIGINATING"; - }; + default = { + smtpd_tls_security_level = "encrypt"; + smtpd_sasl_auth_enable = "yes"; + smtpd_client_restrictions = "permit_sasl_authenticated,reject"; + milter_macro_daemon_name = "ORIGINATING"; + }; + example = { + smtpd_tls_security_level = "encrypt"; + smtpd_sasl_auth_enable = "yes"; + smtpd_sasl_type = "dovecot"; + smtpd_client_restrictions = "permit_sasl_authenticated,reject"; + milter_macro_daemon_name = "ORIGINATING"; + }; description = "Options for the submission config in master.cf"; - example = { "smtpd_tls_security_level" = "encrypt"; - "smtpd_sasl_auth_enable" = "yes"; - "smtpd_sasl_type" = "dovecot"; - "smtpd_client_restrictions" = "permit_sasl_authenticated,reject"; - "milter_macro_daemon_name" = "ORIGINATING"; - }; }; setSendmail = mkOption { @@ -322,6 +460,14 @@ in "; }; + relayPort = mkOption { + type = types.int; + default = 25; + description = " + SMTP port for relay mail relay. + "; + }; + lookupMX = mkOption { type = types.bool; default = false; @@ -352,6 +498,25 @@ in "; }; + aliasMapType = mkOption { + type = with types; enum [ "hash" "regexp" "pcre" ]; + default = "hash"; + example = "regexp"; + description = "The format the alias map should have. Use regexp if you want to use regular expressions."; + }; + + config = mkOption { + type = with types; attrsOf (either bool (either str (listOf str))); + default = defaultConf; + description = '' + The main.cf configuration file as key value set. + ''; + example = { + mail_owner = "postfix"; + smtp_use_tls = true; + }; + }; + extraConfig = mkOption { type = types.lines; default = ""; @@ -395,6 +560,14 @@ in "; }; + virtualMapType = mkOption { + type = types.enum ["hash" "regexp" "pcre"]; + default = "hash"; + description = '' + What type of virtual alias map file to use. Use "regexp" for regular expressions. + ''; + }; + transport = mkOption { default = ""; description = " @@ -413,6 +586,22 @@ in description = "contents of check_client_access for overriding dnsBlacklists"; }; + masterConfig = mkOption { + type = types.attrsOf (types.submodule masterCfOptions); + default = {}; + example = + { submission = { + type = "inet"; + args = [ "-o" "smtpd_tls_security_level=encrypt" ]; + }; + }; + description = '' + An attribute set of service options, which correspond to the service + definitions usually done within the Postfix + master.cf file. + ''; + }; + extraMasterConf = mkOption { type = types.lines; default = ""; @@ -420,6 +609,27 @@ in description = "Extra lines to append to the generated master.cf file."; }; + enableHeaderChecks = mkOption { + type = types.bool; + default = false; + example = true; + description = "Whether to enable postfix header checks"; + }; + + headerChecks = mkOption { + type = types.listOf (types.submodule headerCheckOptions); + default = []; + example = [ { pattern = "/^X-Spam-Flag:/"; action = "REDIRECT spam@example.com"; } ]; + description = "Postfix header checks."; + }; + + extraHeaderChecks = mkOption { + type = types.lines; + default = ""; + example = "/^X-Spam-Flag:/ REDIRECT spam@example.com"; + description = "Extra lines to /etc/postfix/header_checks file."; + }; + aliasFiles = mkOption { type = types.attrsOf types.path; default = {}; @@ -432,6 +642,12 @@ in description = "Maps to be compiled and placed into /var/lib/postfix/conf."; }; + useSrs = mkOption { + type = types.bool; + default = false; + description = "Whether to enable sender rewriting scheme"; + }; + }; }; @@ -452,6 +668,8 @@ in systemPackages = [ pkgs.postfix ]; }; + services.pfix-srsd.enable = config.services.postfix.useSrs; + services.mail.sendmailSetuidWrapper = mkIf config.services.postfix.setSendmail { program = "sendmail"; source = "${pkgs.postfix}/bin/sendmail"; @@ -530,6 +748,101 @@ in ${pkgs.postfix}/bin/postfix set-permissions config_directory=/var/lib/postfix/conf ''; }; + + services.postfix.masterConfig = { + smtp_inet = { + name = "smtp"; + type = "inet"; + private = false; + command = "smtpd"; + }; + pickup = { + private = false; + wakeup = 60; + maxproc = 1; + }; + cleanup = { + private = false; + maxproc = 0; + }; + qmgr = { + private = false; + wakeup = 300; + maxproc = 1; + }; + tlsmgr = { + wakeup = 1000; + wakeupUnusedComponent = false; + maxproc = 1; + }; + rewrite = { + command = "trivial-rewrite"; + }; + bounce = { + maxproc = 0; + }; + defer = { + maxproc = 0; + command = "bounce"; + }; + trace = { + maxproc = 0; + command = "bounce"; + }; + verify = { + maxproc = 1; + }; + flush = { + private = false; + wakeup = 1000; + wakeupUnusedComponent = false; + maxproc = 0; + }; + proxymap = { + command = "proxymap"; + }; + proxywrite = { + maxproc = 1; + command = "proxymap"; + }; + showq = { + private = false; + }; + error = {}; + retry = { + command = "error"; + }; + discard = {}; + local = { + privileged = true; + }; + virtual = { + privileged = true; + }; + lmtp = { + }; + anvil = { + maxproc = 1; + }; + scache = { + maxproc = 1; + }; + } // optionalAttrs cfg.enableSubmission { + submission = { + type = "inet"; + private = false; + command = "smtpd"; + args = let + mkKeyVal = opt: val: [ "-o" (opt + "=" + val) ]; + in concatLists (mapAttrsToList mkKeyVal cfg.submissionOptions); + }; + } // optionalAttrs cfg.enableSmtp { + smtp = {}; + relay = { + command = "smtp"; + args = [ "-o" "smtp_fallback_relay=" ]; + }; + }; } (mkIf haveAliases { @@ -541,9 +854,11 @@ in (mkIf haveVirtual { services.postfix.mapFiles."virtual" = virtualFile; }) + (mkIf cfg.enableHeaderChecks { + services.postfix.mapFiles."header_checks" = headerChecksFile; + }) (mkIf (cfg.dnsBlacklists != []) { services.postfix.mapFiles."client_access" = checkClientAccessFile; }) ]); - } diff --git a/nixos/modules/services/mail/spamassassin.nix b/nixos/modules/services/mail/spamassassin.nix index 08953134b3b..d483a8c3d67 100644 --- a/nixos/modules/services/mail/spamassassin.nix +++ b/nixos/modules/services/mail/spamassassin.nix @@ -3,43 +3,133 @@ with lib; let - cfg = config.services.spamassassin; + spamassassin-local-cf = pkgs.writeText "local.cf" cfg.config; + spamassassin-init-pre = pkgs.writeText "init.pre" cfg.initPreConf; + + spamdEnv = pkgs.buildEnv { + name = "spamd-env"; + paths = []; + postBuild = '' + ln -sf ${spamassassin-init-pre} $out/init.pre + ln -sf ${spamassassin-local-cf} $out/local.cf + ''; + }; in { - - ###### interface - options = { services.spamassassin = { - enable = mkOption { default = false; - description = "Whether to run the SpamAssassin daemon."; + description = "Whether to run the SpamAssassin daemon"; }; debug = mkOption { default = false; - description = "Whether to run the SpamAssassin daemon in debug mode."; + description = "Whether to run the SpamAssassin daemon in debug mode"; }; + config = mkOption { + type = types.lines; + description = '' + The SpamAssassin local.cf config + + If you are using this configuration: + add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_ + + Then you can Use this sieve filter: + require ["fileinto", "reject", "envelope"]; + + if header :contains "X-Spam-Flag" "YES" { + fileinto "spam"; + } + + Or this procmail filter: + :0: + * ^X-Spam-Flag: YES + /var/vpopmail/domains/lastlog.de/js/.maildir/.spam/new + + To filter your messages based on the additional mail headers added by spamassassin. + ''; + example = '' + #rewrite_header Subject [***** SPAM _SCORE_ *****] + required_score 5.0 + use_bayes 1 + bayes_auto_learn 1 + add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_ + ''; + default = ""; + }; + + initPreConf = mkOption { + type = types.str; + description = "The SpamAssassin init.pre config."; + default = + '' + # + # to update this list, run this command in the rules directory: + # grep 'loadplugin.*Mail::SpamAssassin::Plugin::.*' -o -h * | sort | uniq + # + + #loadplugin Mail::SpamAssassin::Plugin::AccessDB + #loadplugin Mail::SpamAssassin::Plugin::AntiVirus + loadplugin Mail::SpamAssassin::Plugin::AskDNS + # loadplugin Mail::SpamAssassin::Plugin::ASN + loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold + #loadplugin Mail::SpamAssassin::Plugin::AWL + loadplugin Mail::SpamAssassin::Plugin::Bayes + loadplugin Mail::SpamAssassin::Plugin::BodyEval + loadplugin Mail::SpamAssassin::Plugin::Check + #loadplugin Mail::SpamAssassin::Plugin::DCC + loadplugin Mail::SpamAssassin::Plugin::DKIM + loadplugin Mail::SpamAssassin::Plugin::DNSEval + loadplugin Mail::SpamAssassin::Plugin::FreeMail + loadplugin Mail::SpamAssassin::Plugin::Hashcash + loadplugin Mail::SpamAssassin::Plugin::HeaderEval + loadplugin Mail::SpamAssassin::Plugin::HTMLEval + loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch + loadplugin Mail::SpamAssassin::Plugin::ImageInfo + loadplugin Mail::SpamAssassin::Plugin::MIMEEval + loadplugin Mail::SpamAssassin::Plugin::MIMEHeader + # loadplugin Mail::SpamAssassin::Plugin::PDFInfo + #loadplugin Mail::SpamAssassin::Plugin::PhishTag + loadplugin Mail::SpamAssassin::Plugin::Pyzor + loadplugin Mail::SpamAssassin::Plugin::Razor2 + # loadplugin Mail::SpamAssassin::Plugin::RelayCountry + loadplugin Mail::SpamAssassin::Plugin::RelayEval + loadplugin Mail::SpamAssassin::Plugin::ReplaceTags + # loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody + # loadplugin Mail::SpamAssassin::Plugin::Shortcircuit + loadplugin Mail::SpamAssassin::Plugin::SpamCop + loadplugin Mail::SpamAssassin::Plugin::SPF + #loadplugin Mail::SpamAssassin::Plugin::TextCat + # loadplugin Mail::SpamAssassin::Plugin::TxRep + loadplugin Mail::SpamAssassin::Plugin::URIDetail + loadplugin Mail::SpamAssassin::Plugin::URIDNSBL + loadplugin Mail::SpamAssassin::Plugin::URIEval + # loadplugin Mail::SpamAssassin::Plugin::URILocalBL + loadplugin Mail::SpamAssassin::Plugin::VBounce + loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject + loadplugin Mail::SpamAssassin::Plugin::WLBLEval + ''; + }; }; - }; - - ###### implementation - config = mkIf cfg.enable { # Allow users to run 'spamc'. - environment.systemPackages = [ pkgs.spamassassin ]; + + environment = { + etc = singleton { source = spamdEnv; target = "spamassassin"; }; + systemPackages = [ pkgs.spamassassin ]; + }; users.extraUsers = singleton { - name = "spamd"; + name = "spamd"; description = "Spam Assassin Daemon"; uid = config.ids.uids.spamd; group = "spamd"; @@ -50,13 +140,60 @@ in gid = config.ids.gids.spamd; }; + systemd.services.sa-update = { + script = '' + set +e + ${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd + + v=$? + set -e + if [ $v -gt 1 ]; then + echo "sa-update execution error" + exit $v + fi + if [ $v -eq 0 ]; then + systemctl reload spamd.service + fi + ''; + }; + + systemd.timers.sa-update = { + description = "sa-update-service"; + partOf = [ "sa-update.service" ]; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "1:*"; + Persistent = true; + }; + }; + systemd.services.spamd = { description = "Spam Assassin Server"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - script = "${pkgs.spamassassin}/bin/spamd ${optionalString cfg.debug "-D"} --username=spamd --groupname=spamd --nouser-config --virtual-config-dir=/var/lib/spamassassin/user-%u --allow-tell --pidfile=/var/run/spamd.pid"; + serviceConfig = { + ExecStart = "${pkgs.spamassassin}/bin/spamd ${optionalString cfg.debug "-D"} --username=spamd --groupname=spamd --siteconfigpath=${spamdEnv} --virtual-config-dir=/var/lib/spamassassin/user-%u --allow-tell --pidfile=/var/run/spamd.pid"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; + + # 0 and 1 no error, exitcode > 1 means error: + # https://spamassassin.apache.org/full/3.1.x/doc/sa-update.html#exit_codes + preStart = '' + echo "Recreating '/var/lib/spamasassin' with creating '3.004001' (or similar) and 'sa-update-keys'" + mkdir -p /var/lib/spamassassin + chown spamd:spamd /var/lib/spamassassin -R + set +e + ${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd + v=$? + set -e + if [ $v -gt 1 ]; then + echo "sa-update execution error" + exit $v + fi + chown spamd:spamd /var/lib/spamassassin -R + ''; }; }; } diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix new file mode 100644 index 00000000000..b92104787a5 --- /dev/null +++ b/nixos/modules/services/misc/airsonic.nix @@ -0,0 +1,117 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.airsonic; +in { + options = { + + services.airsonic = { + enable = mkEnableOption "Airsonic, the Free and Open Source media streaming server (fork of Subsonic and Libresonic)"; + + user = mkOption { + type = types.str; + default = "airsonic"; + description = "User account under which airsonic runs."; + }; + + home = mkOption { + type = types.path; + default = "/var/lib/airsonic"; + description = '' + The directory where Airsonic will create files. + Make sure it is writable. + ''; + }; + + listenAddress = mkOption { + type = types.string; + default = "127.0.0.1"; + description = '' + The host name or IP address on which to bind Airsonic. + Only relevant if you have multiple network interfaces and want + to make Airsonic available on only one of them. The default value + will bind Airsonic to all available network interfaces. + ''; + }; + + port = mkOption { + type = types.int; + default = 4040; + description = '' + The port on which Airsonic will listen for + incoming HTTP traffic. Set to 0 to disable. + ''; + }; + + contextPath = mkOption { + type = types.path; + default = "/"; + description = '' + The context path, i.e., the last part of the Airsonic + URL. Typically '/' or '/airsonic'. Default '/' + ''; + }; + + maxMemory = mkOption { + type = types.int; + default = 100; + description = '' + The memory limit (max Java heap size) in megabytes. + Default: 100 + ''; + }; + + transcoders = mkOption { + type = types.listOf types.path; + default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ]; + defaultText= [ "\${pkgs.ffmpeg.bin}/bin/ffmpeg" ]; + description = '' + List of paths to transcoder executables that should be accessible + from Airsonic. Symlinks will be created to each executable inside + ${cfg.home}/transcoders. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.airsonic = { + description = "Airsonic Media Server"; + after = [ "local-fs.target" "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + preStart = '' + # Install transcoders. + rm -rf ${cfg.home}/transcode + mkdir -p ${cfg.home}/transcode + for exe in ${toString cfg.transcoders}; do + ln -sf "$exe" ${cfg.home}/transcode + done + ''; + serviceConfig = { + ExecStart = '' + ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \ + -Dairsonic.home=${cfg.home} \ + -Dserver.address=${cfg.listenAddress} \ + -Dserver.port=${toString cfg.port} \ + -Dairsonic.contextPath=${cfg.contextPath} \ + -Djava.awt.headless=true \ + -verbose:gc \ + -jar ${pkgs.airsonic}/webapps/airsonic.war + ''; + Restart = "always"; + User = "airsonic"; + UMask = "0022"; + }; + }; + + users.extraUsers.airsonic = { + description = "Airsonic service user"; + name = cfg.user; + home = cfg.home; + createHome = true; + }; + }; +} diff --git a/nixos/modules/services/misc/autofs.nix b/nixos/modules/services/misc/autofs.nix index 40b48f70f7e..f1742177326 100644 --- a/nixos/modules/services/misc/autofs.nix +++ b/nixos/modules/services/misc/autofs.nix @@ -20,10 +20,10 @@ in enable = mkOption { default = false; - description = " + description = '' Mount filesystems on demand. Unmount them automatically. You may also be interested in afuse. - "; + ''; }; autoMaster = mkOption { @@ -45,10 +45,9 @@ in /auto file:''${mapConf} ''' ''; - description = " - file contents of /etc/auto.master. See man auto.master - See man 5 auto.master and man 5 autofs. - "; + description = '' + Contents of /etc/auto.master file. See auto.master(5) and autofs(5). + ''; }; timeout = mkOption { @@ -58,9 +57,9 @@ in debug = mkOption { default = false; - description = " - pass -d and -7 to automount and write log to /var/log/autofs - "; + description = '' + Pass -d and -7 to automount and write log to the system journal. + ''; }; }; diff --git a/nixos/modules/services/misc/autorandr.nix b/nixos/modules/services/misc/autorandr.nix index 6746f3fec69..3020130ad1f 100644 --- a/nixos/modules/services/misc/autorandr.nix +++ b/nixos/modules/services/misc/autorandr.nix @@ -22,22 +22,13 @@ in { environment.systemPackages = [ pkgs.autorandr ]; - # systemd.unitPackages = [ pkgs.autorandr ]; + systemd.packages = [ pkgs.autorandr ]; + systemd.services.autorandr = { - unitConfig = { - Description = "autorandr execution hook"; - After = [ "sleep.target" ]; - StartLimitInterval = "5"; - StartLimitBurst = "1"; - }; - serviceConfig = { - ExecStart = "${pkgs.autorandr}/bin/autorandr --batch --change --default default"; - Type = "oneshot"; - RemainAfterExit = false; - }; wantedBy = [ "sleep.target" ]; }; }; + meta.maintainers = with maintainers; [ gnidorah ]; } diff --git a/nixos/modules/services/misc/bepasty.nix b/nixos/modules/services/misc/bepasty.nix index 4d78cddcb54..c499e428af3 100644 --- a/nixos/modules/services/misc/bepasty.nix +++ b/nixos/modules/services/misc/bepasty.nix @@ -3,7 +3,7 @@ with lib; let gunicorn = pkgs.pythonPackages.gunicorn; - bepasty = pkgs.pythonPackages.bepasty-server; + bepasty = pkgs.bepasty; gevent = pkgs.pythonPackages.gevent; python = pkgs.pythonPackages.python; cfg = config.services.bepasty; diff --git a/nixos/modules/services/misc/calibre-server.nix b/nixos/modules/services/misc/calibre-server.nix index a920aa22ccd..6b19f780ec0 100644 --- a/nixos/modules/services/misc/calibre-server.nix +++ b/nixos/modules/services/misc/calibre-server.nix @@ -42,7 +42,7 @@ in serviceConfig = { User = "calibre-server"; Restart = "always"; - ExecStart = "${pkgs.calibre}/bin/calibre-server --with-library=${cfg.libraryDir}"; + ExecStart = "${pkgs.calibre}/bin/calibre-server ${cfg.libraryDir}"; }; }; diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix index 9f290ed70c9..e295f0f930e 100644 --- a/nixos/modules/services/misc/emby.nix +++ b/nixos/modules/services/misc/emby.nix @@ -22,6 +22,12 @@ in default = "emby"; description = "Group under which emby runs."; }; + + dataDir = mkOption { + type = types.path; + default = "/var/lib/emby/ProgramData-Server"; + description = "Location where Emby stores its data."; + }; }; }; @@ -31,10 +37,10 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - test -d /var/lib/emby/ProgramData-Server || { - echo "Creating initial Emby data directory in /var/lib/emby/ProgramData-Server" - mkdir -p /var/lib/emby/ProgramData-Server - chown -R ${cfg.user}:${cfg.group} /var/lib/emby/ProgramData-Server + test -d ${cfg.dataDir} || { + echo "Creating initial Emby data directory in ${cfg.dataDir}" + mkdir -p ${cfg.dataDir} + chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} } ''; diff --git a/nixos/modules/services/misc/errbot.nix b/nixos/modules/services/misc/errbot.nix index 427cb7c546d..cb2fa677624 100644 --- a/nixos/modules/services/misc/errbot.nix +++ b/nixos/modules/services/misc/errbot.nix @@ -84,7 +84,7 @@ in { dataDir = if !isNull instanceCfg.dataDir then instanceCfg.dataDir else "/var/lib/errbot/${name}"; in { - after = [ "network.target" ]; + after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' mkdir -p ${dataDir} diff --git a/nixos/modules/services/misc/exhibitor.nix b/nixos/modules/services/misc/exhibitor.nix new file mode 100644 index 00000000000..600bd780e7b --- /dev/null +++ b/nixos/modules/services/misc/exhibitor.nix @@ -0,0 +1,418 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.exhibitor; + exhibitor = cfg.package; + exhibitorConfig = '' + zookeeper-install-directory=${cfg.baseDir}/zookeeper + zookeeper-data-directory=${cfg.zkDataDir} + zookeeper-log-directory=${cfg.zkLogDir} + zoo-cfg-extra=${cfg.zkExtraCfg} + client-port=${toString cfg.zkClientPort} + connect-port=${toString cfg.zkConnectPort} + election-port=${toString cfg.zkElectionPort} + cleanup-period-ms=${toString cfg.zkCleanupPeriod} + servers-spec=${concatStringsSep "," cfg.zkServersSpec} + auto-manage-instances=${toString cfg.autoManageInstances} + ${cfg.extraConf} + ''; + # NB: toString rather than lib.boolToString on cfg.autoManageInstances is intended. + # Exhibitor tests if it's an integer not equal to 0, so the empty string (toString false) + # will operate in the same fashion as a 0. + configDir = pkgs.writeTextDir "exhibitor.properties" exhibitorConfig; + cliOptionsCommon = { + configtype = cfg.configType; + defaultconfig = "${configDir}/exhibitor.properties"; + port = toString cfg.port; + hostname = cfg.hostname; + headingtext = if (cfg.headingText != null) then (lib.escapeShellArg cfg.headingText) else null; + nodemodification = lib.boolToString cfg.nodeModification; + configcheckms = toString cfg.configCheckMs; + jquerystyle = cfg.jqueryStyle; + loglines = toString cfg.logLines; + servo = lib.boolToString cfg.servo; + timeout = toString cfg.timeout; + }; + s3CommonOptions = { s3region = cfg.s3Region; s3credentials = cfg.s3Credentials; }; + cliOptionsPerConfig = { + s3 = { + s3config = "${cfg.s3Config.bucketName}:${cfg.s3Config.objectKey}"; + s3configprefix = cfg.s3Config.configPrefix; + }; + zookeeper = { + zkconfigconnect = concatStringsSep "," cfg.zkConfigConnect; + zkconfigexhibitorpath = cfg.zkConfigExhibitorPath; + zkconfigpollms = toString cfg.zkConfigPollMs; + zkconfigretry = "${toString cfg.zkConfigRetry.sleepMs}:${toString cfg.zkConfigRetry.retryQuantity}"; + zkconfigzpath = cfg.zkConfigZPath; + zkconfigexhibitorport = toString cfg.zkConfigExhibitorPort; # NB: This might be null + }; + file = { + fsconfigdir = cfg.fsConfigDir; + fsconfiglockprefix = cfg.fsConfigLockPrefix; + fsConfigName = fsConfigName; + }; + none = { + noneconfigdir = configDir; + }; + }; + cliOptions = concatStringsSep " " (mapAttrsToList (k: v: "--${k} ${v}") (filterAttrs (k: v: v != null && v != "") (cliOptionsCommon // + cliOptionsPerConfig."${cfg.configType}" // + s3CommonOptions // + optionalAttrs cfg.s3Backup { s3backup = "true"; } // + optionalAttrs cfg.fileSystemBackup { filesystembackup = "true"; } + ))); +in +{ + options = { + services.exhibitor = { + enable = mkOption { + type = types.bool; + default = false; + description = " + Whether to enable the exhibitor server. + "; + }; + # See https://github.com/soabase/exhibitor/wiki/Running-Exhibitor for what these mean + # General options for any type of config + port = mkOption { + type = types.int; + default = 8080; + description = '' + The port for exhibitor to listen on and communicate with other exhibitors. + ''; + }; + baseDir = mkOption { + type = types.str; + default = "/var/exhibitor"; + description = '' + Baseline directory for exhibitor runtime config. + ''; + }; + configType = mkOption { + type = types.enum [ "file" "s3" "zookeeper" "none" ]; + description = '' + Which configuration type you want to use. Additional config will be + required depending on which type you are using. + ''; + }; + hostname = mkOption { + type = types.nullOr types.str; + description = '' + Hostname to use and advertise + ''; + default = null; + }; + nodeModification = mkOption { + type = types.bool; + description = '' + Whether the Explorer UI will allow nodes to be modified (use with caution). + ''; + default = true; + }; + configCheckMs = mkOption { + type = types.int; + description = '' + Period (ms) to check for shared config updates. + ''; + default = 30000; + }; + headingText = mkOption { + type = types.nullOr types.str; + description = '' + Extra text to display in UI header + ''; + default = null; + }; + jqueryStyle = mkOption { + type = types.enum [ "red" "black" "custom" ]; + description = '' + Styling used for the JQuery-based UI. + ''; + default = "red"; + }; + logLines = mkOption { + type = types.int; + description = '' + Max lines of logging to keep in memory for display. + ''; + default = 1000; + }; + servo = mkOption { + type = types.bool; + description = '' + ZooKeeper will be queried once a minute for its state via the 'mntr' four + letter word (this requires ZooKeeper 3.4.x+). Servo will be used to publish + this data via JMX. + ''; + default = false; + }; + timeout = mkOption { + type = types.int; + description = '' + Connection timeout (ms) for ZK connections. + ''; + default = 30000; + }; + autoManageInstances = mkOption { + type = types.bool; + description = '' + Automatically manage ZooKeeper instances in the ensemble + ''; + default = false; + }; + zkDataDir = mkOption { + type = types.str; + default = "${cfg.baseDir}/zkData"; + description = '' + The Zookeeper data directory + ''; + }; + zkLogDir = mkOption { + type = types.path; + default = "${cfg.baseDir}/zkLogs"; + description = '' + The Zookeeper logs directory + ''; + }; + extraConf = mkOption { + type = types.str; + default = ""; + description = '' + Extra Exhibitor configuration to put in the ZooKeeper config file. + ''; + }; + zkExtraCfg = mkOption { + type = types.str; + default = ''initLimit=5&syncLimit=2&tickTime=2000''; + description = '' + Extra options to pass into Zookeeper + ''; + }; + zkClientPort = mkOption { + type = types.int; + default = 2181; + description = '' + Zookeeper client port + ''; + }; + zkConnectPort = mkOption { + type = types.int; + default = 2888; + description = '' + The port to use for followers to talk to each other. + ''; + }; + zkElectionPort = mkOption { + type = types.int; + default = 3888; + description = '' + The port for Zookeepers to use for leader election. + ''; + }; + zkCleanupPeriod = mkOption { + type = types.int; + default = 0; + description = '' + How often (in milliseconds) to run the Zookeeper log cleanup task. + ''; + }; + zkServersSpec = mkOption { + type = types.listOf types.str; + default = []; + description = '' + Zookeeper server spec for all servers in the ensemble. + ''; + example = [ "S:1:zk1.example.com" "S:2:zk2.example.com" "S:3:zk3.example.com" "O:4:zk-observer.example.com" ]; + }; + + # Backup options + s3Backup = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable backups to S3 + ''; + }; + fileSystemBackup = mkOption { + type = types.bool; + default = false; + description = '' + Enables file system backup of ZooKeeper log files + ''; + }; + + # Options for using zookeeper configType + zkConfigConnect = mkOption { + type = types.listOf types.str; + description = '' + The initial connection string for ZooKeeper shared config storage + ''; + example = ["host1:2181" "host2:2181"]; + }; + zkConfigExhibitorPath = mkOption { + type = types.string; + description = '' + If the ZooKeeper shared config is also running Exhibitor, the URI path for the REST call + ''; + default = "/"; + }; + zkConfigExhibitorPort = mkOption { + type = types.nullOr types.int; + description = '' + If the ZooKeeper shared config is also running Exhibitor, the port that + Exhibitor is listening on. IMPORTANT: if this value is not set it implies + that Exhibitor is not being used on the ZooKeeper shared config. + ''; + }; + zkConfigPollMs = mkOption { + type = types.int; + description = '' + The period in ms to check for changes in the config ensemble + ''; + default = 10000; + }; + zkConfigRetry = { + sleepMs = mkOption { + type = types.int; + default = 1000; + description = '' + Retry sleep time connecting to the ZooKeeper config + ''; + }; + retryQuantity = mkOption { + type = types.int; + default = 3; + description = '' + Retries connecting to the ZooKeeper config + ''; + }; + }; + zkConfigZPath = mkOption { + type = types.str; + description = '' + The base ZPath that Exhibitor should use + ''; + example = "/exhibitor/config"; + }; + + # Config options for s3 configType + s3Config = { + bucketName = mkOption { + type = types.str; + description = '' + Bucket name to store config + ''; + }; + objectKey = mkOption { + type = types.str; + description = '' + S3 key name to store the config + ''; + }; + configPrefix = mkOption { + type = types.str; + description = '' + When using AWS S3 shared config files, the prefix to use for values such as locks + ''; + default = "exhibitor-"; + }; + }; + + # The next two are used for either s3backup or s3 configType + s3Credentials = mkOption { + type = types.nullOr types.path; + description = '' + Optional credentials to use for s3backup or s3config. Argument is the path + to an AWS credential properties file with two properties: + com.netflix.exhibitor.s3.access-key-id and com.netflix.exhibitor.s3.access-secret-key + ''; + default = null; + }; + s3Region = mkOption { + type = types.nullOr types.str; + description = '' + Optional region for S3 calls + ''; + default = null; + }; + + # Config options for file config type + fsConfigDir = mkOption { + type = types.path; + description = '' + Directory to store Exhibitor properties (cannot be used with s3config). + Exhibitor uses file system locks so you can specify a shared location + so as to enable complete ensemble management. + ''; + }; + fsConfigLockPrefix = mkOption { + type = types.str; + description = '' + A prefix for a locking mechanism used in conjunction with fsconfigdir + ''; + default = "exhibitor-lock-"; + }; + fsConfigName = mkOption { + type = types.str; + description = '' + The name of the file to store config in + ''; + default = "exhibitor.properties"; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.exhibitor = { + description = "Exhibitor Daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + environment = { + ZOO_LOG_DIR = cfg.baseDir; + }; + serviceConfig = { + /*** + Exhibitor is a bit un-nixy. It wants to present to you a user interface in order to + mutate the configuration of both itself and ZooKeeper, and to coordinate changes + among the members of the Zookeeper ensemble. I'm going for a different approach here, + which is to manage all the configuration via nix and have it write out the configuration + files that exhibitor will use, and to reduce the amount of inter-exhibitor orchestration. + ***/ + ExecStart = '' + ${pkgs.exhibitor}/bin/startExhibitor.sh ${cliOptions} + ''; + User = "zookeeper"; + PermissionsStartOnly = true; + }; + # This is a bit wonky, but the reason for this is that Exhibitor tries to write to + # ${cfg.baseDir}/zookeeper/bin/../conf/zoo.cfg + # I want everything but the conf directory to be in the immutable nix store, and I want defaults + # from the nix store + # If I symlink the bin directory in, then bin/../ will resolve to the parent of the symlink in the + # immutable nix store. Bind mounting a writable conf over the existing conf might work, but it gets very + # messy with trying to copy the existing out into a mutable store. + # Another option is to try to patch upstream exhibitor, but the current package just pulls down the + # prebuild JARs off of Maven, rather than building them ourselves, as Maven support in Nix isn't + # very mature. So, it seems like a reasonable compromise is to just copy out of the immutable store + # just before starting the service, so we're running binaries from the immutable store, but we work around + # Exhibitor's desire to mutate its current installation. + preStart = '' + mkdir -m 0700 -p ${cfg.baseDir}/zookeeper + # Not doing a chown -R to keep the base ZK files owned by root + chown zookeeper ${cfg.baseDir} ${cfg.baseDir}/zookeeper + cp -Rf ${pkgs.zookeeper}/* ${cfg.baseDir}/zookeeper + chown -R zookeeper ${cfg.baseDir}/zookeeper/conf + chmod -R u+w ${cfg.baseDir}/zookeeper/conf + ''; + }; + users.extraUsers = singleton { + name = "zookeeper"; + uid = config.ids.uids.zookeeper; + description = "Zookeeper daemon user"; + home = cfg.baseDir; + }; + }; +} diff --git a/nixos/modules/services/misc/fstrim.nix b/nixos/modules/services/misc/fstrim.nix new file mode 100644 index 00000000000..15f283f093c --- /dev/null +++ b/nixos/modules/services/misc/fstrim.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.fstrim; + +in { + + options = { + + services.fstrim = { + enable = mkEnableOption "periodic SSD TRIM of mounted partitions in background"; + + interval = mkOption { + type = types.string; + default = "weekly"; + description = '' + How often we run fstrim. For most desktop and server systems + a sufficient trimming frequency is once a week. + + The format is described in + systemd.time + 7. + ''; + }; + }; + + }; + + config = mkIf cfg.enable { + + systemd.packages = [ pkgs.utillinux ]; + + systemd.timers.fstrim = { + timerConfig = { + OnCalendar = cfg.interval; + }; + wantedBy = [ "timers.target" ]; + }; + + }; + + meta.maintainers = with maintainers; [ gnidorah ]; +} diff --git a/nixos/modules/services/misc/geoip-updater.nix b/nixos/modules/services/misc/geoip-updater.nix index 5135fac8f7d..760fa66e80d 100644 --- a/nixos/modules/services/misc/geoip-updater.nix +++ b/nixos/modules/services/misc/geoip-updater.nix @@ -238,7 +238,7 @@ in assertions = [ { assertion = (builtins.filter - (x: builtins.match ".*\.(gz|xz)$" x == null) cfg.databases) == []; + (x: builtins.match ".*\\.(gz|xz)$" x == null) cfg.databases) == []; message = '' services.geoip-updater.databases supports only .gz and .xz databases. @@ -246,7 +246,7 @@ in ${toString cfg.databases} Offending element(s): - ${toString (builtins.filter (x: builtins.match ".*\.(gz|xz)$" x == null) cfg.databases)}; + ${toString (builtins.filter (x: builtins.match ".*\\.(gz|xz)$" x == null) cfg.databases)}; ''; } ]; diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix new file mode 100644 index 00000000000..f0b44b7bede --- /dev/null +++ b/nixos/modules/services/misc/gitea.nix @@ -0,0 +1,270 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.gitea; + configFile = pkgs.writeText "app.ini" '' + APP_NAME = ${cfg.appName} + RUN_USER = ${cfg.user} + RUN_MODE = prod + + [database] + DB_TYPE = ${cfg.database.type} + HOST = ${cfg.database.host}:${toString cfg.database.port} + NAME = ${cfg.database.name} + USER = ${cfg.database.user} + PASSWD = #dbpass# + PATH = ${cfg.database.path} + + [repository] + ROOT = ${cfg.repositoryRoot} + + [server] + DOMAIN = ${cfg.domain} + HTTP_ADDR = ${cfg.httpAddress} + HTTP_PORT = ${toString cfg.httpPort} + ROOT_URL = ${cfg.rootUrl} + STATIC_ROOT_PATH = ${cfg.staticRootPath} + + [session] + COOKIE_NAME = session + COOKIE_SECURE = ${boolToString cfg.cookieSecure} + + [security] + SECRET_KEY = #secretkey# + INSTALL_LOCK = true + + ${cfg.extraConfig} + ''; +in + +{ + options = { + services.gitea = { + enable = mkOption { + default = false; + type = types.bool; + description = "Enable Gitea Service."; + }; + + useWizard = mkOption { + default = false; + type = types.bool; + description = "Do not generate a configuration and use gitea' installation wizard instead. The first registered user will be administrator."; + }; + + stateDir = mkOption { + default = "/var/lib/gitea"; + type = types.str; + description = "gitea data directory."; + }; + + user = mkOption { + type = types.str; + default = "gitea"; + description = "User account under which gitea runs."; + }; + + database = { + type = mkOption { + type = types.enum [ "sqlite3" "mysql" "postgres" ]; + example = "mysql"; + default = "sqlite3"; + description = "Database engine to use."; + }; + + host = mkOption { + type = types.str; + default = "127.0.0.1"; + description = "Database host address."; + }; + + port = mkOption { + type = types.int; + default = 3306; + description = "Database host port."; + }; + + name = mkOption { + type = types.str; + default = "gitea"; + description = "Database name."; + }; + + user = mkOption { + type = types.str; + default = "gitea"; + description = "Database user."; + }; + + password = mkOption { + type = types.str; + default = ""; + description = '' + The password corresponding to . + Warning: this is stored in cleartext in the Nix store! + Use instead. + ''; + }; + + passwordFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/gitea-dbpassword"; + description = '' + A file containing the password corresponding to + . + ''; + }; + + path = mkOption { + type = types.str; + default = "${cfg.stateDir}/data/gitea.db"; + description = "Path to the sqlite3 database file."; + }; + }; + + appName = mkOption { + type = types.str; + default = "gitea: Gitea Service"; + description = "Application name."; + }; + + repositoryRoot = mkOption { + type = types.str; + default = "${cfg.stateDir}/repositories"; + description = "Path to the git repositories."; + }; + + domain = mkOption { + type = types.str; + default = "localhost"; + description = "Domain name of your server."; + }; + + rootUrl = mkOption { + type = types.str; + default = "http://localhost:3000/"; + description = "Full public URL of gitea server."; + }; + + httpAddress = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "HTTP listen address."; + }; + + httpPort = mkOption { + type = types.int; + default = 3000; + description = "HTTP listen port."; + }; + + cookieSecure = mkOption { + type = types.bool; + default = false; + description = '' + Marks session cookies as "secure" as a hint for browsers to only send + them via HTTPS. This option is recommend, if gitea is being served over HTTPS. + ''; + }; + + staticRootPath = mkOption { + type = types.str; + default = "${pkgs.gitea.data}"; + example = "/var/lib/gitea/data"; + description = "Upper level of template and static files path."; + }; + + extraConfig = mkOption { + type = types.str; + default = ""; + description = "Configuration lines appended to the generated gitea configuration file."; + }; + }; + }; + + config = mkIf cfg.enable { + + systemd.services.gitea = { + description = "gitea"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.gitea.bin ]; + + preStart = let + runConfig = "${cfg.stateDir}/custom/conf/app.ini"; + secretKey = "${cfg.stateDir}/custom/conf/secret_key"; + in '' + mkdir -p ${cfg.stateDir} + + # copy custom configuration and generate a random secret key if needed + ${optionalString (cfg.useWizard == false) '' + mkdir -p ${cfg.stateDir}/custom/conf + cp -f ${configFile} ${runConfig} + + if [ ! -e ${secretKey} ]; then + head -c 16 /dev/urandom | base64 > ${secretKey} + fi + + KEY=$(head -n1 ${secretKey}) + DBPASS=$(head -n1 ${cfg.database.passwordFile}) + sed -e "s,#secretkey#,$KEY,g" \ + -e "s,#dbpass#,$DBPASS,g" \ + -i ${runConfig} + chmod 640 ${runConfig} ${secretKey} + ''} + + mkdir -p ${cfg.repositoryRoot} + # update all hooks' binary paths + HOOKS=$(find ${cfg.repositoryRoot} -mindepth 4 -maxdepth 4 -type f -wholename "*git/hooks/*") + if [ "$HOOKS" ] + then + sed -ri 's,/nix/store/[a-z0-9.-]+/bin/gitea,${pkgs.gitea.bin}/bin/gitea,g' $HOOKS + sed -ri 's,/nix/store/[a-z0-9.-]+/bin/env,${pkgs.coreutils}/bin/env,g' $HOOKS + sed -ri 's,/nix/store/[a-z0-9.-]+/bin/bash,${pkgs.bash}/bin/bash,g' $HOOKS + sed -ri 's,/nix/store/[a-z0-9.-]+/bin/perl,${pkgs.perl}/bin/perl,g' $HOOKS + fi + if [ ! -d ${cfg.stateDir}/conf/locale ] + then + mkdir -p ${cfg.stateDir}/conf + cp -r ${pkgs.gitea.out}/locale ${cfg.stateDir}/conf/locale + fi + ''; + + serviceConfig = { + Type = "simple"; + User = cfg.user; + WorkingDirectory = cfg.stateDir; + ExecStart = "${pkgs.gitea.bin}/bin/gitea web"; + Restart = "always"; + }; + + environment = { + USER = cfg.user; + HOME = cfg.stateDir; + GITEA_WORK_DIR = cfg.stateDir; + }; + }; + + users = mkIf (cfg.user == "gitea") { + extraUsers.gitea = { + description = "Gitea Service"; + home = cfg.stateDir; + createHome = true; + }; + }; + + warnings = optional (cfg.database.password != "") + ''config.services.gitea.database.password will be stored as plaintext + in the Nix store. Use database.passwordFile instead.''; + + # Create database passwordFile default when password is configured. + services.gitea.database.passwordFile = + (mkDefault (toString (pkgs.writeTextFile { + name = "gitea-database-password"; + text = cfg.database.password; + }))); + }; +} diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index ee881edb5ab..7b2b40e5923 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -10,10 +10,12 @@ let ruby = cfg.packages.gitlab.ruby; bundler = pkgs.bundler; - gemHome = "${cfg.packages.gitlab.env}/${ruby.gemPath}"; + gemHome = "${cfg.packages.gitlab.rubyEnv}/${ruby.gemPath}"; gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket"; + gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket"; pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url; + pgSuperUser = config.services.postgresql.superUser; databaseYml = '' production: @@ -25,6 +27,23 @@ let encoding: utf8 ''; + gitalyToml = pkgs.writeText "gitaly.toml" '' + socket_path = "${lib.escape ["\""] gitalySocket}" + prometheus_listen_addr = "localhost:9236" + + [gitaly-ruby] + dir = "${cfg.packages.gitaly.ruby}" + + [gitlab-shell] + dir = "${cfg.packages.gitlab-shell}" + + ${concatStringsSep "\n" (attrValues (mapAttrs (k: v: '' + [[storage]] + name = "${lib.escape ["\""] k}" + path = "${lib.escape ["\""] v.path}" + '') gitlabConfig.production.repositories.storages))} + ''; + gitlabShellYml = '' user: ${cfg.user} gitlab_url: "http+unix://${pathUrlQuote gitlabSocket}" @@ -41,11 +60,17 @@ let namespace: resque:gitlab ''; + redisYml = '' + production: + url: redis://localhost:6379/ + ''; + secretsYml = '' production: secret_key_base: ${cfg.secrets.secret} otp_key_base: ${cfg.secrets.otp} db_key_base: ${cfg.secrets.db} + jws_private_key: ${builtins.toJSON cfg.secrets.jws} ''; gitlabConfig = { @@ -69,7 +94,8 @@ let container_registry = true; }; }; - repositories.storages.default = "${cfg.statePath}/repositories"; + repositories.storages.default.path = "${cfg.statePath}/repositories"; + repositories.storages.default.gitaly_address = "unix:${gitalySocket}"; artifacts.enabled = true; lfs.enabled = true; gravatar.enabled = true; @@ -86,11 +112,22 @@ let upload_pack = true; receive_pack = true; }; + workhorse = { + secret_file = "${cfg.statePath}/.gitlab_workhorse_secret"; + }; git = { bin_path = "git"; max_size = 20971520; # 20MB timeout = 10; }; + monitoring = { + ip_whitelist = [ "127.0.0.0/8" "::1/128" ]; + sidekiq_exporter = { + enable = true; + address = "localhost"; + port = 3807; + }; + }; extra = {}; }; }; @@ -108,6 +145,8 @@ let GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/shell/config.yml"; GITLAB_SHELL_SECRET_PATH = "${cfg.statePath}/config/gitlab_shell_secret"; GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/shell/hooks"; + GITLAB_REDIS_CONFIG_FILE = pkgs.writeText "gitlab-redis.yml" redisYml; + prometheus_multiproc_dir = "/run/gitlab"; RAILS_ENV = "production"; }; @@ -115,15 +154,15 @@ let gitlab-rake = pkgs.stdenv.mkDerivation rec { name = "gitlab-rake"; - buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.env pkgs.makeWrapper ]; + buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.rubyEnv pkgs.makeWrapper ]; phases = "installPhase fixupPhase"; buildPhase = ""; installPhase = '' mkdir -p $out/bin - makeWrapper ${cfg.packages.gitlab.env}/bin/bundle $out/bin/gitlab-bundle \ + makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/bundle $out/bin/gitlab-bundle \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ --set GITLAB_CONFIG_PATH '${cfg.statePath}/config' \ - --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip config.services.postgresql.package ]}:$PATH' \ + --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package ]}:$PATH' \ --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \ --run 'cd ${cfg.packages.gitlab}/share/gitlab' makeWrapper $out/bin/gitlab-bundle $out/bin/gitlab-rake \ @@ -182,6 +221,13 @@ in { description = "Reference to the gitlab-workhorse package"; }; + packages.gitaly = mkOption { + type = types.package; + default = pkgs.gitaly; + defaultText = "pkgs.gitaly"; + description = "Reference to the gitaly package"; + }; + statePath = mkOption { type = types.str; default = "/var/gitlab/state"; @@ -359,6 +405,19 @@ in { ''; }; + secrets.jws = mkOption { + type = types.str; + description = '' + The secret is used to encrypt session keys. If you change or lose + this key, users will be disconnected. + + Make sure the secret is an RSA private key in PEM format. You can + generate one with + + openssl genrsa 2048 + ''; + }; + extraConfig = mkOption { type = types.attrs; default = {}; @@ -420,6 +479,7 @@ in { ruby openssh nodejs + gnupg ]; serviceConfig = { Type = "simple"; @@ -428,7 +488,24 @@ in { TimeoutSec = "300"; Restart = "on-failure"; WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab"; - ExecStart="${cfg.packages.gitlab.env}/bin/bundle exec \"sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid\""; + ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/bundle exec \"sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid\""; + }; + }; + + systemd.services.gitaly = { + after = [ "network.target" "gitlab.service" ]; + wantedBy = [ "multi-user.target" ]; + environment.HOME = gitlabEnv.HOME; + path = with pkgs; [ gitAndTools.git cfg.packages.gitaly.rubyEnv ]; + serviceConfig = { + #PermissionsStartOnly = true; # preStart must be run as root + Type = "simple"; + User = cfg.user; + Group = cfg.group; + TimeoutSec = "300"; + Restart = "on-failure"; + WorkingDirectory = gitlabEnv.HOME; + ExecStart = "${cfg.packages.gitaly}/bin/gitaly ${gitalyToml}"; }; }; @@ -439,7 +516,10 @@ in { environment.GITLAB_SHELL_CONFIG_PATH = gitlabEnv.GITLAB_SHELL_CONFIG_PATH; path = with pkgs; [ gitAndTools.git + gnutar + gzip openssh + gitlab-workhorse ]; preStart = '' mkdir -p /run/gitlab @@ -460,7 +540,7 @@ in { + "-listenAddr /run/gitlab/gitlab-workhorse.socket " + "-authSocket ${gitlabSocket} " + "-documentRoot ${cfg.packages.gitlab}/share/gitlab/public " - + "-secretPath ${cfg.packages.gitlab}/share/gitlab/.gitlab_workhorse_secret"; + + "-secretPath ${cfg.statePath}/.gitlab_workhorse_secret"; }; }; @@ -474,6 +554,8 @@ in { gitAndTools.git openssh nodejs + procps + gnupg ]; preStart = '' mkdir -p ${cfg.backupPath} @@ -483,28 +565,29 @@ in { mkdir -p ${gitlabConfig.production.shared.path}/lfs-objects mkdir -p ${gitlabConfig.production.shared.path}/pages mkdir -p ${cfg.statePath}/log - mkdir -p ${cfg.statePath}/shell mkdir -p ${cfg.statePath}/tmp/pids mkdir -p ${cfg.statePath}/tmp/sockets + mkdir -p ${cfg.statePath}/shell rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks - mkdir -p ${cfg.statePath}/config ${cfg.statePath}/shell + mkdir -p ${cfg.statePath}/config - tr -dc A-Za-z0-9 < /dev/urandom | head -c 32 > ${cfg.statePath}/config/gitlab_shell_secret + ${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/config/gitlab_shell_secret # The uploads directory is hardcoded somewhere deep in rails. It is # symlinked in the gitlab package to /run/gitlab/uploads to make it # configurable mkdir -p /run/gitlab - mkdir -p ${cfg.statePath}/uploads + mkdir -p ${cfg.statePath}/{log,uploads} + ln -sf ${cfg.statePath}/log /run/gitlab/log ln -sf ${cfg.statePath}/uploads /run/gitlab/uploads + ln -sf ${cfg.statePath}/tmp /run/gitlab/tmp chown -R ${cfg.user}:${cfg.group} /run/gitlab # Prepare home directory mkdir -p ${gitlabEnv.HOME}/.ssh touch ${gitlabEnv.HOME}/.ssh/authorized_keys chown -R ${cfg.user}:${cfg.group} ${gitlabEnv.HOME}/ - chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME}/ cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config ${optionalString cfg.smtp.enable '' @@ -529,14 +612,14 @@ in { if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then if ! test -e "${cfg.statePath}/db-created"; then - psql postgres -c "CREATE ROLE ${cfg.databaseUsername} WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'" - ${config.services.postgresql.package}/bin/createdb --owner ${cfg.databaseUsername} ${cfg.databaseName} || true + ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "CREATE ROLE ${cfg.databaseUsername} WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.databasePassword}'" + ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} ${config.services.postgresql.package}/bin/createdb --owner ${cfg.databaseUsername} ${cfg.databaseName} touch "${cfg.statePath}/db-created" fi fi # enable required pg_trgm extension for gitlab - psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm" + ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql ${cfg.databaseName} -c "CREATE EXTENSION IF NOT EXISTS pg_trgm" # Always do the db migrations just to be sure the database is up-to-date ${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production @@ -545,14 +628,27 @@ in { # up the initial database if ! test -e "${cfg.statePath}/db-seeded"; then ${gitlab-rake}/bin/gitlab-rake db:seed_fu RAILS_ENV=production \ - GITLAB_ROOT_PASSWORD="${cfg.initialRootPassword}" GITLAB_ROOT_EMAIL="${cfg.initialRootEmail}" + GITLAB_ROOT_PASSWORD='${cfg.initialRootPassword}' GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}' touch "${cfg.statePath}/db-seeded" fi + # The gitlab:shell:create_hooks task seems broken for fixing links + # so we instead delete all the hooks and create them anew + rm -f ${cfg.statePath}/repositories/**/*.git/hooks + ${gitlab-rake}/bin/gitlab-rake gitlab:shell:create_hooks RAILS_ENV=production + # Change permissions in the last step because some of the # intermediary scripts like to create directories as root. chown -R ${cfg.user}:${cfg.group} ${cfg.statePath} - chmod -R u+rwX,go-rwx+X ${cfg.statePath} + chmod -R ug+rwX,o-rwx+X ${cfg.statePath} + chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME} + chmod -R ug+rwX,o-rwx ${cfg.statePath}/repositories + chmod -R ug-s ${cfg.statePath}/repositories + find ${cfg.statePath}/repositories -type d -print0 | xargs -0 chmod g+s + chmod 770 ${cfg.statePath}/uploads + chown -R ${cfg.user} ${cfg.statePath}/uploads + find ${cfg.statePath}/uploads -type f -exec chmod 0644 {} \; + find ${cfg.statePath}/uploads -type d -not -path ${cfg.statePath}/uploads -exec chmod 0770 {} \; ''; serviceConfig = { @@ -563,7 +659,7 @@ in { TimeoutSec = "300"; Restart = "on-failure"; WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab"; - ExecStart = "${cfg.packages.gitlab.env}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\""; + ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\""; }; }; diff --git a/nixos/modules/services/misc/gitlab.xml b/nixos/modules/services/misc/gitlab.xml index f9636f8e127..4b00f50abd6 100644 --- a/nixos/modules/services/misc/gitlab.xml +++ b/nixos/modules/services/misc/gitlab.xml @@ -66,6 +66,35 @@ services.gitlab = { db = "uPgq1gtwwHiatiuE0YHqbGa5lEIXH7fMsvuTNgdzJi8P0Dg12gibTzBQbq5LT7PNzcc3BP9P1snHVnduqtGF43PgrQtU7XL93ts6gqe9CBNhjtaqUwutQUDkygP5NrV6"; secret = "devzJ0Tz0POiDBlrpWmcsjjrLaltyiAdS8TtgT9YNBOoUcDsfppiY3IXZjMVtKgXrFImIennFGOpPN8IkP8ATXpRgDD5rxVnKuTTwYQaci2NtaV1XxOQGjdIE50VGsR3"; otp = "e1GATJVuS2sUh7jxiPzZPre4qtzGGaS22FR50Xs1TerRVdgI3CBVUi5XYtQ38W4xFeS4mDqi5cQjExE838iViSzCdcG19XSL6qNsfokQP9JugwiftmhmCadtsnHErBMI"; + jws = '' + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEArrtx4oHKwXoqUbMNqnHgAklnnuDon3XG5LJB35yPsXKv/8GK + ke92wkI+s1Xkvsp8tg9BIY/7c6YK4SR07EWL+dB5qwctsWR2Q8z+/BKmTx9D99pm + hnsjuNIXTF7BXrx3RX6BxZpH5Vzzh9nCwWKT/JCFqtwH7afNGGL7aMf+hdaiUg/Q + SD05yRObioiO4iXDolsJOhrnbZvlzVHl1ZYxFJv0H6/Snc0BBA9Fl/3uj6ANpbjP + eXF1SnJCqT87bj46r5NdVauzaRxAsIfqHroHK4UZ98X5LjGQFGvSqTvyjPBS4I1i + s7VJU28ObuutHxIxSlH0ibn4HZqWmKWlTS652wIDAQABAoIBAGtPcUTTw2sJlR3x + 4k2wfAvLexkHNbZhBdKEa5JiO5mWPuLKwUiZEY2CU7Gd6csG3oqNWcm7/IjtC7dz + xV8p4yp8T4yq7vQIJ93B80NqTLtBD2QTvG2RCMJEPMzJUObWxkVmyVpLQyZo7KOd + KE/OM+aj94OUeEYLjRkSCScz1Gvq/qFG/nAy7KPCmN9JDHuhX26WHo2Rr1OnPNT/ + 7diph0bB9F3b8gjjNTqXDrpdAqVOgR/PsjEBz6DMY+bdyMIn87q2yfmMexxRofN6 + LulpzSaa6Yup8N8H6PzVO6KAkQuf1aQRj0sMwGk1IZEnj6I0KbuHIZkw21Nc6sf2 + ESFySDECgYEA1PnCNn5tmLnwe62Ttmrzl20zIS3Me1gUVJ1NTfr6+ai0I9iMYU21 + 5czuAjJPm9JKQF2vY8UAaCj2ZoObtHa/anb3xsCd8NXoM3iJq5JDoXI1ldz3Y+ad + U/bZUg1DLRvAniTuXmw9iOTwTwPxlDIGq5k+wG2Xmi1lk7zH8ezr9BMCgYEA0gfk + EhgcmPH8Z5cU3YYwOdt6HSJOM0OyN4k/5gnkv+HYVoJTj02gkrJmLr+mi1ugKj46 + 7huYO9TVnrKP21tmbaSv1dp5hS3letVRIxSloEtVGXmmdvJvBRzDWos+G+KcvADi + fFCz6w8v9NmO40CB7y/3SxTmSiSxDQeoi9LhDBkCgYEAsPgMWm25sfOnkY2NNUIv + wT8bAlHlHQT2d8zx5H9NttBpR3P0ShJhuF8N0sNthSQ7ULrIN5YGHYcUH+DyLAWU + TuomP3/kfa+xL7vUYb269tdJEYs4AkoppxBySoz8qenqpz422D0G8M6TpIS5Y5Qi + GMrQ6uLl21YnlpiCaFOfSQMCgYEAmZxj1kgEQmhZrnn1LL/D7czz1vMMNrpAUhXz + wg9iWmSXkU3oR1sDIceQrIhHCo2M6thwyU0tXjUft93pEQocM/zLDaGoVxtmRxxV + J08mg8IVD3jFoyFUyWxsBIDqgAKRl38eJsXvkO+ep3mm49Z+Ma3nM+apN3j2dQ0w + 3HLzXaECgYBFLMEAboVFwi5+MZjGvqtpg2PVTisfuJy2eYnPwHs+AXUgi/xRNFjI + YHEa7UBPb5TEPSzWImQpETi2P5ywcUYL1EbN/nqPWmjFnat8wVmJtV4sUpJhubF4 + Vqm9LxIWc1uQ1q1HDCejRIxIN3aSH+wgRS3Kcj8kCTIoXd1aERb04g== + -----END RSA PRIVATE KEY----- + ''; }; extraConfig = { gitlab = { diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix index 5012bed0c42..f395b9558b5 100644 --- a/nixos/modules/services/misc/gitolite.nix +++ b/nixos/modules/services/misc/gitolite.nix @@ -4,7 +4,8 @@ with lib; let cfg = config.services.gitolite; - pubkeyFile = pkgs.writeText "gitolite-admin.pub" cfg.adminPubkey; + # Use writeTextDir to not leak Nix store hash into file name + pubkeyFile = (pkgs.writeTextDir "gitolite-admin.pub" cfg.adminPubkey) + "/gitolite-admin.pub"; hooks = lib.concatMapStrings (hook: "${hook} ") cfg.commonHooks; in { @@ -40,6 +41,15 @@ in ''; }; + enableGitAnnex = mkOption { + type = types.bool; + default = false; + description = '' + Enable git-annex support. Uses the extraGitoliteRc option + to apply the necessary configuration. + ''; + }; + commonHooks = mkOption { type = types.listOf types.path; default = []; @@ -48,6 +58,37 @@ in ''; }; + extraGitoliteRc = mkOption { + type = types.lines; + default = ""; + example = literalExample '' + $RC{UMASK} = 0027; + $RC{SITE_INFO} = 'This is our private repository host'; + push( @{$RC{ENABLE}}, 'Kindergarten' ); # enable the command/feature + @{$RC{ENABLE}} = grep { $_ ne 'desc' } @{$RC{ENABLE}}; # disable the command/feature + ''; + description = '' + Extra configuration to append to the default ~/.gitolite.rc. + + This should be Perl code that modifies the %RC + configuration variable. The default ~/.gitolite.rc + content is generated by invoking gitolite print-default-rc, + and extra configuration from this option is appended to it. The result + is placed to Nix store, and the ~/.gitolite.rc file + becomes a symlink to it. + + If you already have a customized (or otherwise changed) + ~/.gitolite.rc file, NixOS will refuse to replace + it with a symlink, and the `gitolite-init` initialization service + will fail. In this situation, in order to use this option, you + will need to take any customizations you may have in + ~/.gitolite.rc, convert them to appropriate Perl + statements, add them to this option, and remove the file. + + See also the enableGitAnnex option. + ''; + }; + user = mkOption { type = types.str; default = "gitolite"; @@ -55,41 +96,125 @@ in Gitolite user account. This is the username of the gitolite endpoint. ''; }; + + group = mkOption { + type = types.str; + default = "gitolite"; + description = '' + Primary group of the Gitolite user account. + ''; + }; }; }; - config = mkIf cfg.enable { + config = mkIf cfg.enable ( + let + manageGitoliteRc = cfg.extraGitoliteRc != ""; + rcDir = pkgs.runCommand "gitolite-rc" { } rcDirScript; + rcDirScript = + '' + mkdir "$out" + export HOME=temp-home + mkdir -p "$HOME/.gitolite/logs" # gitolite can't run without it + '${pkgs.gitolite}'/bin/gitolite print-default-rc >>"$out/gitolite.rc.default" + cat <>"$out/gitolite.rc" + # This file is managed by NixOS. + # Use services.gitolite options to control it. + + END + cat "$out/gitolite.rc.default" >>"$out/gitolite.rc" + '' + + optionalString (cfg.extraGitoliteRc != "") '' + echo -n ${escapeShellArg '' + + # Added by NixOS: + ${removeSuffix "\n" cfg.extraGitoliteRc} + + # per perl rules, this should be the last line in such a file: + 1; + ''} >>"$out/gitolite.rc" + ''; + in { + services.gitolite.extraGitoliteRc = optionalString cfg.enableGitAnnex '' + # Enable git-annex support: + push( @{$RC{ENABLE}}, 'git-annex-shell ua'); + ''; + users.extraUsers.${cfg.user} = { description = "Gitolite user"; home = cfg.dataDir; createHome = true; uid = config.ids.uids.gitolite; + group = cfg.group; useDefaultShell = true; }; + users.extraGroups."${cfg.group}".gid = config.ids.gids.gitolite; systemd.services."gitolite-init" = { description = "Gitolite initialization"; wantedBy = [ "multi-user.target" ]; + unitConfig.RequiresMountsFor = cfg.dataDir; serviceConfig.User = "${cfg.user}"; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; - path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash config.programs.ssh.package ]; - script = '' - cd ${cfg.dataDir} - mkdir -p .gitolite/logs - if [ ! -d repositories ]; then - gitolite setup -pk ${pubkeyFile} - fi - if [ -n "${hooks}" ]; then - cp ${hooks} .gitolite/hooks/common/ - chmod +x .gitolite/hooks/common/* - fi - gitolite setup # Upgrade if needed - ''; + path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ]; + script = + let + rcSetupScriptIfCustomFile = + if manageGitoliteRc then '' + cat <ERROR: NixOS can't apply declarative configuration + <3>to your .gitolite.rc file, because it seems to be + <3>already customized manually. + <3>See the services.gitolite.extraGitoliteRc option + <3>in "man configuration.nix" for more information. + END + # Not sure if the line below addresses the issue directly or just + # adds a delay, but without it our error message often doesn't + # show up in `systemctl status gitolite-init`. + journalctl --flush + exit 1 + '' else '' + : + ''; + rcSetupScriptIfDefaultFileOrStoreSymlink = + if manageGitoliteRc then '' + ln -sf "${rcDir}/gitolite.rc" "$GITOLITE_RC" + '' else '' + [[ -L "$GITOLITE_RC" ]] && rm -f "$GITOLITE_RC" + ''; + in + '' + cd ${cfg.dataDir} + mkdir -p .gitolite/logs + + GITOLITE_RC=.gitolite.rc + GITOLITE_RC_DEFAULT=${rcDir}/gitolite.rc.default + if ( [[ ! -e "$GITOLITE_RC" ]] && [[ ! -L "$GITOLITE_RC" ]] ) || + ( [[ -f "$GITOLITE_RC" ]] && diff -q "$GITOLITE_RC" "$GITOLITE_RC_DEFAULT" >/dev/null ) || + ( [[ -L "$GITOLITE_RC" ]] && [[ "$(readlink "$GITOLITE_RC")" =~ ^/nix/store/ ]] ) + then + '' + rcSetupScriptIfDefaultFileOrStoreSymlink + + '' + else + '' + rcSetupScriptIfCustomFile + + '' + fi + + if [ ! -d repositories ]; then + gitolite setup -pk ${pubkeyFile} + fi + if [ -n "${hooks}" ]; then + cp ${hooks} .gitolite/hooks/common/ + chmod +x .gitolite/hooks/common/* + fi + gitolite setup # Upgrade if needed + ''; }; - environment.systemPackages = [ pkgs.gitolite pkgs.git ]; - }; + environment.systemPackages = [ pkgs.gitolite pkgs.git ] + ++ optional cfg.enableGitAnnex pkgs.gitAndTools.git-annex; + }); } diff --git a/nixos/modules/services/misc/gogs.nix b/nixos/modules/services/misc/gogs.nix index ca8fc06e483..f6d326e43d9 100644 --- a/nixos/modules/services/misc/gogs.nix +++ b/nixos/modules/services/misc/gogs.nix @@ -14,7 +14,7 @@ let HOST = ${cfg.database.host}:${toString cfg.database.port} NAME = ${cfg.database.name} USER = ${cfg.database.user} - PASSWD = ${cfg.database.password} + PASSWD = #dbpass# PATH = ${cfg.database.path} [repository] @@ -25,6 +25,11 @@ let HTTP_ADDR = ${cfg.httpAddress} HTTP_PORT = ${toString cfg.httpPort} ROOT_URL = ${cfg.rootUrl} + STATIC_ROOT_PATH = ${cfg.staticRootPath} + + [session] + COOKIE_NAME = session + COOKIE_SECURE = ${boolToString cfg.cookieSecure} [security] SECRET_KEY = #secretkey# @@ -102,7 +107,21 @@ in password = mkOption { type = types.str; default = ""; - description = "Database password."; + description = '' + The password corresponding to . + Warning: this is stored in cleartext in the Nix store! + Use instead. + ''; + }; + + passwordFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/gogs-dbpassword"; + description = '' + A file containing the password corresponding to + . + ''; }; path = mkOption { @@ -148,6 +167,22 @@ in description = "HTTP listen port."; }; + cookieSecure = mkOption { + type = types.bool; + default = false; + description = '' + Marks session cookies as "secure" as a hint for browsers to only send + them via HTTPS. This option is recommend, if Gogs is being served over HTTPS. + ''; + }; + + staticRootPath = mkOption { + type = types.str; + default = "${pkgs.gogs.data}"; + example = "/var/lib/gogs/data"; + description = "Upper level of template and static files path."; + }; + extraConfig = mkOption { type = types.str; default = ""; @@ -164,13 +199,27 @@ in wantedBy = [ "multi-user.target" ]; path = [ pkgs.gogs.bin ]; - preStart = '' + preStart = let + runConfig = "${cfg.stateDir}/custom/conf/app.ini"; + secretKey = "${cfg.stateDir}/custom/conf/secret_key"; + in '' + mkdir -p ${cfg.stateDir} + # copy custom configuration and generate a random secret key if needed ${optionalString (cfg.useWizard == false) '' mkdir -p ${cfg.stateDir}/custom/conf - cp -f ${configFile} ${cfg.stateDir}/custom/conf/app.ini - KEY=$(head -c 16 /dev/urandom | tr -dc A-Za-z0-9) - sed -i "s,#secretkey#,$KEY,g" ${cfg.stateDir}/custom/conf/app.ini + cp -f ${configFile} ${runConfig} + + if [ ! -e ${secretKey} ]; then + head -c 16 /dev/urandom | base64 > ${secretKey} + fi + + KEY=$(head -n1 ${secretKey}) + DBPASS=$(head -n1 ${cfg.database.passwordFile}) + sed -e "s,#secretkey#,$KEY,g" \ + -e "s,#dbpass#,$DBPASS,g" \ + -i ${runConfig} + chmod 440 ${runConfig} ${secretKey} ''} mkdir -p ${cfg.repositoryRoot} @@ -201,7 +250,7 @@ in }; }; - users = { + users = mkIf (cfg.user == "gogs") { extraUsers.gogs = { description = "Go Git Service"; uid = config.ids.uids.gogs; @@ -212,5 +261,16 @@ in }; extraGroups.gogs.gid = config.ids.gids.gogs; }; + + warnings = optional (cfg.database.password != "") + ''config.services.gogs.database.password will be stored as plaintext + in the Nix store. Use database.passwordFile instead.''; + + # Create database passwordFile default when password is configured. + services.gogs.database.passwordFile = + (mkDefault (toString (pkgs.writeTextFile { + name = "gogs-database-password"; + text = cfg.database.password; + }))); }; } diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix new file mode 100644 index 00000000000..81fb024f909 --- /dev/null +++ b/nixos/modules/services/misc/gollum.nix @@ -0,0 +1,92 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.gollum; +in + +{ + options.services.gollum = { + enable = mkOption { + type = types.bool; + default = false; + description = "Enable the Gollum service."; + }; + + address = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "IP address on which the web server will listen."; + }; + + port = mkOption { + type = types.int; + default = 4567; + description = "Port on which the web server will run."; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = "Content of the configuration file"; + }; + + branch = mkOption { + type = types.str; + default = "master"; + example = "develop"; + description = "Git branch to serve"; + }; + + stateDir = mkOption { + type = types.path; + default = "/var/lib/gollum"; + description = "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup."; + }; + + }; + + config = mkIf cfg.enable { + + users.users.gollum = { + group = config.users.users.gollum.name; + description = "Gollum user"; + createHome = false; + }; + + users.groups.gollum = { }; + + systemd.services.gollum = { + description = "Gollum wiki"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.git ]; + + preStart = let + userName = config.users.users.gollum.name; + groupName = config.users.groups.gollum.name; + in '' + # All of this is safe to be run on an existing repo + mkdir -p ${cfg.stateDir} + git init ${cfg.stateDir} + chmod 755 ${cfg.stateDir} + chown -R ${userName}:${groupName} ${cfg.stateDir} + ''; + + serviceConfig = { + User = config.users.extraUsers.gollum.name; + Group = config.users.extraGroups.gollum.name; + PermissionsStartOnly = true; + ExecStart = '' + ${pkgs.gollum}/bin/gollum \ + --port ${toString cfg.port} \ + --host ${cfg.address} \ + --config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \ + --ref ${cfg.branch} \ + ${cfg.stateDir} + ''; + }; + }; + }; +} diff --git a/nixos/modules/services/misc/jackett.nix b/nixos/modules/services/misc/jackett.nix index e467e7ee85b..87a41ee70b5 100644 --- a/nixos/modules/services/misc/jackett.nix +++ b/nixos/modules/services/misc/jackett.nix @@ -22,14 +22,14 @@ in echo "Creating jackett data directory in /var/lib/jackett/" mkdir -p /var/lib/jackett/ } - chown -R jackett /var/lib/jackett/ + chown -R jackett:jackett /var/lib/jackett/ chmod 0700 /var/lib/jackett/ ''; serviceConfig = { Type = "simple"; User = "jackett"; - Group = "nogroup"; + Group = "jackett"; PermissionsStartOnly = "true"; ExecStart = "${pkgs.jackett}/bin/Jackett"; Restart = "on-failure"; @@ -37,8 +37,11 @@ in }; users.extraUsers.jackett = { + uid = config.ids.uids.jackett; home = "/var/lib/jackett"; + group = "jackett"; }; + users.extraGroups.jackett.gid = config.ids.gids.jackett; }; } diff --git a/nixos/modules/services/misc/logkeys.nix b/nixos/modules/services/misc/logkeys.nix new file mode 100644 index 00000000000..6051c884465 --- /dev/null +++ b/nixos/modules/services/misc/logkeys.nix @@ -0,0 +1,23 @@ +{ config, lib, ... }: + +with lib; + +let + cfg = config.services.logkeys; +in { + options.services.logkeys = { + enable = mkEnableOption "logkeys service"; + }; + + config = mkIf cfg.enable { + systemd.services.logkeys = { + description = "LogKeys Keylogger Daemon"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.logkeys}/bin/logkeys -s"; + ExecStop = "${pkgs.logkeys}/bin/logkeys -k"; + Type = "forking"; + }; + }; + }; +} diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix index ae9826968b1..a3ec0ea59f8 100644 --- a/nixos/modules/services/misc/matrix-synapse.nix +++ b/nixos/modules/services/misc/matrix-synapse.nix @@ -605,6 +605,7 @@ in { } ]; systemd.services.matrix-synapse = { + description = "Synapse Matrix homeserver"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' @@ -620,6 +621,7 @@ in { WorkingDirectory = "/var/lib/matrix-synapse"; PermissionsStartOnly = true; ExecStart = "${cfg.package}/bin/homeserver --config-path ${configFile} --keys-directory /var/lib/matrix-synapse"; + Restart = "on-failure"; }; }; }; diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index bf1304ee7ac..beca820d2d6 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -189,6 +189,7 @@ in sshKey = "/root/.ssh/id_buildfarm"; system = "x86_64-linux"; maxJobs = 2; + speedFactor = 2; supportedFeatures = [ "kvm" ]; mandatoryFeatures = [ "perf" ]; } @@ -428,7 +429,7 @@ in fi ''; - nix.nrBuildUsers = mkDefault (lib.max 10 cfg.maxJobs); + nix.nrBuildUsers = mkDefault (lib.max 32 cfg.maxJobs); users.extraUsers = nixbldUsers; diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix index 622607f3b32..41cadb4a6de 100644 --- a/nixos/modules/services/misc/nixos-manual.nix +++ b/nixos/modules/services/misc/nixos-manual.nix @@ -62,8 +62,7 @@ let name = "nixos-manual"; desktopName = "NixOS Manual"; genericName = "View NixOS documentation in a web browser"; - # TODO: find a better icon (Nix logo + help overlay?) - icon = "system-help"; + icon = "nix-snowflake"; exec = "${helpScript}/bin/nixos-help"; categories = "System"; }; @@ -115,7 +114,7 @@ in environment.systemPackages = [ manual.manual helpScript ] - ++ optional config.services.xserver.enable desktopItem + ++ optionals config.services.xserver.enable [desktopItem pkgs.nixos-icons] ++ optional config.programs.man.enable manual.manpages; boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"]; @@ -136,8 +135,9 @@ in }; }; - services.mingetty.helpLine = mkIf cfg.showManual - "\nPress for the NixOS manual."; + services.mingetty.helpLine = "\nRun `nixos-help` " + + lib.optionalString cfg.showManual "or press " + + "for the NixOS manual."; }; diff --git a/nixos/modules/services/misc/plex.nix b/nixos/modules/services/misc/plex.nix index 9c0bea8d3bf..46221ace308 100644 --- a/nixos/modules/services/misc/plex.nix +++ b/nixos/modules/services/misc/plex.nix @@ -82,7 +82,7 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - test -d "${cfg.dataDir}" || { + test -d "${cfg.dataDir}/Plex Media Server" || { echo "Creating initial Plex data directory in \"${cfg.dataDir}\"." mkdir -p "${cfg.dataDir}/Plex Media Server" chown -R ${cfg.user}:${cfg.group} "${cfg.dataDir}" @@ -91,7 +91,7 @@ in # Copy the database skeleton files to /var/lib/plex/.skeleton # See the the Nix expression for Plex's package for more information on # why this is done. - test -d "${cfg.dataDir}/.skeleton" || mkdir "${cfg.dataDir}/.skeleton" + install --owner ${cfg.user} --group ${cfg.group} -d "${cfg.dataDir}/.skeleton" for db in "com.plexapp.plugins.library.db"; do if [ ! -e "${cfg.dataDir}/.skeleton/$db" ]; then cp "${cfg.package}/usr/lib/plexmediaserver/Resources/base_$db" "${cfg.dataDir}/.skeleton/$db" @@ -137,7 +137,7 @@ in User = cfg.user; Group = cfg.group; PermissionsStartOnly = "true"; - ExecStart = "/bin/sh -c ${cfg.package}/usr/lib/plexmediaserver/Plex\\ Media\\ Server"; + ExecStart = "\"${cfg.package}/usr/lib/plexmediaserver/Plex Media Server\""; KillSignal = "SIGQUIT"; Restart = "on-failure"; }; diff --git a/nixos/modules/services/misc/plexpy.nix b/nixos/modules/services/misc/plexpy.nix new file mode 100644 index 00000000000..df9f1258124 --- /dev/null +++ b/nixos/modules/services/misc/plexpy.nix @@ -0,0 +1,81 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.plexpy; +in +{ + options = { + services.plexpy = { + enable = mkEnableOption "PlexPy Plex Monitor"; + + dataDir = mkOption { + type = types.str; + default = "/var/lib/plexpy"; + description = "The directory where PlexPy stores its data files."; + }; + + configFile = mkOption { + type = types.str; + default = "/var/lib/plexpy/config.ini"; + description = "The location of PlexPy's config file."; + }; + + port = mkOption { + type = types.int; + default = 8181; + description = "TCP port where PlexPy listens."; + }; + + user = mkOption { + type = types.str; + default = "plexpy"; + description = "User account under which PlexPy runs."; + }; + + group = mkOption { + type = types.str; + default = "nogroup"; + description = "Group under which PlexPy runs."; + }; + + package = mkOption { + type = types.package; + default = pkgs.plexpy; + defaultText = "pkgs.plexpy"; + description = '' + The PlexPy package to use. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.plexpy = { + description = "PlexPy Plex Monitor"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + preStart = '' + test -d "${cfg.dataDir}" || { + echo "Creating initial PlexPy data directory in \"${cfg.dataDir}\"." + mkdir -p "${cfg.dataDir}" + chown ${cfg.user}:${cfg.group} "${cfg.dataDir}" + } + ''; + serviceConfig = { + Type = "simple"; + User = cfg.user; + Group = cfg.group; + PermissionsStartOnly = "true"; + GuessMainPID = "false"; + ExecStart = "${cfg.package}/bin/plexpy --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port} --pidfile ${cfg.dataDir}/plexpy.pid --nolaunch"; + Restart = "on-failure"; + }; + }; + + users.extraUsers = mkIf (cfg.user == "plexpy") { + plexpy = { group = cfg.group; uid = config.ids.uids.plexpy; }; + }; + }; +} diff --git a/nixos/modules/services/misc/pykms.nix b/nixos/modules/services/misc/pykms.nix new file mode 100644 index 00000000000..897e856e2a2 --- /dev/null +++ b/nixos/modules/services/misc/pykms.nix @@ -0,0 +1,90 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.pykms; + + home = "/var/lib/pykms"; + + services = { + serviceConfig = { + Restart = "on-failure"; + RestartSec = "10s"; + StartLimitInterval = "1min"; + PrivateTmp = true; + ProtectSystem = "full"; + ProtectHome = true; + }; + }; + +in { + + options = { + services.pykms = rec { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the PyKMS service."; + }; + + listenAddress = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "The IP address on which to listen."; + }; + + port = mkOption { + type = types.int; + default = 1688; + description = "The port on which to listen."; + }; + + verbose = mkOption { + type = types.bool; + default = false; + description = "Show verbose output."; + }; + + openFirewallPort = mkOption { + type = types.bool; + default = false; + description = "Whether the listening port should be opened automatically."; + }; + }; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewallPort [ cfg.port ]; + + systemd.services = { + pykms = services // { + description = "Python KMS"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = with pkgs; { + User = "pykms"; + Group = "pykms"; + ExecStartPre = "${getBin pykms}/bin/create_pykms_db.sh ${home}/clients.db"; + ExecStart = "${getBin pykms}/bin/server.py ${optionalString cfg.verbose "--verbose"} ${cfg.listenAddress} ${toString cfg.port}"; + WorkingDirectory = home; + MemoryLimit = "64M"; + }; + }; + }; + + users = { + extraUsers.pykms = { + name = "pykms"; + group = "pykms"; + home = home; + createHome = true; + uid = config.ids.uids.pykms; + description = "PyKMS daemon user"; + }; + + extraGroups.pykms = { + gid = config.ids.gids.pykms; + }; + }; + }; +} diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/radarr.nix index cc5efffca44..245ad9f9a6d 100644 --- a/nixos/modules/services/misc/radarr.nix +++ b/nixos/modules/services/misc/radarr.nix @@ -22,14 +22,14 @@ in echo "Creating radarr data directory in /var/lib/radarr/" mkdir -p /var/lib/radarr/ } - chown -R radarr /var/lib/radarr/ + chown -R radarr:radarr /var/lib/radarr/ chmod 0700 /var/lib/radarr/ ''; serviceConfig = { Type = "simple"; User = "radarr"; - Group = "nogroup"; + Group = "radarr"; PermissionsStartOnly = "true"; ExecStart = "${pkgs.radarr}/bin/Radarr"; Restart = "on-failure"; @@ -37,8 +37,11 @@ in }; users.extraUsers.radarr = { + uid = config.ids.uids.radarr; home = "/var/lib/radarr"; + group = "radarr"; }; + users.extraGroups.radarr.gid = config.ids.gids.radarr; }; } diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index e3f1ec67cbb..3997b3f0dca 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -191,7 +191,7 @@ in { if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then if ! test -e "${cfg.stateDir}/db-created"; then - psql postgres -c "CREATE ROLE redmine WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'" + psql postgres -c "CREATE ROLE redmine WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.databasePassword}'" ${config.services.postgresql.package}/bin/createdb --owner redmine redmine || true touch "${cfg.stateDir}/db-created" fi diff --git a/nixos/modules/services/misc/ripple-rest.nix b/nixos/modules/services/misc/ripple-rest.nix deleted file mode 100644 index 49520f68a50..00000000000 --- a/nixos/modules/services/misc/ripple-rest.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ config, pkgs, lib, ... }: - -with lib; - -let - cfg = config.services.rippleRest; - - configFile = pkgs.writeText "ripple-rest-config.json" (builtins.toJSON { - config_version = "2.0.3"; - debug = cfg.debug; - port = cfg.port; - host = cfg.host; - ssl_enabled = cfg.ssl.enable; - ssl = { - key_path = cfg.ssl.keyPath; - cert_path = cfg.ssl.certPath; - reject_unathorized = cfg.ssl.rejectUnathorized; - }; - db_path = cfg.dbPath; - max_transaction_fee = cfg.maxTransactionFee; - rippled_servers = cfg.rippleds; - }); - -in { - options.services.rippleRest = { - enable = mkEnableOption "ripple rest"; - - debug = mkEnableOption "debug for ripple-rest"; - - host = mkOption { - description = "Ripple rest host."; - default = "localhost"; - type = types.str; - }; - - port = mkOption { - description = "Ripple rest port."; - default = 5990; - type = types.int; - }; - - ssl = { - enable = mkEnableOption "ssl"; - - keyPath = mkOption { - description = "Path to the ripple rest key file."; - default = null; - type = types.nullOr types.path; - }; - - - certPath = mkOption { - description = "Path to the ripple rest cert file."; - default = null; - type = types.nullOr types.path; - }; - - rejectUnathorized = mkOption { - description = "Whether to reject unatohroized."; - default = true; - type = types.bool; - }; - }; - - dbPath = mkOption { - description = "Ripple rest database path."; - default = "${cfg.dataDir}/ripple-rest.db"; - type = types.path; - }; - - maxTransactionFee = mkOption { - description = "Ripple rest max transaction fee."; - default = 1000000; - type = types.int; - }; - - rippleds = mkOption { - description = "List of rippled servers."; - default = [ - "wss://s1.ripple.com:443" - ]; - type = types.listOf types.str; - }; - - dataDir = mkOption { - description = "Ripple rest data directory."; - default = "/var/lib/ripple-rest"; - type = types.path; - }; - }; - - config = mkIf (cfg.enable) { - systemd.services.ripple-rest = { - wantedBy = [ "multi-user.target"]; - after = ["network.target" ]; - environment.NODE_PATH="${pkgs.ripple-rest}/lib/node_modules/ripple-rest/node_modules"; - serviceConfig = { - ExecStart = "${pkgs.nodejs}/bin/node ${pkgs.ripple-rest}/lib/node_modules/ripple-rest/server/server.js --config ${configFile}"; - User = "ripple-rest"; - }; - }; - - users.extraUsers.postgres = { - name = "ripple-rest"; - uid = config.ids.uids.ripple-rest; - createHome = true; - home = cfg.dataDir; - }; - }; -} diff --git a/nixos/modules/services/misc/snapper.nix b/nixos/modules/services/misc/snapper.nix new file mode 100644 index 00000000000..62b344d11b0 --- /dev/null +++ b/nixos/modules/services/misc/snapper.nix @@ -0,0 +1,152 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.snapper; +in + +{ + options.services.snapper = { + + snapshotInterval = mkOption { + type = types.str; + default = "hourly"; + description = '' + Snapshot interval. + + The format is described in + systemd.time + 7. + ''; + }; + + cleanupInterval = mkOption { + type = types.str; + default = "1d"; + description = '' + Cleanup interval. + + The format is described in + systemd.time + 7. + ''; + }; + + filters = mkOption { + type = types.nullOr types.lines; + default = null; + description = '' + Global display difference filter. See man:snapper(8) for more details. + ''; + }; + + configs = mkOption { + default = { }; + example = literalExample { + "home" = { + subvolume = "/home"; + extraConfig = '' + ALLOW_USERS="alice" + ''; + }; + }; + + description = '' + Subvolume configuration + ''; + + type = types.attrsOf (types.submodule { + options = { + subvolume = mkOption { + type = types.path; + description = '' + Path of the subvolume or mount point. + This path is a subvolume and has to contain a subvolume named + .snapshots. + See also man:snapper(8) section PERMISSIONS. + ''; + }; + + fstype = mkOption { + type = types.enum [ "btrfs" ]; + default = "btrfs"; + description = '' + Filesystem type. Only btrfs is stable and tested. + ''; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Additional configuration next to SUBVOLUME and FSTYPE. + See man:snapper-configs(5). + ''; + }; + }; + }); + }; + }; + + config = mkIf (cfg.configs != {}) (let + documentation = [ "man:snapper(8)" "man:snapper-configs(5)" ]; + in { + + environment = { + + systemPackages = [ pkgs.snapper ]; + + # Note: snapper/config-templates/default is only needed for create-config + # which is not the NixOS way to configure. + etc = { + + "sysconfig/snapper".text = '' + SNAPPER_CONFIGS="${lib.concatStringsSep " " (builtins.attrNames cfg.configs)}" + ''; + + } + // (mapAttrs' (name: subvolume: nameValuePair "snapper/configs/${name}" ({ + text = '' + ${subvolume.extraConfig} + FSTYPE="${subvolume.fstype}" + SUBVOLUME="${subvolume.subvolume}" + ''; + })) cfg.configs) + // (lib.optionalAttrs (cfg.filters != null) { + "snapper/filters/default.txt".text = cfg.filters; + }); + + }; + + services.dbus.packages = [ pkgs.snapper ]; + + systemd.services.snapper-timeline = { + description = "Timeline of Snapper Snapshots"; + inherit documentation; + serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --timeline"; + }; + + systemd.timers.snapper-timeline = { + description = "Timeline of Snapper Snapshots"; + inherit documentation; + wantedBy = [ "basic.target" ]; + timerConfig.OnCalendar = cfg.snapshotInterval; + }; + + systemd.services.snapper-cleanup = { + description = "Cleanup of Snapper Snapshots"; + inherit documentation; + serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --cleanup"; + }; + + systemd.timers.snapper-cleanup = { + description = "Cleanup of Snapper Snapshots"; + inherit documentation; + wantedBy = [ "basic.target" ]; + timerConfig.OnBootSec = "10m"; + timerConfig.OnUnitActiveSec = cfg.cleanupInterval; + }; + }); +} + diff --git a/nixos/modules/services/misc/sonarr.nix b/nixos/modules/services/misc/sonarr.nix index 6d96daa6c3d..ecde2c33bfa 100644 --- a/nixos/modules/services/misc/sonarr.nix +++ b/nixos/modules/services/misc/sonarr.nix @@ -22,14 +22,14 @@ in echo "Creating sonarr data directory in /var/lib/sonarr/" mkdir -p /var/lib/sonarr/ } - chown -R sonarr /var/lib/sonarr/ + chown -R sonarr:sonarr /var/lib/sonarr/ chmod 0700 /var/lib/sonarr/ ''; serviceConfig = { Type = "simple"; User = "sonarr"; - Group = "nogroup"; + Group = "sonarr"; PermissionsStartOnly = "true"; ExecStart = "${pkgs.sonarr}/bin/NzbDrone --no-browser"; Restart = "on-failure"; @@ -37,8 +37,11 @@ in }; users.extraUsers.sonarr = { + uid = config.ids.uids.sonarr; home = "/var/lib/sonarr"; + group = "sonarr"; }; + users.extraGroups.sonarr.gid = config.ids.gids.sonarr; }; } diff --git a/nixos/modules/services/misc/spice-vdagentd.nix b/nixos/modules/services/misc/spice-vdagentd.nix index f8133394ffd..f322ba4cbd5 100644 --- a/nixos/modules/services/misc/spice-vdagentd.nix +++ b/nixos/modules/services/misc/spice-vdagentd.nix @@ -23,7 +23,7 @@ in ''; serviceConfig = { Type = "forking"; - ExecStart = "/bin/sh -c '${pkgs.spice-vdagent}/bin/spice-vdagentd'"; + ExecStart = "${pkgs.spice-vdagent}/bin/spice-vdagentd"; }; }; }; diff --git a/nixos/modules/services/misc/taskserver/default.nix b/nixos/modules/services/misc/taskserver/default.nix index ab9a6ce32f4..ba9f52f1904 100644 --- a/nixos/modules/services/misc/taskserver/default.nix +++ b/nixos/modules/services/misc/taskserver/default.nix @@ -128,7 +128,7 @@ let certBits = cfg.pki.auto.bits; clientExpiration = cfg.pki.auto.expiration.client; crlExpiration = cfg.pki.auto.expiration.crl; - isAutoConfig = boolToString needToCreateCA; + isAutoConfig = if needToCreateCA then "True" else "False"; }}" > "$out/main.py" cat > "$out/setup.py" <storageDriverPasswordFile option + since that gives you control over the security of the password. + also takes precedence over . + ''; + }; + + storageDriverPasswordFile = mkOption { + type = types.str; + description = '' + File that contains the cadvisor storage driver password. + + takes precedence over + + Warning: when is non-empty this defaults to a file in the + world-readable Nix store that contains the value of . + + It's recommended to override this with a path not in the Nix store. + Tip: use nixops key management + ''; }; storageDriverSecure = mkOption { @@ -65,35 +87,44 @@ in { }; }; - config = mkIf cfg.enable { - systemd.services.cadvisor = { - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" "docker.service" "influxdb.service" ]; + config = mkMerge [ + { services.cadvisor.storageDriverPasswordFile = mkIf (cfg.storageDriverPassword != "") ( + mkDefault (toString (pkgs.writeTextFile { + name = "cadvisor-storage-driver-password"; + text = cfg.storageDriverPassword; + })) + ); + } - postStart = mkBefore '' - until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do - sleep 1; - done - ''; + (mkIf cfg.enable { + systemd.services.cadvisor = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "docker.service" "influxdb.service" ]; - serviceConfig = { - ExecStart = ''${pkgs.cadvisor}/bin/cadvisor \ - -logtostderr=true \ - -listen_ip=${cfg.listenAddress} \ - -port=${toString cfg.port} \ - ${optionalString (cfg.storageDriver != null) '' - -storage_driver ${cfg.storageDriver} \ - -storage_driver_user ${cfg.storageDriverHost} \ - -storage_driver_db ${cfg.storageDriverDb} \ - -storage_driver_user ${cfg.storageDriverUser} \ - -storage_driver_password ${cfg.storageDriverPassword} \ - ${optionalString cfg.storageDriverSecure "-storage_driver_secure"} - ''} + postStart = mkBefore '' + until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do + sleep 1; + done ''; - TimeoutStartSec=300; - }; - }; - virtualisation.docker.enable = mkDefault true; - }; + script = '' + exec ${pkgs.cadvisor}/bin/cadvisor \ + -logtostderr=true \ + -listen_ip="${cfg.listenAddress}" \ + -port="${toString cfg.port}" \ + ${optionalString (cfg.storageDriver != null) '' + -storage_driver "${cfg.storageDriver}" \ + -storage_driver_user "${cfg.storageDriverHost}" \ + -storage_driver_db "${cfg.storageDriverDb}" \ + -storage_driver_user "${cfg.storageDriverUser}" \ + -storage_driver_password "$(cat "${cfg.storageDriverPasswordFile}")" \ + ${optionalString cfg.storageDriverSecure "-storage_driver_secure"} + ''} + ''; + + serviceConfig.TimeoutStartSec=300; + }; + virtualisation.docker.enable = mkDefault true; + }) + ]; } diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix index 79a8a1ff5ae..dfbac3446e0 100644 --- a/nixos/modules/services/monitoring/collectd.nix +++ b/nixos/modules/services/monitoring/collectd.nix @@ -7,7 +7,6 @@ let conf = pkgs.writeText "collectd.conf" '' BaseDir "${cfg.dataDir}" - PIDFile "${cfg.pidFile}" AutoLoadPlugin ${boolToString cfg.autoLoadPlugin} Hostname "${config.networking.hostName}" @@ -26,13 +25,7 @@ let in { options.services.collectd = with types; { - enable = mkOption { - default = false; - description = '' - Whether to enable collectd agent. - ''; - type = bool; - }; + enable = mkEnableOption "collectd agent"; package = mkOption { default = pkgs.collectd; @@ -59,14 +52,6 @@ in { type = path; }; - pidFile = mkOption { - default = "/var/run/collectd.pid"; - description = '' - Location of collectd pid file. - ''; - type = path; - }; - autoLoadPlugin = mkOption { default = false; description = '' @@ -100,27 +85,20 @@ in { wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -P ${cfg.pidFile}"; - Type = "forking"; - PIDFile = cfg.pidFile; - User = optional (cfg.user!="root") cfg.user; + ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f"; + User = cfg.user; PermissionsStartOnly = true; }; preStart = '' - mkdir -p ${cfg.dataDir} - chmod 755 ${cfg.dataDir} - install -D /dev/null ${cfg.pidFile} - if [ "$(id -u)" = 0 ]; then - chown -R ${cfg.user} ${cfg.dataDir}; - chown ${cfg.user} ${cfg.pidFile} - fi + mkdir -p "${cfg.dataDir}" + chmod 755 "${cfg.dataDir}" + chown -R ${cfg.user} "${cfg.dataDir}" ''; - }; + }; users.extraUsers = optional (cfg.user == "collectd") { name = "collectd"; - uid = config.ids.uids.collectd; }; }; } diff --git a/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix b/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix new file mode 100644 index 00000000000..04512819742 --- /dev/null +++ b/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix @@ -0,0 +1,8 @@ +# Generated using update-dd-agent-default, please re-run after updating dd-agent. DO NOT EDIT MANUALLY. +[ + "auto_conf" + "agent_metrics.yaml.default" + "disk.yaml.default" + "network.yaml.default" + "ntp.yaml.default" +] diff --git a/nixos/modules/services/monitoring/dd-agent.nix b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix similarity index 87% rename from nixos/modules/services/monitoring/dd-agent.nix rename to nixos/modules/services/monitoring/dd-agent/dd-agent.nix index a98b0f2f0f8..beaa2c01b29 100644 --- a/nixos/modules/services/monitoring/dd-agent.nix +++ b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix @@ -23,7 +23,7 @@ let # proxy_password: password # tags: mytag0, mytag1 - ${optionalString (cfg.tags != null ) "tags: ${concatStringsSep "," cfg.tags }"} + ${optionalString (cfg.tags != null ) "tags: ${concatStringsSep ", " cfg.tags }"} # collect_ec2_tags: no # recent_point_threshold: 30 @@ -73,9 +73,15 @@ let nginxConfig = pkgs.writeText "nginx.yaml" cfg.nginxConfig; mongoConfig = pkgs.writeText "mongo.yaml" cfg.mongoConfig; jmxConfig = pkgs.writeText "jmx.yaml" cfg.jmxConfig; + processConfig = pkgs.writeText "process.yaml" cfg.processConfig; etcfiles = - [ { source = ddConf; + let + defaultConfd = import ./dd-agent-defaults.nix; + in (map (f: { source = "${pkgs.dd-agent}/agent/conf.d-system/${f}"; + target = "dd-agent/conf.d/${f}"; + }) defaultConfd) ++ [ + { source = ddConf; target = "dd-agent/datadog.conf"; } { source = diskConfig; @@ -96,6 +102,10 @@ let { source = mongoConfig; target = "dd-agent/conf.d/mongo.yaml"; }) ++ + (optional (cfg.processConfig != null) + { source = processConfig; + target = "dd-agent/conf.d/process.yaml"; + }) ++ (optional (cfg.jmxConfig != null) { source = jmxConfig; target = "dd-agent/conf.d/jmx.yaml"; @@ -153,6 +163,16 @@ in { type = types.uniq (types.nullOr types.string); }; + processConfig = mkOption { + description = '' + Process integration configuration + + See http://docs.datadoghq.com/integrations/process/ + ''; + default = null; + type = types.uniq (types.nullOr types.string); + }; + }; config = mkIf cfg.enable { @@ -179,7 +199,7 @@ in { Restart = "always"; RestartSec = 2; }; - restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig ]; + restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig processConfig ]; }; systemd.services.dogstatsd = { @@ -195,7 +215,7 @@ in { Restart = "always"; RestartSec = 2; }; - restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig ]; + restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig processConfig ]; }; systemd.services.dd-jmxfetch = lib.mkIf (cfg.jmxConfig != null) { diff --git a/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults b/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults new file mode 100755 index 00000000000..76724173171 --- /dev/null +++ b/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +dd=$(nix-build --no-out-link -A dd-agent ../../../..) +echo '# Generated using update-dd-agent-default, please re-run after updating dd-agent. DO NOT EDIT MANUALLY.' > dd-agent-defaults.nix +echo '[' >> dd-agent-defaults.nix +echo ' "auto_conf"' >> dd-agent-defaults.nix +for f in $(find $dd/agent/conf.d-system -maxdepth 1 -type f | grep -v '\.example' | sort); do + echo " \"$(basename $f)\"" >> dd-agent-defaults.nix +done +echo ']' >> dd-agent-defaults.nix diff --git a/nixos/modules/services/monitoring/fusion-inventory.nix b/nixos/modules/services/monitoring/fusion-inventory.nix new file mode 100644 index 00000000000..1c00f3c299e --- /dev/null +++ b/nixos/modules/services/monitoring/fusion-inventory.nix @@ -0,0 +1,66 @@ +# Fusion Inventory daemon. +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.fusionInventory; + + configFile = pkgs.writeText "fusion_inventory.conf" '' + server = ${concatStringsSep ", " cfg.servers} + + logger = stderr + + ${cfg.extraConfig} + ''; + +in { + + ###### interface + + options = { + + services.fusionInventory = { + + enable = mkEnableOption "Fusion Inventory Agent"; + + servers = mkOption { + type = types.listOf types.str; + description = '' + The urls of the OCS/GLPI servers to connect to. + ''; + }; + + extraConfig = mkOption { + default = ""; + type = types.lines; + description = '' + Configuration that is injected verbatim into the configuration file. + ''; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + + users.extraUsers = singleton { + name = "fusion-inventory"; + description = "FusionInventory user"; + }; + + systemd.services."fusion-inventory" = { + description = "Fusion Inventory Agent"; + wantedBy = [ "multi-user.target" ]; + + environment = { + OPTIONS = "--no-category=software"; + }; + serviceConfig = { + ExecStart = "${pkgs.fusionInventory}/bin/fusioninventory-agent --conf-file=${configFile} --daemon --no-fork"; + }; + }; + }; +} diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix index 98931e65bb5..645dfeab019 100644 --- a/nixos/modules/services/monitoring/graphite.nix +++ b/nixos/modules/services/monitoring/graphite.nix @@ -7,10 +7,23 @@ let writeTextOrNull = f: t: mapNullable (pkgs.writeTextDir f) t; dataDir = cfg.dataDir; + staticDir = cfg.dataDir + "/static"; + + graphiteLocalSettingsDir = pkgs.runCommand "graphite_local_settings" + {inherit graphiteLocalSettings;} '' + mkdir -p $out + ln -s $graphiteLocalSettings $out/graphite_local_settings.py + ''; + + graphiteLocalSettings = pkgs.writeText "graphite_local_settings.py" ( + "STATIC_ROOT = '${staticDir}'\n" + + optionalString (! isNull config.time.timeZone) "TIME_ZONE = '${config.time.timeZone}'\n" + + cfg.web.extraConfig + ); graphiteApiConfig = pkgs.writeText "graphite-api.yaml" '' - time_zone: ${config.time.timeZone} search_index: ${dataDir}/index + ${optionalString (!isNull config.time.timeZone) ''time_zone: ${config.time.timeZone}''} ${optionalString (cfg.api.finders != []) ''finders:''} ${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders} ${optionalString (cfg.api.functions != []) ''functions:''} @@ -94,6 +107,15 @@ in { default = 8080; type = types.int; }; + + extraConfig = mkOption { + type = types.str; + default = ""; + description = '' + Graphite webapp settings. See: + + ''; + }; }; api = { @@ -400,7 +422,8 @@ in { mkdir -p ${cfg.dataDir}/whisper chmod 0700 ${cfg.dataDir}/whisper - chown -R graphite:graphite ${cfg.dataDir} + chown graphite:graphite ${cfg.dataDir} + chown graphite:graphite ${cfg.dataDir}/whisper ''; }; }) @@ -459,9 +482,13 @@ in { ]; }; penvPack = "${penv}/${pkgs.python.sitePackages}"; - # opt/graphite/webapp contains graphite/settings.py - # explicitly adding pycairo in path because it cannot be imported via buildEnv - in "${penvPack}/opt/graphite/webapp:${penvPack}:${pkgs.pythonPackages.pycairo}/${pkgs.python.sitePackages}"; + in concatStringsSep ":" [ + "${graphiteLocalSettingsDir}" + "${penvPack}/opt/graphite/webapp" + "${penvPack}" + # explicitly adding pycairo in path because it cannot be imported via buildEnv + "${pkgs.pythonPackages.pycairo}/${pkgs.python.sitePackages}" + ]; DJANGO_SETTINGS_MODULE = "graphite.settings"; GRAPHITE_CONF_DIR = configDir; GRAPHITE_STORAGE_DIR = dataDir; @@ -469,9 +496,9 @@ in { }; serviceConfig = { ExecStart = '' - ${pkgs.python27Packages.waitress}/bin/waitress-serve \ - --host=${cfg.web.listenAddress} --port=${toString cfg.web.port} \ - --call django.core.handlers.wsgi:WSGIHandler''; + ${pkgs.python27Packages.waitress-django}/bin/waitress-serve-django \ + --host=${cfg.web.listenAddress} --port=${toString cfg.web.port} + ''; User = "graphite"; Group = "graphite"; PermissionsStartOnly = true; @@ -481,15 +508,19 @@ in { mkdir -p ${dataDir}/{whisper/,log/webapp/} chmod 0700 ${dataDir}/{whisper/,log/webapp/} - # populate database - ${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput + ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py migrate --noinput - # create index - ${pkgs.python27Packages.graphite_web}/bin/build-index.sh + chown -R graphite:graphite ${dataDir} touch ${dataDir}/db-created + fi - chown -R graphite:graphite ${cfg.dataDir} + # Only collect static files when graphite_web changes. + if ! [ "${dataDir}/current_graphite_web" -ef "${pkgs.python27Packages.graphite_web}" ]; then + mkdir -p ${staticDir} + ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear + chown -R graphite:graphite ${staticDir} + ln -sfT "${pkgs.python27Packages.graphite_web}" "${dataDir}/current_graphite_web" fi ''; }; @@ -505,7 +536,7 @@ in { environment = { PYTHONPATH = let aenv = pkgs.python.buildEnv.override { - extraLibs = [ cfg.api.package pkgs.cairo ] ++ cfg.api.finders; + extraLibs = [ cfg.api.package pkgs.cairo pkgs.pythonPackages.cffi ] ++ cfg.api.finders; }; in "${aenv}/${pkgs.python.sitePackages}"; GRAPHITE_API_CONFIG = graphiteApiConfig; @@ -526,9 +557,10 @@ in { mkdir -p ${dataDir}/cache/ chmod 0700 ${dataDir}/cache/ - touch ${dataDir}/db-created + chown graphite:graphite ${cfg.dataDir} + chown -R graphite:graphite ${cfg.dataDir}/cache - chown -R graphite:graphite ${cfg.dataDir} + touch ${dataDir}/db-created fi ''; }; @@ -549,7 +581,7 @@ in { preStart = '' if ! test -e ${dataDir}/db-created; then mkdir -p ${dataDir} - chown -R graphite:graphite ${dataDir} + chown graphite:graphite ${dataDir} fi ''; }; diff --git a/nixos/modules/services/monitoring/longview.nix b/nixos/modules/services/monitoring/longview.nix index 770d56e60ef..9c38956f9ba 100644 --- a/nixos/modules/services/monitoring/longview.nix +++ b/nixos/modules/services/monitoring/longview.nix @@ -5,22 +5,10 @@ with lib; let cfg = config.services.longview; - pidFile = "/run/longview.pid"; + runDir = "/run/longview"; + configsDir = "${runDir}/longview.d"; - apacheConf = optionalString (cfg.apacheStatusUrl != "") '' - location ${cfg.apacheStatusUrl}?auto - ''; - mysqlConf = optionalString (cfg.mysqlUser != "") '' - username ${cfg.mysqlUser} - password ${cfg.mysqlPassword} - ''; - nginxConf = optionalString (cfg.nginxStatusUrl != "") '' - location ${cfg.nginxStatusUrl} - ''; - -in - -{ +in { options = { services.longview = { @@ -35,10 +23,27 @@ in apiKey = mkOption { type = types.str; + default = ""; example = "01234567-89AB-CDEF-0123456789ABCDEF"; description = '' Longview API key. To get this, look in Longview settings which are found at https://manager.linode.com/longview/. + + Warning: this secret is stored in the world-readable Nix store! + Use instead. + ''; + }; + + apiKeyFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/longview-api-key"; + description = '' + A file containing the Longview API key. + To get this, look in Longview settings which + are found at https://manager.linode.com/longview/. + + takes precedence over . ''; }; @@ -77,11 +82,23 @@ in mysqlPassword = mkOption { type = types.str; + default = ""; description = '' - The password corresponding to mysqlUser. Warning: this is - stored in cleartext in the Nix store! + The password corresponding to . + Warning: this is stored in cleartext in the Nix store! + Use instead. ''; }; + + mysqlPasswordFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/dbpassword"; + description = '' + A file containing the password corresponding to . + ''; + }; + }; }; @@ -94,25 +111,50 @@ in serviceConfig.Type = "forking"; serviceConfig.ExecStop = "-${pkgs.coreutils}/bin/kill -TERM $MAINPID"; serviceConfig.ExecReload = "-${pkgs.coreutils}/bin/kill -HUP $MAINPID"; - serviceConfig.PIDFile = pidFile; + serviceConfig.PIDFile = "${runDir}/longview.pid"; serviceConfig.ExecStart = "${pkgs.longview}/bin/longview"; + preStart = '' + umask 077 + mkdir -p ${configsDir} + '' + (optionalString (cfg.apiKeyFile != null) '' + cp --no-preserve=all "${cfg.apiKeyFile}" ${runDir}/longview.key + '') + (optionalString (cfg.apacheStatusUrl != "") '' + cat > ${configsDir}/Apache.conf < ${configsDir}/MySQL.conf < ${configsDir}/Nginx.conf </dev/null | ${pkgs.bash}/bin/bash + PATH="/run/wrappers/bin:/run/current-system/sw/bin" ${pkgs.munin}/sbin/munin-node-configure --shell --families contrib,auto,manual --config ${nodeConf} --libdir=${muninPlugins} --servicedir=/etc/munin/plugins 2>/dev/null | ${pkgs.bash}/bin/bash ''; serviceConfig = { ExecStart = "${pkgs.munin}/sbin/munin-node --config ${nodeConf} --servicedir /etc/munin/plugins/"; }; }; + # munin_stats plugin breaks as of 2.0.33 when this doesn't exist + systemd.tmpfiles.rules = [ "d /var/run/munin 0755 munin munin -" ]; + }) (mkIf cronCfg.enable { systemd.timers.munin-cron = { @@ -210,9 +215,11 @@ in }; }; - system.activationScripts.munin-cron = stringAfter [ "users" "groups" ] '' - mkdir -p /var/{run,log,www,lib}/munin - chown -R munin:munin /var/{run,log,www,lib}/munin - ''; + systemd.tmpfiles.rules = [ + "d /var/run/munin 0755 munin munin -" + "d /var/log/munin 0755 munin munin -" + "d /var/www/munin 0755 munin munin -" + "d /var/lib/munin 0755 munin munin -" + ]; })]; } diff --git a/nixos/modules/services/monitoring/osquery.nix b/nixos/modules/services/monitoring/osquery.nix new file mode 100644 index 00000000000..ba0dc4c2176 --- /dev/null +++ b/nixos/modules/services/monitoring/osquery.nix @@ -0,0 +1,91 @@ +{ config, lib, pkgs, ... }: + +with builtins; +with lib; + +let + cfg = config.services.osquery; + +in + +{ + + options = { + + services.osquery = { + + enable = mkEnableOption "osquery"; + + loggerPath = mkOption { + type = types.path; + description = "Base directory used for logging."; + default = "/var/log/osquery"; + }; + + pidfile = mkOption { + type = types.path; + description = "Path used for pid file."; + default = "/var/osquery/osqueryd.pidfile"; + }; + + utc = mkOption { + type = types.bool; + description = "Attempt to convert all UNIX calendar times to UTC."; + default = true; + }; + + databasePath = mkOption { + type = types.path; + description = "Path used for database file."; + default = "/var/osquery/osquery.db"; + }; + + extraConfig = mkOption { + type = types.attrs // { + merge = loc: foldl' (res: def: recursiveUpdate res def.value) {}; + }; + description = "Extra config to be recursively merged into the JSON config file."; + default = { }; + }; + }; + + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.osquery ]; + + environment.etc."osquery/osquery.conf".text = toJSON ( + recursiveUpdate { + options = { + config_plugin = "filesystem"; + logger_plugin = "filesystem"; + logger_path = cfg.loggerPath; + database_path = cfg.databasePath; + utc = cfg.utc; + }; + } cfg.extraConfig + ); + + systemd.services.osqueryd = { + description = "The osquery Daemon"; + after = [ "network.target" "syslog.service" ]; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.osquery ]; + preStart = '' + mkdir -p ${escapeShellArg cfg.loggerPath} + mkdir -p "$(dirname ${escapeShellArg cfg.pidfile})" + mkdir -p "$(dirname ${escapeShellArg cfg.databasePath})" + ''; + serviceConfig = { + TimeoutStartSec = 0; + ExecStart = "${pkgs.osquery}/bin/osqueryd --logger_path ${escapeShellArg cfg.loggerPath} --pidfile ${escapeShellArg cfg.pidfile} --database_path ${escapeShellArg cfg.databasePath}"; + KillMode = "process"; + KillSignal = "SIGTERM"; + Restart = "on-failure"; + }; + }; + + }; + +} diff --git a/nixos/modules/services/monitoring/prometheus/blackbox-exporter.nix b/nixos/modules/services/monitoring/prometheus/blackbox-exporter.nix index 388e4d4ac01..ce2e1cf2d74 100644 --- a/nixos/modules/services/monitoring/prometheus/blackbox-exporter.nix +++ b/nixos/modules/services/monitoring/prometheus/blackbox-exporter.nix @@ -57,8 +57,8 @@ in { AmbientCapabilities = [ "CAP_NET_RAW" ]; # for ping probes ExecStart = '' ${pkgs.prometheus-blackbox-exporter}/bin/blackbox_exporter \ - -web.listen-address :${toString cfg.port} \ - -config.file ${cfg.configFile} \ + --web.listen-address :${toString cfg.port} \ + --config.file ${cfg.configFile} \ ${concatStringsSep " \\\n " cfg.extraFlags} ''; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; diff --git a/nixos/modules/services/monitoring/prometheus/collectd-exporter.nix b/nixos/modules/services/monitoring/prometheus/collectd-exporter.nix new file mode 100644 index 00000000000..f8a5b9576a1 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/collectd-exporter.nix @@ -0,0 +1,128 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.prometheus.collectdExporter; + + collectSettingsArgs = if (cfg.collectdBinary.enable) then '' + -collectd.listen-address ${optionalString (cfg.collectdBinary.listenAddress != null) cfg.collectdBinary.listenAddress}:${toString cfg.collectdBinary.port} \ + -collectd.security-level ${cfg.collectdBinary.securityLevel} \ + '' else ""; + +in { + options = { + services.prometheus.collectdExporter = { + enable = mkEnableOption "prometheus collectd exporter"; + + port = mkOption { + type = types.int; + default = 9103; + description = '' + Port to listen on. + This is used for scraping as well as the to receive collectd data via the write_http plugin. + ''; + }; + + listenAddress = mkOption { + type = types.nullOr types.str; + default = null; + example = "0.0.0.0"; + description = '' + Address to listen on for web interface, telemetry and collectd JSON data. + ''; + }; + + collectdBinary = { + enable = mkEnableOption "collectd binary protocol receiver"; + + authFile = mkOption { + default = null; + type = types.nullOr types.path; + description = "File mapping user names to pre-shared keys (passwords)."; + }; + + port = mkOption { + type = types.int; + default = 25826; + description = ''Network address on which to accept collectd binary network packets.''; + }; + + listenAddress = mkOption { + type = types.nullOr types.str; + default = null; + example = "0.0.0.0"; + description = '' + Address to listen on for binary network packets. + ''; + }; + + securityLevel = mkOption { + type = types.enum ["None" "Sign" "Encrypt"]; + default = "None"; + description = '' + Minimum required security level for accepted packets. + ''; + }; + }; + + extraFlags = mkOption { + type = types.listOf types.str; + default = []; + description = '' + Extra commandline options when launching the collectd exporter. + ''; + }; + + logFormat = mkOption { + type = types.str; + default = "logger:stderr"; + example = "logger:syslog?appname=bob&local=7 or logger:stdout?json=true"; + description = '' + Set the log target and format. + ''; + }; + + logLevel = mkOption { + type = types.enum ["debug" "info" "warn" "error" "fatal"]; + default = "info"; + description = '' + Only log messages with the given severity or above. + ''; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open port in firewall for incoming connections. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = (optional cfg.openFirewall cfg.port) ++ + (optional (cfg.openFirewall && cfg.collectdBinary.enable) cfg.collectdBinary.port); + + systemd.services.prometheus-collectd-exporter = { + description = "Prometheus exporter for Collectd metrics"; + unitConfig.Documentation = "https://github.com/prometheus/collectd_exporter"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + DynamicUser = true; + Restart = "always"; + PrivateTmp = true; + WorkingDirectory = /tmp; + ExecStart = '' + ${pkgs.prometheus-collectd-exporter}/bin/collectd_exporter \ + -log.format ${cfg.logFormat} \ + -log.level ${cfg.logLevel} \ + -web.listen-address ${optionalString (cfg.listenAddress != null) cfg.listenAddress}:${toString cfg.port} \ + ${collectSettingsArgs} \ + ${concatStringsSep " " cfg.extraFlags} + ''; + }; + }; + }; +} diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix index b9435c02b1d..c12b5f35dea 100644 --- a/nixos/modules/services/monitoring/prometheus/default.nix +++ b/nixos/modules/services/monitoring/prometheus/default.nix @@ -66,15 +66,6 @@ let How frequently to evaluate rules by default. ''; }; - - labels = mkOption { - type = types.attrsOf types.str; - default = {}; - description = '' - The labels to add to any timeseries that this Prometheus instance - scrapes. - ''; - }; }; }; diff --git a/nixos/modules/services/monitoring/prometheus/minio-exporter.nix b/nixos/modules/services/monitoring/prometheus/minio-exporter.nix new file mode 100644 index 00000000000..4314671523c --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/minio-exporter.nix @@ -0,0 +1,117 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.prometheus.minioExporter; +in { + options = { + services.prometheus.minioExporter = { + enable = mkEnableOption "prometheus minio exporter"; + + port = mkOption { + type = types.int; + default = 9290; + description = '' + Port to listen on. + ''; + }; + + listenAddress = mkOption { + type = types.nullOr types.str; + default = null; + example = "0.0.0.0"; + description = '' + Address to listen on for web interface and telemetry. + ''; + }; + + minioAddress = mkOption { + type = types.str; + example = "https://10.0.0.1:9000"; + default = if config.services.minio.enable then "http://localhost:9000" else null; + description = '' + The URL of the minio server. + Use HTTPS if Minio accepts secure connections only. + By default this connects to the local minio server if enabled. + ''; + }; + + minioAccessKey = mkOption ({ + type = types.str; + example = "BKIKJAA5BMMU2RHO6IBB"; + description = '' + The value of the Minio access key. + It is required in order to connect to the server. + By default this uses the one from the local minio server if enabled + and config.services.minio.accessKey. + ''; + } // optionalAttrs (config.services.minio.enable && config.services.minio.accessKey != "") { + default = config.services.minio.accessKey; + }); + + minioAccessSecret = mkOption ({ + type = types.str; + description = '' + The calue of the Minio access secret. + It is required in order to connect to the server. + By default this uses the one from the local minio server if enabled + and config.services.minio.secretKey. + ''; + } // optionalAttrs (config.services.minio.enable && config.services.minio.secretKey != "") { + default = config.services.minio.secretKey; + }); + + minioBucketStats = mkOption { + type = types.bool; + default = false; + description = '' + Collect statistics about the buckets and files in buckets. + It requires more computation, use it carefully in case of large buckets.. + ''; + }; + + extraFlags = mkOption { + type = types.listOf types.str; + default = []; + description = '' + Extra commandline options when launching the minio exporter. + ''; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open port in firewall for incoming connections. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port; + + systemd.services.prometheus-minio-exporter = { + description = "Prometheus exporter for Minio server metrics"; + unitConfig.Documentation = "https://github.com/joe-pll/minio-exporter"; + wantedBy = [ "multi-user.target" ]; + after = optional config.services.minio.enable "minio.service"; + serviceConfig = { + DynamicUser = true; + Restart = "always"; + PrivateTmp = true; + WorkingDirectory = /tmp; + ExecStart = '' + ${pkgs.prometheus-minio-exporter}/bin/minio-exporter \ + -web.listen-address ${optionalString (cfg.listenAddress != null) cfg.listenAddress}:${toString cfg.port} \ + -minio.server ${cfg.minioAddress} \ + -minio.access-key ${cfg.minioAccessKey} \ + -minio.access-secret ${cfg.minioAccessSecret} \ + ${optionalString cfg.minioBucketStats "-minio.bucket-stats"} \ + ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + }; + }; + }; +} diff --git a/nixos/modules/services/monitoring/prometheus/node-exporter.nix b/nixos/modules/services/monitoring/prometheus/node-exporter.nix index 0cf0b85afb5..bad4389ce79 100644 --- a/nixos/modules/services/monitoring/prometheus/node-exporter.nix +++ b/nixos/modules/services/monitoring/prometheus/node-exporter.nix @@ -4,9 +4,6 @@ with lib; let cfg = config.services.prometheus.nodeExporter; - cmdlineArgs = cfg.extraFlags ++ [ - "-web.listen-address=${cfg.listenAddress}" - ]; in { options = { services.prometheus.nodeExporter = { @@ -33,7 +30,16 @@ in { default = []; example = ''[ "systemd" ]''; description = '' - Collectors to enable, additionally to the defaults. + Collectors to enable. The collectors listed here are enabled in addition to the default ones. + ''; + }; + + disabledCollectors = mkOption { + type = types.listOf types.str; + default = []; + example = ''[ "timex" ]''; + description = '' + Collectors to disable which are enabled by default. ''; }; @@ -64,14 +70,14 @@ in { wantedBy = [ "multi-user.target" ]; script = '' exec ${pkgs.prometheus-node-exporter}/bin/node_exporter \ - ${optionalString (cfg.enabledCollectors != []) - ''-collectors.enabled ${concatStringsSep "," cfg.enabledCollectors}''} \ - -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ + ${concatMapStringsSep " " (x: "--collector." + x) cfg.enabledCollectors} \ + ${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \ + --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ ${concatStringsSep " \\\n " cfg.extraFlags} ''; serviceConfig = { User = "nobody"; - Restart = "always"; + Restart = "always"; PrivateTmp = true; WorkingDirectory = /tmp; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; diff --git a/nixos/modules/services/monitoring/prometheus/unifi-exporter.nix b/nixos/modules/services/monitoring/prometheus/unifi-exporter.nix index e3059e48509..0a56d6ae95a 100644 --- a/nixos/modules/services/monitoring/prometheus/unifi-exporter.nix +++ b/nixos/modules/services/monitoring/prometheus/unifi-exporter.nix @@ -83,6 +83,7 @@ in { description = "Prometheus exporter for UniFi Controller metrics"; unitConfig.Documentation = "https://github.com/mdlayher/unifi_exporter"; wantedBy = [ "multi-user.target" ]; + after = optional config.services.unifi.enable "unifi.service"; serviceConfig = { User = "nobody"; Restart = "always"; diff --git a/nixos/modules/services/monitoring/ups.nix b/nixos/modules/services/monitoring/ups.nix index c4c4ed227b3..29dc68f90cc 100644 --- a/nixos/modules/services/monitoring/ups.nix +++ b/nixos/modules/services/monitoring/ups.nix @@ -80,7 +80,7 @@ let }; config = { - directives = mkHeader ([ + directives = mkOrder 10 ([ "driver = ${config.driver}" "port = ${config.port}" ''desc = "${config.description}"'' diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix index a2f2c033951..8ac9f801dcb 100644 --- a/nixos/modules/services/network-filesystems/glusterfs.nix +++ b/nixos/modules/services/network-filesystems/glusterfs.nix @@ -3,7 +3,23 @@ with lib; let - inherit (pkgs) glusterfs; + inherit (pkgs) glusterfs rsync; + + tlsCmd = if (cfg.tlsSettings != null) then + '' + mkdir -p /var/lib/glusterd + touch /var/lib/glusterd/secure-access + '' + else + '' + rm -f /var/lib/glusterd/secure-access + ''; + + restartTriggers = if (cfg.tlsSettings != null) then [ + config.environment.etc."ssl/glusterfs.pem".source + config.environment.etc."ssl/glusterfs.key".source + config.environment.etc."ssl/glusterfs.ca".source + ] else []; cfg = config.services.glusterfs; @@ -25,11 +41,97 @@ in default = "INFO"; }; + useRpcbind = mkOption { + type = types.bool; + description = '' + Enable use of rpcbind. This is required for Gluster's NFS functionality. + + You may want to turn it off to reduce the attack surface for DDoS reflection attacks. + + See https://davelozier.com/glusterfs-and-rpcbind-portmap-ddos-reflection-attacks/ + and https://bugzilla.redhat.com/show_bug.cgi?id=1426842 for details. + ''; + default = true; + }; + + enableGlustereventsd = mkOption { + type = types.bool; + description = "Whether to enable the GlusterFS Events Daemon"; + default = true; + }; + + killMode = mkOption { + type = types.enum ["control-group" "process" "mixed" "none"]; + description = '' + The systemd KillMode to use for glusterd. + + glusterd spawns other daemons like gsyncd. + If you want these to stop when glusterd is stopped (e.g. to ensure + that NixOS config changes are reflected even for these sub-daemons), + set this to 'control-group'. + If however you want running volume processes (glusterfsd) and thus + gluster mounts not be interrupted when glusterd is restarted + (for example, when you want to restart them manually at a later time), + set this to 'process'. + ''; + default = "control-group"; + }; + + stopKillTimeout = mkOption { + type = types.str; + description = '' + The systemd TimeoutStopSec to use. + + After this time after having been asked to shut down, glusterd + (and depending on the killMode setting also its child processes) + are killed by systemd. + + The default is set low because GlusterFS (as of 3.10) is known to + not tell its children (like gsyncd) to terminate at all. + ''; + default = "5s"; + }; + extraFlags = mkOption { type = types.listOf types.str; description = "Extra flags passed to the GlusterFS daemon"; default = []; }; + + tlsSettings = mkOption { + description = '' + Make the server communicate via TLS. + This means it will only connect to other gluster + servers having certificates signed by the same CA. + + Enabling this will create a file /var/lib/glusterd/secure-access. + Disabling will delete this file again. + + See also: https://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/ + ''; + default = null; + type = types.nullOr (types.submodule { + options = { + tlsKeyPath = mkOption { + default = null; + type = types.str; + description = "Path to the private key used for TLS."; + }; + + tlsPem = mkOption { + default = null; + type = types.path; + description = "Path to the certificate used for TLS."; + }; + + caCert = mkOption { + default = null; + type = types.path; + description = "Path certificate authority used to sign the cluster certificates."; + }; + }; + }); + }; }; }; @@ -38,20 +140,39 @@ in config = mkIf cfg.enable { environment.systemPackages = [ pkgs.glusterfs ]; - services.rpcbind.enable = true; + services.rpcbind.enable = cfg.useRpcbind; + + environment.etc = mkIf (cfg.tlsSettings != null) { + "ssl/glusterfs.pem".source = cfg.tlsSettings.tlsPem; + "ssl/glusterfs.key".source = cfg.tlsSettings.tlsKeyPath; + "ssl/glusterfs.ca".source = cfg.tlsSettings.caCert; + }; systemd.services.glusterd = { + inherit restartTriggers; description = "GlusterFS, a clustered file-system server"; wantedBy = [ "multi-user.target" ]; - requires = [ "rpcbind.service" ]; - after = [ "rpcbind.service" "network.target" "local-fs.target" ]; - before = [ "network-online.target" ]; + requires = lib.optional cfg.useRpcbind "rpcbind.service"; + after = [ "network.target" "local-fs.target" ] ++ lib.optional cfg.useRpcbind "rpcbind.service"; preStart = '' install -m 0755 -d /var/log/glusterfs + '' + # The copying of hooks is due to upstream bug https://bugzilla.redhat.com/show_bug.cgi?id=1452761 + + '' + mkdir -p /var/lib/glusterd/hooks/ + ${rsync}/bin/rsync -a ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/ + + ${tlsCmd} + '' + # `glusterfind` needs dirs that upstream installs at `make install` phase + # https://github.com/gluster/glusterfs/blob/v3.10.2/tools/glusterfind/Makefile.am#L16-L17 + + '' + mkdir -p /var/lib/glusterd/glusterfind/.keys + mkdir -p /var/lib/glusterd/hooks/1/delete/post/ ''; serviceConfig = { @@ -59,11 +180,13 @@ in PIDFile="/run/glusterd.pid"; LimitNOFILE=65536; ExecStart="${glusterfs}/sbin/glusterd -p /run/glusterd.pid --log-level=${cfg.logLevel} ${toString cfg.extraFlags}"; - KillMode="process"; + KillMode=cfg.killMode; + TimeoutStopSec=cfg.stopKillTimeout; }; }; - systemd.services.glustereventsd = { + systemd.services.glustereventsd = mkIf cfg.enableGlustereventsd { + inherit restartTriggers; description = "Gluster Events Notifier"; @@ -71,6 +194,10 @@ in after = [ "syslog.target" "network.target" ]; + preStart = '' + install -m 0755 -d /var/log/glusterfs + ''; + serviceConfig = { Type="simple"; Environment="PYTHONPATH=${glusterfs}/usr/lib/python2.7/site-packages"; diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index e6e04248854..d4a695ef588 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -1,17 +1,70 @@ { config, lib, pkgs, ... }: - with lib; - let - inherit (pkgs) ipfs; + inherit (pkgs) ipfs runCommand makeWrapper; cfg = config.services.ipfs; - ipfsFlags = ''${if cfg.autoMigrate then "--migrate" else ""} ${if cfg.enableGC then "--enable-gc" else ""} ${toString cfg.extraFlags}''; + ipfsFlags = toString ([ + (optionalString cfg.autoMount "--mount") + #(optionalString cfg.autoMigrate "--migrate") + (optionalString cfg.enableGC "--enable-gc") + (optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false") + (optionalString (cfg.defaultMode == "offline") "--offline") + (optionalString (cfg.defaultMode == "norouting") "--routing=none") + ] ++ cfg.extraFlags); -in + defaultDataDir = if versionAtLeast config.system.stateVersion "17.09" then + "/var/lib/ipfs" else + "/var/lib/ipfs/.ipfs"; -{ + # Wrapping the ipfs binary with the environment variable IPFS_PATH set to dataDir because we can't set it in the user environment + wrapped = runCommand "ipfs" { buildInputs = [ makeWrapper ]; } '' + mkdir -p "$out/bin" + makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" \ + --set IPFS_PATH ${cfg.dataDir} \ + --prefix PATH : /run/wrappers/bin + ''; + + + commonEnv = { + environment.IPFS_PATH = cfg.dataDir; + path = [ wrapped ]; + serviceConfig.User = cfg.user; + serviceConfig.Group = cfg.group; + }; + + baseService = recursiveUpdate commonEnv { + wants = [ "ipfs-init.service" ]; + # NB: migration must be performed prior to pre-start, else we get the failure message! + preStart = '' + ipfs repo fsck # workaround for BUG #4212 (https://github.com/ipfs/go-ipfs/issues/4214) + ipfs --local config Addresses.API ${cfg.apiAddress} + ipfs --local config Addresses.Gateway ${cfg.gatewayAddress} + '' + optionalString cfg.autoMount '' + ipfs --local config Mounts.FuseAllowOther --json true + ipfs --local config Mounts.IPFS ${cfg.ipfsMountDir} + ipfs --local config Mounts.IPNS ${cfg.ipnsMountDir} + '' + concatStringsSep "\n" (collect + isString + (mapAttrsRecursive + (path: value: + # Using heredoc below so that the value is never improperly quoted + '' + read value <ipfs config, every time the daemon starts. + These are applied last, so may override configuration set by other options in this module. + Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default! ''; + default = {}; + example = { + Datastore.StorageMax = "100GB"; + Discovery.MDNS.Enabled = false; + Bootstrap = [ + "/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu" + "/ip4/162.243.248.213/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm" + ]; + Swarm.AddrFilters = null; + }; + }; extraFlags = mkOption { @@ -80,13 +177,24 @@ in description = "Extra flags passed to the IPFS daemon"; default = []; }; + + serviceFdlimit = mkOption { + type = types.nullOr types.int; + default = null; + description = "The fdlimit for the IPFS systemd unit or null to have the daemon attempt to manage it"; + example = 64*1024; + }; + }; }; ###### implementation config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.ipfs ]; + environment.systemPackages = [ wrapped ]; + environment.etc."fuse.conf" = mkIf cfg.autoMount { text = '' + user_allow_other + ''; }; users.extraUsers = mkIf (cfg.user == "ipfs") { ipfs = { @@ -99,78 +207,57 @@ in }; users.extraGroups = mkIf (cfg.group == "ipfs") { - ipfs = { - gid = config.ids.gids.ipfs; - }; + ipfs.gid = config.ids.gids.ipfs; }; - systemd.services.ipfs-init = { + systemd.services.ipfs-init = recursiveUpdate commonEnv { description = "IPFS Initializer"; after = [ "local-fs.target" ]; - before = [ "ipfs.service" "ipfs-offline.service" ]; - - path = [ pkgs.ipfs pkgs.su pkgs.bash ]; + before = [ "ipfs.service" "ipfs-offline.service" "ipfs-norouting.service" ]; preStart = '' install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir} + '' + optionalString cfg.autoMount '' + install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipfsMountDir} + install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipnsMountDir} ''; - - script = '' - if [[ ! -d ${cfg.dataDir}/.ipfs ]]; then - cd ${cfg.dataDir} - ${ipfs}/bin/ipfs init ${optionalString cfg.emptyRepo "-e"} + script = '' + if [[ ! -f ${cfg.dataDir}/config ]]; then + ipfs init ${optionalString cfg.emptyRepo "-e"} fi - ${ipfs}/bin/ipfs --local config Addresses.API ${cfg.apiAddress} - ${ipfs}/bin/ipfs --local config Addresses.Gateway ${cfg.gatewayAddress} ''; serviceConfig = { - User = cfg.user; - Group = cfg.group; Type = "oneshot"; RemainAfterExit = true; PermissionsStartOnly = true; }; }; - systemd.services.ipfs = { + # TODO These 3 definitions possibly be further abstracted through use of a function + # like: mutexServices "ipfs" [ "", "offline", "norouting" ] { ... shared conf here ... } + + systemd.services.ipfs = recursiveUpdate baseService { description = "IPFS Daemon"; - - wantedBy = [ "multi-user.target" ]; + wantedBy = mkIf (cfg.defaultMode == "online") [ "multi-user.target" ]; after = [ "network.target" "local-fs.target" "ipfs-init.service" ]; - - conflicts = [ "ipfs-offline.service" ]; - wants = [ "ipfs-init.service" ]; - - path = [ pkgs.ipfs ]; - - serviceConfig = { - ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags}"; - User = cfg.user; - Group = cfg.group; - Restart = "on-failure"; - RestartSec = 1; - }; + conflicts = [ "ipfs-offline.service" "ipfs-norouting.service"]; }; - systemd.services.ipfs-offline = { + systemd.services.ipfs-offline = recursiveUpdate baseService { description = "IPFS Daemon (offline mode)"; - + wantedBy = mkIf (cfg.defaultMode == "offline") [ "multi-user.target" ]; after = [ "local-fs.target" "ipfs-init.service" ]; - - conflicts = [ "ipfs.service" ]; - wants = [ "ipfs-init.service" ]; - - path = [ pkgs.ipfs ]; - - serviceConfig = { - ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags} --offline"; - User = cfg.user; - Group = cfg.group; - Restart = "on-failure"; - RestartSec = 1; - }; + conflicts = [ "ipfs.service" "ipfs-norouting.service"]; }; + + systemd.services.ipfs-norouting = recursiveUpdate baseService { + description = "IPFS Daemon (no routing mode)"; + wantedBy = mkIf (cfg.defaultMode == "norouting") [ "multi-user.target" ]; + after = [ "local-fs.target" "ipfs-init.service" ]; + conflicts = [ "ipfs.service" "ipfs-offline.service"]; + }; + }; } diff --git a/nixos/modules/services/network-filesystems/kbfs.nix b/nixos/modules/services/network-filesystems/kbfs.nix new file mode 100644 index 00000000000..7b2eea3b585 --- /dev/null +++ b/nixos/modules/services/network-filesystems/kbfs.nix @@ -0,0 +1,65 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.kbfs; + +in { + + ###### interface + + options = { + + services.kbfs = { + + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to mount the Keybase filesystem."; + }; + + mountPoint = mkOption { + type = types.str; + default = "%h/keybase"; + example = "/keybase"; + description = "Mountpoint for the Keybase filesystem."; + }; + + extraFlags = mkOption { + type = types.listOf types.str; + default = []; + example = [ + "-label kbfs" + "-mount-type normal" + ]; + description = '' + Additional flags to pass to the Keybase filesystem on launch. + ''; + }; + + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + + systemd.user.services.kbfs = { + description = "Keybase File System"; + requires = [ "keybase.service" ]; + after = [ "keybase.service" ]; + path = [ "/run/wrappers" ]; + serviceConfig = { + ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${cfg.mountPoint}"; + ExecStart = "${pkgs.kbfs}/bin/kbfsfuse ${toString cfg.extraFlags} ${cfg.mountPoint}"; + ExecStopPost = "/run/wrappers/bin/fusermount -u ${cfg.mountPoint}"; + Restart = "on-failure"; + PrivateTmp = true; + }; + wantedBy = [ "default.target" ]; + }; + + services.keybase.enable = true; + + environment.systemPackages = [ pkgs.kbfs ]; + }; +} diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix index 7d127145101..1a78f9a76a3 100644 --- a/nixos/modules/services/network-filesystems/nfsd.nix +++ b/nixos/modules/services/network-filesystems/nfsd.nix @@ -27,6 +27,14 @@ in ''; }; + extraNfsdConfig = mkOption { + type = types.str; + default = ""; + description = '' + Extra configuration options for the [nfsd] section of /etc/nfs.conf. + ''; + }; + exports = mkOption { type = types.lines; default = ""; @@ -107,6 +115,7 @@ in [nfsd] threads=${toString cfg.nproc} ${optionalString (cfg.hostName != null) "host=${cfg.hostName}"} + ${cfg.extraNfsdConfig} [mountd] ${optionalString (cfg.mountdPort != null) "port=${toString cfg.mountdPort}"} diff --git a/nixos/modules/services/network-filesystems/openafs-client/default.nix b/nixos/modules/services/network-filesystems/openafs-client/default.nix index f7c58c92863..0946e379e79 100644 --- a/nixos/modules/services/network-filesystems/openafs-client/default.nix +++ b/nixos/modules/services/network-filesystems/openafs-client/default.nix @@ -6,8 +6,8 @@ let cfg = config.services.openafsClient; cellServDB = pkgs.fetchurl { - url = http://dl.central.org/dl/cellservdb/CellServDB.2009-06-29; - sha256 = "be566f850e88130333ab8bc3462872ad90c9482e025c60a92f728b5bac1b4fa9"; + url = http://dl.central.org/dl/cellservdb/CellServDB.2017-03-14; + sha256 = "1197z6c5xrijgf66rhaymnm5cvyg2yiy1i20y4ah4mrzmjx0m7sc"; }; afsConfig = pkgs.runCommand "afsconfig" {} '' @@ -93,7 +93,6 @@ in preStop = '' ${pkgs.utillinux}/bin/umount /afs ${openafsPkgs}/sbin/afsd -shutdown - ${pkgs.kmod}/sbin/rmmod libafs ''; }; }; diff --git a/nixos/modules/services/network-filesystems/rsyncd.nix b/nixos/modules/services/network-filesystems/rsyncd.nix index 2018bfa14a5..054057d52ab 100644 --- a/nixos/modules/services/network-filesystems/rsyncd.nix +++ b/nixos/modules/services/network-filesystems/rsyncd.nix @@ -8,22 +8,21 @@ let motdFile = builtins.toFile "rsyncd-motd" cfg.motd; - moduleConfig = name: - let module = getAttr name cfg.modules; in - "[${name}]\n " + (toString ( - map - (key: "${key} = ${toString (getAttr key module)}\n") - (attrNames module) - )); + foreach = attrs: f: + concatStringsSep "\n" (mapAttrsToList f attrs); - cfgFile = builtins.toFile "rsyncd.conf" - '' + cfgFile = '' ${optionalString (cfg.motd != "") "motd file = ${motdFile}"} ${optionalString (cfg.address != "") "address = ${cfg.address}"} ${optionalString (cfg.port != 873) "port = ${toString cfg.port}"} ${cfg.extraConfig} - ${toString (map moduleConfig (attrNames cfg.modules))} - ''; + ${foreach cfg.modules (name: module: '' + [${name}] + ${foreach module (k: v: + "${k} = ${v}" + )} + '')} + ''; in { @@ -84,6 +83,24 @@ in }; }; + user = mkOption { + type = types.str; + default = "root"; + description = '' + The user to run the daemon as. + By default the daemon runs as root. + ''; + }; + + group = mkOption { + type = types.str; + default = "root"; + description = '' + The group to run the daemon as. + By default the daemon runs as root. + ''; + }; + }; }; @@ -91,16 +108,17 @@ in config = mkIf cfg.enable { - environment.etc = singleton { - source = cfgFile; - target = "rsyncd.conf"; - }; + environment.etc."rsyncd.conf".text = cfgFile; systemd.services.rsyncd = { description = "Rsync daemon"; wantedBy = [ "multi-user.target" ]; - serviceConfig.ExecStart = "${pkgs.rsync}/bin/rsync --daemon --no-detach"; + restartTriggers = [ config.environment.etc."rsyncd.conf".source ]; + serviceConfig = { + ExecStart = "${pkgs.rsync}/bin/rsync --daemon --no-detach"; + User = cfg.user; + Group = cfg.group; + }; }; - }; } diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix index 87c4f7a8ebc..9b9c91a4f16 100644 --- a/nixos/modules/services/network-filesystems/samba.nix +++ b/nixos/modules/services/network-filesystems/samba.nix @@ -28,7 +28,7 @@ let configFile = pkgs.writeText "smb.conf" (if cfg.configText != null then cfg.configText else '' - [ global ] + [global] security = ${cfg.securityType} passwd program = /run/wrappers/bin/passwd %u pam password change = ${smbToString cfg.syncPasswordsByPam} @@ -243,7 +243,7 @@ in }; }; - security.pam.services.sambda = {}; + security.pam.services.samba = {}; }) ]; diff --git a/nixos/modules/services/network-filesystems/tahoe.nix b/nixos/modules/services/network-filesystems/tahoe.nix index 9815a5434ee..80b34c48f1d 100644 --- a/nixos/modules/services/network-filesystems/tahoe.nix +++ b/nixos/modules/services/network-filesystems/tahoe.nix @@ -237,13 +237,13 @@ in # arguments to $(tahoe start). The node directory must come first, # and arguments which alter Twisted's behavior come afterwards. ExecStart = '' - ${settings.package}/bin/tahoe start ${nodedir} -n -l- --pidfile=${pidfile} + ${settings.package}/bin/tahoe start ${lib.escapeShellArg nodedir} -n -l- --pidfile=${lib.escapeShellArg pidfile} ''; }; preStart = '' - if [ \! -d ${nodedir} ]; then + if [ ! -d ${lib.escapeShellArg nodedir} ]; then mkdir -p /var/db/tahoe-lafs - tahoe create-introducer ${nodedir} + tahoe create-introducer ${lib.escapeShellArg nodedir} fi # Tahoe has created a predefined tahoe.cfg which we must now @@ -252,7 +252,7 @@ in # we must do this on every prestart. Fixes welcome. # rm ${nodedir}/tahoe.cfg # ln -s /etc/tahoe-lafs/introducer-${node}.cfg ${nodedir}/tahoe.cfg - cp /etc/tahoe-lafs/introducer-${node}.cfg ${nodedir}/tahoe.cfg + cp /etc/tahoe-lafs/introducer-"${node}".cfg ${lib.escapeShellArg nodedir}/tahoe.cfg ''; }); users.extraUsers = flip mapAttrs' cfg.introducers (node: _: @@ -337,13 +337,13 @@ in # arguments to $(tahoe start). The node directory must come first, # and arguments which alter Twisted's behavior come afterwards. ExecStart = '' - ${settings.package}/bin/tahoe start ${nodedir} -n -l- --pidfile=${pidfile} + ${settings.package}/bin/tahoe start ${lib.escapeShellArg nodedir} -n -l- --pidfile=${lib.escapeShellArg pidfile} ''; }; preStart = '' - if [ \! -d ${nodedir} ]; then + if [ ! -d ${lib.escapeShellArg nodedir} ]; then mkdir -p /var/db/tahoe-lafs - tahoe create-node --hostname=localhost ${nodedir} + tahoe create-node --hostname=localhost ${lib.escapeShellArg nodedir} fi # Tahoe has created a predefined tahoe.cfg which we must now @@ -351,8 +351,8 @@ in # XXX I thought that a symlink would work here, but it doesn't, so # we must do this on every prestart. Fixes welcome. # rm ${nodedir}/tahoe.cfg - # ln -s /etc/tahoe-lafs/${node}.cfg ${nodedir}/tahoe.cfg - cp /etc/tahoe-lafs/${node}.cfg ${nodedir}/tahoe.cfg + # ln -s /etc/tahoe-lafs/${lib.escapeShellArg node}.cfg ${nodedir}/tahoe.cfg + cp /etc/tahoe-lafs/${lib.escapeShellArg node}.cfg ${lib.escapeShellArg nodedir}/tahoe.cfg ''; }); users.extraUsers = flip mapAttrs' cfg.nodes (node: _: diff --git a/nixos/modules/services/network-filesystems/u9fs.nix b/nixos/modules/services/network-filesystems/u9fs.nix index 8bc37f0f62c..4f37fc2a9e5 100644 --- a/nixos/modules/services/network-filesystems/u9fs.nix +++ b/nixos/modules/services/network-filesystems/u9fs.nix @@ -67,6 +67,7 @@ in StandardInput = "socket"; StandardError = "journal"; User = cfg.user; + AmbientCapabilities = "cap_setuid cap_setgid"; }; }; }; diff --git a/nixos/modules/services/networking/aiccu.nix b/nixos/modules/services/networking/aiccu.nix deleted file mode 100644 index ac755270951..00000000000 --- a/nixos/modules/services/networking/aiccu.nix +++ /dev/null @@ -1,185 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.services.aiccu; - notNull = a: ! isNull a; - configFile = pkgs.writeText "aiccu.conf" '' - ${if notNull cfg.username then "username " + cfg.username else ""} - ${if notNull cfg.password then "password " + cfg.password else ""} - protocol ${cfg.protocol} - server ${cfg.server} - ipv6_interface ${cfg.interfaceName} - verbose ${boolToString cfg.verbose} - daemonize true - automatic ${boolToString cfg.automatic} - requiretls ${boolToString cfg.requireTLS} - pidfile ${cfg.pidFile} - defaultroute ${boolToString cfg.defaultRoute} - ${if notNull cfg.setupScript then cfg.setupScript else ""} - makebeats ${boolToString cfg.makeHeartBeats} - noconfigure ${boolToString cfg.noConfigure} - behindnat ${boolToString cfg.behindNAT} - ${if cfg.localIPv4Override then "local_ipv4_override" else ""} - ''; - -in { - - options = { - - services.aiccu = { - - enable = mkOption { - type = types.bool; - default = false; - description = "Enable aiccu IPv6 over IPv4 SiXXs tunnel"; - }; - - username = mkOption { - type = with types; nullOr str; - default = null; - example = "FAB5-SIXXS"; - description = "Login credential"; - }; - - password = mkOption { - type = with types; nullOr str; - default = null; - example = "TmAkRbBEr0"; - description = "Login credential"; - }; - - protocol = mkOption { - type = types.str; - default = "tic"; - example = "tic|tsp|l2tp"; - description = "Protocol to use for setting up the tunnel"; - }; - - server = mkOption { - type = types.str; - default = "tic.sixxs.net"; - example = "enabled.ipv6server.net"; - description = "Server to use for setting up the tunnel"; - }; - - interfaceName = mkOption { - type = types.str; - default = "aiccu"; - example = "sixxs"; - description = '' - The name of the interface that will be used as a tunnel interface. - On *BSD the ipv6_interface should be set to gifX (eg gif0) for proto-41 tunnels - or tunX (eg tun0) for AYIYA tunnels. - ''; - }; - - tunnelID = mkOption { - type = with types; nullOr str; - default = null; - example = "T12345"; - description = "The tunnel id to use, only required when there are multiple tunnels in the list"; - }; - - verbose = mkOption { - type = types.bool; - default = false; - description = "Be verbose?"; - }; - - automatic = mkOption { - type = types.bool; - default = true; - description = "Automatic Login and Tunnel activation"; - }; - - requireTLS = mkOption { - type = types.bool; - default = false; - description = '' - When set to true, if TLS is not supported on the server - the TIC transaction will fail. - When set to false, it will try a starttls, when that is - not supported it will continue. - In any case if AICCU is build with TLS support it will - try to do a 'starttls' to the TIC server to see if that - is supported. - ''; - }; - - pidFile = mkOption { - type = types.path; - default = "/run/aiccu.pid"; - example = "/var/lib/aiccu/aiccu.pid"; - description = "Location of PID File"; - }; - - defaultRoute = mkOption { - type = types.bool; - default = true; - description = "Add a default route"; - }; - - setupScript = mkOption { - type = with types; nullOr path; - default = null; - example = "/var/lib/aiccu/fix-subnets.sh"; - description = "Script to run after setting up the interfaces"; - }; - - makeHeartBeats = mkOption { - type = types.bool; - default = true; - description = '' - In general you don't want to turn this off - Of course only applies to AYIYA and heartbeat tunnels not to static ones - ''; - }; - - noConfigure = mkOption { - type = types.bool; - default = false; - description = "Don't configure anything"; - }; - - behindNAT = mkOption { - type = types.bool; - default = false; - description = "Notify the user that a NAT-kind network is detected"; - }; - - localIPv4Override = mkOption { - type = types.bool; - default = false; - description = '' - Overrides the IPv4 parameter received from TIC - This allows one to configure a NAT into "DMZ" mode and then - forwarding the proto-41 packets to an internal host. - - This is only needed for static proto-41 tunnels! - AYIYA and heartbeat tunnels don't require this. - ''; - }; - - }; - }; - - config = mkIf cfg.enable { - - systemd.services.aiccu = { - description = "Automatic IPv6 Connectivity Client Utility"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${pkgs.aiccu}/bin/aiccu start ${configFile}"; - ExecStop = "${pkgs.aiccu}/bin/aiccu stop"; - Type = "forking"; - PIDFile = cfg.pidFile; - Restart = "no"; # aiccu startup errors are serious, do not pound the tic server or be banned. - }; - }; - - }; -} diff --git a/nixos/modules/services/networking/aria2.nix b/nixos/modules/services/networking/aria2.nix new file mode 100644 index 00000000000..ad4ac9bf45e --- /dev/null +++ b/nixos/modules/services/networking/aria2.nix @@ -0,0 +1,135 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.aria2; + + homeDir = "/var/lib/aria2"; + + settingsDir = "${homeDir}"; + sessionFile = "${homeDir}/aria2.session"; + downloadDir = "${homeDir}/Downloads"; + + rangesToStringList = map (x: builtins.toString x.from +"-"+ builtins.toString x.to); + + settingsFile = pkgs.writeText "aria2.conf" + '' + dir=${cfg.downloadDir} + listen-port=${concatStringsSep "," (rangesToStringList cfg.listenPortRange)} + rpc-listen-port=${toString cfg.rpcListenPort} + rpc-secret=${cfg.rpcSecret} + ''; + +in +{ + options = { + services.aria2 = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether or not to enable the headless Aria2 daemon service. + + Aria2 daemon can be controlled via the RPC interface using + one of many WebUI (http://localhost:6800/ by default). + + Targets are downloaded to ${downloadDir} by default and are + accessible to users in the "aria2" group. + ''; + }; + openPorts = mkOption { + type = types.bool; + default = false; + description = '' + Open listen and RPC ports found in listenPortRange and rpcListenPort + options in the firewall. + ''; + }; + downloadDir = mkOption { + type = types.string; + default = "${downloadDir}"; + description = '' + Directory to store downloaded files. + ''; + }; + listenPortRange = mkOption { + type = types.listOf types.attrs; + default = [ { from = 6881; to = 6999; } ]; + description = '' + Set UDP listening port range used by DHT(IPv4, IPv6) and UDP tracker. + ''; + }; + rpcListenPort = mkOption { + type = types.int; + default = 6800; + description = "Specify a port number for JSON-RPC/XML-RPC server to listen to. Possible Values: 1024-65535"; + }; + rpcSecret = mkOption { + type = types.string; + default = "aria2rpc"; + description = '' + Set RPC secret authorization token. + Read https://aria2.github.io/manual/en/html/aria2c.html#rpc-auth to know how this option value is used. + ''; + }; + extraArguments = mkOption { + type = types.string; + example = "--rpc-listen-all --remote-time=true"; + default = ""; + description = '' + Additional arguments to be passed to Aria2. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + # Need to open ports for proper functioning + networking.firewall = mkIf cfg.openPorts { + allowedUDPPortRanges = config.services.aria2.listenPortRange; + allowedTCPPorts = [ config.services.aria2.rpcListenPort ]; + }; + + users.extraUsers.aria2 = { + group = "aria2"; + uid = config.ids.uids.aria2; + description = "aria2 user"; + home = homeDir; + createHome = false; + }; + + users.extraGroups.aria2.gid = config.ids.gids.aria2; + + systemd.services.aria2 = { + description = "aria2 Service"; + after = [ "local-fs.target" "network.target" ]; + wantedBy = [ "multi-user.target" ]; + preStart = '' + mkdir -m 0770 -p "${homeDir}" + chown aria2:aria2 "${homeDir}" + if [[ ! -d "${config.services.aria2.downloadDir}" ]] + then + mkdir -m 0770 -p "${config.services.aria2.downloadDir}" + chown aria2:aria2 "${config.services.aria2.downloadDir}" + fi + if [[ ! -e "${sessionFile}" ]] + then + touch "${sessionFile}" + chown aria2:aria2 "${sessionFile}" + fi + cp -f "${settingsFile}" "${settingsDir}/aria2.conf" + ''; + + serviceConfig = { + Restart = "on-abort"; + ExecStart = "${pkgs.aria2}/bin/aria2c --enable-rpc --conf-path=${settingsDir}/aria2.conf ${config.services.aria2.extraArguments} --save-session=${sessionFile}"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + User = "aria2"; + Group = "aria2"; + PermissionsStartOnly = true; + }; + }; + }; +} \ No newline at end of file diff --git a/nixos/modules/services/networking/avahi-daemon.nix b/nixos/modules/services/networking/avahi-daemon.nix index 3985f8561d3..9ccdacb20e9 100644 --- a/nixos/modules/services/networking/avahi-daemon.nix +++ b/nixos/modules/services/networking/avahi-daemon.nix @@ -22,6 +22,7 @@ let ${optionalString (interfaces!=null) "allow-interfaces=${concatStringsSep "," interfaces}"} ${optionalString (domainName!=null) "domain-name=${domainName}"} allow-point-to-point=${yesNo allowPointToPoint} + ${optionalString (cacheEntriesMax!=null) "cache-entries-max=${toString cacheEntriesMax}"} [wide-area] enable-wide-area=${yesNo wideArea} @@ -33,6 +34,9 @@ let publish-hinfo=${yesNo publish.hinfo} publish-workstation=${yesNo publish.workstation} publish-domain=${yesNo publish.domain} + + [reflector] + enable-reflector=${yesNo reflector} ''; in @@ -113,6 +117,11 @@ in description = ''Whether to enable wide-area service discovery.''; }; + reflector = mkOption { + default = false; + description = ''Reflect incoming mDNS requests to all allowed network interfaces.''; + }; + publish = { enable = mkOption { default = false; @@ -158,6 +167,15 @@ in ''; }; + cacheEntriesMax = mkOption { + default = null; + type = types.nullOr types.int; + description = '' + Number of resource records to be cached per interface. Use 0 to + disable caching. Avahi daemon defaults to 4096 if not set. + ''; + }; + }; }; diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix index 0272b6ceff2..763283dfe7a 100644 --- a/nixos/modules/services/networking/bind.nix +++ b/nixos/modules/services/networking/bind.nix @@ -10,12 +10,17 @@ let confFile = pkgs.writeText "named.conf" '' + include "/etc/bind/rndc.key"; + controls { + inet 127.0.0.1 allow {localhost;} keys {"rndc-key";}; + }; + acl cachenetworks { ${concatMapStrings (entry: " ${entry}; ") cfg.cacheNetworks} }; acl badnetworks { ${concatMapStrings (entry: " ${entry}; ") cfg.blockedNetworks} }; options { - listen-on {any;}; - listen-on-v6 {any;}; + listen-on { ${concatMapStrings (entry: " ${entry}; ") cfg.listenOn} }; + listen-on-v6 { ${concatMapStrings (entry: " ${entry}; ") cfg.listenOnIpv6} }; allow-query { cachenetworks; }; blackhole { badnetworks; }; forward first; @@ -96,6 +101,22 @@ in "; }; + listenOn = mkOption { + default = ["any"]; + type = types.listOf types.str; + description = " + Interfaces to listen on. + "; + }; + + listenOnIpv6 = mkOption { + default = ["any"]; + type = types.listOf types.str; + description = " + Ipv6 interfaces to listen on. + "; + }; + zones = mkOption { default = []; description = " @@ -151,11 +172,21 @@ in wantedBy = [ "multi-user.target" ]; preStart = '' + mkdir -m 0755 -p /etc/bind + if ! [ -f "/etc/bind/rndc.key" ]; then + ${pkgs.bind.out}/sbin/rndc-confgen -r /dev/urandom -c /etc/bind/rndc.key -u ${bindUser} -a -A hmac-sha256 2>/dev/null + fi + ${pkgs.coreutils}/bin/mkdir -p /var/run/named chown ${bindUser} /var/run/named ''; - script = "${pkgs.bind.out}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f"; + serviceConfig = { + ExecStart = "${pkgs.bind.out}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f"; + ExecReload = "${pkgs.bind.out}/sbin/rndc -k '/etc/bind/rndc.key' reload"; + ExecStop = "${pkgs.bind.out}/sbin/rndc -k '/etc/bind/rndc.key' stop"; + }; + unitConfig.Documentation = "man:named(8)"; }; }; diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix index e72ea20ccce..bd26804788f 100644 --- a/nixos/modules/services/networking/bitlbee.nix +++ b/nixos/modules/services/networking/bitlbee.nix @@ -7,6 +7,10 @@ let cfg = config.services.bitlbee; bitlbeeUid = config.ids.uids.bitlbee; + bitlbeePkg = if cfg.libpurple_plugins == [] + then pkgs.bitlbee + else pkgs.bitlbee.override { enableLibPurple = true; }; + bitlbeeConfig = pkgs.writeText "bitlbee.conf" '' [settings] @@ -25,6 +29,12 @@ let ${cfg.extraDefaults} ''; + purple_plugin_path = + lib.concatMapStringsSep ":" + (plugin: "${plugin}/lib/pidgin/") + cfg.libpurple_plugins + ; + in { @@ -90,6 +100,15 @@ in ''; }; + libpurple_plugins = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.purple-matrix ]"; + description = '' + The list of libpurple plugins to install. + ''; + }; + configDir = mkOption { default = "/var/lib/bitlbee"; type = types.path; @@ -144,14 +163,16 @@ in }; systemd.services.bitlbee = - { description = "BitlBee IRC to other chat networks gateway"; + { + environment.PURPLE_PLUGIN_PATH = purple_plugin_path; + description = "BitlBee IRC to other chat networks gateway"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig.User = "bitlbee"; - serviceConfig.ExecStart = "${pkgs.bitlbee}/sbin/bitlbee -F -n -c ${bitlbeeConfig}"; + serviceConfig.ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}"; }; - environment.systemPackages = [ pkgs.bitlbee ]; + environment.systemPackages = [ bitlbeePkg ]; }; diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix index 2f7d006b881..c354ec61fe2 100644 --- a/nixos/modules/services/networking/charybdis.nix +++ b/nixos/modules/services/networking/charybdis.nix @@ -51,6 +51,17 @@ in ''; }; + motd = mkOption { + type = types.nullOr types.lines; + default = null; + description = '' + Charybdis MOTD text. + + Charybdis will read its MOTD from /etc/charybdis/ircd.motd . + If set, the value of this option will be written to this path. + ''; + }; + }; }; @@ -58,39 +69,42 @@ in ###### implementation - config = mkIf cfg.enable { - - users.extraUsers = singleton { - name = cfg.user; - description = "Charybdis IRC daemon user"; - uid = config.ids.uids.ircd; - group = cfg.group; - }; - - users.extraGroups = singleton { - name = cfg.group; - gid = config.ids.gids.ircd; - }; - - systemd.services.charybdis = { - description = "Charybdis IRC daemon"; - wantedBy = [ "multi-user.target" ]; - environment = { - BANDB_DBPATH = "${cfg.statedir}/ban.db"; + config = mkIf cfg.enable (lib.mkMerge [ + { + users.extraUsers = singleton { + name = cfg.user; + description = "Charybdis IRC daemon user"; + uid = config.ids.uids.ircd; + group = cfg.group; }; - serviceConfig = { - ExecStart = "${charybdis}/bin/charybdis-ircd -foreground -logfile /dev/stdout -configfile ${configFile}"; - Group = cfg.group; - User = cfg.user; - PermissionsStartOnly = true; # preStart needs to run with root permissions + + users.extraGroups = singleton { + name = cfg.group; + gid = config.ids.gids.ircd; }; - preStart = '' - ${coreutils}/bin/mkdir -p ${cfg.statedir} - ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir} - ''; - }; - - }; + systemd.services.charybdis = { + description = "Charybdis IRC daemon"; + wantedBy = [ "multi-user.target" ]; + environment = { + BANDB_DBPATH = "${cfg.statedir}/ban.db"; + }; + serviceConfig = { + ExecStart = "${charybdis}/bin/charybdis-ircd -foreground -logfile /dev/stdout -configfile ${configFile}"; + Group = cfg.group; + User = cfg.user; + PermissionsStartOnly = true; # preStart needs to run with root permissions + }; + preStart = '' + ${coreutils}/bin/mkdir -p ${cfg.statedir} + ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir} + ''; + }; + } + + (mkIf (cfg.motd != null) { + environment.etc."charybdis/ircd.motd".text = cfg.motd; + }) + ]); } diff --git a/nixos/modules/services/networking/cntlm.nix b/nixos/modules/services/networking/cntlm.nix index 890ff508407..3978a1969ce 100644 --- a/nixos/modules/services/networking/cntlm.nix +++ b/nixos/modules/services/networking/cntlm.nix @@ -5,110 +5,122 @@ with lib; let cfg = config.services.cntlm; - uid = config.ids.uids.cntlm; + + configFile = if cfg.configText != "" then + pkgs.writeText "cntlm.conf" '' + ${cfg.configText} + '' + else + pkgs.writeText "lighttpd.conf" '' + # Cntlm Authentication Proxy Configuration + Username ${cfg.username} + Domain ${cfg.domain} + Password ${cfg.password} + ${optionalString (cfg.netbios_hostname != "") "Workstation ${cfg.netbios_hostname}"} + ${concatMapStrings (entry: "Proxy ${entry}\n") cfg.proxy} + ${optionalString (cfg.noproxy != []) "NoProxy ${concatStringsSep ", " cfg.noproxy}"} + + ${concatMapStrings (port: '' + Listen ${toString port} + '') cfg.port} + + ${cfg.extraConfig} + ''; in { - options = { + options.services.cntlm = { - services.cntlm = { + enable = mkOption { + default = false; + description = '' + Whether to enable the cntlm, which start a local proxy. + ''; + }; - enable = mkOption { - default = false; - description = '' - Whether to enable the cntlm, which start a local proxy. - ''; - }; + username = mkOption { + description = '' + Proxy account name, without the possibility to include domain name ('at' sign is interpreted literally). + ''; + }; - username = mkOption { - description = '' - Proxy account name, without the possibility to include domain name ('at' sign is interpreted literally). - ''; - }; + domain = mkOption { + description = ''Proxy account domain/workgroup name.''; + }; - domain = mkOption { - description = ''Proxy account domain/workgroup name.''; - }; + password = mkOption { + default = "/etc/cntlm.password"; + type = types.str; + description = ''Proxy account password. Note: use chmod 0600 on /etc/cntlm.password for security.''; + }; - password = mkOption { - default = "/etc/cntlm.password"; - type = types.str; - description = ''Proxy account password. Note: use chmod 0600 on /etc/cntlm.password for security.''; - }; + netbios_hostname = mkOption { + type = types.str; + default = ""; + description = '' + The hostname of your machine. + ''; + }; - netbios_hostname = mkOption { - type = types.str; - description = '' - The hostname of your machine. - ''; - }; + proxy = mkOption { + description = '' + A list of NTLM/NTLMv2 authenticating HTTP proxies. - proxy = mkOption { - description = '' - A list of NTLM/NTLMv2 authenticating HTTP proxies. + Parent proxy, which requires authentication. The same as proxy on the command-line, can be used more than once to specify unlimited + number of proxies. Should one proxy fail, cntlm automatically moves on to the next one. The connect request fails only if the whole + list of proxies is scanned and (for each request) and found to be invalid. Command-line takes precedence over the configuration file. + ''; + example = [ "proxy.example.com:81" ]; + }; - Parent proxy, which requires authentication. The same as proxy on the command-line, can be used more than once to specify unlimited - number of proxies. Should one proxy fail, cntlm automatically moves on to the next one. The connect request fails only if the whole - list of proxies is scanned and (for each request) and found to be invalid. Command-line takes precedence over the configuration file. - ''; - }; + noproxy = mkOption { + description = '' + A list of domains where the proxy is skipped. + ''; + default = []; + example = [ "*.example.com" "example.com" ]; + }; - port = mkOption { - default = [3128]; - description = "Specifies on which ports the cntlm daemon listens."; - }; + port = mkOption { + default = [3128]; + description = "Specifies on which ports the cntlm daemon listens."; + }; - extraConfig = mkOption { - type = types.lines; - default = ""; - description = "Verbatim contents of cntlm.conf."; - }; + extraConfig = mkOption { + type = types.lines; + default = ""; + description = "Additional config appended to the end of the generated cntlm.conf."; + }; + configText = mkOption { + type = types.lines; + default = ""; + description = "Verbatim contents of cntlm.conf."; }; }; - ###### implementation - config = mkIf config.services.cntlm.enable { + config = mkIf cfg.enable { systemd.services.cntlm = { description = "CNTLM is an NTLM / NTLM Session Response / NTLMv2 authenticating HTTP proxy"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { - Type = "forking"; User = "cntlm"; ExecStart = '' - ${pkgs.cntlm}/bin/cntlm -U cntlm \ - -c ${pkgs.writeText "cntlm_config" cfg.extraConfig} + ${pkgs.cntlm}/bin/cntlm -U cntlm -c ${configFile} -v -f ''; - }; - }; - - services.cntlm.netbios_hostname = mkDefault config.networking.hostName; - - users.extraUsers.cntlm = { - name = "cntlm"; - description = "cntlm system-wide daemon"; - home = "/var/empty"; + }; }; - services.cntlm.extraConfig = - '' - # Cntlm Authentication Proxy Configuration - Username ${cfg.username} - Domain ${cfg.domain} - Password ${cfg.password} - Workstation ${cfg.netbios_hostname} - ${concatMapStrings (entry: "Proxy ${entry}\n") cfg.proxy} - - ${concatMapStrings (port: '' - Listen ${toString port} - '') cfg.port} - ''; + users.extraUsers.cntlm = { + name = "cntlm"; + description = "cntlm system-wide daemon"; + isSystemUser = true; + }; }; - } diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index d0683b87780..546d2706923 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -115,10 +115,5 @@ in { wireless.enable = true; networkmanager.enable = false; }; - - powerManagement.resumeCommands = '' - systemctl restart connman - ''; - }; } diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix index 166ee773237..6333970cb33 100644 --- a/nixos/modules/services/networking/consul.nix +++ b/nixos/modules/services/networking/consul.nix @@ -183,6 +183,7 @@ in ExecReload = "${cfg.package.bin}/bin/consul reload"; PermissionsStartOnly = true; User = if cfg.dropPrivileges then "consul" else null; + Restart = "on-failure"; TimeoutStartSec = "0"; } // (optionalAttrs (cfg.leaveOnStop) { ExecStop = "${cfg.package.bin}/bin/consul leave"; diff --git a/nixos/modules/services/networking/coturn.nix b/nixos/modules/services/networking/coturn.nix index 14e6932d868..b3c64490d97 100644 --- a/nixos/modules/services/networking/coturn.nix +++ b/nixos/modules/services/networking/coturn.nix @@ -307,7 +307,8 @@ in { systemd.services.coturn = { description = "coturn TURN server"; - after = [ "network.target" ]; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; unitConfig = { @@ -320,6 +321,14 @@ in { RuntimeDirectory = "turnserver"; User = "turnserver"; Group = "turnserver"; + AmbientCapabilities = + mkIf ( + cfg.listening-port < 1024 || + cfg.alt-listening-port < 1024 || + cfg.tls-listening-port < 1024 || + cfg.alt-tls-listening-port < 1024 || + cfg.min-port < 1024 + ) "cap_net_bind_service"; Restart = "on-abort"; }; }; diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix index 28c96a9baef..9e56545f746 100644 --- a/nixos/modules/services/networking/ddclient.nix +++ b/nixos/modules/services/networking/ddclient.nix @@ -1,17 +1,33 @@ { config, pkgs, lib, ... }: let + cfg = config.services.ddclient; + boolToStr = bool: if bool then "yes" else "no"; - inherit (lib) mkOption mkIf singleton; - inherit (pkgs) ddclient; - - stateDir = "/var/spool/ddclient"; - ddclientUser = "ddclient"; - ddclientFlags = "-foreground -file ${config.services.ddclient.configFile}"; - ddclientPIDFile = "${stateDir}/ddclient.pid"; + configText = '' + # This file can be used as a template for configFile or is automatically generated by Nix options. + daemon=${toString cfg.interval} + cache=${cfg.homeDir}/ddclient.cache + pid=/run/ddclient/ddclient.pid + foreground=NO + use=${cfg.use} + login=${cfg.username} + password=${cfg.password} + protocol=${cfg.protocol} + ${let server = cfg.server; in + lib.optionalString (server != "") "server=${server}"} + ssl=${boolToStr cfg.ssl} + wildcard=YES + quiet=${boolToStr cfg.quiet} + verbose=${boolToStr cfg.verbose} + ${cfg.domain} + ${cfg.extraConfig} + ''; in +with lib; + { ###### interface @@ -28,6 +44,12 @@ in ''; }; + homeDir = mkOption { + default = "/var/lib/ddclient"; + type = str; + description = "Home directory for the daemon user."; + }; + domain = mkOption { default = ""; type = str; @@ -52,6 +74,12 @@ in ''; }; + interval = mkOption { + default = 600; + type = int; + description = "The interval at which to run the check and update."; + }; + configFile = mkOption { default = "/etc/ddclient.conf"; type = path; @@ -126,37 +154,24 @@ in config = mkIf config.services.ddclient.enable { - environment.systemPackages = [ ddclient ]; + users = { + extraGroups.ddclient.gid = config.ids.gids.ddclient; - users.extraUsers = singleton { - name = ddclientUser; - uid = config.ids.uids.ddclient; - description = "ddclient daemon user"; - home = stateDir; + extraUsers.ddclient = { + uid = config.ids.uids.ddclient; + description = "ddclient daemon user"; + group = "ddclient"; + home = cfg.homeDir; + createHome = true; + }; }; environment.etc."ddclient.conf" = { - enable = config.services.ddclient.configFile == "/etc/ddclient.conf"; + enable = cfg.configFile == "/etc/ddclient.conf"; uid = config.ids.uids.ddclient; + gid = config.ids.gids.ddclient; mode = "0600"; - text = '' - # This file can be used as a template for configFile or is automatically generated by Nix options. - 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} - ${let server = config.services.ddclient.server; in - lib.optionalString (server != "") "server=${server}"} - ssl=${if config.services.ddclient.ssl then "yes" else "no"} - wildcard=YES - quiet=${if config.services.ddclient.quiet then "yes" else "no"} - verbose=${if config.services.ddclient.verbose then "yes" else "no"} - ${config.services.ddclient.domain} - ${config.services.ddclient.extraConfig} - ''; + text = configText; }; systemd.services.ddclient = { @@ -166,17 +181,14 @@ in restartTriggers = [ config.environment.etc."ddclient.conf".source ]; serviceConfig = { - # Uncomment this if too many problems occur: - # Type = "forking"; - User = ddclientUser; - Group = "nogroup"; #TODO get this to work - PermissionsStartOnly = "true"; - PIDFile = ddclientPIDFile; - ExecStartPre = '' - ${pkgs.stdenv.shell} -c "${pkgs.coreutils}/bin/mkdir -m 0755 -p ${stateDir} && ${pkgs.coreutils}/bin/chown ${ddclientUser} ${stateDir}" - ''; - ExecStart = "${ddclient}/bin/ddclient ${ddclientFlags}"; - #ExecStartPost = "${pkgs.coreutils}/bin/rm -r ${stateDir}"; # Should we have this? + RuntimeDirectory = "ddclient"; + # we cannot run in forking mode as it swallows all the program output + Type = "simple"; + User = "ddclient"; + Group = "ddclient"; + ExecStart = "${lib.getBin pkgs.ddclient}/bin/ddclient -foreground -file ${cfg.configFile}"; + ProtectSystem = "full"; + PrivateTmp = true; }; }; }; diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix index cdba14be21f..d283c762433 100644 --- a/nixos/modules/services/networking/dhcpcd.nix +++ b/nixos/modules/services/networking/dhcpcd.nix @@ -153,10 +153,14 @@ in config = mkIf enableDHCP { - systemd.services.dhcpcd = + systemd.services.dhcpcd = let + cfgN = config.networking; + hasDefaultGatewaySet = (cfgN.defaultGateway != null && cfgN.defaultGateway.address != "") + || (cfgN.defaultGateway6 != null && cfgN.defaultGateway6.address != ""); + in { description = "DHCP Client"; - wantedBy = [ "network-online.target" ]; + wantedBy = optional (!hasDefaultGatewaySet) "network-online.target"; after = [ "network.target" ]; wants = [ "network.target" ]; diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix new file mode 100644 index 00000000000..379203cd1ab --- /dev/null +++ b/nixos/modules/services/networking/dnscache.nix @@ -0,0 +1,89 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.dnscache; + + dnscache-root = pkgs.runCommand "dnscache-root" {} '' + mkdir -p $out/{servers,ip} + + ${concatMapStrings (ip: '' + echo > "$out/ip/"${lib.escapeShellArg ip} + '') cfg.clientIps} + + ${concatStrings (mapAttrsToList (host: ips: '' + ${concatMapStrings (ip: '' + echo ${lib.escapeShellArg ip} > "$out/servers/"${lib.escapeShellArg host} + '') ips} + '') cfg.domainServers)} + + # if a list of root servers was not provided in config, copy it + # over. (this is also done by dnscache-conf, but we 'rm -rf + # /var/lib/dnscache/root' below & replace it wholesale with this, + # so we have to ensure servers/@ exists ourselves.) + if [ ! -e $out/servers/@ ]; then + # symlink does not work here, due chroot + cp ${pkgs.djbdns}/etc/dnsroots.global $out/servers/@; + fi + ''; + +in { + + ###### interface + + options = { + services.dnscache = { + enable = mkOption { + default = false; + type = types.bool; + description = "Whether to run the dnscache caching dns server"; + }; + + ip = mkOption { + default = "0.0.0.0"; + type = types.str; + description = "IP address on which to listen for connections"; + }; + + clientIps = mkOption { + default = [ "127.0.0.1" ]; + type = types.listOf types.str; + description = "client IP addresses (or prefixes) from which to accept connections"; + example = ["192.168" "172.23.75.82"]; + }; + + domainServers = mkOption { + default = { }; + type = types.attrsOf (types.listOf types.str); + description = "table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts)"; + example = { + "example.com" = ["8.8.8.8" "8.8.4.4"]; + }; + }; + }; + }; + + ###### implementation + + config = mkIf config.services.dnscache.enable { + environment.systemPackages = [ pkgs.djbdns ]; + users.extraUsers.dnscache = {}; + + systemd.services.dnscache = { + description = "djbdns dnscache server"; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ bash daemontools djbdns ]; + preStart = '' + rm -rf /var/lib/dnscache + dnscache-conf dnscache dnscache /var/lib/dnscache ${config.services.dnscache.ip} + rm -rf /var/lib/dnscache/root + ln -sf ${dnscache-root} /var/lib/dnscache/root + ''; + script = '' + cd /var/lib/dnscache/ + exec ./run + ''; + }; + }; +} diff --git a/nixos/modules/services/networking/dnschain.nix b/nixos/modules/services/networking/dnschain.nix index b6492996057..ee1cd360003 100644 --- a/nixos/modules/services/networking/dnschain.nix +++ b/nixos/modules/services/networking/dnschain.nix @@ -17,7 +17,7 @@ let host = ${cfg.dns.address} port = ${toString cfg.dns.port} oldDNSMethod = NO_OLD_DNS - externalIP = ${cfg.dns.address} + externalIP = ${cfg.dns.externalAddress} [http] host = ${cfg.api.hostname} @@ -47,8 +47,18 @@ in type = types.str; default = "127.0.0.1"; description = '' - The IP address that will be used to reach this machine. - Leave this unchanged if you do not wish to directly expose the DNSChain resolver. + The IP address the DNSChain resolver will bind to. + Leave this unchanged if you do not wish to directly expose the resolver. + ''; + }; + + dns.externalAddress = mkOption { + type = types.str; + default = cfg.dns.address; + description = '' + The IP address used by clients to reach the resolver and the value of + the namecoin.dns record. Set this in case the bind address + is not the actual IP address (e.g. the machine is behind a NAT). ''; }; @@ -148,7 +158,7 @@ in serviceConfig = { User = "dnschain"; Restart = "on-failure"; - ExecStart = "${pkgs.dnschain}/bin/dnschain"; + ExecStart = "${pkgs.nodePackages.dnschain}/bin/dnschain"; }; preStart = '' diff --git a/nixos/modules/services/networking/dnscrypt-proxy.nix b/nixos/modules/services/networking/dnscrypt-proxy.nix index 077aeca457e..ed658258c7f 100644 --- a/nixos/modules/services/networking/dnscrypt-proxy.nix +++ b/nixos/modules/services/networking/dnscrypt-proxy.nix @@ -82,14 +82,13 @@ in }; resolverName = mkOption { - default = "dnscrypt.eu-nl"; + default = "random"; + example = "dnscrypt.eu-nl"; type = types.nullOr types.str; description = '' The name of the DNSCrypt resolver to use, taken from - ${resolverList}. The default - resolver is located in Holland, supports DNS security - extensions, and claims to not - keep logs. + ${resolverList}. The default is to + pick a random non-logging resolver that supports DNSSEC. ''; }; diff --git a/nixos/modules/services/networking/dnscrypt-wrapper.nix b/nixos/modules/services/networking/dnscrypt-wrapper.nix index 85fac660d52..23cc92946e4 100644 --- a/nixos/modules/services/networking/dnscrypt-wrapper.nix +++ b/nixos/modules/services/networking/dnscrypt-wrapper.nix @@ -45,7 +45,7 @@ let rotateKeys = '' # check if keys are not expired keyValid() { - fingerprint=$(dnscrypt-wrapper --show-provider-publickey-fingerprint | awk '{print $(NF)}') + fingerprint=$(dnscrypt-wrapper --show-provider-publickey | awk '{print $(NF)}') dnscrypt-proxy --test=${toString (cfg.keys.checkInterval + 1)} \ --resolver-address=127.0.0.1:${toString cfg.port} \ --provider-name=${cfg.providerName} \ @@ -56,9 +56,10 @@ let # archive old keys and restart the service if ! keyValid; then + echo "certificate soon to become invalid; backing up old cert" mkdir -p oldkeys - mv ${cfg.providerName}.key oldkeys/${cfg.providerName}-$(date +%F-%T).key - mv ${cfg.providerName}.crt oldkeys/${cfg.providerName}-$(date +%F-%T).crt + mv -v ${cfg.providerName}.key oldkeys/${cfg.providerName}-$(date +%F-%T).key + mv -v ${cfg.providerName}.crt oldkeys/${cfg.providerName}-$(date +%F-%T).crt systemctl restart dnscrypt-wrapper fi ''; @@ -169,6 +170,7 @@ in { path = with pkgs; [ dnscrypt-wrapper dnscrypt-proxy gawk ]; script = rotateKeys; + serviceConfig.User = "dnscrypt-wrapper"; }; diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix index fcf5aa5f175..91a3e54474a 100644 --- a/nixos/modules/services/networking/dnsmasq.nix +++ b/nixos/modules/services/networking/dnsmasq.nix @@ -55,6 +55,14 @@ in ''; }; + alwaysKeepRunning = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, systemd will always respawn dnsmasq even if shut down manually. The default, disabled, will only restart it on error. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; @@ -101,10 +109,12 @@ in BusName = "uk.org.thekelleys.dnsmasq"; ExecStart = "${dnsmasq}/bin/dnsmasq -k --enable-dbus --user=dnsmasq -C ${dnsmasqConf}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + PrivateTmp = true; + ProtectSystem = true; + ProtectHome = true; + Restart = if cfg.alwaysKeepRunning then "always" else "on-failure"; }; restartTriggers = [ config.environment.etc.hosts.source ]; }; - }; - } diff --git a/nixos/modules/services/networking/fan.nix b/nixos/modules/services/networking/fan.nix deleted file mode 100644 index 7f4e3647832..00000000000 --- a/nixos/modules/services/networking/fan.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.networking.fan; - modprobe = "${pkgs.kmod}/bin/modprobe"; - -in - -{ - - ###### interface - - options = { - - networking.fan = { - - enable = mkEnableOption "FAN Networking"; - - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - environment.systemPackages = [ pkgs.fanctl ]; - - systemd.services.fan = { - description = "FAN Networking"; - wantedBy = [ "multi-user.target" ]; - after = [ "network-online.target" ]; - before = [ "docker.service" ]; - restartIfChanged = false; - preStart = '' - if [ ! -f /proc/sys/net/fan/version ]; then - ${modprobe} ipip - if [ ! -f /proc/sys/net/fan/version ]; then - echo "The Fan Networking patches have not been applied to this kernel!" 1>&2 - exit 1 - fi - fi - - mkdir -p /var/lib/fan-networking - ''; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStart = "${pkgs.fanctl}/bin/fanctl up -a"; - ExecStop = "${pkgs.fanctl}/bin/fanctl down -a"; - }; - }; - - }; - -} diff --git a/nixos/modules/services/networking/firefox/sync-server.nix b/nixos/modules/services/networking/firefox/sync-server.nix index 3a95b9c4ec9..a9f3fd65d76 100644 --- a/nixos/modules/services/networking/firefox/sync-server.nix +++ b/nixos/modules/services/networking/firefox/sync-server.nix @@ -4,6 +4,10 @@ with lib; let cfg = config.services.firefox.syncserver; + + defaultDbLocation = "/var/db/firefox-sync-server/firefox-sync-server.db"; + defaultSqlUri = "sqlite:///${defaultDbLocation}"; + syncServerIni = pkgs.writeText "syncserver.ini" '' [DEFAULT] overrides = ${cfg.privateConfig} @@ -25,6 +29,7 @@ let backend = tokenserver.verifiers.LocalVerifier audiences = ${removeSuffix "/" cfg.publicUrl} ''; + in { @@ -65,6 +70,18 @@ in ''; }; + user = mkOption { + type = types.str; + default = "syncserver"; + description = "User account under which syncserver runs."; + }; + + group = mkOption { + type = types.str; + default = "syncserver"; + description = "Group account under which syncserver runs."; + }; + publicUrl = mkOption { type = types.str; default = "http://localhost:5000/"; @@ -85,7 +102,7 @@ in sqlUri = mkOption { type = types.str; - default = "sqlite:////var/db/firefox-sync-server.db"; + default = defaultSqlUri; example = "postgresql://scott:tiger@localhost/test"; description = '' The location of the database. This URL is composed of @@ -119,22 +136,52 @@ in config = mkIf cfg.enable { - systemd.services.syncserver = { + systemd.services.syncserver = let + syncServerEnv = pkgs.python.withPackages(ps: with ps; [ syncserver pasteScript ]); + in { after = [ "network.target" ]; description = "Firefox Sync Server"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.pythonPackages.pasteScript pkgs.coreutils ]; - environment.PYTHONPATH = "${pkgs.pythonPackages.syncserver}/lib/${pkgs.pythonPackages.python.libPrefix}/site-packages"; + path = [ pkgs.coreutils syncServerEnv ]; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + PermissionsStartOnly = true; + }; + preStart = '' if ! test -e ${cfg.privateConfig}; then - umask u=rwx,g=x,o=x - mkdir -p $(dirname ${cfg.privateConfig}) + mkdir -m 700 -p $(dirname ${cfg.privateConfig}) echo > ${cfg.privateConfig} '[syncserver]' echo >> ${cfg.privateConfig} "secret = $(head -c 20 /dev/urandom | sha1sum | tr -d ' -')" fi + chown ${cfg.user}:${cfg.group} ${cfg.privateConfig} + '' + optionalString (cfg.sqlUri == defaultSqlUri) '' + if ! test -e $(dirname ${defaultDbLocation}); then + mkdir -m 700 -p $(dirname ${defaultDbLocation}) + chown ${cfg.user}:${cfg.group} $(dirname ${defaultDbLocation}) + fi + # Move previous database file if it exists + oldDb="/var/db/firefox-sync-server.db" + if test -f $oldDb; then + mv $oldDb ${defaultDbLocation} + chown ${cfg.user}:${cfg.group} ${defaultDbLocation} + fi ''; - serviceConfig.ExecStart = "${pkgs.pythonPackages.pasteScript}/bin/paster serve ${syncServerIni}"; + serviceConfig.ExecStart = "${syncServerEnv}/bin/paster serve ${syncServerIni}"; }; + users.extraUsers = optionalAttrs (cfg.user == "syncserver") + (singleton { + name = "syncserver"; + group = cfg.group; + isSystemUser = true; + }); + + users.extraGroups = optionalAttrs (cfg.group == "syncserver") + (singleton { + name = "syncserver"; + }); }; } diff --git a/nixos/modules/services/networking/fireqos.nix b/nixos/modules/services/networking/fireqos.nix new file mode 100644 index 00000000000..0b34f0b6b8b --- /dev/null +++ b/nixos/modules/services/networking/fireqos.nix @@ -0,0 +1,52 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.fireqos; + fireqosConfig = pkgs.writeText "fireqos.conf" "${cfg.config}"; +in { + options.services.fireqos = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, FireQOS will be launched with the specified + configuration given in `config`. + ''; + }; + + config = mkOption { + type = types.str; + default = ""; + example = '' + interface wlp3s0 world-in input rate 10mbit ethernet + class web commit 50kbit + match tcp ports 80,443 + + interface wlp3s0 world-out input rate 10mbit ethernet + class web commit 50kbit + match tcp ports 80,443 + ''; + description = '' + The FireQOS configuration goes here. + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.fireqos = { + description = "FireQOS"; + after = [ "network.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.firehol}/bin/fireqos start ${fireqosConfig}"; + ExecStop = [ + "${pkgs.firehol}/bin/fireqos stop" + "${pkgs.firehol}/bin/fireqos clear_all_qos" + ]; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix index 243cd04c96c..9bd88ca1707 100644 --- a/nixos/modules/services/networking/firewall.nix +++ b/nixos/modules/services/networking/firewall.nix @@ -95,18 +95,18 @@ let ip46tables -N nixos-fw-log-refuse ${optionalString cfg.logRefusedConnections '' - ip46tables -A nixos-fw-log-refuse -p tcp --syn -j LOG --log-level info --log-prefix "rejected connection: " + ip46tables -A nixos-fw-log-refuse -p tcp --syn -j LOG --log-level info --log-prefix "refused connection: " ''} ${optionalString (cfg.logRefusedPackets && !cfg.logRefusedUnicastsOnly) '' ip46tables -A nixos-fw-log-refuse -m pkttype --pkt-type broadcast \ - -j LOG --log-level info --log-prefix "rejected broadcast: " + -j LOG --log-level info --log-prefix "refused broadcast: " ip46tables -A nixos-fw-log-refuse -m pkttype --pkt-type multicast \ - -j LOG --log-level info --log-prefix "rejected multicast: " + -j LOG --log-level info --log-prefix "refused multicast: " ''} ip46tables -A nixos-fw-log-refuse -m pkttype ! --pkt-type unicast -j nixos-fw-refuse ${optionalString cfg.logRefusedPackets '' ip46tables -A nixos-fw-log-refuse \ - -j LOG --log-level info --log-prefix "rejected packet: " + -j LOG --log-level info --log-prefix "refused packet: " ''} ip46tables -A nixos-fw-log-refuse -j nixos-fw-refuse @@ -114,14 +114,15 @@ let # The "nixos-fw" chain does the actual work. ip46tables -N nixos-fw - # Perform a reverse-path test to refuse spoofers - # For now, we just drop, as the raw table doesn't have a log-refuse yet - ${optionalString (kernelHasRPFilter && (cfg.checkReversePath != false)) '' - # Clean up rpfilter rules - ip46tables -t raw -D PREROUTING -j nixos-fw-rpfilter 2> /dev/null || true - ip46tables -t raw -F nixos-fw-rpfilter 2> /dev/null || true - ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true + # Clean up rpfilter rules + ip46tables -t raw -D PREROUTING -j nixos-fw-rpfilter 2> /dev/null || true + ip46tables -t raw -F nixos-fw-rpfilter 2> /dev/null || true + ip46tables -t raw -X nixos-fw-rpfilter 2> /dev/null || true + ${optionalString (kernelHasRPFilter && (cfg.checkReversePath != false)) '' + # Perform a reverse-path test to refuse spoofers + # For now, we just drop, as the raw table doesn't have a log-refuse yet + ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true ip46tables -t raw -A nixos-fw-rpfilter -m rpfilter ${optionalString (cfg.checkReversePath == "loose") "--loose"} -j RETURN # Allows this host to act as a DHCPv4 server diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix index fd4545e88e2..bf2d0916fa3 100644 --- a/nixos/modules/services/networking/hostapd.nix +++ b/nixos/modules/services/networking/hostapd.nix @@ -164,7 +164,7 @@ in path = [ pkgs.hostapd ]; wantedBy = [ "network.target" ]; - after = [ "${cfg.interface}-cfg.service" "nat.service" "bind.service" "dhcpd.service"]; + after = [ "${cfg.interface}-cfg.service" "nat.service" "bind.service" "dhcpd.service" "sys-subsystem-net-devices-${cfg.interface}.device" ]; serviceConfig = { ExecStart = "${pkgs.hostapd}/bin/hostapd ${configFile}"; diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix index 24a3196bed4..ca2e2a065dc 100644 --- a/nixos/modules/services/networking/i2pd.nix +++ b/nixos/modules/services/networking/i2pd.nix @@ -8,8 +8,6 @@ let homeDir = "/var/lib/i2pd"; - extip = "EXTIP=\$(${pkgs.curl.bin}/bin/curl -sLf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')"; - mkEndpointOpt = name: addr: port: { enable = mkEnableOption name; name = mkOption { @@ -30,15 +28,15 @@ let }; mkKeyedEndpointOpt = name: addr: port: keyFile: - (mkEndpointOpt name addr port) // { - keys = mkOption { - type = types.str; - default = ""; - description = '' - File to persist ${lib.toUpper name} keys. - ''; + (mkEndpointOpt name addr port) // { + keys = mkOption { + type = types.str; + default = ""; + description = '' + File to persist ${lib.toUpper name} keys. + ''; + }; }; - }; commonTunOpts = let i2cpOpts = { @@ -61,7 +59,7 @@ let description = "Number of ElGamal/AES tags to send."; default = 40; }; - destination = mkOption { + destination = mkOption { type = types.str; description = "Remote endpoint, I2P hostname or b32.i2p address."; }; @@ -72,89 +70,91 @@ let }; } // mkEndpointOpt name "127.0.0.1" 0; - i2pdConf = pkgs.writeText "i2pd.conf" - '' - ipv4 = ${boolToString cfg.enableIPv4} - ipv6 = ${boolToString cfg.enableIPv6} - notransit = ${boolToString cfg.notransit} - floodfill = ${boolToString cfg.floodfill} - netid = ${toString cfg.netid} - ${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" } - ${if isNull cfg.port then "" else "port = ${toString cfg.port}"} + i2pdConf = pkgs.writeText "i2pd.conf" '' + # DO NOT EDIT -- this file has been generated automatically. + loglevel = ${cfg.logLevel} - [limits] - transittunnels = ${toString cfg.limits.transittunnels} + ipv4 = ${boolToString cfg.enableIPv4} + ipv6 = ${boolToString cfg.enableIPv6} + notransit = ${boolToString cfg.notransit} + floodfill = ${boolToString cfg.floodfill} + netid = ${toString cfg.netid} + ${if isNull cfg.bandwidth then "" else "bandwidth = ${toString cfg.bandwidth}" } + ${if isNull cfg.port then "" else "port = ${toString cfg.port}"} - [upnp] - enabled = ${boolToString cfg.upnp.enable} - name = ${cfg.upnp.name} + [limits] + transittunnels = ${toString cfg.limits.transittunnels} - [precomputation] - elgamal = ${boolToString cfg.precomputation.elgamal} + [upnp] + enabled = ${boolToString cfg.upnp.enable} + name = ${cfg.upnp.name} - [reseed] - verify = ${boolToString cfg.reseed.verify} - file = ${cfg.reseed.file} - urls = ${builtins.concatStringsSep "," cfg.reseed.urls} + [precomputation] + elgamal = ${boolToString cfg.precomputation.elgamal} - [addressbook] - defaulturl = ${cfg.addressbook.defaulturl} - subscriptions = ${builtins.concatStringsSep "," cfg.addressbook.subscriptions} - ${flip concatMapStrings + [reseed] + verify = ${boolToString cfg.reseed.verify} + file = ${cfg.reseed.file} + urls = ${builtins.concatStringsSep "," cfg.reseed.urls} + + [addressbook] + defaulturl = ${cfg.addressbook.defaulturl} + subscriptions = ${builtins.concatStringsSep "," cfg.addressbook.subscriptions} + + ${flip concatMapStrings (collect (proto: proto ? port && proto ? address && proto ? name) cfg.proto) - (proto: let portStr = toString proto.port; in - '' - [${proto.name}] - enabled = ${boolToString proto.enable} - address = ${proto.address} - port = ${toString proto.port} - ${if proto ? keys then "keys = ${proto.keys}" else ""} - ${if proto ? auth then "auth = ${boolToString proto.auth}" else ""} - ${if proto ? user then "user = ${proto.user}" else ""} - ${if proto ? pass then "pass = ${proto.pass}" else ""} - ${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""} - ${if proto ? outproxyPort then "outproxyport = ${toString proto.outproxyPort}" else ""} - '') - } + (proto: let portStr = toString proto.port; in '' + [${proto.name}] + enabled = ${boolToString proto.enable} + address = ${proto.address} + port = ${toString proto.port} + ${if proto ? keys then "keys = ${proto.keys}" else ""} + ${if proto ? auth then "auth = ${boolToString proto.auth}" else ""} + ${if proto ? user then "user = ${proto.user}" else ""} + ${if proto ? pass then "pass = ${proto.pass}" else ""} + ${if proto ? outproxy then "outproxy = ${proto.outproxy}" else ""} + ${if proto ? outproxyPort then "outproxyport = ${toString proto.outproxyPort}" else ""} + '') + } ''; i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" '' - ${flip concatMapStrings - (collect (tun: tun ? port && tun ? destination) cfg.outTunnels) - (tun: let portStr = toString tun.port; in '' - [${tun.name}] - type = client - destination = ${tun.destination} - keys = ${tun.keys} - address = ${tun.address} - port = ${toString tun.port} - inbound.length = ${toString tun.inbound.length} - outbound.length = ${toString tun.outbound.length} - inbound.quantity = ${toString tun.inbound.quantity} - outbound.quantity = ${toString tun.outbound.quantity} - crypto.tagsToSend = ${toString tun.crypto.tagsToSend} - '') - } - ${flip concatMapStrings - (collect (tun: tun ? port && tun ? host) cfg.inTunnels) - (tun: let portStr = toString tun.port; in '' - [${tun.name}] - type = server - destination = ${tun.destination} - keys = ${tun.keys} - host = ${tun.address} - port = ${tun.port} - inport = ${tun.inPort} - accesslist = ${builtins.concatStringsSep "," tun.accessList} - '') - } + # DO NOT EDIT -- this file has been generated automatically. + ${flip concatMapStrings + (collect (tun: tun ? port && tun ? destination) cfg.outTunnels) + (tun: let portStr = toString tun.port; in '' + [${tun.name}] + type = client + destination = ${tun.destination} + keys = ${tun.keys} + address = ${tun.address} + port = ${toString tun.port} + inbound.length = ${toString tun.inbound.length} + outbound.length = ${toString tun.outbound.length} + inbound.quantity = ${toString tun.inbound.quantity} + outbound.quantity = ${toString tun.outbound.quantity} + crypto.tagsToSend = ${toString tun.crypto.tagsToSend} + '') + } + ${flip concatMapStrings + (collect (tun: tun ? port && tun ? host) cfg.inTunnels) + (tun: let portStr = toString tun.port; in '' + [${tun.name}] + type = server + destination = ${tun.destination} + keys = ${tun.keys} + host = ${tun.address} + port = ${tun.port} + inport = ${tun.inPort} + accesslist = ${builtins.concatStringsSep "," tun.accessList} + '') + } ''; i2pdSh = pkgs.writeScriptBin "i2pd" '' #!/bin/sh - ${if isNull cfg.extIp then extip else ""} - ${pkgs.i2pd}/bin/i2pd \ - --host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \ + exec ${pkgs.i2pd}/bin/i2pd \ + ${if isNull cfg.address then "" else "--host="+cfg.address} \ --conf=${i2pdConf} \ --tunconf=${i2pdTunnelConf} ''; @@ -179,11 +179,23 @@ in ''; }; - extIp = mkOption { + logLevel = mkOption { + type = types.enum ["debug" "info" "warn" "error"]; + default = "error"; + description = '' + The log level. i2pd defaults to "info" + but that generates copious amounts of log messages. + + We default to "error" which is similar to the default log + level of tor. + ''; + }; + + address = mkOption { type = with types; nullOr str; default = null; description = '' - Your external IP. + Your external IP or hostname. ''; }; @@ -215,7 +227,8 @@ in type = with types; nullOr int; default = null; description = '' - Set a router bandwidth limit integer in kbps or letters: L (32), O (256), P (2048), X (>9000) + Set a router bandwidth limit integer in KBps. + If not set, i2pd defaults to 32KBps. ''; }; @@ -243,6 +256,14 @@ in ''; }; + nat = mkOption { + type = types.bool; + default = true; + description = '' + Assume router is NATed. Enabled by default. + ''; + }; + upnp = { enable = mkOption { type = types.bool; @@ -263,9 +284,14 @@ in precomputation.elgamal = mkOption { type = types.bool; - default = false; + default = true; description = '' - Use ElGamal precomputated tables. + Whenever to use precomputated tables for ElGamal. + i2pd defaults to false + to save 64M of memory (and looses some performance). + + We default to true as that is what most + users want anyway. ''; }; @@ -355,7 +381,7 @@ in }; }; - proto.httpProxy = mkKeyedEndpointOpt "httpproxy" "127.0.0.1" 4446 ""; + proto.httpProxy = mkKeyedEndpointOpt "httpproxy" "127.0.0.1" 4444 ""; proto.socksProxy = (mkKeyedEndpointOpt "socksproxy" "127.0.0.1" 4447 "") // { outproxy = mkOption { diff --git a/nixos/modules/services/networking/iwd.nix b/nixos/modules/services/networking/iwd.nix new file mode 100644 index 00000000000..23787bce991 --- /dev/null +++ b/nixos/modules/services/networking/iwd.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.networking.wireless.iwd; +in { + options.networking.wireless.iwd.enable = mkEnableOption "iwd"; + + config = mkIf cfg.enable { + assertions = [{ + assertion = !config.networking.wireless.enable; + message = '' + Only one wireless daemon is allowed at the time: networking.wireless.enable and networking.wireless.iwd.enable are mutually exclusive. + ''; + }]; + + # for iwctl + environment.systemPackages = [ pkgs.iwd ]; + + services.dbus.packages = [ pkgs.iwd ]; + + systemd.services.iwd = { + description = "Wireless daemon"; + before = [ "network.target" ]; + wants = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + serviceConfig.ExecStart = "${pkgs.iwd}/bin/iwd"; + }; + }; + + meta.maintainers = with lib.maintainers; [ mic92 ]; +} diff --git a/nixos/modules/services/networking/keybase.nix b/nixos/modules/services/networking/keybase.nix new file mode 100644 index 00000000000..7c7982ee8ea --- /dev/null +++ b/nixos/modules/services/networking/keybase.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.keybase; + +in { + + ###### interface + + options = { + + services.keybase = { + + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to start the Keybase service."; + }; + + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + + systemd.user.services.keybase = { + description = "Keybase service"; + serviceConfig = { + ExecStart = '' + ${pkgs.keybase}/bin/keybase -d service --auto-forked + ''; + Restart = "on-failure"; + PrivateTmp = true; + }; + wantedBy = [ "default.target" ]; + }; + + environment.systemPackages = [ pkgs.keybase ]; + }; +} diff --git a/nixos/modules/services/networking/libreswan.nix b/nixos/modules/services/networking/libreswan.nix index c87e738d2a2..280158b89f6 100644 --- a/nixos/modules/services/networking/libreswan.nix +++ b/nixos/modules/services/networking/libreswan.nix @@ -11,13 +11,13 @@ let trim = chars: str: let nonchars = filter (x : !(elem x.value chars)) - (imap (i: v: {ind = (sub i 1); value = v;}) (stringToCharacters str)); + (imap0 (i: v: {ind = i; value = v;}) (stringToCharacters str)); in if length nonchars == 0 then "" else substring (head nonchars).ind (add 1 (sub (last nonchars).ind (head nonchars).ind)) str; indent = str: concatStrings (concatMap (s: [" " (trim [" " "\t"] s) "\n"]) (splitString "\n" str)); configText = indent (toString cfg.configSetup); - connectionText = concatStrings (mapAttrsToList (n: v: + connectionText = concatStrings (mapAttrsToList (n: v: '' conn ${n} ${indent v} @@ -27,7 +27,7 @@ let '' config setup ${configText} - + ${connectionText} ''; @@ -93,6 +93,9 @@ in "${pkgs.libreswan}" "${pkgs.iproute}" "${pkgs.procps}" + "${pkgs.nssTools}" + "${pkgs.iptables}" + "${pkgs.nettools}" ]; wants = [ "network-online.target" ]; diff --git a/nixos/modules/services/networking/lldpd.nix b/nixos/modules/services/networking/lldpd.nix new file mode 100644 index 00000000000..ba4e1b1542f --- /dev/null +++ b/nixos/modules/services/networking/lldpd.nix @@ -0,0 +1,38 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.lldpd; + +in + +{ + options.services.lldpd = { + enable = mkEnableOption "Link Layer Discovery Protocol Daemon"; + + extraArgs = mkOption { + type = types.listOf types.str; + default = []; + example = [ "-c" "-k" "-I eth0" ]; + description = "List of command line parameters for lldpd"; + }; + }; + + config = mkIf cfg.enable { + users.extraUsers._lldpd = { + description = "lldpd user"; + group = "_lldpd"; + home = "/var/run/lldpd"; + }; + users.extraGroups._lldpd = {}; + + environment.systemPackages = [ pkgs.lldpd ]; + systemd.packages = [ pkgs.lldpd ]; + + systemd.services.lldpd = { + wantedBy = [ "multi-user.target" ]; + environment.LLDPD_OPTIONS = concatStringsSep " " cfg.extraArgs; + }; + }; +} diff --git a/nixos/modules/services/networking/matterbridge.nix b/nixos/modules/services/networking/matterbridge.nix new file mode 100644 index 00000000000..5526e2ba23a --- /dev/null +++ b/nixos/modules/services/networking/matterbridge.nix @@ -0,0 +1,96 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + + cfg = config.services.matterbridge; + + matterbridgeConfToml = pkgs.writeText "matterbridge.toml" (cfg.configFile); + +in + +{ + options = { + services.matterbridge = { + enable = mkEnableOption "Matterbridge chat platform bridge"; + + configFile = mkOption { + type = types.str; + example = '' + #WARNING: as this file contains credentials, be sure to set correct file permissions [irc] + [irc.freenode] + Server="irc.freenode.net:6667" + Nick="matterbot" + + [mattermost] + [mattermost.work] + #do not prefix it wit http:// or https:// + Server="yourmattermostserver.domain" + Team="yourteam" + Login="yourlogin" + Password="yourpass" + PrefixMessagesWithNick=true + + [[gateway]] + name="gateway1" + enable=true + [[gateway.inout]] + account="irc.freenode" + channel="#testing" + + [[gateway.inout]] + account="mattermost.work" + channel="off-topic" + ''; + description = '' + The matterbridge configuration file in the TOML file format. + ''; + }; + user = mkOption { + type = types.str; + default = "matterbridge"; + description = '' + User which runs the matterbridge service. + ''; + }; + + group = mkOption { + type = types.str; + default = "matterbridge"; + description = '' + Group which runs the matterbridge service. + ''; + }; + }; + }; + + config = mkMerge [ + (mkIf cfg.enable { + + users.extraUsers = mkIf (cfg.user == "matterbridge") [ + { name = "matterbridge"; + group = "matterbridge"; + } ]; + + users.extraGroups = mkIf (cfg.group == "matterbridge") [ + { name = "matterbridge"; + } ]; + + systemd.services.matterbridge = { + description = "Matterbridge chat platform bridge"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = "${pkgs.matterbridge.bin}/bin/matterbridge -conf ${matterbridgeConfToml}"; + Restart = "always"; + RestartSec = "10"; + }; + }; + }) + ]; +} + diff --git a/nixos/modules/services/networking/mfi.nix b/nixos/modules/services/networking/mfi.nix deleted file mode 100644 index 775564a2c44..00000000000 --- a/nixos/modules/services/networking/mfi.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ config, lib, pkgs, utils, ... }: -with lib; -let - name = "Ubiquiti mFi Controller"; - cfg = config.services.mfi; - stateDir = "/var/lib/mfi"; - # XXX 2 runtime exceptions using jre8: JSPException on GET / ; can't initialize ./data/keystore on first run. - cmd = "@${pkgs.jre7}/bin/java java -jar ${stateDir}/lib/ace.jar"; - mountPoints = [ - { what = "${pkgs.mfi}/dl"; where = "${stateDir}/dl"; } - { what = "${pkgs.mfi}/lib"; where = "${stateDir}/lib"; } - { what = "${pkgs.mongodb248}/bin"; where = "${stateDir}/bin"; } - { what = "${cfg.dataDir}"; where = "${stateDir}/data"; } - ]; - systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints; - ports = [ 6080 6880 6443 6843 ]; -in -{ - options = { - services.mfi = { - enable = mkEnableOption name; - openPorts = mkOption { - type = types.bool; - default = true; - description = "Whether to open TCP ports ${concatMapStrings (a: "${toString a} ") ports}for the services."; - }; - dataDir = mkOption { - type = types.str; - default = "${stateDir}/data"; - description = '' - Where to store the database and other data. - - This directory will be bind-mounted to ${stateDir}/data as part of the service startup. - ''; - }; - }; - }; - - config = mkIf cfg.enable { - - networking.firewall.allowedTCPPorts = mkIf config.services.mfi.openPorts ports; - - users.users.mfi = { - uid = config.ids.uids.mfi; - description = "mFi controller daemon user"; - home = "${stateDir}"; - }; - - # We must create the binary directories as bind mounts instead of symlinks - # This is because the controller resolves all symlinks to absolute paths - # to be used as the working directory. - systemd.mounts = map ({ what, where }: { - bindsTo = [ "mfi.service" ]; - partOf = [ "mfi.service" ]; - unitConfig.RequiresMountsFor = stateDir; - options = "bind"; - what = what; - where = where; - }) mountPoints; - - systemd.services.mfi = { - description = "mFi controller daemon"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ] ++ systemdMountPoints; - partOf = systemdMountPoints; - bindsTo = systemdMountPoints; - unitConfig.RequiresMountsFor = stateDir; - - preStart = '' - # Clear ./webapps each run. - rm -rf "${stateDir}/webapps" - mkdir -p "${stateDir}/webapps" - ln -s "${pkgs.mfi}/webapps/ROOT.war" "${stateDir}/webapps" - - # Copy initial config only once. - test -e "${stateDir}/conf" || cp -ar "${pkgs.mfi}/conf" "${stateDir}/conf" - test -e "${stateDir}/data" || cp -ar "${pkgs.mfi}/data" "${stateDir}/data" - - # Fix Permissions. - # (Bind-mounts cause errors; ignore exit codes) - chown -fR mfi: "${stateDir}" || true - chmod -fR u=rwX,go= "${stateDir}" || true - ''; - - postStop = '' - rm -rf "${stateDir}/webapps" - ''; - - serviceConfig = { - Type = "simple"; - ExecStart = "${cmd} start"; - ExecStop = "${cmd} stop"; - User = "mfi"; - PermissionsStartOnly = true; - UMask = "0077"; - WorkingDirectory = "${stateDir}"; - }; - }; - }; -} diff --git a/nixos/modules/services/networking/miredo.nix b/nixos/modules/services/networking/miredo.nix index 3d560338e2c..8694d08385c 100644 --- a/nixos/modules/services/networking/miredo.nix +++ b/nixos/modules/services/networking/miredo.nix @@ -20,7 +20,7 @@ in services.miredo = { - enable = mkEnableOption "Whether miredo should be run on startup."; + enable = mkEnableOption "the Miredo IPv6 tunneling service."; package = mkOption { type = types.package; diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix index 5451500b56f..81915b5a2ef 100644 --- a/nixos/modules/services/networking/mosquitto.nix +++ b/nixos/modules/services/networking/mosquitto.nix @@ -125,8 +125,8 @@ in description = '' Specifies the hashed password for the MQTT User. overrides . - To generate hashed password install mkpasswd - package and run mkpasswd -m sha-512. + To generate hashed password install mosquitto + package and use mosquitto_passwd. ''; }; diff --git a/nixos/modules/services/networking/namecoind.nix b/nixos/modules/services/networking/namecoind.nix index 9df9f67cde8..11f7d7e5cae 100644 --- a/nixos/modules/services/networking/namecoind.nix +++ b/nixos/modules/services/networking/namecoind.nix @@ -173,7 +173,7 @@ in serviceConfig = { User = "namecoin"; - Griup = "namecoin"; + Group = "namecoin"; ExecStart = "${pkgs.altcoins.namecoind}/bin/namecoind -conf=${configFile} -datadir=${dataDir} -printtoconsole"; ExecStop = "${pkgs.coreutils}/bin/kill -KILL $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix index 08ba2fdb164..366bb2ed7a8 100644 --- a/nixos/modules/services/networking/nat.nix +++ b/nixos/modules/services/networking/nat.nix @@ -48,7 +48,7 @@ let # NAT from external ports to internal ports. ${concatMapStrings (fwd: '' iptables -w -t nat -A nixos-nat-pre \ - -i ${cfg.externalInterface} -p tcp \ + -i ${cfg.externalInterface} -p ${fwd.proto} \ --dport ${builtins.toString fwd.sourcePort} \ -j DNAT --to-destination ${fwd.destination} '') cfg.forwardPorts} @@ -133,12 +133,19 @@ in destination = mkOption { type = types.str; example = "10.0.0.1:80"; - description = "Forward tcp connection to destination ip:port"; + description = "Forward connection to destination ip:port"; + }; + + proto = mkOption { + type = types.str; + default = "tcp"; + example = "udp"; + description = "Protocol of forwarded connection"; }; }; }); default = []; - example = [ { sourcePort = 8080; destination = "10.0.0.1:80"; } ]; + example = [ { sourcePort = 8080; destination = "10.0.0.1:80"; proto = "tcp"; } ]; description = '' List of forwarded ports from the external interface to @@ -151,38 +158,41 @@ in ###### implementation - config = mkIf config.networking.nat.enable { + config = mkMerge [ + { networking.firewall.extraCommands = mkBefore flushNat; } + (mkIf config.networking.nat.enable { - environment.systemPackages = [ pkgs.iptables ]; + environment.systemPackages = [ pkgs.iptables ]; - boot = { - kernelModules = [ "nf_nat_ftp" ]; - kernel.sysctl = { - "net.ipv4.conf.all.forwarding" = mkOverride 99 true; - "net.ipv4.conf.default.forwarding" = mkOverride 99 true; - }; - }; - - networking.firewall = mkIf config.networking.firewall.enable { - extraCommands = mkMerge [ (mkBefore flushNat) setupNat ]; - extraStopCommands = flushNat; - }; - - systemd.services = mkIf (!config.networking.firewall.enable) { nat = { - description = "Network Address Translation"; - wantedBy = [ "network.target" ]; - after = [ "network-pre.target" "systemd-modules-load.service" ]; - path = [ pkgs.iptables ]; - unitConfig.ConditionCapability = "CAP_NET_ADMIN"; - - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; + boot = { + kernelModules = [ "nf_nat_ftp" ]; + kernel.sysctl = { + "net.ipv4.conf.all.forwarding" = mkOverride 99 true; + "net.ipv4.conf.default.forwarding" = mkOverride 99 true; + }; }; - script = flushNat + setupNat; + networking.firewall = mkIf config.networking.firewall.enable { + extraCommands = setupNat; + extraStopCommands = flushNat; + }; - postStop = flushNat; - }; }; - }; + systemd.services = mkIf (!config.networking.firewall.enable) { nat = { + description = "Network Address Translation"; + wantedBy = [ "network.target" ]; + after = [ "network-pre.target" "systemd-modules-load.service" ]; + path = [ pkgs.iptables ]; + unitConfig.ConditionCapability = "CAP_NET_ADMIN"; + + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + + script = flushNat + setupNat; + + postStop = flushNat; + }; }; + }) + ]; } diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 220107a2411..e03309c8729 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -9,18 +9,24 @@ let # /var/lib/misc is for dnsmasq.leases. stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc"; + dns = + if cfg.useDnsmasq then "dnsmasq" + else if config.services.resolved.enable then "systemd-resolved" + else if config.services.unbound.enable then "unbound" + else "default"; + configFile = writeText "NetworkManager.conf" '' [main] plugins=keyfile + dhcp=${cfg.dhcp} + dns=${dns} [keyfile] - ${optionalString (config.networking.hostName != "") - ''hostname=${config.networking.hostName}''} ${optionalString (cfg.unmanaged != []) ''unmanaged-devices=${lib.concatStringsSep ";" cfg.unmanaged}''} [logging] - level=WARN + level=${cfg.logLevel} [connection] ipv6.ip6-privacy=2 @@ -123,8 +129,9 @@ in { type = types.attrsOf types.package; default = { inherit networkmanager modemmanager wpa_supplicant networkmanager_openvpn networkmanager_vpnc - networkmanager_openconnect - networkmanager_pptp networkmanager_l2tp; }; + networkmanager_openconnect networkmanager_fortisslvpn + networkmanager_pptp networkmanager_l2tp + networkmanager_iodine; }; internal = true; }; @@ -137,6 +144,22 @@ in { apply = list: (attrValues cfg.basePackages) ++ list; }; + dhcp = mkOption { + type = types.enum [ "dhclient" "dhcpcd" "internal" ]; + default = "dhclient"; + description = '' + Which program (or internal library) should be used for DHCP. + ''; + }; + + logLevel = mkOption { + type = types.enum [ "OFF" "ERR" "WARN" "INFO" "DEBUG" "TRACE" ]; + default = "WARN"; + description = '' + Set the default logging verbosity level. + ''; + }; + appendNameservers = mkOption { type = types.listOf types.str; default = []; @@ -158,6 +181,17 @@ in { ethernet.macAddress = macAddressOpt; wifi.macAddress = macAddressOpt; + useDnsmasq = mkOption { + type = types.bool; + default = false; + description = '' + Enable NetworkManager's dnsmasq integration. NetworkManager will run + dnsmasq as a local caching nameserver, using a "split DNS" + configuration if you are connected to a VPN, and then update + resolv.conf to point to the local nameserver. + ''; + }; + dispatcherScripts = mkOption { type = types.listOf (types.submodule { options = { @@ -169,7 +203,7 @@ in { }; type = mkOption { - type = types.enum (attrNames dispatcherTypesSubdirMap); + type = types.enum (attrNames dispatcherTypesSubdirMap); default = "basic"; description = '' Dispatcher hook type. Only basic hooks are currently available. @@ -210,6 +244,9 @@ in { { source = "${networkmanager_openconnect}/etc/NetworkManager/VPN/nm-openconnect-service.name"; target = "NetworkManager/VPN/nm-openconnect-service.name"; } + { source = "${networkmanager_fortisslvpn}/etc/NetworkManager/VPN/nm-fortisslvpn-service.name"; + target = "NetworkManager/VPN/nm-fortisslvpn-service.name"; + } { source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name"; target = "NetworkManager/VPN/nm-pptp-service.name"; } @@ -219,11 +256,14 @@ in { { source = "${networkmanager_strongswan}/etc/NetworkManager/VPN/nm-strongswan-service.name"; target = "NetworkManager/VPN/nm-strongswan-service.name"; } + { source = "${networkmanager_iodine}/etc/NetworkManager/VPN/nm-iodine-service.name"; + target = "NetworkManager/VPN/nm-iodine-service.name"; + } ] ++ optional (cfg.appendNameservers == [] || cfg.insertNameservers == []) { source = overrideNameserversScript; target = "NetworkManager/dispatcher.d/02overridedns"; } - ++ lib.imap (i: s: { + ++ lib.imap1 (i: s: { inherit (s) source; target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}"; }) cfg.dispatcherScripts; @@ -242,6 +282,11 @@ in { name = "nm-openvpn"; uid = config.ids.uids.nm-openvpn; extraGroups = [ "networkmanager" ]; + } + { + name = "nm-iodine"; + isSystemUser = true; + group = "networkmanager"; }]; systemd.packages = cfg.packages; diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix index 481e267f6c3..c8b8ed547eb 100644 --- a/nixos/modules/services/networking/nsd.nix +++ b/nixos/modules/services/networking/nsd.nix @@ -30,6 +30,7 @@ let cd $out/zones for zoneFile in *; do + echo "|- checking zone '$out/zones/$zoneFile'" ${nsdPkg}/sbin/nsd-checkzone "$zoneFile" "$zoneFile" || { if grep -q \\\\\\$ "$zoneFile"; then echo zone "$zoneFile" contains escaped dollar signes \\\$ @@ -810,6 +811,7 @@ in serviceConfig = { ExecStart = "${nsdPkg}/sbin/nsd -d -c ${nsdEnv}/nsd.conf"; + StandardError = "null"; PIDFile = pidFile; Restart = "always"; RestartSec = "4s"; diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix index f9300fdabc5..391f4bdebba 100644 --- a/nixos/modules/services/networking/radicale.nix +++ b/nixos/modules/services/networking/radicale.nix @@ -1,4 +1,4 @@ -{config, lib, pkgs, ...}: +{ config, lib, pkgs, ... }: with lib; @@ -8,17 +8,35 @@ let confFile = pkgs.writeText "radicale.conf" cfg.config; + # This enables us to default to version 2 while still not breaking configurations of people with version 1 + defaultPackage = if versionAtLeast config.system.stateVersion "17.09" then { + pkg = pkgs.radicale2; + text = "pkgs.radicale2"; + } else { + pkg = pkgs.radicale1; + text = "pkgs.radicale1"; + }; in { options = { - services.radicale.enable = mkOption { type = types.bool; default = false; description = '' - Enable Radicale CalDAV and CardDAV server + Enable Radicale CalDAV and CardDAV server. + ''; + }; + + services.radicale.package = mkOption { + type = types.package; + default = defaultPackage.pkg; + defaultText = defaultPackage.text; + description = '' + Radicale package to use. This defaults to version 1.x if + system.stateVersion < 17.09 and version 2.x + otherwise. ''; }; @@ -27,13 +45,19 @@ in default = ""; description = '' Radicale configuration, this will set the service - configuration file + configuration file. ''; - }; + }; + + services.radicale.extraArgs = mkOption { + type = types.listOf types.string; + default = []; + description = "Extra arguments passed to the Radicale daemon."; + }; }; config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.radicale ]; + environment.systemPackages = [ cfg.package ]; users.extraUsers = singleton { name = "radicale"; @@ -52,9 +76,17 @@ in description = "A Simple Calendar and Contact Server"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - script = "${pkgs.radicale}/bin/radicale -C ${confFile} -f"; - serviceConfig.User = "radicale"; - serviceConfig.Group = "radicale"; + serviceConfig = { + ExecStart = concatStringsSep " " ([ + "${cfg.package}/bin/radicale" "-C" confFile + ] ++ ( + map escapeShellArg cfg.extraArgs + )); + User = "radicale"; + Group = "radicale"; + }; }; }; + + meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ]; } diff --git a/nixos/modules/services/networking/resilio.nix b/nixos/modules/services/networking/resilio.nix new file mode 100644 index 00000000000..6d2b7bdbca1 --- /dev/null +++ b/nixos/modules/services/networking/resilio.nix @@ -0,0 +1,268 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.resilio; + + resilioSync = pkgs.resilio-sync; + + sharedFoldersRecord = map (entry: { + secret = entry.secret; + dir = entry.directory; + + use_relay_server = entry.useRelayServer; + use_tracker = entry.useTracker; + use_dht = entry.useDHT; + + search_lan = entry.searchLAN; + use_sync_trash = entry.useSyncTrash; + known_hosts = knownHosts; + }) cfg.sharedFolders; + + configFile = pkgs.writeText "config.json" (builtins.toJSON ({ + device_name = cfg.deviceName; + storage_path = cfg.storagePath; + listening_port = cfg.listeningPort; + use_gui = false; + check_for_updates = cfg.checkForUpdates; + use_upnp = cfg.useUpnp; + download_limit = cfg.downloadLimit; + upload_limit = cfg.uploadLimit; + lan_encrypt_data = cfg.encryptLAN; + } // optionalAttrs cfg.enableWebUI { + webui = { listen = "${cfg.httpListenAddr}:${toString cfg.httpListenPort}"; } // + (optionalAttrs (cfg.httpLogin != "") { login = cfg.httpLogin; }) // + (optionalAttrs (cfg.httpPass != "") { password = cfg.httpPass; }) // + (optionalAttrs (cfg.apiKey != "") { api_key = cfg.apiKey; }) // + (optionalAttrs (cfg.directoryRoot != "") { directory_root = cfg.directoryRoot; }); + } // optionalAttrs (sharedFoldersRecord != []) { + shared_folders = sharedFoldersRecord; + })); + +in +{ + options = { + services.resilio = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, start the Resilio Sync daemon. Once enabled, you can + interact with the service through the Web UI, or configure it in your + NixOS configuration. Enabling the resilio service + also installs a systemd user unit which can be used to start + user-specific copies of the daemon. Once installed, you can use + systemctl --user start resilio as your user to start + the daemon using the configuration file located at + $HOME/.config/resilio-sync/config.json. + ''; + }; + + deviceName = mkOption { + type = types.str; + example = "Voltron"; + default = config.networking.hostName; + description = '' + Name of the Resilio Sync device. + ''; + }; + + listeningPort = mkOption { + type = types.int; + default = 0; + example = 44444; + description = '' + Listening port. Defaults to 0 which randomizes the port. + ''; + }; + + checkForUpdates = mkOption { + type = types.bool; + default = true; + description = '' + Determines whether to check for updates and alert the user + about them in the UI. + ''; + }; + + useUpnp = mkOption { + type = types.bool; + default = true; + description = '' + Use Universal Plug-n-Play (UPnP) + ''; + }; + + downloadLimit = mkOption { + type = types.int; + default = 0; + example = 1024; + description = '' + Download speed limit. 0 is unlimited (default). + ''; + }; + + uploadLimit = mkOption { + type = types.int; + default = 0; + example = 1024; + description = '' + Upload speed limit. 0 is unlimited (default). + ''; + }; + + httpListenAddr = mkOption { + type = types.str; + default = "0.0.0.0"; + example = "1.2.3.4"; + description = '' + HTTP address to bind to. + ''; + }; + + httpListenPort = mkOption { + type = types.int; + default = 9000; + description = '' + HTTP port to bind on. + ''; + }; + + httpLogin = mkOption { + type = types.str; + example = "allyourbase"; + default = ""; + description = '' + HTTP web login username. + ''; + }; + + httpPass = mkOption { + type = types.str; + example = "arebelongtous"; + default = ""; + description = '' + HTTP web login password. + ''; + }; + + encryptLAN = mkOption { + type = types.bool; + default = true; + description = "Encrypt LAN data."; + }; + + enableWebUI = mkOption { + type = types.bool; + default = false; + description = '' + Enable Web UI for administration. Bound to the specified + httpListenAddress and + httpListenPort. + ''; + }; + + storagePath = mkOption { + type = types.path; + default = "/var/lib/resilio-sync/"; + description = '' + Where BitTorrent Sync will store it's database files (containing + things like username info and licenses). Generally, you should not + need to ever change this. + ''; + }; + + apiKey = mkOption { + type = types.str; + default = ""; + description = "API key, which enables the developer API."; + }; + + directoryRoot = mkOption { + type = types.str; + default = ""; + example = "/media"; + description = "Default directory to add folders in the web UI."; + }; + + sharedFolders = mkOption { + default = []; + example = + [ { secret = "AHMYFPCQAHBM7LQPFXQ7WV6Y42IGUXJ5Y"; + directory = "/home/user/sync_test"; + useRelayServer = true; + useTracker = true; + useDHT = false; + searchLAN = true; + useSyncTrash = true; + knownHosts = [ + "192.168.1.2:4444" + "192.168.1.3:4444" + ]; + } + ]; + description = '' + Shared folder list. If enabled, web UI must be + disabled. Secrets can be generated using rslsync + --generate-secret. Note that this secret will be + put inside the Nix store, so it is realistically not very + secret. + + If you would like to be able to modify the contents of this + directories, it is recommended that you make your user a + member of the resilio group. + + Directories in this list should be in the + resilio group, and that group must have + write access to the directory. It is also recommended that + chmod g+s is applied to the directory + so that any sub directories created will also belong to + the resilio group. Also, + setfacl -d -m group:resilio:rwx and + setfacl -m group:resilio:rwx should also + be applied so that the sub directories are writable by + the group. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + assertions = + [ { assertion = cfg.deviceName != ""; + message = "Device name cannot be empty."; + } + { assertion = cfg.enableWebUI -> cfg.sharedFolders == []; + message = "If using shared folders, the web UI cannot be enabled."; + } + { assertion = cfg.apiKey != "" -> cfg.enableWebUI; + message = "If you're using an API key, you must enable the web server."; + } + ]; + + users.extraUsers.rslsync = { + description = "Resilio Sync Service user"; + home = cfg.storagePath; + createHome = true; + uid = config.ids.uids.rslsync; + group = "rslsync"; + }; + + users.extraGroups = [ { name = "rslsync"; } ]; + + systemd.services.resilio = with pkgs; { + description = "Resilio Sync Service"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "local-fs.target" ]; + serviceConfig = { + Restart = "on-abort"; + UMask = "0002"; + User = "rslsync"; + ExecStart = '' + ${resilioSync}/bin/rslsync --nodaemon --config ${configFile} + ''; + }; + }; + }; +} diff --git a/nixos/modules/services/networking/searx.nix b/nixos/modules/services/networking/searx.nix index e0eef9ed96f..c7a128ae212 100644 --- a/nixos/modules/services/networking/searx.nix +++ b/nixos/modules/services/networking/searx.nix @@ -33,8 +33,8 @@ in package = mkOption { type = types.package; - default = pkgs.pythonPackages.searx; - defaultText = "pkgs.pythonPackages.searx"; + default = pkgs.searx; + defaultText = "pkgs.searx"; description = "searx package to use."; }; diff --git a/nixos/modules/services/networking/softether.nix b/nixos/modules/services/networking/softether.nix index 16530078b97..9087b75c29c 100644 --- a/nixos/modules/services/networking/softether.nix +++ b/nixos/modules/services/networking/softether.nix @@ -3,7 +3,6 @@ with lib; let - pkg = pkgs.softether; cfg = config.services.softether; in @@ -17,6 +16,15 @@ in enable = mkEnableOption "SoftEther VPN services"; + package = mkOption { + type = types.package; + default = pkgs.softether; + defaultText = "pkgs.softether"; + description = '' + softether derivation to use. + ''; + }; + vpnserver.enable = mkEnableOption "SoftEther VPN Server"; vpnbridge.enable = mkEnableOption "SoftEther VPN Bridge"; @@ -41,7 +49,7 @@ in dataDir = mkOption { type = types.string; - default = "${pkg.dataDir}"; + default = "${cfg.package.dataDir}"; description = '' Data directory for SoftEther VPN. ''; @@ -57,12 +65,13 @@ in mkMerge [{ environment.systemPackages = [ - (pkgs.lib.overrideDerivation pkg (attrs: { + (pkgs.lib.overrideDerivation cfg.package (attrs: { dataDir = cfg.dataDir; })) ]; systemd.services."softether-init" = { description = "SoftEther VPN services initial task"; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = false; @@ -71,11 +80,11 @@ in for d in vpnserver vpnbridge vpnclient vpncmd; do if ! test -e ${cfg.dataDir}/$d; then ${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d - install -m0600 ${pkg}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2 + install -m0600 ${cfg.package}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2 fi done rm -rf ${cfg.dataDir}/vpncmd/vpncmd - ln -s ${pkg}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd + ln -s ${cfg.package}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd ''; }; } @@ -83,17 +92,17 @@ in (mkIf (cfg.vpnserver.enable) { systemd.services.vpnserver = { description = "SoftEther VPN Server"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnserver start"; - ExecStop = "${pkg}/bin/vpnserver stop"; + ExecStart = "${cfg.package}/bin/vpnserver start"; + ExecStop = "${cfg.package}/bin/vpnserver stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnserver/vpnserver - ln -s ${pkg}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver + ln -s ${cfg.package}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver ''; postStop = '' rm -rf ${cfg.dataDir}/vpnserver/vpnserver @@ -104,17 +113,17 @@ in (mkIf (cfg.vpnbridge.enable) { systemd.services.vpnbridge = { description = "SoftEther VPN Bridge"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnbridge start"; - ExecStop = "${pkg}/bin/vpnbridge stop"; + ExecStart = "${cfg.package}/bin/vpnbridge start"; + ExecStop = "${cfg.package}/bin/vpnbridge stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge - ln -s ${pkg}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge + ln -s ${cfg.package}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge ''; postStop = '' rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge @@ -125,17 +134,17 @@ in (mkIf (cfg.vpnclient.enable) { systemd.services.vpnclient = { description = "SoftEther VPN Client"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnclient start"; - ExecStop = "${pkg}/bin/vpnclient stop"; + ExecStart = "${cfg.package}/bin/vpnclient start"; + ExecStop = "${cfg.package}/bin/vpnclient stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnclient/vpnclient - ln -s ${pkg}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient + ln -s ${cfg.package}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient ''; postStart = '' sleep 1 diff --git a/nixos/modules/services/networking/squid.nix b/nixos/modules/services/networking/squid.nix new file mode 100644 index 00000000000..b220c21b604 --- /dev/null +++ b/nixos/modules/services/networking/squid.nix @@ -0,0 +1,169 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.squid; + + + squidConfig = pkgs.writeText "squid.conf" + (if cfg.configText != null then cfg.configText else + '' + # + # Recommended minimum configuration (3.5): + # + + # Example rule allowing access from your local networks. + # Adapt to list your (internal) IP networks from where browsing + # should be allowed + acl localnet src 10.0.0.0/8 # RFC 1918 possible internal network + acl localnet src 172.16.0.0/12 # RFC 1918 possible internal network + acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network + acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines + acl localnet src fc00::/7 # RFC 4193 local private network range + acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines + + acl SSL_ports port 443 # https + acl Safe_ports port 80 # http + acl Safe_ports port 21 # ftp + acl Safe_ports port 443 # https + acl Safe_ports port 70 # gopher + acl Safe_ports port 210 # wais + acl Safe_ports port 1025-65535 # unregistered ports + acl Safe_ports port 280 # http-mgmt + acl Safe_ports port 488 # gss-http + acl Safe_ports port 591 # filemaker + acl Safe_ports port 777 # multiling http + acl CONNECT method CONNECT + + # + # Recommended minimum Access Permission configuration: + # + # Deny requests to certain unsafe ports + http_access deny !Safe_ports + + # Deny CONNECT to other than secure SSL ports + http_access deny CONNECT !SSL_ports + + # Only allow cachemgr access from localhost + http_access allow localhost manager + http_access deny manager + + # We strongly recommend the following be uncommented to protect innocent + # web applications running on the proxy server who think the only + # one who can access services on "localhost" is a local user + http_access deny to_localhost + + # Application logs to syslog, access and store logs have specific files + cache_log syslog + access_log stdio:/var/log/squid/access.log + cache_store_log stdio:/var/log/squid/store.log + + # Required by systemd service + pid_filename /run/squid.pid + + # Run as user and group squid + cache_effective_user squid squid + + # + # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS + # + ${cfg.extraConfig} + + # Example rule allowing access from your local networks. + # Adapt localnet in the ACL section to list your (internal) IP networks + # from where browsing should be allowed + http_access allow localnet + http_access allow localhost + + # And finally deny all other access to this proxy + http_access deny all + + # Squid normally listens to port 3128 + http_port ${toString cfg.proxyPort} + + # Leave coredumps in the first cache dir + coredump_dir /var/cache/squid + + # + # Add any of your own refresh_pattern entries above these. + # + refresh_pattern ^ftp: 1440 20% 10080 + refresh_pattern ^gopher: 1440 0% 1440 + refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 + refresh_pattern . 0 20% 4320 + ''); + +in + +{ + + options = { + + services.squid = { + + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to run squid web proxy."; + }; + + proxyPort = mkOption { + type = types.int; + default = 3128; + description = "TCP port on which squid will listen."; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Squid configuration. Contents will be added + verbatim to the configuration file. + ''; + }; + + configText = mkOption { + type = types.nullOr types.lines; + default = null; + description = '' + Verbatim contents of squid.conf. If null (default), use the + autogenerated file from NixOS instead. + ''; + }; + + }; + + }; + + config = mkIf cfg.enable { + + users.users.squid = { + isSystemUser = true; + group = "squid"; + home = "/var/cache/squid"; + createHome = true; + }; + + users.groups.squid = {}; + + systemd.services.squid = { + description = "Squid caching web proxy"; + after = [ "network.target" "nss-lookup.target" ]; + wantedBy = [ "multi-user.target"]; + preStart = '' + mkdir -p "/var/log/squid" + chown squid:squid "/var/log/squid" + ''; + serviceConfig = { + Type="forking"; + PIDFile="/run/squid.pid"; + PermissionsStartOnly = true; + ExecStart = "${pkgs.squid}/bin/squid -YCs -f ${squidConfig}"; + }; + }; + + }; + +} \ No newline at end of file diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix index bebf4e145ca..8828429a817 100644 --- a/nixos/modules/services/networking/ssh/sshd.nix +++ b/nixos/modules/services/networking/ssh/sshd.nix @@ -21,6 +21,8 @@ let daemon reads in addition to the the user's authorized_keys file. You can combine the keys and keyFiles options. + Warning: If you are using NixOps then don't use this + option since it will replace the key required for deployment via ssh. ''; }; @@ -101,6 +103,15 @@ in ''; }; + sftpFlags = mkOption { + type = with types; listOf str; + default = []; + example = [ "-f AUTHPRIV" "-l INFO" ]; + description = '' + Commandline flags to add to sftp-server. + ''; + }; + permitRootLogin = mkOption { default = "prohibit-password"; type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"]; @@ -206,7 +217,7 @@ in }; moduliFile = mkOption { - example = "services.openssh.moduliFile = /etc/my-local-ssh-moduli;"; + example = "/etc/my-local-ssh-moduli;"; type = types.path; description = '' Path to moduli file to install in @@ -336,7 +347,7 @@ in ''} ${optionalString cfg.allowSFTP '' - Subsystem sftp ${cfgc.package}/libexec/sftp-server + Subsystem sftp ${cfgc.package}/libexec/sftp-server ${concatStringsSep " " cfg.sftpFlags} ''} PermitRootLogin ${cfg.permitRootLogin} diff --git a/nixos/modules/services/networking/strongswan.nix b/nixos/modules/services/networking/strongswan.nix index 8778b0364f9..3a3f64221c4 100644 --- a/nixos/modules/services/networking/strongswan.nix +++ b/nixos/modules/services/networking/strongswan.nix @@ -32,8 +32,10 @@ let ${caConf} ''; - strongswanConf = {setup, connections, ca, secrets}: toFile "strongswan.conf" '' + strongswanConf = {setup, connections, ca, secrets, managePlugins, enabledPlugins}: toFile "strongswan.conf" '' charon { + ${if managePlugins then "load_modular = no" else ""} + ${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""} plugins { stroke { secrets_file = ${ipsecSecrets secrets} @@ -112,6 +114,25 @@ in file. ''; }; + + managePlugins = mkOption { + type = types.bool; + default = false; + description = '' + If set to true, this option will disable automatic plugin loading and + then tell strongSwan to enable the plugins specified in the + option. + ''; + }; + + enabledPlugins = mkOption { + type = types.listOf types.str; + default = []; + description = '' + A list of additional plugins to enable if + is true. + ''; + }; }; config = with cfg; mkIf enable { @@ -120,9 +141,9 @@ in wantedBy = [ "multi-user.target" ]; path = with pkgs; [ kmod iproute iptables utillinux ]; # XXX Linux wants = [ "keys.target" ]; - after = [ "network.target" "keys.target" ]; + after = [ "network-online.target" "keys.target" ]; environment = { - STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets; }; + STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets managePlugins enabledPlugins; }; }; serviceConfig = { ExecStart = "${pkgs.strongswan}/sbin/ipsec start --nofork"; diff --git a/nixos/modules/services/networking/supplicant.nix b/nixos/modules/services/networking/supplicant.nix index 31d11548f19..dc90a4bcc62 100644 --- a/nixos/modules/services/networking/supplicant.nix +++ b/nixos/modules/services/networking/supplicant.nix @@ -181,18 +181,19 @@ in default = { }; - example = { - "wlan0 wlan1" = { - configFile = "/etc/wpa_supplicant"; - userControlled.group = "network"; - extraConf = '' - ap_scan=1 - p2p_disabled=1 - ''; - extraCmdArgs = "-u -W"; - bridge = "br0"; - }; - }; + example = literalExample '' + { "wlan0 wlan1" = { + configFile = "/etc/wpa_supplicant"; + userControlled.group = "network"; + extraConf = ''' + ap_scan=1 + p2p_disabled=1 + '''; + extraCmdArgs = "-u -W"; + bridge = "br0"; + }; + } + ''; description = '' Interfaces for which to start wpa_supplicant. diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix index 6cb40185274..adb80ea2984 100644 --- a/nixos/modules/services/networking/tinc.nix +++ b/nixos/modules/services/networking/tinc.nix @@ -35,7 +35,8 @@ in description = '' The name of the node which is used as an identifier when communicating with the remote nodes in the mesh. If null then the hostname of the system - is used. + is used to derive a name (note that tinc may replace non-alphanumeric characters in + hostnames by underscores). ''; }; @@ -78,7 +79,15 @@ in default = null; type = types.nullOr types.str; description = '' - The ip adress to bind to. + The ip address to listen on for incoming connections. + ''; + }; + + bindToAddress = mkOption { + default = null; + type = types.nullOr types.str; + description = '' + The ip address to bind to (both listen on and send packets from). ''; }; @@ -122,7 +131,7 @@ in (flip mapAttrsToList cfg.networks (network: data: flip mapAttrs' data.hosts (host: text: nameValuePair ("tinc/${network}/hosts/${host}") - ({ mode = "0444"; inherit text; }) + ({ mode = "0644"; user = "tinc.${network}"; inherit text; }) ) // { "tinc/${network}/tinc.conf" = { mode = "0444"; @@ -130,8 +139,8 @@ in Name = ${if data.name == null then "$HOST" else data.name} DeviceType = ${data.interfaceType} ${optionalString (data.ed25519PrivateKeyFile != null) "Ed25519PrivateKeyFile = ${data.ed25519PrivateKeyFile}"} - ${optionalString (data.listenAddress != null) "BindToAddress = ${data.listenAddress}"} - Device = /dev/net/tun + ${optionalString (data.listenAddress != null) "ListenAddress = ${data.listenAddress}"} + ${optionalString (data.bindToAddress != null) "BindToAddress = ${data.bindToAddress}"} Interface = tinc.${network} ${data.extraConfig} ''; @@ -154,15 +163,21 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; path = [ data.package ]; - restartTriggers = [ config.environment.etc."tinc/${network}/tinc.conf".source ] - ++ mapAttrsToList (host: _ : config.environment.etc."tinc/${network}/hosts/${host}".source) data.hosts; + restartTriggers = + let + drvlist = [ config.environment.etc."tinc/${network}/tinc.conf".source ] + ++ mapAttrsToList (host: _: config.environment.etc."tinc/${network}/hosts/${host}".source) data.hosts; + in # drvlist might be too long to be used directly + [ (builtins.hashString "sha256" (concatMapStrings (d: d.outPath) drvlist)) ]; serviceConfig = { Type = "simple"; - PIDFile = "/run/tinc.${network}.pid"; - Restart = "on-failure"; + Restart = "always"; + RestartSec = "3"; + ExecStart = "${data.package}/bin/tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}"; }; preStart = '' mkdir -p /etc/tinc/${network}/hosts + chown tinc.${network} /etc/tinc/${network}/hosts # Determine how we should generate our keys if type tinc >/dev/null 2>&1; then @@ -178,12 +193,24 @@ in [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tincd -n ${network} -K 4096 fi ''; - script = '' - tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel} - ''; }) ); + environment.systemPackages = let + cli-wrappers = pkgs.stdenv.mkDerivation { + name = "tinc-cli-wrappers"; + buildInputs = [ pkgs.makeWrapper ]; + buildCommand = '' + mkdir -p $out/bin + ${concatStringsSep "\n" (mapAttrsToList (network: data: + optionalString (versionAtLeast data.package.version "1.1pre") '' + makeWrapper ${data.package}/bin/tinc "$out/bin/tinc.${network}" \ + --add-flags "--pidfile=/run/tinc.${network}.pid" + '') cfg.networks)} + ''; + }; + in [ cli-wrappers ]; + users.extraUsers = flip mapAttrs' cfg.networks (network: _: nameValuePair ("tinc.${network}") ({ description = "Tinc daemon user for ${network}"; diff --git a/nixos/modules/services/networking/tinydns.nix b/nixos/modules/services/networking/tinydns.nix new file mode 100644 index 00000000000..184888ef05d --- /dev/null +++ b/nixos/modules/services/networking/tinydns.nix @@ -0,0 +1,54 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + ###### interface + + options = { + services.tinydns = { + enable = mkOption { + default = false; + type = types.bool; + description = "Whether to run the tinydns dns server"; + }; + + data = mkOption { + type = types.lines; + default = ""; + description = "The DNS data to serve, in the format described by tinydns-data(8)"; + }; + + ip = mkOption { + default = "0.0.0.0"; + type = types.str; + description = "IP address on which to listen for connections"; + }; + }; + }; + + ###### implementation + + config = mkIf config.services.tinydns.enable { + environment.systemPackages = [ pkgs.djbdns ]; + + users.extraUsers.tinydns = {}; + + systemd.services.tinydns = { + description = "djbdns tinydns server"; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ daemontools djbdns ]; + preStart = '' + rm -rf /var/lib/tinydns + tinydns-conf tinydns tinydns /var/lib/tinydns ${config.services.tinydns.ip} + cd /var/lib/tinydns/root/ + ln -sf ${pkgs.writeText "tinydns-data" config.services.tinydns.data} data + tinydns-data + ''; + script = '' + cd /var/lib/tinydns + exec ./run + ''; + }; + }; +} diff --git a/nixos/modules/services/networking/tlsdated.nix b/nixos/modules/services/networking/tlsdated.nix deleted file mode 100644 index 757cce28760..00000000000 --- a/nixos/modules/services/networking/tlsdated.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - inherit (pkgs) coreutils tlsdate; - - cfg = config.services.tlsdated; -in - -{ - - ###### interface - - options = { - - services.tlsdated = { - - enable = mkOption { - type = types.bool; - default = false; - description = '' - Enable tlsdated daemon. - ''; - }; - - extraOptions = mkOption { - type = types.string; - default = ""; - description = '' - Additional command line arguments to pass to tlsdated. - ''; - }; - - sources = mkOption { - type = types.listOf (types.submodule { - options = { - host = mkOption { - type = types.string; - description = '' - Remote hostname. - ''; - }; - port = mkOption { - type = types.int; - description = '' - Remote port. - ''; - }; - proxy = mkOption { - type = types.nullOr types.string; - default = null; - description = '' - The proxy argument expects HTTP, SOCKS4A or SOCKS5 formatted as followed: - - http://127.0.0.1:8118 - socks4a://127.0.0.1:9050 - socks5://127.0.0.1:9050 - - The proxy support should not leak DNS requests and is suitable for use with Tor. - ''; - }; - }; - }); - default = [ - { - host = "encrypted.google.com"; - port = 443; - proxy = null; - } - ]; - description = '' - You can list one or more sources to fetch time from. - ''; - }; - - }; - - }; - - ###### implementation - - config = mkIf cfg.enable { - - # Make tools such as tlsdate available in the system path - environment.systemPackages = [ tlsdate ]; - - systemd.services.tlsdated = { - description = "tlsdated daemon"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - # XXX because pkgs.tlsdate is compiled to run as nobody:nogroup, we - # hard-code base-path to /tmp and use PrivateTmp. - ExecStart = "${tlsdate}/bin/tlsdated -f ${pkgs.writeText "tlsdated.confg" '' - base-path /tmp - - ${concatMapStrings (src: '' - source - host ${src.host} - port ${toString src.port} - proxy ${if src.proxy == null then "none" else src.proxy} - end - '') cfg.sources} - ''} ${cfg.extraOptions}"; - PrivateTmp = "yes"; - }; - }; - - }; - -} diff --git a/nixos/modules/services/networking/toxvpn.nix b/nixos/modules/services/networking/toxvpn.nix index 911836fdee4..5e13402d764 100644 --- a/nixos/modules/services/networking/toxvpn.nix +++ b/nixos/modules/services/networking/toxvpn.nix @@ -18,6 +18,13 @@ with lib; default = 33445; description = "udp port for toxcore, port-forward to help with connectivity if you run many nodes behind one NAT"; }; + + auto_add_peers = mkOption { + type = types.listOf types.string; + default = []; + example = ''[ "toxid1" "toxid2" ]''; + description = "peers to automacally connect to on startup"; + }; }; }; @@ -33,8 +40,13 @@ with lib; chown toxvpn /run/toxvpn ''; + path = [ pkgs.toxvpn ]; + + script = '' + exec toxvpn -i ${config.services.toxvpn.localip} -l /run/toxvpn/control -u toxvpn -p ${toString config.services.toxvpn.port} ${lib.concatMapStringsSep " " (x: "-a ${x}") config.services.toxvpn.auto_add_peers} + ''; + serviceConfig = { - ExecStart = "${pkgs.toxvpn}/bin/toxvpn -i ${config.services.toxvpn.localip} -l /run/toxvpn/control -u toxvpn -p ${toString config.services.toxvpn.port}"; KillMode = "process"; Restart = "on-success"; Type = "notify"; @@ -43,6 +55,8 @@ with lib; restartIfChanged = false; # Likely to be used for remote admin }; + environment.systemPackages = [ pkgs.toxvpn ]; + users.extraUsers = { toxvpn = { uid = config.ids.uids.toxvpn; diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix index f3a04d97c98..545ee327d59 100644 --- a/nixos/modules/services/networking/unbound.nix +++ b/nixos/modules/services/networking/unbound.nix @@ -8,9 +8,9 @@ let stateDir = "/var/lib/unbound"; - access = concatMapStrings (x: " access-control: ${x} allow\n") cfg.allowedAccess; + access = concatMapStringsSep "\n " (x: "access-control: ${x} allow") cfg.allowedAccess; - interfaces = concatMapStrings (x: " interface: ${x}\n") cfg.interfaces; + interfaces = concatMapStringsSep "\n " (x: "interface: ${x}") cfg.interfaces; isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1"; @@ -105,7 +105,7 @@ in description = "Unbound recursive Domain Name Server"; after = [ "network.target" ]; before = [ "nss-lookup.target" ]; - wants = [" nss-lookup.target" ]; + wants = [ "nss-lookup.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix index a8cff638d3b..8e5f0bfc070 100644 --- a/nixos/modules/services/networking/unifi.nix +++ b/nixos/modules/services/networking/unifi.nix @@ -3,7 +3,12 @@ with lib; let cfg = config.services.unifi; stateDir = "/var/lib/unifi"; - cmd = "@${pkgs.jre}/bin/java java -jar ${stateDir}/lib/ace.jar"; + cmd = '' + @${pkgs.jre}/bin/java java \ + ${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \ + ${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \ + -jar ${stateDir}/lib/ace.jar + ''; mountPoints = [ { what = "${pkgs.unifi}/dl"; @@ -58,6 +63,26 @@ in ''; }; + services.unifi.initialJavaHeapSize = mkOption { + type = types.nullOr types.int; + default = null; + example = 1024; + description = '' + Set the initial heap size for the JVM in MB. If this option isn't set, the + JVM will decide this value at runtime. + ''; + }; + + services.unifi.maximumJavaHeapSize = mkOption { + type = types.nullOr types.int; + default = null; + example = 4096; + description = '' + Set the maximimum heap size for the JVM in MB. If this option isn't set, the + JVM will decide this value at runtime. + ''; + }; + }; config = mkIf cfg.enable { @@ -121,8 +146,8 @@ in serviceConfig = { Type = "simple"; - ExecStart = "${cmd} start"; - ExecStop = "${cmd} stop"; + ExecStart = "${(removeSuffix "\n" cmd)} start"; + ExecStop = "${(removeSuffix "\n" cmd)} stop"; User = "unifi"; PermissionsStartOnly = true; UMask = "0077"; diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix index 368d89e2e32..eb08e7f90c0 100644 --- a/nixos/modules/services/networking/wireguard.nix +++ b/nixos/modules/services/networking/wireguard.nix @@ -23,19 +23,22 @@ let privateKey = mkOption { example = "yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk="; - type = types.str; - description = "Base64 private key generated by wg genkey."; + type = with types; nullOr str; + default = null; + description = '' + Base64 private key generated by wg genkey. + + Warning: Consider using privateKeyFile instead if you do not + want to store the key in the world-readable Nix store. + ''; }; - presharedKey = mkOption { - default = null; - example = "rVXs/Ni9tu3oDBLS4hOyAUAa1qTWVA3loR8eL20os3I="; + privateKeyFile = mkOption { + example = "/private/wireguard_key"; type = with types; nullOr str; + default = null; description = '' - base64 preshared key generated by wg genpsk. Optional, - and may be omitted. This option adds an additional layer of - symmetric-key cryptography to be mixed into the already existing - public-key cryptography, for post-quantum resistance. + Private key file as generated by wg genkey. ''; }; @@ -76,12 +79,30 @@ let description = "A list of commands called after shutting down the interface."; }; + table = mkOption { + default = "main"; + type = types.str; + description = ''The kernel routing table to add this interface's + associated routes to. Setting this is useful for e.g. policy routing + ("ip rule") or virtual routing and forwarding ("ip vrf"). Both numeric + table IDs and table names (/etc/rt_tables) can be used. Defaults to + "main".''; + }; + peers = mkOption { default = []; description = "Peers linked to the interface."; type = with types; listOf (submodule peerOpts); }; + allowedIPsAsRoutes = mkOption { + example = false; + default = true; + type = types.bool; + description = '' + Determines whether to add allowed IPs as routes or not. + ''; + }; }; }; @@ -98,6 +119,33 @@ let description = "The base64 public key the peer."; }; + presharedKey = mkOption { + default = null; + example = "rVXs/Ni9tu3oDBLS4hOyAUAa1qTWVA3loR8eL20os3I="; + type = with types; nullOr str; + description = '' + Base64 preshared key generated by wg genpsk. Optional, + and may be omitted. This option adds an additional layer of + symmetric-key cryptography to be mixed into the already existing + public-key cryptography, for post-quantum resistance. + + Warning: Consider using presharedKeyFile instead if you do not + want to store the key in the world-readable Nix store. + ''; + }; + + presharedKeyFile = mkOption { + default = null; + example = "/private/wireguard_psk"; + type = with types; nullOr str; + description = '' + File pointing to preshared key as generated by wg pensk. Optional, + and may be omitted. This option adds an additional layer of + symmetric-key cryptography to be mixed into the already existing + public-key cryptography, for post-quantum resistance. + ''; + }; + allowedIPs = mkOption { example = [ "10.192.122.3/32" "10.192.124.1/24" ]; type = with types; listOf str; @@ -134,54 +182,61 @@ let }; - generateConf = name: values: pkgs.writeText "wireguard-${name}.conf" '' - [Interface] - PrivateKey = ${values.privateKey} - ${optionalString (values.presharedKey != null) "PresharedKey = ${values.presharedKey}"} - ${optionalString (values.listenPort != null) "ListenPort = ${toString values.listenPort}"} - - ${concatStringsSep "\n\n" (map (peer: '' - [Peer] - PublicKey = ${peer.publicKey} - ${optionalString (peer.allowedIPs != []) "AllowedIPs = ${concatStringsSep ", " peer.allowedIPs}"} - ${optionalString (peer.endpoint != null) "Endpoint = ${peer.endpoint}"} - ${optionalString (peer.persistentKeepalive != null) "PersistentKeepalive = ${toString peer.persistentKeepalive}"} - '') values.peers)} - ''; - ipCommand = "${pkgs.iproute}/bin/ip"; wgCommand = "${pkgs.wireguard}/bin/wg"; generateUnit = name: values: + # exactly one way to specify the private key must be set + assert (values.privateKey != null) != (values.privateKeyFile != null); + let privKey = if values.privateKeyFile != null then values.privateKeyFile else pkgs.writeText "wg-key" values.privateKey; + in nameValuePair "wireguard-${name}" { description = "WireGuard Tunnel - ${name}"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - ExecStart = lib.flatten([ + ExecStart = flatten([ values.preSetup "-${ipCommand} link del dev ${name}" "${ipCommand} link add dev ${name} type wireguard" - "${wgCommand} setconf ${name} ${generateConf name values}" (map (ip: - ''${ipCommand} address add ${ip} dev ${name}'' + "${ipCommand} address add ${ip} dev ${name}" ) values.ips) + ("${wgCommand} set ${name} private-key ${privKey}" + + optionalString (values.listenPort != null) " listen-port ${toString values.listenPort}") + + (map (peer: + assert (peer.presharedKeyFile == null) || (peer.presharedKey == null); # at most one of the two must be set + let psk = if peer.presharedKey != null then pkgs.writeText "wg-psk" peer.presharedKey else peer.presharedKeyFile; + in + "${wgCommand} set ${name} peer ${peer.publicKey}" + + optionalString (psk != null) " preshared-key ${psk}" + + optionalString (peer.endpoint != null) " endpoint ${peer.endpoint}" + + optionalString (peer.persistentKeepalive != null) " persistent-keepalive ${toString peer.persistentKeepalive}" + + optionalString (peer.allowedIPs != []) " allowed-ips ${concatStringsSep "," peer.allowedIPs}" + ) values.peers) + "${ipCommand} link set up dev ${name}" - (flatten (map (peer: (map (ip: - "${ipCommand} route add ${ip} dev ${name}" - ) peer.allowedIPs)) values.peers)) + (optionals (values.allowedIPsAsRoutes != false) (map (peer: + (map (allowedIP: + "${ipCommand} route replace ${allowedIP} dev ${name} table ${values.table}" + ) peer.allowedIPs) + ) values.peers)) values.postSetup ]); - - ExecStop = [ ''${ipCommand} link del dev "${name}"'' ] ++ values.postShutdown; + ExecStop = flatten([ + "${ipCommand} link del dev ${name}" + values.postShutdown + ]); }; }; diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index c91ba91fcb4..908c8730ad2 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -148,6 +148,7 @@ in { wants = [ "network.target" ]; requires = lib.concatMap deviceUnit ifaces; wantedBy = [ "multi-user.target" ]; + stopIfChanged = false; path = [ pkgs.wpa_supplicant ]; diff --git a/nixos/modules/services/networking/xrdp.nix b/nixos/modules/services/networking/xrdp.nix new file mode 100644 index 00000000000..bf23c6ae619 --- /dev/null +++ b/nixos/modules/services/networking/xrdp.nix @@ -0,0 +1,160 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xrdp; + confDir = pkgs.runCommand "xrdp.conf" { } '' + mkdir $out + + cp ${cfg.package}/etc/xrdp/{km-*,xrdp,sesman,xrdp_keyboard}.ini $out + + cat > $out/startwm.sh < + # xrdp can run X11 program even if "services.xserver.enable = false" + environment.pathsToLink = + [ "/etc/xdg" "/share/xdg" "/share/applications" "/share/icons" "/share/pixmaps" ]; + + systemd = { + services.xrdp = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + description = "xrdp daemon"; + requires = [ "xrdp-sesman.service" ]; + preStart = '' + # prepare directory for unix sockets (the sockets will be owned by loggedinuser:xrdp) + mkdir -p /tmp/.xrdp || true + chown xrdp:xrdp /tmp/.xrdp + chmod 3777 /tmp/.xrdp + + # generate a self-signed certificate + if [ ! -s ${cfg.sslCert} -o ! -s ${cfg.sslKey} ]; then + mkdir -p $(dirname ${cfg.sslCert}) || true + mkdir -p $(dirname ${cfg.sslKey}) || true + ${pkgs.openssl.bin}/bin/openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 365 \ + -subj /C=US/ST=CA/L=Sunnyvale/O=xrdp/CN=www.xrdp.org \ + -config ${cfg.package}/share/xrdp/openssl.conf \ + -keyout ${cfg.sslKey} -out ${cfg.sslCert} + chown root:xrdp ${cfg.sslKey} ${cfg.sslCert} + chmod 440 ${cfg.sslKey} ${cfg.sslCert} + fi + if [ ! -s /var/run/xrdp/rsakeys.ini ]; then + mkdir -p /var/run/xrdp + ${cfg.package}/bin/xrdp-keygen xrdp /var/run/xrdp/rsakeys.ini + fi + ''; + serviceConfig = { + User = "xrdp"; + Group = "xrdp"; + PermissionsStartOnly = true; + ExecStart = "${cfg.package}/bin/xrdp --nodaemon --port ${toString cfg.port} --config ${confDir}/xrdp.ini"; + }; + }; + + services.xrdp-sesman = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + description = "xrdp session manager"; + restartIfChanged = false; # do not restart on "nixos-rebuild switch". like "display-manager", it can have many interactive programs as children + serviceConfig = { + ExecStart = "${cfg.package}/bin/xrdp-sesman --nodaemon --config ${confDir}/sesman.ini"; + ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID"; + }; + }; + + }; + + users.users.xrdp = { + description = "xrdp daemon user"; + isSystemUser = true; + group = "xrdp"; + }; + users.groups.xrdp = {}; + + security.pam.services.xrdp-sesman = { allowNullPassword = true; startSession = true; }; + }; + +} diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix index 1c63d800e26..72313ab2ee1 100644 --- a/nixos/modules/services/networking/znc.nix +++ b/nixos/modules/services/networking/znc.nix @@ -37,7 +37,7 @@ let IPv6 = true SSL = ${boolToString confOpts.useSSL} - + ${confOpts.passBlock} Admin = true @@ -50,9 +50,13 @@ let ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (name: net: '' ${concatMapStrings (m: "LoadModule = ${m}\n") net.modules} - Server = ${net.server} ${if net.useSSL then "+" else ""}${toString net.port} - + Server = ${net.server} ${lib.optionalString net.useSSL "+"}${toString net.port} ${net.password} ${concatMapStrings (c: "\n\n") net.channels} + ${lib.optionalString net.hasBitlbeeControlChannel '' + + + ''} + ${net.extraConf} '') confOpts.networks) } @@ -85,6 +89,23 @@ let ''; }; + userName = mkOption { + default = ""; + example = "johntron"; + type = types.string; + description = '' + A nick identity specific to the IRC server. + ''; + }; + + password = mkOption { + type = types.str; + default = ""; + description = '' + IRC server password, such as for a Slack gateway. + ''; + }; + useSSL = mkOption { type = types.bool; default = true; @@ -119,6 +140,31 @@ let IRC channels to join. ''; }; + + hasBitlbeeControlChannel = mkOption { + type = types.bool; + default = false; + description = '' + Whether to add the special Bitlbee operations channel. + ''; + }; + + extraConf = mkOption { + default = ""; + type = types.lines; + example = '' + Encoding = ^UTF-8 + FloodBurst = 4 + FloodRate = 1.00 + IRCConnectEnabled = true + Ident = johntron + JoinDelay = 0 + Nick = johntron + ''; + description = '' + Extra config for the network. + ''; + }; }; }; @@ -166,6 +212,14 @@ in ''; }; + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Whether to open ports in the firewall for ZNC. + ''; + }; + zncConf = mkOption { default = ""; example = "See: http://wiki.znc.in/Configuration"; @@ -215,7 +269,7 @@ in "freenode" = { server = "chat.freenode.net"; port = 6697; - ssl = true; + useSSL = true; modules = [ "simple_away" ]; }; }; @@ -234,7 +288,7 @@ in example = defaultPassBlock; type = types.string; description = '' - Generate with znc --makepass. + Generate with `nix-shell -p znc --command "znc --makepass"`. This is the password used to log in to the ZNC web admin interface. ''; }; @@ -273,21 +327,21 @@ in A list of global znc module packages to add to znc. ''; }; - + mutable = mkOption { - default = false; + default = true; type = types.bool; description = '' Indicates whether to allow the contents of the `dataDir` directory to be changed by the user at run-time. - If true, modifications to the ZNC configuration after its initial creation are not + If true, modifications to the ZNC configuration after its initial creation are not overwritten by a NixOS system rebuild. If false, the ZNC configuration is rebuilt by every system rebuild. If the user wants to manage the ZNC service using the web admin interface, this value should be set to true. ''; }; - + extraFlags = mkOption { default = [ ]; example = [ "--debug" ]; @@ -304,6 +358,10 @@ in config = mkIf cfg.enable { + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.confOptions.port ]; + }; + systemd.services.znc = { description = "ZNC Server"; wantedBy = [ "multi-user.target" ]; @@ -334,7 +392,7 @@ in if [[ ! -f ${cfg.dataDir}/znc.pem ]]; then ${pkgs.coreutils}/bin/echo "No znc.pem file found in ${cfg.dataDir}. Creating one now." - ${pkgs.znc}/bin/znc --makepem --datadir ${cfg.dataDir} + ${pkgs.znc}/bin/znc --makepem --datadir ${cfg.dataDir} fi # Symlink modules @@ -352,7 +410,7 @@ in home = cfg.dataDir; createHome = true; }; - + users.extraGroups = optional (cfg.user == defaultUser) { name = defaultUser; gid = config.ids.gids.znc; diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix index 7ce2ae38fb3..4c7f58d1d8b 100644 --- a/nixos/modules/services/printing/cupsd.nix +++ b/nixos/modules/services/printing/cupsd.nix @@ -4,7 +4,7 @@ with lib; let - inherit (pkgs) cups cups-pk-helper cups-filters gutenprint; + inherit (pkgs) cups cups-pk-helper cups-filters; cfg = config.services.printing; @@ -35,9 +35,8 @@ let name = "cups-progs"; paths = [ cups.out additionalBackends cups-filters pkgs.ghostscript ] - ++ optional cfg.gutenprint gutenprint ++ cfg.drivers; - pathsToLink = [ "/lib/cups" "/share/cups" "/bin" ]; + pathsToLink = [ "/lib" "/share/cups" "/bin" ]; postBuild = cfg.bindirCmds; ignoreCollisions = true; }; @@ -97,12 +96,15 @@ let (writeConf "client.conf" cfg.clientConf) (writeConf "snmp.conf" cfg.snmpConf) ] ++ optional avahiEnabled browsedFile - ++ optional cfg.gutenprint gutenprint ++ cfg.drivers; pathsToLink = [ "/etc/cups" ]; ignoreCollisions = true; }; + filterGutenprint = pkgs: filter (pkg: pkg.meta.isGutenprint or false == true) pkgs; + containsGutenprint = pkgs: length (filterGutenprint pkgs) > 0; + getGutenprint = pkgs: head (filterGutenprint pkgs); + in { @@ -224,23 +226,17 @@ in ''; }; - gutenprint = mkOption { - type = types.bool; - default = false; - description = '' - Whether to enable Gutenprint drivers for CUPS. This includes auto-updating - Gutenprint PPD files. - ''; - }; - drivers = mkOption { type = types.listOf types.path; default = []; - example = literalExample "[ pkgs.splix ]"; + example = literalExample "[ pkgs.gutenprint pkgs.hplip pkgs.splix ]"; description = '' - CUPS drivers to use. Drivers provided by CUPS, cups-filters, Ghostscript - and Samba are added unconditionally. For adding Gutenprint, see - gutenprint. + CUPS drivers to use. Drivers provided by CUPS, cups-filters, + Ghostscript and Samba are added unconditionally. If this list contains + Gutenprint (i.e. a derivation with + meta.isGutenprint = true) the PPD files in + /var/lib/cups/ppd will be updated automatically + to avoid errors due to incompatible versions. ''; }; @@ -318,12 +314,14 @@ in [ ! -e /var/lib/cups/path ] && \ ln -s ${bindir} /var/lib/cups/path - ${optionalString cfg.gutenprint '' + ${optionalString (containsGutenprint cfg.drivers) '' if [ -d /var/lib/cups/ppd ]; then - ${gutenprint}/bin/cups-genppdupdate -p /var/lib/cups/ppd + ${getGutenprint cfg.drivers}/bin/cups-genppdupdate -p /var/lib/cups/ppd fi ''} ''; + + serviceConfig.PrivateTmp = true; }; systemd.services.cups-browsed = mkIf avahiEnabled diff --git a/nixos/modules/services/scheduling/atd.nix b/nixos/modules/services/scheduling/atd.nix index 0216c9771c9..77a3f6b51e8 100644 --- a/nixos/modules/services/scheduling/atd.nix +++ b/nixos/modules/services/scheduling/atd.nix @@ -42,6 +42,8 @@ in config = mkIf cfg.enable { + # Not wrapping "batch" because it's a shell script (kernel drops perms + # anyway) and it's patched to invoke the "at" setuid wrapper. security.wrappers = builtins.listToAttrs ( map (program: { name = "${program}"; value = { source = "${at}/bin/${program}"; @@ -49,7 +51,7 @@ in group = "atd"; setuid = true; setgid = true; - };}) [ "at" "atq" "atrm" "batch" ]); + };}) [ "at" "atq" "atrm" ]); environment.systemPackages = [ at ]; diff --git a/nixos/modules/services/scheduling/cron.nix b/nixos/modules/services/scheduling/cron.nix index 7b1a1599e14..6f6977b38a1 100644 --- a/nixos/modules/services/scheduling/cron.nix +++ b/nixos/modules/services/scheduling/cron.nix @@ -122,7 +122,7 @@ in fi ''; - restartTriggers = [ config.environment.etc.localtime.source ]; + restartTriggers = [ config.time.timeZone ]; serviceConfig.ExecStart = "${cronNixosPkg}/bin/cron -n"; }; diff --git a/nixos/modules/services/scheduling/fcron.nix b/nixos/modules/services/scheduling/fcron.nix index af4f9f41fd0..ac589be5773 100644 --- a/nixos/modules/services/scheduling/fcron.nix +++ b/nixos/modules/services/scheduling/fcron.nix @@ -137,10 +137,7 @@ in after = [ "local-fs.target" ]; wantedBy = [ "multi-user.target" ]; - # FIXME use specific path - environment = { - PATH = "/run/current-system/sw/bin"; - }; + path = [ pkgs.fcron ]; preStart = '' install \ @@ -149,7 +146,7 @@ in --group fcron \ --directory /var/spool/fcron # load system crontab file - /run/wrappers/bin/fcrontab -u systab ${pkgs.writeText "systab" cfg.systab} + /run/wrappers/bin/fcrontab -u systab - < ${pkgs.writeText "systab" cfg.systab} ''; serviceConfig = { diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix index 574f74d547a..c51dd5d9465 100644 --- a/nixos/modules/services/search/elasticsearch.nix +++ b/nixos/modules/services/search/elasticsearch.nix @@ -5,13 +5,22 @@ with lib; let cfg = config.services.elasticsearch; + es5 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "5" >= 0; + esConfig = '' network.host: ${cfg.listenAddress} - network.port: ${toString cfg.port} - network.tcp.port: ${toString cfg.tcp_port} - # TODO: find a way to enable security manager - security.manager.enabled: false cluster.name: ${cfg.cluster_name} + + ${if es5 then '' + http.port: ${toString cfg.port} + transport.tcp.port: ${toString cfg.tcp_port} + '' else '' + network.port: ${toString cfg.port} + network.tcp.port: ${toString cfg.tcp_port} + # TODO: find a way to enable security manager + security.manager.enabled: false + ''} + ${cfg.extraConf} ''; @@ -19,13 +28,18 @@ let name = "elasticsearch-config"; paths = [ (pkgs.writeTextDir "elasticsearch.yml" esConfig) - (pkgs.writeTextDir "logging.yml" cfg.logging) + (if es5 then (pkgs.writeTextDir "log4j2.properties" cfg.logging) + else (pkgs.writeTextDir "logging.yml" cfg.logging)) ]; + # Elasticsearch 5.x won't start when the scripts directory does not exist + postBuild = if es5 then "${pkgs.coreutils}/bin/mkdir -p $out/scripts" else ""; }; esPlugins = pkgs.buildEnv { name = "elasticsearch-plugins"; paths = cfg.plugins; + # Elasticsearch 5.x won't start when the plugins directory does not exist + postBuild = if es5 then "${pkgs.coreutils}/bin/mkdir -p $out/plugins" else ""; }; in { @@ -85,18 +99,30 @@ in { logging = mkOption { description = "Elasticsearch logging configuration."; - default = '' - rootLogger: INFO, console - logger: - action: INFO - com.amazonaws: WARN - appender: - console: - type: console - layout: - type: consolePattern - conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n" - ''; + default = + if es5 then '' + logger.action.name = org.elasticsearch.action + logger.action.level = info + + appender.console.type = Console + appender.console.name = console + appender.console.layout.type = PatternLayout + appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n + + rootLogger.level = info + rootLogger.appenderRef.console.ref = console + '' else '' + rootLogger: INFO, console + logger: + action: INFO + com.amazonaws: WARN + appender: + console: + type: console + layout: + type: consolePattern + conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n" + ''; type = types.str; }; @@ -112,6 +138,12 @@ in { description = "Extra command line options for the elasticsearch launcher."; default = []; type = types.listOf types.str; + }; + + extraJavaOptions = mkOption { + description = "Extra command line options for Java."; + default = []; + type = types.listOf types.str; example = [ "-Djava.net.preferIPv4Stack=true" ]; }; @@ -133,13 +165,23 @@ in { path = [ pkgs.inetutils ]; environment = { ES_HOME = cfg.dataDir; + ES_JAVA_OPTS = toString ([ "-Des.path.conf=${configDir}" ] ++ cfg.extraJavaOptions); }; serviceConfig = { - ExecStart = "${cfg.package}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}"; + ExecStart = "${cfg.package}/bin/elasticsearch ${toString cfg.extraCmdLineOptions}"; User = "elasticsearch"; PermissionsStartOnly = true; + LimitNOFILE = "1024000"; }; preStart = '' + ${optionalString (!config.boot.isContainer) '' + # Only set vm.max_map_count if lower than ES required minimum + # This avoids conflict if configured via boot.kernel.sysctl + if [ `${pkgs.procps}/bin/sysctl -n vm.max_map_count` -lt 262144 ]; then + ${pkgs.procps}/bin/sysctl -w vm.max_map_count=262144 + fi + ''} + mkdir -m 0700 -p ${cfg.dataDir} # Install plugins @@ -148,11 +190,6 @@ in { ln -sfT ${cfg.package}/modules ${cfg.dataDir}/modules if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi ''; - postStart = mkBefore '' - until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do - sleep 1 - done - ''; }; environment.systemPackages = [ cfg.package ]; diff --git a/nixos/modules/services/search/kibana.nix b/nixos/modules/services/search/kibana.nix index d377a6feeb8..9d7d2d79918 100644 --- a/nixos/modules/services/search/kibana.nix +++ b/nixos/modules/services/search/kibana.nix @@ -5,7 +5,11 @@ with lib; let cfg = config.services.kibana; - cfgFile = pkgs.writeText "kibana.json" (builtins.toJSON ( + atLeast54 = versionAtLeast (builtins.parseDrvName cfg.package.name).version "5.4"; + + cfgFile = if atLeast54 then cfgFile5 else cfgFile4; + + cfgFile4 = pkgs.writeText "kibana.json" (builtins.toJSON ( (filterAttrsRecursive (n: v: v != null) ({ host = cfg.listenAddress; port = cfg.port; @@ -36,6 +40,27 @@ let ]; } // cfg.extraConf) ))); + + cfgFile5 = pkgs.writeText "kibana.json" (builtins.toJSON ( + (filterAttrsRecursive (n: v: v != null) ({ + server.host = cfg.listenAddress; + server.port = cfg.port; + server.ssl.certificate = cfg.cert; + server.ssl.key = cfg.key; + + kibana.index = cfg.index; + kibana.defaultAppId = cfg.defaultAppId; + + elasticsearch.url = cfg.elasticsearch.url; + elasticsearch.username = cfg.elasticsearch.username; + elasticsearch.password = cfg.elasticsearch.password; + + elasticsearch.ssl.certificate = cfg.elasticsearch.cert; + elasticsearch.ssl.key = cfg.elasticsearch.key; + elasticsearch.ssl.certificateAuthorities = cfg.elasticsearch.certificateAuthorities; + } // cfg.extraConf) + ))); + in { options.services.kibana = { enable = mkEnableOption "enable kibana service"; @@ -96,11 +121,29 @@ in { }; ca = mkOption { - description = "CA file to auth against elasticsearch."; + description = '' + CA file to auth against elasticsearch. + + It's recommended to use the option + when using kibana-5.4 or newer. + ''; default = null; type = types.nullOr types.path; }; + certificateAuthorities = mkOption { + description = '' + CA files to auth against elasticsearch. + + Please use the option when using kibana < 5.4 + because those old versions don't support setting multiple CA's. + + This defaults to the singleton list [ca] when the option is defined. + ''; + default = if isNull cfg.elasticsearch.ca then [] else [ca]; + type = types.listOf types.path; + }; + cert = mkOption { description = "Certificate file to auth against elasticsearch."; default = null; @@ -118,6 +161,7 @@ in { description = "Kibana package to use"; default = pkgs.kibana; defaultText = "pkgs.kibana"; + example = "pkgs.kibana5"; type = types.package; }; diff --git a/nixos/modules/services/security/frandom.nix b/nixos/modules/services/security/frandom.nix deleted file mode 100644 index 2d43d12e541..00000000000 --- a/nixos/modules/services/security/frandom.nix +++ /dev/null @@ -1,31 +0,0 @@ -{lib, config, ...}: - -let kernel = config.boot.kernelPackages; -in - -{ - - ###### interface - - options = { - - services.frandom.enable = lib.mkOption { - default = false; - type = lib.types.bool; - description = '' - enable the /dev/frandom device (a very fast random number generator) - ''; - }; - - }; - - - ###### implementation - - config = lib.mkIf config.services.frandom.enable { - boot.kernelModules = [ "frandom" ]; - boot.extraModulePackages = [ kernel.frandom ]; - services.udev.packages = [ kernel.frandom ]; - }; - -} diff --git a/nixos/modules/services/security/hologram-agent.nix b/nixos/modules/services/security/hologram-agent.nix index 49b5c935267..6c53a2df630 100644 --- a/nixos/modules/services/security/hologram-agent.nix +++ b/nixos/modules/services/security/hologram-agent.nix @@ -33,6 +33,8 @@ in { }; config = mkIf cfg.enable { + boot.kernelModules = [ "dummy" ]; + networking.interfaces.dummy0 = { ipAddress = "169.254.169.254"; prefixLength = 32; diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix index e292fd9851e..ef48d52e7a9 100644 --- a/nixos/modules/services/security/oauth2_proxy.nix +++ b/nixos/modules/services/security/oauth2_proxy.nix @@ -21,21 +21,20 @@ let ''; github = cfg: '' - $(optionalString (!isNull cfg.github.org) "--github-org=${cfg.github.org}") \ - $(optionalString (!isNull cfg.github.team) "--github-org=${cfg.github.team}") \ + ${optionalString (!isNull cfg.github.org) "--github-org=${cfg.github.org}"} \ + ${optionalString (!isNull cfg.github.team) "--github-org=${cfg.github.team}"} \ ''; google = cfg: '' --google-admin-email=${cfg.google.adminEmail} \ --google-service-account=${cfg.google.serviceAccountJSON} \ - $(repeatedArgs (group: "--google-group=${group}") cfg.google.groups) \ + ${repeatedArgs (group: "--google-group=${group}") cfg.google.groups} \ ''; }; authenticatedEmailsFile = pkgs.writeText "authenticated-emails" cfg.email.addresses; - getProviderOptions = cfg: provider: - if providerSpecificOptions ? provider then providerSpecificOptions.provider cfg else ""; + getProviderOptions = cfg: provider: providerSpecificOptions.${provider} or (_: "") cfg; mkCommandLine = cfg: '' --provider='${cfg.provider}' \ @@ -386,7 +385,7 @@ in httpAddress = mkOption { type = types.str; - default = "127.0.0.1:4180"; + default = "http://127.0.0.1:4180"; description = '' HTTPS listening address. This module does not expose the port by default. If you want this URL to be accessible to other machines, please diff --git a/nixos/modules/services/security/physlock.nix b/nixos/modules/services/security/physlock.nix index 0881483967c..30224d7fc6b 100644 --- a/nixos/modules/services/security/physlock.nix +++ b/nixos/modules/services/security/physlock.nix @@ -99,6 +99,8 @@ in ''; }; + security.pam.services.physlock = {}; + }; } diff --git a/nixos/modules/services/security/shibboleth-sp.nix b/nixos/modules/services/security/shibboleth-sp.nix new file mode 100644 index 00000000000..5908f727d53 --- /dev/null +++ b/nixos/modules/services/security/shibboleth-sp.nix @@ -0,0 +1,75 @@ +{pkgs, config, lib, ...}: + +with lib; +let + cfg = config.services.shibboleth-sp; +in { + options = { + services.shibboleth-sp = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to enable the shibboleth service"; + }; + + configFile = mkOption { + type = types.path; + example = "${pkgs.shibboleth-sp}/etc/shibboleth/shibboleth2.xml"; + description = "Path to shibboleth config file"; + }; + + fastcgi.enable = mkOption { + type = types.bool; + default = false; + description = "Whether to include the shibauthorizer and shibresponder FastCGI processes"; + }; + + fastcgi.shibAuthorizerPort = mkOption { + type = types.int; + default = 9100; + description = "Port for shibauthorizer FastCGI proccess to bind to"; + }; + + fastcgi.shibResponderPort = mkOption { + type = types.int; + default = 9101; + description = "Port for shibauthorizer FastCGI proccess to bind to"; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.shibboleth-sp = { + description = "Provides SSO and federation for web applications"; + after = lib.optionals cfg.fastcgi.enable [ "shibresponder.service" "shibauthorizer.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.shibboleth-sp}/bin/shibd -F -d ${pkgs.shibboleth-sp} -c ${cfg.configFile}"; + }; + }; + + systemd.services.shibresponder = mkIf cfg.fastcgi.enable { + description = "Provides SSO through Shibboleth via FastCGI"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + path = [ "${pkgs.spawn_fcgi}" ]; + environment.SHIBSP_CONFIG = "${cfg.configFile}"; + serviceConfig = { + ExecStart = "${pkgs.spawn_fcgi}/bin/spawn-fcgi -n -p ${toString cfg.fastcgi.shibResponderPort} ${pkgs.shibboleth-sp}/lib/shibboleth/shibresponder"; + }; + }; + + systemd.services.shibauthorizer = mkIf cfg.fastcgi.enable { + description = "Provides SSO through Shibboleth via FastCGI"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + path = [ "${pkgs.spawn_fcgi}" ]; + environment.SHIBSP_CONFIG = "${cfg.configFile}"; + serviceConfig = { + ExecStart = "${pkgs.spawn_fcgi}/bin/spawn-fcgi -n -p ${toString cfg.fastcgi.shibAuthorizerPort} ${pkgs.shibboleth-sp}/lib/shibboleth/shibauthorizer"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ jammerful ]; +} diff --git a/nixos/modules/services/security/sks.nix b/nixos/modules/services/security/sks.nix new file mode 100644 index 00000000000..62308428f32 --- /dev/null +++ b/nixos/modules/services/security/sks.nix @@ -0,0 +1,82 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.sks; + + sksPkg = cfg.package; + +in + +{ + + options = { + + services.sks = { + + enable = mkEnableOption "sks"; + + package = mkOption { + default = pkgs.sks; + defaultText = "pkgs.sks"; + type = types.package; + description = " + Which sks derivation to use. + "; + }; + + hkpAddress = mkOption { + default = [ "127.0.0.1" "::1" ]; + type = types.listOf types.str; + description = " + Wich ip addresses the sks-keyserver is listening on. + "; + }; + + hkpPort = mkOption { + default = 11371; + type = types.int; + description = " + Which port the sks-keyserver is listening on. + "; + }; + }; + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ sksPkg ]; + + users.users.sks = { + createHome = true; + home = "/var/db/sks"; + isSystemUser = true; + shell = "${pkgs.coreutils}/bin/true"; + }; + + systemd.services = let + hkpAddress = "'" + (builtins.concatStringsSep " " cfg.hkpAddress) + "'" ; + hkpPort = builtins.toString cfg.hkpPort; + home = config.users.users.sks.home; + user = config.users.users.sks.name; + in { + sks-keyserver = { + wantedBy = [ "multi-user.target" ]; + preStart = '' + mkdir -p ${home}/dump + ${pkgs.sks}/bin/sks build ${home}/dump/*.gpg -n 10 -cache 100 || true #*/ + ${pkgs.sks}/bin/sks cleandb || true + ${pkgs.sks}/bin/sks pbuild -cache 20 -ptree_cache 70 || true + ''; + serviceConfig = { + WorkingDirectory = home; + User = user; + Restart = "always"; + ExecStart = "${pkgs.sks}/bin/sks db -hkp_address ${hkpAddress} -hkp_port ${hkpPort}"; + }; + }; + }; + }; +} diff --git a/nixos/modules/services/security/sshguard.nix b/nixos/modules/services/security/sshguard.nix new file mode 100644 index 00000000000..7f09e8893c4 --- /dev/null +++ b/nixos/modules/services/security/sshguard.nix @@ -0,0 +1,140 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.sshguard; +in { + + ###### interface + + options = { + + services.sshguard = { + enable = mkOption { + default = false; + type = types.bool; + description = "Whether to enable the sshguard service."; + }; + + attack_threshold = mkOption { + default = 30; + type = types.int; + description = '' + Block attackers when their cumulative attack score exceeds threshold. Most attacks have a score of 10. + ''; + }; + + blacklist_threshold = mkOption { + default = null; + example = 120; + type = types.nullOr types.int; + description = '' + Blacklist an attacker when its score exceeds threshold. Blacklisted addresses are loaded from and added to blacklist-file. + ''; + }; + + blacklist_file = mkOption { + default = "/var/lib/sshguard/blacklist.db"; + type = types.path; + description = '' + Blacklist an attacker when its score exceeds threshold. Blacklisted addresses are loaded from and added to blacklist-file. + ''; + }; + + blocktime = mkOption { + default = 120; + type = types.int; + description = '' + Block attackers for initially blocktime seconds after exceeding threshold. Subsequent blocks increase by a factor of 1.5. + + sshguard unblocks attacks at random intervals, so actual block times will be longer. + ''; + }; + + detection_time = mkOption { + default = 1800; + type = types.int; + description = '' + Remember potential attackers for up to detection_time seconds before resetting their score. + ''; + }; + + whitelist = mkOption { + default = [ ]; + example = [ "198.51.100.56" "198.51.100.2" ]; + type = types.listOf types.str; + description = '' + Whitelist a list of addresses, hostnames, or address blocks. + ''; + }; + + services = mkOption { + default = [ "sshd" ]; + example = [ "sshd" "exim" ]; + type = types.listOf types.str; + description = '' + Systemd services sshguard should receive logs of. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.sshguard pkgs.iptables pkgs.ipset ]; + + environment.etc."sshguard.conf".text = let + list_services = ( name: "-t ${name} "); + in '' + BACKEND="${pkgs.sshguard}/libexec/sshg-fw-ipset" + LOGREADER="LANG=C ${pkgs.systemd}/bin/journalctl -afb -p info -n1 ${toString (map list_services cfg.services)} -o cat" + ''; + + systemd.services.sshguard = + { description = "SSHGuard brute-force attacks protection system"; + + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + partOf = optional config.networking.firewall.enable "firewall.service"; + + path = [ pkgs.iptables pkgs.ipset pkgs.iproute pkgs.systemd ]; + + postStart = '' + mkdir -p /var/lib/sshguard + ${pkgs.ipset}/bin/ipset -quiet create -exist sshguard4 hash:ip family inet + ${pkgs.ipset}/bin/ipset -quiet create -exist sshguard6 hash:ip family inet6 + ${pkgs.iptables}/bin/iptables -I INPUT -m set --match-set sshguard4 src -j DROP + ${pkgs.iptables}/bin/ip6tables -I INPUT -m set --match-set sshguard6 src -j DROP + ''; + + preStop = '' + ${pkgs.iptables}/bin/iptables -D INPUT -m set --match-set sshguard4 src -j DROP + ${pkgs.iptables}/bin/ip6tables -D INPUT -m set --match-set sshguard6 src -j DROP + ''; + + unitConfig.Documentation = "man:sshguard(8)"; + + serviceConfig = { + Type = "simple"; + ExecStart = let + list_whitelist = ( name: "-w ${name} "); + in '' + ${pkgs.sshguard}/bin/sshguard -a ${toString cfg.attack_threshold} ${optionalString (cfg.blacklist_threshold != null) "-b ${toString cfg.blacklist_threshold}:${cfg.blacklist_file} "}-i /run/sshguard/sshguard.pid -p ${toString cfg.blocktime} -s ${toString cfg.detection_time} ${toString (map list_whitelist cfg.whitelist)} + ''; + PIDFile = "/run/sshguard/sshguard.pid"; + Restart = "always"; + + ReadOnlyDirectories = "/"; + ReadWriteDirectories = "/run/sshguard /var/lib/sshguard"; + RuntimeDirectory = "sshguard"; + CapabilityBoundingSet = "CAP_NET_ADMIN CAP_NET_RAW"; + }; + }; + }; +} diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix index 10596d6431d..bc79d9f2a59 100644 --- a/nixos/modules/services/security/tor.nix +++ b/nixos/modules/services/security/tor.nix @@ -7,7 +7,7 @@ let torDirectory = "/var/lib/tor"; opt = name: value: optionalString (value != null) "${name} ${value}"; - optint = name: value: optionalString (value != 0) "${name} ${toString value}"; + optint = name: value: optionalString (value != null && value != 0) "${name} ${toString value}"; torRc = '' User tor @@ -27,7 +27,8 @@ let '' # Relay config + optionalString cfg.relay.enable '' - ORPort ${cfg.relay.portSpec} + ORPort ${toString cfg.relay.port} + ${opt "Address" cfg.relay.address} ${opt "Nickname" cfg.relay.nickname} ${opt "ContactInfo" cfg.relay.contactInfo} @@ -36,19 +37,32 @@ let ${opt "AccountingMax" cfg.relay.accountingMax} ${opt "AccountingStart" cfg.relay.accountingStart} - ${if cfg.relay.isExit then + ${if (cfg.relay.role == "exit") then opt "ExitPolicy" cfg.relay.exitPolicy else "ExitPolicy reject *:*"} - ${optionalString cfg.relay.isBridge '' + ${optionalString (elem cfg.relay.role ["bridge" "private-bridge"]) '' BridgeRelay 1 ServerTransportPlugin obfs2,obfs3 exec ${pkgs.pythonPackages.obfsproxy}/bin/obfsproxy managed + ExtORPort auto + ${optionalString (cfg.relay.role == "private-bridge") '' + ExtraInfoStatistics 0 + PublishServerDescriptor 0 + ''} ''} '' + # Hidden services + + concatStrings (flip mapAttrsToList cfg.hiddenServices (n: v: '' + HiddenServiceDir ${torDirectory}/onion/${v.name} + ${flip concatMapStrings v.map (p: '' + HiddenServicePort ${toString p.port} ${p.destination} + '')} + '')) + cfg.extraConfig; torRcFile = pkgs.writeText "torrc" torRc; + in { options = { @@ -84,8 +98,8 @@ in }; controlPort = mkOption { - type = types.int; - default = 0; + type = types.nullOr (types.either types.int types.str); + default = null; example = 9051; description = '' If set, Tor will accept connections on the specified port @@ -121,9 +135,10 @@ in example = "192.168.0.1:9101"; description = '' Bind to this address to listen for connections from - Socks-speaking applications. Same as socksListenAddress - but uses weaker circuit isolation to provide performance - suitable for a web browser. + Socks-speaking applications. Same as + but uses weaker + circuit isolation to provide performance suitable for a + web browser. ''; }; @@ -133,9 +148,9 @@ in example = "accept 192.168.0.0/16, reject *"; description = '' Entry policies to allow/deny SOCKS requests based on IP - address. First entry that matches wins. If no SocksPolicy + address. First entry that matches wins. If no SocksPolicy is set, we accept all (and only) requests from - SocksListenAddress. + . ''; }; @@ -164,45 +179,147 @@ in description = '' Whether to enable relaying TOR traffic for others. - See https://www.torproject.org/docs/tor-doc-relay for details. + See + for details. + + Setting this to true requires setting + + and + + options. ''; }; - isBridge = mkOption { - type = types.bool; - default = false; + role = mkOption { + type = types.enum [ "exit" "relay" "bridge" "private-bridge" ]; description = '' - Bridge relays (or "bridges") are Tor relays that aren't - listed in the main directory. Since there is no complete - public list of them, even if an ISP is filtering - connections to all the known Tor relays, they probably - won't be able to block all the bridges. + Your role in Tor network. There're several options: - A bridge relay can't be an exit relay. + + + exit + + + An exit relay. This allows Tor users to access regular + Internet services through your public IP. + - You need to set relay.enable to true for this option to - take effect. + + Running an exit relay may expose you to abuse + complaints. See + + for more info. + - The bridge is set up with an obfuscated transport proxy. + + You can specify which services Tor users may access via + your exit relay using option. + + + - See https://www.torproject.org/bridges.html.en for more info. - ''; - }; + + relay + + + Regular relay. This allows Tor users to relay onion + traffic to other Tor nodes, but not to public + Internet. + - isExit = mkOption { - type = types.bool; - default = false; - description = '' - An exit relay allows Tor users to access regular Internet - services. + + Note that some misconfigured and/or disrespectful + towards privacy sites will block you even if your + relay is not an exit relay. That is, just being listed + in a public relay directory can have unwanted + consequences. - Unlike running a non-exit relay, running an exit relay may - expose you to abuse complaints. See - https://www.torproject.org/faq.html.en#ExitPolicies for - more info. + Which means you might not want to use + this role if you browse public Internet from the same + network as your relay, unless you want to write + e-mails to those sites (you should!). + - You can specify which services Tor users may access via - your exit relay using exitPolicy option. + + See + + for more info. + + + + + + bridge + + + Regular bridge. Works like a regular relay, but + doesn't list you in the public relay directory and + hides your Tor node behind obfsproxy. + + + + Using this option will make Tor advertise your bridge + to users through various mechanisms like + , though. + + + + + WARNING: THE FOLLOWING PARAGRAPH IS NOT LEGAL ADVISE. + Consult with your lawer when in doubt. + + + + This role should be safe to use in most situations + (unless the act of forwarding traffic for others is + a punishable offence under your local laws, which + would be pretty insane as it would make ISP + illegal). + + + + + See + for more info. + + + + + + private-bridge + + + Private bridge. Works like regular bridge, but does + not advertise your node in any way. + + + + Using this role means that you won't contribute to Tor + network in any way unless you advertise your node + yourself in some way. + + + + Use this if you want to run a private bridge, for + example because you'll give out your bridge address + manually to your friends. + + + + Switching to this role after measurable time in + "bridge" role is pretty useless as some Tor users + would have learned about your node already. In the + latter case you can still change + option. + + + + See + for more info. + + + + ''; }; @@ -229,11 +346,11 @@ in default = null; example = "450 GBytes"; description = '' - Specify maximum bandwidth allowed during an accounting - period. This allows you to limit overall tor bandwidth - over some time period. See the - AccountingMax option by looking at the - tor manual (man tor) for more. + Specify maximum bandwidth allowed during an accounting period. This + allows you to limit overall tor bandwidth over some time period. + See the AccountingMax option by looking at the + tor manual tor + 1 for more. Note this limit applies individually to upload and download; if you specify "500 GBytes" @@ -247,16 +364,17 @@ in default = null; example = "month 1 1:00"; description = '' - Specify length of an accounting period. This allows you to - limit overall tor bandwidth over some time period. See the - AccountingStart option by looking at - the tor manual (man tor) for more. + Specify length of an accounting period. This allows you to limit + overall tor bandwidth over some time period. See the + AccountingStart option by looking at the tor + manual tor + 1 for more. ''; }; bandwidthRate = mkOption { - type = types.int; - default = 0; + type = types.nullOr types.int; + default = null; example = 100; description = '' Specify this to limit the bandwidth usage of relayed (server) @@ -265,7 +383,7 @@ in }; bandwidthBurst = mkOption { - type = types.int; + type = types.nullOr types.int; default = cfg.relay.bandwidthRate; example = 200; description = '' @@ -275,13 +393,24 @@ in ''; }; - portSpec = mkOption { - type = types.str; - example = "143"; + address = mkOption { + type = types.nullOr types.str; + default = null; + example = "noname.example.com"; description = '' - What port to advertise for Tor connections. This corresponds - to the ORPort section in the Tor manual; see - man tor for more details. + The IP address or full DNS name for advertised address of your relay. + Leave unset and Tor will guess. + ''; + }; + + port = mkOption { + type = types.either types.int types.str; + example = 143; + description = '' + What port to advertise for Tor connections. This corresponds to the + ORPort section in the Tor manual; see + tor + 1 for more details. At a minimum, you should just specify the port for the relay to listen on; a common one like 143, 22, 80, or 443 @@ -299,13 +428,15 @@ in considered first to last, and the first match wins. If you want to _replace_ the default exit policy, end this with either a reject *:* or an accept *:*. Otherwise, you're - _augmenting_ (prepending to) the default exit - policy. Leave commented to just use the default, which is + _augmenting_ (prepending to) the default exit policy. + Leave commented to just use the default, which is available in the man page or at - https://www.torproject.org/documentation.html + . - Look at https://www.torproject.org/faq-abuse.html#TypicalAbuses - for issues you might encounter if you use the default exit policy. + Look at + + for issues you might encounter if you use the default + exit policy. If certain IPs and ports are blocked externally, e.g. by your firewall, you should update your exit policy to @@ -314,15 +445,124 @@ in ''; }; }; + + hiddenServices = mkOption { + description = '' + A set of static hidden services that terminate their Tor + circuits at this node. + + Every element in this set declares a virtual onion host. + + You can specify your onion address by putting corresponding + private key to an appropriate place in ${torDirectory}. + + For services without private keys in ${torDirectory} Tor + daemon will generate random key pairs (which implies random + onion addresses) on restart. The latter could take a while, + please be patient. + + + Hidden services can be useful even if you don't intend to + actually hide them, since they can + also be seen as a kind of NAT traversal mechanism. + + E.g. the example will make your sshd, whatever runs on + "8080" and your mail server available from anywhere where + the Tor network is available (which, with the help from + bridges, is pretty much everywhere), even if both client + and server machines are behind NAT you have no control + over. + + ''; + default = {}; + example = literalExample '' + { "my-hidden-service-example".map = [ + { port = 22; } # map ssh port to this machine's ssh + { port = 80; toPort = 8080; } # map http port to whatever runs on 8080 + { port = "sip"; toHost = "mail.example.com"; toPort = "imap"; } # because we can + ]; + } + ''; + type = types.loaOf (types.submodule ({name, config, ...}: { + options = { + + name = mkOption { + type = types.str; + description = '' + Name of this tor hidden service. + + This is purely descriptive. + + After restarting Tor daemon you should be able to + find your .onion address in + ${torDirectory}/onion/$name/hostname. + ''; + }; + + map = mkOption { + default = []; + description = "Port mapping for this hidden service."; + type = types.listOf (types.submodule ({config, ...}: { + options = { + + port = mkOption { + type = types.either types.int types.str; + example = 80; + description = '' + Hidden service port to "bind to". + ''; + }; + + destination = mkOption { + internal = true; + type = types.str; + description = "Forward these connections where?"; + }; + + toHost = mkOption { + type = types.str; + default = "127.0.0.1"; + description = "Mapping destination host."; + }; + + toPort = mkOption { + type = types.either types.int types.str; + example = 8080; + description = "Mapping destination port."; + }; + + }; + + config = { + toPort = mkDefault config.port; + destination = mkDefault "${config.toHost}:${toString config.toPort}"; + }; + })); + }; + + }; + + config = { + name = mkDefault name; + }; + })); + }; }; }; config = mkIf cfg.enable { - assertions = singleton - { message = "Can't be both an exit and a bridge relay at the same time"; - assertion = - cfg.relay.enable -> !(cfg.relay.isBridge && cfg.relay.isExit); - }; + # Not sure if `cfg.relay.role == "private-bridge"` helps as tor + # sends a lot of stats + warnings = optional (cfg.relay.enable && cfg.hiddenServices != {}) + '' + Running Tor hidden services on a public relay makes the + presence of hidden services visible through simple statistical + analysis of publicly available data. + + You can safely ignore this warning if you don't intend to + actually hide your hidden services. In either case, you can + always create a container/VM with a separate Tor daemon instance. + ''; users.extraGroups.tor.gid = config.ids.gids.tor; users.extraUsers.tor = @@ -342,9 +582,13 @@ in restartTriggers = [ torRcFile ]; # Translated from the upstream contrib/dist/tor.service.in + preStart = '' + install -o tor -g tor -d ${torDirectory}/onion + ${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config + ''; + serviceConfig = { Type = "simple"; - ExecStartPre = "${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config"; ExecStart = "${pkgs.tor}/bin/tor -f ${torRcFile} --RunAsDaemon 0"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; KillSignal = "SIGINT"; diff --git a/nixos/modules/services/security/usbguard.nix b/nixos/modules/services/security/usbguard.nix new file mode 100644 index 00000000000..1f2c56a9efa --- /dev/null +++ b/nixos/modules/services/security/usbguard.nix @@ -0,0 +1,200 @@ +{config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.usbguard; + + # valid policy options + policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]); + + # decide what file to use for rules + ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else cfg.ruleFile; + + daemonConf = '' + # generated by nixos/modules/services/security/usbguard.nix + RuleFile=${ruleFile} + ImplicitPolicyTarget=${cfg.implictPolicyTarget} + PresentDevicePolicy=${cfg.presentDevicePolicy} + PresentControllerPolicy=${cfg.presentControllerPolicy} + InsertedDevicePolicy=${cfg.insertedDevicePolicy} + RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"} + # this does not seem useful for endusers to change + DeviceManagerBackend=uevent + IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers} + IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups} + IPCAccessControlFiles=${cfg.IPCAccessControlFiles} + DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"} + AuditFilePath=${cfg.auditFilePath} + ''; + + daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf; + +in { + + ###### interface + + options = { + services.usbguard = { + enable = mkEnableOption "USBGuard daemon"; + + ruleFile = mkOption { + type = types.path; + default = "/var/lib/usbguard/rules.conf"; + description = '' + The USBGuard daemon will use this file to load the policy rule set + from it and to write new rules received via the IPC interface. + + Running the command usbguard generate-policy as + root will generate a config for your currently plugged in devices. + For a in depth guide consult the official documentation. + + Setting the rules option will ignore the + ruleFile option. + ''; + }; + + rules = mkOption { + type = types.nullOr types.str; + default = null; + example = '' + allow with-interface equals { 08:*:* } + ''; + description = '' + The USBGuard daemon will load this policy rule set. Modifying it via + the IPC interface won't work if you use this option, since the + contents of this option will be written into the nix-store it will be + read-only. + + You can still use usbguard generate-policy to + generate rules, but you would have to insert them here. + + Setting the rules option will ignore the + ruleFile option. + ''; + }; + + implictPolicyTarget = mkOption { + type = policy; + default = "block"; + description = '' + How to treat USB devices that don't match any rule in the policy. + Target should be one of allow, block or reject (logically remove the + device node from the system). + ''; + }; + + presentDevicePolicy = mkOption { + type = policy; + default = "apply-policy"; + description = '' + How to treat USB devices that are already connected when the daemon + starts. Policy should be one of allow, block, reject, keep (keep + whatever state the device is currently in) or apply-policy (evaluate + the rule set for every present device). + ''; + }; + + presentControllerPolicy = mkOption { + type = policy; + default = "keep"; + description = '' + How to treat USB controller devices that are already connected when + the daemon starts. One of allow, block, reject, keep or apply-policy. + ''; + }; + + insertedDevicePolicy = mkOption { + type = policy; + default = "apply-policy"; + description = '' + How to treat USB devices that are already connected after the daemon + starts. One of block, reject, apply-policy. + ''; + }; + + restoreControllerDeviceState = mkOption { + type = types.bool; + default = false; + description = '' + The USBGuard daemon modifies some attributes of controller + devices like the default authorization state of new child device + instances. Using this setting, you can controll whether the daemon + will try to restore the attribute values to the state before + modificaton on shutdown. + ''; + }; + + IPCAllowedUsers = mkOption { + type = types.listOf types.str; + default = [ "root" ]; + example = [ "root" "yourusername" ]; + description = '' + A list of usernames that the daemon will accept IPC connections from. + ''; + }; + + IPCAllowedGroups = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "wheel" ]; + description = '' + A list of groupnames that the daemon will accept IPC connections + from. + ''; + }; + + IPCAccessControlFiles = mkOption { + type = types.path; + default = "/var/lib/usbguard/IPCAccessControl.d/"; + description = '' + The files at this location will be interpreted by the daemon as IPC + access control definition files. See the IPC ACCESS CONTROL section + in usbguard-daemon.conf + 5 for more details. + ''; + }; + + deviceRulesWithPort = mkOption { + type = types.bool; + default = false; + description = '' + Generate device specific rules including the "via-port" attribute. + ''; + }; + + auditFilePath = mkOption { + type = types.path; + default = "/var/log/usbguard/usbguard-audit.log"; + description = '' + USBGuard audit events log file path. + ''; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.usbguard ]; + + systemd.services.usbguard = { + description = "USBGuard daemon"; + + wantedBy = [ "basic.target" ]; + wants = [ "systemd-udevd.service" "local-fs.target" ]; + + # make sure an empty rule file and required directories exist + preStart = ''mkdir -p $(dirname "${cfg.ruleFile}") "${cfg.IPCAccessControlFiles}" && ([ -f "${cfg.ruleFile}" ] || touch ${cfg.ruleFile})''; + + serviceConfig = { + Type = "simple"; + ExecStart = ''${pkgs.usbguard}/bin/usbguard-daemon -d -k -c ${daemonConfFile}''; + Restart = "on-failure"; + }; + }; + }; +} diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix new file mode 100644 index 00000000000..146afec344a --- /dev/null +++ b/nixos/modules/services/security/vault.nix @@ -0,0 +1,143 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.vault; + + configFile = pkgs.writeText "vault.hcl" '' + listener "tcp" { + address = "${cfg.address}" + ${if (cfg.tlsCertFile == null || cfg.tlsKeyFile == null) then '' + tls_disable = "true" + '' else '' + tls_cert_file = "${cfg.tlsCertFile}" + tls_key_file = "${cfg.tlsKeyFile}" + ''} + ${cfg.listenerExtraConfig} + } + storage "${cfg.storageBackend}" { + ${optionalString (cfg.storagePath != null) ''path = "${cfg.storagePath}"''} + ${optionalString (cfg.storageConfig != null) cfg.storageConfig} + } + ${optionalString (cfg.telemetryConfig != "") '' + telemetry { + ${cfg.telemetryConfig} + } + ''} + ''; +in +{ + options = { + + services.vault = { + + enable = mkEnableOption "Vault daemon"; + + address = mkOption { + type = types.str; + default = "127.0.0.1:8200"; + description = "The name of the ip interface to listen to"; + }; + + tlsCertFile = mkOption { + type = types.nullOr types.str; + default = null; + example = "/path/to/your/cert.pem"; + description = "TLS certificate file. TLS will be disabled unless this option is set"; + }; + + tlsKeyFile = mkOption { + type = types.nullOr types.str; + default = null; + example = "/path/to/your/key.pem"; + description = "TLS private key file. TLS will be disabled unless this option is set"; + }; + + listenerExtraConfig = mkOption { + type = types.lines; + default = '' + tls_min_version = "tls12" + ''; + description = "extra configuration"; + }; + + storageBackend = mkOption { + type = types.enum [ "inmem" "file" "consul" "zookeeper" "s3" "azure" "dynamodb" "etcd" "mssql" "mysql" "postgresql" "swift" "gcs" ]; + default = "inmem"; + description = "The name of the type of storage backend"; + }; + + storagePath = mkOption { + type = types.nullOr types.path; + default = if cfg.storageBackend == "file" then "/var/lib/vault" else null; + description = "Data directory for file backend"; + }; + + storageConfig = mkOption { + type = types.nullOr types.lines; + default = null; + description = "Storage configuration"; + }; + + telemetryConfig = mkOption { + type = types.lines; + default = ""; + description = "Telemetry configuration"; + }; + }; + }; + + config = mkIf cfg.enable { + assertions = [ + { assertion = cfg.storageBackend == "inmem" -> (cfg.storagePath == null && cfg.storageConfig == null); + message = ''The "inmem" storage expects no services.vault.storagePath nor services.vault.storageConfig''; + } + { assertion = (cfg.storageBackend == "file" -> (cfg.storagePath != null && cfg.storageConfig == null)) && (cfg.storagePath != null -> cfg.storageBackend == "file"); + message = ''You must set services.vault.storagePath only when using the "file" backend''; + } + ]; + + users.extraUsers.vault = { + name = "vault"; + group = "vault"; + uid = config.ids.uids.vault; + description = "Vault daemon user"; + }; + users.extraGroups.vault.gid = config.ids.gids.vault; + + systemd.services.vault = { + description = "Vault server daemon"; + + wantedBy = ["multi-user.target"]; + after = [ "network.target" ] + ++ optional (config.services.consul.enable && cfg.storageBackend == "consul") "consul.service"; + + restartIfChanged = false; # do not restart on "nixos-rebuild switch". It would seal the storage and disrupt the clients. + + preStart = optionalString (cfg.storagePath != null) '' + install -d -m0700 -o vault -g vault "${cfg.storagePath}" + ''; + + serviceConfig = { + User = "vault"; + Group = "vault"; + PermissionsStartOnly = true; + ExecStart = "${pkgs.vault}/bin/vault server -config ${configFile}"; + PrivateDevices = true; + PrivateTmp = true; + ProtectSystem = "full"; + ProtectHome = "read-only"; + AmbientCapabilities = "cap_ipc_lock"; + NoNewPrivileges = true; + KillSignal = "SIGINT"; + TimeoutStopSec = "30s"; + Restart = "on-failure"; + StartLimitInterval = "60s"; + StartLimitBurst = 3; + }; + + unitConfig.RequiresMountsFor = optional (cfg.storagePath != null) cfg.storagePath; + }; + }; + +} diff --git a/nixos/modules/services/system/cloud-init.nix b/nixos/modules/services/system/cloud-init.nix index 0ef31ef8a8b..d513e44dcfb 100644 --- a/nixos/modules/services/system/cloud-init.nix +++ b/nixos/modules/services/system/cloud-init.nix @@ -3,52 +3,7 @@ with lib; let cfg = config.services.cloud-init; - path = with pkgs; [ cloud-init nettools utillinux e2fsprogs shadow dmidecode openssh ]; - configFile = pkgs.writeText "cloud-init.cfg" '' -users: - - root - -disable_root: false -preserve_hostname: false - -cloud_init_modules: - - migrator - - seed_random - - bootcmd - - write-files - - growpart - - resizefs - - set_hostname - - update_hostname - - update_etc_hosts - - ca-certs - - rsyslog - - users-groups - -cloud_config_modules: - - emit_upstart - - disk_setup - - mounts - - ssh-import-id - - set-passwords - - timezone - - disable-ec2-metadata - - runcmd - - ssh - -cloud_final_modules: - - rightscale_userdata - - scripts-vendor - - scripts-per-once - - scripts-per-boot - - scripts-per-instance - - scripts-user - - ssh-authkey-fingerprints - - keys-to-console - - phone-home - - final-message - - power-state-change -''; + path = with pkgs; [ cloud-init nettools utillinux e2fsprogs shadow openssh iproute ]; in { options = { @@ -74,12 +29,63 @@ in ''; }; + config = mkOption { + type = types.str; + default = '' + system_info: + distro: nixos + users: + - root + + disable_root: false + preserve_hostname: false + + cloud_init_modules: + - migrator + - seed_random + - bootcmd + - write-files + - growpart + - resizefs + - update_etc_hosts + - ca-certs + - rsyslog + - users-groups + + cloud_config_modules: + - disk_setup + - mounts + - ssh-import-id + - set-passwords + - timezone + - disable-ec2-metadata + - runcmd + - ssh + + cloud_final_modules: + - rightscale_userdata + - scripts-vendor + - scripts-per-once + - scripts-per-boot + - scripts-per-instance + - scripts-user + - ssh-authkey-fingerprints + - keys-to-console + - phone-home + - final-message + - power-state-change + ''; + description = ''cloud-init configuration.''; + }; + }; }; config = mkIf cfg.enable { + environment.etc."cloud/cloud.cfg".text = cfg.config; + systemd.services.cloud-init-local = { description = "Initial cloud-init job (pre-networking)"; wantedBy = [ "multi-user.target" ]; @@ -88,7 +94,7 @@ in path = path; serviceConfig = { Type = "oneshot"; - ExecStart = "${pkgs.cloud-init}/bin/cloud-init -f ${configFile} init --local"; + ExecStart = "${pkgs.cloud-init}/bin/cloud-init init --local"; RemainAfterExit = "yes"; TimeoutSec = "0"; StandardOutput = "journal+console"; @@ -105,7 +111,7 @@ in path = path; serviceConfig = { Type = "oneshot"; - ExecStart = "${pkgs.cloud-init}/bin/cloud-init -f ${configFile} init"; + ExecStart = "${pkgs.cloud-init}/bin/cloud-init init"; RemainAfterExit = "yes"; TimeoutSec = "0"; StandardOutput = "journal+console"; @@ -121,7 +127,7 @@ in path = path; serviceConfig = { Type = "oneshot"; - ExecStart = "${pkgs.cloud-init}/bin/cloud-init -f ${configFile} modules --mode=config"; + ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=config"; RemainAfterExit = "yes"; TimeoutSec = "0"; StandardOutput = "journal+console"; @@ -137,7 +143,7 @@ in path = path; serviceConfig = { Type = "oneshot"; - ExecStart = "${pkgs.cloud-init}/bin/cloud-init -f ${configFile} modules --mode=final"; + ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=final"; RemainAfterExit = "yes"; TimeoutSec = "0"; StandardOutput = "journal+console"; diff --git a/nixos/modules/services/system/saslauthd.nix b/nixos/modules/services/system/saslauthd.nix new file mode 100644 index 00000000000..281716cf186 --- /dev/null +++ b/nixos/modules/services/system/saslauthd.nix @@ -0,0 +1,63 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + nssModulesPath = config.system.nssModules.path; + cfg = config.services.saslauthd; + +in + +{ + + ###### interface + + options = { + + services.saslauthd = { + + enable = mkEnableOption "Whether to enable the Cyrus SASL authentication daemon."; + + package = mkOption { + default = pkgs.cyrus_sasl.bin; + defaultText = "pkgs.cyrus_sasl.bin"; + type = types.package; + description = "Cyrus SASL package to use."; + }; + + mechanism = mkOption { + type = types.str; + default = "pam"; + description = "Auth mechanism to use"; + }; + + config = mkOption { + type = types.lines; + default = ""; + description = "Configuration to use for Cyrus SASL authentication daemon."; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + systemd.services.saslauthd = { + description = "Cyrus SASL authentication daemon"; + + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + ExecStart = "@${cfg.package}/sbin/saslauthd saslauthd -a ${cfg.mechanism} -O ${pkgs.writeText "saslauthd.conf" cfg.config}"; + Type = "forking"; + PIDFile = "/run/saslauthd/saslauthd.pid"; + Restart = "always"; + }; + }; + }; +} diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix index 2534f09b555..ec1e97f4125 100644 --- a/nixos/modules/services/torrent/deluge.nix +++ b/nixos/modules/services/torrent/deluge.nix @@ -42,9 +42,9 @@ in { after = [ "network.target" ]; description = "Deluge BitTorrent Daemon"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.pythonPackages.deluge ]; + path = [ pkgs.deluge ]; serviceConfig = { - ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluged -d"; + ExecStart = "${pkgs.deluge}/bin/deluged -d"; # To prevent "Quit & shutdown daemon" from working; we want systemd to manage it! Restart = "on-success"; User = "deluge"; @@ -57,13 +57,13 @@ in { after = [ "network.target" ]; description = "Deluge BitTorrent WebUI"; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.pythonPackages.deluge ]; - serviceConfig.ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluge --ui web"; + path = [ pkgs.deluge ]; + serviceConfig.ExecStart = "${pkgs.deluge}/bin/deluge --ui web"; serviceConfig.User = "deluge"; serviceConfig.Group = "deluge"; }; - environment.systemPackages = [ pkgs.pythonPackages.deluge ]; + environment.systemPackages = [ pkgs.deluge ]; users.extraUsers.deluge = { group = "deluge"; diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix index 1f319df794b..dd6b585b7e2 100644 --- a/nixos/modules/services/torrent/transmission.nix +++ b/nixos/modules/services/torrent/transmission.nix @@ -6,7 +6,7 @@ let cfg = config.services.transmission; apparmor = config.security.apparmor.enable; - homeDir = "/var/lib/transmission"; + homeDir = cfg.home; downloadDir = "${homeDir}/Downloads"; incompleteDir = "${homeDir}/.incomplete"; @@ -69,6 +69,14 @@ in default = 9091; description = "TCP port number to run the RPC/web interface."; }; + + home = mkOption { + type = types.path; + default = "/var/lib/transmission"; + description = '' + The directory where transmission will create files. + ''; + }; }; }; diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/agetty.nix index 051d54e932f..3429397d2cc 100644 --- a/nixos/modules/services/ttys/agetty.nix +++ b/nixos/modules/services/ttys/agetty.nix @@ -68,24 +68,35 @@ in services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixosLabel} (\m) - \l >>>''; systemd.services."getty@" = - { serviceConfig.ExecStart = gettyCmd "--noclear --keep-baud %I 115200,38400,9600 $TERM"; + { serviceConfig.ExecStart = [ + "" # override upstream default with an empty ExecStart + (gettyCmd "--noclear --keep-baud %I 115200,38400,9600 $TERM") + ]; restartIfChanged = false; }; systemd.services."serial-getty@" = - { serviceConfig.ExecStart = - let speeds = concatStringsSep "," (map toString config.services.mingetty.serialSpeed); - in gettyCmd "%I ${speeds} $TERM"; + let speeds = concatStringsSep "," (map toString config.services.mingetty.serialSpeed); in + { serviceConfig.ExecStart = [ + "" # override upstream default with an empty ExecStart + (gettyCmd "%I ${speeds} $TERM") + ]; restartIfChanged = false; }; systemd.services."container-getty@" = - { serviceConfig.ExecStart = gettyCmd "--noclear --keep-baud pts/%I 115200,38400,9600 $TERM"; + { serviceConfig.ExecStart = [ + "" # override upstream default with an empty ExecStart + (gettyCmd "--noclear --keep-baud pts/%I 115200,38400,9600 $TERM") + ]; restartIfChanged = false; }; systemd.services."console-getty" = - { serviceConfig.ExecStart = gettyCmd "--noclear --keep-baud console 115200,38400,9600 $TERM"; + { serviceConfig.ExecStart = [ + "" # override upstream default with an empty ExecStart + (gettyCmd "--noclear --keep-baud console 115200,38400,9600 $TERM") + ]; serviceConfig.Restart = "always"; restartIfChanged = false; enable = mkDefault config.boot.isContainer; diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix index 8bad42927e3..88e488425bc 100644 --- a/nixos/modules/services/ttys/kmscon.nix +++ b/nixos/modules/services/ttys/kmscon.nix @@ -60,6 +60,7 @@ in { ConditionPathExists=/dev/tty0 [Service] + ExecStart= ExecStart=${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p UtmpIdentifier=%I TTYPath=/dev/%I diff --git a/nixos/modules/services/web-apps/atlassian/confluence.nix b/nixos/modules/services/web-apps/atlassian/confluence.nix index 2d9287577de..2344b9922d0 100644 --- a/nixos/modules/services/web-apps/atlassian/confluence.nix +++ b/nixos/modules/services/web-apps/atlassian/confluence.nix @@ -6,7 +6,22 @@ let cfg = config.services.confluence; - pkg = pkgs.atlassian-confluence; + pkg = pkgs.atlassian-confluence.override (optionalAttrs cfg.sso.enable { + enableSSO = cfg.sso.enable; + crowdProperties = '' + application.name ${cfg.sso.applicationName} + application.password ${cfg.sso.applicationPassword} + application.login.url ${cfg.sso.crowd}/console/ + + crowd.server.url ${cfg.sso.crowd}/services/ + crowd.base.url ${cfg.sso.crowd}/ + + session.isauthenticated session.isauthenticated + session.tokenkey session.tokenkey + session.validationinterval ${toString cfg.sso.validationInterval} + session.lastvalidation session.lastvalidation + ''; + }); in @@ -76,6 +91,42 @@ in }; }; + sso = { + enable = mkEnableOption "SSO with Atlassian Crowd"; + + crowd = mkOption { + type = types.str; + example = "http://localhost:8095/crowd"; + description = "Crowd Base URL without trailing slash"; + }; + + applicationName = mkOption { + type = types.str; + example = "jira"; + description = "Exact name of this Confluence instance in Crowd"; + }; + + applicationPassword = mkOption { + type = types.str; + description = "Application password of this Confluence instance in Crowd"; + }; + + validationInterval = mkOption { + type = types.int; + default = 2; + example = 0; + description = '' + Set to 0, if you want authentication checks to occur on each + request. Otherwise set to the number of minutes between request + to validate if the user is logged in or out of the Crowd SSO + server. Setting this value to 1 or higher will increase the + performance of Crowd's integration. + ''; + }; + }; + + + jrePackage = let jreSwitch = unfree: free: if config.nixpkgs.config.allowUnfree or false then unfree else free; in mkOption { @@ -103,7 +154,7 @@ in requires = [ "postgresql.service" ]; after = [ "postgresql.service" ]; - path = [ cfg.jrePackage ]; + path = [ cfg.jrePackage pkgs.bash ]; environment = { CONF_USER = cfg.user; diff --git a/nixos/modules/services/web-apps/atlassian/crowd.nix b/nixos/modules/services/web-apps/atlassian/crowd.nix index b54c91d7de9..2a5f0804638 100644 --- a/nixos/modules/services/web-apps/atlassian/crowd.nix +++ b/nixos/modules/services/web-apps/atlassian/crowd.nix @@ -142,7 +142,7 @@ in ${pkg}/apache-tomcat/conf/server.xml.dist > ${cfg.home}/server.xml ''; - script = "${pkg}/start_crowd.sh"; + script = "${pkg}/start_crowd.sh -fg"; serviceConfig = { User = cfg.user; diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix index 0ab94d95eee..19b6a8d3085 100644 --- a/nixos/modules/services/web-apps/atlassian/jira.nix +++ b/nixos/modules/services/web-apps/atlassian/jira.nix @@ -6,7 +6,22 @@ let cfg = config.services.jira; - pkg = pkgs.atlassian-jira; + pkg = pkgs.atlassian-jira.override { + enableSSO = cfg.sso.enable; + crowdProperties = '' + application.name ${cfg.sso.applicationName} + application.password ${cfg.sso.applicationPassword} + application.login.url ${cfg.sso.crowd}/console/ + + crowd.server.url ${cfg.sso.crowd}/services/ + crowd.base.url ${cfg.sso.crowd}/ + + session.isauthenticated session.isauthenticated + session.tokenkey session.tokenkey + session.validationinterval ${toString cfg.sso.validationInterval} + session.lastvalidation session.lastvalidation + ''; + }; in @@ -82,6 +97,40 @@ in }; }; + sso = { + enable = mkEnableOption "SSO with Atlassian Crowd"; + + crowd = mkOption { + type = types.str; + example = "http://localhost:8095/crowd"; + description = "Crowd Base URL without trailing slash"; + }; + + applicationName = mkOption { + type = types.str; + example = "jira"; + description = "Exact name of this JIRA instance in Crowd"; + }; + + applicationPassword = mkOption { + type = types.str; + description = "Application password of this JIRA instance in Crowd"; + }; + + validationInterval = mkOption { + type = types.int; + default = 2; + example = 0; + description = '' + Set to 0, if you want authentication checks to occur on each + request. Otherwise set to the number of minutes between request + to validate if the user is logged in or out of the Crowd SSO + server. Setting this value to 1 or higher will increase the + performance of Crowd's integration. + ''; + }; + }; + jrePackage = let jreSwitch = unfree: free: if config.nixpkgs.config.allowUnfree or false then unfree else free; in mkOption { diff --git a/nixos/modules/services/web-apps/mattermost.nix b/nixos/modules/services/web-apps/mattermost.nix index 8e6baf6a17e..0b637e3991b 100644 --- a/nixos/modules/services/web-apps/mattermost.nix +++ b/nixos/modules/services/web-apps/mattermost.nix @@ -184,10 +184,12 @@ in fi '' + lib.optionalString cfg.localDatabaseCreate '' if ! test -e "${cfg.statePath}/.db-created"; then - ${config.services.postgresql.package}/bin/psql postgres -c \ - "CREATE ROLE ${cfg.localDatabaseUser} WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.localDatabasePassword}'" - ${config.services.postgresql.package}/bin/createdb \ - --owner ${cfg.localDatabaseUser} ${cfg.localDatabaseName} + ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} \ + ${config.services.postgresql.package}/bin/psql postgres -c \ + "CREATE ROLE ${cfg.localDatabaseUser} WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.localDatabasePassword}'" + ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} \ + ${config.services.postgresql.package}/bin/createdb \ + --owner ${cfg.localDatabaseUser} ${cfg.localDatabaseName} touch ${cfg.statePath}/.db-created fi '' + '' @@ -201,7 +203,6 @@ in Group = cfg.group; ExecStart = "${pkgs.mattermost}/bin/mattermost-platform"; WorkingDirectory = "${cfg.statePath}"; - PrivateTmp = true; JoinsNamespaceOf = mkIf cfg.localDatabaseCreate "postgresql.service"; Restart = "always"; RestartSec = "10"; diff --git a/nixos/modules/services/web-apps/nexus.nix b/nixos/modules/services/web-apps/nexus.nix new file mode 100644 index 00000000000..a750aa66b27 --- /dev/null +++ b/nixos/modules/services/web-apps/nexus.nix @@ -0,0 +1,100 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.nexus; + +in + +{ + options = { + services.nexus = { + enable = mkEnableOption "SonarType Nexus3 OSS service"; + + user = mkOption { + type = types.str; + default = "nexus"; + description = "User which runs Nexus3."; + }; + + group = mkOption { + type = types.str; + default = "nexus"; + description = "Group which runs Nexus3."; + }; + + home = mkOption { + type = types.str; + default = "/var/lib/sonatype-work"; + description = "Home directory of the Nexus3 instance."; + }; + + listenAddress = mkOption { + type = types.str; + default = "127.0.0.1"; + description = "Address to listen on."; + }; + + listenPort = mkOption { + type = types.int; + default = 8081; + description = "Port to listen on."; + }; + }; + }; + + config = mkIf cfg.enable { + users.extraUsers."${cfg.user}" = { + isSystemUser = true; + group = cfg.group; + }; + + users.extraGroups."${cfg.group}" = {}; + + systemd.services.nexus = { + description = "SonarType Nexus3"; + + wantedBy = [ "multi-user.target" ]; + + path = [ cfg.home ]; + + environment = { + NEXUS_USER = cfg.user; + NEXUS_HOME = cfg.home; + }; + + preStart = '' + mkdir -p ${cfg.home}/nexus3/etc + + ln -sf ${cfg.home} /run/sonatype-work + + chown -R ${cfg.user}:${cfg.group} ${cfg.home} + + if [ ! -f ${cfg.home}/nexus3/etc/nexus.properties ]; then + echo "# Jetty section" > ${cfg.home}/nexus3/etc/nexus.properties + echo "application-port=${toString cfg.listenPort}" >> ${cfg.home}/nexus3/etc/nexus.properties + echo "application-host=${toString cfg.listenAddress}" >> ${cfg.home}/nexus3/etc/nexus.properties + else + sed 's/^application-port=.*/application-port=${toString cfg.listenPort}/' -i ${cfg.home}/nexus3/etc/nexus.properties + sed 's/^# application-port=.*/application-port=${toString cfg.listenPort}/' -i ${cfg.home}/nexus3/etc/nexus.properties + sed 's/^application-host=.*/application-host=${toString cfg.listenAddress}/' -i ${cfg.home}/nexus3/etc/nexus.properties + sed 's/^# application-host=.*/application-host=${toString cfg.listenAddress}/' -i ${cfg.home}/nexus3/etc/nexus.properties + fi + ''; + + script = "${pkgs.nexus}/bin/nexus run"; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + PrivateTmp = true; + PermissionsStartOnly = true; + LimitNOFILE = 102642; + }; + }; + }; + + meta.maintainers = with stdenv.lib.maintainers; [ ironpinguin ]; +} diff --git a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix new file mode 100644 index 00000000000..93f69bd1265 --- /dev/null +++ b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix @@ -0,0 +1,75 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.pgpkeyserver-lite; + sksCfg = config.services.sks; + + webPkg = cfg.package; + +in + +{ + + options = { + + services.pgpkeyserver-lite = { + + enable = mkEnableOption "pgpkeyserver-lite on a nginx vHost proxying to a gpg keyserver"; + + package = mkOption { + default = pkgs.pgpkeyserver-lite; + defaultText = "pkgs.pgpkeyserver-lite"; + type = types.package; + description = " + Which webgui derivation to use. + "; + }; + + hostname = mkOption { + type = types.str; + description = " + Which hostname to set the vHost to that is proxying to sks. + "; + }; + + hkpAddress = mkOption { + default = builtins.head sksCfg.hkpAddress; + type = types.str; + description = " + Wich ip address the sks-keyserver is listening on. + "; + }; + + hkpPort = mkOption { + default = sksCfg.hkpPort; + type = types.int; + description = " + Which port the sks-keyserver is listening on. + "; + }; + }; + }; + + config = mkIf cfg.enable { + + services.nginx.enable = true; + + services.nginx.virtualHosts = let + hkpPort = builtins.toString cfg.hkpPort; + in { + "${cfg.hostname}" = { + root = webPkg; + locations = { + "/pks".extraConfig = '' + proxy_pass http://${cfg.hkpAddress}:${hkpPort}; + proxy_pass_header Server; + add_header Via "1.1 ${cfg.hostname}"; + ''; + }; + }; + }; + }; +} diff --git a/nixos/modules/services/web-apps/piwik-doc.xml b/nixos/modules/services/web-apps/piwik-doc.xml new file mode 100644 index 00000000000..a393a182d36 --- /dev/null +++ b/nixos/modules/services/web-apps/piwik-doc.xml @@ -0,0 +1,95 @@ + + + Piwik + + Piwik is a real-time web analytics application. + This module configures php-fpm as backend for piwik, optionally configuring an nginx vhost as well. + + + + An automatic setup is not suported by piwik, so you need to configure piwik itself in the browser-based piwik setup. + + + +
+ Database Setup + + + You also need to configure a MariaDB or MySQL database and -user for piwik yourself, + and enter those credentials in your browser. + You can use passwordless database authentication via the UNIX_SOCKET authentication plugin + with the following SQL commands: + + + # For MariaDB + INSTALL PLUGIN unix_socket SONAME 'auth_socket'; + CREATE DATABASE piwik; + CREATE USER 'piwik'@'localhost' IDENTIFIED WITH unix_socket; + GRANT ALL PRIVILEGES ON piwik.* TO 'piwik'@'localhost'; + + # For MySQL + INSTALL PLUGIN auth_socket SONAME 'auth_socket.so'; + CREATE DATABASE piwik; + CREATE USER 'piwik'@'localhost' IDENTIFIED WITH auth_socket; + GRANT ALL PRIVILEGES ON piwik.* TO 'piwik'@'localhost'; + + + Then fill in piwik as database user and database name, and leave the password field blank. + This authentication works by allowing only the piwik unix user to authenticate as the + piwik database user (without needing a password), but no other users. + For more information on passwordless login, see + . + + + + Of course, you can use password based authentication as well, e.g. when the database is not on the same host. + +
+ + +
+ Backup + + You only need to take backups of your MySQL database and the + /var/lib/piwik/config/config.ini.php file. + Use a user in the piwik group or root to access the file. + For more information, see . + +
+ + +
+ Issues + + + + Piwik's file integrity check will warn you. + This is due to the patches necessary for NixOS, you can safely ignore this. + + + + + + Piwik will warn you that the JavaScript tracker is not writable. + This is because it's located in the read-only nix store. + You can safely ignore this, unless you need a plugin that needs JavaScript tracker access. + + + +
+ + +
+ Using other Web Servers than nginx + + + You can use other web servers by forwarding calls for index.php and + piwik.php to the /run/phpfpm-piwik.sock fastcgi unix socket. + You can use the nginx configuration in the module code as a reference to what else should be configured. + +
+
diff --git a/nixos/modules/services/web-apps/piwik.nix b/nixos/modules/services/web-apps/piwik.nix new file mode 100644 index 00000000000..ce86c6873dd --- /dev/null +++ b/nixos/modules/services/web-apps/piwik.nix @@ -0,0 +1,227 @@ +{ config, lib, pkgs, services, ... }: +with lib; +let + cfg = config.services.piwik; + + user = "piwik"; + dataDir = "/var/lib/${user}"; + + pool = user; + # it's not possible to use /run/phpfpm/${pool}.sock because /run/phpfpm/ is root:root 0770, + # and therefore is not accessible by the web server. + phpSocket = "/run/phpfpm-${pool}.sock"; + phpExecutionUnit = "phpfpm-${pool}"; + databaseService = "mysql.service"; + +in { + options = { + services.piwik = { + # NixOS PR for database setup: https://github.com/NixOS/nixpkgs/pull/6963 + # piwik issue for automatic piwik setup: https://github.com/piwik/piwik/issues/10257 + # TODO: find a nice way to do this when more NixOS MySQL and / or piwik automatic setup stuff is implemented. + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable piwik web analytics with php-fpm backend. + Either the nginx option or the webServerUser option is mandatory. + ''; + }; + + webServerUser = mkOption { + type = types.nullOr types.str; + default = null; + example = "lighttpd"; + description = '' + Name of the web server user that forwards requests to the ${phpSocket} fastcgi socket for piwik if the nginx + option is not used. Either this option or the nginx option is mandatory. + If you want to use another webserver than nginx, you need to set this to that server's user + and pass fastcgi requests to `index.php` and `piwik.php` to this socket. + ''; + }; + + phpfpmProcessManagerConfig = mkOption { + type = types.str; + default = '' + ; default phpfpm process manager settings + pm = dynamic + pm.max_children = 75 + pm.start_servers = 10 + pm.min_spare_servers = 5 + pm.max_spare_servers = 20 + pm.max_requests = 500 + + ; log worker's stdout, but this has a performance hit + catch_workers_output = yes + ''; + description = '' + Settings for phpfpm's process manager. You might need to change this depending on the load for piwik. + ''; + }; + + nginx = mkOption { + type = types.nullOr (types.submodule ( + recursiveUpdate + (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) + { + # enable encryption by default, + # as sensitive login and piwik data should not be transmitted in clear text. + options.forceSSL.default = true; + options.enableACME.default = true; + } + ) + ); + default = null; + example = { + serverName = "stats.$\{config.networking.hostName\}"; + enableACME = false; + }; + description = '' + With this option, you can customize an nginx virtualHost which already has sensible defaults for piwik. + Either this option or the webServerUser option is mandatory. + Set this to {} to just enable the virtualHost if you don't need any customization. + If enabled, then by default, the serverName is piwik.$\{config.networking.hostName\}, SSL is active, + and certificates are acquired via ACME. + If this is set to null (the default), no nginx virtualHost will be configured. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + warnings = mkIf (cfg.nginx != null && cfg.webServerUser != null) [ + "If services.piwik.nginx is set, services.piwik.nginx.webServerUser is ignored and should be removed." + ]; + + assertions = [ { + assertion = cfg.nginx != null || cfg.webServerUser != null; + message = "Either services.piwik.nginx or services.piwik.nginx.webServerUser is mandatory"; + }]; + + users.extraUsers.${user} = { + isSystemUser = true; + createHome = true; + home = dataDir; + group = user; + }; + users.extraGroups.${user} = {}; + + systemd.services.piwik_setup_update = { + # everything needs to set up and up to date before piwik php files are executed + requiredBy = [ "${phpExecutionUnit}.service" ]; + before = [ "${phpExecutionUnit}.service" ]; + # the update part of the script can only work if the database is already up and running + requires = [ databaseService ]; + after = [ databaseService ]; + path = [ pkgs.piwik ]; + serviceConfig = { + Type = "oneshot"; + User = user; + # hide especially config.ini.php from other + UMask = "0007"; + Environment = "PIWIK_USER_PATH=${dataDir}"; + # chown + chmod in preStart needs root + PermissionsStartOnly = true; + }; + # correct ownership and permissions in case they're not correct anymore, + # e.g. after restoring from backup or moving from another system. + # Note that ${dataDir}/config/config.ini.php might contain the MySQL password. + preStart = '' + chown -R ${user}:${user} ${dataDir} + chmod -R ug+rwX,o-rwx ${dataDir} + ''; + script = '' + # Use User-Private Group scheme to protect piwik data, but allow administration / backup via piwik group + # Copy config folder + chmod g+s "${dataDir}" + cp -r "${pkgs.piwik}/config" "${dataDir}/" + chmod -R u+rwX,g+rwX,o-rwx "${dataDir}" + + # check whether user setup has already been done + if test -f "${dataDir}/config/config.ini.php"; then + # then execute possibly pending database upgrade + piwik-console core:update --yes + fi + ''; + }; + + systemd.services.${phpExecutionUnit} = { + # stop phpfpm on package upgrade, do database upgrade via piwik_setup_update, and then restart + restartTriggers = [ pkgs.piwik ]; + # stop config.ini.php from getting written with read permission for others + serviceConfig.UMask = "0007"; + }; + + services.phpfpm.poolConfigs = let + # workaround for when both are null and need to generate a string, + # which is illegal, but as assertions apparently are being triggered *after* config generation, + # we have to avoid already throwing errors at this previous stage. + socketOwner = if (cfg.nginx != null) then config.services.nginx.user + else if (cfg.webServerUser != null) then cfg.webServerUser else ""; + in { + ${pool} = '' + listen = "${phpSocket}" + listen.owner = ${socketOwner} + listen.group = root + listen.mode = 0600 + user = ${user} + env[PIWIK_USER_PATH] = ${dataDir} + ${cfg.phpfpmProcessManagerConfig} + ''; + }; + + + services.nginx.virtualHosts = mkIf (cfg.nginx != null) { + # References: + # https://fralef.me/piwik-hardening-with-nginx-and-php-fpm.html + # https://github.com/perusio/piwik-nginx + "${user}.${config.networking.hostName}" = mkMerge [ cfg.nginx { + # don't allow to override the root easily, as it will almost certainly break piwik. + # disadvantage: not shown as default in docs. + root = mkForce "${pkgs.piwik}/share"; + + # define locations here instead of as the submodule option's default + # so that they can easily be extended with additional locations if required + # without needing to redefine the piwik ones. + # disadvantage: not shown as default in docs. + locations."/" = { + index = "index.php"; + }; + # allow index.php for webinterface + locations."= /index.php".extraConfig = '' + fastcgi_pass unix:${phpSocket}; + ''; + # allow piwik.php for tracking + locations."= /piwik.php".extraConfig = '' + fastcgi_pass unix:${phpSocket}; + ''; + # Any other attempt to access any php files is forbidden + locations."~* ^.+\.php$".extraConfig = '' + return 403; + ''; + # Disallow access to unneeded directories + # config and tmp are already removed + locations."~ ^/(?:core|lang|misc)/".extraConfig = '' + return 403; + ''; + # Disallow access to several helper files + locations."~* \.(?:bat|git|ini|sh|txt|tpl|xml|md)$".extraConfig = '' + return 403; + ''; + # No crawling of this site for bots that obey robots.txt - no useful information here. + locations."= /robots.txt".extraConfig = '' + return 200 "User-agent: *\nDisallow: /\n"; + ''; + # let browsers cache piwik.js + locations."= /piwik.js".extraConfig = '' + expires 1M; + ''; + }]; + }; + }; + + meta = { + doc = ./piwik-doc.xml; + maintainers = with stdenv.lib.maintainers; [ florianjacob ]; + }; +} diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index ed77e084476..f9f2511f45d 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -16,7 +16,7 @@ let phpMajorVersion = head (splitString "." php.version); - mod_perl = pkgs.mod_perl.override { apacheHttpd = httpd; }; + mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = httpd; }; defaultListen = cfg: if cfg.enableSSL then [{ip = "*"; port = 443;}] @@ -676,6 +676,7 @@ in '' ; Needed for PHP's mail() function. sendmail_path = sendmail -t -i + '' + optionalString (!isNull config.time.timeZone) '' ; Apparently PHP doesn't use $TZ. date.timezone = "${config.time.timeZone}" diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix index 1ed489bcb09..02695c1c43a 100644 --- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix +++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix @@ -83,20 +83,24 @@ let # Unpack Mediawiki and put the config file in its root directory. mediawikiRoot = pkgs.stdenv.mkDerivation rec { - name= "mediawiki-1.27.1"; + name= "mediawiki-1.29.1"; src = pkgs.fetchurl { - url = "http://download.wikimedia.org/mediawiki/1.27/${name}.tar.gz"; - sha256 = "0sm3ymz93qragbwhzzbwq7f127mbj29inv0afg2z6p32jb1pd9h8"; + url = "http://download.wikimedia.org/mediawiki/1.29/${name}.tar.gz"; + sha256 = "03mpazbxvb011s2nmlw5p6dc43yjgl5yrsilmj1imyykm57bwb3m"; }; skins = config.skins; + extensions = config.extensions; buildPhase = '' for skin in $skins; do cp -prvd $skin/* skins/ done + for extension in $extensions; do + cp -prvd $extension/* extensions/ + done ''; # */ installPhase = @@ -287,6 +291,16 @@ in ''; }; + extensions = mkOption { + default = []; + type = types.listOf types.path; + description = + '' + List of paths whose content is copied to the 'extensions' + subdirectory of the MediaWiki installation. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; diff --git a/nixos/modules/services/web-servers/apache-httpd/wordpress.nix b/nixos/modules/services/web-servers/apache-httpd/wordpress.nix index c6f4bcd0f66..1c654667dfc 100644 --- a/nixos/modules/services/web-servers/apache-httpd/wordpress.nix +++ b/nixos/modules/services/web-servers/apache-httpd/wordpress.nix @@ -13,6 +13,7 @@ let define('DB_HOST', '${config.dbHost}'); define('DB_CHARSET', 'utf8'); $table_prefix = '${config.tablePrefix}'; + define('AUTOMATIC_UPDATER_DISABLED', true); ${config.extraConfig} if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); diff --git a/nixos/modules/services/web-servers/caddy.nix b/nixos/modules/services/web-servers/caddy.nix index eec285f6bc4..d8efa24bc6d 100644 --- a/nixos/modules/services/web-servers/caddy.nix +++ b/nixos/modules/services/web-servers/caddy.nix @@ -5,12 +5,22 @@ with lib; let cfg = config.services.caddy; configFile = pkgs.writeText "Caddyfile" cfg.config; -in -{ +in { options.services.caddy = { enable = mkEnableOption "Caddy web server"; config = mkOption { + default = ""; + example = '' + example.com { + gzip + minify + log syslog + + root /srv/http + } + ''; + type = types.lines; description = "Verbatim Caddyfile to use"; }; @@ -36,7 +46,11 @@ in dataDir = mkOption { default = "/var/lib/caddy"; type = types.path; - description = "The data directory, for storing certificates."; + description = '' + The data directory, for storing certificates. Before 17.09, this + would create a .caddy directory. With 17.09 the contents of the + .caddy directory are in the specified data directory instead. + ''; }; package = mkOption { @@ -50,17 +64,32 @@ in config = mkIf cfg.enable { systemd.services.caddy = { description = "Caddy web server"; - after = [ "network.target" ]; + after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; + environment = mkIf (versionAtLeast config.system.stateVersion "17.09") + { CADDYPATH = cfg.dataDir; }; serviceConfig = { - ExecStart = ''${cfg.package.bin}/bin/caddy -conf=${configFile} \ - -ca=${cfg.ca} -email=${cfg.email} ${optionalString cfg.agree "-agree"} + ExecStart = '' + ${cfg.package.bin}/bin/caddy -root=/var/tmp -conf=${configFile} \ + -ca=${cfg.ca} -email=${cfg.email} ${optionalString cfg.agree "-agree"} ''; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; Type = "simple"; User = "caddy"; Group = "caddy"; + Restart = "on-failure"; + StartLimitInterval = 86400; + StartLimitBurst = 5; AmbientCapabilities = "cap_net_bind_service"; - LimitNOFILE = 8192; + CapabilityBoundingSet = "cap_net_bind_service"; + NoNewPrivileges = true; + LimitNPROC = 64; + LimitNOFILE = 1048576; + PrivateTmp = true; + PrivateDevices = true; + ProtectHome = true; + ProtectSystem = "full"; + ReadWriteDirectories = cfg.dataDir; }; }; diff --git a/nixos/modules/services/web-servers/lighttpd/collectd.nix b/nixos/modules/services/web-servers/lighttpd/collectd.nix new file mode 100644 index 00000000000..35b5edced68 --- /dev/null +++ b/nixos/modules/services/web-servers/lighttpd/collectd.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.lighttpd.collectd; + + collectionConf = pkgs.writeText "collection.conf" '' + datadir: "${config.services.collectd.dataDir}" + libdir: "${config.services.collectd.package}/lib/collectd" + ''; + + defaultCollectionCgi = config.services.collectd.package.overrideDerivation(old: { + name = "collection.cgi"; + configurePhase = "true"; + buildPhase = "true"; + installPhase = '' + substituteInPlace contrib/collection.cgi --replace '"/etc/collection.conf"' '$ENV{COLLECTION_CONF}' + cp contrib/collection.cgi $out + ''; + }); +in +{ + + options.services.lighttpd.collectd = { + + enable = mkEnableOption "collectd subservice accessible at http://yourserver/collectd"; + + collectionCgi = mkOption { + type = types.path; + default = defaultCollectionCgi; + description = '' + Path to collection.cgi script from (collectd sources)/contrib/collection.cgi + This option allows to use a customized version + ''; + }; + }; + + config = mkIf cfg.enable { + services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ]; + + services.lighttpd.extraConfig = '' + $HTTP["url"] =~ "^/collectd" { + cgi.assign = ( + ".cgi" => "${pkgs.perl}/bin/perl" + ) + alias.url = ( + "/collectd" => "${cfg.collectionCgi}" + ) + setenv.add-environment = ( + "PERL5LIB" => "${with pkgs; lib.makePerlPath [ perlPackages.CGI perlPackages.HTMLParser perlPackages.URI rrdtool ]}", + "COLLECTION_CONF" => "${collectionConf}" + ) + } + ''; + }; + +} diff --git a/nixos/modules/services/web-servers/lighttpd/default.nix b/nixos/modules/services/web-servers/lighttpd/default.nix index 84cd0a4095d..700b4469c56 100644 --- a/nixos/modules/services/web-servers/lighttpd/default.nix +++ b/nixos/modules/services/web-servers/lighttpd/default.nix @@ -15,7 +15,8 @@ let # Some modules are always imported and should not appear in the config: # disallowedModules = [ "mod_indexfile" "mod_dirlisting" "mod_staticfile" ]; # - # Get full module list: "ls -1 $lighttpd/lib/*.so" + # For full module list, see the output of running ./configure in the lighttpd + # source. allKnownModules = [ "mod_rewrite" "mod_redirect" @@ -37,16 +38,22 @@ let "mod_rrdtool" "mod_accesslog" # Remaining list of modules, order assumed to be unimportant. + "mod_authn_file" + "mod_authn_gssapi" + "mod_authn_ldap" + "mod_authn_mysql" "mod_cml" - "mod_dirlisting" + "mod_deflate" "mod_evasive" "mod_extforward" "mod_flv_streaming" + "mod_geoip" "mod_magnet" "mod_mysql_vhost" "mod_scgi" "mod_setenv" "mod_trigger_b4_dl" + "mod_uploadprogress" "mod_webdav" ]; @@ -86,14 +93,9 @@ let accesslog.use-syslog = "enable" server.errorlog-use-syslog = "enable" - mimetype.assign = ( - ".html" => "text/html", - ".htm" => "text/html", - ".txt" => "text/plain", - ".jpg" => "image/jpeg", - ".png" => "image/png", - ".css" => "text/css" - ) + ${lib.optionalString cfg.enableUpstreamMimeTypes '' + include "${pkgs.lighttpd}/share/lighttpd/doc/config/conf.d/mime.conf" + ''} static-file.exclude-extensions = ( ".fcgi", ".php", ".rb", "~", ".inc" ) index-file.names = ( "index.html" ) @@ -165,6 +167,17 @@ in ''; }; + enableUpstreamMimeTypes = mkOption { + type = types.bool; + default = true; + description = '' + Whether to include the list of mime types bundled with lighttpd + (upstream). If you disable this, no mime types will be added by + NixOS and you will have to add your own mime types in + . + ''; + }; + mod_status = mkOption { default = false; type = types.bool; @@ -177,7 +190,7 @@ in configText = mkOption { default = ""; type = types.lines; - example = ''...verbatim config file contents...''; + example = ''...verbatim config file contents...''; description = '' Overridable config file contents to use for lighttpd. By default, use the contents automatically generated by NixOS. diff --git a/nixos/modules/services/web-servers/minio.nix b/nixos/modules/services/web-servers/minio.nix new file mode 100644 index 00000000000..843f0d98687 --- /dev/null +++ b/nixos/modules/services/web-servers/minio.nix @@ -0,0 +1,111 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.minio; +in +{ + meta.maintainers = [ maintainers.bachp ]; + + options.services.minio = { + enable = mkEnableOption "Minio Object Storage"; + + listenAddress = mkOption { + default = ":9000"; + type = types.str; + description = "Listen on a specific IP address and port."; + }; + + dataDir = mkOption { + default = "/var/lib/minio/data"; + type = types.path; + description = "The data directory, for storing the objects."; + }; + + configDir = mkOption { + default = "/var/lib/minio/config"; + type = types.path; + description = "The config directory, for the access keys and other settings."; + }; + + accessKey = mkOption { + default = ""; + type = types.str; + description = '' + Access key of 5 to 20 characters in length that clients use to access the server. + This overrides the access key that is generated by minio on first startup and stored inside the + configDir directory. + ''; + }; + + secretKey = mkOption { + default = ""; + type = types.str; + description = '' + Specify the Secret key of 8 to 40 characters in length that clients use to access the server. + This overrides the secret key that is generated by minio on first startup and stored inside the + configDir directory. + ''; + }; + + region = mkOption { + default = "us-east-1"; + type = types.str; + description = '' + The physical location of the server. By default it is set to us-east-1, which is same as AWS S3's and Minio's default region. + ''; + }; + + browser = mkOption { + default = true; + type = types.bool; + description = "Enable or disable access to web UI."; + }; + + package = mkOption { + default = pkgs.minio; + defaultText = "pkgs.minio"; + type = types.package; + description = "Minio package to use."; + }; + }; + + config = mkIf cfg.enable { + systemd.services.minio = { + description = "Minio Object Storage"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + preStart = '' + # Make sure directories exist with correct owner + mkdir -p ${cfg.configDir} + chown -R minio:minio ${cfg.configDir} + mkdir -p ${cfg.dataDir} + chown minio:minio ${cfg.dataDir} + ''; + serviceConfig = { + PermissionsStartOnly = true; + ExecStart = "${cfg.package}/bin/minio server --address ${cfg.listenAddress} --config-dir=${cfg.configDir} ${cfg.dataDir}"; + Type = "simple"; + User = "minio"; + Group = "minio"; + LimitNOFILE = 65536; + }; + environment = { + MINIO_REGION = "${cfg.region}"; + MINIO_BROWSER = "${if cfg.browser then "on" else "off"}"; + } // optionalAttrs (cfg.accessKey != "") { + MINIO_ACCESS_KEY = "${cfg.accessKey}"; + } // optionalAttrs (cfg.secretKey != "") { + MINIO_SECRET_KEY = "${cfg.secretKey}"; + }; + }; + + users.extraUsers.minio = { + group = "minio"; + uid = config.ids.uids.minio; + }; + + users.extraGroups.minio.gid = config.ids.uids.minio; + }; +} diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index ae14aa28ae3..97511aac973 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -19,6 +19,24 @@ let ) cfg.virtualHosts; enableIPv6 = config.networking.enableIPv6; + recommendedProxyConfig = pkgs.writeText "nginx-recommended-proxy-headers.conf" '' + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header Accept-Encoding ""; + ''; + + upstreamConfig = toString (flip mapAttrsToList cfg.upstreams (name: upstream: '' + upstream ${name} { + ${toString (flip mapAttrsToList upstream.servers (name: server: '' + server ${name} ${optionalString server.backup "backup"}; + ''))} + } + '')); + configFile = pkgs.writeText "nginx.conf" '' user ${cfg.user} ${cfg.group}; error_log stderr; @@ -36,6 +54,12 @@ let http { include ${cfg.package}/conf/mime.types; include ${cfg.package}/conf/fastcgi.conf; + include ${cfg.package}/conf/uwsgi_params; + + ${optionalString (cfg.resolver.addresses != []) '' + resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"}; + ''} + ${upstreamConfig} ${optionalString (cfg.recommendedOptimisation) '' # optimisation @@ -65,24 +89,23 @@ let gzip_proxied any; gzip_comp_level 9; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + gzip_vary on; ''} ${optionalString (cfg.recommendedProxySettings) '' - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header Accept-Encoding ""; - proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_http_version 1.0; + include ${recommendedProxyConfig}; ''} + # $connection_upgrade is used for websocket proxying + map $http_upgrade $connection_upgrade { + default upgrade; + ''' close; + } client_max_body_size ${cfg.clientMaxBodySize}; server_tokens ${if cfg.serverTokens then "on" else "off"}; @@ -115,6 +138,7 @@ let http { include ${cfg.package}/conf/mime.types; include ${cfg.package}/conf/fastcgi.conf; + include ${cfg.package}/conf/uwsgi_params; ${cfg.httpConfig} }''} @@ -122,51 +146,69 @@ let ''; vhosts = concatStringsSep "\n" (mapAttrsToList (vhostName: vhost: - let - serverName = vhost.serverName; - ssl = vhost.enableSSL || vhost.forceSSL; - port = if vhost.port != null then vhost.port else (if ssl then 443 else 80); - listenString = toString port + optionalString ssl " ssl http2" - + optionalString vhost.default " default_server"; - acmeLocation = optionalString vhost.enableACME ('' + let + onlySSL = vhost.onlySSL || vhost.enableSSL; + hasSSL = onlySSL || vhost.addSSL || vhost.forceSSL; + + defaultListen = + if vhost.listen != [] then vhost.listen + else ((optionals hasSSL ( + singleton { addr = "0.0.0.0"; port = 443; ssl = true; } + ++ optional enableIPv6 { addr = "[::]"; port = 443; ssl = true; } + )) ++ optionals (!onlySSL) ( + singleton { addr = "0.0.0.0"; port = 80; ssl = false; } + ++ optional enableIPv6 { addr = "[::]"; port = 80; ssl = false; } + )); + + hostListen = + if vhost.forceSSL + then filter (x: x.ssl) defaultListen + else defaultListen; + + listenString = { addr, port, ssl, ... }: + "listen ${addr}:${toString port} " + + optionalString ssl "ssl http2 " + + optionalString vhost.default "default_server " + + ";"; + + redirectListen = filter (x: !x.ssl) defaultListen; + + acmeLocation = '' location /.well-known/acme-challenge { ${optionalString (vhost.acmeFallbackHost != null) "try_files $uri @acme-fallback;"} root ${vhost.acmeRoot}; auth_basic off; } - '' + (optionalString (vhost.acmeFallbackHost != null) '' - location @acme-fallback { - auth_basic off; - proxy_pass http://${vhost.acmeFallbackHost}; - } - '')); + ${optionalString (vhost.acmeFallbackHost != null) '' + location @acme-fallback { + auth_basic off; + proxy_pass http://${vhost.acmeFallbackHost}; + } + ''} + ''; + in '' ${optionalString vhost.forceSSL '' server { - listen 80 ${optionalString vhost.default "default_server"}; - ${optionalString enableIPv6 - ''listen [::]:80 ${optionalString vhost.default "default_server"};'' - } + ${concatMapStringsSep "\n" listenString redirectListen} - server_name ${serverName} ${concatStringsSep " " vhost.serverAliases}; - ${acmeLocation} + server_name ${vhost.serverName} ${concatStringsSep " " vhost.serverAliases}; + ${optionalString vhost.enableACME acmeLocation} location / { - return 301 https://$host${optionalString (port != 443) ":${toString port}"}$request_uri; + return 301 https://$host$request_uri; } } ''} server { - listen ${listenString}; - ${optionalString enableIPv6 "listen [::]:${listenString};"} - - server_name ${serverName} ${concatStringsSep " " vhost.serverAliases}; - ${acmeLocation} + ${concatMapStringsSep "\n" listenString hostListen} + server_name ${vhost.serverName} ${concatStringsSep " " vhost.serverAliases}; + ${optionalString vhost.enableACME acmeLocation} ${optionalString (vhost.root != null) "root ${vhost.root};"} ${optionalString (vhost.globalRedirect != null) '' - return 301 http${optionalString ssl "s"}://${vhost.globalRedirect}$request_uri; + return 301 http${optionalString hasSSL "s"}://${vhost.globalRedirect}$request_uri; ''} - ${optionalString ssl '' + ${optionalString hasSSL '' ssl_certificate ${vhost.sslCertificate}; ssl_certificate_key ${vhost.sslCertificateKey}; ''} @@ -181,12 +223,24 @@ let ) virtualHosts); mkLocations = locations: concatStringsSep "\n" (mapAttrsToList (location: config: '' location ${location} { - ${optionalString (config.proxyPass != null) "proxy_pass ${config.proxyPass};"} + ${optionalString (config.proxyPass != null && !cfg.proxyResolveWhileRunning) + "proxy_pass ${config.proxyPass};" + } + ${optionalString (config.proxyPass != null && cfg.proxyResolveWhileRunning) '' + set $nix_proxy_target "${config.proxyPass}"; + proxy_pass $nix_proxy_target; + ''} + ${optionalString config.proxyWebsockets '' + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + ''} ${optionalString (config.index != null) "index ${config.index};"} ${optionalString (config.tryFiles != null) "try_files ${config.tryFiles};"} ${optionalString (config.root != null) "root ${config.root};"} ${optionalString (config.alias != null) "alias ${config.alias};"} ${config.extraConfig} + ${optionalString (config.proxyPass != null && cfg.recommendedProxySettings) "include ${recommendedProxyConfig};"} } '') locations); mkBasicAuth = vhostName: authDef: let @@ -378,9 +432,74 @@ in description = "Path to DH parameters file."; }; + proxyResolveWhileRunning = mkOption { + type = types.bool; + default = false; + description = '' + Resolves domains of proxyPass targets at runtime + and not only at start, you have to set + services.nginx.resolver, too. + ''; + }; + + resolver = mkOption { + type = types.submodule { + options = { + addresses = mkOption { + type = types.listOf types.str; + default = []; + example = literalExample ''[ "[::1]" "127.0.0.1:5353" ]''; + description = "List of resolvers to use"; + }; + valid = mkOption { + type = types.str; + default = ""; + example = "30s"; + description = '' + By default, nginx caches answers using the TTL value of a response. + An optional valid parameter allows overriding it + ''; + }; + }; + }; + description = '' + Configures name servers used to resolve names of upstream servers into addresses + ''; + default = {}; + }; + + upstreams = mkOption { + type = types.attrsOf (types.submodule { + options = { + servers = mkOption { + type = types.attrsOf (types.submodule { + options = { + backup = mkOption { + type = types.bool; + default = false; + description = '' + Marks the server as a backup server. It will be passed + requests when the primary servers are unavailable. + ''; + }; + }; + }); + description = '' + Defines the address and other parameters of the upstream servers. + ''; + default = {}; + }; + }; + }); + description = '' + Defines a group of servers to use as proxy target. + ''; + default = {}; + }; + virtualHosts = mkOption { type = types.attrsOf (types.submodule (import ./vhost-options.nix { - inherit lib; + inherit config lib; })); default = { localhost = {}; @@ -404,11 +523,37 @@ in config = mkIf cfg.enable { # TODO: test user supplied config file pases syntax test - assertions = let hostOrAliasIsNull = l: l.root == null || l.alias == null; in [ + warnings = + let + deprecatedSSL = name: config: optional config.enableSSL + '' + config.services.nginx.virtualHosts..enableSSL is deprecated, + use config.services.nginx.virtualHosts..onlySSL instead. + ''; + + in flatten (mapAttrsToList deprecatedSSL virtualHosts); + + assertions = + let + hostOrAliasIsNull = l: l.root == null || l.alias == null; + in [ { assertion = all (host: all hostOrAliasIsNull (attrValues host.locations)) (attrValues virtualHosts); message = "Only one of nginx root or alias can be specified on a location."; } + + { + assertion = all (conf: with conf; + !(addSSL && (onlySSL || enableSSL)) && + !(forceSSL && (onlySSL || enableSSL)) && + !(addSSL && forceSSL) + ) (attrValues virtualHosts); + message = '' + Options services.nginx.service.virtualHosts..addSSL, + services.nginx.virtualHosts..onlySSL and services.nginx.virtualHosts..forceSSL + are mutually exclusive. + ''; + } ]; systemd.services.nginx = { diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix index 83ce0f71734..4c772734a74 100644 --- a/nixos/modules/services/web-servers/nginx/location-options.nix +++ b/nixos/modules/services/web-servers/nginx/location-options.nix @@ -14,7 +14,17 @@ with lib; default = null; example = "http://www.example.org/"; description = '' - Adds proxy_pass directive. + Adds proxy_pass directive and sets recommended proxy headers if + recommendedProxySettings is enabled. + ''; + }; + + proxyWebsockets = mkOption { + type = types.bool; + default = false; + example = true; + description = '' + Whether to supporty proxying websocket connections with HTTP/1.1. ''; }; diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix index c0ea645b3df..801601aafd9 100644 --- a/nixos/modules/services/web-servers/nginx/vhost-options.nix +++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix @@ -3,7 +3,7 @@ # has additional options that affect the web server as a whole, like # the user/group to run under.) -{ lib }: +{ config, lib }: with lib; { @@ -26,12 +26,22 @@ with lib; ''; }; - port = mkOption { - type = types.nullOr types.int; - default = null; + listen = mkOption { + type = with types; listOf (submodule { options = { + addr = mkOption { type = str; description = "IP address."; }; + port = mkOption { type = int; description = "Port number."; default = 80; }; + ssl = mkOption { type = bool; description = "Enable SSL."; default = false; }; + }; }); + default = []; + example = [ + { addr = "195.154.1.1"; port = 443; ssl = true;} + { addr = "192.154.1.1"; port = 80; } + ]; description = '' - Port for the server. Defaults to 80 for http - and 443 for https (i.e. when enableSSL is set). + Listen addresses and ports for this virtual host. + IPv6 addresses must be enclosed in square brackets. + Note: this option overrides addSSL + and onlySSL. ''; }; @@ -56,16 +66,40 @@ with lib; ''; }; - enableSSL = mkOption { + addSSL = mkOption { type = types.bool; default = false; - description = "Whether to enable SSL (https) support."; + description = '' + Whether to enable HTTPS in addition to plain HTTP. This will set defaults for + listen to listen on all interfaces on the respective default + ports (80, 443). + ''; + }; + + onlySSL = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable HTTPS and reject plain HTTP connections. This will set + defaults for listen to listen on all interfaces on port 443. + ''; + }; + + enableSSL = mkOption { + type = types.bool; + visible = false; + default = false; }; forceSSL = mkOption { type = types.bool; default = false; - description = "Whether to always redirect to https."; + description = '' + Whether to add a separate nginx server block that permanently redirects (301) + all plain HTTP traffic to HTTPS. This will set defaults for + listen to listen on all interfaces on the respective default + ports (80, 443), where the non-SSL listens are used for the redirect vhosts. + ''; }; sslCertificate = mkOption { @@ -108,10 +142,10 @@ with lib; globalRedirect = mkOption { type = types.nullOr types.str; default = null; - example = http://newserver.example.org/; + example = "newserver.example.org"; description = '' If set, all requests for this host are redirected permanently to - the given URL. + the given hostname. ''; }; diff --git a/nixos/modules/services/web-servers/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix index 26f54602203..e1f4ff5db7f 100644 --- a/nixos/modules/services/web-servers/phpfpm/default.nix +++ b/nixos/modules/services/web-servers/phpfpm/default.nix @@ -150,8 +150,8 @@ in { PrivateDevices = true; ProtectSystem = "full"; ProtectHome = true; - NoNewPrivileges = true; - RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6"; + # XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work + RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK"; Type = "notify"; ExecStart = "${cfg.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${phpIni}"; ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID"; diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix new file mode 100644 index 00000000000..4ede4fc2096 --- /dev/null +++ b/nixos/modules/services/web-servers/traefik.nix @@ -0,0 +1,115 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.traefik; + configFile = + if cfg.configFile == null then + pkgs.runCommand "config.toml" { + buildInputs = [ pkgs.remarshal ]; + } '' + remarshal -if json -of toml \ + < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ + > $out + '' + else cfg.configFile; + +in { + options.services.traefik = { + enable = mkEnableOption "Traefik web server"; + + configFile = mkOption { + default = null; + example = literalExample "/path/to/config.toml"; + type = types.nullOr types.path; + description = '' + Path to verbatim traefik.toml to use. + (Using that option has precedence over configOptions) + ''; + }; + + configOptions = mkOption { + description = '' + Config for Traefik. + ''; + type = types.attrs; + default = { + defaultEntryPoints = ["http"]; + entryPoints.http.address = ":80"; + }; + example = { + defaultEntrypoints = [ "http" ]; + web.address = ":8080"; + entryPoints.http.address = ":80"; + + file = {}; + frontends = { + frontend1 = { + backend = "backend1"; + routes.test_1.rule = "Host:localhost"; + }; + }; + backends.backend1 = { + servers.server1.url = "http://localhost:8000"; + }; + }; + }; + + dataDir = mkOption { + default = "/var/lib/traefik"; + type = types.path; + description = '' + Location for any persistent data traefik creates, ie. acme + ''; + }; + + package = mkOption { + default = pkgs.traefik; + defaultText = "pkgs.traefik"; + type = types.package; + description = "Traefik package to use."; + }; + }; + + config = mkIf cfg.enable { + systemd.services.traefik = { + description = "Traefik web server"; + after = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + PermissionsStartOnly = true; + ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}''; + ExecStartPre = [ + ''${pkgs.coreutils}/bin/mkdir -p "${cfg.dataDir}"'' + ''${pkgs.coreutils}/bin/chmod 700 "${cfg.dataDir}"'' + ''${pkgs.coreutils}/bin/chown -R traefik:traefik "${cfg.dataDir}"'' + ]; + Type = "simple"; + User = "traefik"; + Group = "traefik"; + Restart = "on-failure"; + StartLimitInterval = 86400; + StartLimitBurst = 5; + AmbientCapabilities = "cap_net_bind_service"; + CapabilityBoundingSet = "cap_net_bind_service"; + NoNewPrivileges = true; + LimitNPROC = 64; + LimitNOFILE = 1048576; + PrivateTmp = true; + PrivateDevices = true; + ProtectHome = true; + ProtectSystem = "full"; + ReadWriteDirectories = cfg.dataDir; + }; + }; + + users.extraUsers.traefik = { + group = "traefik"; + home = cfg.dataDir; + createHome = true; + }; + + users.extraGroups.traefik = {}; + }; +} diff --git a/nixos/modules/services/web-servers/varnish/default.nix b/nixos/modules/services/web-servers/varnish/default.nix index 61df43ec235..c3bc065d465 100644 --- a/nixos/modules/services/web-servers/varnish/default.nix +++ b/nixos/modules/services/web-servers/varnish/default.nix @@ -7,14 +7,10 @@ with lib; { options = { services.varnish = { - enable = mkOption { - default = false; - description = " - Enable the Varnish Server. - "; - }; + enable = mkEnableOption "Varnish Server"; http_address = mkOption { + type = types.str; default = "*:6081"; description = " HTTP listen address and port. @@ -22,17 +18,37 @@ with lib; }; config = mkOption { + type = types.lines; description = " Verbatim default.vcl configuration. "; }; stateDir = mkOption { + type = types.path; default = "/var/spool/varnish/${config.networking.hostName}"; description = " Directory holding all state for Varnish to run. "; }; + + extraModules = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.varnish-geoip ]"; + description = " + Varnish modules (except 'std'). + "; + }; + + extraCommandLine = mkOption { + type = types.str; + default = ""; + example = "-s malloc,256M"; + description = " + Command line switches for varnishd (run 'varnishd -?' to get list of options) + "; + }; }; }; @@ -42,6 +58,7 @@ with lib; systemd.services.varnish = { description = "Varnish"; wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; preStart = '' mkdir -p ${cfg.stateDir} chown -R varnish:varnish ${cfg.stateDir} @@ -49,9 +66,19 @@ with lib; postStop = '' rm -rf ${cfg.stateDir} ''; - path = [ pkgs.gcc ]; - serviceConfig.ExecStart = "${pkgs.varnish}/sbin/varnishd -a ${cfg.http_address} -f ${pkgs.writeText "default.vcl" cfg.config} -n ${cfg.stateDir} -u varnish"; - serviceConfig.Type = "forking"; + serviceConfig = { + Type = "simple"; + PermissionsStartOnly = true; + ExecStart = "${pkgs.varnish}/sbin/varnishd -a ${cfg.http_address} -f ${pkgs.writeText "default.vcl" cfg.config} -n ${cfg.stateDir} -F ${cfg.extraCommandLine}" + + optionalString (cfg.extraModules != []) " -p vmod_path='${makeSearchPathOutput "lib" "lib/varnish/vmods" ([pkgs.varnish] ++ cfg.extraModules)}' -r vmod_path"; + Restart = "always"; + RestartSec = "5s"; + User = "varnish"; + Group = "varnish"; + AmbientCapabilities = "cap_net_bind_service"; + NoNewPrivileges = true; + LimitNOFILE = 131072; + }; }; environment.systemPackages = [ pkgs.varnish ]; diff --git a/nixos/modules/services/x11/compton.nix b/nixos/modules/services/x11/compton.nix index d75d24830f8..8701354b528 100644 --- a/nixos/modules/services/x11/compton.nix +++ b/nixos/modules/services/x11/compton.nix @@ -7,6 +7,14 @@ let cfg = config.services.compton; + floatBetween = a: b: with lib; with types; + addCheck str (x: versionAtLeast x a && versionOlder x b); + + pairOf = x: with types; addCheck (listOf x) (y: lib.length y == 2); + + opacityRules = optionalString (length cfg.opacityRules != 0) + (concatMapStringsSep ",\n" (rule: ''"${rule}"'') cfg.opacityRules); + configFile = pkgs.writeText "compton.conf" (optionalString cfg.fade '' # fading @@ -30,7 +38,11 @@ let active-opacity = ${cfg.activeOpacity}; inactive-opacity = ${cfg.inactiveOpacity}; menu-opacity = ${cfg.menuOpacity}; - + + opacity-rule = [ + ${opacityRules} + ]; + # other options backend = ${toJSON cfg.backend}; vsync = ${toJSON cfg.vSync}; @@ -57,7 +69,7 @@ in { }; fadeDelta = mkOption { - type = types.int; + type = types.addCheck types.int (x: x > 0); default = 10; example = 5; description = '' @@ -66,11 +78,12 @@ in { }; fadeSteps = mkOption { - type = types.listOf types.str; + type = pairOf (floatBetween "0.01" "1.01"); default = [ "0.028" "0.03" ]; example = [ "0.04" "0.04" ]; description = '' Opacity change between fade steps (in and out). + (numbers in range 0.01 - 1.0) ''; }; @@ -97,7 +110,7 @@ in { }; shadowOffsets = mkOption { - type = types.listOf types.int; + type = pairOf types.int; default = [ (-15) (-15) ]; example = [ (-10) (-15) ]; description = '' @@ -106,11 +119,11 @@ in { }; shadowOpacity = mkOption { - type = types.str; + type = floatBetween "0.0" "1.01"; default = "0.75"; example = "0.8"; description = '' - Window shadows opacity (number in range 0 - 1). + Window shadows opacity (number in range 0.0 - 1.0). ''; }; @@ -129,52 +142,67 @@ in { }; activeOpacity = mkOption { - type = types.str; + type = floatBetween "0.0" "1.01"; default = "1.0"; example = "0.8"; description = '' - Opacity of active windows. + Opacity of active windows (number in range 0.0 - 1.0). ''; }; inactiveOpacity = mkOption { - type = types.str; + type = floatBetween "0.1" "1.01"; default = "1.0"; example = "0.8"; description = '' - Opacity of inactive windows. + Opacity of inactive windows (number in range 0.1 - 1.0). ''; }; menuOpacity = mkOption { - type = types.str; + type = floatBetween "0.0" "1.01"; default = "1.0"; example = "0.8"; description = '' - Opacity of dropdown and popup menu. + Opacity of dropdown and popup menu (number in range 0.0 - 1.0). + ''; + }; + + opacityRules = mkOption { + type = types.listOf types.str; + default = []; + example = [ + "95:class_g = 'URxvt' && !_NET_WM_STATE@:32a" + "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" + ]; + description = '' + Rules that control the opacity of windows, in format PERCENT:PATTERN. ''; }; backend = mkOption { - type = types.str; - default = "glx"; + type = types.enum [ "glx" "xrender" ]; + default = "xrender"; description = '' Backend to use: glx or xrender. ''; }; vSync = mkOption { - type = types.str; - default = "none"; - example = "opengl-swc"; - description = '' - Enable vertical synchronization using the specified method. - See compton(1) man page available methods. - ''; + type = types.enum [ + "none" "drm" "opengl" + "opengl-oml" "opengl-swc" "opengl-mswc" + ]; + default = "none"; + example = "opengl-swc"; + description = '' + Enable vertical synchronization using the specified method. + See compton(1) man page an explanation. + ''; }; refreshRate = mkOption { - type = types.int; + type = types.addCheck types.int (x: x >= 0); default = 0; example = 60; description = '' @@ -208,13 +236,13 @@ in { config = mkIf cfg.enable { systemd.user.services.compton = { description = "Compton composite manager"; - wantedBy = [ "default.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; serviceConfig = { ExecStart = "${cfg.package}/bin/compton --config ${configFile}"; RestartSec = 3; Restart = "always"; }; - environment.DISPLAY = ":0"; }; environment.systemPackages = [ cfg.package ]; diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index af01f6acad1..13f339e3fbf 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -8,7 +8,7 @@ let cfg = xcfg.desktopManager; # If desktop manager `d' isn't capable of setting a background and - # the xserver is enabled, the `feh' program is used as a fallback. + # the xserver is enabled, `feh' or `xsetroot' are used as a fallback. needBGCond = d: ! (d ? bgSupport && d.bgSupport) && xcfg.enable; in @@ -19,13 +19,42 @@ in # E.g., if Plasma 5 is enabled, it supersedes xterm. imports = [ ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix - ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix + ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix + ./mate.nix ]; options = { services.xserver.desktopManager = { + wallpaper = { + mode = mkOption { + type = types.enum [ "center" "fill" "max" "scale" "tile" ]; + default = "scale"; + example = "fill"; + description = '' + The file ~/.background-image is used as a background image. + This option specifies the placement of this image onto your desktop. + + Possible values: + center: Center the image on the background. If it is too small, it will be surrounded by a black border. + fill: Like scale, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off. + max: Like fill, but scale the image to the maximum size that fits the screen with black borders on one side. + scale: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either. + tile: Tile (repeat) the image in case it is too small for the screen. + ''; + }; + + combineScreens = mkOption { + type = types.bool; + default = false; + description = '' + When set to true the wallpaper will stretch across all screens. + When set to false the wallpaper is duplicated to all screens. + ''; + }; + }; + session = mkOption { internal = true; default = []; @@ -44,8 +73,11 @@ in manage = "desktop"; start = d.start + optionalString (needBGCond d) '' - if test -e $HOME/.background-image; then - ${pkgs.feh}/bin/feh --bg-scale $HOME/.background-image + if [ -e $HOME/.background-image ]; then + ${pkgs.feh}/bin/feh --bg-${cfg.wallpaper.mode} ${optionalString cfg.wallpaper.combineScreens "--no-xinerama"} $HOME/.background-image + else + # Use a solid black background as fallback + ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black fi ''; }) list; @@ -80,6 +112,6 @@ in config = { services.xserver.displayManager.session = cfg.session.list; environment.systemPackages = - mkIf cfg.session.needBGPackages [ pkgs.feh ]; + mkIf cfg.session.needBGPackages [ pkgs.feh ]; # xsetroot via xserver.enable }; } diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index a1790ccd675..ecf0abb1efd 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -4,7 +4,6 @@ with lib; let cfg = config.services.xserver.desktopManager.gnome3; - gnome3 = config.environment.gnome3.packageSet; # Remove packages of ys from xs, based on their names removePackagesByName = xs: ys: @@ -28,17 +27,17 @@ let nixos-gsettings-desktop-schemas = pkgs.runCommand "nixos-gsettings-desktop-schemas" {} '' mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas - cp -rf ${gnome3.gsettings_desktop_schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + cp -rf ${pkgs.gnome3.gsettings_desktop_schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas ${concatMapStrings (pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n") cfg.extraGSettingsOverridePackages} chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF [org.gnome.desktop.background] - picture-uri='${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png' + picture-uri='${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png' [org.gnome.desktop.screensaver] - picture-uri='${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png' + picture-uri='${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png' ${cfg.extraGSettingsOverrides} EOF @@ -61,7 +60,7 @@ in { example = literalExample "[ pkgs.gnome3.gpaste ]"; description = "Additional list of packages to be added to the session search path. Useful for gnome shell extensions or gsettings-conditionated autostart."; - apply = list: list ++ [ gnome3.gnome_shell gnome3.gnome-shell-extensions ]; + apply = list: list ++ [ pkgs.gnome3.gnome_shell pkgs.gnome3.gnome-shell-extensions ]; }; extraGSettingsOverrides = mkOption { @@ -79,13 +78,6 @@ in { debug = mkEnableOption "gnome-session debug messages"; }; - environment.gnome3.packageSet = mkOption { - default = null; - example = literalExample "pkgs.gnome3_22"; - description = "Which GNOME 3 package set to use."; - apply = p: if p == null then pkgs.gnome3 else p; - }; - environment.gnome3.excludePackages = mkOption { default = []; example = literalExample "[ pkgs.gnome3.totem ]"; @@ -104,6 +96,7 @@ in { services.geoclue2.enable = mkDefault true; services.gnome3.at-spi2-core.enable = true; services.gnome3.evolution-data-server.enable = true; + services.gnome3.gnome-disks.enable = mkDefault true; services.gnome3.gnome-documents.enable = mkDefault true; services.gnome3.gnome-keyring.enable = true; services.gnome3.gnome-online-accounts.enable = mkDefault true; @@ -123,6 +116,7 @@ in { hardware.bluetooth.enable = mkDefault true; services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center services.udev.packages = [ pkgs.gnome3.gnome_settings_daemon ]; + systemd.packages = [ pkgs.gnome3.vino ]; # If gnome3 is installed, build vim for gtk3 too. nixpkgs.config.vim.gui = "gtk3"; @@ -167,25 +161,26 @@ in { # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update - ${gnome3.gnome_session}/bin/gnome-session ${optionalString cfg.debug "--debug"} & + ${pkgs.gnome3.gnome_session}/bin/gnome-session ${optionalString cfg.debug "--debug"} & waitPID=$! ''; }; services.xserver.updateDbusEnvironment = true; - environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" - "${gnome3.glib_networking.out}/lib/gio/modules" - "${gnome3.gvfs}/lib/gio/modules" ]; - environment.systemPackages = gnome3.corePackages ++ cfg.sessionPath - ++ (removePackagesByName gnome3.optionalPackages config.environment.gnome3.excludePackages); + environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules" + "${pkgs.gnome3.glib_networking.out}/lib/gio/modules" + "${pkgs.gnome3.gvfs}/lib/gio/modules" ]; + environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath + ++ (removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages); # Use the correct gnome3 packageSet networking.networkmanager.basePackages = { inherit (pkgs) networkmanager modemmanager wpa_supplicant; - inherit (gnome3) networkmanager_openvpn networkmanager_vpnc - networkmanager_openconnect networkmanager_pptp - networkmanager_l2tp; }; + inherit (pkgs.gnome3) networkmanager_openvpn networkmanager_vpnc + networkmanager_openconnect networkmanager_fortisslvpn + networkmanager_pptp networkmanager_iodine + networkmanager_l2tp; }; # Needed for themes and backgrounds environment.pathsToLink = [ "/share" ]; diff --git a/nixos/modules/services/x11/desktop-managers/lumina.nix b/nixos/modules/services/x11/desktop-managers/lumina.nix index ec5fbb13b32..5fe84cfb82e 100644 --- a/nixos/modules/services/x11/desktop-managers/lumina.nix +++ b/nixos/modules/services/x11/desktop-managers/lumina.nix @@ -33,7 +33,6 @@ in environment.systemPackages = [ pkgs.fluxbox pkgs.libsForQt5.kwindowsystem - pkgs.kdeFrameworks.oxygen-icons5 pkgs.lumina pkgs.numlockx pkgs.qt5.qtsvg diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix index 89ad2882363..fb907618d35 100644 --- a/nixos/modules/services/x11/desktop-managers/lxqt.nix +++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix @@ -41,7 +41,7 @@ in name = "lxqt"; bgSupport = true; start = '' - exec ${pkgs.lxqt.lxqt-common}/bin/startlxqt + exec ${pkgs.lxqt.lxqt-session}/bin/startlxqt ''; }; diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix new file mode 100644 index 00000000000..ab8a0a48b48 --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/mate.nix @@ -0,0 +1,80 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + # Remove packages of ys from xs, based on their names + removePackagesByName = xs: ys: + let + pkgName = drv: (builtins.parseDrvName drv.name).name; + ysNames = map pkgName ys; + in + filter (x: !(builtins.elem (pkgName x) ysNames)) xs; + + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.mate; + +in + +{ + options = { + + services.xserver.desktopManager.mate.enable = mkOption { + type = types.bool; + default = false; + description = "Enable the MATE desktop environment"; + }; + + environment.mate.excludePackages = mkOption { + default = []; + example = literalExample "[ pkgs.mate.mate-terminal pkgs.mate.pluma ]"; + type = types.listOf types.package; + description = "Which MATE packages to exclude from the default environment"; + }; + + }; + + config = mkIf (xcfg.enable && cfg.enable) { + + services.xserver.desktopManager.session = singleton { + name = "mate"; + bgSupport = true; + start = '' + # Set GTK_DATA_PREFIX so that GTK+ can find the themes + export GTK_DATA_PREFIX=${config.system.path} + + # Find theme engines + export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0 + + export XDG_MENU_PREFIX=mate + + # Find the mouse + export XCURSOR_PATH=~/.icons:${config.system.path}/share/icons + + # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ + ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update + + ${pkgs.mate.mate-session-manager}/bin/mate-session & + waitPID=$! + ''; + }; + + environment.systemPackages = + pkgs.mate.basePackages ++ + (removePackagesByName + pkgs.mate.extraPackages + config.environment.mate.excludePackages); + + services.dbus.packages = [ + pkgs.gnome3.dconf + pkgs.at_spi2_core + ]; + + services.gnome3.gnome-keyring.enable = true; + services.upower.enable = config.powerManagement.enable; + + environment.pathsToLink = [ "/share" ]; + }; + +} diff --git a/nixos/modules/services/x11/desktop-managers/maxx.nix b/nixos/modules/services/x11/desktop-managers/maxx.nix new file mode 100644 index 00000000000..d7bd2fc5eb0 --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/maxx.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.maxx; +in { + options.services.xserver.desktopManager.maxx = { + enable = mkEnableOption "MaXX desktop environment"; + }; + + config = mkIf (xcfg.enable && cfg.enable) { + environment.systemPackages = [ pkgs.maxx ]; + + services.xserver.desktopManager.session = [ + { name = "MaXX"; + start = '' + exec ${pkgs.maxx}/opt/MaXX/etc/skel/Xsession.dt + ''; + }]; + }; + + meta.maintainers = [ maintainers.gnidorah ]; +} diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index d981cd5328e..685a93d952b 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -7,7 +7,7 @@ let xcfg = config.services.xserver; cfg = xcfg.desktopManager.plasma5; - inherit (pkgs) kdeWrapper kdeApplications plasma5 libsForQt5 qt5 xorg; + inherit (pkgs) kdeApplications plasma5 libsForQt5 qt5 xorg; in @@ -30,24 +30,12 @@ in ''; }; - extraPackages = mkOption { - type = types.listOf types.package; - default = []; - description = '' - KDE packages that need to be installed system-wide. - ''; - }; - }; }; config = mkMerge [ - (mkIf (cfg.extraPackages != []) { - environment.systemPackages = [ (kdeWrapper cfg.extraPackages) ]; - }) - (mkIf (xcfg.enable && cfg.enable) { services.xserver.desktopManager.session = singleton { name = "plasma5"; @@ -59,13 +47,13 @@ in ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1" ''} - exec "${plasma5.startkde}" + exec "${getBin plasma5.plasma-workspace}/bin/startkde" ''; }; security.wrappers = { - kcheckpass.source = "${plasma5.plasma-workspace.out}/lib/libexec/kcheckpass"; - "start_kdeinit".source = "${pkgs.kinit.out}/lib/libexec/kf5/start_kdeinit"; + kcheckpass.source = "${lib.getBin plasma5.plasma-workspace}/lib/libexec/kcheckpass"; + "start_kdeinit".source = "${lib.getBin pkgs.kinit}/lib/libexec/kf5/start_kdeinit"; }; environment.systemPackages = with pkgs; with qt5; with libsForQt5; with plasma5; with kdeApplications; @@ -139,10 +127,14 @@ in plasma-workspace plasma-workspace-wallpapers + dolphin dolphin-plugins ffmpegthumbs kdegraphics-thumbnailers + khelpcenter kio-extras + konsole + oxygen print-manager breeze-icons @@ -150,7 +142,8 @@ in kde-gtk-config breeze-gtk - phonon-backend-gstreamer + libsForQt56.phonon-backend-gstreamer + libsForQt5.phonon-backend-gstreamer ] ++ lib.optionals cfg.enableQt4Support [ breeze-qt4 pkgs.phonon-backend-gstreamer ] @@ -163,16 +156,6 @@ in ++ lib.optional config.services.colord.enable colord-kde ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]; - services.xserver.desktopManager.plasma5.extraPackages = - with kdeApplications; with plasma5; - [ - khelpcenter - oxygen - - dolphin - konsole - ]; - environment.pathsToLink = [ "/share" ]; environment.etc = singleton { @@ -192,7 +175,7 @@ in serif = [ "Noto Serif" ]; }; - programs.ssh.askPassword = "${plasma5.ksshaskpass.out}/bin/ksshaskpass"; + programs.ssh.askPassword = mkDefault "${plasma5.ksshaskpass.out}/bin/ksshaskpass"; # Enable helpful DBus services. services.udisks2.enable = true; @@ -207,8 +190,7 @@ in ]; services.xserver.displayManager.sddm = { - theme = "breeze"; - package = pkgs.sddmPlasma5; + theme = mkDefault "breeze"; }; security.pam.services.kde = { allowNullPassword = true; }; diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 4e2c0e01ca0..3fa482fb672 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -32,8 +32,32 @@ let '' #! ${pkgs.bash}/bin/bash - # Handle being called by SDDM. - if test "''${1:0:1}" = / ; then eval exec $1 $2 ; fi + # Expected parameters: + # $1 = + + + # Actual parameters (FIXME): + # SDDM is calling this script like the following: + # $1 = /nix/store/xxx-xsession (= $0) + # $2 = + + # SLiM is using the following parameter: + # $1 = /nix/store/xxx-xsession + + # LightDM keeps the double quotes: + # $1 = /nix/store/xxx-xsession "+" + # The fake/auto display manager doesn't use any parameters and GDM is + # broken. + # If you want to "debug" this script don't print the parameters to stdout + # or stderr because this script will be executed multiple times and the + # output won't be visible in the log when the script is executed for the + # first time (e.g. append them to a file instead)! + + # All of the above cases are handled by the following hack (FIXME). + # Since this line is *very important* for *all display managers* it is + # very important to test changes to the following line with all display + # managers: + if [ "''${1:0:1}" = "/" ]; then eval exec "$1" "$2" ; fi + + # Now it should be safe to assume that the script was called with the + # expected parameters. ${optionalString cfg.displayManager.logToJournal '' if [ -z "$_DID_SYSTEMD_CAT" ]; then @@ -68,9 +92,12 @@ let ${config.hardware.pulseaudio.package.out}/bin/pactl load-module module-x11-publish "display=$DISPLAY" ''} - # Tell systemd about our $DISPLAY. This is needed by the - # ssh-agent unit. - ${config.systemd.package}/bin/systemctl --user import-environment DISPLAY + # Tell systemd about our $DISPLAY and $XAUTHORITY. + # This is needed by the ssh-agent unit. + # + # Also tell systemd about the dbus session bus address. + # This is required by user units using the session bus. + ${config.systemd.package}/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS # Load X defaults. ${xorg.xrdb}/bin/xrdb -merge ${xresourcesXft} @@ -98,6 +125,9 @@ let source ~/.xprofile fi + # Start systemd user services for graphical sessions + ${config.systemd.package}/bin/systemctl --user start graphical-session.target + # Allow the user to setup a custom session type. if test -x ~/.xsession; then exec ~/.xsession @@ -107,15 +137,16 @@ let fi fi - # The session type is " + ", so - # extract those. - windowManager="''${sessionType##* + }" + # The session type is "+", so + # extract those (see: + # http://wiki.bash-hackers.org/syntax/pe#substring_removal). + windowManager="''${sessionType##*+}" : ''${windowManager:=${cfg.windowManager.default}} - desktopManager="''${sessionType% + *}" + desktopManager="''${sessionType%%+*}" : ''${desktopManager:=${cfg.desktopManager.default}} # Start the window manager. - case $windowManager in + case "$windowManager" in ${concatMapStrings (s: '' (${s.name}) ${s.start} @@ -125,7 +156,7 @@ let esac # Start the desktop manager. - case $desktopManager in + case "$desktopManager" in ${concatMapStrings (s: '' (${s.name}) ${s.start} @@ -139,9 +170,15 @@ let ''} test -n "$waitPID" && wait "$waitPID" + + ${config.systemd.package}/bin/systemctl --user stop graphical-session.target + exit 0 ''; + # Desktop Entry Specification: + # - https://standards.freedesktop.org/desktop-entry-spec/latest/ + # - https://standards.freedesktop.org/desktop-entry-spec/latest/ar01s06.html mkDesktops = names: pkgs.runCommand "desktops" { # trivial derivation preferLocalBuild = true; @@ -155,7 +192,7 @@ let Version=1.0 Type=XSession TryExec=${cfg.displayManager.session.script} - Exec=${cfg.displayManager.session.script} '${n}' + Exec=${cfg.displayManager.session.script} "${n}" X-GDM-BypassXsession=true Name=${n} Comment= @@ -238,7 +275,7 @@ in wm = filter (s: s.manage == "window") list; dm = filter (s: s.manage == "desktop") list; names = flip concatMap dm - (d: map (w: d.name + optionalString (w.name != "none") (" + " + w.name)) + (d: map (w: d.name + optionalString (w.name != "none") ("+" + w.name)) (filter (w: d.name != "none" || w.name != "none") wm)); desktops = mkDesktops names; script = xsession wm dm; @@ -297,6 +334,13 @@ in config = { services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X"; + + systemd.user.targets.graphical-session = { + unitConfig = { + RefuseManualStart = false; + StopWhenUnneeded = false; + }; + }; }; imports = [ diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index 6c63fede857..e83f26516f5 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -5,8 +5,7 @@ with lib; let cfg = config.services.xserver.displayManager; - gnome3 = config.environment.gnome3.packageSet; - gdm = gnome3.gdm; + gdm = pkgs.gnome3.gdm; in @@ -65,6 +64,14 @@ in }; }; + wayland = mkOption { + default = true; + description = '' + Allow GDM run on Wayland instead of Xserver + ''; + type = types.bool; + }; + }; }; @@ -95,6 +102,7 @@ in # GDM needs different xserverArgs, presumable because using wayland by default. services.xserver.tty = null; services.xserver.display = null; + services.xserver.verbose = null; services.xserver.displayManager.job = { @@ -103,16 +111,32 @@ in (filter (arg: arg != "-terminate") cfg.xserverArgs); GDM_SESSIONS_DIR = "${cfg.session.desktops}"; # Find the mouse - XCURSOR_PATH = "~/.icons:${config.system.path}/share/icons"; + XCURSOR_PATH = "~/.icons:${pkgs.gnome3.adwaita-icon-theme}/share/icons"; }; execCmd = "exec ${gdm}/bin/gdm"; }; # Because sd_login_monitor_new requires /run/systemd/machines systemd.services.display-manager.wants = [ "systemd-machined.service" ]; - systemd.services.display-manager.after = [ "systemd-machined.service" ]; + systemd.services.display-manager.after = [ + "rc-local.service" + "systemd-machined.service" + "systemd-user-sessions.service" + "getty@tty1.service" + ]; - systemd.services.display-manager.path = [ gnome3.gnome_session ]; + systemd.services."getty@tty1".enable = false; + systemd.services.display-manager.conflicts = [ "getty@tty1.service" ]; + systemd.services.display-manager.serviceConfig = { + # Restart = "always"; - already defined in xserver.nix + KillMode = "mixed"; + IgnoreSIGPIPE = "no"; + BusName = "org.gnome.DisplayManager"; + StandardOutput = "syslog"; + StandardError = "inherit"; + }; + + systemd.services.display-manager.path = [ pkgs.gnome3.gnome_session ]; services.dbus.packages = [ gdm ]; @@ -125,6 +149,7 @@ in # presented and there's a little delay. environment.etc."gdm/custom.conf".text = '' [daemon] + WaylandEnable=${if cfg.gdm.wayland then "true" else "false"} ${optionalString cfg.gdm.autoLogin.enable ( if cfg.gdm.autoLogin.delay > 0 then '' TimedLoginEnable=true @@ -171,7 +196,7 @@ in auth required pam_env.so envfile=${config.system.build.pamEnvironment} auth required pam_succeed_if.so uid >= 1000 quiet - auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so + auth optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth ${optionalString config.security.pam.enableEcryptfs "auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"} @@ -191,7 +216,7 @@ in "session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"} session required pam_loginuid.so session optional ${pkgs.systemd}/lib/security/pam_systemd.so - session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start + session optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start ''; gdm-password.text = '' @@ -199,7 +224,7 @@ in auth required pam_env.so envfile=${config.system.build.pamEnvironment} auth required pam_succeed_if.so uid >= 1000 quiet - auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so + auth optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth ${optionalString config.security.pam.enableEcryptfs "auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"} @@ -218,7 +243,7 @@ in "session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"} session required pam_loginuid.so session optional ${pkgs.systemd}/lib/security/pam_systemd.so - session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start + session optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start ''; gdm-autologin.text = '' diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 82b9a2fce5a..1733f2fd39b 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -61,7 +61,7 @@ let let dm = xcfg.desktopManager.default; wm = xcfg.windowManager.default; - in dm + optionalString (wm != "none") (" + " + wm); + in dm + optionalString (wm != "none") ("+" + wm); in { # Note: the order in which lightdm greeter modules are imported @@ -111,7 +111,7 @@ in background = mkOption { type = types.str; - default = "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png"; + default = "${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png"; description = '' The background image or color to use. ''; diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 99c03ca81c2..facaea131ae 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -9,7 +9,7 @@ let cfg = dmcfg.sddm; xEnv = config.systemd.services."display-manager".environment; - sddm = cfg.package; + inherit (pkgs) sddm; xserverWrapper = pkgs.writeScript "xserver-wrapper" '' #!/bin/sh @@ -19,6 +19,17 @@ let Xsetup = pkgs.writeScript "Xsetup" '' #!/bin/sh + + # Prior to Qt 5.9.2, there is a QML cache invalidation bug which sometimes + # strikes new Plasma 5 releases. If the QML cache is not invalidated, SDDM + # will segfault without explanation. We really tore our hair out for awhile + # before finding the bug: + # https://bugreports.qt.io/browse/QTBUG-62302 + # We work around the problem by deleting the QML cache before startup. It + # will be regenerated, causing a small but perceptible delay when SDDM + # starts. + rm -fr /var/lib/sddm/.cache/sddm-greeter/qmlcache + ${cfg.setupScript} ''; @@ -37,8 +48,8 @@ let [Theme] Current=${cfg.theme} - ThemeDir=${sddm}/share/sddm/themes - FacesDir=${sddm}/share/sddm/faces + ThemeDir=/run/current-system/sw/share/sddm/themes + FacesDir=/run/current-system/sw/share/sddm/faces [Users] MaximumUid=${toString config.ids.uids.nixbld} @@ -69,7 +80,7 @@ let let dm = xcfg.desktopManager.default; wm = xcfg.windowManager.default; - in dm + optionalString (wm != "none") (" + " + wm); + in dm + optionalString (wm != "none") ("+" + wm); in { @@ -105,15 +116,6 @@ in ''; }; - package = mkOption { - type = types.package; - default = pkgs.sddm; - description = '' - The SDDM package to install. - The default package can be overridden to provide extra themes. - ''; - }; - autoNumlock = mkOption { type = types.bool; default = false; @@ -205,7 +207,15 @@ in services.xserver.displayManager.job = { logsXsession = true; - execCmd = "exec ${sddm}/bin/sddm"; + environment = { + # Load themes from system environment + QT_PLUGIN_PATH = "/run/current-system/sw/" + pkgs.qt5.qtbase.qtPluginPrefix; + QML2_IMPORT_PATH = "/run/current-system/sw/" + pkgs.qt5.qtbase.qtQmlPrefix; + + XDG_DATA_DIRS = "/run/current-system/sw/share"; + }; + + execCmd = "exec /run/current-system/sw/bin/sddm"; }; security.pam.services = { @@ -254,7 +264,8 @@ in users.extraGroups.sddm.gid = config.ids.gids.sddm; - services.dbus.packages = [ sddm.unwrapped ]; + environment.systemPackages = [ sddm ]; + services.dbus.packages = [ sddm ]; # To enable user switching, allow sddm to allocate TTYs/displays dynamically. services.xserver.tty = null; diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix index 05b979eef47..0c4dd1973b5 100644 --- a/nixos/modules/services/x11/display-managers/slim.nix +++ b/nixos/modules/services/x11/display-managers/slim.nix @@ -17,6 +17,7 @@ let login_cmd exec ${pkgs.stdenv.shell} ${dmcfg.session.script} "%session" halt_cmd ${config.systemd.package}/sbin/shutdown -h now reboot_cmd ${config.systemd.package}/sbin/shutdown -r now + logfile /dev/stderr ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)} ${optionalString (cfg.defaultUser != null) ("focus_password yes")} ${optionalString cfg.autoLogin "auto_login yes"} @@ -128,11 +129,7 @@ in config = mkIf cfg.enable { services.xserver.displayManager.job = - { preStart = - '' - rm -f /var/log/slim.log - ''; - environment = + { environment = { SLIM_CFGFILE = slimConfig; SLIM_THEMESDIR = slimThemesDir; }; diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix index e60dd876526..8f5ce3dccc6 100644 --- a/nixos/modules/services/x11/display-managers/xpra.nix +++ b/nixos/modules/services/x11/display-managers/xpra.nix @@ -34,6 +34,12 @@ in }; pulseaudio = mkEnableOption "pulseaudio audio streaming."; + + extraOptions = mkOption { + description = "Extra xpra options"; + default = []; + type = types.listOf types.str; + }; }; }; @@ -233,7 +239,8 @@ in --socket-dirs=/var/run/xpra \ --xvfb="xpra_Xdummy ${concatStringsSep " " dmcfg.xserverArgs}" \ ${optionalString (cfg.bindTcp != null) "--bind-tcp=${cfg.bindTcp}"} \ - --auth=${cfg.auth} + --auth=${cfg.auth} \ + ${concatStringsSep " " cfg.extraOptions} ''; }; diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix index d75c785270b..44555cb6e2a 100644 --- a/nixos/modules/services/x11/hardware/libinput.nix +++ b/nixos/modules/services/x11/hardware/libinput.nix @@ -75,12 +75,13 @@ in { default = null; description = '' - Enables a click method. Permitted values are none, buttonareas, clickfinger. + Enables a click method. Permitted values are none, + buttonareas, clickfinger. Not all devices support all methods, if an option is unsupported, - the default click method for this device is used. + the default click method for this device is used. ''; }; - + leftHanded = mkOption { type = types.bool; default = false; @@ -96,7 +97,7 @@ in { simultaneously produces a middle mouse button click. ''; }; - + naturalScrolling = mkOption { type = types.bool; default = false; @@ -120,7 +121,8 @@ in { example = "edge"; description = '' - Specify the scrolling method. + Specify the scrolling method: twofinger, edge, + or none ''; }; @@ -141,7 +143,8 @@ in { example = "disabled"; description = '' - Sets the send events mode to disabled, enabled, or "disable when an external mouse is connected". + Sets the send events mode to disabled, enabled, + or disabled-on-external-mouse ''; }; diff --git a/nixos/modules/services/x11/hardware/synaptics.nix b/nixos/modules/services/x11/hardware/synaptics.nix index 54454c736c1..f032c593885 100644 --- a/nixos/modules/services/x11/hardware/synaptics.nix +++ b/nixos/modules/services/x11/hardware/synaptics.nix @@ -29,7 +29,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = "Whether to enable touchpad support."; + description = "Whether to enable touchpad support. Deprecated: Consider services.xserver.libinput.enable."; }; dev = mkOption { diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix index eb5dfdf9584..30d853841ea 100644 --- a/nixos/modules/services/x11/redshift.nix +++ b/nixos/modules/services/x11/redshift.nix @@ -19,18 +19,31 @@ in { }; latitude = mkOption { - type = types.str; + type = types.nullOr types.str; + default = null; description = '' Your current latitude, between - -90.0 and 90.0. + -90.0 and 90.0. Must be provided + along with longitude. ''; }; longitude = mkOption { - type = types.str; + type = types.nullOr types.str; + default = null; description = '' Your current longitude, between - between -180.0 and 180.0. + between -180.0 and 180.0. Must be + provided along with latitude. + ''; + }; + + provider = mkOption { + type = types.enum [ "manual" "geoclue2" ]; + default = "manual"; + description = '' + The location provider to use for determining your location. If set to + manual you must also provide latitude/longitude. ''; }; @@ -93,13 +106,33 @@ in { }; config = mkIf cfg.enable { - systemd.user.services.redshift = { + assertions = [ + { + assertion = + if cfg.provider == "manual" + then (cfg.latitude != null && cfg.longitude != null) + else (cfg.latitude == null && cfg.longitude == null); + message = "Latitude and longitude must be provided together, and with provider set to null."; + } + ]; + + services.geoclue2.enable = mkIf (cfg.provider == "geoclue2") true; + + systemd.user.services.redshift = + let + providerString = + if cfg.provider == "manual" + then "${cfg.latitude}:${cfg.longitude}" + else cfg.provider; + in + { description = "Redshift colour temperature adjuster"; - wantedBy = [ "default.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; serviceConfig = { ExecStart = '' ${cfg.package}/bin/redshift \ - -l ${cfg.latitude}:${cfg.longitude} \ + -l ${providerString} \ -t ${toString cfg.temperature.day}:${toString cfg.temperature.night} \ -b ${toString cfg.brightness.day}:${toString cfg.brightness.night} \ ${lib.strings.concatStringsSep " " cfg.extraOptions} @@ -107,12 +140,6 @@ in { RestartSec = 3; Restart = "always"; }; - environment = { - DISPLAY = ":${toString ( - let display = config.services.xserver.display; - in if display != null then display else 0 - )}"; - }; }; }; diff --git a/nixos/modules/services/x11/unclutter-xfixes.nix b/nixos/modules/services/x11/unclutter-xfixes.nix index b94dfb1a26a..71262431b68 100644 --- a/nixos/modules/services/x11/unclutter-xfixes.nix +++ b/nixos/modules/services/x11/unclutter-xfixes.nix @@ -43,7 +43,8 @@ in { config = mkIf cfg.enable { systemd.user.services.unclutter-xfixes = { description = "unclutter-xfixes"; - wantedBy = [ "graphical.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; serviceConfig.ExecStart = '' ${cfg.package}/bin/unclutter \ --timeout ${toString cfg.timeout} \ diff --git a/nixos/modules/services/x11/unclutter.nix b/nixos/modules/services/x11/unclutter.nix index a22e5ac2c95..5f16a680050 100644 --- a/nixos/modules/services/x11/unclutter.nix +++ b/nixos/modules/services/x11/unclutter.nix @@ -56,19 +56,17 @@ in { config = mkIf cfg.enable { systemd.user.services.unclutter = { description = "unclutter"; - wantedBy = [ "default.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; serviceConfig.ExecStart = '' ${cfg.package}/bin/unclutter \ -idle ${toString cfg.timeout} \ - -display :${toString ( - let display = config.services.xserver.display; - in if display != null then display else 0 - )} \ -jitter ${toString (cfg.threeshold - 1)} \ ${optionalString cfg.keystroke "-keystroke"} \ ${concatMapStrings (x: " -"+x) cfg.extraOptions} \ -not ${concatStringsSep " " cfg.excluded} \ ''; + serviceConfig.PassEnvironment = "DISPLAY"; serviceConfig.RestartSec = 3; serviceConfig.Restart = "always"; }; diff --git a/nixos/modules/services/x11/urxvtd.nix b/nixos/modules/services/x11/urxvtd.nix index 57ad93f2017..f2ce089ce19 100644 --- a/nixos/modules/services/x11/urxvtd.nix +++ b/nixos/modules/services/x11/urxvtd.nix @@ -21,9 +21,8 @@ in { systemd.user = { sockets.urxvtd = { description = "socket for urxvtd, the urxvt terminal daemon"; - after = [ "graphical.target" ]; - wants = [ "graphical.target" ]; - wantedBy = [ "sockets.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; socketConfig = { ListenStream = "%t/urxvtd-socket"; }; diff --git a/nixos/modules/services/x11/window-managers/compiz.nix b/nixos/modules/services/x11/window-managers/compiz.nix deleted file mode 100644 index 539a83f9906..00000000000 --- a/nixos/modules/services/x11/window-managers/compiz.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.services.xserver.windowManager.compiz; - xorg = config.services.xserver.package; - -in - -{ - - options = { - - services.xserver.windowManager.compiz = { - - enable = mkEnableOption "compiz"; - - renderingFlag = mkOption { - default = ""; - example = "--indirect-rendering"; - description = "Pass the flag to Compiz."; - }; - - }; - - }; - - - config = mkIf cfg.enable { - - services.xserver.windowManager.session = singleton - { name = "compiz"; - start = - '' - # Start Compiz using the flat-file configuration backend - # (ccp). - export COMPIZ_PLUGINDIR=${config.system.path}/lib/compiz - export COMPIZ_METADATADIR=${config.system.path}/share/compiz - ${pkgs.compiz}/bin/compiz ccp ${cfg.renderingFlag} & - - # Start GTK-style window decorator. - ${pkgs.compiz}/bin/gtk-window-decorator & - ''; - }; - - environment.systemPackages = - [ pkgs.compiz - pkgs.compiz_ccsm - pkgs.compiz_plugins_main - pkgs.compiz_plugins_extra - pkgs.libcompizconfig # for the "ccp" plugin - ]; - - environment.pathsToLink = [ "/lib/compiz" "/share/compiz" ]; - - }; - -} diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index 32ef34bdad2..d12003768a6 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -11,7 +11,6 @@ in ./2bwm.nix ./afterstep.nix ./bspwm.nix - ./compiz.nix ./dwm.nix ./exwm.nix ./fluxbox.nix diff --git a/nixos/modules/services/x11/window-managers/i3.nix b/nixos/modules/services/x11/window-managers/i3.nix index f9c75e80db4..c9b0669e7ba 100644 --- a/nixos/modules/services/x11/window-managers/i3.nix +++ b/nixos/modules/services/x11/window-managers/i3.nix @@ -36,6 +36,21 @@ in i3 package to use. ''; }; + + extraPackages = mkOption { + type = with types; listOf package; + default = with pkgs; [ dmenu i3status i3lock ]; + example = literalExample '' + with pkgs; [ + dmenu + i3status + i3lock + ] + ''; + description = '' + Extra packages to be installed system wide. + ''; + }; }; config = mkIf cfg.enable { @@ -50,7 +65,7 @@ in waitPID=$! ''; }]; - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages; }; imports = [ diff --git a/nixos/modules/services/x11/window-managers/qtile.nix b/nixos/modules/services/x11/window-managers/qtile.nix index 37f84f0903c..ad3b65150b0 100644 --- a/nixos/modules/services/x11/window-managers/qtile.nix +++ b/nixos/modules/services/x11/window-managers/qtile.nix @@ -15,7 +15,7 @@ in services.xserver.windowManager.session = [{ name = "qtile"; start = '' - ${pkgs.qtile}/bin/qtile + ${pkgs.qtile}/bin/qtile & waitPID=$! ''; }]; diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix index e25a8ae2282..43de746ab1f 100644 --- a/nixos/modules/services/x11/window-managers/xmonad.nix +++ b/nixos/modules/services/x11/window-managers/xmonad.nix @@ -29,6 +29,7 @@ in extraPackages = mkOption { default = self: []; + defaultText = "self: []"; example = literalExample '' haskellPackages: [ haskellPackages.xmonad-contrib diff --git a/nixos/modules/services/x11/xautolock.nix b/nixos/modules/services/x11/xautolock.nix new file mode 100644 index 00000000000..28fc92024bc --- /dev/null +++ b/nixos/modules/services/x11/xautolock.nix @@ -0,0 +1,136 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.xautolock; +in + { + options = { + services.xserver.xautolock = { + enable = mkEnableOption "xautolock"; + enableNotifier = mkEnableOption "xautolock.notify" // { + description = '' + Whether to enable the notifier feature of xautolock. + This publishes a notification before the autolock. + ''; + }; + + time = mkOption { + default = 15; + type = types.int; + + description = '' + Idle time to wait until xautolock locks the computer. + ''; + }; + + locker = mkOption { + default = "xlock"; # default according to `man xautolock` + example = "i3lock -i /path/to/img"; + type = types.string; + + description = '' + The script to use when automatically locking the computer. + ''; + }; + + nowlocker = mkOption { + default = null; + example = "i3lock -i /path/to/img"; + type = types.nullOr types.string; + + description = '' + The script to use when manually locking the computer with xautolock -locknow. + ''; + }; + + notify = mkOption { + default = 10; + type = types.int; + + description = '' + Time (in seconds) before the actual lock when the notification about the pending lock should be published. + ''; + }; + + notifier = mkOption { + default = null; + example = literalExample '' + "${pkgs.libnotify}/bin/notify-send \"Locking in 10 seconds\"" + ''; + type = types.nullOr types.string; + + description = '' + Notification script to be used to warn about the pending autolock. + ''; + }; + + killer = mkOption { + default = null; # default according to `man xautolock` is none + example = "systemctl suspend"; + type = types.nullOr types.string; + + description = '' + The script to use when nothing has happend for as long as + ''; + }; + + killtime = mkOption { + default = 20; # default according to `man xautolock` + type = types.int; + + description = '' + Minutes xautolock waits until it executes the script specified in + (Has to be at least 10 minutes) + ''; + }; + + extraOptions = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "-detectsleep" ]; + description = '' + Additional command-line arguments to pass to + xautolock. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ xautolock ]; + systemd.user.services.xautolock = { + description = "xautolock service"; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + serviceConfig = with lib; { + ExecStart = strings.concatStringsSep " " ([ + "${pkgs.xautolock}/bin/xautolock" + "-noclose" + "-time ${toString cfg.time}" + "-locker '${cfg.locker}'" + ] ++ optionals cfg.enableNotifier [ + "-notify ${toString cfg.notify}" + "-notifier '${cfg.notifier}'" + ] ++ optionals (cfg.nowlocker != null) [ + "-nowlocker '${cfg.nowlocker}'" + ] ++ optionals (cfg.killer != null) [ + "-killer '${cfg.killer}'" + "-killtime ${toString cfg.killtime}" + ] ++ cfg.extraOptions); + Restart = "always"; + }; + }; + assertions = [ + { + assertion = cfg.enableNotifier -> cfg.notifier != null; + message = "When enabling the notifier for xautolock, you also need to specify the notify script"; + } + { + assertion = cfg.killer != null -> cfg.killtime >= 10; + message = "killtime has to be at least 10 minutes according to `man xautolock`"; + } + ]; + }; + } diff --git a/nixos/modules/services/x11/xbanish.nix b/nixos/modules/services/x11/xbanish.nix index e1e3cbc8e44..b95fac68f16 100644 --- a/nixos/modules/services/x11/xbanish.nix +++ b/nixos/modules/services/x11/xbanish.nix @@ -20,7 +20,8 @@ in { config = mkIf cfg.enable { systemd.user.services.xbanish = { description = "xbanish hides the mouse pointer"; - wantedBy = [ "default.target" ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; serviceConfig.ExecStart = '' ${pkgs.xbanish}/bin/xbanish ${cfg.arguments} ''; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 8438e6dcc70..d4fe475690c 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -31,18 +31,51 @@ let pkgs.xorg.fontadobe75dpi ]; + xrandrOptions = { + output = mkOption { + type = types.str; + example = "DVI-0"; + description = '' + The output name of the monitor, as shown by + xrandr + 1 + invoked without arguments. + ''; + }; + + primary = mkOption { + type = types.bool; + default = false; + description = '' + Whether this head is treated as the primary monitor, + ''; + }; + + monitorConfig = mkOption { + type = types.lines; + default = ""; + example = '' + DisplaySize 408 306 + Option "DPMS" "false" + ''; + description = '' + Extra lines to append to the Monitor section + verbatim. + ''; + }; + }; # Just enumerate all heads without discarding XRandR output information. xrandrHeads = let - mkHead = num: output: { + mkHead = num: config: { name = "multihead${toString num}"; - inherit output; + inherit config; }; - in imap mkHead cfg.xrandrHeads; + in imap1 mkHead cfg.xrandrHeads; xrandrDeviceSection = let monitors = flip map xrandrHeads (h: '' - Option "monitor-${h.output}" "${h.name}" + Option "monitor-${h.config.output}" "${h.name}" ''); # First option is indented through the space in the config but any # subsequent options aren't so we need to apply indentation to @@ -62,9 +95,13 @@ let value = '' Section "Monitor" Identifier "${current.name}" + ${optionalString (current.config.primary) '' + Option "Primary" "true" + ''} ${optionalString (previous != []) '' Option "RightOf" "${(head previous).name}" ''} + ${current.config.monitorConfig} EndSection ''; } ++ previous; @@ -258,7 +295,7 @@ in type = types.str; default = "us"; description = '' - Keyboard layout. + Keyboard layout, or multiple keyboard layouts separated by commas. ''; }; @@ -329,13 +366,39 @@ in xrandrHeads = mkOption { default = []; - example = [ "HDMI-0" "DVI-0" ]; - type = with types; listOf string; + example = [ + "HDMI-0" + { output = "DVI-0"; primary = true; } + { output = "DVI-1"; monitorConfig = "Option \"Rotate\" \"left\""; } + ]; + type = with types; listOf (coercedTo str (output: { + inherit output; + }) (submodule { options = xrandrOptions; })); + # Set primary to true for the first head if no other has been set + # primary already. + apply = heads: let + hasPrimary = any (x: x.primary) heads; + firstPrimary = head heads // { primary = true; }; + newHeads = singleton firstPrimary ++ tail heads; + in if heads != [] && !hasPrimary then newHeads else heads; description = '' - Simple multiple monitor configuration, just specify a list of XRandR - outputs which will be mapped from left to right in the order of the + Multiple monitor configuration, just specify a list of XRandR + outputs. The individual elements should be either simple strings or + an attribute set of output options. + + If the element is a string, it is denoting the physical output for a + monitor, if it's an attribute set, you must at least provide the + option. + + The monitors will be mapped from left to right in the order of the list. + By default, the first monitor will be set as the primary monitor if + none of the elements contain an option that has set + to true. + + Only one monitor is allowed to be primary. + Be careful using this option with multiple graphic adapters or with drivers that have poor support for XRandR, unexpected things might happen with those. @@ -417,6 +480,15 @@ in ''; }; + verbose = mkOption { + type = types.nullOr types.int; + default = 3; + example = 7; + description = '' + Controls verbosity of X logging. + ''; + }; + useGlamor = mkOption { type = types.bool; default = false; @@ -469,11 +541,18 @@ in nixpkgs.config.xorg = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { abiCompat = "1.18"; }; - assertions = - [ { assertion = config.security.polkit.enable; - message = "X11 requires Polkit to be enabled (‘security.polkit.enable = true’)."; - } - ]; + assertions = [ + { assertion = config.security.polkit.enable; + message = "X11 requires Polkit to be enabled (‘security.polkit.enable = true’)."; + } + (let primaryHeads = filter (x: x.primary) cfg.xrandrHeads; in { + assertion = length primaryHeads < 2; + message = "Only one head is allowed to be primary in " + + "‘services.xserver.xrandrHeads’, but there are " + + "${toString (length primaryHeads)} heads set to primary: " + + concatMapStringsSep ", " (x: x.output) primaryHeads; + }) + ]; environment.etc = (optionals cfg.exportConfiguration @@ -561,10 +640,11 @@ in [ "-config ${configFile}" "-xkbdir" "${cfg.xkbDir}" # Log at the default verbosity level to stderr rather than /var/log/X.*.log. - "-verbose" "3" "-logfile" "/dev/null" + "-logfile" "/dev/null" ] ++ optional (cfg.display != null) ":${toString cfg.display}" ++ optional (cfg.tty != null) "vt${toString cfg.tty}" ++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}" + ++ optional (cfg.verbose != null) "-verbose ${toString cfg.verbose}" ++ optional (!cfg.enableTCP) "-nolisten tcp" ++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}" ++ optional (cfg.autoRepeatInterval != null) "-arinterval ${toString cfg.autoRepeatInterval}" @@ -578,6 +658,14 @@ in services.xserver.xkbDir = mkDefault "${pkgs.xkeyboard_config}/etc/X11/xkb"; + system.extraDependencies = singleton (pkgs.runCommand "xkb-validated" { + inherit (cfg) xkbModel layout xkbVariant xkbOptions; + nativeBuildInputs = [ pkgs.xkbvalidate ]; + } '' + validate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions" + touch "$out" + ''); + services.xserver.config = '' Section "ServerFlags" diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl index 88e7847cf8c..29cc60b0032 100644 --- a/nixos/modules/system/activation/switch-to-configuration.pl +++ b/nixos/modules/system/activation/switch-to-configuration.pl @@ -147,11 +147,16 @@ my $activePrev = getActiveUnits; while (my ($unit, $state) = each %{$activePrev}) { my $baseUnit = $unit; - # Recognise template instances. - $baseUnit = "$1\@.$2" if $unit =~ /^(.*)@[^\.]*\.(.*)$/; my $prevUnitFile = "/etc/systemd/system/$baseUnit"; my $newUnitFile = "$out/etc/systemd/system/$baseUnit"; + # Detect template instances. + if (!-e $prevUnitFile && !-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) { + $baseUnit = "$1\@.$2"; + $prevUnitFile = "/etc/systemd/system/$baseUnit"; + $newUnitFile = "$out/etc/systemd/system/$baseUnit"; + } + my $baseName = $baseUnit; $baseName =~ s/\.[a-z]*$//; diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix index e9897cc01b6..67cb2264e3f 100644 --- a/nixos/modules/system/activation/top-level.nix +++ b/nixos/modules/system/activation/top-level.nix @@ -141,6 +141,7 @@ in system.build = mkOption { internal = true; default = {}; + type = types.attrs; description = '' Attribute set of derivations used to setup the system. ''; diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index cf70a891c0c..4db9631743e 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -193,11 +193,6 @@ in "sd_mod" "sr_mod" - # Standard IDE stuff. - "ide_cd" - "ide_disk" - "ide_generic" - # SD cards and internal eMMC drives. "mmc_block" @@ -211,21 +206,11 @@ in "xhci_hcd" "xhci_pci" "usbhid" - "hid_generic" "hid_lenovo" - "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat" + "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" # Misc. keyboard stuff. "pcips2" "atkbd" "i8042" - # Temporary fix for https://github.com/NixOS/nixpkgs/issues/18451 - # Remove as soon as upstream gets fixed - marking it: - # TODO - # FIXME - "i8042" - - # To wait for SCSI devices to appear. - "scsi_wait_scan" - # Needed by the stage 2 init script. "rtc_cmos" ]; diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 2d6bf2d58a9..9056121fa7d 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -64,11 +64,21 @@ let )) + ":" + (makeSearchPathOutput "bin" "sbin" [ pkgs.mdadm pkgs.utillinux ]); + font = if lib.last (lib.splitString "." cfg.font) == "pf2" + then cfg.font + else "${convertedFont}"; }); bootDeviceCounters = fold (device: attr: attr // { "${device}" = (attr."${device}" or 0) + 1; }) {} (concatMap (args: args.devices) cfg.mirroredBoots); + convertedFont = (pkgs.runCommand "grub-font-converted.pf2" {} + (builtins.concatStringsSep " " + ([ "${realGrub}/bin/grub-mkfont" + cfg.font + "--output" "$out" + ] ++ (optional (cfg.fontSize!=null) "--size ${toString cfg.fontSize}"))) + ); in { @@ -239,6 +249,12 @@ in menuentry "Windows 7" { chainloader (hd0,4)+1 } + + # GRUB 2 with UEFI example, chainloading another distro + menuentry "Fedora" { + set root=(hd1,1) + chainloader /efi/fedora/grubx64.efi + } ''; description = '' Any additional entries you want added to the GRUB boot menu. @@ -270,7 +286,7 @@ in extraInitrd = mkOption { type = types.nullOr types.path; default = null; - example = "/boot/extra_initrafms.gz"; + example = "/boot/extra_initramfs.gz"; description = '' The path to a second initramfs to be supplied to the kernel. This ramfs will not be copied to the store, so that it can @@ -299,6 +315,24 @@ in ''; }; + font = mkOption { + type = types.nullOr types.path; + default = "${realGrub}/share/grub/unicode.pf2"; + description = '' + Path to a TrueType, OpenType, or pf2 font to be used by Grub. + ''; + }; + + fontSize = mkOption { + type = types.nullOr types.int; + example = literalExample 16; + default = null; + description = '' + Font size for the grub menu. Ignored unless font + is set to a ttf or otf font. + ''; + }; + gfxmodeEfi = mkOption { default = "auto"; example = "1024x768"; @@ -483,7 +517,7 @@ in sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59"; } # GRUB 1.97 doesn't support gzipped XPMs. - else "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png"); + else "${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/artwork/gnome/Gnome_Dark.png"); } (mkIf cfg.enable { diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl index 5fcac5c8c6a..cc03e54ead6 100644 --- a/nixos/modules/system/boot/loader/grub/install-grub.pl +++ b/nixos/modules/system/boot/loader/grub/install-grub.pl @@ -67,6 +67,7 @@ my $gfxmodeEfi = get("gfxmodeEfi"); my $gfxmodeBios = get("gfxmodeBios"); my $bootloaderId = get("bootloaderId"); my $forceInstall = get("forceInstall"); +my $font = get("font"); $ENV{'PATH'} = get("path"); die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2; @@ -120,8 +121,8 @@ sub GetFs { my $device = $fields[$n + 1]; my @superOptions = split /,/, $fields[$n + 2]; - # Skip the read-only bind-mount on /nix/store. - next if $mountPoint eq "/nix/store" && (grep { $_ eq "rw" } @superOptions) && (grep { $_ eq "ro" } @mountOptions); + # Skip the bind-mount on /nix/store. + next if $mountPoint eq "/nix/store" && (grep { $_ eq "rw" } @superOptions); # Skip mount point generated by systemd-efi-boot-generator? next if $fsType eq "autofs"; @@ -196,7 +197,7 @@ sub GrubFs { if ($status != 0) { die "Failed to retrieve subvolume info for @{[$fs->mount]}\n"; } - my @ids = join("", @id_info) =~ m/Subvolume ID:[ \t\n]*([^ \t\n]*)/; + my @ids = join("\n", @id_info) =~ m/^(?!\/\n).*Subvolume ID:[ \t\n]*([0-9]+)/s; if ($#ids > 0) { die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n" } elsif ($#ids == 0) { @@ -281,7 +282,7 @@ else { insmod vbe fi insmod font - if loadfont " . $grubBoot->path . "/grub/fonts/unicode.pf2; then + if loadfont " . $grubBoot->path . "/converted-font.pf2; then insmod gfxterm if [ \"\${grub_platform}\" = \"efi\" ]; then set gfxmode=$gfxmodeEfi @@ -294,6 +295,9 @@ else { fi "; + if ($font) { + copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath\n"; + } if ($splashImage) { # FIXME: GRUB 1.97 doesn't resize the background image if it # doesn't match the video resolution. diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index 704c574b822..3333569c36b 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -2,41 +2,54 @@ import argparse import shutil import os +import sys import errno import subprocess import glob import tempfile import errno import warnings +import ctypes +libc = ctypes.CDLL("libc.so.6") +import re +import datetime +import glob +import os.path def copy_if_not_exists(source, dest): if not os.path.exists(dest): shutil.copyfile(source, dest) -def system_dir(generation): - return "/nix/var/nix/profiles/system-%d-link" % (generation) +def system_dir(profile, generation): + if profile: + return "/nix/var/nix/profiles/system-profiles/%s-%d-link" % (profile, generation) + else: + return "/nix/var/nix/profiles/system-%d-link" % (generation) -BOOT_ENTRY = """title NixOS -version Generation {generation} +BOOT_ENTRY = """title NixOS{profile} +version Generation {generation} {description} linux {kernel} initrd {initrd} options {kernel_params} """ -def write_loader_conf(generation): +def write_loader_conf(profile, generation): with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f: if "@timeout@" != "": f.write("timeout @timeout@\n") - f.write("default nixos-generation-%d\n" % generation) + if profile: + f.write("default nixos-%s-generation-%d\n" % (profile, generation)) + else: + f.write("default nixos-generation-%d\n" % (generation)) if not @editor@: f.write("editor 0"); os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf") -def profile_path(generation, name): - return os.readlink("%s/%s" % (system_dir(generation), name)) +def profile_path(profile, generation, name): + return os.readlink("%s/%s" % (system_dir(profile, generation), name)) -def copy_from_profile(generation, name, dry_run=False): - store_file_path = profile_path(generation, name) +def copy_from_profile(profile, generation, name, dry_run=False): + store_file_path = profile_path(profile, generation, name) suffix = os.path.basename(store_file_path) store_dir = os.path.basename(os.path.dirname(store_file_path)) efi_file_path = "/efi/nixos/%s-%s.efi" % (store_dir, suffix) @@ -44,25 +57,51 @@ def copy_from_profile(generation, name, dry_run=False): copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path)) return efi_file_path -def write_entry(generation, machine_id): - kernel = copy_from_profile(generation, "kernel") - initrd = copy_from_profile(generation, "initrd") +def describe_generation(generation_dir): try: - append_initrd_secrets = profile_path(generation, "append-initrd-secrets") + with open("%s/nixos-version" % generation_dir) as f: + nixos_version = f.read() + except IOError: + nixos_version = "Unknown" + + kernel_dir = os.path.dirname(os.path.realpath("%s/kernel" % generation_dir)) + module_dir = glob.glob("%s/lib/modules/*" % kernel_dir)[0] + kernel_version = os.path.basename(module_dir) + + build_time = int(os.path.getctime(generation_dir)) + build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F') + + description = "NixOS {}, Linux Kernel {}, Built on {}".format( + nixos_version, kernel_version, build_date + ) + + return description + +def write_entry(profile, generation, machine_id): + kernel = copy_from_profile(profile, generation, "kernel") + initrd = copy_from_profile(profile, generation, "initrd") + try: + append_initrd_secrets = profile_path(profile, generation, "append-initrd-secrets") subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)]) except FileNotFoundError: pass - entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation) - generation_dir = os.readlink(system_dir(generation)) + if profile: + entry_file = "@efiSysMountPoint@/loader/entries/nixos-%s-generation-%d.conf" % (profile, generation) + else: + entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation) + generation_dir = os.readlink(system_dir(profile, generation)) tmp_path = "%s.tmp" % (entry_file) kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir) + with open("%s/kernel-params" % (generation_dir)) as params_file: kernel_params = kernel_params + params_file.read() with open(tmp_path, 'w') as f: - f.write(BOOT_ENTRY.format(generation=generation, + f.write(BOOT_ENTRY.format(profile=" [" + profile + "]" if profile else "", + generation=generation, kernel=kernel, initrd=initrd, - kernel_params=kernel_params)) + kernel_params=kernel_params, + description=describe_generation(generation_dir))) if machine_id is not None: f.write("machine-id %s\n" % machine_id) os.rename(tmp_path, entry_file) @@ -74,29 +113,33 @@ def mkdir_p(path): if e.errno != errno.EEXIST or not os.path.isdir(path): raise -def get_generations(profile): +def get_generations(profile=None): gen_list = subprocess.check_output([ "@nix@/bin/nix-env", "--list-generations", "-p", - "/nix/var/nix/profiles/%s" % (profile), + "/nix/var/nix/profiles/%s" % ("system-profiles/" + profile if profile else "system"), "--option", "build-users-group", ""], universal_newlines=True) gen_lines = gen_list.split('\n') gen_lines.pop() - return [ int(line.split()[0]) for line in gen_lines ] + return [ (profile, int(line.split()[0])) for line in gen_lines ] def remove_old_entries(gens): - slice_start = len("@efiSysMountPoint@/loader/entries/nixos-generation-") - slice_end = -1 * len(".conf") + rex_profile = re.compile("^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$") + rex_generation = re.compile("^@efiSysMountPoint@/loader/entries/nixos.*-generation-(.*)\.conf$") known_paths = [] for gen in gens: - known_paths.append(copy_from_profile(gen, "kernel", True)) - known_paths.append(copy_from_profile(gen, "initrd", True)) - for path in glob.iglob("@efiSysMountPoint@/loader/entries/nixos-generation-[1-9]*.conf"): + known_paths.append(copy_from_profile(*gen, "kernel", True)) + known_paths.append(copy_from_profile(*gen, "initrd", True)) + for path in glob.iglob("@efiSysMountPoint@/loader/entries/nixos*-generation-[1-9]*.conf"): try: - gen = int(path[slice_start:slice_end]) - if not gen in gens: + if rex_profile.match(path): + prof = rex_profile.sub(r"\1", path) + else: + prof = "system" + gen = int(rex_generation.sub(r"\1", path)) + if not (prof, gen) in gens: os.unlink(path) except ValueError: pass @@ -104,6 +147,14 @@ def remove_old_entries(gens): if not path in known_paths: os.unlink(path) +def get_profiles(): + if os.path.isdir("/nix/var/nix/profiles/system-profiles/"): + return [x + for x in os.listdir("/nix/var/nix/profiles/system-profiles/") + if not x.endswith("-link")] + else: + return [] + def main(): parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files') parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot') @@ -138,12 +189,22 @@ def main(): mkdir_p("@efiSysMountPoint@/efi/nixos") mkdir_p("@efiSysMountPoint@/loader/entries") - gens = get_generations("system") + gens = get_generations() + for profile in get_profiles(): + gens += get_generations(profile) remove_old_entries(gens) for gen in gens: - write_entry(gen, machine_id) - if os.readlink(system_dir(gen)) == args.default_config: - write_loader_conf(gen) + write_entry(*gen, machine_id) + if os.readlink(system_dir(*gen)) == args.default_config: + write_loader_conf(*gen) + + # Since fat32 provides little recovery facilities after a crash, + # it can leave the system in an unbootable state, when a crash/outage + # happens shortly after an update. To decrease the likelihood of this + # event sync the efi filesystem after each update. + rc = libc.syncfs(os.open("@efiSysMountPoint@", os.O_RDONLY)) + if rc != 0: + print("could not sync @efiSysMountPoint@: {}".format(os.strerror(rc)), file=sys.stderr) if __name__ == '__main__': main() diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index 6e867b67439..06f004fb06e 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -235,13 +235,23 @@ in ''; }; + boot.initrd.luks.forceLuksSupportInInitrd = mkOption { + type = types.bool; + default = false; + internal = true; + description = '' + Whether to configure luks support in the initrd, when no luks + devices are configured. + ''; + }; + boot.initrd.luks.devices = mkOption { default = { }; example = { "luksroot".device = "/dev/disk/by-uuid/430e9eff-d852-4f68-aa3b-2fa3599ebe08"; }; description = '' The encrypted disk that should be opened before the root filesystem is mounted. Both LVM-over-LUKS and LUKS-over-LVM - setups are sypported. The unencrypted devices can be accessed as + setups are supported. The unencrypted devices can be accessed as /dev/mapper/name. ''; @@ -417,7 +427,7 @@ in }; }; - config = mkIf (luks.devices != {}) { + config = mkIf (luks.devices != {} || luks.forceLuksSupportInInitrd) { # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested boot.blacklistedKernelModules = optionals luks.mitigateDMAAttacks @@ -434,7 +444,7 @@ in #!$out/bin/sh -e if [ -e /.luksopen_args ]; then cryptsetup \$(cat /.luksopen_args) - killall cryptsetup + killall -q cryptsetup else echo "Passphrase is not requested now" exit 1 diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index f96dde15361..9d2cea3ad16 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -94,7 +94,7 @@ let checkNetwork = checkUnitConfig "Network" [ (assertOnlyFields [ "Description" "DHCP" "DHCPServer" "IPForward" "IPMasquerade" "IPv4LL" "IPv4LLRoute" - "LLMNR" "Domains" "Bridge" "Bond" + "LLMNR" "MulticastDNS" "Domains" "Bridge" "Bond" ]) (assertValueOneOf "DHCP" ["both" "none" "v4" "v6"]) (assertValueOneOf "DHCPServer" boolValues) @@ -103,6 +103,7 @@ let (assertValueOneOf "IPv4LL" boolValues) (assertValueOneOf "IPv4LLRoute" boolValues) (assertValueOneOf "LLMNR" boolValues) + (assertValueOneOf "MulticastDNS" boolValues) ]; checkAddress = checkUnitConfig "Address" [ @@ -141,6 +142,18 @@ let (assertValueOneOf "EmitTimezone" boolValues) ]; + # .network files have a [Link] section with different options than in .netlink files + checkNetworkLink = checkUnitConfig "Link" [ + (assertOnlyFields [ + "MACAddress" "MTUBytes" "ARP" "Unmanaged" + ]) + (assertMacAddress "MACAddress") + (assertByteFormat "MTUBytes") + (assertValueOneOf "ARP" boolValues) + (assertValueOneOf "Unmanaged" boolValues) + ]; + + commonNetworkOptions = { enable = mkOption { @@ -370,6 +383,18 @@ let ''; }; + linkConfig = mkOption { + default = {}; + example = { Unmanaged = true; }; + type = types.addCheck (types.attrsOf unitOption) checkNetworkLink; + description = '' + Each attribute in this set specifies an option in the + [Link] section of the unit. See + systemd.network + 5 for details. + ''; + }; + name = mkOption { type = types.nullOr types.str; default = null; @@ -580,6 +605,12 @@ let { inherit (def) enable; text = commonMatchText def + '' + ${optionalString (def.linkConfig != { }) '' + [Link] + ${attrsToSection def.linkConfig} + + ''} + [Network] ${attrsToSection def.networkConfig} ${concatStringsSep "\n" (map (s: "Address=${s}") def.address)} diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index d45b1686c1e..0938d22a45b 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -72,7 +72,7 @@ in environment.systemPackages = [ plymouth ]; environment.etc."plymouth/plymouthd.conf".source = configFile; - environment.etc."plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouth.defaults"; + environment.etc."plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults"; environment.etc."plymouth/logo.png".source = cfg.logo; environment.etc."plymouth/themes".source = "${themesEnv}/share/plymouth/themes"; # XXX: Needed because we supply a different set of plugins in initrd. diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix index a3fb733c289..2147d43c4f1 100644 --- a/nixos/modules/system/boot/resolved.nix +++ b/nixos/modules/system/boot/resolved.nix @@ -31,8 +31,15 @@ in example = [ "example.com" ]; type = types.listOf types.str; description = '' - A list of domains. These domains are used as search suffixes when resolving single-label host names (domain names which contain no dot), in order to qualify them into fully-qualified domain names (FQDNs). - For compatibility reasons, if this setting is not specified, the search domains listed in /etc/resolv.conf are used instead, if that file exists and any domains are configured in it. + A list of domains. These domains are used as search suffixes + when resolving single-label host names (domain names which + contain no dot), in order to qualify them into fully-qualified + domain names (FQDNs). +
+ For compatibility reasons, if this setting is not specified, + the search domains listed in + /etc/resolv.conf are used instead, if + that file exists and any domains are configured in it. ''; }; @@ -41,10 +48,30 @@ in example = "false"; type = types.enum [ "true" "resolve" "false" ]; description = '' - Controls Link-Local Multicast Name Resolution support (RFC 4794) on the local host. - If true, enables full LLMNR responder and resolver support. - If false, disables both. - If set to "resolve", only resolution support is enabled, but responding is disabled. + Controls Link-Local Multicast Name Resolution support + (RFC 4795) on the local host. + + If set to + + + "true" + + Enables full LLMNR responder and resolver support. + + + + "false" + + Disables both. + + + + "resolve" + + Only resolution support is enabled, but responding is disabled. + + + ''; }; @@ -53,9 +80,36 @@ in example = "true"; type = types.enum [ "true" "allow-downgrade" "false" ]; description = '' - If true all DNS lookups are DNSSEC-validated locally (excluding LLMNR and Multicast DNS). Note that this mode requires a DNS server that supports DNSSEC. If the DNS server does not properly support DNSSEC all validations will fail. - If set to "allow-downgrade" DNSSEC validation is attempted, but if the server does not support DNSSEC properly, DNSSEC mode is automatically disabled. Note that this mode makes DNSSEC validation vulnerable to "downgrade" attacks, where an attacker might be able to trigger a downgrade to non-DNSSEC mode by synthesizing a DNS response that suggests DNSSEC was not supported. - If set to false, DNS lookups are not DNSSEC validated. + If set to + + + "true" + + all DNS lookups are DNSSEC-validated locally (excluding + LLMNR and Multicast DNS). Note that this mode requires a + DNS server that supports DNSSEC. If the DNS server does + not properly support DNSSEC all validations will fail. + + + + "allow-downgrade" + + DNSSEC validation is attempted, but if the server does not + support DNSSEC properly, DNSSEC mode is automatically + disabled. Note that this mode makes DNSSEC validation + vulnerable to "downgrade" attacks, where an attacker might + be able to trigger a downgrade to non-DNSSEC mode by + synthesizing a DNS response that suggests DNSSEC was not + supported. + + + + "false" + + DNS lookups are not DNSSEC validated. + + + ''; }; diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index c75e637124a..b442386914a 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -154,6 +154,9 @@ for o in $(cat /proc/cmdline); do fi ln -s "$root" /dev/root ;; + copytoram) + copytoram=1 + ;; esac done @@ -218,6 +221,9 @@ checkFS() { # Don't check resilient COWs as they validate the fs structures at mount time if [ "$fsType" = btrfs -o "$fsType" = zfs ]; then return 0; fi + # Skip fsck for bcachefs - not implemented yet. + if [ "$fsType" = bcachefs ]; then return 0; fi + # Skip fsck for inherently readonly filesystems. if [ "$fsType" = squashfs ]; then return 0; fi @@ -298,6 +304,7 @@ mountFS() { *x-nixos.autoresize*) if [ "$fsType" = ext2 -o "$fsType" = ext3 -o "$fsType" = ext4 ]; then echo "resizing $device..." + e2fsck -fp "$device" resize2fs "$device" fi ;; @@ -474,6 +481,22 @@ while read -u 3 mountPoint; do # doing something with $device right now. udevadm settle + # If copytoram is enabled: skip mounting the ISO and copy its content to a tmpfs. + if [ -n "$copytoram" ] && [ "$device" = /dev/root ] && [ "$mountPoint" = /iso ]; then + fsType=$(blkid -o value -s TYPE "$device") + fsSize=$(blockdev --getsize64 "$device") + + mkdir -p /tmp-iso + mount -t "$fsType" /dev/root /tmp-iso + mountFS tmpfs /iso size="$fsSize" tmpfs + + cp -r /tmp-iso/* /mnt-root/iso/ + + umount /tmp-iso + rmdir /tmp-iso + continue + fi + mountFS "$device" "$mountPoint" "$options" "$fsType" done diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index e3a3b6f88cf..d6e3e3a87d0 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -135,7 +135,7 @@ let $out/bin/ash -c 'echo hello world' | grep "hello world" export LD_LIBRARY_PATH=$out/lib $out/bin/mount --help 2>&1 | grep -q "BusyBox" - $out/bin/blkid --help 2>&1 | grep -q 'libblkid' + $out/bin/blkid -V 2>&1 | grep -q 'libblkid' $out/bin/udevadm --version $out/bin/dmsetup --version 2>&1 | tee -a log | grep -q "version:" LVM_SYSTEM_DIR=$out $out/bin/lvm version 2>&1 | tee -a log | grep -q "LVM" @@ -167,7 +167,7 @@ let --replace /sbin/blkid ${extraUtils}/bin/blkid \ --replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \ --replace /sbin/mdadm ${extraUtils}/bin/mdadm \ - --replace /bin/sh ${extraUtils}/bin/sh \ + --replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \ --replace /usr/bin/readlink ${extraUtils}/bin/readlink \ --replace /usr/bin/basename ${extraUtils}/bin/basename \ --replace ${udev}/bin/udevadm ${extraUtils}/bin/udevadm @@ -207,7 +207,7 @@ let preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules; resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}") - (filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption + (filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption.enable # Don't include zram devices && !(hasPrefix "/dev/zram" sd.device) ) config.swapDevices); diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix index f765db275e7..8fa9f8b795e 100644 --- a/nixos/modules/system/boot/systemd-nspawn.nix +++ b/nixos/modules/system/boot/systemd-nspawn.nix @@ -14,11 +14,11 @@ let (assertOnlyFields [ "Boot" "ProcessTwo" "Parameters" "Environment" "User" "WorkingDirectory" "Capability" "DropCapability" "KillSignal" "Personality" "MachineId" - "PrivateUsers" + "PrivateUsers" "NotifyReady" ]) (assertValueOneOf "Boot" boolValues) (assertValueOneOf "ProcessTwo" boolValues) - (assertValueOneOf "PrivateUsers" (boolValues ++ [ "pick" ])) + (assertValueOneOf "NotifyReady" boolValues) ]; checkFiles = checkUnitConfig "Files" [ @@ -41,8 +41,7 @@ let ]; instanceOptions = { - options = { - + options = sharedOptions // { execConfig = mkOption { default = {}; example = { Parameters = "/bin/sh"; }; @@ -82,18 +81,20 @@ let }; - instanceToUnit = name: def: - { text = '' - [Exec] - ${attrsToSection def.execConfig} + instanceToUnit = name: def: + let base = { + text = '' + [Exec] + ${attrsToSection def.execConfig} - [Files] - ${attrsToSection def.filesConfig} + [Files] + ${attrsToSection def.filesConfig} - [Network] - ${attrsToSection def.networkConfig} - ''; - }; + [Network] + ${attrsToSection def.networkConfig} + ''; + } // def; + in base // { unit = makeUnit name base; }; in { @@ -109,7 +110,7 @@ in { config = let - units = mapAttrs' (n: v: nameValuePair "${n}.nspawn" (instanceToUnit n v)) cfg.instances; + units = mapAttrs' (n: v: nameValuePair "${n}.nspawn" (instanceToUnit n v)) cfg; in mkIf (cfg != {}) { environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] []; diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix index 9be10a8283e..43a9c28bb69 100644 --- a/nixos/modules/system/boot/systemd-unit-options.nix +++ b/nixos/modules/system/boot/systemd-unit-options.nix @@ -35,21 +35,40 @@ in rec { description = '' If set to false, this unit will be a symlink to /dev/null. This is primarily useful to prevent specific - template instances (e.g. serial-getty@ttyS0) - from being started. + template instances + (e.g. serial-getty@ttyS0) from being + started. Note that enable=true does not + make a unit start by default at boot; if you want that, see + wantedBy. ''; }; requiredBy = mkOption { default = []; type = types.listOf types.str; - description = "Units that require (i.e. depend on and need to go down with) this unit."; + description = '' + Units that require (i.e. depend on and need to go down with) + this unit. The discussion under wantedBy + applies here as well: inverse .requires + symlinks are established. + ''; }; wantedBy = mkOption { default = []; type = types.listOf types.str; - description = "Units that want (i.e. depend on) this unit."; + description = '' + Units that want (i.e. depend on) this unit. The standard way + to make a unit start by default at boot is to set this option + to [ "multi-user.target" ]. That's despite + the fact that the systemd.unit(5) manpage says this option + goes in the [Install] section that controls + the behaviour of systemctl enable. Since + such a process is stateful and thus contrary to the design of + NixOS, setting this option instead causes the equivalent + inverse .wants symlink to be present, + establishing the same desired relationship in a stateless way. + ''; }; aliases = mkOption { diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index f798862513c..dd9ba710448 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -396,6 +396,11 @@ let ''; }; + logindHandlerType = types.enum [ + "ignore" "poweroff" "reboot" "halt" "kexec" "suspend" + "hibernate" "hybrid-sleep" "lock" + ]; + in { @@ -588,13 +593,34 @@ in services.logind.extraConfig = mkOption { default = ""; type = types.lines; - example = "HandleLidSwitch=ignore"; + example = "IdleAction=lock"; description = '' Extra config options for systemd-logind. See man logind.conf for available options. ''; }; + services.logind.lidSwitch = mkOption { + default = "suspend"; + example = "ignore"; + type = logindHandlerType; + + description = '' + Specifies what to be done when the laptop lid is closed. + ''; + }; + + services.logind.lidSwitchDocked = mkOption { + default = "ignore"; + example = "suspend"; + type = logindHandlerType; + + description = '' + Specifies what to be done when the laptop lid is closed + and another screen is added. + ''; + }; + systemd.user.extraConfig = mkOption { default = ""; type = types.lines; @@ -613,11 +639,7 @@ in Rules for creating and cleaning up temporary files automatically. See tmpfiles.d5 - for the exact format. You should not use this option to create - files required by systemd services, since there is no - guarantee that systemd-tmpfiles runs when - the system is reconfigured using - nixos-rebuild. + for the exact format. ''; }; @@ -633,16 +655,22 @@ in })); }; + systemd.user.paths = mkOption { + default = {}; + type = with types; attrsOf (submodule [ { options = pathOptions; } unitConfig ]); + description = "Definition of systemd per-user path units."; + }; + systemd.user.services = mkOption { default = {}; type = with types; attrsOf (submodule [ { options = serviceOptions; } unitConfig serviceConfig ] ); description = "Definition of systemd per-user service units."; }; - systemd.user.timers = mkOption { + systemd.user.slices = mkOption { default = {}; - type = with types; attrsOf (submodule [ { options = timerOptions; } unitConfig ] ); - description = "Definition of systemd per-user timer units."; + type = with types; attrsOf (submodule [ { options = sliceOptions; } unitConfig ] ); + description = "Definition of systemd per-user slice units."; }; systemd.user.sockets = mkOption { @@ -657,6 +685,12 @@ in description = "Definition of systemd per-user target units."; }; + systemd.user.timers = mkOption { + default = {}; + type = with types; attrsOf (submodule [ { options = timerOptions; } unitConfig ] ); + description = "Definition of systemd per-user timer units."; + }; + systemd.additionalUpstreamSystemUnits = mkOption { default = [ ]; type = types.listOf types.str; @@ -721,6 +755,8 @@ in "systemd/logind.conf".text = '' [Login] KillUserProcesses=no + HandleLidSwitch=${config.services.logind.lidSwitch} + HandleLidSwitchDocked=${config.services.logind.lidSwitchDocked} ${config.services.logind.extraConfig} ''; @@ -771,12 +807,12 @@ in }; systemd.units = - mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets + mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths // mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services - // mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets - // mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers - // mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths - // mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.slices + // mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.slices + // mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets + // mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets + // mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers // listToAttrs (map (v: let n = escapeSystemdPath v.where; in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts) @@ -785,7 +821,9 @@ in in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts); systemd.user.units = - mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services + mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.user.paths + // mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services + // mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.user.slices // mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.user.sockets // mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.user.targets // mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.user.timers; @@ -837,7 +875,12 @@ in systemd.services.systemd-remount-fs.restartIfChanged = false; systemd.services.systemd-update-utmp.restartIfChanged = false; systemd.services.systemd-user-sessions.restartIfChanged = false; # Restart kills all active sessions. - systemd.services.systemd-logind.restartTriggers = [ config.environment.etc."systemd/logind.conf".source ]; + # Restarting systemd-logind breaks X11 + # - upstream commit: https://cgit.freedesktop.org/xorg/xserver/commit/?id=dc48bd653c7e101 + # - systemd announcement: https://github.com/systemd/systemd/blob/22043e4317ecd2bc7834b48a6d364de76bb26d91/NEWS#L103-L112 + # - this might be addressed in the future by xorg + #systemd.services.systemd-logind.restartTriggers = [ config.environment.etc."systemd/logind.conf".source ]; + systemd.services.systemd-logind.restartIfChanged = false; systemd.services.systemd-logind.stopIfChanged = false; systemd.services.systemd-journald.restartTriggers = [ config.environment.etc."systemd/journald.conf".source ]; systemd.services.systemd-journald.stopIfChanged = false; diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix index fd6e58cd5b4..7d43ba07ca5 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -20,8 +20,8 @@ let sources = map (x: x.source) etc'; targets = map (x: x.target) etc'; modes = map (x: x.mode) etc'; - uids = map (x: x.uid) etc'; - gids = map (x: x.gid) etc'; + users = map (x: x.user) etc'; + groups = map (x: x.group) etc'; }; in @@ -108,6 +108,26 @@ in ''; }; + user = mkOption { + default = "+${toString config.uid}"; + type = types.str; + description = '' + User name of created file. + Only takes affect when the file is copied (that is, the mode is not 'symlink'). + Changing this option takes precedence over uid. + ''; + }; + + group = mkOption { + default = "+${toString config.gid}"; + type = types.str; + description = '' + Group name of created file. + Only takes affect when the file is copied (that is, the mode is not 'symlink'). + Changing this option takes precedence over gid. + ''; + }; + }; config = { @@ -130,7 +150,7 @@ in system.build.etc = etc; - system.activationScripts.etc = stringAfter [ "stdio" ] + system.activationScripts.etc = stringAfter [ "users" "groups" ] '' # Set up the statically computed bits of /etc. echo "setting up /etc..." diff --git a/nixos/modules/system/etc/make-etc.sh b/nixos/modules/system/etc/make-etc.sh index 60d4ba1301a..1ca4c3046f0 100644 --- a/nixos/modules/system/etc/make-etc.sh +++ b/nixos/modules/system/etc/make-etc.sh @@ -6,8 +6,8 @@ set -f sources_=($sources) targets_=($targets) modes_=($modes) -uids_=($uids) -gids_=($gids) +users_=($users) +groups_=($groups) set +f for ((i = 0; i < ${#targets_[@]}; i++)); do @@ -36,9 +36,9 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do fi if test "${modes_[$i]}" != symlink; then - echo "${modes_[$i]}" > $out/etc/$target.mode - echo "${uids_[$i]}" > $out/etc/$target.uid - echo "${gids_[$i]}" > $out/etc/$target.gid + echo "${modes_[$i]}" > $out/etc/$target.mode + echo "${users_[$i]}" > $out/etc/$target.uid + echo "${groups_[$i]}" > $out/etc/$target.gid fi fi diff --git a/nixos/modules/system/etc/setup-etc.pl b/nixos/modules/system/etc/setup-etc.pl index efda74161ff..eed20065087 100644 --- a/nixos/modules/system/etc/setup-etc.pl +++ b/nixos/modules/system/etc/setup-etc.pl @@ -108,6 +108,8 @@ sub link { my $uid = read_file("$_.uid"); chomp $uid; my $gid = read_file("$_.gid"); chomp $gid; copy "$static/$fn", "$target.tmp" or warn; + $uid = getpwnam $uid unless $uid =~ /^\+/; + $gid = getgrnam $gid unless $gid =~ /^\+/; chown int($uid), int($gid), "$target.tmp" or warn; chmod oct($mode), "$target.tmp" or warn; rename "$target.tmp", $target or warn; diff --git a/nixos/modules/tasks/bcache.nix b/nixos/modules/tasks/bcache.nix index f988ec02af7..3bfdf89e0cf 100644 --- a/nixos/modules/tasks/bcache.nix +++ b/nixos/modules/tasks/bcache.nix @@ -4,6 +4,8 @@ environment.systemPackages = [ pkgs.bcache-tools ]; + services.udev.packages = [ pkgs.bcache-tools ]; + boot.initrd.extraUdevRulesCommands = '' cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/ ''; diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix index b1a7711ddcb..da0c9408d89 100644 --- a/nixos/modules/tasks/encrypted-devices.nix +++ b/nixos/modules/tasks/encrypted-devices.nix @@ -36,7 +36,7 @@ let keyFile = mkOption { default = null; - example = "/root/.swapkey"; + example = "/mnt-root/root/.swapkey"; type = types.nullOr types.str; description = "File system location of keyfile. This unlocks the drive after the root has been mounted to /mnt-root."; }; @@ -56,11 +56,18 @@ in }; config = mkIf anyEncrypted { + assertions = map (dev: { + assertion = dev.encrypted.label != null; + message = '' + The filesystem for ${dev.mountPoint} has encrypted.enable set to true, but no encrypted.label set + ''; + }) encDevs; + boot.initrd = { luks = { devices = map (dev: { name = dev.encrypted.label; device = dev.encrypted.blkDev; } ) keylessEncDevs; - cryptoModules = [ "aes" "sha256" "sha1" "xts" ]; + forceLuksSupportInInitrd = true; }; postMountCommands = concatMapStrings (dev: "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n") keyedEncDevs; diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix index 3951d617f6f..b3690fad1a6 100644 --- a/nixos/modules/tasks/filesystems.nix +++ b/nixos/modules/tasks/filesystems.nix @@ -115,11 +115,18 @@ let }; - config = { + config = let + defaultFormatOptions = + # -F needed to allow bare block device without partitions + if (builtins.substring 0 3 config.fsType) == "ext" then "-F" + # -q needed for non-interactive operations + else if config.fsType == "jfs" then "-q" + # (same here) + else if config.fsType == "reiserfs" then "-q" + else null; + in { options = mkIf config.autoResize [ "x-nixos.autoresize" ]; - - # -F needed to allow bare block device without partitions - formatOptions = mkIf ((builtins.substring 0 3 config.fsType) == "ext") (mkDefault "-F"); + formatOptions = mkIf (defaultFormatOptions != null) (mkDefault defaultFormatOptions); }; }; @@ -217,7 +224,7 @@ in # Add the mount helpers to the system path so that `mount' can find them. system.fsPackages = [ pkgs.dosfstools ]; - environment.systemPackages = [ pkgs.fuse ] ++ config.system.fsPackages; + environment.systemPackages = with pkgs; [ fuse3 fuse ] ++ config.system.fsPackages; environment.etc.fstab.text = let @@ -294,7 +301,7 @@ in "/run" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=755" "size=${config.boot.runSize}" ]; }; "/dev" = { fsType = "devtmpfs"; options = [ "nosuid" "strictatime" "mode=755" "size=${config.boot.devSize}" ]; }; "/dev/shm" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=1777" "size=${config.boot.devShmSize}" ]; }; - "/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "gid=${toString config.ids.gids.tty}" ]; }; + "/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "ptmxmode=0666" "gid=${toString config.ids.gids.tty}" ]; }; # To hold secrets that shouldn't be written to disk (generally used for NixOps, harmless elsewhere) "/run/keys" = { fsType = "ramfs"; options = [ "nosuid" "nodev" "mode=750" "gid=${toString config.ids.gids.keys}" ]; }; diff --git a/nixos/modules/tasks/filesystems/bcachefs.nix b/nixos/modules/tasks/filesystems/bcachefs.nix new file mode 100644 index 00000000000..227707173a3 --- /dev/null +++ b/nixos/modules/tasks/filesystems/bcachefs.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + inInitrd = any (fs: fs == "bcachefs") config.boot.initrd.supportedFilesystems; + +in + +{ + config = mkIf (any (fs: fs == "bcachefs") config.boot.supportedFilesystems) { + + system.fsPackages = [ pkgs.bcachefs-tools ]; + + # use kernel package with bcachefs support until it's in mainline + boot.kernelPackages = pkgs.linuxPackages_testing_bcachefs; + boot.initrd.availableKernelModules = mkIf inInitrd [ "bcachefs" ]; + + boot.initrd.extraUtilsCommands = mkIf inInitrd + '' + copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/fsck.bcachefs + ''; + + }; +} diff --git a/nixos/modules/tasks/filesystems/ecryptfs.nix b/nixos/modules/tasks/filesystems/ecryptfs.nix new file mode 100644 index 00000000000..12a407cabbf --- /dev/null +++ b/nixos/modules/tasks/filesystems/ecryptfs.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: +# TODO: make ecryptfs work in initramfs? + +with lib; + +{ + config = mkIf (any (fs: fs == "ecryptfs") config.boot.supportedFilesystems) { + system.fsPackages = [ pkgs.ecryptfs ]; + security.wrappers = { + "mount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private"; + "umount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private"; + }; + }; +} diff --git a/nixos/modules/tasks/filesystems/ext.nix b/nixos/modules/tasks/filesystems/ext.nix index cc9d0ef37d5..3a8999c242b 100644 --- a/nixos/modules/tasks/filesystems/ext.nix +++ b/nixos/modules/tasks/filesystems/ext.nix @@ -5,7 +5,8 @@ system.fsPackages = [ pkgs.e2fsprogs ]; - boot.initrd.availableKernelModules = [ "ext2" "ext3" "ext4" ]; + # As of kernel 4.3, there is no separate ext3 driver (they're also handled by ext4.ko) + boot.initrd.availableKernelModules = [ "ext2" "ext4" ]; boot.initrd.extraUtilsCommands = '' diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix index 73cf18384bd..d3a558738f4 100644 --- a/nixos/modules/tasks/filesystems/nfs.nix +++ b/nixos/modules/tasks/filesystems/nfs.nix @@ -85,8 +85,14 @@ in enable = mkDefault false; }; + systemd.services.auth-rpcgss-module = + { + unitConfig.ConditionPathExists = [ "" "/etc/krb5.keytab" ]; + }; + systemd.services.rpc-gssd = { restartTriggers = [ nfsConfFile ]; + unitConfig.ConditionPathExists = [ "" "/etc/krb5.keytab" ]; }; systemd.services.rpc-statd = diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 518fe0a97d2..7fee9911532 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -72,7 +72,7 @@ in version will have already passed an extensive test suite, but it is more likely to hit an undiscovered bug compared to running a released version of ZFS on Linux. - ''; + ''; }; extraPools = mkOption { @@ -140,6 +140,17 @@ in this once. ''; }; + + requestEncryptionCredentials = mkOption { + type = types.bool; + default = config.boot.zfs.enableUnstable; + description = '' + Request encryption keys or passwords for all encrypted datasets on import. + + Dataset encryption is only supported in zfsUnstable at the moment. + ''; + }; + }; services.zfs.autoSnapshot = { @@ -263,6 +274,10 @@ in assertion = !cfgZfs.forceImportAll || cfgZfs.forceImportRoot; message = "If you enable boot.zfs.forceImportAll, you must also enable boot.zfs.forceImportRoot"; } + { + assertion = cfgZfs.requestEncryptionCredentials -> cfgZfs.enableUnstable; + message = "This feature is only available for zfs unstable. Set the NixOS option boot.zfs.enableUnstable."; + } ]; boot = { @@ -306,6 +321,9 @@ in done echo if [[ -n "$msg" ]]; then echo "$msg"; fi + ${lib.optionalString cfgZfs.requestEncryptionCredentials '' + zfs load-key -a + ''} '') rootPools)); }; @@ -370,7 +388,7 @@ in in listToAttrs (map createImportService dataPools ++ map createSyncService allPools) // { "zfs-mount" = { after = [ "systemd-modules-load.service" ]; }; "zfs-share" = { after = [ "systemd-modules-load.service" ]; }; - "zed" = { after = [ "systemd-modules-load.service" ]; }; + "zfs-zed" = { after = [ "systemd-modules-load.service" ]; }; }; systemd.targets."zfs-import" = diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix index 3975dd5b0ff..7fb3cbc5c1b 100644 --- a/nixos/modules/tasks/kbd.nix +++ b/nixos/modules/tasks/kbd.nix @@ -98,22 +98,10 @@ in '') config.i18n.consoleColors} ''; - /* XXX: systemd-vconsole-setup needs a "main" terminal. By default - * /dev/tty0 is used which wouldn't work when the service is restarted - * from X11. We set this to /dev/tty1; not ideal because it may also be - * owned by X11 or something else. - * - * See #22470. - */ systemd.services."systemd-vconsole-setup" = - { wantedBy = [ "sysinit.target" ]; - before = [ "display-manager.service" ]; + { before = [ "display-manager.service" ]; after = [ "systemd-udev-settle.service" ]; restartTriggers = [ vconsoleConf kbdEnv ]; - serviceConfig.ExecStart = [ - "" - "${pkgs.systemd}/lib/systemd/systemd-vconsole-setup /dev/tty1" - ]; }; } diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index f6f104ce7a6..1f424f84c6e 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -9,6 +9,12 @@ let interfaces = attrValues cfg.interfaces; hasVirtuals = any (i: i.virtual) interfaces; + slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds) + ++ concatMap (i: i.interfaces) (attrValues cfg.bridges) + ++ concatMap (i: i.interfaces) (attrValues cfg.vswitches) + ++ concatMap (i: [i.interface]) (attrValues cfg.macvlans) + ++ concatMap (i: [i.interface]) (attrValues cfg.vlans); + # We must escape interfaces due to the systemd interpretation subsystemDevice = interface: "sys-subsystem-net-devices-${escapeSystemdPath interface}.device"; @@ -71,7 +77,10 @@ let (hasAttr dev cfg.vswitches) || (hasAttr dev cfg.wlanInterfaces) then [ "${dev}-netdev.service" ] - else optional (dev != null && !config.boot.isContainer) (subsystemDevice dev); + else optional (dev != null && dev != "lo" && !config.boot.isContainer) (subsystemDevice dev); + + hasDefaultGatewaySet = (cfg.defaultGateway != null && cfg.defaultGateway.address != "") + || (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != ""); networkLocalCommands = { after = [ "network-setup.service" ]; @@ -84,8 +93,9 @@ let after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ]; before = [ "network.target" "shutdown.target" ]; wants = [ "network.target" ]; + partOf = map (i: "network-addresses-${i.name}.service") interfaces; conflicts = [ "shutdown.target" ]; - wantedBy = [ "multi-user.target" ]; + wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target"; unitConfig.ConditionCapability = "CAP_NET_ADMIN"; @@ -113,24 +123,32 @@ let # Set the default gateway. ${optionalString (cfg.defaultGateway != null && cfg.defaultGateway.address != "") '' - # FIXME: get rid of "|| true" (necessary to make it idempotent). - ip route add default ${optionalString (cfg.defaultGateway.metric != null) + ${optionalString (cfg.defaultGateway.interface != null) '' + ip route replace ${cfg.defaultGateway.address} dev ${cfg.defaultGateway.interface} ${optionalString (cfg.defaultGateway.metric != null) + "metric ${toString cfg.defaultGateway.metric}" + } proto static + ''} + ip route replace default ${optionalString (cfg.defaultGateway.metric != null) "metric ${toString cfg.defaultGateway.metric}" } via "${cfg.defaultGateway.address}" ${ optionalString (cfg.defaultGatewayWindowSize != null) "window ${toString cfg.defaultGatewayWindowSize}"} ${ optionalString (cfg.defaultGateway.interface != null) - "dev ${cfg.defaultGateway.interface}"} proto static || true + "dev ${cfg.defaultGateway.interface}"} proto static ''} ${optionalString (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "") '' - # FIXME: get rid of "|| true" (necessary to make it idempotent). - ip -6 route add ::/0 ${optionalString (cfg.defaultGateway6.metric != null) + ${optionalString (cfg.defaultGateway6.interface != null) '' + ip -6 route replace ${cfg.defaultGateway6.address} dev ${cfg.defaultGateway6.interface} ${optionalString (cfg.defaultGateway6.metric != null) + "metric ${toString cfg.defaultGateway6.metric}" + } proto static + ''} + ip -6 route replace default ${optionalString (cfg.defaultGateway6.metric != null) "metric ${toString cfg.defaultGateway6.metric}" } via "${cfg.defaultGateway6.address}" ${ optionalString (cfg.defaultGatewayWindowSize != null) "window ${toString cfg.defaultGatewayWindowSize}"} ${ optionalString (cfg.defaultGateway6.interface != null) - "dev ${cfg.defaultGateway6.interface}"} proto static || true + "dev ${cfg.defaultGateway6.interface}"} proto static ''} ''; }; @@ -149,9 +167,11 @@ let in nameValuePair "network-addresses-${i.name}" { description = "Address configuration of ${i.name}"; - wantedBy = [ "network-setup.service" ]; - # propagate stop and reload from network-setup - partOf = [ "network-setup.service" ]; + wantedBy = [ + "network-setup.service" + "network-link-${i.name}.service" + "network.target" + ]; # order before network-setup because the routes that are configured # there may need ip addresses configured before = [ "network-setup.service" ]; @@ -203,7 +223,7 @@ let after = [ "dev-net-tun.device" "network-pre.target" ]; wantedBy = [ "network-setup.service" (subsystemDevice i.name) ]; partOf = [ "network-setup.service" ]; - before = [ "network-setup.service" (subsystemDevice i.name) ]; + before = [ "network-setup.service" ]; path = [ pkgs.iproute ]; serviceConfig = { Type = "oneshot"; @@ -229,7 +249,7 @@ let partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service"; after = [ "network-pre.target" ] ++ deps ++ optional v.rstp "mstpd.service" ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces; - before = [ "network-setup.service" (subsystemDevice n) ]; + before = [ "network-setup.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; path = [ pkgs.iproute ]; @@ -328,7 +348,7 @@ let partOf = [ "network-setup.service" ]; after = [ "network-pre.target" ] ++ deps ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces; - before = [ "network-setup.service" (subsystemDevice n) ]; + before = [ "network-setup.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; path = [ pkgs.iproute pkgs.gawk ]; @@ -366,7 +386,7 @@ let bindsTo = deps; partOf = [ "network-setup.service" ]; after = [ "network-pre.target" ] ++ deps; - before = [ "network-setup.service" (subsystemDevice n) ]; + before = [ "network-setup.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; path = [ pkgs.iproute ]; @@ -391,7 +411,7 @@ let bindsTo = deps; partOf = [ "network-setup.service" ]; after = [ "network-pre.target" ] ++ deps; - before = [ "network-setup.service" (subsystemDevice n) ]; + before = [ "network-setup.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; path = [ pkgs.iproute ]; @@ -419,7 +439,7 @@ let bindsTo = deps; partOf = [ "network-setup.service" ]; after = [ "network-pre.target" ] ++ deps; - before = [ "network-setup.service" (subsystemDevice n) ]; + before = [ "network-setup.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; path = [ pkgs.iproute ]; @@ -462,5 +482,8 @@ in config = mkMerge [ bondWarnings (mkIf (!cfg.useNetworkd) normalConfig) + { # Ensure slave interfaces are brought up + networking.interfaces = genAttrs slaves (i: {}); + } ]; } diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index e9a3dca6418..8ce7b2d2cf3 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -1110,7 +1110,7 @@ in ''; # Udev script to execute for a new WLAN interface. The script configures the new WLAN interface. - newInterfaceScript = new: pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" '' + newInterfaceScript = device: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" '' #!${pkgs.stdenv.shell} # Configure the new interface ${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type} @@ -1132,7 +1132,7 @@ in # It is important to have that rule first as overwriting the NAME attribute also prevents the # next rules from matching. ${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces."${device}") (interface: - ''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript interface}"'')} + ''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript device interface}"'')} # Add the required, new WLAN interfaces to the default WLAN interface with the # persistent, default name as assigned by udev. diff --git a/nixos/modules/tasks/powertop.nix b/nixos/modules/tasks/powertop.nix index 6f57f5f5c25..609831506e1 100644 --- a/nixos/modules/tasks/powertop.nix +++ b/nixos/modules/tasks/powertop.nix @@ -3,11 +3,11 @@ with lib; let - cfg = config.powerManagment.powertop; + cfg = config.powerManagement.powertop; in { ###### interface - options.powerManagment.powertop.enable = mkEnableOption "powertop auto tuning on startup"; + options.powerManagement.powertop.enable = mkEnableOption "powertop auto tuning on startup"; ###### implementation @@ -16,6 +16,7 @@ in { powertop = { wantedBy = [ "multi-user.target" ]; description = "Powertop tunings"; + path = [ pkgs.kmod ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = "yes"; diff --git a/nixos/modules/tasks/trackpoint.nix b/nixos/modules/tasks/trackpoint.nix index 32e69dd2bf5..1f8f2891e98 100644 --- a/nixos/modules/tasks/trackpoint.nix +++ b/nixos/modules/tasks/trackpoint.nix @@ -81,7 +81,7 @@ with lib; services.xserver.inputClassSections = ['' Identifier "Trackpoint Wheel Emulation" - MatchProduct "${if cfg.fakeButtons then "PS/2 Generic Mouse" else "Elantech PS/2 TrackPoint|TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"}" + MatchProduct "${if cfg.fakeButtons then "PS/2 Generic Mouse" else "ETPS/2 Elantech TrackPoint|Elantech PS/2 TrackPoint|TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"}" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" diff --git a/nixos/modules/testing/minimal-kernel.nix b/nixos/modules/testing/minimal-kernel.nix index a463cb803ad..7c2b9c05cf9 100644 --- a/nixos/modules/testing/minimal-kernel.nix +++ b/nixos/modules/testing/minimal-kernel.nix @@ -6,7 +6,7 @@ let ); origKernel = pkgs.buildLinux { - inherit (pkgs.linux) src version; + inherit (pkgs.linux) src version stdenv; inherit configfile; allowImportFromDerivation = true; kernelPatches = [ pkgs.kernelPatches.cifs_timeout_2_6_38 ]; diff --git a/nixos/modules/virtualisation/azure-image.nix b/nixos/modules/virtualisation/azure-image.nix index 33f84986cac..cb756842f36 100644 --- a/nixos/modules/virtualisation/azure-image.nix +++ b/nixos/modules/virtualisation/azure-image.nix @@ -2,93 +2,19 @@ with lib; let - diskSize = "30720"; + diskSize = 30720; in { - system.build.azureImage = - pkgs.vmTools.runInLinuxVM ( - pkgs.runCommand "azure-image" - { preVM = - '' - mkdir $out - diskImage=$out/$diskImageBase - - cyl=$(((${diskSize}*1024*1024)/(512*63*255))) - size=$(($cyl*255*63*512)) - roundedsize=$((($size/(1024*1024)+1)*(1024*1024))) - ${pkgs.vmTools.qemu-220}/bin/qemu-img create -f raw $diskImage $roundedsize - mv closure xchg/ - ''; - - postVM = - '' - mkdir -p $out - ${pkgs.vmTools.qemu-220}/bin/qemu-img convert -f raw -o subformat=fixed -O vpc $diskImage $out/disk.vhd - rm $diskImage - ''; - diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw"; - buildInputs = [ pkgs.utillinux pkgs.perl ]; - exportReferencesGraph = - [ "closure" config.system.build.toplevel ]; - } - '' - # Create partition table - ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos - ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize}M - ${pkgs.parted}/sbin/parted /dev/vda print - . /sys/class/block/vda1/uevent - mknod /dev/vda1 b $MAJOR $MINOR - - # Create an empty filesystem and mount it. - ${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda1 - ${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda1 - - mkdir /mnt - mount /dev/vda1 /mnt - - # The initrd expects these directories to exist. - mkdir /mnt/dev /mnt/proc /mnt/sys - - mount --bind /proc /mnt/proc - mount --bind /dev /mnt/dev - mount --bind /sys /mnt/sys - - # Copy all paths in the closure to the filesystem. - storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure) - - mkdir -p /mnt/nix/store - echo "copying everything (will take a while)..." - cp -prd $storePaths /mnt/nix/store/ - - echo Register the paths in the Nix database. - printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ - chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group "" - - echo Create the system profile to allow nixos-rebuild to work. - chroot /mnt ${config.nix.package.out}/bin/nix-env \ - -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} --option build-users-group "" - - echo nixos-rebuild requires an /etc/NIXOS. - mkdir -p /mnt/etc - touch /mnt/etc/NIXOS - - echo switch-to-configuration requires a /bin/sh - mkdir -p /mnt/bin - ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh - - echo Install a configuration.nix. - mkdir -p /mnt/etc/nixos /mnt/boot/grub - cp ${./azure-config-user.nix} /mnt/etc/nixos/configuration.nix - - echo Generate the GRUB menu. - ln -s vda /dev/sda - chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot - - echo Almost done - umount /mnt/proc /mnt/dev /mnt/sys - umount /mnt - '' - ); + system.build.azureImage = import ../../lib/make-disk-image.nix { + name = "azure-image"; + postVM = '' + ${pkgs.vmTools.qemu-220}/bin/qemu-img convert -f raw -o subformat=fixed -O vpc $diskImage $out/disk.vhd + ''; + configFile = ./azure-config-user.nix; + format = "raw"; + inherit diskSize; + inherit config lib pkgs; + }; imports = [ ./azure-common.nix ]; diff --git a/nixos/modules/virtualisation/azure-images.nix b/nixos/modules/virtualisation/azure-images.nix new file mode 100644 index 00000000000..22c82fc14f6 --- /dev/null +++ b/nixos/modules/virtualisation/azure-images.nix @@ -0,0 +1,5 @@ +let self = { + "16.09" = "https://nixos.blob.core.windows.net/images/nixos-image-16.09.1694.019dcc3-x86_64-linux.vhd"; + + latest = self."16.09"; +}; in self diff --git a/nixos/modules/virtualisation/brightbox-image.nix b/nixos/modules/virtualisation/brightbox-image.nix index 7f45f0f34f7..08bbcfd9d7c 100644 --- a/nixos/modules/virtualisation/brightbox-image.nix +++ b/nixos/modules/virtualisation/brightbox-image.nix @@ -33,9 +33,9 @@ in } '' # Create partition table - ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos - ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize} - ${pkgs.parted}/sbin/parted /dev/vda print + ${pkgs.parted}/sbin/parted --script /dev/vda mklabel msdos + ${pkgs.parted}/sbin/parted --script /dev/vda mkpart primary ext4 1 ${diskSize} + ${pkgs.parted}/sbin/parted --script /dev/vda print . /sys/class/block/vda1/uevent mknod /dev/vda1 b $MAJOR $MINOR diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 6adb2c1681a..8618a9c93dd 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -120,7 +120,6 @@ let # Run systemd-nspawn without startup notification (we'll # wait for the container systemd to signal readiness). - EXIT_ON_REBOOT=1 \ exec ${config.systemd.package}/bin/systemd-nspawn \ --keep-unit \ -M "$INSTANCE" -D "$root" $extraFlags \ @@ -538,7 +537,7 @@ in type = types.bool; default = false; description = '' - Wether the container is automatically started at boot-time. + Whether the container is automatically started at boot-time. ''; }; @@ -596,7 +595,7 @@ in { config = { config, pkgs, ... }: { services.postgresql.enable = true; - services.postgresql.package = pkgs.postgresql92; + services.postgresql.package = pkgs.postgresql96; }; }; } diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix index f1101d7ea66..a9a2095499a 100644 --- a/nixos/modules/virtualisation/docker.nix +++ b/nixos/modules/virtualisation/docker.nix @@ -7,8 +7,7 @@ with lib; let cfg = config.virtualisation.docker; - pro = config.networking.proxy.default; - proxy_env = optionalAttrs (pro != null) { Environment = "\"http_proxy=${pro}\""; }; + proxy_env = config.networking.proxy.envVars; in @@ -95,22 +94,64 @@ in docker daemon. ''; }; + + autoPrune = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to periodically prune Docker resources. If enabled, a + systemd timer will run docker system prune -f + as specified by the dates option. + ''; + }; + + flags = mkOption { + type = types.listOf types.str; + default = []; + example = [ "--all" ]; + description = '' + Any additional flags passed to docker system prune. + ''; + }; + + dates = mkOption { + default = "weekly"; + type = types.str; + description = '' + Specification (in the format described by + systemd.time + 7) of the time at + which the prune will occur. + ''; + }; + }; + + package = mkOption { + default = pkgs.docker; + type = types.package; + example = pkgs.docker-edge; + description = '' + Docker package to be used in the module. + ''; + }; }; ###### implementation config = mkIf cfg.enable (mkMerge [{ - environment.systemPackages = [ pkgs.docker ]; + environment.systemPackages = [ cfg.package ]; users.extraGroups.docker.gid = config.ids.gids.docker; - systemd.packages = [ pkgs.docker ]; + systemd.packages = [ cfg.package ]; systemd.services.docker = { wantedBy = optional cfg.enableOnBoot "multi-user.target"; + environment = proxy_env; serviceConfig = { ExecStart = [ "" '' - ${pkgs.docker}/bin/dockerd \ + ${cfg.package}/bin/dockerd \ --group=docker \ --host=fd:// \ --log-driver=${cfg.logDriver} \ @@ -122,7 +163,7 @@ in "" "${pkgs.procps}/bin/kill -s HUP $MAINPID" ]; - } // proxy_env; + }; path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs); }; @@ -137,6 +178,22 @@ in SocketGroup = "docker"; }; }; + + + systemd.services.docker-prune = { + description = "Prune docker resources"; + + restartIfChanged = false; + unitConfig.X-StopOnRemoval = false; + + serviceConfig.Type = "oneshot"; + + script = '' + ${cfg.package}/bin/docker system prune -f ${toString cfg.autoPrune.flags} + ''; + + startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates; + }; } ]); diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix index 745518f8597..14826b6272f 100644 --- a/nixos/modules/virtualisation/ec2-amis.nix +++ b/nixos/modules/virtualisation/ec2-amis.nix @@ -223,5 +223,21 @@ let self = { "17.03".us-west-2.hvm-ebs = "ami-a93daac9"; "17.03".us-west-2.hvm-s3 = "ami-5139ae31"; - latest = self."17.03"; + # 17.09.1483.d0f0657ca0 + "17.09".eu-west-1.hvm-ebs = "ami-cf33e7b6"; + "17.09".eu-west-2.hvm-ebs = "ami-7d061419"; + "17.09".eu-central-1.hvm-ebs = "ami-7548fa1a"; + "17.09".us-east-1.hvm-ebs = "ami-6f669d15"; + "17.09".us-east-2.hvm-ebs = "ami-cbe1ccae"; + "17.09".us-west-1.hvm-ebs = "ami-9d95a5fd"; + "17.09".us-west-2.hvm-ebs = "ami-d3956fab"; + "17.09".ca-central-1.hvm-ebs = "ami-ee4ef78a"; + "17.09".ap-southeast-1.hvm-ebs = "ami-1dfc807e"; + "17.09".ap-southeast-2.hvm-ebs = "ami-dcb350be"; + "17.09".ap-northeast-1.hvm-ebs = "ami-00ec3d66"; + "17.09".ap-northeast-2.hvm-ebs = "ami-1107dd7f"; + "17.09".sa-east-1.hvm-ebs = "ami-0377086f"; + "17.09".ap-south-1.hvm-ebs = "ami-4a064625"; + + latest = self."17.09"; }; in self diff --git a/nixos/modules/virtualisation/gce-images.nix b/nixos/modules/virtualisation/gce-images.nix new file mode 100644 index 00000000000..8a9bda1b60c --- /dev/null +++ b/nixos/modules/virtualisation/gce-images.nix @@ -0,0 +1,8 @@ +let self = { + "14.12" = "gs://nixos-cloud-images/nixos-14.12.471.1f09b77-x86_64-linux.raw.tar.gz"; + "15.09" = "gs://nixos-cloud-images/nixos-15.09.425.7870f20-x86_64-linux.raw.tar.gz"; + "16.03" = "gs://nixos-cloud-images/nixos-image-16.03.847.8688c17-x86_64-linux.raw.tar.gz"; + "17.03" = "gs://nixos-cloud-images/nixos-image-17.03.1082.4aab5c5798-x86_64-linux.raw.tar.gz"; + + latest = self."17.03"; +}; in self diff --git a/nixos/modules/virtualisation/google-compute-image.nix b/nixos/modules/virtualisation/google-compute-image.nix index 5673d55b339..e3b3e6a5f4a 100644 --- a/nixos/modules/virtualisation/google-compute-image.nix +++ b/nixos/modules/virtualisation/google-compute-image.nix @@ -2,97 +2,27 @@ with lib; let - diskSize = "1G"; + diskSize = 1024; # MB + gce = pkgs.google-compute-engine; in { imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ./grow-partition.nix ]; - # https://cloud.google.com/compute/docs/tutorials/building-images - networking.firewall.enable = mkDefault false; - - system.build.googleComputeImage = - pkgs.vmTools.runInLinuxVM ( - pkgs.runCommand "google-compute-image" - { preVM = - '' - mkdir $out - diskImage=$out/$diskImageBase - truncate $diskImage --size ${diskSize} - mv closure xchg/ - ''; - - postVM = - '' - PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]} - pushd $out - mv $diskImageBase disk.raw - tar -Szcf $diskImageBase.tar.gz disk.raw - rm $out/disk.raw - popd - ''; - diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw"; - buildInputs = [ pkgs.utillinux pkgs.perl ]; - exportReferencesGraph = - [ "closure" config.system.build.toplevel ]; - } - '' - # Create partition table - ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos - ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize} - ${pkgs.parted}/sbin/parted /dev/vda print - . /sys/class/block/vda1/uevent - mknod /dev/vda1 b $MAJOR $MINOR - - # Create an empty filesystem and mount it. - ${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda1 - ${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda1 - - mkdir /mnt - mount /dev/vda1 /mnt - - # The initrd expects these directories to exist. - mkdir /mnt/dev /mnt/proc /mnt/sys - - mount --bind /proc /mnt/proc - mount --bind /dev /mnt/dev - mount --bind /sys /mnt/sys - - # Copy all paths in the closure to the filesystem. - storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure) - - mkdir -p /mnt/nix/store - echo "copying everything (will take a while)..." - ${pkgs.rsync}/bin/rsync -a $storePaths /mnt/nix/store/ - - # Register the paths in the Nix database. - printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ - chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group "" - - # Create the system profile to allow nixos-rebuild to work. - chroot /mnt ${config.nix.package.out}/bin/nix-env \ - -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \ - --option build-users-group "" - - # `nixos-rebuild' requires an /etc/NIXOS. - mkdir -p /mnt/etc - touch /mnt/etc/NIXOS - - # `switch-to-configuration' requires a /bin/sh - mkdir -p /mnt/bin - ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh - - # Install a configuration.nix. - mkdir -p /mnt/etc/nixos /mnt/boot/grub - cp ${./google-compute-config.nix} /mnt/etc/nixos/configuration.nix - - # Generate the GRUB menu. - ln -s vda /dev/sda - chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot - - umount /mnt/proc /mnt/dev /mnt/sys - umount /mnt - '' - ); + system.build.googleComputeImage = import ../../lib/make-disk-image.nix { + name = "google-compute-image"; + postVM = '' + PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]} + pushd $out + mv $diskImage disk.raw + tar -Szcf nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw.tar.gz disk.raw + rm $out/disk.raw + popd + ''; + configFile = ; + format = "raw"; + inherit diskSize; + inherit config lib pkgs; + }; fileSystems."/" = { device = "/dev/disk/by-label/nixos"; @@ -117,12 +47,18 @@ in services.openssh.permitRootLogin = "prohibit-password"; services.openssh.passwordAuthentication = mkDefault false; + # Use GCE udev rules for dynamic disk volumes + services.udev.packages = [ gce ]; + # Force getting the hostname from Google Compute. networking.hostName = mkDefault ""; # Always include cryptsetup so that NixOps can use it. environment.systemPackages = [ pkgs.cryptsetup ]; + # Rely on GCP's firewall instead + networking.firewall.enable = mkDefault false; + # Configure default metadata hostnames networking.extraHosts = '' 169.254.169.254 metadata.google.internal metadata @@ -132,6 +68,132 @@ in networking.usePredictableInterfaceNames = false; + # allow the google-accounts-daemon to manage users + users.mutableUsers = true; + # and allow users to sudo without password + security.sudo.enable = true; + security.sudo.extraConfig = '' + %google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL + ''; + + # NOTE: google-accounts tries to write to /etc/sudoers.d but the folder doesn't exist + # FIXME: not such file or directory on dynamic SSH provisioning + systemd.services.google-accounts-daemon = { + description = "Google Compute Engine Accounts Daemon"; + # This daemon creates dynamic users + enable = config.users.mutableUsers; + after = [ + "network.target" + "google-instance-setup.service" + "google-network-setup.service" + ]; + wantedBy = [ "multi-user.target" ]; + requires = ["network.target"]; + path = with pkgs; [ shadow ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${gce}/bin/google_accounts_daemon --debug"; + }; + }; + + systemd.services.google-clock-skew-daemon = { + description = "Google Compute Engine Clock Skew Daemon"; + after = [ + "network.target" + "google-instance-setup.service" + "google-network-setup.service" + ]; + requires = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${gce}/bin/google_clock_skew_daemon --debug"; + }; + }; + + systemd.services.google-instance-setup = { + description = "Google Compute Engine Instance Setup"; + after = ["fs.target" "network-online.target" "network.target" "rsyslog.service"]; + before = ["sshd.service"]; + wants = ["local-fs.target" "network-online.target" "network.target"]; + wantedBy = [ "sshd.service" "multi-user.target" ]; + path = with pkgs; [ ethtool openssh ]; + serviceConfig = { + ExecStart = "${gce}/bin/google_instance_setup --debug"; + Type = "oneshot"; + }; + }; + + systemd.services.google-ip-forwarding-daemon = { + description = "Google Compute Engine IP Forwarding Daemon"; + after = ["network.target" "google-instance-setup.service" "google-network-setup.service"]; + requires = ["network.target"]; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ iproute ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${gce}/bin/google_ip_forwarding_daemon --debug"; + }; + }; + + systemd.services.google-shutdown-scripts = { + description = "Google Compute Engine Shutdown Scripts"; + after = [ + "local-fs.target" + "network-online.target" + "network.target" + "rsyslog.service" + "google-instance-setup.service" + "google-network-setup.service" + ]; + wants = [ "local-fs.target" "network-online.target" "network.target"]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.coreutils}/bin/true"; + ExecStop = "${gce}/bin/google_metadata_script_runner --debug --script-type shutdown"; + Type = "oneshot"; + RemainAfterExit = true; + TimeoutStopSec = 0; + }; + }; + + systemd.services.google-network-setup = { + description = "Google Compute Engine Network Setup"; + after = [ + "local-fs.target" + "network-online.target" + "network.target" + "rsyslog.service" + ]; + wants = [ "local-fs.target" "network-online.target" "network.target"]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${gce}/bin/google_network_setup --debug"; + KillMode = "process"; + Type = "oneshot"; + }; + }; + + systemd.services.google-startup-scripts = { + description = "Google Compute Engine Startup Scripts"; + after = [ + "local-fs.target" + "network-online.target" + "network.target" + "rsyslog.service" + "google-instance-setup.service" + "google-network-setup.service" + ]; + wants = [ "local-fs.target" "network-online.target" "network.target"]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${gce}/bin/google_metadata_script_runner --debug --script-type startup"; + KillMode = "process"; + Type = "oneshot"; + }; + }; + + # TODO: remove this systemd.services.fetch-ssh-keys = { description = "Fetch host keys and authorized_keys for root user"; @@ -146,51 +208,34 @@ in # When dealing with cryptographic keys, we want to keep things private. umask 077 # Don't download the SSH key if it has already been downloaded - if ! [ -s /root/.ssh/authorized_keys ]; then - echo "obtaining SSH key..." - mkdir -m 0700 -p /root/.ssh - AUTH_KEYS=$(${mktemp}) - ${wget} -O $AUTH_KEYS http://metadata.google.internal/0.1/meta-data/authorized-keys - if [ -s $AUTH_KEYS ]; then - KEY_PUB=$(${mktemp}) - cat $AUTH_KEYS | cut -d: -f2- > $KEY_PUB - if ! grep -q -f $KEY_PUB /root/.ssh/authorized_keys; then - cat $KEY_PUB >> /root/.ssh/authorized_keys - echo "New key added to authorized_keys." - fi - chmod 600 /root/.ssh/authorized_keys - rm -f $KEY_PUB - else - echo "Downloading http://metadata.google.internal/0.1/meta-data/authorized-keys failed." - false - fi - rm -f $AUTH_KEYS - fi + echo "Obtaining SSH keys..." + mkdir -m 0700 -p /root/.ssh + AUTH_KEYS=$(${mktemp}) + ${wget} -O $AUTH_KEYS http://metadata.google.internal/computeMetadata/v1/project/attributes/sshKeys + if [ -s $AUTH_KEYS ]; then - countKeys=0 - ${flip concatMapStrings config.services.openssh.hostKeys (k : - let kName = baseNameOf k.path; in '' - PRIV_KEY=$(${mktemp}) - echo "trying to obtain SSH private host key ${kName}" - ${wget} -O $PRIV_KEY http://metadata.google.internal/0.1/meta-data/attributes/${kName} && : - if [ $? -eq 0 -a -s $PRIV_KEY ]; then - countKeys=$((countKeys+1)) - mv -f $PRIV_KEY ${k.path} - echo "Downloaded ${k.path}" - chmod 600 ${k.path} - ${config.programs.ssh.package}/bin/ssh-keygen -y -f ${k.path} > ${k.path}.pub - chmod 644 ${k.path}.pub - else - echo "Downloading http://metadata.google.internal/0.1/meta-data/attributes/${kName} failed." + # Read in key one by one, split in case Google decided + # to append metadata (it does sometimes) and add to + # authorized_keys if not already present. + touch /root/.ssh/authorized_keys + NEW_KEYS=$(${mktemp}) + # Yes this is a nix escape of two single quotes. + while IFS=''' read -r line || [[ -n "$line" ]]; do + keyLine=$(echo -n "$line" | cut -d ':' -f2) + IFS=' ' read -r -a array <<< "$keyLine" + if [ ''${#array[@]} -ge 3 ]; then + echo ''${array[@]:0:3} >> $NEW_KEYS + echo "Added ''${array[@]:2} to authorized_keys" fi - rm -f $PRIV_KEY - '' - )} - - if [[ $countKeys -le 0 ]]; then - echo "failed to obtain any SSH private host keys." - false + done < $AUTH_KEYS + mv $NEW_KEYS /root/.ssh/authorized_keys + chmod 600 /root/.ssh/authorized_keys + rm -f $KEY_PUB + else + echo "Downloading http://metadata.google.internal/computeMetadata/v1/project/attributes/sshKeys failed." + false fi + rm -f $AUTH_KEYS ''; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; @@ -198,9 +243,13 @@ in serviceConfig.StandardOutput = "journal+console"; }; - # Setings taken from https://cloud.google.com/compute/docs/tutorials/building-images#providedkernel + # Settings taken from https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google_config/sysctl/11-gce-network-security.conf boot.kernel.sysctl = { - # enables syn flood protection + # Turn on SYN-flood protections. Starting with 2.6.26, there is no loss + # of TCP functionality/features under normal conditions. When flood + # protections kick in under high unanswered-SYN load, the system + # should remain more stable, with a trade off of some loss of TCP + # functionality/features (e.g. TCP Window scaling). "net.ipv4.tcp_syncookies" = mkDefault "1"; # ignores source-routed packets @@ -254,6 +303,11 @@ in # randomizes addresses of mmap base, heap, stack and VDSO page "kernel.randomize_va_space" = mkDefault "2"; + # Reboot the machine soon after a kernel panic. + "kernel.panic" = mkDefault "10"; + + ## Not part of the original config + # provides protection from ToCToU races "fs.protected_hardlinks" = mkDefault "1"; diff --git a/nixos/modules/virtualisation/grow-partition.nix b/nixos/modules/virtualisation/grow-partition.nix index 5039118d78e..2cb932d208f 100644 --- a/nixos/modules/virtualisation/grow-partition.nix +++ b/nixos/modules/virtualisation/grow-partition.nix @@ -24,7 +24,12 @@ with lib; copy_bin_and_libs ${pkgs.gnused}/bin/sed copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk copy_bin_and_libs ${pkgs.utillinux}/sbin/lsblk - cp -v ${pkgs.cloud-utils}/bin/.growpart-wrapped $out/bin/growpart + + substitute "${pkgs.cloud-utils}/bin/.growpart-wrapped" "$out/bin/growpart" \ + --replace "${pkgs.bash}/bin/sh" "/bin/sh" \ + --replace "awk" "gawk" \ + --replace "sed" "gnused" + ln -s sed $out/bin/gnused ''; diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix index c0cebaddec8..8aa7ad8e391 100644 --- a/nixos/modules/virtualisation/libvirtd.nix +++ b/nixos/modules/virtualisation/libvirtd.nix @@ -14,6 +14,9 @@ let ${cfg.extraConfig} ''; qemuConfigFile = pkgs.writeText "qemu.conf" '' + ${optionalString cfg.qemuOvmf '' + nvram = ["/run/libvirt/nix-ovmf/OVMF_CODE.fd:/run/libvirt/nix-ovmf/OVMF_VARS.fd"] + ''} ${cfg.qemuVerbatimConfig} ''; @@ -63,6 +66,15 @@ in { ''; }; + virtualisation.libvirtd.qemuOvmf = mkOption { + type = types.bool; + default = true; + description = '' + Allows libvirtd to take advantage of OVMF when creating new + QEMU VMs with UEFI boot. + ''; + }; + virtualisation.libvirtd.extraOptions = mkOption { type = types.listOf types.str; default = [ ]; @@ -90,9 +102,7 @@ in { config = mkIf cfg.enable { - environment.systemPackages = with pkgs; - [ libvirt netcat-openbsd ] - ++ optional cfg.enableKVM qemu_kvm; + environment.systemPackages = with pkgs; [ libvirt netcat-openbsd qemu_kvm ]; boot.kernelModules = [ "tun" ]; @@ -117,7 +127,6 @@ in { dnsmasq ebtables ] - ++ optional cfg.enableKVM qemu_kvm ++ optional vswitch.enable vswitch.package; preStart = '' @@ -143,31 +152,31 @@ in { # Copy generated qemu config to libvirt directory cp -f ${qemuConfigFile} /var/lib/libvirt/qemu.conf - # libvirtd puts the full path of the emulator binary in the machine - # config file. But this path can unfortunately be garbage collected - # while still being used by the virtual machine. So update the - # emulator path on each startup to something valid (re-scan $PATH). - for file in /var/lib/libvirt/qemu/*.xml /var/lib/libvirt/lxc/*.xml; do - test -f "$file" || continue - # get (old) emulator path from config file - emulator=$(grep "^[[:space:]]*" "$file" | sed 's,^[[:space:]]*\(.*\).*,\1,') - # get a (definitely) working emulator path by re-scanning $PATH - new_emulator=$(PATH=${pkgs.libvirt}/libexec:$PATH command -v $(basename "$emulator")) - # write back - sed -i "s,^[[:space:]]*.*, $new_emulator ," "$file" - done - ''; # */ + # stable (not GC'able as in /nix/store) paths for using in section of xml configs + mkdir -p /run/libvirt/nix-emulators + ln -s --force ${pkgs.libvirt}/libexec/libvirt_lxc /run/libvirt/nix-emulators/ + ${optionalString pkgs.stdenv.isAarch64 "ln -s --force ${pkgs.qemu}/bin/qemu-system-aarch64 /run/libvirt/nix-emulators/"} + ${optionalString cfg.enableKVM "ln -s --force ${pkgs.qemu_kvm}/bin/qemu-kvm /run/libvirt/nix-emulators/"} + + ${optionalString cfg.qemuOvmf '' + mkdir -p /run/libvirt/nix-ovmf + ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_CODE.fd /run/libvirt/nix-ovmf/ + ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_VARS.fd /run/libvirt/nix-ovmf/ + ''} + ''; serviceConfig = { Type = "notify"; KillMode = "process"; # when stopping, leave the VMs alone - Restart = "on-failure"; + Restart = "no"; }; + restartIfChanged = false; }; systemd.services.libvirt-guests = { wantedBy = [ "multi-user.target" ]; path = with pkgs; [ coreutils libvirt gawk ]; + restartIfChanged = false; }; systemd.sockets.virtlogd = { @@ -179,6 +188,7 @@ in { systemd.services.virtlogd = { description = "Virtual machine log manager"; serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlogd virtlogd"; + restartIfChanged = false; }; systemd.sockets.virtlockd = { @@ -190,6 +200,7 @@ in { systemd.services.virtlockd = { description = "Virtual machine lock manager"; serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlockd virtlockd"; + restartIfChanged = false; }; }; } diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix index 9d76b890872..b1ff0337994 100644 --- a/nixos/modules/virtualisation/lxd.nix +++ b/nixos/modules/virtualisation/lxd.nix @@ -45,7 +45,7 @@ in after = [ "systemd-udev-settle.service" ]; # TODO(wkennington): Add lvm2 and thin-provisioning-tools - path = with pkgs; [ acl rsync gnutar xz btrfs-progs ]; + path = with pkgs; [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute iptables ]; serviceConfig.ExecStart = "@${pkgs.lxd.bin}/bin/lxd lxd --syslog --group lxd"; serviceConfig.Type = "simple"; diff --git a/nixos/modules/virtualisation/nova-config.nix b/nixos/modules/virtualisation/nova-config.nix index aac11ec8a17..c865cf451e4 100644 --- a/nixos/modules/virtualisation/nova-config.nix +++ b/nixos/modules/virtualisation/nova-config.nix @@ -22,8 +22,13 @@ with lib; boot.loader.timeout = 0; # Allow root logins - services.openssh.enable = true; - services.openssh.permitRootLogin = "prohibit-password"; + services.openssh = { + enable = true; + permitRootLogin = "prohibit-password"; + passwordAuthentication = mkDefault false; + }; + + services.cloud-init.enable = true; # Put /tmp and /var on /ephemeral0, which has a lot more space. # Unfortunately we can't do this with the `fileSystems' option diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 1933f11d1ff..3c89ca68113 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -75,6 +75,7 @@ let exec ${qemu}/bin/qemu-kvm \ -name ${vmName} \ -m ${toString config.virtualisation.memorySize} \ + -smp ${toString config.virtualisation.cores} \ ${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \ ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \ -virtfs local,path=/nix/store,security_model=none,mount_tag=store \ @@ -91,7 +92,7 @@ let -drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=${cfg.qemu.diskInterface},cache=writeback,werror=report \ -kernel ${config.system.build.toplevel}/kernel \ -initrd ${config.system.build.toplevel}/initrd \ - -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo} ${kernelConsole} $QEMU_KERNEL_PARAMS" \ + -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${kernelConsole} $QEMU_KERNEL_PARAMS" \ ''} \ $extraDisks \ ${qemuGraphics} \ @@ -101,15 +102,7 @@ let ''; - regInfo = pkgs.runCommand "reginfo" - { exportReferencesGraph = - map (x: [("closure-" + baseNameOf x) x]) config.virtualisation.pathsInNixDB; - buildInputs = [ pkgs.perl ]; - preferLocalBuild = true; - } - '' - printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > $out - ''; + regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.pathsInNixDB; }; # Generate a hard disk image containing a /boot partition and GRUB @@ -125,7 +118,7 @@ let bootFlash=$out/bios.bin ${qemu}/bin/qemu-img create -f qcow2 $diskImage "40M" ${if cfg.useEFIBoot then '' - cp ${pkgs.OVMF-CSM}/FV/OVMF.fd $bootFlash + cp ${pkgs.OVMF-CSM.fd}/FV/OVMF.fd $bootFlash chmod 0644 $bootFlash '' else '' ''} @@ -244,6 +237,18 @@ in ''; }; + virtualisation.cores = + mkOption { + default = 1; + type = types.int; + description = + '' + Specify the number of cores the guest is permitted to use. + The number can be higher than the available cores on the + host system. + ''; + }; + virtualisation.pathsInNixDB = mkOption { default = []; diff --git a/nixos/modules/virtualisation/vmware-guest.nix b/nixos/modules/virtualisation/vmware-guest.nix index ce1224a8f13..68930a0e325 100644 --- a/nixos/modules/virtualisation/vmware-guest.nix +++ b/nixos/modules/virtualisation/vmware-guest.nix @@ -33,7 +33,7 @@ in serviceConfig.ExecStart = "${open-vm-tools}/bin/vmtoolsd"; }; - environment.etc."vmware-tools".source = "${pkgs.open-vm-tools}/etc/vmware-tools/*"; + environment.etc."vmware-tools".source = "${open-vm-tools}/etc/vmware-tools/*"; services.xserver = mkIf (!cfg.headless) { videoDrivers = mkOverride 50 [ "vmware" ]; diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix index 1f5b6bd1d80..c7656bc309c 100644 --- a/nixos/modules/virtualisation/xen-dom0.nix +++ b/nixos/modules/virtualisation/xen-dom0.nix @@ -16,6 +16,7 @@ in virtualisation.xen.enable = mkOption { default = false; + type = types.bool; description = '' Setting this option enables the Xen hypervisor, a @@ -100,6 +101,16 @@ in subnet. ''; }; + + forwardDns = mkOption { + default = false; + description = '' + If set to true, the DNS queries from the + hosts connected to the bridge will be forwarded to the DNS + servers specified in /etc/resolv.conf . + ''; + }; + }; virtualisation.xen.stored = @@ -111,6 +122,19 @@ in ''; }; + virtualisation.xen.domains = { + extraConfig = mkOption { + type = types.string; + default = ""; + description = + '' + Options defined here will override the defaults for xendomains. + The default options can be seen in the file included from + /etc/default/xendomains. + ''; + }; + }; + virtualisation.xen.trace = mkOption { default = false; @@ -216,7 +240,11 @@ in { source = "${cfg.package}/etc/xen/scripts"; target = "xen/scripts"; } - { source = "${cfg.package}/etc/default/xendomains"; + { text = '' + source ${cfg.package}/etc/default/xendomains + + ${cfg.domains.extraConfig} + ''; target = "default/xendomains"; } ]; @@ -240,26 +268,36 @@ in mkdir -p /var/lib/xen # so we create them here unconditionally. grep -q control_d /proc/xen/capabilities ''; - serviceConfig.ExecStart = '' - ${cfg.stored}${optionalString cfg.trace " -T /var/log/xen/xenstored-trace.log"} --no-fork - ''; + serviceConfig = if cfg.package.version < "4.8" then + { ExecStart = '' + ${cfg.stored}${optionalString cfg.trace " -T /var/log/xen/xenstored-trace.log"} --no-fork + ''; + } else { + ExecStart = '' + ${cfg.package}/etc/xen/scripts/launch-xenstore + ''; + Type = "notify"; + RemainAfterExit = true; + NotifyAccess = "all"; + }; postStart = '' - time=0 - timeout=30 - # Wait for xenstored to actually come up, timing out after 30 seconds - while [ $time -lt $timeout ] && ! `${cfg.package}/bin/xenstore-read -s / >/dev/null 2>&1` ; do - time=$(($time+1)) - sleep 1 - done + ${optionalString (cfg.package.version < "4.8") '' + time=0 + timeout=30 + # Wait for xenstored to actually come up, timing out after 30 seconds + while [ $time -lt $timeout ] && ! `${cfg.package}/bin/xenstore-read -s / >/dev/null 2>&1` ; do + time=$(($time+1)) + sleep 1 + done - # Exit if we timed out - if ! [ $time -lt $timeout ] ; then - echo "Could not start Xenstore Daemon" - exit 1 - fi - - ${cfg.package}/bin/xenstore-write "/local/domain/0/name" "Domain-0" - ${cfg.package}/bin/xenstore-write "/local/domain/0/domid" 0 + # Exit if we timed out + if ! [ $time -lt $timeout ] ; then + echo "Could not start Xenstore Daemon" + exit 1 + fi + ''} + echo "executing xen-init-dom0" + ${cfg.package}/lib/xen/bin/xen-init-dom0 ''; }; @@ -279,6 +317,7 @@ in description = "Xen Console Daemon"; wantedBy = [ "multi-user.target" ]; after = [ "xen-store.service" ]; + requires = [ "xen-store.service" ]; preStart = '' mkdir -p /var/run/xen ${optionalString cfg.trace "mkdir -p /var/log/xen"} @@ -286,7 +325,9 @@ in ''; serviceConfig = { ExecStart = '' - ${cfg.package}/bin/xenconsoled${optionalString cfg.trace " --log=all --log-dir=/var/log/xen"} + ${cfg.package}/bin/xenconsoled\ + ${optionalString ((cfg.package.version >= "4.8")) " -i"}\ + ${optionalString cfg.trace " --log=all --log-dir=/var/log/xen"} ''; }; }; @@ -296,6 +337,7 @@ in description = "Xen Qemu Daemon"; wantedBy = [ "multi-user.target" ]; after = [ "xen-console.service" ]; + requires = [ "xen-store.service" ]; serviceConfig.ExecStart = '' ${cfg.qemu} -xen-attach -xen-domid 0 -name dom0 -M xenpv \ -nographic -monitor /dev/null -serial /dev/null -parallel /dev/null @@ -306,7 +348,7 @@ in systemd.services.xen-watchdog = { description = "Xen Watchdog Daemon"; wantedBy = [ "multi-user.target" ]; - after = [ "xen-qemu.service" ]; + after = [ "xen-qemu.service" "xen-domains.service" ]; serviceConfig.ExecStart = "${cfg.package}/bin/xenwatchdogd 30 15"; serviceConfig.Type = "forking"; serviceConfig.RestartSec = "1"; @@ -331,6 +373,9 @@ in IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ address` export XEN_BRIDGE_NETWORK_ADDRESS="${"\${data[1]//[[:blank:]]/}"}" + IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ mask` + export XEN_BRIDGE_NETMASK="${"\${data[1]//[[:blank:]]/}"}" + echo "${cfg.bridge.address} host gw dns" > /var/run/xen/dnsmasq.hostsfile cat < /var/run/xen/dnsmasq.conf @@ -339,7 +384,6 @@ in interface=${cfg.bridge.name} except-interface=lo bind-interfaces - auth-server=dns.xen.local,${cfg.bridge.name} auth-zone=xen.local,$XEN_BRIDGE_NETWORK_ADDRESS/${toString cfg.bridge.prefixLength} domain=xen.local addn-hosts=/var/run/xen/dnsmasq.hostsfile @@ -347,8 +391,11 @@ in strict-order no-hosts bogus-priv - no-resolv - no-poll + ${optionalString (!cfg.bridge.forwardDns) '' + no-resolv + no-poll + auth-server=dns.xen.local,${cfg.bridge.name} + ''} filterwin2k clear-on-reload domain-needed @@ -369,10 +416,14 @@ in ${pkgs.bridge-utils}/bin/brctl addbr ${cfg.bridge.name} ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} ${cfg.bridge.address} + ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} netmask $XEN_BRIDGE_NETMASK ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} up ''; serviceConfig.ExecStart = "${pkgs.dnsmasq}/bin/dnsmasq --conf-file=/var/run/xen/dnsmasq.conf"; postStop = '' + IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ address` + export XEN_BRIDGE_NETWORK_ADDRESS="${"\${data[1]//[[:blank:]]/}"}" + ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} down ${pkgs.bridge-utils}/bin/brctl delbr ${cfg.bridge.name} @@ -380,8 +431,8 @@ in ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p udp -d ${cfg.bridge.address} --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p tcp -d ${cfg.bridge.address} --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT # DHCP - ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p udp --sport 68 --dport 67 -j ACCEPT - ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p tcp --sport 68 --dport 67 -j ACCEPT + ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p udp -s $XEN_BRIDGE_NETWORK_ADDRESS/${toString cfg.bridge.prefixLength} --sport 68 --dport 67 -j ACCEPT + ${pkgs.iptables}/bin/iptables -w -D INPUT -i ${cfg.bridge.name} -p tcp -s $XEN_BRIDGE_NETWORK_ADDRESS/${toString cfg.bridge.prefixLength} --sport 68 --dport 67 -j ACCEPT ''; }; @@ -390,6 +441,7 @@ in description = "Xen domains - automatically starts, saves and restores Xen domains"; wantedBy = [ "multi-user.target" ]; after = [ "xen-bridge.service" "xen-qemu.service" ]; + requires = [ "xen-bridge.service" "xen-qemu.service" ]; ## To prevent a race between dhcpcd and xend's bridge setup script ## (which renames eth* to peth* and recreates eth* as a virtual ## device), start dhcpcd after xend. diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index 5c1112a1c6d..125e6b7050b 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -4,7 +4,8 @@ { nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; } , stableBranch ? false -, supportedSystems ? [ "x86_64-linux" "i686-linux" ] +, supportedSystems ? [ "x86_64-linux" ] +, limitedSupportedSystems ? [ "i686-linux" ] }: let @@ -19,10 +20,16 @@ let else pkgs.lib.mapAttrs (n: v: removeMaintainers v) set else set; + allSupportedNixpkgs = builtins.removeAttrs (removeMaintainers (import ../pkgs/top-level/release.nix { + supportedSystems = supportedSystems ++ limitedSupportedSystems; + nixpkgs = nixpkgsSrc; + })) [ "unstable" ]; + in rec { nixos = removeMaintainers (import ./release.nix { - inherit stableBranch supportedSystems; + inherit stableBranch; + supportedSystems = supportedSystems ++ limitedSupportedSystems; nixpkgs = nixpkgsSrc; }); @@ -35,11 +42,13 @@ in rec { name = "nixos-${nixos.channel.version}"; meta = { description = "Release-critical builds for the NixOS channel"; - maintainers = [ pkgs.lib.maintainers.eelco ]; + maintainers = with pkgs.lib.maintainers; [ eelco fpletz ]; }; constituents = - let all = x: map (system: x.${system}) supportedSystems; in - [ nixos.channel + let + all = x: map (system: x.${system}) supportedSystems; + in [ + nixos.channel (all nixos.dummy) (all nixos.manual) @@ -51,7 +60,8 @@ in rec { nixos.tests.chromium (all nixos.tests.firefox) (all nixos.tests.firewall) - nixos.tests.gnome3.x86_64-linux # FIXME: i686-linux + (all nixos.tests.gnome3) + nixos.tests.installer.zfsroot.x86_64-linux # ZFS is 64bit only (all nixos.tests.installer.lvm) (all nixos.tests.installer.luksroot) (all nixos.tests.installer.separateBoot) @@ -59,6 +69,7 @@ in rec { (all nixos.tests.installer.simple) (all nixos.tests.installer.simpleLabels) (all nixos.tests.installer.simpleProvided) + (all nixos.tests.installer.simpleUefiSystemdBoot) (all nixos.tests.installer.swraid) (all nixos.tests.installer.btrfsSimple) (all nixos.tests.installer.btrfsSubvols) @@ -68,10 +79,18 @@ in rec { (all nixos.tests.boot.uefiCdrom) (all nixos.tests.boot.uefiUsb) (all nixos.tests.boot-stage1) - nixos.tests.hibernate.x86_64-linux # i686 is flaky, see #23107 + (all nixos.tests.hibernate) + nixos.tests.docker (all nixos.tests.ecryptfs) + (all nixos.tests.env) (all nixos.tests.ipv6) (all nixos.tests.i3wm) + (all nixos.tests.keymap.azerty) + (all nixos.tests.keymap.colemak) + (all nixos.tests.keymap.dvorak) + (all nixos.tests.keymap.dvp) + (all nixos.tests.keymap.neo) + (all nixos.tests.keymap.qwertz) (all nixos.tests.plasma5) #(all nixos.tests.lightdm) (all nixos.tests.login) @@ -94,12 +113,13 @@ in rec { (all nixos.tests.proxy) (all nixos.tests.sddm.default) (all nixos.tests.simple) + (all nixos.tests.slim) (all nixos.tests.udisks2) (all nixos.tests.xfce) nixpkgs.tarball - (all nixpkgs.emacs) - (all nixpkgs.jdk) + (all allSupportedNixpkgs.emacs) + (all allSupportedNixpkgs.jdk) ]; }); diff --git a/nixos/release.nix b/nixos/release.nix index 95b284cb705..5701d7826ca 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -1,6 +1,6 @@ { nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; } , stableBranch ? false -, supportedSystems ? [ "x86_64-linux" "i686-linux" ] +, supportedSystems ? [ "x86_64-linux" ] }: with import ../lib; @@ -214,6 +214,8 @@ in rec { # Run the tests for each platform. You can run a test by doing # e.g. ‘nix-build -A tests.login.x86_64-linux’, or equivalently, # ‘nix-build tests/login.nix -A result’. + tests.atd = callTest tests/atd.nix {}; + tests.acme = callTest tests/acme.nix {}; tests.avahi = callTest tests/avahi.nix {}; tests.bittorrent = callTest tests/bittorrent.nix {}; tests.blivet = callTest tests/blivet.nix {}; @@ -222,6 +224,7 @@ in rec { tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable; tests.cjdns = callTest tests/cjdns.nix {}; + tests.cloud-init = callTest tests/cloud-init.nix {}; tests.containers-ipv4 = callTest tests/containers-ipv4.nix {}; tests.containers-ipv6 = callTest tests/containers-ipv6.nix {}; tests.containers-bridge = callTest tests/containers-bridge.nix {}; @@ -233,25 +236,33 @@ in rec { tests.containers-hosts = callTest tests/containers-hosts.nix {}; tests.containers-macvlans = callTest tests/containers-macvlans.nix {}; tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; }); + tests.docker-edge = hydraJob (import tests/docker-edge.nix { system = "x86_64-linux"; }); + tests.dovecot = callTest tests/dovecot.nix {}; 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; + tests.elk = hydraJob (import tests/elk.nix { system = "x86_64-linux"; }); + tests.env = callTest tests/env.nix {}; tests.ferm = callTest tests/ferm.nix {}; tests.firefox = callTest tests/firefox.nix {}; tests.firewall = callTest tests/firewall.nix {}; tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; }); #tests.gitlab = callTest tests/gitlab.nix {}; + tests.gitolite = callTest tests/gitolite.nix {}; tests.glance = callTest tests/glance.nix {}; tests.gocd-agent = callTest tests/gocd-agent.nix {}; tests.gocd-server = callTest tests/gocd-server.nix {}; tests.gnome3 = callTest tests/gnome3.nix {}; tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {}; - tests.grsecurity = callTest tests/grsecurity.nix {}; + tests.grafana = callTest tests/grafana.nix {}; + tests.graphite = callTest tests/graphite.nix {}; + tests.hardened = callTest tests/hardened.nix { }; tests.hibernate = callTest tests/hibernate.nix {}; tests.hound = callTest tests/hound.nix {}; tests.i3wm = callTest tests/i3wm.nix {}; + tests.initrd-network-ssh = callTest tests/initrd-network-ssh.nix {}; tests.installer = callSubTests tests/installer.nix {}; tests.influxdb = callTest tests/influxdb.nix {}; tests.ipv6 = callTest tests/ipv6.nix {}; @@ -259,18 +270,24 @@ in rec { tests.plasma5 = callTest tests/plasma5.nix {}; tests.keymap = callSubTests tests/keymap.nix {}; tests.initrdNetwork = callTest tests/initrd-network.nix {}; + tests.kernel-copperhead = callTest tests/kernel-copperhead.nix {}; + tests.kernel-latest = callTest tests/kernel-latest.nix {}; + tests.kernel-lts = callTest tests/kernel-lts.nix {}; tests.keystone = callTest tests/keystone.nix {}; - tests.kubernetes = hydraJob (import tests/kubernetes.nix { system = "x86_64-linux"; }); + tests.kubernetes = hydraJob (import tests/kubernetes/default.nix { system = "x86_64-linux"; }); tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; }; + tests.ldap = callTest tests/ldap.nix {}; #tests.lightdm = callTest tests/lightdm.nix {}; tests.login = callTest tests/login.nix {}; #tests.logstash = callTest tests/logstash.nix {}; tests.mathics = callTest tests/mathics.nix {}; + tests.mesos = callTest tests/mesos.nix {}; tests.misc = callTest tests/misc.nix {}; tests.mongodb = callTest tests/mongodb.nix {}; tests.mumble = callTest tests/mumble.nix {}; tests.munin = callTest tests/munin.nix {}; tests.mysql = callTest tests/mysql.nix {}; + tests.mysqlBackup = callTest tests/mysql-backup.nix {}; tests.mysqlReplication = callTest tests/mysql-replication.nix {}; tests.nat.firewall = callTest tests/nat.nix { withFirewall = true; }; tests.nat.firewall-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; }; @@ -289,23 +306,30 @@ in rec { #tests.panamax = hydraJob (import tests/panamax.nix { system = "x86_64-linux"; }); tests.peerflix = callTest tests/peerflix.nix {}; tests.postgresql = callSubTests tests/postgresql.nix {}; - tests.pgjwt = callTest tests/pgjwt.nix {}; + tests.pgmanage = callTest tests/pgmanage.nix {}; + tests.postgis = callTest tests/postgis.nix {}; + #tests.pgjwt = callTest tests/pgjwt.nix {}; tests.printing = callTest tests/printing.nix {}; + tests.prometheus = callTest tests/prometheus.nix {}; tests.proxy = callTest tests/proxy.nix {}; tests.pumpio = callTest tests/pump.io.nix {}; # tests.quagga = callTest tests/quagga.nix {}; tests.quake3 = callTest tests/quake3.nix {}; + tests.radicale = callTest tests/radicale.nix {}; tests.runInMachine = callTest tests/run-in-machine.nix {}; tests.samba = callTest tests/samba.nix {}; tests.sddm = callSubTests tests/sddm.nix {}; tests.simple = callTest tests/simple.nix {}; + tests.slim = callTest tests/slim.nix {}; tests.smokeping = callTest tests/smokeping.nix {}; + tests.snapper = callTest tests/snapper.nix {}; tests.taskserver = callTest tests/taskserver.nix {}; tests.tomcat = callTest tests/tomcat.nix {}; tests.udisks2 = callTest tests/udisks2.nix {}; tests.virtualbox = callSubTests tests/virtualbox.nix { system = "x86_64-linux"; }; tests.wordpress = callTest tests/wordpress.nix {}; tests.xfce = callTest tests/xfce.nix {}; + tests.xmonad = callTest tests/xmonad.nix {}; /* Build a bunch of typical closures so that Hydra can keep track of diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix new file mode 100644 index 00000000000..d7452744e17 --- /dev/null +++ b/nixos/tests/acme.nix @@ -0,0 +1,62 @@ +let + commonConfig = { config, lib, pkgs, nodes, ... }: { + networking.nameservers = [ + nodes.letsencrypt.config.networking.primaryIPAddress + ]; + + nixpkgs.overlays = lib.singleton (self: super: { + cacert = super.cacert.overrideDerivation (drv: { + installPhase = (drv.installPhase or "") + '' + cat "${nodes.letsencrypt.config.test-support.letsencrypt.caCert}" \ + >> "$out/etc/ssl/certs/ca-bundle.crt" + ''; + }); + + pythonPackages = (super.python.override { + packageOverrides = lib.const (pysuper: { + certifi = pysuper.certifi.overridePythonAttrs (attrs: { + postPatch = (attrs.postPatch or "") + '' + cat "${self.cacert}/etc/ssl/certs/ca-bundle.crt" \ + > certifi/cacert.pem + ''; + }); + }); + }).pkgs; + }); + }; + +in import ./make-test.nix { + name = "acme"; + + nodes = { + letsencrypt = ./common/letsencrypt.nix; + + webserver = { config, pkgs, ... }: { + imports = [ commonConfig ]; + networking.firewall.allowedTCPPorts = [ 80 443 ]; + + networking.extraHosts = '' + ${config.networking.primaryIPAddress} example.com + ''; + + services.nginx.enable = true; + services.nginx.virtualHosts."example.com" = { + enableACME = true; + forceSSL = true; + locations."/".root = pkgs.runCommand "docroot" {} '' + mkdir -p "$out" + echo hello world > "$out/index.html" + ''; + }; + }; + + client = commonConfig; + }; + + testScript = '' + $letsencrypt->waitForUnit("boulder.service"); + startAll; + $webserver->waitForUnit("acme-certificates.target"); + $client->succeed('curl https://example.com/ | grep -qF "hello world"'); + ''; +} diff --git a/nixos/tests/ammonite.nix b/nixos/tests/ammonite.nix new file mode 100644 index 00000000000..e1dee71fddf --- /dev/null +++ b/nixos/tests/ammonite.nix @@ -0,0 +1,20 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "ammonite"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + nodes = { + amm = + { config, pkgs, ... }: + { + environment.systemPackages = [ pkgs.ammonite ]; + }; + }; + + testScript = '' + startAll; + + $amm->succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42") + ''; +}) diff --git a/nixos/tests/atd.nix b/nixos/tests/atd.nix new file mode 100644 index 00000000000..c2c0a716e0d --- /dev/null +++ b/nixos/tests/atd.nix @@ -0,0 +1,36 @@ +import ./make-test.nix ({ pkgs, lib, ... }: + +{ + name = "atd"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ bjornfor ]; + }; + + machine = + { config, pkgs, ... }: + { services.atd.enable = true; + users.extraUsers.alice = { isNormalUser = true; }; + }; + + # "at" has a resolution of 1 minute + testScript = '' + startAll; + + $machine->fail("test -f ~root/at-1"); + $machine->fail("test -f ~root/batch-1"); + $machine->fail("test -f ~alice/at-1"); + $machine->fail("test -f ~alice/batch-1"); + + $machine->succeed("echo 'touch ~root/at-1' | at now+1min"); + $machine->succeed("echo 'touch ~root/batch-1' | batch"); + $machine->succeed("su - alice -c \"echo 'touch at-1' | at now+1min\""); + $machine->succeed("su - alice -c \"echo 'touch batch-1' | batch\""); + + $machine->succeed("sleep 1.5m"); + + $machine->succeed("test -f ~root/at-1"); + $machine->succeed("test -f ~root/batch-1"); + $machine->succeed("test -f ~alice/at-1"); + $machine->succeed("test -f ~alice/batch-1"); + ''; +}) diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix index 3ea0df65c8b..69ab4755e44 100644 --- a/nixos/tests/boot.nix +++ b/nixos/tests/boot.nix @@ -40,12 +40,12 @@ in { uefiCdrom = makeBootTest "uefi-cdrom" '' cdrom => glob("${iso}/iso/*.iso"), - bios => '${pkgs.OVMF}/FV/OVMF.fd' + bios => '${pkgs.OVMF.fd}/FV/OVMF.fd' ''; uefiUsb = makeBootTest "uefi-usb" '' usb => glob("${iso}/iso/*.iso"), - bios => '${pkgs.OVMF}/FV/OVMF.fd' + bios => '${pkgs.OVMF.fd}/FV/OVMF.fd' ''; netboot = let diff --git a/nixos/tests/buildbot.nix b/nixos/tests/buildbot.nix index 13a162e6c6e..828846f17c8 100644 --- a/nixos/tests/buildbot.nix +++ b/nixos/tests/buildbot.nix @@ -4,18 +4,22 @@ import ./make-test.nix ({ pkgs, ... } : { name = "buildbot"; nodes = { - bbmaster = { config, pkgs, nodes, ... }: { + bbmaster = { config, pkgs, ... }: { services.buildbot-master = { enable = true; + package = pkgs.buildbot-full; + + # NOTE: use fake repo due to no internet in hydra ci factorySteps = [ - "steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')" - "steps.ShellCommand(command=['trial', 'pyflakes'])" + "steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')" + "steps.ShellCommand(command=['bash', 'fakerepo.sh'])" ]; changeSource = [ - "changes.GitPoller('git://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)" + "changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)" ]; }; - networking.firewall.allowedTCPPorts = [ 8010 9989 ]; + networking.firewall.allowedTCPPorts = [ 8010 8011 9989 ]; + environment.systemPackages = with pkgs; [ git buildbot-full ]; }; bbworker = { config, pkgs, ... }: { @@ -23,24 +27,85 @@ import ./make-test.nix ({ pkgs, ... } : { enable = true; masterUrl = "bbmaster:9989"; }; + environment.systemPackages = with pkgs; [ git buildbot-worker ]; + }; + + gitrepo = { config, pkgs, ... }: { + services.openssh.enable = true; + networking.firewall.allowedTCPPorts = [ 22 9418 ]; + environment.systemPackages = with pkgs; [ git ]; }; }; testScript = '' + #Start up and populate fake repo + $gitrepo->waitForUnit("multi-user.target"); + print($gitrepo->execute(" \ + git config --global user.name 'Nobody Fakeuser' && \ + git config --global user.email 'nobody\@fakerepo.com' && \ + rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo && \ + mkdir -pv /srv/repos/fakerepo ~/.ssh && \ + ssh-keyscan -H gitrepo > ~/.ssh/known_hosts && \ + cat ~/.ssh/known_hosts && \ + cd /srv/repos/fakerepo && \ + git init && \ + echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh && \ + cat fakerepo.sh && \ + touch .git/git-daemon-export-ok && \ + git add fakerepo.sh .git/git-daemon-export-ok && \ + git commit -m fakerepo && \ + git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr & \ + ")); - $bbmaster->waitForUnit("network.target"); - $bbworker->waitForUnit("network.target"); + # Test gitrepo + $bbmaster->waitForUnit("network-online.target"); + #$bbmaster->execute("nc -z gitrepo 9418"); + print($bbmaster->execute(" \ + rm -rfv /tmp/fakerepo && \ + git clone git://gitrepo/fakerepo /tmp/fakerepo && \ + pwd && \ + ls -la && \ + ls -la /tmp/fakerepo \ + ")); - # Additional tests to be added - #$bbmaster->waitForUnit("buildbot-master.service"); - #$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die; - #$bbworker->waitForUnit("buildbot-worker.service"); - #$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die; + # Test start master and connect worker + $bbmaster->waitForUnit("buildbot-master.service"); + $bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/; + $bbworker->waitForUnit("network-online.target"); + $bbworker->execute("nc -z bbmaster 8010"); + $bbworker->execute("nc -z bbmaster 9989"); + $bbworker->waitForUnit("buildbot-worker.service"); + print($bbworker->execute("ls -la /home/bbworker/worker")); + + + # Test stop buildbot master and worker + print($bbmaster->execute(" \ + systemctl -l --no-pager status buildbot-master && \ + systemctl stop buildbot-master \ + ")); + $bbworker->fail("nc -z bbmaster 8010"); + $bbworker->fail("nc -z bbmaster 9989"); + print($bbworker->execute(" \ + systemctl -l --no-pager status buildbot-worker && \ + systemctl stop buildbot-worker && \ + ls -la /home/bbworker/worker \ + ")); + + + # Test buildbot daemon mode + # NOTE: daemon mode tests disabled due to broken PYTHONPATH child inheritence + # + #$bbmaster->execute("buildbot create-master /tmp"); + #$bbmaster->execute("mv -fv /tmp/master.cfg.sample /tmp/master.cfg"); + #$bbmaster->execute("sed -i 's/8010/8011/' /tmp/master.cfg"); + #$bbmaster->execute("buildbot start /tmp"); + #$bbworker->execute("nc -z bbmaster 8011"); + #$bbworker->waitUntilSucceeds("curl -s --head http://bbmaster:8011") =~ /200 OK/; + #$bbmaster->execute("buildbot stop /tmp"); + #$bbworker->fail("nc -z bbmaster 8011"); ''; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ nand0p ]; - }; + meta.maintainers = with pkgs.stdenv.lib.maintainers; [ nand0p ]; }) diff --git a/nixos/tests/cloud-init.nix b/nixos/tests/cloud-init.nix new file mode 100644 index 00000000000..c0add7eff36 --- /dev/null +++ b/nixos/tests/cloud-init.nix @@ -0,0 +1,47 @@ +{ system ? builtins.currentSystem }: + +with import ../lib/testing.nix { inherit system; }; +with import ../lib/qemu-flags.nix; +with pkgs.lib; + +let + metadataDrive = pkgs.stdenv.mkDerivation { + name = "metadata"; + buildCommand = '' + mkdir -p $out/iso + + cat << EOF > $out/iso/user-data + #cloud-config + write_files: + - content: | + cloudinit + path: /tmp/cloudinit-write-file + EOF + + cat << EOF > $out/iso/meta-data + instance-id: iid-local01 + local-hostname: "test" + public-keys: + - "should be a key!" + EOF + ${pkgs.cdrkit}/bin/genisoimage -volid cidata -joliet -rock -o $out/metadata.iso $out/iso + ''; + }; +in makeTest { + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ lewo ]; + }; + machine = + { config, pkgs, ... }: + { + virtualisation.qemu.options = [ "-cdrom" "${metadataDrive}/metadata.iso" ]; + services.cloud-init.enable = true; + }; + testScript = '' + $machine->start; + $machine->waitForUnit("cloud-init.service"); + $machine->succeed("cat /tmp/cloudinit-write-file | grep -q 'cloudinit'"); + + $machine->waitUntilSucceeds("cat /root/.ssh/authorized_keys | grep -q 'should be a key!'"); + ''; +} diff --git a/nixos/tests/common/letsencrypt.nix b/nixos/tests/common/letsencrypt.nix new file mode 100644 index 00000000000..5a2a266d4da --- /dev/null +++ b/nixos/tests/common/letsencrypt.nix @@ -0,0 +1,446 @@ +# Fully pluggable module to have Letsencrypt's Boulder ACME service running in +# a test environment. +# +# The certificate for the ACME service is exported as: +# +# config.test-support.letsencrypt.caCert +# +# This value can be used inside the configuration of other test nodes to inject +# the snakeoil certificate into security.pki.certificateFiles or into package +# overlays. +# +# Another value that's needed if you don't use a custom resolver (see below for +# notes on that) is to add the letsencrypt node as a nameserver to every node +# that needs to acquire certificates using ACME, because otherwise the API host +# for letsencrypt.org can't be resolved. +# +# A configuration example of a full node setup using this would be this: +# +# { +# letsencrypt = import ./common/letsencrypt.nix; +# +# example = { nodes, ... }: { +# networking.nameservers = [ +# nodes.letsencrypt.config.networking.primaryIPAddress +# ]; +# security.pki.certificateFiles = [ +# nodes.letsencrypt.config.test-support.letsencrypt.caCert +# ]; +# }; +# } +# +# By default, this module runs a local resolver, generated using resolver.nix +# from the same directory to automatically discover all zones in the network. +# +# If you do not want this and want to use your own resolver, you can just +# override networking.nameservers like this: +# +# { +# letsencrypt = { nodes, ... }: { +# imports = [ ./common/letsencrypt.nix ]; +# networking.nameservers = [ +# nodes.myresolver.config.networking.primaryIPAddress +# ]; +# }; +# +# myresolver = ...; +# } +# +# Keep in mind, that currently only _one_ resolver is supported, if you have +# more than one resolver in networking.nameservers only the first one will be +# used. +# +# Also make sure that whenever you use a resolver from a different test node +# that it has to be started _before_ the ACME service. +{ config, pkgs, lib, ... }: + +let + softhsm = pkgs.stdenv.mkDerivation rec { + name = "softhsm-${version}"; + version = "1.3.8"; + + src = pkgs.fetchurl { + url = "https://dist.opendnssec.org/source/${name}.tar.gz"; + sha256 = "0flmnpkgp65ym7w3qyg78d3fbmvq3aznmi66rgd420n33shf7aif"; + }; + + configureFlags = [ "--with-botan=${pkgs.botan}" ]; + buildInputs = [ pkgs.sqlite ]; + }; + + pkcs11-proxy = pkgs.stdenv.mkDerivation { + name = "pkcs11-proxy"; + + src = pkgs.fetchFromGitHub { + owner = "SUNET"; + repo = "pkcs11-proxy"; + rev = "944684f78bca0c8da6cabe3fa273fed3db44a890"; + sha256 = "1nxgd29y9wmifm11pjcdpd2y293p0dgi0x5ycis55miy97n0f5zy"; + }; + + postPatch = "patchShebangs mksyscalls.sh"; + + nativeBuildInputs = [ pkgs.cmake ]; + buildInputs = [ pkgs.openssl pkgs.libseccomp ]; + }; + + mkGoDep = { goPackagePath, url ? "https://${goPackagePath}", rev, sha256 }: { + inherit goPackagePath; + src = pkgs.fetchgit { inherit url rev sha256; }; + }; + + goose = let + owner = "liamstask"; + repo = "goose"; + rev = "8488cc47d90c8a502b1c41a462a6d9cc8ee0a895"; + version = "20150116"; + + in pkgs.buildGoPackage rec { + name = "${repo}-${version}"; + + src = pkgs.fetchFromBitbucket { + name = "${name}-src"; + inherit rev owner repo; + sha256 = "1jy0pscxjnxjdg3hj111w21g8079rq9ah2ix5ycxxhbbi3f0wdhs"; + }; + + goPackagePath = "bitbucket.org/${owner}/${repo}"; + subPackages = [ "cmd/goose" ]; + extraSrcs = map mkGoDep [ + { goPackagePath = "github.com/go-sql-driver/mysql"; + rev = "2e00b5cd70399450106cec6431c2e2ce3cae5034"; + sha256 = "085g48jq9hzmlcxg122n0c4pi41sc1nn2qpx1vrl2jfa8crsppa5"; + } + { goPackagePath = "github.com/kylelemons/go-gypsy"; + rev = "08cad365cd28a7fba23bb1e57aa43c5e18ad8bb8"; + sha256 = "1djv7nii3hy451n5jlslk0dblqzb1hia1cbqpdwhnps1g8hqjy8q"; + } + { goPackagePath = "github.com/lib/pq"; + rev = "ba5d4f7a35561e22fbdf7a39aa0070f4d460cfc0"; + sha256 = "1mfbqw9g00bk24bfmf53wri5c2wqmgl0qh4sh1qv2da13a7cwwg3"; + } + { goPackagePath = "github.com/mattn/go-sqlite3"; + rev = "2acfafad5870400156f6fceb12852c281cbba4d5"; + sha256 = "1rpgil3w4hh1cibidskv1js898hwz83ps06gh0hm3mym7ki8d5h7"; + } + { goPackagePath = "github.com/ziutek/mymysql"; + rev = "0582bcf675f52c0c2045c027fd135bd726048f45"; + sha256 = "0bkc9x8sgqbzgdimsmsnhb0qrzlzfv33fgajmmjxl4hcb21qz3rf"; + } + { goPackagePath = "golang.org/x/net"; + url = "https://go.googlesource.com/net"; + rev = "10c134ea0df15f7e34d789338c7a2d76cc7a3ab9"; + sha256 = "14cbr2shl08gyg85n5gj7nbjhrhhgrd52h073qd14j97qcxsakcz"; + } + ]; + }; + + boulder = let + owner = "letsencrypt"; + repo = "boulder"; + rev = "9866abab8962a591f06db457a4b84c518cc88243"; + version = "20170510"; + + in pkgs.buildGoPackage rec { + name = "${repo}-${version}"; + + src = pkgs.fetchFromGitHub { + name = "${name}-src"; + inherit rev owner repo; + sha256 = "170m5cjngbrm36wi7wschqw8jzs7kxpcyzmshq3pcrmcpigrhna1"; + }; + + postPatch = '' + # compat for go < 1.8 + sed -i -e 's/time\.Until(\([^)]\+\))/\1.Sub(time.Now())/' \ + test/ocsp/helper/helper.go + + find test -type f -exec sed -i -e '/libpkcs11-proxy.so/ { + s,/usr/local,${pkcs11-proxy}, + }' {} + + + sed -i -r \ + -e '/^def +install/a \ return True' \ + -e 's,exec \./bin/,,' \ + test/startservers.py + + cat "${snakeOilCa}/ca.key" > test/test-ca.key + cat "${snakeOilCa}/ca.pem" > test/test-ca.pem + ''; + + goPackagePath = "github.com/${owner}/${repo}"; + buildInputs = [ pkgs.libtool ]; + }; + + boulderSource = "${boulder.out}/share/go/src/${boulder.goPackagePath}"; + + softHsmConf = pkgs.writeText "softhsm.conf" '' + 0:/var/lib/softhsm/slot0.db + 1:/var/lib/softhsm/slot1.db + ''; + + snakeOilCa = pkgs.runCommand "snakeoil-ca" { + buildInputs = [ pkgs.openssl ]; + } '' + mkdir "$out" + openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \ + -subj '/CN=Snakeoil CA' -nodes \ + -out "$out/ca.pem" -keyout "$out/ca.key" + ''; + + createAndSignCert = fqdn: let + snakeoilCertConf = pkgs.writeText "snakeoil.cnf" '' + [req] + default_bits = 4096 + prompt = no + default_md = sha256 + req_extensions = req_ext + distinguished_name = dn + [dn] + CN = ${fqdn} + [req_ext] + subjectAltName = DNS:${fqdn} + ''; + in pkgs.runCommand "snakeoil-certs-${fqdn}" { + buildInputs = [ pkgs.openssl ]; + } '' + mkdir "$out" + openssl genrsa -out "$out/snakeoil.key" 4096 + openssl req -new -key "$out/snakeoil.key" \ + -config ${lib.escapeShellArg snakeoilCertConf} \ + -out snakeoil.csr + openssl x509 -req -in snakeoil.csr -sha256 -set_serial 666 \ + -CA "${snakeOilCa}/ca.pem" -CAkey "${snakeOilCa}/ca.key" \ + -extfile ${lib.escapeShellArg snakeoilCertConf} \ + -out "$out/snakeoil.pem" -days 36500 + ''; + + wfeCerts = createAndSignCert wfeDomain; + wfeDomain = "acme-v01.api.letsencrypt.org"; + wfeCertFile = "${wfeCerts}/snakeoil.pem"; + wfeKeyFile = "${wfeCerts}/snakeoil.key"; + + siteCerts = createAndSignCert siteDomain; + siteDomain = "letsencrypt.org"; + siteCertFile = "${siteCerts}/snakeoil.pem"; + siteKeyFile = "${siteCerts}/snakeoil.key"; + + # Retrieved via: + # curl -s -I https://acme-v01.api.letsencrypt.org/terms \ + # | sed -ne 's/^[Ll]ocation: *//p' + tosUrl = "https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf"; + tosPath = builtins.head (builtins.match "https?://[^/]+(.*)" tosUrl); + + tosFile = pkgs.fetchurl { + url = tosUrl; + sha256 = "08b2gacdz23mzji2pjr1pwnk82a84rzvr36isif7mmi9kydl6wv3"; + }; + + resolver = let + message = "You need to define a resolver for the letsencrypt test module."; + firstNS = lib.head config.networking.nameservers; + in if config.networking.nameservers == [] then throw message else firstNS; + + cfgDir = pkgs.stdenv.mkDerivation { + name = "boulder-config"; + src = "${boulderSource}/test/config"; + nativeBuildInputs = [ pkgs.jq ]; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + postPatch = '' + sed -i -e 's/5002/80/' -e 's/5002/443/' va.json + sed -i -e '/listenAddress/s/:4000/:80/' wfe.json + sed -i -r \ + -e ${lib.escapeShellArg "s,http://boulder:4000/terms/v1,${tosUrl},g"} \ + -e 's,http://(boulder|127\.0\.0\.1):4000,https://${wfeDomain},g' \ + -e '/dnsResolver/s/127\.0\.0\.1:8053/${resolver}:53/' \ + *.json + if grep 4000 *.json; then exit 1; fi + + # Change all ports from 1909X to 909X, because the 1909X range of ports is + # allocated by startservers.py in order to intercept gRPC communication. + sed -i -e 's/\<1\(909[0-9]\)\>/\1/' *.json + + # Patch out all additional issuer certs + jq '. + {ca: (.ca + {Issuers: + [.ca.Issuers[] | select(.CertFile == "test/test-ca.pem")] + })}' ca.json > tmp + mv tmp ca.json + ''; + installPhase = "cp -r . \"$out\""; + }; + + components = { + gsb-test-srv.args = "-apikey my-voice-is-my-passport"; + gsb-test-srv.waitForPort = 6000; + gsb-test-srv.first = true; + boulder-sa.args = "--config ${cfgDir}/sa.json"; + boulder-wfe.args = "--config ${cfgDir}/wfe.json"; + boulder-ra.args = "--config ${cfgDir}/ra.json"; + boulder-ca.args = "--config ${cfgDir}/ca.json"; + boulder-va.args = "--config ${cfgDir}/va.json"; + boulder-publisher.args = "--config ${cfgDir}/publisher.json"; + boulder-publisher.waitForPort = 9091; + ocsp-updater.args = "--config ${cfgDir}/ocsp-updater.json"; + ocsp-updater.after = [ "boulder-publisher" ]; + ocsp-responder.args = "--config ${cfgDir}/ocsp-responder.json"; + ct-test-srv = {}; + mail-test-srv.args = "--closeFirst 5"; + }; + + commonPath = [ softhsm pkgs.mariadb goose boulder ]; + + mkServices = a: b: with lib; listToAttrs (concatLists (mapAttrsToList a b)); + + componentServices = mkServices (name: attrs: let + mkSrvName = n: "boulder-${n}.service"; + firsts = lib.filterAttrs (lib.const (c: c.first or false)) components; + firstServices = map mkSrvName (lib.attrNames firsts); + firstServicesNoSelf = lib.remove "boulder-${name}.service" firstServices; + additionalAfter = firstServicesNoSelf ++ map mkSrvName (attrs.after or []); + needsPort = attrs ? waitForPort; + inits = map (n: "boulder-init-${n}.service") [ "mysql" "softhsm" ]; + portWaiter = { + name = "boulder-${name}"; + value = { + description = "Wait For Port ${toString attrs.waitForPort} (${name})"; + after = [ "boulder-real-${name}.service" "bind.service" ]; + requires = [ "boulder-real-${name}.service" ]; + requiredBy = [ "boulder.service" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + script = let + netcat = "${pkgs.netcat-openbsd}/bin/nc"; + portCheck = "${netcat} -z 127.0.0.1 ${toString attrs.waitForPort}"; + in "while ! ${portCheck}; do :; done"; + }; + }; + in lib.optional needsPort portWaiter ++ lib.singleton { + name = if needsPort then "boulder-real-${name}" else "boulder-${name}"; + value = { + description = "Boulder ACME Component (${name})"; + after = inits ++ additionalAfter; + requires = inits; + requiredBy = [ "boulder.service" ]; + path = commonPath; + environment.GORACE = "halt_on_error=1"; + environment.SOFTHSM_CONF = softHsmConf; + environment.PKCS11_PROXY_SOCKET = "tcp://127.0.0.1:5657"; + serviceConfig.WorkingDirectory = boulderSource; + serviceConfig.ExecStart = "${boulder}/bin/${name} ${attrs.args or ""}"; + serviceConfig.Restart = "on-failure"; + }; + }) components; + +in { + imports = [ ./resolver.nix ]; + + options.test-support.letsencrypt.caCert = lib.mkOption { + type = lib.types.path; + description = '' + A certificate file to use with the nodes attribute to + inject the snakeoil CA certificate used in the ACME server into + . + ''; + }; + + config = { + test-support = { + resolver.enable = let + isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ]; + in lib.mkOverride 900 isLocalResolver; + letsencrypt.caCert = "${snakeOilCa}/ca.pem"; + }; + + # This has priority 140, because modules/testing/test-instrumentation.nix + # already overrides this with priority 150. + networking.nameservers = lib.mkOverride 140 [ "127.0.0.1" ]; + networking.firewall.enable = false; + + networking.extraHosts = '' + 127.0.0.1 ${toString [ + "sa.boulder" "ra.boulder" "wfe.boulder" "ca.boulder" "va.boulder" + "publisher.boulder" "ocsp-updater.boulder" "admin-revoker.boulder" + "boulder" "boulder-mysql" wfeDomain + ]} + ${config.networking.primaryIPAddress} ${wfeDomain} ${siteDomain} + ''; + + services.mysql.enable = true; + services.mysql.package = pkgs.mariadb; + + services.nginx.enable = true; + services.nginx.recommendedProxySettings = true; + services.nginx.virtualHosts.${wfeDomain} = { + onlySSL = true; + enableACME = false; + sslCertificate = wfeCertFile; + sslCertificateKey = wfeKeyFile; + locations."/".proxyPass = "http://127.0.0.1:80"; + }; + services.nginx.virtualHosts.${siteDomain} = { + onlySSL = true; + enableACME = false; + sslCertificate = siteCertFile; + sslCertificateKey = siteKeyFile; + locations.${tosPath}.extraConfig = "alias ${tosFile};"; + }; + + systemd.services = { + pkcs11-daemon = { + description = "PKCS11 Daemon"; + after = [ "boulder-init-softhsm.service" ]; + before = map (n: "${n}.service") (lib.attrNames componentServices); + wantedBy = [ "multi-user.target" ]; + environment.SOFTHSM_CONF = softHsmConf; + environment.PKCS11_DAEMON_SOCKET = "tcp://127.0.0.1:5657"; + serviceConfig.ExecStart = let + softhsmLib = "${softhsm}/lib/softhsm/libsofthsm.so"; + in "${pkcs11-proxy}/bin/pkcs11-daemon ${softhsmLib}"; + }; + + boulder-init-mysql = { + description = "Boulder ACME Init (MySQL)"; + after = [ "mysql.service" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + serviceConfig.WorkingDirectory = boulderSource; + path = commonPath; + script = "${pkgs.bash}/bin/sh test/create_db.sh"; + }; + + boulder-init-softhsm = { + description = "Boulder ACME Init (SoftHSM)"; + environment.SOFTHSM_CONF = softHsmConf; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + serviceConfig.WorkingDirectory = boulderSource; + preStart = "mkdir -p /var/lib/softhsm"; + path = commonPath; + script = '' + softhsm --slot 0 --init-token \ + --label intermediate --pin 5678 --so-pin 1234 + softhsm --slot 0 --import test/test-ca.key \ + --label intermediate_key --pin 5678 --id FB + softhsm --slot 1 --init-token \ + --label root --pin 5678 --so-pin 1234 + softhsm --slot 1 --import test/test-root.key \ + --label root_key --pin 5678 --id FA + ''; + }; + + boulder = { + description = "Boulder ACME Server"; + after = map (n: "${n}.service") (lib.attrNames componentServices); + wantedBy = [ "multi-user.target" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + script = let + ports = lib.range 8000 8005 ++ lib.singleton 80; + netcat = "${pkgs.netcat-openbsd}/bin/nc"; + mkPortCheck = port: "${netcat} -z 127.0.0.1 ${toString port}"; + checks = "(${lib.concatMapStringsSep " && " mkPortCheck ports})"; + in "while ! ${checks}; do :; done"; + }; + } // componentServices; + }; +} diff --git a/nixos/tests/common/resolver.nix b/nixos/tests/common/resolver.nix new file mode 100644 index 00000000000..a1901c5c816 --- /dev/null +++ b/nixos/tests/common/resolver.nix @@ -0,0 +1,141 @@ +# This module automatically discovers zones in BIND and NSD NixOS +# configurations and creates zones for all definitions of networking.extraHosts +# (except those that point to 127.0.0.1 or ::1) within the current test network +# and delegates these zones using a fake root zone served by a BIND recursive +# name server. +{ config, nodes, pkgs, lib, ... }: + +{ + options.test-support.resolver.enable = lib.mkOption { + type = lib.types.bool; + default = true; + internal = true; + description = '' + Whether to enable the resolver that automatically discovers zone in the + test network. + + This option is true by default, because the module + defining this option needs to be explicitly imported. + + The reason this option exists is for the + nixos/tests/common/letsencrypt.nix module, which + needs that option to disable the resolver once the user has set its own + resolver. + ''; + }; + + config = lib.mkIf config.test-support.resolver.enable { + networking.firewall.enable = false; + services.bind.enable = true; + services.bind.cacheNetworks = lib.mkForce [ "any" ]; + services.bind.forwarders = lib.mkForce []; + services.bind.zones = lib.singleton { + name = "."; + file = let + addDot = zone: zone + lib.optionalString (!lib.hasSuffix "." zone) "."; + mkNsdZoneNames = zones: map addDot (lib.attrNames zones); + mkBindZoneNames = zones: map (zone: addDot zone.name) zones; + getZones = cfg: mkNsdZoneNames cfg.services.nsd.zones + ++ mkBindZoneNames cfg.services.bind.zones; + + getZonesForNode = attrs: { + ip = attrs.config.networking.primaryIPAddress; + zones = lib.filter (zone: zone != ".") (getZones attrs.config); + }; + + zoneInfo = lib.mapAttrsToList (lib.const getZonesForNode) nodes; + + # A and AAAA resource records for all the definitions of + # networking.extraHosts except those for 127.0.0.1 or ::1. + # + # The result is an attribute set with keys being the host name and the + # values are either { ipv4 = ADDR; } or { ipv6 = ADDR; } where ADDR is + # the IP address for the corresponding key. + recordsFromExtraHosts = let + getHostsForNode = lib.const (n: n.config.networking.extraHosts); + allHostsList = lib.mapAttrsToList getHostsForNode nodes; + allHosts = lib.concatStringsSep "\n" allHostsList; + + reIp = "[a-fA-F0-9.:]+"; + reHost = "[a-zA-Z0-9.-]+"; + + matchAliases = str: let + matched = builtins.match "[ \t]+(${reHost})(.*)" str; + continue = lib.singleton (lib.head matched) + ++ matchAliases (lib.last matched); + in if matched == null then [] else continue; + + matchLine = str: let + result = builtins.match "[ \t]*(${reIp})[ \t]+(${reHost})(.*)" str; + in if result == null then null else { + ipAddr = lib.head result; + hosts = lib.singleton (lib.elemAt result 1) + ++ matchAliases (lib.last result); + }; + + skipLine = str: let + rest = builtins.match "[^\n]*\n(.*)" str; + in if rest == null then "" else lib.head rest; + + getEntries = str: acc: let + result = matchLine str; + next = getEntries (skipLine str); + newEntry = acc ++ lib.singleton result; + continue = if result == null then next acc else next newEntry; + in if str == "" then acc else continue; + + isIPv6 = str: builtins.match ".*:.*" str != null; + loopbackIps = [ "127.0.0.1" "::1" ]; + filterLoopback = lib.filter (e: !lib.elem e.ipAddr loopbackIps); + + allEntries = lib.concatMap (entry: map (host: { + inherit host; + ${if isIPv6 entry.ipAddr then "ipv6" else "ipv4"} = entry.ipAddr; + }) entry.hosts) (filterLoopback (getEntries (allHosts + "\n") [])); + + mkRecords = entry: let + records = lib.optional (entry ? ipv6) "AAAA ${entry.ipv6}" + ++ lib.optional (entry ? ipv4) "A ${entry.ipv4}"; + mkRecord = typeAndData: "${entry.host}. IN ${typeAndData}"; + in lib.concatMapStringsSep "\n" mkRecord records; + + in lib.concatMapStringsSep "\n" mkRecords allEntries; + + # All of the zones that are subdomains of existing zones. + # For example if there is only "example.com" the following zones would + # be 'subZones': + # + # * foo.example.com. + # * bar.example.com. + # + # While the following would *not* be 'subZones': + # + # * example.com. + # * com. + # + subZones = let + allZones = lib.concatMap (zi: zi.zones) zoneInfo; + isSubZoneOf = z1: z2: lib.hasSuffix z2 z1 && z1 != z2; + in lib.filter (z: lib.any (isSubZoneOf z) allZones) allZones; + + # All the zones without 'subZones'. + filteredZoneInfo = map (zi: zi // { + zones = lib.filter (x: !lib.elem x subZones) zi.zones; + }) zoneInfo; + + in pkgs.writeText "fake-root.zone" '' + $TTL 3600 + . IN SOA ns.fakedns. admin.fakedns. ( 1 3h 1h 1w 1d ) + ns.fakedns. IN A ${config.networking.primaryIPAddress} + . IN NS ns.fakedns. + ${lib.concatImapStrings (num: { ip, zones }: '' + ns${toString num}.fakedns. IN A ${ip} + ${lib.concatMapStrings (zone: '' + ${zone} IN NS ns${toString num}.fakedns. + '') zones} + '') (lib.filter (zi: zi.zones != []) filteredZoneInfo)} + ${recordsFromExtraHosts} + ''; + }; + }; +} diff --git a/nixos/tests/containers-reloadable.nix b/nixos/tests/containers-reloadable.nix new file mode 100644 index 00000000000..b5867c6f6ab --- /dev/null +++ b/nixos/tests/containers-reloadable.nix @@ -0,0 +1,66 @@ +import ./make-test.nix ({ pkgs, lib, ...} : +let + client_base = rec { + + containers.test1 = { + autoStart = true; + config = { + environment.etc."check".text = "client_base"; + }; + }; + + # prevent make-test.nix to change IP + networking.interfaces = { + eth1.ip4 = lib.mkOverride 0 [ ]; + }; + }; +in { + name = "cotnainers-reloadable"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ danbst ]; + }; + + nodes = { + client = { lib, pkgs, ... }: { + imports = [ client_base ]; + }; + + client_c1 = { lib, pkgs, ... }: { + imports = [ client_base ]; + + containers.test1.config = { + environment.etc."check".text = lib.mkForce "client_c1"; + services.httpd.enable = true; + services.httpd.adminAddr = "nixos@example.com"; + }; + }; + client_c2 = { lib, pkgs, ... }: { + imports = [ client_base ]; + + containers.test1.config = { + environment.etc."check".text = lib.mkForce "client_c2"; + services.nginx.enable = true; + }; + }; + }; + + testScript = {nodes, ...}: let + originalSystem = nodes.client.config.system.build.toplevel; + c1System = nodes.client_c1.config.system.build.toplevel; + c2System = nodes.client_c2.config.system.build.toplevel; + in '' + $client->start(); + $client->waitForUnit("default.target"); + $client->succeed("[[ \$(nixos-container run test1 cat /etc/check) == client_base ]] >&2"); + + $client->succeed("${c1System}/bin/switch-to-configuration test >&2"); + $client->succeed("[[ \$(nixos-container run test1 cat /etc/check) == client_c1 ]] >&2"); + $client->succeed("systemctl status httpd -M test1 >&2"); + + $client->succeed("${c2System}/bin/switch-to-configuration test >&2"); + $client->succeed("[[ \$(nixos-container run test1 cat /etc/check) == client_c2 ]] >&2"); + $client->fail("systemctl status httpd -M test1 >&2"); + $client->succeed("systemctl status nginx -M test1 >&2"); + ''; + +}) diff --git a/nixos/tests/docker-edge.nix b/nixos/tests/docker-edge.nix new file mode 100644 index 00000000000..38d25daff19 --- /dev/null +++ b/nixos/tests/docker-edge.nix @@ -0,0 +1,47 @@ +# This test runs docker and checks if simple container starts + +import ./make-test.nix ({ pkgs, ...} : { + name = "docker"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus offline ]; + }; + + nodes = { + docker = + { config, pkgs, ... }: + { + virtualisation.docker.enable = true; + virtualisation.docker.package = pkgs.docker-edge; + + users.users = { + noprivs = { + isNormalUser = true; + description = "Can't access the docker daemon"; + password = "foobar"; + }; + + hasprivs = { + isNormalUser = true; + description = "Can access the docker daemon"; + password = "foobar"; + extraGroups = [ "docker" ]; + }; + }; + }; + }; + + testScript = '' + startAll; + + $docker->waitForUnit("sockets.target"); + $docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg"); + $docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"); + $docker->succeed("docker ps | grep sleeping"); + $docker->succeed("sudo -u hasprivs docker ps"); + $docker->fail("sudo -u noprivs docker ps"); + $docker->succeed("docker stop sleeping"); + + # Must match version twice to ensure client and server versions are correct + $docker->succeed('[ $(docker version | grep ${pkgs.docker-edge.version} | wc -l) = "2" ]'); + ''; +}) diff --git a/nixos/tests/docker.nix b/nixos/tests/docker.nix index 9096a5868f6..c6c8f4cdb5f 100644 --- a/nixos/tests/docker.nix +++ b/nixos/tests/docker.nix @@ -3,7 +3,7 @@ import ./make-test.nix ({ pkgs, ...} : { name = "docker"; meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ offline ]; + maintainers = [ nequissimus offline ]; }; nodes = { @@ -11,6 +11,7 @@ import ./make-test.nix ({ pkgs, ...} : { { config, pkgs, ... }: { virtualisation.docker.enable = true; + virtualisation.docker.package = pkgs.docker; users.users = { noprivs = { @@ -39,5 +40,8 @@ import ./make-test.nix ({ pkgs, ...} : { $docker->succeed("sudo -u hasprivs docker ps"); $docker->fail("sudo -u noprivs docker ps"); $docker->succeed("docker stop sleeping"); + + # Must match version twice to ensure client and server versions are correct + $docker->succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]'); ''; }) diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix new file mode 100644 index 00000000000..3814855ed8e --- /dev/null +++ b/nixos/tests/dovecot.nix @@ -0,0 +1,64 @@ +import ./make-test.nix { + name = "dovecot"; + + machine = { pkgs, ... }: { + imports = [ common/user-account.nix ]; + services.postfix.enable = true; + services.dovecot2.enable = true; + services.dovecot2.protocols = [ "imap" "pop3" ]; + environment.systemPackages = let + sendTestMail = pkgs.writeScriptBin "send-testmail" '' + #!${pkgs.stdenv.shell} + exec sendmail -vt <waitForUnit('postfix.service'); + $machine->waitForUnit('dovecot2.service'); + $machine->succeed('send-testmail'); + $machine->waitUntilFails('[ "$(postqueue -p)" != "Mail queue is empty" ]'); + $machine->succeed('test-imap'); + $machine->succeed('test-pop'); + ''; +} diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix new file mode 100644 index 00000000000..65ff1cac070 --- /dev/null +++ b/nixos/tests/elk.nix @@ -0,0 +1,95 @@ +# Test the ELK stack: Elasticsearch, Logstash and Kibana. + +import ./make-test.nix ({ pkgs, ...} : +let + esUrl = "http://localhost:9200"; +in { + name = "ELK"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ eelco chaoflow offline basvandijk ]; + }; + + nodes = { + one = + { config, pkgs, ... }: { + # Not giving the machine at least 2060MB results in elasticsearch failing with the following error: + # + # OpenJDK 64-Bit Server VM warning: + # INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) + # failed; error='Cannot allocate memory' (errno=12) + # + # There is insufficient memory for the Java Runtime Environment to continue. + # Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory. + # + # When setting this to 2500 I got "Kernel panic - not syncing: Out of + # memory: compulsory panic_on_oom is enabled" so lets give it even a + # bit more room: + virtualisation.memorySize = 3000; + + # For querying JSON objects returned from elasticsearch and kibana. + environment.systemPackages = [ pkgs.jq ]; + + services = { + logstash = { + enable = true; + package = pkgs.logstash5; + inputConfig = '' + exec { command => "echo -n flowers" interval => 1 type => "test" } + exec { command => "echo -n dragons" interval => 1 type => "test" } + ''; + filterConfig = '' + if [message] =~ /dragons/ { + drop {} + } + ''; + outputConfig = '' + file { + path => "/tmp/logstash.out" + codec => line { format => "%{message}" } + } + elasticsearch { + hosts => [ "${esUrl}" ] + } + ''; + }; + + elasticsearch = { + enable = true; + package = pkgs.elasticsearch5; + }; + + kibana = { + enable = true; + package = pkgs.kibana5; + elasticsearch.url = esUrl; + }; + }; + }; + }; + + testScript = '' + startAll; + + $one->waitForUnit("elasticsearch.service"); + + # Continue as long as the status is not "red". The status is probably + # "yellow" instead of "green" because we are using a single elasticsearch + # node which elasticsearch considers risky. + # + # TODO: extend this test with multiple elasticsearch nodes and see if the status turns "green". + $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red"); + + # Perform some simple logstash tests. + $one->waitForUnit("logstash.service"); + $one->waitUntilSucceeds("cat /tmp/logstash.out | grep flowers"); + $one->waitUntilSucceeds("cat /tmp/logstash.out | grep -v dragons"); + + # See if kibana is healthy. + $one->waitForUnit("kibana.service"); + $one->waitUntilSucceeds("curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green"); + + # See if logstash messages arive in elasticsearch. + $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"flowers\"}}}' | jq .hits.total | grep -v 0"); + $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"dragons\"}}}' | jq .hits.total | grep 0"); + ''; +}) diff --git a/nixos/tests/env.nix b/nixos/tests/env.nix new file mode 100644 index 00000000000..c6b0424e97b --- /dev/null +++ b/nixos/tests/env.nix @@ -0,0 +1,35 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "environment"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { config, lib, pkgs, ... }: + { + boot.kernelPackages = pkgs.linuxPackages; + environment.etc."plainFile".text = '' + Hello World + ''; + environment.etc."folder/with/file".text = '' + Foo Bar! + ''; + + environment.sessionVariables = { + TERMINFO_DIRS = "/run/current-system/sw/share/terminfo"; + NIXCON = "awesome"; + }; + }; + + testScript = + '' + $machine->succeed('[ -L "/etc/plainFile" ]'); + $machine->succeed('cat "/etc/plainFile" | grep "Hello World"'); + $machine->succeed('[ -d "/etc/folder" ]'); + $machine->succeed('[ -d "/etc/folder/with" ]'); + $machine->succeed('[ -L "/etc/folder/with/file" ]'); + $machine->succeed('cat "/etc/plainFile" | grep "Hello World"'); + + $machine->succeed('echo ''${TERMINFO_DIRS} | grep "/run/current-system/sw/share/terminfo"'); + $machine->succeed('echo ''${NIXCON} | grep "awesome"'); + ''; +}) diff --git a/nixos/tests/gitolite.nix b/nixos/tests/gitolite.nix new file mode 100644 index 00000000000..4b4e081acc5 --- /dev/null +++ b/nixos/tests/gitolite.nix @@ -0,0 +1,139 @@ +import ./make-test.nix ({ pkgs, ...}: + +let + adminPrivateKey = pkgs.writeText "id_ed25519" '' + -----BEGIN OPENSSH PRIVATE KEY----- + b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW + QyNTUxOQAAACDu7qxYQAPdAU6RrhB3llk2N1v4PTwcVzcX1oX265uC3gAAAJBJiYxDSYmM + QwAAAAtzc2gtZWQyNTUxOQAAACDu7qxYQAPdAU6RrhB3llk2N1v4PTwcVzcX1oX265uC3g + AAAEDE1W6vMwSEUcF1r7Hyypm/+sCOoDmKZgPxi3WOa1mD2u7urFhAA90BTpGuEHeWWTY3 + W/g9PBxXNxfWhfbrm4LeAAAACGJmb0BtaW5pAQIDBAU= + -----END OPENSSH PRIVATE KEY----- + ''; + + adminPublicKey = '' + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO7urFhAA90BTpGuEHeWWTY3W/g9PBxXNxfWhfbrm4Le root@client + ''; + + alicePrivateKey = pkgs.writeText "id_ed25519" '' + -----BEGIN OPENSSH PRIVATE KEY----- + b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW + QyNTUxOQAAACBbeWvHh/AWGWI6EIc1xlSihyXtacNQ9KeztlW/VUy8wQAAAJAwVQ5VMFUO + VQAAAAtzc2gtZWQyNTUxOQAAACBbeWvHh/AWGWI6EIc1xlSihyXtacNQ9KeztlW/VUy8wQ + AAAEB7lbfkkdkJoE+4TKHPdPQWBKLSx+J54Eg8DaTr+3KoSlt5a8eH8BYZYjoQhzXGVKKH + Je1pw1D0p7O2Vb9VTLzBAAAACGJmb0BtaW5pAQIDBAU= + -----END OPENSSH PRIVATE KEY----- + ''; + + alicePublicKey = pkgs.writeText "id_ed25519.pub" '' + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFt5a8eH8BYZYjoQhzXGVKKHJe1pw1D0p7O2Vb9VTLzB alice@client + ''; + + bobPrivateKey = pkgs.writeText "id_ed25519" '' + -----BEGIN OPENSSH PRIVATE KEY----- + b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW + QyNTUxOQAAACCWTaJ1D9Xjxy6759FvQ9oXTes1lmWBciXPkEeqTikBMAAAAJDQBmNV0AZj + VQAAAAtzc2gtZWQyNTUxOQAAACCWTaJ1D9Xjxy6759FvQ9oXTes1lmWBciXPkEeqTikBMA + AAAEDM1IYYFUwk/IVxauha9kuR6bbRtT3gZ6ZA0GLb9txb/pZNonUP1ePHLrvn0W9D2hdN + 6zWWZYFyJc+QR6pOKQEwAAAACGJmb0BtaW5pAQIDBAU= + -----END OPENSSH PRIVATE KEY----- + ''; + + bobPublicKey = pkgs.writeText "id_ed25519.pub" '' + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZNonUP1ePHLrvn0W9D2hdN6zWWZYFyJc+QR6pOKQEw bob@client + ''; + + gitoliteAdminConfSnippet = '' + repo alice-project + RW+ = alice + ''; +in +{ + name = "gitolite"; + + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ bjornfor ]; + }; + + nodes = { + + server = + { config, pkgs, lib, ... }: + { + services.gitolite = { + enable = true; + adminPubkey = adminPublicKey; + }; + services.openssh.enable = true; + }; + + client = + { config, pkgs, lib, ... }: + { + environment.systemPackages = [ pkgs.git ]; + programs.ssh.extraConfig = '' + Host * + UserKnownHostsFile /dev/null + StrictHostKeyChecking no + # there's nobody around that can input password + PreferredAuthentications publickey + ''; + users.extraUsers.alice = { isNormalUser = true; }; + users.extraUsers.bob = { isNormalUser = true; }; + }; + + }; + + testScript = '' + startAll; + + subtest "can setup ssh keys on system", sub { + $client->mustSucceed("mkdir -p ~root/.ssh"); + $client->mustSucceed("cp ${adminPrivateKey} ~root/.ssh/id_ed25519"); + $client->mustSucceed("chmod 600 ~root/.ssh/id_ed25519"); + + $client->mustSucceed("sudo -u alice mkdir -p ~alice/.ssh"); + $client->mustSucceed("sudo -u alice cp ${alicePrivateKey} ~alice/.ssh/id_ed25519"); + $client->mustSucceed("sudo -u alice chmod 600 ~alice/.ssh/id_ed25519"); + + $client->mustSucceed("sudo -u bob mkdir -p ~bob/.ssh"); + $client->mustSucceed("sudo -u bob cp ${bobPrivateKey} ~bob/.ssh/id_ed25519"); + $client->mustSucceed("sudo -u bob chmod 600 ~bob/.ssh/id_ed25519"); + }; + + subtest "gitolite server starts", sub { + $server->waitForUnit("gitolite-init.service"); + $server->waitForUnit("sshd.service"); + $client->mustSucceed('ssh gitolite@server info'); + }; + + subtest "admin can clone and configure gitolite-admin.git", sub { + $client->mustSucceed('git clone gitolite@server:gitolite-admin.git'); + $client->mustSucceed("git config --global user.name 'System Administrator'"); + $client->mustSucceed("git config --global user.email root\@domain.example"); + $client->mustSucceed("cp ${alicePublicKey} gitolite-admin/keydir/alice.pub"); + $client->mustSucceed("cp ${bobPublicKey} gitolite-admin/keydir/bob.pub"); + $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add keys for alice, bob" && git push)'); + $client->mustSucceed("printf '${gitoliteAdminConfSnippet}' >> gitolite-admin/conf/gitolite.conf"); + $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add repo for alice" && git push)'); + }; + + subtest "non-admins cannot clone gitolite-admin.git", sub { + $client->mustFail('sudo -i -u alice git clone gitolite@server:gitolite-admin.git'); + $client->mustFail('sudo -i -u bob git clone gitolite@server:gitolite-admin.git'); + }; + + subtest "non-admins can clone testing.git", sub { + $client->mustSucceed('sudo -i -u alice git clone gitolite@server:testing.git'); + $client->mustSucceed('sudo -i -u bob git clone gitolite@server:testing.git'); + }; + + subtest "alice can clone alice-project.git", sub { + $client->mustSucceed('sudo -i -u alice git clone gitolite@server:alice-project.git'); + }; + + subtest "bob cannot clone alice-project.git", sub { + $client->mustFail('sudo -i -u bob git clone gitolite@server:alice-project.git'); + }; + ''; +}) diff --git a/nixos/tests/gnome3-gdm.nix b/nixos/tests/gnome3-gdm.nix index 2c9c745021a..4b459e93e1b 100644 --- a/nixos/tests/gnome3-gdm.nix +++ b/nixos/tests/gnome3-gdm.nix @@ -21,7 +21,7 @@ import ./make-test.nix ({ pkgs, ...} : { }; services.xserver.desktopManager.gnome3.enable = true; - virtualisation.memorySize = 512; + virtualisation.memorySize = 1024; }; testScript = diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix index 4787d42d695..492fa61484a 100644 --- a/nixos/tests/gnome3.nix +++ b/nixos/tests/gnome3.nix @@ -15,7 +15,7 @@ import ./make-test.nix ({ pkgs, ...} : { services.xserver.displayManager.auto.user = "alice"; services.xserver.desktopManager.gnome3.enable = true; - virtualisation.memorySize = 512; + virtualisation.memorySize = 1024; }; testScript = diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix new file mode 100644 index 00000000000..16b8181498a --- /dev/null +++ b/nixos/tests/grafana.nix @@ -0,0 +1,25 @@ +import ./make-test.nix ({ lib, ... }: +{ + name = "grafana"; + + meta = with lib.maintainers; { + maintainers = [ willibutz ]; + }; + + machine = { config, pkgs, ... }: { + services.grafana = { + enable = true; + addr = "localhost"; + analytics.reporting.enable = false; + domain = "localhost"; + security.adminUser = "testusername"; + }; + }; + + testScript = '' + $machine->start; + $machine->waitForUnit("grafana.service"); + $machine->waitForOpenPort(3000); + $machine->succeed("curl -sS http://127.0.0.1:3000/"); + ''; +}) diff --git a/nixos/tests/graphite.nix b/nixos/tests/graphite.nix new file mode 100644 index 00000000000..a22ef224580 --- /dev/null +++ b/nixos/tests/graphite.nix @@ -0,0 +1,32 @@ +import ./make-test.nix ({ pkgs, ...} : +{ + name = "graphite"; + nodes = { + one = + { config, pkgs, ... }: { + time.timeZone = "UTC"; + services.graphite = { + web.enable = true; + api = { + enable = true; + port = 8082; + }; + carbon.enableCache = true; + seyren.enable = true; + pager.enable = true; + }; + }; + }; + + testScript = '' + startAll; + $one->waitForUnit("default.target"); + $one->requireActiveUnit("graphiteWeb.service"); + $one->requireActiveUnit("graphiteApi.service"); + $one->requireActiveUnit("graphitePager.service"); + $one->requireActiveUnit("carbonCache.service"); + $one->requireActiveUnit("seyren.service"); + $one->succeed("echo \"foo 1 `date +%s`\" | nc -q0 localhost 2003"); + $one->waitUntilSucceeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo") + ''; +}) diff --git a/nixos/tests/grsecurity.nix b/nixos/tests/grsecurity.nix deleted file mode 100644 index d4a419fd0e3..00000000000 --- a/nixos/tests/grsecurity.nix +++ /dev/null @@ -1,46 +0,0 @@ -# Basic test to make sure grsecurity works - -import ./make-test.nix ({ pkgs, ...} : { - name = "grsecurity"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ copumpkin joachifm ]; - }; - - machine = { config, pkgs, ... }: - { security.grsecurity.enable = true; - boot.kernel.sysctl."kernel.grsecurity.audit_mount" = 0; - boot.kernel.sysctl."kernel.grsecurity.deter_bruteforce" = 0; - networking.useDHCP = false; - }; - - testScript = '' - subtest "grsec-lock", sub { - $machine->succeed("systemctl is-active grsec-lock"); - $machine->succeed("grep -Fq 1 /proc/sys/kernel/grsecurity/grsec_lock"); - $machine->fail("echo -n 0 >/proc/sys/kernel/grsecurity/grsec_lock"); - }; - - subtest "paxtest", sub { - # TODO: running paxtest blackhat hangs the vm - my @pax_mustkill = ( - "anonmap", "execbss", "execdata", "execheap", "execstack", - "mprotanon", "mprotbss", "mprotdata", "mprotheap", "mprotstack", - ); - foreach my $name (@pax_mustkill) { - my $paxtest = "${pkgs.paxtest}/lib/paxtest/" . $name; - $machine->succeed($paxtest) =~ /Killed/ or die - } - }; - - # tcc -run executes run-time generated code and so allows us to test whether - # paxmark actually works (otherwise, the process should be terminated) - subtest "tcc", sub { - $machine->execute("echo -e '#include \nint main(void) { puts(\"hello\"); return 0; }' >main.c"); - $machine->succeed("${pkgs.tinycc}/bin/tcc -run main.c"); - }; - - subtest "RBAC", sub { - $machine->succeed("[ -c /dev/grsec ]"); - }; - ''; -}) diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix new file mode 100644 index 00000000000..cb33b69e719 --- /dev/null +++ b/nixos/tests/hardened.nix @@ -0,0 +1,65 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "hardened"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ joachifm ]; + }; + + machine = + { config, lib, pkgs, ... }: + with lib; + { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; + users.users.sybil = { isNormalUser = true; group = "wheel"; }; + imports = [ ../modules/profiles/hardened.nix ]; + virtualisation.emptyDiskImages = [ 4096 ]; + boot.initrd.postDeviceCommands = '' + ${pkgs.dosfstools}/bin/mkfs.vfat -n EFISYS /dev/vdb + ''; + fileSystems = lib.mkVMOverride { + "/efi" = { + device = "/dev/disk/by-label/EFISYS"; + fsType = "vfat"; + options = [ "noauto" ]; + }; + }; + }; + + testScript = + '' + # Test hidepid + subtest "hidepid", sub { + $machine->succeed("grep -Fq hidepid=2 /proc/mounts"); + $machine->succeed("[ `su - sybil -c 'pgrep -c -u root'` = 0 ]"); + $machine->succeed("[ `su - alice -c 'pgrep -c -u root'` != 0 ]"); + }; + + # Test kernel module hardening + subtest "lock-modules", sub { + $machine->waitForUnit("multi-user.target"); + # note: this better a be module we normally wouldn't load ... + $machine->fail("modprobe dccp"); + }; + + # Test userns + subtest "userns", sub { + $machine->fail("unshare --user"); + }; + + # Test dmesg restriction + subtest "dmesg", sub { + $machine->fail("su -l alice -c dmesg"); + }; + + # Test access to kcore + subtest "kcore", sub { + $machine->fail("cat /proc/kcore"); + }; + + # Test deferred mount + subtest "mount", sub { + $machine->fail("mountpoint -q /efi"); # was deferred + $machine->execute("mkdir -p /efi"); + $machine->succeed("mount /dev/disk/by-label/EFISYS /efi"); + $machine->succeed("mountpoint -q /efi"); # now mounted + }; + ''; +}) diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix index db58a2f5c85..a95235887e8 100644 --- a/nixos/tests/hibernate.nix +++ b/nixos/tests/hibernate.nix @@ -37,7 +37,7 @@ import ./make-test.nix (pkgs: { $machine->waitForShutdown; $machine->start; $probe->waitForUnit("network.target"); - $probe->waitUntilSucceeds("echo test | nc machine 4444"); + $probe->waitUntilSucceeds("echo test | nc machine 4444 -q 0"); ''; }) diff --git a/nixos/tests/hydra.nix b/nixos/tests/hydra.nix new file mode 100644 index 00000000000..6abd7a5ad30 --- /dev/null +++ b/nixos/tests/hydra.nix @@ -0,0 +1,32 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "hydra-init-localdb"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ pstn ]; + }; + + machine = + { config, pkgs, ... }: + + { + services.hydra = { + enable = true; + + #Hydra needs those settings to start up, so we add something not harmfull. + hydraURL = "example.com"; + notificationSender = "example@example.com"; + }; + }; + + testScript = + '' + # let the system boot up + $machine->waitForUnit("multi-user.target"); + # test whether the database is running + $machine->succeed("systemctl status postgresql.service"); + # test whether the actual hydra daemons are running + $machine->succeed("systemctl status hydra-queue-runner.service"); + $machine->succeed("systemctl status hydra-init.service"); + $machine->succeed("systemctl status hydra-evaluator.service"); + $machine->succeed("systemctl status hydra-send-stats.service"); + ''; +}) diff --git a/nixos/tests/initrd-network-ssh.nix b/nixos/tests/initrd-network-ssh.nix new file mode 100644 index 00000000000..59661049392 --- /dev/null +++ b/nixos/tests/initrd-network-ssh.nix @@ -0,0 +1,74 @@ +import ./make-test.nix ({ pkgs, lib, ... }: + +let + keys = pkgs.runCommand "gen-keys" { + outputs = [ "out" "dbPub" "dbPriv" "sshPub" "sshPriv" ]; + buildInputs = with pkgs; [ dropbear openssh ]; + } + '' + touch $out + dropbearkey -t rsa -f $dbPriv -s 4096 | sed -n 2p > $dbPub + ssh-keygen -q -t rsa -b 4096 -N "" -f client + mv client $sshPriv + mv client.pub $sshPub + ''; + +in { + name = "initrd-network-ssh"; + meta = with lib.maintainers; { + maintainers = [ willibutz ]; + }; + + nodes = with lib; rec { + server = + { config, pkgs, ... }: + { + boot.kernelParams = [ + "ip=${ + (head config.networking.interfaces.eth1.ip4).address + }:::255.255.255.0::eth1:none" + ]; + boot.initrd.network = { + enable = true; + ssh = { + enable = true; + authorizedKeys = [ "${readFile keys.sshPub}" ]; + port = 22; + hostRSAKey = keys.dbPriv; + }; + }; + boot.initrd.preLVMCommands = '' + while true; do + if [ -f fnord ]; then + poweroff + fi + sleep 1 + done + ''; + }; + + client = + { config, pkgs, ... }: + { + environment.etc.knownHosts = { + text = concatStrings [ + "server," + "${toString (head (splitString " " ( + toString (elemAt (splitString "\n" config.networking.extraHosts) 2) + )))} " + "${readFile keys.dbPub}" + ]; + }; + }; + }; + + testScript = '' + startAll; + $client->waitForUnit("network.target"); + $client->copyFileFromHost("${keys.sshPriv}","/etc/sshKey"); + $client->succeed("chmod 0600 /etc/sshKey"); + $client->waitUntilSucceeds("ping -c 1 server"); + $client->succeed("ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'"); + $client->shutdown; + ''; +}) diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 3ab3c1bac48..da9582deec1 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -18,6 +18,9 @@ let ]; + # To ensure that we can rebuild the grub configuration on the nixos-rebuild + system.extraDependencies = with pkgs; [ stdenvNoCC ]; + ${optionalString (bootLoader == "grub") '' boot.loader.grub.version = ${toString grubVersion}; ${optionalString (grubVersion == 1) '' @@ -63,7 +66,7 @@ let (if system == "x86_64-linux" then "-m 768 " else "-m 512 ") + (optionalString (system == "x86_64-linux") "-cpu kvm64 "); hdFlags = ''hda => "vm-state-machine/machine.qcow2", hdaInterface => "${iface}", '' - + optionalString (bootLoader == "systemd-boot") ''bios => "${pkgs.OVMF}/FV/OVMF.fd", ''; + + optionalString (bootLoader == "systemd-boot") ''bios => "${pkgs.OVMF.fd}/FV/OVMF.fd", ''; in '' $machine->start; @@ -71,7 +74,7 @@ let # Make sure that we get a login prompt etc. $machine->succeed("echo hello"); #$machine->waitForUnit('getty@tty2'); - $machine->waitForUnit("rogue"); + #$machine->waitForUnit("rogue"); $machine->waitForUnit("nixos-manual"); # Wait for hard disks to appear in /dev @@ -171,6 +174,7 @@ let makeInstallerTest = name: { createPartitions, preBootCommands ? "", extraConfig ? "" + , extraInstallerConfig ? {} , bootLoader ? "grub" # either "grub" or "systemd-boot" , grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid" , enableOCR ? false, meta ? {} @@ -192,6 +196,7 @@ let { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix + extraInstallerConfig ]; virtualisation.diskSize = 8 * 1024; @@ -221,7 +226,7 @@ let docbook5_xsl unionfs-fuse ntp - nixos-artwork + nixos-artwork.wallpapers.gnome-dark perlPackages.XMLLibXML perlPackages.ListCompare @@ -255,9 +260,9 @@ in { { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary linux-swap 1M 1024M", - "parted /dev/vda -- mkpart primary ext2 1024M -1s", + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary linux-swap 1M 1024M", + "parted --script /dev/vda -- mkpart primary ext2 1024M -1s", "udevadm settle", "mkswap /dev/vda1 -L swap", "swapon -L swap", @@ -268,15 +273,15 @@ in { }; # Simple GPT/UEFI configuration using systemd-boot with 3 partitions: ESP, swap & root filesystem - simpleUefiGummiboot = makeInstallerTest "simpleUefiGummiboot" + simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel gpt", - "parted -s /dev/vda -- mkpart ESP fat32 1M 50MiB", # /boot - "parted -s /dev/vda -- set 1 boot on", - "parted -s /dev/vda -- mkpart primary linux-swap 50MiB 1024MiB", - "parted -s /dev/vda -- mkpart primary ext2 1024MiB -1MiB", # / + "parted --script /dev/vda mklabel gpt", + "parted --script /dev/vda -- mkpart ESP fat32 1M 50MiB", # /boot + "parted --script /dev/vda -- set 1 boot on", + "parted --script /dev/vda -- mkpart primary linux-swap 50MiB 1024MiB", + "parted --script /dev/vda -- mkpart primary ext2 1024MiB -1MiB", # / "udevadm settle", "mkswap /dev/vda2 -L swap", "swapon -L swap", @@ -295,10 +300,10 @@ in { { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary ext2 1M 50MB", # /boot - "parted /dev/vda -- mkpart primary linux-swap 50MB 1024M", - "parted /dev/vda -- mkpart primary ext2 1024M -1s", # / + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary ext2 1M 50MB", # /boot + "parted --script /dev/vda -- mkpart primary linux-swap 50MB 1024M", + "parted --script /dev/vda -- mkpart primary ext2 1024M -1s", # / "udevadm settle", "mkswap /dev/vda2 -L swap", "swapon -L swap", @@ -316,10 +321,10 @@ in { { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary ext2 1M 50MB", # /boot - "parted /dev/vda -- mkpart primary linux-swap 50MB 1024M", - "parted /dev/vda -- mkpart primary ext2 1024M -1s", # / + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary ext2 1M 50MB", # /boot + "parted --script /dev/vda -- mkpart primary linux-swap 50MB 1024M", + "parted --script /dev/vda -- mkpart primary ext2 1024M -1s", # / "udevadm settle", "mkswap /dev/vda2 -L swap", "swapon -L swap", @@ -332,17 +337,54 @@ in { ''; }; + # zfs on / with swap + zfsroot = makeInstallerTest "zfs-root" + { + extraInstallerConfig = { + boot.supportedFilesystems = [ "zfs" ]; + }; + + extraConfig = '' + boot.supportedFilesystems = [ "zfs" ]; + + # Using by-uuid overrides the default of by-id, and is unique + # to the qemu disks, as they don't produce by-id paths for + # some reason. + boot.zfs.devNodes = "/dev/disk/by-uuid/"; + networking.hostId = "00000000"; + ''; + + createPartitions = + '' + $machine->succeed( + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary linux-swap 1M 1024M", + "parted --script /dev/vda -- mkpart primary 1024M -1s", + "udevadm settle", + + "mkswap /dev/vda1 -L swap", + "swapon -L swap", + + "zpool create rpool /dev/vda2", + "zfs create -o mountpoint=legacy rpool/root", + "mount -t zfs rpool/root /mnt", + + "udevadm settle" + ); + ''; + }; + # Create two physical LVM partitions combined into one volume group # that contains the logical swap and root partitions. lvm = makeInstallerTest "lvm" { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary 1M 2048M", # PV1 - "parted /dev/vda -- set 1 lvm on", - "parted /dev/vda -- mkpart primary 2048M -1s", # PV2 - "parted /dev/vda -- set 2 lvm on", + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary 1M 2048M", # PV1 + "parted --script /dev/vda -- set 1 lvm on", + "parted --script /dev/vda -- mkpart primary 2048M -1s", # PV2 + "parted --script /dev/vda -- set 2 lvm on", "udevadm settle", "pvcreate /dev/vda1 /dev/vda2", "vgcreate MyVolGroup /dev/vda1 /dev/vda2", @@ -360,10 +402,10 @@ in { luksroot = makeInstallerTest "luksroot" { createPartitions = '' $machine->succeed( - "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary ext2 1M 50MB", # /boot - "parted /dev/vda -- mkpart primary linux-swap 50M 1024M", - "parted /dev/vda -- mkpart primary 1024M -1s", # LUKS + "parted --script /dev/vda mklabel msdos", + "parted --script /dev/vda -- mkpart primary ext2 1M 50MB", # /boot + "parted --script /dev/vda -- mkpart primary linux-swap 50M 1024M", + "parted --script /dev/vda -- mkpart primary 1024M -1s", # LUKS "udevadm settle", "mkswap /dev/vda2 -L swap", "swapon -L swap", @@ -392,7 +434,7 @@ in { { createPartitions = '' $machine->succeed( - "parted /dev/vda --" + "parted --script /dev/vda --" . " mklabel msdos" . " mkpart primary ext2 1M 100MB" # /boot . " mkpart extended 100M -1s" @@ -427,9 +469,9 @@ in { { createPartitions = '' $machine->succeed( - "parted /dev/sda mklabel msdos", - "parted /dev/sda -- mkpart primary linux-swap 1M 1024M", - "parted /dev/sda -- mkpart primary ext2 1024M -1s", + "parted --script /dev/sda mklabel msdos", + "parted --script /dev/sda -- mkpart primary linux-swap 1M 1024M", + "parted --script /dev/sda -- mkpart primary ext2 1024M -1s", "udevadm settle", "mkswap /dev/sda1 -L swap", "swapon -L swap", diff --git a/nixos/tests/ipfs.nix b/nixos/tests/ipfs.nix index 92d742e4f37..c6bc6154524 100644 --- a/nixos/tests/ipfs.nix +++ b/nixos/tests/ipfs.nix @@ -11,27 +11,45 @@ import ./make-test.nix ({ pkgs, ...} : { { services.ipfs = { enable = true; + defaultMode = "norouting"; gatewayAddress = "/ip4/127.0.0.1/tcp/2323"; apiAddress = "/ip4/127.0.0.1/tcp/2324"; }; + networking.firewall.allowedTCPPorts = [ 4001 ]; }; getter = { config, pkgs, ... }: { - services.ipfs.enable = true; + services.ipfs = { + enable = true; + defaultMode = "norouting"; + autoMount = true; + }; + networking.firewall.allowedTCPPorts = [ 4001 ]; }; }; testScript = '' startAll; - $adder->waitForUnit("ipfs"); - # * => needs ipfs dht (internet) - # $getter->waitForUnit("ipfs"); + $adder->waitForUnit("ipfs-norouting"); + $getter->waitForUnit("ipfs-norouting"); + + # wait until api is available $adder->waitUntilSucceeds("ipfs --api /ip4/127.0.0.1/tcp/2324 id"); - $adder->mustSucceed("([[ -n '$(ipfs --api /ip4/127.0.0.1/tcp/2324 config Addresses.gatewayAddress | grep /ip4/127.0.0.1/tcp/2323)' ]])"); - # * $getter->waitUntilSucceeds("ipfs --api /ip4/127.0.0.1/tcp/5001 id"); - # * my $ipfsHash = $adder->mustSucceed("echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | cut -d' ' -f2"); - $adder->mustSucceed("([[ -n '$(echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | grep added)' ]])"); - # * $getter->mustSucceed("ipfs --api /ip4/127.0.0.1/tcp/5001 cat $ipfsHash"); + my $addrId = $adder->succeed("ipfs --api /ip4/127.0.0.1/tcp/2324 id -f=\"\""); + my $addrIp = (split /[ \/]+/, $adder->succeed("ip -o -4 addr show dev eth1"))[3]; + + $adder->mustSucceed("[ -n \"\$(ipfs --api /ip4/127.0.0.1/tcp/2324 config Addresses.Gateway | grep /ip4/127.0.0.1/tcp/2323)\" ]"); + + # wait until api is available + $getter->waitUntilSucceeds("ipfs --api /ip4/127.0.0.1/tcp/5001 id"); + my $ipfsHash = $adder->mustSucceed("echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | cut -d' ' -f2"); + chomp($ipfsHash); + + $adder->mustSucceed("[ -n \"\$(echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | grep added)\" ]"); + + $getter->mustSucceed("ipfs --api /ip4/127.0.0.1/tcp/5001 swarm connect /ip4/$addrIp/tcp/4001/ipfs/$addrId"); + $getter->mustSucceed("[ -n \"\$(ipfs --api /ip4/127.0.0.1/tcp/5001 cat /ipfs/$ipfsHash | grep fnord)\" ]"); + $getter->mustSucceed("[ -n \"$(cat /ipfs/$ipfsHash | grep fnord)\" ]"); ''; }) diff --git a/nixos/tests/kernel-copperhead.nix b/nixos/tests/kernel-copperhead.nix new file mode 100644 index 00000000000..07427d7f2a8 --- /dev/null +++ b/nixos/tests/kernel-copperhead.nix @@ -0,0 +1,19 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "kernel-copperhead"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { config, lib, pkgs, ... }: + { + boot.kernelPackages = pkgs.linuxPackages_hardened_copperhead; + }; + + testScript = + '' + $machine->succeed("uname -a"); + $machine->succeed("uname -s | grep 'Linux'"); + $machine->succeed("uname -a | grep '${pkgs.linuxPackages_hardened_copperhead.kernel.modDirVersion}'"); + $machine->succeed("uname -a | grep 'hardened'"); + ''; +}) diff --git a/nixos/tests/kernel-latest.nix b/nixos/tests/kernel-latest.nix new file mode 100644 index 00000000000..1350426654d --- /dev/null +++ b/nixos/tests/kernel-latest.nix @@ -0,0 +1,17 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "kernel-latest"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { config, lib, pkgs, ... }: + { + boot.kernelPackages = pkgs.linuxPackages_latest; + }; + + testScript = + '' + $machine->succeed("uname -s | grep 'Linux'"); + $machine->succeed("uname -a | grep '${pkgs.linuxPackages_latest.kernel.version}'"); + ''; +}) diff --git a/nixos/tests/kernel-lts.nix b/nixos/tests/kernel-lts.nix new file mode 100644 index 00000000000..2aab4ce0b49 --- /dev/null +++ b/nixos/tests/kernel-lts.nix @@ -0,0 +1,17 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "kernel-lts"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { config, lib, pkgs, ... }: + { + boot.kernelPackages = pkgs.linuxPackages; + }; + + testScript = + '' + $machine->succeed("uname -s | grep 'Linux'"); + $machine->succeed("uname -a | grep '${pkgs.linuxPackages.kernel.version}'"); + ''; +}) diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix index 55a0e760388..c431c1a3417 100644 --- a/nixos/tests/keymap.nix +++ b/nixos/tests/keymap.nix @@ -49,6 +49,38 @@ let machine.i18n.consoleKeyMap = mkOverride 900 layout; machine.services.xserver.layout = mkOverride 900 layout; machine.imports = [ ./common/x11.nix extraConfig ]; + machine.services.xserver.displayManager.slim = { + enable = true; + + # Use a custom theme in order to get best OCR results + theme = pkgs.runCommand "slim-theme-ocr" { + nativeBuildInputs = [ pkgs.imagemagick ]; + } '' + mkdir "$out" + convert -size 1x1 xc:white "$out/background.jpg" + convert -size 200x100 xc:white "$out/panel.jpg" + cat > "$out/slim.theme" <succeed("diff /etc/krb5.conf ${snapshot}"); + ''; +}) diff --git a/nixos/tests/krb5/example-config.nix b/nixos/tests/krb5/example-config.nix new file mode 100644 index 00000000000..d5328720931 --- /dev/null +++ b/nixos/tests/krb5/example-config.nix @@ -0,0 +1,106 @@ +# Verifies that the configuration suggested in (non-deprecated) example values +# will result in the expected output. + +import ../make-test.nix ({ pkgs, ...} : { + name = "krb5-with-example-config"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ eqyiel ]; + }; + + machine = + { config, pkgs, ... }: { + krb5 = { + enable = true; + kerberos = pkgs.krb5Full; + libdefaults = { + default_realm = "ATHENA.MIT.EDU"; + }; + realms = { + "ATHENA.MIT.EDU" = { + admin_server = "athena.mit.edu"; + kdc = "athena.mit.edu"; + }; + }; + domain_realm = { + "example.com" = "EXAMPLE.COM"; + ".example.com" = "EXAMPLE.COM"; + }; + capaths = { + "ATHENA.MIT.EDU" = { + "EXAMPLE.COM" = "."; + }; + "EXAMPLE.COM" = { + "ATHENA.MIT.EDU" = "."; + }; + }; + appdefaults = { + pam = { + debug = false; + ticket_lifetime = 36000; + renew_lifetime = 36000; + max_timeout = 30; + timeout_shift = 2; + initial_timeout = 1; + }; + }; + plugins = { + ccselect = { + disable = "k5identity"; + }; + }; + extraConfig = '' + [logging] + kdc = SYSLOG:NOTICE + admin_server = SYSLOG:NOTICE + default = SYSLOG:NOTICE + ''; + }; + }; + + testScript = + let snapshot = pkgs.writeText "krb5-with-example-config.conf" '' + [libdefaults] + default_realm = ATHENA.MIT.EDU + + [realms] + ATHENA.MIT.EDU = { + admin_server = athena.mit.edu + kdc = athena.mit.edu + } + + [domain_realm] + .example.com = EXAMPLE.COM + example.com = EXAMPLE.COM + + [capaths] + ATHENA.MIT.EDU = { + EXAMPLE.COM = . + } + EXAMPLE.COM = { + ATHENA.MIT.EDU = . + } + + [appdefaults] + pam = { + debug = false + initial_timeout = 1 + max_timeout = 30 + renew_lifetime = 36000 + ticket_lifetime = 36000 + timeout_shift = 2 + } + + [plugins] + ccselect = { + disable = k5identity + } + + [logging] + kdc = SYSLOG:NOTICE + admin_server = SYSLOG:NOTICE + default = SYSLOG:NOTICE + ''; + in '' + $machine->succeed("diff /etc/krb5.conf ${snapshot}"); + ''; +}) diff --git a/nixos/tests/kubernetes.nix b/nixos/tests/kubernetes.nix deleted file mode 100644 index dcd25e21197..00000000000 --- a/nixos/tests/kubernetes.nix +++ /dev/null @@ -1,409 +0,0 @@ -{ system ? builtins.currentSystem }: - -with import ../lib/testing.nix { inherit system; }; -with import ../lib/qemu-flags.nix; -with pkgs.lib; - -let - redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON { - kind = "Pod"; - apiVersion = "v1"; - metadata.name = "redis"; - metadata.labels.name = "redis"; - spec.containers = [{ - name = "redis"; - image = "redis"; - args = ["--bind" "0.0.0.0"]; - imagePullPolicy = "Never"; - ports = [{ - name = "redis-server"; - containerPort = 6379; - }]; - }]; - }); - - redisService = pkgs.writeText "redis-service.json" (builtins.toJSON { - kind = "Service"; - apiVersion = "v1"; - metadata.name = "redis"; - spec = { - ports = [{port = 6379; targetPort = 6379;}]; - selector = {name = "redis";}; - }; - }); - - redisImage = pkgs.dockerTools.buildImage { - name = "redis"; - tag = "latest"; - contents = pkgs.redis; - config.Entrypoint = "/bin/redis-server"; - }; - - testSimplePod = '' - $kubernetes->execute("docker load < ${redisImage}"); - $kubernetes->waitUntilSucceeds("kubectl create -f ${redisPod}"); - $kubernetes->succeed("kubectl create -f ${redisService}"); - $kubernetes->waitUntilSucceeds("kubectl get pod redis | grep Running"); - $kubernetes->succeed("nc -z \$\(dig \@10.10.0.1 redis.default.svc.cluster.local +short\) 6379"); - ''; -in { - # This test runs kubernetes on a single node - trivial = makeTest { - name = "kubernetes-trivial"; - - nodes = { - kubernetes = - { config, pkgs, lib, nodes, ... }: - { - virtualisation.memorySize = 768; - virtualisation.diskSize = 2048; - - programs.bash.enableCompletion = true; - environment.systemPackages = with pkgs; [ netcat bind ]; - - services.kubernetes.roles = ["master" "node"]; - virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0"; - - networking.bridges.cbr0.interfaces = []; - networking.interfaces.cbr0 = {}; - }; - }; - - testScript = '' - startAll; - - $kubernetes->waitUntilSucceeds("kubectl get nodes | grep kubernetes | grep Ready"); - - ${testSimplePod} - ''; - }; - - cluster = let - runWithOpenSSL = file: cmd: pkgs.runCommand file { - buildInputs = [ pkgs.openssl ]; - } cmd; - - ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048"; - ca_pem = runWithOpenSSL "ca.pem" '' - openssl req \ - -x509 -new -nodes -key ${ca_key} \ - -days 10000 -out $out -subj "/CN=etcd-ca" - ''; - etcd_key = runWithOpenSSL "etcd-key.pem" "openssl genrsa -out $out 2048"; - etcd_csr = runWithOpenSSL "etcd.csr" '' - openssl req \ - -new -key ${etcd_key} \ - -out $out -subj "/CN=etcd" \ - -config ${openssl_cnf} - ''; - etcd_cert = runWithOpenSSL "etcd.pem" '' - openssl x509 \ - -req -in ${etcd_csr} \ - -CA ${ca_pem} -CAkey ${ca_key} \ - -CAcreateserial -out $out \ - -days 365 -extensions v3_req \ - -extfile ${openssl_cnf} - ''; - - etcd_client_key = runWithOpenSSL "etcd-client-key.pem" - "openssl genrsa -out $out 2048"; - - etcd_client_csr = runWithOpenSSL "etcd-client-key.pem" '' - openssl req \ - -new -key ${etcd_client_key} \ - -out $out -subj "/CN=etcd-client" \ - -config ${client_openssl_cnf} - ''; - - etcd_client_cert = runWithOpenSSL "etcd-client.crt" '' - openssl x509 \ - -req -in ${etcd_client_csr} \ - -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \ - -out $out -days 365 -extensions v3_req \ - -extfile ${client_openssl_cnf} - ''; - - apiserver_key = runWithOpenSSL "apiserver-key.pem" "openssl genrsa -out $out 2048"; - - apiserver_csr = runWithOpenSSL "apiserver.csr" '' - openssl req \ - -new -key ${apiserver_key} \ - -out $out -subj "/CN=kube-apiserver" \ - -config ${apiserver_cnf} - ''; - - apiserver_cert = runWithOpenSSL "apiserver.pem" '' - openssl x509 \ - -req -in ${apiserver_csr} \ - -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \ - -out $out -days 365 -extensions v3_req \ - -extfile ${apiserver_cnf} - ''; - - worker_key = runWithOpenSSL "worker-key.pem" "openssl genrsa -out $out 2048"; - - worker_csr = runWithOpenSSL "worker.csr" '' - openssl req \ - -new -key ${worker_key} \ - -out $out -subj "/CN=kube-worker" \ - -config ${worker_cnf} - ''; - - worker_cert = runWithOpenSSL "worker.pem" '' - openssl x509 \ - -req -in ${worker_csr} \ - -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \ - -out $out -days 365 -extensions v3_req \ - -extfile ${worker_cnf} - ''; - - openssl_cnf = pkgs.writeText "openssl.cnf" '' - [req] - req_extensions = v3_req - distinguished_name = req_distinguished_name - [req_distinguished_name] - [ v3_req ] - basicConstraints = CA:FALSE - keyUsage = digitalSignature, keyEncipherment - extendedKeyUsage = serverAuth - subjectAltName = @alt_names - [alt_names] - DNS.1 = etcd1 - DNS.2 = etcd2 - DNS.3 = etcd3 - IP.1 = 127.0.0.1 - ''; - - client_openssl_cnf = pkgs.writeText "client-openssl.cnf" '' - [req] - req_extensions = v3_req - distinguished_name = req_distinguished_name - [req_distinguished_name] - [ v3_req ] - basicConstraints = CA:FALSE - keyUsage = digitalSignature, keyEncipherment - extendedKeyUsage = clientAuth - ''; - - apiserver_cnf = pkgs.writeText "apiserver-openssl.cnf" '' - [req] - req_extensions = v3_req - distinguished_name = req_distinguished_name - [req_distinguished_name] - [ v3_req ] - basicConstraints = CA:FALSE - keyUsage = nonRepudiation, digitalSignature, keyEncipherment - subjectAltName = @alt_names - [alt_names] - DNS.1 = kubernetes - DNS.2 = kubernetes.default - DNS.3 = kubernetes.default.svc - DNS.4 = kubernetes.default.svc.cluster.local - IP.1 = 10.10.10.1 - ''; - - worker_cnf = pkgs.writeText "worker-openssl.cnf" '' - [req] - req_extensions = v3_req - distinguished_name = req_distinguished_name - [req_distinguished_name] - [ v3_req ] - basicConstraints = CA:FALSE - keyUsage = nonRepudiation, digitalSignature, keyEncipherment - subjectAltName = @alt_names - [alt_names] - DNS.1 = kubeWorker1 - DNS.2 = kubeWorker2 - ''; - - etcdNodeConfig = { - virtualisation.memorySize = 128; - - services = { - etcd = { - enable = true; - keyFile = etcd_key; - certFile = etcd_cert; - trustedCaFile = ca_pem; - peerClientCertAuth = true; - listenClientUrls = ["https://0.0.0.0:2379"]; - listenPeerUrls = ["https://0.0.0.0:2380"]; - }; - }; - - environment.variables = { - ETCDCTL_CERT_FILE = "${etcd_client_cert}"; - ETCDCTL_KEY_FILE = "${etcd_client_key}"; - ETCDCTL_CA_FILE = "${ca_pem}"; - ETCDCTL_PEERS = "https://127.0.0.1:2379"; - }; - - networking.firewall.allowedTCPPorts = [ 2379 2380 ]; - }; - - kubeConfig = { - virtualisation.diskSize = 2048; - programs.bash.enableCompletion = true; - - services.flannel = { - enable = true; - network = "10.10.0.0/16"; - iface = "eth1"; - etcd = { - endpoints = ["https://etcd1:2379" "https://etcd2:2379" "https://etcd3:2379"]; - keyFile = etcd_client_key; - certFile = etcd_client_cert; - caFile = ca_pem; - }; - }; - - # vxlan - networking.firewall.allowedUDPPorts = [ 8472 ]; - - systemd.services.docker.after = ["flannel.service"]; - systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/subnet.env"; - virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false --bip $FLANNEL_SUBNET"; - - services.kubernetes.verbose = true; - services.kubernetes.etcd = { - servers = ["https://etcd1:2379" "https://etcd2:2379" "https://etcd3:2379"]; - keyFile = etcd_client_key; - certFile = etcd_client_cert; - caFile = ca_pem; - }; - - environment.systemPackages = [ pkgs.bind pkgs.tcpdump pkgs.utillinux ]; - }; - - kubeMasterConfig = {pkgs, ...}: { - require = [kubeConfig]; - - # kube apiserver - networking.firewall.allowedTCPPorts = [ 443 ]; - - virtualisation.memorySize = 512; - - services.kubernetes = { - roles = ["master"]; - scheduler.leaderElect = true; - controllerManager.leaderElect = true; - - apiserver = { - publicAddress = "0.0.0.0"; - advertiseAddress = "192.168.1.8"; - tlsKeyFile = apiserver_key; - tlsCertFile = apiserver_cert; - clientCaFile = ca_pem; - kubeletClientCaFile = ca_pem; - kubeletClientKeyFile = worker_key; - kubeletClientCertFile = worker_cert; - }; - }; - }; - - kubeWorkerConfig = { pkgs, ... }: { - require = [kubeConfig]; - - virtualisation.memorySize = 512; - - # kubelet - networking.firewall.allowedTCPPorts = [ 10250 ]; - - services.kubernetes = { - roles = ["node"]; - kubeconfig = { - server = "https://kubernetes:443"; - caFile = ca_pem; - certFile = worker_cert; - keyFile = worker_key; - }; - kubelet = { - tlsKeyFile = worker_key; - tlsCertFile = worker_cert; - }; - }; - }; - in makeTest { - name = "kubernetes-cluster"; - - nodes = { - etcd1 = { config, pkgs, nodes, ... }: { - require = [etcdNodeConfig]; - services.etcd = { - advertiseClientUrls = ["https://etcd1:2379"]; - initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"]; - initialAdvertisePeerUrls = ["https://etcd1:2380"]; - }; - }; - - etcd2 = { config, pkgs, ... }: { - require = [etcdNodeConfig]; - services.etcd = { - advertiseClientUrls = ["https://etcd2:2379"]; - initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"]; - initialAdvertisePeerUrls = ["https://etcd2:2380"]; - }; - }; - - etcd3 = { config, pkgs, ... }: { - require = [etcdNodeConfig]; - services.etcd = { - advertiseClientUrls = ["https://etcd3:2379"]; - initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"]; - initialAdvertisePeerUrls = ["https://etcd3:2380"]; - }; - }; - - kubeMaster1 = { config, pkgs, lib, nodes, ... }: { - require = [kubeMasterConfig]; - }; - - kubeMaster2 = { config, pkgs, lib, nodes, ... }: { - require = [kubeMasterConfig]; - }; - - # Kubernetes TCP load balancer - kubernetes = { config, pkgs, ... }: { - # kubernetes - networking.firewall.allowedTCPPorts = [ 443 ]; - - services.haproxy.enable = true; - services.haproxy.config = '' - global - log 127.0.0.1 local0 notice - user haproxy - group haproxy - - defaults - log global - retries 2 - timeout connect 3000 - timeout server 5000 - timeout client 5000 - - listen kubernetes - bind 0.0.0.0:443 - mode tcp - option ssl-hello-chk - balance roundrobin - server kube-master-1 kubeMaster1:443 check - server kube-master-2 kubeMaster2:443 check - ''; - }; - - kubeWorker1 = { config, pkgs, lib, nodes, ... }: { - require = [kubeWorkerConfig]; - }; - - kubeWorker2 = { config, pkgs, lib, nodes, ... }: { - require = [kubeWorkerConfig]; - }; - }; - - testScript = '' - startAll; - - ${testSimplePod} - ''; - }; -} diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix new file mode 100644 index 00000000000..acf2e025081 --- /dev/null +++ b/nixos/tests/kubernetes/base.nix @@ -0,0 +1,113 @@ +{ system ? builtins.currentSystem }: + +with import ../../lib/testing.nix { inherit system; }; +with import ../../lib/qemu-flags.nix; +with pkgs.lib; + +let + mkKubernetesBaseTest = + { name, domain ? "my.zyx", test, machines + , pkgs ? import { inherit system; } + , certs ? import ./certs.nix { inherit pkgs; externalDomain = domain; } + , extraConfiguration ? null }: + let + masterName = head (filter (machineName: any (role: role == "master") machines.${machineName}.roles) (attrNames machines)); + master = machines.${masterName}; + extraHosts = '' + ${master.ip} etcd.${domain} + ${master.ip} api.${domain} + ${concatMapStringsSep "\n" (machineName: "${machines.${machineName}.ip} ${machineName}.${domain}") (attrNames machines)} + ''; + in makeTest { + inherit name; + + nodes = mapAttrs (machineName: machine: + { config, pkgs, lib, nodes, ... }: + mkMerge [ + { + virtualisation.memorySize = mkDefault 768; + virtualisation.diskSize = mkDefault 4096; + networking = { + inherit domain extraHosts; + primaryIPAddress = mkForce machine.ip; + + firewall = { + allowedTCPPorts = [ + 10250 # kubelet + ]; + trustedInterfaces = ["docker0"]; + + extraCommands = concatMapStrings (node: '' + iptables -A INPUT -s ${node.config.networking.primaryIPAddress} -j ACCEPT + '') (attrValues nodes); + }; + }; + programs.bash.enableCompletion = true; + environment.variables = { + ETCDCTL_CERT_FILE = "${certs.worker}/etcd-client.pem"; + ETCDCTL_KEY_FILE = "${certs.worker}/etcd-client-key.pem"; + ETCDCTL_CA_FILE = "${certs.worker}/ca.pem"; + ETCDCTL_PEERS = "https://etcd.${domain}:2379"; + }; + services.flannel.iface = "eth1"; + services.kubernetes.apiserver.advertiseAddress = master.ip; + } + (optionalAttrs (any (role: role == "master") machine.roles) { + networking.firewall.allowedTCPPorts = [ + 2379 2380 # etcd + 443 # kubernetes apiserver + ]; + services.etcd = { + enable = true; + certFile = "${certs.master}/etcd.pem"; + keyFile = "${certs.master}/etcd-key.pem"; + trustedCaFile = "${certs.master}/ca.pem"; + peerClientCertAuth = true; + listenClientUrls = ["https://0.0.0.0:2379"]; + listenPeerUrls = ["https://0.0.0.0:2380"]; + advertiseClientUrls = ["https://etcd.${config.networking.domain}:2379"]; + initialCluster = ["${masterName}=https://etcd.${config.networking.domain}:2380"]; + initialAdvertisePeerUrls = ["https://etcd.${config.networking.domain}:2380"]; + }; + }) + (import ./kubernetes-common.nix { inherit (machine) roles; inherit pkgs config certs; }) + (optionalAttrs (machine ? "extraConfiguration") (machine.extraConfiguration { inherit config pkgs lib nodes; })) + (optionalAttrs (extraConfiguration != null) (extraConfiguration { inherit config pkgs lib nodes; })) + ] + ) machines; + + testScript = '' + startAll; + + ${test} + ''; + }; + + mkKubernetesMultiNodeTest = attrs: mkKubernetesBaseTest ({ + machines = { + machine1 = { + roles = ["master"]; + ip = "192.168.1.1"; + }; + machine2 = { + roles = ["node"]; + ip = "192.168.1.2"; + }; + }; + } // attrs // { + name = "kubernetes-${attrs.name}-multinode"; + }); + + mkKubernetesSingleNodeTest = attrs: mkKubernetesBaseTest ({ + machines = { + machine1 = { + roles = ["master" "node"]; + ip = "192.168.1.1"; + }; + }; + } // attrs // { + name = "kubernetes-${attrs.name}-singlenode"; + }); +in { + inherit mkKubernetesBaseTest mkKubernetesSingleNodeTest mkKubernetesMultiNodeTest; +} diff --git a/nixos/tests/kubernetes/certs.nix b/nixos/tests/kubernetes/certs.nix new file mode 100644 index 00000000000..f108e35b98c --- /dev/null +++ b/nixos/tests/kubernetes/certs.nix @@ -0,0 +1,185 @@ +{ + pkgs ? import {}, + internalDomain ? "cloud.yourdomain.net", + externalDomain ? "myawesomecluster.cluster.yourdomain.net", + serviceClusterIp ? "10.0.0.1" +}: +let + runWithCFSSL = name: cmd: + builtins.fromJSON (builtins.readFile ( + pkgs.runCommand "${name}-cfss.json" { + buildInputs = [ pkgs.cfssl ]; + } "cfssl ${cmd} > $out" + )); + + writeCFSSL = content: + pkgs.runCommand content.name { + buildInputs = [ pkgs.cfssl ]; + } '' + mkdir -p $out + cd $out + cat ${writeFile content} | cfssljson -bare ${content.name} + ''; + + noCSR = content: pkgs.lib.filterAttrs (n: v: n != "csr") content; + noKey = content: pkgs.lib.filterAttrs (n: v: n != "key") content; + + writeFile = content: pkgs.writeText "content" ( + if pkgs.lib.isAttrs content then builtins.toJSON content + else toString content + ); + + createServingCertKey = { ca, cn, hosts? [], size ? 2048, name ? cn }: + noCSR ( + (runWithCFSSL name "gencert -ca=${writeFile ca.cert} -ca-key=${writeFile ca.key} -profile=server -config=${writeFile ca.config} ${writeFile { + CN = cn; + hosts = hosts; + key = { algo = "rsa"; inherit size; }; + }}") // { inherit name; } + ); + + createClientCertKey = { ca, cn, groups ? [], size ? 2048, name ? cn }: + noCSR ( + (runWithCFSSL name "gencert -ca=${writeFile ca.cert} -ca-key=${writeFile ca.key} -profile=client -config=${writeFile ca.config} ${writeFile { + CN = cn; + names = map (group: {O = group;}) groups; + hosts = [""]; + key = { algo = "rsa"; inherit size; }; + }}") // { inherit name; } + ); + + createSigningCertKey = { C ? "xx", ST ? "x", L ? "x", O ? "x", OU ? "x", CN ? "ca", emailAddress ? "x", expiry ? "43800h", size ? 2048, name ? CN }: + (noCSR (runWithCFSSL CN "genkey -initca ${writeFile { + key = { algo = "rsa"; inherit size; }; + names = [{ inherit C ST L O OU CN emailAddress; }]; + }}")) // { + inherit name; + config.signing = { + default.expiry = expiry; + profiles = { + server = { + inherit expiry; + usages = [ + "signing" + "key encipherment" + "server auth" + ]; + }; + client = { + inherit expiry; + usages = [ + "signing" + "key encipherment" + "client auth" + ]; + }; + peer = { + inherit expiry; + usages = [ + "signing" + "key encipherment" + "server auth" + "client auth" + ]; + }; + }; + }; + }; + + ca = createSigningCertKey {}; + + kube-apiserver = createServingCertKey { + inherit ca; + cn = "kube-apiserver"; + hosts = ["kubernetes.default" "kubernetes.default.svc" "localhost" "api.${externalDomain}" serviceClusterIp]; + }; + + kubelet = createServingCertKey { + inherit ca; + cn = "kubelet"; + hosts = ["*.${externalDomain}"]; + }; + + service-accounts = createServingCertKey { + inherit ca; + cn = "kube-service-accounts"; + }; + + etcd = createServingCertKey { + inherit ca; + cn = "etcd"; + hosts = ["etcd.${externalDomain}"]; + }; + + etcd-client = createClientCertKey { + inherit ca; + cn = "etcd-client"; + }; + + kubelet-client = createClientCertKey { + inherit ca; + cn = "kubelet-client"; + groups = ["system:masters"]; + }; + + apiserver-client = { + kubelet = createClientCertKey { + inherit ca; + cn = "apiserver-client-kubelet"; + groups = ["system:nodes"]; + }; + + kube-proxy = createClientCertKey { + inherit ca; + name = "apiserver-client-kube-proxy"; + cn = "system:kube-proxy"; + groups = ["system:kube-proxy" "system:nodes"]; + }; + + kube-controller-manager = createClientCertKey { + inherit ca; + name = "apiserver-client-kube-controller-manager"; + cn = "system:kube-controller-manager"; + groups = ["system:masters"]; + }; + + kube-scheduler = createClientCertKey { + inherit ca; + name = "apiserver-client-kube-scheduler"; + cn = "system:kube-scheduler"; + groups = ["system:kube-scheduler"]; + }; + + admin = createClientCertKey { + inherit ca; + cn = "admin"; + groups = ["system:masters"]; + }; + }; +in { + master = pkgs.buildEnv { + name = "master-keys"; + paths = [ + (writeCFSSL (noKey ca)) + (writeCFSSL kube-apiserver) + (writeCFSSL kubelet-client) + (writeCFSSL apiserver-client.kube-controller-manager) + (writeCFSSL apiserver-client.kube-scheduler) + (writeCFSSL service-accounts) + (writeCFSSL etcd) + ]; + }; + + worker = pkgs.buildEnv { + name = "worker-keys"; + paths = [ + (writeCFSSL (noKey ca)) + (writeCFSSL kubelet) + (writeCFSSL apiserver-client.kubelet) + (writeCFSSL apiserver-client.kube-proxy) + (writeCFSSL etcd-client) + ]; + }; + + admin = writeCFSSL apiserver-client.admin; +} diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix new file mode 100644 index 00000000000..a801759bf58 --- /dev/null +++ b/nixos/tests/kubernetes/default.nix @@ -0,0 +1,7 @@ +{ system ? builtins.currentSystem }: +{ + dns = import ./dns.nix { inherit system; }; + # e2e = import ./e2e.nix { inherit system; }; # TODO: make it pass + # the following test(s) can be removed when e2e is working: + rbac = import ./rbac.nix { inherit system; }; +} diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix new file mode 100644 index 00000000000..74d98dabec8 --- /dev/null +++ b/nixos/tests/kubernetes/dns.nix @@ -0,0 +1,127 @@ +{ system ? builtins.currentSystem, pkgs ? import { inherit system; } }: +with import ./base.nix { inherit system; }; +let + domain = "my.zyx"; + + certs = import ./certs.nix { externalDomain = domain; }; + + redisPod = pkgs.writeText "redis-pod.json" (builtins.toJSON { + kind = "Pod"; + apiVersion = "v1"; + metadata.name = "redis"; + metadata.labels.name = "redis"; + spec.containers = [{ + name = "redis"; + image = "redis"; + args = ["--bind" "0.0.0.0"]; + imagePullPolicy = "Never"; + ports = [{ + name = "redis-server"; + containerPort = 6379; + }]; + }]; + }); + + redisService = pkgs.writeText "redis-service.json" (builtins.toJSON { + kind = "Service"; + apiVersion = "v1"; + metadata.name = "redis"; + spec = { + ports = [{port = 6379; targetPort = 6379;}]; + selector = {name = "redis";}; + }; + }); + + redisImage = pkgs.dockerTools.buildImage { + name = "redis"; + tag = "latest"; + contents = [ pkgs.redis pkgs.bind.host ]; + config.Entrypoint = "/bin/redis-server"; + }; + + probePod = pkgs.writeText "probe-pod.json" (builtins.toJSON { + kind = "Pod"; + apiVersion = "v1"; + metadata.name = "probe"; + metadata.labels.name = "probe"; + spec.containers = [{ + name = "probe"; + image = "probe"; + args = [ "-f" ]; + tty = true; + imagePullPolicy = "Never"; + }]; + }); + + probeImage = pkgs.dockerTools.buildImage { + name = "probe"; + tag = "latest"; + contents = [ pkgs.bind.host pkgs.busybox ]; + config.Entrypoint = "/bin/tail"; + }; + + extraConfiguration = { config, pkgs, lib, nodes, ... }: { + environment.systemPackages = [ pkgs.bind.host ]; + # virtualisation.docker.extraOptions = "--dns=${config.services.kubernetes.addons.dns.clusterIp}"; + services.dnsmasq.enable = true; + services.dnsmasq.servers = [ + "/cluster.local/${config.services.kubernetes.addons.dns.clusterIp}#53" + ]; + }; + + base = { + name = "dns"; + inherit domain certs extraConfiguration; + }; + + singleNodeTest = { + test = '' + # prepare machine1 for test + $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready"); + $machine1->execute("docker load < ${redisImage}"); + $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}"); + $machine1->waitUntilSucceeds("kubectl create -f ${redisService}"); + $machine1->execute("docker load < ${probeImage}"); + $machine1->waitUntilSucceeds("kubectl create -f ${probePod}"); + + # check if pods are running + $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running"); + $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running"); + $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'kube-dns.*3/3'"); + + # check dns on host (dnsmasq) + $machine1->succeed("host redis.default.svc.cluster.local"); + + # check dns inside the container + $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local"); + ''; + }; + + multiNodeTest = { + test = '' + # prepare machines for test + $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready"); + $machine1->waitUntilSucceeds("kubectl get node machine2.${domain} | grep -w Ready"); + $machine2->execute("docker load < ${redisImage}"); + $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}"); + $machine1->waitUntilSucceeds("kubectl create -f ${redisService}"); + $machine2->execute("docker load < ${probeImage}"); + $machine1->waitUntilSucceeds("kubectl create -f ${probePod}"); + + # check if pods are running + $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running"); + $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running"); + $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'kube-dns.*3/3'"); + + # check dns on hosts (dnsmasq) + $machine1->succeed("host redis.default.svc.cluster.local"); + $machine2->succeed("host redis.default.svc.cluster.local"); + + # check dns inside the container + $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local"); + ''; + }; +in { + singlenode = mkKubernetesSingleNodeTest (base // singleNodeTest); + multinode = mkKubernetesMultiNodeTest (base // multiNodeTest); +} diff --git a/nixos/tests/kubernetes/e2e.nix b/nixos/tests/kubernetes/e2e.nix new file mode 100644 index 00000000000..d9d7ba9bb2c --- /dev/null +++ b/nixos/tests/kubernetes/e2e.nix @@ -0,0 +1,40 @@ +{ system ? builtins.currentSystem, pkgs ? import { inherit system; } }: +with import ./base.nix { inherit system; }; +let + domain = "my.zyx"; + certs = import ./certs.nix { externalDomain = domain; }; + kubeconfig = pkgs.writeText "kubeconfig.json" (builtins.toJSON { + apiVersion = "v1"; + kind = "Config"; + clusters = [{ + name = "local"; + cluster.certificate-authority = "${certs.master}/ca.pem"; + cluster.server = "https://api.${domain}"; + }]; + users = [{ + name = "kubelet"; + user = { + client-certificate = "${certs.admin}/admin.pem"; + client-key = "${certs.admin}/admin-key.pem"; + }; + }]; + contexts = [{ + context = { + cluster = "local"; + user = "kubelet"; + }; + current-context = "kubelet-context"; + }]; + }); + + base = { + name = "e2e"; + inherit domain certs; + test = '' + $machine1->succeed("e2e.test -kubeconfig ${kubeconfig} -provider local -ginkgo.focus '\\[Conformance\\]' -ginkgo.skip '\\[Flaky\\]|\\[Serial\\]'"); + ''; + }; +in { + singlenode = mkKubernetesSingleNodeTest base; + multinode = mkKubernetesMultiNodeTest base; +} diff --git a/nixos/tests/kubernetes/kubernetes-common.nix b/nixos/tests/kubernetes/kubernetes-common.nix new file mode 100644 index 00000000000..00a5c9aba4e --- /dev/null +++ b/nixos/tests/kubernetes/kubernetes-common.nix @@ -0,0 +1,59 @@ +{ roles, config, pkgs, certs }: +with pkgs.lib; +let + base = { + inherit roles; + featureGates = ["AllAlpha"]; + flannel.enable = true; + addons.dashboard.enable = true; + verbose = true; + + caFile = "${certs.master}/ca.pem"; + apiserver = { + tlsCertFile = "${certs.master}/kube-apiserver.pem"; + tlsKeyFile = "${certs.master}/kube-apiserver-key.pem"; + kubeletClientCertFile = "${certs.master}/kubelet-client.pem"; + kubeletClientKeyFile = "${certs.master}/kubelet-client-key.pem"; + serviceAccountKeyFile = "${certs.master}/kube-service-accounts.pem"; + }; + etcd = { + servers = ["https://etcd.${config.networking.domain}:2379"]; + certFile = "${certs.worker}/etcd-client.pem"; + keyFile = "${certs.worker}/etcd-client-key.pem"; + }; + kubeconfig = { + server = "https://api.${config.networking.domain}"; + }; + kubelet = { + tlsCertFile = "${certs.worker}/kubelet.pem"; + tlsKeyFile = "${certs.worker}/kubelet-key.pem"; + hostname = "${config.networking.hostName}.${config.networking.domain}"; + kubeconfig = { + certFile = "${certs.worker}/apiserver-client-kubelet.pem"; + keyFile = "${certs.worker}/apiserver-client-kubelet-key.pem"; + }; + }; + controllerManager = { + serviceAccountKeyFile = "${certs.master}/kube-service-accounts-key.pem"; + kubeconfig = { + certFile = "${certs.master}/apiserver-client-kube-controller-manager.pem"; + keyFile = "${certs.master}/apiserver-client-kube-controller-manager-key.pem"; + }; + }; + scheduler = { + kubeconfig = { + certFile = "${certs.master}/apiserver-client-kube-scheduler.pem"; + keyFile = "${certs.master}/apiserver-client-kube-scheduler-key.pem"; + }; + }; + proxy = { + kubeconfig = { + certFile = "${certs.worker}/apiserver-client-kube-proxy.pem"; + keyFile = "${certs.worker}//apiserver-client-kube-proxy-key.pem"; + }; + }; + }; + +in { + services.kubernetes = base; +} diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix new file mode 100644 index 00000000000..1966fed3a5f --- /dev/null +++ b/nixos/tests/kubernetes/rbac.nix @@ -0,0 +1,137 @@ +{ system ? builtins.currentSystem, pkgs ? import { inherit system; } }: +with import ./base.nix { inherit system; }; +let + + roServiceAccount = pkgs.writeText "ro-service-account.json" (builtins.toJSON { + kind = "ServiceAccount"; + apiVersion = "v1"; + metadata = { + name = "read-only"; + namespace = "default"; + }; + }); + + roRoleBinding = pkgs.writeText "ro-role-binding.json" (builtins.toJSON { + apiVersion = "rbac.authorization.k8s.io/v1beta1"; + kind = "RoleBinding"; + metadata = { + name = "read-pods"; + namespace = "default"; + }; + roleRef = { + apiGroup = "rbac.authorization.k8s.io"; + kind = "Role"; + name = "pod-reader"; + }; + subjects = [{ + kind = "ServiceAccount"; + name = "read-only"; + namespace = "default"; + }]; + }); + + roRole = pkgs.writeText "ro-role.json" (builtins.toJSON { + apiVersion = "rbac.authorization.k8s.io/v1beta1"; + kind = "Role"; + metadata = { + name = "pod-reader"; + namespace = "default"; + }; + rules = [{ + apiGroups = [""]; + resources = ["pods"]; + verbs = ["get" "list" "watch"]; + }]; + }); + + kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON { + kind = "Pod"; + apiVersion = "v1"; + metadata.name = "kubectl"; + metadata.namespace = "default"; + metadata.labels.name = "kubectl"; + spec.serviceAccountName = "read-only"; + spec.containers = [{ + name = "kubectl"; + image = "kubectl:latest"; + command = ["/bin/tail" "-f"]; + imagePullPolicy = "Never"; + tty = true; + }]; + }); + + kubectlPod2 = pkgs.writeTextDir "kubectl-pod-2.json" (builtins.toJSON { + kind = "Pod"; + apiVersion = "v1"; + metadata.name = "kubectl-2"; + metadata.namespace = "default"; + metadata.labels.name = "kubectl-2"; + spec.serviceAccountName = "read-only"; + spec.containers = [{ + name = "kubectl-2"; + image = "kubectl:latest"; + command = ["/bin/tail" "-f"]; + imagePullPolicy = "Never"; + tty = true; + }]; + }); + + kubectl = pkgs.runCommand "copy-kubectl" { buildInputs = [ pkgs.kubernetes ]; } '' + mkdir -p $out/bin + cp ${pkgs.kubernetes}/bin/kubectl $out/bin/kubectl + ''; + + kubectlImage = pkgs.dockerTools.buildImage { + name = "kubectl"; + tag = "latest"; + contents = [ kubectl pkgs.busybox kubectlPod2 ]; + config.Entrypoint = "/bin/sh"; + }; + + base = { + name = "rbac"; + }; + + singlenode = base // { + test = '' + $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready"); + + $machine1->execute("docker load < ${kubectlImage}"); + + $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}"); + $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}"); + $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}"); + $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}"); + + $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running"); + + $machine1->succeed("kubectl exec -ti kubectl -- kubectl get pods"); + $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json"); + $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl"); + ''; + }; + + multinode = base // { + test = '' + $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready"); + $machine1->waitUntilSucceeds("kubectl get node machine2.my.zyx | grep -w Ready"); + + $machine2->execute("docker load < ${kubectlImage}"); + + $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}"); + $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}"); + $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}"); + $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}"); + + $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running"); + + $machine1->succeed("kubectl exec -ti kubectl -- kubectl get pods"); + $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json"); + $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl"); + ''; + }; + +in { + singlenode = mkKubernetesSingleNodeTest singlenode; + multinode = mkKubernetesMultiNodeTest multinode; +} diff --git a/nixos/tests/ldap.nix b/nixos/tests/ldap.nix new file mode 100644 index 00000000000..b39f4124c95 --- /dev/null +++ b/nixos/tests/ldap.nix @@ -0,0 +1,119 @@ +import ./make-test.nix ({ pkgs, lib, ...} : + +let + + dbSuffix = "dc=example,dc=com"; + dbPath = "/var/db/openldap"; + dbAdminDn = "cn=admin,${dbSuffix}"; + dbAdminPwd = "test"; + serverUri = "ldap:///"; + ldapUser = "test-ldap-user"; + ldapUserId = 10000; + ldapUserPwd = "test"; + ldapGroup = "test-ldap-group"; + ldapGroupId = 10000; + setupLdif = pkgs.writeText "test-ldap.ldif" '' + dn: ${dbSuffix} + dc: ${with lib; let dc = head (splitString "," dbSuffix); dcName = head (tail (splitString "=" dc)); in dcName} + o: ${dbSuffix} + objectclass: top + objectclass: dcObject + objectclass: organization + + dn: cn=${ldapUser},${dbSuffix} + sn: ${ldapUser} + objectClass: person + objectClass: posixAccount + uid: ${ldapUser} + uidNumber: ${toString ldapUserId} + gidNumber: ${toString ldapGroupId} + homeDirectory: /home/${ldapUser} + loginShell: /bin/sh + userPassword: ${ldapUserPwd} + + dn: cn=${ldapGroup},${dbSuffix} + objectClass: posixGroup + gidNumber: ${toString ldapGroupId} + memberUid: ${ldapUser} + ''; + mkClient = useDaemon: + { config, pkgs, lib, ... }: + { + virtualisation.memorySize = 256; + virtualisation.vlans = [ 1 ]; + security.pam.services.su.rootOK = lib.mkForce false; + users.ldap.enable = true; + users.ldap.daemon.enable = useDaemon; + users.ldap.loginPam = true; + users.ldap.nsswitch = true; + users.ldap.server = "ldap://server"; + users.ldap.base = "${dbSuffix}"; + }; + +in + +{ + name = "ldap"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ montag451 ]; + }; + + nodes = { + + server = + { config, pkgs, lib, ... }: + { + virtualisation.memorySize = 256; + virtualisation.vlans = [ 1 ]; + networking.firewall.allowedTCPPorts = [ 389 ]; + services.openldap.enable = true; + services.openldap.dataDir = dbPath; + services.openldap.urlList = [ + serverUri + ]; + services.openldap.extraConfig = '' + include ${pkgs.openldap.out}/etc/schema/core.schema + include ${pkgs.openldap.out}/etc/schema/cosine.schema + include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema + include ${pkgs.openldap.out}/etc/schema/nis.schema + + database mdb + suffix ${dbSuffix} + rootdn ${dbAdminDn} + rootpw ${dbAdminPwd} + directory ${dbPath} + ''; + }; + + client1 = mkClient true; # use nss_pam_ldapd + client2 = mkClient false; # use nss_ldap and pam_ldap + + }; + + testScript = '' + startAll; + $server->waitForUnit("default.target"); + $client1->waitForUnit("default.target"); + $client2->waitForUnit("default.target"); + + $server->succeed("ldapadd -D '${dbAdminDn}' -w ${dbAdminPwd} -H ${serverUri} -f '${setupLdif}'"); + + # NSS tests + subtest "nss", sub { + $client1->succeed("test \"\$(id -u '${ldapUser}')\" -eq ${toString ldapUserId}"); + $client1->succeed("test \"\$(id -u -n '${ldapUser}')\" = '${ldapUser}'"); + $client1->succeed("test \"\$(id -g '${ldapUser}')\" -eq ${toString ldapGroupId}"); + $client1->succeed("test \"\$(id -g -n '${ldapUser}')\" = '${ldapGroup}'"); + $client2->succeed("test \"\$(id -u '${ldapUser}')\" -eq ${toString ldapUserId}"); + $client2->succeed("test \"\$(id -u -n '${ldapUser}')\" = '${ldapUser}'"); + $client2->succeed("test \"\$(id -g '${ldapUser}')\" -eq ${toString ldapGroupId}"); + $client2->succeed("test \"\$(id -g -n '${ldapUser}')\" = '${ldapGroup}'"); + }; + + # PAM tests + subtest "pam", sub { + $client1->succeed("echo ${ldapUserPwd} | su -l '${ldapUser}' -c true"); + $client2->succeed("echo ${ldapUserPwd} | su -l '${ldapUser}' -c true"); + }; + ''; +}) diff --git a/nixos/tests/logstash.nix b/nixos/tests/logstash.nix deleted file mode 100644 index 01f6a0358b2..00000000000 --- a/nixos/tests/logstash.nix +++ /dev/null @@ -1,41 +0,0 @@ -# This test runs logstash and checks if messages flows and -# elasticsearch is started. - -import ./make-test.nix ({ pkgs, ...} : { - name = "logstash"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ eelco chaoflow offline ]; - }; - - nodes = { - one = - { config, pkgs, ... }: - { - services = { - logstash = { - enable = true; - inputConfig = '' - exec { command => "echo flowers" interval => 1 type => "test" } - exec { command => "echo dragons" interval => 1 type => "test" } - ''; - filterConfig = '' - if [message] =~ /dragons/ { - drop {} - } - ''; - outputConfig = '' - stdout { codec => rubydebug } - ''; - }; - }; - }; - }; - - testScript = '' - startAll; - - $one->waitForUnit("logstash.service"); - $one->waitUntilSucceeds("journalctl -n 20 _SYSTEMD_UNIT=logstash.service | grep flowers"); - $one->fail("journalctl -n 20 _SYSTEMD_UNIT=logstash.service | grep dragons"); - ''; -}) diff --git a/nixos/tests/mesos.nix b/nixos/tests/mesos.nix index 6e9af126f03..34671df047c 100644 --- a/nixos/tests/mesos.nix +++ b/nixos/tests/mesos.nix @@ -56,9 +56,7 @@ import ./make-test.nix ({ pkgs, ...} : rec { src = ./mesos_test.py; phases = [ "installPhase" "fixupPhase" ]; installPhase = '' - mkdir $out - cp $src $out/mesos_test.py - chmod +x $out/mesos_test.py + install -Dvm 0755 $src $out/bin/mesos_test.py echo "done" > test.result tar czf $out/test.tar.gz test.result @@ -74,18 +72,18 @@ import ./make-test.nix ({ pkgs, ...} : rec { $master->waitForOpenPort(5050); $slave->waitForOpenPort(5051); - # is slave registred? + # is slave registered? $master->waitUntilSucceeds("curl -s --fail http://master:5050/master/slaves". " | grep -q \"\\\"hostname\\\":\\\"slave\\\"\""); - # try to run docker image + # try to run docker image $master->succeed("${pkgs.mesos}/bin/mesos-execute --master=master:5050". " --resources=\"cpus:0.1;mem:32\" --name=simple-docker". " --containerizer=mesos --docker_image=echo:latest". " --shell=true --command=\"echo done\" | grep -q TASK_FINISHED"); # simple command with .tar.gz uri - $master->succeed("${testFramework}/mesos_test.py master ". + $master->succeed("${testFramework}/bin/mesos_test.py master ". "${testFramework}/test.tar.gz"); ''; }) diff --git a/nixos/tests/minio.nix b/nixos/tests/minio.nix new file mode 100644 index 00000000000..07a292a9baa --- /dev/null +++ b/nixos/tests/minio.nix @@ -0,0 +1,34 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "minio"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ bachp ]; + }; + + nodes = { + machine = { config, pkgs, ... }: { + services.minio = { + enable = true; + accessKey = "BKIKJAA5BMMU2RHO6IBB"; + secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12"; + }; + environment.systemPackages = [ pkgs.minio-client ]; + + # Minio requires at least 1GiB of free disk space to run. + virtualisation.diskSize = 4 * 1024; + }; + }; + + testScript = + '' + startAll; + $machine->waitForUnit("minio.service"); + $machine->waitForOpenPort(9000); + + # Create a test bucket on the server + $machine->succeed("mc config host add minio http://localhost:9000 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 S3v4"); + $machine->succeed("mc mb minio/test-bucket"); + $machine->succeed("mc ls minio") =~ /test-bucket/ or die; + $machine->shutdown; + + ''; +}) diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index 0efa7282368..79290861cb0 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -25,8 +25,8 @@ import ./make-test.nix ({ pkgs, ...} : { }; users.users.sybil = { isNormalUser = true; group = "wheel"; }; security.sudo = { enable = true; wheelNeedsPassword = false; }; - security.hideProcessInformation = true; - users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; + boot.kernel.sysctl."vm.swappiness" = 1; + boot.kernelParams = [ "vsyscall=emulate" ]; }; testScript = @@ -36,7 +36,7 @@ import ./make-test.nix ({ pkgs, ...} : { }; subtest "nixos-rebuild", sub { - $machine->succeed("nixos-rebuild --help | grep SYNOPSIS"); + $machine->succeed("nixos-rebuild --help | grep 'NixOS module' "); }; # Sanity check for uid/gid assignment. @@ -120,11 +120,17 @@ import ./make-test.nix ({ pkgs, ...} : { $machine->succeed("su - sybil -c 'sudo true'"); }; - # Test hidepid - subtest "hidepid", sub { - $machine->succeed("grep -Fq hidepid=2 /proc/mounts"); - $machine->succeed("[ `su - sybil -c 'pgrep -c -u root'` = 0 ]"); - $machine->succeed("[ `su - alice -c 'pgrep -c -u root'` != 0 ]"); + # Test sysctl + subtest "sysctl", sub { + $machine->waitForUnit("systemd-sysctl.service"); + $machine->succeed('[ `sysctl -ne vm.swappiness` = 1 ]'); + $machine->execute('sysctl vm.swappiness=60'); + $machine->succeed('[ `sysctl -ne vm.swappiness` = 60 ]'); + }; + + # Test boot parameters + subtest "bootparam", sub { + $machine->succeed('grep -Fq vsyscall=emulate /proc/cmdline'); }; ''; }) diff --git a/nixos/tests/mysql-backup.nix b/nixos/tests/mysql-backup.nix new file mode 100644 index 00000000000..f5bcc460cba --- /dev/null +++ b/nixos/tests/mysql-backup.nix @@ -0,0 +1,42 @@ +# Test whether mysqlBackup option works +import ./make-test.nix ({ pkgs, ... } : { + name = "mysql-backup"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ rvl ]; + }; + + nodes = { + master = { config, pkgs, ... }: { + services.mysql = { + enable = true; + initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; + package = pkgs.mysql; + }; + + services.mysqlBackup = { + enable = true; + databases = [ "doesnotexist" "testdb" ]; + }; + }; + }; + + testScript = + '' startAll; + + # Need to have mysql started so that it can be populated with data. + $master->waitForUnit("mysql.service"); + + # Wait for testdb to be populated. + $master->sleep(10); + + # Do a backup and wait for it to finish. + $master->startJob("mysql-backup.service"); + $master->waitForJob("mysql-backup.service"); + + # Check that data appears in backup + $master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"); + + # Check that a failed backup is logged + $master->succeed("journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null"); + ''; +}) diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix index b20bce8edce..75c6d793feb 100644 --- a/nixos/tests/mysql-replication.nix +++ b/nixos/tests/mysql-replication.nix @@ -56,11 +56,19 @@ in testScript = '' $master->start; $master->waitForUnit("mysql"); + $master->waitForOpenPort(3306); $slave1->start; $slave2->start; $slave1->waitForUnit("mysql"); + $slave1->waitForOpenPort(3306); $slave2->waitForUnit("mysql"); - $slave2->sleep(100); # Hopefully this is long enough!! + $slave2->waitForOpenPort(3306); $slave2->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4"); + $slave2->succeed("systemctl stop mysql"); + $master->succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N"); + $slave2->succeed("systemctl start mysql"); + $slave2->waitForUnit("mysql"); + $slave2->waitForOpenPort(3306); + $slave2->succeed("echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456"); ''; }) diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix index 74e20bff8d8..a12b7645bc2 100644 --- a/nixos/tests/nat.nix +++ b/nixos/tests/nat.nix @@ -6,6 +6,20 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false, ... }: let unit = if withFirewall then "firewall" else "nat"; + + routerBase = + lib.mkMerge [ + { virtualisation.vlans = [ 2 1 ]; + networking.firewall.enable = withFirewall; + networking.firewall.allowPing = true; + networking.nat.internalIPs = [ "192.168.1.0/24" ]; + networking.nat.externalInterface = "eth1"; + } + (lib.optionalAttrs withConntrackHelpers { + networking.firewall.connectionTrackingModules = [ "ftp" ]; + networking.firewall.autoLoadConntrackHelpers = true; + }) + ]; in { name = "nat" + (if withFirewall then "WithFirewall" else "Standalone") @@ -30,20 +44,16 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false, ]; router = - { config, pkgs, ... }: - lib.mkMerge [ - { virtualisation.vlans = [ 2 1 ]; - networking.firewall.enable = withFirewall; - networking.firewall.allowPing = true; - networking.nat.enable = true; - networking.nat.internalIPs = [ "192.168.1.0/24" ]; - networking.nat.externalInterface = "eth1"; - } - (lib.optionalAttrs withConntrackHelpers { - networking.firewall.connectionTrackingModules = [ "ftp" ]; - networking.firewall.autoLoadConntrackHelpers = true; - }) - ]; + { config, pkgs, ... }: lib.mkMerge [ + routerBase + { networking.nat.enable = true; } + ]; + + routerDummyNoNat = + { config, pkgs, ... }: lib.mkMerge [ + routerBase + { networking.nat.enable = false; } + ]; server = { config, pkgs, ... }: @@ -57,9 +67,13 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false, }; testScript = - { nodes, ... }: - '' - startAll; + { nodes, ... }: let + routerDummyNoNatClosure = nodes.routerDummyNoNat.config.system.build.toplevel; + routerClosure = nodes.router.config.system.build.toplevel; + in '' + $client->start; + $router->start; + $server->start; # The router should have access to the server. $server->waitForUnit("network.target"); @@ -87,13 +101,18 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false, $router->succeed("ping -c 1 client >&2"); # If we turn off NAT, the client shouldn't be able to reach the server. - $router->succeed("iptables -t nat -D PREROUTING -j nixos-nat-pre"); - $router->succeed("iptables -t nat -D POSTROUTING -j nixos-nat-post"); + $router->succeed("${routerDummyNoNatClosure}/bin/switch-to-configuration test 2>&1"); $client->fail("curl --fail --connect-timeout 5 http://server/ >&2"); $client->fail("ping -c 1 server >&2"); # And make sure that reloading the NAT job works. - $router->succeed("systemctl restart ${unit}"); + $router->succeed("${routerClosure}/bin/switch-to-configuration test 2>&1"); + # FIXME: this should not be necessary, but nat.service is not started because + # network.target is not triggered + # (https://github.com/NixOS/nixpkgs/issues/16230#issuecomment-226408359) + ${lib.optionalString (!withFirewall) '' + $router->succeed("systemctl start nat.service"); + ''} $client->succeed("curl --fail http://server/ >&2"); $client->succeed("ping -c 1 server >&2"); ''; diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix index 6a7e628d8ef..7708775f73f 100644 --- a/nixos/tests/networking.nix +++ b/nixos/tests/networking.nix @@ -105,7 +105,7 @@ let startAll; $client->waitForUnit("network.target"); - $router->waitForUnit("network.target"); + $router->waitForUnit("network-online.target"); # Make sure dhcpcd is not started $client->fail("systemctl status dhcpcd.service"); @@ -157,7 +157,7 @@ let startAll; $client->waitForUnit("network.target"); - $router->waitForUnit("network.target"); + $router->waitForUnit("network-online.target"); # Wait until we have an ip address on each interface $client->waitUntilSucceeds("ip addr show dev eth1 | grep -q '192.168.1'"); diff --git a/nixos/tests/nexus.nix b/nixos/tests/nexus.nix new file mode 100644 index 00000000000..1f19fc0867a --- /dev/null +++ b/nixos/tests/nexus.nix @@ -0,0 +1,34 @@ +# verifies: +# 1. nexus service starts on server +# 2. nexus user can be extended on server +# 3. nexus service not can startup on server (creating database and all other initial stuff) + +import ./make-test.nix ({ pkgs, ...} : { + name = "nexus"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ ironpinguin ]; + }; + + nodes = { + + server = + { config, pkgs, ... }: + { virtualisation.memorySize = 2048; + + services.nexus.enable = true; + + users.extraUsers.nexus.extraGroups = [ "users" ]; + }; + }; + + testScript = '' + startAll; + + $server->waitForUnit("nexus"); + + print $server->execute("sudo -u nexus groups"); + $server->mustSucceed("sudo -u nexus groups | grep nexus | grep users"); + + $server->waitForOpenPort(8081); + ''; +}) diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix index c2beb5590ef..7f7bc0f0b4f 100644 --- a/nixos/tests/nginx.nix +++ b/nixos/tests/nginx.nix @@ -3,7 +3,7 @@ # generated virtual hosts config. import ./make-test.nix ({ pkgs, ...} : { - name = "jenkins"; + name = "nginx"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ mbbx6spp ]; }; diff --git a/nixos/tests/pgjwt.nix b/nixos/tests/pgjwt.nix index 2cf2963ae31..d186c42a2a9 100644 --- a/nixos/tests/pgjwt.nix +++ b/nixos/tests/pgjwt.nix @@ -1,42 +1,37 @@ -import ./make-test.nix ({ pkgs, ...} : +import ./make-test.nix ({ pkgs, lib, ...}: let - test = pkgs.writeText "test.sql" '' - CREATE EXTENSION pgcrypto; - CREATE EXTENSION pgjwt; - select sign('{"sub":"1234567890","name":"John Doe","admin":true}', 'secret'); - select * from verify('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ', 'secret'); + test = with pkgs; runCommand "patch-test" { + nativeBuildInputs = [ pgjwt ]; + } + '' + sed -e '12 i CREATE EXTENSION pgcrypto;\nCREATE EXTENSION pgtap;\nSET search_path TO tap,public;' ${pgjwt.src}/test.sql > $out; ''; in -{ +with pkgs; { name = "pgjwt"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ spinus ]; + meta = with lib.maintainers; { + maintainers = [ spinus willibutz ]; }; nodes = { - master = - { pkgs, config, ... }: - - { - services.postgresql = let mypg = pkgs.postgresql95; in { - enable = true; - package = mypg; - extraPlugins =[pkgs.pgjwt]; - initialScript = pkgs.writeText "postgresql-init.sql" - '' - CREATE ROLE postgres WITH superuser login createdb; - ''; - }; + master = { pkgs, config, ... }: + { + services.postgresql = { + enable = true; + extraPlugins = [ pgjwt pgtap ]; }; + }; }; - testScript = '' + testScript = { nodes, ... }: + let + sqlSU = "${nodes.master.config.services.postgresql.superUser}"; + pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}"; + in + '' startAll; $master->waitForUnit("postgresql"); - $master->succeed("timeout 10 bash -c 'while ! psql postgres -c \"SELECT 1;\";do sleep 1;done;'"); - $master->succeed("cat ${test} | psql postgres"); - # I can't make original test working :[ - # $master->succeed("${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}/bin/pg_prove -d postgres ${pkgs.pgjwt.src}/test.sql"); - + $master->copyFileFromHost("${test}","/tmp/test.sql"); + $master->succeed("${pkgs.sudo}/bin/sudo -u ${sqlSU} PGOPTIONS=--search_path=tap,public ${pgProve}/bin/pg_prove -d postgres -v -f /tmp/test.sql"); ''; }) diff --git a/nixos/tests/pgmanage.nix b/nixos/tests/pgmanage.nix new file mode 100644 index 00000000000..110cbd5c5b4 --- /dev/null +++ b/nixos/tests/pgmanage.nix @@ -0,0 +1,39 @@ +import ./make-test.nix ({ pkgs, ... } : +let + role = "test"; + password = "secret"; + conn = "local"; +in +{ + name = "pgmanage"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ basvandijk ]; + }; + nodes = { + one = { config, pkgs, ... }: { + services = { + postgresql = { + enable = true; + initialScript = pkgs.writeText "pg-init-script" '' + CREATE ROLE ${role} SUPERUSER LOGIN PASSWORD '${password}'; + ''; + }; + pgmanage = { + enable = true; + connections = { + "${conn}" = "hostaddr=127.0.0.1 port=${toString config.services.postgresql.port} dbname=postgres"; + }; + }; + }; + }; + }; + + testScript = '' + startAll; + $one->waitForUnit("default.target"); + $one->requireActiveUnit("pgmanage.service"); + + # Test if we can log in. + $one->waitUntilSucceeds("curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail"); + ''; +}) diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix index f561fc8c3c4..f3bd4c5915b 100644 --- a/nixos/tests/plasma5.nix +++ b/nixos/tests/plasma5.nix @@ -13,6 +13,14 @@ import ./make-test.nix ({ pkgs, ...} : services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.default = "plasma5"; virtualisation.memorySize = 1024; + + # fontconfig-penultimate-0.3.3 -> 0.3.4 broke OCR apparently, but no idea why. + nixpkgs.config.packageOverrides = superPkgs: { + fontconfig-penultimate = superPkgs.fontconfig-penultimate.override { + version = "0.3.3"; + sha256 = "1z76jbkb0nhf4w7fy647yyayqr4q02fgk6w58k0yi700p0m3h4c9"; + }; + }; }; enableOCR = true; diff --git a/nixos/tests/postgis.nix b/nixos/tests/postgis.nix index 1dba5c363c0..f6ce3fe38ed 100644 --- a/nixos/tests/postgis.nix +++ b/nixos/tests/postgis.nix @@ -9,15 +9,11 @@ import ./make-test.nix ({ pkgs, ...} : { { pkgs, config, ... }: { - services.postgresql = let mypg = pkgs.postgresql95; in { + services.postgresql = let mypg = pkgs.postgresql100; in { enable = true; package = mypg; - extraPlugins = [ (pkgs.postgis.override { postgresql = mypg; }).v_2_2_1 ]; - initialScript = pkgs.writeText "postgresql-init.sql" - '' - CREATE ROLE postgres WITH superuser login createdb; - ''; - }; + extraPlugins = [ (pkgs.postgis.override { postgresql = mypg; }).v_2_4_0 ]; + }; }; }; diff --git a/nixos/tests/postgresql.nix b/nixos/tests/postgresql.nix index 1f4f43a2666..0ce37b55bb7 100644 --- a/nixos/tests/postgresql.nix +++ b/nixos/tests/postgresql.nix @@ -13,8 +13,10 @@ let INSERT INTO sth (id) VALUES (1); INSERT INTO sth (id) VALUES (1); INSERT INTO sth (id) VALUES (1); + CREATE TABLE xmltest ( doc xml ); + INSERT INTO xmltest (doc) VALUES ('ok'); -- check if libxml2 enabled ''; - make-postgresql-test = postgresql-name: postgresql-package: { + make-postgresql-test = postgresql-name: postgresql-package: makeTest { name = postgresql-name; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ zagy ]; @@ -27,17 +29,23 @@ let }; testScript = '' + sub check_count { + my ($select, $nlines) = @_; + return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines; + } + $machine->start; $machine->waitForUnit("postgresql"); # postgresql should be available just after unit start - $machine->succeed("cat ${test-sql} | psql postgres"); + $machine->succeed("cat ${test-sql} | sudo -u postgres psql"); $machine->shutdown; # make sure that postgresql survive restart (bug #1735) sleep(2); $machine->start; $machine->waitForUnit("postgresql"); - $machine->fail('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 3'); - $machine->succeed('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 5'); - $machine->fail('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 4'); + $machine->fail(check_count("SELECT * FROM sth;", 3)); + $machine->succeed(check_count("SELECT * FROM sth;", 5)); + $machine->fail(check_count("SELECT * FROM sth;", 4)); + $machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1)); $machine->shutdown; ''; diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix index ade097597bb..374fb2d634b 100644 --- a/nixos/tests/prometheus.nix +++ b/nixos/tests/prometheus.nix @@ -5,9 +5,6 @@ import ./make-test.nix { one = { config, pkgs, ... }: { services.prometheus = { enable = true; - globalConfig = { - labels = { foo = "bar"; }; - }; scrapeConfigs = [{ job_name = "prometheus"; static_configs = [{ diff --git a/nixos/tests/radicale.nix b/nixos/tests/radicale.nix new file mode 100644 index 00000000000..f694fc75ef7 --- /dev/null +++ b/nixos/tests/radicale.nix @@ -0,0 +1,106 @@ +let + user = "someuser"; + password = "some_password"; + port = builtins.toString 5232; + + common = { pkgs, ... }: { + services.radicale = { + enable = true; + config = '' + [auth] + type = htpasswd + htpasswd_filename = /etc/radicale/htpasswd + htpasswd_encryption = bcrypt + + [storage] + filesystem_folder = /tmp/collections + + [logging] + debug = True + ''; + }; + # WARNING: DON'T DO THIS IN PRODUCTION! + # This puts secrets (albeit hashed) directly into the Nix store for ease of testing. + environment.etc."radicale/htpasswd".source = pkgs.runCommand "htpasswd" {} '' + ${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password} + ''; + }; + +in + + import ./make-test.nix ({ pkgs, lib, ... }@args: { + name = "radicale"; + meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ]; + + nodes = rec { + radicale = radicale1; # Make the test script read more nicely + radicale1 = lib.recursiveUpdate (common args) { + nixpkgs.overlays = [ + (self: super: { + radicale1 = super.radicale1.overrideAttrs (oldAttrs: { + propagatedBuildInputs = with self.pythonPackages; + (oldAttrs.propagatedBuildInputs or []) ++ [ passlib ]; + }); + }) + ]; + system.stateVersion = "17.03"; + }; + radicale1_export = lib.recursiveUpdate radicale1 { + services.radicale.extraArgs = [ + "--export-storage" "/tmp/collections-new" + ]; + }; + radicale2_verify = lib.recursiveUpdate radicale2 { + services.radicale.extraArgs = [ "--verify-storage" ]; + }; + radicale2 = lib.recursiveUpdate (common args) { + system.stateVersion = "17.09"; + }; + }; + + # This tests whether the web interface is accessible to an authenticated user + testScript = { nodes }: let + switchToConfig = nodeName: let + newSystem = nodes.${nodeName}.config.system.build.toplevel; + in "${newSystem}/bin/switch-to-configuration test"; + in '' + # Check Radicale 1 functionality + $radicale->succeed('${switchToConfig "radicale1"} >&2'); + $radicale->waitForUnit('radicale.service'); + $radicale->waitForOpenPort(${port}); + $radicale->succeed('curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/'); + + # Export data in Radicale 2 format + $radicale->succeed('systemctl stop radicale'); + $radicale->succeed('ls -al /tmp/collections'); + $radicale->fail('ls -al /tmp/collections-new'); + # Radicale exits immediately after exporting storage + $radicale->succeed('${switchToConfig "radicale1_export"} >&2'); + $radicale->waitUntilFails('systemctl status radicale'); + $radicale->succeed('ls -al /tmp/collections'); + $radicale->succeed('ls -al /tmp/collections-new'); + + # Verify data in Radicale 2 format + $radicale->succeed('rm -r /tmp/collections/${user}'); + $radicale->succeed('mv /tmp/collections-new/collection-root /tmp/collections'); + $radicale->succeed('${switchToConfig "radicale2_verify"} >&2'); + $radicale->waitUntilFails('systemctl status radicale'); + my ($retcode, $logs) = $radicale->execute('journalctl -u radicale -n 5'); + if ($retcode != 0 || index($logs, 'Verifying storage') == -1) { + die "Radicale 2 didn't verify storage" + } + if (index($logs, 'failed') != -1 || index($logs, 'exception') != -1) { + die "storage verification failed" + } + + # Check Radicale 2 functionality + $radicale->succeed('${switchToConfig "radicale2"} >&2'); + $radicale->waitForUnit('radicale.service'); + $radicale->waitForOpenPort(${port}); + my ($retcode, $output) = $radicale->execute('curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/'); + if ($retcode != 0 || index($output, 'VCALENDAR') == -1) { + die "Could not read calendar from Radicale 2" + } + $radicale->succeed('curl --fail http://${user}:${password}@localhost:${port}/.web/'); + ''; +}) diff --git a/nixos/tests/run-in-machine.nix b/nixos/tests/run-in-machine.nix index d1102f8d407..a6dfece44a9 100644 --- a/nixos/tests/run-in-machine.nix +++ b/nixos/tests/run-in-machine.nix @@ -2,7 +2,16 @@ with import ../lib/testing.nix { inherit system; }; -runInMachine { - drv = pkgs.hello; - machine = { config, pkgs, ... }: { /* services.sshd.enable = true; */ }; -} +let + output = runInMachine { + drv = pkgs.hello; + machine = { config, pkgs, ... }: { /* services.sshd.enable = true; */ }; + }; +in pkgs.runCommand "verify-output" { inherit output; } '' + if [ ! -e "$output/bin/hello" ]; then + echo "Derivation built using runInMachine produced incorrect output:" >&2 + ls -laR "$output" >&2 + exit 1 + fi + "$output/bin/hello" > "$out" +'' diff --git a/nixos/tests/sddm.nix b/nixos/tests/sddm.nix index 82be9bc1d72..1ce2b815784 100644 --- a/nixos/tests/sddm.nix +++ b/nixos/tests/sddm.nix @@ -24,7 +24,7 @@ let user = nodes.machine.config.users.extraUsers.alice; in '' startAll; - $machine->waitForText(qr/ALICE/); + $machine->waitForText(qr/select your user/i); $machine->screenshot("sddm"); $machine->sendChars("${user.password}\n"); $machine->waitForFile("/home/alice/.Xauthority"); diff --git a/nixos/tests/slim.nix b/nixos/tests/slim.nix new file mode 100644 index 00000000000..7b939d83638 --- /dev/null +++ b/nixos/tests/slim.nix @@ -0,0 +1,66 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "slim"; + + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ aszlig ]; + }; + + machine = { pkgs, lib, ... }: { + imports = [ ./common/user-account.nix ]; + services.xserver.enable = true; + services.xserver.windowManager.default = "icewm"; + services.xserver.windowManager.icewm.enable = true; + services.xserver.desktopManager.default = "none"; + services.xserver.displayManager.slim = { + enable = true; + + # Use a custom theme in order to get best OCR results + theme = pkgs.runCommand "slim-theme-ocr" { + nativeBuildInputs = [ pkgs.imagemagick ]; + } '' + mkdir "$out" + convert -size 1x1 xc:white "$out/background.jpg" + convert -size 200x100 xc:white "$out/panel.jpg" + cat > "$out/slim.theme" <waitForText(qr/Username:/); + $machine->sendChars("${user.name}\n"); + $machine->waitForText(qr/Password:/); + $machine->sendChars("${user.password}\n"); + + $machine->waitForFile('${user.home}/.Xauthority'); + $machine->succeed('xauth merge ${user.home}/.Xauthority'); + $machine->waitForWindow('^IceWM '); + + # Make sure SLiM doesn't create a log file + $machine->fail('test -e /var/log/slim.log'); + ''; +}) diff --git a/nixos/tests/snapper.nix b/nixos/tests/snapper.nix new file mode 100644 index 00000000000..74ec22fd349 --- /dev/null +++ b/nixos/tests/snapper.nix @@ -0,0 +1,43 @@ +import ./make-test.nix ({ ... }: +{ + name = "snapper"; + + machine = { pkgs, lib, ... }: { + boot.initrd.postDeviceCommands = '' + ${pkgs.btrfs-progs}/bin/mkfs.btrfs -f -L aux /dev/vdb + ''; + + virtualisation.emptyDiskImages = [ 4096 ]; + + fileSystems = lib.mkVMOverride { + "/home" = { + device = "/dev/disk/by-label/aux"; + fsType = "btrfs"; + }; + }; + services.snapper.configs.home.subvolume = "/home"; + services.snapper.filters = "/nix"; + }; + + testScript = '' + $machine->succeed("btrfs subvolume create /home/.snapshots"); + + $machine->succeed("snapper -c home list"); + + $machine->succeed("snapper -c home create --description empty"); + + $machine->succeed("echo test > /home/file"); + $machine->succeed("snapper -c home create --description file"); + + $machine->succeed("snapper -c home status 1..2"); + + $machine->succeed("snapper -c home undochange 1..2"); + $machine->fail("ls /home/file"); + + $machine->succeed("snapper -c home delete 2"); + + $machine->succeed("systemctl --wait start snapper-timeline.service"); + + $machine->succeed("systemctl --wait start snapper-cleanup.service"); + ''; +}) diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix index cdccb11d888..75be97a507d 100644 --- a/nixos/tests/taskserver.nix +++ b/nixos/tests/taskserver.nix @@ -246,6 +246,10 @@ in { }; subtest "check manual configuration", sub { + # Remove the keys from automatic CA creation, to make sure the new + # generation doesn't use keys from before. + $server->succeed('rm -rf ${cfg.dataDir}/keys/* >&2'); + $server->succeed('${switchToNewServer} >&2'); $server->waitForUnit("taskserver.service"); $server->waitForOpenPort(${portStr}); diff --git a/nixos/tests/testdb.sql b/nixos/tests/testdb.sql index 4fb28fea3df..3c68c49ae82 100644 --- a/nixos/tests/testdb.sql +++ b/nixos/tests/testdb.sql @@ -8,3 +8,4 @@ insert into tests values (1, 'a'); insert into tests values (2, 'b'); insert into tests values (3, 'c'); insert into tests values (4, 'd'); +insert into tests values (5, 'hello'); diff --git a/nixos/tests/timezone.nix b/nixos/tests/timezone.nix new file mode 100644 index 00000000000..2204649a3fc --- /dev/null +++ b/nixos/tests/timezone.nix @@ -0,0 +1,45 @@ +{ + timezone-static = import ./make-test.nix ({ pkgs, ... }: { + name = "timezone-static"; + meta.maintainers = with pkgs.lib.maintainers; [ lheckemann ]; + + machine.time.timeZone = "Europe/Amsterdam"; + + testScript = '' + $machine->waitForUnit("dbus.socket"); + $machine->fail("timedatectl set-timezone Asia/Tokyo"); + my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); + $dateResult[1] eq "1970-01-01 01:00:00\n" or die "Timezone seems to be wrong"; + ''; + }); + + timezone-imperative = import ./make-test.nix ({ pkgs, ... }: { + name = "timezone-imperative"; + meta.maintainers = with pkgs.lib.maintainers; [ lheckemann ]; + + machine.time.timeZone = null; + + testScript = '' + $machine->waitForUnit("dbus.socket"); + + # Should default to UTC + my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); + print $dateResult[1]; + $dateResult[1] eq "1970-01-01 00:00:00\n" or die "Timezone seems to be wrong"; + + $machine->succeed("timedatectl set-timezone Asia/Tokyo"); + + # Adjustment should be taken into account + my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); + print $dateResult[1]; + $dateResult[1] eq "1970-01-01 09:00:00\n" or die "Timezone was not adjusted"; + + # Adjustment should persist across a reboot + $machine->shutdown; + $machine->waitForUnit("dbus.socket"); + my @dateResult = $machine->execute('date -d @0 "+%Y-%m-%d %H:%M:%S"'); + print $dateResult[1]; + $dateResult[1] eq "1970-01-01 09:00:00\n" or die "Timezone adjustment was not persisted"; + ''; + }); +} diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix index d426bbde68d..5da5717d7f8 100644 --- a/nixos/tests/trac.nix +++ b/nixos/tests/trac.nix @@ -17,7 +17,7 @@ import ./make-test.nix ({ pkgs, ... }: { postgresql = { config, pkgs, ... }: { services.postgresql.enable = true; - services.postgresql.package = pkgs.postgresql92; + services.postgresql.package = pkgs.postgresql; services.postgresql.enableTCPIP = true; services.postgresql.authentication = '' # Generated file; do not edit! diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix index 4f7cb176d96..c519d7dae8b 100644 --- a/nixos/tests/virtualbox.nix +++ b/nixos/tests/virtualbox.nix @@ -107,8 +107,8 @@ let buildInputs = [ pkgs.utillinux pkgs.perl ]; } '' - ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos - ${pkgs.parted}/sbin/parted /dev/vda -- mkpart primary ext2 1M -1s + ${pkgs.parted}/sbin/parted --script /dev/vda mklabel msdos + ${pkgs.parted}/sbin/parted --script /dev/vda -- mkpart primary ext2 1M -1s . /sys/class/block/vda1/uevent mknod /dev/vda1 b $MAJOR $MINOR @@ -461,11 +461,11 @@ in mapAttrs mkVBoxTest { my $test1IP = waitForIP_test1 1; my $test2IP = waitForIP_test2 1; - $machine->succeed("echo '$test2IP' | nc '$test1IP' 1234"); - $machine->succeed("echo '$test1IP' | nc '$test2IP' 1234"); + $machine->succeed("echo '$test2IP' | nc -N '$test1IP' 1234"); + $machine->succeed("echo '$test1IP' | nc -N '$test2IP' 1234"); - $machine->waitUntilSucceeds("nc '$test1IP' 5678 >&2"); - $machine->waitUntilSucceeds("nc '$test2IP' 5678 >&2"); + $machine->waitUntilSucceeds("nc -N '$test1IP' 5678 < /dev/null >&2"); + $machine->waitUntilSucceeds("nc -N '$test2IP' 5678 < /dev/null >&2"); shutdownVM_test1; shutdownVM_test2; diff --git a/nixos/tests/xmonad.nix b/nixos/tests/xmonad.nix new file mode 100644 index 00000000000..3ea455c393c --- /dev/null +++ b/nixos/tests/xmonad.nix @@ -0,0 +1,29 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "xmonad"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { lib, pkgs, ... }: { + imports = [ ./common/x11.nix ./common/user-account.nix ]; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.windowManager.default = lib.mkForce "xmonad"; + services.xserver.windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ]; + }; + }; + + testScript = { nodes, ... }: '' + $machine->waitForX; + $machine->waitForFile("/home/alice/.Xauthority"); + $machine->succeed("xauth merge ~alice/.Xauthority"); + $machine->waitUntilSucceeds("xmonad --restart"); + $machine->sleep(3); + $machine->sendKeys("alt-shift-ret"); + $machine->waitForWindow(qr/machine.*alice/); + $machine->sleep(1); + $machine->screenshot("terminal"); + ''; +}) diff --git a/nixos/tests/xrdp.nix b/nixos/tests/xrdp.nix new file mode 100644 index 00000000000..c997e36cc44 --- /dev/null +++ b/nixos/tests/xrdp.nix @@ -0,0 +1,45 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "xrdp"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ volth ]; + }; + + nodes = { + server = { lib, pkgs, ... }: { + imports = [ ./common/user-account.nix ]; + services.xrdp.enable = true; + services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm"; + networking.firewall.allowedTCPPorts = [ 3389 ]; + }; + + client = { lib, pkgs, ... }: { + imports = [ ./common/x11.nix ./common/user-account.nix ]; + services.xserver.displayManager.auto.user = "alice"; + environment.systemPackages = [ pkgs.freerdp ]; + services.xrdp.enable = true; + services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm"; + }; + }; + + testScript = { nodes, ... }: '' + startAll; + + $client->waitForX; + $client->waitForFile("/home/alice/.Xauthority"); + $client->succeed("xauth merge ~alice/.Xauthority"); + + $client->sleep(5); + + $client->execute("xterm &"); + $client->sleep(1); + $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:alice /p:foobar\n"); + $client->sleep(5); + $client->screenshot("localrdp"); + + $client->execute("xterm &"); + $client->sleep(1); + $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:alice /p:foobar\n"); + $client->sleep(5); + $client->screenshot("remoterdp"); + ''; +}) diff --git a/pkgs/applications/altcoins/bitcoin-abc.nix b/pkgs/applications/altcoins/bitcoin-abc.nix new file mode 100644 index 00000000000..a113aadcd62 --- /dev/null +++ b/pkgs/applications/altcoins/bitcoin-abc.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent +, withGui }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "bitcoin-ABC"; + repo = "bitcoin-abc"; + rev = "v${version}"; + sha256 = "1fygn6cc99iasg5g5jyps5ps873hfnn4ln4hsmcwlwiqd591qxyv"; + }; + + patches = [ ./fix-bitcoin-qt-build.patch ]; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc utillinux protobuf libevent ] + ++ optionals withGui [ qtbase qttools qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt5" ]; + + meta = { + description = "Peer-to-peer electronic cash system (Cash client)"; + longDescription= '' + Bitcoin ABC is the name of open source software which enables the use of Bitcoin. + It is designed to facilite a hard fork to increase Bitcoin's block size limit. + "ABC" stands for "Adjustable Blocksize Cap". + + Bitcoin ABC is a fork of the Bitcoin Core software project. + ''; + homepage = https://bitcoinabc.org/; + maintainers = with maintainers; [ lassulus ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/bitcoin-classic.nix b/pkgs/applications/altcoins/bitcoin-classic.nix index 50a011e0057..9a2145d91cf 100644 --- a/pkgs/applications/altcoins/bitcoin-classic.nix +++ b/pkgs/applications/altcoins/bitcoin-classic.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost -, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent +, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, qrencode, libevent , withGui }: with stdenv.lib; @@ -7,22 +7,24 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "bitcoin" + (toString (optional (!withGui) "d")) + "-classic-" + version; - version = "1.2.3"; + version = "1.3.6"; src = fetchFromGitHub { owner = "bitcoinclassic"; repo = "bitcoinclassic"; rev = "v${version}"; - sha256 = "0y99c8zv42ps3pxp46p3fqj9sir580v7s5qyi3cxva12mq2z0cql"; + sha256 = "129gkg035gv7zmc463jl2spvdh0fl4q8v4jdaslfnp34hbwi1p07"; }; + patches = [ ./fix-bitcoin-qt-build.patch ]; + nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ openssl db48 boost zlib miniupnpc utillinux protobuf libevent ] - ++ optionals withGui [ qt4 qrencode ]; + ++ optionals withGui [ qtbase qttools qrencode ]; configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] - ++ optionals withGui [ "--with-gui=qt4" ]; + ++ optionals withGui [ "--with-gui=qt5" ]; meta = { description = "Peer-to-peer electronic cash system (Classic client)"; @@ -32,11 +34,13 @@ stdenv.mkDerivation rec { parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to check for double-spending. - We call our code repository Bitcoin Classic. It starts as a one-feature patch - to bitcoin-core that increases the blocksize limit to 2 MB. We will have - ports for master and 0.11.2, so that miners and businesses can upgrade to 2 MB - blocks from any recent bitcoin software version they run. In the future we will - continue to release updates that are in line with Satoshi’s whitepaper & + Bitcoin Classic stands for the original Bitcoin as Satoshi described it, + "A Peer-to-Peer Electronic Cash System". We are writing the software that + miners and users say they want. We will make sure it solves their needs, help + them deploy it, and gracefully upgrade the bitcoin network's capacity + together. The data shows that Bitcoin can grow, on-chain, to welcome many + more users onto our coin in a safe and distributed manner. In the future we + will continue to release updates that are in line with Satoshi’s whitepaper & vision, and are agreed upon by the community. ''; homepage = https://bitcoinclassic.com/; diff --git a/pkgs/applications/altcoins/bitcoin-unlimited.nix b/pkgs/applications/altcoins/bitcoin-unlimited.nix index b6d0739c6bf..9eb1e54b909 100644 --- a/pkgs/applications/altcoins/bitcoin-unlimited.nix +++ b/pkgs/applications/altcoins/bitcoin-unlimited.nix @@ -7,13 +7,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version; - version = "1.0.1.3"; + version = "1.0.2.0"; src = fetchFromGitHub { owner = "bitcoinunlimited"; repo = "bitcoinunlimited"; - rev = "${version}"; - sha256 = "177l2jf2yqxh3sgf80dhgyk3wgjdnqszy3hb83clk8q1wyjkfz7y"; + rev = "v${version}"; + sha256 = "17cmyns1908s2rqs0zwr05f3541nqm2pg08n2xn97g2k3yimdg5q"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; diff --git a/pkgs/applications/altcoins/bitcoin-xt.nix b/pkgs/applications/altcoins/bitcoin-xt.nix index be4ea1fd6b6..38867619804 100644 --- a/pkgs/applications/altcoins/bitcoin-xt.nix +++ b/pkgs/applications/altcoins/bitcoin-xt.nix @@ -1,22 +1,22 @@ { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost -, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl +, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl, libevent , withGui }: with stdenv.lib; stdenv.mkDerivation rec{ name = "bitcoin" + (toString (optional (!withGui) "d")) + "-xt-" + version; - version = "0.11F"; + version = "0.11G2"; src = fetchFromGitHub { owner = "bitcoinxt"; repo = "bitcoinxt"; rev = "v${version}"; - sha256 = "13s5k9mxmlbf49p5hc546x20y5dslfp6g9hi6nw5yja5bngbwr24"; + sha256 = "071rljvsabyc9j64v248qfb7zfqpfl84hpsnvlavin235zljq8qs"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; - buildInputs = [ openssl db48 boost zlib + buildInputs = [ openssl db48 boost zlib libevent miniupnpc utillinux protobuf curl ] ++ optionals withGui [ qt4 qrencode ]; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec{ Core release, applying a series of patches, and then doing deterministic builds so anyone can check the downloads correspond to the source code. ''; - homepage = "https://bitcoinxt.software/"; + homepage = https://bitcoinxt.software/; maintainers = with maintainers; [ jefdaj ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/altcoins/bitcoin.nix b/pkgs/applications/altcoins/bitcoin.nix index ddbe7104f1d..23c9ffe3a09 100644 --- a/pkgs/applications/altcoins/bitcoin.nix +++ b/pkgs/applications/altcoins/bitcoin.nix @@ -5,13 +5,11 @@ with stdenv.lib; stdenv.mkDerivation rec{ name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version; - version = "0.14.0"; + version = "0.15.0.1"; src = fetchurl { - urls = [ "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" - "mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${version}/bitcoin-${version}.tar.gz" - ]; - sha256 = "07k4i9r033dsvkp5ii5g3hykidm8b19c8c0mz1bi8k0dda3d8hyp"; + url = "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"; + sha256 = "16si3skhm6jhw1pkniv2b9y1kkdhjmhj392palphir0qc1srwzmm"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; @@ -31,7 +29,7 @@ stdenv.mkDerivation rec{ parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to check for double-spending. ''; - homepage = "http://www.bitcoin.org/"; + homepage = http://www.bitcoin.org/; maintainers = with maintainers; [ roconnor AndersonTorres ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/altcoins/btc1.nix b/pkgs/applications/altcoins/btc1.nix new file mode 100644 index 00000000000..8ade6fb5251 --- /dev/null +++ b/pkgs/applications/altcoins/btc1.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec{ + name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.14.5"; + + src = fetchurl { + url = "https://github.com/btc1/bitcoin/archive/v${version}.tar.gz"; + sha256 = "1az6bbblh3adgcs16r9cjz8jacg6sbwfpg8zzfzkbp9h9j85ass5"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc protobuf libevent] + ++ optionals stdenv.isLinux [ utillinux ] + ++ optionals withGui [ qt4 qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt4" ]; + + meta = { + description = "Peer-to-peer electronic cash system (btc1 client)"; + longDescription= '' + Bitcoin is a free open source peer-to-peer electronic cash system that is + completely decentralized, without the need for a central server or trusted + parties. Users hold the crypto keys to their own money and transact directly + with each other, with the help of a P2P network to check for double-spending. + + btc1 is an implementation of a Bitcoin full node with segwit2x hard fork + support. + ''; + homepage = "https://github.com/btc1/bitcoin"; + license = licenses.mit; + maintainers = with maintainers; [ sorpaas ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/cryptop/default.nix b/pkgs/applications/altcoins/cryptop/default.nix new file mode 100644 index 00000000000..0136ab18cea --- /dev/null +++ b/pkgs/applications/altcoins/cryptop/default.nix @@ -0,0 +1,24 @@ +{ lib, python2}: + +python2.pkgs.buildPythonApplication rec { + pname = "cryptop"; + version = "0.1.0"; + name = "${pname}-${version}"; + + src = python2.pkgs.fetchPypi { + inherit pname version; + sha256 = "00glnlyig1aajh30knc5rnfbamwfxpg29js2db6mymjmfka8lbhh"; + }; + + propagatedBuildInputs = [ python2.pkgs.requests ]; + + # No tests in archive + doCheck = false; + + meta = { + homepage = https://github.com/huwwp/cryptop; + description = "Command line Cryptocurrency Portfolio"; + license = with lib.licenses; [ mit ]; + maintainers = with lib.maintainers; [ bhipple ]; + }; +} diff --git a/pkgs/applications/altcoins/dapp.nix b/pkgs/applications/altcoins/dapp.nix new file mode 100644 index 00000000000..6ad66a24397 --- /dev/null +++ b/pkgs/applications/altcoins/dapp.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper +, seth, git, solc, shellcheck, nodejs, hevm }: + +stdenv.mkDerivation rec { + name = "dapp"; + version = "0.5.7"; + + src = fetchFromGitHub { + owner = "dapphub"; + repo = "dapp"; + rev = "v${version}"; + sha256 = "128f35hczarihb263as391wr9zbyc1q1p49qbxh30via23r1brb0"; + }; + + nativeBuildInputs = [makeWrapper shellcheck]; + buildPhase = "true"; + doCheck = true; + checkPhase = "make test"; + makeFlags = ["prefix=$(out)"]; + postInstall = let path = lib.makeBinPath [ + nodejs solc git seth hevm + ]; in '' + wrapProgram "$out/bin/dapp" --prefix PATH : "${path}" + ''; + + meta = { + description = "Simple tool for creating Ethereum-based dapps"; + homepage = https://github.com/dapphub/dapp/; + maintainers = [stdenv.lib.maintainers.dbrock]; + license = lib.licenses.gpl3; + inherit version; + }; +} diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix index 4386ebe4a91..1a21efc3232 100644 --- a/pkgs/applications/altcoins/default.nix +++ b/pkgs/applications/altcoins/default.nix @@ -1,26 +1,36 @@ -{ callPackage, pkgs }: +{ callPackage, boost155, boost162, openssl_1_1_0, haskellPackages, darwin, libsForQt5 }: rec { bitcoin = callPackage ./bitcoin.nix { withGui = true; }; bitcoind = callPackage ./bitcoin.nix { withGui = false; }; + bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { withGui = true; }; + bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; }; + bitcoin-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = true; }; bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = false; }; - bitcoin-classic = callPackage ./bitcoin-classic.nix { withGui = true; }; + bitcoin-classic = libsForQt5.callPackage ./bitcoin-classic.nix { withGui = true; }; bitcoind-classic = callPackage ./bitcoin-classic.nix { withGui = false; }; bitcoin-xt = callPackage ./bitcoin-xt.nix { withGui = true; }; bitcoind-xt = callPackage ./bitcoin-xt.nix { withGui = false; }; + btc1 = callPackage ./btc1.nix { withGui = true; }; + btc1d = callPackage ./btc1.nix { withGui = false; }; + dashpay = callPackage ./dashpay.nix { }; dogecoin = callPackage ./dogecoin.nix { withGui = true; }; dogecoind = callPackage ./dogecoin.nix { withGui = false; }; - freicoin = callPackage ./freicoin.nix { boost = pkgs.boost155; }; - go-ethereum = callPackage ./go-ethereum.nix { }; + freicoin = callPackage ./freicoin.nix { boost = boost155; }; + go-ethereum = callPackage ./go-ethereum.nix { + inherit (darwin) libobjc; + inherit (darwin.apple_sdk.frameworks) IOKit; + }; + go-ethereum-classic = callPackage ./go-ethereum-classic { }; hivemind = callPackage ./hivemind.nix { withGui = true; }; hivemindd = callPackage ./hivemind.nix { withGui = false; }; @@ -31,14 +41,23 @@ rec { memorycoin = callPackage ./memorycoin.nix { withGui = true; }; memorycoind = callPackage ./memorycoin.nix { withGui = false; }; - namecoin = callPackage ./namecoin.nix { inherit namecoind; }; - namecoind = callPackage ./namecoind.nix { }; + namecoin = callPackage ./namecoin.nix { withGui = true; }; + namecoind = callPackage ./namecoin.nix { withGui = false; }; ethabi = callPackage ./ethabi.nix { }; ethrun = callPackage ./ethrun.nix { }; + seth = callPackage ./seth.nix { }; + dapp = callPackage ./dapp.nix { }; + + hevm = (haskellPackages.callPackage ./hevm.nix {}); primecoin = callPackage ./primecoin.nix { withGui = true; }; primecoind = callPackage ./primecoin.nix { withGui = false; }; stellar-core = callPackage ./stellar-core.nix { }; + + zcash = callPackage ./zcash { + withGui = false; + openssl = openssl_1_1_0; + }; } diff --git a/pkgs/applications/altcoins/dogecoin.nix b/pkgs/applications/altcoins/dogecoin.nix index d8df6dd8349..33c2e598fca 100644 --- a/pkgs/applications/altcoins/dogecoin.nix +++ b/pkgs/applications/altcoins/dogecoin.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation rec { owner = "dogecoin"; repo = "dogecoin"; rev = "v${version}"; - sha256 = "16q3rldj04hkzzjd23h0knszqr5dgixizy4iyc129mz8wa8pbnvy"; + sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; - buildInputs = [ openssl db5 openssl utillinux + buildInputs = [ openssl db5 openssl utillinux protobuf boost zlib miniupnpc ] ++ optionals withGui [ qt4 qrencode ]; diff --git a/pkgs/applications/altcoins/ethabi.nix b/pkgs/applications/altcoins/ethabi.nix index d2532e0d41e..e8fb1c49828 100644 --- a/pkgs/applications/altcoins/ethabi.nix +++ b/pkgs/applications/altcoins/ethabi.nix @@ -13,7 +13,9 @@ buildRustPackage rec { sha256 = "1rg7ydvnhlg8w6blilm3cv6v4q51x1hgrbkln2ikhpdq0vakp5fd"; }; - depsSha256 = "1n4rxipna307r4xppb2iaads7kpa3yjv99fimvpn8l0f999ir2rz"; + cargoSha256 = "0i9617qwc6d4jvlbydwk03rcsnyvxzpbn2ms10ds4r6x7jy2a4sy"; + + cargoBuildFlags = ["--features cli"]; meta = { description = "Ethereum function call encoding (ABI) utility"; diff --git a/pkgs/applications/altcoins/ethrun.nix b/pkgs/applications/altcoins/ethrun.nix index f61a5884fd4..2a8c37610db 100644 --- a/pkgs/applications/altcoins/ethrun.nix +++ b/pkgs/applications/altcoins/ethrun.nix @@ -13,12 +13,13 @@ buildRustPackage rec { sha256 = "1w651g4p2mc4ljp20l8lwvfx3l3fzyp6gf2izr85vyb1wjbaccqn"; }; - depsSha256 = "14x8pbjgkz0g724lnvd9mi2alqd6fipjljw6xsraf9gqwijn1knq"; + cargoSha256 = "14x8pbjgkz0g724lnvd9mi2alqd6fipjljw6xsraf9gqwijn1kn0"; meta = { description = "Directly run Ethereum bytecode"; homepage = https://github.com/dapphub/ethrun/; maintainers = [stdenv.lib.maintainers.dbrock]; + broken = true; # mark temporary as broken inherit version; }; } diff --git a/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch b/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch new file mode 100644 index 00000000000..cbbfd85fe5b --- /dev/null +++ b/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch @@ -0,0 +1,15 @@ +--- bitcoin-abc-v0.15.0-src/build-aux/m4/bitcoin_qt.m4 1970-01-01 01:00:01.000000000 +0100 ++++ bitcoin-abc-v0.15.0-src.org/build-aux/m4/bitcoin_qt.m4 2017-09-27 23:38:44.748384197 +0100 +@@ -35,11 +35,7 @@ + dnl Output: $1 is set to the path of $2 if found. $2 are searched in order. + AC_DEFUN([BITCOIN_QT_PATH_PROGS],[ + BITCOIN_QT_CHECK([ +- if test "x$3" != "x"; then +- AC_PATH_PROGS($1,$2,,$3) +- else +- AC_PATH_PROGS($1,$2) +- fi ++ AC_PATH_PROGS($1,$2) + if test "x$$1" = "x" && test "x$4" != "xyes"; then + BITCOIN_QT_FAIL([$1 not found]) + fi diff --git a/pkgs/applications/altcoins/freicoin.nix b/pkgs/applications/altcoins/freicoin.nix index f7cd04f1be4..a44dbbd62ce 100644 --- a/pkgs/applications/altcoins/freicoin.nix +++ b/pkgs/applications/altcoins/freicoin.nix @@ -11,16 +11,20 @@ stdenv.mkDerivation rec { sha256 = "1m5pcnfhwhcj7q00p2sy3h73rkdm3w6grmljgiq53gshcj08cq1z"; }; + qmakeFlags = ["USE_UPNP=-"]; + # I think that openssl and zlib are required, but come through other # packages + preBuild = "unset AR"; + installPhase = '' mkdir -p $out/bin cp freicoin-qt $out/bin - ''; + ''; nativeBuildInputs = [ qmake4Hook ]; - buildInputs = [ db boost gmp mpfr miniupnpc qt4 ]; + buildInputs = [ db boost gmp mpfr qt4 ]; meta = with stdenv.lib; { description = "Peer-to-peer currency with demurrage fee"; diff --git a/pkgs/applications/altcoins/go-ethereum-classic/default.nix b/pkgs/applications/altcoins/go-ethereum-classic/default.nix new file mode 100644 index 00000000000..679312d9a8e --- /dev/null +++ b/pkgs/applications/altcoins/go-ethereum-classic/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }: + +buildGoPackage rec { + name = "go-ethereum-classic-${version}"; + version = "4.0.0"; + + goPackagePath = "github.com/ethereumproject/go-ethereum"; + subPackages = [ "cmd/evm" "cmd/geth" ]; + + src = fetchgit { + rev = "v${version}"; + url = "https://github.com/ethereumproject/go-ethereum"; + sha256 = "06f1w7s45q4zva1xjrx92xinsdrixl0m6zhx5hvdjmg3xqcbwr79"; + }; + + goDeps = ./deps.nix; + + meta = { + description = "Golang implementation of Ethereum Classic"; + homepage = https://github.com/ethereumproject/go-ethereum; + license = with lib.licenses; [ lgpl3 gpl3 ]; + maintainers = with lib.maintainers; [ sorpaas ]; + }; +} diff --git a/pkgs/applications/altcoins/go-ethereum-classic/deps.nix b/pkgs/applications/altcoins/go-ethereum-classic/deps.nix new file mode 100644 index 00000000000..0aa6755ee96 --- /dev/null +++ b/pkgs/applications/altcoins/go-ethereum-classic/deps.nix @@ -0,0 +1,39 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.0 +[ + { + goPackagePath = "github.com/maruel/panicparse"; + fetch = { + type = "git"; + url = "https://github.com/maruel/panicparse"; + rev = "ae43f192cef2add653fe1481a3070ed00a4a6981"; + sha256 = "11q8v4adbrazqvh24235s5nifck0d1083gbwv4dh5lhd10xlwdvr"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d"; + sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-wordwrap"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-wordwrap"; + rev = "ad45545899c7b13c020ea92b2072220eefad42b8"; + sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9"; + }; + } + { + goPackagePath = "github.com/nsf/termbox-go"; + fetch = { + type = "git"; + url = "https://github.com/nsf/termbox-go"; + rev = "4163cd39dda1c0dda883a713640bc01e08951c24"; + sha256 = "1vzrhxf8823lrnwf1bfyxwlm52pph5iq2hgr1d0n07v8kjgqkrmx"; + }; + } +] diff --git a/pkgs/applications/altcoins/go-ethereum.nix b/pkgs/applications/altcoins/go-ethereum.nix index 3beb38e0d2d..04e68b1f128 100644 --- a/pkgs/applications/altcoins/go-ethereum.nix +++ b/pkgs/applications/altcoins/go-ethereum.nix @@ -1,34 +1,28 @@ -{ stdenv, lib, go, fetchgit }: +{ stdenv, lib, buildGoPackage, fetchFromGitHub, libobjc, IOKit }: -stdenv.mkDerivation rec { +buildGoPackage rec { name = "go-ethereum-${version}"; - version = "1.4.7"; - rev = "refs/tags/v${version}"; + version = "1.7.2"; goPackagePath = "github.com/ethereum/go-ethereum"; - buildInputs = [ go ]; + # Fix for usb-related segmentation faults on darwin + propagatedBuildInputs = + stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ]; - src = fetchgit { - inherit rev; - url = "https://${goPackagePath}"; - sha256 = "19q518kxkvrr44cvsph4wv3lr6ivqsckz1f22r62932s3sq6gyd8"; + # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 ) + hardeningDisable = [ "fortify" ]; + + src = fetchFromGitHub { + owner = "ethereum"; + repo = "go-ethereum"; + rev = "v${version}"; + sha256 = "11n77zlf8qixhx26sqf33v911716msi6h0z4ng8gxhzhznrn2nrd"; }; - buildPhase = '' - export GOROOT=$(mktemp -d --suffix=-goroot) - ln -sv ${go}/share/go/* $GOROOT - ln -svf ${go}/bin $GOROOT - make all - ''; - - installPhase = '' - mkdir -p $out/bin - cp -v build/bin/* $out/bin - ''; - - meta = { - homepage = "https://ethereum.github.io/go-ethereum/"; + meta = with stdenv.lib; { + homepage = https://ethereum.github.io/go-ethereum/; description = "Official golang implementation of the Ethereum protocol"; - license = with lib.licenses; [ lgpl3 gpl3 ]; + license = with licenses; [ lgpl3 gpl3 ]; + maintainers = [ maintainers.adisbladis ]; }; } diff --git a/pkgs/applications/altcoins/hevm.nix b/pkgs/applications/altcoins/hevm.nix new file mode 100644 index 00000000000..51e5f6bcb29 --- /dev/null +++ b/pkgs/applications/altcoins/hevm.nix @@ -0,0 +1,61 @@ +{ mkDerivation, abstract-par, aeson, ansi-wl-pprint, async, base +, base16-bytestring, base64-bytestring, binary, brick, bytestring +, cereal, containers, cryptonite, data-dword, deepseq, directory +, filepath, ghci-pretty, here, HUnit, lens +, lens-aeson, memory, monad-par, mtl, optparse-generic, process +, QuickCheck, quickcheck-text, readline, rosezipper, scientific +, stdenv, tasty, tasty-hunit, tasty-quickcheck, temporary, text +, text-format, time, unordered-containers, vector, vty + +, restless-git + +, fetchFromGitHub, lib, makeWrapper +, ncurses, zlib, bzip2, solc, coreutils +, bash +}: + +lib.overrideDerivation (mkDerivation rec { + pname = "hevm"; + version = "0.8.5"; + + src = fetchFromGitHub { + owner = "dapphub"; + repo = "hevm"; + rev = "v${version}"; + sha256 = "1a27bh0azf2hdg5hp6s9azv2rhzy7vrlq1kmg688g9nfwwwhgkp0"; + }; + + isLibrary = false; + isExecutable = true; + enableSharedExecutables = false; + + postInstall = '' + wrapProgram $out/bin/hevm \ + --add-flags '+RTS -N$((`${coreutils}/bin/nproc` - 1)) -RTS' \ + --suffix PATH : "${lib.makeBinPath [bash coreutils]}" + ''; + + extraLibraries = [ + abstract-par aeson ansi-wl-pprint base base16-bytestring + base64-bytestring binary brick bytestring cereal containers + cryptonite data-dword deepseq directory filepath ghci-pretty lens + lens-aeson memory monad-par mtl optparse-generic process QuickCheck + quickcheck-text readline rosezipper scientific temporary text text-format + unordered-containers vector vty restless-git + ]; + executableHaskellDepends = [ + async readline zlib bzip2 + ]; + testHaskellDepends = [ + base binary bytestring ghci-pretty here HUnit lens mtl QuickCheck + tasty tasty-hunit tasty-quickcheck text vector + ]; + + homepage = https://github.com/dapphub/hevm; + description = "Ethereum virtual machine evaluator"; + license = stdenv.lib.licenses.agpl3; + maintainers = [stdenv.lib.maintainers.dbrock]; +}) (attrs: { + buildInputs = attrs.buildInputs ++ [solc]; + nativeBuildInputs = attrs.nativeBuildInputs ++ [makeWrapper]; +}) diff --git a/pkgs/applications/altcoins/hivemind.nix b/pkgs/applications/altcoins/hivemind.nix index 1b2682f7d4c..208a2d3915f 100644 --- a/pkgs/applications/altcoins/hivemind.nix +++ b/pkgs/applications/altcoins/hivemind.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { into a blockchain so that Bitcoin-users can speculate in Prediction Markets. ''; - homepage = "https://bitcoinhivemind.com"; + homepage = https://bitcoinhivemind.com; maintainers = with maintainers; [ canndrew ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/altcoins/litecoin.nix b/pkgs/applications/altcoins/litecoin.nix index 9b19d2f2996..ac42caa8099 100644 --- a/pkgs/applications/altcoins/litecoin.nix +++ b/pkgs/applications/altcoins/litecoin.nix @@ -8,13 +8,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version; - version = "0.13.2.1"; + version = "0.14.2"; src = fetchFromGitHub { owner = "litecoin-project"; repo = "litecoin"; rev = "v${version}"; - sha256 = "0hml1crml6rx7im8dfbig3znmvnk2di61ybbhrhpad5mj0yrih30"; + sha256 = "1smadd5d2mpz2v3pyk7wqm60vdp81zqr4m3z4wfvnlz62m1m800y"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; diff --git a/pkgs/applications/altcoins/memorycoin.nix b/pkgs/applications/altcoins/memorycoin.nix index d30133fa551..24b891d60eb 100644 --- a/pkgs/applications/altcoins/memorycoin.nix +++ b/pkgs/applications/altcoins/memorycoin.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, openssl, db48, boost -, zlib, miniupnpc, qt4, qmake4Hook, utillinux, protobuf, qrencode +, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode , withGui }: with stdenv.lib; @@ -13,14 +13,18 @@ stdenv.mkDerivation rec{ sha256 = "1iyh6dqrg0mirwci5br5n5qw3ghp2cs23wd8ygr56bh9ml4dr1m8"; }; - buildInputs = [ pkgconfig openssl db48 boost zlib - miniupnpc utillinux protobuf ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl db48 boost zlib utillinux protobuf ] ++ optionals withGui [ qt4 qmake4Hook qrencode ]; + qmakeFlags = ["USE_UPNP=-"]; + makeFlags = ["USE_UPNP=-"]; + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] ++ optionals withGui [ "--with-gui=qt4" ]; - preBuild = optional (!withGui) "cd src; cp makefile.unix Makefile"; + preBuild = "unset AR;" + + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile")); installPhase = if withGui @@ -40,7 +44,7 @@ stdenv.mkDerivation rec{ Memorycoin is based on the Bitcoin code, but with some key differences. ''; - homepage = "http://www.bitcoin.org/"; + homepage = http://www.bitcoin.org/; maintainers = with maintainers; [ AndersonTorres ]; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/applications/altcoins/namecoin.nix b/pkgs/applications/altcoins/namecoin.nix index 563363b8baf..83bead0adac 100644 --- a/pkgs/applications/altcoins/namecoin.nix +++ b/pkgs/applications/altcoins/namecoin.nix @@ -1,20 +1,45 @@ -{ stdenv, db4, boost, openssl, qt4, qmake4Hook, miniupnpc, unzip, namecoind }: +{ stdenv, lib, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode +, withGui }: with stdenv.lib; stdenv.mkDerivation rec { + version = "nc0.13.0rc1"; + name = "namecoin" + toString (optional (!withGui) "d") + "-" + version; - name = "namecoin-${version}"; - version = namecoind.version; - src = namecoind.src; + src = fetchFromGitHub { + owner = "namecoin"; + repo = "namecoin-core"; + rev = version; + sha256 = "17zz0rm3js285w2assxp8blfx830rs0ambcsaqqfli9mnaik3m39"; + }; - buildInputs = [ db4 boost openssl unzip qt4 qmake4Hook miniupnpc ]; + nativeBuildInputs = [ + autoreconfHook + pkgconfig + ]; - qmakeFlags = [ "USE_UPNP=-" ]; + buildInputs = [ + openssl + boost + libevent + db4 + miniupnpc + eject + ] ++ optionals withGui [ + qt4 + protobuf + libqrencode + ]; - installPhase = '' - mkdir -p $out/bin - cp namecoin-qt $out/bin - ''; + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + ]; - meta = namecoind.meta; + meta = { + description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency"; + homepage = https://namecoin.org; + license = licenses.mit; + maintainers = with maintainers; [ doublec AndersonTorres infinisil ]; + platforms = platforms.linux; + }; } diff --git a/pkgs/applications/altcoins/namecoind.nix b/pkgs/applications/altcoins/namecoind.nix deleted file mode 100644 index 5b393330147..00000000000 --- a/pkgs/applications/altcoins/namecoind.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, fetchzip, db4, boost, openssl, miniupnpc, unzip }: - -with stdenv.lib; -stdenv.mkDerivation rec { - version = "0.3.80"; - name = "namecoind-${version}"; - - src = fetchzip { - url = "https://github.com/namecoin/namecoin/archive/nc${version}.tar.gz"; - sha256 = "0mbkhj7y3f4vbqp5q3zk27bzqlk2kq71rcgivvj06w29fzd64mw6"; - }; - - buildInputs = [ db4 boost openssl unzip miniupnpc ]; - - patchPhase = '' - sed -e 's/-Wl,-Bstatic//g' -e 's/-l gthread-2.0//g' -e 's/-l z//g' -i src/Makefile - ''; - - buildPhase = '' - make -C src INCLUDEPATHS= LIBPATHS= - ''; - - installPhase = '' - mkdir -p $out/bin - cp src/namecoind $out/bin - ''; - - meta = { - description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency"; - homepage = http://namecoin.info; - license = licenses.mit; - maintainers = with maintainers; [ doublec AndersonTorres ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/applications/altcoins/primecoin.nix b/pkgs/applications/altcoins/primecoin.nix index 7d25a26fba2..b1e3dc2dd93 100644 --- a/pkgs/applications/altcoins/primecoin.nix +++ b/pkgs/applications/altcoins/primecoin.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, openssl, db48, boost -, zlib, miniupnpc, qt4, qmake4Hook, utillinux, protobuf, qrencode +, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode , withGui }: with stdenv.lib; @@ -13,14 +13,18 @@ stdenv.mkDerivation rec{ sha256 = "0cixnkici74204s9d5iqj5sccib5a8dig2p2fp1axdjifpg787i3"; }; - buildInputs = [ pkgconfig openssl db48 boost zlib - miniupnpc utillinux protobuf ] + qmakeFlags = ["USE_UPNP=-"]; + makeFlags = ["USE_UPNP=-"]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl db48 boost zlib utillinux protobuf ] ++ optionals withGui [ qt4 qmake4Hook qrencode ]; configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] ++ optionals withGui [ "--with-gui=qt4" ]; - preBuild = optional (!withGui) "cd src; cp makefile.unix Makefile"; + preBuild = "unset AR;" + + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile")); installPhase = if withGui diff --git a/pkgs/applications/altcoins/seth.nix b/pkgs/applications/altcoins/seth.nix new file mode 100644 index 00000000000..b2f5cfdea06 --- /dev/null +++ b/pkgs/applications/altcoins/seth.nix @@ -0,0 +1,31 @@ +{ stdenv, makeWrapper, lib, fetchFromGitHub +, bc, coreutils, curl, ethabi, git, gnused, jshon, perl, solc, which }: + +stdenv.mkDerivation rec { + name = "seth-${version}"; + version = "0.5.6"; + + src = fetchFromGitHub { + owner = "dapphub"; + repo = "seth"; + rev = "v${version}"; + sha256 = "1zl70xy7njjwy4k4g84v7lpf9a2nnnbxh4mkpw7jzqfs2mr636z6"; + }; + + nativeBuildInputs = [makeWrapper]; + buildPhase = "true"; + makeFlags = ["prefix=$(out)"]; + postInstall = let path = lib.makeBinPath [ + bc coreutils curl ethabi git gnused jshon perl solc which + ]; in '' + wrapProgram "$out/bin/seth" --prefix PATH : "${path}" + ''; + + meta = { + description = "Command-line client for talking to Ethereum nodes"; + homepage = https://github.com/dapphub/seth/; + maintainers = [stdenv.lib.maintainers.dbrock]; + license = lib.licenses.gpl3; + inherit version; + }; +} diff --git a/pkgs/applications/altcoins/stellar-core.nix b/pkgs/applications/altcoins/stellar-core.nix index 9942f0898a2..4a4665291d6 100644 --- a/pkgs/applications/altcoins/stellar-core.nix +++ b/pkgs/applications/altcoins/stellar-core.nix @@ -16,7 +16,8 @@ in stdenv.mkDerivation { leaveDotGit = true; }; - buildInputs = [ autoconf automake libtool pkgconfig git ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake libtool git ]; propagatedBuildInputs = [ bison flex postgresql ]; diff --git a/pkgs/applications/altcoins/zcash/default.nix b/pkgs/applications/altcoins/zcash/default.nix new file mode 100644 index 00000000000..aa912f04efb --- /dev/null +++ b/pkgs/applications/altcoins/zcash/default.nix @@ -0,0 +1,50 @@ +{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost +, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent +, withGui }: + +let libsnark = callPackage ./libsnark { inherit boost openssl; }; + librustzcash = callPackage ./librustzcash {}; +in +with stdenv.lib; +stdenv.mkDerivation rec { + + name = "zcash" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.0.12"; + + src = fetchFromGitHub { + owner = "zcash"; + repo = "zcash"; + rev = "v${version}"; + sha256 = "19bxhdnkvgncgl9x6nbaf5nwgrdfw99icvdbi9adfh646pd5z64s"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ gtest gmock gmp libsnark openssl wget db62 boost zlib + protobuf libevent libsodium librustzcash ] + ++ optionals stdenv.isLinux [ utillinux ] + ++ optionals withGui [ qt4 qrencode ]; + + configureFlags = [ "LIBSNARK_INCDIR=${libsnark}/include/libsnark" + "--with-boost-libdir=${boost.out}/lib" + ] ++ optionals withGui [ "--with-gui=qt4" ]; + + patchPhase = '' + sed -i"" '/^\[LIBSNARK_INCDIR/d' configure.ac + sed -i"" 's,-lboost_system-mt,-lboost_system,' configure.ac + sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am + ''; + + postInstall = '' + cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params + ''; + + meta = { + description = "Peer-to-peer, anonymous electronic cash system"; + homepage = https://z.cash/; + maintainers = with maintainers; [ rht ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/zcash/librustzcash/default.nix b/pkgs/applications/altcoins/zcash/librustzcash/default.nix new file mode 100644 index 00000000000..b89582c09e6 --- /dev/null +++ b/pkgs/applications/altcoins/zcash/librustzcash/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + name = "librustzcash-unstable-${version}"; + version = "2017-03-17"; + + src = fetchFromGitHub { + owner = "zcash"; + repo = "librustzcash"; + rev = "91348647a86201a9482ad4ad68398152dc3d635e"; + sha256 = "02l1f46frpvw1r6k1wfh77mrsnmsdvifqx0vnscxz4xgb9ia9d1c"; + }; + + cargoSha256 = "1b0kal53ggcr59hbrsdj8fifjycahrmzwq677n9h3fywv4r237m6"; + + installPhase = '' + mkdir -p $out/lib + cp target/release/librustzcash.a $out/lib/ + mkdir -p $out/include + cp include/librustzcash.h $out/include/ + ''; + + meta = with stdenv.lib; { + description = "Rust-language assets for Zcash"; + homepage = https://github.com/zcash/librustzcash; + maintainers = with maintainers; [ rht ]; + license = with licenses; [ mit asl20 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/zcash/libsnark/ate-pairing.nix b/pkgs/applications/altcoins/zcash/libsnark/ate-pairing.nix new file mode 100644 index 00000000000..303b3bc171e --- /dev/null +++ b/pkgs/applications/altcoins/zcash/libsnark/ate-pairing.nix @@ -0,0 +1,29 @@ +{ stdenv, xbyak, gmp, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "ate-pairing-unstable-${version}"; + version = "2016-05-03"; + + src = fetchFromGitHub { + owner = "herumi"; + repo = "ate-pairing"; + rev = "dcb9da999b1113f90b115bccb6f4b57ddf3a8452"; + sha256 = "0jr6r1cma414k8mhsyp7n8hqaqxi7zklsp6820a095sbb3zajckh"; + }; + + buildInputs = [ gmp xbyak ]; + + installPhase = '' + mkdir -p $out + cp -r lib $out + cp -r include $out + ''; + + meta = with stdenv.lib; { + description = "Optimal Ate Pairing over Barreto-Naehrig Curves"; + homepage = https://github.com/herumi/ate-pairing; + maintainers = with maintainers; [ rht ]; + license = licenses.bsd3; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/zcash/libsnark/default.nix b/pkgs/applications/altcoins/zcash/libsnark/default.nix new file mode 100644 index 00000000000..be885493dcd --- /dev/null +++ b/pkgs/applications/altcoins/zcash/libsnark/default.nix @@ -0,0 +1,45 @@ +{ stdenv, libsodium, callPackage, boost, zlib, openssl, gmp, procps, fetchFromGitHub }: + +let atePairing = callPackage ./ate-pairing.nix { inherit xbyak; }; + mie = callPackage ./mie.nix { }; + xbyak = callPackage ./xbyak.nix {}; +in +stdenv.mkDerivation rec{ + name = "libsnark-unstable-${version}"; + version = "2017-02-09"; + + src = fetchFromGitHub { + owner = "zcash"; + repo = "libsnark"; + rev = "9ada3f84ab484c57b2247c2f41091fd6a0916573"; + sha256 = "0vhslcb9rwqab9szavyn856z4h9w1syiamfcixqmj0s908zzlaaq"; + }; + + buildInputs = [ libsodium atePairing mie xbyak zlib openssl boost gmp ]; + + makeFlags = [ + "PREFIX=$(out)" + "CURVE=ALT_BN128" + "NO_SUPERCOP=1" + "STATIC=1" + ]; + + buildPhase = '' + CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" \ + make lib \ + CURVE=ALT_BN128 \ + MULTICORE=1 \ + STATIC=1 \ + NO_PROCPS=1 \ + NO_GTEST=1 \ + FEATUREFLAGS=-DMONTGOMERY_OUTPUT \ + ''; + + meta = with stdenv.lib; { + description = "a C++ library for zkSNARK proofs"; + homepage = https://github.com/zcash/libsnark; + maintainers = with maintainers; [ rht ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/zcash/libsnark/mie.nix b/pkgs/applications/altcoins/zcash/libsnark/mie.nix new file mode 100644 index 00000000000..a66ff128293 --- /dev/null +++ b/pkgs/applications/altcoins/zcash/libsnark/mie.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "mie-unstable-${version}"; + version = "2016-05-10"; + + src = fetchFromGitHub { + owner = "herumi"; + repo = "mie"; + rev = "704b625b7770a8e1eab26ac65d1fed14c2fcf090"; + sha256 = "144bpmgfs2m4qqv7a2mccgi1aq5jmlr25gnk78ryq09z8cyv88y2"; + }; + + phases = ["unpackPhase" "installPhase"]; + + installPhase = '' + mkdir -p $out + cp -r include $out + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/herumi/mie; + maintainers = with maintainers; [ rht ]; + license = licenses.bsd3; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/altcoins/zcash/libsnark/xbyak.nix b/pkgs/applications/altcoins/zcash/libsnark/xbyak.nix new file mode 100644 index 00000000000..88d432fd163 --- /dev/null +++ b/pkgs/applications/altcoins/zcash/libsnark/xbyak.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "xbyak-unstable-${version}"; + version = "2016-05-03"; + + src = fetchFromGitHub { + owner = "herumi"; + repo = "xbyak"; + rev = "b6133a02dd6b7116bea31d0e6b7142bf97f071aa"; + sha256 = "1rc2nx8kj2lj13whxb9chhh79f4hmjjj4j1hpqsd0lbdb60jikrn"; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/include + cp -r xbyak $out/include + ''; + + meta = with stdenv.lib; { + description = "JIT assembler for x86, x64"; + homepage = https://github.com/herumi/xbyak; + maintainers = with maintainers; [ rht ]; + license = licenses.bsd3; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/audio/a2jmidid/default.nix b/pkgs/applications/audio/a2jmidid/default.nix index ddd34f1bfeb..ad12609429f 100644 --- a/pkgs/applications/audio/a2jmidid/default.nix +++ b/pkgs/applications/audio/a2jmidid/default.nix @@ -8,11 +8,12 @@ in stdenv.mkDerivation rec { version = "8"; src = fetchurl { - url = "http://download.gna.org/a2jmidid/${name}.tar.bz2"; - sha256 = "0pzm0qk5ilqhwz74pydg1jwrds27vm47185dakdrxidb5bv3b5ia"; + url = "http://repo.or.cz/a2jmidid.git/snapshot/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz"; + sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7"; }; - buildInputs = [ makeWrapper pkgconfig alsaLib dbus libjack2 python dbus-python ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper alsaLib dbus libjack2 python dbus-python ]; configurePhase = "${python.interpreter} waf configure --prefix=$out"; @@ -24,7 +25,6 @@ in stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://home.gna.org/a2jmidid; description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system"; license = licenses.gpl2; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/abcde/default.nix b/pkgs/applications/audio/abcde/default.nix index a729d5cd4ef..a23af5b5caf 100644 --- a/pkgs/applications/audio/abcde/default.nix +++ b/pkgs/applications/audio/abcde/default.nix @@ -3,13 +3,13 @@ , perl, DigestSHA, MusicBrainz, MusicBrainzDiscID , makeWrapper }: -let version = "2.7.2"; +let version = "2.8.1"; in stdenv.mkDerivation { name = "abcde-${version}"; src = fetchurl { url = "http://abcde.einval.com/download/abcde-${version}.tar.gz"; - sha256 = "1pakpi41k8yd780mfp0snhia6mmwjwxk9lcrq6gynimch8b8hfda"; + sha256 = "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774"; }; # FIXME: This package does not support `distmp3', `eject', etc. @@ -19,46 +19,31 @@ in configurePhase = '' sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ; s|^[[:blank:]]*etcdir *=.*$|etcdir = $out/etc|g ; - s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \ - "Makefile"; + s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \ + "Makefile"; # We use `cd-paranoia' from GNU libcdio, which contains a hyphen # in its name, unlike Xiph's cdparanoia. sed -i "s|^[[:blank:]]*CDPARANOIA=.*$|CDPARANOIA=cd-paranoia|g ; s|^[[:blank:]]*DEFAULT_CDROMREADERS=.*$|DEFAULT_CDROMREADERS=\"cd-paranoia cdda2wav\"|g" \ - "abcde" + "abcde" - substituteInPlace "abcde" \ - --replace "/etc/abcde.conf" "$out/etc/abcde.conf" + substituteInPlace "abcde" \ + --replace "/etc/abcde.conf" "$out/etc/abcde.conf" ''; - # no ELFs in this package, only scripts - dontStrip = true; - dontPatchELF = true; - buildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ perl DigestSHA MusicBrainz MusicBrainzDiscID ]; + installFlags = [ "sysconfdir=$(out)/etc" ]; - postInstall = '' - # substituteInPlace "$out/bin/cddb-tool" \ - # --replace '#!/bin/sh' '#!${bash}/bin/sh' - # substituteInPlace "$out/bin/abcde" \ - # --replace '#!/bin/bash' '#!${bash}/bin/bash' - - # generic fixup script should be doing this, but it ignores this file for some reason - substituteInPlace "$out/bin/abcde-musicbrainz-tool" \ - --replace '#!/usr/bin/perl' '#!${perl}/bin/perl' - - wrapProgram "$out/bin/abcde" --prefix PATH ":" \ - ${stdenv.lib.makeBinPath [ "$out" which libcdio cddiscid wget vorbis-tools id3v2 eyeD3 lame flac glyr ]} - - wrapProgram "$out/bin/cddb-tool" --prefix PATH ":" \ - "${wget}/bin" - - wrapProgram "$out/bin/abcde-musicbrainz-tool" --prefix PATH ":" \ - "${wget}/bin" + postFixup = '' + for cmd in abcde cddb-tool abcde-musicbrainz-tool; do + wrapProgram "$out/bin/$cmd" --prefix PATH ":" \ + ${stdenv.lib.makeBinPath [ "$out" which libcdio cddiscid wget vorbis-tools id3v2 eyeD3 lame flac glyr ]} + done ''; meta = { diff --git a/pkgs/applications/audio/aeolus/default.nix b/pkgs/applications/audio/aeolus/default.nix index 9fe781f1769..7ac1025c502 100644 --- a/pkgs/applications/audio/aeolus/default.nix +++ b/pkgs/applications/audio/aeolus/default.nix @@ -1,16 +1,20 @@ { stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsaLib, libjack2 -, libclxclient, libX11, libXft, readline}: +, libclxclient, libX11, libXft, readline +}: stdenv.mkDerivation rec { name = "aeolus-${version}"; - version = "0.9.0"; + version = "0.9.5"; + src = fetchurl { url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2"; - sha256 = "0dkkibza25a6z9446njqlaynx8gfk5wb828pl9v1snmi5390iggp"; + sha256 = "0wfp8ihldyq2dhdyy7ld7z0zzfvnwam1dvbxnpd9d6xgc4k3j4nv"; }; - buildInputs = [ libclthreads zita-alsa-pcmi alsaLib libjack2 libclxclient - libX11 libXft readline ]; + buildInputs = [ + libclthreads zita-alsa-pcmi alsaLib libjack2 libclxclient + libX11 libXft readline + ]; patchPhase = ''sed "s@ldconfig.*@@" -i source/Makefile''; diff --git a/pkgs/applications/audio/airwave/default.nix b/pkgs/applications/audio/airwave/default.nix index 39946fd5c7d..5a6901a9434 100644 --- a/pkgs/applications/audio/airwave/default.nix +++ b/pkgs/applications/audio/airwave/default.nix @@ -1,5 +1,5 @@ { stdenv, cmake, fetchFromGitHub, file, gcc_multi, libX11, makeWrapper -, overrideCC, qt5, requireFile, unzip, wineStable +, overrideCC, qt5, requireFile, unzip, wine }: let @@ -26,7 +26,8 @@ let installPhase = "cp -r . $out"; }; - wine-wow64 = wineStable.override { + wine-wow64 = wine.override { + wineRelease = "stable"; wineBuild = "wineWow"; }; diff --git a/pkgs/applications/audio/aj-snapshot/default.nix b/pkgs/applications/audio/aj-snapshot/default.nix index c70a1b4aa9b..115df15d2a5 100644 --- a/pkgs/applications/audio/aj-snapshot/default.nix +++ b/pkgs/applications/audio/aj-snapshot/default.nix @@ -3,16 +3,17 @@ stdenv.mkDerivation rec { name = packageName + "-" + version ; packageName = "aj-snapshot" ; - version = "0.9.6" ; + version = "0.9.7"; src = fetchurl { url = "mirror://sourceforge/${packageName}/${name}.tar.bz2"; - sha256 = "12n2h3609fbvsnnwrwma4m55iyv6lcv1v3q5pznz2w6f12wf0c9z"; + sha256 = "0yxccgp9qw2cyqv719wlbq8wfsr5ga8czvwa7bmb8dh5s11n3rn8"; }; doCheck = false; - buildInputs = [ alsaLib minixml jack2Full pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ alsaLib minixml jack2Full ]; meta = with stdenv.lib; { description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files"; diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix index 3b675cd9020..022e33991f9 100644 --- a/pkgs/applications/audio/amarok/default.nix +++ b/pkgs/applications/audio/amarok/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { repositories.git = git://anongit.kde.org/amarok.git; description = "Popular music player for KDE"; license = "GPL"; - homepage = http://amarok.kde.org; + homepage = https://amarok.kde.org; inherit (kdelibs4.meta) platforms; }; } diff --git a/pkgs/applications/audio/ams-lv2/default.nix b/pkgs/applications/audio/ams-lv2/default.nix index fbbb9f90f8a..bc72c3e1314 100644 --- a/pkgs/applications/audio/ams-lv2/default.nix +++ b/pkgs/applications/audio/ams-lv2/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "1n1dnqnj24xhiy9323lj52nswr5120cj56fpckg802miss05sr6x"; }; - buildInputs = [ cairo fftw gtkmm2 lv2 lvtk pkgconfig python ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cairo fftw gtkmm2 lv2 lvtk python ]; configurePhase = "python waf configure --prefix=$out"; diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 57864f863e3..850848abcde 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -16,7 +16,7 @@ let # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH. # Version to build. - tag = "5.8"; + tag = "5.12"; in @@ -25,12 +25,12 @@ stdenv.mkDerivation rec { src = fetchgit { url = "git://git.ardour.org/ardour/ardour.git"; - rev = "e5c6f16126e0901654b09ecce990554b1ff73833"; - sha256 = "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1"; + rev = "ae0dcdc0c5d13483271065c360e378202d20170a"; + sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; }; buildInputs = - [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac glibc + [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2 @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { GenericName=Digital Audio Workstation Comment=Multitrack harddisk recorder Exec=$out/bin/ardour5 - Icon=$out/share/ardour5/icons/ardour_icon_256px.png + Icon=$out/share/ardour5/resources/Ardour-icon_256px.png Terminal=false Type=Application X-MultipleArgs=false diff --git a/pkgs/applications/audio/ario/default.nix b/pkgs/applications/audio/ario/default.nix index 3840d06dd46..afb3c834273 100644 --- a/pkgs/applications/audio/ario/default.nix +++ b/pkgs/applications/audio/ario/default.nix @@ -14,14 +14,15 @@ stdenv.mkDerivation rec { patches = [ ./glib-single-include.patch ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig gettext gtk2 expat intltool libgcrypt libunique gnutls + gettext gtk2 expat intltool libgcrypt libunique gnutls libxml2 curl mpd_clientlib dbus_glib libnotify libsoup avahi taglib ]; meta = { description = "GTK2 client for MPD (Music player daemon)"; - homepage = "http://ario-player.sourceforge.net/"; + homepage = http://ario-player.sourceforge.net/; license = stdenv.lib.licenses.gpl2Plus; maintainers = [ stdenv.lib.maintainers.garrison ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/audio/artyFX/default.nix b/pkgs/applications/audio/artyFX/default.nix index 39edf18b056..9a9095d2fc1 100644 --- a/pkgs/applications/audio/artyFX/default.nix +++ b/pkgs/applications/audio/artyFX/default.nix @@ -1,16 +1,18 @@ -{ stdenv, fetchgit, cairomm, cmake, libjack2, libpthreadstubs, libXdmcp, libxshmfence, libsndfile, lv2, ntk, pkgconfig }: +{ stdenv, fetchFromGitHub , cairomm, cmake, libjack2, libpthreadstubs, libXdmcp, libxshmfence, libsndfile, lv2, ntk, pkgconfig }: stdenv.mkDerivation rec { - name = "artyFX-git-${version}"; - version = "2015-05-07"; + name = "artyFX-${version}"; + version = "1.3"; - src = fetchgit { - url = "https://github.com/harryhaaren/openAV-ArtyFX.git"; - rev = "3a8cb9a5e4ffaf27a497a31cc9cd6f2e79622d5b"; - sha256 = "0nsmycm64a686ysfnmdvnaazijvfj90z5wyp96kyr81nsrbcv2ij"; + src = fetchFromGitHub { + owner = "openAVproductions"; + repo = "openAV-ArtyFX"; + rev = "release-${version}"; + sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9"; }; - buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ]; meta = with stdenv.lib; { homepage = http://openavproductions.com/artyfx/; diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix index b5897c71cd9..99d6357e921 100644 --- a/pkgs/applications/audio/asunder/default.nix +++ b/pkgs/applications/audio/asunder/default.nix @@ -19,7 +19,8 @@ stdenv.mkDerivation rec { sha256 = "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"; }; - buildInputs = [ gtk2 libcddb intltool pkgconfig makeWrapper ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 libcddb intltool makeWrapper ]; runtimeDeps = optional mp3Support lame ++ diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix index 6d4b18e29b0..8242d035e5b 100644 --- a/pkgs/applications/audio/audacious/default.nix +++ b/pkgs/applications/audio/audacious/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3 -, libmowgli, libmcs, dbus_glib, libxml2, xorg, gnome3, alsaLib +, libmowgli, dbus_glib, libxml2, xorg, gnome3, alsaLib , libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis , libcdio082, libcddb, flac, ffmpeg, mpg123, libcue, libmms, libbs2b , libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - gettext glib gtk3 libmowgli libmcs dbus_glib libxml2 + gettext glib gtk3 libmowgli dbus_glib libxml2 xorg.libXcomposite gnome3.defaultIconTheme alsaLib libjack2 libpulseaudio fluidsynth libmad libogg libvorbis libcdio082 libcddb flac ffmpeg mpg123 libcue libmms libbs2b libsndfile diff --git a/pkgs/applications/audio/audacious/qt-5.nix b/pkgs/applications/audio/audacious/qt-5.nix index 663e0eb0cc8..803b0115fbd 100644 --- a/pkgs/applications/audio/audacious/qt-5.nix +++ b/pkgs/applications/audio/audacious/qt-5.nix @@ -1,9 +1,9 @@ { - stdenv, lib, fetchurl, - gettext, makeQtWrapper, pkgconfig, + mkDerivation, lib, fetchurl, + gettext, pkgconfig, qtbase, alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk_pixbuf, lame, libbs2b, - libcddb, libcdio082, libcue, libjack2, libmad, libmcs, libmms, libmodplug, + libcddb, libcdio082, libcue, libjack2, libmad, libmms, libmodplug, libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp, libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr, wavpack @@ -24,16 +24,14 @@ let }; in -stdenv.mkDerivation { +mkDerivation { inherit version; name = "audacious-qt5-${version}"; sourceFiles = lib.attrValues sources; sourceRoots = lib.attrNames sources; - nativeBuildInputs = [ - gettext makeQtWrapper pkgconfig - ]; + nativeBuildInputs = [ gettext pkgconfig ]; buildInputs = [ # Core dependencies @@ -41,7 +39,7 @@ stdenv.mkDerivation { # Plugin dependencies alsaLib curl faad2 ffmpeg flac fluidsynth gdk_pixbuf lame libbs2b libcddb - libcdio082 libcue libjack2 libmad libmcs libmms libmodplug libmowgli + libcdio082 libcue libjack2 libmad libmms libmodplug libmowgli libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack ]; @@ -68,15 +66,9 @@ stdenv.mkDerivation { fi done - - source $stdenv/setup - wrapQtProgram $out/bin/audacious - wrapQtProgram $out/bin/audtool ''; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { description = "Audio player"; homepage = http://audacious-media-player.org/; maintainers = with maintainers; [ ttuegel ]; diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix index 92e6adbaa96..07385e2a8b8 100644 --- a/pkgs/applications/audio/audacity/default.nix +++ b/pkgs/applications/audio/audacity/default.nix @@ -1,17 +1,18 @@ { stdenv, fetchurl, wxGTK30, pkgconfig, file, gettext, gtk2, glib, zlib, perl, intltool, libogg, libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame, fetchpatch, - expat, libid3tag, ffmpeg, soundtouch /*, portaudio - given up fighting their portaudio.patch */ + expat, libid3tag, ffmpeg, soundtouch, /*, portaudio - given up fighting their portaudio.patch */ + autoconf, automake, libtool }: with stdenv.lib; stdenv.mkDerivation rec { - version = "2.1.2"; + version = "2.1.3"; name = "audacity-${version}"; src = fetchurl { url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz"; - sha256 = "1ggr6g0mk36rqj7ahsg8b0b1r9kphwajzvxgn43md263rm87n04h"; + sha256 = "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b"; }; patches = [ (fetchpatch { @@ -20,19 +21,10 @@ stdenv.mkDerivation rec { + "/audacity-ffmpeg.patch?h=packages/audacity&id=0c1e35798d4d70692"; sha256 = "19fr674mw844zmkp1476yigkcnmb6zyn78av64ccdwi3p68i00rf"; }) - ] - ++ optional (hasPrefix "gcc-6" stdenv.cc.cc.name) - (fetchpatch { - name = "gcc6.patch"; - url = "https://github.com/audacity/audacity/commit/60f2322055756e8cacfe96530a12c63e9694482c.patch"; - sha256 = "07jlxr8y7ap3nsblx3zh8v9rcx7ajbcfnvwzhwykmbwbsyirgqf2"; - }); + ]; preConfigure = /* we prefer system-wide libs */ '' - mv lib-src lib-src-rm - mkdir lib-src - mv lib-src-rm/{Makefile*,lib-widget-extra,portaudio-v19,portmixer,portsmf,FileDialog,sbsms,libnyquist} lib-src/ - rm -r lib-src-rm/ + autoreconf -vi # use system libraries # we will get a (possibly harmless) warning during configure without this substituteInPlace configure \ @@ -59,10 +51,12 @@ stdenv.mkDerivation rec { "-lswscale" ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig file gettext wxGTK30 expat alsaLib + file gettext wxGTK30 expat alsaLib libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil gtk2 ffmpeg libmad lame libvorbis flac soundtouch + autoconf automake libtool # for the preConfigure phase ]; #ToDo: detach sbsms enableParallelBuilding = true; diff --git a/pkgs/applications/audio/audio-recorder/default.nix b/pkgs/applications/audio/audio-recorder/default.nix index e6addd6c4fd..ac13371dd93 100644 --- a/pkgs/applications/audio/audio-recorder/default.nix +++ b/pkgs/applications/audio/audio-recorder/default.nix @@ -8,20 +8,18 @@ with lib; stdenv.mkDerivation rec { name = "audio-recorder-${version}"; - version = "1.9.4"; + version = "1.9.7"; src = fetchurl { name = "${name}-zesty.tar.gz"; url = "${meta.homepage}/+archive/ubuntu/ppa/+files/audio-recorder_${version}%7Ezesty.tar.gz"; - sha256 = "062bad38cz4fqzv418wza0x8sa4m5mqr3xsisrr1qgkqj9hg1f6x"; + sha256 = "163c0vs5qj72y62731yp6sl6s0indh2szhjg02mxigv9b68dx89c"; }; nativeBuildInputs = [ pkgconfig intltool autoconf wrapGAppsHook ]; - patches = [ ./icon-names.diff ]; - buildInputs = with gst_all_1; [ - glib dbus gtk3 librsvg libdbusmenu-gtk3 libappindicator-gtk3 gnome3.dconf + glib dbus gtk3 librsvg libdbusmenu-gtk3 libappindicator-gtk3 (stdenv.lib.getLib gnome3.dconf) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ] ++ optional pulseaudioSupport libpulseaudio; @@ -34,9 +32,9 @@ stdenv.mkDerivation rec { ''; preFixup = '' - gappsWrapperArgs+=('--prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"' - '--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"' - '--prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"') + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : $out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : $GST_PLUGIN_SYSTEM_PATH_1_0 + --prefix GIO_EXTRA_MODULES : ${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules) ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/audio-recorder/icon-names.diff b/pkgs/applications/audio/audio-recorder/icon-names.diff deleted file mode 100644 index 28f21799166..00000000000 --- a/pkgs/applications/audio/audio-recorder/icon-names.diff +++ /dev/null @@ -1,51 +0,0 @@ -diff -ru audio-recorder/src/main.c audio-recorder.new/src/main.c ---- audio-recorder/src/main.c 2017-01-03 20:27:36.000000000 +0100 -+++ audio-recorder.new/src/main.c 2017-01-30 20:19:44.019255096 +0100 -@@ -1099,7 +1099,7 @@ - gtk_container_add(GTK_CONTAINER(frame2), g_win.timer_text); - - // Timer [Save] button -- g_win.timer_save_button = gtk_button_new_from_icon_name("gtk-save", GTK_ICON_SIZE_BUTTON); -+ g_win.timer_save_button = gtk_button_new_from_icon_name("document-save", GTK_ICON_SIZE_BUTTON); - // Hide it - gtk_widget_hide(g_win.timer_save_button); - g_signal_connect(g_win.timer_save_button, "clicked", G_CALLBACK(win_timer_save_text_cb), NULL); -@@ -1129,7 +1129,7 @@ - // The [Info] button - GtkWidget *button0 = gtk_button_new(); - gtk_widget_show(button0); -- GtkWidget *image = gtk_image_new_from_icon_name("gtk-info", GTK_ICON_SIZE_BUTTON); -+ GtkWidget *image = gtk_image_new_from_icon_name("dialog-information", GTK_ICON_SIZE_BUTTON); - gtk_widget_show(image); - gtk_button_set_always_show_image(GTK_BUTTON(button0), TRUE); - gtk_button_set_image(GTK_BUTTON(button0), image); -@@ -1220,7 +1220,7 @@ - // Add [Reload] button - button0 = gtk_button_new(); - gtk_widget_show(button0); -- image = gtk_image_new_from_icon_name("gtk-refresh", GTK_ICON_SIZE_BUTTON); -+ image = gtk_image_new_from_icon_name("view-refresh", GTK_ICON_SIZE_BUTTON); - gtk_widget_show(image); - gtk_button_set_always_show_image(GTK_BUTTON(button0), TRUE); - -@@ -1297,7 +1297,7 @@ - gtk_widget_show(hbox4); - gtk_box_pack_start(GTK_BOX(vbox0), hbox4, FALSE, TRUE, 0); - -- button0 = gtk_button_new_from_icon_name("gtk-close", GTK_ICON_SIZE_BUTTON); -+ button0 = gtk_button_new_from_icon_name("window-close", GTK_ICON_SIZE_BUTTON); - gtk_button_set_always_show_image(GTK_BUTTON(button0), TRUE); - gtk_widget_show(button0); - gtk_box_pack_end(GTK_BOX(hbox4), button0, FALSE, FALSE, 0); -diff -ru audio-recorder/src/settings.c audio-recorder.new/src/settings.c ---- audio-recorder/src/settings.c 2017-01-02 10:47:27.000000000 +0100 -+++ audio-recorder.new/src/settings.c 2017-01-30 20:23:04.621314105 +0100 -@@ -659,7 +659,7 @@ - gtk_entry_set_invisible_char(GTK_ENTRY(file_name_pattern), 9679); - - button0 = gtk_button_new(); -- GtkWidget *image = gtk_image_new_from_icon_name("gtk-info", GTK_ICON_SIZE_BUTTON); -+ GtkWidget *image = gtk_image_new_from_icon_name("dialog-information", GTK_ICON_SIZE_BUTTON); - gtk_button_set_always_show_image(GTK_BUTTON(button0), TRUE); - gtk_button_set_image(GTK_BUTTON(button0), image); - g_signal_connect(button0, "clicked", G_CALLBACK(win_settings_show_filename_help), NULL); diff --git a/pkgs/applications/audio/axoloti/default.nix b/pkgs/applications/audio/axoloti/default.nix new file mode 100644 index 00000000000..986e476779c --- /dev/null +++ b/pkgs/applications/audio/axoloti/default.nix @@ -0,0 +1,101 @@ +{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, unzip +, gnumake, gcc-arm-embedded, dfu-util-axoloti, jdk, ant, libfaketime }: + +stdenv.mkDerivation rec { + version = "1.0.12-1"; + name = "axoloti-${version}"; + + src = fetchFromGitHub { + owner = "axoloti"; + repo = "axoloti"; + rev = "${version}"; + sha256 = "13njmv8zac0kaaxgkv4y4zfjcclafn9cw0m8lj2k4926wnwjmf50"; + }; + + chibi_version = "2.6.9"; + chibi_name = "ChibiOS_${chibi_version}"; + + chibios = fetchurl { + url = "mirror://sourceforge/project/chibios/ChibiOS_RT%20stable/Version%20${chibi_version}/${chibi_name}.zip"; + sha256 = "0lb5s8pkj80mqhsy47mmq0lqk34s2a2m3xagzihalvabwd0frhlj"; + }; + + buildInputs = [ makeWrapper unzip gcc-arm-embedded dfu-util-axoloti jdk ant libfaketime ]; + + patchPhase = '' + unzip ${chibios} + mv ${chibi_name} chibios + (cd chibios/ext; unzip -q -o fatfs-0.9-patched.zip) + + # Remove source of non-determinism in ChibiOS + substituteInPlace "chibios/os/various/shell.c" \ + --replace "#ifdef __DATE__" "#if 0" + + # Hardcode full path to compiler tools + for f in "firmware/Makefile.patch" \ + "firmware/Makefile" \ + "firmware/flasher/Makefile" \ + "firmware/mounter/Makefile"; do + substituteInPlace "$f" \ + --replace "arm-none-eabi-" "${gcc-arm-embedded}/bin/arm-none-eabi-" + done + + # Hardcode path to "make" + for f in "firmware/compile_firmware_linux.sh" \ + "firmware/compile_patch_linux.sh"; do + substituteInPlace "$f" \ + --replace "make" "${gnumake}/bin/make" + done + + # Hardcode dfu-util path + substituteInPlace "platform_linux/upload_fw_dfu.sh" \ + --replace "/bin/dfu-util" "" + substituteInPlace "platform_linux/upload_fw_dfu.sh" \ + --replace "./dfu-util" "${dfu-util-axoloti}/bin/dfu-util" + + # Fix build version + substituteInPlace "build.xml" \ + --replace "(git missing)" "${version}" + + # Remove build time + substituteInPlace "build.xml" \ + --replace "" "" + substituteInPlace "build.xml" \ + --replace \ + '' \ + '' + substituteInPlace "build.xml" \ + --replace "" "" + substituteInPlace "build.xml" \ + --replace \ + '{line.separator}' \ + '{line.separator} ' + ''; + + buildPhase = '' + find . -exec touch -d '1970-01-01 00:00' {} \; + (cd platform_linux; sh compile_firmware.sh) + faketime "1970-01-01 00:00:00" ant -Dbuild.runtime=true + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/axoloti + + cp -r doc firmware chibios platform_linux CMSIS *.txt $out/share/axoloti/ + install -vD dist/Axoloti.jar $out/share/axoloti/ + + makeWrapper ${jdk}/bin/java $out/bin/axoloti --add-flags "-Daxoloti_release=$out/share/axoloti -Daxoloti_runtime=$out/share/axoloti -jar $out/share/axoloti/Axoloti.jar" + ''; + + meta = with stdenv.lib; { + homepage = http://www.axoloti.com; + description = '' + Sketching embedded digital audio algorithms. + + To fix permissions of the Axoloti USB device node, add a similar udev rule to services.udev.extraRules: + SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="0442", OWNER="someuser", GROUP="somegroup" + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ TealG ]; + }; +} diff --git a/pkgs/applications/audio/axoloti/dfu-util.nix b/pkgs/applications/audio/axoloti/dfu-util.nix new file mode 100644 index 00000000000..2076e45de54 --- /dev/null +++ b/pkgs/applications/audio/axoloti/dfu-util.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, pkgconfig, libusb1-axoloti }: + +stdenv.mkDerivation rec { + name="dfu-util-${version}"; + version = "0.8"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libusb1-axoloti ]; + + src = fetchurl { + url = "http://dfu-util.sourceforge.net/releases/${name}.tar.gz"; + sha256 = "0n7h08avlzin04j93m6hkq9id6hxjiiix7ff9gc2n89aw6dxxjsm"; + }; + + meta = with stdenv.lib; { + description = "Device firmware update (DFU) USB programmer"; + longDescription = '' + dfu-util is a program that implements the host (PC) side of the USB + DFU 1.0 and 1.1 (Universal Serial Bus Device Firmware Upgrade) protocol. + + DFU is intended to download and upload firmware to devices connected over + USB. It ranges from small devices like micro-controller boards up to mobile + phones. With dfu-util you are able to download firmware to your device or + upload firmware from it. + ''; + homepage = http://dfu-util.gnumonks.org/; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ ]; + }; +} diff --git a/pkgs/applications/audio/axoloti/libusb1.nix b/pkgs/applications/audio/axoloti/libusb1.nix new file mode 100644 index 00000000000..cf71c006046 --- /dev/null +++ b/pkgs/applications/audio/axoloti/libusb1.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }: + +stdenv.mkDerivation rec { + name = "libusb-1.0.19"; + + src = fetchurl { + url = "mirror://sourceforge/libusb/${name}.tar.bz2"; + sha256 = "0h38p9rxfpg9vkrbyb120i1diq57qcln82h5fr7hvy82c20jql3c"; + }; + + outputs = [ "out" "dev" ]; # get rid of propagating systemd closure + + buildInputs = [ pkgconfig ]; + propagatedBuildInputs = + stdenv.lib.optional stdenv.isLinux systemd ++ + stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ]; + + patches = [ + (fetchpatch { + name = "libusb.stdfu.patch"; + url = "https://raw.githubusercontent.com/axoloti/axoloti/1.0.12/platform_linux/src/libusb.stdfu.patch"; + sha256 = "194j7j61i4q6x0ihm9ms8dxd4vliw20n2rj6cm9h17qzdl9xr33d"; + }) + ]; + + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; + + preFixup = stdenv.lib.optionalString stdenv.isLinux '' + sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la + ''; + + meta = { + homepage = http://www.libusb.info; + description = "User-space USB library"; + platforms = stdenv.lib.platforms.unix; + maintainers = [ ]; + }; +} diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix index e3cef30ccda..deaa3f98e52 100644 --- a/pkgs/applications/audio/baudline/default.nix +++ b/pkgs/applications/audio/baudline/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchurl, libXmu, libXt, libX11, libXext, libXxf86vm, jack +{ stdenv, fetchurl, libXmu, libXt, libX11, libXext, libXxf86vm, libjack2 , makeWrapper }: let rpath = stdenv.lib.makeLibraryPath - [ libXmu libXt libX11 libXext libXxf86vm jack ]; + [ libXmu libXt libX11 libXext libXxf86vm libjack2 ]; in stdenv.mkDerivation rec { name = "baudline-${version}"; diff --git a/pkgs/applications/audio/bitmeter/default.nix b/pkgs/applications/audio/bitmeter/default.nix index ca3148f0e0a..32daf000dc5 100644 --- a/pkgs/applications/audio/bitmeter/default.nix +++ b/pkgs/applications/audio/bitmeter/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7"; }; - buildInputs = [ libjack2 gtk2 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 gtk2 ]; meta = with stdenv.lib; { homepage = http://devel.tlrmx.org/audio/bitmeter/; diff --git a/pkgs/applications/audio/bitwig-studio/default.nix b/pkgs/applications/audio/bitwig-studio/default.nix index af0d2bbd0e9..c597e42eaa6 100644 --- a/pkgs/applications/audio/bitwig-studio/default.nix +++ b/pkgs/applications/audio/bitwig-studio/default.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { name = "bitwig-studio-${version}"; - version = "2.0"; + version = "2.1.3"; src = fetchurl { url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb"; - sha256 = "1m7wdr0f9xi9s7q8vd66hy7fj1k0j3y5ln2yqbjwr76r9g6gkzas"; + sha256 = "0blfw7dayl1wzys11mdixlkbr1p1d5rnwrvim1hblfpnw2zmlslb"; }; nativeBuildInputs = [ dpkg makeWrapper ]; @@ -80,6 +80,9 @@ stdenv.mkDerivation rec { ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio cp -r usr/share $out/share + substitute usr/share/applications/bitwig-studio.desktop \ + $out/share/applications/bitwig-studio.desktop \ + --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix index 3b94235889c..42e99fa5186 100644 --- a/pkgs/applications/audio/bristol/default.nix +++ b/pkgs/applications/audio/bristol/default.nix @@ -9,8 +9,9 @@ stdenv.mkDerivation rec { sha256 = "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - alsaLib libjack2 pkgconfig libpulseaudio xorg.libX11 xorg.libXext + alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext xorg.xproto ]; @@ -27,7 +28,7 @@ stdenv.mkDerivation rec { description = "A range of synthesiser, electric piano and organ emulations"; homepage = http://bristol.sourceforge.net; license = licenses.gpl3; - platforms = platforms.linux; + platforms = ["x86_64-linux" "i686-linux"]; maintainers = [ maintainers.goibhniu ]; }; } diff --git a/pkgs/applications/audio/bs1770gain/default.nix b/pkgs/applications/audio/bs1770gain/default.nix index 0241e38281b..2401a610156 100644 --- a/pkgs/applications/audio/bs1770gain/default.nix +++ b/pkgs/applications/audio/bs1770gain/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A audio/video loudness scanner implementing ITU-R BS.1770"; license = licenses.gpl2Plus; - homepage = "http://bs1770gain.sourceforge.net/"; + homepage = http://bs1770gain.sourceforge.net/; platforms = platforms.all; }; } diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix index e133df564d7..15fca59deee 100644 --- a/pkgs/applications/audio/calf/default.nix +++ b/pkgs/applications/audio/calf/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://calf.sourceforge.net; + homepage = http://calf-studio-gear.org; description = "A set of high quality open source audio plugins for musicians"; license = licenses.lgpl2; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix index 3231e3e5301..35fe510cbb2 100644 --- a/pkgs/applications/audio/cantata/default.nix +++ b/pkgs/applications/audio/cantata/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, cmake, vlc +{ stdenv, fetchFromGitHub, cmake, pkgconfig, vlc , withQt4 ? false, qt4 -, withQt5 ? true, qtbase, qtsvg, qttools, makeQtWrapper +, withQt5 ? true, qtbase, qtmultimedia, qtsvg, qttools # Cantata doesn't build with cdparanoia enabled so we disable that # default for now until I (or someone else) figure it out. @@ -34,72 +34,64 @@ assert withOnlineServices -> withTaglib; assert withReplaygain -> withTaglib; let - version = "2.0.1"; + version = "2.2.0"; pname = "cantata"; fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF"); fstats = x: map (fstat x); -in -stdenv.mkDerivation rec { + withUdisks = (withTaglib && withDevices); + +in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchFromGitHub { - owner = "CDrummond"; - repo = "cantata"; - rev = "v${version}"; - sha256 = "18fiz3cav41dpap42qwj9hwxf2k9fmhyg2r34yggxqi2cjlsil36"; + owner = "CDrummond"; + repo = "cantata"; + rev = "v${version}"; + sha256 = "1b633chgfs8rya78bzzck5zijna15d1y4nmrz4dcjp862ks5y5q6"; }; - buildInputs = - [ cmake vlc ] - ++ stdenv.lib.optional withQt4 qt4 - ++ stdenv.lib.optionals withQt5 [ qtbase qtsvg qttools ] + buildInputs = [ vlc ] + ++ stdenv.lib.optional withQt4 qt4 + ++ stdenv.lib.optionals withQt5 [ qtbase qtmultimedia qtsvg qttools ] ++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ] ++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ] - ++ stdenv.lib.optional withCdda cdparanoia - ++ stdenv.lib.optional withCddb libcddb - ++ stdenv.lib.optional withLame lame - ++ stdenv.lib.optional withMtp libmtp - ++ stdenv.lib.optional withMusicbrainz libmusicbrainz5 - ++ stdenv.lib.optional (withTaglib && withDevices) udisks2; + ++ stdenv.lib.optional withCdda cdparanoia + ++ stdenv.lib.optional withCddb libcddb + ++ stdenv.lib.optional withLame lame + ++ stdenv.lib.optional withMtp libmtp + ++ stdenv.lib.optional withMusicbrainz libmusicbrainz5 + ++ stdenv.lib.optional withUdisks udisks2; - nativeBuildInputs = stdenv.lib.optional withQt5 makeQtWrapper; + nativeBuildInputs = [ cmake pkgconfig ]; + + enableParallelBuilding = true; cmakeFlags = stdenv.lib.flatten [ - (fstat withQt5 "QT5") - (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ]) - (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ]) - (fstat withCdda "CDPARANOIA") - (fstat withCddb "CDDB") - (fstat withLame "LAME") - (fstat withMtp "MTP") - (fstat withMusicbrainz "MUSICBRAINZ") + (fstat withQt5 "QT5") + (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ]) + (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ]) + (fstat withCdda "CDPARANOIA") + (fstat withCddb "CDDB") + (fstat withLame "LAME") + (fstat withMtp "MTP") + (fstat withMusicbrainz "MUSICBRAINZ") (fstat withOnlineServices "ONLINE_SERVICES") - (fstat withDynamic "DYNAMIC") - (fstat withDevices "DEVICES_SUPPORT") - (fstat withHttpServer "HTTP_SERVER") - (fstat withStreams "STREAMS") + (fstat withDynamic "DYNAMIC") + (fstat withDevices "DEVICES_SUPPORT") + (fstat withHttpServer "HTTP_SERVER") + (fstat withStreams "STREAMS") + (fstat withUdisks "UDISKS2") "-DENABLE_HTTPS_SUPPORT=ON" - "-DENABLE_UDISKS2=ON" ]; - # This is already fixed upstream but not released yet. Maybe in version 2. - preConfigure = '' - sed -i -e 's/STRLESS/VERSION_LESS/g' cmake/FindTaglib.cmake - ''; - - postInstall = stdenv.lib.optionalString withQt5 '' - wrapQtProgram "$out/bin/cantata" - ''; - meta = with stdenv.lib; { - homepage = https://github.com/cdrummond/cantata; + homepage = https://github.com/cdrummond/cantata; description = "A graphical client for MPD"; - license = licenses.gpl3; - + license = licenses.gpl3; + maintainers = with maintainers; [ fuuzetsu peterhoeg ]; # Technically Cantata can run on Windows so if someone wants to # bother figuring that one out, be my guest. - platforms = platforms.linux; - maintainers = [ maintainers.fuuzetsu ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/audio/caps/default.nix b/pkgs/applications/audio/caps/default.nix index b5004291271..27724bc28e9 100644 --- a/pkgs/applications/audio/caps/default.nix +++ b/pkgs/applications/audio/caps/default.nix @@ -6,6 +6,14 @@ stdenv.mkDerivation rec { url = "http://www.quitte.de/dsp/caps_${version}.tar.bz2"; sha256 = "081zx0i2ysw5nmy03j60q9j11zdlg1fxws81kwanncdgayxgwipp"; }; + + patches = [ + (fetchurl { + url = "https://anonscm.debian.org/cgit/pkg-multimedia/caps.git/plain/debian/patches/0001-Avoid-ambiguity-in-div-invocation.patch"; + sha256 = "1b1pb5yfskiw8zi1lkj572l2ajpirh4amq538vggwvlpv1fqfway"; + }) + ]; + configurePhase = '' echo "PREFIX = $out" > defines.make ''; diff --git a/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch b/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch deleted file mode 100644 index 4c17846b99d..00000000000 --- a/pkgs/applications/audio/clementine/clementine-1.2.1-include-paths.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ur clementine-1.2.1-a/CMakeLists.txt clementine-1.2.1-b/CMakeLists.txt ---- clementine-1.2.1-a/CMakeLists.txt 2013-11-25 15:16:24.000000000 -0600 -+++ clementine-1.2.1-b/CMakeLists.txt 2013-12-30 17:01:48.470011058 -0600 -@@ -158,6 +158,10 @@ - include_directories(${TAGLIB_INCLUDE_DIRS}) - include_directories(${QJSON_INCLUDE_DIRS}) - include_directories(${GSTREAMER_INCLUDE_DIRS}) -+include_directories(${GSTREAMER_APP_INCLUDE_DIRS}) -+include_directories(${GSTREAMER_BASE_INCLUDE_DIRS}) -+include_directories(${GSTREAMER_CDDA_INCLUDE_DIRS}) -+include_directories(${GSTREAMER_TAG_INCLUDE_DIRS}) - include_directories(${GLIB_INCLUDE_DIRS}) - include_directories(${GLIBCONFIG_INCLUDE_DIRS}) - include_directories(${LIBXML_INCLUDE_DIRS}) diff --git a/pkgs/applications/audio/clementine/clementine-dbus-namespace.patch b/pkgs/applications/audio/clementine/clementine-dbus-namespace.patch deleted file mode 100644 index 2240debd0e4..00000000000 --- a/pkgs/applications/audio/clementine/clementine-dbus-namespace.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ec580cb815c16ec1ab43a469d5af7d51d8d03082 Mon Sep 17 00:00:00 2001 -From: Chocobozzz -Date: Wed, 16 Jul 2014 15:57:25 +0200 -Subject: [PATCH] No namespaces for DBus interfaces. Fixes #4401 - ---- - src/CMakeLists.txt | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 650fa74..775b0a5 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -892,11 +892,6 @@ optional_source(LINUX SOURCES widgets/osd_x11.cpp) - if(HAVE_DBUS) - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/dbus) - -- # Hack to get it to generate interfaces without namespaces - required -- # because otherwise org::freedesktop::UDisks and -- # org::freedesktop::UDisks::Device conflict. -- list(APPEND QT_DBUSXML2CPP_EXECUTABLE -N) -- - # MPRIS DBUS interfaces - qt4_add_dbus_adaptor(SOURCES - dbus/org.freedesktop.MediaPlayer.player.xml -@@ -964,6 +959,10 @@ if(HAVE_DBUS) - - # DeviceKit DBUS interfaces - if(HAVE_DEVICEKIT) -+ set_source_files_properties(dbus/org.freedesktop.UDisks.xml -+ PROPERTIES NO_NAMESPACE dbus/udisks) -+ set_source_files_properties(dbus/org.freedesktop.UDisks.Device.xml -+ PROPERTIES NO_NAMESPACE dbus/udisksdevice) - qt4_add_dbus_interface(SOURCES - dbus/org.freedesktop.UDisks.xml - dbus/udisks) diff --git a/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch b/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch new file mode 100644 index 00000000000..226536a13ba --- /dev/null +++ b/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 23070d9..83b6772 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -275,8 +275,6 @@ optional_component(LIBPULSE ON "Pulse audio integration" + optional_component(VISUALISATIONS ON "Visualisations") + + if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND) +- message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify " +- "code must be compiled in") + elseif(CRYPTOPP_FOUND) + set(HAVE_CRYPTOPP ON) + set(HAVE_SPOTIFY_DOWNLOADER ON) +@@ -434,7 +432,6 @@ if(HAVE_BREAKPAD) + endif(HAVE_BREAKPAD) + + if(HAVE_SPOTIFY_BLOB) +- add_subdirectory(ext/clementine-spotifyblob) + endif(HAVE_SPOTIFY_BLOB) + + if(HAVE_MOODBAR) diff --git a/pkgs/applications/audio/clementine/clementine-spotify-blob.patch b/pkgs/applications/audio/clementine/clementine-spotify-blob.patch index d41720c9021..344fc31d70d 100644 --- a/pkgs/applications/audio/clementine/clementine-spotify-blob.patch +++ b/pkgs/applications/audio/clementine/clementine-spotify-blob.patch @@ -1,25 +1,13 @@ -From d9ebe7ec09a48b1ea505ccc33686b72642f083f4 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 4 May 2015 19:59:38 -0500 -Subject: [PATCH] Runtime selection of Spotify blob - ---- - src/internet/spotifyservice.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/internet/spotifyservice.cpp b/src/internet/spotifyservice.cpp -index 543744e..d987a36 100644 ---- a/src/internet/spotifyservice.cpp -+++ b/src/internet/spotifyservice.cpp -@@ -65,7 +65,7 @@ SpotifyService::SpotifyService(Application* app, InternetModel* parent) +diff --git a/src/internet/spotify/spotifyservice.cpp b/src/internet/spotify/spotifyservice.cpp +index 88c7383..6e0893c 100644 +--- a/src/internet/spotify/spotifyservice.cpp ++++ b/src/internet/spotify/spotifyservice.cpp +@@ -94,7 +94,7 @@ SpotifyService::SpotifyService(Application* app, InternetModel* parent) system_blob_path_ = QCoreApplication::applicationDirPath() + - "/../PlugIns/clementine-spotifyblob"; + "/../PlugIns/clementine-spotifyblob"; #else - system_blob_path_ = QCoreApplication::applicationDirPath() + + system_blob_path_ = qgetenv("CLEMENTINE_SPOTIFYBLOB") + - "/clementine-spotifyblob" CMAKE_EXECUTABLE_SUFFIX; + "/clementine-spotifyblob" CMAKE_EXECUTABLE_SUFFIX; #endif --- -2.3.6 - diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix index 78841da46c5..affddd90784 100644 --- a/pkgs/applications/audio/clementine/default.nix +++ b/pkgs/applications/audio/clementine/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst-plugins-base -, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist -, usbmuxd, libmtp, gvfs, libcdio, libspotify, protobuf, qca2, pkgconfig -, sparsehash, config, makeWrapper, runCommand, gst_plugins }: +{ stdenv, fetchurl, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm +, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp +, libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf +, qca2, pkgconfig, sparsehash, config, makeWrapper, runCommand, gst_plugins }: let withSpotify = config.clementine.spotify or false; @@ -10,32 +10,38 @@ let withCD = config.clementine.cd or true; withCloud = config.clementine.cloud or true; - version = "1.2.3"; + version = "1.3.1"; exeName = "clementine"; src = fetchurl { - url = https://github.com/clementine-player/Clementine/archive/1.2.3.tar.gz; - sha256 = "1gx1109i4pylz6x7gvp4rdzc6dvh0w6in6hfbygw01d08l26bxbx"; + url = https://github.com/clementine-player/Clementine/archive/1.3.1.tar.gz; + sha256 = "0z7k73wyz54c3020lb6x2dgw0vz4ri7wcl3vs03qdj5pk8d971gq"; }; patches = [ - ./clementine-1.2.1-include-paths.patch - ./clementine-dbus-namespace.patch ./clementine-spotify-blob.patch + # Required so as to avoid adding libspotify as a build dependency (as it is + # unfree and thus would prevent us from having a free package). + ./clementine-spotify-blob-remove-from-build.patch ]; + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ boost - cmake + chromaprint fftw gettext glew - gst-plugins-base - gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gstreamer gvfs + libechonest liblastfm - pkgconfig + libpulseaudio + pcre + projectm protobuf qca2 qjson @@ -48,18 +54,25 @@ let ++ stdenv.lib.optionals (withCD) [libcdio] ++ stdenv.lib.optionals (withCloud) [sparsehash]; + postPatch = '' + sed -i src/CMakeLists.txt \ + -e 's,-Werror,,g' \ + -e 's,-Wno-unknown-warning-option,,g' \ + -e 's,-Wno-unused-private-field,,g' + sed -i CMakeLists.txt \ + -e 's,libprotobuf.a,protobuf,g' + ''; + free = stdenv.mkDerivation { name = "clementine-free-${version}"; - inherit patches src buildInputs; + inherit src patches nativeBuildInputs buildInputs postPatch; + + cmakeFlags = [ "-DUSE_SYSTEM_PROJECTM=ON" ]; + enableParallelBuilding = true; - postPatch = '' - sed -i src/CMakeLists.txt \ - -e 's,-Werror,,g' \ - -e 's,-Wno-unknown-warning-option,,g' \ - -e 's,-Wno-unused-private-field,,g' - ''; + meta = with stdenv.lib; { - homepage = "http://www.clementine-player.org"; + homepage = http://www.clementine-player.org; description = "A multiplatform music player"; license = licenses.gpl3Plus; platforms = platforms.linux; @@ -71,7 +84,12 @@ let blob = stdenv.mkDerivation { name = "clementine-blob-${version}"; # Use the same patches and sources as Clementine - inherit patches src; + inherit src nativeBuildInputs postPatch; + + patches = [ + ./clementine-spotify-blob.patch + ]; + buildInputs = buildInputs ++ [ libspotify ]; # Only build and install the Spotify blob preBuild = '' @@ -84,7 +102,7 @@ let ''; enableParallelBuilding = true; meta = with stdenv.lib; { - homepage = "http://www.clementine-player.org"; + homepage = http://www.clementine-player.org; description = "Spotify integration for Clementine"; # The blob itself is Apache-licensed, although libspotify is unfree. license = licenses.asl20; @@ -104,22 +122,20 @@ runCommand "clementine-${version}" dontPatchELF = true; dontStrip = true; meta = { - homepage = "http://www.clementine-player.org"; description = "A multiplatform music player" + " (" + (optionalString withSpotify "with Spotify, ") + "with gstreamer plugins: " + concatStrings (intersperse ", " (map (x: x.name) gst_plugins)) + ")"; license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = [ maintainers.ttuegel ]; + inherit (free.meta) homepage platforms maintainers; }; } '' mkdir -p $out/bin makeWrapper "$free/bin/${exeName}" "$out/bin/${exeName}" \ ${optionalString withSpotify "--set CLEMENTINE_SPOTIFYBLOB \"$blob/libexec/clementine\""} \ - --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" mkdir -p $out/share for dir in applications icons kde4; do diff --git a/pkgs/applications/audio/clerk/default.nix b/pkgs/applications/audio/clerk/default.nix index babbcc51e40..4da2228c6c1 100644 --- a/pkgs/applications/audio/clerk/default.nix +++ b/pkgs/applications/audio/clerk/default.nix @@ -13,13 +13,11 @@ stdenv.mkDerivation { buildInputs = [ makeWrapper pythonPackages.mpd2 ]; - buildPhase = '' - echo skipping build phase... - ''; + dontBuild = true; installPhase = '' DESTDIR=$out PREFIX=/ make install - wrapProgram $out/bin/clerk $out/bin/clerk \ + wrapProgram $out/bin/clerk \ --prefix PATH : "${stdenv.lib.makeBinPath [ rofi mpc_cli perl utillinux libnotify ]}" ''; diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix index c9346248438..c0dd2e92178 100644 --- a/pkgs/applications/audio/cmus/default.nix +++ b/pkgs/applications/audio/cmus/default.nix @@ -116,11 +116,14 @@ stdenv.mkDerivation rec { "CONFIG_WAV=y" ] ++ concatMap (a: a.flags) opts); - buildInputs = [ ncurses pkgconfig ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses ] ++ stdenv.lib.optional stdenv.cc.isClang clangGCC ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv CoreAudio ] ++ concatMap (a: a.deps) opts; + makeFlags = [ "LD=$(CC)" ]; + meta = with stdenv.lib; { description = "Small, fast and powerful console music player for Linux and *BSD"; homepage = https://cmus.github.io/; diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix index 976ecb675e7..dc0c8eabcac 100644 --- a/pkgs/applications/audio/csound/default.nix +++ b/pkgs/applications/audio/csound/default.nix @@ -1,19 +1,20 @@ -{ stdenv, fetchFromGitHub, cmake, libsndfile, flex, bison, boost +{ stdenv, fetchFromGitHub, cmake, libsndfile, libsamplerate, flex, bison, boost, gettext , alsaLib ? null , libpulseaudio ? null +, libjack2 ? null +, liblo ? null +, ladspa-sdk ? null +, fluidsynth ? null +# , gmm ? null # opcodes don't build with gmm 5.1 +, eigen ? null +, curl ? null , tcltk ? null - -# maybe csound can be compiled with support for those, see configure output -# , ladspa ? null -# , fluidsynth ? null -# , jack ? null -# , gmm ? null -# , wiiuse ? null +, fltk ? null }: stdenv.mkDerivation rec { - name = "csound-6.08.1"; - version = "6.08.1"; + name = "csound-${version}"; + version = "6.09.0"; enableParallelBuilding = true; @@ -23,11 +24,18 @@ stdenv.mkDerivation rec { owner = "csound"; repo = "csound"; rev = version; - sha256 = "03xnva17sw35ga3n96x1zdfgw913dga1hccly85wzfn0kxz4rld9"; + sha256 = "1vfb0mab89psfwidadjrn5mbzq3bhjbyrrmyp98yp0xm6a8cssih"; }; - nativeBuildInputs = [ cmake flex bison ]; - buildInputs = [ libsndfile alsaLib libpulseaudio tcltk boost ]; + cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp + ++ stdenv.lib.optional (libjack2 != null) "-DJACK_HEADER=${libjack2}/include/jack/jack.h"; + + nativeBuildInputs = [ cmake flex bison gettext ]; + buildInputs = [ libsndfile libsamplerate boost ] + ++ builtins.filter (optional: optional != null) [ + alsaLib libpulseaudio libjack2 + liblo ladspa-sdk fluidsynth eigen + curl tcltk fltk ]; meta = with stdenv.lib; { description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms"; diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix index 07f9e565c2a..1552982cf1a 100644 --- a/pkgs/applications/audio/deadbeef/default.nix +++ b/pkgs/applications/audio/deadbeef/default.nix @@ -91,7 +91,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Ultimate Music Player for GNU/Linux"; - homepage = "http://deadbeef.sourceforge.net/"; + homepage = http://deadbeef.sourceforge.net/; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.abbradar ]; diff --git a/pkgs/applications/audio/deadbeef/plugins/mpris2.nix b/pkgs/applications/audio/deadbeef/plugins/mpris2.nix index 871621d3bb1..c6509b5f460 100644 --- a/pkgs/applications/audio/deadbeef/plugins/mpris2.nix +++ b/pkgs/applications/audio/deadbeef/plugins/mpris2.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "MPRISv2 plugin for the DeaDBeeF music player"; - homepage = "https://github.com/Serranya/deadbeef-mpris2-plugin/"; + homepage = https://github.com/Serranya/deadbeef-mpris2-plugin/; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.abbradar ]; diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix index d006f2c0178..918accb4e16 100644 --- a/pkgs/applications/audio/dfasma/default.nix +++ b/pkgs/applications/audio/dfasma/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmakeHook, makeQtWrapper }: +{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }: let @@ -37,9 +37,9 @@ in stdenv.mkDerivation rec { owner = "gillesdegottex"; }; - buildInputs = [ fftw libsndfile qtbase qtmultimedia qmakeHook ]; + buildInputs = [ fftw libsndfile qtbase qtmultimedia ]; - nativeBuildInputs = [ makeQtWrapper ]; + nativeBuildInputs = [ qmake ]; postPatch = '' substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}' @@ -53,10 +53,6 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - postInstall = '' - wrapQtProgram "$out/bin/dfasma" - ''; - meta = with stdenv.lib; { description = "Analyse and compare audio files in time and frequency"; longDescription = '' diff --git a/pkgs/applications/audio/dirt/default.nix b/pkgs/applications/audio/dirt/default.nix index bb317ca7a40..740d6d8d7e0 100644 --- a/pkgs/applications/audio/dirt/default.nix +++ b/pkgs/applications/audio/dirt/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An unimpressive thingie for playing bits of samples with some level of accuracy"; - homepage = "https://github.com/tidalcycles/Dirt"; + homepage = https://github.com/tidalcycles/Dirt; license = licenses.gpl3; maintainers = with maintainers; [ anderspapitto ]; platforms = with platforms; linux; diff --git a/pkgs/applications/audio/distrho/default.nix b/pkgs/applications/audio/distrho/default.nix index 5d4e19700d8..a80cc36b216 100644 --- a/pkgs/applications/audio/distrho/default.nix +++ b/pkgs/applications/audio/distrho/default.nix @@ -2,20 +2,21 @@ , libxslt, lv2, pkgconfig, premake3, xorg, ladspa-sdk }: stdenv.mkDerivation rec { - name = "distrho-ports-unstable-2016-06-26"; + name = "distrho-ports-unstable-2017-08-04"; src = fetchgit { url = "https://github.com/DISTRHO/DISTRHO-Ports.git"; - rev = "e3969853ec9ba897c50ac060f0167313e2a18b29"; - sha256 = "0id4p8dlnlv5271yvmyawfr754nzah7xhvjkj633lw5yr3mq707m"; + rev = "f591a1066cd3929536699bb516caa4b5efd9d025"; + sha256 = "1qjnmpmwbq2zpwn8v1dmqn3bjp2ykj5p89fkjax7idgpx1cg7pp9"; }; patchPhase = '' sed -e "s#@./scripts#sh scripts#" -i Makefile ''; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - alsaLib fftwSinglePrec freetype libjack2 pkgconfig premake3 + alsaLib fftwSinglePrec freetype libjack2 premake3 xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext xorg.libXinerama xorg.libXrender ladspa-sdk ]; diff --git a/pkgs/applications/audio/dr14_tmeter/default.nix b/pkgs/applications/audio/dr14_tmeter/default.nix new file mode 100644 index 00000000000..3e315e2d1a7 --- /dev/null +++ b/pkgs/applications/audio/dr14_tmeter/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, python3Packages, pkgs }: + +python3Packages.buildPythonApplication rec { + name = "dr14_tmeter-${version}"; + version = "1.0.16"; + + disabled = !python3Packages.isPy3k; + + src = fetchFromGitHub { + owner = "simon-r"; + repo = "dr14_t.meter"; + rev = "v${version}"; + sha256 = "1nfsasi7kx0myxkahbd7rz8796mcf5nsadrsjjpx2kgaaw5nkv1m"; + }; + + propagatedBuildInputs = with pkgs; [ + python3Packages.numpy flac vorbis-tools ffmpeg faad2 lame + ]; + + # There are no tests + doCheck = false; + + meta = with stdenv.lib; { + description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation"; + license = licenses.gpl3Plus; + homepage = http://dr14tmeter.sourceforge.net/; + maintainers = [ maintainers.adisbladis ]; + }; +} diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix index a52301c34d7..c42d290c599 100644 --- a/pkgs/applications/audio/drumgizmo/default.nix +++ b/pkgs/applications/audio/drumgizmo/default.nix @@ -1,26 +1,26 @@ -{ stdenv, fetchurl, alsaLib, expat, glib, libjack2, libX11, libpng +{ stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng , libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler }: stdenv.mkDerivation rec { - version = "0.9.12"; + version = "0.9.14"; name = "drumgizmo-${version}"; src = fetchurl { url = "http://www.drumgizmo.org/releases/${name}/${name}.tar.gz"; - sha256 = "0kqrss9v3vpznmh4jgi3783wmprr645s3i485jlvdscpysjfkh6z"; + sha256 = "1q2jghjz0ygaja8dgvxp914if8yyzpa204amdcwb9yyinpxsahz4"; }; configureFlags = [ "--enable-lv2" ]; buildInputs = [ - alsaLib expat glib libjack2 libX11 libpng libpthreadstubs libsmf - libsndfile lv2 pkgconfig zita-resampler + alsaLib expat glib libjack2 libXext libX11 libpng libpthreadstubs + libsmf libsndfile lv2 pkgconfig zita-resampler ]; meta = with stdenv.lib; { description = "An LV2 sample based drum plugin"; - homepage = http://www.drumgizmo.org; + homepage = https://www.drumgizmo.org; license = licenses.lgpl3; platforms = platforms.linux; maintainers = [ maintainers.goibhniu maintainers.nico202 ]; diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix index 064feeb02a3..fb62b6ea3de 100644 --- a/pkgs/applications/audio/drumkv1/default.nix +++ b/pkgs/applications/audio/drumkv1/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "drumkv1-${version}"; - version = "0.8.1"; + version = "0.8.4"; src = fetchurl { url = "mirror://sourceforge/drumkv1/${name}.tar.gz"; - sha256 = "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq"; + sha256 = "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9"; }; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ]; diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix index e9186cd3242..f9c9dc2faef 100644 --- a/pkgs/applications/audio/easytag/default.nix +++ b/pkgs/applications/audio/easytag/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { preFixup = '' wrapProgram $out/bin/easytag \ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \ - --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules" ''; NIX_LDFLAGS = "-lid3tag -lz"; @@ -24,12 +24,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper pkgconfig intltool ]; buildInputs = [ gtk3 glib libid3tag id3lib taglib libvorbis libogg flac - itstool libxml2 gsettings_desktop_schemas gnome3.defaultIconTheme gnome3.dconf + itstool libxml2 gsettings_desktop_schemas gnome3.defaultIconTheme (stdenv.lib.getLib gnome3.dconf) ]; meta = with stdenv.lib; { description = "View and edit tags for various audio files"; - homepage = "http://projects.gnome.org/easytag/"; + homepage = http://projects.gnome.org/easytag/; license = licenses.gpl2Plus; maintainers = with maintainers; [ fuuzetsu ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/eq10q/default.nix b/pkgs/applications/audio/eq10q/default.nix index a546441996e..3faeeb12d4c 100644 --- a/pkgs/applications/audio/eq10q/default.nix +++ b/pkgs/applications/audio/eq10q/default.nix @@ -1,13 +1,14 @@ { stdenv, fetchurl, cmake, fftw, gtkmm2, libxcb, lv2, pkgconfig, xorg }: stdenv.mkDerivation rec { name = "eq10q-${version}"; - version = "2.1"; + version = "2.2"; src = fetchurl { url = "mirror://sourceforge/project/eq10q/${name}.tar.gz"; - sha256 = "0brrr6ydsppi4zzn3vcgl0zgq5r8jmlcap1hpr3k43yvlwggb880"; + sha256 = "16mhcav8gwkp29k9ki4dlkajlcgh1i2wvldabxb046d37dq4qzrk"; }; - buildInputs = [ cmake fftw gtkmm2 libxcb lv2 pkgconfig xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake fftw gtkmm2 libxcb lv2 xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence ]; installFlags = '' DESTDIR=$(out) diff --git a/pkgs/applications/audio/espeak-ng/default.nix b/pkgs/applications/audio/espeak-ng/default.nix index cb2e15bc5b2..889506deb76 100644 --- a/pkgs/applications/audio/espeak-ng/default.nix +++ b/pkgs/applications/audio/espeak-ng/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak"; - homepage = "https://github.com/espeak-ng/espeak-ng"; + homepage = https://github.com/espeak-ng/espeak-ng; license = licenses.gpl3; maintainers = with maintainers; [ aske ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix index 0faf4841c71..6b5101b50b5 100644 --- a/pkgs/applications/audio/espeak/default.nix +++ b/pkgs/applications/audio/espeak/default.nix @@ -10,7 +10,11 @@ stdenv.mkDerivation rec { buildInputs = [ unzip portaudio ]; - patchPhase = '' + patches = [ + ./gcc6.patch + ]; + + prePatch = '' sed -e s,/bin/ln,ln,g -i src/Makefile sed -e 's,^CXXFLAGS=-O2,CXXFLAGS=-O2 -D PATH_ESPEAK_DATA=\\\"$(DATADIR)\\\",' -i src/Makefile '' + (if portaudio.api_version == 19 then '' diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix index 524a95bcca0..8d7db50fd32 100644 --- a/pkgs/applications/audio/espeak/edit.nix +++ b/pkgs/applications/audio/espeak/edit.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli"; }; - buildInputs = [ pkgconfig unzip portaudio wxGTK ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ unzip portaudio wxGTK ]; # TODO: # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought @@ -20,9 +21,11 @@ stdenv.mkDerivation rec { # chmod +w ~/espeak-data patches = [ + ./gcc6.patch ./espeakedit-fix-makefile.patch ./espeakedit-configurable-sox-path.patch ./espeakedit-configurable-path-espeak-data.patch + ./espeakedit-gcc6.patch ]; postPatch = '' diff --git a/pkgs/applications/audio/espeak/espeakedit-gcc6.patch b/pkgs/applications/audio/espeak/espeakedit-gcc6.patch new file mode 100644 index 00000000000..1e0cb20bbf7 --- /dev/null +++ b/pkgs/applications/audio/espeak/espeakedit-gcc6.patch @@ -0,0 +1,57 @@ +diff --git i/src/compiledata.cpp w/src/compiledata.cpp +index f1bcb30..30e9e2d 100755 +--- i/src/compiledata.cpp ++++ w/src/compiledata.cpp +@@ -212,7 +212,7 @@ enum { + kTUNE_SPLIT, + }; + +-static const char utf8_bom[] = {0xef,0xbb,0xbf,0}; ++static const char utf8_bom[] = {char(0xef),char(0xbb),char(0xbf),0}; + + static keywtab_t k_intonation[] = { + {"tune", 0, kTUNE}, +diff --git i/src/espeakedit.cpp w/src/espeakedit.cpp +index bde03ea..071689d 100755 +--- i/src/espeakedit.cpp ++++ w/src/espeakedit.cpp +@@ -744,7 +744,7 @@ void MyFrame::OnTools(wxCommandEvent& event) + int debug_flag=0; + char fname_log[sizeof(path_dsource)+12]; + char err_fname[sizeof(path_home)+15]; +- static const char utf8_bom[] = {0xef,0xbb,0xbf,0}; ++ static const char utf8_bom[] = {char(0xef),char(0xbb),char(0xbf),0}; + + switch(event.GetId()) + { +diff --git i/src/extras.cpp w/src/extras.cpp +index fa6ac3b..ee68f59 100644 +--- i/src/extras.cpp ++++ w/src/extras.cpp +@@ -335,16 +335,16 @@ void Lexicon_It(int pass) + static const char *vowels1 = "aeiou"; + static const char *vowels2 = "aeou"; + +- static const char ex1[] = {'a',0xc3,0xac,0}; // aì +- static const char ex2[] = {'e',0xc3,0xac,0}; // eì +- static const char ex3[] = {0xc3,0xb9,'a',0}; // ùa +- static const char ex4[] = {0xc3,0xb9,'e',0}; // ùe +- static const char ex5[] = {0xc3,0xb9,'i',0}; // ùi +- static const char ex6[] = {0xc3,0xb9,'o',0}; // ùo +- static const char ex7[] = {'c',0xc3,0xac,'a',0}; // cìa +- static const char ex8[] = {'c',0xc3,0xac,'o',0}; // cìo +- static const char ex9[] = {'c',0xc3,0xac,'u',0}; // cìu +- static const char ex10[] = {'g','l',0xc3,0xac,0}; // glì ++ static const char ex1[] = {'a',char(0xc3),char(0xac),0}; // aì ++ static const char ex2[] = {'e',char(0xc3),char(0xac),0}; // eì ++ static const char ex3[] = {char(0xc3),char(0xb9),'a',0}; // ùa ++ static const char ex4[] = {char(0xc3),char(0xb9),'e',0}; // ùe ++ static const char ex5[] = {char(0xc3),char(0xb9),'i',0}; // ùi ++ static const char ex6[] = {char(0xc3),char(0xb9),'o',0}; // ùo ++ static const char ex7[] = {'c',char(0xc3),char(0xac),'a',0}; // cìa ++ static const char ex8[] = {'c',char(0xc3),char(0xac),'o',0}; // cìo ++ static const char ex9[] = {'c',char(0xc3),char(0xac),'u',0}; // cìu ++ static const char ex10[] = {'g','l',char(0xc3),char(0xac),0}; // glì + + + static const char *exceptions[] = {ex1, ex2, ex3, ex4, ex5, ex6, ex7, ex8, ex9, ex10, NULL}; diff --git a/pkgs/applications/audio/espeak/gcc6.patch b/pkgs/applications/audio/espeak/gcc6.patch new file mode 100644 index 00000000000..58036ecbe50 --- /dev/null +++ b/pkgs/applications/audio/espeak/gcc6.patch @@ -0,0 +1,13 @@ +diff --git c/src/tr_languages.cpp i/src/tr_languages.cpp +index ec210a5..9503f47 100755 +--- c/src/tr_languages.cpp ++++ i/src/tr_languages.cpp +@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = { + 0x200d, 1, // zero width joiner + 0, 0 }; + +-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 ++const char string_ordinal[] = {char(0xc2),char(0xba),0}; // masculine ordinal character, UTF-8 + + + static Translator* NewTranslator(void) diff --git a/pkgs/applications/audio/faust/faust1.nix b/pkgs/applications/audio/faust/faust1.nix index b9e98281a7c..4875ee8b57d 100644 --- a/pkgs/applications/audio/faust/faust1.nix +++ b/pkgs/applications/audio/faust/faust1.nix @@ -158,7 +158,8 @@ let stdenv.mkDerivation ((faust2ApplBase args) // { - buildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper ]; propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs; diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix index 6289688c53c..901df19ebf5 100644 --- a/pkgs/applications/audio/faust/faust2.nix +++ b/pkgs/applications/audio/faust/faust2.nix @@ -1,6 +1,6 @@ { stdenv , coreutils -, fetchurl +, fetchFromGitHub , makeWrapper , pkgconfig , clang @@ -16,11 +16,13 @@ with stdenv.lib.strings; let - version = "2.0.a51"; + version = "2.1.0"; - src = fetchurl { - url = "mirror://sourceforge/project/faudiostream/faust-${version}.tgz"; - sha256 = "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf"; + src = fetchFromGitHub { + owner = "grame-cncm"; + repo = "faust"; + rev = "v${builtins.replaceStrings ["."] ["-"] version}"; + sha256 = "1pmiwy287g79ipz9pppnkfrdgls3l912kpkr7dfymk9wk5y5di9m"; }; meta = with stdenv.lib; { @@ -67,7 +69,7 @@ let # # For now, fix this by 1) pinning the llvm version; 2) manually setting LLVM_VERSION # to something the makefile will recognize. - sed '52iLLVM_VERSION=3.8.0' -i compiler/Makefile.unix + sed '52iLLVM_VERSION=${stdenv.lib.getVersion llvm}' -i compiler/Makefile.unix ''; # Remove most faust2appl scripts since they won't run properly @@ -185,7 +187,8 @@ let stdenv.mkDerivation ((faust2ApplBase args) // { - buildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper ]; propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs; @@ -194,8 +197,8 @@ let # export parts of the build environment for script in "$out"/bin/*; do wrapProgram "$script" \ - --set FAUSTLIB "${faust}/lib/faust" \ - --set FAUST_LIB_PATH "${faust}/lib/faust" \ + --set FAUSTLIB "${faust}/share/faust" \ + --set FAUST_LIB_PATH "${faust}/share/faust" \ --set FAUSTINC "${faust}/include/faust" \ --prefix PATH : "$PATH" \ --prefix PKG_CONFIG_PATH : "$PKG_CONFIG_PATH" \ diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix index 52e29e3da4c..425b2b866a5 100644 --- a/pkgs/applications/audio/flac/default.nix +++ b/pkgs/applications/audio/flac/default.nix @@ -12,10 +12,10 @@ stdenv.mkDerivation rec { #doCheck = true; # takes lots of time - outputs = [ "bin" "dev" "out" "doc" ]; + outputs = [ "bin" "dev" "out" "man" "doc" ]; meta = with stdenv.lib; { - homepage = http://xiph.org/flac/; + homepage = https://xiph.org/flac/; description = "Library and tools for encoding and decoding the FLAC lossless audio file format"; platforms = platforms.all; maintainers = [ maintainers.mornfall ]; diff --git a/pkgs/applications/audio/flac123/default.nix b/pkgs/applications/audio/flac123/default.nix new file mode 100644 index 00000000000..f0863bfc50b --- /dev/null +++ b/pkgs/applications/audio/flac123/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, autoreconfHook, flac, libao, libogg, popt }: + +stdenv.mkDerivation rec { + name = "flac123-${version}"; + version = "0.0.12"; + + src = fetchurl { + url = "mirror://sourceforge/flac-tools/${name}-release.tar.gz"; + sha256 = "0zg4ahkg7v81za518x32wldf42g0rrvlrcqhrg9sv3li9bayyxhr"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ flac libao libogg popt ]; + + meta = with stdenv.lib; { + homepage = http://flac-tools.sourceforge.net/; + description = "A command-line program for playing FLAC audio files"; + license = licenses.gpl2Plus; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/audio/fldigi/default.nix b/pkgs/applications/audio/fldigi/default.nix index 2ee03a3f399..545e7c5047a 100644 --- a/pkgs/applications/audio/fldigi/default.nix +++ b/pkgs/applications/audio/fldigi/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = { description = "Digital modem program"; - homepage = http://sourceforge.net/projects/fldigi/; + homepage = https://sourceforge.net/projects/fldigi/; license = stdenv.lib.licenses.gpl3Plus; maintainers = with stdenv.lib.maintainers; [ relrod ftrvxmtrx ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix index bb37cac5500..a8bf05187e3 100644 --- a/pkgs/applications/audio/fluidsynth/default.nix +++ b/pkgs/applications/audio/fluidsynth/default.nix @@ -20,7 +20,8 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework CoreAudio -framework CoreServices"; - buildInputs = [ glib libsndfile pkgconfig ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib libsndfile ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices CoreAudio AudioUnit ]; diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix index bb4df5ea1db..e4c6c658efd 100644 --- a/pkgs/applications/audio/fmit/default.nix +++ b/pkgs/applications/audio/fmit/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmakeHook +{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmake , alsaSupport ? true, alsaLib ? null , jackSupport ? false, libjack2 ? null , portaudioSupport ? false, portaudio ? null }: @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { owner = "gillesdegottex"; }; - nativeBuildInputs = [ qmakeHook ]; + nativeBuildInputs = [ qmake ]; buildInputs = [ fftw qtbase qtmultimedia ] ++ optionals alsaSupport [ alsaLib ] ++ optionals jackSupport [ libjack2 ] diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix index 22944ffefe4..58d095080fe 100644 --- a/pkgs/applications/audio/fmsynth/default.nix +++ b/pkgs/applications/audio/fmsynth/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1bk0bpr069hzx2508rgfbwpxiqgr7dmdkhqdywmd2i4rmibgrm1q"; }; - buildInputs = [ gtkmm2 lv2 lvtk pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtkmm2 lv2 lvtk ]; buildPhase = '' cd lv2 diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix index bdac87aaf37..367b1db139d 100644 --- a/pkgs/applications/audio/fomp/default.nix +++ b/pkgs/applications/audio/fomp/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1hh2xhknanqn3iwp12ihl6bf8p7bqxryms9qk7mh21lixl42b8k5"; }; - buildInputs = [ lv2 pkgconfig python2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ lv2 python2 ]; installPhase = '' python waf configure --prefix=$out diff --git a/pkgs/applications/audio/foo-yc20/default.nix b/pkgs/applications/audio/foo-yc20/default.nix index 073d28ef870..28b2cd98e02 100644 --- a/pkgs/applications/audio/foo-yc20/default.nix +++ b/pkgs/applications/audio/foo-yc20/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0i8261n95n4xic766h70xkrpbvw3sag96n1883ahmg6h7yb94avq"; }; - buildInputs = [ libjack2 gtk2 lv2 faust pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 gtk2 lv2 faust ]; makeFlags = "PREFIX=$(out)"; diff --git a/pkgs/applications/audio/freewheeling/default.nix b/pkgs/applications/audio/freewheeling/default.nix index 6b4913d30dc..25704d26280 100644 --- a/pkgs/applications/audio/freewheeling/default.nix +++ b/pkgs/applications/audio/freewheeling/default.nix @@ -1,20 +1,23 @@ -{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, gnutls, freetype +{ lib, stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, gnutls, freetype , SDL, SDL_gfx, SDL_ttf, liblo, libxml2, alsaLib, libjack2, libvorbis -, libSM, libsndfile, libogg +, libSM, libsndfile, libogg, libtool }: +let + makeSDLFlags = map (p: "-I${lib.getDev p}/include/SDL"); +in stdenv.mkDerivation rec { name = "freewheeling-${version}"; - version = "2016-11-15"; + version = "0.6.2"; src = fetchFromGitHub { owner = "free-wheeling"; repo = "freewheeling"; - rev = "05ef3bf150fa6ba1b1d437b1fd70ef363289742f"; - sha256 = "19plf7r0sq4271ln5bya95mp4i1j30x8hsxxga2kla27z953n9ih"; + rev = "v${version}"; + sha256 = "01hmp0jxzxpb5sl0x91hdlwmbw9n4yffrpra4f89s4n8cixrz3d9"; }; - nativeBuildInputs = [ pkgconfig autoreconfHook ]; + nativeBuildInputs = [ pkgconfig autoreconfHook libtool ]; buildInputs = [ freetype SDL SDL_gfx SDL_ttf liblo libxml2 libjack2 alsaLib libvorbis libsndfile libogg libSM @@ -22,8 +25,7 @@ stdenv.mkDerivation rec { configureFlags = oldAttrs.configureFlags ++ [ "--enable-openssl-compatibility" ]; })) ]; - - patches = [ ./am_path_sdl.patch ./xml.patch ]; + NIX_CFLAGS_COMPILE = makeSDLFlags [ SDL SDL_ttf SDL_gfx ] ++ [ "-I${libxml2.dev}/include/libxml2" ]; hardeningDisable = [ "format" ]; @@ -37,11 +39,11 @@ stdenv.mkDerivation rec { improv. We leave mice and menus, and dive into our own process of making sound. - Freewheeling runs under Mac OS X and Linux, and is open source + Freewheeling runs under macOS and Linux, and is open source software, released under the GNU GPL license. '' ; - homepage = "http://freewheeling.sourceforge.net"; + homepage = http://freewheeling.sourceforge.net; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.sepi ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/game-music-emu/default.nix b/pkgs/applications/audio/game-music-emu/default.nix index 4f22ca62c1a..a0a79785283 100644 --- a/pkgs/applications/audio/game-music-emu/default.nix +++ b/pkgs/applications/audio/game-music-emu/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake ]; meta = with stdenv.lib; { - homepage = https://code.google.com/p/game-music-emu/; + homepage = https://bitbucket.org/mpyne/game-music-emu/wiki/Home; description = "A collection of video game music file emulators"; license = licenses.lgpl21Plus; platforms = platforms.all; diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix index ab6dd0eee72..50b1bcde58f 100644 --- a/pkgs/applications/audio/gmpc/default.nix +++ b/pkgs/applications/audio/gmpc/default.nix @@ -14,7 +14,9 @@ stdenv.mkDerivation rec { sha256 = "10vspwsgr8pwf3qp2bviw6b2l8prgdiswgv7qiqiyr0h1mmk487y"; }; patches = [ ./libmpd-11.8.17-remove-strndup.patch ]; - buildInputs = [ pkgconfig glib ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib ]; }; src = fetchurl { @@ -22,8 +24,9 @@ stdenv.mkDerivation rec { sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - libtool intltool pkgconfig glib gtk2 curl mpd_clientlib libsoup + libtool intltool glib gtk2 curl mpd_clientlib libsoup libunique libmpd gob2 vala_0_23 libSM libICE sqlite hicolor_icon_theme wrapGAppsHook ]; diff --git a/pkgs/applications/audio/gnaural/default.nix b/pkgs/applications/audio/gnaural/default.nix index 2b78d1a4b6d..f5887e870db 100644 --- a/pkgs/applications/audio/gnaural/default.nix +++ b/pkgs/applications/audio/gnaural/default.nix @@ -2,7 +2,8 @@ stdenv.mkDerivation rec { name = "gnaural-1.0.20110606"; - buildInputs = [ pkgconfig gtk2 libsndfile portaudio ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 libsndfile portaudio ]; src = fetchurl { url = "mirror://sourceforge/gnaural/Gnaural/${name}.tar.gz"; sha256 = "0p9rasz1jmxf16vnpj17g3vzdjygcyz3l6nmbq6wr402l61f1vy5"; @@ -13,5 +14,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2; maintainers = [ maintainers.ehmry ]; platforms = platforms.linux; + broken = true; }; } diff --git a/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/pkgs/applications/audio/google-play-music-desktop-player/default.nix new file mode 100644 index 00000000000..9d9af631183 --- /dev/null +++ b/pkgs/applications/audio/google-play-music-desktop-player/default.nix @@ -0,0 +1,79 @@ +{ stdenv, alsaLib, atk, cairo, cups, dbus, dpkg, expat, fontconfig, freetype +, fetchurl, GConf, gdk_pixbuf, glib, gtk2, libpulseaudio, makeWrapper, nspr +, nss, pango, udev, xorg +}: + +let + version = "4.4.1"; + + deps = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + GConf + gdk_pixbuf + glib + gtk2 + libpulseaudio + nspr + nss + pango + stdenv.cc.cc + udev + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXScrnSaver + xorg.libXtst + ]; + +in + +stdenv.mkDerivation { + name = "google-play-music-desktop-player-${version}"; + + src = fetchurl { + url = "https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/releases/download/v${version}/google-play-music-desktop-player_${version}_amd64.deb"; + sha256 = "0jqgawgij6jxf3zy3glviqj6s34mq7d756syg2c7kk1gkqkwgdpw"; + }; + + dontBuild = true; + buildInputs = [ dpkg makeWrapper ]; + + unpackPhase = '' + dpkg -x $src . + ''; + + installPhase = '' + mkdir -p $out + cp -r ./usr/share $out + cp -r ./usr/bin $out + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/share/google-play-music-desktop-player/Google Play Music Desktop Player" + + wrapProgram $out/bin/google-play-music-desktop-player \ + --prefix LD_LIBRARY_PATH : "$out/share/google-play-music-desktop-player" \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath deps}" + ''; + + meta = { + homepage = https://www.googleplaymusicdesktopplayer.com/; + description = "A beautiful cross platform Desktop Player for Google Play Music"; + license = stdenv.lib.licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = stdenv.lib.maintainers.SuprDewd; + }; +} diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix index 5a10d1262f4..3d074bf1e19 100644 --- a/pkgs/applications/audio/gpodder/default.nix +++ b/pkgs/applications/audio/gpodder/default.nix @@ -51,6 +51,13 @@ python2Packages.buildPythonApplication rec { feedparser dbus-python mygpoclient pygtk eyeD3 podcastparser html5lib ] ++ stdenv.lib.optional ipodSupport libgpod; + preBuild = '' + make PREFIX="$out" \ + share/applications/gpodder-url-handler.desktop \ + share/applications/gpodder.desktop \ + share/dbus-1/services/org.gpodder.service + ''; + checkPhase = '' LC_ALL=C python -m gpodder.unittests ''; @@ -61,7 +68,7 @@ python2Packages.buildPythonApplication rec { gPodder downloads and manages free audio and video content (podcasts) for you. Listen directly on your computer or on your mobile devices. ''; - homepage = "http://gpodder.org/"; + homepage = http://gpodder.org/; license = licenses.gpl3; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ skeidel mic92 ]; diff --git a/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch b/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch new file mode 100644 index 00000000000..3a6296baaa6 --- /dev/null +++ b/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch @@ -0,0 +1,23 @@ +From 184c64718ee68b2738647f4a106b260c47f00437 Mon Sep 17 00:00:00 2001 +From: Sam Parkinson +Date: Thu, 26 Oct 2017 14:50:13 +1100 +Subject: [PATCH] Remove post-install script that hardcodes paths + +--- + meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 25f3e1a..18b43bd 100644 +--- a/meson.build ++++ b/meson.build +@@ -21,4 +21,5 @@ subdir('src') + # subdir('tests') + # TODO: unit tests + +-meson.add_install_script('meson_post_install.sh') ++# This does not work for nixos; it hard-codes paths ++# meson.add_install_script('meson_post_install.sh') +-- +2.14.2 + diff --git a/pkgs/applications/audio/gradio/default.nix b/pkgs/applications/audio/gradio/default.nix new file mode 100644 index 00000000000..2f4bde92167 --- /dev/null +++ b/pkgs/applications/audio/gradio/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchFromGitHub, pkgconfig +, gcc +, python3 +, gsettings_desktop_schemas +, desktop_file_utils +, glib +, gtk3 +, intltool +, libsoup +, json_glib +, wrapGAppsHook +, meson +, ninja +, vala +, sqlite +, gst_all_1 +, gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ] +}: +let + version = "6.0.2"; + +in stdenv.mkDerivation rec { + name = "gradio-${version}"; + + src = fetchFromGitHub { + owner = "haecker-felix"; + repo = "gradio"; + rev = "v${version}"; + sha256 = "05hg26yr7splgpkl8wjxcsdks9sm1is3hcnp7f5mjnp2ch0nn57s"; + }; + + nativeBuildInputs = [ + pkgconfig + + meson + ninja + vala + + python3 + ]; + buildInputs = [ + sqlite + + glib + intltool + libsoup + json_glib + + gtk3 + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + + wrapGAppsHook + desktop_file_utils + gsettings_desktop_schemas + ] ++ gst_plugins; + + enableParallelBuilding = true; + postInstall = '' + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ]; + + meta = with stdenv.lib; { + homepage = https://github.com/haecker-felix/gradio; + description = "A GTK3 app for finding and listening to internet radio stations"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.samdroid-apps ]; + }; +} diff --git a/pkgs/applications/audio/greg/default.nix b/pkgs/applications/audio/greg/default.nix new file mode 100644 index 00000000000..e7a23b6f204 --- /dev/null +++ b/pkgs/applications/audio/greg/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, pythonPackages }: + +with pythonPackages; buildPythonApplication rec { + pname = "greg"; + version = "0.4.7"; + name = pname + "-" + version; + + disabled = !isPy3k; + + src = fetchFromGitHub { + owner = "manolomartinez"; + repo = pname; + rev = "v" + version; + sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v"; + }; + + buildInputs = with pythonPackages; [ feedparser ]; + propagatedBuildInputs = buildInputs; + + meta = with stdenv.lib; { + homepage = "https://github.com/manolomartinez/greg"; + description = "A command-line podcast aggregator"; + license = licenses.gpl3; + maintainers = with maintainers; [ edwtjo ]; + }; +} diff --git a/pkgs/applications/audio/groovebasin/default.nix b/pkgs/applications/audio/groovebasin/default.nix deleted file mode 100644 index 7eb2e85f7be..00000000000 --- a/pkgs/applications/audio/groovebasin/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ stdenv, fetchFromGitHub, makeWrapper, callPackage, libgroove, python, utillinux, nodejs }: - -with stdenv.lib; - -let - nodePackages = callPackage (import ../../../top-level/node-packages.nix) { - inherit nodejs; - neededNatives = [ libgroove python utillinux ]; - self = nodePackages; - generated = ./package.nix; - }; - -in nodePackages.buildNodePackage rec { - version = "1.5.1"; - name = "groovebasin-${version}"; - - src = fetchFromGitHub { - owner = "andrewrk"; - repo = "groovebasin"; - rev = "${version}"; - sha256 = "1g7v0qhvgzpb050hf45pibp68qd67hnnry5npw58f4dvaxdd8yhd"; - }; - - deps = (filter (v: nixType v == "derivation") (attrValues nodePackages)); - - buildInputs = [ makeWrapper ]; - - postInstall = '' - mkdir -p "$out/lib/node_modules/groovebasin/public" - stylus -o "$out/lib/node_modules/groovebasin/public/" -c --include-css "$out/lib/node_modules/groovebasin/src/client/styles" - browserify-lite "$out/lib/node_modules/groovebasin/src/client/app.js" --outfile "$out/lib/node_modules/groovebasin/public/app.js" - wrapProgram "$out/bin/groovebasin" --set NODE_PATH "$out/lib/node_modules/groovebasin/node_modules/" - ''; - - passthru.names = ["groovebasin"]; - - meta = { - description = "Music player server with a web-based user interface"; - homepage = http://groovebasin.com/; - license = licenses.mit; - platforms = platforms.unix; - maintainers = [ maintainers.andrewrk ]; - longDescription = '' - Groove Basin runs on a server optionally connected to speakers. Guests can - control the music player by connecting with a laptop, tablet, or smart phone. - Further, users can stream their music libraries remotely. - - Groove Basin comes with a fast, responsive web interface that supports keyboard - shortcuts and drag drop. It also provides the ability to upload songs, - download songs, and import songs by URL, including YouTube URLs. - - Groove Basin supports Dynamic Mode which automatically queues random songs, - favoring songs that have not been queued recently. - - Groove Basin automatically performs ReplayGain scanning on every song using - the EBU R128 loudness standard, and automatically switches between track - and album mode. - - Groove Basin supports the MPD protocol, which means it is compatible with MPD - clients. There is also a more powerful Groove Basin protocol which you can - use if the MPD protocol does not meet your needs. - - Groove Basin supports Last.fm scrobbling. - ''; - # groovebasin was built with nodejs 0.10 which reached end of LTS - # in October 216, it doesn't built with nodejs 4.x - broken = true; - }; -} diff --git a/pkgs/applications/audio/groovebasin/package.nix b/pkgs/applications/audio/groovebasin/package.nix deleted file mode 100644 index 3f307cd32f0..00000000000 --- a/pkgs/applications/audio/groovebasin/package.nix +++ /dev/null @@ -1,4396 +0,0 @@ -{ self, fetchurl, fetchgit ? null, lib }: - -{ - by-spec."CSSselect"."~0.4.0" = - self.by-version."CSSselect"."0.4.1"; - by-version."CSSselect"."0.4.1" = self.buildNodePackage { - name = "CSSselect-0.4.1"; - version = "0.4.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz"; - name = "CSSselect-0.4.1.tgz"; - sha1 = "f8ab7e1f8418ce63cda6eb7bd778a85d7ec492b2"; - }; - deps = { - "CSSwhat-0.4.7" = self.by-version."CSSwhat"."0.4.7"; - "domutils-1.4.3" = self.by-version."domutils"."1.4.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."CSSwhat"."0.4" = - self.by-version."CSSwhat"."0.4.7"; - by-version."CSSwhat"."0.4.7" = self.buildNodePackage { - name = "CSSwhat-0.4.7"; - version = "0.4.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz"; - name = "CSSwhat-0.4.7.tgz"; - sha1 = "867da0ff39f778613242c44cfea83f0aa4ebdf9b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."abbrev"."1" = - self.by-version."abbrev"."1.0.7"; - by-version."abbrev"."1.0.7" = self.buildNodePackage { - name = "abbrev-1.0.7"; - version = "1.0.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"; - name = "abbrev-1.0.7.tgz"; - sha1 = "5b6035b2ee9d4fb5cf859f08a9be81b208491843"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."abstract-leveldown"."~2.2.1" = - self.by-version."abstract-leveldown"."2.2.2"; - by-version."abstract-leveldown"."2.2.2" = self.buildNodePackage { - name = "abstract-leveldown-2.2.2"; - version = "2.2.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.2.2.tgz"; - name = "abstract-leveldown-2.2.2.tgz"; - sha1 = "ecaff98c20641422710ab04b01e8f04d6b64fe77"; - }; - deps = { - "xtend-4.0.0" = self.by-version."xtend"."4.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."accepts"."~1.2.7" = - self.by-version."accepts"."1.2.9"; - by-version."accepts"."1.2.9" = self.buildNodePackage { - name = "accepts-1.2.9"; - version = "1.2.9"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/accepts/-/accepts-1.2.9.tgz"; - name = "accepts-1.2.9.tgz"; - sha1 = "76e9631d05e3ff192a34afb9389f7b3953ded001"; - }; - deps = { - "mime-types-2.1.1" = self.by-version."mime-types"."2.1.1"; - "negotiator-0.5.3" = self.by-version."negotiator"."0.5.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."amdefine".">=0.0.4" = - self.by-version."amdefine"."0.1.1"; - by-version."amdefine"."0.1.1" = self.buildNodePackage { - name = "amdefine-0.1.1"; - version = "0.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/amdefine/-/amdefine-0.1.1.tgz"; - name = "amdefine-0.1.1.tgz"; - sha1 = "b5c75c532052dccd6a39c0064c772c8d57a06cd2"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ansi-regex"."^1.0.0" = - self.by-version."ansi-regex"."1.1.1"; - by-version."ansi-regex"."1.1.1" = self.buildNodePackage { - name = "ansi-regex-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"; - name = "ansi-regex-1.1.1.tgz"; - sha1 = "41c847194646375e6a1a5d10c3ca054ef9fc980d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ansi-regex"."^1.1.0" = - self.by-version."ansi-regex"."1.1.1"; - by-spec."ansi-styles"."^2.0.1" = - self.by-version."ansi-styles"."2.0.1"; - by-version."ansi-styles"."2.0.1" = self.buildNodePackage { - name = "ansi-styles-2.0.1"; - version = "2.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz"; - name = "ansi-styles-2.0.1.tgz"; - sha1 = "b033f57f93e2d28adeb8bc11138fa13da0fd20a3"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."asn1"."0.1.11" = - self.by-version."asn1"."0.1.11"; - by-version."asn1"."0.1.11" = self.buildNodePackage { - name = "asn1-0.1.11"; - version = "0.1.11"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"; - name = "asn1-0.1.11.tgz"; - sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."assert-plus"."^0.1.5" = - self.by-version."assert-plus"."0.1.5"; - by-version."assert-plus"."0.1.5" = self.buildNodePackage { - name = "assert-plus-0.1.5"; - version = "0.1.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"; - name = "assert-plus-0.1.5.tgz"; - sha1 = "ee74009413002d84cec7219c6ac811812e723160"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."async"."~0.9.0" = - self.by-version."async"."0.9.2"; - by-version."async"."0.9.2" = self.buildNodePackage { - name = "async-0.9.2"; - version = "0.9.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/async/-/async-0.9.2.tgz"; - name = "async-0.9.2.tgz"; - sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."aws-sign2"."~0.5.0" = - self.by-version."aws-sign2"."0.5.0"; - by-version."aws-sign2"."0.5.0" = self.buildNodePackage { - name = "aws-sign2-0.5.0"; - version = "0.5.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz"; - name = "aws-sign2-0.5.0.tgz"; - sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."base64url"."0.0.3" = - self.by-version."base64url"."0.0.3"; - by-version."base64url"."0.0.3" = self.buildNodePackage { - name = "base64url-0.0.3"; - version = "0.0.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/base64url/-/base64url-0.0.3.tgz"; - name = "base64url-0.0.3.tgz"; - sha1 = "50c20edac277dde1a0b15059954ced7a2d102d57"; - }; - deps = { - "tap-0.3.3" = self.by-version."tap"."0.3.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."base64url"."~0.0.4" = - self.by-version."base64url"."0.0.6"; - by-version."base64url"."0.0.6" = self.buildNodePackage { - name = "base64url-0.0.6"; - version = "0.0.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/base64url/-/base64url-0.0.6.tgz"; - name = "base64url-0.0.6.tgz"; - sha1 = "9597b36b330db1c42477322ea87ea8027499b82b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."base64url"."~1.0.4" = - self.by-version."base64url"."1.0.4"; - by-version."base64url"."1.0.4" = self.buildNodePackage { - name = "base64url-1.0.4"; - version = "1.0.4"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/base64url/-/base64url-1.0.4.tgz"; - name = "base64url-1.0.4.tgz"; - sha1 = "29a2a7ade9791fbb25f312ab35a2fd3126ceac0e"; - }; - deps = { - "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10"; - "meow-2.0.0" = self.by-version."meow"."2.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."bindings"."~1.2.1" = - self.by-version."bindings"."1.2.1"; - by-version."bindings"."1.2.1" = self.buildNodePackage { - name = "bindings-1.2.1"; - version = "1.2.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz"; - name = "bindings-1.2.1.tgz"; - sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."bl"."~0.9.0" = - self.by-version."bl"."0.9.4"; - by-version."bl"."0.9.4" = self.buildNodePackage { - name = "bl-0.9.4"; - version = "0.9.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/bl/-/bl-0.9.4.tgz"; - name = "bl-0.9.4.tgz"; - sha1 = "4702ddf72fbe0ecd82787c00c113aea1935ad0e7"; - }; - deps = { - "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."bl"."~0.9.4" = - self.by-version."bl"."0.9.4"; - by-spec."bluebird"."^2.9.26" = - self.by-version."bluebird"."2.9.30"; - by-version."bluebird"."2.9.30" = self.buildNodePackage { - name = "bluebird-2.9.30"; - version = "2.9.30"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/bluebird/-/bluebird-2.9.30.tgz"; - name = "bluebird-2.9.30.tgz"; - sha1 = "edda875ec9aad1f29cf1f56d6e82fbab2b0df556"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."boom"."0.4.x" = - self.by-version."boom"."0.4.2"; - by-version."boom"."0.4.2" = self.buildNodePackage { - name = "boom-0.4.2"; - version = "0.4.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/boom/-/boom-0.4.2.tgz"; - name = "boom-0.4.2.tgz"; - sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b"; - }; - deps = { - "hoek-0.9.1" = self.by-version."hoek"."0.9.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."boom"."2.x.x" = - self.by-version."boom"."2.8.0"; - by-version."boom"."2.8.0" = self.buildNodePackage { - name = "boom-2.8.0"; - version = "2.8.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/boom/-/boom-2.8.0.tgz"; - name = "boom-2.8.0.tgz"; - sha1 = "317bdfd47018fe7dd79b0e9da73efe244119fdf1"; - }; - deps = { - "hoek-2.14.0" = self.by-version."hoek"."2.14.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."browserify-lite"."~0.2.4" = - self.by-version."browserify-lite"."0.2.4"; - by-version."browserify-lite"."0.2.4" = self.buildNodePackage { - name = "browserify-lite-0.2.4"; - version = "0.2.4"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/browserify-lite/-/browserify-lite-0.2.4.tgz"; - name = "browserify-lite-0.2.4.tgz"; - sha1 = "00a32f466c8f3dbbd1074250fd0aa775716ab140"; - }; - deps = { - "pend-1.2.0" = self.by-version."pend"."1.2.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "browserify-lite" = self.by-version."browserify-lite"."0.2.4"; - by-spec."buffer-crc32"."~0.2.3" = - self.by-version."buffer-crc32"."0.2.5"; - by-version."buffer-crc32"."0.2.5" = self.buildNodePackage { - name = "buffer-crc32-0.2.5"; - version = "0.2.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz"; - name = "buffer-crc32-0.2.5.tgz"; - sha1 = "db003ac2671e62ebd6ece78ea2c2e1b405736e91"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."buffer-equal"."~0.0.0" = - self.by-version."buffer-equal"."0.0.1"; - by-version."buffer-equal"."0.0.1" = self.buildNodePackage { - name = "buffer-equal-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz"; - name = "buffer-equal-0.0.1.tgz"; - sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."buffer-equal-constant-time"."^1.0.1" = - self.by-version."buffer-equal-constant-time"."1.0.1"; - by-version."buffer-equal-constant-time"."1.0.1" = self.buildNodePackage { - name = "buffer-equal-constant-time-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"; - name = "buffer-equal-constant-time-1.0.1.tgz"; - sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."bunker"."0.1.X" = - self.by-version."bunker"."0.1.2"; - by-version."bunker"."0.1.2" = self.buildNodePackage { - name = "bunker-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/bunker/-/bunker-0.1.2.tgz"; - name = "bunker-0.1.2.tgz"; - sha1 = "c88992464a8e2a6ede86930375f92b58077ef97c"; - }; - deps = { - "burrito-0.2.12" = self.by-version."burrito"."0.2.12"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."burrito".">=0.2.5 <0.3" = - self.by-version."burrito"."0.2.12"; - by-version."burrito"."0.2.12" = self.buildNodePackage { - name = "burrito-0.2.12"; - version = "0.2.12"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/burrito/-/burrito-0.2.12.tgz"; - name = "burrito-0.2.12.tgz"; - sha1 = "d0d6e6ac81d5e99789c6fa4accb0b0031ea54f6b"; - }; - deps = { - "traverse-0.5.2" = self.by-version."traverse"."0.5.2"; - "uglify-js-1.1.1" = self.by-version."uglify-js"."1.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."camelcase"."^1.0.1" = - self.by-version."camelcase"."1.1.0"; - by-version."camelcase"."1.1.0" = self.buildNodePackage { - name = "camelcase-1.1.0"; - version = "1.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/camelcase/-/camelcase-1.1.0.tgz"; - name = "camelcase-1.1.0.tgz"; - sha1 = "953b25c3bc98671ee59a44cb9d542672da7331b9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."camelcase-keys"."^1.0.0" = - self.by-version."camelcase-keys"."1.0.0"; - by-version."camelcase-keys"."1.0.0" = self.buildNodePackage { - name = "camelcase-keys-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz"; - name = "camelcase-keys-1.0.0.tgz"; - sha1 = "bd1a11bf9b31a1ce493493a930de1a0baf4ad7ec"; - }; - deps = { - "camelcase-1.1.0" = self.by-version."camelcase"."1.1.0"; - "map-obj-1.0.1" = self.by-version."map-obj"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."caseless"."~0.10.0" = - self.by-version."caseless"."0.10.0"; - by-version."caseless"."0.10.0" = self.buildNodePackage { - name = "caseless-0.10.0"; - version = "0.10.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/caseless/-/caseless-0.10.0.tgz"; - name = "caseless-0.10.0.tgz"; - sha1 = "ed6b2719adcd1fd18f58dc081c0f1a5b43963909"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."caseless"."~0.8.0" = - self.by-version."caseless"."0.8.0"; - by-version."caseless"."0.8.0" = self.buildNodePackage { - name = "caseless-0.8.0"; - version = "0.8.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz"; - name = "caseless-0.8.0.tgz"; - sha1 = "5bca2881d41437f54b2407ebe34888c7b9ad4f7d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."caseless"."~0.9.0" = - self.by-version."caseless"."0.9.0"; - by-version."caseless"."0.9.0" = self.buildNodePackage { - name = "caseless-0.9.0"; - version = "0.9.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz"; - name = "caseless-0.9.0.tgz"; - sha1 = "b7b65ce6bf1413886539cfd533f0b30effa9cf88"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."chalk"."^1.0.0" = - self.by-version."chalk"."1.0.0"; - by-version."chalk"."1.0.0" = self.buildNodePackage { - name = "chalk-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz"; - name = "chalk-1.0.0.tgz"; - sha1 = "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc"; - }; - deps = { - "ansi-styles-2.0.1" = self.by-version."ansi-styles"."2.0.1"; - "escape-string-regexp-1.0.3" = self.by-version."escape-string-regexp"."1.0.3"; - "has-ansi-1.0.3" = self.by-version."has-ansi"."1.0.3"; - "strip-ansi-2.0.1" = self.by-version."strip-ansi"."2.0.1"; - "supports-color-1.3.1" = self.by-version."supports-color"."1.3.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."charm"."0.1.x" = - self.by-version."charm"."0.1.2"; - by-version."charm"."0.1.2" = self.buildNodePackage { - name = "charm-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/charm/-/charm-0.1.2.tgz"; - name = "charm-0.1.2.tgz"; - sha1 = "06c21eed1a1b06aeb67553cdc53e23274bac2296"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cheerio"."^0.18.0" = - self.by-version."cheerio"."0.18.0"; - by-version."cheerio"."0.18.0" = self.buildNodePackage { - name = "cheerio-0.18.0"; - version = "0.18.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cheerio/-/cheerio-0.18.0.tgz"; - name = "cheerio-0.18.0.tgz"; - sha1 = "4e1c06377e725b740e996e0dfec353863de677fa"; - }; - deps = { - "CSSselect-0.4.1" = self.by-version."CSSselect"."0.4.1"; - "entities-1.1.1" = self.by-version."entities"."1.1.1"; - "htmlparser2-3.8.3" = self.by-version."htmlparser2"."3.8.3"; - "dom-serializer-0.0.1" = self.by-version."dom-serializer"."0.0.1"; - "lodash-2.4.2" = self.by-version."lodash"."2.4.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."clarinet"."~0.8.1" = - self.by-version."clarinet"."0.8.1"; - by-version."clarinet"."0.8.1" = self.buildNodePackage { - name = "clarinet-0.8.1"; - version = "0.8.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/clarinet/-/clarinet-0.8.1.tgz"; - name = "clarinet-0.8.1.tgz"; - sha1 = "ddfd10cd292abf5cab239140774e394bfd1ee7a6"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."combined-stream"."~0.0.4" = - self.by-version."combined-stream"."0.0.7"; - by-version."combined-stream"."0.0.7" = self.buildNodePackage { - name = "combined-stream-0.0.7"; - version = "0.0.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz"; - name = "combined-stream-0.0.7.tgz"; - sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f"; - }; - deps = { - "delayed-stream-0.0.5" = self.by-version."delayed-stream"."0.0.5"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."combined-stream"."~0.0.5" = - self.by-version."combined-stream"."0.0.7"; - by-spec."combined-stream"."~1.0.1" = - self.by-version."combined-stream"."1.0.5"; - by-version."combined-stream"."1.0.5" = self.buildNodePackage { - name = "combined-stream-1.0.5"; - version = "1.0.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"; - name = "combined-stream-1.0.5.tgz"; - sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; - }; - deps = { - "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."commander"."^2.8.1" = - self.by-version."commander"."2.8.1"; - by-version."commander"."2.8.1" = self.buildNodePackage { - name = "commander-2.8.1"; - version = "2.8.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz"; - name = "commander-2.8.1.tgz"; - sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4"; - }; - deps = { - "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."concat-stream"."~1.4.7" = - self.by-version."concat-stream"."1.4.10"; - by-version."concat-stream"."1.4.10" = self.buildNodePackage { - name = "concat-stream-1.4.10"; - version = "1.4.10"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz"; - name = "concat-stream-1.4.10.tgz"; - sha1 = "acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36"; - }; - deps = { - "inherits-2.0.1" = self.by-version."inherits"."2.0.1"; - "typedarray-0.0.6" = self.by-version."typedarray"."0.0.6"; - "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."connect-static"."~1.5.0" = - self.by-version."connect-static"."1.5.0"; - by-version."connect-static"."1.5.0" = self.buildNodePackage { - name = "connect-static-1.5.0"; - version = "1.5.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/connect-static/-/connect-static-1.5.0.tgz"; - name = "connect-static-1.5.0.tgz"; - sha1 = "f8b455532e04de7c3dc7c1e062207f0b7a626ec7"; - }; - deps = { - "findit2-2.2.3" = self.by-version."findit2"."2.2.3"; - "mime-1.2.11" = self.by-version."mime"."1.2.11"; - "pend-1.2.0" = self.by-version."pend"."1.2.0"; - "streamsink-1.2.0" = self.by-version."streamsink"."1.2.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "connect-static" = self.by-version."connect-static"."1.5.0"; - by-spec."content-disposition"."0.5.0" = - self.by-version."content-disposition"."0.5.0"; - by-version."content-disposition"."0.5.0" = self.buildNodePackage { - name = "content-disposition-0.5.0"; - version = "0.5.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz"; - name = "content-disposition-0.5.0.tgz"; - sha1 = "4284fe6ae0630874639e44e80a418c2934135e9e"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."content-disposition"."~0.5.0" = - self.by-version."content-disposition"."0.5.0"; - "content-disposition" = self.by-version."content-disposition"."0.5.0"; - by-spec."content-type"."~1.0.1" = - self.by-version."content-type"."1.0.1"; - by-version."content-type"."1.0.1" = self.buildNodePackage { - name = "content-type-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz"; - name = "content-type-1.0.1.tgz"; - sha1 = "a19d2247327dc038050ce622b7a154ec59c5e600"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cookie"."0.1.2" = - self.by-version."cookie"."0.1.2"; - by-version."cookie"."0.1.2" = self.buildNodePackage { - name = "cookie-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"; - name = "cookie-0.1.2.tgz"; - sha1 = "72fec3d24e48a3432073d90c12642005061004b1"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cookie-signature"."1.0.6" = - self.by-version."cookie-signature"."1.0.6"; - by-version."cookie-signature"."1.0.6" = self.buildNodePackage { - name = "cookie-signature-1.0.6"; - version = "1.0.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; - name = "cookie-signature-1.0.6.tgz"; - sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cookies"."~0.5.0" = - self.by-version."cookies"."0.5.0"; - by-version."cookies"."0.5.0" = self.buildNodePackage { - name = "cookies-0.5.0"; - version = "0.5.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cookies/-/cookies-0.5.0.tgz"; - name = "cookies-0.5.0.tgz"; - sha1 = "164cac46a1d3ca3b3b87427414c24931d8381025"; - }; - deps = { - "keygrip-1.0.1" = self.by-version."keygrip"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "cookies" = self.by-version."cookies"."0.5.0"; - by-spec."core-util-is"."~1.0.0" = - self.by-version."core-util-is"."1.0.1"; - by-version."core-util-is"."1.0.1" = self.buildNodePackage { - name = "core-util-is-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"; - name = "core-util-is-1.0.1.tgz"; - sha1 = "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."crc"."3.2.1" = - self.by-version."crc"."3.2.1"; - by-version."crc"."3.2.1" = self.buildNodePackage { - name = "crc-3.2.1"; - version = "3.2.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/crc/-/crc-3.2.1.tgz"; - name = "crc-3.2.1.tgz"; - sha1 = "5d9c8fb77a245cd5eca291e5d2d005334bab0082"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cryptiles"."0.2.x" = - self.by-version."cryptiles"."0.2.2"; - by-version."cryptiles"."0.2.2" = self.buildNodePackage { - name = "cryptiles-0.2.2"; - version = "0.2.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz"; - name = "cryptiles-0.2.2.tgz"; - sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c"; - }; - deps = { - "boom-0.4.2" = self.by-version."boom"."0.4.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cryptiles"."2.x.x" = - self.by-version."cryptiles"."2.0.4"; - by-version."cryptiles"."2.0.4" = self.buildNodePackage { - name = "cryptiles-2.0.4"; - version = "2.0.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz"; - name = "cryptiles-2.0.4.tgz"; - sha1 = "09ea1775b9e1c7de7e60a99d42ab6f08ce1a1285"; - }; - deps = { - "boom-2.8.0" = self.by-version."boom"."2.8.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."css-parse"."1.7.x" = - self.by-version."css-parse"."1.7.0"; - by-version."css-parse"."1.7.0" = self.buildNodePackage { - name = "css-parse-1.7.0"; - version = "1.7.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz"; - name = "css-parse-1.7.0.tgz"; - sha1 = "321f6cf73782a6ff751111390fc05e2c657d8c9b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ctype"."0.5.3" = - self.by-version."ctype"."0.5.3"; - by-version."ctype"."0.5.3" = self.buildNodePackage { - name = "ctype-0.5.3"; - version = "0.5.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"; - name = "ctype-0.5.3.tgz"; - sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."curlydiff"."~2.0.1" = - self.by-version."curlydiff"."2.0.1"; - by-version."curlydiff"."2.0.1" = self.buildNodePackage { - name = "curlydiff-2.0.1"; - version = "2.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/curlydiff/-/curlydiff-2.0.1.tgz"; - name = "curlydiff-2.0.1.tgz"; - sha1 = "6ac4b754ea5b63af2632022d03a152306f7eac0b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "curlydiff" = self.by-version."curlydiff"."2.0.1"; - by-spec."debug"."*" = - self.by-version."debug"."2.2.0"; - by-version."debug"."2.2.0" = self.buildNodePackage { - name = "debug-2.2.0"; - version = "2.2.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz"; - name = "debug-2.2.0.tgz"; - sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da"; - }; - deps = { - "ms-0.7.1" = self.by-version."ms"."0.7.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."debug"."~2.2.0" = - self.by-version."debug"."2.2.0"; - by-spec."deep-equal"."~0.0.0" = - self.by-version."deep-equal"."0.0.0"; - by-version."deep-equal"."0.0.0" = self.buildNodePackage { - name = "deep-equal-0.0.0"; - version = "0.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz"; - name = "deep-equal-0.0.0.tgz"; - sha1 = "99679d3bbd047156fcd450d3d01eeb9068691e83"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."deep-is"."0.1.x" = - self.by-version."deep-is"."0.1.3"; - by-version."deep-is"."0.1.3" = self.buildNodePackage { - name = "deep-is-0.1.3"; - version = "0.1.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"; - name = "deep-is-0.1.3.tgz"; - sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."delayed-stream"."0.0.5" = - self.by-version."delayed-stream"."0.0.5"; - by-version."delayed-stream"."0.0.5" = self.buildNodePackage { - name = "delayed-stream-0.0.5"; - version = "0.0.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"; - name = "delayed-stream-0.0.5.tgz"; - sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."delayed-stream"."~1.0.0" = - self.by-version."delayed-stream"."1.0.0"; - by-version."delayed-stream"."1.0.0" = self.buildNodePackage { - name = "delayed-stream-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; - name = "delayed-stream-1.0.0.tgz"; - sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."depd"."~1.0.1" = - self.by-version."depd"."1.0.1"; - by-version."depd"."1.0.1" = self.buildNodePackage { - name = "depd-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/depd/-/depd-1.0.1.tgz"; - name = "depd-1.0.1.tgz"; - sha1 = "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."destroy"."1.0.3" = - self.by-version."destroy"."1.0.3"; - by-version."destroy"."1.0.3" = self.buildNodePackage { - name = "destroy-1.0.3"; - version = "1.0.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"; - name = "destroy-1.0.3.tgz"; - sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."diacritics"."~1.2.1" = - self.by-version."diacritics"."1.2.1"; - by-version."diacritics"."1.2.1" = self.buildNodePackage { - name = "diacritics-1.2.1"; - version = "1.2.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/diacritics/-/diacritics-1.2.1.tgz"; - name = "diacritics-1.2.1.tgz"; - sha1 = "e4d323a7c564197f7af514c5964bd45d0eb8cf77"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."difflet"."~0.2.0" = - self.by-version."difflet"."0.2.6"; - by-version."difflet"."0.2.6" = self.buildNodePackage { - name = "difflet-0.2.6"; - version = "0.2.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/difflet/-/difflet-0.2.6.tgz"; - name = "difflet-0.2.6.tgz"; - sha1 = "ab23b31f5649b6faa8e3d2acbd334467365ca6fa"; - }; - deps = { - "traverse-0.6.6" = self.by-version."traverse"."0.6.6"; - "charm-0.1.2" = self.by-version."charm"."0.1.2"; - "deep-is-0.1.3" = self.by-version."deep-is"."0.1.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."dom-serializer"."0" = - self.by-version."dom-serializer"."0.1.0"; - by-version."dom-serializer"."0.1.0" = self.buildNodePackage { - name = "dom-serializer-0.1.0"; - version = "0.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz"; - name = "dom-serializer-0.1.0.tgz"; - sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82"; - }; - deps = { - "domelementtype-1.1.3" = self.by-version."domelementtype"."1.1.3"; - "entities-1.1.1" = self.by-version."entities"."1.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."dom-serializer"."~0.0.0" = - self.by-version."dom-serializer"."0.0.1"; - by-version."dom-serializer"."0.0.1" = self.buildNodePackage { - name = "dom-serializer-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/dom-serializer/-/dom-serializer-0.0.1.tgz"; - name = "dom-serializer-0.0.1.tgz"; - sha1 = "9589827f1e32d22c37c829adabd59b3247af8eaf"; - }; - deps = { - "domelementtype-1.1.3" = self.by-version."domelementtype"."1.1.3"; - "entities-1.1.1" = self.by-version."entities"."1.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."domelementtype"."1" = - self.by-version."domelementtype"."1.3.0"; - by-version."domelementtype"."1.3.0" = self.buildNodePackage { - name = "domelementtype-1.3.0"; - version = "1.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"; - name = "domelementtype-1.3.0.tgz"; - sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."domelementtype"."~1.1.1" = - self.by-version."domelementtype"."1.1.3"; - by-version."domelementtype"."1.1.3" = self.buildNodePackage { - name = "domelementtype-1.1.3"; - version = "1.1.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz"; - name = "domelementtype-1.1.3.tgz"; - sha1 = "bd28773e2642881aec51544924299c5cd822185b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."domhandler"."2.3" = - self.by-version."domhandler"."2.3.0"; - by-version."domhandler"."2.3.0" = self.buildNodePackage { - name = "domhandler-2.3.0"; - version = "2.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz"; - name = "domhandler-2.3.0.tgz"; - sha1 = "2de59a0822d5027fabff6f032c2b25a2a8abe738"; - }; - deps = { - "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."domutils"."1.4" = - self.by-version."domutils"."1.4.3"; - by-version."domutils"."1.4.3" = self.buildNodePackage { - name = "domutils-1.4.3"; - version = "1.4.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz"; - name = "domutils-1.4.3.tgz"; - sha1 = "0865513796c6b306031850e175516baf80b72a6f"; - }; - deps = { - "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."domutils"."1.5" = - self.by-version."domutils"."1.5.1"; - by-version."domutils"."1.5.1" = self.buildNodePackage { - name = "domutils-1.5.1"; - version = "1.5.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz"; - name = "domutils-1.5.1.tgz"; - sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; - }; - deps = { - "dom-serializer-0.1.0" = self.by-version."dom-serializer"."0.1.0"; - "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ee-first"."1.1.0" = - self.by-version."ee-first"."1.1.0"; - by-version."ee-first"."1.1.0" = self.buildNodePackage { - name = "ee-first-1.1.0"; - version = "1.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz"; - name = "ee-first-1.1.0.tgz"; - sha1 = "6a0d7c6221e490feefd92ec3f441c9ce8cd097f4"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."entities"."1.0" = - self.by-version."entities"."1.0.0"; - by-version."entities"."1.0.0" = self.buildNodePackage { - name = "entities-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz"; - name = "entities-1.0.0.tgz"; - sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."entities"."~1.1.1" = - self.by-version."entities"."1.1.1"; - by-version."entities"."1.1.1" = self.buildNodePackage { - name = "entities-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/entities/-/entities-1.1.1.tgz"; - name = "entities-1.1.1.tgz"; - sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."escape-html"."1.0.1" = - self.by-version."escape-html"."1.0.1"; - by-version."escape-html"."1.0.1" = self.buildNodePackage { - name = "escape-html-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"; - name = "escape-html-1.0.1.tgz"; - sha1 = "181a286ead397a39a92857cfb1d43052e356bff0"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."escape-string-regexp"."^1.0.2" = - self.by-version."escape-string-regexp"."1.0.3"; - by-version."escape-string-regexp"."1.0.3" = self.buildNodePackage { - name = "escape-string-regexp-1.0.3"; - version = "1.0.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"; - name = "escape-string-regexp-1.0.3.tgz"; - sha1 = "9e2d8b25bc2555c3336723750e03f099c2735bb5"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."etag"."~1.6.0" = - self.by-version."etag"."1.6.0"; - by-version."etag"."1.6.0" = self.buildNodePackage { - name = "etag-1.6.0"; - version = "1.6.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/etag/-/etag-1.6.0.tgz"; - name = "etag-1.6.0.tgz"; - sha1 = "8bcb2c6af1254c481dfc8b997c906ef4e442c207"; - }; - deps = { - "crc-3.2.1" = self.by-version."crc"."3.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."express"."~4.12.3" = - self.by-version."express"."4.12.4"; - by-version."express"."4.12.4" = self.buildNodePackage { - name = "express-4.12.4"; - version = "4.12.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/express/-/express-4.12.4.tgz"; - name = "express-4.12.4.tgz"; - sha1 = "8fec2510255bc6b2e58107c48239c0fa307c1aa2"; - }; - deps = { - "accepts-1.2.9" = self.by-version."accepts"."1.2.9"; - "content-disposition-0.5.0" = self.by-version."content-disposition"."0.5.0"; - "content-type-1.0.1" = self.by-version."content-type"."1.0.1"; - "cookie-0.1.2" = self.by-version."cookie"."0.1.2"; - "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6"; - "debug-2.2.0" = self.by-version."debug"."2.2.0"; - "depd-1.0.1" = self.by-version."depd"."1.0.1"; - "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1"; - "etag-1.6.0" = self.by-version."etag"."1.6.0"; - "finalhandler-0.3.6" = self.by-version."finalhandler"."0.3.6"; - "fresh-0.2.4" = self.by-version."fresh"."0.2.4"; - "merge-descriptors-1.0.0" = self.by-version."merge-descriptors"."1.0.0"; - "methods-1.1.1" = self.by-version."methods"."1.1.1"; - "on-finished-2.2.1" = self.by-version."on-finished"."2.2.1"; - "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0"; - "path-to-regexp-0.1.3" = self.by-version."path-to-regexp"."0.1.3"; - "proxy-addr-1.0.8" = self.by-version."proxy-addr"."1.0.8"; - "qs-2.4.2" = self.by-version."qs"."2.4.2"; - "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2"; - "send-0.12.3" = self.by-version."send"."0.12.3"; - "serve-static-1.9.3" = self.by-version."serve-static"."1.9.3"; - "type-is-1.6.3" = self.by-version."type-is"."1.6.3"; - "vary-1.0.0" = self.by-version."vary"."1.0.0"; - "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "express" = self.by-version."express"."4.12.4"; - by-spec."fast-future"."~1.0.0" = - self.by-version."fast-future"."1.0.1"; - by-version."fast-future"."1.0.1" = self.buildNodePackage { - name = "fast-future-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/fast-future/-/fast-future-1.0.1.tgz"; - name = "fast-future-1.0.1.tgz"; - sha1 = "6cbd22d999ab39cd10fc79392486e7a678716818"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."fd-slicer"."~1.0.0" = - self.by-version."fd-slicer"."1.0.1"; - by-version."fd-slicer"."1.0.1" = self.buildNodePackage { - name = "fd-slicer-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz"; - name = "fd-slicer-1.0.1.tgz"; - sha1 = "8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"; - }; - deps = { - "pend-1.2.0" = self.by-version."pend"."1.2.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."fd-slicer"."~1.0.1" = - self.by-version."fd-slicer"."1.0.1"; - by-spec."finalhandler"."0.3.6" = - self.by-version."finalhandler"."0.3.6"; - by-version."finalhandler"."0.3.6" = self.buildNodePackage { - name = "finalhandler-0.3.6"; - version = "0.3.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/finalhandler/-/finalhandler-0.3.6.tgz"; - name = "finalhandler-0.3.6.tgz"; - sha1 = "daf9c4161b1b06e001466b1411dfdb6973be138b"; - }; - deps = { - "debug-2.2.0" = self.by-version."debug"."2.2.0"; - "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1"; - "on-finished-2.2.1" = self.by-version."on-finished"."2.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."findit2"."~2.2.3" = - self.by-version."findit2"."2.2.3"; - by-version."findit2"."2.2.3" = self.buildNodePackage { - name = "findit2-2.2.3"; - version = "2.2.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz"; - name = "findit2-2.2.3.tgz"; - sha1 = "58a466697df8a6205cdfdbf395536b8bd777a5f6"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "findit2" = self.by-version."findit2"."2.2.3"; - by-spec."forever-agent"."~0.5.0" = - self.by-version."forever-agent"."0.5.2"; - by-version."forever-agent"."0.5.2" = self.buildNodePackage { - name = "forever-agent-0.5.2"; - version = "0.5.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz"; - name = "forever-agent-0.5.2.tgz"; - sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."forever-agent"."~0.6.0" = - self.by-version."forever-agent"."0.6.1"; - by-version."forever-agent"."0.6.1" = self.buildNodePackage { - name = "forever-agent-0.6.1"; - version = "0.6.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; - name = "forever-agent-0.6.1.tgz"; - sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."form-data"."~0.2.0" = - self.by-version."form-data"."0.2.0"; - by-version."form-data"."0.2.0" = self.buildNodePackage { - name = "form-data-0.2.0"; - version = "0.2.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz"; - name = "form-data-0.2.0.tgz"; - sha1 = "26f8bc26da6440e299cbdcfb69035c4f77a6e466"; - }; - deps = { - "async-0.9.2" = self.by-version."async"."0.9.2"; - "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7"; - "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."forwarded"."~0.1.0" = - self.by-version."forwarded"."0.1.0"; - by-version."forwarded"."0.1.0" = self.buildNodePackage { - name = "forwarded-0.1.0"; - version = "0.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"; - name = "forwarded-0.1.0.tgz"; - sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."fresh"."0.2.4" = - self.by-version."fresh"."0.2.4"; - by-version."fresh"."0.2.4" = self.buildNodePackage { - name = "fresh-0.2.4"; - version = "0.2.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz"; - name = "fresh-0.2.4.tgz"; - sha1 = "3582499206c9723714190edd74b4604feb4a614c"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."gapitoken"."~0.1.2" = - self.by-version."gapitoken"."0.1.4"; - by-version."gapitoken"."0.1.4" = self.buildNodePackage { - name = "gapitoken-0.1.4"; - version = "0.1.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/gapitoken/-/gapitoken-0.1.4.tgz"; - name = "gapitoken-0.1.4.tgz"; - sha1 = "643dedb26cb142466f62b73d2782e7822a6f1ad8"; - }; - deps = { - "jws-0.0.2" = self.by-version."jws"."0.0.2"; - "request-2.57.0" = self.by-version."request"."2.57.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."generate-function"."^2.0.0" = - self.by-version."generate-function"."2.0.0"; - by-version."generate-function"."2.0.0" = self.buildNodePackage { - name = "generate-function-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"; - name = "generate-function-2.0.0.tgz"; - sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."generate-object-property"."^1.1.0" = - self.by-version."generate-object-property"."1.2.0"; - by-version."generate-object-property"."1.2.0" = self.buildNodePackage { - name = "generate-object-property-1.2.0"; - version = "1.2.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"; - name = "generate-object-property-1.2.0.tgz"; - sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0"; - }; - deps = { - "is-property-1.0.2" = self.by-version."is-property"."1.0.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."get-stdin"."^4.0.1" = - self.by-version."get-stdin"."4.0.1"; - by-version."get-stdin"."4.0.1" = self.buildNodePackage { - name = "get-stdin-4.0.1"; - version = "4.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"; - name = "get-stdin-4.0.1.tgz"; - sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."glob"."3.2.x" = - self.by-version."glob"."3.2.11"; - by-version."glob"."3.2.11" = self.buildNodePackage { - name = "glob-3.2.11"; - version = "3.2.11"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/glob/-/glob-3.2.11.tgz"; - name = "glob-3.2.11.tgz"; - sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d"; - }; - deps = { - "inherits-2.0.1" = self.by-version."inherits"."2.0.1"; - "minimatch-0.3.0" = self.by-version."minimatch"."0.3.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."google-auth-library"."~0.9.3" = - self.by-version."google-auth-library"."0.9.6"; - by-version."google-auth-library"."0.9.6" = self.buildNodePackage { - name = "google-auth-library-0.9.6"; - version = "0.9.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/google-auth-library/-/google-auth-library-0.9.6.tgz"; - name = "google-auth-library-0.9.6.tgz"; - sha1 = "57aa09f2621d6eafe8852b0167c9100759a67220"; - }; - deps = { - "async-0.9.2" = self.by-version."async"."0.9.2"; - "gtoken-1.1.1" = self.by-version."gtoken"."1.1.1"; - "lodash.noop-3.0.0" = self.by-version."lodash.noop"."3.0.0"; - "jws-3.0.0" = self.by-version."jws"."3.0.0"; - "request-2.51.0" = self.by-version."request"."2.51.0"; - "string-template-0.2.1" = self.by-version."string-template"."0.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."google-p12-pem"."^0.0.1" = - self.by-version."google-p12-pem"."0.0.1"; - by-version."google-p12-pem"."0.0.1" = self.buildNodePackage { - name = "google-p12-pem-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.0.1.tgz"; - name = "google-p12-pem-0.0.1.tgz"; - sha1 = "965638d464f13b4a866356a5ba047163ec0b08b7"; - }; - deps = { - "node-forge-0.6.16" = self.by-version."node-forge"."0.6.16"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."googleapis"."~2.0.3" = - self.by-version."googleapis"."2.0.5"; - by-version."googleapis"."2.0.5" = self.buildNodePackage { - name = "googleapis-2.0.5"; - version = "2.0.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/googleapis/-/googleapis-2.0.5.tgz"; - name = "googleapis-2.0.5.tgz"; - sha1 = "fb2d678f97152eb0a336da84bbc1eeb16a9c8310"; - }; - deps = { - "async-0.9.2" = self.by-version."async"."0.9.2"; - "gapitoken-0.1.4" = self.by-version."gapitoken"."0.1.4"; - "google-auth-library-0.9.6" = self.by-version."google-auth-library"."0.9.6"; - "request-2.54.0" = self.by-version."request"."2.54.0"; - "string-template-0.2.1" = self.by-version."string-template"."0.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "googleapis" = self.by-version."googleapis"."2.0.5"; - by-spec."graceful-readlink".">= 1.0.0" = - self.by-version."graceful-readlink"."1.0.1"; - by-version."graceful-readlink"."1.0.1" = self.buildNodePackage { - name = "graceful-readlink-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; - name = "graceful-readlink-1.0.1.tgz"; - sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."groove"."~2.3.3" = - self.by-version."groove"."2.3.4"; - by-version."groove"."2.3.4" = self.buildNodePackage { - name = "groove-2.3.4"; - version = "2.3.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/groove/-/groove-2.3.4.tgz"; - name = "groove-2.3.4.tgz"; - sha1 = "bbfb8e40584c5921f6df9d52d4017f2acb0a7e45"; - }; - deps = { - "bindings-1.2.1" = self.by-version."bindings"."1.2.1"; - "nan-1.8.4" = self.by-version."nan"."1.8.4"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "groove" = self.by-version."groove"."2.3.4"; - by-spec."gtoken"."^1.1.0" = - self.by-version."gtoken"."1.1.1"; - by-version."gtoken"."1.1.1" = self.buildNodePackage { - name = "gtoken-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/gtoken/-/gtoken-1.1.1.tgz"; - name = "gtoken-1.1.1.tgz"; - sha1 = "969af828d1f7efea32a500ea09b0edfa8e0c438a"; - }; - deps = { - "google-p12-pem-0.0.1" = self.by-version."google-p12-pem"."0.0.1"; - "jws-3.0.0" = self.by-version."jws"."3.0.0"; - "mime-1.3.4" = self.by-version."mime"."1.3.4"; - "request-2.57.0" = self.by-version."request"."2.57.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."har-validator"."^1.4.0" = - self.by-version."har-validator"."1.7.1"; - by-version."har-validator"."1.7.1" = self.buildNodePackage { - name = "har-validator-1.7.1"; - version = "1.7.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/har-validator/-/har-validator-1.7.1.tgz"; - name = "har-validator-1.7.1.tgz"; - sha1 = "8ec8952f8287d21b451ba3e36f27ed8d997d8a95"; - }; - deps = { - "bluebird-2.9.30" = self.by-version."bluebird"."2.9.30"; - "chalk-1.0.0" = self.by-version."chalk"."1.0.0"; - "commander-2.8.1" = self.by-version."commander"."2.8.1"; - "is-my-json-valid-2.12.0" = self.by-version."is-my-json-valid"."2.12.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."har-validator"."^1.6.1" = - self.by-version."har-validator"."1.7.1"; - by-spec."has-ansi"."^1.0.3" = - self.by-version."has-ansi"."1.0.3"; - by-version."has-ansi"."1.0.3" = self.buildNodePackage { - name = "has-ansi-1.0.3"; - version = "1.0.3"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz"; - name = "has-ansi-1.0.3.tgz"; - sha1 = "c0b5b1615d9e382b0ff67169d967b425e48ca538"; - }; - deps = { - "ansi-regex-1.1.1" = self.by-version."ansi-regex"."1.1.1"; - "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hawk"."1.1.1" = - self.by-version."hawk"."1.1.1"; - by-version."hawk"."1.1.1" = self.buildNodePackage { - name = "hawk-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz"; - name = "hawk-1.1.1.tgz"; - sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9"; - }; - deps = { - "hoek-0.9.1" = self.by-version."hoek"."0.9.1"; - "boom-0.4.2" = self.by-version."boom"."0.4.2"; - "cryptiles-0.2.2" = self.by-version."cryptiles"."0.2.2"; - "sntp-0.2.4" = self.by-version."sntp"."0.2.4"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hawk"."~2.3.0" = - self.by-version."hawk"."2.3.1"; - by-version."hawk"."2.3.1" = self.buildNodePackage { - name = "hawk-2.3.1"; - version = "2.3.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz"; - name = "hawk-2.3.1.tgz"; - sha1 = "1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f"; - }; - deps = { - "hoek-2.14.0" = self.by-version."hoek"."2.14.0"; - "boom-2.8.0" = self.by-version."boom"."2.8.0"; - "cryptiles-2.0.4" = self.by-version."cryptiles"."2.0.4"; - "sntp-1.0.9" = self.by-version."sntp"."1.0.9"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hoek"."0.9.x" = - self.by-version."hoek"."0.9.1"; - by-version."hoek"."0.9.1" = self.buildNodePackage { - name = "hoek-0.9.1"; - version = "0.9.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"; - name = "hoek-0.9.1.tgz"; - sha1 = "3d322462badf07716ea7eb85baf88079cddce505"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hoek"."2.x.x" = - self.by-version."hoek"."2.14.0"; - by-version."hoek"."2.14.0" = self.buildNodePackage { - name = "hoek-2.14.0"; - version = "2.14.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/hoek/-/hoek-2.14.0.tgz"; - name = "hoek-2.14.0.tgz"; - sha1 = "81211691f52a5a835ae49edbf1e89c9003476aa4"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."htmlparser2"."~3.8.1" = - self.by-version."htmlparser2"."3.8.3"; - by-version."htmlparser2"."3.8.3" = self.buildNodePackage { - name = "htmlparser2-3.8.3"; - version = "3.8.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz"; - name = "htmlparser2-3.8.3.tgz"; - sha1 = "996c28b191516a8be86501a7d79757e5c70c1068"; - }; - deps = { - "domhandler-2.3.0" = self.by-version."domhandler"."2.3.0"; - "domutils-1.5.1" = self.by-version."domutils"."1.5.1"; - "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0"; - "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13"; - "entities-1.0.0" = self.by-version."entities"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."http-signature"."~0.10.0" = - self.by-version."http-signature"."0.10.1"; - by-version."http-signature"."0.10.1" = self.buildNodePackage { - name = "http-signature-0.10.1"; - version = "0.10.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz"; - name = "http-signature-0.10.1.tgz"; - sha1 = "4fbdac132559aa8323121e540779c0a012b27e66"; - }; - deps = { - "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5"; - "asn1-0.1.11" = self.by-version."asn1"."0.1.11"; - "ctype-0.5.3" = self.by-version."ctype"."0.5.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."http-signature"."~0.11.0" = - self.by-version."http-signature"."0.11.0"; - by-version."http-signature"."0.11.0" = self.buildNodePackage { - name = "http-signature-0.11.0"; - version = "0.11.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz"; - name = "http-signature-0.11.0.tgz"; - sha1 = "1796cf67a001ad5cd6849dca0991485f09089fe6"; - }; - deps = { - "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5"; - "asn1-0.1.11" = self.by-version."asn1"."0.1.11"; - "ctype-0.5.3" = self.by-version."ctype"."0.5.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."httpolyglot"."~0.1.1" = - self.by-version."httpolyglot"."0.1.1"; - by-version."httpolyglot"."0.1.1" = self.buildNodePackage { - name = "httpolyglot-0.1.1"; - version = "0.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/httpolyglot/-/httpolyglot-0.1.1.tgz"; - name = "httpolyglot-0.1.1.tgz"; - sha1 = "cd0f5c995cbb95dde325d16a7537f90c0048e53d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "httpolyglot" = self.by-version."httpolyglot"."0.1.1"; - by-spec."human-size"."~1.1.0" = - self.by-version."human-size"."1.1.0"; - by-version."human-size"."1.1.0" = self.buildNodePackage { - name = "human-size-1.1.0"; - version = "1.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/human-size/-/human-size-1.1.0.tgz"; - name = "human-size-1.1.0.tgz"; - sha1 = "052562be999841c037022c20259990c56ea996f9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "human-size" = self.by-version."human-size"."1.1.0"; - by-spec."indent-string"."^1.1.0" = - self.by-version."indent-string"."1.2.1"; - by-version."indent-string"."1.2.1" = self.buildNodePackage { - name = "indent-string-1.2.1"; - version = "1.2.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/indent-string/-/indent-string-1.2.1.tgz"; - name = "indent-string-1.2.1.tgz"; - sha1 = "294c5930792f8bb5b14462a4aa425b94f07d3a56"; - }; - deps = { - "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1"; - "minimist-1.1.1" = self.by-version."minimist"."1.1.1"; - "repeating-1.1.3" = self.by-version."repeating"."1.1.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."inherits"."*" = - self.by-version."inherits"."2.0.1"; - by-version."inherits"."2.0.1" = self.buildNodePackage { - name = "inherits-2.0.1"; - version = "2.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"; - name = "inherits-2.0.1.tgz"; - sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."inherits"."2" = - self.by-version."inherits"."2.0.1"; - by-spec."inherits"."~2.0.1" = - self.by-version."inherits"."2.0.1"; - by-spec."ipaddr.js"."1.0.1" = - self.by-version."ipaddr.js"."1.0.1"; - by-version."ipaddr.js"."1.0.1" = self.buildNodePackage { - name = "ipaddr.js-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz"; - name = "ipaddr.js-1.0.1.tgz"; - sha1 = "5f38801dc73e0400fc7076386f6ed5215fbd8f95"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-finite"."^1.0.0" = - self.by-version."is-finite"."1.0.1"; - by-version."is-finite"."1.0.1" = self.buildNodePackage { - name = "is-finite-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz"; - name = "is-finite-1.0.1.tgz"; - sha1 = "6438603eaebe2793948ff4a4262ec8db3d62597b"; - }; - deps = { - "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-my-json-valid"."^2.12.0" = - self.by-version."is-my-json-valid"."2.12.0"; - by-version."is-my-json-valid"."2.12.0" = self.buildNodePackage { - name = "is-my-json-valid-2.12.0"; - version = "2.12.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.0.tgz"; - name = "is-my-json-valid-2.12.0.tgz"; - sha1 = "8fa6c408b26be95b45a23e8f8c4b464a53874d2b"; - }; - deps = { - "generate-function-2.0.0" = self.by-version."generate-function"."2.0.0"; - "generate-object-property-1.2.0" = self.by-version."generate-object-property"."1.2.0"; - "jsonpointer-1.1.0" = self.by-version."jsonpointer"."1.1.0"; - "xtend-4.0.0" = self.by-version."xtend"."4.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-property"."^1.0.0" = - self.by-version."is-property"."1.0.2"; - by-version."is-property"."1.0.2" = self.buildNodePackage { - name = "is-property-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"; - name = "is-property-1.0.2.tgz"; - sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."isarray"."0.0.1" = - self.by-version."isarray"."0.0.1"; - by-version."isarray"."0.0.1" = self.buildNodePackage { - name = "isarray-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; - name = "isarray-0.0.1.tgz"; - sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."isstream"."~0.1.1" = - self.by-version."isstream"."0.1.2"; - by-version."isstream"."0.1.2" = self.buildNodePackage { - name = "isstream-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; - name = "isstream-0.1.2.tgz"; - sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."json-stringify-safe"."~5.0.0" = - self.by-version."json-stringify-safe"."5.0.1"; - by-version."json-stringify-safe"."5.0.1" = self.buildNodePackage { - name = "json-stringify-safe-5.0.1"; - version = "5.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; - name = "json-stringify-safe-5.0.1.tgz"; - sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jsonpointer"."^1.1.0" = - self.by-version."jsonpointer"."1.1.0"; - by-version."jsonpointer"."1.1.0" = self.buildNodePackage { - name = "jsonpointer-1.1.0"; - version = "1.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz"; - name = "jsonpointer-1.1.0.tgz"; - sha1 = "c3c72efaed3b97154163dc01dd349e1cfe0f80fc"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jstream"."~0.2.7" = - self.by-version."jstream"."0.2.7"; - by-version."jstream"."0.2.7" = self.buildNodePackage { - name = "jstream-0.2.7"; - version = "0.2.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/jstream/-/jstream-0.2.7.tgz"; - name = "jstream-0.2.7.tgz"; - sha1 = "55f06cd6d4204caeac4907a5de1b90aabf4d60da"; - }; - deps = { - "clarinet-0.8.1" = self.by-version."clarinet"."0.8.1"; - "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jwa"."~1.0.0" = - self.by-version."jwa"."1.0.0"; - by-version."jwa"."1.0.0" = self.buildNodePackage { - name = "jwa-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/jwa/-/jwa-1.0.0.tgz"; - name = "jwa-1.0.0.tgz"; - sha1 = "040b64fb582171a65f3368e96837ea4dcf42f3d8"; - }; - deps = { - "base64url-0.0.6" = self.by-version."base64url"."0.0.6"; - "buffer-equal-constant-time-1.0.1" = self.by-version."buffer-equal-constant-time"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jws"."0.0.2" = - self.by-version."jws"."0.0.2"; - by-version."jws"."0.0.2" = self.buildNodePackage { - name = "jws-0.0.2"; - version = "0.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/jws/-/jws-0.0.2.tgz"; - name = "jws-0.0.2.tgz"; - sha1 = "8c6916977183cce3361da48c8c2e0c606e7a95c6"; - }; - deps = { - "tap-0.3.3" = self.by-version."tap"."0.3.3"; - "base64url-0.0.3" = self.by-version."base64url"."0.0.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jws"."^3.0.0" = - self.by-version."jws"."3.0.0"; - by-version."jws"."3.0.0" = self.buildNodePackage { - name = "jws-3.0.0"; - version = "3.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/jws/-/jws-3.0.0.tgz"; - name = "jws-3.0.0.tgz"; - sha1 = "da5f267897dd4e9cf8137979db33fc54a3c05418"; - }; - deps = { - "jwa-1.0.0" = self.by-version."jwa"."1.0.0"; - "base64url-1.0.4" = self.by-version."base64url"."1.0.4"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jws"."~3.0.0" = - self.by-version."jws"."3.0.0"; - by-spec."keese"."~1.1.1" = - self.by-version."keese"."1.1.1"; - by-version."keese"."1.1.1" = self.buildNodePackage { - name = "keese-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/keese/-/keese-1.1.1.tgz"; - name = "keese-1.1.1.tgz"; - sha1 = "69a1f971e64ee5d2094af002f6d92fa806250842"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "keese" = self.by-version."keese"."1.1.1"; - by-spec."keygrip"."~1.0.0" = - self.by-version."keygrip"."1.0.1"; - by-version."keygrip"."1.0.1" = self.buildNodePackage { - name = "keygrip-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/keygrip/-/keygrip-1.0.1.tgz"; - name = "keygrip-1.0.1.tgz"; - sha1 = "b02fa4816eef21a8c4b35ca9e52921ffc89a30e9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lastfm"."~0.9.2" = - self.by-version."lastfm"."0.9.2"; - by-version."lastfm"."0.9.2" = self.buildNodePackage { - name = "lastfm-0.9.2"; - version = "0.9.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/lastfm/-/lastfm-0.9.2.tgz"; - name = "lastfm-0.9.2.tgz"; - sha1 = "d00ca2e3b30eb484e510792875525900e4d77d88"; - }; - deps = { - "underscore-1.6.0" = self.by-version."underscore"."1.6.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "lastfm" = self.by-version."lastfm"."0.9.2"; - by-spec."leveldown"."~1.0.6" = - self.by-version."leveldown"."1.0.7"; - by-version."leveldown"."1.0.7" = self.buildNodePackage { - name = "leveldown-1.0.7"; - version = "1.0.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/leveldown/-/leveldown-1.0.7.tgz"; - name = "leveldown-1.0.7.tgz"; - sha1 = "39bbe95f92ce09992ec12de47ade5167be2b6874"; - }; - deps = { - "abstract-leveldown-2.2.2" = self.by-version."abstract-leveldown"."2.2.2"; - "bindings-1.2.1" = self.by-version."bindings"."1.2.1"; - "fast-future-1.0.1" = self.by-version."fast-future"."1.0.1"; - "nan-1.8.4" = self.by-version."nan"."1.8.4"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "leveldown" = self.by-version."leveldown"."1.0.7"; - by-spec."lodash"."~2.4.1" = - self.by-version."lodash"."2.4.2"; - by-version."lodash"."2.4.2" = self.buildNodePackage { - name = "lodash-2.4.2"; - version = "2.4.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"; - name = "lodash-2.4.2.tgz"; - sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lodash.noop"."~3.0.0" = - self.by-version."lodash.noop"."3.0.0"; - by-version."lodash.noop"."3.0.0" = self.buildNodePackage { - name = "lodash.noop-3.0.0"; - version = "3.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.0.tgz"; - name = "lodash.noop-3.0.0.tgz"; - sha1 = "f383ca8dba97d8f217e49afcd2b824db9e5e8d68"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lru-cache"."2" = - self.by-version."lru-cache"."2.6.4"; - by-version."lru-cache"."2.6.4" = self.buildNodePackage { - name = "lru-cache-2.6.4"; - version = "2.6.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz"; - name = "lru-cache-2.6.4.tgz"; - sha1 = "2675190ccd1b0701ec2f652a4d0d3d400d76c0dd"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."map-obj"."^1.0.0" = - self.by-version."map-obj"."1.0.1"; - by-version."map-obj"."1.0.1" = self.buildNodePackage { - name = "map-obj-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"; - name = "map-obj-1.0.1.tgz"; - sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."media-typer"."0.3.0" = - self.by-version."media-typer"."0.3.0"; - by-version."media-typer"."0.3.0" = self.buildNodePackage { - name = "media-typer-0.3.0"; - version = "0.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; - name = "media-typer-0.3.0.tgz"; - sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."meow"."~2.0.0" = - self.by-version."meow"."2.0.0"; - by-version."meow"."2.0.0" = self.buildNodePackage { - name = "meow-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/meow/-/meow-2.0.0.tgz"; - name = "meow-2.0.0.tgz"; - sha1 = "8f530a8ecf5d40d3f4b4df93c3472900fba2a8f1"; - }; - deps = { - "camelcase-keys-1.0.0" = self.by-version."camelcase-keys"."1.0.0"; - "indent-string-1.2.1" = self.by-version."indent-string"."1.2.1"; - "minimist-1.1.1" = self.by-version."minimist"."1.1.1"; - "object-assign-1.0.0" = self.by-version."object-assign"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."merge-descriptors"."1.0.0" = - self.by-version."merge-descriptors"."1.0.0"; - by-version."merge-descriptors"."1.0.0" = self.buildNodePackage { - name = "merge-descriptors-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz"; - name = "merge-descriptors-1.0.0.tgz"; - sha1 = "2169cf7538e1b0cc87fb88e1502d8474bbf79864"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mess"."~0.1.2" = - self.by-version."mess"."0.1.2"; - by-version."mess"."0.1.2" = self.buildNodePackage { - name = "mess-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mess/-/mess-0.1.2.tgz"; - name = "mess-0.1.2.tgz"; - sha1 = "2c81a424efc87a69ad11f1c7129d1f6f6353b9c0"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "mess" = self.by-version."mess"."0.1.2"; - by-spec."methods"."~1.1.1" = - self.by-version."methods"."1.1.1"; - by-version."methods"."1.1.1" = self.buildNodePackage { - name = "methods-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/methods/-/methods-1.1.1.tgz"; - name = "methods-1.1.1.tgz"; - sha1 = "17ea6366066d00c58e375b8ec7dfd0453c89822a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime"."1.3.4" = - self.by-version."mime"."1.3.4"; - by-version."mime"."1.3.4" = self.buildNodePackage { - name = "mime-1.3.4"; - version = "1.3.4"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/mime/-/mime-1.3.4.tgz"; - name = "mime-1.3.4.tgz"; - sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime"."^1.2.11" = - self.by-version."mime"."1.3.4"; - by-spec."mime"."~1.2.11" = - self.by-version."mime"."1.2.11"; - by-version."mime"."1.2.11" = self.buildNodePackage { - name = "mime-1.2.11"; - version = "1.2.11"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz"; - name = "mime-1.2.11.tgz"; - sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-db"."~1.12.0" = - self.by-version."mime-db"."1.12.0"; - by-version."mime-db"."1.12.0" = self.buildNodePackage { - name = "mime-db-1.12.0"; - version = "1.12.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"; - name = "mime-db-1.12.0.tgz"; - sha1 = "3d0c63180f458eb10d325aaa37d7c58ae312e9d7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-db"."~1.13.0" = - self.by-version."mime-db"."1.13.0"; - by-version."mime-db"."1.13.0" = self.buildNodePackage { - name = "mime-db-1.13.0"; - version = "1.13.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime-db/-/mime-db-1.13.0.tgz"; - name = "mime-db-1.13.0.tgz"; - sha1 = "fd6808168fe30835e7ea2205fc981d3b633e4e34"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-types"."~1.0.1" = - self.by-version."mime-types"."1.0.2"; - by-version."mime-types"."1.0.2" = self.buildNodePackage { - name = "mime-types-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"; - name = "mime-types-1.0.2.tgz"; - sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-types"."~2.0.1" = - self.by-version."mime-types"."2.0.14"; - by-version."mime-types"."2.0.14" = self.buildNodePackage { - name = "mime-types-2.0.14"; - version = "2.0.14"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"; - name = "mime-types-2.0.14.tgz"; - sha1 = "310e159db23e077f8bb22b748dabfa4957140aa6"; - }; - deps = { - "mime-db-1.12.0" = self.by-version."mime-db"."1.12.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-types"."~2.0.3" = - self.by-version."mime-types"."2.0.14"; - by-spec."mime-types"."~2.1.1" = - self.by-version."mime-types"."2.1.1"; - by-version."mime-types"."2.1.1" = self.buildNodePackage { - name = "mime-types-2.1.1"; - version = "2.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mime-types/-/mime-types-2.1.1.tgz"; - name = "mime-types-2.1.1.tgz"; - sha1 = "c7b692796d5166f4826d10b4675c8a916657d04e"; - }; - deps = { - "mime-db-1.13.0" = self.by-version."mime-db"."1.13.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."minimatch"."0.3" = - self.by-version."minimatch"."0.3.0"; - by-version."minimatch"."0.3.0" = self.buildNodePackage { - name = "minimatch-0.3.0"; - version = "0.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"; - name = "minimatch-0.3.0.tgz"; - sha1 = "275d8edaac4f1bb3326472089e7949c8394699dd"; - }; - deps = { - "lru-cache-2.6.4" = self.by-version."lru-cache"."2.6.4"; - "sigmund-1.0.1" = self.by-version."sigmund"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."minimist"."0.0.8" = - self.by-version."minimist"."0.0.8"; - by-version."minimist"."0.0.8" = self.buildNodePackage { - name = "minimist-0.0.8"; - version = "0.0.8"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"; - name = "minimist-0.0.8.tgz"; - sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."minimist"."^1.1.0" = - self.by-version."minimist"."1.1.1"; - by-version."minimist"."1.1.1" = self.buildNodePackage { - name = "minimist-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz"; - name = "minimist-1.1.1.tgz"; - sha1 = "1bc2bc71658cdca5712475684363615b0b4f695b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mkdirp"."0.3.x" = - self.by-version."mkdirp"."0.3.5"; - by-version."mkdirp"."0.3.5" = self.buildNodePackage { - name = "mkdirp-0.3.5"; - version = "0.3.5"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"; - name = "mkdirp-0.3.5.tgz"; - sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mkdirp"."~0.3" = - self.by-version."mkdirp"."0.3.5"; - by-spec."mkdirp"."~0.5.0" = - self.by-version."mkdirp"."0.5.1"; - by-version."mkdirp"."0.5.1" = self.buildNodePackage { - name = "mkdirp-0.5.1"; - version = "0.5.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"; - name = "mkdirp-0.5.1.tgz"; - sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; - }; - deps = { - "minimist-0.0.8" = self.by-version."minimist"."0.0.8"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mkdirp"."~0.5.1" = - self.by-version."mkdirp"."0.5.1"; - "mkdirp" = self.by-version."mkdirp"."0.5.1"; - by-spec."ms"."0.7.1" = - self.by-version."ms"."0.7.1"; - by-version."ms"."0.7.1" = self.buildNodePackage { - name = "ms-0.7.1"; - version = "0.7.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz"; - name = "ms-0.7.1.tgz"; - sha1 = "9cd13c03adbff25b65effde7ce864ee952017098"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."multiparty"."~4.1.2" = - self.by-version."multiparty"."4.1.2"; - by-version."multiparty"."4.1.2" = self.buildNodePackage { - name = "multiparty-4.1.2"; - version = "4.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/multiparty/-/multiparty-4.1.2.tgz"; - name = "multiparty-4.1.2.tgz"; - sha1 = "54f8ec9712052fa1dfd8ec975056c8230d6f2370"; - }; - deps = { - "fd-slicer-1.0.1" = self.by-version."fd-slicer"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "multiparty" = self.by-version."multiparty"."4.1.2"; - by-spec."music-library-index"."~1.3.0" = - self.by-version."music-library-index"."1.3.0"; - by-version."music-library-index"."1.3.0" = self.buildNodePackage { - name = "music-library-index-1.3.0"; - version = "1.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/music-library-index/-/music-library-index-1.3.0.tgz"; - name = "music-library-index-1.3.0.tgz"; - sha1 = "f7dbf6f7df5a0c8c50382542183872aedc5cb86a"; - }; - deps = { - "diacritics-1.2.1" = self.by-version."diacritics"."1.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "music-library-index" = self.by-version."music-library-index"."1.3.0"; - by-spec."mv"."~2.0.3" = - self.by-version."mv"."2.0.3"; - by-version."mv"."2.0.3" = self.buildNodePackage { - name = "mv-2.0.3"; - version = "2.0.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/mv/-/mv-2.0.3.tgz"; - name = "mv-2.0.3.tgz"; - sha1 = "e9ab707d71dc38de24edcc637a8e2f5f480c7f32"; - }; - deps = { - "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1"; - "ncp-0.6.0" = self.by-version."ncp"."0.6.0"; - "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "mv" = self.by-version."mv"."2.0.3"; - by-spec."nan"."~1.8.4" = - self.by-version."nan"."1.8.4"; - by-version."nan"."1.8.4" = self.buildNodePackage { - name = "nan-1.8.4"; - version = "1.8.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/nan/-/nan-1.8.4.tgz"; - name = "nan-1.8.4.tgz"; - sha1 = "3c76b5382eab33e44b758d2813ca9d92e9342f34"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ncp"."~0.6.0" = - self.by-version."ncp"."0.6.0"; - by-version."ncp"."0.6.0" = self.buildNodePackage { - name = "ncp-0.6.0"; - version = "0.6.0"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/ncp/-/ncp-0.6.0.tgz"; - name = "ncp-0.6.0.tgz"; - sha1 = "df8ce021e262be21b52feb3d3e5cfaab12491f0d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."negotiator"."0.5.3" = - self.by-version."negotiator"."0.5.3"; - by-version."negotiator"."0.5.3" = self.buildNodePackage { - name = "negotiator-0.5.3"; - version = "0.5.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"; - name = "negotiator-0.5.3.tgz"; - sha1 = "269d5c476810ec92edbe7b6c2f28316384f9a7e8"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."node-forge"."0.6.16" = - self.by-version."node-forge"."0.6.16"; - by-version."node-forge"."0.6.16" = self.buildNodePackage { - name = "node-forge-0.6.16"; - version = "0.6.16"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/node-forge/-/node-forge-0.6.16.tgz"; - name = "node-forge-0.6.16.tgz"; - sha1 = "aae85babf97034d46f1b74a39bfe5891282ae842"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."node-uuid"."~1.4.0" = - self.by-version."node-uuid"."1.4.3"; - by-version."node-uuid"."1.4.3" = self.buildNodePackage { - name = "node-uuid-1.4.3"; - version = "1.4.3"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"; - name = "node-uuid-1.4.3.tgz"; - sha1 = "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."nopt"."~2" = - self.by-version."nopt"."2.2.1"; - by-version."nopt"."2.2.1" = self.buildNodePackage { - name = "nopt-2.2.1"; - version = "2.2.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz"; - name = "nopt-2.2.1.tgz"; - sha1 = "2aa09b7d1768487b3b89a9c5aa52335bff0baea7"; - }; - deps = { - "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."number-is-nan"."^1.0.0" = - self.by-version."number-is-nan"."1.0.0"; - by-version."number-is-nan"."1.0.0" = self.buildNodePackage { - name = "number-is-nan-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz"; - name = "number-is-nan-1.0.0.tgz"; - sha1 = "c020f529c5282adfdd233d91d4b181c3d686dc4b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."oauth-sign"."~0.5.0" = - self.by-version."oauth-sign"."0.5.0"; - by-version."oauth-sign"."0.5.0" = self.buildNodePackage { - name = "oauth-sign-0.5.0"; - version = "0.5.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz"; - name = "oauth-sign-0.5.0.tgz"; - sha1 = "d767f5169325620eab2e087ef0c472e773db6461"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."oauth-sign"."~0.6.0" = - self.by-version."oauth-sign"."0.6.0"; - by-version."oauth-sign"."0.6.0" = self.buildNodePackage { - name = "oauth-sign-0.6.0"; - version = "0.6.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz"; - name = "oauth-sign-0.6.0.tgz"; - sha1 = "7dbeae44f6ca454e1f168451d630746735813ce3"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."oauth-sign"."~0.8.0" = - self.by-version."oauth-sign"."0.8.0"; - by-version."oauth-sign"."0.8.0" = self.buildNodePackage { - name = "oauth-sign-0.8.0"; - version = "0.8.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz"; - name = "oauth-sign-0.8.0.tgz"; - sha1 = "938fdc875765ba527137d8aec9d178e24debc553"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."object-assign"."^1.0.0" = - self.by-version."object-assign"."1.0.0"; - by-version."object-assign"."1.0.0" = self.buildNodePackage { - name = "object-assign-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/object-assign/-/object-assign-1.0.0.tgz"; - name = "object-assign-1.0.0.tgz"; - sha1 = "e65dc8766d3b47b4b8307465c8311da030b070a6"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."on-finished"."~2.2.1" = - self.by-version."on-finished"."2.2.1"; - by-version."on-finished"."2.2.1" = self.buildNodePackage { - name = "on-finished-2.2.1"; - version = "2.2.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/on-finished/-/on-finished-2.2.1.tgz"; - name = "on-finished-2.2.1.tgz"; - sha1 = "5c85c1cc36299f78029653f667f27b6b99ebc029"; - }; - deps = { - "ee-first-1.1.0" = self.by-version."ee-first"."1.1.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."os-tmpdir"."^1.0.0" = - self.by-version."os-tmpdir"."1.0.1"; - by-version."os-tmpdir"."1.0.1" = self.buildNodePackage { - name = "os-tmpdir-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz"; - name = "os-tmpdir-1.0.1.tgz"; - sha1 = "e9b423a1edaf479882562e92ed71d7743a071b6e"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."osenv"."~0.1.0" = - self.by-version."osenv"."0.1.2"; - by-version."osenv"."0.1.2" = self.buildNodePackage { - name = "osenv-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/osenv/-/osenv-0.1.2.tgz"; - name = "osenv-0.1.2.tgz"; - sha1 = "f4d23ebeceaef078600fb78c0ea58fac5996a02d"; - }; - deps = { - "os-tmpdir-1.0.1" = self.by-version."os-tmpdir"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "osenv" = self.by-version."osenv"."0.1.2"; - by-spec."parseurl"."~1.3.0" = - self.by-version."parseurl"."1.3.0"; - by-version."parseurl"."1.3.0" = self.buildNodePackage { - name = "parseurl-1.3.0"; - version = "1.3.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz"; - name = "parseurl-1.3.0.tgz"; - sha1 = "b58046db4223e145afa76009e61bac87cc2281b3"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."path-to-regexp"."0.1.3" = - self.by-version."path-to-regexp"."0.1.3"; - by-version."path-to-regexp"."0.1.3" = self.buildNodePackage { - name = "path-to-regexp-0.1.3"; - version = "0.1.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz"; - name = "path-to-regexp-0.1.3.tgz"; - sha1 = "21b9ab82274279de25b156ea08fd12ca51b8aecb"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."pend"."~1.2.0" = - self.by-version."pend"."1.2.0"; - by-version."pend"."1.2.0" = self.buildNodePackage { - name = "pend-1.2.0"; - version = "1.2.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/pend/-/pend-1.2.0.tgz"; - name = "pend-1.2.0.tgz"; - sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "pend" = self.by-version."pend"."1.2.0"; - by-spec."proxy-addr"."~1.0.8" = - self.by-version."proxy-addr"."1.0.8"; - by-version."proxy-addr"."1.0.8" = self.buildNodePackage { - name = "proxy-addr-1.0.8"; - version = "1.0.8"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz"; - name = "proxy-addr-1.0.8.tgz"; - sha1 = "db54ec878bcc1053d57646609219b3715678bafe"; - }; - deps = { - "forwarded-0.1.0" = self.by-version."forwarded"."0.1.0"; - "ipaddr.js-1.0.1" = self.by-version."ipaddr.js"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."qs"."2.4.2" = - self.by-version."qs"."2.4.2"; - by-version."qs"."2.4.2" = self.buildNodePackage { - name = "qs-2.4.2"; - version = "2.4.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/qs/-/qs-2.4.2.tgz"; - name = "qs-2.4.2.tgz"; - sha1 = "f7ce788e5777df0b5010da7f7c4e73ba32470f5a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."qs"."~2.3.1" = - self.by-version."qs"."2.3.3"; - by-version."qs"."2.3.3" = self.buildNodePackage { - name = "qs-2.3.3"; - version = "2.3.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/qs/-/qs-2.3.3.tgz"; - name = "qs-2.3.3.tgz"; - sha1 = "e9e85adbe75da0bbe4c8e0476a086290f863b404"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."qs"."~2.4.0" = - self.by-version."qs"."2.4.2"; - by-spec."qs"."~3.1.0" = - self.by-version."qs"."3.1.0"; - by-version."qs"."3.1.0" = self.buildNodePackage { - name = "qs-3.1.0"; - version = "3.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/qs/-/qs-3.1.0.tgz"; - name = "qs-3.1.0.tgz"; - sha1 = "d0e9ae745233a12dc43fb4f3055bba446261153c"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."range-parser"."~1.0.2" = - self.by-version."range-parser"."1.0.2"; - by-version."range-parser"."1.0.2" = self.buildNodePackage { - name = "range-parser-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz"; - name = "range-parser-1.0.2.tgz"; - sha1 = "06a12a42e5131ba8e457cd892044867f2344e549"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."readable-stream"."1.1" = - self.by-version."readable-stream"."1.1.13"; - by-version."readable-stream"."1.1.13" = self.buildNodePackage { - name = "readable-stream-1.1.13"; - version = "1.1.13"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz"; - name = "readable-stream-1.1.13.tgz"; - sha1 = "f6eef764f514c89e2b9e23146a75ba106756d23e"; - }; - deps = { - "core-util-is-1.0.1" = self.by-version."core-util-is"."1.0.1"; - "isarray-0.0.1" = self.by-version."isarray"."0.0.1"; - "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31"; - "inherits-2.0.1" = self.by-version."inherits"."2.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."readable-stream"."~1.0.26" = - self.by-version."readable-stream"."1.0.33"; - by-version."readable-stream"."1.0.33" = self.buildNodePackage { - name = "readable-stream-1.0.33"; - version = "1.0.33"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz"; - name = "readable-stream-1.0.33.tgz"; - sha1 = "3a360dd66c1b1d7fd4705389860eda1d0f61126c"; - }; - deps = { - "core-util-is-1.0.1" = self.by-version."core-util-is"."1.0.1"; - "isarray-0.0.1" = self.by-version."isarray"."0.0.1"; - "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31"; - "inherits-2.0.1" = self.by-version."inherits"."2.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."readable-stream"."~1.1.9" = - self.by-version."readable-stream"."1.1.13"; - by-spec."repeating"."^1.1.0" = - self.by-version."repeating"."1.1.3"; - by-version."repeating"."1.1.3" = self.buildNodePackage { - name = "repeating-1.1.3"; - version = "1.1.3"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz"; - name = "repeating-1.1.3.tgz"; - sha1 = "3d4114218877537494f97f77f9785fab810fa4ac"; - }; - deps = { - "is-finite-1.0.1" = self.by-version."is-finite"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."request"."^2.37.0" = - self.by-version."request"."2.57.0"; - by-version."request"."2.57.0" = self.buildNodePackage { - name = "request-2.57.0"; - version = "2.57.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/request/-/request-2.57.0.tgz"; - name = "request-2.57.0.tgz"; - sha1 = "d445105a42d009b9d724289633b449a6d723d989"; - }; - deps = { - "bl-0.9.4" = self.by-version."bl"."0.9.4"; - "caseless-0.10.0" = self.by-version."caseless"."0.10.0"; - "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1"; - "form-data-0.2.0" = self.by-version."form-data"."0.2.0"; - "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1"; - "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14"; - "node-uuid-1.4.3" = self.by-version."node-uuid"."1.4.3"; - "qs-3.1.0" = self.by-version."qs"."3.1.0"; - "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0"; - "tough-cookie-2.0.0" = self.by-version."tough-cookie"."2.0.0"; - "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0"; - "oauth-sign-0.8.0" = self.by-version."oauth-sign"."0.8.0"; - "hawk-2.3.1" = self.by-version."hawk"."2.3.1"; - "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0"; - "stringstream-0.0.4" = self.by-version."stringstream"."0.0.4"; - "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; - "isstream-0.1.2" = self.by-version."isstream"."0.1.2"; - "har-validator-1.7.1" = self.by-version."har-validator"."1.7.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."request"."^2.54.0" = - self.by-version."request"."2.57.0"; - by-spec."request"."^2.55.0" = - self.by-version."request"."2.57.0"; - by-spec."request"."~2.51.0" = - self.by-version."request"."2.51.0"; - by-version."request"."2.51.0" = self.buildNodePackage { - name = "request-2.51.0"; - version = "2.51.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/request/-/request-2.51.0.tgz"; - name = "request-2.51.0.tgz"; - sha1 = "35d00bbecc012e55f907b1bd9e0dbd577bfef26e"; - }; - deps = { - "bl-0.9.4" = self.by-version."bl"."0.9.4"; - "caseless-0.8.0" = self.by-version."caseless"."0.8.0"; - "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2"; - "form-data-0.2.0" = self.by-version."form-data"."0.2.0"; - "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1"; - "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2"; - "node-uuid-1.4.3" = self.by-version."node-uuid"."1.4.3"; - "qs-2.3.3" = self.by-version."qs"."2.3.3"; - "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0"; - "tough-cookie-2.0.0" = self.by-version."tough-cookie"."2.0.0"; - "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1"; - "oauth-sign-0.5.0" = self.by-version."oauth-sign"."0.5.0"; - "hawk-1.1.1" = self.by-version."hawk"."1.1.1"; - "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0"; - "stringstream-0.0.4" = self.by-version."stringstream"."0.0.4"; - "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."request"."~2.54.0" = - self.by-version."request"."2.54.0"; - by-version."request"."2.54.0" = self.buildNodePackage { - name = "request-2.54.0"; - version = "2.54.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/request/-/request-2.54.0.tgz"; - name = "request-2.54.0.tgz"; - sha1 = "a13917cd8e8fa73332da0bf2f84a30181def1953"; - }; - deps = { - "bl-0.9.4" = self.by-version."bl"."0.9.4"; - "caseless-0.9.0" = self.by-version."caseless"."0.9.0"; - "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1"; - "form-data-0.2.0" = self.by-version."form-data"."0.2.0"; - "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1"; - "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14"; - "node-uuid-1.4.3" = self.by-version."node-uuid"."1.4.3"; - "qs-2.4.2" = self.by-version."qs"."2.4.2"; - "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0"; - "tough-cookie-2.0.0" = self.by-version."tough-cookie"."2.0.0"; - "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1"; - "oauth-sign-0.6.0" = self.by-version."oauth-sign"."0.6.0"; - "hawk-2.3.1" = self.by-version."hawk"."2.3.1"; - "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0"; - "stringstream-0.0.4" = self.by-version."stringstream"."0.0.4"; - "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7"; - "isstream-0.1.2" = self.by-version."isstream"."0.1.2"; - "har-validator-1.7.1" = self.by-version."har-validator"."1.7.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."rimraf"."~2.2.8" = - self.by-version."rimraf"."2.2.8"; - by-version."rimraf"."2.2.8" = self.buildNodePackage { - name = "rimraf-2.2.8"; - version = "2.2.8"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"; - name = "rimraf-2.2.8.tgz"; - sha1 = "e439be2aaee327321952730f99a8929e4fc50582"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."runforcover"."~0.0.2" = - self.by-version."runforcover"."0.0.2"; - by-version."runforcover"."0.0.2" = self.buildNodePackage { - name = "runforcover-0.0.2"; - version = "0.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/runforcover/-/runforcover-0.0.2.tgz"; - name = "runforcover-0.0.2.tgz"; - sha1 = "344f057d8d45d33aebc6cc82204678f69c4857cc"; - }; - deps = { - "bunker-0.1.2" = self.by-version."bunker"."0.1.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."sax"."0.5.x" = - self.by-version."sax"."0.5.8"; - by-version."sax"."0.5.8" = self.buildNodePackage { - name = "sax-0.5.8"; - version = "0.5.8"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz"; - name = "sax-0.5.8.tgz"; - sha1 = "d472db228eb331c2506b0e8c15524adb939d12c1"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."semver"."~4.3.4" = - self.by-version."semver"."4.3.6"; - by-version."semver"."4.3.6" = self.buildNodePackage { - name = "semver-4.3.6"; - version = "4.3.6"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz"; - name = "semver-4.3.6.tgz"; - sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "semver" = self.by-version."semver"."4.3.6"; - by-spec."send"."0.12.3" = - self.by-version."send"."0.12.3"; - by-version."send"."0.12.3" = self.buildNodePackage { - name = "send-0.12.3"; - version = "0.12.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/send/-/send-0.12.3.tgz"; - name = "send-0.12.3.tgz"; - sha1 = "cd12dc58fde21e4f91902b39b2fda05a7a6d9bdc"; - }; - deps = { - "debug-2.2.0" = self.by-version."debug"."2.2.0"; - "depd-1.0.1" = self.by-version."depd"."1.0.1"; - "destroy-1.0.3" = self.by-version."destroy"."1.0.3"; - "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1"; - "etag-1.6.0" = self.by-version."etag"."1.6.0"; - "fresh-0.2.4" = self.by-version."fresh"."0.2.4"; - "mime-1.3.4" = self.by-version."mime"."1.3.4"; - "ms-0.7.1" = self.by-version."ms"."0.7.1"; - "on-finished-2.2.1" = self.by-version."on-finished"."2.2.1"; - "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."serve-static"."~1.9.3" = - self.by-version."serve-static"."1.9.3"; - by-version."serve-static"."1.9.3" = self.buildNodePackage { - name = "serve-static-1.9.3"; - version = "1.9.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/serve-static/-/serve-static-1.9.3.tgz"; - name = "serve-static-1.9.3.tgz"; - sha1 = "5f8da07323ad385ff3dc541f1a7917b2e436eb57"; - }; - deps = { - "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1"; - "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0"; - "send-0.12.3" = self.by-version."send"."0.12.3"; - "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "serve-static" = self.by-version."serve-static"."1.9.3"; - by-spec."sigmund"."~1.0.0" = - self.by-version."sigmund"."1.0.1"; - by-version."sigmund"."1.0.1" = self.buildNodePackage { - name = "sigmund-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"; - name = "sigmund-1.0.1.tgz"; - sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."slide"."*" = - self.by-version."slide"."1.1.6"; - by-version."slide"."1.1.6" = self.buildNodePackage { - name = "slide-1.1.6"; - version = "1.1.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/slide/-/slide-1.1.6.tgz"; - name = "slide-1.1.6.tgz"; - sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."sntp"."0.2.x" = - self.by-version."sntp"."0.2.4"; - by-version."sntp"."0.2.4" = self.buildNodePackage { - name = "sntp-0.2.4"; - version = "0.2.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz"; - name = "sntp-0.2.4.tgz"; - sha1 = "fb885f18b0f3aad189f824862536bceeec750900"; - }; - deps = { - "hoek-0.9.1" = self.by-version."hoek"."0.9.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."sntp"."1.x.x" = - self.by-version."sntp"."1.0.9"; - by-version."sntp"."1.0.9" = self.buildNodePackage { - name = "sntp-1.0.9"; - version = "1.0.9"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"; - name = "sntp-1.0.9.tgz"; - sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198"; - }; - deps = { - "hoek-2.14.0" = self.by-version."hoek"."2.14.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."source-map"."0.1.x" = - self.by-version."source-map"."0.1.43"; - by-version."source-map"."0.1.43" = self.buildNodePackage { - name = "source-map-0.1.43"; - version = "0.1.43"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"; - name = "source-map-0.1.43.tgz"; - sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346"; - }; - deps = { - "amdefine-0.1.1" = self.by-version."amdefine"."0.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."streamsink"."~1.2.0" = - self.by-version."streamsink"."1.2.0"; - by-version."streamsink"."1.2.0" = self.buildNodePackage { - name = "streamsink-1.2.0"; - version = "1.2.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/streamsink/-/streamsink-1.2.0.tgz"; - name = "streamsink-1.2.0.tgz"; - sha1 = "efafee9f1e22d3591ed7de3dcaa95c3f5e79f73c"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."string-template"."~0.2.0" = - self.by-version."string-template"."0.2.1"; - by-version."string-template"."0.2.1" = self.buildNodePackage { - name = "string-template-0.2.1"; - version = "0.2.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz"; - name = "string-template-0.2.1.tgz"; - sha1 = "42932e598a352d01fc22ec3367d9d84eec6c9add"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."string_decoder"."~0.10.x" = - self.by-version."string_decoder"."0.10.31"; - by-version."string_decoder"."0.10.31" = self.buildNodePackage { - name = "string_decoder-0.10.31"; - version = "0.10.31"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; - name = "string_decoder-0.10.31.tgz"; - sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."stringstream"."~0.0.4" = - self.by-version."stringstream"."0.0.4"; - by-version."stringstream"."0.0.4" = self.buildNodePackage { - name = "stringstream-0.0.4"; - version = "0.0.4"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz"; - name = "stringstream-0.0.4.tgz"; - sha1 = "0f0e3423f942960b5692ac324a57dd093bc41a92"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."strip-ansi"."^2.0.1" = - self.by-version."strip-ansi"."2.0.1"; - by-version."strip-ansi"."2.0.1" = self.buildNodePackage { - name = "strip-ansi-2.0.1"; - version = "2.0.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz"; - name = "strip-ansi-2.0.1.tgz"; - sha1 = "df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"; - }; - deps = { - "ansi-regex-1.1.1" = self.by-version."ansi-regex"."1.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."stylus"."~0.49.3" = - self.by-version."stylus"."0.49.3"; - by-version."stylus"."0.49.3" = self.buildNodePackage { - name = "stylus-0.49.3"; - version = "0.49.3"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/stylus/-/stylus-0.49.3.tgz"; - name = "stylus-0.49.3.tgz"; - sha1 = "1fbdabe479ed460872c71a6252a67f95040ba511"; - }; - deps = { - "css-parse-1.7.0" = self.by-version."css-parse"."1.7.0"; - "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5"; - "debug-2.2.0" = self.by-version."debug"."2.2.0"; - "sax-0.5.8" = self.by-version."sax"."0.5.8"; - "glob-3.2.11" = self.by-version."glob"."3.2.11"; - "source-map-0.1.43" = self.by-version."source-map"."0.1.43"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "stylus" = self.by-version."stylus"."0.49.3"; - by-spec."supports-color"."^1.3.0" = - self.by-version."supports-color"."1.3.1"; - by-version."supports-color"."1.3.1" = self.buildNodePackage { - name = "supports-color-1.3.1"; - version = "1.3.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz"; - name = "supports-color-1.3.1.tgz"; - sha1 = "15758df09d8ff3b4acc307539fabe27095e1042d"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tap"."~0.3.3" = - self.by-version."tap"."0.3.3"; - by-version."tap"."0.3.3" = self.buildNodePackage { - name = "tap-0.3.3"; - version = "0.3.3"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/tap/-/tap-0.3.3.tgz"; - name = "tap-0.3.3.tgz"; - sha1 = "c862237af0a213f97fff46594bd1d44eca705d63"; - }; - deps = { - "inherits-2.0.1" = self.by-version."inherits"."2.0.1"; - "yamlish-0.0.7" = self.by-version."yamlish"."0.0.7"; - "slide-1.1.6" = self.by-version."slide"."1.1.6"; - "runforcover-0.0.2" = self.by-version."runforcover"."0.0.2"; - "nopt-2.2.1" = self.by-version."nopt"."2.2.1"; - "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5"; - "difflet-0.2.6" = self.by-version."difflet"."0.2.6"; - "deep-equal-0.0.0" = self.by-version."deep-equal"."0.0.0"; - "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tough-cookie".">=0.12.0" = - self.by-version."tough-cookie"."2.0.0"; - by-version."tough-cookie"."2.0.0" = self.buildNodePackage { - name = "tough-cookie-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz"; - name = "tough-cookie-2.0.0.tgz"; - sha1 = "41ce08720b35cf90beb044dd2609fb19e928718f"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."traverse"."0.6.x" = - self.by-version."traverse"."0.6.6"; - by-version."traverse"."0.6.6" = self.buildNodePackage { - name = "traverse-0.6.6"; - version = "0.6.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz"; - name = "traverse-0.6.6.tgz"; - sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."traverse"."~0.5.1" = - self.by-version."traverse"."0.5.2"; - by-version."traverse"."0.5.2" = self.buildNodePackage { - name = "traverse-0.5.2"; - version = "0.5.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/traverse/-/traverse-0.5.2.tgz"; - name = "traverse-0.5.2.tgz"; - sha1 = "e203c58d5f7f0e37db6e74c0acb929bb09b61d85"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tunnel-agent"."~0.4.0" = - self.by-version."tunnel-agent"."0.4.0"; - by-version."tunnel-agent"."0.4.0" = self.buildNodePackage { - name = "tunnel-agent-0.4.0"; - version = "0.4.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz"; - name = "tunnel-agent-0.4.0.tgz"; - sha1 = "b1184e312ffbcf70b3b4c78e8c219de7ebb1c550"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."type-is"."~1.6.2" = - self.by-version."type-is"."1.6.3"; - by-version."type-is"."1.6.3" = self.buildNodePackage { - name = "type-is-1.6.3"; - version = "1.6.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/type-is/-/type-is-1.6.3.tgz"; - name = "type-is-1.6.3.tgz"; - sha1 = "d87d201777f76dfc526ac202679715d41a28c580"; - }; - deps = { - "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0"; - "mime-types-2.1.1" = self.by-version."mime-types"."2.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."typedarray"."~0.0.5" = - self.by-version."typedarray"."0.0.6"; - by-version."typedarray"."0.0.6" = self.buildNodePackage { - name = "typedarray-0.0.6"; - version = "0.0.6"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; - name = "typedarray-0.0.6.tgz"; - sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."uglify-js"."~1.1.1" = - self.by-version."uglify-js"."1.1.1"; - by-version."uglify-js"."1.1.1" = self.buildNodePackage { - name = "uglify-js-1.1.1"; - version = "1.1.1"; - bin = true; - src = fetchurl { - url = "http://registry.npmjs.org/uglify-js/-/uglify-js-1.1.1.tgz"; - name = "uglify-js-1.1.1.tgz"; - sha1 = "ee71a97c4cefd06a1a9b20437f34118982aa035b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."underscore"."^1.6.0" = - self.by-version."underscore"."1.8.3"; - by-version."underscore"."1.8.3" = self.buildNodePackage { - name = "underscore-1.8.3"; - version = "1.8.3"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"; - name = "underscore-1.8.3.tgz"; - sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."underscore"."~1.6.0" = - self.by-version."underscore"."1.6.0"; - by-version."underscore"."1.6.0" = self.buildNodePackage { - name = "underscore-1.6.0"; - version = "1.6.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"; - name = "underscore-1.6.0.tgz"; - sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."utils-merge"."1.0.0" = - self.by-version."utils-merge"."1.0.0"; - by-version."utils-merge"."1.0.0" = self.buildNodePackage { - name = "utils-merge-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"; - name = "utils-merge-1.0.0.tgz"; - sha1 = "0294fb922bb9375153541c4f7096231f287c8af8"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."vary"."~1.0.0" = - self.by-version."vary"."1.0.0"; - by-version."vary"."1.0.0" = self.buildNodePackage { - name = "vary-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/vary/-/vary-1.0.0.tgz"; - name = "vary-1.0.0.tgz"; - sha1 = "c5e76cec20d3820d8f2a96e7bee38731c34da1e7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."xtend"."^4.0.0" = - self.by-version."xtend"."4.0.0"; - by-version."xtend"."4.0.0" = self.buildNodePackage { - name = "xtend-4.0.0"; - version = "4.0.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"; - name = "xtend-4.0.0.tgz"; - sha1 = "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."xtend"."~4.0.0" = - self.by-version."xtend"."4.0.0"; - by-spec."yamlish"."*" = - self.by-version."yamlish"."0.0.7"; - by-version."yamlish"."0.0.7" = self.buildNodePackage { - name = "yamlish-0.0.7"; - version = "0.0.7"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/yamlish/-/yamlish-0.0.7.tgz"; - name = "yamlish-0.0.7.tgz"; - sha1 = "b4af9a1dcc63618873c3d6e451ec3213c39a57fb"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."yauzl"."~2.3.0" = - self.by-version."yauzl"."2.3.1"; - by-version."yauzl"."2.3.1" = self.buildNodePackage { - name = "yauzl-2.3.1"; - version = "2.3.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/yauzl/-/yauzl-2.3.1.tgz"; - name = "yauzl-2.3.1.tgz"; - sha1 = "6707fe2b6a4dac9445cc429bf04a11c7dedfa36a"; - }; - deps = { - "fd-slicer-1.0.1" = self.by-version."fd-slicer"."1.0.1"; - "pend-1.2.0" = self.by-version."pend"."1.2.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "yauzl" = self.by-version."yauzl"."2.3.1"; - by-spec."yawl"."~1.0.2" = - self.by-version."yawl"."1.0.2"; - by-version."yawl"."1.0.2" = self.buildNodePackage { - name = "yawl-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/yawl/-/yawl-1.0.2.tgz"; - name = "yawl-1.0.2.tgz"; - sha1 = "df1301cb50e5bc74cc36d5c1ef9cfbd1f84b408e"; - }; - deps = { - "bl-0.9.4" = self.by-version."bl"."0.9.4"; - "pend-1.2.0" = self.by-version."pend"."1.2.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "yawl" = self.by-version."yawl"."1.0.2"; - by-spec."yazl"."~2.2.2" = - self.by-version."yazl"."2.2.2"; - by-version."yazl"."2.2.2" = self.buildNodePackage { - name = "yazl-2.2.2"; - version = "2.2.2"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/yazl/-/yazl-2.2.2.tgz"; - name = "yazl-2.2.2.tgz"; - sha1 = "60187f4ce6df314e7501c3c0e40bcf1b58fda183"; - }; - deps = { - "buffer-crc32-0.2.5" = self.by-version."buffer-crc32"."0.2.5"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "yazl" = self.by-version."yazl"."2.2.2"; - by-spec."ytdl-core".">=0.5.1" = - self.by-version."ytdl-core"."0.5.1"; - by-version."ytdl-core"."0.5.1" = self.buildNodePackage { - name = "ytdl-core-0.5.1"; - version = "0.5.1"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/ytdl-core/-/ytdl-core-0.5.1.tgz"; - name = "ytdl-core-0.5.1.tgz"; - sha1 = "3c48d696b019d7faae635a3f1e4eaa9131110f43"; - }; - deps = { - "cheerio-0.18.0" = self.by-version."cheerio"."0.18.0"; - "jstream-0.2.7" = self.by-version."jstream"."0.2.7"; - "request-2.57.0" = self.by-version."request"."2.57.0"; - "underscore-1.8.3" = self.by-version."underscore"."1.8.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "ytdl-core" = self.by-version."ytdl-core"."0.5.1"; -} - diff --git a/pkgs/applications/audio/gtklick/default.nix b/pkgs/applications/audio/gtklick/default.nix index c0a137d7de9..fae8d3e4b60 100644 --- a/pkgs/applications/audio/gtklick/default.nix +++ b/pkgs/applications/audio/gtklick/default.nix @@ -28,7 +28,7 @@ pythonPackages.buildPythonApplication rec { ''; meta = { - homepage = "http://das.nasophon.de/gtklick/"; + homepage = http://das.nasophon.de/gtklick/; description = "Simple metronome with an easy-to-use GTK interface"; license = stdenv.lib.licenses.gpl2Plus; }; diff --git a/pkgs/applications/audio/gtkpod/default.nix b/pkgs/applications/audio/gtkpod/default.nix index 1b1bf437ce9..7ebdce78352 100644 --- a/pkgs/applications/audio/gtkpod/default.nix +++ b/pkgs/applications/audio/gtkpod/default.nix @@ -13,7 +13,8 @@ stdenv.mkDerivation rec { propagatedUserEnvPkgs = [ gnome.gnome_themes_standard ]; - buildInputs = [ pkgconfig makeWrapper intltool curl gettext perl perlXMLParser + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper intltool curl gettext perl perlXMLParser flex libgpod libid3tag flac libvorbis gtk3 gdk_pixbuf libglade gnome.anjuta gnome.gdl gnome.defaultIconTheme hicolor_icon_theme ]; diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix index 6073008d541..b149aab06e1 100644 --- a/pkgs/applications/audio/guitarix/default.nix +++ b/pkgs/applications/audio/guitarix/default.nix @@ -12,11 +12,11 @@ in stdenv.mkDerivation rec { name = "guitarix-${version}"; - version = "0.35.3"; + version = "0.35.6"; src = fetchurl { url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; - sha256 = "0pvw4ijkq6lcn45vrif9b4mqmgzi0qg1dp5b33kb5zan6n1aci4j"; + sha256 = "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41"; }; nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix index 712f309fad0..80fb6a9ef92 100644 --- a/pkgs/applications/audio/helm/default.nix +++ b/pkgs/applications/audio/helm/default.nix @@ -1,21 +1,21 @@ - { stdenv, fetchFromGitHub , xorg, freetype, alsaLib, libjack2 + { stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2 , lv2, pkgconfig, mesa }: stdenv.mkDerivation rec { - version = "0.8.6"; + version = "0.9.0"; name = "helm-${version}"; src = fetchFromGitHub { owner = "mtytel"; repo = "helm"; - rev = "19f86e6b4db83c1c6b143fc27883592ac4e43489"; - sha256 = "0a46wnbfqkns8l136v79rr9gv4hhba065igjwkjddf045c9l94l8"; + rev = "927d2ed27f71a735c3ff2a1226ce3129d1544e7e"; + sha256 = "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"; }; buildInputs = [ xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext xorg.libXinerama xorg.libXrender xorg.libXrandr - freetype alsaLib libjack2 pkgconfig mesa lv2 + freetype alsaLib curl libjack2 pkgconfig mesa lv2 ]; CXXFLAGS = "-DHAVE_LROUND"; @@ -26,6 +26,7 @@ buildPhase = '' make lv2 + make standalone ''; installPhase = '' diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix index 686a6b67e6a..d68bfbf2ae4 100644 --- a/pkgs/applications/audio/hydrogen/default.nix +++ b/pkgs/applications/audio/hydrogen/default.nix @@ -10,8 +10,9 @@ stdenv.mkDerivation rec { sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - alsaLib boost cmake glib lash libjack2 libarchive liblrdf libsndfile pkgconfig qt4 + alsaLib boost cmake glib lash libjack2 libarchive liblrdf libsndfile qt4 ]; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix index 1a47b74e21c..69fc4b419c0 100644 --- a/pkgs/applications/audio/i-score/default.nix +++ b/pkgs/applications/audio/i-score/default.nix @@ -1,8 +1,9 @@ { + alsaLib, boost, cln, cmake, - fetchgit, + fetchFromGitHub, gcc, ginac, jamomacore, @@ -10,9 +11,13 @@ libsndfile, ninja, portaudio, + portmidi, qtbase, qtdeclarative, qtimageformats, + qtmultimedia, + qtquickcontrols2, + qtserialport, qtsvg, qttools, qtwebsockets, @@ -21,18 +26,19 @@ }: stdenv.mkDerivation rec { - version = "1.0.0-a67"; + version = "1.0.0-b31"; name = "i-score-${version}"; - src = fetchgit { - url = "https://github.com/OSSIA/i-score.git"; - rev = "ede2453b139346ae46702b5e2643c5488f8c89fb"; - sha256 = "0cl9vdmxkshdacgpp7s2rg40b7xbsjrzw916jds9i3rpq1pcy5pj"; - leaveDotGit = true; - deepClone = true; + src = fetchFromGitHub { + owner = "OSSIA"; + repo = "i-score"; + rev = "v${version}"; + sha256 = "0g7s6n11w3wflrv5i2047dxx56lryms7xj0mznnlk5bii7g8dxzb"; + fetchSubmodules = true; }; buildInputs = [ + alsaLib boost cln cmake @@ -43,9 +49,13 @@ stdenv.mkDerivation rec { libsndfile ninja portaudio + portmidi qtbase qtdeclarative qtimageformats + qtmultimedia + qtquickcontrols2 + qtserialport qtsvg qttools qtwebsockets @@ -59,21 +69,11 @@ stdenv.mkDerivation rec { "-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True" ]; - patchPhase = '' - sed -e '77d' -i CMake/modules/GetGitRevisionDescription.cmake - ''; - preConfigure = '' export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")" ''; - preBuild = '' - ninja - ''; - - installPhase = '' - cmake --build . --target install - ''; + postInstall = ''rm $out/bin/i-score.sh''; meta = { description = "An interactive sequencer for the intermedia arts"; diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix index 83fd2b14ed2..c26980e1bb2 100644 --- a/pkgs/applications/audio/iannix/default.nix +++ b/pkgs/applications/audio/iannix/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmakeHook +{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake }: stdenv.mkDerivation rec { @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "184ydb9f1303v332k5k3f1ki7cb6nkxhh6ij0yn72v7dp7figrgj"; }; - buildInputs = [ alsaLib pkgconfig qtbase qtscript qmakeHook ]; + nativeBuildInputs = [ pkgconfig qmake ]; + buildInputs = [ alsaLib qtbase qtscript ]; qmakeFlags = [ "PREFIX=/" ]; @@ -21,7 +22,7 @@ stdenv.mkDerivation rec { meta = { description = "Graphical open-source sequencer,"; - homepage = http://www.iannix.org/; + homepage = https://www.iannix.org/; license = stdenv.lib.licenses.lgpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.nico202 ]; diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix index 0b0df0b55e4..ca806aad02f 100644 --- a/pkgs/applications/audio/ingen/default.nix +++ b/pkgs/applications/audio/ingen/default.nix @@ -13,8 +13,9 @@ stdenv.mkDerivation rec { sha256 = "15s8nrzn68hc2s6iw0zshbz3lfnsq0mr6gflq05xm911b7xbp74k"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper pkgconfig + boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper python raul serd sord sratom suil ]; diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix index ec7f7a5c32d..f1e00e87673 100644 --- a/pkgs/applications/audio/jack-capture/default.nix +++ b/pkgs/applications/audio/jack-capture/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv"; }; - buildInputs = [ libjack2 libsndfile pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 libsndfile ]; buildPhase = "PREFIX=$out make jack_capture"; diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix index 5f796a29035..a75513ff059 100644 --- a/pkgs/applications/audio/jack-oscrolloscope/default.nix +++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash"; }; - buildInputs = [ SDL libjack2 mesa pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ SDL libjack2 mesa ]; installPhase = '' mkdir -p $out/bin diff --git a/pkgs/applications/audio/jack-rack/default.nix b/pkgs/applications/audio/jack-rack/default.nix index 1d1925779f0..d68e67d19dd 100644 --- a/pkgs/applications/audio/jack-rack/default.nix +++ b/pkgs/applications/audio/jack-rack/default.nix @@ -5,7 +5,8 @@ stdenv.mkDerivation rec { url = "mirror://sourceforge/jack-rack/${name}.tar.bz2"; sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045"; }; - buildInputs = [ pkgconfig libjack2 ladspaH gtk2 alsaLib libxml2 librdf ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 ladspaH gtk2 alsaLib libxml2 librdf ]; meta = { description = ''An effects "rack" for the JACK low latency audio API''; diff --git a/pkgs/applications/audio/jackmeter/default.nix b/pkgs/applications/audio/jackmeter/default.nix index c709483a3b2..060b7f703a3 100644 --- a/pkgs/applications/audio/jackmeter/default.nix +++ b/pkgs/applications/audio/jackmeter/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r"; }; - buildInputs = [ libjack2 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 ]; meta = { description = "Console jack loudness meter"; diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix index e9e3fd53e54..aa78527d787 100644 --- a/pkgs/applications/audio/jackmix/default.nix +++ b/pkgs/applications/audio/jackmix/default.nix @@ -7,8 +7,10 @@ stdenv.mkDerivation rec { sha256 = "18f5v7g66mgarhs476frvayhch7fy4nyjf2xivixc061ipn0m82j"; }; + patches = [ ./no_error.patch ]; + + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig scons qt4 lash @@ -31,5 +33,3 @@ stdenv.mkDerivation rec { platforms = stdenv.lib.platforms.linux; }; } - - diff --git a/pkgs/applications/audio/jackmix/no_error.patch b/pkgs/applications/audio/jackmix/no_error.patch new file mode 100644 index 00000000000..d1a714ded9c --- /dev/null +++ b/pkgs/applications/audio/jackmix/no_error.patch @@ -0,0 +1,13 @@ +diff --git a/SConstruct b/SConstruct +index 4290fa5..0a7a679 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -16,7 +16,7 @@ env = Environment( + env.Replace( LIBS="" ) + env.Replace( LIBPATH="" ) + +-env.MergeFlags( ['-Wall', '-Werror', '-g', '-fpic'] ) ++env.MergeFlags( ['-g', '-fpic'] ) + + tests = { } + tests.update( env['PKGCONFIG_TESTS'] ) diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix index bcec085887a..99c3e48ae84 100644 --- a/pkgs/applications/audio/jalv/default.nix +++ b/pkgs/applications/audio/jalv/default.nix @@ -3,15 +3,16 @@ stdenv.mkDerivation rec { name = "jalv-${version}"; - version = "1.4.6"; + version = "1.6.0"; src = fetchurl { url = "http://download.drobilla.net/${name}.tar.bz2"; - sha256 = "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"; + sha256 = "1x2wpzzx2cgvz3dgdcgsj8dr0w3zsasy62mvl199bsdj5fbjaili"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - gtk2 libjack2 lilv lv2 pkgconfig python serd sord sratom suil + gtk2 libjack2 lilv lv2 python serd sord sratom suil ]; configurePhase = "python waf configure --prefix=$out"; diff --git a/pkgs/applications/audio/jamin/default.nix b/pkgs/applications/audio/jamin/default.nix index 4af53389ffd..77946fc41cc 100644 --- a/pkgs/applications/audio/jamin/default.nix +++ b/pkgs/applications/audio/jamin/default.nix @@ -10,8 +10,9 @@ stdenv.mkDerivation { sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 pkgconfig perl + fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 perl perlXMLParser makeWrapper ]; diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix index 0cacd772493..6aaf14a5763 100644 --- a/pkgs/applications/audio/keyfinder/default.nix +++ b/pkgs/applications/audio/keyfinder/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmakeHook, taglib }: +{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmake, taglib }: stdenv.mkDerivation rec { name = "keyfinder-${version}"; @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { owner = "ibsh"; }; - buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns qmakeHook taglib ]; + nativeBuildInputs = [ qmake ]; + buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns taglib ]; postPatch = '' substituteInPlace is_KeyFinder.pro \ diff --git a/pkgs/applications/audio/klick/default.nix b/pkgs/applications/audio/klick/default.nix index 1b31eed0699..3a0da876acf 100644 --- a/pkgs/applications/audio/klick/default.nix +++ b/pkgs/applications/audio/klick/default.nix @@ -10,7 +10,9 @@ stdenv.mkDerivation rec { sha256 = "1289533c0849b1b66463bf27f7ce5f71736b655cfb7672ef884c7e6eb957ac42"; }; - buildInputs = [ scons pkgconfig libsamplerate libsndfile liblo libjack2 boost ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ scons libsamplerate libsndfile liblo libjack2 boost ]; + NIX_CFLAGS_COMPILE = "-fpermissive"; buildPhase = '' mkdir -p $out @@ -20,7 +22,7 @@ stdenv.mkDerivation rec { installPhase = "scons install"; meta = { - homepage = "http://das.nasophon.de/klick/"; + homepage = http://das.nasophon.de/klick/; description = "Advanced command-line metronome for JACK"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ladspa-plugins/default.nix b/pkgs/applications/audio/ladspa-plugins/default.nix index 1b68caccf4e..a60b3db2fb8 100644 --- a/pkgs/applications/audio/ladspa-plugins/default.nix +++ b/pkgs/applications/audio/ladspa-plugins/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "1rqwh8xrw6hnp69dg4gy336bfbfpmbx4fjrk0nb8ypjcxkz91c6i"; }; - buildInputs = [ autoreconfHook fftw ladspaH libxml2 pkgconfig perlPackages.perl perlPackages.XMLParser ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ fftw ladspaH libxml2 perlPackages.perl perlPackages.XMLParser ]; patchPhase = '' patchShebangs . diff --git a/pkgs/applications/audio/lastfmsubmitd/default.nix b/pkgs/applications/audio/lastfmsubmitd/default.nix index ea182d73a5b..01b450ab7dd 100644 --- a/pkgs/applications/audio/lastfmsubmitd/default.nix +++ b/pkgs/applications/audio/lastfmsubmitd/default.nix @@ -15,7 +15,7 @@ pythonPackages.buildPythonApplication rec { installCommand = "python setup.py install --prefix=$out"; meta = { - homepage = "http://www.red-bean.com/decklin/lastfmsubmitd/"; + homepage = http://www.red-bean.com/decklin/lastfmsubmitd/; description = "An last.fm audio scrobbler and daemon"; }; } diff --git a/pkgs/applications/audio/lastwatch/default.nix b/pkgs/applications/audio/lastwatch/default.nix index 0e4e1a5a8a3..fff16649333 100644 --- a/pkgs/applications/audio/lastwatch/default.nix +++ b/pkgs/applications/audio/lastwatch/default.nix @@ -18,7 +18,7 @@ python2Packages.buildPythonApplication rec { ]; meta = { - homepage = "https://github.com/aszlig/LastWatch"; + homepage = https://github.com/aszlig/LastWatch; description = "An inotify-based last.fm audio scrobbler"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix index 47b65ff2b5a..65df1b89430 100644 --- a/pkgs/applications/audio/lingot/default.nix +++ b/pkgs/applications/audio/lingot/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation { hardeningDisable = [ "format" ]; - buildInputs = [ pkgconfig intltool gtk2 alsaLib libglade ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool gtk2 alsaLib libglade ]; configureFlags = "--disable-jack"; diff --git a/pkgs/applications/audio/linuxband/default.nix b/pkgs/applications/audio/linuxband/default.nix index ba1d88373ff..a8e33c23dc0 100644 --- a/pkgs/applications/audio/linuxband/default.nix +++ b/pkgs/applications/audio/linuxband/default.nix @@ -11,7 +11,8 @@ in stdenv.mkDerivation rec { sha256 = "1r71h4yg775m4gax4irrvygmrsclgn503ykmc2qwjsxa42ri4n2n"; }; - buildInputs = [ makeWrapper pkgconfig MMA libjack2 libsmf python pyGtkGlade pygtksourceview ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper MMA libjack2 libsmf python pyGtkGlade pygtksourceview ]; patchPhase = '' sed -i 's@/usr/@${MMA}/@g' src/main/config/linuxband.rc.in diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix index 5bd8068cd4c..dcefbb06436 100644 --- a/pkgs/applications/audio/lmms/default.nix +++ b/pkgs/applications/audio/lmms/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Linux MultiMedia Studio"; - homepage = "http://lmms.sourceforge.net"; + homepage = https://lmms.io; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/lv2bm/default.nix b/pkgs/applications/audio/lv2bm/default.nix index 32a4f255abe..d3821c51fbc 100644 --- a/pkgs/applications/audio/lv2bm/default.nix +++ b/pkgs/applications/audio/lv2bm/default.nix @@ -2,16 +2,17 @@ stdenv.mkDerivation rec { name = "lv2bm-${version}"; - version = "git-2015-04-10"; + version = "git-2015-11-29"; src = fetchFromGitHub { - owner = "portalmod"; + owner = "moddevices"; repo = "lv2bm"; - rev = "08681624fc13eb700ec2b5cabedbffdf095e28b3"; - sha256 = "11pi97jy4f4c3vsaizc8a6sw9hnhnanj6y1fil33yd9x7f8f0kbj"; + rev = "e844931503b7597f45da6d61ff506bb9fca2e9ca"; + sha256 = "1rrz5sp04zjal6v34ldkl6fjj9xqidb8xm1iscjyljf6z4l516cx"; }; - buildInputs = [ glib lilv lv2 pkgconfig serd sord sratom ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib lilv lv2 serd sord sratom ]; installPhase = '' make install PREFIX=$out diff --git a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix index 05e2b335f82..e526e40a1e3 100644 --- a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix +++ b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }: stdenv.mkDerivation rec { name = "faustCompressors-v${version}"; - version = "1.1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "magnetophon"; repo = "faustCompressors"; rev = "v${version}"; - sha256 = "0mkram2hm7i5za7pfn5crh2arbajk8praksxzgjx90rrxwl1y3d1"; + sha256 = "144f6g17q4m50kxzdncsfzdyycdfprnpwdaxcwgxj4jky1xsha1d"; }; buildInputs = [ faust2jaqt faust2lv2 ]; @@ -15,6 +15,7 @@ stdenv.mkDerivation rec { buildPhase = '' for f in *.dsp; do + echo "compiling standalone from" $f faust2jaqt -time -double -t 99999 $f done @@ -22,6 +23,7 @@ stdenv.mkDerivation rec { for f in *.dsp; do + echo "compiling plugin from" $f faust2lv2 -time -double -gui -t 99999 $f done ''; @@ -30,6 +32,7 @@ stdenv.mkDerivation rec { mkdir -p $out/lib/lv2 mv *.lv2/ $out/lib/lv2 mkdir -p $out/bin + rm newlib.sh for f in $(find . -executable -type f); do cp $f $out/bin/ diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix index 9d3cdc2eea3..c7d0caec8bf 100644 --- a/pkgs/applications/audio/mda-lv2/default.nix +++ b/pkgs/applications/audio/mda-lv2/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "0hh40c5d2m0k5gb3vw031l6lqn59dg804an3mkmhkc7qv4gc6xm4"; }; - buildInputs = [ fftwSinglePrec lv2 pkgconfig python ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ fftwSinglePrec lv2 python ]; configurePhase = "python waf configure --prefix=$out"; diff --git a/pkgs/applications/audio/meters_lv2/default.nix b/pkgs/applications/audio/meters_lv2/default.nix index e412f31f316..f4245b0a51e 100644 --- a/pkgs/applications/audio/meters_lv2/default.nix +++ b/pkgs/applications/audio/meters_lv2/default.nix @@ -25,7 +25,8 @@ in stdenv.mkDerivation { inherit name; - buildInputs = [ pkgconfig lv2 mesa gtk2 cairo pango fftw ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ lv2 mesa gtk2 cairo pango fftw ]; srcs = [ src robtkSrc ]; sourceRoot = name; diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix index f22ccd08a8e..6a71971c5fd 100644 --- a/pkgs/applications/audio/milkytracker/default.nix +++ b/pkgs/applications/audio/milkytracker/default.nix @@ -1,38 +1,23 @@ -{ stdenv, fetchurl, SDL, alsaLib, autoconf, automake, libjack2, perl -, zlib, zziplib +{ stdenv, fetchurl, SDL2, alsaLib, cmake, libjack2, perl +, zlib, zziplib, pkgconfig, makeWrapper }: stdenv.mkDerivation rec { - version = "0.90.85"; + version = "1.01"; name = "milkytracker-${version}"; src = fetchurl { - url = "http://milkytracker.org/files/milkytracker-0.90.85.tar.gz"; - sha256 = "184pk0k9nv461a61sh6lb62wfadjwwk8ri3z5kpdbqnyssz0zfpv"; + url = "https://github.com/milkytracker/MilkyTracker/archive/v${version}.00.tar.gz"; + sha256 = "1dvnddsnn9c83lz4dlm0cfjpc0m524amfkbalxbswdy0qc8cj1wv"; }; - # Get two official patches. - no_zzip_patch = fetchurl { - url = "http://www.milkytracker.org/files/patches-0.90.85/no_zziplib_dep.patch"; - sha256 = "1w550q7pxa7w6v2v19ljk03hayacrs6y887izg11a1983wk7qzb3"; - }; - - fix_64bit_patch = fetchurl { - url = "http://www.milkytracker.org/files/patches-0.90.85/64bit_freebsd_fix.patch"; - sha256 = "0gwd4zslbd8kih80k4v7n2c65kvm2cq3kl6d7y33z1l007vzyvf6"; - }; - - patchPhase = '' - patch ./src/tracker/sdl/SDL_Main.cpp < ${fix_64bit_patch} - patch < ${no_zzip_patch} - patch ./src/compression/DecompressorGZIP.cpp < ${./decompressor_gzip.patch} - ''; - preBuild='' export CPATH=${zlib.out}/lib ''; - buildInputs = [ SDL alsaLib autoconf automake libjack2 perl zlib zziplib ]; + nativeBuildInputs = [ cmake pkgconfig makeWrapper ]; + + buildInputs = [ SDL2 alsaLib libjack2 perl zlib zziplib ]; meta = { description = "Music tracker application, similar to Fasttracker II"; diff --git a/pkgs/applications/audio/minimodem/default.nix b/pkgs/applications/audio/minimodem/default.nix index 025d216910e..2e293ee4552 100644 --- a/pkgs/applications/audio/minimodem/default.nix +++ b/pkgs/applications/audio/minimodem/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "003xyqjq59wcjafrdv1b8w34xsn4nvzz51wwd7mqddajh0g4dz4g"; }; - buildInputs = [ pkgconfig fftw fftwSinglePrec alsaLib libsndfile libpulseaudio ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ fftw fftwSinglePrec alsaLib libsndfile libpulseaudio ]; meta = { description = "General-purpose software audio FSK modem"; diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix index d7cdfcf0d08..6d353344b07 100644 --- a/pkgs/applications/audio/mixxx/default.nix +++ b/pkgs/applications/audio/mixxx/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, chromaprint, fftw, flac, libid3tag, libmad +{ stdenv, fetchurl, chromaprint, fetchpatch, fftw, flac, libid3tag, libmad , libopus, libshout, libsndfile, libusb1, libvorbis, pkgconfig , portaudio, portmidi, protobuf, qt4, rubberband, scons, sqlite , taglib, vampSDK @@ -13,6 +13,18 @@ stdenv.mkDerivation rec { sha256 = "0vb71w1yq0xwwsclrn2jj9bk8w4n14rfv5c0aw46c11mp8xz7f71"; }; + patches = [ + (fetchpatch { + url = "https://sources.debian.net/data/main/m/mixxx/2.0.0~dfsg-7.1/debian/patches/0007-fix_gcc6_issue.patch"; + sha256 = "0kpyv10wcjcvbijk6vpq54gx9sqzrq4kq2qilc1czmisp9qdy5sd"; + }) + (fetchpatch { + url = "https://622776.bugs.gentoo.org/attachment.cgi?id=487284"; + name = "sqlite.patch"; + sha256 = "1qqbd8nrxrjcc1dwvyqfq1k2yz3l071sfcgd2dmpk6j8d4j5kx31"; + }) + ]; + buildInputs = [ chromaprint fftw flac libid3tag libmad libopus libshout libsndfile libusb1 libvorbis pkgconfig portaudio portmidi protobuf qt4 @@ -40,7 +52,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = http://mixxx.org; + homepage = https://mixxx.org; description = "Digital DJ mixing software"; license = licenses.gpl2Plus; maintainers = [ maintainers.aszlig maintainers.goibhniu ]; diff --git a/pkgs/applications/audio/monkeys-audio/buildfix.diff b/pkgs/applications/audio/monkeys-audio/buildfix.diff index 3c48f6ad828..9684e5bf8e4 100644 --- a/pkgs/applications/audio/monkeys-audio/buildfix.diff +++ b/pkgs/applications/audio/monkeys-audio/buildfix.diff @@ -1,7 +1,8 @@ -diff -ru monkeys-audio-3.99-u4-b5/src/MACLib/APELink.cpp monkeys-audio-3.99-u4-b5.patched/src/MACLib/APELink.cpp ---- monkeys-audio-3.99-u4-b5/src/MACLib/APELink.cpp 2006-06-01 11:00:57.000000000 +0200 -+++ monkeys-audio-3.99-u4-b5.patched/src/MACLib/APELink.cpp 2012-01-05 14:51:47.000000000 +0100 -@@ -63,10 +63,10 @@ +diff --git a/src/MACLib/APELink.cpp b/src/MACLib/APELink.cpp +index d349f4b..b00ec83 100644 +--- a/src/MACLib/APELink.cpp ++++ b/src/MACLib/APELink.cpp +@@ -63,10 +63,10 @@ void CAPELink::ParseData(const char * pData, const str_utf16 * pFilename) if (pData != NULL) { // parse out the information @@ -16,7 +17,7 @@ diff -ru monkeys-audio-3.99-u4-b5/src/MACLib/APELink.cpp monkeys-audio-3.99-u4-b if (pHeader && pImageFile && pStartBlock && pFinishBlock) { -@@ -81,7 +81,7 @@ +@@ -81,7 +81,7 @@ void CAPELink::ParseData(const char * pData, const str_utf16 * pFilename) // get the path char cImageFile[MAX_PATH + 1]; int nIndex = 0; @@ -25,3 +26,24 @@ diff -ru monkeys-audio-3.99-u4-b5/src/MACLib/APELink.cpp monkeys-audio-3.99-u4-b while ((*pImageCharacter != 0) && (*pImageCharacter != '\r') && (*pImageCharacter != '\n')) cImageFile[nIndex++] = *pImageCharacter++; cImageFile[nIndex] = 0; +diff --git a/src/Shared/All.h b/src/Shared/All.h +index 328addc..7730e89 100644 +--- a/src/Shared/All.h ++++ b/src/Shared/All.h +@@ -21,6 +21,8 @@ Global includes + #include + #endif + ++#include ++ + #ifdef _WIN32 + #include + #include +@@ -34,7 +36,6 @@ Global includes + #include "NoWindows.h" + #endif + +-#include + #include + #include + #include diff --git a/pkgs/applications/audio/mopidy-gmusic/default.nix b/pkgs/applications/audio/mopidy-gmusic/default.nix index 850e7abaef0..b792ec3428e 100644 --- a/pkgs/applications/audio/mopidy-gmusic/default.nix +++ b/pkgs/applications/audio/mopidy-gmusic/default.nix @@ -11,9 +11,9 @@ pythonPackages.buildPythonApplication rec { propagatedBuildInputs = [ mopidy - pythonPackages.requests2 + pythonPackages.requests pythonPackages.gmusicapi - pythonPackages.cachetools + pythonPackages.cachetools_1 ]; doCheck = false; diff --git a/pkgs/applications/audio/mopidy-iris/default.nix b/pkgs/applications/audio/mopidy-iris/default.nix new file mode 100644 index 00000000000..caeba5eb1ac --- /dev/null +++ b/pkgs/applications/audio/mopidy-iris/default.nix @@ -0,0 +1,28 @@ +{ stdenv, pythonPackages, mopidy, mopidy-local-images }: + +pythonPackages.buildPythonApplication rec { + name = "mopidy-iris-${version}"; + version = "3.6.1"; + + src = pythonPackages.fetchPypi { + inherit version; + pname = "Mopidy-Iris"; + sha256 = "1mfi3qx7pvfq4rz0py39lnbzv7sq703b6k6mypzhj1gdzbisfn46"; + }; + + propagatedBuildInputs = [ + mopidy + mopidy-local-images + pythonPackages.configobj + pythonPackages.pylast + pythonPackages.spotipy + pythonPackages.raven + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/jaedb/Iris; + description = "A fully-functional Mopidy web client encompassing Spotify and many other backends"; + license = licenses.asl20; + maintainers = [ maintainers.rvolosatovs ]; + }; +} diff --git a/pkgs/applications/audio/mopidy-local-images/default.nix b/pkgs/applications/audio/mopidy-local-images/default.nix new file mode 100644 index 00000000000..b09db88bbcb --- /dev/null +++ b/pkgs/applications/audio/mopidy-local-images/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, pythonPackages, mopidy }: + +pythonPackages.buildPythonApplication rec { + name = "mopidy-local-images-${version}"; + + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "mopidy"; + repo = "mopidy-local-images"; + rev = "v${version}"; + sha256 = "0gdqxws0jish50mmi57mlqcs659wrllzv00czl18niz94vzvyc0d"; + }; + + propagatedBuildInputs = [ + mopidy + pythonPackages.pykka + pythonPackages.uritools + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/mopidy/mopidy-local-images; + description = "Mopidy local library proxy extension for handling embedded album art"; + license = licenses.asl20; + maintainers = [ maintainers.rvolosatovs ]; + }; +} diff --git a/pkgs/applications/audio/mopidy-local-sqlite/default.nix b/pkgs/applications/audio/mopidy-local-sqlite/default.nix new file mode 100644 index 00000000000..7aebc43dabb --- /dev/null +++ b/pkgs/applications/audio/mopidy-local-sqlite/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, pythonPackages, mopidy }: + +pythonPackages.buildPythonApplication rec { + name = "mopidy-local-sqlite-${version}"; + + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "mopidy"; + repo = "mopidy-local-sqlite"; + rev = "v${version}"; + sha256 = "1fjd9ydbfwd1n9b9zw8zjn4l7c5hpam2n0xs51pjkjn82m3zq9zv"; + }; + + propagatedBuildInputs = [ + mopidy + pythonPackages.uritools + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/mopidy/mopidy-local-sqlite; + description = "Mopidy SQLite local library extension"; + license = licenses.asl20; + maintainers = [ maintainers.rvolosatovs ]; + }; +} diff --git a/pkgs/applications/audio/mopidy-spotify/default.nix b/pkgs/applications/audio/mopidy-spotify/default.nix index 045c400a17f..999883dc26c 100644 --- a/pkgs/applications/audio/mopidy-spotify/default.nix +++ b/pkgs/applications/audio/mopidy-spotify/default.nix @@ -2,11 +2,11 @@ pythonPackages.buildPythonApplication rec { name = "mopidy-spotify-${version}"; - version = "3.0.0"; + version = "3.1.0"; src = fetchurl { url = "https://github.com/mopidy/mopidy-spotify/archive/v${version}.tar.gz"; - sha256 = "0w7bhq6nz2xly5g72xd98r7lyzmx7nzfdpghk7vklkx0x41qccz8"; + sha256 = "1mh87w4j0ypvsrnax7kkjgfxfpnw3l290jvfzg56b8qlwf20khjl"; }; propagatedBuildInputs = [ mopidy pythonPackages.pyspotify ]; diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix index 7dae614a8f7..7de8f6941c2 100644 --- a/pkgs/applications/audio/mopidy/default.nix +++ b/pkgs/applications/audio/mopidy/default.nix @@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec { ]; propagatedBuildInputs = with pythonPackages; [ - gst-python pygobject3 pykka tornado requests2 dbus-python + gst-python pygobject3 pykka tornado requests dbus-python ]; # There are no tests diff --git a/pkgs/applications/audio/mp3info/default.nix b/pkgs/applications/audio/mp3info/default.nix index 5f1d2bfa93d..6700f21fc8c 100644 --- a/pkgs/applications/audio/mp3info/default.nix +++ b/pkgs/applications/audio/mp3info/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04"; }; - buildInputs = [ ncurses pkgconfig gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses gtk2 ]; hardeningDisable = [ "format" ]; @@ -39,6 +40,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl2Plus; maintainers = [ ]; - platforms = stdenv.lib.platforms.unix; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/audio/mp3splt/default.nix b/pkgs/applications/audio/mp3splt/default.nix index 0fa9022f67b..f2922e7eecf 100644 --- a/pkgs/applications/audio/mp3splt/default.nix +++ b/pkgs/applications/audio/mp3splt/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Utility to split mp3, ogg vorbis and FLAC files without decoding"; - homepage = http://sourceforge.net/projects/mp3splt/; + homepage = https://sourceforge.net/projects/mp3splt/; license = licenses.gpl2; maintainers = [ maintainers.bosu ]; platforms = platforms.unix; diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix index f37585d3dec..73352b65092 100644 --- a/pkgs/applications/audio/mpc/default.nix +++ b/pkgs/applications/audio/mpc/default.nix @@ -1,27 +1,27 @@ -{ stdenv, fetchurl, mpd_clientlib }: +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, mpd_clientlib }: stdenv.mkDerivation rec { - version = "0.27"; name = "mpc-${version}"; + version = "0.28"; - src = fetchurl { - url = "http://www.musicpd.org/download/mpc/0/${name}.tar.xz"; - sha256 = "0r10wsqxsi07gns6mfnicvpci0sbwwj4qa9iyr1ysrgadl5bx8j5"; + src = fetchFromGitHub { + owner = "MusicPlayerDaemon"; + repo = "mpc"; + rev = "v${version}"; + sha256 = "1g8i4q5xsqdhidyjpvj6hzbhxacv27cb47ndv9k68whd80c5f9n9"; }; buildInputs = [ mpd_clientlib ]; - preConfigure = - '' - export LIBMPDCLIENT_LIBS=${mpd_clientlib}/lib/libmpdclient.${if stdenv.isDarwin then mpd_clientlib.majorVersion + ".dylib" else "so." + mpd_clientlib.majorVersion + ".0." + mpd_clientlib.minorVersion} - export LIBMPDCLIENT_CFLAGS=${mpd_clientlib} - ''; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + enableParallelBuilding = true; meta = with stdenv.lib; { description = "A minimalist command line interface to MPD"; homepage = http://www.musicpd.org/clients/mpc/; license = licenses.gpl2; - maintainers = [ maintainers.algorith ]; + maintainers = with maintainers; [ algorith ]; platforms = with platforms; linux ++ darwin; }; } diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix index 9004a46115e..1e0b46826cf 100644 --- a/pkgs/applications/audio/mpg123/default.nix +++ b/pkgs/applications/audio/mpg123/default.nix @@ -1,19 +1,20 @@ -{stdenv, fetchurl, alsaLib }: +{ stdenv +, fetchurl, alsaLib +, hostPlatform +}: stdenv.mkDerivation rec { - name = "mpg123-1.23.8"; + name = "mpg123-1.25.7"; src = fetchurl { url = "mirror://sourceforge/mpg123/${name}.tar.bz2"; - sha256 = "13ngfzk84k4ks7ymanmq8f6707yrybra5h0mk3ir6mdnxk4068yy"; + sha256 = "1ws40fglyyk51jvmz8gfapjkw1g51pkch1rffdsbh4b1yay5xc9i"; }; buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib; - crossAttrs = { - configureFlags = if stdenv.cross ? mpg123 then - "--with-cpu=${stdenv.cross.mpg123.cpu}" else ""; - }; + configureFlags = + stdenv.lib.optional (hostPlatform ? mpg123) "--with-cpu=${hostPlatform.mpg123.cpu}"; meta = { description = "Fast console MPEG Audio Player and decoder library"; diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix index b68c44278ee..ee0ebf234ce 100644 --- a/pkgs/applications/audio/mpg321/default.nix +++ b/pkgs/applications/audio/mpg321/default.nix @@ -1,4 +1,8 @@ -{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib}: +{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib +# Specify default libao output plugin to use (e.g. "alsa", "pulse" …). +# If null, it will use the libao system default. +, defaultAudio ? null +}: stdenv.mkDerivation rec { name = "mpg321-${version}"; @@ -11,9 +15,10 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - configureFlags = [ - ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) - ]; + configureFlags = + [ ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) ] + ++ (stdenv.lib.optional (defaultAudio != null) + "--with-default-audio=${defaultAudio}"); buildInputs = [libao libid3tag libmad zlib] ++ stdenv.lib.optional stdenv.isLinux alsaLib; diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix index 463bd64495d..9d6f2fc9c8f 100644 --- a/pkgs/applications/audio/musescore/default.nix +++ b/pkgs/applications/audio/musescore/default.nix @@ -1,16 +1,16 @@ { stdenv, fetchzip, cmake, pkgconfig , alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis -, portaudio, qtbase, qtdeclarative, qtenginio, qtscript, qtsvg, qttools +, portaudio, qtbase, qtdeclarative, qtscript, qtsvg, qttools , qtwebkit, qtxmlpatterns }: stdenv.mkDerivation rec { name = "musescore-${version}"; - version = "2.0.3"; + version = "2.1.0"; src = fetchzip { url = "https://github.com/musescore/MuseScore/archive/v${version}.tar.gz"; - sha256 = "067f4li48qfhz2barj70zpf2d2mlii12npx07jx9xjkkgz84z4c9"; + sha256 = "1rlxz2nzilz7n6c0affnjk2wcxl4b8949qxs0xi555gxg01kybls"; }; hardeningDisable = [ "relro" "bindnow" ]; @@ -31,7 +31,6 @@ stdenv.mkDerivation rec { ]; preBuild = '' - make lupdate make lrelease ''; @@ -45,7 +44,7 @@ stdenv.mkDerivation rec { buildInputs = [ alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis - portaudio qtbase qtdeclarative qtenginio qtscript qtsvg qttools + portaudio qtbase qtdeclarative qtscript qtsvg qttools qtwebkit qtxmlpatterns #tesseract ]; @@ -56,6 +55,5 @@ stdenv.mkDerivation rec { platforms = platforms.linux; maintainers = [ maintainers.vandenoever ]; repositories.git = https://github.com/musescore/MuseScore; - broken = true; }; } diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix index 31185c0d0c2..ef0bb75b2ec 100644 --- a/pkgs/applications/audio/ncmpc/default.nix +++ b/pkgs/applications/audio/ncmpc/default.nix @@ -1,28 +1,35 @@ -{ stdenv, fetchurl, pkgconfig, glib, ncurses, mpd_clientlib, libintlOrEmpty }: +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses +, mpd_clientlib, gettext }: -stdenv.mkDerivation rec { - version = "0.24"; +let + rpath = stdenv.lib.makeLibraryPath [ + glib ncurses mpd_clientlib + ]; +in stdenv.mkDerivation rec { name = "ncmpc-${version}"; + version = "0.28"; - src = fetchurl { - url = "http://www.musicpd.org/download/ncmpc/0/ncmpc-${version}.tar.xz"; - sha256 = "1sf3nirs3mcx0r5i7acm9bsvzqzlh730m0yjg6jcyj8ln6r7cvqf"; + src = fetchFromGitHub { + owner = "MusicPlayerDaemon"; + repo = "ncmpc"; + rev = "v${version}"; + sha256 = "1z0bdkqsdb3f5k2lsws3qzav4r30fzk8fhxj9l0p738flcka6k4n"; }; - buildInputs = [ pkgconfig glib ncurses mpd_clientlib ] - ++ libintlOrEmpty; + buildInputs = [ glib ncurses mpd_clientlib ]; + nativeBuildInputs = [ meson ninja pkgconfig gettext ]; - NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; - - configureFlags = [ - "--enable-colors" - "--enable-lyrics-screen" - ]; + postFixup = '' + for elf in "$out"/bin/*; do + patchelf --set-rpath '${rpath}':"$out/lib" "$elf" + done + ''; meta = with stdenv.lib; { description = "Curses-based interface for MPD (music player daemon)"; homepage = http://www.musicpd.org/clients/ncmpc/; license = licenses.gpl2Plus; platforms = platforms.all; + maintainers = with maintainers; [ fpletz ]; }; } diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix index 8dc15195a45..4452ab23cd5 100644 --- a/pkgs/applications/audio/ncmpcpp/default.nix +++ b/pkgs/applications/audio/ncmpcpp/default.nix @@ -1,47 +1,41 @@ { stdenv, fetchurl, boost, mpd_clientlib, ncurses, pkgconfig, readline -, libiconv, icu +, libiconv, icu, curl , outputsSupport ? false # outputs screen , visualizerSupport ? false, fftw ? null # visualizer screen , clockSupport ? false # clock screen -, unicodeSupport ? true # utf8 support -, curlSupport ? true, curl ? null # allow fetching lyrics from the internet , taglibSupport ? true, taglib ? null # tag editor }: assert visualizerSupport -> (fftw != null); -assert curlSupport -> (curl != null); assert taglibSupport -> (taglib != null); with stdenv.lib; stdenv.mkDerivation rec { name = "ncmpcpp-${version}"; - version = "0.7.5"; + version = "0.8.1"; src = fetchurl { - url = "http://ncmpcpp.rybczak.net/stable/${name}.tar.bz2"; - sha256 = "0zg084m06y7dd8ccy6aq9hx8q7qi2s5kl0br5139hrmk40q68kvy"; + url = "https://ncmpcpp.rybczak.net/stable/${name}.tar.bz2"; + sha256 = "1zw8d07b2bkssbsybg6jnmpq001w525viajrnz4jvfml3l55gyad"; }; configureFlags = [ "BOOST_LIB_SUFFIX=" ] ++ optional outputsSupport "--enable-outputs" ++ optional visualizerSupport "--enable-visualizer --with-fftw" ++ optional clockSupport "--enable-clock" - ++ optional unicodeSupport "--enable-unicode" - ++ optional curlSupport "--with-curl" ++ optional taglibSupport "--with-taglib"; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ boost mpd_clientlib ncurses readline libiconv icu ] - ++ optional curlSupport curl + buildInputs = [ boost mpd_clientlib ncurses readline libiconv icu curl ] ++ optional visualizerSupport fftw ++ optional taglibSupport taglib; meta = { description = "A featureful ncurses based MPD client inspired by ncmpc"; - homepage = http://ncmpcpp.rybczak.net/; + homepage = https://ncmpcpp.rybczak.net/; license = licenses.gpl2Plus; - maintainers = with maintainers; [ lovek323 mornfall koral ]; - platforms = platforms.linux; + maintainers = with maintainers; [ jfrankenau koral lovek323 mornfall ]; + platforms = platforms.all; }; } diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix index f4e5998c037..3b429290f7c 100644 --- a/pkgs/applications/audio/non/default.nix +++ b/pkgs/applications/audio/non/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "080rha4ffp7qycyg1mqcf4vj0s7z8qfvz6bxm0w29xgg2kkmb3fx"; }; - buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile ladspaH liblrdf liblo libsigcxx ]; configurePhase = "python waf configure --prefix=$out"; diff --git a/pkgs/applications/audio/nova-filters/default.nix b/pkgs/applications/audio/nova-filters/default.nix index fff3582f7df..6b50ee1426c 100644 --- a/pkgs/applications/audio/nova-filters/default.nix +++ b/pkgs/applications/audio/nova-filters/default.nix @@ -9,13 +9,15 @@ stdenv.mkDerivation rec { sha256 = "16064vvl2w5lz4xi3lyjk4xx7fphwsxc14ajykvndiz170q32s6i"; }; - buildInputs = [ scons boost ladspaH pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ scons boost ladspaH ]; patchPhase = '' # remove TERM: sed -i -e '4d' SConstruct sed -i "s@mfpmath=sse@mfpmath=sse -I ${boost.dev}/include@g" SConstruct sed -i "s@ladspa.h@${ladspaH}/include/ladspa.h@g" filters.cpp + sed -i "s@LADSPA_HINT_SAMPLE_RATE, 0, 0.5@LADSPA_HINT_SAMPLE_RATE, 0.0001, 0.5@g" filters.cpp sed -i "s/= check/= detail::filter_base::check/" nova/source/dsp/filter.hpp ''; @@ -27,10 +29,11 @@ stdenv.mkDerivation rec { scons $sconsFlags "prefix=$out" install ''; - meta = { - homepage = http://klingt.org/~tim/nova-filters/; + meta = with stdenv.lib; { description = "LADSPA plugins based on filters of nova"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + homepage = http://klingt.org/~tim/nova-filters/; + license = licenses.gpl2Plus; + maintainers = [ maintainers.magnetophon ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix index a13009407eb..5d13aa7daf4 100644 --- a/pkgs/applications/audio/openmpt123/default.nix +++ b/pkgs/applications/audio/openmpt123/default.nix @@ -8,8 +8,9 @@ in stdenv.mkDerivation rec { url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}.tar.gz"; sha256 = "0qp2nnz6pnl1d7yv9hcjyim7q6yax5881k1jxm8jfgjqagmz5k6p"; }; - buildInputs = [ SDL2 pkgconfig flac libsndfile ]; - makeFlags = [ "NO_LTDL=1 TEST=0 EXAMPLES=0" ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ SDL2 flac libsndfile ]; + makeFlags = [ "NO_PULSEAUDIO=1 NO_LTDL=1 TEST=0 EXAMPLES=0" ] ++ stdenv.lib.optional (stdenv.isDarwin) "SHARED_SONAME=0"; installFlags = "PREFIX=\${out}"; diff --git a/pkgs/applications/audio/opus-tools/default.nix b/pkgs/applications/audio/opus-tools/default.nix index cee86f45685..658ba1700f2 100644 --- a/pkgs/applications/audio/opus-tools/default.nix +++ b/pkgs/applications/audio/opus-tools/default.nix @@ -1,13 +1,14 @@ {stdenv, fetchurl, libogg, libao, pkgconfig, libopus, flac}: stdenv.mkDerivation rec { - name = "opus-tools-0.1.9"; + name = "opus-tools-0.1.10"; src = fetchurl { url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz"; - sha256 = "0fk4nknvl111k89j5yckmyrh6b2wvgyhrqfncp7rig3zikbkv1xi"; + sha256 = "135jfb9ny3xvd27idsxj7j5ns90lslbyrq70cq3bfwcls4r7add2"; }; - buildInputs = [ libogg libao pkgconfig libopus flac ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libogg libao libopus flac ]; meta = { description = "Tools to work with opus encoded audio streams"; diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix new file mode 100644 index 00000000000..820ff385c10 --- /dev/null +++ b/pkgs/applications/audio/padthv1/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftw }: + +stdenv.mkDerivation rec { + name = "padthv1-${version}"; + version = "0.8.4"; + + src = fetchurl { + url = "mirror://sourceforge/padthv1/${name}.tar.gz"; + sha256 = "1p6wfgh90h7gj1j3hlvwik3zj07xamkxbya85va2lsj6fkkkk20r"; + }; + + buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ]; + + nativeBuildInputs = [ pkgconfig ]; + + meta = with stdenv.lib; { + description = "polyphonic additive synthesizer"; + homepage = http://padthv1.sourceforge.net/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.magnetophon ]; + }; +} diff --git a/pkgs/applications/audio/paprefs/default.nix b/pkgs/applications/audio/paprefs/default.nix index 7cce08e733d..f21c171ef60 100644 --- a/pkgs/applications/audio/paprefs/default.nix +++ b/pkgs/applications/audio/paprefs/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { dialog for the PulseAudio sound server. ''; - homepage = "http://freedesktop.org/software/pulseaudio/paprefs/"; + homepage = http://freedesktop.org/software/pulseaudio/paprefs/; license = licenses.gpl2Plus; diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix index f218767c55e..69db9d74ee3 100644 --- a/pkgs/applications/audio/pavucontrol/default.nix +++ b/pkgs/applications/audio/pavucontrol/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { easily control the volume of all clients, sinks, etc. ''; - homepage = "http://freedesktop.org/software/pulseaudio/pavucontrol/"; + homepage = http://freedesktop.org/software/pulseaudio/pavucontrol/; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/audio/pd-plugins/zexy/default.nix b/pkgs/applications/audio/pd-plugins/zexy/default.nix index 7cd244c9ea4..8b7c2121bd7 100644 --- a/pkgs/applications/audio/pd-plugins/zexy/default.nix +++ b/pkgs/applications/audio/pd-plugins/zexy/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { buildInputs = [ autoconf automake puredata ]; - patchPhase = '' + preBuild = '' + export LD=$CXX cd src/ for i in ${puredata}/include/pd/*; do ln -s $i . diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix index 87f79583c3b..8e591487111 100644 --- a/pkgs/applications/audio/pianobar/default.nix +++ b/pkgs/applications/audio/pianobar/default.nix @@ -8,8 +8,9 @@ stdenv.mkDerivation rec { sha256 = "0n9544bfsdp04xqcjm4nhfvp357dx0c3gpys0rjkq09nzv8b1vy6"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig libao json_c libgcrypt libav curl + libao json_c libgcrypt libav curl ]; makeFlags="PREFIX=$(out)"; @@ -19,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A console front-end for Pandora.com"; - homepage = "http://6xq.net/projects/pianobar/"; + homepage = http://6xq.net/projects/pianobar/; platforms = platforms.linux; license = licenses.mit; # expat version maintainers = with maintainers; [ eduarrrd ]; diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix index 886a77bb714..66f68c066c8 100644 --- a/pkgs/applications/audio/picard/default.nix +++ b/pkgs/applications/audio/picard/default.nix @@ -27,7 +27,7 @@ in pythonPackages.buildPythonApplication { doCheck = false; meta = with stdenv.lib; { - homepage = "http://musicbrainz.org/doc/MusicBrainz_Picard"; + homepage = http://musicbrainz.org/doc/MusicBrainz_Picard; description = "The official MusicBrainz tagger"; maintainers = with maintainers; [ ehmry ]; license = licenses.gpl2; diff --git a/pkgs/applications/audio/playbar2/default.nix b/pkgs/applications/audio/playbar2/default.nix new file mode 100644 index 00000000000..16d5eb69cb9 --- /dev/null +++ b/pkgs/applications/audio/playbar2/default.nix @@ -0,0 +1,37 @@ +{ stdenv +, cmake +, extra-cmake-modules +, plasma-framework +, kwindowsystem +, fetchFromGitHub +}: + +stdenv.mkDerivation rec { + name = "playbar2-${version}"; + version = "2.5"; + + src = fetchFromGitHub { + owner = "audoban"; + repo = "PlayBar2"; + rev = "v${version}"; + sha256 = "0iv2m4flgaz2r0k7f6l0ca8p6cw8j8j2gin1gci2pg3l5g5khbch"; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + plasma-framework + kwindowsystem + ]; + + meta = with stdenv.lib; { + description = "Mpris2 Client for Plasma5"; + homepage = https://github.com/audoban/PlayBar2; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ pjones ]; + }; +} diff --git a/pkgs/applications/audio/plugin-torture/default.nix b/pkgs/applications/audio/plugin-torture/default.nix index 556582c34f7..5529998803c 100644 --- a/pkgs/applications/audio/plugin-torture/default.nix +++ b/pkgs/applications/audio/plugin-torture/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "1xyhvhm85d9z0kw716cjllrrzksn4s4bw34layg8hf4m5m31sp2p"; }; - buildInputs = [ boost ladspaH lilv lv2 pkgconfig serd sord sratom ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ boost ladspaH lilv lv2 serd sord sratom ]; installPhase = '' mkdir -p $out/bin diff --git a/pkgs/applications/audio/ponymix/default.nix b/pkgs/applications/audio/ponymix/default.nix index ced5262f5d2..5cfbb7bf5a4 100644 --- a/pkgs/applications/audio/ponymix/default.nix +++ b/pkgs/applications/audio/ponymix/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "CLI PulseAudio Volume Control"; - homepage = "http://github.com/falconindy/ponymix"; + homepage = https://github.com/falconindy/ponymix; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ ericsagnes ]; diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix index 52f2a0ff924..2bb2960afbf 100644 --- a/pkgs/applications/audio/praat/default.nix +++ b/pkgs/applications/audio/praat/default.nix @@ -18,7 +18,8 @@ stdenv.mkDerivation rec { cp praat $out/bin ''; - buildInputs = [ alsaLib gtk2 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ alsaLib gtk2 ]; meta = { description = "Doing phonetics by computer"; diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix index 764ee629dbf..e7aace763a1 100644 --- a/pkgs/applications/audio/projectm/default.nix +++ b/pkgs/applications/audio/projectm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, cmake +{ stdenv, fetchurl, fetchpatch, pkgconfig, cmake , glew, ftgl, ttf_bitstream_vera , withQt ? true, qt4 , withLibvisual ? false, libvisual, SDL @@ -14,7 +14,7 @@ stdenv.mkDerivation { meta = { description = "Music Visualizer"; - homepage = "http://projectm.sourceforge.net/"; + homepage = http://projectm.sourceforge.net/; license = stdenv.lib.licenses.lgpl21Plus; platforms = stdenv.lib.platforms.linux; }; @@ -24,7 +24,13 @@ stdenv.mkDerivation { sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji"; }; + patch_gcc6 = fetchpatch { + url = https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch; + sha256 = "1i50scxv1jlqvb3jm3sql89a7wqckxhlpvnhz20vvmm1kii6lrsn"; + }; + patchPhase = '' + patch -d src/libprojectM -p1 -i "$patch_gcc6" sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \ src/projectM-libvisual/CMakeLists.txt ''; diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix index c140e1a46e5..00f58750408 100644 --- a/pkgs/applications/audio/puddletag/default.nix +++ b/pkgs/applications/audio/puddletag/default.nix @@ -1,20 +1,19 @@ { stdenv, fetchFromGitHub, python2Packages, makeWrapper, chromaprint }: -let - pname = "puddletag"; - -in python2Packages.buildPythonApplication rec { - name = "${pname}-${version}"; +python2Packages.buildPythonApplication rec { + name = "puddletag-${version}"; version = "1.2.0"; src = fetchFromGitHub { - owner = "keithgg"; - repo = pname; - rev = "v${version}"; + owner = "keithgg"; + repo = "puddletag"; + rev = "v${version}"; sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz"; }; - sourceRoot = "${pname}-v${version}-src/source"; + setSourceRoot = '' + sourceRoot=$(echo */source) + ''; disabled = python2Packages.isPy3k; # work to support python 3 has not begun @@ -29,17 +28,21 @@ in python2Packages.buildPythonApplication rec { dontStrip = true; # we are not generating any binaries installPhase = '' + runHook preInstall + siteDir=$(toPythonPath $out) mkdir -p $siteDir PYTHONPATH=$PYTHONPATH:$siteDir ${python2Packages.python.interpreter} setup.py install --prefix $out + + runHook postInstall ''; meta = with stdenv.lib; { - homepage = https://puddletag.net; + homepage = https://puddletag.net; description = "An audio tag editor similar to the Windows program, Mp3tag"; - license = licenses.gpl3; - platforms = platforms.linux; + license = licenses.gpl3; maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix index 857f77bbdaf..c5a977d741a 100644 --- a/pkgs/applications/audio/qjackctl/default.nix +++ b/pkgs/applications/audio/qjackctl/default.nix @@ -1,14 +1,14 @@ { stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }: stdenv.mkDerivation rec { - version = "0.4.4"; + version = "0.4.5"; name = "qjackctl-${version}"; # some dependencies such as killall have to be installed additionally src = fetchurl { url = "mirror://sourceforge/qjackctl/${name}.tar.gz"; - sha256 = "19bbljb3iz5ss4s5fmra1dxabg2fnp61sa51d63zsm56xkvv47ak"; + sha256 = "1dsavjfzz5bpzc80mvfs940w9f9f47cf4r9cqxnaqrl4xilsa3f5"; }; buildInputs = [ diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix index 89f1682592a..132e4a0fca2 100644 --- a/pkgs/applications/audio/qmidinet/default.nix +++ b/pkgs/applications/audio/qmidinet/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }: stdenv.mkDerivation rec { - version = "0.4.2"; + version = "0.4.3"; name = "qmidinet-${version}"; src = fetchurl { url = "mirror://sourceforge/qmidinet/${name}.tar.gz"; - sha256 = "1sdnd189db44xhl9p8pd8h4bsy8s0bn1y64lrdq7nb21mwg8ymcs"; + sha256 = "1qhxhlvi6bj2a06i48pw81zf5vd36idxbq04g30794yhqcimh6vw"; }; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/audio/qmidiroute/default.nix b/pkgs/applications/audio/qmidiroute/default.nix index badac0887a1..1e76e769937 100644 --- a/pkgs/applications/audio/qmidiroute/default.nix +++ b/pkgs/applications/audio/qmidiroute/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "11bfjz14z37v6hk2xyg4vrw423b5h3qgcbviv07g00ws1fgjygm2"; }; - buildInputs = [ pkgconfig qt4 alsaLib ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ qt4 alsaLib ]; meta = with stdenv.lib; { description = "MIDI event processor and router"; diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix index b28f66aaad7..77c82f1737c 100644 --- a/pkgs/applications/audio/qmmp/default.nix +++ b/pkgs/applications/audio/qmmp/default.nix @@ -29,11 +29,11 @@ # handle that. stdenv.mkDerivation rec { - name = "qmmp-1.1.5"; + name = "qmmp-1.1.10"; src = fetchurl { url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2"; - sha256 = "1gfx6nm9v6qrx58gxib6grfhb45mnib1n4wdsnjq16br6bs8h4lv"; + sha256 = "16hb3s48filq0q18m7x9vmhpirk4fh0aqj8kwbapv8mkcnzq2mqy"; }; buildInputs = diff --git a/pkgs/applications/audio/qsampler/default.nix b/pkgs/applications/audio/qsampler/default.nix index 692938884b6..1211570f9bc 100644 --- a/pkgs/applications/audio/qsampler/default.nix +++ b/pkgs/applications/audio/qsampler/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "17w3vgpgfmvl11wsd5ndk9zdggl3gbzv3wbd45dyf2al4i0miqnx"; }; - buildInputs = [ autoconf automake liblscp libtool pkgconfig qt4 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake liblscp libtool qt4 ]; preConfigure = "make -f Makefile.svn"; diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index fa582d85215..2e6d61b693d 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -75,6 +75,6 @@ in buildPythonApplication { ''; maintainers = [ stdenv.lib.maintainers.coroa ]; - homepage = http://code.google.com/p/quodlibet/; + homepage = https://quodlibet.readthedocs.io/en/latest/; }; } diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix new file mode 100644 index 00000000000..4bc9371dd17 --- /dev/null +++ b/pkgs/applications/audio/radiotray-ng/default.nix @@ -0,0 +1,96 @@ +{ stdenv, fetchFromGitHub, fetchpatch +, cmake, pkgconfig +# Transport +, curl +# Libraries +, boost +, jsoncpp +, libbsd +, pcre +# GUI/Desktop +, dbus +, glibmm +, gnome3 +, hicolor_icon_theme +, libappindicator-gtk3 +, libnotify +, libxdg_basedir +# GStreamer +, gst_all_1 +# User-agent info +, lsb-release +# rt2rtng +, python2 +# Testing +, gmock +# Fixup +, wrapGAppsHook +, makeWrapper +}: + +let + gstInputs = with gst_all_1; [ + gstreamer gst-plugins-base + gst-plugins-good gst-plugins-bad gst-plugins-ugly + gst-libav + ]; + # For the rt2rtng utility for converting bookmark file to -ng format + pythonInputs = with python2.pkgs; [ python2 lxml ]; +in +stdenv.mkDerivation rec { + name = "radiotray-ng-${version}"; + version = "0.1.7"; + + src = fetchFromGitHub { + owner = "ebruck"; + repo = "radiotray-ng"; + rev = "v${version}"; + sha256 = "1m853gzh9r249crn0xyrq22x154r005j58b0kq3nsrgi5cps2zdv"; + }; + + nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ]; + + buildInputs = [ + curl + boost jsoncpp libbsd pcre + glibmm hicolor_icon_theme gnome3.gsettings_desktop_schemas libappindicator-gtk3 libnotify + libxdg_basedir + lsb-release + ] ++ stdenv.lib.optional doCheck gmock + ++ gstInputs + ++ pythonInputs; + + prePatch = '' + substituteInPlace debian/CMakeLists.txt \ + --replace /usr $out + substituteInPlace include/radiotray-ng/common.hpp \ + --replace /usr $out + ''; + + patches = [ + (fetchpatch { + # Fix menu separators and minor touchup to 'version' + url = "https://github.com/ebruck/radiotray-ng/commit/827e9f1baaa03ab4d8a5fb3aab043e72950eb965.patch"; + sha256 = "1aykl6lq4pga34xg5r9mc616gxnd63q6gr8qzg57w6874cj3csrr"; + }) + ]; + + enableParallelBuilding = true; + + doCheck = true; + + checkPhase = "ctest"; + + preFixup = '' + gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]}) + wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH + ''; + + meta = with stdenv.lib; { + description = "An internet radio player for linux"; + homepage = https://github.com/ebruck/radiotray-ng; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix index 91e8f1be6ec..d02c551be8a 100644 --- a/pkgs/applications/audio/renoise/default.nix +++ b/pkgs/applications/audio/renoise/default.nix @@ -1,36 +1,35 @@ -{ stdenv, lib, requireFile, demo, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib, ... }: +{ stdenv, lib, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib, releasePath ? null }: +# To use the full release version: +# 1) Sign into https://backstage.renoise.com and download the appropriate (x86 or x86_64) version +# for your machine to some stable location. +# 2) Override the releasePath attribute to point to the location of the newly downloaded bundle. +# Note: Renoise creates an individual build for each license which screws somewhat with the +# use of functions like requireFile as the hash will be different for every user. +let fileversion = "3_1_0"; +in stdenv.mkDerivation rec { name = "renoise"; - buildInputs = [ libX11 libXext libXcursor libXrandr alsaLib libjack2 ]; src = if stdenv.system == "x86_64-linux" then - if demo then + if builtins.isNull releasePath then fetchurl { - url = "http://files.renoise.com/demo/Renoise_3_0_1_Demo_x86_64.tar.bz2"; - sha256 = "1q7f94wz2dbz659kpp53a3n1qyndsk0pkb29lxdff4pc3ddqwykg"; + url = "http://files.renoise.com/demo/Renoise_${fileversion}_Demo_x86_64.tar.bz2"; + sha256 = "0pan68fr22xbj7a930y29527vpry3f07q3i9ya4fp6g7aawffsga"; } else - requireFile { - url = "http://backstage.renoise.com/frontend/app/index.html#/login"; - name = "rns_3_0_1_linux_x86_64.tar.gz"; - sha256 = "1yb5w5jrg9dk9fg5rfvfk6p0rxn4r4i32vxp2l9lzhbs02pv15wd"; - } + releasePath else if stdenv.system == "i686-linux" then - if demo then + if builtins.isNull releasePath then fetchurl { - url = "http://files.renoise.com/demo/Renoise_3_0_1_Demo_x86.tar.bz2"; - sha256 = "0dgqvib4xh2yhgh2wajj11wsb6xiiwgfkhyz32g8vnyaij5q8f58"; + url = "http://files.renoise.com/demo/Renoise_${fileversion}_Demo_x86.tar.bz2"; + sha256 = "1lccjj4k8hpqqxxham5v01v2rdwmx3c5kgy1p9lqvzqma88k4769"; } else - requireFile { - url = "http://backstage.renoise.com/frontend/app/index.html#/login"; - name = "rns_3_0_1_reg_x86.tar.gz"; - sha256 = "1swax2jz0gswdpzz8alwjfd8rhigc2yfspj7p8wvdvylqrf7n8q7"; - } - else throw "platform is not suppored by Renoise"; + releasePath + else throw "Platform is not supported by Renoise"; installPhase = '' cp -r Resources $out diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix index e8bea3ec71c..534fd2f0edb 100644 --- a/pkgs/applications/audio/rhythmbox/default.nix +++ b/pkgs/applications/audio/rhythmbox/default.nix @@ -26,9 +26,8 @@ in stdenv.mkDerivation rec { sha256 = "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig - python3 perl perlPackages.XMLParser diff --git a/pkgs/applications/audio/rkrlv2/default.nix b/pkgs/applications/audio/rkrlv2/default.nix index 40ff47b9ee1..3ebdce2b482 100644 --- a/pkgs/applications/audio/rkrlv2/default.nix +++ b/pkgs/applications/audio/rkrlv2/default.nix @@ -13,7 +13,8 @@ stdenv.mkDerivation rec { sha256 = "0kr3rvq7n1bh47qryyarcpiibms601qd8l1vypmm61969l4d4bn8"; }; - buildInputs = with xorg; [ automake pkgconfig lv2 fftw cmake libXpm libjack2 libsamplerate libsndfile libXft ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = with xorg; [ automake lv2 fftw cmake libXpm libjack2 libsamplerate libsndfile libXft ]; meta = { description = "Rakarrak effects ported to LV2"; diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix index 00d7559cd58..5966d4253f5 100644 --- a/pkgs/applications/audio/rosegarden/default.nix +++ b/pkgs/applications/audio/rosegarden/default.nix @@ -1,33 +1,51 @@ -{ stdenv, fetchurl, qt4, pkgconfig, ladspaPlugins, ladspaH, - dssi, liblo, liblrdf, fftwSinglePrec, libsndfile, - libsamplerate, perl, makedepend, libjack2, - withLirc ? false, lirc ? null } : +{ stdenv, fetchurl, cmake, makedepend, perl, pkgconfig, qttools +, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2 +, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }: stdenv.mkDerivation (rec { - version = "15.08"; + version = "17.04"; name = "rosegarden-${version}"; + src = fetchurl { - url = "mirror://sourceforge/rosegarden/${name}.tar.bz2"; - sha256 = "1pk24bhpsmvn6rkqgll31na44w03banra1y7kiqd0gajlnw7wlls"; + url = "mirror://sourceforge/rosegarden/${name}.tar.bz2"; + sha256 = "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq"; }; - QTDIR=qt4; - - buildInputs = [ qt4 pkgconfig ladspaPlugins ladspaH dssi liblo liblrdf fftwSinglePrec - libsndfile libsamplerate perl makedepend libjack2 ] - ++ stdenv.lib.optional withLirc [ lirc ]; - - #enableParallelBuilding = true; issues on hydra - + patchPhase = '' + substituteInPlace src/CMakeLists.txt --replace svnheader svnversion + ''; + + nativeBuildInputs = [ cmake makedepend perl pkgconfig qttools ]; + + buildInputs = [ + dssi + fftwSinglePrec + ladspaH + ladspaPlugins + libjack2 + liblo + liblrdf + libsamplerate + libsndfile + lirc + qtbase + ]; + + enableParallelBuilding = true; + meta = with stdenv.lib; { homepage = http://www.rosegardenmusic.com/; description = "Music composition and editing environment"; longDescription = '' - Rosegarden is a music composition and editing environment based around a MIDI sequencer that features a rich understanding of music notation and includes basic support for digital audio. - Rosegarden is an easy-to-learn, attractive application that runs on Linux, ideal for composers, musicians, music students, and small studio or home recording environments. - ''; + Rosegarden is a music composition and editing environment based around + a MIDI sequencer that features a rich understanding of music notation + and includes basic support for digital audio. - maintainers = [ maintainers.lebastr ]; + Rosegarden is an easy-to-learn, attractive application that runs on Linux, + ideal for composers, musicians, music students, and small studio or home + recording environments. + ''; + maintainers = with maintainers; [ lebastr ]; license = licenses.lgpl2Plus; platforms = platforms.linux; }; diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix index 10f06e16cf4..1eb366d6bbd 100644 --- a/pkgs/applications/audio/samplv1/default.nix +++ b/pkgs/applications/audio/samplv1/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "samplv1-${version}"; - version = "0.8.0"; + version = "0.8.4"; src = fetchurl { url = "mirror://sourceforge/samplv1/${name}.tar.gz"; - sha256 = "0j3hkmd9q0bw9b7nk9cssqywlrishkd1n790a9vq6gh3pdc5sf3r"; + sha256 = "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i"; }; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix index 1a448c74b47..2b2fd161ede 100644 --- a/pkgs/applications/audio/schismtracker/default.nix +++ b/pkgs/applications/audio/schismtracker/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = { description = "Music tracker application, free reimplementation of Impulse Tracker"; - homepage = "http://schismtracker.org/"; + homepage = http://schismtracker.org/; license = stdenv.lib.licenses.gpl2; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ]; diff --git a/pkgs/applications/audio/seq24/default.nix b/pkgs/applications/audio/seq24/default.nix index eafa0980b4b..ebeef301e10 100644 --- a/pkgs/applications/audio/seq24/default.nix +++ b/pkgs/applications/audio/seq24/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Minimal loop based midi sequencer"; - homepage = "http://www.filter24.org/seq24"; + homepage = http://www.filter24.org/seq24; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ goibhniu nckx ]; diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix index 2a534047ae3..0eaa9bde14f 100644 --- a/pkgs/applications/audio/setbfree/default.nix +++ b/pkgs/applications/audio/setbfree/default.nix @@ -17,8 +17,9 @@ stdenv.mkDerivation rec { -i b_synth/Makefile ''; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - alsaLib freetype ftgl libjack2 libX11 lv2 mesa pkgconfig + alsaLib freetype ftgl libjack2 libX11 lv2 mesa ttf_bitstream_vera ]; diff --git a/pkgs/applications/audio/sisco.lv2/default.nix b/pkgs/applications/audio/sisco.lv2/default.nix index d429d545234..a60c3bef0da 100644 --- a/pkgs/applications/audio/sisco.lv2/default.nix +++ b/pkgs/applications/audio/sisco.lv2/default.nix @@ -25,9 +25,10 @@ stdenv.mkDerivation rec { inherit name; srcs = [ src robtkSrc ]; - sourceRoot = "sisco.lv2-${src.rev}-src"; + sourceRoot = src.name; - buildInputs = [ pkgconfig lv2 pango cairo libjack2 mesa ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ lv2 pango cairo libjack2 mesa ]; postUnpack = "chmod u+w -R ${robtkName}-src; mv ${robtkName}-src/* ${sourceRoot}/robtk"; sisco_VERSION = version; diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix index da76d7f16db..1932ec3d93b 100644 --- a/pkgs/applications/audio/snd/default.nix +++ b/pkgs/applications/audio/snd/default.nix @@ -4,11 +4,11 @@ }: stdenv.mkDerivation rec { - name = "snd-16.9"; + name = "snd-17.8"; src = fetchurl { url = "mirror://sourceforge/snd/${name}.tar.gz"; - sha256 = "1rw9wrj1f0g413ya32s9mwhvv3c6iasjza22irzf6xlv49b9s5dp"; + sha256 = "161bx2xgz692iqmsmhv9yi8rvd7y31si4rniizwirwz7q4y4vwvf"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix index 2acafb0be63..e91c08c30b7 100644 --- a/pkgs/applications/audio/sonata/default.nix +++ b/pkgs/applications/audio/sonata/default.nix @@ -16,8 +16,9 @@ in buildPythonApplication rec { disabled = !isPy3k; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig intltool wrapGAppsHook + intltool wrapGAppsHook gnome3.gnome_themes_standard gnome3.defaultIconTheme gnome3.gsettings_desktop_schemas ]; @@ -62,7 +63,7 @@ in buildPythonApplication rec { - Commandline control - Available in 24 languages ''; - homepage = "http://www.nongnu.org/sonata/"; + homepage = http://www.nongnu.org/sonata/; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.rvl ]; diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix index 3c7be51554d..d1c48ce44ed 100644 --- a/pkgs/applications/audio/sonic-pi/default.nix +++ b/pkgs/applications/audio/sonic-pi/default.nix @@ -1,24 +1,33 @@ { stdenv , fetchFromGitHub -, qscintilla -, supercollider +, fftwSinglePrec , ruby +, libffi +, aubio , cmake , pkgconfig -, qt48Full +, qt5 +, libsForQt5 +, boost , bash , makeWrapper +, jack2Full }: -stdenv.mkDerivation rec { - version = "2.9.0"; +let + supercollider = libsForQt5.callPackage ../../../development/interpreters/supercollider { + fftw = fftwSinglePrec; + }; + +in stdenv.mkDerivation rec { + version = "3.0.1"; name = "sonic-pi-${version}"; src = fetchFromGitHub { owner = "samaaron"; repo = "sonic-pi"; rev = "v${version}"; - sha256 = "19db5dxrf6h1v2w3frds5g90nb6izd9ppp7cs2xi6i0m67l6jrwb"; + sha256 = "1l1892hijp1dj2h799sfjr699q6xp660n0siibab5kv238521a81"; }; buildInputs = [ @@ -26,24 +35,18 @@ stdenv.mkDerivation rec { cmake makeWrapper pkgconfig - qscintilla - qt48Full + qt5.qtbase + libsForQt5.qscintilla + libsForQt5.qwt ruby + libffi + aubio supercollider + boost ]; - meta = { - homepage = http://sonic-pi.net/; - description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools"; - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.Phlogistique ]; - platforms = stdenv.lib.platforms.linux; - }; - dontUseCmakeConfigure = true; - patches = [ ./fixed-prefixes.patch ]; - preConfigure = '' patchShebangs . substituteInPlace app/gui/qt/mainwindow.cpp \ @@ -52,18 +55,45 @@ stdenv.mkDerivation rec { ''; buildPhase = '' + export SONIC_PI_HOME=$TMPDIR + export AUBIO_LIB=${aubio}/lib/libaubio.so + pushd app/server/bin ./compile-extensions.rb + ./i18n-tool.rb -t popd pushd app/gui/qt - ./rp-build-app + cp -f ruby_help.tmpl ruby_help.h + ../../server/bin/qt-doc.rb -o ruby_help.h + + substituteInPlace SonicPi.pro \ + --replace "LIBS += -lrt -lqt5scintilla2" \ + "LIBS += -lrt -lqscintilla2 -lqwt" + + lrelease SonicPi.pro + qmake SonicPi.pro + + make popd ''; installPhase = '' + runHook preInstall + cp -r . $out - wrapProgram $out/bin/sonic-pi --prefix PATH : \ - ${ruby}/bin:${bash}/bin + wrapProgram $out/bin/sonic-pi \ + --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \ + --set AUBIO_LIB "${aubio}/lib/libaubio.so" + + runHook postInstall ''; + + meta = { + homepage = http://sonic-pi.net/; + description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools"; + license = stdenv.lib.licenses.mit; + maintainers = with stdenv.lib.maintainers; [ Phlogistique kamilchm ]; + platforms = stdenv.lib.platforms.linux; + }; } diff --git a/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch b/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch deleted file mode 100644 index 7b045a41cba..00000000000 --- a/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/app/gui/qt/mainwindow.cpp b/app/gui/qt/mainwindow.cpp -index 0af6cf7..97c17ad 100644 ---- a/app/gui/qt/mainwindow.cpp -+++ b/app/gui/qt/mainwindow.cpp -@@ -677,28 +677,9 @@ void MainWindow::startServer(){ - - serverProcess = new QProcess(); - -- QString root = rootPath(); -- -- #if defined(Q_OS_WIN) -- QString prg_path = root + "/app/server/native/windows/ruby/bin/ruby.exe"; -- QString prg_arg = root + "/app/server/bin/sonic-pi-server.rb"; -- sample_path = root + "/etc/samples"; -- #elif defined(Q_OS_MAC) -- QString prg_path = root + "/server/native/osx/ruby/bin/ruby"; -- QString prg_arg = root + "/server/bin/sonic-pi-server.rb"; -- sample_path = root + "/etc/samples"; -- #else -- //assuming Raspberry Pi -- QString prg_path = root + "/app/server/native/raspberry/ruby/bin/ruby"; -- QFile file(prg_path); -- if(!file.exists()) { -- // use system ruby if bundled ruby doesn't exist -- prg_path = "/usr/bin/ruby"; -- } -- -- QString prg_arg = root + "/app/server/bin/sonic-pi-server.rb"; -- sample_path = root + "/etc/samples"; -- #endif -+ QString prg_path = "@ruby@"; -+ QString prg_arg = "@out@/app/server/bin/sonic-pi-server.rb"; -+ sample_path = "@out@/etc/samples"; - - prg_path = QDir::toNativeSeparators(prg_path); - prg_arg = QDir::toNativeSeparators(prg_arg); diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix index d48f1eb851b..bdb9911d365 100644 --- a/pkgs/applications/audio/sonic-visualiser/default.nix +++ b/pkgs/applications/audio/sonic-visualiser/default.nix @@ -2,8 +2,8 @@ { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate -, libsndfile, pkgconfig, libpulseaudio, makeQtWrapper, qtbase, redland -, qmakeHook, rubberband, serd, sord, vampSDK, fftwFloat +, libsndfile, pkgconfig, libpulseaudio, qtbase, redland +, qmake, rubberband, serd, sord, vampSDK, fftwFloat }: stdenv.mkDerivation rec { @@ -16,11 +16,10 @@ stdenv.mkDerivation rec { }; buildInputs = - [ libsndfile qtbase qmakeHook fftw fftwFloat bzip2 librdf rubberband + [ libsndfile qtbase fftw fftwFloat bzip2 librdf rubberband libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland serd sord - pkgconfig # optional libjack2 # portaudio @@ -32,7 +31,7 @@ stdenv.mkDerivation rec { libX11 ]; - nativeBuildInputs = [ makeQtWrapper qmakeHook ]; + nativeBuildInputs = [ pkgconfig qmake ]; configurePhase = '' for i in sonic-visualiser svapp svcore svgui; @@ -44,7 +43,6 @@ stdenv.mkDerivation rec { mkdir -p $out/{bin,share/sonic-visualiser} cp sonic-visualiser $out/bin/ cp -r samples $out/share/sonic-visualiser/ - wrapQtProgram "$out/bin/sonic-visualiser" ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix index e4d9541673a..bf4d96c6fc4 100644 --- a/pkgs/applications/audio/sooperlooper/default.nix +++ b/pkgs/applications/audio/sooperlooper/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ''; version = "${version}"; - homepage = "http://essej.net/sooperlooper/index.html"; + homepage = http://essej.net/sooperlooper/index.html; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/sorcer/default.nix b/pkgs/applications/audio/sorcer/default.nix index ef28180cc3b..cf0b5db81f6 100644 --- a/pkgs/applications/audio/sorcer/default.nix +++ b/pkgs/applications/audio/sorcer/default.nix @@ -1,15 +1,18 @@ -{ stdenv, fetchurl, boost, cairomm, cmake, libsndfile, lv2, ntk, pkgconfig, python }: +{ stdenv, fetchFromGitHub , boost, cairomm, cmake, libsndfile, lv2, ntk, pkgconfig, python }: stdenv.mkDerivation rec { name = "sorcer-${version}"; - version = "1.1.1"; + version = "1.1.3"; - src = fetchurl { - url = "https://github.com/harryhaaren/openAV-Sorcer/archive/release-${version}.tar.gz"; - sha256 = "1jkhs2rhn4givac7rlbj8067r7qq6jnj3ixabb346nw7pd6gn1wn"; + src = fetchFromGitHub { + owner = "openAVproductions"; + repo = "openAV-Sorcer"; + rev = "release-${version}"; + sha256 = "1x7pi77nal10717l02qpnhrx6d7w5nqrljkn9zx5w7gpb8fpb3vp"; }; - buildInputs = [ boost cairomm cmake libsndfile lv2 ntk pkgconfig python ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ]; installPhase = '' make install diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix index 02a97dde4e2..cbcdc0ecccd 100644 --- a/pkgs/applications/audio/sound-juicer/default.nix +++ b/pkgs/applications/audio/sound-juicer/default.nix @@ -15,9 +15,10 @@ in stdenv.mkDerivation rec { sha256 = "0mx6n901vb97hsv0cwaafjffj75s1kcp8jsqay90dy3099849dyz"; }; - buildInputs = [ pkgconfig gtk3 intltool itstool libxml2 brasero libcanberra_gtk3 + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk3 intltool itstool libxml2 brasero libcanberra_gtk3 gnome3.gsettings_desktop_schemas libmusicbrainz5 libdiscid isocodes - makeWrapper gnome3.dconf + makeWrapper (stdenv.lib.getLib gnome3.dconf) 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-libav @@ -28,7 +29,7 @@ in stdenv.mkDerivation rec { wrapProgram "$f" \ --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ - --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules" done ''; diff --git a/pkgs/applications/audio/soundscape-renderer/default.nix b/pkgs/applications/audio/soundscape-renderer/default.nix index c6609814ea0..7daae31a468 100644 --- a/pkgs/applications/audio/soundscape-renderer/default.nix +++ b/pkgs/applications/audio/soundscape-renderer/default.nix @@ -30,7 +30,8 @@ stdenv.mkDerivation rec { LC_ALL = "en_US.UTF-8"; - buildInputs = [ autoreconfHook boost boost.dev ecasound mesa help2man pkgconfig libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ boost boost.dev ecasound mesa help2man libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ]; # 1) Fix detecting version. https://github.com/SoundScapeRenderer/ssr/pull/53 # 2) Make it find ecasound headers diff --git a/pkgs/applications/audio/spectrojack/default.nix b/pkgs/applications/audio/spectrojack/default.nix index 83848671a3e..86eefc39556 100644 --- a/pkgs/applications/audio/spectrojack/default.nix +++ b/pkgs/applications/audio/spectrojack/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { url = "http://sed.free.fr/spectrojack/${name}.tar.gz"; sha256 = "0p5aa55hnazv5djw0431mza068h7mjkb9pnglxfpqkx5z0czisdx"; }; - buildInputs = [ pkgconfig libjack2 fftwFloat gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libjack2 fftwFloat gtk2 ]; configurePhase= '' sed -i 's/.*home.*/#&/' ./Makefile substituteInPlace ./Makefile \ diff --git a/pkgs/applications/audio/spek/default.nix b/pkgs/applications/audio/spek/default.nix index 32aac686043..8af7888f74b 100644 --- a/pkgs/applications/audio/spek/default.nix +++ b/pkgs/applications/audio/spek/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0y4hlhswpqkqpsglrhg5xbfy1a6f9fvasgdf336vhwcjqsc3k2xv"; }; - buildInputs = [ autoconf automake intltool pkgconfig ffmpeg wxGTK ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake intltool ffmpeg wxGTK ]; preConfigure = '' ./autogen.sh diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 765f0e9e5a7..249bbe0d8fb 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -8,7 +8,8 @@ let # Please update the stable branch! # Latest version number can be found at: # http://repository-origin.spotify.com/pool/non-free/s/spotify-client/ - version = "1.0.53.758.gde3fc4b2-33"; + # Be careful not to pick the testing version. + version = "1.0.64.407.g9bd02c2d-26"; deps = [ alsaLib @@ -53,7 +54,7 @@ stdenv.mkDerivation { src = fetchurl { url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb"; - sha256 = "1sh6bv23yx0fcbmf60c2yyi6411ij85k4jalpjlck2w26nfj1b3g"; + sha256 = "0zc8vclf1wx60yllc1jgzhqyv5lkwz95qmmy5f79zkj6vrdak5wc"; }; buildInputs = [ dpkg makeWrapper ]; diff --git a/pkgs/applications/audio/ssrc/default.nix b/pkgs/applications/audio/ssrc/default.nix index fa2b54d0e8a..19386b47794 100644 --- a/pkgs/applications/audio/ssrc/default.nix +++ b/pkgs/applications/audio/ssrc/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ''; version = "${version}"; - homepage = "http://shibatch.sourceforge.net/"; + homepage = http://shibatch.sourceforge.net/; license = licenses.gpl2; maintainers = with maintainers; [ leenaars]; platforms = with platforms; [ linux ] ; diff --git a/pkgs/applications/audio/streamripper/default.nix b/pkgs/applications/audio/streamripper/default.nix index 2df1e1e3b3b..0fb1b77e708 100644 --- a/pkgs/applications/audio/streamripper/default.nix +++ b/pkgs/applications/audio/streamripper/default.nix @@ -9,13 +9,14 @@ stdenv.mkDerivation rec { sha256 = "0hnyv3206r0rfprn3k7k6a0j959kagsfyrmyjm3gsf3vkhp5zmy1"; }; - buildInputs = [ pkgconfig glib libogg libvorbis ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib libogg libvorbis ]; meta = with stdenv.lib; { homepage = http://streamripper.sourceforge.net/; description = "Application that lets you record streaming mp3 to your hard drive"; license = licenses.gpl2; - platforms = platforms.unix; + platforms = platforms.linux; maintainers = with maintainers; [ the-kenny ]; }; } diff --git a/pkgs/applications/audio/svox/default.nix b/pkgs/applications/audio/svox/default.nix index d7072e96163..5e26b6c1cdb 100644 --- a/pkgs/applications/audio/svox/default.nix +++ b/pkgs/applications/audio/svox/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "svox-${version}"; - version = "2016-10-20"; + version = "2017-07-18"; src = fetchgit { url = "https://android.googlesource.com/platform/external/svox"; - rev = "2dd8f16e4436520b93e93aa72b92acad92c0127d"; - sha256 = "064h3zb9bn1z6xbv15iy6l4rlxx8fqzy54s898qvafjhz6kawj9g"; + rev = "7e68d0e9aac1b5d2ad15e92ddaa3bceb27973fcb"; + sha256 = "1bqj12w23nn27x64ianm2flrqvkskpvgrnly7ah8gv6k8s8chh3r"; }; postPatch = '' @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Text-to-speech engine"; - homepage = "https://android.googlesource.com/platform/external/svox"; + homepage = https://android.googlesource.com/platform/external/svox; platforms = platforms.linux; license = licenses.asl20; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/audio/swh-lv2/default.nix b/pkgs/applications/audio/swh-lv2/default.nix index faa895e2e30..26ea4614920 100644 --- a/pkgs/applications/audio/swh-lv2/default.nix +++ b/pkgs/applications/audio/swh-lv2/default.nix @@ -14,7 +14,8 @@ stdenv.mkDerivation rec { sed -e "s#PREFIX = /usr/local#PREFIX = $out#" -i Makefile ''; - buildInputs = [ fftwSinglePrec lv2 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ fftwSinglePrec lv2 ]; installPhase = "make install-system"; diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix index c7932a132d7..2f5a4ebb43f 100644 --- a/pkgs/applications/audio/synthv1/default.nix +++ b/pkgs/applications/audio/synthv1/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "synthv1-${version}"; - version = "0.8.0"; + version = "0.8.4"; src = fetchurl { url = "mirror://sourceforge/synthv1/${name}.tar.gz"; - sha256 = "155pfyhr6d35ciw95pbxlqy7751cmij8j5d849rvblqbjzyzb5qx"; + sha256 = "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8"; }; buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; diff --git a/pkgs/applications/audio/timemachine/default.nix b/pkgs/applications/audio/timemachine/default.nix index 55e95c0fc15..8837566b13d 100644 --- a/pkgs/applications/audio/timemachine/default.nix +++ b/pkgs/applications/audio/timemachine/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "0w5alysixnvlkfl79wf7vs5wsw2vgxl3gqxxcm0zbmhjdpmjpcal"; }; - buildInputs = [ autoconf automake pkgconfig gtk2 libjack2 + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake gtk2 libjack2 libsndfile ]; diff --git a/pkgs/applications/audio/tomahawk/default.nix b/pkgs/applications/audio/tomahawk/default.nix index ca9f514eace..364949b2241 100644 --- a/pkgs/applications/audio/tomahawk/default.nix +++ b/pkgs/applications/audio/tomahawk/default.nix @@ -25,8 +25,9 @@ stdenv.mkDerivation rec { "-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib" ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig attica boost gnutls libechonest liblastfm lucenepp phonon + cmake attica boost gnutls libechonest liblastfm lucenepp phonon qca2 qjson qt4 qtkeychain quazip sparsehash taglib websocketpp makeWrapper ] ++ stdenv.lib.optional enableXMPP libjreen @@ -47,7 +48,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A multi-source music player"; - homepage = "http://tomahawk-player.org/"; + homepage = http://tomahawk-player.org/; license = licenses.gpl3Plus; platforms = platforms.all; maintainers = [ maintainers.aszlig ]; diff --git a/pkgs/applications/audio/uade123/default.nix b/pkgs/applications/audio/uade123/default.nix index 0a07e97270c..de39c8ecc1c 100644 --- a/pkgs/applications/audio/uade123/default.nix +++ b/pkgs/applications/audio/uade123/default.nix @@ -8,7 +8,8 @@ in stdenv.mkDerivation rec { url = "http://zakalwe.fi/uade/uade2/uade-${version}.tar.bz2"; sha256 = "04nn5li7xy4g5ysyjjngmv5d3ibxppkbb86m10vrvadzxdd4w69v"; }; - buildInputs = [ which libao pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ which libao ]; meta = with stdenv.lib; { description = "Plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API"; diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix index 25292a4408f..37ccbb1425f 100644 --- a/pkgs/applications/audio/vimpc/default.nix +++ b/pkgs/applications/audio/vimpc/default.nix @@ -2,17 +2,20 @@ , taglib }: stdenv.mkDerivation rec { - version = "0.09.0"; + version = "0.09.1"; name = "vimpc-${version}"; src = fetchFromGitHub { owner = "boysetsfrog"; repo = "vimpc"; - rev = "v${version}"; - sha256 = "1z9yx2pz84lyng1ig9y4z6pdalwxb80ig7nnzhqfy3pl36hq6shi"; + # Using commit-hash as there is not tag available + # https://github.com/boysetsfrog/vimpc/issues/70 + rev = "63556da6b94ab27d7e3f542399f5e0975a5812ba"; + sha256 = "1495a702df4nja8mlxq98mkbic2zv88sjiinimf9qddrfb38jxk6"; }; - buildInputs = [ autoreconfHook mpd_clientlib ncurses pcre pkgconfig taglib ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ mpd_clientlib ncurses pcre taglib ]; postInstall = '' mkdir -p $out/etc diff --git a/pkgs/applications/audio/vorbis-tools/default.nix b/pkgs/applications/audio/vorbis-tools/default.nix index 1f85f442354..6b9af119859 100644 --- a/pkgs/applications/audio/vorbis-tools/default.nix +++ b/pkgs/applications/audio/vorbis-tools/default.nix @@ -20,7 +20,8 @@ stdenv.mkDerivation { done ''; - buildInputs = [ libogg libvorbis libao pkgconfig curl speex flac ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libogg libvorbis libao curl speex flac ]; meta = with stdenv.lib; { description = "Extra tools for Ogg-Vorbis audio codec"; diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix index a0fcfe81102..0c151697e89 100644 --- a/pkgs/applications/audio/x42-plugins/default.nix +++ b/pkgs/applications/audio/x42-plugins/default.nix @@ -3,15 +3,24 @@ , mesa_glu, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }: stdenv.mkDerivation rec { - version = "20161230"; + version = "20170428"; name = "x42-plugins-${version}"; src = fetchurl { url = "http://gareus.org/misc/x42-plugins/${name}.tar.xz"; - sha256 = "1yni9c17kl2pi9lqxip07b6g6lyfii1pch5czp183113gk54fwj5"; + sha256 = "0yi82rak2277x4nzzr5zwbsnha5pi61w975c8src2iwar2b6m0xg"; }; - buildInputs = [ mesa_glu ftgl freefont_ttf libjack2 libltc libsndfile libsamplerate lv2 gtk2 cairo pango fftwFloat pkgconfig zita-convolver]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ mesa_glu ftgl freefont_ttf libjack2 libltc libsndfile libsamplerate lv2 gtk2 cairo pango fftwFloat zita-convolver ]; + + # Don't remove this. The default fails with 'do not know how to unpack source archive' + # every now and then on Hydra. No idea why. + unpackPhase = '' + tar xf $src + sourceRoot=$(echo x42-plugins-*) + chmod -R u+w $sourceRoot + ''; makeFlags = [ "PREFIX=$(out)" "FONTFILE=${freefont_ttf}/share/fonts/truetype/FreeSansBold.ttf" ]; diff --git a/pkgs/applications/audio/xmp/default.nix b/pkgs/applications/audio/xmp/default.nix index 10b5bc0c117..9aa24738c37 100644 --- a/pkgs/applications/audio/xmp/default.nix +++ b/pkgs/applications/audio/xmp/default.nix @@ -15,5 +15,6 @@ stdenv.mkDerivation rec { sha256 = "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n"; }; - buildInputs = [ pkgconfig alsaLib libxmp ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ alsaLib libxmp ]; } diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix index 1008d3e8e98..ca6d6240688 100644 --- a/pkgs/applications/audio/yasr/default.nix +++ b/pkgs/applications/audio/yasr/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ]; # taken from the debian yasr package meta = { - homepage = "http://yasr.sourceforge.net"; + homepage = http://yasr.sourceforge.net; description = "A general-purpose console screen reader"; longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems."; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/audio/ympd/default.nix b/pkgs/applications/audio/ympd/default.nix index 54d07e71f42..c3e8efae7fe 100644 --- a/pkgs/applications/audio/ympd/default.nix +++ b/pkgs/applications/audio/ympd/default.nix @@ -11,10 +11,11 @@ stdenv.mkDerivation rec { sha256 = "1nvb19jd556v2h2bi7w4dcl507p3p8xvjkqfzrcsy7ccy3502brq"; }; - buildInputs = [ cmake pkgconfig mpd_clientlib openssl ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake mpd_clientlib openssl ]; meta = { - homepage = "http://www.ympd.org"; + homepage = http://www.ympd.org; description = "Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS"; maintainers = [ stdenv.lib.maintainers.siddharthist ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix index ef10bfed9b6..2b79718809f 100644 --- a/pkgs/applications/audio/yoshimi/default.nix +++ b/pkgs/applications/audio/yoshimi/default.nix @@ -6,11 +6,11 @@ assert stdenv ? glibc; stdenv.mkDerivation rec { name = "yoshimi-${version}"; - version = "1.5.0"; + version = "1.5.3"; src = fetchurl { url = "mirror://sourceforge/yoshimi/${name}.tar.bz2"; - sha256 = "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5"; + sha256 = "0sns35pyw2f74xrv1fxiyf9g9415kvh2rrbdjd60hsiv584nlari"; }; buildInputs = [ diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix index ecb7d9bceec..f81aad4e2af 100644 --- a/pkgs/applications/audio/zam-plugins/default.nix +++ b/pkgs/applications/audio/zam-plugins/default.nix @@ -2,16 +2,17 @@ stdenv.mkDerivation rec { name = "zam-plugins-${version}"; - version = "3.8"; + version = "3.9"; src = fetchgit { url = "https://github.com/zamaudio/zam-plugins.git"; deepClone = true; - rev = "830ab2e9dd1db8cf56d12c71057157e5d8e9fd74"; - sha256 = "1hyly5inis59cvh0r7lyi203h8v5jh84ca9jpaljm53cvw6d93px"; + rev = "4976cf204074c1dfaf344821e83e8d896b35107d"; + sha256 = "1xgwl51sf2hgc5ikcnycyxaw9vy82lrcswn07b6av6i67qclm8f8"; }; - buildInputs = [ boost libX11 mesa liblo libjack2 ladspaH lv2 pkgconfig rubberband libsndfile ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ boost libX11 mesa liblo libjack2 ladspaH lv2 rubberband libsndfile ]; patchPhase = '' patchShebangs ./dpf/utils/generate-ttl.sh diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix index ec803f2a9c5..52b9a57c00b 100644 --- a/pkgs/applications/audio/zynaddsubfx/default.nix +++ b/pkgs/applications/audio/zynaddsubfx/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, alsaLib, cmake, libjack2, fftw, fltk13, libjpeg -, minixml, pkgconfig, zlib, liblo +{ stdenv, fetchurl, alsaLib, cairo, cmake, libjack2, fftw, fltk13, lash, libjpeg +, libXpm, minixml, ntk, pkgconfig, zlib, liblo }: stdenv.mkDerivation rec { name = "zynaddsubfx-${version}"; - version = "2.5.4"; + version = "3.0.2"; src = fetchurl { url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.bz2"; - sha256 = "16llaa2wg2gbgjhwp3632b2vx9jvanj4csv7d41k233ms6d1sjq1"; + sha256 = "09mr23lqc51r7gskry5b7hk84pghdpgn1s4vnrzvx7xpa21gvplm"; }; - buildInputs = [ alsaLib libjack2 fftw fltk13 libjpeg minixml zlib liblo ]; + buildInputs = [ alsaLib cairo libjack2 fftw fltk13 lash libjpeg libXpm minixml ntk zlib liblo ]; nativeBuildInputs = [ cmake pkgconfig ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/backup/crashplan/default.nix b/pkgs/applications/backup/crashplan/default.nix index 1a125de0a87..e840c6eeda0 100644 --- a/pkgs/applications/backup/crashplan/default.nix +++ b/pkgs/applications/backup/crashplan/default.nix @@ -1,22 +1,18 @@ { stdenv, fetchurl, makeWrapper, jre, cpio, gawk, gnugrep, gnused, procps, swt, gtk2, glib, libXtst }: -let - version = "4.8.0"; +stdenv.mkDerivation rec { + version = "4.8.3"; rev = "1"; #tracks unversioned changes that occur on download.code42.com from time to time - -in stdenv.mkDerivation rec { name = "crashplan-${version}-r${rev}"; - crashPlanArchive = fetchurl { + src = fetchurl { url = "https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_${version}_Linux.tgz"; - sha256 = "117k9yx10n4lc0hkx0j48f19km0jrdgfq6xmbmhv3v73zbx21axs"; + sha256 = "c25d87ec1d442a396b668547e39b70d66dcfe02250cc57a25916ebb42a407113"; }; - srcs = [ crashPlanArchive ]; - meta = with stdenv.lib; { description = "An online/offline backup solution"; - homepage = "http://www.crashplan.org"; + homepage = http://www.crashplan.org; license = licenses.unfree; maintainers = with maintainers; [ sztupi domenkozar jerith666 ]; }; diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix new file mode 100644 index 00000000000..c330aeb0092 --- /dev/null +++ b/pkgs/applications/backup/deja-dup/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, vala_0_38, gettext +, gnome3, libnotify, intltool, itstool, glib, gtk3, libxml2 +, coreutils, libsecret, pcre, libxkbcommon, wrapGAppsHook +, libpthreadstubs, libXdmcp, epoxy, at_spi2_core, dbus, libgpgerror +, appstream-glib, desktop_file_utils, atk, pango, duplicity +}: + +stdenv.mkDerivation rec { + name = "deja-dup-${version}"; + version = "36.3"; + + src = fetchurl { + url = "https://launchpad.net/deja-dup/36/${version}/+download/deja-dup-${version}.tar.xz"; + sha256 = "08pwybzp7ynfcf0vqxfc3p8ir4gnzcv4v4cq5bwidbff9crklhrc"; + }; + + patches = [ + ./fix-paths.patch + ]; + + postPatch = '' + substituteInPlace libdeja/tools/duplicity/DuplicityInstance.vala --replace \ + "/bin/rm" \ + "${coreutils}/bin/rm" + ''; + + # couldn't find gio/gdesktopappinfo.h + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + nativeBuildInputs = [ + meson ninja pkgconfig vala_0_38 gettext intltool itstool + appstream-glib desktop_file_utils libxml2 wrapGAppsHook + ]; + + buildInputs = [ + libnotify gnome3.libpeas glib gtk3 libsecret + pcre libxkbcommon libpthreadstubs libXdmcp epoxy gnome3.nautilus + at_spi2_core dbus gnome3.gnome_online_accounts libgpgerror + ]; + + propagatedUserEnvPkgs = [ duplicity ]; + + postInstall = '' + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + # Manual rpath definition until https://github.com/mesonbuild/meson/issues/314 is fixed + postFixup = + let + rpath = stdenv.lib.makeLibraryPath [ + glib + gtk3 + gnome3.gnome_online_accounts + gnome3.libpeas + gnome3.nautilus + libgpgerror + libsecret + # Transitive + atk + pango + ]; + in '' + # Unwrap accidentally wrapped library + mv $out/libexec/deja-dup/tools/.libduplicity.so-wrapped $out/libexec/deja-dup/tools/libduplicity.so + + for elf in "$out"/bin/.*-wrapped "$out"/libexec/deja-dup/.deja-dup-monitor-wrapped "$out"/libexec/deja-dup/tools/*.so "$out"/lib/deja-dup/*.so "$out"/lib/nautilus/extensions-3.0/*.so; do + patchelf --set-rpath '${rpath}':"$out/lib/deja-dup" "$elf" + done + ''; + + meta = with stdenv.lib; { + description = "A simple backup tool"; + longDescription = '' + Déjà Dup is a simple backup tool. It hides the complexity \ + of backing up the Right Way (encrypted, off-site, and regular) \ + and uses duplicity as the backend. + ''; + homepage = https://launchpad.net/deja-dup; + license = with licenses; gpl3; + maintainers = with maintainers; [ jtojnar joncojonathan ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/backup/deja-dup/fix-paths.patch b/pkgs/applications/backup/deja-dup/fix-paths.patch new file mode 100644 index 00000000000..1cc57e6a54a --- /dev/null +++ b/pkgs/applications/backup/deja-dup/fix-paths.patch @@ -0,0 +1,12 @@ +diff --git a/deja-dup/nautilus/meson.build b/deja-dup/nautilus/meson.build +index 04b136f3..ed8f7cba 100644 +--- a/deja-dup/nautilus/meson.build ++++ b/deja-dup/nautilus/meson.build +@@ -31,6 +31,6 @@ shared_module('deja-dup', ['NautilusExtension.c'], + link_with: [dirhandling], + dependencies: [nautilus_dep], + install: true, +- install_dir: nautilus_dep.get_pkgconfig_variable('extensiondir')) ++ install_dir: join_paths(get_option('libdir'), 'nautilus', 'extensions-3.0')) + + endif diff --git a/pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix b/pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix index 235d4d16a40..9dd7eb2a299 100644 --- a/pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix +++ b/pkgs/applications/display-managers/lightdm-gtk-greeter/default.nix @@ -26,7 +26,8 @@ stdenv.mkDerivation rec { }) ]; - buildInputs = [ pkgconfig lightdm intltool makeWrapper ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ lightdm intltool makeWrapper ] ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]); configureFlags = [ diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix index 191ec84f87b..452cb38f126 100644 --- a/pkgs/applications/display-managers/lightdm/default.nix +++ b/pkgs/applications/display-managers/lightdm/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2 -, intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit, gcc6 +, intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit , qt4 ? null , withQt5 ? false, qtbase }: @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool ]; buildInputs = [ pam libxcb glib libXdmcp itstool libxml2 libxklavier libgcrypt - qt4 libaudit gcc6 + qt4 libaudit ] ++ optional withQt5 qtbase; configureFlags = [ diff --git a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch deleted file mode 100644 index 836df2de292..00000000000 --- a/pkgs/applications/display-managers/sddm/0001-ignore-config-mtime.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 23 Nov 2015 06:56:28 -0600 -Subject: [PATCH 1/2] ignore config mtime - ---- - src/common/ConfigReader.cpp | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp -index cfc9940..5bf5a6a 100644 ---- a/src/common/ConfigReader.cpp -+++ b/src/common/ConfigReader.cpp -@@ -138,11 +138,6 @@ namespace SDDM { - QString currentSection = QStringLiteral(IMPLICIT_SECTION); - - QFile in(m_path); -- QDateTime modificationTime = QFileInfo(in).lastModified(); -- if (modificationTime <= m_fileModificationTime) { -- return; -- } -- m_fileModificationTime = modificationTime; - - in.open(QIODevice::ReadOnly); - while (!in.atEnd()) { --- -2.6.3 - diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index f675febafb5..86a963bdac4 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -1,115 +1,64 @@ -{ stdenv, lib, makeQtWrapper, fetchFromGitHub, fetchpatch +{ mkDerivation, lib, fetchFromGitHub, fetchpatch , cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir , libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd -, themes }: let - version = "0.14.0"; - unwrapped = stdenv.mkDerivation rec { - name = "sddm-unwrapped-${version}"; + version = "0.16.0"; - src = fetchFromGitHub { - owner = "sddm"; - repo = "sddm"; - rev = "v${version}"; - sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj"; - }; - - patches = [ - ./0001-ignore-config-mtime.patch - (fetchpatch { /* Fix display of user avatars. */ - url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch; - sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms"; - }) - ]; - - nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ]; - - buildInputs = [ - libxcb libpthreadstubs libXdmcp libXau pam systemd - ]; - - propagatedBuildInputs = [ - qtbase qtdeclarative - ]; - - cmakeFlags = [ - "-DCONFIG_FILE=/etc/sddm.conf" - # Set UID_MIN and UID_MAX so that the build script won't try - # to read them from /etc/login.defs (fails in chroot). - # The values come from NixOS; they may not be appropriate - # for running SDDM outside NixOS, but that configuration is - # not supported anyway. - "-DUID_MIN=1000" - "-DUID_MAX=29999" - ]; - - preConfigure = '' - export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/lib/qt5/qml -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system" - ''; - - enableParallelBuilding = true; - - postInstall = '' - # remove empty scripts - rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop" - ''; - - meta = with stdenv.lib; { - description = "QML based X11 display manager"; - homepage = "https://github.com/sddm/sddm"; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ttuegel ]; - }; - }; - -in - -stdenv.mkDerivation { +in mkDerivation rec { name = "sddm-${version}"; - nativeBuildInputs = [ lndir makeQtWrapper ]; - buildInputs = [ unwrapped ] ++ themes; - themes = map (pkg: pkg.out or pkg) themes; - inherit unwrapped; + src = fetchFromGitHub { + owner = "sddm"; + repo = "sddm"; + rev = "v${version}"; + sha256 = "1j0rc8nk8bz7sxa0bc6lx9v7r3zlcfyicngfjqb894ni9k71kzsb"; + }; - unpackPhase = "true"; - configurePhase = "runHook preConfigure; runHook postConfigure"; - buildPhase = "runHook preBuild; runHook postBuild"; + patches = [ ./sddm-ignore-config-mtime.patch ]; - installPhase = '' - runHook preInstall + postPatch = + # Module Qt5::Test must be included in `find_package` before it is used. + '' + sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|' + ''; - propagated= - for i in $unwrapped $themes; do - findInputs $i propagated propagated-user-env-packages - if [ -z "$crossConfig" ]; then - findInputs $i propagated propagated-native-build-inputs - else - findInputs $i propagated propagated-build-inputs - fi - done + nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ]; - for pkg in $propagated; do - addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share" - addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg" - done + buildInputs = [ + libxcb libpthreadstubs libXdmcp libXau pam qtbase qtdeclarative systemd + ]; - mkdir -p "$out/bin" - makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm" + cmakeFlags = [ + "-DCONFIG_FILE=/etc/sddm.conf" + # Set UID_MIN and UID_MAX so that the build script won't try + # to read them from /etc/login.defs (fails in chroot). + # The values come from NixOS; they may not be appropriate + # for running SDDM outside NixOS, but that configuration is + # not supported anyway. + "-DUID_MIN=1000" + "-DUID_MAX=29999" + ]; - mkdir -p "$out/share/sddm" - for pkg in $unwrapped $themes; do - local sddmDir="$pkg/share/sddm" - if [ -d "$sddmDir" ]; then - lndir -silent "$sddmDir" "$out/share/sddm" - fi - done - - runHook postInstall + preConfigure = '' + export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system" ''; - inherit (unwrapped) meta; + postInstall = '' + # remove empty scripts + rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop" + for f in $out/share/sddm/themes/**/theme.conf ; do + substituteInPlace $f \ + --replace 'background=' "background=$(dirname $f)/" + done + ''; + + meta = with lib; { + description = "QML based X11 display manager"; + homepage = https://github.com/sddm/sddm; + maintainers = with maintainers; [ abbradar ttuegel ]; + platforms = platforms.linux; + }; } diff --git a/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch new file mode 100644 index 00000000000..aac09dfe876 --- /dev/null +++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch @@ -0,0 +1,43 @@ +diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp +index 4b5983c..911c511 100644 +--- a/src/common/ConfigReader.cpp ++++ b/src/common/ConfigReader.cpp +@@ -147,16 +147,13 @@ namespace SDDM { + // * m_path (classic fallback /etc/sddm.conf) + + QStringList files; +- QDateTime latestModificationTime = QFileInfo(m_path).lastModified(); + + if (!m_sysConfigDir.isEmpty()) { + //include the configDir in modification time so we also reload on any files added/removed + QDir dir(m_sysConfigDir); + if (dir.exists()) { +- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_sysConfigDir).lastModified()); + foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) { + files << (file.absoluteFilePath()); +- latestModificationTime = std::max(latestModificationTime, file.lastModified()); + } + } + } +@@ -164,21 +161,14 @@ namespace SDDM { + //include the configDir in modification time so we also reload on any files added/removed + QDir dir(m_configDir); + if (dir.exists()) { +- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_configDir).lastModified()); + foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) { + files << (file.absoluteFilePath()); +- latestModificationTime = std::max(latestModificationTime, file.lastModified()); + } + } + } + + files << m_path; + +- if (latestModificationTime <= m_fileModificationTime) { +- return; +- } +- m_fileModificationTime = latestModificationTime; +- + foreach (const QString &filepath, files) { + loadInternal(filepath); + } diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix index fca84199e51..c75a8976b3f 100644 --- a/pkgs/applications/display-managers/slim/default.nix +++ b/pkgs/applications/display-managers/slim/default.nix @@ -22,6 +22,10 @@ stdenv.mkDerivation rec { # Ensure that sessions appear in sort order, rather than in # directory order. ./sort-sessions.patch + + # Allow to set logfile to a special "/dev/stderr" in order to continue + # logging to stderr and thus to the journal. + ./no-logfile.patch ]; preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib"; diff --git a/pkgs/applications/display-managers/slim/no-logfile.patch b/pkgs/applications/display-managers/slim/no-logfile.patch new file mode 100644 index 00000000000..f2f5f154993 --- /dev/null +++ b/pkgs/applications/display-managers/slim/no-logfile.patch @@ -0,0 +1,80 @@ +diff --git a/log.cpp b/log.cpp +index b44677a..7c89dda 100644 +--- a/log.cpp ++++ b/log.cpp +@@ -1,23 +1,31 @@ + #include "log.h" + #include ++#include + + bool + LogUnit::openLog(const char * filename) + { +- if (logFile.is_open()) { ++ if (isFile && logFile.is_open()) { + cerr << APPNAME + << ": opening a new Log file, while another is already open" + << endl; +- logFile.close(); ++ closeLog(); + } +- logFile.open(filename, ios_base::app); + +- return !(logFile.fail()); ++ if (strcmp(filename, "/dev/stderr") == 0) { ++ isFile = false; ++ return true; ++ } else { ++ logFile.open(filename, ios_base::app); ++ isFile = true; ++ return !(logFile.fail()); ++ } + } + + void + LogUnit::closeLog() + { ++ if (!isFile) return; + if (logFile.is_open()) + logFile.close(); + } +diff --git a/log.h b/log.h +index b7810be..ad548a2 100644 +--- a/log.h ++++ b/log.h +@@ -9,11 +9,14 @@ + #endif + #include "const.h" + #include ++#include + + using namespace std; + + static class LogUnit { + ofstream logFile; ++ bool isFile; ++ inline ostream &getStream() { return isFile ? logFile : cerr; } + public: + bool openLog(const char * filename); + void closeLog(); +@@ -22,17 +25,17 @@ public: + + template + LogUnit & operator<<(const Type & text) { +- logFile << text; logFile.flush(); ++ getStream() << text; getStream().flush(); + return *this; + } + + LogUnit & operator<<(ostream & (*fp)(ostream&)) { +- logFile << fp; logFile.flush(); ++ getStream() << fp; getStream().flush(); + return *this; + } + + LogUnit & operator<<(ios_base & (*fp)(ios_base&)) { +- logFile << fp; logFile.flush(); ++ getStream() << fp; getStream().flush(); + return *this; + } + } logStream; diff --git a/pkgs/applications/editors/aewan/default.nix b/pkgs/applications/editors/aewan/default.nix index a46b52436a3..214b435429a 100644 --- a/pkgs/applications/editors/aewan/default.nix +++ b/pkgs/applications/editors/aewan/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "Ascii-art Editor Without A Name"; - homepage = "http://aewan.sourceforge.net/"; + homepage = http://aewan.sourceforge.net/; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix new file mode 100644 index 00000000000..360d373f070 --- /dev/null +++ b/pkgs/applications/editors/android-studio/common.nix @@ -0,0 +1,120 @@ +{ pname, version, build, sha256Hash, meta }: +{ bash +, buildFHSUserEnv +, coreutils +, fetchurl +, findutils +, file +, git +, glxinfo +, gnugrep +, gnutar +, gzip +, fontconfig +, freetype +, libpulseaudio +, libX11 +, libXext +, libXi +, libXrandr +, libXrender +, libXtst +, makeWrapper +, pciutils +, pkgsi686Linux +, setxkbmap +, stdenv +, unzip +, which +, writeTextFile +, xkeyboard_config +, zlib +, fontsConf +}: + +let + androidStudio = stdenv.mkDerivation { + name = "${pname}"; + + src = fetchurl { + url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip"; + sha256 = sha256Hash; + }; + + buildInputs = [ + makeWrapper + unzip + ]; + installPhase = '' + cp -r . $out + wrapProgram $out/bin/studio.sh \ + --set PATH "${stdenv.lib.makeBinPath [ + + # Checked in studio.sh + coreutils + findutils + gnugrep + which + + # For Android emulator + file + glxinfo + pciutils + setxkbmap + + # Used during setup wizard + gnutar + gzip + + # Runtime stuff + git + + ]}" \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ + + # Crash at startup without these + fontconfig + freetype + libXext + libXi + libXrender + libXtst + + # Gradle wants libstdc++.so.6 + stdenv.cc.cc.lib + # mksdcard wants 32 bit libstdc++.so.6 + pkgsi686Linux.stdenv.cc.cc.lib + + # aapt wants libz.so.1 + zlib + pkgsi686Linux.zlib + # Support multiple monitors + libXrandr + + # For Android emulator + libpulseaudio + libX11 + + ]}" \ + --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \ + --set FONTCONFIG_FILE ${fontsConf} + ''; + }; + + # Android Studio downloads prebuilt binaries as part of the SDK. These tools + # (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the interpreter. An FHS + # environment is used as a work around for that. + fhsEnv = buildFHSUserEnv { + name = "${pname}-fhs-env"; + }; + +in + writeTextFile { + name = "${pname}-${version}"; + destination = "/bin/${pname}"; + executable = true; + text = '' + #!${bash}/bin/bash + ${fhsEnv}/bin/${pname}-fhs-env ${androidStudio}/bin/studio.sh + ''; + } // { inherit meta; } diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix deleted file mode 100644 index 28b6b2b85ad..00000000000 --- a/pkgs/applications/editors/android-studio/default.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ bash -, buildFHSUserEnv -, coreutils -, fetchurl -, findutils -, file -, git -, glxinfo -, gnugrep -, gnutar -, gzip -, fontconfig -, freetype -, libpulseaudio -, libX11 -, libXext -, libXi -, libXrandr -, libXrender -, libXtst -, makeWrapper -, pciutils -, pkgsi686Linux -, setxkbmap -, stdenv -, unzip -, which -, writeTextFile -, xkeyboard_config -, zlib -, fontsConf -}: - -let - - version = "2.2.3.0"; - build = "145.3537739"; - - androidStudio = stdenv.mkDerivation { - name = "android-studio"; - buildInputs = [ - makeWrapper - unzip - ]; - installPhase = '' - cp -r . $out - wrapProgram $out/bin/studio.sh \ - --set PATH "${stdenv.lib.makeBinPath [ - - # Checked in studio.sh - coreutils - findutils - gnugrep - which - - # For Android emulator - file - glxinfo - pciutils - setxkbmap - - # Used during setup wizard - gnutar - gzip - - # Runtime stuff - git - - ]}" \ - --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ - - # Crash at startup without these - fontconfig - freetype - libXext - libXi - libXrender - libXtst - - # Gradle wants libstdc++.so.6 - stdenv.cc.cc.lib - # mksdcard wants 32 bit libstdc++.so.6 - pkgsi686Linux.stdenv.cc.cc.lib - - # aapt wants libz.so.1 - zlib - pkgsi686Linux.zlib - # Support multiple monitors - libXrandr - - # For Android emulator - libpulseaudio - libX11 - - ]}" \ - --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \ - --set FONTCONFIG_FILE ${fontsConf} - ''; - src = fetchurl { - url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip"; - sha256 = "10fmffkvvbnmgjxb4rq7rjwnn16jp5phw6div4n7hh2ad6spf8wq"; - }; - meta = { - description = "The Official IDE for Android"; - homepage = https://developer.android.com/studio/index.html; - license = stdenv.lib.licenses.asl20; - platforms = [ "x86_64-linux" ]; - }; - }; - - # Android Studio downloads prebuilt binaries as part of the SDK. These tools - # (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the interpreter. An FHS - # environment is used as a work around for that. - fhsEnv = buildFHSUserEnv { - name = "android-studio-fhs-env"; - }; - -in writeTextFile { - name = "android-studio-${version}"; - destination = "/bin/android-studio"; - executable = true; - text = '' - #!${bash}/bin/bash - ${fhsEnv}/bin/android-studio-fhs-env ${androidStudio}/bin/studio.sh - ''; -} diff --git a/pkgs/applications/editors/android-studio/packages.nix b/pkgs/applications/editors/android-studio/packages.nix new file mode 100644 index 00000000000..6f8440f7b1f --- /dev/null +++ b/pkgs/applications/editors/android-studio/packages.nix @@ -0,0 +1,40 @@ +{ stdenv, callPackage, fetchurl, makeFontsConf }: +let + mkStudio = opts: callPackage (import ./common.nix opts) { + fontsConf = makeFontsConf { + fontDirectories = []; + }; + }; +in rec { + stable = mkStudio { + pname = "android-studio"; + version = "3.0.0.18"; # "Android Studio 3.0" + build = "171.4408382"; + sha256Hash = "18npm7ckdybj6vc2vndr0wd50da19m9z2j7wld2mdidnl5ggk4br"; + + meta = with stdenv.lib; { + description = "The Official IDE for Android (stable version)"; + longDescription = '' + Android Studio is the official IDE for Android app development, based on + IntelliJ IDEA. + ''; + homepage = https://developer.android.com/studio/index.html; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ primeos ]; + }; + }; + + preview = mkStudio { + pname = "android-studio-preview"; + version = "3.1.0.0"; # "Android Studio 3.1 Canary 1" + build = "171.4415322"; + sha256Hash = "08xgwv6mg2zxys9dqjfz66h60g640ni3snyb89ij0fkmd28rbxgj"; + + meta = stable.meta // { + description = "The Official IDE for Android (preview version)"; + homepage = https://developer.android.com/studio/preview/index.html; + maintainers = with stdenv.lib.maintainers; [ primeos ]; + }; + }; +} diff --git a/pkgs/applications/editors/aseprite/default.nix b/pkgs/applications/editors/aseprite/default.nix index 15230a7a000..39be7f53406 100644 --- a/pkgs/applications/editors/aseprite/default.nix +++ b/pkgs/applications/editors/aseprite/default.nix @@ -1,47 +1,81 @@ -{ stdenv, fetchurl, cmake, pkgconfig -, giflib, libjpeg, zlib, libpng, tinyxml, allegro -, libX11, libXext, libXcursor, libXpm, libXxf86vm, libXxf86dga +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig +, curl, freetype, giflib, libjpeg, libpng, libwebp, pixman, tinyxml, zlib +, libX11, libXext, libXcursor, libXxf86vm +, unfree ? false +, cmark }: -stdenv.mkDerivation rec { - name = "aseprite-0.9.5"; +# Unfree version is not redistributable: +# https://dev.aseprite.org/2016/09/01/new-source-code-license/ +# Consider supporting the developer: https://aseprite.org/#buy - src = fetchurl { - url = "http://aseprite.googlecode.com/files/${name}.tar.xz"; - sha256 = "0m7i6ybj2bym4w9rybacnnaaq2jjn76vlpbp932xcclakl6kdq41"; +stdenv.mkDerivation rec { + name = "aseprite-${version}"; + version = if unfree then "1.2.2" else "1.1.7"; + + src = fetchFromGitHub { + owner = "aseprite"; + repo = "aseprite"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = if unfree + then "1ldi7zikl1g6rq3g9lkypx5wqzza5j0054j1r8bh7lyvb0szicig" + else "0gd49lns2bpzbkwax5jf9x1xmg1j8ij997kcxr2596cwiswnw4di"; }; + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ - cmake pkgconfig - giflib libjpeg zlib libpng tinyxml allegro - libX11 libXext libXcursor libXpm libXxf86vm libXxf86dga + curl freetype giflib libjpeg libpng libwebp pixman tinyxml zlib + libX11 libXext libXcursor libXxf86vm + ] ++ lib.optionals unfree [ cmark ]; + + postPatch = '' + sed -i src/config.h -e "s-\\(#define VERSION\\) .*-\\1 \"$version\"-" + ''; + + cmakeFlags = [ + "-DENABLE_UPDATER=OFF" + "-DUSE_SHARED_CURL=ON" + "-DUSE_SHARED_FREETYPE=ON" + "-DUSE_SHARED_GIFLIB=ON" + "-DUSE_SHARED_JPEGLIB=ON" + "-DUSE_SHARED_LIBPNG=ON" + "-DUSE_SHARED_LIBWEBP=ON" + "-DUSE_SHARED_PIXMAN=ON" + "-DUSE_SHARED_TINYXML=ON" + "-DUSE_SHARED_ZLIB=ON" + "-DWITH_DESKTOP_INTEGRATION=ON" + "-DWITH_WEBP_SUPPORT=ON" + ] ++ lib.optionals unfree [ + "-DUSE_SHARED_CMARK=ON" + # Aseprite needs internal freetype headers. + "-DUSE_SHARED_FREETYPE=OFF" + # Disable libarchive programs. + "-DENABLE_CAT=OFF" + "-DENABLE_CPIO=OFF" + "-DENABLE_TAR=OFF" ]; - patchPhase = '' - sed -i '/^find_unittests/d' src/CMakeLists.txt - sed -i '/include_directories(.*third_party\/gtest.*)/d' src/CMakeLists.txt - sed -i '/add_subdirectory(gtest)/d' third_party/CMakeLists.txt - sed -i 's/png_\(sizeof\)/\1/g' src/file/png_format.cpp + postInstall = '' + # Install desktop icons. + src="$out/share/aseprite/data/icons" + for size in 16 32 48 64; do + dst="$out"/share/icons/hicolor/"$size"x"$size" + install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png + install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png + done + # Delete unneeded artifacts of bundled libraries. + rm -rf "$out"/include "$out"/lib ''; - cmakeFlags = '' - -DUSE_SHARED_GIFLIB=ON - -DUSE_SHARED_JPEGLIB=ON - -DUSE_SHARED_ZLIB=ON - -DUSE_SHARED_LIBPNG=ON - -DUSE_SHARED_LIBLOADPNG=ON - -DUSE_SHARED_TINYXML=ON - -DUSE_SHARED_GTEST=ON - -DUSE_SHARED_ALLEGRO4=ON - -DENABLE_UPDATER=OFF - ''; + enableParallelBuilding = true; - NIX_LDFLAGS = "-lX11"; - - meta = { + meta = with lib; { + homepage = https://www.aseprite.org/; description = "Animated sprite editor & pixel art tool"; - homepage = "http://www.aseprite.org/"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = if unfree then licenses.unfree else licenses.gpl2; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/editors/atom/beta.nix b/pkgs/applications/editors/atom/beta.nix new file mode 100644 index 00000000000..391d098625c --- /dev/null +++ b/pkgs/applications/editors/atom/beta.nix @@ -0,0 +1,52 @@ +{ stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}: + +stdenv.mkDerivation rec { + name = "atom-beta-${version}"; + version = "1.22.0-beta1"; + + src = fetchurl { + url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; + sha256 = "0qggj0j0cnkzqwgvzw2fb1z10rvvx9jh0ymhdy1aca18hms44p3d"; + name = "${name}.deb"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' + mkdir -p $out/usr/ + ar p $src data.tar.xz | tar -C $out -xJ ./usr + substituteInPlace $out/usr/share/applications/atom-beta.desktop \ + --replace /usr/share/atom-beta $out/bin + mv $out/usr/* $out/ + rm -r $out/share/lintian + rm -r $out/usr/ + sed -i "s/'atom-beta'/'.atom-beta-wrapped'/" $out/bin/atom-beta + wrapProgram $out/bin/atom-beta \ + --prefix "PATH" : "${gvfs}/bin" + + fixupPhase + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${atomEnv.libPath}:$out/share/atom-beta" \ + $out/share/atom-beta/atom + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${atomEnv.libPath}" \ + $out/share/atom-beta/resources/app/apm/bin/node + + #rm -f $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git + #ln -s ${pkgs.git}/bin/git $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git + + find $out/share/atom-beta -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom-beta" {} \; + + paxmark m $out/share/atom-beta/atom + paxmark m $out/share/atom-beta/resources/app/apm/bin/node + ''; + + meta = with stdenv.lib; { + description = "A hackable text editor for the 21st Century"; + homepage = https://atom.io/; + license = licenses.mit; + maintainers = [ maintainers.offline maintainers.nequissimus ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix index e9546c16d62..6ab881f2275 100644 --- a/pkgs/applications/editors/atom/default.nix +++ b/pkgs/applications/editors/atom/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchurl, lib, makeWrapper, gvfs, atomEnv}: +{ stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}: stdenv.mkDerivation rec { name = "atom-${version}"; - version = "1.16.0"; + version = "1.21.2"; src = fetchurl { url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; - sha256 = "10qzhfz34i7x7z5fv5a73a6aiwxvanyn0v825a6yz9qfc2mg4shd"; + sha256 = "0snhhp8rjmk750snyzkqzwvi7f915pbc6qpa3vf0f57syf47m7vl"; name = "${name}.deb"; }; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildCommand = '' mkdir -p $out/usr/ - ar p $src data.tar.gz | tar -C $out -xz ./usr + ar p $src data.tar.xz | tar -C $out -xJ ./usr substituteInPlace $out/usr/share/applications/atom.desktop \ --replace /usr/share/atom $out/bin mv $out/usr/* $out/ @@ -32,10 +32,13 @@ stdenv.mkDerivation rec { --set-rpath "${atomEnv.libPath}" \ $out/share/atom/resources/app/apm/bin/node - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - $out/share/atom/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux + rm -f $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git + ln -s ${pkgs.git}/bin/git $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git find $out/share/atom -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom" {} \; + + paxmark m $out/share/atom/atom + paxmark m $out/share/atom/resources/app/apm/bin/node ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix index 60bece1fafc..6a5bc3e7b0f 100644 --- a/pkgs/applications/editors/eclipse/build-eclipse.nix +++ b/pkgs/applications/editors/eclipse/build-eclipse.nix @@ -1,5 +1,5 @@ { stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender -, zlib, jdk, glib, gtk2, libXtst, gsettings_desktop_schemas, webkitgtk2 +, zlib, jdk, glib, gtk2, libXtst, gsettings_desktop_schemas, webkitgtk24x-gtk2 , makeWrapper, ... }: { name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }: @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ fontconfig freetype glib gsettings_desktop_schemas gtk2 jdk libX11 libXrender libXtst makeWrapper zlib - ] ++ stdenv.lib.optional (webkitgtk2 != null) webkitgtk2; + ] ++ stdenv.lib.optional (webkitgtk24x-gtk2 != null) webkitgtk24x-gtk2; buildCommand = '' # Unpack tarball. @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ --prefix PATH : ${jdk}/bin \ - --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk2 libXtst ] ++ stdenv.lib.optional (webkitgtk2 != null) webkitgtk2)} \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk2 libXtst ] ++ stdenv.lib.optional (webkitgtk24x-gtk2 != null) webkitgtk24x-gtk2)} \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index 8ef855e48c8..5ef29081cf0 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -1,38 +1,41 @@ { stdenv, lib, fetchurl, makeDesktopItem, makeWrapper , freetype, fontconfig, libX11, libXext, libXrender, zlib , glib, gtk2, libXtst, jdk, gsettings_desktop_schemas -, webkitgtk2 ? null # for internal web browser +, webkitgtk24x-gtk2 ? null # for internal web browser , buildEnv, writeText, runCommand , callPackage }: assert stdenv ? glibc; +# http://download.eclipse.org/eclipse/downloads/ is the main place to +# find the downloads needed for new versions + rec { buildEclipse = import ./build-eclipse.nix { inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib - jdk glib gtk2 libXtst gsettings_desktop_schemas webkitgtk2 + jdk glib gtk2 libXtst gsettings_desktop_schemas webkitgtk24x-gtk2 makeWrapper; }; ### Eclipse CPP - eclipse-cpp = eclipse-cpp-46; # always point to latest + eclipse-cpp = eclipse-cpp-47; # always point to latest - eclipse-cpp-46 = buildEclipse { - name = "eclipse-cpp-4.6.0"; - description = "Eclipse IDE for C/C++ Developers, Neon release"; + eclipse-cpp-47 = buildEclipse { + name = "eclipse-cpp-4.7.0"; + description = "Eclipse IDE for C/C++ Developers, Oxygen release"; src = if stdenv.system == "x86_64-linux" then fetchurl { - url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/neon/R/eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz; - sha256 = "09fqsgvbjfdqvn7z03crkii34z4bsb34y272q68ib8741bxk0i6m"; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk-x86_64.tar.gz; + sha512 = "813c791e739d7d0e2ab242a5bacadca135bbeee20ef97aa830353cd90f63fa6e9c89cfcc6aadf635c742befe035bd6e3f15103013f63c419f6144e86ebde3ed1"; } else if stdenv.system == "i686-linux" then fetchurl { - url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/neon/R/eclipse-cpp-neon-R-linux-gtk.tar.gz; - sha256 = "0a12qmqq22v7sbmwn1hjv1zcrkmp64bf0ajmdjljhs9ac79mxn5h"; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk.tar.gz; + sha512 = "2b50f4a00306a89cda1aaaa606e62285cacbf93464a9dd3f3319dca3e2c578b802e685de6f78e5e617d269e21271188effe73d41f491a6de946e28795d82db8a"; } else throw "Unsupported system: ${stdenv.system}"; }; @@ -56,21 +59,21 @@ rec { ### Eclipse Modeling - eclipse-modeling = eclipse-modeling-46; # always point to latest + eclipse-modeling = eclipse-modeling-47; # always point to latest - eclipse-modeling-46 = buildEclipse { - name = "eclipse-modeling-4.6"; + eclipse-modeling-47 = buildEclipse { + name = "eclipse-modeling-4.7"; description = "Eclipse Modeling Tools"; src = if stdenv.system == "x86_64-linux" then fetchurl { - url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/neon/1a/eclipse-modeling-neon-1a-linux-gtk-x86_64.tar.gz; - sha1 = "3695fd049c4cca2d235f424557e19877795a8183"; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk-x86_64.tar.gz; + sha512 = "3b9a7ad4b5d6b77fbdd64e8d323e0adb6c2904763ad042b374b4d87cef8607408cb407e395870fc755d58c0c800e20818adcf456ebe193d76cede16c5fe12271"; } else fetchurl { - url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/neon/1a/eclipse-modeling-neon-1a-linux-gtk.tar.gz; - sha1 = "fa0694a0b44e8e9c2301417f84dba45cf9ac6e61"; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk.tar.gz; + sha512 = "b8597c1dec117e69c72a5e1a53e09b1f81a7c9de86ed7e71a9d007664603202df301745f186ded02b2e76410345863e80a2ba40867d6848e5375601289999206"; }; }; @@ -93,7 +96,7 @@ rec { ### Eclipse Platform - eclipse-platform = eclipse-platform-46; # always point to latest + eclipse-platform = eclipse-platform-47; # always point to latest eclipse-platform-46 = buildEclipse { name = "eclipse-platform-4.6.2"; @@ -110,6 +113,21 @@ rec { }; }; + eclipse-platform-47 = buildEclipse { + name = "eclipse-platform-4.7.1a"; + description = "Eclipse Platform Oxygen"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-platform-4.7.1a-linux-gtk-x86_64.tar.gz; + sha256 = "13gyrnhyhdpsrbi5nl0fhpwrqz3gdyqq3r0m1f2z3y6yr75sgw33"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-platform-4.7.1a-linux-gtk.tar.gz; + sha256 = "013dfk23wa4jy177ywrkkr16wdjf6jxzjcz6mkl4ygki47yj9c5s"; + }; + }; + }; + ### Eclipse Scala SDK eclipse-scala-sdk = eclipse-scala-sdk-441; # always point to latest @@ -132,7 +150,7 @@ rec { ### Eclipse SDK - eclipse-sdk = eclipse-sdk-46; # always point to latest + eclipse-sdk = eclipse-sdk-47; # always point to latest eclipse-sdk-46 = buildEclipse { name = "eclipse-sdk-4.6.2"; @@ -149,6 +167,21 @@ rec { }; }; + eclipse-sdk-47 = buildEclipse { + name = "eclipse-sdk-4.7.1a"; + description = "Eclipse Oxygen Classic"; + sources = { + "x86_64-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-SDK-4.7.1a-linux-gtk-x86_64.tar.gz; + sha256 = "05xpdbig170rw7k5dx33dlyz187wv62mma8s5wxrqi7f4117sx4y"; + }; + "i686-linux" = fetchurl { + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/eclipse-SDK-4.7.1a-linux-gtk.tar.gz; + sha256 = "09c9m88k1cm9bhd900p5yf2q9pijrymgjcbhmagz0fcwhldrv0ys"; + }; + }; + }; + eclipse-sdk-37 = buildEclipse { name = "eclipse-sdk-3.7"; description = "Eclipse Classic"; diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index fddd9e4920b..0aeaee2155a 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -106,16 +106,16 @@ rec { anyedittools = buildEclipsePlugin rec { name = "anyedit-${version}"; - version = "2.6.0.201511291145"; + version = "2.7.1.201709201439"; srcFeature = fetchurl { url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar"; - sha256 = "1vllci75qcd28b6hn2jz29l6cabxx9ql5i6l9cwq9rxp49dhc96b"; + sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh"; }; srcPlugin = fetchurl { - url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.6.0/de.loskutov.anyedit.AnyEditTools_${version}.jar"; - sha256 = "0mgq0ylfa7srjf7azyx0kbahlsjf0sdpazqphzx4f0bfn1l328s4"; + url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar"; + sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q"; }; meta = with stdenv.lib; { @@ -127,6 +127,29 @@ rec { }; }; + autodetect-encoding = buildEclipsePlugin rec { + name = "autodetect-encoding-${version}"; + version = "1.8.4.201708052053"; + + srcFeature = fetchurl { + url = "https://cypher256.github.io/eclipse-encoding-plugin/features/eclipse.encoding.plugin.feature_${version}.jar"; + sha256 = "1gbvib5dd75pp5mr17ckj2y66gnxjvpc067im5nsl9fyljdw867c"; + }; + + srcPlugin = fetchurl { + url = "https://cypher256.github.io/eclipse-encoding-plugin/plugins/mergedoc.encoding_${version}.jar"; + sha256 = "0728zsbfs1mc4qvx2p92hkxpnknckqk0xvqlmzivsnr62b5qd5im"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/cypher256/eclipse-encoding-plugin; + description = "Show file encoding and line ending for the active editor in the eclipse status bar"; + license = licenses.epl10; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + bytecode-outline = buildEclipsePlugin rec { name = "bytecode-outline-${version}"; version = "2.4.3"; @@ -171,12 +194,12 @@ rec { checkstyle = buildEclipseUpdateSite rec { name = "checkstyle-${version}"; - version = "7.3.0.201612142232"; + version = "8.0.0.201707161819"; src = fetchzip { stripRoot = false; - url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/7.3.0/net.sf.eclipsecs-updatesite_${version}.zip"; - sha256 = "1mbiszwnakfmjx5mnh9h2rrp9jzizkmz89p8z4spq2m9kwy1lkqj"; + url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.0.0/net.sf.eclipsecs-updatesite_${version}.zip"; + sha256 = "1p07xcf71qc99sh73vqm9xxxgi819m58frv0cpvsn06y6ljr0aj2"; }; meta = with stdenv.lib; { @@ -341,12 +364,12 @@ rec { jdt = buildEclipseUpdateSite rec { name = "jdt-${version}"; - version = "4.6.2"; + version = "4.7.1a"; src = fetchzip { stripRoot = false; - url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.6.2-201611241400/org.eclipse.jdt-4.6.2.zip"; - sha256 = "1nnlrl05lh1hcsh14dlisnx0vwmj21agm4wia98rv0gl2gkp19n1"; + url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.1a-201710090410/org.eclipse.jdt-4.7.1a.zip; + sha256 = "1hpvpj8ghfk8aqbzfrpcxw3wxrczq6zd3bpx4sxjrsi926jsjaf4"; }; meta = with stdenv.lib; { @@ -371,7 +394,7 @@ rec { sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp"; extraPostFetch = '' - mv "$out/${repo}-${rev}/releases/local-repo"/* "$out/" + mv "$out/${repo}-${rev}/releases/local-repo/"* "$out/" ''; }; @@ -393,7 +416,7 @@ rec { }; meta = with stdenv.lib; { - homepage = "http://scala-ide.org/"; + homepage = http://scala-ide.org/; description = "The Scala IDE for Eclipse"; license = licenses.bsd3; platforms = platforms.all; @@ -401,6 +424,29 @@ rec { }; }; + spotbugs = buildEclipsePlugin rec { + name = "spotbugs-${version}"; + version = "3.1.0.r201710241414-11c9895"; + + srcFeature = fetchurl { + url = "https://spotbugs.github.io/eclipse/features/com.github.spotbugs.plugin.eclipse_${version}.jar"; + sha256 = "084dj2bid5issh28j32hi5w9vx5xs829h7d5lbz5hqj1fyn9h6bs"; + }; + + srcPlugin = fetchurl { + url = "https://spotbugs.github.io/eclipse/plugins/com.github.spotbugs.plugin.eclipse_${version}.jar"; + sha256 = "1mqpl3gx06f54w13jm01qd8fbniab3x989mi3lysx078vrp23jas"; + }; + + meta = with stdenv.lib; { + homepage = https://spotbugs.github.io/; + description = "Plugin that uses static analysis to look for bugs in Java code"; + license = licenses.lgpl21; + platforms = platforms.all; + maintainers = [ maintainers.rycee ]; + }; + }; + testng = buildEclipsePlugin rec { name = "testng-${version}"; version = "6.9.13.201609291640"; @@ -424,6 +470,28 @@ rec { }; }; + vrapper = buildEclipseUpdateSite rec { + name = "vrapper-${version}"; + version = "0.72.0"; + owner = "vrapper"; + repo = "vrapper"; + date = "20170311"; + + src = fetchzip { + stripRoot = false; + url = "https://github.com/${owner}/${repo}/releases/download/${version}/vrapper_${version}_${date}.zip"; + sha256 = "0nyirf6km97q211cxfy01kidxac20m8ba3kk9xj73ykrhsk3cxjp"; + }; + + meta = with stdenv.lib; { + homepage = "https://github.com/vrapper/vrapper"; + description = "A wrapper to provide a Vim-like input scheme for moving around and editing text"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.stumoss ]; + }; + }; + yedit = buildEclipsePlugin rec { name = "yedit-${version}"; version = "1.0.20.201509041456"; diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix index ec56667a4ba..9d5848f0263 100644 --- a/pkgs/applications/editors/ed/default.nix +++ b/pkgs/applications/editors/ed/default.nix @@ -1,24 +1,20 @@ -{ fetchurl, stdenv }: +{ stdenv, fetchurl, lzip +, buildPlatform, hostPlatform +}: stdenv.mkDerivation rec { name = "ed-${version}"; - version = "1.14.1"; + version = "1.14.2"; src = fetchurl { - # gnu only provides *.lz tarball, which is unfriendly for stdenv bootstrapping - #url = "mirror://gnu/ed/${name}.tar.gz"; - # When updating, please make sure the sources pulled match those upstream by - # Unpacking both tarballs and running `find . -type f -exec sha256sum \{\} \; | sha256sum` - # in the resulting directory - urls = let file_sha512 = "84396fe4e4f0bf0b591037277ff8679a08b2883207628aaa387644ad83ca5fbdaa74a581f33310e28222d2fea32a0b8ba37e579597cc7d6145df6eb956ea75db"; - in [ - ("http://pkgs.fedoraproject.org/repo/extras/ed" - + "/${name}.tar.bz2/sha512/${file_sha512}/${name}.tar.bz2") - "http://fossies.org/linux/privat/${name}.tar.bz2" - ]; - sha256 = "1pk6qa4sr7qc6vgm34hjx44hsh8x2bwaxhdi78jhsacnn4zwi7bw"; + url = "mirror://gnu/ed/${name}.tar.lz"; + sha256 = "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm"; }; + unpackCmd = "tar --lzip -xf"; + + nativeBuildInputs = [ lzip ]; + /* FIXME: Tests currently fail on Darwin: building test scripts for ed-1.5... @@ -28,11 +24,14 @@ stdenv.mkDerivation rec { make: *** [check] Error 127 */ - doCheck = !stdenv.isDarwin; + doCheck = !(hostPlatform.isDarwin || hostPlatform != buildPlatform); - crossAttrs = { - compileFlags = [ "CC=${stdenv.cross.config}-gcc" ]; - }; + installFlags = [ "DESTDIR=$(out)" ]; + + configureFlags = [ + "--exec-prefix=${stdenv.cc.prefix}" + "CC=${stdenv.cc.prefix}cc" + ]; meta = { description = "An implementation of the standard Unix editor"; diff --git a/pkgs/applications/editors/emacs-modes/bbdb/3.nix b/pkgs/applications/editors/emacs-modes/bbdb/3.nix index 556bf83fab7..44116fbac0c 100644 --- a/pkgs/applications/editors/emacs-modes/bbdb/3.nix +++ b/pkgs/applications/editors/emacs-modes/bbdb/3.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://savannah.nongnu.org/projects/bbdb/"; + homepage = http://savannah.nongnu.org/projects/bbdb/; description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3"; license = "GPL"; }; diff --git a/pkgs/applications/editors/emacs-modes/bbdb/default.nix b/pkgs/applications/editors/emacs-modes/bbdb/default.nix index ed96e689283..0ab11b5bf20 100644 --- a/pkgs/applications/editors/emacs-modes/bbdb/default.nix +++ b/pkgs/applications/editors/emacs-modes/bbdb/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://bbdb.sourceforge.net/"; + homepage = http://bbdb.sourceforge.net/; description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs"; license = "GPL"; }; diff --git a/pkgs/applications/editors/emacs-modes/cask/default.nix b/pkgs/applications/editors/emacs-modes/cask/default.nix index 56ba5ba9710..673b590f56e 100644 --- a/pkgs/applications/editors/emacs-modes/cask/default.nix +++ b/pkgs/applications/editors/emacs-modes/cask/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { building, packaging and more. Cask can also be used to manage dependencies for your local Emacs configuration. ''; - homepage = "https://github.com/cask/cask"; + homepage = https://github.com/cask/cask; license = licenses.gpl3Plus; platforms = platforms.all; maintainers = [ maintainers.jgeerds ]; diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix index 34472bf8637..f0c4ca87aa2 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix @@ -28,10 +28,10 @@ ada-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, wisi }: elpaBuild { pname = "ada-mode"; - version = "5.2.1"; + version = "5.3.1"; src = fetchurl { - url = "https://elpa.gnu.org/packages/ada-mode-5.2.1.tar"; - sha256 = "099c8vm6jvwypff981vbs77y6hqq31fn6s8gwqkmncq04mk3vw34"; + url = "https://elpa.gnu.org/packages/ada-mode-5.3.1.tar"; + sha256 = "0srna7w3y2nq0y80a01bcx8mg6gvind7nzvsbk9bd7rrr05njrd9"; }; packageRequires = [ cl-lib emacs wisi ]; meta = { @@ -54,10 +54,10 @@ }) {}; adaptive-wrap = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "adaptive-wrap"; - version = "0.5"; + version = "0.5.1"; src = fetchurl { - url = "https://elpa.gnu.org/packages/adaptive-wrap-0.5.el"; - sha256 = "0frgmp8vrrml4iykm60j4d6cl9rbcivy9yh24q6kd10bcyx59ypy"; + url = "https://elpa.gnu.org/packages/adaptive-wrap-0.5.1.el"; + sha256 = "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"; }; packageRequires = []; meta = { @@ -95,10 +95,10 @@ ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "ahungry-theme"; - version = "1.3.0"; + version = "1.8.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/ahungry-theme-1.3.0.tar"; - sha256 = "1p2zaq0s4bbl5cx6wyab24wamw7m0mysb0v47dqjmnvfc25z84rq"; + url = "https://elpa.gnu.org/packages/ahungry-theme-1.8.0.tar"; + sha256 = "14dhnrlbjzrxk5ligf0z2im5bgnxpjqqzqcrmqg5355xrgpbpb7v"; }; packageRequires = [ emacs ]; meta = { @@ -149,10 +149,10 @@ ascii-art-to-unicode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "ascii-art-to-unicode"; - version = "1.9"; + version = "1.11"; src = fetchurl { - url = "https://elpa.gnu.org/packages/ascii-art-to-unicode-1.9.el"; - sha256 = "0lfgfkx81s4dd318xcxsl7hdgpi0dc1fv3d00m3xg8smyxcf3adv"; + url = "https://elpa.gnu.org/packages/ascii-art-to-unicode-1.11.el"; + sha256 = "1z1vjpskvhynja41cv5z6xrz3rmpdzz51avv2gzrpxxa4k6iaz8s"; }; packageRequires = []; meta = { @@ -162,10 +162,10 @@ }) {}; async = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "async"; - version = "1.9"; + version = "1.9.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/async-1.9.tar"; - sha256 = "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm"; + url = "https://elpa.gnu.org/packages/async-1.9.2.tar"; + sha256 = "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw"; }; packageRequires = []; meta = { @@ -175,10 +175,10 @@ }) {}; auctex = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "auctex"; - version = "11.90.1"; + version = "11.91.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/auctex-11.90.1.tar"; - sha256 = "0bn5pg6v7zgqxs080bzrsx6789nzdx4622m3020ymzl66017nf0r"; + url = "https://elpa.gnu.org/packages/auctex-11.91.0.tar"; + sha256 = "1yh182mxgngjmwpkyv2n9km3vyq95bqfq8mnly3dbv78nwk7f2l3"; }; packageRequires = []; meta = { @@ -199,6 +199,19 @@ license = lib.licenses.free; }; }) {}; + auto-correct = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + pname = "auto-correct"; + version = "1.1.3"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/auto-correct-1.1.3.el"; + sha256 = "09r58p8na1ai2v9zllb92lvsjlq2jfzwvj0ipck1py0i4xfsm7aq"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/auto-correct.html"; + license = lib.licenses.free; + }; + }) {}; auto-overlays = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "auto-overlays"; version = "0.10.9"; @@ -228,10 +241,10 @@ }) {}; beacon = callPackage ({ elpaBuild, fetchurl, lib, seq }: elpaBuild { pname = "beacon"; - version = "1.3.2"; + version = "1.3.3"; src = fetchurl { - url = "https://elpa.gnu.org/packages/beacon-1.3.2.el"; - sha256 = "0ldja8xrrninm588f27bhxvp0b12cngazyz688lkxvwx28cpqb7n"; + url = "https://elpa.gnu.org/packages/beacon-1.3.3.el"; + sha256 = "10r4fpf8pcf1qn5ncpm5g7skzba749mrc1ggykq92jlha3q98s02"; }; packageRequires = [ seq ]; meta = { @@ -266,6 +279,19 @@ license = lib.licenses.free; }; }) {}; + captain = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + pname = "captain"; + version = "1.0.3"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/captain-1.0.3.el"; + sha256 = "02b4s4pfnwfwc3xgh4g96wrqll37m35dc2x09pjwkdjxglki7045"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/captain.html"; + license = lib.licenses.free; + }; + }) {}; chess = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "chess"; @@ -319,14 +345,15 @@ license = lib.licenses.free; }; }) {}; - cobol-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + cobol-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: + elpaBuild { pname = "cobol-mode"; version = "1.0.0"; src = fetchurl { url = "https://elpa.gnu.org/packages/cobol-mode-1.0.0.el"; sha256 = "1zmcfpl7v787yacc7gxm8mkp53fmrznp5mnad628phf3vj4kwnxi"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://elpa.gnu.org/packages/cobol-mode.html"; license = lib.licenses.free; @@ -360,10 +387,10 @@ }) {}; company = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "company"; - version = "0.9.3"; + version = "0.9.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/company-0.9.3.tar"; - sha256 = "1b38najmah4s2smxslik6wbdvb0x77rm6fv45pcq5x5aaiplh5ap"; + url = "https://elpa.gnu.org/packages/company-0.9.4.tar"; + sha256 = "1wm2nzjfn9cmjb6f5yvawrss7pg1r0swwwqqx602wg8hjrsiabay"; }; packageRequires = [ emacs ]; meta = { @@ -371,6 +398,20 @@ license = lib.licenses.free; }; }) {}; + company-ebdb = callPackage ({ company, ebdb, elpaBuild, fetchurl, lib }: + elpaBuild { + pname = "company-ebdb"; + version = "1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/company-ebdb-1.el"; + sha256 = "1awriwvjpf9k2r6hzawai5kxz28j40zk9fvpb946kd5yj0hxr9nc"; + }; + packageRequires = [ company ebdb ]; + meta = { + homepage = "https://elpa.gnu.org/packages/company-ebdb.html"; + license = lib.licenses.free; + }; + }) {}; company-math = callPackage ({ company, elpaBuild, fetchurl, lib, math-symbol-lists }: elpaBuild { pname = "company-math"; @@ -413,6 +454,20 @@ license = lib.licenses.free; }; }) {}; + counsel-ebdb = callPackage ({ ebdb, elpaBuild, fetchurl, ivy, lib }: + elpaBuild { + pname = "counsel-ebdb"; + version = "1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/counsel-ebdb-1.el"; + sha256 = "0p919gq871rxlrn6lpjbwws7h6i2gc9vgcxzj8bzgz8xk5hq9mis"; + }; + packageRequires = [ ebdb ivy ]; + meta = { + homepage = "https://elpa.gnu.org/packages/counsel-ebdb.html"; + license = lib.licenses.free; + }; + }) {}; crisp = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "crisp"; version = "1.3.4"; @@ -523,10 +578,10 @@ dict-tree = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA, trie }: elpaBuild { pname = "dict-tree"; - version = "0.12.8"; + version = "0.14"; src = fetchurl { - url = "https://elpa.gnu.org/packages/dict-tree-0.12.8.el"; - sha256 = "08jaifqaq9cfz1z4fr4ib9l6lbx4x60q7d6gajx1cdhh18x6nys5"; + url = "https://elpa.gnu.org/packages/dict-tree-0.14.el"; + sha256 = "1k00k3510bgq7rijvrxbx4b7qlq2abq1dyyn51zgm8q0qk68p5jq"; }; packageRequires = [ heap tNFA trie ]; meta = { @@ -561,6 +616,20 @@ license = lib.licenses.free; }; }) {}; + dired-du = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "dired-du"; + version = "0.5"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/dired-du-0.5.tar"; + sha256 = "09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/dired-du.html"; + license = lib.licenses.free; + }; + }) {}; dismal = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "dismal"; @@ -628,12 +697,54 @@ license = lib.licenses.free; }; }) {}; + ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }: + elpaBuild { + pname = "ebdb"; + version = "0.4.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/ebdb-0.4.1.tar"; + sha256 = "0gv1q1xkhjab0l77c92znn6x0dfdbnj6hc48axmrx6a7zwbm3g2r"; + }; + packageRequires = [ cl-lib emacs seq ]; + meta = { + homepage = "https://elpa.gnu.org/packages/ebdb.html"; + license = lib.licenses.free; + }; + }) {}; + ebdb-gnorb = callPackage ({ ebdb, elpaBuild, fetchurl, gnorb, lib }: + elpaBuild { + pname = "ebdb-gnorb"; + version = "1.0.2"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/ebdb-gnorb-1.0.2.el"; + sha256 = "0bma7mqilp3lfgv0z2mk6nnqzh1nn1prkz2aiwrs4hxwydmda13i"; + }; + packageRequires = [ ebdb gnorb ]; + meta = { + homepage = "https://elpa.gnu.org/packages/ebdb-gnorb.html"; + license = lib.licenses.free; + }; + }) {}; + ebdb-i18n-chn = callPackage ({ ebdb, elpaBuild, fetchurl, lib, pyim }: + elpaBuild { + pname = "ebdb-i18n-chn"; + version = "1.2"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.2.el"; + sha256 = "1qgrlk625mhfd6n1mc0kqfzbisnb61kx3vrrl3bzlz4viq3kcc10"; + }; + packageRequires = [ ebdb pyim ]; + meta = { + homepage = "https://elpa.gnu.org/packages/ebdb-i18n-chn.html"; + license = lib.licenses.free; + }; + }) {}; ediprolog = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "ediprolog"; - version = "1.1"; + version = "1.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/ediprolog-1.1.el"; - sha256 = "19qaciwhzr7k624z455fi8i0v5kl10587ha2mfx1bdsym7y376yd"; + url = "https://elpa.gnu.org/packages/ediprolog-1.2.el"; + sha256 = "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"; }; packageRequires = []; meta = { @@ -644,10 +755,10 @@ el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }: elpaBuild { pname = "el-search"; - version = "1.3.1"; + version = "1.3.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/el-search-1.3.1.tar"; - sha256 = "01f5pyalw60dr36w007mvvxry548zrhixzmba1sad19531bry7fc"; + url = "https://elpa.gnu.org/packages/el-search-1.3.2.tar"; + sha256 = "0lf0hk2pvy9yrb02sa3bg0hipshbgl9m4hx7db46jvmz5bf15nfq"; }; packageRequires = [ emacs stream ]; meta = { @@ -737,10 +848,10 @@ }) {}; exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild { pname = "exwm"; - version = "0.13"; + version = "0.15"; src = fetchurl { - url = "https://elpa.gnu.org/packages/exwm-0.13.tar"; - sha256 = "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"; + url = "https://elpa.gnu.org/packages/exwm-0.15.tar"; + sha256 = "1y7nqry9y0a99bsdqkk9f554vczfw4sz6raadw3138835qy697jg"; }; packageRequires = [ xelb ]; meta = { @@ -804,6 +915,20 @@ license = lib.licenses.free; }; }) {}; + gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "gited"; + version = "0.3.3"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/gited-0.3.3.tar"; + sha256 = "0h3ps26sy4wp1s9vpsj066fpqjqacjlprz3kb09macgsg88k2c1p"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/gited.html"; + license = lib.licenses.free; + }; + }) {}; gnome-c-style = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "gnome-c-style"; version = "0.1"; @@ -820,10 +945,10 @@ gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "gnorb"; - version = "1.2.3"; + version = "1.3.1"; src = fetchurl { - url = "https://elpa.gnu.org/packages/gnorb-1.2.3.tar"; - sha256 = "1bqm08i2aam4v4gfzyxfmic0rg0ka7cns38khwj42vhwgv045xc7"; + url = "https://elpa.gnu.org/packages/gnorb-1.3.1.tar"; + sha256 = "1g6xldkc6l6zlzd1slqizbbd5b9k4pbr66nrf5svidgiy7mlifw5"; }; packageRequires = [ cl-lib ]; meta = { @@ -847,10 +972,10 @@ }) {}; heap = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "heap"; - version = "0.3"; + version = "0.5"; src = fetchurl { - url = "https://elpa.gnu.org/packages/heap-0.3.el"; - sha256 = "1347s06nv88zyhmbimvn13f13d1r147kn6kric1ki6n382zbw6k6"; + url = "https://elpa.gnu.org/packages/heap-0.5.el"; + sha256 = "13qv0w3fi87c85jcy7lv359r6rpsgnp5zzs2f2zq4dl3540wzrxg"; }; packageRequires = []; meta = { @@ -858,6 +983,20 @@ license = lib.licenses.free; }; }) {}; + helm-ebdb = callPackage ({ ebdb, elpaBuild, fetchurl, helm, lib }: + elpaBuild { + pname = "helm-ebdb"; + version = "1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/helm-ebdb-1.el"; + sha256 = "17gpna0hywxnhfwc9zsm2r35mskyfi416qqmmdba26r4zmpb9r63"; + }; + packageRequires = [ ebdb helm ]; + meta = { + homepage = "https://elpa.gnu.org/packages/helm-ebdb.html"; + license = lib.licenses.free; + }; + }) {}; highlight-escape-sequences = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "highlight-escape-sequences"; @@ -872,6 +1011,19 @@ license = lib.licenses.free; }; }) {}; + hook-helpers = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { + pname = "hook-helpers"; + version = "1.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/hook-helpers-1.1.tar"; + sha256 = "0xvabl0lfc0ijr98clsyh0bqk2fdi1ncl0knn58j2p30gn9958i5"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/hook-helpers.html"; + license = lib.licenses.free; + }; + }) {}; html5-schema = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "html5-schema"; version = "0.1"; @@ -888,10 +1040,10 @@ hydra = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "hydra"; - version = "0.13.5"; + version = "0.14.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/hydra-0.13.5.tar"; - sha256 = "0vq1pjyq6ddbikbh0vzdigbs0zlldgwad0192s7v9npg8qlwi668"; + url = "https://elpa.gnu.org/packages/hydra-0.14.0.tar"; + sha256 = "1r2vl2cpzqzayfzc0bijigxc7c0mkgcv96g4p65gnw99jk8d78kb"; }; packageRequires = [ cl-lib ]; meta = { @@ -981,10 +1133,10 @@ js2-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "js2-mode"; - version = "20170116"; + version = "20170721"; src = fetchurl { - url = "https://elpa.gnu.org/packages/js2-mode-20170116.tar"; - sha256 = "1z4k7710yz1fbm2w8m17q81yyp8sxllld0zmgfnc336iqrc07hmk"; + url = "https://elpa.gnu.org/packages/js2-mode-20170721.tar"; + sha256 = "02w2hgk8qbmwkksqf1dmslpr3xn9zjp3srl3qh8730w8r8s8czni"; }; packageRequires = [ cl-lib emacs ]; meta = { @@ -1018,6 +1170,19 @@ license = lib.licenses.free; }; }) {}; + kmb = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { + pname = "kmb"; + version = "0.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/kmb-0.1.el"; + sha256 = "1wjfk28illfd5bkka3rlhhq59r0pad9zik1njlxym0ha8kbhzsj8"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/kmb.html"; + license = lib.licenses.free; + }; + }) {}; landmark = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "landmark"; version = "1.0"; @@ -1087,10 +1252,10 @@ }) {}; load-relative = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "load-relative"; - version = "1.2"; + version = "1.3"; src = fetchurl { - url = "https://elpa.gnu.org/packages/load-relative-1.2.el"; - sha256 = "0vmfal05hznb10k2y3j9mychi9ra4hxcm6qf7j1r8aw9j7af6riw"; + url = "https://elpa.gnu.org/packages/load-relative-1.3.el"; + sha256 = "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"; }; packageRequires = []; meta = { @@ -1167,10 +1332,10 @@ metar = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "metar"; - version = "0.2"; + version = "0.3"; src = fetchurl { - url = "https://elpa.gnu.org/packages/metar-0.2.el"; - sha256 = "0rfzq79llh6ixw02kjpn8s2shxrabvfvsq48pagwak1jl2s0askf"; + url = "https://elpa.gnu.org/packages/metar-0.3.el"; + sha256 = "07gv0v0xwb5yzynwagmvf0n5c9wljy1jg4ympnxpa2d9r1zqc02g"; }; packageRequires = [ cl-lib ]; meta = { @@ -1299,10 +1464,10 @@ }) {}; nlinum = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "nlinum"; - version = "1.6"; + version = "1.8"; src = fetchurl { - url = "https://elpa.gnu.org/packages/nlinum-1.6.el"; - sha256 = "1hr5waxbq0fcys8x2nfdl84mp2v8v9qi08f1kqdray2hzmnmipcw"; + url = "https://elpa.gnu.org/packages/nlinum-1.8.el"; + sha256 = "0bb1c8a68fzv59q2ri7ppbx8cm7sa8n4hxxvxv73db2dcgwrgwga"; }; packageRequires = []; meta = { @@ -1391,10 +1556,10 @@ }) {}; org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "org"; - version = "20170210"; + version = "20171030"; src = fetchurl { - url = "https://elpa.gnu.org/packages/org-20170210.tar"; - sha256 = "15415wh3w8d4c8hd7qfrfdjnjb1zppmrkg8cdp7hw2ilyr90c0bn"; + url = "https://elpa.gnu.org/packages/org-20171030.tar"; + sha256 = "1lszws6b5s4r7w871cyigs433dflf6w0y33fj6rzrq8240d5092i"; }; packageRequires = []; meta = { @@ -1418,10 +1583,10 @@ other-frame-window = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "other-frame-window"; - version = "1.0.2"; + version = "1.0.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/other-frame-window-1.0.2.el"; - sha256 = "0gr4vn7ld4fx372091wxnzm1rhq6rc4ycim4fwz5bxnpykz83l7d"; + url = "https://elpa.gnu.org/packages/other-frame-window-1.0.4.el"; + sha256 = "0hg82j8zjh0ann6bf56r0p8s0y3a016zny8byp80mcvkw63wrn5i"; }; packageRequires = [ emacs ]; meta = { @@ -1524,10 +1689,10 @@ }) {}; queue = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "queue"; - version = "0.1.1"; + version = "0.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/queue-0.1.1.el"; - sha256 = "0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391"; + url = "https://elpa.gnu.org/packages/queue-0.2.el"; + sha256 = "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"; }; packageRequires = []; meta = { @@ -1537,10 +1702,10 @@ }) {}; rainbow-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "rainbow-mode"; - version = "0.12"; + version = "0.13"; src = fetchurl { - url = "https://elpa.gnu.org/packages/rainbow-mode-0.12.el"; - sha256 = "10a7qs7fvw4qi4vxj9n56j26gjk61bl79dgz4md1d26slb2j1c04"; + url = "https://elpa.gnu.org/packages/rainbow-mode-0.13.el"; + sha256 = "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"; }; packageRequires = []; meta = { @@ -1548,13 +1713,39 @@ license = lib.licenses.free; }; }) {}; + rcirc-color = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + pname = "rcirc-color"; + version = "0.3"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/rcirc-color-0.3.el"; + sha256 = "1ya4agh63x60lv8qzrjrng02dnrc70ci0s05b800iq71k71ss3dl"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/rcirc-color.html"; + license = lib.licenses.free; + }; + }) {}; + rcirc-menu = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + pname = "rcirc-menu"; + version = "1.1"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/rcirc-menu-1.1.el"; + sha256 = "0w77qlwlmx59v5894i96fldn6x4lliv4ddv8967vq1kfchn4w5mc"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/rcirc-menu.html"; + license = lib.licenses.free; + }; + }) {}; realgud = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, load-relative, loc-changes, test-simple }: elpaBuild { pname = "realgud"; - version = "1.4.3"; + version = "1.4.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/realgud-1.4.3.tar"; - sha256 = "07yfah8kmr60rhrj8y8gs7l85hsbylv26crw3qbqh67ka4ykpj01"; + url = "https://elpa.gnu.org/packages/realgud-1.4.4.tar"; + sha256 = "1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c"; }; packageRequires = [ cl-lib @@ -1597,10 +1788,10 @@ }) {}; rnc-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "rnc-mode"; - version = "0.1"; + version = "0.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/rnc-mode-0.1.el"; - sha256 = "18hm9g05ld8i1apr28dmd9ccq6dc0w6rdqhi0k7ka95jxxdr9m6d"; + url = "https://elpa.gnu.org/packages/rnc-mode-0.2.el"; + sha256 = "0xhvcfqjkb010wc7r218xcjidv1c8597vayyv09vk97z4qxqkrbd"; }; packageRequires = []; meta = { @@ -1650,10 +1841,10 @@ }) {}; seq = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "seq"; - version = "2.19"; + version = "2.20"; src = fetchurl { - url = "https://elpa.gnu.org/packages/seq-2.19.tar"; - sha256 = "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha"; + url = "https://elpa.gnu.org/packages/seq-2.20.tar"; + sha256 = "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"; }; packageRequires = []; meta = { @@ -1717,10 +1908,10 @@ soap-client = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "soap-client"; - version = "3.1.1"; + version = "3.1.3"; src = fetchurl { - url = "https://elpa.gnu.org/packages/soap-client-3.1.1.tar"; - sha256 = "0is2923g882farf73dix6ncq3m26yn5j5qr8wz6s0xad04zdbdhk"; + url = "https://elpa.gnu.org/packages/soap-client-3.1.3.tar"; + sha256 = "1s5m6dc7z532wchdih2ax2a791khyajjxb2xaw5rklk47yc5v3nk"; }; packageRequires = [ cl-lib ]; meta = { @@ -1728,14 +1919,14 @@ license = lib.licenses.free; }; }) {}; - sokoban = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + sokoban = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "sokoban"; - version = "1.4"; + version = "1.4.6"; src = fetchurl { - url = "https://elpa.gnu.org/packages/sokoban-1.4.tar"; - sha256 = "1yfkaw8rjris03qpj32vqhg5lfml4hz9v3adka6sw6dv4n67j9w1"; + url = "https://elpa.gnu.org/packages/sokoban-1.4.6.tar"; + sha256 = "112cl1l36zn5q9cw81rxi96zflf7ddp3by1h7fsz48yjfidpfbzn"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://elpa.gnu.org/packages/sokoban.html"; license = lib.licenses.free; @@ -1769,10 +1960,10 @@ }) {}; stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "stream"; - version = "2.2.3"; + version = "2.2.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/stream-2.2.3.el"; - sha256 = "1y9nh5473p0dd149g675nybsdnzp8c4mq3wdql066nir7scz6rhy"; + url = "https://elpa.gnu.org/packages/stream-2.2.4.tar"; + sha256 = "1fdjjxfnpzfv5jsy0wmmnrsk821bg8d3magsng609fb2pkwvk1ij"; }; packageRequires = [ emacs ]; meta = { @@ -1837,10 +2028,10 @@ test-simple = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "test-simple"; - version = "1.2.0"; + version = "1.3.0"; src = fetchurl { - url = "https://elpa.gnu.org/packages/test-simple-1.2.0.el"; - sha256 = "1j97qrwi3i2kihszsxf3y2cby2bzp8g0zf6jlpdix3dinav8xa3b"; + url = "https://elpa.gnu.org/packages/test-simple-1.3.0.el"; + sha256 = "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"; }; packageRequires = [ cl-lib ]; meta = { @@ -1864,10 +2055,10 @@ }) {}; tiny = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "tiny"; - version = "0.1.1"; + version = "0.2.1"; src = fetchurl { - url = "https://elpa.gnu.org/packages/tiny-0.1.1.tar"; - sha256 = "1nhg8375qdn457wj0xmfaj72s87xbabk2w1nl6q7rjvwxv08yyn7"; + url = "https://elpa.gnu.org/packages/tiny-0.2.1.tar"; + sha256 = "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"; }; packageRequires = []; meta = { @@ -1877,10 +2068,10 @@ }) {}; tramp-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "tramp-theme"; - version = "0.1.1"; + version = "0.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/tramp-theme-0.1.1.el"; - sha256 = "0l8i625h9sc6h59qfj847blmfwfhf9bvfsbmwfb56qzs535fby3y"; + url = "https://elpa.gnu.org/packages/tramp-theme-0.2.el"; + sha256 = "1q1j0vcdyv5gnfbnfl08rnwd5j4ayc1gi1vpinr99ny70wsv7gbf"; }; packageRequires = [ emacs ]; meta = { @@ -1903,10 +2094,10 @@ }) {}; trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }: elpaBuild { pname = "trie"; - version = "0.2.6"; + version = "0.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/trie-0.2.6.el"; - sha256 = "1q3i1dhq55c3b1hqpvmh924vzvhrgyp76hr1ci7bhjqvjmjx24ii"; + url = "https://elpa.gnu.org/packages/trie-0.4.el"; + sha256 = "0869fh3bghxil94wd9vgbb5bk1hx2qkh75vbvp0psmcima8dgzgw"; }; packageRequires = [ heap tNFA ]; meta = { @@ -1943,10 +2134,10 @@ url-http-ntlm = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, ntlm ? null }: elpaBuild { pname = "url-http-ntlm"; - version = "2.0.3"; + version = "2.0.4"; src = fetchurl { - url = "https://elpa.gnu.org/packages/url-http-ntlm-2.0.3.el"; - sha256 = "01ivfcxrxiqs8dlqg4s3q17y4mxx0kpin60fkwrs18pca4hni203"; + url = "https://elpa.gnu.org/packages/url-http-ntlm-2.0.4.el"; + sha256 = "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"; }; packageRequires = [ cl-lib ntlm ]; meta = { @@ -1968,6 +2159,32 @@ license = lib.licenses.free; }; }) {}; + vdiff = callPackage ({ elpaBuild, emacs, fetchurl, hydra, lib }: elpaBuild { + pname = "vdiff"; + version = "0.2.3"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/vdiff-0.2.3.el"; + sha256 = "197wszzhm2kbfvvlg3f0dzfs3lf4536yq5fd67k2rycj421fr9qz"; + }; + packageRequires = [ emacs hydra ]; + meta = { + homepage = "https://elpa.gnu.org/packages/vdiff.html"; + license = lib.licenses.free; + }; + }) {}; + vigenere = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { + pname = "vigenere"; + version = "1.0"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/vigenere-1.0.el"; + sha256 = "1i5s6h1nngcp74gf53dw9pvj5y0ywk9j8pyvkfr7gqq49bz22hmm"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/vigenere.html"; + license = lib.licenses.free; + }; + }) {}; vlf = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "vlf"; version = "1.7"; @@ -2033,19 +2250,33 @@ license = lib.licenses.free; }; }) {}; - websocket = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { + websocket = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: + elpaBuild { pname = "websocket"; - version = "1.6"; + version = "1.8"; src = fetchurl { - url = "https://elpa.gnu.org/packages/websocket-1.6.tar"; - sha256 = "09im218c1gkq1lg356rcqqpkydnpxs5qzdqkwk95pwndswb40a5a"; + url = "https://elpa.gnu.org/packages/websocket-1.8.tar"; + sha256 = "0dcxmnnm8z7cvsc7nkb822a1g6w03klp7cijjnfq0pz84p3w9cd9"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://elpa.gnu.org/packages/websocket.html"; license = lib.licenses.free; }; }) {}; + which-key = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { + pname = "which-key"; + version = "3.0.2"; + src = fetchurl { + url = "https://elpa.gnu.org/packages/which-key-3.0.2.tar"; + sha256 = "1s7bq7vq9xsf2pz1w03l743yzaxm9gk5qgympcwlkiq90ph13vcn"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/which-key.html"; + license = lib.licenses.free; + }; + }) {}; windresize = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "windresize"; version = "0.1"; @@ -2062,10 +2293,10 @@ wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: elpaBuild { pname = "wisi"; - version = "1.1.4"; + version = "1.1.6"; src = fetchurl { - url = "https://elpa.gnu.org/packages/wisi-1.1.4.tar"; - sha256 = "1n0bq77vspbxpzs54r0rigb2fhj5a5vm8qxwgdnqdawanmq72l4r"; + url = "https://elpa.gnu.org/packages/wisi-1.1.6.tar"; + sha256 = "0p7hm9l4gbp50rmpqna6jnc1pss2axdd6m6hk9ik4afbz0knzwnk"; }; packageRequires = [ cl-lib emacs ]; meta = { @@ -2129,10 +2360,10 @@ yasnippet = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: elpaBuild { pname = "yasnippet"; - version = "0.11.0"; + version = "0.12.2"; src = fetchurl { - url = "https://elpa.gnu.org/packages/yasnippet-0.11.0.tar"; - sha256 = "1m0hchhianl69sb1iqa8av513qvz6krjg4b5ppwfx1sjlai9xj2y"; + url = "https://elpa.gnu.org/packages/yasnippet-0.12.2.tar"; + sha256 = "03cilldgq7fpzk9ix2a8q1ppilxp5gvyrym7krifvrg1g2rs1qv9"; }; packageRequires = [ cl-lib ]; meta = { diff --git a/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix b/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix index 9849b65c8c5..9585f327821 100644 --- a/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix +++ b/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix @@ -23,7 +23,7 @@ clangStdenv.mkDerivation { ''; meta = { - homepage = "https://github.com/Golevka/emacs-clang-complete-async"; + homepage = https://github.com/Golevka/emacs-clang-complete-async; description = "An emacs plugin to complete C and C++ code using libclang"; license = clangStdenv.lib.licenses.gpl3Plus; }; diff --git a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix index b4fb8d1937d..634c654d58f 100644 --- a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix +++ b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix @@ -13,7 +13,8 @@ stdenv.mkDerivation rec { sha256 = "1lmcj8rf83w13q8q68hh7sa1abc2m6j2zmfska92xdp7hslhdgc5"; }; - buildInputs = [ emacs w3m texinfo autoreconfHook ]; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ emacs w3m texinfo ]; # XXX: Should we do the same for xpdf/evince, gv, gs, etc.? patchPhase = '' diff --git a/pkgs/applications/editors/emacs-modes/erlang/default.nix b/pkgs/applications/editors/emacs-modes/erlang/default.nix index 84a52d169a3..463d7fc7e15 100644 --- a/pkgs/applications/editors/emacs-modes/erlang/default.nix +++ b/pkgs/applications/editors/emacs-modes/erlang/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { # emacs highlighting */ meta = with stdenv.lib; { - homepage = "http://github.com/erlang/otp"; + homepage = https://github.com/erlang/otp; description = "Erlang mode for Emacs"; license = licenses.asl20; platforms = platforms.unix; diff --git a/pkgs/applications/editors/emacs-modes/ess/default.nix b/pkgs/applications/editors/emacs-modes/ess/default.nix index a2c73907115..ce335a5d482 100644 --- a/pkgs/applications/editors/emacs-modes/ess/default.nix +++ b/pkgs/applications/editors/emacs-modes/ess/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { description = "Emacs Speaks Statistics"; - homepage = "http://ess.r-project.org/"; + homepage = http://ess.r-project.org/; license = stdenv.lib.licenses.gpl2Plus; hydraPlatforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/editors/emacs-modes/gn/default.nix b/pkgs/applications/editors/emacs-modes/gn/default.nix new file mode 100644 index 00000000000..39e7d1abf38 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/gn/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchgit, emacs }: + +stdenv.mkDerivation { + name = "gn-mode-2017-09-21"; + src = fetchgit { + url = "https://chromium.googlesource.com/chromium/src/tools/gn"; + rev = "34f2780efb3fe14fe361ec161ad58440de5a6b36"; + sha256 = "10cisqz3l6ny3471yi7y1z8v622lpl65zh0liqr6absvmy63g866"; + }; + buildInputs = [ emacs ]; + + buildPhase = '' + emacs --batch -f batch-byte-compile misc/emacs/gn-mode.el + ''; + + installPhase = '' + mkdir -p $out/share/emacs/site-lisp/ + cp misc/emacs/gn-mode.el* $out/share/emacs/site-lisp/ + ''; +} diff --git a/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix b/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix index c1291126a1e..ce552257133 100644 --- a/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix +++ b/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://www.graphviz.org/"; + homepage = http://www.graphviz.org/; description = "An emacs mode for the DOT Language, used by graphviz"; }; } diff --git a/pkgs/applications/editors/emacs-modes/haskell/default.nix b/pkgs/applications/editors/emacs-modes/haskell/default.nix index df34a47a6b3..6f998300290 100644 --- a/pkgs/applications/editors/emacs-modes/haskell/default.nix +++ b/pkgs/applications/editors/emacs-modes/haskell/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { installCheckTarget = "check"; meta = { - homepage = "http://github.com/haskell/haskell-mode"; + homepage = https://github.com/haskell/haskell-mode; description = "Haskell mode for Emacs"; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/editors/emacs-modes/icicles/default.nix b/pkgs/applications/editors/emacs-modes/icicles/default.nix index d70b9955c98..f0d120dd803 100644 --- a/pkgs/applications/editors/emacs-modes/icicles/default.nix +++ b/pkgs/applications/editors/emacs-modes/icicles/default.nix @@ -2,27 +2,28 @@ let modules = [ - { name = "icicles.el"; sha256 = "175g8w620vy73pp3zyasfjspgljk6g0lki71kdnvw5z88w3s9d1n"; } - { name = "icicles-chg.el"; sha256 = "1bx5xdhirvnrjqk4pk0sjp9bpj1syymsjnckklsw04gv6y0x8zik"; } - { name = "icicles-cmd1.el"; sha256 = "1ff0mndin9zxrswwwq3a7b1s879rr6gy8rzxanr7kxg1ppciafad"; } - { name = "icicles-cmd2.el"; sha256 = "1a44l86jacp9nsy4z260azz6y672drjw3w5a0jsc8w26fgsrnx1k"; } - { name = "icicles-doc1.el"; sha256 = "0s3r4z3y06hd1nxp18wd0b8b88z2a7ryy0j8sx5fzibbmp58ars1"; } - { name = "icicles-doc2.el"; sha256 = "0c10jg91qxyrg1zwiyi4m57dbw3yf43jdrpi4nnby3pkzh6i37ic"; } - { name = "icicles-face.el"; sha256 = "0n0vcbhwgd2lyj7anq1zpwja28xry018qxbm8sprxkh6y3vlw8d2"; } - { name = "icicles-fn.el"; sha256 = "1i10593a7hp465bxd86h7h7gwrdyqxx0d13in53z4jnab8icp3d4"; } - { name = "icicles-mac.el"; sha256 = "1piq0jk8nz0hz9wwci7dkxnfxscdpygjzpj5zg3310vs22l7rrsz"; } - { name = "icicles-mcmd.el"; sha256 = "0c4325yp84i46605nlxmjm6n0f4fh69shsihvd0wb9ryg0a8qa65"; } - { name = "icicles-mode.el"; sha256 = "069wx5clqpsq2c9aavgd9xihvlad3g00iwwrc3cpl47v64dvlipq"; } - { name = "icicles-opt.el"; sha256 = "16487l3361ca8l6il2c0z892843sc5l9v4gr7lx5fxbmrlsswvvn"; } - { name = "icicles-var.el"; sha256 = "1a9cwxpi10x44fngxa7qnrg8hqfvdjb8s8k47gnn1rbh63blkkry"; } + { name = "icicles.el"; sha256 = "10w1lghh9jqxxm5cszi2qyk24vnvazfywmyyz1v7zf6cyiwbndrz"; } + { name = "icicles-chg.el"; sha256 = "020yg4hv120mcy7qvn76j85q6hl7mfcfv66w55c6izc9lbrvvnv8"; } + { name = "icicles-cmd1.el"; sha256 = "1715x1vkiax93890gfjbzslxsn4swsv37spvyx7chy4s1mym9kfw"; } + { name = "icicles-cmd2.el"; sha256 = "187k0gmn34fn6w1dw9hjf4i788y01vk47z7ac11ar4bddwh97ddx"; } + { name = "icicles-doc1.el"; sha256 = "1bw5dkymn2xdrfrp80am0gqi0szs0xihny4qmgzgx6hfbng351qh"; } + { name = "icicles-doc2.el"; sha256 = "0zd94m1a8mwwbrbcrahxxx8q34w8cg5lna4yww4m1gliyklww86s"; } + { name = "icicles-face.el"; sha256 = "1mlz8dq7bgzp2cf5j37i25yw90ry657d2m8r93rdj67h7l4wyxhj"; } + { name = "icicles-fn.el"; sha256 = "1cdghvgsr0b7pdq4lmnfm6kwwcqbk4wqf168kf2sjajbpa24ix96"; } + { name = "icicles-mac.el"; sha256 = "1w5sgzbp8hyjzrmqd8bwivszaayzh8dkyqa0d751adiwjfs9sq9m"; } + { name = "icicles-mcmd.el"; sha256 = "1lf2galn3g52hfz61avlr4ifyn5b42dfbmyq78cpzlq7hzc928v2"; } + { name = "icicles-mode.el"; sha256 = "0gci04j6vx0vqsh4skarznklam1xibj7pjvy67kaip8b6a4zx9ip"; } + { name = "icicles-opt.el"; sha256 = "17g35ancml0mvywagzhjrgmlr4rhm1wgb5wg3fsqhhldib9qlz56"; } + { name = "icicles-var.el"; sha256 = "0ydixg41h09yncp8g2nv8zsyv8avg1hj2f3mgrmd2kf0n27bw2nv"; } ]; forAll = f: map f modules; in -stdenv.mkDerivation { - name = "icicles-2014-11-06"; +stdenv.mkDerivation rec { + version = "2017-10-28"; + name = "icicles-${version}"; - srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs-en/download/${name}"; inherit sha256; }); + srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs/download/${name}"; inherit sha256; }); buildInputs = [ emacs ]; @@ -30,11 +31,13 @@ stdenv.mkDerivation { buildPhase = "emacs --batch -L . -f batch-byte-compile *.el"; - installPhase = "mkdir -p $out/share/emacs/site-lisp; cp *.el *.elc $out/share/emacs/site-lisp/"; + installPhase = "mkdir -p $out/share/emacs/site-lisp/emacswiki/${name}/; cp *.el *.elc $out/share/emacs/site-lisp/emacswiki/${name}/"; meta = { - homepage = "http://www.emacswiki.org/emacs/Icicles"; + homepage = http://www.emacswiki.org/emacs/Icicles; description = "Enhance Emacs minibuffer input with cycling and powerful completion"; license = stdenv.lib.licenses.gpl2Plus; + platforms = emacs.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ scolobb ]; }; } diff --git a/pkgs/applications/editors/emacs-modes/let-alist/default.nix b/pkgs/applications/editors/emacs-modes/let-alist/default.nix index e90d6cf210d..05ddfbf6c16 100644 --- a/pkgs/applications/editors/emacs-modes/let-alist/default.nix +++ b/pkgs/applications/editors/emacs-modes/let-alist/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://elpa.gnu.org/packages/let-alist.html"; + homepage = http://elpa.gnu.org/packages/let-alist.html; description = "Easily let-bind values of an assoc-list by their names"; license = stdenv.lib.licenses.gpl3Plus; }; diff --git a/pkgs/applications/editors/emacs-modes/melpa-generated.nix b/pkgs/applications/editors/emacs-modes/melpa-generated.nix index 082301e254b..3db74fa9d4f 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-generated.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-generated.nix @@ -82,6 +82,27 @@ license = lib.licenses.free; }; }) {}; + a = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "a"; + version = "20170720.553"; + src = fetchFromGitHub { + owner = "plexus"; + repo = "a.el"; + rev = "3af0122abac723f0d3dc21ee50eeb81afa26d361"; + sha256 = "0grwpy4ssmn2m8aihfkxb7ifl7ql2hgicw16wzl0crpy5fndh1mp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a226f1d81cd1ae81b91c1102fbe40aac2eddcaa8/recipes/a"; + sha256 = "1xqja47iw1c78kiv4854z47iblvvzrc1l35zjdhmhkh9hh10z886"; + name = "a"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/a"; + license = lib.licenses.free; + }; + }) {}; aa-edit-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, navi2ch }: melpaBuild { pname = "aa-edit-mode"; @@ -106,12 +127,12 @@ abc-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "abc-mode"; - version = "20140225.944"; + version = "20171020.319"; src = fetchFromGitHub { owner = "mkjunker"; repo = "abc-mode"; - rev = "1dd6e1217136a6f986917a3e5f41c1007bac908d"; - sha256 = "1h4gwp2gyd4jhbkb8ai1zbzhhmlhmihbwzr0wsxg5yq074n72ifs"; + rev = "238deedeb6c90df168045552eb463cfae9e1f88f"; + sha256 = "1wkjdvsav2x9zsl25h87iyfl6r0md86i2gmxqhvf63acxqgrgb2q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/aaee9dc5de06747374f311d86a550d3cc15beed1/recipes/abc-mode"; @@ -127,12 +148,12 @@ abl-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "abl-mode"; - version = "20170309.117"; + version = "20170604.1309"; src = fetchFromGitHub { owner = "afroisalreadyinu"; repo = "abl-mode"; - rev = "0539862591a5af70e6fa04f0e88e7fc0f0fbb11e"; - sha256 = "0fxl67nmy6vi6viwxday4j81m9lg4l8vg6yw2phgagm4zlp65k58"; + rev = "9aff997fe7b4caded60150a832e3704ac55e69e5"; + sha256 = "0yfk7s7n10lkf11dy1l0xi0bbsjbam5lqq8kj9hxpz2zkddbaljl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/70a52edb381daa9c4dcc9f7e511175b38fc141be/recipes/abl-mode"; @@ -148,12 +169,12 @@ abyss-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "abyss-theme"; - version = "20160420.512"; + version = "20170808.645"; src = fetchFromGitHub { owner = "mgrbyte"; repo = "emacs-abyss-theme"; - rev = "e860499a0b2ae0d6d2a27eab12b67dec896a7afc"; - sha256 = "1yr6cqycd7ljkqzfp4prz9ilcpjq8wxg5yf645m24gy9v4w365ia"; + rev = "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14"; + sha256 = "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f390e5153b6360a27abc74983f5fef11226634f3/recipes/abyss-theme"; @@ -316,12 +337,12 @@ ac-clang = callPackage ({ auto-complete, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pos-tip, yasnippet }: melpaBuild { pname = "ac-clang"; - version = "20170330.1108"; + version = "20170615.838"; src = fetchFromGitHub { owner = "yaruopooner"; repo = "ac-clang"; - rev = "c4aab21df64011916039e18094e189533018e115"; - sha256 = "1ac8rw0r4x1plrwy6xwswy5mj5h1r975y8wvx01g2j8an41xhlms"; + rev = "ee692f7cde535f317e440a132b8e60b7c5e34dfd"; + sha256 = "0zg39brrpgdakb6hbylala6ajja09nhbzqf4xl9nzwc7gzpgfl57"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ffe0485048b85825f5e8ba95917d8c9dc64fe5de/recipes/ac-clang"; @@ -334,24 +355,6 @@ license = lib.licenses.free; }; }) {}; - ac-dabbrev = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "ac-dabbrev"; - version = "20130905.2218"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/ac-dabbrev.el"; - sha256 = "0q0lbhdng5s5hqa342yyvg02hf2bfbwq513lj1rlaqz4ykvpd7fh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/ac-dabbrev"; - sha256 = "03lndw7y55bzz4rckl80j0kh66qa82xxxhfakzs1dh1h9f1f0azh"; - name = "ac-dabbrev"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ac-dabbrev"; - license = lib.licenses.free; - }; - }) {}; ac-dcd = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, flycheck-dmd-dub, lib, melpaBuild }: melpaBuild { pname = "ac-dcd"; @@ -376,12 +379,12 @@ ac-emacs-eclim = callPackage ({ auto-complete, eclim, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ac-emacs-eclim"; - version = "20170104.743"; + version = "20170924.1339"; src = fetchFromGitHub { owner = "emacs-eclim"; repo = "emacs-eclim"; - rev = "c13d1e853722bac880e82e6b04158015e7b12f6c"; - sha256 = "18bm0prhnahj0b397hn9nn98d09rrzfhzfg86glxqy4y8k6f0ai6"; + rev = "14596d3a1c0e7f18be6b88eddebaf7f36eeca859"; + sha256 = "04vmq8d68na8pxwd18lxf87v0nzf3cxxdvw8cqzj28his7g37bym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e9d3075587fbd9ca188535fd945a7dc451c6d7e/recipes/ac-emacs-eclim"; @@ -737,8 +740,8 @@ src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php"; @@ -754,12 +757,12 @@ ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }: melpaBuild { pname = "ac-php-core"; - version = "20170327.542"; + version = "20171022.808"; src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core"; @@ -796,12 +799,12 @@ ac-rtags = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }: melpaBuild { pname = "ac-rtags"; - version = "20170402.653"; + version = "20170522.2154"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ac-rtags"; @@ -838,12 +841,12 @@ ac-slime = callPackage ({ auto-complete, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, slime }: melpaBuild { pname = "ac-slime"; - version = "20150729.2035"; + version = "20171027.1400"; src = fetchFromGitHub { owner = "purcell"; repo = "ac-slime"; - rev = "fafc6f75c90b2dbf124edd3e2887860ce052081e"; - sha256 = "0dix8giqbc9la5mycrjgq287j03s44nhrg9b1drsca2sc58cnach"; + rev = "6c80cb602ddad46486288f94ad7546396c6e4b1a"; + sha256 = "11w1z653klghi6inv9n92cigz8m3c67j3r18mdk39inc3izwplkj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/ac-slime"; @@ -859,12 +862,12 @@ ac-sly = callPackage ({ auto-complete, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, sly }: melpaBuild { pname = "ac-sly"; - version = "20150421.1322"; + version = "20170728.327"; src = fetchFromGitHub { owner = "qoocku"; repo = "ac-sly"; - rev = "b37a1ecfaab10a6d81c6d894417176d3bb4c5285"; - sha256 = "0mif35chyj4ai1bj4gq8qi38dyfsp72yi1xchhzy9zi2plpvqa7a"; + rev = "bf69c687c4ecf1994349d20c182e9b567399912e"; + sha256 = "09g6v2yp3wl566488zsb79lklqpai9dgz6xwv1y5h6zkghxvkhpy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bb26741e841d4886c14f0a059a52805732f179b1/recipes/ac-sly"; @@ -898,22 +901,22 @@ license = lib.licenses.free; }; }) {}; - ace-isearch = callPackage ({ ace-jump-mode, avy, emacs, fetchFromGitHub, fetchurl, helm-swoop, lib, melpaBuild }: + ace-isearch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-isearch"; - version = "20161107.1730"; + version = "20170506.12"; src = fetchFromGitHub { owner = "tam17aki"; repo = "ace-isearch"; - rev = "33b98ecdb3d5a966cbfc0ec7b104be5afca14f25"; - sha256 = "05a5jf9lx1g5cms5p1js7qxria5dfm310m83zmvwcdr96mfbz9ii"; + rev = "0502f95e333c8059a678745e5a112542965661d1"; + sha256 = "1gzvhxkx7dl7wh2fkkiq9vplfhrqyxl0vzlzf617j4gggjbkpzps"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/344f0cf784a027cde196b7d766024fb415fa1968/recipes/ace-isearch"; sha256 = "0n8qf08z9n8c2sp5ks29nxcfks5mil1jj6wq348apda8safk36hm"; name = "ace-isearch"; }; - packageRequires = [ ace-jump-mode avy emacs helm-swoop ]; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/ace-isearch"; license = lib.licenses.free; @@ -922,12 +925,12 @@ ace-jump-buffer = callPackage ({ avy, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-jump-buffer"; - version = "20160229.1458"; + version = "20171031.850"; src = fetchFromGitHub { owner = "waymondo"; repo = "ace-jump-buffer"; - rev = "9224e279a53fba06ed5561e22bf89ab94f74b9e7"; - sha256 = "1y2rl4faj1nfjqbh393yp460cbv24simllak31ag1ischpcbqjy4"; + rev = "ae5be0415c823f7bb66833aa4af2180d4cf99cef"; + sha256 = "0zg4x5faxkp0gnjq7209hn74qkzmk8k7wbr7k8wxpssjbnmxkvd1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31100b5b899e942de7796bcbf6365625d1b62574/recipes/ace-jump-buffer"; @@ -985,12 +988,12 @@ ace-jump-zap = callPackage ({ ace-jump-mode, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-jump-zap"; - version = "20150330.1342"; + version = "20170717.1149"; src = fetchFromGitHub { owner = "waymondo"; repo = "ace-jump-zap"; - rev = "c60af83a857955b68c568c274a3c80cbe93f3150"; - sha256 = "0z0rblr41r94l4b2gh9fcw50nk82ifxrr3ilxqzbb8wmvil54gh4"; + rev = "52b5d4c6c73bd0fc833a0dcb4e803a5287d8cae8"; + sha256 = "1iw90mk6hdrbskxgv67xj27qd26w5dlh4s6a6xqqsj8ld56nzbvr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3b435db3b79333a20aa27a72f33c431f0a019ba1/recipes/ace-jump-zap"; @@ -1006,12 +1009,12 @@ ace-link = callPackage ({ avy, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-link"; - version = "20170319.553"; + version = "20170925.723"; src = fetchFromGitHub { owner = "abo-abo"; repo = "ace-link"; - rev = "0b6e06e0b5222a57e5e6f1d9af6436eb12102e3e"; - sha256 = "1h8j1dl9xyybm0pj3j2j6fcq7bryby2h1s64r6ijcsgrqgimq66i"; + rev = "eee81e6f75b078a207a547e0e8cff8c3d4f0b07c"; + sha256 = "03p8cdakbx5pz9f8s01chd0bzmgsz50zi433k6gh0vw553y8vcmi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/68032f40c0ce4170a22db535be4bfa7099f61f85/recipes/ace-link"; @@ -1045,22 +1048,22 @@ license = lib.licenses.free; }; }) {}; - ace-pinyin = callPackage ({ ace-jump-mode, avy, fetchFromGitHub, fetchurl, lib, melpaBuild, pinyinlib }: + ace-pinyin = callPackage ({ avy, fetchFromGitHub, fetchurl, lib, melpaBuild, pinyinlib }: melpaBuild { pname = "ace-pinyin"; - version = "20160611.1755"; + version = "20170430.2326"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "ace-pinyin"; - rev = "8f7d7fdf3912730076d30b0a3ba17d05da1db9ee"; - sha256 = "06bsrnhhpncmk6jpcnvmjdb0ccz6z34ksf2ywp00l1c343p90v38"; + rev = "a9df88c1e6a32a4f4895acbb8c45383693c494c1"; + sha256 = "18xi669c15k0m1wb7x231ch1kzqgpi4nm54c42ajrkfq7l8kxq8w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ace-pinyin"; sha256 = "1b3asvzm3k66lsdkmlsgmnf8xlyic8zv294j1iahzkwm6bzqj8wd"; name = "ace-pinyin"; }; - packageRequires = [ ace-jump-mode avy pinyinlib ]; + packageRequires = [ avy pinyinlib ]; meta = { homepage = "https://melpa.org/#/ace-pinyin"; license = lib.licenses.free; @@ -1069,12 +1072,12 @@ ace-popup-menu = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-popup-menu"; - version = "20161231.1553"; + version = "20170518.2244"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "ace-popup-menu"; - rev = "423c59ac11899c66741aca3cad5dda46a167dfe4"; - sha256 = "01gh26marr3h61lvqw0mdc7r3s6cr2s6g5vqxf84ip43fzhi9zc3"; + rev = "15ee28a9dcf025f30626313ebd376c0586013c8e"; + sha256 = "187j3ixxrxkbja8xy7xgxpsx0ngwmn55gw0rnvlpj2pyz8vl192q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/53742e2242101c4b3b3901f5c74e24facf62c7d6/recipes/ace-popup-menu"; @@ -1090,12 +1093,12 @@ ace-window = callPackage ({ avy, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-window"; - version = "20170219.256"; + version = "20170801.1334"; src = fetchFromGitHub { owner = "abo-abo"; repo = "ace-window"; - rev = "d92320e74089cb346e172c63b02cce48a0d8cca7"; - sha256 = "06sidq00xaw0n0gfh7akzyxfr65ma5h299yk347f1q916bqqxna5"; + rev = "6aaf1e634414e7485b47ff94aac6c34588f2a371"; + sha256 = "1dmb4q1xgf5mk4riihk2mmn7k182y9j1amcr8m2dmdw0hrgvsfcd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe131d3c2ea498e4df30ba539a6b91c00f5b07/recipes/ace-window"; @@ -1114,11 +1117,11 @@ version = "20150530.1126"; src = fetchhg { url = "https://bitbucket.com/gvol/emacs-achievements"; - rev = "5b4b7b6816aa"; - sha256 = "0zjncby2884cv8nz2ss7i0p17l15lsk88zwvb7b0gr3apbfpcpa3"; + rev = "18a422131c12"; + sha256 = "0nk1zhqx0lvckjc98b36125148zgx1l2axln8gvkdwlhrd2cc6vj"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/achievements"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/83ec19a4ebac6b2d0fd84939b393848f82620978/recipes/achievements"; sha256 = "1pwlibq87ph20z2pssk5hbgs6v8kdym9193jjdx2rxp0nic4k0cr"; name = "achievements"; }; @@ -1173,12 +1176,12 @@ add-hooks = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "add-hooks"; - version = "20170410.2133"; + version = "20170705.2205"; src = fetchFromGitHub { owner = "nickmccurdy"; repo = "add-hooks"; - rev = "73f2ac34529f4ea0c9fc9f333531d082032d4025"; - sha256 = "1gnnnydvmkgqzbfnc0wx386il5kcgfxdba3vq7c9p6cqxslpd8k5"; + rev = "5e18cc3887477aeec41a34f608d9aa55bfa92d0e"; + sha256 = "05a0ayqjldl53s3zmfgmdqq8jf1qw1m2a2sj4qzn2bci0dgsakcp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/901f846aef46d512dc0a1770bab7f07c0ae330cd/recipes/add-hooks"; @@ -1194,12 +1197,12 @@ add-node-modules-path = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "add-node-modules-path"; - version = "20160912.220"; + version = "20170914.1912"; src = fetchFromGitHub { owner = "codesuki"; repo = "add-node-modules-path"; - rev = "9ed240e05dcb9628ba380151b54b02688be5e78e"; - sha256 = "0avv3ypdpscchq9n1lxs0ba0fc52zjyv7dbv54s7sclqxx4mi63k"; + rev = "eb09f4743af210a8e27f21889b4e0fef33208e4a"; + sha256 = "064gzcyx6nkq9wdrf6sd64fs8biwfrn25qj9vv7gznlrl5rg31x9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/63e99d8fc0678d7b1831cae8940e9e6547780861/recipes/add-node-modules-path"; @@ -1215,12 +1218,12 @@ addressbook-bookmark = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "addressbook-bookmark"; - version = "20170331.1209"; + version = "20170424.808"; src = fetchFromGitHub { owner = "thierryvolpiatto"; repo = "addressbook-bookmark"; - rev = "54c4e57b000d54cedb3d791d054d293c8f45f2fe"; - sha256 = "17g4j5yc7phnn95cya8sw13jm1219j1yrjzdcvadi5xdwlb9gxgz"; + rev = "2c2051aa4f9309931a0aa22e97e1e9ce16d9d99d"; + sha256 = "1mic3v5rgg57zrsclvp1zq0bz34rcnp93vjv9lpbfj42ql72m36v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a497aec6e27efa627068542cae5a16c01c3c6d3c/recipes/addressbook-bookmark"; @@ -1257,12 +1260,12 @@ aes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aes"; - version = "20160121.1237"; + version = "20171028.2323"; src = fetchFromGitHub { owner = "Sauermann"; repo = "emacs-aes"; - rev = "1b9918036b16ee30ada71703a9283c67f2ad9999"; - sha256 = "1p90yv2xl1hhpjm0mmhdjyf1jagf79610hkzhw8nycy2p1y4gvl6"; + rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af"; + sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/33ca3106852f82624b36c7e3f03f5c0c620f304f/recipes/aes"; @@ -1299,12 +1302,12 @@ ag = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ag"; - version = "20161228.1641"; + version = "20170915.1249"; src = fetchFromGitHub { owner = "Wilfred"; repo = "ag.el"; - rev = "b390f212947546498a098f2ceb16033709ff32fd"; - sha256 = "0x6p79bcn8g4r8736j977hz3qwyd9c2p4qkaq88jbfhvxyzkpdaa"; + rev = "3b567902ccbec4ed9b8c5f5cd369be833e485e79"; + sha256 = "1ihhmz4ww6iqbjbv1cvssixn01bkd2cl8pij7p32dxyyd8jdwlkq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/67f410ac3a58a038e194bcf174bc0a8ceceafb9a/recipes/ag"; @@ -1320,12 +1323,12 @@ aggressive-fill-paragraph = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aggressive-fill-paragraph"; - version = "20161023.321"; + version = "20170902.705"; src = fetchFromGitHub { owner = "davidshepherd7"; repo = "aggressive-fill-paragraph-mode"; - rev = "25668da48db3b505f01875e0f4ededc5ad8dcb9e"; - sha256 = "141vc0byjax91m192gbv7xlcqjzwhm8pp4hv5bka0chx20g14vq6"; + rev = "bcbc63d1c93cd8dc5bf2fc6eb4988fa76375c631"; + sha256 = "042xvhfc7h571rdriixdf2s2aai8qz4w1wddbbbsq3ir0n814zp3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/982f5936f2d83222263df2886ca0b629076366bb/recipes/aggressive-fill-paragraph"; @@ -1341,12 +1344,12 @@ aggressive-indent = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aggressive-indent"; - version = "20170321.1300"; + version = "20171012.1107"; src = fetchFromGitHub { owner = "Malabarba"; repo = "aggressive-indent-mode"; - rev = "9dfde9ccef6dffbfa68219d91703d779cfe7016a"; - sha256 = "1aslsq5jjvg0hywk4qzk30k6kaics1xslpqd38n24w37872b70jn"; + rev = "1d7185d27020c3e91a7da21800716079297938ac"; + sha256 = "0397kfy0lmgdic4jc8fqhsgpv8r4lrqcfanqbfbchfxwfswbqb8p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/aggressive-indent"; @@ -1361,11 +1364,11 @@ }) {}; ahg = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ahg"; - version = "20161110.455"; + version = "20171003.39"; src = fetchhg { url = "https://bitbucket.com/agriggio/ahg"; - rev = "0e1d1b4142e7"; - sha256 = "09606q8b9qhz1szshv8aapc7450j085rjf2fv769vbivr3kshqvh"; + rev = "6a4cc7a7eee6"; + sha256 = "09c3rawxqxxbl648bq1akawmgwiwppzd9g2sspza0k52adsb3rps"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/ahg"; @@ -1402,12 +1405,12 @@ ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ahungry-theme"; - version = "20160721.2122"; + version = "20171029.2107"; src = fetchFromGitHub { owner = "ahungry"; repo = "color-theme-ahungry"; - rev = "3ce72cf77cf5958d91b65bc4867cbacff968da74"; - sha256 = "0wiwxh6k2s48gpklhd9abbsr0ll73jzggwgq1lvm7gha203ji5v4"; + rev = "6b078bf41f59ea0158b01742cae428ed61c4bc35"; + sha256 = "0c61wsvb82r2ygiyk3na559y0jhba266igampa43g4qdphkjzfqy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme"; @@ -1423,12 +1426,12 @@ airline-themes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, powerline }: melpaBuild { pname = "airline-themes"; - version = "20161024.1051"; + version = "20170623.958"; src = fetchFromGitHub { owner = "AnthonyDiGirolamo"; repo = "airline-themes"; - rev = "11e69a143ed66e50f0c95fda93ba0a5fa8bdf583"; - sha256 = "1n9qf9xmqbm0mjgcbzxgnmy1020rbh1cd7jmjbbfd8xhlh0kw14z"; + rev = "0c0f8efbeaefa49ef04c0c4405b1ef79ecc5433e"; + sha256 = "08hkx5wf9qyh4d5s5z4v57d43qkzw6p8zsqijw92wy4kngv1gl78"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/addeb923176132a52807308fa5e71d41c9511802/recipes/airline-themes"; @@ -1465,12 +1468,12 @@ alchemist = callPackage ({ company, dash, elixir-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, s }: melpaBuild { pname = "alchemist"; - version = "20170402.2339"; + version = "20171029.2307"; src = fetchFromGitHub { owner = "tonini"; repo = "alchemist.el"; - rev = "46d09a6abaa8adf5e06184b77d04638ff3aa9087"; - sha256 = "1wvbn4capcf049y33633b4v8k1aqwi94lscif810f7p3m0xdai30"; + rev = "4beb4c9ceee0534a36f7669aa35fcbdfd6bef7b7"; + sha256 = "0k1k5rb95nyndzhin47r4nzap4fp3dr57gv557wzy3a6jpl88fgz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6616dc61d17c5bd89bc4d226baab24a1f8e49b3e/recipes/alchemist"; @@ -1486,12 +1489,12 @@ alda-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "alda-mode"; - version = "20170125.1720"; + version = "20171030.1008"; src = fetchFromGitHub { owner = "jgkamat"; repo = "alda-mode"; - rev = "921b1d39ee1122c0f6935598dc17aaa904e74819"; - sha256 = "01zz3h6q3djqmb3l6s9jld8x1zx2m0x1qskxzywnyfh8hcvbqy6f"; + rev = "3a08f8349a1ebe8e0ae8622f5bf6ed93491dd785"; + sha256 = "1lrgxawhsaziwvvs16n0339xn0m1333028q0gj3md23bpgrjqa5p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2612c494a2b6bd43ffbbaef88ce9ee6327779158/recipes/alda-mode"; @@ -1507,12 +1510,12 @@ alect-themes = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "alect-themes"; - version = "20170202.6"; + version = "20170825.1009"; src = fetchFromGitHub { owner = "alezost"; repo = "alect-themes"; - rev = "1812abbe0079d1075525d9fb2da6fcfec7db3766"; - sha256 = "0sl2njnhm37cya06y39ls8p3zwpjwyv1pd7w3yfk5frz24vaxlcq"; + rev = "ded94ab1421994aa863a4d7538ec7453768ec235"; + sha256 = "1616vkjgn5g4xf40p15847pkqyrlfzp9d143a4cyk7za50a175ll"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/84c25a290ae4bcc4674434c83c66ae128e4c4282/recipes/alect-themes"; @@ -1528,12 +1531,12 @@ alert = callPackage ({ fetchFromGitHub, fetchurl, gntp, lib, log4e, melpaBuild }: melpaBuild { pname = "alert"; - version = "20170223.1030"; + version = "20171024.1907"; src = fetchFromGitHub { owner = "jwiegley"; repo = "alert"; - rev = "fa9e6917c48e5338f3ed81226e1e5e5ec21563fb"; - sha256 = "0ri8lv3ln7n3msc8y6y9133dv8h0550xi142fn7w0s95hbskr61l"; + rev = "206d7095c93a25bb41af17cd26fd3967ddd57e00"; + sha256 = "1lyvq0zkamlyv3z23x8hb8dirjd45bihqhmwdgilnw3y139vhm4l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/113953825ac4ff98d90a5375eb48d8b7bfa224e7/recipes/alert"; @@ -1588,22 +1591,22 @@ license = lib.licenses.free; }; }) {}; - all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild }: + all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild, memoize }: melpaBuild { pname = "all-the-icons"; - version = "20170417.201"; + version = "20171011.324"; src = fetchFromGitHub { owner = "domtronn"; repo = "all-the-icons.el"; - rev = "9c6a36842aedf9960c5fa81ffe8ba9745dd9cb86"; - sha256 = "0kam8p4nid1rmmr5jw3l8728fd5c9s67gabyacky7qnfa0klja5s"; + rev = "b93707e3a3a7a4968b3e212b890edfe265dcd57d"; + sha256 = "09hyg0fs3qgyc6dbn23pw8p7w2m9xvkf5cz8v0f18a7fkvq2j2f9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/604c01aa15927bd122260529ff0f4bb6a8168b7e/recipes/all-the-icons"; sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q"; name = "all-the-icons"; }; - packageRequires = [ emacs font-lock-plus ]; + packageRequires = [ emacs font-lock-plus memoize ]; meta = { homepage = "https://melpa.org/#/all-the-icons"; license = lib.licenses.free; @@ -1612,12 +1615,12 @@ all-the-icons-dired = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "all-the-icons-dired"; - version = "20170210.811"; + version = "20170418.1431"; src = fetchFromGitHub { owner = "jtbm37"; repo = "all-the-icons-dired"; - rev = "6e5152dfeb0f8be01a61d6fb0c0cb248ecdf1718"; - sha256 = "1siwrcfpj9wnrq5q0y5yhbqnh081db0v4kzvxiiqs3idppdnddxg"; + rev = "980b7747d6c4a7992a1ec56afad908956db0a519"; + sha256 = "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/all-the-icons-dired"; @@ -1630,6 +1633,48 @@ license = lib.licenses.free; }; }) {}; + all-the-icons-gnus = callPackage ({ all-the-icons, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "all-the-icons-gnus"; + version = "20170726.619"; + src = fetchFromGitHub { + owner = "nlamirault"; + repo = "all-the-icons-gnus"; + rev = "45560293e42d02c17c332894f3764dd624d25444"; + sha256 = "1j0s3m54gyrl50bqss6xaijja1hdbm5285py750dn4ykrj5m3d3r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f8ed74d39d165343c81c2a21aa47e3d3895d8119/recipes/all-the-icons-gnus"; + sha256 = "0vdqhpa49p8vzbad426gl0dvniapyk73kbscvjv7mdl4bwhcr309"; + name = "all-the-icons-gnus"; + }; + packageRequires = [ all-the-icons dash emacs ]; + meta = { + homepage = "https://melpa.org/#/all-the-icons-gnus"; + license = lib.licenses.free; + }; + }) {}; + all-the-icons-ivy = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "all-the-icons-ivy"; + version = "20170508.25"; + src = fetchFromGitHub { + owner = "asok"; + repo = "all-the-icons-ivy"; + rev = "73b1bd545c683903b4123df1ac3f59ff80de89c3"; + sha256 = "1lh8i4dh0mvdjlkfnk0ann14y056ydcm5q9k5b143j8i9yxh2awy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9496e6bb6f03f35444fb204860bc50e5e1b36214/recipes/all-the-icons-ivy"; + sha256 = "1xv67gxd2sqj6zld4i3qcid0x5qsbd7baz55m93y1ivdqi7x7gr2"; + name = "all-the-icons-ivy"; + }; + packageRequires = [ all-the-icons emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/all-the-icons-ivy"; + license = lib.licenses.free; + }; + }) {}; amd-mode = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, js2-mode, js2-refactor, lib, makey, melpaBuild, projectile, s, seq }: melpaBuild { pname = "amd-mode"; @@ -1637,8 +1682,8 @@ src = fetchFromGitHub { owner = "NicolasPetton"; repo = "amd-mode.el"; - rev = "977b53e28b3141408fff4814be8b67ee23650cac"; - sha256 = "0m80bwar80qsga735cqrn6rbvfz4w9a036zh8inhsigylv3vwqjv"; + rev = "11e27444692bbf0eb38ec28af6bd041618c5c091"; + sha256 = "1qcag5sjg2p64lllgy237j8gkm7vp2kxr6wppkps5wgkf7bn4q4z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e4d6e9935e4935c9de769c7bf1c1b6dd256e10da/recipes/amd-mode"; @@ -1723,15 +1768,36 @@ license = lib.licenses.free; }; }) {}; + amx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "amx"; + version = "20170923.835"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "amx"; + rev = "88ab7ccb2a88b5cd3ecc4d703ae9373df3e4971c"; + sha256 = "1n1zsrlj272scl4xcbys86d6gxnaq08vp5frd96i47c1an75p0xw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c55bfad05343b2b0f3150fd2b4adb07a1768c1c0/recipes/amx"; + sha256 = "1ikhjvkca0lsb9j719yf6spg6nwc0qaydkd8aax162sis7kp9fap"; + name = "amx"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/amx"; + license = lib.licenses.free; + }; + }) {}; anaconda-mode = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }: melpaBuild { pname = "anaconda-mode"; - version = "20170405.301"; + version = "20170924.704"; src = fetchFromGitHub { owner = "proofit404"; repo = "anaconda-mode"; - rev = "6141aba393e992308d01b550f0b96add62440b04"; - sha256 = "1gkkjnmczpvaw020vw1gbda3dv0h1g7fzdqs3rigwlzzajc96bj4"; + rev = "89fc16d50b889a17521084347b28f3011b84e113"; + sha256 = "08wdci57vig88iy5kk57k5qjkzphbbzy8g7b87hxakfgdmcwpg3g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e03b698fd3fe5b80bdd24ce01f7fba28e9da0da8/recipes/anaconda-mode"; @@ -1765,25 +1831,6 @@ license = lib.licenses.free; }; }) {}; - anchored-transpose = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "anchored-transpose"; - version = "20080904.2254"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/anchored-transpose.el"; - sha256 = "1hklypbp79pgaf1yklbm3qx4skm3xlml0cm1r9b9js3dbqyha651"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/993271c9931170c3352daa3c1c0a8bcfa6915d9a/recipes/anchored-transpose"; - sha256 = "19dgj1605qxc2znvzj0cj6x29zyrh00qnzk2rlwpn9hvzypg9v7w"; - name = "anchored-transpose"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/anchored-transpose"; - license = lib.licenses.free; - }; - }) {}; android-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "android-mode"; @@ -1955,12 +2002,12 @@ ansible = callPackage ({ f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ansible"; - version = "20161218.1707"; + version = "20170926.1951"; src = fetchFromGitHub { owner = "k1LoW"; repo = "emacs-ansible"; - rev = "a712d9b48809c975525cb059ea278cbe8a839f5a"; - sha256 = "1jfksnk5fvr4h8mqb0mr2czyxnjmcdlrqdylvj0k0ks6xnskza91"; + rev = "9da54a2a426dca259ec9c2a8a60fb58e954be5bc"; + sha256 = "16z286gqy18s6bff1njkjpy0swrkfyarvb5xvik49pigd8hzh495"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8e45bf58b980ff542a5e887707a6361eb5ac0492/recipes/ansible"; @@ -2224,27 +2271,6 @@ license = lib.licenses.free; }; }) {}; - anything-project = callPackage ({ anything, fetchFromGitHub, fetchurl, imakado, lib, melpaBuild }: - melpaBuild { - pname = "anything-project"; - version = "20141024.227"; - src = fetchFromGitHub { - owner = "imakado"; - repo = "anything-project"; - rev = "9f6f04bc1911474e97e99faf52e204cf159add83"; - sha256 = "16a7i01q8qqkgph1s3jnwdr2arjq3cm3jpv5bk5sqs29c003q0pp"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e842d55882ec4d689d279fb80490db60a1f32fd6/recipes/anything-project"; - sha256 = "10crwm34igb4kjh97alni15xzhsb2s0d4ghva86f2gpjidka9fhr"; - name = "anything-project"; - }; - packageRequires = [ anything imakado ]; - meta = { - homepage = "https://melpa.org/#/anything-project"; - license = lib.licenses.free; - }; - }) {}; anything-prosjekt = callPackage ({ anything, fetchFromGitHub, fetchurl, lib, melpaBuild, prosjekt }: melpaBuild { pname = "anything-prosjekt"; @@ -2311,12 +2337,12 @@ anything-tramp = callPackage ({ anything, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "anything-tramp"; - version = "20170412.445"; + version = "20170708.1834"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-anything-tramp"; - rev = "08bf0752e5b885a0492fbd0d7790668683c87797"; - sha256 = "13026l259vbbgi7q0lb6jb7d54z6jgapv0d2qlprh9mlqjf32xic"; + rev = "c6d0e9bfa0f71c7c0bb75f6df0c82dd81c486f43"; + sha256 = "08ffw4y14c99jypl1nhiq2k3lbmv3lgw2dgmhkb8lpc1szkjg57m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/anything-tramp"; @@ -2350,24 +2376,6 @@ license = lib.licenses.free; }; }) {}; - aok = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "aok"; - version = "20130824.427"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/aok.el"; - sha256 = "10vdmxzifxx3fkpyg76ngnj79k3d2pq0f322rd8ssc66alxhkz3g"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/38eee4f0f7ad25d9b1de9011e63b82400177cdd5/recipes/aok"; - sha256 = "1nkkbfwqp5r44wjwl902gm0xc8p3d2qj5mk1cchilr2rib52zd46"; - name = "aok"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/aok"; - license = lib.licenses.free; - }; - }) {}; aozora-view = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aozora-view"; @@ -2392,16 +2400,16 @@ apache-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "apache-mode"; - version = "20170407.1140"; + version = "20170711.913"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "apache-mode"; - rev = "8fd0d4db7ede5d4e360630235ede3beb1ba56cdf"; - sha256 = "0lawq0xx0y2kn89r633lb8kr4zkrbcm53dv8dylmv7lli9a7g1y9"; + rev = "0906559e0cb2997405d98ea6b2195954e3935d3b"; + sha256 = "0vfyi34qcwkz9975cq5hin1p2zyy3h05fni4f93xyrcs31zvmk22"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b5216c40e60c5a69a6235c15b432b5e9bdda6fd3/recipes/apache-mode"; - sha256 = "0f8r3xnnidcm9ahj8c3s1vxk6yqk3ra34nrc19r76xyprbb2sjsm"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/apache-mode"; + sha256 = "0wzfx3kaiwvya30ihq3vpdhy6znkzf25w5x43x457ifdn2vrh9zi"; name = "apache-mode"; }; packageRequires = []; @@ -2431,22 +2439,22 @@ license = lib.licenses.free; }; }) {}; - apib-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: + apib-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: melpaBuild { pname = "apib-mode"; - version = "20161201.817"; + version = "20170520.658"; src = fetchFromGitHub { owner = "w-vi"; repo = "apib-mode"; - rev = "940fb1faecb4b0a460ed36de5551a59ebd1edf58"; - sha256 = "0sny3jv4amfc3lx45j1di2snp42xfl907q3l7frqhhsal57lkvd1"; + rev = "6cc7c6f21b8e415b1718bb6a07ab2182e9e9dde6"; + sha256 = "1717f78kaqkmbhfwb9kzsv5wi2zabcbwb4wh1jklhcaalvmk3z7d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc2ebb04f975d8226a76260895399c937d6a1940/recipes/apib-mode"; sha256 = "0y3n0xmyc4gkypq07v4sp0i6291qaj2m13zkg6mxp61zm669v2fb"; name = "apib-mode"; }; - packageRequires = [ emacs markdown-mode ]; + packageRequires = [ markdown-mode ]; meta = { homepage = "https://melpa.org/#/apib-mode"; license = lib.licenses.free; @@ -2455,12 +2463,12 @@ apiwrap = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "apiwrap"; - version = "20170302.1825"; + version = "20171022.2203"; src = fetchFromGitHub { owner = "vermiculus"; repo = "apiwrap.el"; - rev = "e6732de88dcbe48ae88466b5cf34fd30405540df"; - sha256 = "1xg96pidwzxrg2r025pdc8644m8g11z9avcw3jvpmm11rvi2af7z"; + rev = "79422b610f2c3d9f52fb35449485a2fc541bc5a0"; + sha256 = "0i2k975szdgzmrbwkvcnhrk73ndvk0q215fn68sb5m4zf43ifwxz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0197fd3657e65e3826375d9b6f19da3058366c91/recipes/apiwrap"; @@ -2536,34 +2544,15 @@ license = lib.licenses.free; }; }) {}; - apropos-fn-plus-var = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "apropos-fn-plus-var"; - version = "20170221.748"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/apropos-fn+var.el"; - sha256 = "0aa8d92ibbi1ix60j73nhvy16l8dkb3njn9d9z256jixmvzab7gr"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/cd66a7c1a54ede8a279effeee5326be392058d1c/recipes/apropos-fn+var"; - sha256 = "1s5gnsipsj7dhc8ca806grg32i6vlwm78hcxhrbs830vx9k84g5x"; - name = "apropos-fn-plus-var"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/apropos-fn+var"; - license = lib.licenses.free; - }; - }) {}; apropospriate-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "apropospriate-theme"; - version = "20170414.1333"; + version = "20171010.1420"; src = fetchFromGitHub { owner = "waymondo"; repo = "apropospriate-theme"; - rev = "8d79047d58bf30e01cc9851431e7ee093c6bc60a"; - sha256 = "1ijdyd3a5hxanz1wm4fxzsnnr00dwlwivj12533n9wrx029bkg4z"; + rev = "b4d5a2fedec176d3562943668609766fab0b23ff"; + sha256 = "0y31zx6npv03ygjywy23pvrpvjwi1fh1qhs1qzxsi25pbbk1hkq0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1da33013f15825ab656260ce7453b8127e0286f4/recipes/apropospriate-theme"; @@ -2576,40 +2565,42 @@ license = lib.licenses.free; }; }) {}; - apu = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "apu"; - version = "20170221.750"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/apu.el"; - sha256 = "15mq2b0df4hx53hqvgl3hcrbf9ww370byg90cail6rm50wamyik6"; + apt-sources-list = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "apt-sources-list"; + version = "20171004.1143"; + src = fetchgit { + url = "https://git.korewanetadesu.com/apt-sources-list.git"; + rev = "842c3896f660295e4c16938aa1fd195e5d377460"; + sha256 = "1d1v2h91vabqdrjcrdnzqj4xzmm7gbad4mxcphrj5yfnc4rrfc12"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ad04078221946c9d6b758809ec03ff88efce7322/recipes/apu"; - sha256 = "0399rmjwcs7fykj10s9m0lm2wb1cr2bzw2bkgm5rp4n3va0rzaa2"; - name = "apu"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/141a22e593415302d64cf8ebd2635a1baf35eb38/recipes/apt-sources-list"; + sha256 = "1gnl6zqv6imk2qpv4lj7qyjgf1ldxib3k14gsmwqm0c1zwjsid3j"; + name = "apt-sources-list"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/apu"; + homepage = "https://melpa.org/#/apt-sources-list"; license = lib.licenses.free; }; }) {}; - arch-packer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + arch-packer = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "arch-packer"; - version = "20170417.346"; + version = "20170730.621"; src = fetchFromGitHub { - owner = "brotzeitmacher"; + owner = "brotzeit"; repo = "arch-packer"; - rev = "4a37e8fb9fadfb9f4e75a042231192b0a582b40d"; - sha256 = "0l36f5hnz4k556hkx42qsp2df9g319znnqq5mqgabykqbdd604hs"; + rev = "940e96f7d357c6570b675a0f942181c787f1bfd7"; + sha256 = "0m80ka51m7a1797q6br41x96znvqfmpwzh3vk4mz66mdx2r4xk77"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/39f13017cde2d209a58dc45f0df25dc723398b72/recipes/arch-packer"; - sha256 = "06gmkc63ys6diiwbhdjyn17yhvs91nxdhqkydmm18553pzsmcy72"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6d1796688ed0d6957557d960ca28e450f9bcb6cf/recipes/arch-packer"; + sha256 = "04kv22vpcpjhc047yz6k6dizmwwdjk6vcm8imri76gi9ns1w5n5z"; name = "arch-packer"; }; - packageRequires = [ emacs s ]; + packageRequires = [ async dash emacs s ]; meta = { homepage = "https://melpa.org/#/arch-packer"; license = lib.licenses.free; @@ -2636,6 +2627,27 @@ license = lib.licenses.free; }; }) {}; + archive-rpm = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "archive-rpm"; + version = "20171016.112"; + src = fetchFromGitHub { + owner = "legoscia"; + repo = "archive-rpm"; + rev = "e2fac6c018c19001f1f28e7c80721724684f8941"; + sha256 = "1qq0z5mmbhd0ma8v8bxy53n6ynqz5qf9n3h7566dylmdncyyv7hw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e5f5653e62afdc022eac30bda3d21bd2d2625d2e/recipes/archive-rpm"; + sha256 = "0s53zbn71lb008gw3f0b5w4q0pw0vgiqbffgnyib24sh03ijl7z7"; + name = "archive-rpm"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/archive-rpm"; + license = lib.licenses.free; + }; + }) {}; arduino-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "arduino-mode"; @@ -2702,12 +2714,12 @@ arjen-grey-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "arjen-grey-theme"; - version = "20160403.1215"; + version = "20170522.1347"; src = fetchFromGitHub { owner = "credmp"; repo = "arjen-grey-theme"; - rev = "b795dcb5760a5ccc3597733c5933b91252542135"; - sha256 = "0p8k6sxmvmf535sawis6rn6lfyl5ph263i1phf2d5wl3dzs0xj5x"; + rev = "4cd0be72b65d42390e2105cfdaa408a1ead8d8d1"; + sha256 = "1n5axwn498ahb6984ir1zfl8vvwgbvq9bbrdfzydkmjljhgrp0rd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ed9804061cfadd26c69bb1bfe63dbe22f916f723/recipes/arjen-grey-theme"; @@ -2723,12 +2735,12 @@ artbollocks-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "artbollocks-mode"; - version = "20161030.2059"; + version = "20170523.2122"; src = fetchFromGitHub { owner = "sachac"; repo = "artbollocks-mode"; - rev = "d77a01985a9161ce1676fb18d7228a0df566942b"; - sha256 = "1y69zq4r9ir1a2hy03lillxhw3skfj8ckkjv45i5xpasz4hjw50j"; + rev = "4a907e470bf345b88c3802c1241ce2b8cf4123ee"; + sha256 = "1l1dwhdfd5bwx92k84h5v47pv9my4p4wj0wq8hrwvwzwlv8dzn2w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/22b237ab91ddd3c17986ea12e6a32f2ce62d3a79/recipes/artbollocks-mode"; @@ -2762,24 +2774,6 @@ license = lib.licenses.free; }; }) {}; - ascii = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "ascii"; - version = "20130824.500"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/ascii.el"; - sha256 = "05fjsj5nmc05cmsi0qj914dqdwk8rll1d4dwhn0crw36p2ivql75"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ascii"; - sha256 = "0f90anxrpnb8k1lqmz0iim4yp20riy19palwmdyl840hz69m98cd"; - name = "ascii"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ascii"; - license = lib.licenses.free; - }; - }) {}; asilea = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "asilea"; @@ -2804,12 +2798,12 @@ asn1-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "asn1-mode"; - version = "20160626.2240"; + version = "20170728.1926"; src = fetchFromGitHub { owner = "kawabata"; repo = "asn1-mode"; - rev = "c244717529229d7ecc2b2c160992f28dcb755d2c"; - sha256 = "0r004sli3ggkhsdi61m8p32l227h5wligzph0mfhsy39fkhmva34"; + rev = "d5d4a8259daf708411699bcea85d322f18beb972"; + sha256 = "067khpi4ghzyifrk1vhi57n3alp67qks4k4km11hasiavi5gsjmp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b694baceceb54810be8f8c7152b2ac0b4063f01c/recipes/asn1-mode"; @@ -2825,12 +2819,12 @@ assess = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, m-buffer, melpaBuild }: melpaBuild { pname = "assess"; - version = "20170413.409"; + version = "20170504.657"; src = fetchFromGitHub { owner = "phillord"; repo = "assess"; - rev = "87118057b3ae0e6542fa5e22050eb44d6efe8baa"; - sha256 = "0cilb32zr38x9kfzfyr1ciag5pzbgp1dk62r7lhn8dxc2ip6f11j"; + rev = "e5b0415126c6bd24bd220759ff04220d963a0195"; + sha256 = "04242jhrajd9qi9dzngv33730sqhymgr0f18hf92fgb2k5649lqk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f917a34506193f2674b195569dfd3c13ba62c1d/recipes/assess"; @@ -2846,12 +2840,12 @@ async = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "async"; - version = "20170219.942"; + version = "20171015.2239"; src = fetchFromGitHub { owner = "jwiegley"; repo = "emacs-async"; - rev = "666066d30a420d86801d8380f5991f2b82471107"; - sha256 = "1hjyac7dm0yvg5y32fii6508wwhl5q493i8ikf3fszafz03nc6sc"; + rev = "424ecd8a28cd59fe7d2de3cb4b37a4224e34c123"; + sha256 = "0zmbg3r6sykmchy8hhbw8glzl8xvki030rzg9r55v4g61k8qy13r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/async"; @@ -2909,12 +2903,12 @@ atom-dark-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "atom-dark-theme"; - version = "20151119.2335"; + version = "20170710.1612"; src = fetchFromGitHub { owner = "whitlockjc"; repo = "atom-dark-theme-emacs"; - rev = "b6963e486d27eae7cd472736c106c7079c2a3d3c"; - sha256 = "0jfpzv8dmvl4nr6kvq5aii830s5h632bq2q3jbnfc4zdql7id464"; + rev = "7fb37fd953e417acbcf7dd3f36e3167bed9bc887"; + sha256 = "040xp0nqa9akjv30kgnw6l1248g2cl5yzihhfwbr8cgywqfir1lw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d1f565871559d6ea4ca4bb2fbaebce58f2f383eb/recipes/atom-dark-theme"; @@ -2930,12 +2924,12 @@ atom-one-dark-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "atom-one-dark-theme"; - version = "20170117.1905"; + version = "20170803.916"; src = fetchFromGitHub { owner = "jonathanchu"; repo = "atom-one-dark-theme"; - rev = "44903ab7c349ef225499d642f249b6dfef5c5161"; - sha256 = "0cjp2p018xsj3sx46adrlsc3zksph4hgkn2gdqb3w8illgzp9nyp"; + rev = "6ad96e25f8b46942380afbc33e3659a5e9fa09b1"; + sha256 = "06gf26r00yq1whrws9ilra8l2xfg2x89vxbgx3vgbwlvwx9wcsm6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3ba1c4625c9603372746a6c2edb69d65f0ef79f5/recipes/atom-one-dark-theme"; @@ -2951,12 +2945,12 @@ atomic-chrome = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, websocket }: melpaBuild { pname = "atomic-chrome"; - version = "20161213.730"; + version = "20171022.107"; src = fetchFromGitHub { owner = "alpha22jp"; repo = "atomic-chrome"; - rev = "1b96d563c5d435baf8dfa9cdae5ef38ce34629b9"; - sha256 = "0caiv0snjxj0f1p0rx18r1w4nbsk8shrin2dr2ddg54mpxzf8r98"; + rev = "1bd79fc940d2be82eaec20aca2069677e156a697"; + sha256 = "1j5brpmbahnrp8kxphq10g0l703czdalqa731y3s2p3m3gida54x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/35785773942a5510e2317ded5bdf872ffe434e8c/recipes/atomic-chrome"; @@ -2972,12 +2966,12 @@ auctex-latexmk = callPackage ({ auctex, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "auctex-latexmk"; - version = "20160923.7"; + version = "20170618.936"; src = fetchFromGitHub { owner = "tom-tan"; repo = "auctex-latexmk"; - rev = "0315925ac9a892e73859cf4b720f36f2727f47f1"; - sha256 = "0cdc2wkyqs4c6iypkynm0s540isp7yyyavp80rg5x3cid3hsbinm"; + rev = "4d353522650d7685acbf1d38f7dbc504f734bd84"; + sha256 = "0qvscgffmzqk8lkcg3yk91vciim5ygk2m4crk02qn72ipkw5q13m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3f48af615c56f093dff417a5d3b705f9993c518f/recipes/auctex-latexmk"; @@ -3014,12 +3008,12 @@ audio-notes-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "audio-notes-mode"; - version = "20140204.1154"; + version = "20170611.1459"; src = fetchFromGitHub { owner = "Malabarba"; repo = "audio-notes-mode"; - rev = "2158b2e8d20df3184bbe273a7fd5aa693e98baa9"; - sha256 = "0q79kblcbz5vlzj0f49vpc1902767ydmvkmwwjs60x3w2f3aq3cm"; + rev = "fa38350829c7e97257efc746a010471d33748a68"; + sha256 = "1srg6rg3j9ri2cyr4g78dfqq3fhpn6hf3mq4iz2jfqjayppfv38b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/audio-notes-mode"; @@ -3053,36 +3047,15 @@ license = lib.licenses.free; }; }) {}; - aurora-config-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "aurora-config-mode"; - version = "20140520.203"; - src = fetchFromGitHub { - owner = "bdd"; - repo = "aurora-config-mode.el"; - rev = "0a7ca7987c3a0824e25470389c7d25c337a81593"; - sha256 = "0ns1xhpk1awbj3kv946dv11a99p84dhm54vjk72kslxwx42nia28"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/aurora-config-mode"; - sha256 = "1hpjwidqmjxanijsc1imc7ww9abbylmkin1p0846fbz1hz3a603c"; - name = "aurora-config-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/aurora-config-mode"; - license = lib.licenses.free; - }; - }) {}; auth-password-store = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, seq }: melpaBuild { pname = "auth-password-store"; - version = "20170123.107"; + version = "20171026.537"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "auth-password-store"; - rev = "cfd9cecb319c8fb547a62c732a5c1a106049c200"; - sha256 = "14cxchnp3sxnps03iycifvjx0w5lsxfnz6qsxgkxnis300lmnkym"; + rev = "79e297e9f2c2bccb545994ddda356f958889b4ac"; + sha256 = "11nc3hicp8n21rmj00svzh0kfhyb92w37ipk6nkl1fd3jk1xzr7d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f4d2a28373ba93da5b280ebf40c5a3fa758ea11/recipes/auth-password-store"; @@ -3137,40 +3110,22 @@ license = lib.licenses.free; }; }) {}; - auto-capitalize = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "auto-capitalize"; - version = "20160415.1403"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/auto-capitalize.el"; - sha256 = "0xywyfpsi64g9lihm5ncmjrj06iq9s6pp9fmsgj1hdf9y0z65lg0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d4edbba637a27a641f53f8a51861b176cabaa286/recipes/auto-capitalize"; - sha256 = "18fygc71n9bc0vrpymz2f7sw9hzkpqxzfglh53shmbm1zns3wkw0"; - name = "auto-capitalize"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/auto-capitalize"; - license = lib.licenses.free; - }; - }) {}; - auto-compile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }: + auto-compile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }: melpaBuild { pname = "auto-compile"; - version = "20170130.1017"; + version = "20170817.1437"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "auto-compile"; - rev = "0cbebd8fd22c88a57a834797e4841900ea1bae1c"; - sha256 = "1sngafab6sssidz6w1zsxw8i6k4j13m0073lbmp7gq3ixsqdxbr7"; + rev = "a31819a1b75a2320edb0f7f25d6c6faf528bf41a"; + sha256 = "17hzl03livgj49zb0knlfn6r020nvj41pjjz3acy82zwrjydsvxa"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e00dcd4f8c59c748cc3c85af1607dd19b85d7813/recipes/auto-compile"; - sha256 = "1cdv41hg71mi5ixxi4kiizyg03xai2gyhk0vz7gw59d9a7482yks"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/auto-compile"; + sha256 = "08k9wqk4yysps8n5n50v7lpadwsnm553pv9p7m242fwbgbsgz6nf"; name = "auto-compile"; }; - packageRequires = [ dash emacs packed ]; + packageRequires = [ emacs packed ]; meta = { homepage = "https://melpa.org/#/auto-compile"; license = lib.licenses.free; @@ -3452,12 +3407,12 @@ auto-dim-other-buffers = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "auto-dim-other-buffers"; - version = "20161004.539"; + version = "20170925.1208"; src = fetchFromGitHub { owner = "mina86"; repo = "auto-dim-other-buffers.el"; - rev = "31c13e7ed87dd862c73b836d11c127164edb1458"; - sha256 = "0snkc7pkiv8iiy7xb64mg8ja7ig0rzkp5b6qkbalgxk9m4l8nmcb"; + rev = "d1ee176652d7f5a77608e54175b7e67c31d41381"; + sha256 = "1qqb051b16z2ay1xqx2ncy2p07cs29dv6wdy1x3n3w85yw9kh0mx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/auto-dim-other-buffers"; @@ -3512,21 +3467,24 @@ license = lib.licenses.free; }; }) {}; - auto-install = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "auto-install"; - version = "20150418.1702"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/auto-install.el"; - sha256 = "043pb2wk7jh0jgxphdl4848rjyabna26gj0vlhpiyd8zc361pg9d"; + auto-minor-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "auto-minor-mode"; + version = "20170917.1437"; + src = fetchFromGitHub { + owner = "joewreschnig"; + repo = "auto-minor-mode"; + rev = "07ea9df59c5364d1938beef3dfbba24afd46c230"; + sha256 = "007w6j6zhjv2647njh80vfbrhjzhmb8rx9yi9rf94fhf17z8pmk3"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7ad02a591b981518abd147475195f9484e4012fc/recipes/auto-install"; - sha256 = "1gaxc2ya4r903k0jf3319wg7wg5kzq7k8rfy8ac9b0wfzv247ixk"; - name = "auto-install"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b3ab5f048034777551e344101d8415cac92362c8/recipes/auto-minor-mode"; + sha256 = "1dpdylrpw1pvlmhh229b3lqs07drx9kdhw4vcv5a48qah14dz6qa"; + name = "auto-minor-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/auto-install"; + homepage = "https://melpa.org/#/auto-minor-mode"; license = lib.licenses.free; }; }) {}; @@ -3554,12 +3512,12 @@ auto-package-update = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "auto-package-update"; - version = "20151025.2311"; + version = "20170803.1005"; src = fetchFromGitHub { owner = "rranelli"; repo = "auto-package-update.el"; - rev = "cdef79f9fc6f8347fdd05664978fb9a948ea0410"; - sha256 = "05llpa6g4nb4qswmcn7j3bs7hnmkrkax7hsk7wvklr0wrljyg9a2"; + rev = "0b296970d09d7deb7f780cb041fcbc313d39aa5d"; + sha256 = "1nicx2sjnmf3i7dlzi788rh2kjc7mj9q69knp3g2x72zxqy8x07d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/78f549a299a06941edce13381f597f3a61e8c723/recipes/auto-package-update"; @@ -3680,12 +3638,12 @@ auto-virtualenvwrapper = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s, virtualenvwrapper }: melpaBuild { pname = "auto-virtualenvwrapper"; - version = "20170309.1536"; + version = "20170916.1304"; src = fetchFromGitHub { owner = "robert-zaremba"; repo = "auto-virtualenvwrapper.el"; - rev = "114a096561ac3a3b10165d05a6e763cb3c39a9b3"; - sha256 = "0j392l0kb6h5ckmpvhd71blw7ad9i2r7fc6laqq6vsibnw899wy5"; + rev = "0f2cc8ea8f211c7b88f852ae6ffe677914652b92"; + sha256 = "1vm2nf7i9v56v57r7ckz8i1y3fk5s302bcfglywqysm4b8k36mp8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/02a209ae8f9fc68feb3bb64d32d129fedef2b80b/recipes/auto-virtualenvwrapper"; @@ -3722,12 +3680,12 @@ autobookmarks = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "autobookmarks"; - version = "20170303.1213"; + version = "20171021.1532"; src = fetchFromGitHub { owner = "Fuco1"; repo = "autobookmarks"; - rev = "62a1bbf904d075e7786fe1de2df86c5088a4be2d"; - sha256 = "156wbir32fvkwfvamp5yfw9gkz8j0cs2shgx406mhv7prcr6cnhs"; + rev = "b40c69f2d1c419adad516bee81b07b99110e5cc3"; + sha256 = "0dailajx26dixlibqps5wfh224ps7azm453lmzxjc2d10mgapi5v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e40e6ebeb30b3f23ad37a695e011431a48c5a62e/recipes/autobookmarks"; @@ -3782,25 +3740,6 @@ license = lib.licenses.free; }; }) {}; - autofit-frame = callPackage ({ fetchurl, fit-frame, lib, melpaBuild }: - melpaBuild { - pname = "autofit-frame"; - version = "20170221.752"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/autofit-frame.el"; - sha256 = "0c2b0d743w1c58iicg9r194zq2l5xxa08zyxj0nljw2dz9lhacwm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/autofit-frame"; - sha256 = "0p24qqnfa1vfn5pgnpvbxwi11zjkd6f3cv5igwg6h0pr5s7spnvw"; - name = "autofit-frame"; - }; - packageRequires = [ fit-frame ]; - meta = { - homepage = "https://melpa.org/#/autofit-frame"; - license = lib.licenses.free; - }; - }) {}; automargin = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "automargin"; @@ -3951,15 +3890,15 @@ avk-emacs-themes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "avk-emacs-themes"; - version = "20170110.1046"; + version = "20171001.235"; src = fetchFromGitHub { owner = "avkoval"; repo = "avk-emacs-themes"; - rev = "c75079ec9a84116c84c884c3bf258c95afcce7a7"; - sha256 = "1s9hn4y918h1ly1s8gfkidlwqijdzpbkfx1px8xfkia3b35qinvv"; + rev = "bf781eec7d46cce829ac5bdb114e728a110366e7"; + sha256 = "0bj51ii8vsd2gwyykxp1hvkp4r9kbc0b7ajskf8i5vb8qvpvkali"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b986c7c981ccc5c7169930908543f2a515edaefa/recipes/avk-emacs-themes"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ef362a76a3881c7596dcc2639df588227b3713c0/recipes/avk-emacs-themes"; sha256 = "0yimnfm50qsq505fc67b3qnxx2aiyz5a7bw87zkjrdnar12vv144"; name = "avk-emacs-themes"; }; @@ -3972,12 +3911,12 @@ avy = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "avy"; - version = "20170411.608"; + version = "20171014.20"; src = fetchFromGitHub { owner = "abo-abo"; repo = "avy"; - rev = "f2bedeeb5804a4863bb53aca6f77195f7d530c38"; - sha256 = "1p2l6zqls2c8v1ahn9rkfj6vvcsx1ymd0rd590scj8kqhjjyq3n7"; + rev = "36f768d9e320d300b81799e0fcc097cb89aad780"; + sha256 = "05jx71v5shdynia21wkrc1012r0wajdn0km1rclpyvf3ck34rh8q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/77fac7a702d4086fb860514e377037acedc60412/recipes/avy"; @@ -4014,12 +3953,12 @@ avy-menu = callPackage ({ avy, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "avy-menu"; - version = "20161231.1554"; + version = "20170518.2245"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "avy-menu"; - rev = "75f4025ca53b9700ca5b478d85f5e53e887a6023"; - sha256 = "05smmmf8hc8ksgq711gn7hd8a7z6zw6l2i86zbx5fb79s11sqjg0"; + rev = "c36e28cabbcea8fdd2ada723b9a28ecc35a2d6c0"; + sha256 = "14ci1saksmhnnk5a7dy2v9dbsw7c030524vwb3y1wpw0vv863zjh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2f0b4cfb30c405d44803b36ebcaccef0cf87fe2d/recipes/avy-menu"; @@ -4035,12 +3974,12 @@ avy-migemo = callPackage ({ avy, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, migemo }: melpaBuild { pname = "avy-migemo"; - version = "20170411.858"; + version = "20171031.915"; src = fetchFromGitHub { owner = "momomo5717"; repo = "avy-migemo"; - rev = "97020c34176538480cfd28004f16f9b5494315e6"; - sha256 = "1dgjkhcsb1iyjcwbjyccr7550lczg74jl7w1g7kif8g0df0mc5g6"; + rev = "5598fd25e483d8521e6d5f691802fa125947d7cf"; + sha256 = "1gkn1qbywv8as3csp5s1fwmrp89bmbqgyl7av0c1v9ggx7gkhd5f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6a02db29eb3e4b76b4a9cdbc966df5a1bd35dec0/recipes/avy-migemo"; @@ -4074,24 +4013,6 @@ license = lib.licenses.free; }; }) {}; - awk-it = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "awk-it"; - version = "20130917.1148"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/awk-it.el"; - sha256 = "1r1vbi1r3rdbkyb2naciqwja7hxigjhqfxsfcinnygabsi7fw9aw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/awk-it"; - sha256 = "0qic9m7c31sq4xgx7hnkhj0j0mfy26smghg266lrp5jii833qlz3"; - name = "awk-it"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/awk-it"; - license = lib.licenses.free; - }; - }) {}; aws-ec2 = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, tblui }: melpaBuild { pname = "aws-ec2"; @@ -4113,26 +4034,6 @@ license = lib.licenses.free; }; }) {}; - axiom-environment = callPackage ({ emacs, fetchhg, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "axiom-environment"; - version = "20161120.1200"; - src = fetchhg { - url = "https://bitbucket.com/pdo/axiom-environment"; - rev = "110e20a7a86c"; - sha256 = "0s18bbfw4kcv9iij1016pamq394rg8xr7016qp6cxyklp9hivcdm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/axiom-environment"; - sha256 = "1d3h1fn5zfbh7kpm2i02kza3bq9s6if4yd2vvfjdhgrykvl86h66"; - name = "axiom-environment"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/axiom-environment"; - license = lib.licenses.free; - }; - }) {}; babel = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "babel"; @@ -4203,24 +4104,6 @@ license = lib.licenses.free; }; }) {}; - backup-each-save = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "backup-each-save"; - version = "20130704.732"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/backup-each-save.el"; - sha256 = "0b9vvi2m0fdv36wj8mvawl951gjmg3pypg08a8n6rzn3rwg0fwz7"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/88fd979eb479701303e65e68c581f8f847887842/recipes/backup-each-save"; - sha256 = "1fv9sf6vkjyv93vil4l9hjm2fg73zlxbnif0xfm3kpmva9xin337"; - name = "backup-each-save"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/backup-each-save"; - license = lib.licenses.free; - }; - }) {}; backup-walker = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "backup-walker"; @@ -4305,27 +4188,6 @@ license = lib.licenses.free; }; }) {}; - baidu-life = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "baidu-life"; - version = "20160426.519"; - src = fetchFromGitHub { - owner = "lujun9972"; - repo = "el-baidu-life"; - rev = "5c4b3dbc016a2656cc2febaa2ac2268c05725b5c"; - sha256 = "024gpdjr1lbqjg6md526g4wz2shpgfpdrrd2m1bn4fissbzj70i1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/101ae6ea151df8d423f00cb6ac391374d0f7f3c8/recipes/baidu-life"; - sha256 = "0rib50hja33qk8dmw5i62gaxhx7mscj2y0n25jmnds7k88ms8z19"; - name = "baidu-life"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/baidu-life"; - license = lib.licenses.free; - }; - }) {}; bar-cursor = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bar-cursor"; @@ -4350,12 +4212,12 @@ base16-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "base16-theme"; - version = "20170415.1600"; + version = "20171025.1545"; src = fetchFromGitHub { owner = "belak"; repo = "base16-emacs"; - rev = "51d952579b5f91d92c386394d9ea8cd6535284f5"; - sha256 = "08i7zl8b1y3xn60imjvwri8zr7695f72rcdj7a9m1x8bwzipzrb0"; + rev = "1578c6cd8f76a664bda7fc9b2515ee8106552cb2"; + sha256 = "0wp2vfk7hpvagdiad9g4wj5992f1fv4v77x387v1sz5w1zn195aj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/30862f6be74882cfb57fb031f7318d3fd15551e3/recipes/base16-theme"; @@ -4371,12 +4233,12 @@ bash-completion = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bash-completion"; - version = "20150514.728"; + version = "20170924.1021"; src = fetchFromGitHub { owner = "szermatt"; repo = "emacs-bash-completion"; - rev = "1659c7ca38e2cf591525a3d0b9d97461de33916d"; - sha256 = "06c42531dy5ngscwfvg8rksg6jcsakfn7104hmlg1jp4kvfiy1kg"; + rev = "31bc1c1c21691668c6cc16a46361490d5bec303a"; + sha256 = "0iq9q0isaynrjhzgkm5hvw26162m52vbzwf12vic5nr9frxbxkv5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/bash-completion"; @@ -4396,8 +4258,8 @@ src = fetchFromGitHub { owner = "nick96"; repo = "basic-c-compile"; - rev = "335e96e19647ad7245fb68cf7e68cf86c5023d23"; - sha256 = "1sq6mmg5361z30psn6x2ylpr8yxsbg3d47qai9px7p889p63384l"; + rev = "0129786aeee50d7bb0020d9fc2b7508875d403e8"; + sha256 = "0q6scyva1psyam7jzygqcr1wayf70vrp237hm01q5i9cin8j4j1z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/basic-c-compile"; @@ -4410,6 +4272,27 @@ license = lib.licenses.free; }; }) {}; + basic-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: + melpaBuild { + pname = "basic-mode"; + version = "20171027.1114"; + src = fetchFromGitHub { + owner = "dykstrom"; + repo = "basic-mode"; + rev = "7a76ec2d45f6bc1e4b5a4c8996c4bf27a31741e6"; + sha256 = "02q9sxx9g8pqyiknbzy48qbmnvgl1pmcgsppbk7rybb68kq5zlqd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/71801bdc0720f150edeab6796487c753c6e7c3f5/recipes/basic-mode"; + sha256 = "1l0ylzww7jg6l804fdrklhay4is0wx1drfi9l9wn7gcdjh76mr6g"; + name = "basic-mode"; + }; + packageRequires = [ emacs seq ]; + meta = { + homepage = "https://melpa.org/#/basic-mode"; + license = lib.licenses.free; + }; + }) {}; basic-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "basic-theme"; @@ -4431,24 +4314,6 @@ license = lib.licenses.free; }; }) {}; - batch-mode = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "batch-mode"; - version = "20140807.1350"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/batch-mode.el"; - sha256 = "1aa611jrzw4svmxvw1ghgh53x4nry0sl7mxmp4kxiaybqqvz6a1p"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7fb675b865b8fa1497cdd33764bad051b2fd4d7e/recipes/batch-mode"; - sha256 = "1p0rh5r8w00jag64sbjy8xb9g6lqhm2fz476v201kbrj9ggp643x"; - name = "batch-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/batch-mode"; - license = lib.licenses.free; - }; - }) {}; bats-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bats-mode"; @@ -4493,11 +4358,11 @@ }) {}; bbdb = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bbdb"; - version = "20170129.2224"; + version = "20171017.817"; src = fetchgit { url = "https://git.savannah.nongnu.org/git/bbdb.git"; - rev = "8998b3416b36873f4e49454879f2eed20c31b384"; - sha256 = "086ivc9j7vninb46kzparg7zjmdsv346gqig6ki73889wym1m7xn"; + rev = "339aa15f20e1f542db97a3f3d2d65a61ce5c0e93"; + sha256 = "00782y1vas8rd9g30jqhnc24bsqsy5c31qn85ipi1vc8lrbyfcg1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/bbdb"; @@ -4531,48 +4396,6 @@ license = lib.licenses.free; }; }) {}; - bbdb-android = callPackage ({ bbdb-vcard, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "bbdb-android"; - version = "20150705.2224"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "bbdb-android"; - rev = "60641acf8b90e34b70f783b3d6e7789a4272f2b4"; - sha256 = "0m80k87dahzdpfa4snbl4p9zm5d5anc8s91535mwzsnfbr98qmhm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1296e9ffe3a49022a9480b398fbfa311121a1020/recipes/bbdb-android"; - sha256 = "0v3njygqkcrwjkf7jrqmza6bwk2jp3956cx1qvf9ph7dfxsq7rn3"; - name = "bbdb-android"; - }; - packageRequires = [ bbdb-vcard ]; - meta = { - homepage = "https://melpa.org/#/bbdb-android"; - license = lib.licenses.free; - }; - }) {}; - bbdb-china = callPackage ({ bbdb-vcard, chinese-pyim, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "bbdb-china"; - version = "20150615.1856"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "bbdb-china"; - rev = "a64725ca6dbb5ec1825f3a9112df9aa54bb14f6c"; - sha256 = "07plwm5nh58qya03l8z0iaqh8bmyhywx7qiffkf803n8wwjb3kdn"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/bbdb-china"; - sha256 = "1clrl3gk036w8q3p2f189jp6wv1y3xv037v77rg87dyz0yjs61py"; - name = "bbdb-china"; - }; - packageRequires = [ bbdb-vcard chinese-pyim ]; - meta = { - homepage = "https://melpa.org/#/bbdb-china"; - license = lib.licenses.free; - }; - }) {}; bbdb-csv-import = callPackage ({ bbdb, dash, fetchFromGitLab, fetchurl, lib, melpaBuild, pcsv }: melpaBuild { pname = "bbdb-csv-import"; @@ -4615,27 +4438,6 @@ license = lib.licenses.free; }; }) {}; - bbdb-handy = callPackage ({ bbdb, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "bbdb-handy"; - version = "20150707.1752"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "bbdb-handy"; - rev = "67936204488b539fac9b4a7bfbf11546f3b13de2"; - sha256 = "04yxky7qxh0s4y4addry85qd1074l97frhp0hw77xd1bc7n5zzg0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/bbdb-handy"; - sha256 = "16wjnsw4p7y21zmpa69vpwydsv5i479czk3y79cnn7s4ap69jmm8"; - name = "bbdb-handy"; - }; - packageRequires = [ bbdb ]; - meta = { - homepage = "https://melpa.org/#/bbdb-handy"; - license = lib.licenses.free; - }; - }) {}; bbdb-vcard = callPackage ({ bbdb, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bbdb-vcard"; @@ -4681,16 +4483,16 @@ bbyac = callPackage ({ browse-kill-ring, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bbyac"; - version = "20170127.516"; + version = "20171007.722"; src = fetchFromGitHub { owner = "baohaojun"; repo = "bbyac"; - rev = "4dfb1f7c7f0402a0abf45e00007edc2c7f98a25a"; - sha256 = "0vm83ccr9q93z4cvnrzz0al5rpxm8zh9yysn5lja6g2474nm01wy"; + rev = "584af0efa4809252bb37cf165df029410198327e"; + sha256 = "17cmlc49y26j2salkmcsck9618s1p7y49phiy7hvzkipa13qmj9w"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4409df77dca17b3f9556666a62ee924cb8794364/recipes/bbyac"; - sha256 = "19s9fqcdyqz22m981vr0p8jwghbs267yrlxsv9xkfzd7fccnx170"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/92c10c13a1bd19c8bdbca128852d1c91b76f7002/recipes/bbyac"; + sha256 = "1pb12b8xrcgyniwqc90z3kr3rq9kkzxjawwcz7xwzymq39fx0897"; name = "bbyac"; }; packageRequires = [ browse-kill-ring cl-lib ]; @@ -4723,12 +4525,12 @@ beacon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "beacon"; - version = "20170404.906"; + version = "20171017.1540"; src = fetchFromGitHub { owner = "Malabarba"; repo = "beacon"; - rev = "f1a3ff5ea8fecf9bf250205de66aedf0bf49c35b"; - sha256 = "0wr2ffwbi5w23a7hbdmn5ijfy5gmizrmy75zj6m1bz4mbw23ccvn"; + rev = "729338b02a0e331a4faf475da9f54771a3470106"; + sha256 = "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d09cfab21be800831644218e9c8c4433087951c0/recipes/beacon"; @@ -4765,12 +4567,12 @@ beginend = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "beginend"; - version = "20170324.728"; + version = "20171003.548"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "beginend"; - rev = "2d8908922fadc1e29938703593a77da6456dc276"; - sha256 = "0h6i56pa92x89rilgb7kgfpnsx57d157r284q0icm4xj990svg21"; + rev = "2762796b54c7fd8613b02c041b2b9afeb13eb9fa"; + sha256 = "1g1mml0npypfk0vhicy4s7fa5df76xqpb80llxcfbnl2si9fzyfb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31c1157d4fd9e47a780bbd91075252acdc7899dd/recipes/beginend"; @@ -4804,6 +4606,27 @@ license = lib.licenses.free; }; }) {}; + benchstat = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "benchstat"; + version = "20171013.2012"; + src = fetchFromGitHub { + owner = "Quasilyte"; + repo = "benchstat.el"; + rev = "a5b67cf7972ca2bbc9f5bc6a0f521ab02b76d4f0"; + sha256 = "02v5l9qvzcr58qr973phgj1c846pqp3cj16khn4h9v3f3gb180n1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d9180fbedf95f9b1f5810bbf4929dfee513f89e3/recipes/benchstat"; + sha256 = "0h2zi4gh23bas1zfj7j2x994lwgd3xyys96ipg1vq7z2b06572k9"; + name = "benchstat"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/benchstat"; + license = lib.licenses.free; + }; + }) {}; bert = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bert"; @@ -4828,12 +4651,12 @@ better-defaults = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "better-defaults"; - version = "20160619.2308"; + version = "20170613.2104"; src = fetchFromGitHub { owner = "technomancy"; repo = "better-defaults"; - rev = "ce2a9a85636a2ec220a6005185fb271b6f264907"; - sha256 = "0f1qq2fr734fa5cnlfpz4nm9j3wa1npji1vid3z02sllnh9y2dvq"; + rev = "12d9e6dbf24a8a3369b19650d74471b17b27f78d"; + sha256 = "1rx3p6syp6axnxbscg0l73yihgwdq7bdnkcrvfikz79yflxrsnmq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7bb729c1ad8602a5c0c27e81c9442981a54a924a/recipes/better-defaults"; @@ -4846,24 +4669,6 @@ license = lib.licenses.free; }; }) {}; - better-registers = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "better-registers"; - version = "20140813.119"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/better-registers.el"; - sha256 = "05dlhhvd1m9q642gqqj6klif13shbinqi6bi72fldidi1z6wcqlh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2667829dfc72e848ab939be0602cbec1105671b0/recipes/better-registers"; - sha256 = "01i0qjrwsc5way2h9z3pmsgccsbdifsq1dh6zhka4h6qfgrmn3bx"; - name = "better-registers"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/better-registers"; - license = lib.licenses.free; - }; - }) {}; better-shell = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "better-shell"; @@ -4972,12 +4777,12 @@ bibretrieve = callPackage ({ auctex, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bibretrieve"; - version = "20170417.620"; + version = "20170906.1036"; src = fetchFromGitHub { owner = "pzorin"; repo = "bibretrieve"; - rev = "813730a8967e003ca67342cc45b62c17cda77a7c"; - sha256 = "0wy2013azglz095w4w3g693hr6f68z2fbwpc6gixr85rd0pk9hh9"; + rev = "41b9a77e49d6c2e6e6f854fb8b1b45b2967c2f86"; + sha256 = "0rmb5qw9lj7xzwcw3haz6a22gpcb61cgkks194lq1w03gayj61rd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e548e0cf8babaf32f1db58099599a72cebdbb84d/recipes/bibretrieve"; @@ -5014,12 +4819,12 @@ bibtex-utils = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bibtex-utils"; - version = "20170221.1757"; + version = "20170817.1219"; src = fetchFromGitHub { owner = "plantarum"; repo = "bibtex-utils"; - rev = "36953c6bd1e14eac553834720f383d4114585f55"; - sha256 = "0z21p9j4wsbiygwk8lz9awwy1c2w2mnfyq501bvvd7r99k7hhy2k"; + rev = "ed5ccce46c2088a28a2f0c49caa679d2f20567f0"; + sha256 = "0cy0w4986lngzhzmfvk9r5xf0qa9bdz2ybzgv3nkwl48pjqvvi15"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5764b6a880e8143db66e9011cc1c2bf0bcd61082/recipes/bibtex-utils"; @@ -5032,15 +4837,57 @@ license = lib.licenses.free; }; }) {}; + bifocal = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "bifocal"; + version = "20171004.1124"; + src = fetchFromGitHub { + owner = "riscy"; + repo = "bifocal-mode"; + rev = "a8b222b069a6bd64531b4780905989797bad8abe"; + sha256 = "0c6vzh35lj3pg9wd4v2fy6xdmcg9kq3n5br6rp4lx257gxglzpwh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/79e71995bd8452bad2e717884f148ec74c9735fc/recipes/bifocal"; + sha256 = "07qrxsby611l3cwsmw3d53h1n7cd1vg53j4vlc2isg56l2m4qks5"; + name = "bifocal"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/bifocal"; + license = lib.licenses.free; + }; + }) {}; + binclock = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "binclock"; + version = "20170802.416"; + src = fetchFromGitHub { + owner = "davep"; + repo = "binclock.el"; + rev = "87042230d7f3fe3e9a77fae0dbab7d8f7e7794ad"; + sha256 = "0bbcn3aif3qvmgbga7znivcbgn1n79278x7xvbha52zpj584xp8d"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/95dfa38d795172dca6a09cd02e21630747723949/recipes/binclock"; + sha256 = "1s0072kcd1xp8355j8aph94gb3a1wqmzx1hhfp9d6bzqf6cij8gk"; + name = "binclock"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/binclock"; + license = lib.licenses.free; + }; + }) {}; bind-chord = callPackage ({ bind-key, fetchFromGitHub, fetchurl, key-chord, lib, melpaBuild }: melpaBuild { pname = "bind-chord"; - version = "20160530.1042"; + version = "20170717.1152"; src = fetchFromGitHub { owner = "waymondo"; repo = "use-package-chords"; - rev = "e8551ce8a514d865831d3a889acece79103fc627"; - sha256 = "0500pqsszg7h7923i0kyjirdyhj8aza3a2h5wbqzdpli2aqra5a5"; + rev = "f47b2dc8d79f02e5fe39de1f63c78a6c09be2026"; + sha256 = "0nwcs3akf1cy7dv36n5s5hsr67djfcn7w499vamn0yh16bs7r5ds"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/92fbae4e0bcc1d5ad9f3f42d01f08ab4c3450f1f/recipes/bind-chord"; @@ -5060,8 +4907,8 @@ src = fetchFromGitHub { owner = "jwiegley"; repo = "use-package"; - rev = "0139f85595a10b9e50e38f3d8d59f70cf4f3a2a2"; - sha256 = "1zv2an1mzks51j46j2gvizjmh7k5frzw7qja9kh9lvighl2qrg2v"; + rev = "82d15961a0f2dc7842a98030d6daee0061ef63dc"; + sha256 = "0i9cqms0bm6vfn8mzkzv40dql2mzmp2jma1na6m8bf1z2ciszy6l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d39d33af6b6c9af9fe49bda319ea05c711a1b16e/recipes/bind-key"; @@ -5098,12 +4945,12 @@ bing-dict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bing-dict"; - version = "20170209.1459"; + version = "20170604.1831"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "bing-dict.el"; - rev = "7c067b7a3a1a4797476f03a65f4a0b4a269a70c7"; - sha256 = "1cw8zxcj7ygj73dc8xf6b4sdjrwxfl6h07mrwym8anllqs2v0fa6"; + rev = "d4b261739e53e8ed8fa5db3d3946de82c0ab8e34"; + sha256 = "0dn6rifr0njpw3mwbyn21bw88lp0kzwwjp7ivgbbl1bxshj0ybhk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/bing-dict"; @@ -5263,24 +5110,6 @@ license = lib.licenses.free; }; }) {}; - blank-mode = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "blank-mode"; - version = "20130824.459"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/blank-mode.el"; - sha256 = "1wdplnmdllbydwr9gyyq4fbkxl5xjh7220vd4iajyv74pg2jkkkv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7e687f3d3945bdff0e8e36bcff1f629d8ad921fc/recipes/blank-mode"; - sha256 = "1pyx5xwflnni9my5aqpgf8xz4q4rvmj67pwb4zxx1lghrca97z87"; - name = "blank-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/blank-mode"; - license = lib.licenses.free; - }; - }) {}; blgrep = callPackage ({ clmemo, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "blgrep"; @@ -5305,12 +5134,12 @@ bliss-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bliss-theme"; - version = "20141115.2301"; + version = "20170808.607"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-bliss-theme"; - rev = "2c6922cb24118722819bea79a981f066039d34a3"; - sha256 = "0dn0i3nxrqd82b9d17p1v0ddlpxnlfclkc8sqzrwq6cf19wcrmdr"; + rev = "c3cf6d8a666ab26909b7da158f9e94df71a5fbbf"; + sha256 = "1bpyhsjfdjfa1iw9kv7fsl30vz48qllqgjg1rsxdl3vcripcbc9z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/bliss-theme"; @@ -5330,8 +5159,8 @@ src = fetchFromGitHub { owner = "mgrachten"; repo = "bln-mode"; - rev = "1de92cec97a4693b8b932713e333730118db9183"; - sha256 = "0dlcxh3acaiw3q9sa74jw4bpz7fv9lvpws68gw1qhs39f1plyzfx"; + rev = "6c20b3269e88952c19ca9ad151221c7e2e27b465"; + sha256 = "04ggaybf1yi0ynqfr6vslx0ld5n6zs2ymmk63hr6lp2jb6dyhdhx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ee12ef97df241b7405feee69c1e66b3c1a67204b/recipes/bln-mode"; @@ -5368,12 +5197,12 @@ blog-admin = callPackage ({ cl-lib ? null, ctable, f, fetchFromGitHub, fetchurl, lib, melpaBuild, names, s }: melpaBuild { pname = "blog-admin"; - version = "20170310.909"; + version = "20170923.709"; src = fetchFromGitHub { owner = "CodeFalling"; repo = "blog-admin"; - rev = "925e9cf749387fc5c631d93c1652a4a80eac91c3"; - sha256 = "0kb1y56cq990i1hsvk8dfrh3ks67l6wf7a3658w6f1nj903xy3rf"; + rev = "b5f2e1dad7d68ec903619f7280bb0bcb7e398a1e"; + sha256 = "0fgzmmjxhl8i9yqx1bvb7hgkk9w4ylx73xy990qf1bl7fg21v636"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/blog-admin"; @@ -5410,12 +5239,12 @@ bm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bm"; - version = "20170103.1424"; + version = "20170815.1609"; src = fetchFromGitHub { owner = "joodland"; repo = "bm"; - rev = "dd5dc454c62ceae6432cef6639e08db6ea6a865f"; - sha256 = "0pjgiqhbch0kzlyqq0ij86nc8gjv5g9ammgx92z2k2pyj2zglh7h"; + rev = "b1bc10b1e9f01c48a7eedb9b08a22d05e7baed3c"; + sha256 = "16kfzi6chf28jyrsmz0jba3qq3mvxqambsdh09vr76ivmwbv48gh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/bm"; @@ -5494,12 +5323,12 @@ bonjourmadame = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bonjourmadame"; - version = "20160112.156"; + version = "20170919.434"; src = fetchFromGitHub { owner = "pierre-lecocq"; repo = "bonjourmadame"; - rev = "4b4baaec19d8893268a2c93b3c35ac2581d02ba4"; - sha256 = "06cpbjbv8ysz81szwgglgy5r1aay8rrzw5k86wyqg9jdzwpmilpn"; + rev = "d3df185fce78aefa689fded8e56a654f0fde4ac0"; + sha256 = "1acn63hd7s2z8viy52hmhncdic7m86rcqczxnz9aivikqy4hfnsi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/34c4cfd7bbf5b442a9304598ba0a23ba9b8dfae4/recipes/bonjourmadame"; @@ -5515,12 +5344,12 @@ boogie-friends = callPackage ({ cl-lib ? null, company, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }: melpaBuild { pname = "boogie-friends"; - version = "20161019.1425"; + version = "20171024.1955"; src = fetchFromGitHub { owner = "boogie-org"; repo = "boogie-friends"; - rev = "8b567f5efe71d94bba3c29c52dffd58a33abc0cb"; - sha256 = "1gwj8d1635l7l7cqk1508gkzfgi8hpq6w0x22w7rd5yrwz1nmx5b"; + rev = "ff9903783013f3598b6f44c99d47b25c5cdbed00"; + sha256 = "0vc1pym7x6aafd88rrmm8yibq5y9wrx6b1pbgsfr7spcdq0hwwvg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5bdd06b82d002677c046876642efe1dc01bc3e77/recipes/boogie-friends"; @@ -5533,24 +5362,6 @@ license = lib.licenses.free; }; }) {}; - bookmark-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "bookmark-plus"; - version = "20170331.1856"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/bookmark+.el"; - sha256 = "0iqvlwqilwpqlymj8iynw2miifl28h1g7z10q08rly2430fnmi37"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/bookmark+"; - sha256 = "0121xx7dp2pakk9g7sg6par4mkxd9ky746yk4wh2wrhprc9dqzni"; - name = "bookmark-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/bookmark+"; - license = lib.licenses.free; - }; - }) {}; bool-flip = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bool-flip"; @@ -5575,12 +5386,12 @@ boon = callPackage ({ dash, emacs, expand-region, fetchFromGitHub, fetchurl, lib, melpaBuild, multiple-cursors }: melpaBuild { pname = "boon"; - version = "20170406.1153"; + version = "20170825.416"; src = fetchFromGitHub { owner = "jyp"; repo = "boon"; - rev = "6dd44cdef13c3695a2890c0329f0d870cce8dfdb"; - sha256 = "0rfc4zgyijl9gcbf1bf1hnsx2pwl02jmxxj372z7nsvjwhwc20w9"; + rev = "13fca1929639e2239e9b4be060cbd4befd7921b4"; + sha256 = "0nbwmb4l2f6y58gx8bm42688y6sqc33l5sf0gh1vmn2ki2mq7jvh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/boon"; @@ -5617,12 +5428,12 @@ boron-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "boron-theme"; - version = "20150117.952"; + version = "20170808.608"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-boron-theme"; - rev = "ea5873139424d6ca013b915876daf0399432015b"; - sha256 = "1gys5ri56s2s525wdji3m72sxzswmb8cmhmw5iha84v7hlqkrahb"; + rev = "87ae1a765e07429fec25d2f29b004f84b52d2e0a"; + sha256 = "1kdf71af1s67vshgwkdgi7swxx942i605awhmhrhdjbkra29v4yn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/boron-theme"; @@ -5638,12 +5449,12 @@ boxquote = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "boxquote"; - version = "20170329.406"; + version = "20170802.417"; src = fetchFromGitHub { owner = "davep"; repo = "boxquote.el"; - rev = "b0239fb7b7a9d75d4ac3c66f9b96abd911dbf4e0"; - sha256 = "0agnsghxf35b6g49radxigw81bmvw1ggljzzmy771nmwl44q2dbb"; + rev = "7e47e0e2853bc1215739b2e28f260e9eed93b2c5"; + sha256 = "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2148f8f17b16154bfc337df69a5ad31e25a9b05/recipes/boxquote"; @@ -5680,15 +5491,15 @@ bpr = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bpr"; - version = "20160514.458"; + version = "20170930.642"; src = fetchFromGitHub { owner = "ilya-babanov"; repo = "emacs-bpr"; - rev = "8efa52363ae8f86ff06f2677e2e0fb963aa4c186"; - sha256 = "10178l56ryfxsrxysy9qb6vg71q1xavfw1sbchh0mrb90x12vilz"; + rev = "314b0d6f69ff5a9c2d25a1ce5a2109d67d4d9bb3"; + sha256 = "02qj8gnhxv39y8kvlw491cbiaknll3hg03pk4xx15rffl7dyrbds"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/410d9d7d9de4d53f1b760081ff46764f121e8f1d/recipes/bpr"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/bpr"; sha256 = "0rjxn40n4s4xdq51bq0w3455g9pli2pvcf1gnbr96zawbngrw6x2"; name = "bpr"; }; @@ -5764,12 +5575,12 @@ browse-at-remote = callPackage ({ cl-lib ? null, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "browse-at-remote"; - version = "20170330.1452"; + version = "20170720.1518"; src = fetchFromGitHub { owner = "rmuslimov"; repo = "browse-at-remote"; - rev = "7a34d6579a98d13b2887addab25947ea96502de9"; - sha256 = "1ybb9gyw1b4fjbh02lj632vc89m9yq91dvshnbnzg0wbr77d33xr"; + rev = "b5cff7971ca8bbb966e3acd9b7e5c4c007f94215"; + sha256 = "16ms9703m15dfxg6ap4mdw7msf8z5rzsdhba51dwivfpjxg7n52c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/browse-at-remote"; @@ -5785,12 +5596,12 @@ browse-kill-ring = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "browse-kill-ring"; - version = "20160125.9"; + version = "20171016.1312"; src = fetchFromGitHub { owner = "browse-kill-ring"; repo = "browse-kill-ring"; - rev = "c7df6c8f5fe1e82d17b23da6d43a038784721d10"; - sha256 = "0sndzhza9k4vcf70fzxsyzrfryaz92lm1y7bbb0dx10m65qljpbi"; + rev = "b746d01c888262e81d76f8949869cf9e02759b6a"; + sha256 = "177vbziv65jb3xla713iblng04m0f7hdq5d4hf0jaxn7pzm61n0d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/294dc32a672e6b6b0ebfc46cdf0ff9ceacf73e89/recipes/browse-kill-ring"; @@ -5803,25 +5614,6 @@ license = lib.licenses.free; }; }) {}; - browse-kill-ring-plus = callPackage ({ browse-kill-ring, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "browse-kill-ring-plus"; - version = "20170221.757"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/browse-kill-ring+.el"; - sha256 = "01cnh9i09b7i97aqjh8m7s18js85wm7cs25dxlkcrhy112pjb1nq"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e700f4066e67991dd67f6476c783e0a5134723db/recipes/browse-kill-ring+"; - sha256 = "1flw7vmqgsjjvr2zlgz2909gvpq9mhz8qkg6hvsrzwg95f4l548w"; - name = "browse-kill-ring-plus"; - }; - packageRequires = [ browse-kill-ring ]; - meta = { - homepage = "https://melpa.org/#/browse-kill-ring+"; - license = lib.licenses.free; - }; - }) {}; browse-url-dwim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, string-utils }: melpaBuild { pname = "browse-url-dwim"; @@ -5843,33 +5635,15 @@ license = lib.licenses.free; }; }) {}; - bs-ext = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "bs-ext"; - version = "20130824.459"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/bs-ext.el"; - sha256 = "1yslzlx54n17330sf6b2pynz01y6ifnkhipz4hggn1i55bz8hvrw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/74c4861e76bb806ec4c4fd3482162bf0d95530a8/recipes/bs-ext"; - sha256 = "0dddligqr71qdakgfkx0r45k9py85qlym7y5f204bxppyw5jmwb6"; - name = "bs-ext"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/bs-ext"; - license = lib.licenses.free; - }; - }) {}; bshell = callPackage ({ buffer-manage, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bshell"; - version = "20170116.1117"; + version = "20170903.1137"; src = fetchFromGitHub { owner = "plandes"; repo = "bshell"; - rev = "0abd93439895851c1ad3037b0df7443e577ed1ba"; - sha256 = "1frs3m44m4jjl3rxkahkyss2gnijpdpsbqvx0vwbl637gcap1slw"; + rev = "884a8b906617d305e9d5d2c3750618d2f86f9aed"; + sha256 = "16qh71yhpxs5cxjmkiqiia8xrxa0ym2n32znp4yc7xiv2xfw2ss4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cf0ed51304f752af3e1f56caf2856d1521d782a4/recipes/bshell"; @@ -6008,22 +5782,22 @@ license = lib.licenses.free; }; }) {}; - buffer-manage = callPackage ({ choice-program, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + buffer-manage = callPackage ({ choice-program, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buffer-manage"; - version = "20170109.1220"; + version = "20170916.957"; src = fetchFromGitHub { owner = "plandes"; repo = "buffer-manage"; - rev = "e320ae7e05803551d8b534aaee84cae6e53155e2"; - sha256 = "1dns2ngvmyyyr2a0ww9af0s8yzhbgm1gqqlc6686b04wnj8gdphf"; + rev = "4a0d526ca45264971796efe67c6e41d8aa659e4c"; + sha256 = "15p089qfz8ra6f2lhny492hiricgs39w7w5iak2zlqm6k88cl1j8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/28f8f376df810e6ebebba9fb2c93eabbe3526cc9/recipes/buffer-manage"; sha256 = "0fwri332faybv2apjh8zajqpryi0g4kk3and8djibpvci40l42jb"; name = "buffer-manage"; }; - packageRequires = [ choice-program emacs ]; + packageRequires = [ choice-program dash emacs ]; meta = { homepage = "https://melpa.org/#/buffer-manage"; license = lib.licenses.free; @@ -6053,15 +5827,15 @@ buffer-sets = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buffer-sets"; - version = "20161231.1331"; + version = "20170717.2040"; src = fetchgit { url = "https://git.flintfam.org/swf-projects/buffer-sets.git"; - rev = "f29c30f7cef4e29837c1e6e1282cf99a37c4210c"; - sha256 = "0kdi330p5xk67nzhj7mrz8arsblbx39lj1z4zy863294fn3ark7g"; + rev = "4a4ccb0d6916c3e9fba737bb7b48e8aac921954e"; + sha256 = "1rg6iwswi82w8938pavwhvvr2z3ismb42asam2fkad47h2sgn0gz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2e12638554a13ef49ab24da08fe20ed2a53dbd11/recipes/buffer-sets"; - sha256 = "0r8mr53bd5cml5gsvq1hbl9894xsq0wwv4p1pp2q4zlcyxlwf4fl"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/61d07bbe7201fc991c7ab7ee6299a89d63ddb5e5/recipes/buffer-sets"; + sha256 = "1xj9fn2x4kbx8kp999wvz1j68znp7j81zl6rnbaipbx7hjpqrsin"; name = "buffer-sets"; }; packageRequires = [ cl-lib ]; @@ -6070,24 +5844,6 @@ license = lib.licenses.free; }; }) {}; - buffer-stack = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "buffer-stack"; - version = "20101223.220"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/buffer-stack.el"; - sha256 = "0d87cl7a4rcd6plbjyf26vaar7imwd18z24xdi4dz734m9zbkg6r"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/buffer-stack"; - sha256 = "0lnd5mh20b4isa6m930dzibw3v4jyzp1ryvmz8irca28xfn0hjln"; - name = "buffer-stack"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/buffer-stack"; - license = lib.licenses.free; - }; - }) {}; buffer-utils = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buffer-utils"; @@ -6109,6 +5865,27 @@ license = lib.licenses.free; }; }) {}; + buffer-watcher = callPackage ({ cl-lib ? null, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "buffer-watcher"; + version = "20170913.139"; + src = fetchFromGitHub { + owner = "NicolasPetton"; + repo = "buffer-watcher"; + rev = "b32c67c8a5d724257d759f4c903d0dedc32246ef"; + sha256 = "0mygs48mk2z8cw1csz2wfyn7kln9662d16hwpmbxs5x8k71aq8jx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c8681776d467951d14d8247e6939bd9a6f2a80ec/recipes/buffer-watcher"; + sha256 = "0v096021xk7k821bxb5zddw6sljqa6fs8f7s8j0w3pv6lmhra1ln"; + name = "buffer-watcher"; + }; + packageRequires = [ cl-lib f ]; + meta = { + homepage = "https://melpa.org/#/buffer-watcher"; + license = lib.licenses.free; + }; + }) {}; bufshow = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bufshow"; @@ -6196,12 +5973,12 @@ build-status = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "build-status"; - version = "20170323.1621"; + version = "20171031.611"; src = fetchFromGitHub { owner = "sshaw"; repo = "build-status"; - rev = "01bb9cc1776e8eaab68147175aee9879d9541c4b"; - sha256 = "1c6q6rk6rvip5xv2zdpqamprx9kqh0c6v3r939fn7m4fnyyz15fn"; + rev = "c29a0146c5d0be274f5e17921e01698f572c23a1"; + sha256 = "03f0h7sp0sr9kjyhvcx7i34lvc26f5x8nikfidihgzhrqpprv2b6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/23bbe012f313cf0cf4c45a66eb0bee9361ced564/recipes/build-status"; @@ -6301,12 +6078,12 @@ busybee-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "busybee-theme"; - version = "20130920.942"; + version = "20170719.228"; src = fetchFromGitHub { owner = "mswift42"; repo = "busybee-theme"; - rev = "70850d1781ff91c4ce125a31ed451d080f8da643"; - sha256 = "11z987frzswnsym8g3l0s9wwdly1zn5inl2l558m6kcvfy7g59cx"; + rev = "66b2315b030582d0ebee605cf455d386d8c30fcd"; + sha256 = "1cvj5m45f5ky3w86khh6crvdqrdjxg2z6b34jlm32qpgmn0s5g45"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/36e2089b998d98575aa6dd3cc79fb7f6847f7aa3/recipes/busybee-theme"; @@ -6343,12 +6120,12 @@ buttercup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buttercup"; - version = "20170401.703"; + version = "20171029.1011"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "emacs-buttercup"; - rev = "f60ed2a563b3867a98ab41290b46572789c43272"; - sha256 = "11axmbqvak8djldjp9kqcaz7q6dxkig9h193l5javgf78pfcdlki"; + rev = "bbbf6924ff214b518718687ead96ceec92bdbaba"; + sha256 = "0z05rr85mf9as2byj3k1ai9x5ci45a7g425svv0ywgz1lgv2vsi4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d4b187cb5b3cc5b546bfa6b94b6792e6363242d1/recipes/buttercup"; @@ -6406,12 +6183,12 @@ c-eldoc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "c-eldoc"; - version = "20170227.809"; + version = "20170917.1502"; src = fetchFromGitHub { owner = "nflath"; repo = "c-eldoc"; - rev = "2232000692f6f891456fecf23c538d5b47302a60"; - sha256 = "0mr49mvjak30c6x8n4c13xi4rjfnbpnizq27f4zmryx5k8w5f9fp"; + rev = "79d09769362228058246f5e6fa183d121f7fb322"; + sha256 = "1398lfd18zn2xym36p71yavgggqbb15xz9m7gah4w4k2bk15aczk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/c-eldoc"; @@ -6536,8 +6313,8 @@ src = fetchFromGitHub { owner = "k1LoW"; repo = "emacs-cake-inflector"; - rev = "a91cecd533930bacf1dc30f5209831f79847abda"; - sha256 = "0xq10jkbk3crdhbh4lab39xhfw6vvcqz3if5q3yy4gzhx7zp94i4"; + rev = "a1d338ec4840b1b1bc14f7f9298c07e2c1d2d8fc"; + sha256 = "0m8ss9aky24f5i6b8fyy8mhv9ygj158crjyddnj9xx73vsjf96bs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/77c46238b632047160d6dfac9b257f57b0c4283b/recipes/cake-inflector"; @@ -6557,8 +6334,8 @@ src = fetchFromGitHub { owner = "k1LoW"; repo = "emacs-cake2"; - rev = "0a9d0b3a1c49ba1730088416f50507f53221c70b"; - sha256 = "15w21r0gqblbn9wlvb4wlm3706wf01r38mp465snjzi839f6sazb"; + rev = "caffb646c86333b8747cefeba070d57ac4fbaf00"; + sha256 = "14q5hny3bdwcaq3ls6jlk8np4hf99jksxz84dhm2rdvnm18b1wk3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/18e38d9cdb9f1a8cc05545c52c3a76265a9aa2ab/recipes/cake2"; @@ -6616,16 +6393,16 @@ calfw = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "calfw"; - version = "20170410.1920"; + version = "20170714.840"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-calfw"; - rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; - sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; + rev = "3415d8673e2b8ce7ab3a76943bb07cda626b6278"; + sha256 = "1n9yivpmnk61bwj9fjzwpnbhn9n6rnch1m9hcr0a2g77kddmxwcn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1d1aaab9844413a5fff992509935b399b5154c3d/recipes/calfw"; - sha256 = "1lyb0jzpx19mx50d8xjv9sx201518vkvskxbglykaqpjm9ik2ai8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw"; + sha256 = "0am1nafc16zax8082gjlz0pi85lryjhrx0v80nzgr23iybj5mfx4"; name = "calfw"; }; packageRequires = []; @@ -6634,6 +6411,27 @@ license = lib.licenses.free; }; }) {}; + calfw-cal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-cal"; + version = "20170320.506"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "3415d8673e2b8ce7ab3a76943bb07cda626b6278"; + sha256 = "1n9yivpmnk61bwj9fjzwpnbhn9n6rnch1m9hcr0a2g77kddmxwcn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-cal"; + sha256 = "1wylkd7jl1ifq56jj04l5b9wfrjkhwncxzrjgnbgg1cl2klf6v4m"; + name = "calfw-cal"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-cal"; + license = lib.licenses.free; + }; + }) {}; calfw-gcal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "calfw-gcal"; @@ -6655,6 +6453,69 @@ license = lib.licenses.free; }; }) {}; + calfw-howm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-howm"; + version = "20170703.1704"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "3415d8673e2b8ce7ab3a76943bb07cda626b6278"; + sha256 = "1n9yivpmnk61bwj9fjzwpnbhn9n6rnch1m9hcr0a2g77kddmxwcn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-howm"; + sha256 = "08cv16cq211sy2v1i0gk7d81f0gyywv0i9szmamnrbjif3rrv2m0"; + name = "calfw-howm"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-howm"; + license = lib.licenses.free; + }; + }) {}; + calfw-ical = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-ical"; + version = "20150703.119"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "3415d8673e2b8ce7ab3a76943bb07cda626b6278"; + sha256 = "1n9yivpmnk61bwj9fjzwpnbhn9n6rnch1m9hcr0a2g77kddmxwcn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-ical"; + sha256 = "1bh9ahwp9b5knjxph79kl19fgs48x3w7dga299l0xvbxq2jhs95q"; + name = "calfw-ical"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-ical"; + license = lib.licenses.free; + }; + }) {}; + calfw-org = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-org"; + version = "20160302.1858"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "3415d8673e2b8ce7ab3a76943bb07cda626b6278"; + sha256 = "1n9yivpmnk61bwj9fjzwpnbhn9n6rnch1m9hcr0a2g77kddmxwcn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-org"; + sha256 = "1cfpjh08djz3k067w3580yb15p1csks3gzch9c4cbrbcjvg8inh5"; + name = "calfw-org"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-org"; + license = lib.licenses.free; + }; + }) {}; calmer-forest-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "calmer-forest-theme"; @@ -6683,8 +6544,8 @@ src = fetchFromGitHub { owner = "Malabarba"; repo = "camcorder.el"; - rev = "c96b3392c99b9f83c968bffa330ec4356c41518e"; - sha256 = "0am8asrzjs3iwak9c86fxb4zwgx5smbb9ywp0zn4y7j37blygswj"; + rev = "b13d939990e6709492efefc0945798adc1c0fcb9"; + sha256 = "0y8hw463w77rvf7cn5bqjnfww8h8kfkn37wi1kfjfq8hyirw4zrb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/camcorder"; @@ -6697,17 +6558,19 @@ license = lib.licenses.free; }; }) {}; - caml = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild }: melpaBuild { + caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "caml"; - version = "20151009.845"; - src = fetchsvn { - url = "https://caml.inria.fr/svn/ocaml/trunk/emacs/"; - rev = "16556"; - sha256 = "16qw82m87i1fcnsccqcvr9l6p2cy0jdhljsgaivq0q10hdmbgqdw"; + version = "20171020.1013"; + src = fetchFromGitHub { + owner = "ocaml"; + repo = "ocaml"; + rev = "65252925f597008101cdb68b6dd119227106f0e2"; + sha256 = "0627mksg7hmmz1hzalyrklsnwpz2k3jzl41dyllk5b7xpap5s9q5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/caml"; - sha256 = "1s05s3dqxlz2qhvjr3j9akb56finpmpbnsjb5pmjnzflhc4y01cf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml"; + sha256 = "1ixs0626nsg1ilqdwj5rd8kicjy7mprswwy0kprppmpmc8y7xf7c"; name = "caml"; }; packageRequires = []; @@ -6740,12 +6603,12 @@ cargo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rust-mode }: melpaBuild { pname = "cargo"; - version = "20170203.35"; + version = "20171026.13"; src = fetchFromGitHub { owner = "kwrooijen"; repo = "cargo.el"; - rev = "25ca2fcbd6b664cc7a20b0cccca3adc19e79917a"; - sha256 = "1fzrczx1aq0q130qrvzq8dssc1qm5qc9pclsyd3zn27xbn5lsag3"; + rev = "3ecf0b89b3d36874a301a7e2fb429fc026c73f35"; + sha256 = "1mv1a0z379mr7y8by5s1lnkvp1kamch01j0yn1aqgxjry3z789dd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e997b356b009b3d2ab467fe49b79d728a8cfe24b/recipes/cargo"; @@ -6803,12 +6666,12 @@ cask = callPackage ({ cl-lib ? null, dash, epl, f, fetchFromGitHub, fetchurl, lib, melpaBuild, package-build, s, shut-up }: melpaBuild { pname = "cask"; - version = "20161024.1205"; + version = "20170917.1107"; src = fetchFromGitHub { owner = "cask"; repo = "cask"; - rev = "0a2e8436e02af6ca688b25ba90a19505a6113296"; - sha256 = "1fjsss678dj6vikm0ig5jqksjlwgnwhpaqfy3dk56gnjc49nl29v"; + rev = "bf52c3ecb1356657cae12fe3229c0827181c1ed9"; + sha256 = "0g4vnvbfvr9c2rjf0fbbvzw1ipvwgsp11sn0rjrpx5cwszghvy0w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b86c666ee9b0620390a250dddd42b17cbec2409f/recipes/cask"; @@ -6845,12 +6708,12 @@ cask-package-toolset = callPackage ({ ansi, cl-lib ? null, commander, dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: melpaBuild { pname = "cask-package-toolset"; - version = "20170411.1430"; + version = "20170921.1556"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "cask-package-toolset.el"; - rev = "aed1f12b6072a2467e0efa23c3265aaa9f414425"; - sha256 = "1as3fxs1h4gq6mv7gdsjqa59prrgzzs22c9qky8q47dr20sc9q6s"; + rev = "2c74cd827e88c7f8360581a841e45f0b794510e7"; + sha256 = "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ed71e45389626e700b93b29d5e2659b6706274d8/recipes/cask-package-toolset"; @@ -6884,6 +6747,26 @@ license = lib.licenses.free; }; }) {}; + catmacs = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "catmacs"; + version = "20170826.457"; + src = fetchgit { + url = "https://bitbucket.org/pymaximus/catmacs"; + rev = "65d3e0563abe6ff9577202cf2278074d4130fbdd"; + sha256 = "0954qck9j417c17niy28ccrhmsbjyh95z4dbqc5j4mib06j37587"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e62e45ea234a574ed602f27c3c6bc240bcd4fa43/recipes/catmacs"; + sha256 = "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50"; + name = "catmacs"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/catmacs"; + license = lib.licenses.free; + }; + }) {}; cbm = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cbm"; @@ -6912,8 +6795,8 @@ src = fetchFromGitHub { owner = "skk-dev"; repo = "ddskk"; - rev = "aa9dba05f7a971c530ef9da3d5dffc764df3bcfd"; - sha256 = "0iasvz1rvb4bk8pa0q298mc1lywdvddvsnh2rv3m10zar9z9xlrr"; + rev = "16d156562aef72f02ced58087335ed72d520d878"; + sha256 = "0rz49i2yqs1yalqqnwgk2zvsga6qav4hc2dhf8p2kfkzrcbpzgxx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7375cab750a67ede1a021b6a4371b678a7b991b0/recipes/ccc"; @@ -6954,8 +6837,8 @@ src = fetchFromGitHub { owner = "skk-dev"; repo = "ddskk"; - rev = "aa9dba05f7a971c530ef9da3d5dffc764df3bcfd"; - sha256 = "0iasvz1rvb4bk8pa0q298mc1lywdvddvsnh2rv3m10zar9z9xlrr"; + rev = "16d156562aef72f02ced58087335ed72d520d878"; + sha256 = "0rz49i2yqs1yalqqnwgk2zvsga6qav4hc2dhf8p2kfkzrcbpzgxx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b48fe069ecd95ea0f9768ecad969e0838344e45d/recipes/cdb"; @@ -7052,41 +6935,22 @@ license = lib.licenses.free; }; }) {}; - centered-cursor-mode = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "centered-cursor-mode"; - version = "20151001.634"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/centered-cursor-mode.el"; - sha256 = "15psyizjz8wf9wfxwwcdmg1bxf8jbv0qy40rskz7si7vxin8hhxl"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/centered-cursor-mode"; - sha256 = "1sq0hfvnm8sbqyxzr0znq0lwrhbqm961wi13yywjcwxd3x0ar3z0"; - name = "centered-cursor-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/centered-cursor-mode"; - license = lib.licenses.free; - }; - }) {}; - centered-window-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + centered-window-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "centered-window-mode"; - version = "20170406.635"; + version = "20170528.25"; src = fetchFromGitHub { owner = "anler"; repo = "centered-window-mode"; - rev = "ac8b7eca96a771e6921ffd6fad09566c0447092c"; - sha256 = "0lkamd4qi2pp2riqw90flgq6rrz8mrjqghmzppng06dafalyfxnv"; + rev = "6f9e873f5a98f356cee41367f2eaf1f5f5cd96fc"; + sha256 = "0ih41g9haypr2ifi26kihwx2zfnzjh8n2898w2ljn7xzbd0nkx8c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/centered-window-mode"; sha256 = "08pmk3rqgbk5fzhxx1kd8rp2k5r5vd2jc9k2phrqg75pf89h3zf4"; name = "centered-window-mode"; }; - packageRequires = [ s ]; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/centered-window-mode"; license = lib.licenses.free; @@ -7134,6 +6998,27 @@ license = lib.licenses.free; }; }) {}; + ceylon-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ceylon-mode"; + version = "20170806.919"; + src = fetchFromGitHub { + owner = "lucaswerkmeister"; + repo = "ceylon-mode"; + rev = "1267447a38648502627005bfad0a3aef3572ef7d"; + sha256 = "1qj0dxfwh4yn9q01j22nq3ssg8l0s9v437l685gfly3ac5fp83ry"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/09cd1a2ccf33b209a470780a66d54e1b1d597a86/recipes/ceylon-mode"; + sha256 = "0dgqmmb8qmvzn557h0fw1mx4y0p96870l8f8glizkk3fifg7wgq4"; + name = "ceylon-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/ceylon-mode"; + license = lib.licenses.free; + }; + }) {}; cfengine-code-style = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cfengine-code-style"; @@ -7141,8 +7026,8 @@ src = fetchFromGitHub { owner = "cfengine"; repo = "core"; - rev = "1fcf27f62b30e839020ac31145951f9abbd1c148"; - sha256 = "0nm3mjbynqfg0vr2b5x10vak859pjxq2kgmgkv4i1y1y2cfhp3fc"; + rev = "b0979047d55db2aefda4adc40cd266c693a57b70"; + sha256 = "15giw6kacnj1fa3w794gnaqjpywrdrz96rgq1igsygj1rjacrgi7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c737839aeda583e61257ad40157e24df7f918b0f/recipes/cfengine-code-style"; @@ -7176,17 +7061,82 @@ license = lib.licenses.free; }; }) {}; - cg = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cg"; - version = "20170201.347"; - src = fetchsvn { - url = "https://beta.visl.sdu.dk/svn/visl/tools/vislcg3/trunk/emacs"; - rev = "12128"; - sha256 = "0lv9lsh1dnsmida4hhj04ysq48v4m12nj9yq621xn3i6s2qz7s1k"; + cfml-mode = callPackage ({ cftag-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode }: + melpaBuild { + pname = "cfml-mode"; + version = "20170903.1949"; + src = fetchFromGitHub { + owner = "am2605"; + repo = "cfml-mode"; + rev = "86e77dcbb583191a3e755bdc29534f33d82bfc56"; + sha256 = "0b0261ap0jiys9d0x31xg7x36kpq06fni2c0cjhi58wpcykq3s1p"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/cg"; - sha256 = "0xj4yqjg0r9m9cvwgs60lsid6qm1fi8lmb068dj6xaga11n70si5"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/0d28507e1109195004a371fa201d914b995c2b4e/recipes/cfml-mode"; + sha256 = "0q88lxhkzzab4jjihk0livdpn6lsmd8l2s4brcbl8402m285sylp"; + name = "cfml-mode"; + }; + packageRequires = [ cftag-mode emacs mmm-mode ]; + meta = { + homepage = "https://melpa.org/#/cfml-mode"; + license = lib.licenses.free; + }; + }) {}; + cframe = callPackage ({ buffer-manage, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cframe"; + version = "20170917.1509"; + src = fetchFromGitHub { + owner = "plandes"; + repo = "cframe"; + rev = "bb99672502046e87c8f029ce98c637f762a4fc54"; + sha256 = "088px3wlvr4km913y7hajrjqnxnv6n325rk6353bkbah2d75vxq4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6e39555b2538cc8a955766c5533871396e8fe712/recipes/cframe"; + sha256 = "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l"; + name = "cframe"; + }; + packageRequires = [ buffer-manage dash emacs ]; + meta = { + homepage = "https://melpa.org/#/cframe"; + license = lib.licenses.free; + }; + }) {}; + cftag-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cftag-mode"; + version = "20170811.2240"; + src = fetchFromGitHub { + owner = "am2605"; + repo = "cfml-mode"; + rev = "86e77dcbb583191a3e755bdc29534f33d82bfc56"; + sha256 = "0b0261ap0jiys9d0x31xg7x36kpq06fni2c0cjhi58wpcykq3s1p"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0914d33ebf58847fa3906b1f0d53e97ac335b334/recipes/cftag-mode"; + sha256 = "0qnq8h5nwhw464ax8qpbsvflpaar44zw0mh2y7kc358v27n3qy6c"; + name = "cftag-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/cftag-mode"; + license = lib.licenses.free; + }; + }) {}; + cg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cg"; + version = "20170911.610"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "cg"; + rev = "f5d74973d2cf19fd31db485ee6bfaaebcf96af2d"; + sha256 = "0bmydpv3slv5fvy1admgsm1qlkfp4sdsd0caik48dn7bnghifggz"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/cg"; + sha256 = "0yl2w48953vym4gxcxvjfaq3jgsv5jlya9vq3iwlfxqpapd3r3k9"; name = "cg"; }; packageRequires = []; @@ -7198,12 +7148,12 @@ challenger-deep-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "challenger-deep-theme"; - version = "20170402.534"; + version = "20171007.300"; src = fetchFromGitHub { owner = "MaxSt"; repo = "challenger-deep"; - rev = "02317915e36cb19e3e46f17fdec074677159b3a7"; - sha256 = "02khn3wwzjxai81jrp8yaxfsa5n685l9b09ryd0wjf2hsa8ng975"; + rev = "b4cd8550dd6a26c4efd226156dff33e261e7a8cc"; + sha256 = "1m0ackx5wvwff0qpy9204rmpq7yr6hd3bfkwahjy6kwfrjavkfbv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7942f539d025c1e2b059d49e1984716cbbc90a67/recipes/challenger-deep-theme"; @@ -7261,12 +7211,12 @@ char-menu = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "char-menu"; - version = "20161231.1609"; + version = "20170518.2247"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "char-menu"; - rev = "d0f87d8077e8516f562ae71d037839e164c987b1"; - sha256 = "0nxpm9bq8003wyjb8sg741nn7fcgvmsd0lhi0i907xpmii7bbjp6"; + rev = "b4542123e8c9bc40de1328f9a8078a0704a9a98d"; + sha256 = "101r6gryj5ic3mbv400klcjw8zfpn1rwi8ayyki93a53pali5g96"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f6676747e853045b3b19e7fc9524c793c6a08303/recipes/char-menu"; @@ -7303,12 +7253,12 @@ chatwork = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chatwork"; - version = "20161121.555"; + version = "20170510.2142"; src = fetchFromGitHub { owner = "ataka"; repo = "chatwork"; - rev = "70b41451e2d2751e634e84e0452b34c558463fe4"; - sha256 = "11h76qc2n2p8yz941drmi0rp13xmmlacikfygdv1n7s730ja0hgy"; + rev = "fea231d479f06bf40dbfcf45de143eecc9ed744c"; + sha256 = "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/77ae72e62b8771e890525c063522e7091ca8f674/recipes/chatwork"; @@ -7321,6 +7271,27 @@ license = lib.licenses.free; }; }) {}; + cheat-sh = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cheat-sh"; + version = "20170802.418"; + src = fetchFromGitHub { + owner = "davep"; + repo = "cheat-sh.el"; + rev = "e90445124f3f145a047779e42d070a3c5e150f70"; + sha256 = "06avap8w833syhz7pdpsm73nbsgbwzmpagd7f3khzaf6r6c90jmn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ebac62fb3828d81e30145b9948d60e781e20eda2/recipes/cheat-sh"; + sha256 = "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80"; + name = "cheat-sh"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/cheat-sh"; + license = lib.licenses.free; + }; + }) {}; cheatsheet = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cheatsheet"; @@ -7370,8 +7341,8 @@ src = fetchFromGitHub { owner = "eikek"; repo = "chee"; - rev = "a986cce6fe0290934dedfb7afcfdcf5f5eb47a30"; - sha256 = "1cwn5xjchra3dsngbyh23w2p4ndjyjjg0zmj1ij4fk3v86cfqf79"; + rev = "19437183960ee525de1c0cde13dc2c8d8921abfb"; + sha256 = "0hrl7h2069g6r2b3i2b7sxizny6ihgf8qajfima32la3gsb0hd4k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9f4a3775720924e5a292819511a8ea42efe1a7dc/recipes/chee"; @@ -7471,12 +7442,12 @@ chinese-conv = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chinese-conv"; - version = "20160218.1315"; + version = "20170807.1428"; src = fetchFromGitHub { owner = "gucong"; repo = "emacs-chinese-conv"; - rev = "2e5ba28b24c32d8d1da81cf9877c79abbf2e9bbb"; - sha256 = "1vfyb8gfrvfrvaaw0p7c6xji2kz6cqm6km2cmjixw0qjikxxlkv1"; + rev = "b56815bbb163d642e97fa73093b5a7e87cc32574"; + sha256 = "1bc3yn8y60y6a4vpqv39arn1pkcpl4s4n0sz9446f6m1lcal4c3r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a798158829f8fd84dd3e5e3ec5987d98ff54e641/recipes/chinese-conv"; @@ -7489,27 +7460,6 @@ license = lib.licenses.free; }; }) {}; - chinese-fonts-setup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-fonts-setup"; - version = "20170309.2126"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-fonts-setup"; - rev = "a73397712f5a1d008330778b45b3071df5232806"; - sha256 = "0rx9z90k6mmlgnmwn4d3az9q72rd51zv8x038ws4f6aa7zji7wnx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c536882e613e83a4a2baf86479bfb3efb86d916a/recipes/chinese-fonts-setup"; - sha256 = "141ri6a6mnxf7fn17gw48kxk8pvl3khdxkb4pw8brxwrr9rx0xd5"; - name = "chinese-fonts-setup"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/chinese-fonts-setup"; - license = lib.licenses.free; - }; - }) {}; chinese-number = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chinese-number"; @@ -7531,111 +7481,6 @@ license = lib.licenses.free; }; }) {}; - chinese-pyim = callPackage ({ async, chinese-pyim-basedict, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip }: - melpaBuild { - pname = "chinese-pyim"; - version = "20170313.423"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim"; - rev = "36284714815a2339bf25ed2a6051e6136ad81920"; - sha256 = "10qvikdi2mh72s9c5df2y8hx9m1hny3g9mwm8ar5nfvdhpwwhnnp"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/157a264533124ba05c161aa93a32c7209f002fba/recipes/chinese-pyim"; - sha256 = "0zdx5zhgj1ly89pl48vigjzd8g74fxnxcd9bxrqykcn7y5qvim8l"; - name = "chinese-pyim"; - }; - packageRequires = [ async chinese-pyim-basedict cl-lib popup pos-tip ]; - meta = { - homepage = "https://melpa.org/#/chinese-pyim"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim-basedict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-pyim-basedict"; - version = "20160723.438"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-basedict"; - rev = "3bca2760d78fd1195dbd4c2d570db955023a5623"; - sha256 = "07dd90bhmayacgvv5k6j079wk3zhlh83zw471rd37n2hmw8557mv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2315ffe7d13928eddaf217a5f67a3e0dd5e62a1/recipes/chinese-pyim-basedict"; - sha256 = "1qmr71lnpn06mcbb6gfr3dh78pav0sk9mld956cvnkg82vg7nmpv"; - name = "chinese-pyim-basedict"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chinese-pyim-basedict"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim-greatdict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-pyim-greatdict"; - version = "20160619.2109"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-greatdict"; - rev = "11cf5145710349e9d928eb9197bebb426025fd58"; - sha256 = "1pza690b31ynyj31f1gp7y2d29ri3swcblpzd2pcpj3ynmnbsy3f"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/03234f7a1abe7423c5a9bcb4c100957c8eece351/recipes/chinese-pyim-greatdict"; - sha256 = "1xqr2fcsb45khavqx06ry2sm8db790zlggk61civbdyafvlz8ikc"; - name = "chinese-pyim-greatdict"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chinese-pyim-greatdict"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim-wbdict = callPackage ({ chinese-pyim, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-pyim-wbdict"; - version = "20170217.15"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-wbdict"; - rev = "59856a7199dde278c33f6f8d8e21df4944ba996a"; - sha256 = "1aahff6r0liil7nx1pprmkmb5c39kwywblj3n6zs80ikwy4759xb"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7c77ba5562e8bd8b8f532e7745edcdf3489584ac/recipes/chinese-pyim-wbdict"; - sha256 = "0y9hwn9rjplb69vi4s9bvf6fkvns2rlpkqm0qvv44mxq7g61lm5c"; - name = "chinese-pyim-wbdict"; - }; - packageRequires = [ chinese-pyim ]; - meta = { - homepage = "https://melpa.org/#/chinese-pyim-wbdict"; - license = lib.licenses.free; - }; - }) {}; - chinese-remote-input = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-remote-input"; - version = "20150110.2103"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-remote-input"; - rev = "d05d0bd116421e6fd19f52e9e576431ee5de0858"; - sha256 = "06k13wk659qw40aczq3i9gj0nyz6vb9z1nwsz7c1bgjbl2lh6hcv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b639a9d3b258afe6637055e75a2939f2df18366a/recipes/chinese-remote-input"; - sha256 = "0nnccm6w9i0qsgiif22hi1asr0xqdivk8fgg76mp26a2fv8d3dag"; - name = "chinese-remote-input"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chinese-remote-input"; - license = lib.licenses.free; - }; - }) {}; chinese-wbim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chinese-wbim"; @@ -7660,12 +7505,12 @@ chinese-word-at-point = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chinese-word-at-point"; - version = "20150618.1838"; + version = "20170811.241"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "chinese-word-at-point.el"; - rev = "36a03cce32fe059d2b581cb2e029715c0be81074"; - sha256 = "1jsy43avingxxccs0zw2qm5ysx8g76xhhh1mnyypxskl9m60qb4j"; + rev = "8223d7439e005555b86995a005b225ae042f0538"; + sha256 = "13gva1ld4f9wwb2m4fpk6bd9342qvvmaf5i1r3x3h84czmk0nq1r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c9b7785eca577218feade982c979694389f37ec3/recipes/chinese-word-at-point"; @@ -7678,58 +7523,40 @@ license = lib.licenses.free; }; }) {}; - chinese-yasdcv = callPackage ({ chinese-pyim, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + chinese-yasdcv = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, pyim }: melpaBuild { pname = "chinese-yasdcv"; - version = "20161030.1504"; + version = "20171014.1844"; src = fetchFromGitHub { owner = "tumashu"; repo = "chinese-yasdcv"; - rev = "664494d4c4562a4d83a0e73386f854829d7a52c0"; - sha256 = "1qnhyv4b3sy596r3jz13iypi3jyr266lyphpw82ivb6dx33awk70"; + rev = "5ab830daf1273d5a5cddcb94b56a9737f12d996f"; + sha256 = "1mv1n6m73aamxj18i851ww53q7p4ydiqgaapxyvjbm6sx8ddz9ak"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b6d727c30d2ec0f885a927a16a442fe220a740d5/recipes/chinese-yasdcv"; sha256 = "1y2qywldf8b8b0km1lcf74p0w6rd8gr86qcj7ikwhhbvd19dfglm"; name = "chinese-yasdcv"; }; - packageRequires = [ chinese-pyim cl-lib ]; + packageRequires = [ cl-lib pyim ]; meta = { homepage = "https://melpa.org/#/chinese-yasdcv"; license = lib.licenses.free; }; }) {}; - chm-view = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "chm-view"; - version = "20110616.1019"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/chm-view.el"; - sha256 = "1r274pf0xrcdml4sy2nhhp3v5pr3y3s4lvk45hd3pmw1i4pw2fd8"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8688cd57fca1974403c0e36d6289845059adac5c/recipes/chm-view"; - sha256 = "1acz0fvl3inn7g4himq680yf64bgm7n61hsv2zpm1k6smrdl78nz"; - name = "chm-view"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chm-view"; - license = lib.licenses.free; - }; - }) {}; choice-program = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "choice-program"; - version = "20161230.1721"; + version = "20171004.931"; src = fetchFromGitHub { owner = "plandes"; repo = "choice-program"; - rev = "691ced104adc6dbb3ddf8c28563c1cd36eb165b1"; - sha256 = "1jd0zj8g9nnzdfy76z9565sz6sd6690nbbi4zg71pxssmsqgkc3w"; + rev = "27607ec1fe241c58fbc1f861454a8e2ec1fd7b15"; + sha256 = "0q8krgsydrc2xc29y60qljifdvxfmxnvbncxsh64xhrzsnrgwmq5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/894357125db5035999a39514516852d7e957453e/recipes/choice-program"; - sha256 = "0hhp6qhrshqrw4978xq6biwddm7gv7yf4avbb64xvz66i3a2kgy1"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6e39555b2538cc8a955766c5533871396e8fe712/recipes/choice-program"; + sha256 = "0a21yd3b8sb15vms9mclaa7xnnk0as08p6q38mwdwjp9sgcfyh1b"; name = "choice-program"; }; packageRequires = [ cl-lib emacs ]; @@ -7762,12 +7589,12 @@ chruby = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chruby"; - version = "20161222.430"; + version = "20170509.700"; src = fetchFromGitHub { owner = "plexus"; repo = "chruby.el"; - rev = "04182d666e19963fa0389cb744fc5cce62049a62"; - sha256 = "0cj5cs2bj7r5ijhz9vyfyzcq4mfccya34n9gs2vjdr2fg9mhgynx"; + rev = "3eddd2f5fc2ac979b496394c74e4aee436b64a28"; + sha256 = "15fihl38fa3jzn4r0abjpkqzibsrn0pnlvab6xba0ffr4sv4m0y2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1989a3c6fa4cd7aaf6b0b202f197eb7db51936b9/recipes/chruby"; @@ -7783,12 +7610,12 @@ cider = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, queue, seq, spinner }: melpaBuild { pname = "cider"; - version = "20170403.402"; + version = "20171001.112"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "cider"; - rev = "35c18ac8afefecf746fa0a77e930636736cf6541"; - sha256 = "1r4706s8k3kpgkcn1jm9794bhpjfp0zxc4siqrr0h5hxfjnizc59"; + rev = "946a9d44e0d3806f1e06ab68fd832f24dd152086"; + sha256 = "0fifp2cjspfqvwmy9l9sxm8na7jj3wxbiz0mpq0pj3jm4aa7v6cl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/55a937aed818dbe41530037da315f705205f189b/recipes/cider"; @@ -7969,15 +7796,36 @@ license = lib.licenses.free; }; }) {}; + circadian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "circadian"; + version = "20171022.724"; + src = fetchFromGitHub { + owner = "GuidoSchmidt"; + repo = "circadian.el"; + rev = "feec308591b43e7869d7a018d5c6fc7e943d53ee"; + sha256 = "0j8an9ny3jk9nmlpi360n064m20nhah9p8rj6wb9xbvnfrri5zjk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/circadian"; + sha256 = "13797y1w1636bibisz5i5p2xp0smd3apnhc1nx8ijm75smx679id"; + name = "circadian"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/circadian"; + license = lib.licenses.free; + }; + }) {}; circe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "circe"; - version = "20170304.419"; + version = "20170929.1635"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "9d68903018f255838b51c734015be74bbdbf539c"; - sha256 = "0iddz0m7p7bfnly33gwi8vmpz0lv026lj4val1x584hqix6xk8vh"; + rev = "6b110d4c2c6447c4ed65cfa5b7e8676620081ee2"; + sha256 = "01llr34y9mvgpbz3y10l7gmp40qvislwhm6jb2fvcb7vdn9k9gmz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/circe"; @@ -7993,12 +7841,12 @@ circe-notifications = callPackage ({ alert, circe, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "circe-notifications"; - version = "20160902.42"; + version = "20171001.2258"; src = fetchFromGitHub { owner = "eqyiel"; repo = "circe-notifications"; - rev = "80c44441ecd3ae04ae63760aa20afa837c1ed05b"; - sha256 = "0s0iw5vclciziga78f1lvj6sdg84a132in39k4vz0pj598ypin1w"; + rev = "4b93112b715714fc7b0ac2637df93adb90f35b40"; + sha256 = "1hfic3qrlskcf0zmd3w76sl1qgrd6myf6mwg06mnc9jy76backqk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/76c0408423c4e0728789de7b356b2971d6c446c7/recipes/circe-notifications"; @@ -8053,18 +7901,19 @@ license = lib.licenses.free; }; }) {}; - clang-format = callPackage ({ cl-lib ? null, fetchsvn, fetchurl, lib, melpaBuild }: + clang-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "clang-format"; version = "20170120.137"; - src = fetchsvn { - url = "http://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format"; - rev = "300461"; - sha256 = "0011wlqjkr1x58y0v5nf600nn7dj44cllp2m1dyj90aixjx4saq2"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "clang-format"; + rev = "6e6114fac0e4e600f1ffed7b2ce978f7adb001cd"; + sha256 = "07zabj31bgckppkqgg5if515093k0lx2xyf3adh90ymmssvvgary"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/69e56114948419a27f06204f6fe5326cc250ae28/recipes/clang-format"; - sha256 = "19qaihb0lqnym2in4465lv8scw6qba6fdn8rcbkpsq09hpzikbah"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/clang-format"; + sha256 = "1w2w8hhyxp73s1ziyd0n7f1yi0x46v93630xxpjnf9bgr1psfk5f"; name = "clang-format"; }; packageRequires = [ cl-lib ]; @@ -8076,12 +7925,12 @@ clean-aindent-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "clean-aindent-mode"; - version = "20150816.2029"; + version = "20171017.1343"; src = fetchFromGitHub { owner = "pmarinov"; repo = "clean-aindent-mode"; - rev = "9ae15997cd75c5625a4f759a3aff39bf202fc36f"; - sha256 = "1h6k6kzim1zb87y1kzpqjzk3ip9bmfxyg54kdh2sfp4xy0g5h3p0"; + rev = "a97bcae8f43a9ff64e95473e4ef0d8bafe829211"; + sha256 = "07dgx09j6nn5dl9vpqfcs5yqm79kza3h3r1lb7r09wpkmrg0c2cr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ee9dac7c10e652f026643620418dfea9237a0d23/recipes/clean-aindent-mode"; @@ -8181,12 +8030,12 @@ cliphist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "cliphist"; - version = "20170208.514"; + version = "20170821.1858"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "cliphist"; - rev = "acbd9782d82d7ae6bfb22fb0955597b9c5fcbb6c"; - sha256 = "1gj5fqjyr4m4qim9qjsvzzk42rm3vw3yycvq3nj0wpj90zb1yh14"; + rev = "2aceea0e16e2f18b8b51161423ef1c0f655c7c8d"; + sha256 = "13vhm7dsqbaslml3a2hd3s39c7q494p5w2xznhdxvh8ig6w102lc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82d86dae4ad8efc8ef342883c164c56e43079171/recipes/cliphist"; @@ -8244,12 +8093,12 @@ clips-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "clips-mode"; - version = "20131012.1401"; + version = "20170909.123"; src = fetchFromGitHub { owner = "grettke"; repo = "clips-mode"; - rev = "a3ab4a3e958d54a16544ec38fe6338f27df20817"; - sha256 = "0i6sj5rs4b9v8aqq9l6wr15080qb101hdxspx6innhijhajgmssd"; + rev = "dd38e2822640a38f7d8bfec4f69d8dd24be27074"; + sha256 = "1q2jz72wi8d2pdrjic9kwqixp5sczjkkx8rf67rgaz37ysjpcbf6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d28484bf5e9ad72778ad63f73deeea1eb1263236/recipes/clips-mode"; @@ -8265,12 +8114,12 @@ clj-refactor = callPackage ({ cider, clojure-mode, edn, emacs, fetchFromGitHub, fetchurl, hydra, inflections, lib, melpaBuild, multiple-cursors, paredit, s, seq, yasnippet }: melpaBuild { pname = "clj-refactor"; - version = "20170407.553"; + version = "20170720.712"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "clj-refactor.el"; - rev = "0a25f2ed361fff056ee23cfa64eac1423c75dfeb"; - sha256 = "1alpvwmfqm9hqgcd4bhg54pvqjc85dc7wrcajxzv00gki47gj2zs"; + rev = "f5295df68955c23fffd60718039fd386d13c77f5"; + sha256 = "14lp3jxxpjfm31rbrf2rb988fzh4xfacqdcwp15b87pixziln08x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3a2db268e55d10f7d1d5a5f02d35b2c27b12b78e/recipes/clj-refactor"; @@ -8361,12 +8210,12 @@ cloc = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cloc"; - version = "20151007.201"; + version = "20170728.1124"; src = fetchFromGitHub { owner = "cosmicexplorer"; repo = "cloc-emacs"; - rev = "15e63b83dd6261f543d25aac4c72e764e3274d53"; - sha256 = "1rflc00yrbb7xzfh8c54ajf4qnhsp3mq07gkr257gjyrwsdw762v"; + rev = "f30f0472e465cc8d433d2473e9d3b8dfe2c94491"; + sha256 = "0g8hklc0914dsi3ks7g251w58ixa78qsh87dx914cc8sahpc0ws2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0dd7a641efd13aa0bd7509d8a5b0a28e3a0493c8/recipes/cloc"; @@ -8445,12 +8294,12 @@ clojure-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "clojure-mode"; - version = "20170407.312"; + version = "20171031.357"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "clojure-mode"; - rev = "2d67af4230657fb06f0df4453b9d21031b32c1db"; - sha256 = "1dan05yd3dvf3r4khahpyq849sq96bjxz7zyady8x3k3gnn35q5w"; + rev = "061431d86f05a5a25d2e00fc5f317b22cb9d8a79"; + sha256 = "09cv517p42nrzj435b1ma8lfl1k4izdv1dj1q9hi5y61q1q1zhp9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5e3cd2e6ee52692dc7b2a04245137130a9f521c7/recipes/clojure-mode"; @@ -8470,8 +8319,8 @@ src = fetchFromGitHub { owner = "clojure-emacs"; repo = "clojure-mode"; - rev = "2d67af4230657fb06f0df4453b9d21031b32c1db"; - sha256 = "1dan05yd3dvf3r4khahpyq849sq96bjxz7zyady8x3k3gnn35q5w"; + rev = "061431d86f05a5a25d2e00fc5f317b22cb9d8a79"; + sha256 = "09cv517p42nrzj435b1ma8lfl1k4izdv1dj1q9hi5y61q1q1zhp9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5e3cd2e6ee52692dc7b2a04245137130a9f521c7/recipes/clojure-mode-extra-font-locking"; @@ -8508,12 +8357,12 @@ clojure-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "clojure-snippets"; - version = "20161024.16"; + version = "20170713.2310"; src = fetchFromGitHub { owner = "mpenet"; repo = "clojure-snippets"; - rev = "bc9144ae5cd9e4468a9d34f1ae8a05d9933e5a39"; - sha256 = "1xcjlid47w4xjxishal2rvfdwk7qyphy2v2bphdaysllccclw9pq"; + rev = "36207f9d8738851f5b686dfe0225ad0553bf8e68"; + sha256 = "0fb4l4gjzpr5rij4kyvz0r705blv2a5w1rf1c92d34g8jyy2hmd5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4898fc6746b30b0d0453b3b56d02479bfb0f70b9/recipes/clojure-snippets"; @@ -8529,12 +8378,12 @@ clomacs = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "clomacs"; - version = "20170128.850"; + version = "20170726.436"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "clomacs"; - rev = "0c7793b52166730a563c3318cdcb9f2b423bc675"; - sha256 = "1sj4awcz6xdk1lq7yz69d8v0d97alipc3avzmnby6lpm2pw1n45a"; + rev = "8d3e12a2f73e81499fa18f30adaea8c861e4a9b1"; + sha256 = "01wpzbv4vjad0nvbydc0rwb3jdqbncwajs5xrng88n1xxhrajh1x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/345f9797e87e3f5f957c167a5e3d33d1e31b50a3/recipes/clomacs"; @@ -8550,12 +8399,12 @@ closql = callPackage ({ emacs, emacsql-sqlite, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "closql"; - version = "20161130.925"; + version = "20170919.455"; src = fetchFromGitHub { owner = "emacscollective"; repo = "closql"; - rev = "0bb0fa3dd1e545cbf025d42e253ddb00107156a3"; - sha256 = "1mpycmj88gi62rhzxdv4933l318j3llphbc00b7rvzms55sgpcz5"; + rev = "66597831248bbe14ebc7bbf24b24cafebb5fd362"; + sha256 = "0jxf7k95l2j6rjyafq3zj6bxaa2xn4zmi4zg1n04sachcdrcgh3l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/closql"; @@ -8673,22 +8522,22 @@ license = lib.licenses.free; }; }) {}; - cmake-ide = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, levenshtein, lib, melpaBuild, seq }: + cmake-ide = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, levenshtein, lib, melpaBuild, s, seq }: melpaBuild { pname = "cmake-ide"; - version = "20170316.643"; + version = "20171101.236"; src = fetchFromGitHub { owner = "atilaneves"; repo = "cmake-ide"; - rev = "66059dabe9eb8aea24a56ef7e8d0b457cd814663"; - sha256 = "1vlrp1an7p61xzmsk5w48yjd5m89yg52jcbxfckmi40rz22j81lh"; + rev = "114e2df27f79816f023a07e3e8024c7ab73603f0"; + sha256 = "1n7zv325kjvmz694r11sbz6650b8y22kv2mbx4yrdha9r6y2m1f7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/17e8a8a5205d222950dc8e9245549a48894b864a/recipes/cmake-ide"; sha256 = "0xvy7l80zw67jgvk1rkhwzjvsqjqckmd8zj6s67rgbm56z6ypmcg"; name = "cmake-ide"; }; - packageRequires = [ cl-lib emacs levenshtein seq ]; + packageRequires = [ cl-lib emacs levenshtein s seq ]; meta = { homepage = "https://melpa.org/#/cmake-ide"; license = lib.licenses.free; @@ -8701,8 +8550,8 @@ src = fetchFromGitHub { owner = "Kitware"; repo = "CMake"; - rev = "be2c45f2a98d69cc9952b592777bb506f69149a2"; - sha256 = "1nq63k8baym6dm8s05ac81iqvy9gi60a10c962x7zlxkk5r0klbp"; + rev = "a57bad6c3d0dbc885bb71dfe465d09a380c35960"; + sha256 = "1igyb96zbdr94sxry8irffhmhcz1wi0d4a65cf98j4vvnxz36b9w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode"; @@ -8718,12 +8567,12 @@ cmake-project = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cmake-project"; - version = "20150720.1359"; + version = "20170725.912"; src = fetchFromGitHub { owner = "alamaison"; repo = "emacs-cmake-project"; - rev = "5212063b6276f8b9af8b48b4052e5ec97721c08b"; - sha256 = "0fyzi8xac80wnhnwwm1j6yxpvpg1n4diq2lcl3qkj8klvk5gpxr6"; + rev = "ae763397663fbd35de0541a5d9f2de18a5de3305"; + sha256 = "0ynxcbf0jbn6b4dxswhk9qhijmhp05q6v925nglq67j0xjm8bicw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0857c4db1027981ea73bc32bcaa15e5df53edea3/recipes/cmake-project"; @@ -8757,24 +8606,6 @@ license = lib.licenses.free; }; }) {}; - cmds-menu = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cmds-menu"; - version = "20170221.1557"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/cmds-menu.el"; - sha256 = "0ladkkydypf08mn3j749fv46blpzyvh45kx52qdzhwxjiz7nlmfs"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/de6366e4b3e72a5e68b960d6bf4bab2683ad6800/recipes/cmds-menu"; - sha256 = "12s75y9d75cxqgg3hj0s4w0d10zy8y230b5gy09685ab5lcajfks"; - name = "cmds-menu"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/cmds-menu"; - license = lib.licenses.free; - }; - }) {}; cmm-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cmm-mode"; @@ -8796,24 +8627,24 @@ license = lib.licenses.free; }; }) {}; - cn-outline = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + cnfonts = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cn-outline"; - version = "20100321.914"; + pname = "cnfonts"; + version = "20170731.1611"; src = fetchFromGitHub { - owner = "mori-dev"; - repo = "cn-outline"; - rev = "47d33a99b7ae26b1cd456441970b4bab2173d981"; - sha256 = "1635k51ppivq6v2702fihq8dvi33445smds9zhqm0drnpv9rv5cr"; + owner = "tumashu"; + repo = "cnfonts"; + rev = "cbe1ddd49e33b790a568c55351146aa5b909f173"; + sha256 = "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/bf843cbcfc5806d9089000f08c72433dc8c12e17/recipes/cn-outline"; - sha256 = "0cw1rr56hdngvhmx59j76hvkfzgybasn0fwhd6vwm709jqiiiwiz"; - name = "cn-outline"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/0d5787ffeeee68ffa41f3e777071815084e0ed7a/recipes/cnfonts"; + sha256 = "1pryn08fkdrdj7w302205nj1qhfbk1jzqxx6717crrxakkdqmn9w"; + name = "cnfonts"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/cn-outline"; + homepage = "https://melpa.org/#/cnfonts"; license = lib.licenses.free; }; }) {}; @@ -8964,34 +8795,36 @@ license = lib.licenses.free; }; }) {}; - col-highlight = callPackage ({ fetchurl, lib, melpaBuild, vline }: + coin-ticker = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { - pname = "col-highlight"; - version = "20170221.1559"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/col-highlight.el"; - sha256 = "1xm1sbmcily1zy5xfpiphy3waq7928xpqmsrm3rcy37xbk2xj7vr"; + pname = "coin-ticker"; + version = "20170611.27"; + src = fetchFromGitHub { + owner = "eklitzke"; + repo = "coin-ticker-mode"; + rev = "9efab90fe4e6f29464af14e0d8fd1e20c0147b80"; + sha256 = "0xnrh6v4s2s3fgvw0v9fl48dlk4r2p6axp7xf41gzb1ai81yczhv"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2a16dca0068d9d4f25ad6b699ec8cb8da6ba17e5/recipes/col-highlight"; - sha256 = "1kycjdlrg7a5x37b0pzqhg56yn7kaisryrk303qx1084kwq9464i"; - name = "col-highlight"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/fd783998658b69159e39d9440da7a0dd04135e49/recipes/coin-ticker"; + sha256 = "0v4zyswhghknlsal9xfsgwf8ckjwrjkjrg8w7p6yjqrxmfsbw93b"; + name = "coin-ticker"; }; - packageRequires = [ vline ]; + packageRequires = [ emacs request ]; meta = { - homepage = "https://melpa.org/#/col-highlight"; + homepage = "https://melpa.org/#/coin-ticker"; license = lib.licenses.free; }; }) {}; colemak-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "colemak-evil"; - version = "20170401.1626"; + version = "20171015.1607"; src = fetchFromGitHub { owner = "patbl"; repo = "colemak-evil"; - rev = "b01296a50ee225d0e21e81f99c3c01432f89a7c7"; - sha256 = "09ipxdwvi1bsicl67fbpd5aq5g9ws9frim9q24y7h6srynj4awa7"; + rev = "192c779281ae1fbf2405dcdb55b3c5b2a1d0b3d1"; + sha256 = "1clnvr7n6mx5b8pq1c6zchq7n1g8ip8hwgzc61ywrmiyv0v8rnc6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f0750a3f9537782ee61d6e56c51ce7b86def12e/recipes/colemak-evil"; @@ -9007,12 +8840,12 @@ colonoscopy-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "colonoscopy-theme"; - version = "20141115.2301"; + version = "20170808.609"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-colonoscopy-theme"; - rev = "7b873d7e7e091b71bf4fdd23ded19e261a1e3936"; - sha256 = "1k3sd07ffgpfhzg7d9mb1gc3n02zsvilxc30bgiycbjrbjgqq0i6"; + rev = "64bbb322b13dae91ce9f1e3581f836f94f800ead"; + sha256 = "1r0is6zjkzikm565fvmj0gx8ms5ig9l5xihnka4fig7jy6ak33z5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/colonoscopy-theme"; @@ -9028,12 +8861,12 @@ color-identifiers-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "color-identifiers-mode"; - version = "20161019.1314"; + version = "20170814.1121"; src = fetchFromGitHub { owner = "ankurdave"; repo = "color-identifiers-mode"; - rev = "2b02b8d4ed0233d63a698a7f929b87fcaa8d0048"; - sha256 = "1jqvdask079373q9lgfp058892apx8qcchnrwwwd2zgfnwhjhy1q"; + rev = "5750ee9e1ab8a6890381bb461982113b1eb98879"; + sha256 = "17ry98s4lcl6g63bj8a0wd1rmh8whlxlmzfdjhp8mapdybqplcql"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5c735755e414fdf169aca5ec6f742533d21472e0/recipes/color-identifiers-mode"; @@ -9067,18 +8900,19 @@ license = lib.licenses.free; }; }) {}; - color-theme = callPackage ({ fetchbzr, fetchurl, lib, melpaBuild }: + color-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "color-theme"; - version = "20080305.34"; - src = fetchbzr { - url = "https://bzr.savannah.gnu.org/r/color-theme/trunk"; - rev = "57"; + version = "20070910.1007"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "color-theme"; + rev = "eeb07560b30aaf7934dfd21f5c2518a479905cd9"; sha256 = "17bidzq9kiz250gal1fn9mg8gf8l749nz69z0awpc4x2222wxxiz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/color-theme"; - sha256 = "1ds098v50p4g6ji0zy7m5nyj2kadm3l3v0pnb01wkjjx6anh3qsy"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/color-theme"; + sha256 = "1c1n0m4hhj2sxi08vjvayypf9g5i2hyng53ry950yfdqgzq7nk8i"; name = "color-theme"; }; packageRequires = []; @@ -9157,8 +8991,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "color-theme-sanityinc-solarized"; - rev = "99fb4753f071542690e7a17b3dd76b5f2a05e9fc"; - sha256 = "1vhncjyw0qbglgsd04cgyqc3473kz97ks15586ljrpa14f8fnjk2"; + rev = "74a7065808f82dbdd9638ae33ed0e4f7a55da35c"; + sha256 = "1af6j8qyzcm4x5p2wkhfh6f62n5i4fapjfrii3rl3l9im39fl8jc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/color-theme-sanityinc-solarized"; @@ -9174,12 +9008,12 @@ color-theme-sanityinc-tomorrow = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "color-theme-sanityinc-tomorrow"; - version = "20170330.33"; + version = "20171030.1358"; src = fetchFromGitHub { owner = "purcell"; repo = "color-theme-sanityinc-tomorrow"; - rev = "56d9c31a6bea3657363f79d5987d4afa6a4caf41"; - sha256 = "19aw5bac7sgyj70g093ds43ddx69mqrwgabx0wvjcg84kfggl6j4"; + rev = "e7f5d175916df20c411713e49be8b58aac36f7ed"; + sha256 = "11n5ly2n8l4b7xph81w57av42zv43fk2vc6b6mjhxvvn86l97ma7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/color-theme-sanityinc-tomorrow"; @@ -9195,12 +9029,12 @@ color-theme-solarized = callPackage ({ color-theme, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "color-theme-solarized"; - version = "20160626.743"; + version = "20171024.825"; src = fetchFromGitHub { owner = "sellout"; repo = "emacs-color-theme-solarized"; - rev = "797229d0d3c9a2233fd8c69c0c2d9948be1d0685"; - sha256 = "1mx4948qdbwg93261bxr0k5cjx05ws7c3cmhrv6znvjzp6gqxlcl"; + rev = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee"; + sha256 = "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/17096b452740bf6b7afa38e62df8e623494aa6b2/recipes/color-theme-solarized"; @@ -9234,15 +9068,36 @@ license = lib.licenses.free; }; }) {}; + colormaps = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "colormaps"; + version = "20171008.1524"; + src = fetchFromGitHub { + owner = "lepisma"; + repo = "colormaps.el"; + rev = "19fbb64a6288d505b9cf45c9b5a3eed0bfb135e2"; + sha256 = "0kbhy8bpxqdr1kjczz2vm7chfpjprx2frpbh1gh9i1gwwx5k4myp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f4c795d9e323b08bc8354a6933a061644705a2ec/recipes/colormaps"; + sha256 = "16plhgpfz1wb58p6h8wxjhplhgv0mbj3f2xj34p6vydh44l8w8q2"; + name = "colormaps"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/colormaps"; + license = lib.licenses.free; + }; + }) {}; column-enforce-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "column-enforce-mode"; - version = "20170103.1231"; + version = "20171030.1200"; src = fetchFromGitHub { owner = "jordonbiondo"; repo = "column-enforce-mode"; - rev = "379366fe0a5bcb333db2d55cddcf18d6e76ab3fc"; - sha256 = "1vqydf174rydclwmcq6j8xpr16k9w049x9rilg1lvyjc67p7pyaf"; + rev = "2341a2b6a33d4b8b74c35062ec9cfe1bffd61944"; + sha256 = "0rcxb7daxxrp5f1i5cbv25viwawbbsn4ij1mnlclp5wz7ilcy2rs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/91bebef8e97665a5d076c557d559367911a25ea2/recipes/column-enforce-mode"; @@ -9255,24 +9110,6 @@ license = lib.licenses.free; }; }) {}; - column-marker = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "column-marker"; - version = "20121128.43"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/column-marker.el"; - sha256 = "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5f629b6b44fae3191f58e007c39b75bbb880d517/recipes/column-marker"; - sha256 = "1xgfsiw46aib2vb9bbjlgnhcgfnlfhdcxd0cl0jqj4fjfxzbz0bq"; - name = "column-marker"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/column-marker"; - license = lib.licenses.free; - }; - }) {}; comint-intercept = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "comint-intercept"; @@ -9343,8 +9180,8 @@ src = fetchFromGitHub { owner = "rejeep"; repo = "commander.el"; - rev = "2a4f1fd6cf9aa1798559dbdd5fbd9dcd327cd859"; - sha256 = "06y7ika4781gkh94ygdaz7a760s7ahrma6af6n7cqhgjyikz7lg1"; + rev = "c93985dc318fe89e5a29abc21d19fb41e2fd14d2"; + sha256 = "0mlabiraagqwl17payils5589fr2mivvkzrfic6ndsipryab6rfc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8b308e05dd85856addbc04a9438f5026803cebd7/recipes/commander"; @@ -9360,12 +9197,12 @@ comment-dwim-2 = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "comment-dwim-2"; - version = "20150825.1549"; + version = "20170809.1354"; src = fetchFromGitHub { owner = "remyferre"; repo = "comment-dwim-2"; - rev = "8cedecde018b5872195bfead6511af822776a430"; - sha256 = "0kzlv2my0cc7d3nki2rlm32nmb2nyjb38inmvlf13z0m2kybg2ps"; + rev = "8da8aba4cab4a0a1eef3aea2de219227526876e4"; + sha256 = "1bvgdm52bp39gdcqxb02bnxssmih887jgr82m3c09yfwkpnr2qry"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4ac6ac97875117013515a36c9a4452fbd6c0d74c/recipes/comment-dwim-2"; @@ -9378,6 +9215,27 @@ license = lib.licenses.free; }; }) {}; + comment-tags = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "comment-tags"; + version = "20170910.1035"; + src = fetchFromGitHub { + owner = "vincekd"; + repo = "comment-tags"; + rev = "7d914097f0a03484af71e621db533737fc692f58"; + sha256 = "0s86a7078arck9z4gzkp2hnxyklprl0zh5hsw7nkyyscjydly80i"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6ac71f4ffc19bce4f571001f9270d5be855dfc3c/recipes/comment-tags"; + sha256 = "13slv150zch0b7zpxa2dbqjzpqh0iy559m6rc0zs0dwdagzryp3i"; + name = "comment-tags"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/comment-tags"; + license = lib.licenses.free; + }; + }) {}; commenter = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "commenter"; @@ -9423,12 +9281,12 @@ common-lisp-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "common-lisp-snippets"; - version = "20161231.1557"; + version = "20170918.356"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "common-lisp-snippets"; - rev = "bb8d22994592a7e69ef8e613e8638882e4e0e404"; - sha256 = "0i4w5jkz0yxnnapyijvjd5z1rcp0g3r3abj6hchb5yd26h1jcz8a"; + rev = "cd46223fbc6ee99372a25ba455ffec4354895e45"; + sha256 = "0xii63fw3gx1hhx57yh8gr9mhkgb2vjkfs2sl5z9010myi9504is"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/48d0166ccd3dcdd3df4719349778c6c5ab6872ca/recipes/common-lisp-snippets"; @@ -9444,12 +9302,12 @@ company = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company"; - version = "20170415.1248"; + version = "20171017.1638"; src = fetchFromGitHub { owner = "company-mode"; repo = "company-mode"; - rev = "b753952d5a0ee288b6c49b2d8dfa9a223ff59715"; - sha256 = "11725dhdyy67qynp9vld691ljfz2yb9v3ql4j75l7y5jl3gjklwr"; + rev = "66e43a3a3388c3af3dd851ba0a1f48dcb6efb1ae"; + sha256 = "0wm1qrwmhzs3vphk6hbi288rvc66gznis5kfj25d86ilq4fvawsf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/96e7b4184497d0d0db532947f2801398b72432e4/recipes/company"; @@ -9486,12 +9344,12 @@ company-ansible = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-ansible"; - version = "20170311.1313"; + version = "20170430.53"; src = fetchFromGitHub { owner = "krzysztof-magosa"; repo = "company-ansible"; - rev = "f08c19e95e67c852512c30b6825dae3dbd3005a0"; - sha256 = "0qypfla1j7c34syphh21nyswr363v6vwi87614wx9d1rz5v4h24n"; + rev = "2c30c3bdb8316b27d5c1832b944cb146d00de456"; + sha256 = "183hyy5vy7xs6hwsk8nrylck8w5czcqwzfx0wik4ppx8011jzis1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7b44cd4bd9f9a7c942ca3f3bd88b2ce61ffff130/recipes/company-ansible"; @@ -9578,12 +9436,12 @@ company-c-headers = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-c-headers"; - version = "20150801.901"; + version = "20170531.1330"; src = fetchFromGitHub { owner = "randomphrase"; repo = "company-c-headers"; - rev = "9bfdd438be5ecb75e5717eb48e09ce69904676e3"; - sha256 = "152fwy23x5k3dp45z1k4h4n6pcvl3wrhwhwd4l4rp06yhgwf0i1a"; + rev = "e959d43bebf0a524f7378669983a39ee1379cc21"; + sha256 = "18fi1jp3scz5rrf877qd1ciwx29bzndb85ifnx4ki0jvznvfas8n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d97b5c53967e0ff767b3654c52622f4b5ddf1985/recipes/company-c-headers"; @@ -9599,12 +9457,12 @@ company-cabal = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-cabal"; - version = "20151216.720"; + version = "20170917.617"; src = fetchFromGitHub { owner = "iquiw"; repo = "company-cabal"; - rev = "05886d6f2621b019fafb40cff4d2567e5d8045b4"; - sha256 = "1yxp6l8a16d6g2sfwrpfx97ds7nfrgk2akwydal1dzr2bjq02pc6"; + rev = "62112a7259e24bd6c08885629a185afe512b7d3d"; + sha256 = "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ee888b1ba57b6af3a3330607898810cd248862db/recipes/company-cabal"; @@ -9620,12 +9478,12 @@ company-coq = callPackage ({ cl-lib ? null, company, company-math, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "company-coq"; - version = "20170327.827"; + version = "20170615.1842"; src = fetchFromGitHub { owner = "cpitclaudel"; repo = "company-coq"; - rev = "daec3ad0f3119f04108574ce48cd77068a850392"; - sha256 = "04fv3713sgy8c5y9blgx2xyjdg5qvg5idhvsf2p5lk9gjxbslp29"; + rev = "642c0b5b539692242c476eb00af7bacc91d7fcc0"; + sha256 = "0mykqf03c7fbdb851fqdczb97cq6wq1lkinnjc2jaim5j4hc3gig"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7f89e3097c654774981953ef125679fec0b5b7c9/recipes/company-coq"; @@ -9641,12 +9499,12 @@ company-dcd = callPackage ({ cl-lib ? null, company, fetchFromGitHub, fetchurl, flycheck-dmd-dub, ivy, lib, melpaBuild, popwin, yasnippet }: melpaBuild { pname = "company-dcd"; - version = "20161114.2306"; + version = "20170516.210"; src = fetchFromGitHub { owner = "tsukimizake"; repo = "company-dcd"; - rev = "4161374fd0da40bbebb6f6e01f1589625708d8ef"; - sha256 = "0pi0363s8ww6xz7drgxi195jcanvmx1g4wv4zrpdl9dx8cf166bs"; + rev = "4832188a9e42287539a69c372fe1643166a6a7aa"; + sha256 = "07caaff8chabrgl4hqanq13p5qhzqx5fcg2synl8856d7v1456vc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ad5be8c53911271fba03a88da7e9d518c6508ffe/recipes/company-dcd"; @@ -9736,8 +9594,8 @@ src = fetchFromGitHub { owner = "emacs-eclim"; repo = "emacs-eclim"; - rev = "c13d1e853722bac880e82e6b04158015e7b12f6c"; - sha256 = "18bm0prhnahj0b397hn9nn98d09rrzfhzfg86glxqy4y8k6f0ai6"; + rev = "14596d3a1c0e7f18be6b88eddebaf7f36eeca859"; + sha256 = "04vmq8d68na8pxwd18lxf87v0nzf3cxxdvw8cqzj28his7g37bym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e9d3075587fbd9ca188535fd945a7dc451c6d7e/recipes/company-emacs-eclim"; @@ -9837,12 +9695,12 @@ company-ghc = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, ghc, lib, melpaBuild }: melpaBuild { pname = "company-ghc"; - version = "20160315.710"; + version = "20170918.133"; src = fetchFromGitHub { owner = "iquiw"; repo = "company-ghc"; - rev = "ff2205c0b309467eea763521d30220e7849c75b0"; - sha256 = "1a93q5q91xjyvfxbf5q57ndjarqdm9av11bb3dmc72v9bmwgpi7s"; + rev = "dab111cb5067c545ccdc6b2d0ba70c1c4bbce060"; + sha256 = "0ygw3dhlz247qzmcsbnkkdry2w2ni60j1rbyqprnzp8sd5yk97r1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/28f6a983444f796c81df7e5ee94d74c480b21298/recipes/company-ghc"; @@ -9876,15 +9734,36 @@ license = lib.licenses.free; }; }) {}; + company-glsl = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, glsl-mode, lib, melpaBuild }: + melpaBuild { + pname = "company-glsl"; + version = "20171015.1049"; + src = fetchFromGitHub { + owner = "GuidoSchmidt"; + repo = "company-glsl"; + rev = "a262c12c3bcd0807718c4edcaf2b054e30ef0e26"; + sha256 = "0338bym8ifvkgpbc4vyzf3nmlp6rc8lihyxcbym5m08612ln78mk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/abab3b5a9762639812e2aabf9d288ed367dcdc22/recipes/company-glsl"; + sha256 = "0lzy3xln5780yjwhhcz6vnc2j0k0rc7jfvqc8bv0xfabikgadmkn"; + name = "company-glsl"; + }; + packageRequires = [ company emacs glsl-mode ]; + meta = { + homepage = "https://melpa.org/#/company-glsl"; + license = lib.licenses.free; + }; + }) {}; company-go = callPackage ({ company, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild }: melpaBuild { pname = "company-go"; - version = "20170401.345"; + version = "20170825.943"; src = fetchFromGitHub { owner = "nsf"; repo = "gocode"; - rev = "1ed1baa46aeda2ce7de181161d4e2d369a740ce1"; - sha256 = "1ywyvppqyv6r52jagjn45nbrx9r5hsr2b3nxaya8sxsrkjv6hsn7"; + rev = "e990796e68a2ebfc099afed20b99e26d6b64061a"; + sha256 = "1s2jpqy599fr5qzfvba5njrwx1n48vqjg20vibssn2kyyc3l42d3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/company-go"; @@ -9921,12 +9800,12 @@ company-irony = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, irony, lib, melpaBuild }: melpaBuild { pname = "company-irony"; - version = "20160826.56"; + version = "20170905.1346"; src = fetchFromGitHub { owner = "Sarcasm"; repo = "company-irony"; - rev = "f1d6761c581fd12fa1188e26478c0229d8348332"; - sha256 = "10kbyrryjk66ix5024acqrc0nn3hfgsavfpgbdspwbhwcff9czsx"; + rev = "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7"; + sha256 = "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2b6a8d57b192325dcd30fddc9ff8dd1516ad680/recipes/company-irony"; @@ -9946,8 +9825,8 @@ src = fetchFromGitHub { owner = "hotpxl"; repo = "company-irony-c-headers"; - rev = "ba304fe7eebdff90bbc7dea063b45b82638427fa"; - sha256 = "1x2dfjmy86icyv2g1y5bjlr87w8rixqdcndkwm1sba6ha277wp9i"; + rev = "5bbd427a2d3d4445e3413f7516def9aa80543b2a"; + sha256 = "172wf0ywbvqn9smwnh4kgxx8gw9g2f76irg3fmcv4d8d53mi08wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9f9f62d8ef438a9ba4872bd7731768eddc5905de/recipes/company-irony-c-headers"; @@ -9981,6 +9860,48 @@ license = lib.licenses.free; }; }) {}; + company-lean = callPackage ({ company, dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, lean-mode, lib, melpaBuild, s }: + melpaBuild { + pname = "company-lean"; + version = "20170920.708"; + src = fetchFromGitHub { + owner = "leanprover"; + repo = "lean-mode"; + rev = "2f73061c886bae07bc51e4d9eb545ed8027c0442"; + sha256 = "17bqx7bkfzv4w7cf0l139xwg1shns680rq74hrqgicammb453kz7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde/recipes/company-lean"; + sha256 = "1hqkn7w5dyznf7i3r3132q8x31r74q188jsm5kdrjqgbwak2p91a"; + name = "company-lean"; + }; + packageRequires = [ company dash dash-functional emacs f lean-mode s ]; + meta = { + homepage = "https://melpa.org/#/company-lean"; + license = lib.licenses.free; + }; + }) {}; + company-lsp = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild, s }: + melpaBuild { + pname = "company-lsp"; + version = "20171031.1844"; + src = fetchFromGitHub { + owner = "tigersoldier"; + repo = "company-lsp"; + rev = "5fc50b6ad5c4ee71625bddf348646be44e69f396"; + sha256 = "1gkabm9iaimv4s7v723aflvxa7z902py46m5mz0szpdcrrh36495"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5125f53307c1af3d9ccf2bae3c25e7d23dfe1932/recipes/company-lsp"; + sha256 = "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l"; + name = "company-lsp"; + }; + packageRequires = [ company emacs lsp-mode s ]; + meta = { + homepage = "https://melpa.org/#/company-lsp"; + license = lib.licenses.free; + }; + }) {}; company-lua = callPackage ({ company, f, fetchFromGitHub, fetchurl, lib, lua-mode, melpaBuild, s }: melpaBuild { pname = "company-lua"; @@ -9988,8 +9909,8 @@ src = fetchFromGitHub { owner = "ptrv"; repo = "company-lua"; - rev = "0be8122f3adf57ad27953bf4b03545d6298d3da4"; - sha256 = "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"; + rev = "6a542ba16d7fa47865879b5a99dedd121a84a880"; + sha256 = "10wy9s29sbzaz61p62vda6cqwjk6rpa6ia8zm4n3d6xvpv2wqa70"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c8191ab2aaa72041be46091e363d216cf1b73fde/recipes/company-lua"; @@ -10005,12 +9926,12 @@ company-math = callPackage ({ company, fetchFromGitHub, fetchurl, lib, math-symbol-lists, melpaBuild }: melpaBuild { pname = "company-math"; - version = "20170221.751"; + version = "20171016.814"; src = fetchFromGitHub { owner = "vspinu"; repo = "company-math"; - rev = "34b4b52f67e5c1ffaf807e4be1512fca4695eea8"; - sha256 = "0xl2am7kwbdfaxysjamq0b9slcdmlqqprb23zf07i4b28qa72qca"; + rev = "3481f03ebb6a613ff85b71ca8edd2d5842c49012"; + sha256 = "0nbnqgl2jly1n5nx20hr2i84r2shxjb3axv2p597b5kw2bdbsva5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fadff01600d57f5b9ea9c0c47ed109e058114998/recipes/company-math"; @@ -10072,8 +9993,8 @@ src = fetchFromGitHub { owner = "travisbhartwell"; repo = "nix-emacs"; - rev = "ace629f7645d12778c96ff7b5cf4b1e41a98af29"; - sha256 = "11infdrdjc30kxvfg5rh1zn4idvkhf9s0c6v60qn441m1d5bnavq"; + rev = "7007363e773a419203a69798fb0e0731b2eb0f73"; + sha256 = "00hv8fhyahkdh1vfy1qkahqvsik6d81c7mqh4gjiqxrmb2l1vbcb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6846c7d86e70a9dd8300b89b61435aa7e146be96/recipes/company-nixos-options"; @@ -10093,8 +10014,8 @@ src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php"; @@ -10107,6 +10028,27 @@ license = lib.licenses.free; }; }) {}; + company-plsense = callPackage ({ cl-lib ? null, company, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "company-plsense"; + version = "20171016.1013"; + src = fetchFromGitHub { + owner = "CeleritasCelery"; + repo = "company-plsense"; + rev = "68dd1ca0a0837990a2e6c2e36f6b10fdf4a9bb6d"; + sha256 = "07bqm1bg91r3vchy2q2pk3npngqfb73fh0b7mp1g9fj11h25mjfr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9cf9d671d81e07c704676c557a9f0d686067ce5c/recipes/company-plsense"; + sha256 = "0k8k2vpkknd4nyxzwdj7698lgm5d85byxd49x7w5nrxmh2h1w3c7"; + name = "company-plsense"; + }; + packageRequires = [ cl-lib company dash emacs s ]; + meta = { + homepage = "https://melpa.org/#/company-plsense"; + license = lib.licenses.free; + }; + }) {}; company-pollen = callPackage ({ company, fetchFromGitHub, fetchurl, lib, melpaBuild, pollen-mode }: melpaBuild { pname = "company-pollen"; @@ -10131,12 +10073,12 @@ company-qml = callPackage ({ company, fetchFromGitHub, fetchurl, lib, melpaBuild, qml-mode }: melpaBuild { pname = "company-qml"; - version = "20160707.1705"; + version = "20170428.1008"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "company-qml"; - rev = "2027907611cd8a484289340506c63fa3a2c891a8"; - sha256 = "13nxvn0rvz9nfyi0w7iczq28afvln1q6djhn4drfm3ipmrx0cfgg"; + rev = "4af4f32a7ad86d86bb9293fb0b675aec513b5736"; + sha256 = "09d733r07gr4cxp7npyhi93xchvirxh1v00fr487v4a0mdaahpxf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b53477eaba4ef62f8317c9454e15ac015442fed/recipes/company-qml"; @@ -10152,12 +10094,12 @@ company-quickhelp = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pos-tip }: melpaBuild { pname = "company-quickhelp"; - version = "20170416.526"; + version = "20170429.1052"; src = fetchFromGitHub { owner = "expez"; repo = "company-quickhelp"; - rev = "81d9081fa68ef16ccd11ecc6296bf870d47d11f0"; - sha256 = "1fp7niq3xyp3xdqmbf6hzdz0g6p4rpk9lf4vhg2619qmkzh3k1d7"; + rev = "432c62f034a5097d3f85d7f54afcdc016d7afa12"; + sha256 = "06ijf4ayqkmlmk5waxi7alinv3wpy23b8xm35llf3h1ncg99zwqj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/022cc4fee54bb0194822947c70058145e2980b94/recipes/company-quickhelp"; @@ -10198,8 +10140,8 @@ src = fetchFromGitHub { owner = "iquiw"; repo = "company-restclient"; - rev = "7b41cd58ffdf965480f1cf52d58d718009ba6fe7"; - sha256 = "0j6b9jqs4i05rxx6fs7rvim1snf33fi1l6dkm9lskchbykzz4adq"; + rev = "ef67ba2f613ce3d61b70011c9d0a303a754ffc5b"; + sha256 = "0af1h6n1rgyni686hrrakmmbgymjg8dc1i9g2jc27dxkxz0nk454"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dd063bc3789772fdcc6a8555817588962e60825/recipes/company-restclient"; @@ -10221,12 +10163,12 @@ company-rtags = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }: melpaBuild { pname = "company-rtags"; - version = "20170405.2311"; + version = "20170924.2244"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/company-rtags"; @@ -10239,22 +10181,22 @@ license = lib.licenses.free; }; }) {}; - company-shell = callPackage ({ cl-lib ? null, company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: + company-shell = callPackage ({ cl-lib ? null, company, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-shell"; - version = "20161128.953"; + version = "20170517.2241"; src = fetchFromGitHub { owner = "Alexander-Miller"; repo = "company-shell"; - rev = "a4a7b9ed6b81e4c9f9cb04f63b386fd76d952f11"; - sha256 = "00bgxd66pwchpy1lnv43izgr6gk4c9nh02jab6laf5jk8s9xs2h7"; + rev = "6ae625f80d90e0779c79de38e8f83a336c1d00fa"; + sha256 = "0da9y7x1xvaahsslcmgji6hr3cbn779i504cfrmsabbr3wmkn3fy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bbaa05d158f3806b9f79a2c826763166dbee56ca/recipes/company-shell"; sha256 = "0my9jghf3s4idkgrpki8mj1lm5ichfvznb09lfwf07fjhg0q1apz"; name = "company-shell"; }; - packageRequires = [ cl-lib company dash ]; + packageRequires = [ cl-lib company dash emacs ]; meta = { homepage = "https://melpa.org/#/company-shell"; license = lib.licenses.free; @@ -10323,6 +10265,27 @@ license = lib.licenses.free; }; }) {}; + company-terraform = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, terraform-mode }: + melpaBuild { + pname = "company-terraform"; + version = "20170812.722"; + src = fetchFromGitHub { + owner = "rafalcieslak"; + repo = "emacs-company-terraform"; + rev = "bd97342fa1b3b77bd19a3ff202a5ce5cbead36d4"; + sha256 = "0yv0hiskdxx2653g5crmb9yq6c8azrvdja56wnhm8i9kvhnhkggh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1d9732da975dcf59d3b311b19e20abbb29c33656/recipes/company-terraform"; + sha256 = "198ppqn6f7y9bg582z5s4cl9gg1q9ibsr7mmn68b50zvma7ankzh"; + name = "company-terraform"; + }; + packageRequires = [ company emacs terraform-mode ]; + meta = { + homepage = "https://melpa.org/#/company-terraform"; + license = lib.licenses.free; + }; + }) {}; company-try-hard = callPackage ({ company, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-try-hard"; @@ -10389,12 +10352,12 @@ company-ycmd = callPackage ({ company, dash, deferred, f, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, s, ycmd }: melpaBuild { pname = "company-ycmd"; - version = "20161026.2337"; + version = "20171010.2258"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "35553f0e8b84f6b1dc149b84dedb52b72a64240a"; - sha256 = "1cwbpl2mi63faxj7izl97qn7gc9g1wy8xig89d2yxyv3isb65la2"; + rev = "d951afd8c1c2f25a5cbeef3acfcec5f72acfd6e4"; + sha256 = "0k6z82a3xkk71lbnw3sxqmr8ixafglivmsb5y35q1jichzz6hail"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/company-ycmd"; @@ -10410,12 +10373,12 @@ composable = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "composable"; - version = "20170319.644"; + version = "20170723.2347"; src = fetchFromGitHub { owner = "paldepind"; repo = "composable.el"; - rev = "30bdd343f846d71c280189a1236324591b10d9ce"; - sha256 = "1pnawyjr6r80nlbh8mncvr42kwr9kha18sslnzx6agm0zzil36ib"; + rev = "ac981974f89607393cc61314aaa19672d45b0650"; + sha256 = "0xg46r6ibga27cdycbysm80n2ayi8vmxcff1b6bqjjrsc0wbdnac"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1fc0f076198e4be46a33a26eea9f2d273dda12b8/recipes/composable"; @@ -10433,14 +10396,14 @@ pname = "composer"; version = "20170304.1647"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "composer.el"; rev = "43e50a5e626bedb3c46c875ac765daf615f18ce9"; sha256 = "0vfr9v60dgynjfz1kpx4c17mhsfbyi9g68jzvjkw7y95pwqv8f0y"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/39c5002f0688397a51b1b0c6c15f6ac07c3681bc/recipes/composer"; - sha256 = "1gwgfbb0fqn87s7jscr9xy47h239wy74n3hgpk4i16p2g6qinpza"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/composer"; + sha256 = "01w9cywhfngkrl9az8kfpzm12nc0zwmax01pyxlbi2l2icmvp5s1"; name = "composer"; }; packageRequires = [ emacs f request s seq ]; @@ -10456,8 +10419,8 @@ src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-deferred"; - rev = "7f2bb81e75db895c99611a7a9fbde7c239b757ba"; - sha256 = "09qnk8xhk5vjn7iqfzg3yzydas47453k1qm22gbmlfxh6lvxsqh2"; + rev = "2239671d94b38d92e9b28d4e12fd79814cfb9c16"; + sha256 = "0vz59lm7pfz0gbsgrb44y555js85wbdjn0zm6p8wfqjiqf63ds3i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc29a8d518ce7a584277089bd4654f52ac0f358/recipes/concurrent"; @@ -10473,12 +10436,12 @@ conda = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }: melpaBuild { pname = "conda"; - version = "20161103.743"; + version = "20171028.617"; src = fetchFromGitHub { owner = "necaris"; repo = "conda.el"; - rev = "5a13e7deda80adb40553f1c256531d040a4c99a1"; - sha256 = "011z47hkynss8a56c2fi702laqxicmwai6anald58436pdxi3y6y"; + rev = "526be691824f4a32299f560a883913697bc4d847"; + sha256 = "1jix3md6b02fypjm4y05av7acjkqryd1vqqz9wgxyinydlagrvh7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda"; @@ -10491,6 +10454,27 @@ license = lib.licenses.free; }; }) {}; + config-general-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "config-general-mode"; + version = "20171024.1140"; + src = fetchFromGitHub { + owner = "tlinden"; + repo = "config-general-mode"; + rev = "b4a8e6ba0bb027a77e4a0f701409f3e57bb2e4c0"; + sha256 = "115sk0h6i1bfnxw1v11719926cvnq7gyisjcysvkam40hp3d5fx5"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6c06831528e4bbc44aae1cc5cd6bec60150ae087/recipes/config-general-mode"; + sha256 = "1408xyzmb5aj1yrlgkymwy5x6rb1a9ynkx2m6hgj38qj6dz44cyy"; + name = "config-general-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/config-general-mode"; + license = lib.licenses.free; + }; + }) {}; config-parser = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "config-parser"; @@ -10512,18 +10496,19 @@ license = lib.licenses.free; }; }) {}; - confluence = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild, xml-rpc }: + confluence = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, xml-rpc }: melpaBuild { pname = "confluence"; version = "20151020.1828"; - src = fetchsvn { - url = "https://svn.code.sf.net/p/confluence-el/code/trunk/"; - rev = "173"; - sha256 = "18859zi60s2y79add998vxh084znbdxxq31m12flg7makxlamyh7"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "confluence"; + rev = "4518d270a07760644c4204985c83d234ece4738b"; + sha256 = "1lrq23cxlp2vkyv7g56r06bp7chhw10kii3ymkydf24y4pyn1zpg"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/cf9110cd142ece0a8d63815bf00a89574b947bb4/recipes/confluence"; - sha256 = "0hplpqaxjg34pf75p9sf97wlbq4rz9f8qvn4cfpjxf16if078ls3"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/confluence"; + sha256 = "0xa2g168mm31kh5h7smhx35cjsk1js88nzs19yakjljf56b1khlf"; name = "confluence"; }; packageRequires = [ xml-rpc ]; @@ -10595,6 +10580,27 @@ license = lib.licenses.free; }; }) {}; + contextual-menubar = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "contextual-menubar"; + version = "20170908.408"; + src = fetchFromGitHub { + owner = "aaronjensen"; + repo = "contextual-menubar"; + rev = "67ddb1c8eec62e2b26524c09585a4f25f03ebb11"; + sha256 = "06rfkv7q9brahjgaqvpixqb26v4a65hyphl7ymjx8qyyypzrzac5"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cba21d98f3abbf1f45d1fdd9164d4660b7d3e368/recipes/contextual-menubar"; + sha256 = "0r9bsnvf45h7gsdfhsz7h02nskjvflfa2yjarjv9fcl7aipz8rr6"; + name = "contextual-menubar"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/contextual-menubar"; + license = lib.licenses.free; + }; + }) {}; contrast-color = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "contrast-color"; @@ -10640,12 +10646,12 @@ copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "copy-as-format"; - version = "20170310.1621"; + version = "20170603.945"; src = fetchFromGitHub { owner = "sshaw"; repo = "copy-as-format"; - rev = "161feb918b104e87f1a284f5c4e5e507e0c177f8"; - sha256 = "0y1j6f9xs877r4bv6dmcl2jsl27v0n6rsmpml719id2cfnh9sn4g"; + rev = "fba9fe57a310a71c5aac90a26434df4c08214833"; + sha256 = "1qh3qxy8p23nz0zh8iavggjhp0mn10finq3zl3i0a3vkxxrvgh76"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format"; @@ -10658,6 +10664,27 @@ license = lib.licenses.free; }; }) {}; + copy-file-on-save = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "copy-file-on-save"; + version = "20171019.347"; + src = fetchFromGitHub { + owner = "emacs-php"; + repo = "emacs-auto-deployment"; + rev = "fe78b4c9fdc261ce22a771765702ebe4d9437c84"; + sha256 = "0vf6qp7fxqvgd02vfsbmm38vc8n2wvrfwv4wnsr15gd8y8zldlgs"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/copy-file-on-save"; + sha256 = "1mcwgkhd241aijnmzrrqqn9f7hiq5k1w4fj83v50aixrcs049gc3"; + name = "copy-file-on-save"; + }; + packageRequires = [ cl-lib emacs f s ]; + meta = { + homepage = "https://melpa.org/#/copy-file-on-save"; + license = lib.licenses.free; + }; + }) {}; copyit = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "copyit"; @@ -10703,16 +10730,16 @@ coq-commenter = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "coq-commenter"; - version = "20160808.2307"; + version = "20170822.1609"; src = fetchFromGitHub { owner = "ailrun"; repo = "coq-commenter"; - rev = "b57c7c92219201c0f931014127b50fd9b1e0039a"; - sha256 = "03wwdd9n7fijrczrrdhn9xisrj7mqhc2q7z4da6fm3q45sy2npqk"; + rev = "7fe9a2cc0ebdb0b1e54a24eb7971d757fb588ac3"; + sha256 = "1rq0j6ds9snv21k2lzyja96qxxz8nrai5aj1k1si9zshld28mapx"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/coq-commenter"; - sha256 = "07svxfh6wx78lg2r7jssdlipmcwzk8w14vry9fr5wxxi24y37nvg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c97d3f653057eab35c612109792884334be556fe/recipes/coq-commenter"; + sha256 = "19726z8yvgwjikbl95smdl60k58a5yf7cjbinnb7251d8mhd8562"; name = "coq-commenter"; }; packageRequires = [ cl-lib dash s ]; @@ -10742,15 +10769,36 @@ license = lib.licenses.free; }; }) {}; + cosmo = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cosmo"; + version = "20170922.44"; + src = fetchFromGitLab { + owner = "montanari"; + repo = "cosmo-el"; + rev = "dd83b09a49a2843606b28279b674b2207040b36b"; + sha256 = "0phcg81g3dy67s1hfymvj0lkcpwygwql8iixf940nv31qllgzvd7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3ab914dfefcddf6ecd65261bc11bd3eb12929c79/recipes/cosmo"; + sha256 = "1pk34d0kv1jm2fq72qa5lj0y39x1yf2nbkjjg8jcj8ari28h9vfk"; + name = "cosmo"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/cosmo"; + license = lib.licenses.free; + }; + }) {}; counsel = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, swiper }: melpaBuild { pname = "counsel"; - version = "20170416.1036"; + version = "20171031.1234"; src = fetchFromGitHub { owner = "abo-abo"; repo = "swiper"; - rev = "a3abf3ffd670776da591ae9e5e2d7011b6d6a190"; - sha256 = "1jn7lry6fdnv9m24m4i5fgvz0qywcx3r08a36l2y1ksb125vank8"; + rev = "96663b77945ab21e4e1b0aab690fc2e926f01f9c"; + sha256 = "0r691dzs77zdkvjzb787kjg8zvvba8gdj2da9zjb14m4nyjmg9d9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/06c50f32b8d603db0d70e77907e36862cd66b811/recipes/counsel"; @@ -10766,12 +10814,12 @@ counsel-bbdb = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "counsel-bbdb"; - version = "20161105.350"; + version = "20171016.1545"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "counsel-bbdb"; - rev = "297d0c7e6e1eaafcd5e188724fea8e8f26b95555"; - sha256 = "14gw4d855v2nvqh06vs9rzs816pn1hp4rhfikb0wzg1ay6gdrwi7"; + rev = "298b48cb9e1186347fbcaf1ba354efa5fe2d7556"; + sha256 = "137iv77j9a7mxsfrjxk4fpbaxw964pk4yj15609wijfcwgdjprwd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0ed9bcdb1f25a6dd743c1dac2bb6cda73a5a5dc2/recipes/counsel-bbdb"; @@ -10805,6 +10853,27 @@ license = lib.licenses.free; }; }) {}; + counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "counsel-etags"; + version = "20171026.435"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "counsel-etags"; + rev = "19757e5d79a7a504760a1e7a7095779b48ec995f"; + sha256 = "1qacqjl1x01r3ss1a9qwy0651gamnkp59nzl9i6krnrdfksc6gjz"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags"; + sha256 = "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0"; + name = "counsel-etags"; + }; + packageRequires = [ counsel emacs ]; + meta = { + homepage = "https://melpa.org/#/counsel-etags"; + license = lib.licenses.free; + }; + }) {}; counsel-gtags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "counsel-gtags"; @@ -10850,12 +10919,12 @@ counsel-projectile = callPackage ({ counsel, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: melpaBuild { pname = "counsel-projectile"; - version = "20170216.1426"; + version = "20171001.641"; src = fetchFromGitHub { owner = "ericdanan"; repo = "counsel-projectile"; - rev = "aefd25c74718e66f180127c0d273eade887325b0"; - sha256 = "10d29mpvsav19m9x51w8bjv0r9agxdwsvhk1ql62lj7rcy4256jq"; + rev = "88a16cb75301ae95f21a71e8838a49590d011e73"; + sha256 = "155yvmyyg99znxnb3viagmd3hmii44fww68g857l7msw4q9ki1gy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/389f16f886a385b02f466540f042a16eea8ba792/recipes/counsel-projectile"; @@ -10868,6 +10937,48 @@ license = lib.licenses.free; }; }) {}; + counsel-pydoc = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "counsel-pydoc"; + version = "20171018.1342"; + src = fetchFromGitHub { + owner = "co-dh"; + repo = "pydoc_utils"; + rev = "1d8ff8ca3b9d69453cde423b1887fbb490a95c9e"; + sha256 = "06kf93y8wb9nwvs70xi4lkd5x4g6sl8f83diy2wl7ha657dwx3m8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/110939c12b4e042a486e97be4c2a2426c5978ca6/recipes/counsel-pydoc"; + sha256 = "1a3vwh4jf5y03z95bd4blk75n6wjd24l6yw6vpr3991bi4qrxclz"; + name = "counsel-pydoc"; + }; + packageRequires = [ emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/counsel-pydoc"; + license = lib.licenses.free; + }; + }) {}; + counsel-spotify = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "counsel-spotify"; + version = "20170612.1132"; + src = fetchFromGitHub { + owner = "Lautaro-Garcia"; + repo = "counsel-spotify"; + rev = "dba8c1bf92e15f34f12a9e22b5958a93f10b46c5"; + sha256 = "1j7rzf8mws2yzdvfz8a6k48b5x6cn11lfvfya5s4c90kyy92j8ag"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b386462518a5ebb6454f4d01582df98395239bcc/recipes/counsel-spotify"; + sha256 = "1xs4km5vjhn6dnlmrscz7airip07n1ppybp8mr17hinb8scfpv47"; + name = "counsel-spotify"; + }; + packageRequires = [ emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/counsel-spotify"; + license = lib.licenses.free; + }; + }) {}; cov = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "cov"; @@ -10875,8 +10986,8 @@ src = fetchFromGitHub { owner = "AdamNiederer"; repo = "cov"; - rev = "74e8f32433eab6b31357642ad5a7ed79a3dfbd05"; - sha256 = "100fk11fjj8wx8lm4ln4p4b6brxfgnkxq387v6ikyigr6lascmsw"; + rev = "519239cc37d3ad0204fecac99f42e1694ce57d3d"; + sha256 = "1kb2rmxx91q4cwm1npzyiykwg5jxhhz7waykh5vqxr5y81hr5nza"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d0f35ce436ac157955d6f92de96e14bef9ad69e3/recipes/cov"; @@ -10976,12 +11087,12 @@ cpputils-cmake = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cpputils-cmake"; - version = "20170203.155"; + version = "20170819.259"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "cpputils-cmake"; - rev = "5bad6a1f1042e45fa6d2c20fd901100d14d455ff"; - sha256 = "0ag0wkyf1y4q0cnv8gixrbhhaf871x3r97izb82v42i47cnwk228"; + rev = "4fa37dd075c716f98b67b96f3b6e022730df1c1b"; + sha256 = "194vayk2hvqm2nv1rr3myiadrfvk8fpch1qlbic9bzbgfrl74i41"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9b84a159e97f7161d0705da5dd5e8c34ae5cb848/recipes/cpputils-cmake"; @@ -11015,27 +11126,6 @@ license = lib.licenses.free; }; }) {}; - crab = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild, websocket }: - melpaBuild { - pname = "crab"; - version = "20150126.2137"; - src = fetchFromGitHub { - owner = "puffnfresh"; - repo = "crab-emacs"; - rev = "6d66844856c1864157cef3dea9332c319b05d7d5"; - sha256 = "0y37fx4ghx8a74cp7ci6p5yfpji8g42hlah2xcwfnyw0qlpqfbnl"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/25f80586fb88ab5f0eb71d657d602d9faa1169ec/recipes/crab"; - sha256 = "1jz26bw2h7ahcb7y2qhpqrlfald244c92m6pvfrb0jg0z384i6aj"; - name = "crab"; - }; - packageRequires = [ json websocket ]; - meta = { - homepage = "https://melpa.org/#/crab"; - license = lib.licenses.free; - }; - }) {}; crappy-jsp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "crappy-jsp-mode"; @@ -11144,12 +11234,12 @@ cricbuzz = callPackage ({ dash, enlive, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "cricbuzz"; - version = "20161130.2036"; + version = "20170726.504"; src = fetchFromGitHub { owner = "lepisma"; repo = "cricbuzz.el"; - rev = "5fe51347f5d6e7636ece5e904e4bdec0be21db45"; - sha256 = "1x29garhp1x5h1mwbamwjnfw52w45b39aqxsvcdxmcf730w9pq63"; + rev = "62c86b1aa6e0779c4f6d8fb9d31d75bf81994f69"; + sha256 = "1k8n65scj3frafy1fk25j3kzpp0q8r98ydibryv48izndpck03h3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/cricbuzz"; @@ -11183,55 +11273,15 @@ license = lib.licenses.free; }; }) {}; - crontab-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "crontab-mode"; - version = "20090510.1355"; - src = fetchFromGitHub { - owner = "emacsorphanage"; - repo = "crontab-mode"; - rev = "68341c82b26462a6af4a5e2b624b1c2165243b8e"; - sha256 = "1r9dhk8h8lq18vi0hjai8y4z42yjxg18786mcr2qs5m3q1ampf9d"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5f2a50f62475639af011c99c6cc38928b74b3b0a/recipes/crontab-mode"; - sha256 = "16qc2isvf6cgl5ihdbwmvv0gbhns4mkhd5lxkl6f8f6h0za054ci"; - name = "crontab-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/crontab-mode"; - license = lib.licenses.free; - }; - }) {}; - crosshairs = callPackage ({ col-highlight, fetchurl, hl-line-plus, lib, melpaBuild, vline }: - melpaBuild { - pname = "crosshairs"; - version = "20170221.1608"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/crosshairs.el"; - sha256 = "1wjj88zv37ak9zd12d7sy7j261x5y17wxmw5jrzk56shkpdvcbq0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/crosshairs"; - sha256 = "0s7gh5zrb46hzybmpydb0pad7jinvcwds7i03ndhzwx89rxg3019"; - name = "crosshairs"; - }; - packageRequires = [ col-highlight hl-line-plus vline ]; - meta = { - homepage = "https://melpa.org/#/crosshairs"; - license = lib.licenses.free; - }; - }) {}; crux = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "crux"; - version = "20161219.2313"; + version = "20170801.1334"; src = fetchFromGitHub { owner = "bbatsov"; repo = "crux"; - rev = "430235753cda1e9af75d209e36a2c9c4f6599a80"; - sha256 = "1v16ac9wfvnhy5h8v82ym165lz27bv9p0wma44c8nz24cl848rrm"; + rev = "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f"; + sha256 = "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/575e3442a925500a5806e0b900208c1e6bfd11ae/recipes/crux"; @@ -11286,6 +11336,27 @@ license = lib.licenses.free; }; }) {}; + crystal-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "crystal-mode"; + version = "20171023.212"; + src = fetchFromGitHub { + owner = "crystal-lang-tools"; + repo = "emacs-crystal-mode"; + rev = "1e8061c049766c25f1c06d43e703d3133426f7c0"; + sha256 = "0w11s1vmp9b4dlq9kvnxi63j69c94bqpg3fn9w4jasnpz4w9nkcf"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d4b9b47d7deecf0cf24a42b26d50021cb1219a69/recipes/crystal-mode"; + sha256 = "1fgpz7zab6nc6kvjzjsbvrbg8shf4by0f20cvjvyky8kym72q0hk"; + name = "crystal-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/crystal-mode"; + license = lib.licenses.free; + }; + }) {}; csgo-conf-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "csgo-conf-mode"; @@ -11310,12 +11381,12 @@ csharp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "csharp-mode"; - version = "20170203.1122"; + version = "20170927.816"; src = fetchFromGitHub { owner = "josteink"; repo = "csharp-mode"; - rev = "571c4c70fe2de790e093cff23050827c5f6e96aa"; - sha256 = "14wr98hq1banf0dbyi83rar0apj9gvwdqfvmnmhzxfr6dnzxsybf"; + rev = "331b45df9c6e84601cea323638f82ce5e4a68b03"; + sha256 = "00i53c5a85n1i48jyxg78ab2yicx8maybfc6mzxw8s12j9hbw75i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/736716bbcfd9c9fb1d10ce290cb4f66fe1c68f44/recipes/csharp-mode"; @@ -11328,6 +11399,27 @@ license = lib.licenses.free; }; }) {}; + csound-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, multi, shut-up }: + melpaBuild { + pname = "csound-mode"; + version = "20171025.401"; + src = fetchFromGitHub { + owner = "hlolli"; + repo = "csound-mode"; + rev = "5680a266a32c62e8d7ebd987bf6e5fd40033bbeb"; + sha256 = "1zlb7bwx82rayzphf4q5f1w6yhm3r267fzgn74xmckh50jyq917y"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c940d29de11e43b4abf2901c466c94d426a21818/recipes/csound-mode"; + sha256 = "047a78nhkn6qycsz8w9a0r1xyz5wyf4rds3z5yx9sn5wkv54w95d"; + name = "csound-mode"; + }; + packageRequires = [ emacs multi shut-up ]; + meta = { + homepage = "https://melpa.org/#/csound-mode"; + license = lib.licenses.free; + }; + }) {}; css-comb = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "css-comb"; @@ -11412,33 +11504,15 @@ license = lib.licenses.free; }; }) {}; - csv-nav = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "csv-nav"; - version = "20130407.1120"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/csv-nav.el"; - sha256 = "15rfg3326xcs3zj3siy9rn7yff101vfch1srskdi2650c3l3krva"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/csv-nav"; - sha256 = "0626vsm2f5zc2wi5pyx4xrwcr4ai8w9a3l7gi9883smvayr619sj"; - name = "csv-nav"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/csv-nav"; - license = lib.licenses.free; - }; - }) {}; ctable = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ctable"; - version = "20140304.1659"; + version = "20171005.1711"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-ctable"; - rev = "cd673a09a80ce4e9e102ffe2e3d7e6bfb9d652b0"; - sha256 = "07vasdlai49qs0nsmq2cz1kcq1adqyarv8199imgwwcbh4vn7dqb"; + rev = "b8830d1ca95abb100a81bc32011bd17d5ecba000"; + sha256 = "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc29a8d518ce7a584277089bd4654f52ac0f358/recipes/ctable"; @@ -11454,12 +11528,12 @@ ctags-update = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ctags-update"; - version = "20170120.2313"; + version = "20170728.58"; src = fetchFromGitHub { owner = "jixiuf"; repo = "ctags-update"; - rev = "9c58084395bd5c62c3fe500cd56d62bfc1dcee51"; - sha256 = "0cgq31ivhhr32pz17yfy7sja81bhxjh7fn502fa8mc9c3msgflwn"; + rev = "783bf91eba1cd27cbb739067a24e15e5e04564e6"; + sha256 = "1navj3cm5gmp0h8wyk281i1gjry1kj0i73wlz1fjwkqm6awxfz4w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e5d0c347ff8cf6e0ade80853775fd6b84f387fa5/recipes/ctags-update"; @@ -11517,12 +11591,12 @@ cubicaltt = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cubicaltt"; - version = "20161020.1343"; + version = "20170912.317"; src = fetchFromGitHub { owner = "mortberg"; repo = "cubicaltt"; - rev = "9ae218e0beefd3cc2c617cf6b66ac9faba1a8af7"; - sha256 = "08d09wgi7j8qihqsxyl2lgvwcsi7gwl8kbz3c36yc0gb656m7blr"; + rev = "0cdd084498c3f5de53a26ae756e4a9f33625fa1f"; + sha256 = "1zgdc4lm6dyh57fim52ynxx0jfs9hsdgbj739firblmin6cdvm32"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1be42b49c206fc4f0df6fb50fed80b3d9b76710b/recipes/cubicaltt"; @@ -11535,6 +11609,27 @@ license = lib.licenses.free; }; }) {}; + cubicle-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cubicle-mode"; + version = "20171009.1257"; + src = fetchFromGitHub { + owner = "cubicle-model-checker"; + repo = "cubicle"; + rev = "9d108b900e0123236b4991c2d06b5061f34feee8"; + sha256 = "1n3x6m19swkq07zah4hh0ni6gx864bq1w0km06nq33x8189zczrr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/81c29c912b83cbb536d30ba04130b39c0e5e5969/recipes/cubicle-mode"; + sha256 = "0xcmd0s6dfryl1ihfaqq0pfqc906yzzwk3d3nv8g6b6w78pv1lzv"; + name = "cubicle-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/cubicle-mode"; + license = lib.licenses.free; + }; + }) {}; cucumber-goto-step = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pcre2el }: melpaBuild { pname = "cucumber-goto-step"; @@ -11577,24 +11672,6 @@ license = lib.licenses.free; }; }) {}; - cursor-chg = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cursor-chg"; - version = "20170221.1610"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/cursor-chg.el"; - sha256 = "026x1mbjrf68xrv970jbf131d26rj0nmzi1x0c8r6qdr02pw2jy1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/cursor-chg"; - sha256 = "1yam5hz1v16g2v19j3dmgbj7n2rj8dsqyr5hwfyc031s6q7f649x"; - name = "cursor-chg"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/cursor-chg"; - license = lib.licenses.free; - }; - }) {}; cursor-test = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cursor-test"; @@ -11616,33 +11693,36 @@ license = lib.licenses.free; }; }) {}; - cus-edit-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cus-edit-plus"; - version = "20170206.1603"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/cus-edit+.el"; - sha256 = "02mcvr8fnaflqwxzafr6i745wcw8akhjjq8ami312aibf5yjadik"; + cwl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }: + melpaBuild { + pname = "cwl-mode"; + version = "20171030.230"; + src = fetchFromGitHub { + owner = "tom-tan"; + repo = "cwl-mode"; + rev = "c5110c1e035535a1133a7107c0d2d55e5fe3c5b9"; + sha256 = "088998r78bpy77pb2rhbr6a2fks5mcy3qyvyzlqwwl0v2gnscl59"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/57370fc617f4f10cc67e9d3c6dc113ff0a18cace/recipes/cus-edit+"; - sha256 = "1kazcdfajcnrzvhsgsmwwx96rkry0dglprrc02hbd7ky1fppp4sz"; - name = "cus-edit-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/2309764cd56d9631dd97981a78b50b9fe793a280/recipes/cwl-mode"; + sha256 = "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j"; + name = "cwl-mode"; }; - packageRequires = []; + packageRequires = [ emacs yaml-mode ]; meta = { - homepage = "https://melpa.org/#/cus-edit+"; + homepage = "https://melpa.org/#/cwl-mode"; license = lib.licenses.free; }; }) {}; cyberpunk-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cyberpunk-theme"; - version = "20161012.1855"; + version = "20170724.924"; src = fetchFromGitHub { owner = "n3mo"; repo = "cyberpunk-theme.el"; - rev = "eb6ee11315180ae27b17b351163f47a1014348a0"; - sha256 = "0s9ja6l2y75lnkd1js4x3ks6pj5p6x7i9sm5vlcr5yq4qvmamn3h"; + rev = "88eff8a42d6ed8ba7782ae003ec9597aed4fd019"; + sha256 = "0pzdm5nbhykssc633injz6jw422ksy632fhz0szd03a6kfx49iby"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4c632d1e501d48dab54432ab111ce589aa229125/recipes/cyberpunk-theme"; @@ -11718,33 +11798,15 @@ license = lib.licenses.free; }; }) {}; - cygwin-mount = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "cygwin-mount"; - version = "20131111.1346"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/cygwin-mount.el"; - sha256 = "09my4gj3qm9rdpk8lg6n6ki8ywj7kwzwd4hhgwascfnfi1hzwdvw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f94fb69a954275ee4098c96495b8566d6ce7cbb9/recipes/cygwin-mount"; - sha256 = "0ik2c8ab9bsx58mgcv511p50h45cpv7455n4b0kri83sx9xf5abb"; - name = "cygwin-mount"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/cygwin-mount"; - license = lib.licenses.free; - }; - }) {}; cyphejor = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cyphejor"; - version = "20161231.1558"; + version = "20170518.2255"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "cyphejor"; - rev = "2c65c3f111573e1919e0a35e0ef84b9e861572b7"; - sha256 = "1lclz4k4xh535ilxqxpaqzdzn4j6zml9a0vrzxn6ffgd378dxn31"; + rev = "2d421507afead407f9daae694df254b160c4ff65"; + sha256 = "0rshg8b2wvw285j4b8f68hp4ilfsk324yh4inshj19c9lkbgqp39"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ad7cacfa39d8f85e26372ef21898663aebb68e43/recipes/cyphejor"; @@ -11781,12 +11843,12 @@ cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cython-mode"; - version = "20140705.1229"; + version = "20170907.1648"; src = fetchFromGitHub { owner = "cython"; repo = "cython"; - rev = "0558bdb4d1ed4da734ac7194f0bdbe7c030cc70e"; - sha256 = "18hf07pyyxdgb1li26yf26g77xqdpmgkxqkhxsq5aa8chj6zv900"; + rev = "ed44d37a80ef91ccb059a8ae056439a889eb6973"; + sha256 = "08hk3lah5mx3aii4d6d4xb7dbz1d0m2ch0c2hf13pw2d7irqvfzp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode"; @@ -11862,15 +11924,57 @@ license = lib.licenses.free; }; }) {}; + dad-joke = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dad-joke"; + version = "20170927.2358"; + src = fetchFromGitHub { + owner = "davep"; + repo = "dad-joke.el"; + rev = "bee47e7b746b403228fa7d7361cb095de19ac9ba"; + sha256 = "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/484d571b2737f7c613816333afdde6460c64e635/recipes/dad-joke"; + sha256 = "1cg8iaq79w5zx1s3dirdl7ymcp162mmsy5c4vly90v20yrijblad"; + name = "dad-joke"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/dad-joke"; + license = lib.licenses.free; + }; + }) {}; + dakrone-light-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dakrone-light-theme"; + version = "20170808.1440"; + src = fetchFromGitHub { + owner = "dakrone"; + repo = "dakrone-light-theme"; + rev = "06f198dc8b4ca7421990b30a23d89c8e0b8c5de4"; + sha256 = "01vqlsv44h2ah79c8jqv8vkqvgmhqx2w3qbq07l7fx3zkpgjfmpy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f3a88022a5f68d2fe01e08c2e99cfe380e3697b7/recipes/dakrone-light-theme"; + sha256 = "1njlpvfa4ar14zn51fdmby55vjgfkpskizg5rif2f3zn6y4np2xw"; + name = "dakrone-light-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/dakrone-light-theme"; + license = lib.licenses.free; + }; + }) {}; dakrone-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dakrone-theme"; - version = "20140211.2045"; + version = "20170801.1233"; src = fetchFromGitHub { owner = "dakrone"; repo = "dakrone-theme"; - rev = "281ac9f9080a94bf9dada2f40cdba58e50f94235"; - sha256 = "0fd0h07m42q2h1ggsjra20kzv209rpb4apjv408h2dxqm8sy0jiy"; + rev = "232ad1be5f3572dcbdf528f1655109aa355a6937"; + sha256 = "0p51zni42hv090vv6mk9v0v88achmgxlsmlr40y8y6ng57w51r4s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dcc07077b47d7c710c7f2d4919d791ed16ed5b26/recipes/dakrone-theme"; @@ -11886,12 +11990,12 @@ danneskjold-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "danneskjold-theme"; - version = "20170404.426"; + version = "20171101.339"; src = fetchFromGitHub { owner = "rails-to-cosmos"; repo = "danneskjold-theme"; - rev = "e7066a1310b2437d1b68ec5afd800d06977dd687"; - sha256 = "116hyd5c74m713xmzsl9panvn7014r7bg4267wvla6844n1qshp8"; + rev = "8d36d6dcddf36f89f06a3f848e69edbda28435eb"; + sha256 = "1hsfqkf3xfql3h4dprrrzrpp5fansv8ckfii5dnx55a6gl6y3sdi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/557244a3b60c7cd3ca964ff843aa1e9d5a1e32ec/recipes/danneskjold-theme"; @@ -11904,36 +12008,57 @@ license = lib.licenses.free; }; }) {}; - dante = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild, s }: melpaBuild { pname = "dante"; - version = "20170410.700"; + version = "20171021.1009"; src = fetchFromGitHub { owner = "jyp"; repo = "dante"; - rev = "d93001794bb505b32708d7d7b1755ef0bbe13c82"; - sha256 = "11dpdvn3lkd2yrzbibd7xqx1pznhn6i8wrp9bzg1yagn27jsyry8"; + rev = "cdea9409920ed8e4739af39b9a6f4e6dd8e8c50f"; + sha256 = "1ncbrq38ivybqlwm57aqcqjhz8bs99i9aa28012v1s6l5qbnxgks"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante"; sha256 = "1j0qwjshh2227k63vd06bvrsccymqssx26yfzams1xf7bp6y0krs"; name = "dante"; }; - packageRequires = [ dash emacs flycheck ]; + packageRequires = [ dash emacs f flycheck haskell-mode s ]; meta = { homepage = "https://melpa.org/#/dante"; license = lib.licenses.free; }; }) {}; + darcsum = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "darcsum"; + version = "20140315.2110"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "darcsum"; + rev = "00c252b51cb24c25fb74f529960ebd631514a4c1"; + sha256 = "1vbfdmc56ma2ycxhza681ninhdxgvxm9j5xb9374xiqmb6g0vykq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/darcsum"; + sha256 = "0p3hwmwjjqwgkjws5b7gkad4yxh0gs2hr03ar18y43yahwgihvnv"; + name = "darcsum"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/darcsum"; + license = lib.licenses.free; + }; + }) {}; darcula-theme = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darcula-theme"; - version = "20161004.2218"; + version = "20171016.149"; src = fetchFromGitLab { owner = "fommil"; repo = "emacs-darcula-theme"; - rev = "834202004507221c3bdf49457219a56760b13d22"; - sha256 = "1j2g94cz9b3ivv0w88gw1hcf236kc0c7hnrf13yyspxjm5jfdmd5"; + rev = "25f179b9fb72c1b95a3907aa4b4a44f8d261e45a"; + sha256 = "0x1amh0ycjvk218d6cyqizkak47b6r1wczakbfkvnbr0khgkgmr7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/23c8f10205187babb17e3abc3dc40eb1938e6640/recipes/darcula-theme"; @@ -11949,12 +12074,12 @@ dark-krystal-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dark-krystal-theme"; - version = "20141115.2301"; + version = "20170808.600"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-dark-krystal-theme"; - rev = "bcb3c4ccf17db541e319d60e2eca38a5b22d5664"; - sha256 = "07w5aycgaps904q8lk52d0g28wxq41c82xgl5mw2q56n3s5iixfx"; + rev = "79084b99665dc9ffb0ec62cc092349a5ecebebbc"; + sha256 = "1d3cdsaba71qxdqrbj1jrlq8a0iw3h50l5grcdjvxixdnf5nsa4c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/dark-krystal-theme"; @@ -12009,36 +12134,15 @@ license = lib.licenses.free; }; }) {}; - darkane-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "darkane-theme"; - version = "20161111.1304"; - src = fetchFromGitHub { - owner = "FelixFortis"; - repo = "emacs-darkane-theme"; - rev = "afa346c793b74645392677b276c56b87c354b8ef"; - sha256 = "1mi2k7llbk4n05mcy80lswv5vqlfca2izslds7z0sihik8fys4m6"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/826bd40f9da54e263dbad4bd861bd8227ea76656/recipes/darkane-theme"; - sha256 = "1lnjjhy70bizqlpih9aqvv6hsx8lj4qa5klbd7mrldqywab8cpib"; - name = "darkane-theme"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/darkane-theme"; - license = lib.licenses.free; - }; - }) {}; darkburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darkburn-theme"; - version = "20151003.100"; + version = "20170423.952"; src = fetchFromGitHub { owner = "gorauskas"; repo = "darkburn-theme"; - rev = "a0151684ae4fa7c364115188422f6c3425d1594c"; - sha256 = "19vrxfzhi0sqf7frzjx5z02d65r2jp1w2nhhf0527g7baid5hqvf"; + rev = "0af794ff7fac19778ac8a7efb92455c6f6c2158f"; + sha256 = "0nv917r8pbj6mfncjl8d7hq4763c69q491d4iwnff1n3wzlcp42s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a04dd517e02bc4b4a62d956aa901a727354202b0/recipes/darkburn-theme"; @@ -12075,12 +12179,12 @@ darkokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darkokai-theme"; - version = "20160803.2058"; + version = "20170728.339"; src = fetchFromGitHub { owner = "sjrmanning"; repo = "darkokai"; - rev = "5c5cee814c370f99db486ad11165f2023a22f7be"; - sha256 = "0by1c73hbc1y32ylb2pbfin6ydzxh2597rrm8xj8lc5g0ilch67n"; + rev = "d881d51acf0a7f806ae68d48305e30941a741a0e"; + sha256 = "008kn8gllhzlv49br0bs3469insjpcgr3r7iijz1frgy6wrpmdjp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/81387a5a70f7c42fbae16b52db765136795a37e1/recipes/darkokai-theme"; @@ -12096,12 +12200,12 @@ darktooth-theme = callPackage ({ autothemer, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darktooth-theme"; - version = "20170401.1521"; + version = "20171010.2057"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-theme-darktooth"; - rev = "fb66992286c009e594eb7bb9ee2f1cdc3bebb555"; - sha256 = "0n7qgnyl4rdvgwjb7gz6m1c22mxwg8bp08r7lz27z0b1bcyw94sc"; + rev = "e7c13abeeb18f50658482c7df32701ae4ec375a0"; + sha256 = "09smbgql9ibgn9l729ylas747xj48ipm6as61l6a5pbch376qriw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b7f62ac1566ced7332e83253f79078dc30cb7889/recipes/darktooth-theme"; @@ -12114,22 +12218,22 @@ license = lib.licenses.free; }; }) {}; - dart-mode = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + dart-mode = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s }: melpaBuild { pname = "dart-mode"; - version = "20170127.1652"; + version = "20171024.2137"; src = fetchFromGitHub { owner = "nex3"; repo = "dart-mode"; - rev = "b3808189cf6c5165499d3f67540f550e49b26aa2"; - sha256 = "1bs3p72gxlcviz0l2dl1h92708j0c3ly0kwpdbr370i2hdv0l8ys"; + rev = "adef2a5b672d503ae3e92b30bb80095879b030d0"; + sha256 = "0bb790rpijlv4cjdcwgqzb249rnz6br557lnn74rb9g52wpabl69"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dart-mode"; sha256 = "00zvgxfxgk5jair796l6appyq5hc7hs2s2wglv1j4l7g50b05cla"; name = "dart-mode"; }; - packageRequires = [ cl-lib dash flycheck ]; + packageRequires = [ cl-lib dash emacs flycheck s ]; meta = { homepage = "https://melpa.org/#/dart-mode"; license = lib.licenses.free; @@ -12138,12 +12242,12 @@ dash = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dash"; - version = "20170207.2056"; + version = "20171028.854"; src = fetchFromGitHub { owner = "magnars"; repo = "dash.el"; - rev = "98e819e407bbc35478cde30a74be15f077bd6d4b"; - sha256 = "1ws57p9y9fjpzk63x5qfibqc4xz6q4iczrxdmrgvm0p3mj3gmvwm"; + rev = "91d8cb01e62bab0d6267d3d4dbcabd6da6fdea78"; + sha256 = "1q0nnn3j3fv6y3n14kql7gdf2vc038lbmnz542pma8q0yfksbkid"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash"; @@ -12180,12 +12284,12 @@ dash-functional = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dash-functional"; - version = "20160615.1351"; + version = "20171028.804"; src = fetchFromGitHub { owner = "magnars"; repo = "dash.el"; - rev = "98e819e407bbc35478cde30a74be15f077bd6d4b"; - sha256 = "1ws57p9y9fjpzk63x5qfibqc4xz6q4iczrxdmrgvm0p3mj3gmvwm"; + rev = "91d8cb01e62bab0d6267d3d4dbcabd6da6fdea78"; + sha256 = "1q0nnn3j3fv6y3n14kql7gdf2vc038lbmnz542pma8q0yfksbkid"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/57eed8767c3e98614259c408dc0b5c54d3473883/recipes/dash-functional"; @@ -12201,12 +12305,12 @@ dashboard = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, page-break-lines }: melpaBuild { pname = "dashboard"; - version = "20170408.1653"; + version = "20170923.719"; src = fetchFromGitHub { owner = "rakanalh"; repo = "emacs-dashboard"; - rev = "b409028a42059c70ac3a64e5a033477f27607101"; - sha256 = "1s5lrc1vgc9q82nyz43sg094za0ncimr67p4mhmxqqxxchfk75x7"; + rev = "8594c4f55448148b720eda5b72d51667fb7a8a39"; + sha256 = "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e9a79341ccaa82a8c065e71c02fe6aee22007c66/recipes/dashboard"; @@ -12264,12 +12368,12 @@ datetime = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "datetime"; - version = "20170318.254"; + version = "20170928.815"; src = fetchFromGitHub { owner = "doublep"; repo = "datetime"; - rev = "3ecf9985250ecd441e91614b44cf12323af907c0"; - sha256 = "1x8kj6d9p42lffk15m0c955ibwxxvfxhihij43alwq5xab2l16bv"; + rev = "082d2c7b0e38c26a8c46af9c9956a2e100d88e71"; + sha256 = "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fff9f0748b0ef76130b24e85ed109325256f956e/recipes/datetime"; @@ -12287,14 +12391,14 @@ pname = "datetime-format"; version = "20160612.1015"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "emacs-datetime"; rev = "e6427538b547cbe02e1bd6ed4b765c73620bdae8"; sha256 = "1573z8wq5m8qzbzmnsz2fmbwrj9c0ava0jjfchzmwm2b3jyvqh5r"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e01f4589dbd8849638d4fc9bd765876987267439/recipes/datetime-format"; - sha256 = "0v9jp54qxzj2scbmr35xi6bz16q8bq6hmyxdglb3a4qbf4zgvwpi"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/datetime-format"; + sha256 = "19qccjz2lzh01glgkixya7bxd6pvyjqgmw8bmqlwag6cb68bwsyv"; name = "datetime-format"; }; packageRequires = []; @@ -12390,12 +12494,12 @@ ddskk = callPackage ({ ccc, cdb, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ddskk"; - version = "20170322.401"; + version = "20170709.839"; src = fetchFromGitHub { owner = "skk-dev"; repo = "ddskk"; - rev = "aa9dba05f7a971c530ef9da3d5dffc764df3bcfd"; - sha256 = "0iasvz1rvb4bk8pa0q298mc1lywdvddvsnh2rv3m10zar9z9xlrr"; + rev = "16d156562aef72f02ced58087335ed72d520d878"; + sha256 = "0rz49i2yqs1yalqqnwgk2zvsga6qav4hc2dhf8p2kfkzrcbpzgxx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6eccccb79881eaa04af3ed6395cd2ab981d9c894/recipes/ddskk"; @@ -12408,46 +12512,6 @@ license = lib.licenses.free; }; }) {}; - debian-bug = callPackage ({ fetchcvs, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "debian-bug"; - version = "20140131.929"; - src = fetchcvs { - cvsRoot = ":pserver:anonymous@cvs.alioth.debian.org:/cvs/pkg-goodies-el"; - module = "emacs-goodies-el"; - sha256 = "5c75978cdb4339ae7153edeafdf81d6effd8e23df6e406001c8106e105852105"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/19ea27b9e95dafa13b0740e850d065f169625c4f/recipes/debian-bug"; - sha256 = "0qlksbiw9qb0bv85b3rimsmzfr8dhbjjg4h0wnx7x434m6wqlm1a"; - name = "debian-bug"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/debian-bug"; - license = lib.licenses.free; - }; - }) {}; - debian-changelog-mode = callPackage ({ fetchcvs, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "debian-changelog-mode"; - version = "20140131.929"; - src = fetchcvs { - cvsRoot = ":pserver:anonymous@cvs.alioth.debian.org:/cvs/pkg-goodies-el"; - module = "emacs-goodies-el"; - sha256 = "5c75978cdb4339ae7153edeafdf81d6effd8e23df6e406001c8106e105852105"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/19ea27b9e95dafa13b0740e850d065f169625c4f/recipes/debian-changelog-mode"; - sha256 = "185l9ghsi6rlbmhs99lpsq257r5q87j8vra6h7jd9fwxfp4n9r22"; - name = "debian-changelog-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/debian-changelog-mode"; - license = lib.licenses.free; - }; - }) {}; debpaste = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, xml-rpc }: melpaBuild { pname = "debpaste"; @@ -12493,12 +12557,12 @@ decide = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "decide"; - version = "20160314.1248"; + version = "20170702.1617"; src = fetchFromGitHub { owner = "lifelike"; repo = "decide-mode"; - rev = "f243afc7cff11d9696552695e2dfc0ca91e1c5b6"; - sha256 = "05n57djagbkm8im4168d5d2fr2ibfnckya7qzrca1f9rmm0ah15j"; + rev = "90133687118c236142b8110571c463304b3192f9"; + sha256 = "04yakjnh9c165ssmcwkkm03lnlhgfx5bnk0v3cm73kmwdmfd2q7s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6adcd300e2ac2c718989cf855fd7b3eef654df00/recipes/decide"; @@ -12577,12 +12641,12 @@ default-text-scale = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "default-text-scale"; - version = "20150227.956"; + version = "20170826.2215"; src = fetchFromGitHub { owner = "purcell"; repo = "default-text-scale"; - rev = "c680861a459e5a1b4cea0da1b99d2a22f08fdcd2"; - sha256 = "1ysv1q7n7k2l4x8x7hlzmxmawyxl5lx627sbdv3phkvjh5zccsm8"; + rev = "968e985e219235f3e744d6d967e592acbaf6e0a8"; + sha256 = "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/db5e0b70e2d9c80aa41ae2c397f822789c2d3cc2/recipes/default-text-scale"; @@ -12598,12 +12662,12 @@ deferred = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "deferred"; - version = "20170331.1759"; + version = "20170901.630"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-deferred"; - rev = "7f2bb81e75db895c99611a7a9fbde7c239b757ba"; - sha256 = "09qnk8xhk5vjn7iqfzg3yzydas47453k1qm22gbmlfxh6lvxsqh2"; + rev = "2239671d94b38d92e9b28d4e12fd79814cfb9c16"; + sha256 = "0vz59lm7pfz0gbsgrb44y555js85wbdjn0zm6p8wfqjiqf63ds3i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/deferred"; @@ -12619,12 +12683,12 @@ define-word = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "define-word"; - version = "20150709.1223"; + version = "20171001.1616"; src = fetchFromGitHub { owner = "abo-abo"; repo = "define-word"; - rev = "64d98b7748686c51261fe6e8d42078c6284feb13"; - sha256 = "02i621yq2ih0zp7mna8iykj41prv77hvcadz7rx8c942zyvjzxqd"; + rev = "a425ffe44d62622b86477a622c6188a56bc2bd9a"; + sha256 = "02v9yzvinapr6m7pjxr4kcgqnlm7j21ygh1dhkabarz83v43awh3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e318b30d8b2b89981f4b89d78e5a46e77d3de412/recipes/define-word"; @@ -12658,17 +12722,19 @@ license = lib.licenses.free; }; }) {}; - deft = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { + deft = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "deft"; - version = "20160610.1739"; - src = fetchgit { - url = "git://jblevins.org/git/deft.git"; - rev = "59173ba0c048ead287dd1171a5a52ce53fd9a0cb"; - sha256 = "12h6miqn3nmyhf7r5cm57fh9japv79mm6gyvlb3p0qw1zzlwnlcg"; + version = "20171031.530"; + src = fetchFromGitHub { + owner = "jrblevin"; + repo = "deft"; + rev = "c7413a390ac22331ad5226a8c8c007bd08759bc8"; + sha256 = "1rdjffw8vw71ay93zlr2klbr8q4q1sjnw03gsfdyll1q4idbarg1"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/deft"; - sha256 = "1c9kps0lw97nl567ynlzk4w719a86a18q697rcmrbrg5imdx4y5p"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/deft"; + sha256 = "0f6z9hsigbwdsmg0abk1ddl9j19d0rpj4gzkl0d5arcpqbla26hp"; name = "deft"; }; packageRequires = []; @@ -12701,12 +12767,12 @@ demangle-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "demangle-mode"; - version = "20170311.1148"; + version = "20170923.1501"; src = fetchFromGitHub { owner = "liblit"; repo = "demangle-mode"; - rev = "0f9436f98225e0f5a5deecea4680c173e76f0322"; - sha256 = "0n10c45lvdfczhd2mpkciggv4d83mcnbpmjhxzvmnf7n5ar6aw6a"; + rev = "79231b05f97da147d66120f947656f856a3a64fb"; + sha256 = "0whr18qwi5bmz39n8x836sjgky20qhw59qha59c11dvly1qs5nnq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6ced9f4ffb051a8474d3f72695156416cf2dd8be/recipes/demangle-mode"; @@ -12722,12 +12788,12 @@ demo-it = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "demo-it"; - version = "20170126.739"; + version = "20170628.1503"; src = fetchFromGitHub { owner = "howardabrams"; repo = "demo-it"; - rev = "f61f336c8c291208d9feef2ce495e8c659052f77"; - sha256 = "1wb7n4k2qwl3m7y22zag6rdzi1gqb8a5lj7crpkkn5ryycbxbbpi"; + rev = "1e8b42ff6479fa541eeec5699b4727af136d40da"; + sha256 = "1x9crsc8n5pqyp60h46gz6wz98qaj3bygk11vd39qpfh2hxdxxi6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1dec5877db00c29d81d76be0ee2504399bad9cc4/recipes/demo-it"; @@ -12806,12 +12872,12 @@ devdocs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "devdocs"; - version = "20160607.540"; + version = "20170731.150"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "devdocs.el"; - rev = "1bff4bd406fc71199d9dcac503269f7aa8fcebe6"; - sha256 = "0qxy4i9438jmbxbj980civ8csh507gri3q3bszg3s1wv966k69rz"; + rev = "a2d51e824f0cc48a9dd611cc740bc8b86143e611"; + sha256 = "0nzh7pgvj4cs5d29lrrmbas29xdslgqzsqjmpapzqzbnrgprnbx8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a54ff5faeefabf484ef175433cfc2b8317993f74/recipes/devdocs"; @@ -12827,12 +12893,12 @@ dfmt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dfmt"; - version = "20160911.228"; + version = "20170728.323"; src = fetchFromGitHub { owner = "qsimpleq"; repo = "elisp-dfmt"; - rev = "f07512fc8555ecd592d8a44722baf922f9f77aaf"; - sha256 = "1ph8z4hazz71k8zsv4gfhpsbysj4d3rinb68fmhp842n00ds6fk4"; + rev = "21b9094e907b7ac53f5ecb4ff4539613a9d12434"; + sha256 = "11r1i8nlz98z49fqb447abg1pv6838q54ly19wyg82k52875ms7m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a343a752d25185b30b10805c4012f3b21a03651e/recipes/dfmt"; @@ -12845,18 +12911,40 @@ license = lib.licenses.free; }; }) {}; - dic-lookup-w3m = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild, stem, w3m }: + dhall-mode = callPackage ({ ansi-color ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dic-lookup-w3m"; - version = "20170315.709"; - src = fetchsvn { - url = "https://svn.osdn.jp/svnroot/dic-lookup-w3m/"; - rev = "96"; - sha256 = "17g0bl94qmzalh3m6r6q10q06864d1h1nx5i7fddsamakmg89ziw"; + pname = "dhall-mode"; + version = "20171006.1233"; + src = fetchFromGitHub { + owner = "psibi"; + repo = "dhall-mode"; + rev = "181e5b0df73ce729cf4b711fa76bb43c2581d29d"; + sha256 = "1jw4is9jxx60hsaqjkmravrkxdfn7ni6zl9wx9i7r2y2r5mmwx88"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/dic-lookup-w3m"; - sha256 = "1siqrarpyqjh1h350dsyca993fy6qin4apgyjm4vpp6awip8xfp0"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c7ab435077b2f47d75ddc0ff10c64ee2b46044e2/recipes/dhall-mode"; + sha256 = "1zkspjwllcw9k4nlnif6jdwzl08ki39vmx90apw029n87xhvx7mp"; + name = "dhall-mode"; + }; + packageRequires = [ ansi-color emacs ]; + meta = { + homepage = "https://melpa.org/#/dhall-mode"; + license = lib.licenses.free; + }; + }) {}; + dic-lookup-w3m = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, stem, w3m }: + melpaBuild { + pname = "dic-lookup-w3m"; + version = "20170803.354"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "dic-lookup-w3m"; + rev = "79aca5eb9c78e67cb85a386060d48113caad5ec3"; + sha256 = "18l2s37bnnzbgw22mivgw5isxck2y0n3nk7735r4ir5y5wqx88mr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/dic-lookup-w3m"; + sha256 = "1kwbmzzf8sj4bn5kicmlp2hzv8ydcikwmdy7s40ggkgf1mk9zvqr"; name = "dic-lookup-w3m"; }; packageRequires = [ stem w3m ]; @@ -12910,12 +12998,12 @@ diff-hl = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "diff-hl"; - version = "20161102.1726"; + version = "20170709.2000"; src = fetchFromGitHub { owner = "dgutov"; repo = "diff-hl"; - rev = "c476e4080de7bea98a7a9a1173df20397d1c7671"; - sha256 = "185gl1p80yx68d2hzawhrz26zy75z30qr1lb7c0gzmk5ryy5yzgv"; + rev = "bec9889de7bf48d28826039880cec9bfad24a628"; + sha256 = "0f9krv08jlw1sawjajdfy0cp5mzbq7hzvy478z8p54s1fwga6wxd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/diff-hl"; @@ -13056,12 +13144,12 @@ diminish = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "diminish"; - version = "20151215.915"; + version = "20170419.1036"; src = fetchFromGitHub { owner = "myrjola"; repo = "diminish.el"; - rev = "826e19186bef91d2241739cb8b48b8cfba14c17a"; - sha256 = "04vfc5zgcjp0pax5zk1x98ivx5g349c5g3748lb9pgsijqaprgg4"; + rev = "565a983a39d2e2cffab5df13b34f3b6116723208"; + sha256 = "173lzj9l7a4wcfvdq6akvfyyyriy5c30b4vhhv51hs051dmn02d0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1bfb4acb381cada46458cf60eae9b88d007294d5/recipes/diminish"; @@ -13144,8 +13232,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-avfs"; @@ -13158,40 +13246,24 @@ license = lib.licenses.free; }; }) {}; - dired-details = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dired-details"; - version = "20130824.458"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired-details.el"; - sha256 = "1ddrhj1kw0wl7jbs9jn067vfffsvqhz4izfw9f7ihxz34fdl2iza"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dired-details"; - sha256 = "0kmcnx9zvfdwvq100nazgypkfwlgxgrbimprc5pysid8rrxyzws7"; - name = "dired-details"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/dired-details"; - license = lib.licenses.free; - }; - }) {}; - dired-details-plus = callPackage ({ dired-details, fetchurl, lib, melpaBuild }: + dired-collapse = callPackage ({ dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dired-details-plus"; - version = "20170221.1629"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired-details+.el"; - sha256 = "0821swa6qp2bs16r1pfamc7n62002rp8v0vimamw33cqxn2d0h6x"; + pname = "dired-collapse"; + version = "20171026.159"; + src = fetchFromGitHub { + owner = "Fuco1"; + repo = "dired-hacks"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dired-details+"; - sha256 = "0b4y01hk839z6m7fx5bwa80gwylvkp15niri8vrjak4vgj5g5cg9"; - name = "dired-details-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6aab23df1451682ff18d9ad02c35cb7ec612bc38/recipes/dired-collapse"; + sha256 = "1k8h5cl8r68rnr1a3jnbc0ydflzm5mad7v7f1q60wks5hv61dsd1"; + name = "dired-collapse"; }; - packageRequires = [ dired-details ]; + packageRequires = [ dash f ]; meta = { - homepage = "https://melpa.org/#/dired-details+"; + homepage = "https://melpa.org/#/dired-collapse"; license = lib.licenses.free; }; }) {}; @@ -13240,12 +13312,12 @@ dired-explorer = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-explorer"; - version = "20160809.200"; + version = "20170614.1956"; src = fetchFromGitHub { owner = "jidaikobo-shibata"; repo = "dired-explorer"; - rev = "f9ac7c511c4b2e349952eb4b99635047f3603907"; - sha256 = "03zax8q9wwj4q9l13zsznrx18b6d1rqrfgvmvzlkd3y4sqj2i64w"; + rev = "b02b08d73821512853c6a14113c794dded1df75a"; + sha256 = "1kc2j9iw4rsxkbssn6idfi1avxshn23aiv006a0yx8bhgwclnbq4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acd40e02185847dfdcd70b3cacea703133e4356d/recipes/dired-explorer"; @@ -13303,12 +13375,12 @@ dired-filter = callPackage ({ cl-lib ? null, dash, dired-hacks-utils, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-filter"; - version = "20161009.530"; + version = "20171010.204"; src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-filter"; @@ -13328,8 +13400,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-hacks-utils"; @@ -13429,12 +13501,12 @@ dired-launch = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-launch"; - version = "20170328.809"; + version = "20171004.1027"; src = fetchFromGitHub { owner = "thomp"; repo = "dired-launch"; - rev = "036204d3b86d4fbbd479f65d9af243cca079a47f"; - sha256 = "1g7kn9c2w165rchjbrkllvykj4952f7zgrhlr3lnfnf5dampy20k"; + rev = "f71826804221bafc4f9f2f75a800400a72c24b8b"; + sha256 = "1cyg1bbn2jj101wz2jjzk832mfk5yhnc4a9m817lnalf73j0nkrs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31c9a4945d65aa6afc371c447a572284d38d4d71/recipes/dired-launch"; @@ -13454,8 +13526,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8994330f90a925df17ae425ccdc87865df8e19cd/recipes/dired-narrow"; @@ -13475,8 +13547,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-open"; @@ -13489,24 +13561,6 @@ license = lib.licenses.free; }; }) {}; - dired-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dired-plus"; - version = "20170409.1822"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired+.el"; - sha256 = "0anrf0cax9ah5mlxxbav7f2vvv50l7psi32rgn3z3hv4z34fmkrx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/dired+"; - sha256 = "1dmp6wcynran03nsa0fd26b9q0zj9wp8ngaafx1i1ybwn2gx32g5"; - name = "dired-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/dired+"; - license = lib.licenses.free; - }; - }) {}; dired-quick-sort = callPackage ({ fetchFromGitLab, fetchurl, hydra, lib, melpaBuild }: melpaBuild { pname = "dired-quick-sort"; @@ -13531,12 +13585,12 @@ dired-rainbow = callPackage ({ dash, dired-hacks-utils, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-rainbow"; - version = "20141214.543"; + version = "20170922.817"; src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/568e524b7bdf91b31655bdbb30fe9481d7a0ffbf/recipes/dired-rainbow"; @@ -13556,8 +13610,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c03f6f8c779c8784f52adb20b266404cb537113a/recipes/dired-ranger"; @@ -13570,15 +13624,36 @@ license = lib.licenses.free; }; }) {}; + dired-sidebar = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dired-sidebar"; + version = "20170904.2004"; + src = fetchFromGitHub { + owner = "jojojames"; + repo = "dired-sidebar"; + rev = "35e43797f037fc298b6478817d51be3ceff5b568"; + sha256 = "1rizajqh96im8ygbfzrhn0ysh3r9qlk7njgn2rayk6a5krj6gn16"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/30e15c8361b01195f198197e704828fbcac0e8d6/recipes/dired-sidebar"; + sha256 = "19a4gsx9wmpc94jd992c7dj5mxfnnij2nc6qnb2lhk8ad69h1lmc"; + name = "dired-sidebar"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/dired-sidebar"; + license = lib.licenses.free; + }; + }) {}; dired-single = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-single"; - version = "20151230.1758"; + version = "20170804.544"; src = fetchFromGitHub { owner = "crocket"; repo = "dired-single"; - rev = "71ffc5decd048d3c420d9cdd5ac66e72ca18e934"; - sha256 = "01xvaqckyr31ywsn1fp9sz9wq4h4dd1hgghfqypc9s4akrxmgnf2"; + rev = "0dcc645de6397bf12c33229de67a503e4490c618"; + sha256 = "16073xjfx7cvv9g8dlyxwa4ca6x35vwarqq43mrl05nxcq0rfzv3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/41669decbb7ad5c4dbe152a863f16d87e7bba493/recipes/dired-single"; @@ -13591,70 +13666,15 @@ license = lib.licenses.free; }; }) {}; - dired-sort = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dired-sort"; - version = "20090208.2038"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired-sort.el"; - sha256 = "1dpxkxxfs14sdm3hwxv0j26lq0qzx4gryw42vrcdi680aj24962z"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f1e4cd8274cdec74a9867060f72ec2025ed0150d/recipes/dired-sort"; - sha256 = "1dzy2601yikmmbfqivf9s5xi4vd1f5g3c53f8rc74kfnxr1qn59x"; - name = "dired-sort"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/dired-sort"; - license = lib.licenses.free; - }; - }) {}; - dired-sort-menu = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dired-sort-menu"; - version = "20130824.507"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired-sort-menu.el"; - sha256 = "1i42r7j1c8677qf79ig33bia24d2yvcj26y92migfvrlbi03w4qi"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/dired-sort-menu"; - sha256 = "0n7zh8s3vdw3pcax8wkas9rykf917wn2dzikdlyrl5bbil9ijblb"; - name = "dired-sort-menu"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/dired-sort-menu"; - license = lib.licenses.free; - }; - }) {}; - dired-sort-menu-plus = callPackage ({ dired-sort-menu, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "dired-sort-menu-plus"; - version = "20170221.1630"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dired-sort-menu+.el"; - sha256 = "0f2z0nj51i27qqj0ws644k61dj9bp3hagi9phj9d41fcsqzzja4h"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/dired-sort-menu+"; - sha256 = "19ah8qgbfdvyhfszdr6hlw8l01lbdb84vf5snldw8qh3x6lw8cfq"; - name = "dired-sort-menu-plus"; - }; - packageRequires = [ dired-sort-menu ]; - meta = { - homepage = "https://melpa.org/#/dired-sort-menu+"; - license = lib.licenses.free; - }; - }) {}; dired-subtree = callPackage ({ dash, dired-hacks-utils, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dired-subtree"; - version = "20160920.130"; + version = "20170910.1521"; src = fetchFromGitHub { owner = "Fuco1"; repo = "dired-hacks"; - rev = "61eec5b692d06e87644cb2eb6519e44a92c86681"; - sha256 = "0nanyz56ladq6n4qwsncz9v55ldhzb126jgxf1p2f3gg9pp772m6"; + rev = "26bf9b86e67883de3813518b2356f466dc2bb727"; + sha256 = "0vkpf5w3bklgvz9v0fy1icdq6rf9w19399d0kphsb1a1vql575y1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d6a947ac9476f10b95a3c153ec784d2a8330dd4c/recipes/dired-subtree"; @@ -13709,6 +13729,27 @@ license = lib.licenses.free; }; }) {}; + diredfl = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "diredfl"; + version = "20171014.1402"; + src = fetchFromGitHub { + owner = "purcell"; + repo = "diredfl"; + rev = "085eabf2e70590ec8e31c1e66931d652d8eab432"; + sha256 = "19gjs90ai6fv4q7rhssrgc45d9g4frg680p1jgmbxzrd9jdy013w"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3da86e18d423198766455929da1dcb3a9a3be381/recipes/diredfl"; + sha256 = "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn"; + name = "diredfl"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/diredfl"; + license = lib.licenses.free; + }; + }) {}; diredful = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "diredful"; @@ -13733,12 +13774,12 @@ direnv = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }: melpaBuild { pname = "direnv"; - version = "20170313.309"; + version = "20170717.1049"; src = fetchFromGitHub { owner = "wbolster"; repo = "emacs-direnv"; - rev = "72340994841db19083eb1226cd09abe75d1c1e13"; - sha256 = "0dx63z3cmpcbn1lr9baqhh78j5xfyv1n5yp6fs210hmrbhlfpr8d"; + rev = "d181475192138b256e124a42660ac60ae62d11d0"; + sha256 = "09pcssxas9aqdnn2n9y61f016fip9qgxsr16nzljh66dk0lnbgrw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5419809ee62b920463e359c8e1314cd0763657c1/recipes/direnv"; @@ -13754,12 +13795,12 @@ direx = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "direx"; - version = "20151023.1606"; + version = "20170422.627"; src = fetchFromGitHub { owner = "m2ym"; repo = "direx-el"; - rev = "9497231cf50767987494718db073731b05a4f970"; - sha256 = "0mis3m6lg3vlvp8qm8iajprgx3pm3gcbhdszsm9mvrcgkahdjqnr"; + rev = "a79bfdb5980cf6ed7bfb3b41ddc471a7b6c0ede4"; + sha256 = "0fl9hdnrq54awx43635p6pmc8bqyppa02gs1d76nifi0q4g9v4m7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a4b0903466d63b1c87abc002b0e064e36a8cddd3/recipes/direx"; @@ -13838,12 +13879,12 @@ disable-mouse = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "disable-mouse"; - version = "20160630.1903"; + version = "20170929.1353"; src = fetchFromGitHub { owner = "purcell"; repo = "disable-mouse"; - rev = "3b8681b099eb0c3af6078fa0e479d0d0ce6686ad"; - sha256 = "0k65jddjd0xbm91fzjll8j69qd4ql9qz47x2mdhb2xc344kdwp9x"; + rev = "81639930bcaeedadbcc19728e91719afcac84613"; + sha256 = "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dbbc396373212fdf731e135cde391f27708ff015/recipes/disable-mouse"; @@ -13859,12 +13900,12 @@ disaster = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "disaster"; - version = "20130509.1055"; + version = "20171016.1452"; src = fetchFromGitHub { owner = "jart"; repo = "disaster"; - rev = "8d8fc67af5b3d876b0056562ece0478e6e2367f0"; - sha256 = "1srlz63pncxndh1kmb6dl5sxaanspxa444wg998dld3dkdflwavq"; + rev = "10a785facc60d89d78e0d5177985ab1af1741bb4"; + sha256 = "0iz43jdkh5qdllqdchliys84gn9bpj6688rpc4jnycp64141m6cx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a4654b3646b96f967e2c75440e664a417cd0f517/recipes/disaster"; @@ -13982,24 +14023,6 @@ license = lib.licenses.free; }; }) {}; - disk = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "disk"; - version = "20081128.706"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/disk.el"; - sha256 = "1c0pgqvl1z2f5hprszln53pn2v2pqy110r3wx3g84v71w6378bbv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/edcafb4c459cf51fecc7c43a3e4dcbe377d68b46/recipes/disk"; - sha256 = "0bij9gr4zv6jmc6dwsy3lb06vsxvmyzl8xrm8wzasxisk1qd2l6n"; - name = "disk"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/disk"; - license = lib.licenses.free; - }; - }) {}; dispass = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dispass"; @@ -14191,12 +14214,12 @@ django-mode = callPackage ({ fetchFromGitHub, fetchurl, helm-make, lib, melpaBuild, projectile, s }: melpaBuild { pname = "django-mode"; - version = "20161109.749"; + version = "20170522.14"; src = fetchFromGitHub { owner = "myfreeweb"; repo = "django-mode"; - rev = "561a3a7359a1526b67688239cdee67e0425b6a01"; - sha256 = "0xyi5j0cf1d8dv7lpfcgzkfargkpga3dp93pxi8x9pshafmlnrw8"; + rev = "a71b8dd984e7f724b8321246e5c353a4ae5c986e"; + sha256 = "0xf33ri5phy2mrb1dwvqb8waba33gj9bwmf6jhl6n0ksm43x0z40"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bdc46811612ff96cb1e09552b9f095d68528dcb3/recipes/django-mode"; @@ -14216,8 +14239,8 @@ src = fetchFromGitHub { owner = "myfreeweb"; repo = "django-mode"; - rev = "561a3a7359a1526b67688239cdee67e0425b6a01"; - sha256 = "0xyi5j0cf1d8dv7lpfcgzkfargkpga3dp93pxi8x9pshafmlnrw8"; + rev = "a71b8dd984e7f724b8321246e5c353a4ae5c986e"; + sha256 = "0xf33ri5phy2mrb1dwvqb8waba33gj9bwmf6jhl6n0ksm43x0z40"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bdc46811612ff96cb1e09552b9f095d68528dcb3/recipes/django-snippets"; @@ -14359,12 +14382,12 @@ dna-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dna-mode"; - version = "20130821.1105"; + version = "20170804.114"; src = fetchFromGitHub { owner = "jhgorrell"; repo = "dna-mode-el"; - rev = "c3fed6b9d98deafbc1525d445a920b969120fe6a"; - sha256 = "0z28j7x7wgkc1cg1q1kz1lhdx1v1n6s88ixgkm8hn458h9bfnr3n"; + rev = "471d374de22c33eaddd8e41dd8ae29753fab2f6a"; + sha256 = "05zsaypyavyn7gs0jk63chkxkm2rl4nbrqgv6zxrbqcar7gv86am"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dna-mode"; @@ -14422,12 +14445,12 @@ docker = callPackage ({ dash, docker-tramp, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s, tablist }: melpaBuild { pname = "docker"; - version = "20170114.440"; + version = "20170718.303"; src = fetchFromGitHub { owner = "Silex"; repo = "docker.el"; - rev = "b565a66d7fb8b41363fb90172b9882d4768ddd47"; - sha256 = "185mw8yaxpq7327nyyqjbc4bipx6shhmbl1dzdl3bfhc11vp1xfn"; + rev = "4df5f94c78817a1f3755a7c9b1358349bf287270"; + sha256 = "05ggavxq61w55n6b8g76xpqasfka3rbf3326jwxjrd1p6wzs1d3d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6c74bf8a41c17bc733636f9e7c05f3858d17936b/recipes/docker"; @@ -14469,6 +14492,27 @@ license = lib.licenses.free; }; }) {}; + docker-compose-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }: + melpaBuild { + pname = "docker-compose-mode"; + version = "20170916.1438"; + src = fetchFromGitHub { + owner = "meqif"; + repo = "docker-compose-mode"; + rev = "f3c06a43d69dfe80041a82a9365281bd5c65a105"; + sha256 = "1fzz950wb95lp15ak8q4vzls21w9fc3qxqs5hlf50najdw36w52h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/37dd4c1fc11d22598c6faf03ccc860503a68b950/recipes/docker-compose-mode"; + sha256 = "1hldddl86h0i1ysxklkr1kyz44lzic1zr68x3vb0mha4n5d6bl5g"; + name = "docker-compose-mode"; + }; + packageRequires = [ dash emacs yaml-mode ]; + meta = { + homepage = "https://melpa.org/#/docker-compose-mode"; + license = lib.licenses.free; + }; + }) {}; docker-tramp = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "docker-tramp"; @@ -14493,12 +14537,12 @@ dockerfile-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dockerfile-mode"; - version = "20170221.1317"; + version = "20170418.1024"; src = fetchFromGitHub { owner = "spotify"; repo = "dockerfile-mode"; - rev = "5f1e17e4e59fee4725c5b4cd9b5b49f1faaa108f"; - sha256 = "1pw6706lnd6n866scwp35ar58y2c6jjyn82qpjdk0ma12hgv3gzf"; + rev = "3c6bc90360a2df53caad1721ee4c8285e2e22369"; + sha256 = "166hfzfb45f11jfhx78w6h23cyj9wr1nrwrxxqs2m5cry407gj3k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1406f5a24115d29e3b140c360a51b977a369e4f9/recipes/dockerfile-mode"; @@ -14598,16 +14642,16 @@ doom-themes = callPackage ({ all-the-icons, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "doom-themes"; - version = "20170411.1533"; + version = "20171017.1649"; src = fetchFromGitHub { owner = "hlissner"; - repo = "emacs-doom-theme"; - rev = "1618b28f188b2ca547c2cceb16ad8e6ac9ec5a83"; - sha256 = "1bxfx7i9gdp870x4qkqkmqqb9jszi1hn345h5xwqajik6ys7d2cj"; + repo = "emacs-doom-themes"; + rev = "d91f72b83ec22f1620372574582e163f921e6796"; + sha256 = "1ykl835k0s5nkb6343yk4gyk7hdx4l96jnfa84vdq74x2asidfs1"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/73fd9f3c2352ea1af49166c2fe586d0410614081/recipes/doom-themes"; - sha256 = "1ckr8rv1i101kynnx666lm7qa73jf9i5lppgwmhlc76lisg07cik"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c5084bc2c3fe378af6ff39d65e40649c6359b7b5/recipes/doom-themes"; + sha256 = "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs"; name = "doom-themes"; }; packageRequires = [ all-the-icons cl-lib emacs ]; @@ -14616,80 +14660,6 @@ license = lib.licenses.free; }; }) {}; - doremi = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "doremi"; - version = "20170221.1634"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/doremi.el"; - sha256 = "03alkj4mxajsgmghw935hm3c95a12222zq1ig6kwmfrla5kg3b7q"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/doremi"; - sha256 = "11i4cdxgrspx44p44zz5py89ypji5li6p5w77wy0b07i8a5gq2gb"; - name = "doremi"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/doremi"; - license = lib.licenses.free; - }; - }) {}; - doremi-cmd = callPackage ({ doremi, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "doremi-cmd"; - version = "20170221.1631"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/doremi-cmd.el"; - sha256 = "09iizx079y43qk3jd66n8i8ifm2s7jnc9g7831nv5f3c26rgl0w6"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/doremi-cmd"; - sha256 = "1qzspirn1abqps0dn5z8w6ymffc6b02dyki5hr8v74wfs8fhzx05"; - name = "doremi-cmd"; - }; - packageRequires = [ doremi ]; - meta = { - homepage = "https://melpa.org/#/doremi-cmd"; - license = lib.licenses.free; - }; - }) {}; - doremi-frm = callPackage ({ doremi, faces-plus, fetchurl, frame-fns, hexrgb, lib, melpaBuild }: - melpaBuild { - pname = "doremi-frm"; - version = "20170221.1632"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/doremi-frm.el"; - sha256 = "0f9vwajgdm37krz55sv5c8ijfqhy5gsxj1zyxg8zbs6l33giynxd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/doremi-frm"; - sha256 = "1rj3p665q32acsxxwygv1j5nbmjqrhi0b4glzrk88xki4lyz0ihz"; - name = "doremi-frm"; - }; - packageRequires = [ doremi faces-plus frame-fns hexrgb ]; - meta = { - homepage = "https://melpa.org/#/doremi-frm"; - license = lib.licenses.free; - }; - }) {}; - doremi-mac = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "doremi-mac"; - version = "20170221.1633"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/doremi-mac.el"; - sha256 = "002jhqk26ywiyci1r91aqbq0zhbxy6rsyw3h74ck04rxjfc49rxl"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/doremi-mac"; - sha256 = "0n9fffgxnpqc7cch7aci5kxbwzk36iljdz2r8gcp5y5n1p7aamls"; - name = "doremi-mac"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/doremi-mac"; - license = lib.licenses.free; - }; - }) {}; dot-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dot-mode"; @@ -14711,6 +14681,27 @@ license = lib.licenses.free; }; }) {}; + dotnet = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dotnet"; + version = "20170827.838"; + src = fetchFromGitHub { + owner = "julienXX"; + repo = "dotnet.el"; + rev = "e22fd23bf2bfab980d4802b10c4d872b800f90d4"; + sha256 = "1qq0gkdr0h4b9h6l14wfk3zmw62sa2i5in23bvs6jp6y6hmffr2m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6ef473594ec57a747ad7d9d57d7287bcacf4b446/recipes/dotnet"; + sha256 = "06k1ikwg9bis9kk4r41bm0a0d8a31wscqyr6n99d7836p1h4jfki"; + name = "dotnet"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/dotnet"; + license = lib.licenses.free; + }; + }) {}; download-region = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "download-region"; @@ -14865,8 +14856,8 @@ src = fetchFromGitHub { owner = "rejeep"; repo = "drag-stuff.el"; - rev = "d49fe376d24f0f8ac5ade67b6d7fccc2487c81db"; - sha256 = "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka"; + rev = "6d06d846cd37c052d79acd0f372c13006aa7e7c8"; + sha256 = "1fsj88n1j50cxjzx62khzxrajsvf33si8iwgbaz6z7z8pwh91qcd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/drag-stuff"; @@ -14945,12 +14936,12 @@ dropbox = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild, oauth }: melpaBuild { pname = "dropbox"; - version = "20130513.1537"; + version = "20170502.1722"; src = fetchFromGitHub { owner = "pavpanchekha"; repo = "dropbox.el"; - rev = "fb71a2787030f911b569426596c081a89241056e"; - sha256 = "1s4cz5s0mw733ak9ps62fs150y3psqmb6v5s6s88jjfsi0r03c0s"; + rev = "d85bbf6caa4203d6088ea29f5c057c1e9bcacd85"; + sha256 = "15fg46pb64sz17sz3bqcpvg0nlsy4fs7ppzdq7q1686q3ihczk31"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dropbox"; @@ -14963,33 +14954,15 @@ license = lib.licenses.free; }; }) {}; - dropdown-list = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "dropdown-list"; - version = "20120329.936"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/dropdown-list.el"; - sha256 = "1szy46sk3nvlbb3yzk1s983281kkf507xr3fkclkki3d3x31n08a"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dropdown-list"; - sha256 = "1zqqa4872r96fp377bcz6pd1djz59ami5k09abb62dw854sc5xfj"; - name = "dropdown-list"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/dropdown-list"; - license = lib.licenses.free; - }; - }) {}; drupal-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode }: melpaBuild { pname = "drupal-mode"; - version = "20170112.1136"; + version = "20170926.38"; src = fetchFromGitHub { owner = "arnested"; repo = "drupal-mode"; - rev = "9d5808972f344a09dcf665d5113ae81e39ac1051"; - sha256 = "0vz41jfkfir7ymyl5y0v836zclqfihrjdiyz3vnb081x0gara8l0"; + rev = "b0ca2c39650136f7e5672461e64397b9add30b92"; + sha256 = "1l2xc24y037b3z62yxmq2bx1x3qqv56d15bf3qmb3mpgm4gh85j6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13e16af340868048eb1f51f9865dfc707e57abe8/recipes/drupal-mode"; @@ -15023,17 +14996,19 @@ license = lib.licenses.free; }; }) {}; - dsvn = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild }: melpaBuild { + dsvn = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "dsvn"; version = "20130120.1257"; - src = fetchsvn { - url = "https://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/emacs/"; - rev = "1791699"; - sha256 = "016dxpzm1zba8rag7czynlk58hys4xab4mz1nkry5bfihknpzcrq"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "dsvn"; + rev = "17bce692e9bd5a43373d5cb1d66da50e1acb903b"; + sha256 = "1bv4ivv9j5r0ax4vay1kmwv753y44qj6qprr38yh7ky0fpsml34c"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dsvn"; - sha256 = "1y55s187q2xiab31vs95jjjp1a3qzwkdwn7p5man666scbjrdyl5"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/dsvn"; + sha256 = "1kgc0b8as7w1h9dsknv2h7dzr6jcrs0j0p376050pshgzcm79nm6"; name = "dsvn"; }; packageRequires = []; @@ -15066,12 +15041,12 @@ dtrt-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dtrt-indent"; - version = "20160620.329"; + version = "20171001.1233"; src = fetchFromGitHub { owner = "jscheid"; repo = "dtrt-indent"; - rev = "a54871bedadabede505b3913ee1039f5ab36cad2"; - sha256 = "0ylch7q8lh2r10qzrb41bnrpnznvj5fjszazmxfcvj6ss8yrxjzi"; + rev = "7fd55af3b0311ea24b68397054e705c835fa5ef1"; + sha256 = "1sgmd1zqdwa1f6y8d6vaacyipkqn2ivvaim1xndbkihgmhyn4kf0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/61bcbcfa6c0f38a1d87f5b6913b8be6c50ef2994/recipes/dtrt-indent"; @@ -15126,15 +15101,36 @@ license = lib.licenses.free; }; }) {}; + dumb-diff = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dumb-diff"; + version = "20170924.2036"; + src = fetchFromGitHub { + owner = "jacktasia"; + repo = "dumb-diff"; + rev = "205ea5fda371f296fd876e362c12a5b64c4724d9"; + sha256 = "0gxrrhlhp1g679c1ygj8m0jy4pag55b957vyxm9845z4vx93wj1x"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cf7fa0b4235247d82569ed078f92774f10afa45c/recipes/dumb-diff"; + sha256 = "1h1dvxbj85kgi04lxh0bpx81f6sl1fd56lhjmq1cw9biwqw0sm0c"; + name = "dumb-diff"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/dumb-diff"; + license = lib.licenses.free; + }; + }) {}; dumb-jump = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s }: melpaBuild { pname = "dumb-jump"; - version = "20170412.1246"; + version = "20171013.2105"; src = fetchFromGitHub { owner = "jacktasia"; repo = "dumb-jump"; - rev = "877fe466c8c60edbd9ea5602185690b1fa599a6b"; - sha256 = "1wm9kl4sximr75pfw18wxsd3c59qp0i1vn1565f4srfgq71r23yg"; + rev = "e1140c3c27c0e434ecaaf748aa77f63e2289df41"; + sha256 = "19r77cya0bi1isv46l26k3n6vnqxf0jclx6w75jbbiirivpy9nr1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dumb-jump"; @@ -15189,14 +15185,35 @@ license = lib.licenses.free; }; }) {}; + dut-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dut-mode"; + version = "20170729.1411"; + src = fetchFromGitHub { + owner = "dut-lang"; + repo = "dut-mode"; + rev = "9235c7acaa6690942e9de8b7acd1e4be0c859dc1"; + sha256 = "0fpqsm6y23anyx57gp4c6whzxrn8x03cp76iwx27c4gkq6ph1z8n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ecf49ceab8b25591fab2ed6574cba0e6634d1539/recipes/dut-mode"; + sha256 = "0hlr5qvqcqdh2k1nyq621z6vq2yiflj4jy0pgg6lbiy3j6819mai"; + name = "dut-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/dut-mode"; + license = lib.licenses.free; + }; + }) {}; dyalog-mode = callPackage ({ cl-lib ? null, emacs, fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "dyalog-mode"; - version = "20170415.628"; + version = "20171012.1339"; src = fetchhg { url = "https://bitbucket.com/harsman/dyalog-mode"; - rev = "6cc0b8488a17"; - sha256 = "03x94q315yq5kg2wvsp508a9hxl625iji3b84kywmg5hb3w5r9qn"; + rev = "9e446540a794"; + sha256 = "0gyip843fdqp6cwwaqcrnpngf5a3iqcbd9h7rl5lbvxpkqvm7shi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/dyalog-mode"; @@ -15272,6 +15289,27 @@ license = lib.licenses.free; }; }) {}; + dynamic-spaces = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dynamic-spaces"; + version = "20171027.1151"; + src = fetchFromGitHub { + owner = "Lindydancer"; + repo = "dynamic-spaces"; + rev = "97ae8480c257ba573ca3d06dbf602f9b23c41d38"; + sha256 = "0qs7gqjl6ilwwmd21663345az6766j7h1pv7wvd2kyh24yfs1xkj"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e0b59ce66132cbe2b1f41b665dcb30bdd04bc48b/recipes/dynamic-spaces"; + sha256 = "0l4hwqivzv51j7h5sgd91dxb5slylmrfrvf7r6w0k04bhld6ry0c"; + name = "dynamic-spaces"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/dynamic-spaces"; + license = lib.licenses.free; + }; + }) {}; e2ansi = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "e2ansi"; @@ -15359,12 +15397,12 @@ e2wm-direx = callPackage ({ direx, e2wm, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "e2wm-direx"; - version = "20140815.1613"; + version = "20170509.601"; src = fetchFromGitHub { owner = "aki2o"; repo = "e2wm-direx"; - rev = "f319625b56c44e601af7c17fc6dbb88e5d70ebae"; - sha256 = "09i7d2rc9zd4s3nqrhd3ggs1ykdpxf0pyhxixxw2xy0q6nbswjia"; + rev = "b47f19d15436cc28233a812a1150689f61d11046"; + sha256 = "0lihc02b0792kk61vcmhi0jwb7c4w2hi19g6a0q1598b3rci82nf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8320cf626050cf455c97ef22e7a8ccfb253e3243/recipes/e2wm-direx"; @@ -15461,18 +15499,39 @@ license = lib.licenses.free; }; }) {}; + eacl = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "eacl"; + version = "20171028.258"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "eacl"; + rev = "94b0eb062899db25f2ef0e535bc6ecace4b5c4e8"; + sha256 = "042va8ysvnyr7vgwrhd970ly65q1fczk04n6vd9zqxn02cqvk2yh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8223bec7eed97f0bad300af9caa4c8207322d39a/recipes/eacl"; + sha256 = "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr"; + name = "eacl"; + }; + packageRequires = [ emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/eacl"; + license = lib.licenses.free; + }; + }) {}; easy-after-load = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "easy-after-load"; - version = "20121224.1849"; + version = "20170817.531"; src = fetchFromGitHub { owner = "pd"; repo = "easy-after-load"; - rev = "f8e6e10725d80d3b7e8b1ca966de6190089d8f12"; - sha256 = "09ikwg5s42b50lfj0796pa2h32larkf5j6cy042dzh8c441vgih4"; + rev = "29e20145da49ac9ea40463c552130777408040de"; + sha256 = "00xgd39qc760lmxpbggzn98aks5nad08b5ry54pkszjlmh37yqj7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2086675f58453a597c8bc904b2f6d56f4f4ca702/recipes/easy-after-load"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/384ffc463cc6edb4806f8da68bd251e662718e65/recipes/easy-after-load"; sha256 = "1mn4hpx82nifphzx71yw3rbixbgis8bhvl3iyxcgcd88n5hqwvys"; name = "easy-after-load"; }; @@ -15506,12 +15565,12 @@ easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "easy-hugo"; - version = "20170409.2149"; + version = "20171025.1516"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-easy-hugo"; - rev = "b994c79a739fad4999ddc0d2b5a152bf0a4dbc7a"; - sha256 = "1j2b2nwa4h95s2dr879iaa6zxy9gvvljvx5ksjirgmy6vf36lb0q"; + rev = "d55472bdb08850fb3b2b27a373630c68f6cd2ac0"; + sha256 = "168wz1638arypqz6i0mzj1pw6mzgp6x10i2wz2vpgkw5p79zw46i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo"; @@ -15566,27 +15625,6 @@ license = lib.licenses.free; }; }) {}; - easy-lentic = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lentic, lib, melpaBuild }: - melpaBuild { - pname = "easy-lentic"; - version = "20170309.2143"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "easy-lentic"; - rev = "d2b600cc3bd3166c3e4543435070b511ae9bf148"; - sha256 = "1p99yf1nlial254dyy9i30lfx2v4jwpahvi9pfjm5sv64212vp33"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7e098e70214e85e1c583a4976f895941c13de75f/recipes/easy-lentic"; - sha256 = "1j141lncgcgfpa42m505xndiy6lh848xymfvb3cz4d6h73421khg"; - name = "easy-lentic"; - }; - packageRequires = [ cl-lib lentic ]; - meta = { - homepage = "https://melpa.org/#/easy-lentic"; - license = lib.licenses.free; - }; - }) {}; easy-repeat = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "easy-repeat"; @@ -15608,22 +15646,22 @@ license = lib.licenses.free; }; }) {}; - ebal = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: + ebal = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ebal"; - version = "20170327.2229"; + version = "20170810.631"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "ebal"; - rev = "e47c9eb6b8d6d2bc16c17f9d1dfa9fa2fc00124f"; - sha256 = "00d4i1y9z3gaw01cgccsk6q4qcbn9sg8lzs0im4dh6hzg27w12qm"; + rev = "65a131b95a1e934c0cab384ef533b0ac58961f0c"; + sha256 = "1b8i7qh743lhmkrmw1ac486i8nk8fdxl0ayxjs2sfb8fk4621rfr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/629aa451162a0085488caad4052a56366b7ce392/recipes/ebal"; sha256 = "1kqnlp5n1aig1qbqdq9q50wgqkzd1l6h9wi1gv43cif8qa1kxhwg"; name = "ebal"; }; - packageRequires = [ emacs f ido-completing-read-plus ]; + packageRequires = [ emacs f ]; meta = { homepage = "https://melpa.org/#/ebal"; license = lib.licenses.free; @@ -15653,12 +15691,12 @@ ebib = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, parsebib, seq }: melpaBuild { pname = "ebib"; - version = "20170401.1342"; + version = "20170711.1234"; src = fetchFromGitHub { owner = "joostkremers"; repo = "ebib"; - rev = "a1c8a5045ff31001f0a0dde188e20f23640f5469"; - sha256 = "1awrkcqk38aash3whihhjrxq9f9b568vpiaihyhcsi0773hl5h3b"; + rev = "9e5f3377a5e9c6956300de3872c89cd902c2cfc6"; + sha256 = "0rklwdz3d2b065yhhiz7bhyfb3fsg9rcqi6d4rhk7wb8w849vf20"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/ebib"; @@ -15674,12 +15712,12 @@ ecb = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ecb"; - version = "20160101.933"; + version = "20170728.1221"; src = fetchFromGitHub { owner = "ecb-home"; repo = "ecb"; - rev = "661edbfcddcdb75331cf28870e6a5fb4ba9ca27f"; - sha256 = "1ac9b6k10kniqkiadzfa7mjhy1nf6ypd3fl6yvmr8yigc2phszny"; + rev = "1330a44cf3c171781083b0b926ab7622f64e6e81"; + sha256 = "0nx1blkvnzrxd2l7ckdihm9fvq5vkcghf6qccagkjzk4zbdalz30"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4db5183f35bedbc459843ad9f442f9cb6608c5fc/recipes/ecb"; @@ -15692,33 +15730,15 @@ license = lib.licenses.free; }; }) {}; - echo-bell = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "echo-bell"; - version = "20170221.1635"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/echo-bell.el"; - sha256 = "0000ya8y6v5xvl5qkrsamzwh1iikc3clhpdpdr2da6c4b9cznydh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a81e339e9c7cf1ae5fe91ab4442164336a6fbf13/recipes/echo-bell"; - sha256 = "0adhdfbcpmdhd9252rh0jik2z3v9bzf0brpzfvcjn5py2x6724ws"; - name = "echo-bell"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/echo-bell"; - license = lib.licenses.free; - }; - }) {}; eclim = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild, popup, s, yasnippet }: melpaBuild { pname = "eclim"; - version = "20170328.1807"; + version = "20171024.1038"; src = fetchFromGitHub { owner = "emacs-eclim"; repo = "emacs-eclim"; - rev = "c13d1e853722bac880e82e6b04158015e7b12f6c"; - sha256 = "18bm0prhnahj0b397hn9nn98d09rrzfhzfg86glxqy4y8k6f0ai6"; + rev = "14596d3a1c0e7f18be6b88eddebaf7f36eeca859"; + sha256 = "04vmq8d68na8pxwd18lxf87v0nzf3cxxdvw8cqzj28his7g37bym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e9d3075587fbd9ca188535fd945a7dc451c6d7e/recipes/eclim"; @@ -15755,12 +15775,12 @@ ecukes = callPackage ({ ansi, commander, dash, espuds, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ecukes"; - version = "20170104.1041"; + version = "20170922.656"; src = fetchFromGitHub { owner = "ecukes"; repo = "ecukes"; - rev = "277d25cf8fc9548239599244ab15a2268a55b31b"; - sha256 = "0jh7l4lhbjd7qxqdi8d8mk5j3qxx70x3jdzpw2xw6szcx67lvd3s"; + rev = "e16dcb430cf05a28065ad26eab2b32e2f7af8705"; + sha256 = "1x085idsgcfzagqm6jqqhgqzy1xqjkq40zl2q7a20v013n3rkbd8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14cf66e6929db2a0f377612e786aaed9eb12b799/recipes/ecukes"; @@ -15902,12 +15922,12 @@ ede-php-autoload = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ede-php-autoload"; - version = "20170406.609"; + version = "20170428.933"; src = fetchFromGitHub { owner = "stevenremot"; repo = "ede-php-autoload"; - rev = "2aae77b5ca2ce458f56fe67a33d5e84bb9428e5d"; - sha256 = "1vsmpvip4dwj1jwvj5iswci14xky4mrfpqgh1g8i56p5ql9ifsmr"; + rev = "65e502602dbc623257a820245d41f94cf2e1f07d"; + sha256 = "1569g3rnklxnnknrs9nmyjk9axrdhpr9pcz2ma925sb388jyrf5r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8ee9f7fd9cbc3397cd9af34b08b75c3d9d8bc551/recipes/ede-php-autoload"; @@ -15994,8 +16014,8 @@ sha256 = "0crwdgng377sy1zbq7kqkz24v697mlzgdsvkdp1m8r7ympikkj6w"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1737276c05491b53bf0c71e3aefe1480b3b99535/recipes/edit-at-point"; - sha256 = "0sn5a644zm165li44yffcpcai8bhl3yfvqcljghlwaa0w45sc9im"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a63b22f357b2d08b12fb86c27261ab4d687c5f7f/recipes/edit-at-point"; + sha256 = "1mijasr4ww6vcjfyk7jdv4mh7w2rrspqbbmqayiy2918qg2x01df"; name = "edit-at-point"; }; packageRequires = []; @@ -16028,12 +16048,12 @@ edit-indirect = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "edit-indirect"; - version = "20170310.1002"; + version = "20170928.430"; src = fetchFromGitHub { owner = "Fanael"; repo = "edit-indirect"; - rev = "2fc8f382ee12fc8f7202288534258186bdf6068a"; - sha256 = "1m40zi6dkq7m9386adrys5n7w8h9973svfmxl1c3n9vk9kjibb9k"; + rev = "032ac0ec690d4999d564fd882588c7a197efe8dd"; + sha256 = "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/edit-indirect"; @@ -16091,12 +16111,12 @@ edit-server = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "edit-server"; - version = "20141231.1358"; + version = "20170725.859"; src = fetchFromGitHub { owner = "stsquad"; repo = "emacs_chrome"; - rev = "0a50fbb524fe256560f481701c000309c627b9ca"; - sha256 = "0ssmhwg4wfh5cxgqv8bl55449204h4zi863m7jhvas4c9zq005kd"; + rev = "462c57be72b3a8652f705bde0d3b7cd2f79644fa"; + sha256 = "0s4s90sbk82yp08my8jdmn4kn5cx8xc9cf02asrq4b4jvljynwvj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d98d69008b5ca8b92fa7a6045b9d1af86f269386/recipes/edit-server"; @@ -16133,12 +16153,12 @@ editorconfig = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "editorconfig"; - version = "20170309.2006"; + version = "20171005.2129"; src = fetchFromGitHub { owner = "editorconfig"; repo = "editorconfig-emacs"; - rev = "0a6d9a3c0259aba57a332ac8db582c33e522f12f"; - sha256 = "114zfk7p6p61mcphd1hn3r1hqj0j9ra0acmfx1k74d60npci25pj"; + rev = "99bb6882d8ac708a066a9977cc4fa23f86c6b8f6"; + sha256 = "0372s9xp8gjz6y0ix095r9gy8718jw1vkjszd12kz6vnxn4z4rmi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/50d4f2ed288ef38153a7eab44c036e4f075b51d0/recipes/editorconfig"; @@ -16151,15 +16171,36 @@ license = lib.licenses.free; }; }) {}; + editorconfig-charset-extras = callPackage ({ editorconfig, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "editorconfig-charset-extras"; + version = "20170712.108"; + src = fetchFromGitHub { + owner = "10sr"; + repo = "editorconfig-charset-extras-el"; + rev = "bf2d23c57a485ee41d21a9a0015d5bd52baabf85"; + sha256 = "0qgg2v9xpr8bm97pj4pxd9q6j8i6h94gb1j7lla0sn80cwymxwrx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/62f27dad806fa135209289933f2131ee4ce8f8bf/recipes/editorconfig-charset-extras"; + sha256 = "15p9qpdwradcnjr0nf0ibhy94yi73l18xz7zxf6khmdirsirpwgh"; + name = "editorconfig-charset-extras"; + }; + packageRequires = [ editorconfig ]; + meta = { + homepage = "https://melpa.org/#/editorconfig-charset-extras"; + license = lib.licenses.free; + }; + }) {}; editorconfig-custom-majormode = callPackage ({ editorconfig, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "editorconfig-custom-majormode"; - version = "20170309.2112"; + version = "20170509.141"; src = fetchFromGitHub { owner = "10sr"; repo = "editorconfig-custom-majormode-el"; - rev = "f5b9e0932e861c71611b5dfbd2c04ce635d14e34"; - sha256 = "0iql5c9a5qzzdwp3f1n5pb3zcglnby2hhx4nsplpjr0ffbqgad63"; + rev = "b5350d20b2730a0f029c9e1d651e50cf9a809fa9"; + sha256 = "1xk3c0g0a6g2p7wg26aphl6cdz45iql0s4w1qa8np2hly10a4cxy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fcd47bf4630442ad1a941ad432cef64c7746aa71/recipes/editorconfig-custom-majormode"; @@ -16214,15 +16255,15 @@ license = lib.licenses.free; }; }) {}; - edts = callPackage ({ auto-complete, auto-highlight-symbol, dash, eproject, erlang, f, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s }: + edts = callPackage ({ auto-complete, auto-highlight-symbol, dash, erlang, f, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s }: melpaBuild { pname = "edts"; - version = "20160812.729"; + version = "20171030.9"; src = fetchFromGitHub { owner = "tjarvstrand"; repo = "edts"; - rev = "a3e4eeb5b340186f727bd06aa3d4d3fcacc16292"; - sha256 = "0kbm11v3sfvkc821lpcv87z21pqb3pb4jzv7wyiy6mlkbnqjl289"; + rev = "6ef4bdf571235ee1b078db321402270cabff7fda"; + sha256 = "1nzf8wdv0hs4kp69cy3blwxh18c2bkxr4d4y6ggdp0vmwv41j3zi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/782db7fba2713bfa17d9305ae15b0a9e1985445b/recipes/edts"; @@ -16233,7 +16274,6 @@ auto-complete auto-highlight-symbol dash - eproject erlang f popup @@ -16265,6 +16305,27 @@ license = lib.licenses.free; }; }) {}; + eg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eg"; + version = "20170830.115"; + src = fetchFromGitHub { + owner = "davep"; + repo = "eg.el"; + rev = "1c7f1613d2aaae728ef540305f6ba030616f86bd"; + sha256 = "1g2ha6q9k6dmi63i2p4aypwf5mha699wr7yy5dsck39mqk15hx0f"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3d2b6b92b2a71486f260571885bf149ad6afc551/recipes/eg"; + sha256 = "1ic6qzk0zmay3vvbb8jg35irqkc0k68dmgbq4j9isiawy449zvp7"; + name = "eg"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/eg"; + license = lib.licenses.free; + }; + }) {}; egg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "egg"; @@ -16293,8 +16354,8 @@ src = fetchFromGitHub { owner = "egisatoshi"; repo = "egison3"; - rev = "a9bec9b4cdaec8fa92bec398c4c5231817e7efad"; - sha256 = "146jq14xjab996r5ff9nschbrh4zk7grggnj7xm8bxwnr9yv0qv0"; + rev = "94d964066ed7cecaea2b31eda7703396032ea4ed"; + sha256 = "0ln5dzbrbxzhlr797hphd5dmbrhh76cdfbm1fvgl3bi1fw59g8pq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f543dd136e2af6c36b12073ea75b3c4d4bc79769/recipes/egison-mode"; @@ -16310,12 +16371,12 @@ ego = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, ht, htmlize, lib, melpaBuild, mustache, org, simple-httpd }: melpaBuild { pname = "ego"; - version = "20170112.2043"; + version = "20170601.817"; src = fetchFromGitHub { owner = "emacs-china"; repo = "EGO"; - rev = "d81561d39524a5f78d5f94216b0ca5fef4b5700b"; - sha256 = "0scnhpj4naaicxp62hd0b5g3kf05gpldbi1z1sfnq4mqi84fnfgx"; + rev = "93ccd450d2d9e5db27aebb024a1b2ed56d5131dc"; + sha256 = "0izxsckmkdw70cz3ljar2r4iv784c43mnzjkayly08hlabq1g6b6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ego"; @@ -16330,11 +16391,11 @@ }) {}; eide = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eide"; - version = "20170407.1229"; + version = "20170906.1216"; src = fetchgit { url = "git://git.tuxfamily.org/gitroot/eide/emacs-ide.git"; - rev = "d15589a117ac710b70df71cdf33a33ca05e55d13"; - sha256 = "0k0x8xlxnv4fn2q3fyaxpbj4776cbc6ylbiwxqjzvqqzaq6lmx8j"; + rev = "25f9af215781163b10d411fe2b5674033eb24165"; + sha256 = "0mwy5a67hap9bx1klk2pzfaav65drd6mfkkhnk2045z4jvzgkn70"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eide"; @@ -16368,22 +16429,32 @@ license = lib.licenses.free; }; }) {}; - ein = callPackage ({ cl-generic, fetchFromGitHub, fetchurl, lib, melpaBuild, request, websocket }: + ein = callPackage ({ auto-complete, cl-generic, dash, deferred, fetchFromGitHub, fetchurl, lib, melpaBuild, request, request-deferred, s, skewer-mode, websocket }: melpaBuild { pname = "ein"; - version = "20170411.1509"; + version = "20171024.1043"; src = fetchFromGitHub { owner = "millejoh"; repo = "emacs-ipython-notebook"; - rev = "f0f0c0d2069972f71cdfb5e520f42c688465be8c"; - sha256 = "0w6xjvpkm6cfpvbxjkjd580znjyh44mkldj1p330rda0ykarshdv"; + rev = "eaded1e01378c61be8bc454d111e8cc4951a0b5b"; + sha256 = "0m0dkzr44bmgc5sxzgsp290hvsylvyrsnmfk6ki44qkvp4qg0bxr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/215e163755fe391ce1f049622e7b9bf9a8aea95a/recipes/ein"; sha256 = "14blq1cbrp00rq0ilk7z9qppqfj0r4n3jidw3abcpchvh5ln086r"; name = "ein"; }; - packageRequires = [ cl-generic request websocket ]; + packageRequires = [ + auto-complete + cl-generic + dash + deferred + request + request-deferred + s + skewer-mode + websocket + ]; meta = { homepage = "https://melpa.org/#/ein"; license = lib.licenses.free; @@ -16413,12 +16484,12 @@ eink-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eink-theme"; - version = "20161207.410"; + version = "20170717.807"; src = fetchFromGitHub { owner = "maio"; repo = "eink-emacs"; - rev = "40e7a7d31ee160175aa89583609d3f953fb066c6"; - sha256 = "0701c7x8wwr99d5l50k8n2a6zx7dh067d702v032g5axh7lqsn2j"; + rev = "4c990bb3428f725735fa1f733ef4c5ad61f632b0"; + sha256 = "0jxs36qdsx58ni5185qyi1c7gchyla3dpv4v9drj1n072ls82ld4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a1349c3f93ab60983f77c28f97048fa258b612a6/recipes/eink-theme"; @@ -16434,12 +16505,12 @@ ejc-sql = callPackage ({ auto-complete, cider, clomacs, dash, direx, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, spinner }: melpaBuild { pname = "ejc-sql"; - version = "20170328.706"; + version = "20171019.1304"; src = fetchFromGitHub { owner = "kostafey"; repo = "ejc-sql"; - rev = "9595e72e85e7edef0d9df5accf166d232824cd3d"; - sha256 = "0h0ryi027f4vqv9m6dz8dgf9scqmcabcgin692yysxp9b5jkg8d3"; + rev = "bd5e3f334044c8b33e2a0a2e0d8767aa6f0e03b8"; + sha256 = "1pyvpsi4krbmdx2739nnw5g71x3y209xwjl5a7xqbczy9qqxs18n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8f2cd74717269ef7f10362077a91546723a72104/recipes/ejc-sql"; @@ -16484,12 +16555,12 @@ el-get = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el-get"; - version = "20170112.2204"; + version = "20170813.1436"; src = fetchFromGitHub { owner = "dimitri"; repo = "el-get"; - rev = "cdd39a51aab1ed23ac7195297eb986fc482e8c42"; - sha256 = "0av2lpj1rij8mcf0jxdfm6pm6pwrv1wzh095z8vsfcdda8svznxc"; + rev = "07c75d259d89dabb34878d6085a94fb11aef1947"; + sha256 = "1b1cgfh7wzcw5m32mhn9w6gzllr09hfv2ghdb4wwaw567xcqd4qh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1c61197a2b616d6d3c6b652248cb166196846b44/recipes/el-get"; @@ -16547,12 +16618,12 @@ el-mock = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el-mock"; - version = "20170305.2325"; + version = "20170824.1254"; src = fetchFromGitHub { owner = "rejeep"; repo = "el-mock.el"; - rev = "9e4d0921791cd04917613d8e3d06342ead129777"; - sha256 = "1wkbhgyisj4kix0s4dkg72jylghqckmnyzk2brlrkvhz12zmhva3"; + rev = "5df1d3a956544f1d3ad0bcd81daf47fff33ab8cc"; + sha256 = "06ldnrpqvbdxfzr8v7pj9xacgvkp36xjlhvjkpxldmqj1l5v8a6w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b1989beb927657c0ff7e79fe448f62ac58c11be7/recipes/el-mock"; @@ -16568,12 +16639,12 @@ el-patch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el-patch"; - version = "20170310.2128"; + version = "20171016.1743"; src = fetchFromGitHub { owner = "raxod502"; repo = "el-patch"; - rev = "c0f1c01a82903a1d7f5d49eba6d9e9d373423907"; - sha256 = "0kj4rbn86v9hjkshpyn65cmyhrnmg3s6ir6p4ricnhzv11rgkx6y"; + rev = "32f7a12c2eaacd60d48ed5e5482121154a507fb8"; + sha256 = "0m1v3gjds2j16kpy05zipdh30fbsb2zrgjny156kgjjxy6fnrnki"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2f4f57e0edbae35597aa4a7744d22d2f971d5de5/recipes/el-patch"; @@ -16589,15 +16660,15 @@ el-pocket = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, web }: melpaBuild { pname = "el-pocket"; - version = "20160528.951"; + version = "20170922.549"; src = fetchFromGitHub { owner = "pterygota"; repo = "el-pocket"; - rev = "eb356e013c71903f2e946631ff58a1d0c2372389"; - sha256 = "01dqksnz0nbfmp10sd3wwv1gffs60rk5v9rf2j3q2z13qsh8l2yy"; + rev = "a80abfb67efe68ada1d7d0a73aecee57e763baaa"; + sha256 = "0q4nsgqpjmmxml5pcb6im1askk6q7c3ykzv6fgf1w8jgkvdifa6f"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c3b8857bc84888a3f8566fab6288966e07d4201f/recipes/el-pocket"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ef362a76a3881c7596dcc2639df588227b3713c0/recipes/el-pocket"; sha256 = "0fgylpfixsx5l1nrgz6n1c2ayf52p60f9q290hmkn36siyx5hixw"; name = "el-pocket"; }; @@ -16691,24 +16762,6 @@ license = lib.licenses.free; }; }) {}; - el-swank-fuzzy = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "el-swank-fuzzy"; - version = "20130824.457"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/el-swank-fuzzy.el"; - sha256 = "1g2jhm9m5qcj6a231n5ch6b8bqwzq3kj275nd4s89p89v1252qhn"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2aecf6d476c7898478e6e5dcfc77d91935f07039/recipes/el-swank-fuzzy"; - sha256 = "1m7y4c0r1w8ndmr1wgc2llrbfawbbxnvcvgjpsckb3704s87yxr1"; - name = "el-swank-fuzzy"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/el-swank-fuzzy"; - license = lib.licenses.free; - }; - }) {}; el-x = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el-x"; @@ -16733,12 +16786,12 @@ el2markdown = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el2markdown"; - version = "20160822.1135"; + version = "20170630.1158"; src = fetchFromGitHub { owner = "Lindydancer"; repo = "el2markdown"; - rev = "712364b9f64d2f6501a069e1bfed207de0237881"; - sha256 = "12l50k56h1aiwmvvxrka3y1i82sv5xc7vn99z3y3kl31yl3g6382"; + rev = "368d99313683cd943c99feaffca356be60bdb636"; + sha256 = "1h0cr8qcvj9r3acb6bf5nyglvi5gdglwflkfl5jbzp0nm1p9iqcg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/el2markdown"; @@ -16754,12 +16807,12 @@ el2org = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el2org"; - version = "20170320.1534"; + version = "20170804.2142"; src = fetchFromGitHub { owner = "tumashu"; repo = "el2org"; - rev = "1b2f01585bce80b2bb503e8b21e373ad5e946eed"; - sha256 = "0jinjrl2fgxixdkkayvajd7pzqz8vmqdkni8pm4shn781n660b2g"; + rev = "4a33469cd305e581603d7ef63bc2a1f2156f2e2e"; + sha256 = "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/el2org"; @@ -16793,40 +16846,22 @@ license = lib.licenses.free; }; }) {}; - eldoc-extension = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "eldoc-extension"; - version = "20140306.645"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/eldoc-extension.el"; - sha256 = "13ncpp3hrwk0h030c5nnm2zfiingilr5b876jsf2wxmylg57nbch"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2c59866b554def3f6cef997cc23254a560f3eb33/recipes/eldoc-extension"; - sha256 = "0azkdx4ncjhb7qyhyg1a5pxgqqf2z1wq9iz802j0nxxnjzh9ny24"; - name = "eldoc-extension"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/eldoc-extension"; - license = lib.licenses.free; - }; - }) {}; - eldoc-overlay-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, inline-docs, lib, melpaBuild }: + eldoc-overlay-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, inline-docs, lib, melpaBuild, quick-peek }: melpaBuild { pname = "eldoc-overlay-mode"; - version = "20170123.6"; + version = "20170909.651"; src = fetchFromGitHub { owner = "stardiviner"; repo = "eldoc-overlay-mode"; - rev = "a0f25710b6a1614ce93c71c7947108c09b587c48"; - sha256 = "065sihf0dvi7g37zvf5drigkakydapyvpxdibcdzhcxx2p9bqszi"; + rev = "4512e5499cd4f647ad3b5212b853f0299d6cff47"; + sha256 = "1dp7pjr89bq0fjjqvha2smw54aymy4pyjx643qp0x1dhpwa7bv5h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eldoc-overlay-mode"; sha256 = "09rhh8rj9rcdnl1jfnjlyzcdr56h9yhmfsb27i4v59g06x8qc954"; name = "eldoc-overlay-mode"; }; - packageRequires = [ emacs inline-docs ]; + packageRequires = [ emacs inline-docs quick-peek ]; meta = { homepage = "https://melpa.org/#/eldoc-overlay-mode"; license = lib.licenses.free; @@ -16856,12 +16891,12 @@ electric-operator = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, names }: melpaBuild { pname = "electric-operator"; - version = "20170311.533"; + version = "20171022.625"; src = fetchFromGitHub { owner = "davidshepherd7"; repo = "electric-operator"; - rev = "13b5c19049bd7ac9529ee6fb6171f9141311f277"; - sha256 = "0xpqynnl1dxylxgg7h42pamxn7iwa4jwcy355l0sxmra951j22wq"; + rev = "278086fcffa1a4607392ca2b0ad57522e492b52c"; + sha256 = "1kf1281igi6pzg04fsiqwhwrlqv56c1fi56a4z6ch76wh5s63vj3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/906cdf8647524bb76f644373cf8b65397d9053a5/recipes/electric-operator"; @@ -16940,12 +16975,12 @@ elfeed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elfeed"; - version = "20170416.556"; + version = "20171001.1900"; src = fetchFromGitHub { owner = "skeeto"; repo = "elfeed"; - rev = "409be5108d736df595b18f5d373c3b32bf7ab4b4"; - sha256 = "1ab27kqwnrl9g81cyrzzm6j31zg0sl4iz16anhzcm6cqhsrm4hcn"; + rev = "23cbeb803a312fd0e3801ef240e4322bf9965656"; + sha256 = "0vi0vbd2k4frj6ij2v8imx57vikgcp47gwk11w4qh4k0na4cjbfs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/407ae027fcec444622c2a822074b95996df9e6af/recipes/elfeed"; @@ -16986,22 +17021,22 @@ license = lib.licenses.free; }; }) {}; - elfeed-org = callPackage ({ dash, elfeed, fetchFromGitHub, fetchurl, lib, melpaBuild, org, s }: + elfeed-org = callPackage ({ cl-lib ? null, dash, elfeed, fetchFromGitHub, fetchurl, lib, melpaBuild, org, s }: melpaBuild { pname = "elfeed-org"; - version = "20160814.314"; + version = "20170423.128"; src = fetchFromGitHub { owner = "remyhonig"; repo = "elfeed-org"; - rev = "ccb571188b7942ec3e1f93561ed4bb8b659a78a2"; - sha256 = "15wcwp8gfv1zsykyc59ml07g43p1w305q3mgahis37rl9bpyaadn"; + rev = "a54649f0fd83fd536213f58ee4268c67a799293a"; + sha256 = "05vqvkyyqbj4a886c9x53z7yv8hapmgm9c1ccfibpw0clyf0dixp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/elfeed-org"; sha256 = "0rnxr2q2ib6xrdx41ams1z2ivw5zhcsmqdylyvbw62h20rlmlgm8"; name = "elfeed-org"; }; - packageRequires = [ dash elfeed org s ]; + packageRequires = [ cl-lib dash elfeed org s ]; meta = { homepage = "https://melpa.org/#/elfeed-org"; license = lib.licenses.free; @@ -17010,12 +17045,12 @@ elfeed-web = callPackage ({ elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, simple-httpd }: melpaBuild { pname = "elfeed-web"; - version = "20170402.1842"; + version = "20170709.954"; src = fetchFromGitHub { owner = "skeeto"; repo = "elfeed"; - rev = "409be5108d736df595b18f5d373c3b32bf7ab4b4"; - sha256 = "1ab27kqwnrl9g81cyrzzm6j31zg0sl4iz16anhzcm6cqhsrm4hcn"; + rev = "23cbeb803a312fd0e3801ef240e4322bf9965656"; + sha256 = "0vi0vbd2k4frj6ij2v8imx57vikgcp47gwk11w4qh4k0na4cjbfs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/62459d16ee44d5fcf170c0ebc981ca2c7d4672f2/recipes/elfeed-web"; @@ -17136,12 +17171,12 @@ elisp-refs = callPackage ({ dash, f, fetchFromGitHub, fetchurl, lib, list-utils, loop, melpaBuild, s }: melpaBuild { pname = "elisp-refs"; - version = "20161205.444"; + version = "20170831.1347"; src = fetchFromGitHub { owner = "Wilfred"; repo = "refs.el"; - rev = "54b6221a06a32075d1d0c991f75f53c6c792830e"; - sha256 = "1xzm86l37fjiknqbsdv14n70mgaw0105i55fbl4rf0p9q4nircmv"; + rev = "9ac6c1a45c620a6d7e0fae3739558fa08b3758a3"; + sha256 = "1yniapnkr3124isnfkv1j4mqwdmb1xb7xngjwprhjlg3k1zj3rfl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/60891099e241ebd32d39bdcfe4953529a5a3263e/recipes/elisp-refs"; @@ -17182,8 +17217,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "elisp-slime-nav"; - rev = "8a1c2717a6fb50b654b8d1ffa12a40420ee32990"; - sha256 = "1nn97aqfawygvwybr5d51y82az4pj774d6qmwsqfpx7yppd45hsd"; + rev = "34938422929800839e2f935aca890cd4a229ca99"; + sha256 = "00v8iqlf6pk8a0656s14jd0gv5msqy6q2af15q21f2nl4j0gl9qj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/elisp-slime-nav"; @@ -17199,12 +17234,12 @@ elixir-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: melpaBuild { pname = "elixir-mode"; - version = "20170102.942"; + version = "20170918.2231"; src = fetchFromGitHub { owner = "elixir-lang"; repo = "emacs-elixir"; - rev = "384d8daf8ad563ebf2cb3437c71d30241adbe099"; - sha256 = "0idgfjwd6116zaag0lmq2i9by2mr054nrqmpnsvyhk26hw71k3vn"; + rev = "861788186f4dbd500209656dcf38a15b3efe74dd"; + sha256 = "1py8slpda3vsw88v1wp1imnn3r17hz54621c6ks8xm75lnhn60ra"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6374ced0de38d83bf99147f702f30706615480ed/recipes/elixir-mode"; @@ -17241,12 +17276,12 @@ elm-mode = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, s }: melpaBuild { pname = "elm-mode"; - version = "20170322.1347"; + version = "20171028.2337"; src = fetchFromGitHub { owner = "jcollard"; repo = "elm-mode"; - rev = "3d36c16bbe1cebc285341452a60da578afbb2804"; - sha256 = "1aywgkf5505hx7qd0r4b8k89xmskkrz9imlmhp6xnwj31qs7ix63"; + rev = "6fa343ada4a74850840e21bbe787c14fe5a67155"; + sha256 = "18yk029k12zd8xwgj4k0741lbxzl9djik0srvb5jn6bcbcp6hb9g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5d1a4d786b137f61ed3a1dd4ec236d0db120e571/recipes/elm-mode"; @@ -17304,12 +17339,12 @@ elmine = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "elmine"; - version = "20151121.423"; + version = "20170511.20"; src = fetchFromGitHub { owner = "leoc"; repo = "elmine"; - rev = "60639f46a5f45653f490cdd30732beb2dca47ada"; - sha256 = "1463y4zc6yabd30k6806yw0am18fjv0bkxm56p2siqrwn9pbsh8k"; + rev = "432d2f2f7cb5b533f25b993d1001abcadcebe8ed"; + sha256 = "02lsxj9zkcaiqlzy986n1f65cfyd8pkrdljgplsbd9p0w8ys0s94"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/elmine"; @@ -17427,22 +17462,22 @@ license = lib.licenses.free; }; }) {}; - elpa-clone = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + elpa-clone = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elpa-clone"; - version = "20161222.1009"; + version = "20170502.514"; src = fetchFromGitHub { owner = "dochang"; repo = "elpa-clone"; - rev = "8d0827b03b08eb4844e2b8465c27d5aa0e12101d"; - sha256 = "1ik2k6ngzg3znfp4a36f7m5ca6p3iivfb7w280w3gm5x1ja8as2a"; + rev = "92f4c9d3570ad002575a90d0cc4a522c203a1110"; + sha256 = "0m5w5wgyslvakcqpr3d198sy3561w2h002gflw0jp47v17hba1r7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/11861edd9c7f9deebd44fd1f8ef648e7a04caf2b/recipes/elpa-clone"; sha256 = "172gpmpwf75y41n3v05l47w34x83vy63bqk97fd8a6b4dkj91lqa"; name = "elpa-clone"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/elpa-clone"; license = lib.licenses.free; @@ -17451,12 +17486,12 @@ elpa-mirror = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elpa-mirror"; - version = "20160917.10"; + version = "20171012.15"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "elpa-mirror"; - rev = "dcadffd331ac70c59e1960d34b7f998302c616d6"; - sha256 = "08dz6zy9fqj7qd1g1igvr28q2znrd5pwxxqjlrkzs994ypfj1vzq"; + rev = "f4a84f71368dc343d09093312d1b2c2e9a5a3987"; + sha256 = "07j3bsv3vinpkxxbw4fyfgb5jb1kcd068821l59pk9yrw145kb96"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d64ce7042c45f29fb394be25ce415912182bac8b/recipes/elpa-mirror"; @@ -17469,15 +17504,15 @@ license = lib.licenses.free; }; }) {}; - elpy = callPackage ({ company, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }: + elpy = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }: melpaBuild { pname = "elpy"; - version = "20170414.319"; + version = "20171029.955"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "elpy"; - rev = "e4982452a3be29df4ab71f2463485c3e697c6f1a"; - sha256 = "18g65sy70p8s5v5r150b6b1wqmi11q6n213l8ign038iqjmbar8r"; + rev = "434f6799e103fcce7d896b3281eb59e15a760783"; + sha256 = "1mpxzyssvp6n1y17xqxmmpymvljz7g6j60whn9mdp3njn0ijyn5k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy"; @@ -17486,6 +17521,7 @@ }; packageRequires = [ company + emacs find-file-in-project highlight-indentation pyvenv @@ -17497,22 +17533,22 @@ license = lib.licenses.free; }; }) {}; - elquery = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + elquery = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "elquery"; - version = "20170226.1238"; + version = "20170624.1635"; src = fetchFromGitHub { owner = "AdamNiederer"; repo = "elquery"; - rev = "bfda1499d11b5705bea60886a3d25ca6d3808111"; - sha256 = "1q0ifhq7wflzayg9mqy0wfc1fhgh4fmy17psz977k01yc7nc5s42"; + rev = "a5f7f3545330280991dd6334f4ce4f72aaa44145"; + sha256 = "0yf29d1akj1ays5rqcmgmvyfm4gx7j6yibd12x72wpf5mygv1fxi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/121f7d2091b83143402b44542db12e8f78275103/recipes/elquery"; sha256 = "19yik9w4kcj7i9d3bwwdszznwcrh75hxd0540iqk5by861z5f3zr"; name = "elquery"; }; - packageRequires = [ emacs s ]; + packageRequires = [ dash emacs s ]; meta = { homepage = "https://melpa.org/#/elquery"; license = lib.licenses.free; @@ -17542,12 +17578,12 @@ elscreen-buffer-group = callPackage ({ cl-lib ? null, elscreen, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elscreen-buffer-group"; - version = "20160105.803"; + version = "20170808.1825"; src = fetchFromGitHub { owner = "jeffgran"; repo = "elscreen-buffer-group"; - rev = "06ea9384a642ff5c3a93f36aee9f5d6b5c17657e"; - sha256 = "0bbashrqpyhs282w5i15rzravvj0fjnydbh9vfnfnfnk8a9sssxz"; + rev = "a3cd4d7eae3cca87bede4b39a46d3c0641f8cd06"; + sha256 = "0flja2j5xqhxc0qrclnxcpyzvn7gyjynfpa3mp1hb250c313igy5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c6fedb7b6ef58089da4b35ad115f699b4b24ff2/recipes/elscreen-buffer-group"; @@ -17588,8 +17624,8 @@ src = fetchFromGitHub { owner = "masutaka"; repo = "elscreen-mew"; - rev = "89871fad690ae161dc076e16ef481b1965612077"; - sha256 = "14hwl5jzmm43qa4jbpsyswbz4hk1l2iwqh3ank6502bz58877k6c"; + rev = "c90a23441d836da14a1cb12788432308ba58e2b6"; + sha256 = "167kgbnh5q3pqirv0f7wpjn7yc76k8mz9qx45i7d4scmx8952d2g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/47404ea3cfb591b780ca7e31095951a708b0a6b7/recipes/elscreen-mew"; @@ -17623,27 +17659,6 @@ license = lib.licenses.free; }; }) {}; - elscreen-persist = callPackage ({ elscreen, fetchFromGitHub, fetchurl, lib, melpaBuild, revive }: - melpaBuild { - pname = "elscreen-persist"; - version = "20160505.1829"; - src = fetchFromGitHub { - owner = "robario"; - repo = "elscreen-persist"; - rev = "79cb33909a9c66bb183432b956edffbc6b12ace3"; - sha256 = "0p0zphl3ylrbs3mz12y40hphslxd1hlszk1pqi151xrfgc2r0pp8"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c30ec71dcc29d1d0fd6c54de512c8c4636a7e0a6/recipes/elscreen-persist"; - sha256 = "1rjfvpsx0y5l9b76wa1ilj5lx39jd0m78nb1a4bqn81z0rkfpl4k"; - name = "elscreen-persist"; - }; - packageRequires = [ elscreen revive ]; - meta = { - homepage = "https://melpa.org/#/elscreen-persist"; - license = lib.licenses.free; - }; - }) {}; elscreen-separate-buffer-list = callPackage ({ elscreen, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elscreen-separate-buffer-list"; @@ -17665,6 +17680,27 @@ license = lib.licenses.free; }; }) {}; + elvish-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "elvish-mode"; + version = "20170913.1939"; + src = fetchFromGitHub { + owner = "ALSchwalm"; + repo = "elvish-mode"; + rev = "9cf31b453ac79b011b84e83ca11c964c4e647649"; + sha256 = "0ryg9c8pjw98a9l4hyjqwan7kcv492vzy0xxcrcfm69zn8vnw9k0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0fc724072702a565af471f9ae523a1e6e48e3f04/recipes/elvish-mode"; + sha256 = "1f5pyadmbh2ldd51srvlhbjq2849f1f0s8qmpjnsz9bc986yga34"; + name = "elvish-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/elvish-mode"; + license = lib.licenses.free; + }; + }) {}; elwm = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elwm"; @@ -17689,16 +17725,16 @@ elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elx"; - version = "20161104.1831"; + version = "20170805.449"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "elx"; - rev = "84c9cd5721be9594de743330e7abcec092d2838c"; - sha256 = "0z2xgy8n3gwh71129pk53nrm13h2x51n61vz7xjqmhm6c11vgrq4"; + rev = "9f5d593b65686e8da29ef79457c8f6fc061af7e5"; + sha256 = "1vs7nmsi82gv9mw1mia6ri1vmn26ldwnj8akirqgq31rfgyfj4vh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/91430562ecea439af020e96405ec3f21d768cf9f/recipes/elx"; - sha256 = "02nq66c0sds61k2p8cn2l0p2l8ysb38ibr038qn41l9hg1dq065x"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx"; + sha256 = "008nwa2gn3d2ayr8023pxyvph52gh9m56f77h41hp8hcw6hbdwrz"; name = "elx"; }; packageRequires = [ emacs ]; @@ -17714,8 +17750,8 @@ src = fetchFromGitHub { owner = "echosa"; repo = "emacs-setup"; - rev = "cc36ad5318c6c0e65d1b9ff8dff5ea2437675de2"; - sha256 = "15l3ab11vcmzqibkd6h5zqw5a83k8dmgcp4n26px29c0gv6bkpy8"; + rev = "c783ec13e3b39093fffb6f6d64dccdce8ce4d375"; + sha256 = "1crpjcxwanbrd1yd4lbb5lmqwvx1mczya7ff2qr3phk497czpsqm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/abb7101b2d48af56af09d1dc85c540300dba7b3c/recipes/emacs-setup"; @@ -17794,12 +17830,12 @@ emacsql = callPackage ({ cl-generic, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, finalize, lib, melpaBuild }: melpaBuild { pname = "emacsql"; - version = "20170410.1218"; + version = "20170807.1901"; src = fetchFromGitHub { owner = "skeeto"; repo = "emacsql"; - rev = "1b37570bf5813e160fa18a766e20dfa690910519"; - sha256 = "1pq6316c2kn9idmdyq44khb1r2zj46kkclkqbrrcf7w2505wvkm0"; + rev = "e3bc9b105f6f2de514dd689c8fa8f74f1d610a04"; + sha256 = "03258c2lqrl8c2jy3dvxsbbhrgsysbciq9bay4iazgcvgwg2l2my"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9cc47c05fb0d282531c9560252090586e9f6196e/recipes/emacsql"; @@ -17819,8 +17855,8 @@ src = fetchFromGitHub { owner = "skeeto"; repo = "emacsql"; - rev = "1b37570bf5813e160fa18a766e20dfa690910519"; - sha256 = "1pq6316c2kn9idmdyq44khb1r2zj46kkclkqbrrcf7w2505wvkm0"; + rev = "e3bc9b105f6f2de514dd689c8fa8f74f1d610a04"; + sha256 = "03258c2lqrl8c2jy3dvxsbbhrgsysbciq9bay4iazgcvgwg2l2my"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9cc47c05fb0d282531c9560252090586e9f6196e/recipes/emacsql-mysql"; @@ -17840,8 +17876,8 @@ src = fetchFromGitHub { owner = "skeeto"; repo = "emacsql"; - rev = "1b37570bf5813e160fa18a766e20dfa690910519"; - sha256 = "1pq6316c2kn9idmdyq44khb1r2zj46kkclkqbrrcf7w2505wvkm0"; + rev = "e3bc9b105f6f2de514dd689c8fa8f74f1d610a04"; + sha256 = "03258c2lqrl8c2jy3dvxsbbhrgsysbciq9bay4iazgcvgwg2l2my"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9cc47c05fb0d282531c9560252090586e9f6196e/recipes/emacsql-psql"; @@ -17857,12 +17893,12 @@ emacsql-sqlite = callPackage ({ cl-generic, cl-lib ? null, emacs, emacsql, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "emacsql-sqlite"; - version = "20170410.1218"; + version = "20170806.1551"; src = fetchFromGitHub { owner = "skeeto"; repo = "emacsql"; - rev = "1b37570bf5813e160fa18a766e20dfa690910519"; - sha256 = "1pq6316c2kn9idmdyq44khb1r2zj46kkclkqbrrcf7w2505wvkm0"; + rev = "e3bc9b105f6f2de514dd689c8fa8f74f1d610a04"; + sha256 = "03258c2lqrl8c2jy3dvxsbbhrgsysbciq9bay4iazgcvgwg2l2my"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9cc47c05fb0d282531c9560252090586e9f6196e/recipes/emacsql-sqlite"; @@ -18004,12 +18040,12 @@ embrace = callPackage ({ cl-lib ? null, expand-region, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "embrace"; - version = "20170413.1110"; + version = "20171031.1133"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "embrace.el"; - rev = "a57b4be5d60daf8c176f9bd35770540c2d3963c9"; - sha256 = "0sn81a7f8g5i4q74byfkj0jlg4aj0rxpfvx9sqv8azcg6wq2f65l"; + rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2"; + sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6/recipes/embrace"; @@ -18064,20 +18100,21 @@ license = lib.licenses.free; }; }) {}; - emms = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { + emms = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "emms"; - version = "20170301.1406"; + version = "20171020.1349"; src = fetchgit { url = "https://git.savannah.gnu.org/git/emms.git"; - rev = "0cd9ea411391c9049f4fbcd5d9164ba11b73fe56"; - sha256 = "1g9jrv23bzwlafrsywdzzc4g79v2a7lm37644cfnmdma8a8ywrh5"; + rev = "88fecd0234da595843ce6be4d3f9f2b755ff612d"; + sha256 = "0ycm2lggljhzrb10r3c322c7bb580gk125x9nvpvjrvsp74p8im0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms"; sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94"; name = "emms"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/emms"; license = lib.licenses.free; @@ -18149,12 +18186,12 @@ emms-player-mpv = callPackage ({ emms, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "emms-player-mpv"; - version = "20161204.633"; + version = "20170628.303"; src = fetchFromGitHub { owner = "dochang"; repo = "emms-player-mpv"; - rev = "ce142304d1fe6b096b9b984e40e55c8cc54217c1"; - sha256 = "1s8jmkcr11fp93hmyxq7c781lx7krc5xsk99ar0h50v2hpnmzgbb"; + rev = "8c72282c98f9b10601e9a6901277040cda4b33aa"; + sha256 = "1h37kqhsi1x5xgxfp1i72vfdx5c2klblzmphf6mih3fvw3pcyxi6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9679cb8d4b3b9dce1e0bff16647ea3f3e02c4189/recipes/emms-player-mpv"; @@ -18170,12 +18207,12 @@ emms-player-mpv-jp-radios = callPackage ({ cl-lib ? null, emacs, emms, emms-player-simple-mpv, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "emms-player-mpv-jp-radios"; - version = "20170330.904"; + version = "20171002.723"; src = fetchFromGitHub { owner = "momomo5717"; repo = "emms-player-mpv-jp-radios"; - rev = "7c3dc98e86a178c217bec74fb1e5da7de00fded9"; - sha256 = "0xdqi3fi26pj166z2f1fpl9ckdma9rsck324ha343r2y3snfzch0"; + rev = "dcf79a7570ff4031373991f9fc838ddc5f598006"; + sha256 = "0mq6k6qgqv08k421wjk69ma8m7m29yfmwh2bsphxj1pa2h1y6h2n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/09ba6da5057061f055d4a3212d167f9666618d4f/recipes/emms-player-mpv-jp-radios"; @@ -18191,12 +18228,12 @@ emms-player-simple-mpv = callPackage ({ cl-lib ? null, emacs, emms, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "emms-player-simple-mpv"; - version = "20160924.825"; + version = "20170930.2216"; src = fetchFromGitHub { owner = "momomo5717"; repo = "emms-player-simple-mpv"; - rev = "bcc056364df5f405716006a8b7bb90102a57f62f"; - sha256 = "0kz31qsn3nrpi8r31nlxlkkkah0qcdkq9a9i9ypv4ky7pvnzx6m5"; + rev = "1af7838037c86872e897bea872d279ff080c28c6"; + sha256 = "1xgkpw89pyn4p37l5rz9dw8yg065slzq8l5z69n6nam9hndcnjsh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/emms-player-simple-mpv"; @@ -18338,12 +18375,12 @@ emojify = callPackage ({ emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, seq }: melpaBuild { pname = "emojify"; - version = "20170401.954"; + version = "20171018.744"; src = fetchFromGitHub { owner = "iqbalansari"; repo = "emacs-emojify"; - rev = "4f365dc562c8c5642719faf85b7536278c561d2e"; - sha256 = "0j3ydg2n6dq77qpyhyqdkbxhfhzmml5b5h8cghsx0i5267grssph"; + rev = "001c3adcc521223f6b53a2243635528b2cb7f7e8"; + sha256 = "0hsrlzx8bslzhpipryxxqrdaiw66cgak14p8v47l0ylvwmxxqn13"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/488d2751b5fd3bf00f5a6f0545530f44563b86d7/recipes/emojify"; @@ -18380,12 +18417,12 @@ emr = callPackage ({ cl-lib ? null, clang-format, dash, emacs, fetchFromGitHub, fetchurl, iedit, lib, list-utils, melpaBuild, paredit, popup, projectile, redshank, s }: melpaBuild { pname = "emr"; - version = "20170109.1526"; + version = "20170811.1057"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "emacs-refactor"; - rev = "07e0b41fe080536e8a69301ff1c692f2871bee2f"; - sha256 = "1ckbc2ziw31cqal9hmc6n6gmncwficzw5rwwdcy4wj7f7w3xkr5z"; + rev = "d7009b30be810af6bb33c7d99a9b320e2aaeb698"; + sha256 = "1hx5bv1banrnsb9wrnn57b4wj981qpvnx66px7h304yr95x8bls4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2cd2ebec5bd6465bffed284130e1d534f52169a9/recipes/emr"; @@ -18452,43 +18489,43 @@ license = lib.licenses.free; }; }) {}; - engine-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + engine-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "engine-mode"; - version = "20161104.650"; + version = "20170812.2007"; src = fetchFromGitHub { owner = "hrs"; repo = "engine-mode"; - rev = "9a1271b0051b9c939a63fa395cda2b5b64c5f36b"; - sha256 = "1nvf7anv2yplfhs4xbvrxdgd3mb41mzv4y1119lrqfvhsfd07ii5"; + rev = "408932727bb723017eaf6338e50cb6d1266b8df8"; + sha256 = "1wl172ldmdw6gcdzbbf7dln7m55112kq42jzs42xbihm0v1x8xlb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ea1b5dfb6628cf17e77369f25341835aad425f54/recipes/engine-mode"; sha256 = "1gg7i93163m7k7lr3pnal1svymnhzwrfpfcdc0798d7ybv26gg8c"; name = "engine-mode"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/engine-mode"; license = lib.licenses.free; }; }) {}; - enh-ruby-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + enh-ruby-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "enh-ruby-mode"; - version = "20160817.1711"; + version = "20170822.1647"; src = fetchFromGitHub { owner = "zenspider"; repo = "enhanced-ruby-mode"; - rev = "5493f9fde48557d6aaaf38dd63adfdd8538496ff"; - sha256 = "1nm304bg3k38s1gi21x7n6g8228fnyp91yb9p1i39hfckxjynq39"; + rev = "cc8e64baf7f7bcef2db5b7353ddda9d9733a11cc"; + sha256 = "1bps5ld798av9nqkjsv7mnj8blnyp30dh809q0fk9qnwylpj74yy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cd1ac1ce69b77b11f34c4175611a852e7ec0806c/recipes/enh-ruby-mode"; sha256 = "0r486yajjf7vsaz92ypxpfmz2nsvw9giffpxb9szj7fcry3nfdns"; name = "enh-ruby-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/enh-ruby-mode"; license = lib.licenses.free; @@ -18497,12 +18534,12 @@ enlive = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "enlive"; - version = "20150824.549"; + version = "20170725.717"; src = fetchFromGitHub { owner = "zweifisch"; repo = "enlive"; - rev = "0f6646adda3974e7fe9a42339a4ec3daa532eda5"; - sha256 = "0vd7zy06nqb1ayjlnf2wl0bfv1cqv2qcb3cgy3zr9k9c4whcd8jh"; + rev = "604a8ca272b6889f114e2b5a13adb5b1dc4bae86"; + sha256 = "1iwfb5hxhnp4rl3rh5yayik0xl2lg82klxkvqf29536pk8ip710m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/388fa2580e687d9608b11cdc069841831b414b29/recipes/enlive"; @@ -18526,8 +18563,8 @@ sha256 = "1qimqrvk0myqfi2l3viigkx1ld90qpjgi1gs6xhw2g51r8x4i3in"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1cb55fa7c9bf6a7004011cb809b65bd430d83b31/recipes/eno"; - sha256 = "0k4n4vw261v3bcxg7pqhxr99vh673l963yjridl0dp1663gcrfpk"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a63b22f357b2d08b12fb86c27261ab4d687c5f7f/recipes/eno"; + sha256 = "1pcbvka3g32j1a2j7slw4jm80qpsk3ldziy5n4l02xpnqw6iwy6q"; name = "eno"; }; packageRequires = [ dash edit-at-point ]; @@ -18560,12 +18597,12 @@ ensime = callPackage ({ company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s, sbt-mode, scala-mode, yasnippet }: melpaBuild { pname = "ensime"; - version = "20170401.257"; + version = "20171027.1433"; src = fetchFromGitHub { owner = "ensime"; repo = "ensime-emacs"; - rev = "bb09141e7e2a25947f891008cf6036525c8ed484"; - sha256 = "15r76hmibpyvz87mwi9qzyn63l7k4ab5bhx5g5ziaak8q3vwwibl"; + rev = "483e94546d9b1de5841b8853882d5644cc419479"; + sha256 = "0dd6agcjpncd3vkdx405ql03rpfacwda0njcz69f1cp7z8rc5cdz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/502faab70af713f50dd8952be4f7a5131075e78e/recipes/ensime"; @@ -18635,8 +18672,8 @@ src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-epc"; - rev = "76fe6847a341f78c635164c18908a0b691f7212c"; - sha256 = "11z08y61xd00rlw5mcyrix8nx41mqs127wighhjsxsyzbfqydxdr"; + rev = "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"; + sha256 = "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc29a8d518ce7a584277089bd4654f52ac0f358/recipes/epc"; @@ -18673,12 +18710,12 @@ epkg = callPackage ({ closql, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "epkg"; - version = "20170301.856"; + version = "20171024.651"; src = fetchFromGitHub { owner = "emacscollective"; repo = "epkg"; - rev = "deb9affaadce11c356df53b6b62ab376ef652d16"; - sha256 = "1515gv9bhjwbmkbz6sivq5zhpalvfb0ias4qia9anz9npqfx24y0"; + rev = "6114b78b84cd8a96a117b7652d1e5138eee4b896"; + sha256 = "1fmvy8h3ng2ykfmr2n0zms2h3csq24f23ldf5zdxyg34riag4nl2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/epkg"; @@ -18698,8 +18735,8 @@ src = fetchFromGitHub { owner = "cask"; repo = "epl"; - rev = "a5ad061d0a5eb42f66c384e55d102da7d52c96b0"; - sha256 = "0s4k2grikhibd075435giv3bmba1mx71ndxlr0k1i0q0xawpyyb4"; + rev = "83797835f729f39b80acba4c7e83d73a2e410e26"; + sha256 = "1rgxvmz9nv7922c30xz8ax3cwj8mmwxfni3xjwnhpfa744in4441"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c6cf24e86d8865bd2e4b405466118de1894851f/recipes/epl"; @@ -18882,12 +18919,12 @@ erc-image = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "erc-image"; - version = "20150914.314"; + version = "20170909.312"; src = fetchFromGitHub { owner = "kidd"; repo = "erc-image.el"; - rev = "270a60706e3e0669350bb7aaea465570ef5074cf"; - sha256 = "03r13x2hxy4hk0n0ri5wld8rp8frx4j3mig6mn2v25k0cr52689f"; + rev = "15805aa7ed4b13eeaaa4ec294443ef0f9d21c0c2"; + sha256 = "0ja8iv4wp58xab190mf3pj1bbaz25w8pvns03ayajzrflpkhjs79"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/erc-image"; @@ -18987,12 +19024,12 @@ erc-twitch = callPackage ({ erc ? null, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "erc-twitch"; - version = "20160522.859"; + version = "20170426.2306"; src = fetchFromGitHub { owner = "vibhavp"; repo = "erc-twitch"; - rev = "c1ece5d18a2d13a08e8f764271be9e21a9bdddc5"; - sha256 = "094pzznjiv33lbjjg7yfjngc5hrphjj5j2l6jjy7fd62vh4m9jxk"; + rev = "53c6af0cb72e56d897d30a40e7e5066668d6b5ec"; + sha256 = "0qirx38czv8m7sgj3rm1zncmyd8z6k4xhd8ixwxl7nigfpqvvv4c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/46f8640b24bade45cc729eeb370adf959f99526f/recipes/erc-twitch"; @@ -19092,12 +19129,12 @@ ereader = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, xml-plus }: melpaBuild { pname = "ereader"; - version = "20170417.603"; + version = "20170809.2201"; src = fetchFromGitHub { owner = "bddean"; repo = "emacs-ereader"; - rev = "141a50f2fbac5b7edd59ad5e899aa14c719e9ed5"; - sha256 = "08kcwldjwk7jksbhzzdyq96jchhniw56rg8hvahc6az2vra3qcb1"; + rev = "f3bbd3f13195f8fba3e3c880aab0e4c60430dcf3"; + sha256 = "18yqqqxsivnq2m8mxz7ifp0bfmn3q9m11w3abryxg2snh4vb5sy6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ereader"; @@ -19155,12 +19192,12 @@ ergoemacs-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, undo-tree }: melpaBuild { pname = "ergoemacs-mode"; - version = "20170328.832"; + version = "20171030.738"; src = fetchFromGitHub { owner = "ergoemacs"; repo = "ergoemacs-mode"; - rev = "87fe85ac20a6ac32b41df5e7464d6ace5528445b"; - sha256 = "0s2yf8hkigbzp5rhkznlkg4jqx3darj4i7h3dpbajc2lnc1c9nmc"; + rev = "3ce23bba3cb50562693860f87f3528c471d603ba"; + sha256 = "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/02920517987c7fc698de9952cbb09dfd41517c40/recipes/ergoemacs-mode"; @@ -19197,12 +19234,12 @@ erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "erlang"; - version = "20170309.216"; + version = "20170913.604"; src = fetchFromGitHub { owner = "erlang"; repo = "otp"; - rev = "a5b52a94e67ec18f9f5c276f8387d27ab6c32c3b"; - sha256 = "157jfq86xlq7kcbkrsvg9ybb3z3i0dh9lgif4z5kglxwr43vgrc4"; + rev = "a51424af47f879e776b9344be813a03d2a4bcb5b"; + sha256 = "18cyr3pmzwab6zqijl3c6h772wzkl1qh44j87p16hcn42sip9jz1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang"; @@ -19284,8 +19321,8 @@ version = "20161018.1217"; src = fetchgit { url = "https://bitbucket.org/olanilsson/ert-junit"; - rev = "e1d7b795176dceae40adb15c28717276c00269e4"; - sha256 = "0d6ab0f22sing9cimpc86yydvyzb3z3s36372x082pg62ilrj0pi"; + rev = "c4cd27b60f9e7ccd05fd8a2097cde947eb250599"; + sha256 = "0zm71kv4wxs6yf70qwrfavxc1845bg4aqqk36zypy17g1x40bms7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/27c627eacab54896a1363dbabc56250a65343dd8/recipes/ert-junit"; @@ -19322,12 +19359,12 @@ ert-runner = callPackage ({ ansi, commander, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: melpaBuild { pname = "ert-runner"; - version = "20161027.159"; + version = "20170816.1112"; src = fetchFromGitHub { owner = "rejeep"; repo = "ert-runner.el"; - rev = "10628b8b90294077174f78e7b75e548f2a4b6f78"; - sha256 = "0qq7yml7zlbgvfsdiai8qbvlalh42dghm2ahv9ql9xif3sqjcjiw"; + rev = "edc21c0d473a16f0130e43962052db2123bb584b"; + sha256 = "0ihvdcys73l16z180602k6nw9hyirn874li6fd9dp81zqmd9his4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0a1acc68f296e80b6ed99a1783e9f67be54ffac9/recipes/ert-runner"; @@ -19364,16 +19401,16 @@ es-mode = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, request, s, spark }: melpaBuild { pname = "es-mode"; - version = "20170410.354"; + version = "20170915.801"; src = fetchFromGitHub { owner = "dakrone"; repo = "es-mode"; - rev = "25a7361365d25ad6823b99913be72d1b724083b3"; - sha256 = "0lqxk54443x0ccxr745k5dlq6zh4kqc1dmnhh6dqcnfyc4amqs0v"; + rev = "511eaf59123c2dc4f900cd31d3c30c5bf98599ea"; + sha256 = "1ldyf39z7faizbg2nzh2myd5yld9iwxi9r5260sp1dv0ab2im4gy"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/85445b59329bfd81a3fd913d7d6fe7784c31744c/recipes/es-mode"; - sha256 = "1541c7d8gbi4mgxwk886hgsxhq7bfx8is7hjjg80sfn40z6kdwcp"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/9912193f73c4beae03b295822bf41cb2298756e2/recipes/es-mode"; + sha256 = "0zp84k5idqkrvc9qci49ains0b86kpk97lk1jcwyj75s4xsfyp1y"; name = "es-mode"; }; packageRequires = [ cl-lib dash request s spark ]; @@ -19406,12 +19443,12 @@ esa = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esa"; - version = "20160430.2340"; + version = "20170427.845"; src = fetchFromGitHub { owner = "nabinno"; repo = "esa.el"; - rev = "b944078e190f050f8312eb7ea91dab4d049ca080"; - sha256 = "1rxfqj46zg3xgg7miflgsb187xa9fpwcvrbkqj41g8lvmycdnm0a"; + rev = "8bd011cd1861113f54ad155d3c62725e1dcd37e7"; + sha256 = "1a5mrz3m0gy5r7dcw31s488jgfhrp4axcnsmma40q2x3harp0hsk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/esa"; @@ -19427,12 +19464,12 @@ escreen = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "escreen"; - version = "20091203.1013"; + version = "20170613.1534"; src = fetchFromGitHub { owner = "emacsmirror"; repo = "escreen"; - rev = "e3fd46225fec70943024d950c6b6c2eb88e00b96"; - sha256 = "0id7820vjbprlpprj4fyhylkjvx00b87mw4n7jnxn1gczvjgafmc"; + rev = "153dc05b2b7e6e2d4cbd7b6cbe8b10d6a70f73f3"; + sha256 = "0xz3dkvgrbgv91dxgdfcir9zld5qsqpzrmp4q6fxqa548advn9ak"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c64c21a42fd8436bd60e490980ad4ed824b212d1/recipes/escreen"; @@ -19469,12 +19506,12 @@ esh-help = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esh-help"; - version = "20140107.222"; + version = "20170829.2111"; src = fetchFromGitHub { owner = "tom-tan"; repo = "esh-help"; - rev = "3dc15f2f6086d4e4da977468fda67229a859c927"; - sha256 = "1yfvdx763xxhxf2r6kjjjyafaxrj1lpgrz1sgbhzkyj6nspmm9ms"; + rev = "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6"; + sha256 = "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ab94c66d1ed7cfdbc437ee239984ba70408fd28a/recipes/esh-help"; @@ -19508,6 +19545,27 @@ license = lib.licenses.free; }; }) {}; + eshell-bookmark = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eshell-bookmark"; + version = "20170922.814"; + src = fetchFromGitHub { + owner = "Fuco1"; + repo = "eshell-bookmark"; + rev = "deda4b848b2fb979dbe73ead2cb866610e3596ed"; + sha256 = "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e7bf4702a907727990fcc676980f2b219e22ab0c/recipes/eshell-bookmark"; + sha256 = "1bybxlq1h5chrjxqjb23kq8dmgw2xrjwkrnvpbphblqzpdy5ck0s"; + name = "eshell-bookmark"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/eshell-bookmark"; + license = lib.licenses.free; + }; + }) {}; eshell-did-you-mean = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-did-you-mean"; @@ -19532,12 +19590,12 @@ eshell-fixed-prompt = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "eshell-fixed-prompt"; - version = "20170108.1301"; + version = "20170804.635"; src = fetchFromGitHub { owner = "mallt"; repo = "eshell-fixed-prompt-mode"; - rev = "0b1d7cc05a7f59e8c06c321401cea86c6cb068af"; - sha256 = "0kr9nv9dd2i4ar6mx4bjhid4sxsvvgx713bajia4jsby34jbgfi2"; + rev = "4351b214de6d4e8e45279930448e2f93b491848e"; + sha256 = "1zx3zn28m5dnvsnkpqd26szv9yzplnb6wyp9vfjfs3hnasrizbxc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eshell-fixed-prompt"; @@ -19574,12 +19632,12 @@ eshell-git-prompt = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-git-prompt"; - version = "20170316.1051"; + version = "20170909.752"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "eshell-git-prompt"; - rev = "ec246fa4c27ecb7df10c93b0710e6a64fa5ef4c9"; - sha256 = "0dc1d6z8m3dvgqvp16nsw84g4fwzqv3nh21k1v2mr3iy8nmdf0l2"; + rev = "b6bb2d7bd4e393b4170b29891cfefb72ae020aab"; + sha256 = "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5272280b19579c302ba41b53c77e42bc5e8ccbda/recipes/eshell-git-prompt"; @@ -19595,12 +19653,12 @@ eshell-prompt-extras = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-prompt-extras"; - version = "20160926.1723"; + version = "20171020.2207"; src = fetchFromGitHub { owner = "hiddenlotus"; repo = "eshell-prompt-extras"; - rev = "9825db1b9326e106f821364ae01ec9c7dbdf6d18"; - sha256 = "1zijgwqm9j25ayiy4p5gl3xsrgv10l85j2p317i8bx9hn3v9rk5a"; + rev = "9b1a49853909c4fae95d32bb9a68cace471c161e"; + sha256 = "03sr68mfi52ajqb6d9k3lpcrapjkqx9yynpfwin9y2328pmriaib"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/eshell-prompt-extras"; @@ -19616,12 +19674,12 @@ eshell-up = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-up"; - version = "20170108.749"; + version = "20170425.1037"; src = fetchFromGitHub { owner = "peterwvj"; repo = "eshell-up"; - rev = "e30081fdfb20e380bdcd00b04fcca41aa2bc57af"; - sha256 = "1xq1y6ddq9hxcc13wzj55snc7dg75y1z78f5bhnm9ps3ww7nmc9s"; + rev = "9c100bae5c3020e8d9307e4332d3b64e7dc28519"; + sha256 = "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eshell-up"; @@ -19679,12 +19737,12 @@ eslintd-fix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eslintd-fix"; - version = "20170313.1943"; + version = "20170711.552"; src = fetchFromGitHub { owner = "aaronjensen"; repo = "eslintd-fix"; - rev = "afa5cd1c1fb644a918e410ef396392b841146632"; - sha256 = "04ixmv1y7zi32xwywn4dz0nvsvpmdk2m80y9fbaxi5skkx9r30g0"; + rev = "895d70be11ccdbcdf0b44d5ae2a85d4ccac2920c"; + sha256 = "1h43l4jvp3wbyyda3745m6c6ik6pn4k7pmq94ia9fbp4zqh4hsvr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c72d2b3ee9b8066d51d09e165e58e9846ca879cc/recipes/eslintd-fix"; @@ -19700,12 +19758,12 @@ espresso-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "espresso-theme"; - version = "20130228.2348"; + version = "20170716.813"; src = fetchFromGitHub { owner = "dgutov"; repo = "espresso-theme"; - rev = "c3a524e873f33923fe511791197a66dea5156687"; - sha256 = "0ir7j4dgy0fq9ybixaqs52kiqk73p9v6prgqzjs8nyicjrpmnpyq"; + rev = "e79c5c14732b7e34aab75dbcc968839536536c59"; + sha256 = "0jdyxyc6mk0vh35wgic8ikvs9cid7b5ffqx94pkg1kpridm2wrzc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/27c929ec2eac0459c7018019702599e09ac908fd/recipes/espresso-theme"; @@ -19725,8 +19783,8 @@ src = fetchFromGitHub { owner = "ecukes"; repo = "espuds"; - rev = "7fc312184348df55d19d06914605356885674354"; - sha256 = "1vx1b1pyi2xpfl822mskzvh943rxp9pyr915fnx5pjp58hjwwf3h"; + rev = "444285cde99860b50b4c9a2e1c6a25e4db8d9adf"; + sha256 = "0nwgh9nrr85n6ix60r6z58rw2078wkzkqqfszq2sr7wmad6kxspx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14cf66e6929db2a0f377612e786aaed9eb12b799/recipes/espuds"; @@ -19784,12 +19842,12 @@ ess = callPackage ({ fetchFromGitHub, fetchurl, julia-mode, lib, melpaBuild }: melpaBuild { pname = "ess"; - version = "20170327.248"; + version = "20171030.820"; src = fetchFromGitHub { owner = "emacs-ess"; repo = "ESS"; - rev = "dd623f1c67c54fb1f9c20403fa976cb1272a5074"; - sha256 = "033rsdxrmcjcmjpdkbqykr0zir7ycy0f706q5x6m3vn13wm5hgfb"; + rev = "da48f2fff367191796b976100c72277bdfb504d2"; + sha256 = "000rxx14fw1n4k3i6lsvy0bc249pdyx9m1pnpv3x02n0wvmfdq62"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/12997b9e2407d782b3d2fcd2843f7c8b22442c0a/recipes/ess"; @@ -19823,27 +19881,6 @@ license = lib.licenses.free; }; }) {}; - ess-R-object-popup = callPackage ({ ess, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: - melpaBuild { - pname = "ess-R-object-popup"; - version = "20130302.336"; - src = fetchFromGitHub { - owner = "myuhe"; - repo = "ess-R-object-popup.el"; - rev = "7e1f601bfba72de0fda44d9c82f96028ecbb9948"; - sha256 = "0q8pbaa6wahli6fh0kng5zmnypsxi1fr2bzs2mfk3h8vf4nikpv0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8783caab9019623ade5c369a4713eba996507bd0/recipes/ess-R-object-popup"; - sha256 = "1dxwgahfki6d6ywh85ifk3kq6f2a1114kkd8xcv4lcpzqykp93zj"; - name = "ess-R-object-popup"; - }; - packageRequires = [ ess popup ]; - meta = { - homepage = "https://melpa.org/#/ess-R-object-popup"; - license = lib.licenses.free; - }; - }) {}; ess-smart-equals = callPackage ({ emacs, ess, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ess-smart-equals"; @@ -19910,12 +19947,12 @@ esup = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esup"; - version = "20170125.43"; + version = "20170923.1328"; src = fetchFromGitHub { owner = "jschaf"; repo = "esup"; - rev = "a63ab0cd57a37317256b15a3f5f30c2b11d92c25"; - sha256 = "07bpcihmzaf7av2sbzs0pr0cw21xqr3nnalj3cwxv7d6yhc8g4qf"; + rev = "a589005a9a888537deef94d6fe38a9b8790c97c7"; + sha256 = "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9d2948a42da5d4864404d2d11a924a4f235fc3b/recipes/esup"; @@ -19931,16 +19968,16 @@ esxml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esxml"; - version = "20160703.1417"; + version = "20170903.150"; src = fetchFromGitHub { owner = "tali713"; repo = "esxml"; - rev = "fd0f0185cd579b00c3d76d2c383cd33fe642bb93"; - sha256 = "0azwfxzxghxhzwal4al0lngm0w3q035jyvm3wj2aaml2dibsi3pb"; + rev = "6d58e047b7c1e3e8cab87cf7ee15e039e8a22510"; + sha256 = "0bkbp3bycb4vrk0y5n7013yqqzz7rjvfwkr9lppa6sixilhc8h66"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/esxml"; - sha256 = "0v63ihgg2db3648s2xygcky9s0vx9byjjpbhlgjy5j159w2w53vh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/db6556fe1b2403d1bcdade263986fd0faf0d9087/recipes/esxml"; + sha256 = "1375gryii984l33gc8f8yhl3vncjmw1w9k6xpvjgmnpx2fwr1vbq"; name = "esxml"; }; packageRequires = []; @@ -19970,51 +20007,15 @@ license = lib.licenses.free; }; }) {}; - etags-select = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "etags-select"; - version = "20130824.500"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/etags-select.el"; - sha256 = "0gmlmxlwfsfk5axn3x5cfvqy9bx26ynpbg50mdxiljk7wzqs5dyb"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5875d00419666388acbcb8a4f392308e7576da0b/recipes/etags-select"; - sha256 = "0j6mxj10n7jf087l7j86s3a8si5hzpwmvrpqisfvlnvn6a0rdy7h"; - name = "etags-select"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/etags-select"; - license = lib.licenses.free; - }; - }) {}; - etags-table = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "etags-table"; - version = "20130824.457"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/etags-table.el"; - sha256 = "0apm8as606bbkpa7i1hkwcbajzsmsyxn6cwfk9dkkll5bh4vglqf"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c3efc1791df5658ca5bba4907f2a22c2cabfd3c8/recipes/etags-table"; - sha256 = "1jzij9jknab42jmx358g7f1c0d8lsp9baxbk3xsy7w4nl0l53d84"; - name = "etags-table"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/etags-table"; - license = lib.licenses.free; - }; - }) {}; ethan-wspace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ethan-wspace"; - version = "20160317.920"; + version = "20170507.1330"; src = fetchFromGitHub { owner = "glasserc"; repo = "ethan-wspace"; - rev = "b8eae49ed3e7f646c16234970af5663e3090e720"; - sha256 = "1xqc4lqzirpmr21w766g8vmcvvsq8b3hv9i7r27i5x1g0j4jabja"; + rev = "e055ee6730c0b03525d32e67511ef6c51e4c29e4"; + sha256 = "0ik3y60xd3ap1pg5dr5ab6bq4qh8gblpgz1iiprmv7acr3ckzc41"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9454f3a58e3416fa60d8411b0db19c408935408f/recipes/ethan-wspace"; @@ -20027,22 +20028,22 @@ license = lib.licenses.free; }; }) {}; - euslisp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + euslisp-mode = callPackage ({ emacs, exec-path-from-shell, fetchFromGitHub, fetchurl, helm-ag, lib, melpaBuild, s }: melpaBuild { pname = "euslisp-mode"; - version = "20170315.2046"; + version = "20170830.1229"; src = fetchFromGitHub { owner = "iory"; repo = "euslisp-mode"; - rev = "fbaa35e77eee91da5ce86fbf5342648722b97d7c"; - sha256 = "0y9l6h1824a7sd4w26s1ql8ffim42pcz8szadmwk2v4p64cya76l"; + rev = "db62a2d148482317794727982576494596365a55"; + sha256 = "187ij4s7mzppgmh0ifny70mw8w31nq86rhsrmnflz26iywnkp8x2"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b09a7c4b73203d75c5260f1d08845236cbbeae46/recipes/euslisp-mode"; - sha256 = "0m04a8k2z7inhfpqz68hv56h352ikcd39fg65dqvj79md05yila9"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b04fffe5e52f26e92930a112a64531228f94e340/recipes/euslisp-mode"; + sha256 = "0v92lry9ynkvsvx060njaw1j5lj9sb1i3srs2hfqqwyqni5ldkri"; name = "euslisp-mode"; }; - packageRequires = []; + packageRequires = [ emacs exec-path-from-shell helm-ag s ]; meta = { homepage = "https://melpa.org/#/euslisp-mode"; license = lib.licenses.free; @@ -20072,12 +20073,12 @@ eval-in-repl = callPackage ({ ace-window, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, paredit }: melpaBuild { pname = "eval-in-repl"; - version = "20170217.1432"; + version = "20170730.1445"; src = fetchFromGitHub { owner = "kaz-yos"; repo = "eval-in-repl"; - rev = "d96a134abe65c736bfaf0a78d1f899ea7cf0fee5"; - sha256 = "00ilv46ybpw5arfqi3pk7gjabkac76siqpgj3ca47s6vlmz41anv"; + rev = "7e2b42570b449b2a3c2922f3036a027d1e393a60"; + sha256 = "0x97flv356kd7j6wbhacz0lmsrdd9as87b0n6nliq5n0y30my8dy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0bee5fb7a7874dd20babd1de7f216c5bda3e0115/recipes/eval-in-repl"; @@ -20153,19 +20154,40 @@ license = lib.licenses.free; }; }) {}; + eve-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild, polymode }: + melpaBuild { + pname = "eve-mode"; + version = "20170822.1531"; + src = fetchFromGitHub { + owner = "witheve"; + repo = "emacs-eve-mode"; + rev = "a4661114d9c18725691b76321d72167ca5a9070a"; + sha256 = "19s6cid42q0lm2w94a7f6sxvmy3zpjdj5r5dbwcxxp5n3qfs7nip"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e0f197adfe64ef88d90d24dfd6532bf52a5bce0d/recipes/eve-mode"; + sha256 = "1ch50bm452g8k1xnqcbpmpwkmg8amzv7bq0hphk3y0kiqkwd1gdh"; + name = "eve-mode"; + }; + packageRequires = [ emacs markdown-mode polymode ]; + meta = { + homepage = "https://melpa.org/#/eve-mode"; + license = lib.licenses.free; + }; + }) {}; evil = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, goto-chg, lib, melpaBuild, undo-tree }: melpaBuild { pname = "evil"; - version = "20170323.1140"; + version = "20171031.22"; src = fetchFromGitHub { owner = "emacs-evil"; repo = "evil"; - rev = "273a714e2d073257f6604d03be53c5fd784117c4"; - sha256 = "0vrvfgrl1pdmvphscsf9zyy9yvl25xm53h5k1wiw7v3kb66x7s88"; + rev = "3735da896e6fc2672ee06c68e77d11befb99c9c1"; + sha256 = "01p450ap0dvnnv83cbmasb7avz6jv6xycjg4hczf8485xzq0nmcr"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/514964d788f250e1e7893142bc094c63131bc6a5/recipes/evil"; - sha256 = "044k9p32y4cys3zwdfanr1zddgkxz16ahqspfz7vfszyw8yml1jb"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/440482c0edac8ee8bd4fe22f6bc5c1607f34c7ad/recipes/evil"; + sha256 = "1d36r6mi5nvrwnk4a9338wmhr72fcbrwj0r8gmvivpjdngjy4k39"; name = "evil"; }; packageRequires = [ cl-lib emacs goto-chg undo-tree ]; @@ -20240,12 +20262,12 @@ evil-cleverparens = callPackage ({ dash, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, paredit, smartparens }: melpaBuild { pname = "evil-cleverparens"; - version = "20160611.904"; + version = "20170717.2113"; src = fetchFromGitHub { owner = "luxbock"; repo = "evil-cleverparens"; - rev = "82c920ba04accfd31fa292e11c454d5112b4fd51"; - sha256 = "0ajy5kp2asrg070vzyzgyqs9jnzglm7lvx8fqvgdhpmhzzfckhbi"; + rev = "8c45879d49bfa6d4e414b6c1df700a4a51cbb869"; + sha256 = "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e3b3637d6527b16ea0d606fd87b01004be446b09/recipes/evil-cleverparens"; @@ -20261,12 +20283,12 @@ evil-colemak-basics = callPackage ({ emacs, evil, evil-snipe, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-colemak-basics"; - version = "20170405.1037"; + version = "20170425.509"; src = fetchFromGitHub { owner = "wbolster"; repo = "evil-colemak-basics"; - rev = "207fddde50e36fc3ccd926c69ef7901e938db2ff"; - sha256 = "06r0x6yvwa811sfb9izzld4a460wip7nn6dfxw91i6x8g825h2qd"; + rev = "7844079b47f47bb1dc24c885b0ac2e67524fa960"; + sha256 = "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/945417d19faf492fb678aee3ba692d14e7518d85/recipes/evil-colemak-basics"; @@ -20282,12 +20304,12 @@ evil-colemak-minimal = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-colemak-minimal"; - version = "20160922.226"; + version = "20171006.617"; src = fetchFromGitHub { owner = "bmallred"; repo = "evil-colemak-minimal"; - rev = "5f1db93959359d3efd57abb5a0d06e94dec92556"; - sha256 = "08dfmny7z03h6hbj21f344jv9kpzlzk31j5sd78w1c68mgx9hj6b"; + rev = "6d98b6da60f414524a0d718f76024c26dce742b3"; + sha256 = "0pd05jq4qkw5xx7xqzxzx62fsm77vjz0ry9ayaqgqw5831rbp553"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/828c744062069027f19fe5f2f233179f9149dc16/recipes/evil-colemak-minimal"; @@ -20366,12 +20388,12 @@ evil-ediff = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-ediff"; - version = "20170213.539"; + version = "20170724.1223"; src = fetchFromGitHub { owner = "emacs-evil"; repo = "evil-ediff"; - rev = "4f3b9652e5df58ccc454d970df558f921958894d"; - sha256 = "1nc7xq86v5ns3d47ifwnfm7x7x3qxb18rjqx37mqvga91nz2i1k3"; + rev = "67b0e69f65c196eff5b39dacb7a9ec05bb919c74"; + sha256 = "0f8g07fyzyc8pdwizyj62v0dy65ap885asph83529y0j8wnni8ps"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/50315ec837d2951bf5b2bb75809a35dd7ffc8fe8/recipes/evil-ediff"; @@ -20408,12 +20430,12 @@ evil-escape = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-escape"; - version = "20170115.1343"; + version = "20170913.618"; src = fetchFromGitHub { owner = "syl20bnr"; repo = "evil-escape"; - rev = "b4d44fc5015341e484495fc86b73d09b2ac062ec"; - sha256 = "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"; + rev = "25920fb2f4ef48998eecea433c04096f8d124cfe"; + sha256 = "1nbk0mlfrg8hbw119dpp2a1k2irgz811kcsrwmxv256gkx4pwmfk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/evil-escape"; @@ -20429,12 +20451,12 @@ evil-exchange = callPackage ({ cl-lib ? null, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-exchange"; - version = "20160812.843"; + version = "20170510.1959"; src = fetchFromGitHub { owner = "Dewdrops"; repo = "evil-exchange"; - rev = "8902966aec2709b7e680d13c362d74b7f89b909b"; - sha256 = "1jfjgh75ycm6i01zpnz8y1hp205w61rqbvargk3rp65c34j48dcd"; + rev = "47691537815150715e64e6f6ec79be7746c96120"; + sha256 = "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9b06397c032d24a8da4074ad97cdb30d0c468e20/recipes/evil-exchange"; @@ -20510,6 +20532,27 @@ license = lib.licenses.free; }; }) {}; + evil-goggles = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "evil-goggles"; + version = "20171016.740"; + src = fetchFromGitHub { + owner = "edkolev"; + repo = "evil-goggles"; + rev = "4777cd784953f5e38d76edf458e050605de45bcc"; + sha256 = "1mmkgpmb69c908yx9k7rgs4zvm1cf554bkqiqppkc92ml9gipfk2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/811b1261705b4c525e165fa9ee23ae191727a623/recipes/evil-goggles"; + sha256 = "151xvawyhcjp98skaif08wbxqaw602f51zgwm604hp25a111qmnq"; + name = "evil-goggles"; + }; + packageRequires = [ emacs evil ]; + meta = { + homepage = "https://melpa.org/#/evil-goggles"; + license = lib.licenses.free; + }; + }) {}; evil-iedit-state = callPackage ({ evil, fetchFromGitHub, fetchurl, iedit, lib, melpaBuild }: melpaBuild { pname = "evil-iedit-state"; @@ -20594,15 +20637,36 @@ license = lib.licenses.free; }; }) {}; + evil-ledger = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "evil-ledger"; + version = "20170905.519"; + src = fetchFromGitHub { + owner = "atheriel"; + repo = "evil-ledger"; + rev = "a282fae7921d2648a32c3207413d927d1adda8b8"; + sha256 = "0b8801mpq55x9r0sgm548wb1qn74wk3dydswrxi8bp6ga49k7rhv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/500e99a1b92f0a0c144f843cd7645872034d9fbb/recipes/evil-ledger"; + sha256 = "13idy2kbzhckzfwrjnzjrf8h2881w3v8pmhlcj26xcyf4ch0dq9r"; + name = "evil-ledger"; + }; + packageRequires = [ emacs evil ]; + meta = { + homepage = "https://melpa.org/#/evil-ledger"; + license = lib.licenses.free; + }; + }) {}; evil-lion = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-lion"; - version = "20170417.550"; + version = "20170810.2314"; src = fetchFromGitHub { owner = "edkolev"; repo = "evil-lion"; - rev = "6885d51d8124ce2f6d2a0137659911b3c7d27c8b"; - sha256 = "0qwz9k5zcf8h3iq2ak1pqbdk4zhpr7a911a00sg2xyk83z4zdj24"; + rev = "aaa3874ad54c31b4322ac5bbc63e331498b11d61"; + sha256 = "1aq3ip93sxk05gfgh2zw6zckmkir0viqaqz674fcmsd2rc2051zn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8a7a0691775afec6d2c7be3d6739b55bd1d2053d/recipes/evil-lion"; @@ -20660,12 +20724,12 @@ evil-magit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "evil-magit"; - version = "20161130.847"; + version = "20171018.722"; src = fetchFromGitHub { owner = "emacs-evil"; repo = "evil-magit"; - rev = "9251065b73c5023fc21d56f5b94c505cb7bee52d"; - sha256 = "17jnqd73i680fpmghghadc4d4xlg39xfjx3ra8sll0h1xf4xkspi"; + rev = "a24186be7cc2cdab24b56f6dcc4665eeb8349c1a"; + sha256 = "12hr2w5r2hgagb3hqbi59v73rxpjml5prc3m7dw3wzsm0rf1rwh3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/50315ec837d2951bf5b2bb75809a35dd7ffc8fe8/recipes/evil-magit"; @@ -20702,12 +20766,12 @@ evil-matchit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-matchit"; - version = "20170119.125"; + version = "20170727.1741"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "evil-matchit"; - rev = "277623d8be7bd6ade8f301b9397b88575a0d01b9"; - sha256 = "0bkc90ix8nivqkjkgb6iaq1a0g8dcp91im119dx98l6lxga57qli"; + rev = "dbaae2b7537aadb2e44a8915745ee190768b4b2a"; + sha256 = "1y386wjz23kqfqbbgrwg4fnv2ma21dzk5ppnqd0y5245v388q69n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/aeab4a998bffbc784e8fb23927d348540baf9951/recipes/evil-matchit"; @@ -20723,12 +20787,12 @@ evil-mc = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-mc"; - version = "20170413.2213"; + version = "20170716.1806"; src = fetchFromGitHub { owner = "gabesoft"; repo = "evil-mc"; - rev = "5703e38417071f757f9c71312d99920691135d63"; - sha256 = "1bg7w4ci9vdkdhgn53vijxh4xzqnjbv2317l77z83xx0fm2j12w7"; + rev = "8127c3161a6d990635684a020f708b7914445593"; + sha256 = "10cy5shnd9dl9xkcl7gx4ksbbn2cqjww9ihw7ifawnwpa77bcf43"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/96770d778a03ab012fb82a3a0122983db6f9b0c4/recipes/evil-mc"; @@ -20765,12 +20829,12 @@ evil-mu4e = callPackage ({ dash, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-mu4e"; - version = "20160813.413"; + version = "20170911.122"; src = fetchFromGitHub { owner = "JorisE"; repo = "evil-mu4e"; - rev = "3edf45cbf94bb304a1d99b00fe43e72b86b3ee94"; - sha256 = "1zd6dccsb7f8rsb6nw29a4kp37q4s5d63c73ppi268nn0jsa3f28"; + rev = "64b663c3b31d14c4260921a7ec4b8d475d5ed339"; + sha256 = "1cms5kvgkhaq1gb6yai5ykn3mkb3vjs99b75f7lyl6da89k9kx9w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/332f3f9c6dc106e58345abbc2d8fd99056d518c0/recipes/evil-mu4e"; @@ -20786,12 +20850,12 @@ evil-multiedit = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, iedit, lib, melpaBuild }: melpaBuild { pname = "evil-multiedit"; - version = "20170408.1744"; + version = "20170623.1135"; src = fetchFromGitHub { owner = "hlissner"; repo = "evil-multiedit"; - rev = "615f2ac3539c39d5ec11e4c9ba0958d8a9381090"; - sha256 = "068cymahvpyzn13wnma0lfym0f0vfr36kdq7pl8qmhf8ra7xxq92"; + rev = "e135fd8662406807bc0d9d0f2688e7dbe89b98c8"; + sha256 = "1dw3mf3dckjhnzvwj7jcwlgzkh592njvcg2xbs2wv1456rnnqaz3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/997f5a6999d1add57fae33ba8eb3e3bc60d7bb56/recipes/evil-multiedit"; @@ -20807,12 +20871,12 @@ evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-nerd-commenter"; - version = "20170309.49"; + version = "20170905.653"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "evil-nerd-commenter"; - rev = "cac2f7945fc90f43d1282dfe4aca24ded9f7cd03"; - sha256 = "1zjnscnj0zrxpdjikxwg4fw7m6yb39060cmn24xzs0hmnmbxnw9m"; + rev = "92bee71aa6fbb36299a4e69e710da786f3694637"; + sha256 = "1sxwiar17jvqj7plf7jdpwx9kymabr0dsfl7mbkcxpzvrfdlmp12"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter"; @@ -20867,22 +20931,22 @@ license = lib.licenses.free; }; }) {}; - evil-org = callPackage ({ evil, evil-leader, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + evil-org = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "evil-org"; - version = "20151202.2347"; + version = "20170917.1447"; src = fetchFromGitHub { - owner = "edwtjo"; + owner = "Somelauw"; repo = "evil-org-mode"; - rev = "61319f85979e8768c930983595caa2483c0fb319"; - sha256 = "0pir7a3xxbcp5f3q9pi36rpdpi8pbx18afmh0r3501ynssyjfq53"; + rev = "52bbb105a6a7fa9ead68c56746740b4343ecd6e9"; + sha256 = "1k0akcqbr67lsrj5gkpr9b3nhrf53zd3ksv4sfrapn9xhv13brbi"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/evil-org"; - sha256 = "1306pf5ws7acdanypn3c0r4yh5wxdf0knl6j3hhs4ys9zszd79bw"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1768558ed0a0249421437b66fe45018dd768e637/recipes/evil-org"; + sha256 = "18glpsnpxap4dvnvkl59h9pnwlp20libsfbbkmvrbzsvbdyspg6z"; name = "evil-org"; }; - packageRequires = [ evil evil-leader org ]; + packageRequires = [ emacs evil org ]; meta = { homepage = "https://melpa.org/#/evil-org"; license = lib.licenses.free; @@ -20954,12 +21018,12 @@ evil-replace-with-register = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-replace-with-register"; - version = "20161127.2159"; + version = "20170713.225"; src = fetchFromGitHub { owner = "Dewdrops"; repo = "evil-ReplaceWithRegister"; - rev = "c979aa2f4d730d2a741358e357d18544edd46cd2"; - sha256 = "168qqbsjwblhrq92mw0v1f86d3q1m2f5rh37xikj1bk589c2izp9"; + rev = "91cc7bf21a94703c441cc9212214075b226b7f67"; + sha256 = "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b1bd98aebefc13da5a129d1d3f1c8878e4a70654/recipes/evil-replace-with-register"; @@ -20996,16 +21060,16 @@ evil-search-highlight-persist = callPackage ({ fetchFromGitHub, fetchurl, highlight, lib, melpaBuild }: melpaBuild { pname = "evil-search-highlight-persist"; - version = "20160912.807"; + version = "20170522.2034"; src = fetchFromGitHub { - owner = "juanjux"; + owner = "naclander"; repo = "evil-search-highlight-persist"; - rev = "1b130e771fc9f3bb7c80e1a50c2847a9e024ad09"; - sha256 = "1la7gamv1qd5wsdlxjjx859zciynln3g9lnxq51iylsbfxgc2f7s"; + rev = "979d2dec58d3b9c5ca5fdf4bb802a0209913794e"; + sha256 = "0ak8r7cgz5xnjyfg3w9mwxhvaw8ny3hy0i2bqn3vf5dps649iy7i"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/91361f95852910968b395423e16377c70189fc55/recipes/evil-search-highlight-persist"; - sha256 = "0iia136js364iygi1mydyzwvizhic6w5z9pbwmhva4654pq8dzqy"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/f2e91974ddb219c88229782b70ade7e14f20c0b5/recipes/evil-search-highlight-persist"; + sha256 = "08l8ymrp9vkpwprq9gp4562yvcnd4hfc3z7n4n5lz7h6ffv3zym3"; name = "evil-search-highlight-persist"; }; packageRequires = [ highlight ]; @@ -21017,12 +21081,12 @@ evil-smartparens = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, smartparens }: melpaBuild { pname = "evil-smartparens"; - version = "20161010.322"; + version = "20171101.13"; src = fetchFromGitHub { owner = "expez"; repo = "evil-smartparens"; - rev = "7cde5544934930819e9dcaa1e0db2e3c58f0cd6f"; - sha256 = "0pmw98n32fyqr4qnpl52a7vax4rk8dfq98v66v8400b78j6d0n3q"; + rev = "3a9c2bf24db73c9443d3e2e65ca662df85653f36"; + sha256 = "05g6j5z63gmvi2j9h6iax3dklqk61ds28yq84mkiihp58swwmfpw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/850898fbfc8e0aeb779e8feae56476d989110e79/recipes/evil-smartparens"; @@ -21035,22 +21099,22 @@ license = lib.licenses.free; }; }) {}; - evil-snipe = callPackage ({ cl-lib ? null, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + evil-snipe = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-snipe"; - version = "20170405.1644"; + version = "20170903.603"; src = fetchFromGitHub { owner = "hlissner"; repo = "evil-snipe"; - rev = "c3e5e26c14f4a47daedb4fc48e1b0fb993aa0999"; - sha256 = "009491hskqkvycng70n3mm7zqxlf6jjninddlcbnknyfr44y4xka"; + rev = "69adb46546a871beb54a445cb22652ac276555c1"; + sha256 = "1g6whd2zg880wxxyn269q4b0697aybj1lc936gi7nrxvm6fnaiwc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6748f3febbe2f098761e967b4dc67791186d0aa7/recipes/evil-snipe"; sha256 = "0gcmpjw3iw7rjk86b2k6clfigp48vakfjd1a9n8qramhnc85rgkn"; name = "evil-snipe"; }; - packageRequires = [ cl-lib evil ]; + packageRequires = [ cl-lib emacs evil ]; meta = { homepage = "https://melpa.org/#/evil-snipe"; license = lib.licenses.free; @@ -21080,16 +21144,16 @@ evil-surround = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-surround"; - version = "20170124.1110"; + version = "20171004.600"; src = fetchFromGitHub { - owner = "timcharper"; + owner = "emacs-evil"; repo = "evil-surround"; - rev = "7a0358ce3eb9ed01744170fa8a1e12d98f8b8839"; - sha256 = "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031"; + rev = "822a0f61c3fd7c55cda4e04c8590ae5144401c26"; + sha256 = "0xd87whrznwk1hggb0jrx6n1m5sbj0014qv26qvvc3f11vrrda2x"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/da8b46729f3bd9aa74c4f0ee2a9dc60804aa661c/recipes/evil-surround"; - sha256 = "1bcjxw0yrk2bqj5ihl5r2c4id0m9wbnj7fpd0wwmw9444xvwp8ag"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/2c9dc47a4c837c44429a74fd998fe468c00639f2/recipes/evil-surround"; + sha256 = "0aphv5zinb0lzdx22qbzcr7fn6jbpkdczar7py3df6mzxw5wvcm1"; name = "evil-surround"; }; packageRequires = [ evil ]; @@ -21098,22 +21162,22 @@ license = lib.licenses.free; }; }) {}; - evil-swap-keys = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + evil-swap-keys = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-swap-keys"; - version = "20170221.444"; + version = "20170726.1120"; src = fetchFromGitHub { owner = "wbolster"; repo = "evil-swap-keys"; - rev = "6a2f4db944076439c2cb481c4e9e4e5d736a5ab8"; - sha256 = "0ymxmlx6dfczxkdgsm8g8pz6dhdnb3ay74s2a70jgwqns8yaqv7k"; + rev = "56bc201e265a6bd482a7c41a7c81d2238341ef3a"; + sha256 = "0n0hl0plaghz9rjssabxwfzm46kr6564hpfh6hn8lzla4rf1q5zs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2abff8e3d54ac13c4fe90692a56437844accca25/recipes/evil-swap-keys"; sha256 = "12cx95mjm4ymggidvf41gh3a364z32h655jmhk417v0ga9jk9fv6"; name = "evil-swap-keys"; }; - packageRequires = [ emacs evil ]; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/evil-swap-keys"; license = lib.licenses.free; @@ -21161,6 +21225,27 @@ license = lib.licenses.free; }; }) {}; + evil-test-helpers = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "evil-test-helpers"; + version = "20171002.135"; + src = fetchFromGitHub { + owner = "emacs-evil"; + repo = "evil"; + rev = "3735da896e6fc2672ee06c68e77d11befb99c9c1"; + sha256 = "01p450ap0dvnnv83cbmasb7avz6jv6xycjg4hczf8485xzq0nmcr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/87da8c50f9167ad9c3844b23becb6904f809611d/recipes/evil-test-helpers"; + sha256 = "0l4skyznzgr76z518q22lf90ymlsfcs02w8vqkg8az1nfl3ch7fs"; + name = "evil-test-helpers"; + }; + packageRequires = [ evil ]; + meta = { + homepage = "https://melpa.org/#/evil-test-helpers"; + license = lib.licenses.free; + }; + }) {}; evil-text-object-python = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-text-object-python"; @@ -21185,12 +21270,12 @@ evil-textobj-anyblock = callPackage ({ cl-lib ? null, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-textobj-anyblock"; - version = "20161020.1112"; + version = "20170905.1207"; src = fetchFromGitHub { owner = "noctuid"; repo = "evil-textobj-anyblock"; - rev = "66dd87d10843f99cb4b7f76e55f00fca9dd48ac3"; - sha256 = "0a0vr4nqnigrdblr0wfxzl6n3xv4sfi7w3rdrsq8n4sywfdzwlap"; + rev = "ff00980f0634f95bf2ad9956b615a155ea8743be"; + sha256 = "0wn5lp7kh3ip1bmqi12c9ivpjj0x602h8d7ag39qw36smv4jqvnb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/36b734960313d4cb484cebaac0f112781436631c/recipes/evil-textobj-anyblock"; @@ -21206,12 +21291,12 @@ evil-textobj-column = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, names }: melpaBuild { pname = "evil-textobj-column"; - version = "20151228.1344"; + version = "20170905.1205"; src = fetchFromGitHub { owner = "noctuid"; repo = "evil-textobj-column"; - rev = "d45a0f2831e6da51435abe27294222055f04ab32"; - sha256 = "0nff90v6d97n2xizvfz126ksrf7ngd5rp0j7k7lhbv0v5zcqgxiv"; + rev = "835d7036d0bc9a6e44fc9b7c54ccf2a7c01428cd"; + sha256 = "0g9d62sgcpzvhbrdk4hf3phphfss74mjz6xv4wd9895rzjsziwkf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/de7d6dc0d9c42a89be2959d015efa30960df2de7/recipes/evil-textobj-column"; @@ -21269,12 +21354,12 @@ evil-vimish-fold = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, vimish-fold }: melpaBuild { pname = "evil-vimish-fold"; - version = "20161103.333"; + version = "20171030.451"; src = fetchFromGitHub { owner = "alexmurray"; repo = "evil-vimish-fold"; - rev = "674a8a894e4ae7e7f4b2608b0c9f801a548c69eb"; - sha256 = "1v2yr5q9c239xf002ymgwndmp5yp617rj7shw2zvfl13d7x229sg"; + rev = "4db872d12274fdddf7c6e9d01cf68cbad9cfcf15"; + sha256 = "05phnswbk2r7hdwawzkw6anhkfss9ig8sy469s4vsrqf7cky4gmn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fcd51e24f88ebbbd3fddfc7c6f3b667d5104cf2b/recipes/evil-vimish-fold"; @@ -21311,12 +21396,12 @@ evil-visual-replace = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-visual-replace"; - version = "20170201.1920"; + version = "20171015.2313"; src = fetchFromGitHub { owner = "troyp"; repo = "evil-visual-replace"; - rev = "9bfbaf71898294e25d588a887fb4753641edfbe9"; - sha256 = "00mhqb9rn4hq90x5i44jyq51lg351bv8hdj4c443nxrbldi73k9s"; + rev = "163fc827a1ffc106475da470c37fb26f4cc9b008"; + sha256 = "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/evil-visual-replace"; @@ -21374,12 +21459,12 @@ ewmctrl = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ewmctrl"; - version = "20161104.1833"; + version = "20170921.1917"; src = fetchFromGitHub { owner = "flexibeast"; repo = "ewmctrl"; - rev = "ba1879cc803a63d5a4047ec6f2990e369ae5af3a"; - sha256 = "12h2fgabfmaq1cpr7y7ckyyfgy53ww3v25p2kk5fq77rn40zbniy"; + rev = "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"; + sha256 = "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b2a7679f0961b171bf23080e628ae80f50c446e4/recipes/ewmctrl"; @@ -21416,12 +21501,12 @@ exec-path-from-shell = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "exec-path-from-shell"; - version = "20170304.1309"; + version = "20170508.4"; src = fetchFromGitHub { owner = "purcell"; repo = "exec-path-from-shell"; - rev = "15d07666fb356008e612278f181292e2d2afc5fc"; - sha256 = "0kjsxwadxysx3ccgdwd12k4vj43qjs3zd6z4f8sycbk732x0893d"; + rev = "5e355fbc50913d1ffe48bf86df0bcecd8b369ffb"; + sha256 = "1flkhbyxa7mi97vj4w6c2anzq7qz51sac6yqk308blfvd9z3pf95"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/exec-path-from-shell"; @@ -21437,11 +21522,11 @@ exiftool = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "exiftool"; - version = "20170301.232"; + version = "20170822.1432"; src = fetchgit { url = "https://git.systemreboot.net/exiftool.el/"; - rev = "240ae7b829733d5da1d2e255a3e7f5638f83c745"; - sha256 = "00bkwaydh4j76gpxd77m3pyxrnqhws1rg70r1g7vmgm6h5ah9ndc"; + rev = "3a07dbcb975577734d4abf6d68e1ab83a01951bb"; + sha256 = "10prrwvmc891vkzzgqmz0xd85xgi52ni83ydf0bvhfmcg0wmm0cc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4835a76909d020781021e747fbc341111a94dbfa/recipes/exiftool"; @@ -21454,6 +21539,27 @@ license = lib.licenses.free; }; }) {}; + exotica-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "exotica-theme"; + version = "20171031.426"; + src = fetchFromGitHub { + owner = "jbharat"; + repo = "exotica-theme"; + rev = "478dddaae45a8e2373bf2b868aeece64f1288d91"; + sha256 = "17646sa3pgmlzg2s4yic82hkq1bdiqh1spgp5x2lhqh4643fi62s"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9182f92dd62e2f1775a76699a6c8f9c3e71e9030/recipes/exotica-theme"; + sha256 = "1fzf1zpllkddkq02hvabbi2bh6rnanlyinb6fjwsyh39wvzhsfhs"; + name = "exotica-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/exotica-theme"; + license = lib.licenses.free; + }; + }) {}; expand-line = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "expand-line"; @@ -21478,12 +21584,12 @@ expand-region = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "expand-region"; - version = "20170222.343"; + version = "20170514.1309"; src = fetchFromGitHub { owner = "magnars"; repo = "expand-region.el"; - rev = "d1252200bac2e0197497d6d57ab6fd004f1b2e77"; - sha256 = "0bhwv92wqccz8y5xm6gj71ryci8cpsnm8z8vmdj8lsf6ki8vz512"; + rev = "2357f1d5efd9d5b9e37f3513342237fec2629291"; + sha256 = "0sggq57q8fxzd0my2kwbb2li91zq13cyhxn789bafzxq2d5fpk9h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/expand-region"; @@ -21517,6 +21623,27 @@ license = lib.licenses.free; }; }) {}; + exsqlaim-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "exsqlaim-mode"; + version = "20170607.303"; + src = fetchFromGitHub { + owner = "ahmadnazir"; + repo = "exsqlaim-mode"; + rev = "a2e0a62ec8b87193d8eaa695774bfd689324b06c"; + sha256 = "1gj1q2h1ja30jizkjql12cxlppj07ykr4wxqca9msy043zdhqnkk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7f660d7629bc27144c99ebcba45f1b06b14c5745/recipes/exsqlaim-mode"; + sha256 = "0ssn48wcn3x066nsl8y78y57ndasqv5x6ifxbifdxl3f5vjhyvg7"; + name = "exsqlaim-mode"; + }; + packageRequires = [ s ]; + meta = { + homepage = "https://melpa.org/#/exsqlaim-mode"; + license = lib.licenses.free; + }; + }) {}; extempore-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "extempore-mode"; @@ -21559,22 +21686,30 @@ license = lib.licenses.free; }; }) {}; - exwm-x = callPackage ({ cl-lib ? null, dmenu, exwm, fetchFromGitHub, fetchurl, lib, melpaBuild, start-menu, switch-window }: + exwm-x = callPackage ({ bind-key, cl-lib ? null, counsel, exwm, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, swiper, switch-window }: melpaBuild { pname = "exwm-x"; - version = "20170313.1538"; + version = "20170916.2015"; src = fetchFromGitHub { owner = "tumashu"; repo = "exwm-x"; - rev = "b916c87ef43b6983d76334c2321ba57f4ec102ad"; - sha256 = "1ng7bd2gbn9ns6hhva66ibq4kqsjijxbqw30cay8xvn4m6kklmvp"; + rev = "abb210ff56134cc6a285d91b875f3115bc951ad0"; + sha256 = "1l7578jfn3va6bpkjfbazygsn8asxhc7cpss32mnsrzkm1ix6sz8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a0e6e23bcffdcd1e17c70599c563609050e5de40/recipes/exwm-x"; sha256 = "1d9q57vz63sk3h1g5gvp9xnmqkpa73wppmiy2bv8mxk11whl6xa3"; name = "exwm-x"; }; - packageRequires = [ cl-lib dmenu exwm start-menu switch-window ]; + packageRequires = [ + bind-key + cl-lib + counsel + exwm + ivy + swiper + switch-window + ]; meta = { homepage = "https://melpa.org/#/exwm-x"; license = lib.licenses.free; @@ -21601,25 +21736,6 @@ license = lib.licenses.free; }; }) {}; - eyedropper = callPackage ({ fetchurl, hexrgb, lib, melpaBuild }: - melpaBuild { - pname = "eyedropper"; - version = "20170221.1640"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/eyedropper.el"; - sha256 = "1nyplgpcpbczb1lfj2x5l92ckn6f7wz28sviqiinh45fzsji5h3r"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/eyedropper"; - sha256 = "07kdn90vm2nbdprw9hwdgi4py6gqzmrad09y1fwqdy49hrvbwdzk"; - name = "eyedropper"; - }; - packageRequires = [ hexrgb ]; - meta = { - homepage = "https://melpa.org/#/eyedropper"; - license = lib.licenses.free; - }; - }) {}; eyuml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, request, s }: melpaBuild { pname = "eyuml"; @@ -21641,22 +21757,22 @@ license = lib.licenses.free; }; }) {}; - ez-query-replace = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: + ez-query-replace = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ez-query-replace"; - version = "20170311.139"; + version = "20170814.621"; src = fetchFromGitHub { owner = "Wilfred"; repo = "ez-query-replace.el"; - rev = "66381226da00cc4a87c7d5962aaabbc0eb325cb7"; - sha256 = "1p5qg5pz87ym1gd0jmakkpkskmffl69694pkxbhhfxp10pyshzmc"; + rev = "f5dbd2d3e5e62e6b7e7cc1a98fc4d0cd411e5afa"; + sha256 = "14mikpxrsmjwdpya45cf47v2gjwxmql10xjk907x27iqqxmfif74"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c40808c7687ace84e4c59bf8c25332c94b6fdd76/recipes/ez-query-replace"; sha256 = "1h9ijr1qagwp9vvikh7ajby0dqgfypjgc45s7d93zb9jrg2n5cgx"; name = "ez-query-replace"; }; - packageRequires = [ dash ]; + packageRequires = [ dash s ]; meta = { homepage = "https://melpa.org/#/ez-query-replace"; license = lib.licenses.free; @@ -21665,12 +21781,12 @@ eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eziam-theme"; - version = "20170321.608"; + version = "20171007.939"; src = fetchFromGitHub { owner = "thblt"; repo = "eziam-theme-emacs"; - rev = "c53e4b4ba21bd00196a28746a900f3fc1a9d1cbc"; - sha256 = "0dbh9q0s1vps5nwdy16jcq5sqw9ilk0s9qlmbkiy0cvs4z08wgd1"; + rev = "909a84dc5959aac982d1c296e82d687d172d3ecd"; + sha256 = "0mw9h55f708mv0ngixmdn7976yrhqjcnzac80f6mzddpwavgrhd6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme"; @@ -21707,12 +21823,12 @@ f3 = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "f3"; - version = "20160628.1601"; + version = "20170728.1120"; src = fetchFromGitHub { owner = "cosmicexplorer"; repo = "f3"; - rev = "114fec094c4ea063724c05404a2ece53f510b3e3"; - sha256 = "0fh69qhvdks1hclwhr9nv6bgbsjwdk0mwqhw3dmlv2jb5yip308m"; + rev = "1ed0ac4368a9f631f6dfad7ad17e9f7434a42bd6"; + sha256 = "03crpcb1jbbc12nz912qdkipmm94xlrpzr2cgckya0cj8sdgv9fz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b40de62a82d6895a37ff795d56f7d0f783461e6/recipes/f3"; @@ -21746,69 +21862,36 @@ license = lib.licenses.free; }; }) {}; - face-remap-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "face-remap-plus"; - version = "20170222.1742"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/face-remap+.el"; - sha256 = "1p42wjzl2brbqv3vh3g1rcgh5m9a7bix5q80pg7r6515as8kykad"; + face-explorer = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "face-explorer"; + version = "20170710.1201"; + src = fetchFromGitHub { + owner = "Lindydancer"; + repo = "face-explorer"; + rev = "13bd4553bc4b09215a04d0267be1cb4ed834775c"; + sha256 = "1zbm92imfbh1sm7j64vc1ig5yq6rdd8izkh80mci5k6nf1p3byk7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/face-remap+"; - sha256 = "0vq6xjrv3qic89pxzi6mx1s08k4ba27g8wqm1ap4fxh3l14wkg0y"; - name = "face-remap-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/2370fdf6421dc518337e04bd2453a5f74e2df2b2/recipes/face-explorer"; + sha256 = "1jfidkkizgwhkkrgvrmq5vrx5ir4zjw4zzc2alw9gkjn1ddq22q7"; + name = "face-explorer"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/face-remap+"; - license = lib.licenses.free; - }; - }) {}; - facemenu-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "facemenu-plus"; - version = "20170222.1744"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/facemenu+.el"; - sha256 = "0nnaqmdsf6ksk6663924bpw3mrldybj6jjkgj0525nhpfjx7x4yq"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/facemenu+"; - sha256 = "0lbggalgkj59wj67z95949jmppmqrzrp63mdhw42r2x0fz1ir0iv"; - name = "facemenu-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/facemenu+"; - license = lib.licenses.free; - }; - }) {}; - faces-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "faces-plus"; - version = "20170222.1745"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/faces+.el"; - sha256 = "0a80027a78zad0nxlkmv69b2zzbz4b29rsn4ivgb313r4c24igzx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/faces+"; - sha256 = "0k3m434f3d3061pvir0dnykmv6r9jswl7pzybzja3afiy591hh92"; - name = "faces-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/faces+"; + homepage = "https://melpa.org/#/face-explorer"; license = lib.licenses.free; }; }) {}; faceup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "faceup"; - version = "20170126.1305"; + version = "20170925.1246"; src = fetchFromGitHub { owner = "Lindydancer"; repo = "faceup"; - rev = "688b487ad0a78c8707c5aded50e1d85551270034"; - sha256 = "1wmmj69wgzgac5y7gnrz84dvwjzd45h3rr434vv4dxnam0j0lj40"; + rev = "6c92dad56a133e14e7b27831e1bcf9b3a71ff154"; + sha256 = "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a10bf2928b93c3908e89ca8ad9649bb468ebca05/recipes/faceup"; @@ -21845,12 +21928,12 @@ faff-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "faff-theme"; - version = "20161026.1047"; + version = "20170522.1219"; src = fetchFromGitHub { owner = "WJCFerguson"; repo = "emacs-faff-theme"; - rev = "61d98d43c9173662078c0c337ce78918eb6a3610"; - sha256 = "15shbzjpl89ybyyn7d53psn9i8csxi2h9jwz7mx98lg9pjy58ifa"; + rev = "e79dc142d99bc5a455a46345d3aba6f95f3f3f42"; + sha256 = "0j5vdbwwpav09v3kkx7cn5qd41inam0jd7smx8133hqpnirsh8mv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0b35c169fe56a5612ff5a4242140f617fdcae14f/recipes/faff-theme"; @@ -21929,12 +22012,12 @@ fancy-narrow = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fancy-narrow"; - version = "20160124.403"; + version = "20171030.1716"; src = fetchFromGitHub { owner = "Malabarba"; repo = "fancy-narrow"; - rev = "4737d706d1f3e90885e6642ba782f1fa605414c6"; - sha256 = "0825hyz8b2biil0pd2bgjxqd2zm3gw9si7br5hnh51qasbaw9hid"; + rev = "9f4a587f6a5a387271fb665e13f59d41fd42504c"; + sha256 = "0dl0fc3i8g193adpkr4fb2k151lw9r6gd8p27q9xgmm9brf9jf17"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/fancy-narrow"; @@ -22034,12 +22117,12 @@ faust-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "faust-mode"; - version = "20160930.222"; + version = "20170908.542"; src = fetchFromGitHub { owner = "magnetophon"; repo = "emacs-faust-mode"; - rev = "41379dd52a8be01cdfac06996ea1593877fdaf58"; - sha256 = "0q624nm9wfyg95wybi542bx8pdpqk9vibyb6b9fin4mw102nah9j"; + rev = "0f099007574d1430bb0cf73f73dcc284d9d3a190"; + sha256 = "0rmq6ca75x47hk2bpsk1j2ja62kpplgyanpiqq4hk6q259rd4lyv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31f4177ce35313e0f40e9ef0e5a1043ecd181573/recipes/faust-mode"; @@ -22052,15 +22135,35 @@ license = lib.licenses.free; }; }) {}; + faustine = callPackage ({ emacs, faust-mode, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "faustine"; + version = "20170908.658"; + src = fetchgit { + url = "https://bitbucket.org/yassinphilip/faustine"; + rev = "ae67cd9d1a2625d80726dace9dd83539e71d1b36"; + sha256 = "1wvf37g2bb9xbxi0qxn1sfq0ygaqxfzsnzdbnail6f29qyl541al"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b298e399335efbbdbc6e9bb06ab915fc07909faa/recipes/faustine"; + sha256 = "0pkjxfzgdhkjjx38d1c2kw8m5cw5ryhfj7lykpym79wsa471hf9s"; + name = "faustine"; + }; + packageRequires = [ emacs faust-mode ]; + meta = { + homepage = "https://melpa.org/#/faustine"; + license = lib.licenses.free; + }; + }) {}; fcitx = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fcitx"; - version = "20170208.1012"; + version = "20170913.1900"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "fcitx.el"; - rev = "ec1d202c11a1c81f7ab0b9cf235d64c68d8e3134"; - sha256 = "1p32lqmnp7k0gck6my1cy4hd5sck28zkfvlg8q23lpkcg1vcsqlx"; + rev = "095332fbeb994c908c533fe2ad068c0728211c3d"; + sha256 = "01sm50rqajylah2hx6n5ig0xmrrhxbamzs4bg97qzxzr4nlnjcaz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8c40f09d9397b3ca32a7ed37203f490497dc984/recipes/fcitx"; @@ -22097,12 +22200,12 @@ feature-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "feature-mode"; - version = "20161123.532"; + version = "20170907.748"; src = fetchFromGitHub { owner = "michaelklishin"; repo = "cucumber.el"; - rev = "aa06b88ad96bc556992f011b6aef9b78e99ae48b"; - sha256 = "1iybvdkszrqwz9knmfffmcknsdhnpc71961y0xb4xgad8i043n2y"; + rev = "722b352c4f0b800a9356dd369c79612782b3b847"; + sha256 = "0myaddivhvl8x3n2z2vjc6mc2jn1jja67mzwx1jp9gb9p958irk0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0a70991695f9ff305f12cfa45e0a597f4a782ba3/recipes/feature-mode"; @@ -22197,51 +22300,15 @@ license = lib.licenses.free; }; }) {}; - files-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "files-plus"; - version = "20170222.1746"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/files+.el"; - sha256 = "1ch7k4gpfcb5k6z656rprdcvxp75wsfjhw5l6x8f05qbmm0cbimv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/files+"; - sha256 = "1m1pxf6knrnyc9ygmyr27gm709ydxf0kkh1xrfcza6n476frmwr8"; - name = "files-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/files+"; - license = lib.licenses.free; - }; - }) {}; - filesets-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "filesets-plus"; - version = "20170222.1748"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/filesets+.el"; - sha256 = "0i9nc9zhpj208as9pynnh6xvr0qk53y7bpg2gw4gak9xr9xywbpg"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/filesets+"; - sha256 = "06n8pw8c65bmrkxda2akvv57ndfijgbp95l40j7sjg8bjp385spn"; - name = "filesets-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/filesets+"; - license = lib.licenses.free; - }; - }) {}; fill-column-indicator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fill-column-indicator"; - version = "20151030.1233"; + version = "20170905.1008"; src = fetchFromGitHub { owner = "alpaker"; repo = "Fill-Column-Indicator"; - rev = "0e755319451dd9c6c99c2a2ef82c890ba93343b6"; - sha256 = "0gbqspqn4y7f2fwqq8210b6k5q22c0zr7b4ws8qgz9swav8g3vrq"; + rev = "23ad25f2c2fddd32a1ea12a9e0f631e243e6a779"; + sha256 = "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4ea0c00a7784621fcca0391a9c8ea85e9dd43852/recipes/fill-column-indicator"; @@ -22257,12 +22324,12 @@ fillcode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fillcode"; - version = "20150812.941"; + version = "20171029.925"; src = fetchFromGitHub { owner = "snarfed"; repo = "fillcode"; - rev = "1f64f0303a3157eabec355fd155571bb0c042489"; - sha256 = "0cgrswhbmzyfpkrp8iznsn1lxnb61dz2f0181pqd9gdf55qrk67m"; + rev = "d0a9e20f5fcc24a786d09ea19bfb9237681ba823"; + sha256 = "1mf2gfcjaqbw523vkfbzs2nl1y9bn9gbgmbvn2phbyj78gzq18za"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/85eb403503aa83799a6072bfe21bf66c8177ca73/recipes/fillcode"; @@ -22275,22 +22342,22 @@ license = lib.licenses.free; }; }) {}; - finalize = callPackage ({ cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + finalize = callPackage ({ cl-generic, cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "finalize"; - version = "20140127.1046"; + version = "20170418.1245"; src = fetchFromGitHub { owner = "skeeto"; repo = "elisp-finalize"; - rev = "9ac589cf487f5d37163dc9e7ca8c52800710805e"; - sha256 = "0f76cgh97z0rbbg2bp217nqmxfimzkvw85k9mx8bj78i9s2cdmwa"; + rev = "0496a7b8f2f8b197010d8602b5fc529f5104704a"; + sha256 = "1canhfvqjkm0bbr9g50pi0cibhq3mf7g79k2m18d8zarc9jljrjm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1b55869b5183644de02687d2e56f9b68854ccda3/recipes/finalize"; sha256 = "1n0w4kdzc4hv4pprv13lr88gh46slpxdvsc162nqm5mrqp9giqqq"; name = "finalize"; }; - packageRequires = [ cl-lib eieio emacs ]; + packageRequires = [ cl-generic cl-lib eieio emacs ]; meta = { homepage = "https://melpa.org/#/finalize"; license = lib.licenses.free; @@ -22317,33 +22384,15 @@ license = lib.licenses.free; }; }) {}; - find-dired-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "find-dired-plus"; - version = "20170409.1832"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/find-dired+.el"; - sha256 = "0zfqkw9vghbzvdh3iyqkkdq777bb1yhfgqk7p28dxz861z13cmfs"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/find-dired+"; - sha256 = "190cj41b6s1l6gk1m0rbwfsdciw4my39ncppdxf9pi7gzhcjpznr"; - name = "find-dired-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/find-dired+"; - license = lib.licenses.free; - }; - }) {}; find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "find-file-in-project"; - version = "20170402.2100"; + version = "20171025.1943"; src = fetchFromGitHub { owner = "technomancy"; repo = "find-file-in-project"; - rev = "a81f7d7020d5bdfcc835911d4def6f09301a1f55"; - sha256 = "167anv3qyslfzyrcq4qnzhdx8zhbj1r0lmrvnp1spsalvcbph9ih"; + rev = "a3ecd28182ba3102fefdc080e807866464153edc"; + sha256 = "08dk8jjg63rs15hq4rb32368nja2iwdsp8dxwb3isza96lsfkwmx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project"; @@ -22419,24 +22468,6 @@ license = lib.licenses.free; }; }) {}; - finder-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "finder-plus"; - version = "20170222.1752"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/finder+.el"; - sha256 = "0h1jsgb7vivmbay35s9bx8dpl7l88zdh1f6ymdm16b0alpiv4p14"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/finder+"; - sha256 = "1ichxghp2vzx01n129fmjm6iwx4b98ay3xk1ja1i8vzyd2p0z8vh"; - name = "finder-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/finder+"; - license = lib.licenses.free; - }; - }) {}; findr = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "findr"; @@ -22500,36 +22531,15 @@ license = lib.licenses.free; }; }) {}; - firebelly-theme = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "firebelly-theme"; - version = "20140410.155"; - src = fetchFromGitHub { - owner = "startling"; - repo = "firebelly"; - rev = "5fd621102c676196319579b168da1476e8552d00"; - sha256 = "02ajday0lnk37dnzf4747ha3w0azisq35fmdhq322hx0hfb1c66x"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/6c8f2b5ab0e75dccb9efb998cdc240303dc4a279/recipes/firebelly-theme"; - sha256 = "0lns846l70wcrzqb6p5cy5hpd0szh4gvjxd4xq4zsb0z5nfz97jr"; - name = "firebelly-theme"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/firebelly-theme"; - license = lib.licenses.free; - }; - }) {}; firecode-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "firecode-theme"; - version = "20141115.2302"; + version = "20170808.611"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-firecode-theme"; - rev = "73573192e5e9d14d94dfc5131dd2b7a780b89626"; - sha256 = "0v8liv6aq10f8dxbl3d4rph1qk891dlxm9wqdc6w8aj318750hfm"; + rev = "8b7b03ecdd41e70dab145b98906017e1392eaef4"; + sha256 = "1vrpnv7555mbsksflgdkg7hc65fjcyzvzv2261y043rlh2qrn0sy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/firecode-theme"; @@ -22608,12 +22618,12 @@ fish-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fish-mode"; - version = "20160924.1207"; + version = "20170430.623"; src = fetchFromGitHub { owner = "wwwjfy"; repo = "emacs-fish"; - rev = "d8b3493623ad834cb18f7de957dfbd17e2fba3ba"; - sha256 = "16x8fv8yl9wxmrxh4p7npixrh36vdwdc2n6paly0swlmj9a2j399"; + rev = "888d037008272f6001207a2990e51ba87fe187e6"; + sha256 = "1r2clxm68nq8jhgc5cly51i6axjmi720r5m34dhf6zblwib4lfdp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/efac97c0f54a3300251020c4626056526c18b441/recipes/fish-mode"; @@ -22626,33 +22636,15 @@ license = lib.licenses.free; }; }) {}; - fit-frame = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "fit-frame"; - version = "20170222.1754"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/fit-frame.el"; - sha256 = "1wm2jc7h5zhv695wf21l3n9gjn31ddgd0vybx8brj1nbvavifs0x"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e13c77f822db3c9eaeb3fd5fa95cc2dbe5133f2c/recipes/fit-frame"; - sha256 = "1xcq4n9gj0npjjl98vqacms0a0wnzw62a9iplyf7bgj7n77pgkjb"; - name = "fit-frame"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/fit-frame"; - license = lib.licenses.free; - }; - }) {}; fix-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fix-input"; - version = "20161231.1554"; + version = "20170518.2311"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "fix-input"; - rev = "483365fb3c4ba5e08f5df07436294e7f8714dbd2"; - sha256 = "09c6ynmsypjpiwwn29npsbf4lq20i5cks41maxifnpvqxmkk6a4c"; + rev = "a0fd233bba6206854c5d7365d7182aaae842f210"; + sha256 = "1zwbysh9fq6dbdi93cdzgrsp2azy8b3j0gz32ih0vbs9xyysbhlz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d31f907997d1d07ec794a4f09824f43818f035c/recipes/fix-input"; @@ -22689,12 +22681,12 @@ fix-word = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fix-word"; - version = "20161231.1555"; + version = "20170518.2343"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "fix-word"; - rev = "bcc22ef05b5cdd43632121bfc9d77b27df7c34e7"; - sha256 = "066wif5p96yrcb944ic84jxxps80qxl17igagw3cdfj868y7nfik"; + rev = "7df98ac9f9b0e6e09d7999d83e678cb22248be77"; + sha256 = "13i604lmx30r0kk0s998dp4czzazqavyqqi3kx6lh6mj2csgkgda"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/22636390e8a15c09293a1506a901286dd72e565f/recipes/fix-word"; @@ -22738,16 +22730,16 @@ flappymacs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "flappymacs"; - version = "20140715.901"; + version = "20171023.304"; src = fetchFromGitHub { owner = "taksatou"; repo = "flappymacs"; - rev = "bbc69405f62e1bc488533709d4ab0b5eba919dbd"; - sha256 = "07hv6l80ka10qszm16fpan8sas4b0qvl5s6qixxlz02fm7m0s7m5"; + rev = "27f3e21acb22f786606481e3f4e5dc1edbaaaed4"; + sha256 = "0zcwsbz93p1l2jb1fs6m4s5y9klcr5qg5nw10qg30j9l2bc1hda8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/flappymacs"; - sha256 = "0id3bz4h9wi4943kp2sab7240fw8hsnkpng02gij9ssyvjiii5cg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a63b22f357b2d08b12fb86c27261ab4d687c5f7f/recipes/flappymacs"; + sha256 = "1rp4r5ldhm8nrj26y1vm5d5fj3kl7v45cj1naxczrqbcgkd0r404"; name = "flappymacs"; }; packageRequires = []; @@ -22780,12 +22772,12 @@ flatland-black-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "flatland-black-theme"; - version = "20141115.2230"; + version = "20170808.612"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-flatland-black-theme"; - rev = "75fc4f1815feb23563a60477c02d70326b45c59e"; - sha256 = "0ib6r6q4wbkkxdwgqsd25nx7ccxhk16lqkvwikign80j9n11g7s1"; + rev = "348c5d5fe615e6ea13cadc17f046e506e789ce07"; + sha256 = "1g5jqxdk35ahx8qk4vi7whhcpi1qp7rbbjgiih974fs59cg5iki0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/flatland-black-theme"; @@ -22819,6 +22811,27 @@ license = lib.licenses.free; }; }) {}; + flatui-dark-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "flatui-dark-theme"; + version = "20170513.722"; + src = fetchFromGitHub { + owner = "theasp"; + repo = "flatui-dark-theme"; + rev = "5b959a9f743f891e4660b1b432086417947872ea"; + sha256 = "0nz4ql7qf49cwsgjb7dg0jhipr5d472r4fddy6fhr1h17s1cd9qy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5f9dc5abeb37422c63cac74f9a006d54c4a7c5a5/recipes/flatui-dark-theme"; + sha256 = "1mswmkhi43fm0cmdgf0ywpy9lmapy0syl65kqh68sa3jqbznhm6y"; + name = "flatui-dark-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/flatui-dark-theme"; + license = lib.licenses.free; + }; + }) {}; flatui-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "flatui-theme"; @@ -22861,6 +22874,27 @@ license = lib.licenses.free; }; }) {}; + flex-compile = callPackage ({ buffer-manage, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "flex-compile"; + version = "20171031.2349"; + src = fetchFromGitHub { + owner = "plandes"; + repo = "flex-compile"; + rev = "031f4612a07dc0ddb03424a2f986ea18e7064fe7"; + sha256 = "1vwvhaxhpmpcyrmzdfbwxsxif3fx40548gks3y4n0nhprji7wjmg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/259caeebc317e81ab9d532a371ea85656c2b1619/recipes/flex-compile"; + sha256 = "1hlh4k7qgln87xajnjjhf1yyg6bgdwd0iczhlfw8gdwfj5xpjd38"; + name = "flex-compile"; + }; + packageRequires = [ buffer-manage dash emacs ]; + meta = { + homepage = "https://melpa.org/#/flex-compile"; + license = lib.licenses.free; + }; + }) {}; flex-isearch = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "flex-isearch"; @@ -22905,12 +22939,12 @@ flimenu = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "flimenu"; - version = "20160821.1330"; + version = "20170417.1847"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "flimenu"; - rev = "ecbd47c857781b9c38035048d69415b617a75422"; - sha256 = "0a37kjpcpkm172icd2dbb5ndi6s164rbrpvy0c7kr0gl30n1gb8c"; + rev = "9351201d89b05cbdaec312a6ebd7fd10c38d6112"; + sha256 = "1qb08j66a9mvybqhc2vyywwn16w3kkjb06k50rfqf6sbcmndz8va"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0ffc67a266de3d58553b27325b7fc6937df425be/recipes/flimenu"; @@ -22923,33 +22957,15 @@ license = lib.licenses.free; }; }) {}; - fliptext = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "fliptext"; - version = "20131113.1818"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/fliptext.el"; - sha256 = "1viigj04kla20dk46xm913jzqrmx05rpjrpghnc0ylbqppqdwzpw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/093046dfb39148d56681e9c8be8cccff23dd19cb/recipes/fliptext"; - sha256 = "0cmyan9hckjsv5wk1mvjzif9nrc07frhzkhhl6pkgm0j0f1q30ji"; - name = "fliptext"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/fliptext"; - license = lib.licenses.free; - }; - }) {}; floobits = callPackage ({ fetchFromGitHub, fetchurl, highlight, json ? null, lib, melpaBuild }: melpaBuild { pname = "floobits"; - version = "20170416.1718"; + version = "20170802.1500"; src = fetchFromGitHub { owner = "Floobits"; repo = "floobits-emacs"; - rev = "fdac635ecc57ac7743f74678147aca2e956561de"; - sha256 = "134b5ss249x06bgqvsxnlcfys7nl8aid42s7ln8pamxrc3prfcc1"; + rev = "ed5586d1bf94f36354091648e824ccb6fcaf807f"; + sha256 = "08m9snmkhdjmvw1pqww9l39xqas9f6yxksjxvfjjfnad8ak80x9b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/95c859e8440049579630b4c2bcc31e7eaa13b1f1/recipes/floobits"; @@ -22962,24 +22978,24 @@ license = lib.licenses.free; }; }) {}; - flow-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + flow-minor-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "flow-mode"; - version = "20170320.1043"; + pname = "flow-minor-mode"; + version = "20170916.312"; src = fetchFromGitHub { owner = "an-sh"; - repo = "flow-mode"; - rev = "072efa15255146cf39450dd71fd8f35e9f6fe621"; - sha256 = "0cga2vzi82b93l8j54jx5krfcxksx64h1m6y18p9gjgqd424g014"; + repo = "flow-minor-mode"; + rev = "93184633933b5aa62e6e92b7fe1311261012e591"; + sha256 = "1laainsc5l4l4r5j17hblv7b1ppxrgfak73ama1qn7kb14y1jfrf"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3eca3f0c0a4dda79d00cbd0045eb0925bb3ce2e4/recipes/flow-mode"; - sha256 = "0hq1lkn4mn6r8ih74d52hba1a6gb6pg4qcv60sfsiga4b737yla8"; - name = "flow-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/66504f789069922ea56f268f4da90fac52b601ff/recipes/flow-minor-mode"; + sha256 = "190dv225sb37jawzrasd7qkbznrmkrdnb90l44il63vrlmjv3r1s"; + name = "flow-minor-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/flow-mode"; + homepage = "https://melpa.org/#/flow-minor-mode"; license = lib.licenses.free; }; }) {}; @@ -23070,12 +23086,12 @@ flycheck = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pkg-info, seq }: melpaBuild { pname = "flycheck"; - version = "20170415.1006"; + version = "20171026.610"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck"; - rev = "2d40aadedde2b4a5d0bc9094f19020128d242801"; - sha256 = "0pwlhzfl7av9vkkbdaiky1m2djjxsl93kprigklmjz1vkg7wsza0"; + rev = "0d982b2860927a03e4cdf663750bd3b4c128918a"; + sha256 = "0azjq7d3whlqwp0svj04drk1gxd1hm99d95lkqwj9pbag5hip3ly"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/649f9c3576e81409ae396606798035173cc6669f/recipes/flycheck"; @@ -23214,15 +23230,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-clang-analyzer = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-clang-analyzer"; + version = "20170704.2333"; + src = fetchFromGitHub { + owner = "alexmurray"; + repo = "flycheck-clang-analyzer"; + rev = "a33752224cb1da13b35d0d60b2017fe73d167781"; + sha256 = "1f6nb92fg1lgf4xz8x1i61njwnqrab94p88kliaa7g9r4hfhgv8j"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8de7b717a1b0caf30f8f29d3e764b4756b93aeff/recipes/flycheck-clang-analyzer"; + sha256 = "0wby4vilvcmmncr6l6abh3v4wznx9m0zbk30vllj8bq98awfcy3a"; + name = "flycheck-clang-analyzer"; + }; + packageRequires = [ emacs flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-clang-analyzer"; + license = lib.licenses.free; + }; + }) {}; flycheck-clang-tidy = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-clang-tidy"; - version = "20170222.512"; + version = "20171024.108"; src = fetchFromGitHub { owner = "ch1bo"; repo = "flycheck-clang-tidy"; - rev = "fe49836f30b37eae308e2255acbdcb0195d3a2ba"; - sha256 = "14i8f5gid9pnrgsvhibwclv4m53j86i05wbfjfj15aprhbf2ii94"; + rev = "b8ebd49693f67e08e420ba847cc88f6721ef9e3e"; + sha256 = "0fnn1baw64f7x1zjb95adryr3mfynbblwppcd6ywh7pk0sq18b80"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a289ac549a7735a12eec85521c32f915b9194b85/recipes/flycheck-clang-tidy"; @@ -23280,12 +23317,12 @@ flycheck-color-mode-line = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-color-mode-line"; - version = "20131125.2138"; + version = "20171020.2128"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck-color-mode-line"; - rev = "c85319f8d2579e770c9060bfef11bedc1370d8be"; - sha256 = "11xc08xld758xx9myqjsiqz8vk3gh4d9c4yswswvky6mrx34c0y5"; + rev = "157b1edd79b44c26ef18862160e0ab50db27352e"; + sha256 = "0lrk2b6xa12zcv18z4j1lpl7b36sl7saz14warxc1fw3p7dr4hm4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/02b5b60b74581ff0d1815155223e0c6e94a851a1/recipes/flycheck-color-mode-line"; @@ -23298,15 +23335,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-coverity = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-coverity"; + version = "20170703.1759"; + src = fetchFromGitHub { + owner = "alexmurray"; + repo = "flycheck-coverity"; + rev = "cb211e3dd50413a5042eb20175be518214591c9d"; + sha256 = "17c5lppa5axw6wga3k8zqmn5f2syadlqbavrqgsi8k8nlcckxy1x"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/55e8df91adbcf8b059096e02aba2781424250381/recipes/flycheck-coverity"; + sha256 = "1knd1sqgjkgb5zs8hgsi6lyvkqmrcrdjgx81f26nhg40qv5m2p5l"; + name = "flycheck-coverity"; + }; + packageRequires = [ dash emacs flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-coverity"; + license = lib.licenses.free; + }; + }) {}; flycheck-credo = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-credo"; - version = "20161121.2201"; + version = "20170526.845"; src = fetchFromGitHub { owner = "aaronjensen"; repo = "flycheck-credo"; - rev = "f773422c356c1c3b39fcece3cb7cc1257c7df517"; - sha256 = "0cq6lap4gndm801lj1q1wajpb03vz40hsdimr1n02p2k2dkrz8p3"; + rev = "e88f11ead53805c361ec7706e44c3dfee1daa19f"; + sha256 = "04i7fbqpkjpsfa8vjpkdhg1sj5isczxwncdp4vr9x3vll3svblm7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/88dfffe034135cc46d661f8173e8b14e0fb7f240/recipes/flycheck-credo"; @@ -23364,12 +23422,12 @@ flycheck-cython = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-cython"; - version = "20160327.1228"; + version = "20170724.258"; src = fetchFromGitHub { owner = "lbolla"; repo = "emacs-flycheck-cython"; - rev = "45097658a16eeabf2bd5e0464355f8f37a1aeffc"; - sha256 = "0994346iyp7143476i3y6pc5m1n6z7g1r6n1rldivsj0qr4gjh01"; + rev = "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76"; + sha256 = "1v17skw0wn7a7nkc1vrs0bbzihnjw0dwvyyd0lydsihzxl5z2r5g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2d963eb1b8f8f863b37a96803b00d395e9d85e94/recipes/flycheck-cython"; @@ -23431,8 +23489,8 @@ src = fetchFromGitHub { owner = "z4139jq"; repo = "flycheck-demjsonlint"; - rev = "1c433150fdf628dda4c9fad938bf7c79610b4460"; - sha256 = "0kmvwmaxw64xjgchq8szk9mhbi6xp2jhv7qpgqndf4svia4pqws6"; + rev = "a3dfe1df8ecdea76c076c0849901427567356228"; + sha256 = "0zra3rl0kn70kn30wx1lqh9218k06mq3j8jadax61nnynw7bzsa5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b66df1afde83607408fb1b30e1260f22015bf448/recipes/flycheck-demjsonlint"; @@ -23448,12 +23506,12 @@ flycheck-dialyxir = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-dialyxir"; - version = "20170124.2319"; + version = "20170515.825"; src = fetchFromGitHub { owner = "aaronjensen"; repo = "flycheck-dialyxir"; - rev = "7e79dc33a12b8aded7a86d64d302072eed522cb4"; - sha256 = "1ylg8v1khh2bph6hscib7diw039z0nxfh28b9mhgyi6s33jyq618"; + rev = "adfb73374cb2bee75724822972f405f2ec371199"; + sha256 = "1kzvq99f052mdj4ml1m6nvxhv0kqqblmpdgnwcm89krf0qfl4gjg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fa49551b8f726c235e03ea377bb09a8be37b9f32/recipes/flycheck-dialyxir"; @@ -23490,12 +23548,12 @@ flycheck-dmd-dub = callPackage ({ f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-dmd-dub"; - version = "20170403.1116"; + version = "20170816.648"; src = fetchFromGitHub { owner = "atilaneves"; repo = "flycheck-dmd-dub"; - rev = "879c52116989f6041ccd20f5db210f5552d5c649"; - sha256 = "12qblzrw99lcl8qccl26kwqiwscn04izvjrsq3mnp1r5q0s0jxl2"; + rev = "5a2e65fbae90e1dd69cfa78e4af0bda25c7db973"; + sha256 = "1zh6yb5snjrp09zh24fip97pqq7vk472g8nmjjqk0iq8m9i8sphs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a812594901c1099283bdf51fbea1aa077cfc588d/recipes/flycheck-dmd-dub"; @@ -23595,12 +23653,12 @@ flycheck-flow = callPackage ({ fetchFromGitHub, fetchurl, flycheck, json ? null, lib, melpaBuild }: melpaBuild { pname = "flycheck-flow"; - version = "20170325.504"; + version = "20171018.327"; src = fetchFromGitHub { owner = "lbolla"; repo = "emacs-flycheck-flow"; - rev = "e51aff467edf2d86e7b315d79d6f2f4d8408ea78"; - sha256 = "1w1s7rcbmiikb7f80rf9d77gzszjcfyymx75x20vvq3rw4wvdnyj"; + rev = "2e21ec3c4eacdc100b1a45e97884350f53b832d3"; + sha256 = "0ijazydkz9lwxbnsvanpv3202k35a4knipp08inlw3pm3k16p3mj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4d18fb21d8ef9b33aa84bc26f5918e636c5771e5/recipes/flycheck-flow"; @@ -23658,12 +23716,12 @@ flycheck-haskell = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, haskell-mode, let-alist, lib, melpaBuild, seq }: melpaBuild { pname = "flycheck-haskell"; - version = "20160524.117"; + version = "20171022.958"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck-haskell"; - rev = "a475c9c4d799bf98931efec95b61160e3ad8b61f"; - sha256 = "05a5hyl6avf09drq6wva8mmxbag41dqixaz6azifywa8p63w1mlk"; + rev = "ab2e4f9b5ce4665a9b00c3e16dc8ecce30c99d01"; + sha256 = "1508rd39zkvlwcakw708lpsahmkiq4pzagjd6j8zas0xn1gb6789"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6ca601613788ae830655e148a222625035195f55/recipes/flycheck-haskell"; @@ -23697,6 +23755,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-inline = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, flycheck, inline-docs, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-inline"; + version = "20170728.2328"; + src = fetchFromGitHub { + owner = "stardiviner"; + repo = "flycheck-inline"; + rev = "624957ec04164f03656bf2d0a5ccd6d2b013f545"; + sha256 = "1qrwci7d5g3c3s2z888hydsa22hhiwlarq3im8w2crlzx5lhnbz8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6ad3925576719f34682f65867fd5bbbc97818870/recipes/flycheck-inline"; + sha256 = "1yas4csz0xv0h61nzlywrp9z665gcmwr8vjrkm2psh04rfqhx3wg"; + name = "flycheck-inline"; + }; + packageRequires = [ cl-lib emacs flycheck inline-docs ]; + meta = { + homepage = "https://melpa.org/#/flycheck-inline"; + license = lib.licenses.free; + }; + }) {}; flycheck-irony = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, irony, lib, melpaBuild }: melpaBuild { pname = "flycheck-irony"; @@ -23721,12 +23800,12 @@ flycheck-joker = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-joker"; - version = "20170415.2009"; + version = "20171003.2222"; src = fetchFromGitHub { owner = "candid82"; repo = "flycheck-joker"; - rev = "43a25fe17ba6ade96fc865bd8ec3fb3c131aa419"; - sha256 = "0m2msyyshbr6pgnjqybv8b1fj0axja3la0drbbbk0va1cn556wfs"; + rev = "c34c3922a2e8bc918f250602e0ddf655cdcad456"; + sha256 = "0fp7h0pmxk02x1kisqvnb9wkjjn9bl91capmnllrb7qmb24w6pd5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/599bf33a5d4a4a590b355001e532cab4e1ee9ef6/recipes/flycheck-joker"; @@ -23739,6 +23818,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-julia = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-julia"; + version = "20170729.1441"; + src = fetchFromGitHub { + owner = "gdkrmr"; + repo = "flycheck-julia"; + rev = "213b60a5a9a1cb7887260e1d159b5bb27167cbb6"; + sha256 = "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4e964e3c6f737d0102b4fd7440fa9d434e6382bf/recipes/flycheck-julia"; + sha256 = "0340bv0lifs8pajk7gh7rngdjg62vaggn5biyysng642dlg5fwqs"; + name = "flycheck-julia"; + }; + packageRequires = [ emacs flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-julia"; + license = lib.licenses.free; + }; + }) {}; flycheck-kotlin = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-kotlin"; @@ -23767,8 +23867,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "flycheck-ledger"; - rev = "cba408d61e26cf7c31c4a6f82a28a3a32e145c05"; - sha256 = "0ysc2hwz0xmmlwfwd70nfqvd81dvf4gfrynkrfgg9w6hp7y4z522"; + rev = "2944c56ad72945f78f88fa363e0239b40650d829"; + sha256 = "16zfa0npi6jmyvjalsiqk11zp41vc5bfpgz5ssh1xa8v9fk6rxaj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc715e6849aa5d6017e2478514c4a0d84c7ddbe5/recipes/flycheck-ledger"; @@ -23784,12 +23884,12 @@ flycheck-liquidhs = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-liquidhs"; - version = "20150618.1922"; + version = "20170412.1626"; src = fetchFromGitHub { owner = "ucsd-progsys"; repo = "flycheck-liquidhs.el"; - rev = "ee0d3bd0d5e07a872e541d02c112f1cc204db922"; - sha256 = "1wwn9dnzn4vrh747dgbcm944bp3z02gzxd32afjc9k2dsn32qvz2"; + rev = "c27252ac24d77f4b6eec76a4ba9cd61761a3fba9"; + sha256 = "1v5s252w2ai0rrci0rkq6wsx110pw8hp60n67990jg6l6lpvir2s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d5921fde4068ff1bb288f6f9e2fe03f4a7fdbbda/recipes/flycheck-liquidhs"; @@ -23886,15 +23986,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-nimsuggest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-nimsuggest"; + version = "20171027.1508"; + src = fetchFromGitHub { + owner = "yuutayamada"; + repo = "flycheck-nimsuggest"; + rev = "dc9a5de1cb3ee05db5794d824610959a1f603bc9"; + sha256 = "1bf65hrz0s6f180kn2ir8l5qn7in789w8pyy96b9gqn21z50vb9d"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cb4170f002dbcd1906e81836f3ce035b1e81c379/recipes/flycheck-nimsuggest"; + sha256 = "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv"; + name = "flycheck-nimsuggest"; + }; + packageRequires = [ emacs flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-nimsuggest"; + license = lib.licenses.free; + }; + }) {}; flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-objc-clang"; - version = "20161229.205"; + version = "20171014.651"; src = fetchFromGitHub { owner = "GyazSquare"; repo = "flycheck-objc-clang"; - rev = "11805f1d420e297db0346a6657f144b08e2ca556"; - sha256 = "1s9bk3k7ys79m2iww4yf1abfy01d08z9x9pfq8l045q0snsh64il"; + rev = "29a9eb320d62400564360986f7ad400b74070d8e"; + sha256 = "0b4vwbxzhds9vb4nknfdywvfpr1gkk86vsbbq6f5ds0pfk75x022"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4ff4412f507371b93cfb85fc744e54110cd87338/recipes/flycheck-objc-clang"; @@ -23910,12 +24031,12 @@ flycheck-ocaml = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild, merlin }: melpaBuild { pname = "flycheck-ocaml"; - version = "20151103.212"; + version = "20170730.1453"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck-ocaml"; - rev = "e4412025f27850918762237fa80b33e285a63e7c"; - sha256 = "0fm8w7126vf04n76qhh33rzybvl1n7va2whbqzafbvmv2nny3v94"; + rev = "8707a7bf545a8639a6a5c600a98d9a2ea1487dc9"; + sha256 = "13vzxkjq6v1f1i9zgxgjbwpiba04k9frkcl2wx6a9h3vgd7jyay0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8ce9283eb1285953a2578eb7c4d280b4d98c801f/recipes/flycheck-ocaml"; @@ -23935,8 +24056,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "flycheck-package"; - rev = "afe8a49343d90d08ee72ac6f993d424dcc39cc38"; - sha256 = "19pz8h01yacfqsyh5940pam6vigvavsqg6qd84994d7mmzl534qa"; + rev = "6d99248b45eea1e5236062f38e524230efdb1a84"; + sha256 = "00wyi2adiv9cb3x8bid2fhg3cjqlkc7z70i18vldbpmrpppjg4x5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d17ec69c9f192625e74dfadf03b11d0d7dc575e7/recipes/flycheck-package"; @@ -23994,12 +24115,12 @@ flycheck-plantuml = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, plantuml-mode }: melpaBuild { pname = "flycheck-plantuml"; - version = "20161122.219"; + version = "20171017.1811"; src = fetchFromGitHub { owner = "alexmurray"; repo = "flycheck-plantuml"; - rev = "f1628d589991c3d51965db0f14866b1202374eea"; - sha256 = "1j66y4qps1wjdagr36kgqgz1w8zcmwnpwcvgwn4gkif34n96s78l"; + rev = "183be89e1dbba0b38237dd198dff600e0790309d"; + sha256 = "1fbdbpwrlkvbgv693ndr3zamkf3gp28v94jg911fsav8bk08f6pq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/65f050860a0efda8cf472c2945b79a0a57651556/recipes/flycheck-plantuml"; @@ -24033,15 +24154,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-popup-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup }: + melpaBuild { + pname = "flycheck-popup-tip"; + version = "20170812.1651"; + src = fetchFromGitHub { + owner = "flycheck"; + repo = "flycheck-popup-tip"; + rev = "ef86aad907f27ca076859d8d9416f4f7727619c6"; + sha256 = "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9b2269ee9532bb092756ae0c0693cb44b73820e8/recipes/flycheck-popup-tip"; + sha256 = "1j8pgljnxcbfh08qpbr9jkw56l7d6k8lmdcsjbi6jd7jmyqbqvnx"; + name = "flycheck-popup-tip"; + }; + packageRequires = [ emacs flycheck popup ]; + meta = { + homepage = "https://melpa.org/#/flycheck-popup-tip"; + license = lib.licenses.free; + }; + }) {}; flycheck-pos-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, pos-tip }: melpaBuild { pname = "flycheck-pos-tip"; - version = "20161112.912"; + version = "20170504.1504"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck-pos-tip"; - rev = "88b5a6d7ce0f313cbd22d554ea248aab95357d33"; - sha256 = "0jfgq346b4nh9wry3mnf4sfbv3l78kgadklvbv0nxykvlpx9c1rv"; + rev = "7b94c0c1e3185a4350dc39885add3927037ebad8"; + sha256 = "0m56rflfdzddfsr1xlgzfl7i259786hxsnwa0m729140c6v8f5wh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/698843f75e17b9e6160487c0153f9d6b4af288f6/recipes/flycheck-pos-tip"; @@ -24075,6 +24217,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-pycheckers = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-pycheckers"; + version = "20171011.2136"; + src = fetchFromGitHub { + owner = "msherry"; + repo = "flycheck-pycheckers"; + rev = "0cc2d60ae31f7e2b4e5898091f0a9ba7bafdc854"; + sha256 = "09a5x83qw5znxdrvrq71r0sgi77qjz901dhhwgzcfgf986si4rhp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/af36dca316b318d25d65c9e842f15f736e19ea63/recipes/flycheck-pycheckers"; + sha256 = "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq"; + name = "flycheck-pycheckers"; + }; + packageRequires = [ flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-pycheckers"; + license = lib.licenses.free; + }; + }) {}; flycheck-pyflakes = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-pyflakes"; @@ -24120,12 +24283,12 @@ flycheck-rtags = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, rtags }: melpaBuild { pname = "flycheck-rtags"; - version = "20170403.957"; + version = "20170522.2154"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/flycheck-rtags"; @@ -24183,12 +24346,12 @@ flycheck-status-emoji = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild }: melpaBuild { pname = "flycheck-status-emoji"; - version = "20170405.1600"; + version = "20170923.1439"; src = fetchFromGitHub { owner = "liblit"; repo = "flycheck-status-emoji"; - rev = "c4e891ad287c12b83b754ada27b4550fb763c07f"; - sha256 = "12nlzs4fha1bmq1xbfgf5j4wg9llacl2m3jr8fbk8144pyss3kg5"; + rev = "e85072a04f4277a48d90364b8e48fcb26a650d38"; + sha256 = "12k0nakwv7z90fprpzfrsnmha0w5zsvpq7qiv0md3k3h41b5mgfv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5abd6aaa8d2bf55ae75cd217820763531f91958b/recipes/flycheck-status-emoji"; @@ -24208,8 +24371,8 @@ src = fetchFromGitHub { owner = "swift-emacs"; repo = "flycheck-swift"; - rev = "c6c416a1b7a7d346e5c040e4e4065abc68d3a844"; - sha256 = "0wa60i99jh0dsks30jssg7l17bcmr6jzkwmkjg8brl756p593zp5"; + rev = "4c5ad401252400a78da395fd56a71e67ff8c2761"; + sha256 = "094vpmpjq0skhkq634p3zgj3nmsiq1dl8k0z7hzafnaw2y157z1s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fd99bea06079c4231363c37e3361bd9e5b1ba490/recipes/flycheck-swift"; @@ -24225,12 +24388,12 @@ flycheck-swift3 = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-swift3"; - version = "20170409.25"; + version = "20170926.317"; src = fetchFromGitHub { owner = "GyazSquare"; repo = "flycheck-swift3"; - rev = "6b0b7c6fffc86809d0535afebd6b0972059992d5"; - sha256 = "0d411idv9ib1jhmdbjb8ycc8clmm1ygpwapaka3d50gkgrmfin4q"; + rev = "756833425f51baa9eb0a2fa7493df6e68612c88d"; + sha256 = "1hvrg717q0nlz4r8wby82gs3vdx8fdhf38rg4j77j3fqfmxdd3fi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f1fb8c731c118327dc0bbb726e046fec46bcfb82/recipes/flycheck-swift3"; @@ -24246,12 +24409,12 @@ flycheck-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup }: melpaBuild { pname = "flycheck-tip"; - version = "20160908.1953"; + version = "20171020.348"; src = fetchFromGitHub { owner = "yuutayamada"; repo = "flycheck-tip"; - rev = "53e812ae6d517e8d35907eed8ddcee95c2922e91"; - sha256 = "180c9q273k8167kfkfkvgsadprr34irnmb4qx8ksr3dmg77ghpc8"; + rev = "9b0072d92e6b4a52834bf5a34120a0f5e1c8c2fd"; + sha256 = "1adcxz2chy0qcv5z79hhj05gdzk4l0jijy5iy9nd3sg8sclxf6nq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/024f1e588e94014734fa252ee7bdb00b4991ede9/recipes/flycheck-tip"; @@ -24285,6 +24448,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-vale = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-vale"; + version = "20170619.2322"; + src = fetchFromGitHub { + owner = "abingham"; + repo = "flycheck-vale"; + rev = "97df981468120aaedeaa4cf8ecfd68b07046d998"; + sha256 = "1zic9mirz2xi25pcj3d6r9sclambyn9q5dp7v9jvvxqkml3vy88c"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7693eeb536e601589b49f96d0e2734cd08fad4f2/recipes/flycheck-vale"; + sha256 = "1ny30q81hq62s178rj3jjwsf9f3988dd6pl82r0vq53z3asnsxyd"; + name = "flycheck-vale"; + }; + packageRequires = [ emacs flycheck let-alist ]; + meta = { + homepage = "https://melpa.org/#/flycheck-vale"; + license = lib.licenses.free; + }; + }) {}; flycheck-yamllint = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-yamllint"; @@ -24306,15 +24490,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-yang = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yang-mode }: + melpaBuild { + pname = "flycheck-yang"; + version = "20170915.1308"; + src = fetchFromGitHub { + owner = "andaru"; + repo = "flycheck-yang"; + rev = "c5f65fe3f710f73d56e04d077868719afc1ebfaf"; + sha256 = "00w91mif3wnxgj93qag51yyadnfcsyxik96vf91qlfvwh4wi6ii7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e58b4f4294d11424918b399898c0044f5b76ab14/recipes/flycheck-yang"; + sha256 = "0agfmirjwlz13aq1jh94agav0y1rxkyhj7mngdgys7mwjxy0ac9h"; + name = "flycheck-yang"; + }; + packageRequires = [ flycheck yang-mode ]; + meta = { + homepage = "https://melpa.org/#/flycheck-yang"; + license = lib.licenses.free; + }; + }) {}; flycheck-ycmd = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild, ycmd }: melpaBuild { pname = "flycheck-ycmd"; - version = "20170327.1418"; + version = "20170614.1434"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "35553f0e8b84f6b1dc149b84dedb52b72a64240a"; - sha256 = "1cwbpl2mi63faxj7izl97qn7gc9g1wy8xig89d2yxyv3isb65la2"; + rev = "d951afd8c1c2f25a5cbeef3acfcec5f72acfd6e4"; + sha256 = "0k6z82a3xkk71lbnw3sxqmr8ixafglivmsb5y35q1jichzz6hail"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/flycheck-ycmd"; @@ -24330,12 +24535,12 @@ flymake-coffee = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-coffee"; - version = "20140809.324"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-coffee"; - rev = "325ab379592fdf9017d7c19625c7a978f6f3af3b"; - sha256 = "10i0rbvk6vyifgbgskdyspmw9q64x99fzi8i1h8bgv58xhfx6pm7"; + rev = "dee295acf30820ed15fe0de17137d50bc27fc80c"; + sha256 = "0706jbi3jcmffxmcpvh8w3007q8sh48kgrcjip5c9hhfqpagayld"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-coffee"; @@ -24372,12 +24577,12 @@ flymake-css = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-css"; - version = "20121104.1104"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-css"; - rev = "4649fc209836498d709bb627e8aa6e50189a06ec"; - sha256 = "00cnz3snhs44aknq6wmf19hq9bzb5pj0hvfzz93l6n7ngd8vvpzy"; + rev = "de090163ba289910ceeb61b13368ce42d0f2dfd8"; + sha256 = "18rqzah8p7mqwkddaav1d4r146amvn8jppazvsvc5vs01syj83m9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-css"; @@ -24519,12 +24724,12 @@ flymake-haml = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-haml"; - version = "20130324.351"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-haml"; - rev = "3117d94ecad908710502e8def42dbae5748e9c1d"; - sha256 = "08rcsg76qdq2l6z8q339yw770kv1q657ywqvq6a20pxxz2158a8l"; + rev = "22a81e8484734552d461e7ae7305664dc244447e"; + sha256 = "0pgp2gl3wdwrzcik5b5csn4qp8iv6pc51brx8p7jrwn7bz4lkb82"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-haml"; @@ -24540,12 +24745,12 @@ flymake-haskell-multi = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-haskell-multi"; - version = "20130620.422"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-haskell-multi"; - rev = "6183620ffee429b33c886fffd6106b876245ea47"; - sha256 = "0hwcgas83wwhk0szwgw7abf70400knb8dfabknwv0qrcsk4gqffd"; + rev = "b564a94312259885b1380272eb867bf52a164020"; + sha256 = "1h21hy5fjwa5qxl31rq3jjp3wwkipdwaliq0ci184rw48kw51xjh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e879eca5eb11b2ae77ee2cb8d8150d85e9e93ebd/recipes/flymake-haskell-multi"; @@ -24561,12 +24766,12 @@ flymake-hlint = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-hlint"; - version = "20130309.145"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-hlint"; - rev = "fae0c16f938129fb933e4c4625287816e8e160f0"; - sha256 = "003fdrgxlyhs595ndcdzhmdkcpsf9bpw53hrlrrrh07qlnqxwrvp"; + rev = "f910736b26784efc9a2fa29503f45c1f1dd0aa38"; + sha256 = "157f2l6hllwl12h8f502rq2kl33s202k9bcyfy2cmnn6vhky1b8s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/17820f32d46e845cc44b237d0bfd5c2d898721de/recipes/flymake-hlint"; @@ -24603,12 +24808,12 @@ flymake-jslint = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-jslint"; - version = "20130613.202"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-jslint"; - rev = "68ca28a88cffdd317f50c712b09abd2ccda8d7bc"; - sha256 = "0y01albwwcnhj4pnpvcry0zw7z2g9py9q2p3sw5zhgw3g0v5p9ls"; + rev = "8edb82be605542b0ef62d38d818adcdde335eecb"; + sha256 = "0i6bqpbibsbqhpqfy9zl0awiqkmddi3q8xlrslcjd429f0g5f1ad"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-jslint"; @@ -24624,12 +24829,12 @@ flymake-json = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-json"; - version = "20130423.2357"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-json"; - rev = "36084b67830bdc6c226115ea8287ea88d14b05dd"; - sha256 = "1qn15pr7c07fmki484z5xpqyn8546qb5dr9gcp5n1172wnh2a534"; + rev = "d43e62fab69c4c39f54f1057c9801a3e645de619"; + sha256 = "1zlhxl7x754p4bxipklvz0gjqlwg9c8fiyv7rxdkfaxdzpf9a6zm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acb0a4d29159aa6d74f754911f63152dac3425bd/recipes/flymake-json"; @@ -24708,12 +24913,12 @@ flymake-php = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-php"; - version = "20121104.1102"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-php"; - rev = "93abe12d62b13f1d035a0df01e53e4bacdac2c66"; - sha256 = "09mibjdji5mf3qvngspv1zmik1zd9jwp4mb4c1w4256202359sf4"; + rev = "c045d01e002ba5e09b05f40e25bf5068d02126bc"; + sha256 = "03fk8kzlwbs9k91ra91r7djxlpv5mhbha33dnyz50sqwa52cg8ck"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-php"; @@ -24750,12 +24955,12 @@ flymake-puppet = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-puppet"; - version = "20141006.1855"; + version = "20170731.2254"; src = fetchFromGitHub { owner = "benprew"; repo = "flymake-puppet"; - rev = "fc4cd25aeac37ed5722bc586d5350fd06ee3067c"; - sha256 = "1r3yjqxig2j7l50l787qsi96mkvjcgqll9vb4ci51j7b43d53c5m"; + rev = "9579e5c736cb890195464fabf51df113313de88d"; + sha256 = "1bk16l8rbvrwmcd0zd2yg8xmfn7b036716niy21wfizmar0pk7p7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/302dbe34e7949da9c65e9c7bf2ab924db91b968f/recipes/flymake-puppet"; @@ -24771,12 +24976,12 @@ flymake-python-pyflakes = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-python-pyflakes"; - version = "20131127.6"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-python-pyflakes"; - rev = "f09ec573d7580a69f8bd49778c26da9ab6d5ec5a"; - sha256 = "1aijapvpw4skfhfmz09v5kpaxay6b0bp77bbjkrvgyizsqdd39vp"; + rev = "1d65c26bf65a5dcbd29fcd967e2feb90e1e7a33d"; + sha256 = "0hsvw6rxg3k1ymrav0bf5q3siqr9v2jp4c4h1f98szrj2lp200fm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/49091c0eca4158b80269b6ff5f7f3fc8e981420b/recipes/flymake-python-pyflakes"; @@ -24792,12 +24997,12 @@ flymake-ruby = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-ruby"; - version = "20121104.1059"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-ruby"; - rev = "8dc4ca44ec2acfaab25f5501fca1bd687fae94f2"; - sha256 = "13yk9cncp3zw6d7zkgdpgprpw6wrirk2gxgjvkr15dwcyx1g3109"; + rev = "6c320c6fb686c5223bf975cc35178ad6b195e073"; + sha256 = "0hzyxhg6y1rknvgj2ycivwrlrw7fznw9jrin5n9z627mzpjpfcnk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-ruby"; @@ -24813,12 +25018,12 @@ flymake-rust = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-rust"; - version = "20141004.1552"; + version = "20170729.1439"; src = fetchFromGitHub { owner = "jxs"; repo = "flymake-rust"; - rev = "72ec92c261670b7384ee2593d0f1946ea29f429a"; - sha256 = "1qxb3vhh83ikhmm89ms7irdip2l03hnjcq5ncmgywkaqkpslaacv"; + rev = "2f42d1f2dad73ec9de460eda6176e3ab25c446f0"; + sha256 = "02fgkv9hxwrv8n5h6izb5jyjcpazlf86pjjj4zkv1ycpa6gyzzwn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/flymake-rust"; @@ -24834,12 +25039,12 @@ flymake-sass = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-sass"; - version = "20140308.325"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-sass"; - rev = "748f13caa399c27c41ba797da9e214b814f5a30f"; - sha256 = "0rwjiplpqw3rrh76llnx2fn78f6avxsg0la5br46q1rgw4n8r1w1"; + rev = "2de28148e92deb93bff3d55fe14e7c67ac476056"; + sha256 = "05v83l05knqv2inharmhjvzmjskjlany7dnwp5dz44bvy0jhnm39"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-sass"; @@ -24855,12 +25060,12 @@ flymake-shell = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-shell"; - version = "20121104.1100"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "flymake-shell"; - rev = "ec097bd77db5523a04ceb15a128e01689d36fb90"; - sha256 = "0c2lz1p91yhprmlbmp0756d96yiy0w92zf0c9vlp0i9abvd0cvkc"; + rev = "a16cf453056b9849cc7c912bb127fb0b08fc6dab"; + sha256 = "1ki0zk5ijfkf4blavl62b55jnjzxw2b7blaxg51arpvvbflqmmlh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/flymake-shell"; @@ -24876,12 +25081,12 @@ flymake-solidity = callPackage ({ fetchFromGitHub, fetchurl, flymake-easy, lib, melpaBuild }: melpaBuild { pname = "flymake-solidity"; - version = "20160424.720"; + version = "20170804.2344"; src = fetchFromGitHub { owner = "kootenpv"; repo = "flymake-solidity"; - rev = "07f33ed52aac5d958fc0f50026a9bf111e1a5308"; - sha256 = "1rq47qhp3jdrw1n22cnhvhcxqzbi6v9r94kgf3200vrfp435rvkn"; + rev = "48bfe9525f764d8a68cc0270905dbf45bfd00bb8"; + sha256 = "0v8sf5m0mygqahjyadxgffdf7p59wb0qnghyxajhc69sbg58hnnd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3b13f57b77f6648336a049a8dda37757d4dafd90/recipes/flymake-solidity"; @@ -25086,12 +25291,12 @@ flyspell-popup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "flyspell-popup"; - version = "20150926.803"; + version = "20170529.115"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "flyspell-popup"; - rev = "f31d89ec60364ee24f89c90e9acc110bd86ea67f"; - sha256 = "1rdpggnw9mz3qr4kp5gh9nvwncivj446vdhpc04d4jgrl568bhqb"; + rev = "29311849bfd253b9b689bf331860b4c4d3bd4dde"; + sha256 = "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/186d00724137c055b521a5f5c54acf71c4b16c32/recipes/flyspell-popup"; @@ -25153,8 +25358,8 @@ src = fetchFromGitHub { owner = "troyp"; repo = "fn.el"; - rev = "2842e3c6d1b5c96184fa638c37b25ce5b347a1a6"; - sha256 = "0kxpy87f44gkfzrnhcrprca0irkpddpbw7wbrm4aidw0synpab91"; + rev = "2dc78b7ef9e24f9fe872d40c8fe6050f7ce819cf"; + sha256 = "0nvhis3myclgvazhiljv7fgis1x5hwr5rr8rhxx3290fgsgdp0bw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6d2929604b6dd21d6cf425643927a9c216801dc1/recipes/fn"; @@ -25170,12 +25375,12 @@ focus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "focus"; - version = "20161113.1145"; + version = "20170612.743"; src = fetchFromGitHub { owner = "larstvei"; repo = "Focus"; - rev = "75202c9445f52eab6fb82f00006f37cd20dae6b2"; - sha256 = "1v9y3dp7sd4rsm31myp3l1jxpwjw3madajb6yz9rw0yhdirfwgbg"; + rev = "a84ade00a2b57e47430d5b2df5246069f197356f"; + sha256 = "0qz52gak45nbi6pgsdl3h2a01d89gbzm0glpv1jjy5dvabr98835"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e8f1217224514f9b048b7101c89e3b1a305821e/recipes/focus"; @@ -25296,12 +25501,12 @@ folding = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "folding"; - version = "20140401.3"; + version = "20170925.838"; src = fetchFromGitHub { owner = "jaalto"; repo = "project-emacs--folding-mode"; - rev = "f738e28cd90d794aff698bcd44bf4f5027c92839"; - sha256 = "1z2dkyzj1gq3gp9cc3lhi240f8f3yjpjnw520xszm0wvx1rp06ny"; + rev = "3bf134fd1ecfa8767ab7020c25281ea5ce9968a2"; + sha256 = "0kcm4k71syz778cbwqf68a63k4vmhygaib3ylwxbm5dq1dmr7iry"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1912296b7879019bea5ba8353d511496e3a9ca2d/recipes/folding"; @@ -25314,24 +25519,6 @@ license = lib.licenses.free; }; }) {}; - font-lock-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "font-lock-plus"; - version = "20170222.1755"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/font-lock+.el"; - sha256 = "0iajkgh0n3pbrwwxx9rmrrwz8dw2m7jsp4mggnhq7zsb20ighs30"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/font-lock+"; - sha256 = "1wn99cb53ykds87lg9mrlfpalrmjj177nwskrnp9wglyqs65lk4g"; - name = "font-lock-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/font-lock+"; - license = lib.licenses.free; - }; - }) {}; font-lock-profiler = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "font-lock-profiler"; @@ -25419,16 +25606,16 @@ forecast = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "forecast"; - version = "20170221.1327"; + version = "20170924.1440"; src = fetchFromGitHub { owner = "cadadr"; - repo = "forecast.el"; - rev = "1eb60db1760572e3b1b87f6d672e3aa0812d6d94"; - sha256 = "1imrn4wc744fdcm1pkfjk8gmilzcrjzawbcg6mhdkzsz5cnb7klb"; + repo = "elisp"; + rev = "b3d8b45c76134e2248448d719c840776e41b747a"; + sha256 = "0fy0b04mf3brx86xjnidkwg4zs4nh123nc6pgrl4mp6d6552vv98"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e6ff6a4ee29b96bccb2e4bc0644f2bd2e51971ee/recipes/forecast"; - sha256 = "0whag2n1120384w304g0w4bqr7svdxxncdhnz4rznfpxlgiw2rsc"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a7ea18a56370348715dec91f75adc162c800dd10/recipes/forecast"; + sha256 = "0zng8xdficpfccq484pghzg8yylihcy8aq0vpxd1w6l40m2qf6zn"; name = "forecast"; }; packageRequires = [ emacs ]; @@ -25461,12 +25648,12 @@ foreman-mode = callPackage ({ dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "foreman-mode"; - version = "20160520.737"; + version = "20170725.722"; src = fetchFromGitHub { owner = "zweifisch"; repo = "foreman-mode"; - rev = "bc6e2aca5a66847b13200b85172f7d7a36807d32"; - sha256 = "0pp68kqg2impar6rhlpifixx0lqgkcrj6ncjn5jlids6vfhq23nd"; + rev = "22b3bb13134b617870ed1e888af739f4818be929"; + sha256 = "01qanhif24czcmhpdfkcjs019ss4r79f7y2wfbzmj6w4z7g3rikk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/edeeb2b52ac70f8bdad38d3af62a7e434853c504/recipes/foreman-mode"; @@ -25545,12 +25732,12 @@ forth-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "forth-mode"; - version = "20170208.2305"; + version = "20170527.1230"; src = fetchFromGitHub { owner = "larsbrinkhoff"; repo = "forth-mode"; - rev = "52d84393c09be34934efe3cf80849d438cffb632"; - sha256 = "15lq5q0vzzy8hppzxn06wkm843zhnhq922sg0f9bxcnwvs7v2v99"; + rev = "522256d98d1a909983bcfd3ae20c65226d5929b6"; + sha256 = "110ycl8zkimy2818rhp3hk3mn2y25m695shdsy6dwxnrv90agss6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e46832079ee34c655835f06bf565ad5a5ab48ebd/recipes/forth-mode"; @@ -25608,12 +25795,12 @@ fountain-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fountain-mode"; - version = "20161207.141"; + version = "20170728.507"; src = fetchFromGitHub { owner = "rnkn"; repo = "fountain-mode"; - rev = "37289bb68f01dd49b1192032ade6b0741d024a54"; - sha256 = "06bqnyx2h0ypyxy5vxrh3v75qqfcmfgx31xkip7w6sj6pbfc8dq5"; + rev = "be10ce90ede2d76b67abb5eff9c09294fe189f1e"; + sha256 = "17zipwazcqqbbsb7p9j2jcid2m0knlah56vbw71yxqb3qbpq7fcz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/913386ac8d5049d37154da3ab32bde408a226511/recipes/fountain-mode"; @@ -25647,40 +25834,24 @@ license = lib.licenses.free; }; }) {}; - frame-cmds = callPackage ({ fetchurl, frame-fns, lib, melpaBuild }: + frame-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { - pname = "frame-cmds"; - version = "20170222.1758"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/frame-cmds.el"; - sha256 = "1r2hyl7f1rgw20mh8nj0lzf491p5pl4pfprv0yj0jls5jaqds4xc"; + pname = "frame-mode"; + version = "20170419.1427"; + src = fetchFromGitHub { + owner = "IvanMalison"; + repo = "frame-mode"; + rev = "fcdbafbda45758cd60ab3acb492fbbd692987a58"; + sha256 = "1sdxbjxx1lk2j220794af2qz9z068bmx55drm8h0b8kih0037ydn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/frame-cmds"; - sha256 = "0xwzp6sgcb5ap76hpzm8g4kl08a8cgq7i2x9w64njyfink7frwc0"; - name = "frame-cmds"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e83da89eeee834cc14c0b128d55ef3634f76fd0/recipes/frame-mode"; + sha256 = "0ch58x07fnsx3v3r9cvcmqrqws121m8achjilhqk988hkg7y47c8"; + name = "frame-mode"; }; - packageRequires = [ frame-fns ]; + packageRequires = [ emacs s ]; meta = { - homepage = "https://melpa.org/#/frame-cmds"; - license = lib.licenses.free; - }; - }) {}; - frame-fns = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "frame-fns"; - version = "20170222.1759"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/frame-fns.el"; - sha256 = "1yl51wnmlmbirrhcf07rnqix62q7ijymwfbahwjsz2s18g2zyj6n"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/frame-fns"; - sha256 = "1wq8wva9q1hdzkvjk582a3fgig0lpqz9ch1p2jd6p29kb1i15f5p"; - name = "frame-fns"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/frame-fns"; + homepage = "https://melpa.org/#/frame-mode"; license = lib.licenses.free; }; }) {}; @@ -25705,40 +25876,22 @@ license = lib.licenses.free; }; }) {}; - framemove = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "framemove"; - version = "20130328.433"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/framemove.el"; - sha256 = "03ll68d0j0b55rfxymzcirdigkmxcy8556d0i67ghdzmcqfwily7"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f075338369dbf0694205c1b2c35dc16821f6dc92/recipes/framemove"; - sha256 = "10qf017j0zfnzmcs1i56pznhbvgw7mv4232p8znqaaxphgh6r0ar"; - name = "framemove"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/framemove"; - license = lib.licenses.free; - }; - }) {}; - frames-only-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: + frames-only-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "frames-only-mode"; - version = "20170129.120"; + version = "20170802.455"; src = fetchFromGitHub { owner = "davidshepherd7"; repo = "frames-only-mode"; - rev = "5a2947d797a5d6f74d3a9c97f8c0ab6cff115b28"; - sha256 = "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"; + rev = "d2e6a825e2079adb58012e9677c494d317494724"; + sha256 = "1x8w2788yaqfi5ys541kp4wi3rcfa2lvbhnxgd8dwr9h0da332xa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e628416ad9420b3ac5bbfacf930a86d98958ac8/recipes/frames-only-mode"; sha256 = "17p04l16ghz9kk096xk37yjpi4rmla86gp7c8ysjf6q6nyh0608h"; name = "frames-only-mode"; }; - packageRequires = [ emacs seq ]; + packageRequires = [ dash emacs s ]; meta = { homepage = "https://melpa.org/#/frames-only-mode"; license = lib.licenses.free; @@ -25765,6 +25918,27 @@ license = lib.licenses.free; }; }) {}; + frecency = callPackage ({ a, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "frecency"; + version = "20170908.2331"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "frecency.el"; + rev = "132130088ef5695cffed6fcacfa219cb0c389026"; + sha256 = "17s34gaq6jvwr6f4l500xyhv33ykwxiwzsq2rrasgs7l301wqsw0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d7a6e855d01e0b1c9a23c006af67c487719c50bd/recipes/frecency"; + sha256 = "033zhzwvh23igfqxbiy68cq6i1wflna19pbg81r0hh9kcfg2afpa"; + name = "frecency"; + }; + packageRequires = [ a dash emacs ]; + meta = { + homepage = "https://melpa.org/#/frecency"; + license = lib.licenses.free; + }; + }) {}; free-keys = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "free-keys"; @@ -25852,12 +26026,12 @@ fsharp-mode = callPackage ({ company, company-quickhelp, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, pos-tip, s }: melpaBuild { pname = "fsharp-mode"; - version = "20170416.335"; + version = "20171021.431"; src = fetchFromGitHub { owner = "rneatherway"; repo = "emacs-fsharp-mode-bin"; - rev = "c2acdaaf36176d36ccadfe73c2593362ef930ebd"; - sha256 = "00am42hl5icvbw5d7kpbdcl9sr8flsgl1pqmcxqpcz30yw6f4pr2"; + rev = "5504550605354146842c8f5c34482ece778b7b31"; + sha256 = "0hjqgyjch8fdz54akcpw5kmx2z1yvck6k8qyc0mzzmb54iiayf5a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc45611e2b629d8bc5f74555368f964420b79541/recipes/fsharp-mode"; @@ -25878,27 +26052,56 @@ license = lib.licenses.free; }; }) {}; - fstar-mode = callPackage ({ company, dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, quick-peek, yasnippet }: + fstar-mode = callPackage ({ company, company-quickhelp, dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, quick-peek, yasnippet }: melpaBuild { pname = "fstar-mode"; - version = "20170415.1236"; + version = "20171018.847"; src = fetchFromGitHub { owner = "FStarLang"; repo = "fstar-mode.el"; - rev = "f40c9358b1749bf413a8b30c94d14284890d16c5"; - sha256 = "130k0aii2b5k5r54axcy9n3jsn9y8avdwdnbnl0saw7hc9ykwcpa"; + rev = "98647eb56be24e27cf6abd210dac8c6299cd977f"; + sha256 = "1dhk9h7gf0hc8w9sdcgk89cbcjlxf4w7hn235rxd6iz7m4n28jzz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/fstar-mode"; - sha256 = "1cjwai0qf48m18dsa0r9sh4qlgvdzg5ajfbmxxc2vqzcl5ygrxjx"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c58ace42342c3d3ff5a56d86a16206f2ecb45f77/recipes/fstar-mode"; + sha256 = "1kwa6gqh91265vpp4gcady2brkizfkfjj0gnya9lar6x7rn4gj7s"; name = "fstar-mode"; }; - packageRequires = [ company dash emacs flycheck quick-peek yasnippet ]; + packageRequires = [ + company + company-quickhelp + dash + emacs + flycheck + quick-peek + yasnippet + ]; meta = { homepage = "https://melpa.org/#/fstar-mode"; license = lib.licenses.free; }; }) {}; + fuel = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "fuel"; + version = "20170805.2030"; + src = fetchFromGitHub { + owner = "factor"; + repo = "factor"; + rev = "d2f3977768f5588b9467cc73c12d9a1de204d9e8"; + sha256 = "1cx1fyr372zhkf35mjvl46c3zim7whz8z2ax88dqavh67h92ai9h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/fuel"; + sha256 = "08hzzg5dhqkl5c5lfhwcwmx8m8z3k1nxshn2wlpqf5gch8f2nj6z"; + name = "fuel"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/fuel"; + license = lib.licenses.free; + }; + }) {}; fuff = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "fuff"; @@ -25944,12 +26147,12 @@ fullframe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fullframe"; - version = "20160504.749"; + version = "20170816.303"; src = fetchFromGitHub { owner = "tomterl"; repo = "fullframe"; - rev = "b91b0b128c08692c147394842a5e4eeb21ebe0b6"; - sha256 = "0nhw708b5jjymbw3b7np11jlkzdrzq7qnnxdyl8nndsn1c3qcr0l"; + rev = "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd"; + sha256 = "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1dc5c39543b65c6bb4150c3690211872c00dc/recipes/fullframe"; @@ -25962,22 +26165,22 @@ license = lib.licenses.free; }; }) {}; - function-args = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, swiper }: + function-args = callPackage ({ fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "function-args"; - version = "20170303.515"; + version = "20171031.1004"; src = fetchFromGitHub { owner = "abo-abo"; repo = "function-args"; - rev = "a559041e5fed851c889bcfed7553a4dcd855ffae"; - sha256 = "0cc9djbsr3i5w9zsiblk1f9y45czkiwjmn32kzf3fni4rxwvc8xk"; + rev = "609b25305670fff08d5e357298e7128e4f4e3497"; + sha256 = "1xymwk42n2l7c7iaigz23i4l580qpjgq8nqhgr4mnw6invdsgg2c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/80688d85a34b77783140ad2b8a47ef60c762b084/recipes/function-args"; sha256 = "13yfscr993pll5yg019v9dwy71g123a166w114n2m78h0rbnzdak"; name = "function-args"; }; - packageRequires = [ swiper ]; + packageRequires = [ ivy ]; meta = { homepage = "https://melpa.org/#/function-args"; license = lib.licenses.free; @@ -26007,12 +26210,12 @@ futhark-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "futhark-mode"; - version = "20170408.908"; + version = "20171026.722"; src = fetchFromGitHub { owner = "HIPERFIT"; repo = "futhark"; - rev = "dbebfec3bf64a3d74adf978d2f6a059739ac2472"; - sha256 = "1l722z28hbqma1qgsydfjkxb0p24c80splpxx752x74qi2cid71z"; + rev = "bfb9c4a565ac655322efe5c7bb1f77d255762846"; + sha256 = "141q924pacsxxfsy3yngyh7a9saipjszpm529s0d4hqqws2glxvz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0607f01aad7e77d53595ad8db95d32acfd29b148/recipes/futhark-mode"; @@ -26046,42 +26249,6 @@ license = lib.licenses.free; }; }) {}; - fuzzy-format = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "fuzzy-format"; - version = "20130824.500"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/fuzzy-format.el"; - sha256 = "1iv0x1cb12kknnxyq2gca7m3c3rg9s4cxz397sazkh1csrn0b2i7"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/154cb0a10c81ce4907029f0eddc51108961c65ae/recipes/fuzzy-format"; - sha256 = "055b8710yxbi2sdqsqk6jqgnzky4nykv8jgqgwy8q2isgj6q98jb"; - name = "fuzzy-format"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/fuzzy-format"; - license = lib.licenses.free; - }; - }) {}; - fuzzy-match = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "fuzzy-match"; - version = "20170222.1800"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/fuzzy-match.el"; - sha256 = "1wxl900wikkzykzp95v84kcyw3m1d16hklhyqqhsmg58ph4i6r94"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/fuzzy-match"; - sha256 = "0c1f4q985ag5qhv15iw2jhmpsyy09fbj87srp4k58lspjf40acdj"; - name = "fuzzy-match"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/fuzzy-match"; - license = lib.licenses.free; - }; - }) {}; fvwm-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fvwm-mode"; @@ -26127,12 +26294,12 @@ fxrd-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "fxrd-mode"; - version = "20170125.228"; + version = "20170728.1101"; src = fetchFromGitHub { owner = "msherry"; repo = "fxrd-mode"; - rev = "8a1a0d5a08527ec8dee9bbe135803ed7ad297d9d"; - sha256 = "1yzw0fnlqilpx4xl84hpr75l86y9iiqyh13r1hskmwb79s2niw1m"; + rev = "18a603474abb5a786a8d9f20c283d5f7beed3540"; + sha256 = "1yprlpxxh7bbxg8filgb00lqqlavbz03h7hqf4280aiypkwi0y86"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/796eb6b2126ec616c0de6af6abb7598900557c12/recipes/fxrd-mode"; @@ -26169,12 +26336,12 @@ fzf = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fzf"; - version = "20161226.936"; + version = "20171026.554"; src = fetchFromGitHub { owner = "bling"; repo = "fzf.el"; - rev = "779254fe1ec7a0c9110af36fd039cece3040a312"; - sha256 = "1p0k71vz9v8vx5h85ph1krb9v0jyhmq73h91ws9zcxpf1bdgy050"; + rev = "ef1dc851077913a327261a6b971fab5f5f657831"; + sha256 = "12zbvr7806xiyx2q944nfnqqfnm43v9ziaihkb9n10s2sp6ippb7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1671e17c99ef1932c6a2e83fc4fa2e4eb6674bc8/recipes/fzf"; @@ -26234,11 +26401,11 @@ version = "20160204.736"; src = fetchhg { url = "https://bitbucket.com/gvol/gap-mode"; - rev = "1de32f2ff384"; - sha256 = "1jsw2mywc0y8sf7yl7y3i3l8vs3jv1srjf34lgb5xfz6p8wc5lc0"; + rev = "617eff4ff846"; + sha256 = "08dx8ijivhsfmqkxn33121qcjd6nckpn0jdlh0lhx4z4zg8x37bl"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/gap-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/83ec19a4ebac6b2d0fd84939b393848f82620978/recipes/gap-mode"; sha256 = "07whab3gi4b8gsvy5ijmjnj700lw0rm3bnr1769byhnpi7qpqin2"; name = "gap-mode"; }; @@ -26272,12 +26439,12 @@ geben = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "geben"; - version = "20170125.1937"; + version = "20170801.551"; src = fetchFromGitHub { owner = "ahungry"; repo = "geben"; - rev = "7639411604552fcb6352afe88522a9ff1c8132fc"; - sha256 = "02pic12kfa9794sz7qj57ca5ld8x1pk0apfr3h2xzr6zdsmsdday"; + rev = "ec3f5e9376cf1ea5615990bd8c212543d57f033b"; + sha256 = "0860nnarbm76jp40v7p5d2wdnq12p03paiw17g3h5p27wnaj611d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f8648609e160f7dcefe4a963e8b00475f2fff78/recipes/geben"; @@ -26297,8 +26464,8 @@ src = fetchFromGitHub { owner = "ahungry"; repo = "geben-helm-projectile"; - rev = "14db489efcb20c5aa9102288c94cec3c5a87c35d"; - sha256 = "1nd1jhy393vkn2g65zhygxkpgna0l8gkndxr8jb6qjkkapk58k8l"; + rev = "31ce0faca5dcc71924884f03fd5a7a25d00ccd9b"; + sha256 = "0a1srhwfbgkvndjfi9irg5s6snlxyqrw1vwyqg1sn8aqnbpgib04"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b7d28c45304a69e6ca78b3d00df2563171c027ee/recipes/geben-helm-projectile"; @@ -26335,12 +26502,12 @@ geiser = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "geiser"; - version = "20170411.1021"; + version = "20171010.1610"; src = fetchFromGitHub { owner = "jaor"; repo = "geiser"; - rev = "41059d6295dbaa207b2203fb6b78003de4888714"; - sha256 = "19ri8q3wbpw3vsw2iq1ym60gk0j4f9bniipiddrjqqirhcns8zzq"; + rev = "c266950549a7a0841bf21e092fba632a1e061187"; + sha256 = "14axzczgnsvmwl32qvpw9p53iknwrya8jbqzhc4d2s4p9vrghk1z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b0fe32d24cedd5307b4cccfb08a7095d81d639a0/recipes/geiser"; @@ -26353,22 +26520,22 @@ license = lib.licenses.free; }; }) {}; - general = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + general = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "general"; - version = "20170328.954"; + version = "20171031.1345"; src = fetchFromGitHub { owner = "noctuid"; repo = "general.el"; - rev = "fa0e6e2d2a9c06671fd44b5d938ea24387654525"; - sha256 = "0wnh24jnnf0kl291l36hykx86nrn74kqwxlwzd2llydbhk07sq8s"; + rev = "6828a859af771df5ec1bf50b67f0fcc7261b5a11"; + sha256 = "13sm85dybjhnqqgkshc4n4m3vm6pd949ppxyb5li7f0znhq6l3ai"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d86383b443622d78f6d8ff7b8ac74c8d72879d26/recipes/general"; sha256 = "104ywsfylfymly64p1i3hsy9pnpz3dkpmcq1ygafnld8zjd08gpc"; name = "general"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/general"; license = lib.licenses.free; @@ -26461,12 +26628,12 @@ ggtags = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ggtags"; - version = "20161022.251"; + version = "20170918.1838"; src = fetchFromGitHub { owner = "leoliu"; repo = "ggtags"; - rev = "2149f3a4a855ccebbe0c8832079a9f5d5d50909a"; - sha256 = "1nggwr28wbiz0ch7c5w9rs909gm5qxdqhfnv7d4zikfh568dv8y5"; + rev = "6293c438a4a7aae08b8f5dd5fc0082d3da0aa530"; + sha256 = "0rb293wjnc36gjy1vvvqsy605nn0vli1b1w210vvcjbg7zgcsak1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b158bb1bc2fbe3de61a6b21174eac7b1457edda2/recipes/ggtags"; @@ -26482,12 +26649,12 @@ gh = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, logito, marshal, melpaBuild, pcache, s }: melpaBuild { pname = "gh"; - version = "20161119.2004"; + version = "20170512.2049"; src = fetchFromGitHub { owner = "sigma"; repo = "gh.el"; - rev = "6a76836a2ed1ebc3380dcfbe2b46786abf905fab"; - sha256 = "0anlavmfhm0ax6566sl9ih0j4v80s313n32d4yfp9lh4f1drp62k"; + rev = "76255942ccc84d5cf918a2b6411a8ac98a7c8585"; + sha256 = "09b09zqawll6lbrhl352x7g62s4spq97rd8x32shn9m01w6paz9r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/gh"; @@ -26524,12 +26691,12 @@ ghc = callPackage ({ fetchFromGitHub, fetchurl, haskell-mode, lib, melpaBuild }: melpaBuild { pname = "ghc"; - version = "20160808.813"; + version = "20170613.1212"; src = fetchFromGitHub { owner = "DanielG"; repo = "ghc-mod"; - rev = "50617fe41d382132472c3beec50749b21e21325c"; - sha256 = "1l2a7nab0d3w75qv30597ib5s4gfj0jghdjqfcjcr9267jz1yhs4"; + rev = "06515c44830788254602af90118de07ae2effb12"; + sha256 = "1ymjq9nsqzf8vhrzniwqzszwbdlq5y2nmr8pgbwhmh3bvfbpj7ff"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/ghc"; @@ -26591,8 +26758,8 @@ src = fetchFromGitHub { owner = "candera"; repo = "gherkin-mode"; - rev = "d84a2977a536f2f8bf4836aebc33a4e86925673d"; - sha256 = "0lcbyw6yrl6c8py5v2hqghcbsf9cbiplzil90al4lwqps7rw09a8"; + rev = "ff9e47350c5ba319feb6b87fe20695519681fa64"; + sha256 = "0dbdms3ddsfhscwy7jj0cfpn3jdxnzynrfz5jps2l91adx2g011y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82d80becedead8db441eed6f7856ca64d78815e2/recipes/gherkin-mode"; @@ -26608,16 +26775,16 @@ ghost-blog = callPackage ({ fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: melpaBuild { pname = "ghost-blog"; - version = "20160526.257"; + version = "20171023.42"; src = fetchFromGitHub { owner = "javaguirre"; repo = "ghost-blog-emacs"; - rev = "d4e66d114ff7b846b967af4cff64dcafa381ead3"; - sha256 = "174swf066vcf99g38c9x5lxp14fyh59cy9lriywhm6hk7mcaakng"; + rev = "71b358643cc9a2db1bf752281ff94aba9b59e4cc"; + sha256 = "1fkh7zslkdi7a4x2xrk73acmigbi7yx9k6iaj75zbjfd49gyqj13"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ghost-blog"; - sha256 = "0289hgvrx96bfpvpbidwi2761kmscg5nzny7g5gxmy3xzzm9bqkj"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/4a906d461bcb2aa07050b72669feb5787414d809/recipes/ghost-blog"; + sha256 = "0c591cx5kkfmhhqh8jall470iicxdv01mm3m13irq5xhmp3i5kjy"; name = "ghost-blog"; }; packageRequires = [ markdown-mode ]; @@ -26650,16 +26817,16 @@ ghub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ghub"; - version = "20160808.538"; + version = "20170803.601"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "magit"; repo = "ghub"; - rev = "f9535e53fe6c5ffb18986ebf51e8529b9ec0da63"; - sha256 = "17cn3xl40kp2mx3w89w0cds47jrvx76ms2js3a9nr4bb0cgyw1yv"; + rev = "7c52e9063ad10f76d45d816a92c65cf1f6c7b9af"; + sha256 = "1iynfqza146mnkvsgfjnfmja4m42m71s0nw015iks428nzrrkf1j"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9375cbae3ffe5bf4ba5606358860050f3005d9b7/recipes/ghub"; - sha256 = "01kzziqv5y798rps52w45kkdcn0shhb6mrina2iawab4rlvlmnd8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d5db83957187c9b65f697eba7e4c3320567cf4ab/recipes/ghub"; + sha256 = "15kjyi8ialpr1zjqvw68w9pa5sigcwy2szq21yvcy295z7ylzy4i"; name = "ghub"; }; packageRequires = [ emacs ]; @@ -26668,6 +26835,48 @@ license = lib.licenses.free; }; }) {}; + ghub-plus = callPackage ({ apiwrap, emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }: + melpaBuild { + pname = "ghub-plus"; + version = "20171019.944"; + src = fetchFromGitHub { + owner = "vermiculus"; + repo = "ghub-plus"; + rev = "e04050f81106029c342deb7adbfc67b2a888ec58"; + sha256 = "0ydd6aiy8x878jlzp88gi30yslhkcin0rbdjirj2vjs88cfvcjq6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/03a412fd25218ff6f302734e078a699ff0234e36/recipes/ghub+"; + sha256 = "0xx7nwmjx3f7z6z164x1lb9arbb3m3d16mpn92v66w572rhbr34n"; + name = "ghub-plus"; + }; + packageRequires = [ apiwrap emacs ghub ]; + meta = { + homepage = "https://melpa.org/#/ghub+"; + license = lib.licenses.free; + }; + }) {}; + gift-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gift-mode"; + version = "20170809.130"; + src = fetchFromGitHub { + owner = "csrhodes"; + repo = "gift-mode"; + rev = "573e4a8001e9585d347a99323a1649c2055ae5ff"; + sha256 = "0qhhgwhj5nghlq5nrz7ycy2y5s1q10xzsahlh41fm5givm0rb650"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c4c9081a60bdbf4e5fe1ccc4809c0f6f396d11e4/recipes/gift-mode"; + sha256 = "0sybrjmcg90cjaax7lzzqvacirn5l23hqy9d843c660fsv98scg1"; + name = "gift-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/gift-mode"; + license = lib.licenses.free; + }; + }) {}; gildas-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, polymode }: melpaBuild { pname = "gildas-mode"; @@ -26692,12 +26901,12 @@ gist = callPackage ({ emacs, fetchFromGitHub, fetchurl, gh, lib, melpaBuild }: melpaBuild { pname = "gist"; - version = "20161127.855"; + version = "20170604.1834"; src = fetchFromGitHub { owner = "defunkt"; repo = "gist.el"; - rev = "62888de7f776c867a51cee4d5d55edc561e519cc"; - sha256 = "0xvmrpx3gbdancxhggw7k7r2bzlwmni9vynsjf5ddpv5alw2bscx"; + rev = "a03f142455e8b39f77fbd57ee1c1e44478c1f9e2"; + sha256 = "1xisjaxr54zrxzxj8cp8f90kzphd5v3j56d14534fm5r1f5343vp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/gist"; @@ -26717,8 +26926,8 @@ src = fetchFromGitHub { owner = "rejeep"; repo = "git.el"; - rev = "2b523c1975d4f258effaf826656c4b7120b2a19f"; - sha256 = "0471xm0h6jkmxnrcqy5agq42i8immdb2qpnw7q7czrbsl521al8d"; + rev = "a3396a7027a7d986598c6a2d6d5599bac918f3da"; + sha256 = "10siqf21ay6vl1r1v2c93rajzyjc67m4wq9q88pbij0z18vkq2f0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ce19d2716416295966716db47241a0e37b412ab5/recipes/git"; @@ -26734,12 +26943,12 @@ git-annex = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "git-annex"; - version = "20170120.931"; + version = "20170417.1653"; src = fetchFromGitHub { owner = "jwiegley"; repo = "git-annex-el"; - rev = "d574b9d9e264167245e49bb96b000988a83af259"; - sha256 = "0c1hqff1g1ahaqalfdp09g7qk852bj83dcwd94q3wwmnsy1mf493"; + rev = "22b7161adcd144f88681b9b904972cea42b27fca"; + sha256 = "038h1dnvncdjy7q1ix3xrx4yqfqfp4ll69ksipj5kawsrch75nh6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c91e16bb9e92db9dc9be6a7af3944c3290d2f14/recipes/git-annex"; @@ -26818,12 +27027,12 @@ git-commit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }: melpaBuild { pname = "git-commit"; - version = "20170314.1414"; + version = "20171007.346"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "3c7ac0ed47b8597749f8eaa1b27b9a2029dc2754"; - sha256 = "0hfar78wkn69s54dkn5m4ky6bvx8sh66sszy67nvqpr5ax9y8dkl"; + rev = "5c08d09cdaad506ca94616c59f39982f43f4c12f"; + sha256 = "053ff7gr56chbfg3n6ysn5q13db2rjr5s7nkplkv72hzla381dys"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/git-commit"; @@ -26836,22 +27045,22 @@ license = lib.licenses.free; }; }) {}; - git-commit-insert-issue = callPackage ({ fetchFromGitLab, fetchurl, github-issues, gitlab, helm, lib, melpaBuild, projectile, s }: + git-commit-insert-issue = callPackage ({ bitbucket, fetchFromGitLab, fetchurl, github-issues, gitlab, helm, lib, melpaBuild, projectile, s }: melpaBuild { pname = "git-commit-insert-issue"; - version = "20170109.734"; + version = "20170502.1027"; src = fetchFromGitLab { owner = "emacs-stuff"; repo = "git-commit-insert-issue"; - rev = "7b8cf1f5ce9b2c19e9b7efe1ef03f3e37098eea7"; - sha256 = "13vd83k6sc3wy4552gvx7zmnmjpa7zs9nk1dlp5v8fc8p3j7afgb"; + rev = "8d2448959073646d652687355efec6ba7b1e1af8"; + sha256 = "1ix2hbs3dfvjlpldpnb06j9al13zss6gmgl6l09dq2ic4warbag7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/git-commit-insert-issue"; sha256 = "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax"; name = "git-commit-insert-issue"; }; - packageRequires = [ github-issues gitlab helm projectile s ]; + packageRequires = [ bitbucket github-issues gitlab helm projectile s ]; meta = { homepage = "https://melpa.org/#/git-commit-insert-issue"; license = lib.licenses.free; @@ -26965,12 +27174,12 @@ git-lens = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "git-lens"; - version = "20170403.418"; + version = "20170517.144"; src = fetchFromGitHub { owner = "pidu"; repo = "git-lens"; - rev = "77e74e8575e3be49ff19b9d79bd4b8d9d8a662e0"; - sha256 = "1axh9v1svb6353g2mqkfk9d0b7q1g4rkscw6nj1g9z72ix4rmnch"; + rev = "91bf19d6dd7368de5cad373a8155c48c4e254723"; + sha256 = "1gszcsji3n42xpshz1pzyvlrd0hxjh14fr4n0ixqv2igk3fywxr3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/66fd7c0642e8e61b883d2030f88892d039380475/recipes/git-lens"; @@ -26986,12 +27195,12 @@ git-link = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "git-link"; - version = "20170301.1618"; + version = "20170603.1026"; src = fetchFromGitHub { owner = "sshaw"; repo = "git-link"; - rev = "8d43732a753bcea8a7777b03755c17a0f45094d2"; - sha256 = "1p439cwrxkcf36qfv93j8h2xyynynysr9ch9w662mhm7k7fgwc65"; + rev = "472af75eca7aba42a1934f408c4bda55e34c9dcf"; + sha256 = "0xgvwg2zxb9akk3kxxcz5cvgw4zkbqx5p4b5in01z5aj4lqmjw6s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1385443585e628e3d4efb3badb7611e9d653e0c9/recipes/git-link"; @@ -27095,8 +27304,8 @@ src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "0be857ef001adb9b58770bd4e70d3103d2557277"; - sha256 = "0b7c0dkrm7szvk83945ribdj5k9mxs7pmbillgh2b51rsrkk16rz"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b4e2ddd2a80875afc0fc654052e6cbff2f3777f/recipes/gitattributes-mode"; @@ -27133,12 +27342,12 @@ gitconfig-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gitconfig-mode"; - version = "20160710.1913"; + version = "20170627.854"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "0be857ef001adb9b58770bd4e70d3103d2557277"; - sha256 = "0b7c0dkrm7szvk83945ribdj5k9mxs7pmbillgh2b51rsrkk16rz"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/44a37f59b87f59a587f6681e7aadfabf137c98d7/recipes/gitconfig-mode"; @@ -27235,15 +27444,36 @@ license = lib.licenses.free; }; }) {}; + github-modern-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "github-modern-theme"; + version = "20170628.2332"; + src = fetchFromGitHub { + owner = "philiparvidsson"; + repo = "GitHub-Modern-Theme-For-Emacs"; + rev = "1890ab87ca8a046b3fc7b54220647d9ef43a6780"; + sha256 = "00jw2qf4x943sib0j6grcmm3lfr0ac23wa3vnzjzc509v4l7jzwp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d5506d93bd8cf59cd281091b377c1bb9a4243666/recipes/github-modern-theme"; + sha256 = "1falal6cffiih3q8q9xdyv7bkzw43p56d8ln13g9ad1jz319b3fi"; + name = "github-modern-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/github-modern-theme"; + license = lib.licenses.free; + }; + }) {}; github-notifier = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "github-notifier"; - version = "20161102.755"; + version = "20170604.2119"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "github-notifier.el"; - rev = "12621caa8d78bf2b559d2113ef476a8f2c2a4e0e"; - sha256 = "1cwabnm6nirmrwdq14l3pqdjh40h49icbfjx3z86rppp7cj3dmlm"; + rev = "f8d011ebef9f626a94a27b5576c8ed06e6ff8987"; + sha256 = "0glkn36fs93y2n1583k8v958qfhl212hbdk3cpkq432hj08wzjnr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c09f4e7e8a84a241881d214e8359f8a50ab14ddf/recipes/github-notifier"; @@ -27280,12 +27510,12 @@ github-search = callPackage ({ fetchFromGitHub, fetchurl, gh, lib, magit, melpaBuild }: melpaBuild { pname = "github-search"; - version = "20160822.1328"; + version = "20170823.2023"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "github-search"; - rev = "24435772bf8c2c55b4f228917a1344d785851e2a"; - sha256 = "1863g5gphlz1xr465r9nplf5n3ajz1b6girswf3fv1gk8xl1swjj"; + rev = "c5fa1d9f8f9bcf201fa31478a6f5e02ed5ac086b"; + sha256 = "1v9kswj65sdb90lr4a2xqai55kyp3jp46nksikxx9m243nxdsh9q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/733a808400858513137e0e3d7d38b5b25e8ddc5a/recipes/github-search"; @@ -27301,12 +27531,12 @@ github-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "github-theme"; - version = "20170413.2100"; + version = "20170630.1501"; src = fetchFromGitHub { owner = "philiparvidsson"; repo = "emacs-github-theme"; - rev = "cf3c1325eb33d3593ba1cc4ad692eff287c33779"; - sha256 = "0abrbhhllkimidv4mi95nlzzigbr3qvjnd683rpv6f3sdqwcyw5f"; + rev = "29f00a51d949a248a5f6355a97131e216747c797"; + sha256 = "16ldfz1k0hxc1b785gzrf70hg0q88ijjxp39hb62iax1k1aw9vlw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f4ace4a150faa312ef531182f328a3e039045bd7/recipes/github-theme"; @@ -27326,8 +27556,8 @@ src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "0be857ef001adb9b58770bd4e70d3103d2557277"; - sha256 = "0b7c0dkrm7szvk83945ribdj5k9mxs7pmbillgh2b51rsrkk16rz"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/44a37f59b87f59a587f6681e7aadfabf137c98d7/recipes/gitignore-mode"; @@ -27343,12 +27573,12 @@ gitlab = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, request, s }: melpaBuild { pname = "gitlab"; - version = "20170120.22"; + version = "20170710.724"; src = fetchFromGitHub { owner = "nlamirault"; repo = "emacs-gitlab"; - rev = "730a86b770b0838c86e7080d8d502528e0c26792"; - sha256 = "11rp2il78av244ba49h243s9a5qvnw5ljqpssiws1j3xcnmbgyz1"; + rev = "67567a354a1888419331b79862f151817d9747c5"; + sha256 = "11bcl5ndwvm2nahcfdbrvxgh48s5i4i7sv74lgnskd90fnjh7gdw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1d012991188956f6e06c37d504b0d06ab31487b9/recipes/gitlab"; @@ -27382,6 +27612,27 @@ license = lib.licenses.free; }; }) {}; + gitpatch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gitpatch"; + version = "20170721.2110"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "gitpatch"; + rev = "577d5adf65c8133caa325c10e89e1e2fc323c907"; + sha256 = "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e1746d87f65dc4b0d8f47c7d6ba4c7e0dfa35953/recipes/gitpatch"; + sha256 = "0qaswkk06z24v40nkjkv7f6gfv0dlsjd6wchkn0ppqw95883vhv1"; + name = "gitpatch"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/gitpatch"; + license = lib.licenses.free; + }; + }) {}; gitter = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "gitter"; @@ -27403,15 +27654,36 @@ license = lib.licenses.free; }; }) {}; + gl-conf-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gl-conf-mode"; + version = "20170714.610"; + src = fetchFromGitHub { + owner = "llloret"; + repo = "gitolite-emacs"; + rev = "9136a9b737e0a5b6471a91571d104c487c43f35b"; + sha256 = "0wls3sfplrf7wkg7g7fxx4s87cvm3p7myxw6k91np6pbfh8p0s9q"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e3117e62d429e44506f7d82fc64252d41bc1a4b6/recipes/gl-conf-mode"; + sha256 = "0lf8xmq309aqyf16ymqlr8gj2qawlsqagbdndj0kgj72dnnw4cfm"; + name = "gl-conf-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/gl-conf-mode"; + license = lib.licenses.free; + }; + }) {}; glab = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "glab"; - version = "20160808.539"; + version = "20170924.359"; src = fetchFromGitLab { owner = "tarsius"; repo = "glab"; - rev = "5ced0214622450930bcea105b9aac785c594609d"; - sha256 = "100lz4dqn9ggvlvdrp909cy44br9hnlaa62pj0kp1vdqqxfxwfyn"; + rev = "9848182275e0448390ccdd8dcd8e1e3a1853950c"; + sha256 = "1fw1ck85y9r6z331g1wj7rix29fwy6gwbm7vqj3wff0lszy208ba"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9375cbae3ffe5bf4ba5606358860050f3005d9b7/recipes/glab"; @@ -27427,12 +27699,12 @@ glsl-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "glsl-mode"; - version = "20160209.833"; + version = "20170927.736"; src = fetchFromGitHub { owner = "jimhourihan"; repo = "glsl-mode"; - rev = "b4709644bb01b522ba9c8afe16ed2394783c481f"; - sha256 = "14ziljq34k585scwn606hqbkcvy8h1iylsc4h2n1grfmm8ilf0ws"; + rev = "384968506cf25c5c2df61b32fdfdbd041e3bf651"; + sha256 = "0729s4w010vw4ajvh1zpni7szxv9rpm6jk2y9hp7qyi67zbgjjgc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c416822d54df436f29dcf9a5f26398685fdc17a2/recipes/glsl-mode"; @@ -27469,12 +27741,12 @@ gmail2bbdb = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gmail2bbdb"; - version = "20161104.2041"; + version = "20170423.444"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "gmail2bbdb"; - rev = "181ef6039227bb30a02041d8cfdc435551a7d948"; - sha256 = "0205ldrw1i7czq44pqdl374cl0rjp5w5zadrayw8brl7mmw92byn"; + rev = "a84fa385cfaec7fc5f1518c368e52722da139f99"; + sha256 = "1qbf3r8a66xlrbni3hv5q5b5v3izis5aid06228rfpc2hwa97hr7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fb3c88b20a7614504165cd5fb459b0a9d5c73f60/recipes/gmail2bbdb"; @@ -27490,12 +27762,12 @@ gmpl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gmpl-mode"; - version = "20151116.1149"; + version = "20171031.1354"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "gmpl-mode"; - rev = "a4481bcbd84f67cd87e7bc87456b6f5b3a95fcf6"; - sha256 = "0w9dfxpiwwfk1iy83a214xpvqf858k668xkcdr2n25bccg1i148y"; + rev = "c5d362169819ee8b8e8954145daee7e260c54921"; + sha256 = "00p2z6kbyc0bas21d1zygx7z49w6mf22y9kf1rcm9gqsnnadb4j9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c89a523f87db358c477e5840b0e043e9f253e640/recipes/gmpl-mode"; @@ -27578,8 +27850,8 @@ src = fetchFromGitHub { owner = "lokedhs"; repo = "gnu-apl-mode"; - rev = "72f6a7fc9153d141494b19ca7ff2c0d1e35c2a16"; - sha256 = "12w5hnp5nnsy532kfwsp43n633k1n03hs1az6pd9sczjzhhz9ihb"; + rev = "d79e519308727dec897f2574c938c6425b9a30c2"; + sha256 = "1dr9wcj697d68dxg1026ggxvyvpxjdvydilmym3fhczijdpwm33y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/369a55301bba0c4f7ce27f6e141944a523beaa0f/recipes/gnu-apl-mode"; @@ -27616,12 +27888,12 @@ gnuplot-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gnuplot-mode"; - version = "20151122.2339"; + version = "20171013.916"; src = fetchFromGitHub { owner = "mkmcc"; repo = "gnuplot-mode"; - rev = "296ff8d263513cdfb8e85b06e2441c751565b793"; - sha256 = "1pss9a60dh6i277pkp8j5g1v5h7qlh11w2fki50qcp0zglyw1kaq"; + rev = "601f6392986f0cba332c87678d31ae0d0a496ce7"; + sha256 = "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d801a2e0ba5ae7c65b5d312fbf41261278a8b1ba/recipes/gnuplot-mode"; @@ -27658,12 +27930,12 @@ gnus-desktop-notify = callPackage ({ fetchFromGitHub, fetchurl, gnus ? null, lib, melpaBuild }: melpaBuild { pname = "gnus-desktop-notify"; - version = "20170305.1215"; + version = "20171007.1235"; src = fetchFromGitHub { owner = "wavexx"; repo = "gnus-desktop-notify.el"; - rev = "7d80d5e1894859e963584c55f570508fdf9c2ee0"; - sha256 = "1slj86f8c4pkl30xkv43vqwijd49nxya1bmhb8mqadncp3wapwr0"; + rev = "52e5de0961ce0f6890d5e7f26bc05152b99d9979"; + sha256 = "0r28hrlkji8z62nra71p0q6gvh21w90pyvmgskzjldmj78yjqbdj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/gnus-desktop-notify"; @@ -27676,21 +27948,24 @@ license = lib.licenses.free; }; }) {}; - gnus-spotlight = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "gnus-spotlight"; - version = "20130901.735"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/gnus-spotlight.el"; - sha256 = "1r6bck1hsvk39ccri1h128jj8zd0fh9bsrlp8ijb0v9f6x3cysw4"; + gnus-select-account = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gnus-select-account"; + version = "20170721.2211"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "gnus-select-account"; + rev = "ddc8c135eeaf90f5b6692a033af2badae36e68ce"; + sha256 = "0csq8cqv028g3mrvk88l0nlj3dk5fh67c10hdjwvxbf7winv0391"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/004d48a59063163bfe5fbc5311330893d1b3b41c/recipes/gnus-spotlight"; - sha256 = "065jcix6a4mxwq8wc8gkr0x9lxmn6hlvf0rqmhi8hb840km1syjx"; - name = "gnus-spotlight"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e1746d87f65dc4b0d8f47c7d6ba4c7e0dfa35953/recipes/gnus-select-account"; + sha256 = "1yini6kif7vp5msmhnnpfkab5m5px8y4wgvc0f0k79kdd17gvpsx"; + name = "gnus-select-account"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/gnus-spotlight"; + homepage = "https://melpa.org/#/gnus-select-account"; license = lib.licenses.free; }; }) {}; @@ -27781,12 +28056,12 @@ go-autocomplete = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "go-autocomplete"; - version = "20150903.1940"; + version = "20170626.323"; src = fetchFromGitHub { owner = "nsf"; repo = "gocode"; - rev = "1ed1baa46aeda2ce7de181161d4e2d369a740ce1"; - sha256 = "1ywyvppqyv6r52jagjn45nbrx9r5hsr2b3nxaya8sxsrkjv6hsn7"; + rev = "e990796e68a2ebfc099afed20b99e26d6b64061a"; + sha256 = "1s2jpqy599fr5qzfvba5njrwx1n48vqjg20vibssn2kyyc3l42d3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/go-autocomplete"; @@ -27904,6 +28179,27 @@ license = lib.licenses.free; }; }) {}; + go-gen-test = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "go-gen-test"; + version = "20171022.2058"; + src = fetchFromGitHub { + owner = "s-kostyaev"; + repo = "go-gen-test"; + rev = "44c202ac97e728e93a35cee028a0ea8dd6e4292c"; + sha256 = "1vi5xsf0xbcbvapi20hsjangwyp38cbgi8kiccpmingnq2kp8ghs"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0861c126161a2674f0e115eac6f948490b142b44/recipes/go-gen-test"; + sha256 = "1pj8n8xj9ccq9ips4wy4v6hdxxgwv11pwi671l6jjrig38v13dzr"; + name = "go-gen-test"; + }; + packageRequires = [ emacs s ]; + meta = { + homepage = "https://melpa.org/#/go-gen-test"; + license = lib.licenses.free; + }; + }) {}; go-gopath = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "go-gopath"; @@ -27928,12 +28224,12 @@ go-guru = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild }: melpaBuild { pname = "go-guru"; - version = "20161117.331"; + version = "20170718.1046"; src = fetchFromGitHub { owner = "dominikh"; repo = "go-mode.el"; - rev = "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2"; - sha256 = "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"; + rev = "7eb5b3dd0ac31d176e9d56da4172f66aef8fae47"; + sha256 = "1gx8hpgj9pbhpqqg1n5lby03bkg0llbkvb6pnidnfayh338amiqp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0cede3a468b6f7e4ad88e9fa985f0fdee7d195f5/recipes/go-guru"; @@ -27970,12 +28266,12 @@ go-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "go-mode"; - version = "20170308.1512"; + version = "20170726.555"; src = fetchFromGitHub { owner = "dominikh"; repo = "go-mode.el"; - rev = "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2"; - sha256 = "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"; + rev = "7eb5b3dd0ac31d176e9d56da4172f66aef8fae47"; + sha256 = "1gx8hpgj9pbhpqqg1n5lby03bkg0llbkvb6pnidnfayh338amiqp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0cede3a468b6f7e4ad88e9fa985f0fdee7d195f5/recipes/go-mode"; @@ -28058,8 +28354,8 @@ src = fetchFromGitHub { owner = "dominikh"; repo = "go-mode.el"; - rev = "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2"; - sha256 = "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"; + rev = "7eb5b3dd0ac31d176e9d56da4172f66aef8fae47"; + sha256 = "1gx8hpgj9pbhpqqg1n5lby03bkg0llbkvb6pnidnfayh338amiqp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d806abe90da9a8951fdb0c31e2167bde13183c5c/recipes/go-rename"; @@ -28096,12 +28392,12 @@ go-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "go-snippets"; - version = "20151121.2257"; + version = "20170831.2302"; src = fetchFromGitHub { owner = "toumorokoshi"; repo = "go-snippets"; - rev = "983eb74025030bf6d405f1ed63be3162cc28a528"; - sha256 = "0di6xwpl6pi0430q208gliz8dgrzwqnmp997q7xcczbkk8zfwn0n"; + rev = "7e38fc0ddf2cc786cdb273882ff9b3563abc3c7a"; + sha256 = "0dsbp0x8qmv2k649x7l264zc8cv08dlrxz09lv643fchm56rsljm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca9f3022e7f4d5391be394cd56f6db75c9cff3b6/recipes/go-snippets"; @@ -28268,8 +28564,8 @@ src = fetchFromGitHub { owner = "golang"; repo = "lint"; - rev = "cb00e5669539f047b2f4c53a421a01b0c8e172c6"; - sha256 = "1wav8y5yps407znh0wspvcripbp2xjigqhzhgbv0adqsm9nyn70p"; + rev = "6aaf7c34af0f4c36a57e0c429bace4d706d8e931"; + sha256 = "1z1j2l0j5175xvin5v56nsq7byg5nfpfvl9xgjszparchkyr8ndz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/34f22d829257456abbc020c006b92da9c7a7860e/recipes/golint"; @@ -28331,8 +28627,8 @@ src = fetchFromGitHub { owner = "google"; repo = "styleguide"; - rev = "15f2836d9fea3835d541d4d327ccf053d4052822"; - sha256 = "1yrd7v75pcpb658m53ysgai3ak5nvrm7bf7hzhga3rgm20hhsc16"; + rev = "ec88ff999b47a5adcd1b09cc8b49c793af337964"; + sha256 = "0bmbia1h85d8nsl2gk6wfi0fxij0d8ha56f2h9kk2swv3w5yg1d7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b4e7f5f641251e17add561991d3bcf1fde23467b/recipes/google-c-style"; @@ -28345,22 +28641,22 @@ license = lib.licenses.free; }; }) {}; - google-contacts = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, oauth2 }: + google-contacts = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, oauth2 }: melpaBuild { pname = "google-contacts"; - version = "20170112.1022"; + version = "20171027.1033"; src = fetchFromGitHub { owner = "jd"; repo = "google-contacts.el"; - rev = "cf654c59b197a028eb8bf432d52776c2e0ad4135"; - sha256 = "1qrn9zqn25wpsrqbacamn3ixf90xmgxa8ifkday6cxn5ks0kgyj4"; + rev = "a40389bae006ae094aeb1a39fae9891ca687c0fa"; + sha256 = "06mfdmr3dlmk4gyq8fxqv78c5jyis8vxx4ih2azcr5c831pkayzi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f/recipes/google-contacts"; sha256 = "0wgi244zy2am90alimgzazshk2z756bk1hchphssfa4j15n16jgn"; name = "google-contacts"; }; - packageRequires = [ oauth2 ]; + packageRequires = [ cl-lib oauth2 ]; meta = { homepage = "https://melpa.org/#/google-contacts"; license = lib.licenses.free; @@ -28369,12 +28665,12 @@ google-maps = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "google-maps"; - version = "20161210.458"; + version = "20171002.734"; src = fetchFromGitHub { owner = "jd"; repo = "google-maps.el"; - rev = "956e6ad42bc3819bcaf4cc66a640f5079b385ed7"; - sha256 = "0dqcs9dl3170zddh4npsqm1ql0n0a0378gyqxk0vi0ibzch537vk"; + rev = "c0e5dccfdc9f7f77ff8f29177547be47833d7156"; + sha256 = "1agsfmbd2zbn1xs05kxlb32hhkmrri3hdmcrvf0w1fcsgc5a9085"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f/recipes/google-maps"; @@ -28390,12 +28686,12 @@ google-this = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "google-this"; - version = "20160710.1720"; + version = "20170810.515"; src = fetchFromGitHub { owner = "Malabarba"; repo = "emacs-google-this"; - rev = "6af9dcee88b9637b3bdd1900a907f7ac83113988"; - sha256 = "1l3aklpzzn407ww2k4ncjin3n869hg4lyf050p00nig3qfgvjnbz"; + rev = "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84"; + sha256 = "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/google-this"; @@ -28411,12 +28707,12 @@ google-translate = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "google-translate"; - version = "20161206.1408"; + version = "20170713.119"; src = fetchFromGitHub { owner = "atykhonov"; repo = "google-translate"; - rev = "52d34c96b400b1b933c727933279f79256951b19"; - sha256 = "1acck34q5dqizx2wsm0q31lzwx0wwyzv6g53naf5m94bjw7xv088"; + rev = "d8b84a8359fcc697114d1298840e9a45b111c974"; + sha256 = "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e3c275e59cbfe6e40f9cd4c470fc66544c9a6d21/recipes/google-translate"; @@ -28429,6 +28725,27 @@ license = lib.licenses.free; }; }) {}; + goose-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "goose-theme"; + version = "20160828.545"; + src = fetchFromGitHub { + owner = "tokenrove"; + repo = "goose-theme"; + rev = "acd017b50ab25a75fd1331eb3de66467e2042e9c"; + sha256 = "1mmdvjsgnwgs6akhyj96fgj30mz53djdq85dl5q4cmiznlbma7hy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e23a52e068ec0e6d457402254727673ea02bd407/recipes/goose-theme"; + sha256 = "1nw948js678xc5vgrpdkykpcbn1b1id4k1clf87vfv7y5zssvd0x"; + name = "goose-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/goose-theme"; + license = lib.licenses.free; + }; + }) {}; gore-mode = callPackage ({ fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild }: melpaBuild { pname = "gore-mode"; @@ -28450,22 +28767,22 @@ license = lib.licenses.free; }; }) {}; - gorepl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + gorepl-mode = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, s }: melpaBuild { pname = "gorepl-mode"; - version = "20151121.422"; + version = "20170905.245"; src = fetchFromGitHub { owner = "manute"; repo = "gorepl-mode"; - rev = "17e025951f5964a0542a4b353ddddbc734c01eed"; - sha256 = "1abb78xxsggawl43hspl0cr0f7i1b3jd9r6xl1nl5jg97i4byg0b"; + rev = "bbd27f6a0a77f484e2a3f082d70dc69da63ae52a"; + sha256 = "01lqirxgw7svxy1fdv49mvcbhpslf64in6c4dk36b8xhngyqbilf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/gorepl-mode"; sha256 = "0xcjjh9hf3pv5jgv089c6bb00s215fc9qwn72fav1xbm5f49nkaq"; name = "gorepl-mode"; }; - packageRequires = [ emacs ]; + packageRequires = [ emacs f hydra s ]; meta = { homepage = "https://melpa.org/#/gorepl-mode"; license = lib.licenses.free; @@ -28474,12 +28791,12 @@ gotest = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild, s }: melpaBuild { pname = "gotest"; - version = "20170303.13"; + version = "20170823.141"; src = fetchFromGitHub { owner = "nlamirault"; repo = "gotest.el"; - rev = "30a31c14e5c83019ec4b31fd9913efaf9220b4b9"; - sha256 = "09pplr231ga3ic8i8jqxqi19ydjp6245spwraqymxqq5h1x94bfs"; + rev = "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9"; + sha256 = "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0670b42c0c998daa7bf01080757976ac3589ec06/recipes/gotest"; @@ -28495,12 +28812,12 @@ gotham-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gotham-theme"; - version = "20170414.1046"; + version = "20171013.1216"; src = fetchFromGitHub { owner = "wasamasa"; repo = "gotham-theme"; - rev = "2d1a302500cf82155c0f9ca61200b7bf02717e43"; - sha256 = "183djv4p540m641hcp5nlbk8isr8fq6f109xj4kkfd6mbrs13pig"; + rev = "5e97554d1f9639698faedb0660e63694be33bd84"; + sha256 = "18x0b2qmyzf9sddsv9ps1059pi4ndzq44rm4yl87slq03y75nxi9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b388de872be397864a1217a330ba80437c287c0/recipes/gotham-theme"; @@ -28513,16 +28830,19 @@ license = lib.licenses.free; }; }) {}; - goto-chg = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { + goto-chg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "goto-chg"; - version = "20131228.659"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/goto-chg.el"; - sha256 = "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"; + version = "20170917.1200"; + src = fetchFromGitHub { + owner = "emacs-evil"; + repo = "goto-chg"; + rev = "81fca94d2592cf32bab451c39a9cd2d9b03fbd6b"; + sha256 = "033msplvpahkva9ha09gsg9232fyz2bjihrdxaa2z9g4yzql8jkq"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/529897b0c076d9031e7ecd13c945d2104ce8c735/recipes/goto-chg"; - sha256 = "0fs0fc1mksbb1266sywasl6pppdn1f9a4q9dwycl9zycr588yjyv"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/cf1fc176430fe3ab55ce537a0efc59780bb812be/recipes/goto-chg"; + sha256 = "1yd4jq4zql4av9nr1sdk4nsnnk54c3brgjhpczndy1ipiaxlnydy"; name = "goto-chg"; }; packageRequires = []; @@ -28576,12 +28896,12 @@ govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }: melpaBuild { pname = "govc"; - version = "20170316.1124"; + version = "20170919.645"; src = fetchFromGitHub { owner = "vmware"; repo = "govmomi"; - rev = "9bfdc5ce62c0585b48b154cc460f8664dcd124c3"; - sha256 = "0p00s08fjwh106dag9wyhikzrh0vqd4pzb852b2zrmb7zlhigx65"; + rev = "b227a2582a9e5175fc778fc6a03b98aa14534927"; + sha256 = "0ss8jqczipl557c9pipkpvz3h9x6lhzma15s799zw7jwyza6802y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc"; @@ -28597,12 +28917,12 @@ govet = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "govet"; - version = "20150428.1159"; + version = "20170808.1024"; src = fetchFromGitHub { owner = "meshelton"; repo = "govet"; - rev = "736f11850f2d1d62bd417fb57d4f8bb55a176b70"; - sha256 = "1fzf43my7qs4n37yh1jm6fyp76dfgknc5g4zin7x5b5lc63g0wxb"; + rev = "1c05817cf8b96589076c7ac4e52ee58a860a0cbf"; + sha256 = "1n223i87xmk8p8h8dswnhhvazy0z53dzl36gmk9y7ck8bd9vz706"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7e4a5f5031c76056d8f1b64b27a39a512c7c59cd/recipes/govet"; @@ -28618,12 +28938,12 @@ grab-mac-link = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "grab-mac-link"; - version = "20170228.1039"; + version = "20170822.2321"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "grab-mac-link.el"; - rev = "8bf05a69758fd10a4303c5c458cd91a49ab8b1b2"; - sha256 = "12x47k3mm5hvhgn7fmfi7bqfa3naz8w1sx6fl3rmnbzvldb89i1k"; + rev = "fa23db288c93ff12d804939aa3c78e809169523e"; + sha256 = "1r2rcxcipyxdr16m8y93yc86vqxcmxamvkj60dg6ljsxg2lgvbx4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e4cc8a72a9f161f024ed9415ad281dbea5f07a18/recipes/grab-mac-link"; @@ -28706,8 +29026,8 @@ src = fetchFromGitHub { owner = "Groovy-Emacs-Modes"; repo = "groovy-emacs-modes"; - rev = "3fc197576b0fada87b0b7a895a9fb0c27acd2827"; - sha256 = "0xa2pshxs18i16yzbs04x82l8yx8mi2pnzb9ipyi5xwxjdkphq7z"; + rev = "c1e4cf8378bdd7e0d8205b2bcdcb3ff3e05ad8d2"; + sha256 = "0jk0a0n43jabyn8shv2i0fzqcy2aw16hanjqcsfzmrv5881hzyy1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/grails-mode"; @@ -28744,12 +29064,12 @@ grandshell-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "grandshell-theme"; - version = "20170118.2148"; + version = "20170507.104"; src = fetchFromGitHub { owner = "steckerhalter"; repo = "grandshell-theme"; - rev = "c0884bfe0b2df8d6279cabd5ef6c521aaf7c0897"; - sha256 = "1cn3i4kp5pjiaq96svam3xn1s33lpysnzk77vq25wp65vz9jpbcg"; + rev = "2f7e607cde9dd38ad4a95f3f3ad6cd85eba09f7b"; + sha256 = "0mc29g3hz7fb2a91rr24z2fnlqdwnq1q3lh14qyd7i9zpy5965dl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b04b0024f5a0367e2998d35ca88c2613a8e3470/recipes/grandshell-theme"; @@ -28762,15 +29082,15 @@ license = lib.licenses.free; }; }) {}; - graphene = callPackage ({ company, dash, exec-path-from-shell, fetchFromGitHub, fetchurl, flycheck, graphene-meta-theme, ido-ubiquitous, lib, melpaBuild, ppd-sr-speedbar, smartparens, smex, sr-speedbar, web-mode }: + graphene = callPackage ({ company, dash, exec-path-from-shell, fetchFromGitHub, fetchurl, flycheck, graphene-meta-theme, ido-completing-read-plus, lib, melpaBuild, ppd-sr-speedbar, smartparens, smex, sr-speedbar, web-mode }: melpaBuild { pname = "graphene"; - version = "20161120.938"; + version = "20170810.640"; src = fetchFromGitHub { owner = "rdallasgray"; repo = "graphene"; - rev = "bf77248e49b116a241bd5856df918ed63f89e195"; - sha256 = "1rn498l25vjy1wg45iskry8hh2afvd09cmg8dxppphjislw9pwch"; + rev = "89bbdaa465b3440f46f588664eada0f091ed6bfe"; + sha256 = "1xrk26v9d3njydwab7drqg4p3qd8rw2diicfr7bfwd0d21bs5ykz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0206d6adcb7855c2174c3cd506b71c21def1209b/recipes/graphene"; @@ -28783,7 +29103,7 @@ exec-path-from-shell flycheck graphene-meta-theme - ido-ubiquitous + ido-completing-read-plus ppd-sr-speedbar smartparens smex @@ -28819,12 +29139,12 @@ graphql-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "graphql-mode"; - version = "20161016.635"; + version = "20170625.652"; src = fetchFromGitHub { owner = "davazp"; repo = "graphql-mode"; - rev = "6e1f5335fa0b252b2bc422a837b82fdc82492eac"; - sha256 = "1x47abqqsry5f0ww01hp3470rqdzzr3yia8ljqq3ixpbnspp5q83"; + rev = "3c25bf5cbd5ba4c60dca9c96286412eb765de7c9"; + sha256 = "09y7w6nipg1f59xrdpzmjiynyvjzkyhkmrpc5mbvz1lavkplh6rd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3850073e6706d4d8151bc6ab12963a19deae8be9/recipes/graphql-mode"; @@ -28844,8 +29164,8 @@ src = fetchFromGitHub { owner = "ppareit"; repo = "graphviz-dot-mode"; - rev = "ca0f15158c3bbd516549532be1dd35bc51462c84"; - sha256 = "12r6a3hikzqcdbplmraa4p4w136c006yamylxfjf8580v15xngrf"; + rev = "fdaabbcc95d9156e3dadc84f81a4750c5b692580"; + sha256 = "1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6e2f1e66b33fd95142be4622c996911e38d56281/recipes/graphviz-dot-mode"; @@ -28882,11 +29202,11 @@ grass-mode = callPackage ({ cl-lib ? null, dash, fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "grass-mode"; - version = "20170303.854"; + version = "20170503.800"; src = fetchhg { url = "https://bitbucket.com/tws/grass-mode.el"; - rev = "5383fff2996b"; - sha256 = "1igbdrs14dmaa5mbhq3jnrkq16nndingflpnwxi921dag613c3jz"; + rev = "1ae8eae88117"; + sha256 = "1sl3d5759fjm98pb50ykz2c05czb2298ipccwj2qz2hdzq63hfv8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/grass-mode"; @@ -28899,6 +29219,48 @@ license = lib.licenses.free; }; }) {}; + grayscale-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "grayscale-theme"; + version = "20171005.102"; + src = fetchFromGitHub { + owner = "belak"; + repo = "emacs-grayscale-theme"; + rev = "53ad50e10e68f2f076ebfc96e10ecef7a932d38d"; + sha256 = "034pa35cjl07bhqdyw3xrcl97xcdg7jg0jvgn034fs3hssmsyxgv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2993881c7285cfbfc590b4118db46bfd435817bc/recipes/grayscale-theme"; + sha256 = "0jbzb1zxv5mg3pivii31d4kz75igm339nw4cmx9kgzia9zal5f1r"; + name = "grayscale-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/grayscale-theme"; + license = lib.licenses.free; + }; + }) {}; + green-is-the-new-black-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "green-is-the-new-black-theme"; + version = "20171005.1641"; + src = fetchFromGitHub { + owner = "fredcamps"; + repo = "green-is-the-new-black-emacs"; + rev = "b9cdecd04691311c30c94ad4ec81124e63b9b122"; + sha256 = "124q733rirc8a2d9xfparphcjrrbxhp4wxf070l8hqp3p2764bka"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3e42528d5677fd90515cad47266c07ea3d4363fb/recipes/green-is-the-new-black-theme"; + sha256 = "03q0vj409icmawffy2kd9yl04r453q80cy1p9y4i3xk368z0362g"; + name = "green-is-the-new-black-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/green-is-the-new-black-theme"; + license = lib.licenses.free; + }; + }) {}; green-phosphor-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "green-phosphor-theme"; @@ -28923,12 +29285,12 @@ green-screen-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "green-screen-theme"; - version = "20170209.1208"; + version = "20170824.728"; src = fetchFromGitHub { owner = "rbanffy"; repo = "green-screen-emacs"; - rev = "e47e3eb903b4d9dbcc66342d91915947b35e5e1e"; - sha256 = "0gv434aab9ar624l4r7ky4ksvkchzlgj8pyvkc73kfqcxg084pdn"; + rev = "05a9641d4f7354be7ff1b8dd34cbe5ef7054348c"; + sha256 = "036l9rbp7p9bf7wb85zr4ykyxiippiwlq53vk30lvkpwbv9vc5qz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/821744ca106f1b74941524782e4581fc93800fed/recipes/green-screen-theme"; @@ -28941,27 +29303,6 @@ license = lib.licenses.free; }; }) {}; - gregorio-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "gregorio-mode"; - version = "20151026.720"; - src = fetchFromGitHub { - owner = "cajetanus"; - repo = "gregorio-mode.el"; - rev = "5b618a8d05cc073bd8e6f1e4e56eceb4de60eab3"; - sha256 = "1670pxgmqflzw5d02mzsmqjf3gp0c4wf25z0crmaamyfmwdz9pag"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/81317d4ad793d8a58770844ec9a526a2c695f94a/recipes/gregorio-mode"; - sha256 = "0f226l67bqqc6m8wb97m7lkxvwrfbw74b1riasirca1anzjl8jfx"; - name = "gregorio-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/gregorio-mode"; - license = lib.licenses.free; - }; - }) {}; grep-a-lot = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "grep-a-lot"; @@ -28983,24 +29324,6 @@ license = lib.licenses.free; }; }) {}; - grep-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "grep-plus"; - version = "20170223.728"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/grep+.el"; - sha256 = "0jx2r21x8ndikvn8zvdnmwg8al56yi9gb0fcmplc3lnq4my6xcjr"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/grep+"; - sha256 = "1qj4f6d3l88bdcnq825pylnc76m22x2i15yxdhc2b6rv80df7zsx"; - name = "grep-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/grep+"; - license = lib.licenses.free; - }; - }) {}; greymatters-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "greymatters-theme"; @@ -29083,22 +29406,22 @@ license = lib.licenses.free; }; }) {}; - groovy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + groovy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "groovy-mode"; - version = "20170323.817"; + version = "20171024.221"; src = fetchFromGitHub { owner = "Groovy-Emacs-Modes"; repo = "groovy-emacs-modes"; - rev = "3fc197576b0fada87b0b7a895a9fb0c27acd2827"; - sha256 = "0xa2pshxs18i16yzbs04x82l8yx8mi2pnzb9ipyi5xwxjdkphq7z"; + rev = "c1e4cf8378bdd7e0d8205b2bcdcb3ff3e05ad8d2"; + sha256 = "0jk0a0n43jabyn8shv2i0fzqcy2aw16hanjqcsfzmrv5881hzyy1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/groovy-mode"; sha256 = "1pxw7rdn56klmr6kw21lhzh7zhp338gyf54ypsml64ibzr1x9kal"; name = "groovy-mode"; }; - packageRequires = []; + packageRequires = [ s ]; meta = { homepage = "https://melpa.org/#/groovy-mode"; license = lib.licenses.free; @@ -29107,12 +29430,12 @@ gruber-darker-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gruber-darker-theme"; - version = "20170330.1211"; + version = "20170719.2229"; src = fetchFromGitHub { owner = "rexim"; repo = "gruber-darker-theme"; - rev = "b9e59d9580d2b95dabf9a53ee3d51c2868b693fa"; - sha256 = "16g3rshbh9xzr6ng58vp2qw3zin0ylvlnmdg54p5cf8f0d11fd4a"; + rev = "8e6bb26ce0abe20e6129ae8c8ad5c41e0832334e"; + sha256 = "1dxlpyc4w6ys08ir2bivv9lhjpwfjlh3wczmr0r03pc1fqx0w2ap"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/87ade74553c04cb9dcfe16d03f263cc6f1fed046/recipes/gruber-darker-theme"; @@ -29149,12 +29472,12 @@ gruvbox-theme = callPackage ({ autothemer, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gruvbox-theme"; - version = "20161229.1817"; + version = "20170923.2008"; src = fetchFromGitHub { owner = "Greduan"; repo = "emacs-theme-gruvbox"; - rev = "9a9f384a19742eb07b03b1975478c2e71a09b2e3"; - sha256 = "1pbb8ihvldpbcvr4bwqjmlyc6wv51h49fn522vxzl9kjmhs9fqi1"; + rev = "4241935d9cc786d0b4a3a445830c395f2a9eeb90"; + sha256 = "1x624xc2756pmb4h5ayls8r16zy33d9vxr0as4jm6q682h2swir6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd48c87919f64ced9f3add4860751bb34cb5ecb/recipes/gruvbox-theme"; @@ -29191,12 +29514,12 @@ gscholar-bibtex = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gscholar-bibtex"; - version = "20161006.1944"; + version = "20170913.1457"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "gscholar-bibtex"; - rev = "734696423b8f807e6c1f0e871a8577a5f3a731f3"; - sha256 = "1vva58pcrh1rbvl1yyiy0fw2vmnfzlkpinjkr9yv19zmh0jphjzd"; + rev = "ba4ce159e385d695d8560e8b06b3cbe48424861c"; + sha256 = "0idnfhk17avp0r4706grjqqkz0xl98gs0bx7wrkvwym3y2gadlz2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9fa546d3dce59b07a623ee83e3befe139dc10481/recipes/gscholar-bibtex"; @@ -29212,12 +29535,12 @@ gtk-pomodoro-indicator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gtk-pomodoro-indicator"; - version = "20170310.532"; + version = "20170517.900"; src = fetchFromGitHub { owner = "abo-abo"; repo = "gtk-pomodoro-indicator"; - rev = "902f5c8b2563ff6805f89505419b68ed0ff1e397"; - sha256 = "1fmnpavcz8s6m2sxbpk38l45q9kckc5w6sqray0i9hw4a1qc3fvf"; + rev = "0fa0e682b3bd1595f230275d73ca231e93c6d28a"; + sha256 = "1jm7kcray6qd867hacyhs5c7hhdm0fyfa1jx35sh09g5c9xa4x2f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b98ec72605077f3b3f587713a681eb2144f29645/recipes/gtk-pomodoro-indicator"; @@ -29233,12 +29556,12 @@ guess-language = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "guess-language"; - version = "20170415.544"; + version = "20170620.308"; src = fetchFromGitHub { owner = "tmalsburg"; repo = "guess-language.el"; - rev = "8c8a1616b6a7bc4c10942ee0a1b2591b98fcd493"; - sha256 = "00hbawijr9c6hpmp7y4yh8xla7nmsi9nq071zkxwyl8yzj34s678"; + rev = "1f1602f74d7159e7fb8c90f92ec5a3d1df5429da"; + sha256 = "1764v96sdn3zvpd35ppn31ib4p8cvdrj0bfmbplxg2xhp7xkgmca"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6e78cb707943fcaaba0414d7af2af717efce84d0/recipes/guess-language"; @@ -29296,12 +29619,12 @@ guix = callPackage ({ bui, dash, emacs, fetchFromGitHub, fetchurl, geiser, lib, magit-popup, melpaBuild }: melpaBuild { pname = "guix"; - version = "20170413.1236"; + version = "20171031.1241"; src = fetchFromGitHub { owner = "alezost"; repo = "guix.el"; - rev = "51405f409508cd95f6e84d2e0fc08c4c380b1791"; - sha256 = "0ffh6ksd21g896fn4av8nh82cd3qfrczbjkp5ndhhbr16nqgkr56"; + rev = "b11ddb65044468a1d1d7091ee9636aab7b13afed"; + sha256 = "0jhmc2s1xbr5dnmckszx8j0i3kfj7n868xw1d6sqplm7i0r0wm8s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b3d8c73e8a946b8265487a0825d615d80aa3337d/recipes/guix"; @@ -29317,12 +29640,12 @@ gulp-task-runner = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gulp-task-runner"; - version = "20161103.1523"; + version = "20170718.1341"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "gulp-task-runner"; - rev = "f13da9e619c1838571df0a0462c273ed6e76defc"; - sha256 = "1xai81v7c58hy9rh63kxybzmlyfkv0m7qfdp7zia60ml5xhib31r"; + rev = "877990e956b1d71e2d9c7c3e5a129ad199b9debb"; + sha256 = "13qy4x4ap43qm5w2vrsy6w01z2s2kymfr9qvlj2yri4xk3r4vrps"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/34a2bede5ea70cf9df623c32e789d78205f9ebb0/recipes/gulp-task-runner"; @@ -29338,12 +29661,12 @@ guru-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "guru-mode"; - version = "20160415.1921"; + version = "20170730.31"; src = fetchFromGitHub { owner = "bbatsov"; repo = "guru-mode"; - rev = "81db5611dd29f2c3d9ea91fb7f086a2cf9847553"; - sha256 = "1jymhjjpn600svd5jbj42m3vnpaza838zby507ynbwc95nja29vs"; + rev = "c180e05ebc1484764aad245c85b69de779826e4e"; + sha256 = "0qb6yr6vbic0rh8ayrpbz5byq7jxmwm1fc9l4alpz7dhyb11z07v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e60af6ccb902d8ef00cfecbb13cafebbe3b00d89/recipes/guru-mode"; @@ -29401,12 +29724,12 @@ habitica = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "habitica"; - version = "20170203.2122"; + version = "20171022.1922"; src = fetchFromGitHub { owner = "abrochard"; repo = "emacs-habitica"; - rev = "f3e326b7342953ffd5d3ced9266b46387b2bf9ce"; - sha256 = "0aixxlfp04vmipki7r7aqid2lsrzy7d38g09qc1hrjjdba7jrjlp"; + rev = "e51ff7436fe1da10404e2c0872b15d6a7a926717"; + sha256 = "1hiiqf82nagnpq2qdcdv6y2blfiqs6f8ia8k66a4zn5xgwpd13f4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cf9543db3564f4806440ed8c5c30fecbbc625fa1/recipes/habitica"; @@ -29422,12 +29745,12 @@ hack-time-mode = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hack-time-mode"; - version = "20170413.630"; + version = "20170527.910"; src = fetchFromGitLab { owner = "marcowahl"; repo = "hack-time-mode"; - rev = "79abe7652690186224ba22d1346d24e7603448f7"; - sha256 = "176zpdxsjydl7vvh2jhpbwsndzwzzyfhw6hpak16wj5b7rv9jj19"; + rev = "73d6fcf8b39283526e5d4e3919193611e25a0898"; + sha256 = "1w0idf28fhyn0qmjk1zgh80gzcrkgx5bc8mb0xamc20i53wpr4xl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6481dc9f487c5677f2baf1bffdf8f2297185345e/recipes/hack-time-mode"; @@ -29464,12 +29787,12 @@ hackernews = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "hackernews"; - version = "20160627.1651"; + version = "20170930.1313"; src = fetchFromGitHub { owner = "clarete"; repo = "hackernews.el"; - rev = "d6857acce7032035ffb4ee23358712127b8dd5a5"; - sha256 = "1xgx66dlhz4my1blnkddcwk6aan532fnvgli2dbbiy5ixn8aw1kc"; + rev = "520e8dca91b8c2bc1de852f577af46ed1b7cabcd"; + sha256 = "0951vb08sjpxx28cpaa8njirjw6fml60m91wa146cnxpngd68w6b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c43a342e47e5ede468bcf51a60d4dea3926f51bd/recipes/hackernews"; @@ -29566,22 +29889,22 @@ license = lib.licenses.free; }; }) {}; - haml-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, ruby-mode ? null }: + haml-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "haml-mode"; - version = "20170208.28"; + version = "20170923.2153"; src = fetchFromGitHub { owner = "nex3"; repo = "haml-mode"; - rev = "e232abdb908d92a1a346ee1a7671d4a3121310c5"; - sha256 = "1qqwh28rf94pfcvazs0fl4yjz430aw6sadf07i4r408lq6r089dx"; + rev = "1cbb2de8f0fc25f35448c5cad04642f28078f3bb"; + sha256 = "1045bf7bq914d3577kg9xakm4yciwwsvlh5qwfk4wnsraf7rld0r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/haml-mode"; sha256 = "0ih0m7zr6kgn6zd45zbp1jgs1ydc5i5gmq6l080wma83v5w1436f"; name = "haml-mode"; }; - packageRequires = [ ruby-mode ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/haml-mode"; license = lib.licenses.free; @@ -29716,16 +30039,16 @@ harvest = callPackage ({ fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, s, swiper }: melpaBuild { pname = "harvest"; - version = "20160811.1810"; + version = "20170822.1046"; src = fetchFromGitHub { owner = "kostajh"; repo = "harvest.el"; - rev = "384e1ae10dcbdec4a1e2097094a8160507ea46a6"; - sha256 = "1bvgca35gl2daccpmhaa4q166iyaqachyd2k8n9vd6hlbbn4rrgl"; + rev = "7acbc0564b250521b67131ee2a0a92720239454f"; + sha256 = "0wzv67kkfyaw19ddw0ra45p6rja6bk6d1xi3ak5lkyzvgqvylr3b"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b1dcfc8f0759792367ee49d2fe96e5bd7ca4105f/recipes/harvest"; - sha256 = "1qfhfzjwlnqpbq4kfxvs97fa3xks8zi02fnwv0ik8wb1ppbb77qd"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c97d3f653057eab35c612109792884334be556fe/recipes/harvest"; + sha256 = "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c"; name = "harvest"; }; packageRequires = [ hydra s swiper ]; @@ -29800,12 +30123,12 @@ haskell-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "haskell-mode"; - version = "20170406.25"; + version = "20171022.26"; src = fetchFromGitHub { owner = "haskell"; repo = "haskell-mode"; - rev = "8165d8a809c21e220a257806ebe88180cbc8694a"; - sha256 = "1vx6liapkkfsd678nmlsx3r641v2vxxbqk82cw6cqanzp3i5p7y4"; + rev = "9018ad5cac0b1b1b5e0a51586027fb0ca4076b1a"; + sha256 = "0aj6mjv1i8m18klj9mp690fkmwc81wxh2q69cxjf78fdpgbrhcwl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7f18b4dcbad4192b0153a316cff6533272898f1a/recipes/haskell-mode"; @@ -29842,11 +30165,11 @@ haskell-tab-indent = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "haskell-tab-indent"; - version = "20151205.1159"; + version = "20170701.258"; src = fetchgit { url = "https://git.spwhitton.name/haskell-tab-indent"; - rev = "93ea6a3a707fc34a97ce94e0285e9569e01062c4"; - sha256 = "04698q2c75bbbcib94zdjkmm2k0zlxxzhnd34fflhzzxljcr02cj"; + rev = "b4cb851aef96c42ec7b3cc37b6fdd867fe5a0853"; + sha256 = "1ah1xagfzsbsgggva621p95qgd0bnsn733gb0ap4p4kgi5hwdqll"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/371f9f45e441cdf4e95557d1e9692619fab3024a/recipes/haskell-tab-indent"; @@ -29862,12 +30185,12 @@ hasky-extensions = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hasky-extensions"; - version = "20170110.631"; + version = "20170830.625"; src = fetchFromGitHub { owner = "hasky-mode"; repo = "hasky-extensions"; - rev = "c94662f0efdc9f350d8554e62955f0a7405ab545"; - sha256 = "0hlwv3m0mmwwvqa0nla9b8n7mi43zxmpg6fmmqi311ii75sqb2pa"; + rev = "65bf7bc3967cbda23789d6c505daf73eed9a43aa"; + sha256 = "0r91hcm265xa8amdfi44pn0cqf4m9zigzqx1ldgg8qd6l9r2hbh7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e3f73e3df8476fa231d04211866671dd74911603/recipes/hasky-extensions"; @@ -29880,6 +30203,27 @@ license = lib.licenses.free; }; }) {}; + hasky-stack = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }: + melpaBuild { + pname = "hasky-stack"; + version = "20170928.359"; + src = fetchFromGitHub { + owner = "hasky-mode"; + repo = "hasky-stack"; + rev = "a3f890fb8570369898ee9718b128d4e7123a6585"; + sha256 = "0bc5i4s7aclwrsh8yrhfwwlfbcs5hdbzm31glikd487asv30jq9c"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c3faf544872478c3bccf2fe7dc51d406031e4d80/recipes/hasky-stack"; + sha256 = "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8"; + name = "hasky-stack"; + }; + packageRequires = [ emacs f magit-popup ]; + meta = { + homepage = "https://melpa.org/#/hasky-stack"; + license = lib.licenses.free; + }; + }) {}; haste = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "haste"; @@ -30026,24 +30370,6 @@ license = lib.licenses.free; }; }) {}; - header2 = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "header2"; - version = "20170223.729"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/header2.el"; - sha256 = "0cv74cfihr13jrgyqbj4x0na659djfyrhflxni6jdbgbysi4zf6k"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/header2"; - sha256 = "1vvxb850njn921djvnf76q1p045sqr5hqk6v0p0amvjvih48v0zx"; - name = "header2"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/header2"; - license = lib.licenses.free; - }; - }) {}; headlong = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "headlong"; @@ -30068,12 +30394,12 @@ helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }: melpaBuild { pname = "helm"; - version = "20170416.945"; + version = "20171030.2225"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm"; - rev = "9db9ed21c8d6454c60eb50c7cc935540d31abc43"; - sha256 = "1vanva75xv52yg68mqcbxvdbrkq66qb883sjvg3fsg4slwivbiz6"; + rev = "fe92240663f6b2314e79558f6eabbab955a797e3"; + sha256 = "1ip2a9fh3k14s87h8zhw6flybkskcx6vrayyzj5929g97mr26a5k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm"; @@ -30149,6 +30475,27 @@ license = lib.licenses.free; }; }) {}; + helm-addressbook = callPackage ({ addressbook-bookmark, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-addressbook"; + version = "20170903.28"; + src = fetchFromGitHub { + owner = "emacs-helm"; + repo = "helm-addressbook"; + rev = "62497f72d46afd3a9f9f94b27d062a82fb232de4"; + sha256 = "1lmq7j19qv3pabs5arapx3lv2xhf0sgn4b2hl0l0kzph52fvics7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4bb805b0f2d2055aa4e88bd41239d75ec34f5785/recipes/helm-addressbook"; + sha256 = "1d8byi6sr5gz1rx3kglnkp47sn9dqdd83s12d84wyay06ix3cqqi"; + name = "helm-addressbook"; + }; + packageRequires = [ addressbook-bookmark cl-lib emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-addressbook"; + license = lib.licenses.free; + }; + }) {}; helm-ag = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-ag"; @@ -30236,12 +30583,12 @@ helm-backup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: melpaBuild { pname = "helm-backup"; - version = "20151213.1047"; + version = "20170807.1239"; src = fetchFromGitHub { owner = "antham"; repo = "helm-backup"; - rev = "6f2c7648437be2a74380de8573e39b6258b3085a"; - sha256 = "16350vdjmcv8n9dmvqik1mdcc927a2wgv3b72pzfpcjj1kx72fvk"; + rev = "3f39d296ddc77df758b812c50e3c267dd03db8bb"; + sha256 = "05528ajhmvkc50i65wcb3bi1w4i3y1vvr56dvq6yp7cbyw9r7b8w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5e6eba7b201e91211e43c39e501f6066f0afeb8b/recipes/helm-backup"; @@ -30257,12 +30604,12 @@ helm-bbdb = callPackage ({ bbdb, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-bbdb"; - version = "20161122.522"; + version = "20170505.2338"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-bbdb"; - rev = "20513422102fea4c08a0433d728a7783bb4968c8"; - sha256 = "0ns537fimv774n1bq0r8k4qwdpapbw96linqyhx9mxp23zkhlg80"; + rev = "c0e6b83911598fe334c51b12f51ff1a8252ed11d"; + sha256 = "084m23w4088njk2c8z6yxi2851dakdq71jhpazlzms85i2dlwg21"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7025c319fcabc64576c0c6554d0d572cef697693/recipes/helm-bbdb"; @@ -30278,12 +30625,12 @@ helm-bibtex = callPackage ({ biblio, cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, parsebib, s }: melpaBuild { pname = "helm-bibtex"; - version = "20170321.1306"; + version = "20171022.220"; src = fetchFromGitHub { owner = "tmalsburg"; repo = "helm-bibtex"; - rev = "13f27f3cfdf137bdb22addfc0c832ba1c8572c25"; - sha256 = "02b9hb7nmh75qwkmanw6ci6pyann71ag8mp4fd5agrlwq6rrlgl4"; + rev = "54de08577f9c19354cc303ee52836263aef486fb"; + sha256 = "0l98lmy0c9l64khnl9j87l5g9g5fiah5l64hxn97h4b438kjcjm0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f4118a7721435240cf8489daa4dd39369208855b/recipes/helm-bibtex"; @@ -30387,8 +30734,8 @@ src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-bundle-show"; - rev = "b34523aa8a7f82ed9a1bf3643c35b65866a7877a"; - sha256 = "1j9xmlidipsfbz0kfxwz0c6hi9xsbk36h6i30wqdd0ls0zw5xm30"; + rev = "850fecb36f609f1dfd5d20ca0170c9a6b7f90ab9"; + sha256 = "06xi91dy88qnqwqsknhf695324vsiz1vn2fmwl6llywa03k0xnl1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2f10f7387cca102696c38af1d8dc0fe5da5e366f/recipes/helm-bundle-show"; @@ -30443,6 +30790,27 @@ license = lib.licenses.free; }; }) {}; + helm-charinfo = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-charinfo"; + version = "20170810.531"; + src = fetchFromGitHub { + owner = "mandoku"; + repo = "helm-charinfo"; + rev = "91798a49dc115342a7e01e48b264e9a0bf5ea414"; + sha256 = "1ifj6zz5k7qjalg06fvfc7rdmlha0n9hll2hiq7mrcj7lfac6jga"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6667774bba495c45703ef75261f1f14d89684e3a/recipes/helm-charinfo"; + sha256 = "04k6crcwhv2k69f5w75g0dg0f5qsbhyxl93qzxxdb5bnr56ad7f6"; + name = "helm-charinfo"; + }; + packageRequires = [ cl-lib emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-charinfo"; + license = lib.licenses.free; + }; + }) {}; helm-chrome = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-chrome"; @@ -30485,22 +30853,22 @@ license = lib.licenses.free; }; }) {}; - helm-cider = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, seq }: + helm-cider = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }: melpaBuild { pname = "helm-cider"; - version = "20170209.2316"; + version = "20170708.1525"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "helm-cider"; - rev = "8e092d0d2e9cf27195296c684b4fab831208b98a"; - sha256 = "081wkmp4mcdszyirgifdn4qzpvc9bz3qkvwnlp0c9jzimkizpgsl"; + rev = "9480e969d5387efdd5e66c6db089e02a296b2025"; + sha256 = "0ci0z1zaypbdnjxk6bhf83kx808j4xi5ikqwq4w5mlsbz8f5iqx1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-cider"; sha256 = "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x"; name = "helm-cider"; }; - packageRequires = [ cider emacs helm-core seq ]; + packageRequires = [ cider emacs helm-core ]; meta = { homepage = "https://melpa.org/#/helm-cider"; license = lib.licenses.free; @@ -30635,16 +31003,16 @@ helm-company = callPackage ({ company, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-company"; - version = "20170306.2113"; + version = "20170608.1029"; src = fetchFromGitHub { - owner = "manuel-uberti"; + owner = "Sodel-the-Vociferous"; repo = "helm-company"; - rev = "f00df346098636650c4047394aa593d67b007859"; - sha256 = "03rcn9a3fbhcbh739xykjk94jg2sl4mj6y22knfwbh1hm1wymii3"; + rev = "ae4e1a05455f5eaf07e61b8627934ea1df4eb048"; + sha256 = "05lfqdg5pzwji3j5w1l892qab9nffd3if8ha0545gbxfn94lnx90"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/78ff0a6cf493ff148406140f3e4902bfafd83e4a/recipes/helm-company"; - sha256 = "1pbsg7zrz447siwd8pasw2hz5z21wa1xpqs5nrylhbghsk076ld3"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/8acf7420f2ac8a36474594bc34316f187b43d771/recipes/helm-company"; + sha256 = "1wl1mzm1h9ig351y77yascdv4z0cka1gayi8cnnlayk763is7q34"; name = "helm-company"; }; packageRequires = [ company helm ]; @@ -30656,12 +31024,12 @@ helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "helm-core"; - version = "20170416.945"; + version = "20171029.2252"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm"; - rev = "9db9ed21c8d6454c60eb50c7cc935540d31abc43"; - sha256 = "1vanva75xv52yg68mqcbxvdbrkq66qb883sjvg3fsg4slwivbiz6"; + rev = "fe92240663f6b2314e79558f6eabbab955a797e3"; + sha256 = "1ip2a9fh3k14s87h8zhw6flybkskcx6vrayyzj5929g97mr26a5k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core"; @@ -30716,36 +31084,15 @@ license = lib.licenses.free; }; }) {}; - helm-ctest = callPackage ({ dash, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, s }: - melpaBuild { - pname = "helm-ctest"; - version = "20150823.408"; - src = fetchFromGitHub { - owner = "danlamanna"; - repo = "helm-ctest"; - rev = "973a138aa8ff4c6a1cd798779e8d0dd80522354d"; - sha256 = "18d96alik66nw3rkk7k8740b4rx2bnh3pwn27ahpgj5yf51wm0ry"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/03e17f3700cc531133990bc78ade09132f439664/recipes/helm-ctest"; - sha256 = "1mphc9fsclbw19p5i1xf52qg6ljljbajvbcsl95hisrnvhg89vpm"; - name = "helm-ctest"; - }; - packageRequires = [ dash helm-core s ]; - meta = { - homepage = "https://melpa.org/#/helm-ctest"; - license = lib.licenses.free; - }; - }) {}; helm-dash = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-dash"; - version = "20170221.638"; + version = "20171017.342"; src = fetchFromGitHub { owner = "areina"; repo = "helm-dash"; - rev = "f07a77bd6ae6d8c933753f25526cbf3b71903e77"; - sha256 = "0az1j68g0svynvag7p3x7l1rv4n6y1knkmfcjhcli4jwrkn720xr"; + rev = "08961190b3982dcb8c359e633daba556a6d92ce3"; + sha256 = "1vdrfykhcfnmm254gd3aqypk9hfl0fcml1nc0wxmdjlimlsxadc3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-dash"; @@ -30821,15 +31168,36 @@ license = lib.licenses.free; }; }) {}; + helm-directory = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-directory"; + version = "20170705.2102"; + src = fetchFromGitHub { + owner = "masasam"; + repo = "emacs-helm-directory"; + rev = "29f05c87046f9a04329f817e9d7489a290a2592a"; + sha256 = "0dp9s5yicjn91mmrzb15hidf05c8lffpgk2sq23d9x6b9ddnlcl1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d0c066d6f285ab6d572dab4549781101547cb704/recipes/helm-directory"; + sha256 = "01c5a08v6rd867kdyrfwdvj05z4srzj9g6xy4scirlbwbff0q76n"; + name = "helm-directory"; + }; + packageRequires = [ emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-directory"; + license = lib.licenses.free; + }; + }) {}; helm-dired-history = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-dired-history"; - version = "20170321.2201"; + version = "20170524.346"; src = fetchFromGitHub { owner = "jixiuf"; repo = "helm-dired-history"; - rev = "9480383b6ccede6f7c200fbd50aaeb2898b3a008"; - sha256 = "0cfq06lray7hpnhkwnhjq18izyk2w0m4cxqg0m5nyidiwc4qssqa"; + rev = "281523f9fc46cf00fafd670ba5cd16552a607212"; + sha256 = "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-dired-history"; @@ -30884,6 +31252,27 @@ license = lib.licenses.free; }; }) {}; + helm-elscreen = callPackage ({ cl-lib ? null, elscreen, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-elscreen"; + version = "20170709.214"; + src = fetchFromGitHub { + owner = "emacs-helm"; + repo = "helm-elscreen"; + rev = "b8212866939dc4a1e1dc23ad572407b688e130e3"; + sha256 = "0gy6lbdngiwfl9vfw32clagbmv70f93slc9zkm3dz3mca37435kz"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/dfe42a7fe2dc051c6c49aa75bce89bfe1b5fdbbb/recipes/helm-elscreen"; + sha256 = "186k66kf2ak2ihha39989cz1aarqrvbgp213y1fwh9qsn1kxclnd"; + name = "helm-elscreen"; + }; + packageRequires = [ cl-lib elscreen emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-elscreen"; + license = lib.licenses.free; + }; + }) {}; helm-emmet = callPackage ({ emmet-mode, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-emmet"; @@ -30908,12 +31297,12 @@ helm-emms = callPackage ({ cl-lib ? null, emacs, emms, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-emms"; - version = "20151001.1328"; + version = "20170517.1010"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-emms"; - rev = "ed3da37e86ea5dabc15da708335b1e439ae0777d"; - sha256 = "0330s07b41nw9q32xhjdl7yw83p8ikj6b2qkir3y0jyx16gk10dl"; + rev = "b1c7d03e80c3012e327f0d518258508acf980c1c"; + sha256 = "18fpsr6kaw2m1bvj05i5qayq6d01v54jw98489bgwshp9wmhsy9m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/db836b671705607f6cd9bce8229884b1f29b4a76/recipes/helm-emms"; @@ -30950,12 +31339,12 @@ helm-ext = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-ext"; - version = "20170411.1049"; + version = "20170914.1348"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "helm-ext"; - rev = "fe50af14eebc9be72b026e823facfd0a80593248"; - sha256 = "1pz7i1byscfq2j73cfgcjqdx8s14h9qxnfmvs5g00m0y3g25hhc0"; + rev = "c2de41c4694ed606b321bcf83493dee93ad5635a"; + sha256 = "0bnnzf7pwg0qyx8hafgx6ckcc7n3pvf5j1qbipkzgnqmfqfli0n7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1ee74cb0aa3445bc9ae4226c2043ee4de3ac6cd3/recipes/helm-ext"; @@ -31094,6 +31483,27 @@ license = lib.licenses.free; }; }) {}; + helm-frame = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "helm-frame"; + version = "20170515.1250"; + src = fetchFromGitLab { + owner = "chee"; + repo = "helm-frame"; + rev = "389e6461a423d649b7062ba99a2234bef7770059"; + sha256 = "1z7iwgl1v8nkwyz3h610l97amgq9slrfxxiicsnigc9vgsqlh987"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/febb2599e50518dadb30088bc9576aea2af092a7/recipes/helm-frame"; + sha256 = "18wbwm4r3ra9214whhdbxnjrxzra4pn12wqgq5lxli1khylihm3i"; + name = "helm-frame"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/helm-frame"; + license = lib.licenses.free; + }; + }) {}; helm-fuzzier = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-fuzzier"; @@ -31164,8 +31574,8 @@ src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-ghq"; - rev = "21ccdb537a3be3d9351e01c6365df8e804e8bc56"; - sha256 = "1v3h6dszj223yvlkrjj6r4jwiyaj3iswbcl5d4ffwgaf72cxm4gn"; + rev = "49481685adbb25b3f766aabfdb7472becc673a94"; + sha256 = "1gxb4cqfzkdag8v6id7bvlv0bvqbfl8mdxphll4pkf1nqj9fk69j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e94eec646def7c77b15f6a6ac1841200848e62c7/recipes/helm-ghq"; @@ -31178,6 +31588,27 @@ license = lib.licenses.free; }; }) {}; + helm-ghs = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-ghs"; + version = "20170714.2241"; + src = fetchFromGitHub { + owner = "iory"; + repo = "emacs-helm-ghs"; + rev = "17a70bf16255d90d67c8350e88200ec8bfd47563"; + sha256 = "1jc51anmkr44db4kbcwza17x3ln78ihpslrf2v9xs0sq0ggw1rva"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0f8d37030806905344a2ca56bfc469f5a238cd69/recipes/helm-ghs"; + sha256 = "0bzy2vr2h9c886cm4gd161n7laym952bzy5fhcibafhzm4abl4sh"; + name = "helm-ghs"; + }; + packageRequires = [ emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-ghs"; + license = lib.licenses.free; + }; + }) {}; helm-git = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "helm-git"; @@ -31223,12 +31654,12 @@ helm-git-grep = callPackage ({ fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }: melpaBuild { pname = "helm-git-grep"; - version = "20161111.2337"; + version = "20170614.711"; src = fetchFromGitHub { owner = "yasuyk"; repo = "helm-git-grep"; - rev = "5ef4b5ff81707214c0c141d8bf219b1645fefe17"; - sha256 = "1a0cs7yf6yb4pkgknb1515a24649d3v5i7jjcfvw831jwc51gnca"; + rev = "744cea07dba6e6a5effbdba83f1b786c78fd86d3"; + sha256 = "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/338d28c3fe201a7b2f15793be6d540f44819f4d8/recipes/helm-git-grep"; @@ -31290,8 +31721,8 @@ src = fetchFromGitHub { owner = "nlamirault"; repo = "emacs-gitlab"; - rev = "730a86b770b0838c86e7080d8d502528e0c26792"; - sha256 = "11rp2il78av244ba49h243s9a5qvnw5ljqpssiws1j3xcnmbgyz1"; + rev = "67567a354a1888419331b79862f151817d9747c5"; + sha256 = "11bcl5ndwvm2nahcfdbrvxgh48s5i4i7sv74lgnskd90fnjh7gdw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1d012991188956f6e06c37d504b0d06ab31487b9/recipes/helm-gitlab"; @@ -31328,12 +31759,12 @@ helm-google = callPackage ({ fetchFromGitHub, fetchurl, google, helm, lib, melpaBuild }: melpaBuild { pname = "helm-google"; - version = "20170407.1156"; + version = "20170722.710"; src = fetchFromGitHub { owner = "steckerhalter"; repo = "helm-google"; - rev = "b3f10af10075f1982434d4c27c5933124940942a"; - sha256 = "102g8yb15rpyxs4pndqqbskg4b8g8ssqk9wfxs9zlyah5qcb2m33"; + rev = "4530a375a46880d53e5d7e906028f71c040de946"; + sha256 = "1xj3q6hyjcqbr3dglcba4impsdgb707zi9w7prpn1m735xhsis01"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/88ed6db7b53d1ac75c40d12c21de1dec6d717fbe/recipes/helm-google"; @@ -31412,12 +31843,12 @@ helm-hatena-bookmark = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-hatena-bookmark"; - version = "20160528.614"; + version = "20170821.646"; src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-hatena-bookmark"; - rev = "8350a600d3e03f1ec7dc899cc0b2e323b12518bb"; - sha256 = "0hmvyyhddpf831cad35c9z9fv5mpdq6qg4nzbdghlqs9pf7ik6h2"; + rev = "ee0d2554f573779210b0e2595e539b3e28461f1d"; + sha256 = "12qb9jnqa2nl3asfa178ijjrrxkrwddlxf6y6m0d79j2fnqrgbr6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3e9335ad16d4151dd4970c4a3ad1fee9a84404fa/recipes/helm-hatena-bookmark"; @@ -31496,12 +31927,12 @@ helm-hunks = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-hunks"; - version = "20170406.257"; + version = "20170625.1523"; src = fetchFromGitHub { owner = "torgeir"; repo = "helm-hunks.el"; - rev = "287685254002d47432f267884ac6a83de67ea07c"; - sha256 = "0gfly5wv391cw7dpixxik0nqs2f7h1n8102pijjipk3g79f1f1ic"; + rev = "56731db3968a57fbb2473529227c2998b7f404b0"; + sha256 = "1kszp6jy4r39r71jjrr8p3nfpylbqyphrsfb4dghh6kl0zxic38j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d61cbe53ad42f2405a66de9f551f5b870a60709f/recipes/helm-hunks"; @@ -31661,6 +32092,69 @@ license = lib.licenses.free; }; }) {}; + helm-kythe = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-kythe"; + version = "20170709.26"; + src = fetchFromGitHub { + owner = "MaskRay"; + repo = "emacs-helm-kythe"; + rev = "eabbef4948f8ec7c7b2fac498e9145dfdb10ca82"; + sha256 = "1ws7vl0pvznmxb7yj77kfv4l52xkzblhsl68lfkf9cdxcj9g6177"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/dd1a6d0b08ad750a0e44ebdf76109d29ab226bd3/recipes/helm-kythe"; + sha256 = "1yybpic3jzp3yy8xlfdn2jj12h087vn0lj3mqx6xxj2nxd9q4949"; + name = "helm-kythe"; + }; + packageRequires = [ dash emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-kythe"; + license = lib.licenses.free; + }; + }) {}; + helm-lastpass = callPackage ({ csv, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }: + melpaBuild { + pname = "helm-lastpass"; + version = "20170914.142"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "helm-lastpass"; + rev = "ae5d1252d60450082a5c26af3ad2be43994201ec"; + sha256 = "0qlcy8g9m3mfnr6p7kax6i1bq0dsxpz22vy5zjp24farx96mj5mi"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a39f1b0a5b22e91eb9e298949def6c29e7bc5755/recipes/helm-lastpass"; + sha256 = "0zgq3szds5l3ah39wiacqcc1j0dlbhwm0cjx64j28jx93300kx57"; + name = "helm-lastpass"; + }; + packageRequires = [ csv emacs helm-core ]; + meta = { + homepage = "https://melpa.org/#/helm-lastpass"; + license = lib.licenses.free; + }; + }) {}; + helm-lean = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, helm, lean-mode, lib, melpaBuild }: + melpaBuild { + pname = "helm-lean"; + version = "20170919.934"; + src = fetchFromGitHub { + owner = "leanprover"; + repo = "lean-mode"; + rev = "2f73061c886bae07bc51e4d9eb545ed8027c0442"; + sha256 = "17bqx7bkfzv4w7cf0l139xwg1shns680rq74hrqgicammb453kz7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde/recipes/helm-lean"; + sha256 = "0j5ax14lhlyd9mpqk1jwh7nfp090kj71r045v2qjfaw2fa23b7si"; + name = "helm-lean"; + }; + packageRequires = [ dash emacs helm lean-mode ]; + meta = { + homepage = "https://melpa.org/#/helm-lean"; + license = lib.licenses.free; + }; + }) {}; helm-lobsters = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-lobsters"; @@ -31668,8 +32162,8 @@ src = fetchFromGitHub { owner = "julienXX"; repo = "helm-lobste.rs"; - rev = "4121b232aeded2f82ad2c8a85c7dda17ef9d97bb"; - sha256 = "0nkmc17ggyfi7iz959mvzh6q7116j44zqwi7ydm9i8z49xfpzafy"; + rev = "53c5b42baf72776dcba891fc3d7cd7d47721e9b0"; + sha256 = "1ic0pcr7cfrfalb7760viixz5gfdg5hfazzwfhhw08vx44xx0jk4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6247e3786131e5b2a7824804e49927ed65d266d5/recipes/helm-lobsters"; @@ -31685,12 +32179,12 @@ helm-ls-git = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-ls-git"; - version = "20170214.525"; + version = "20170727.1238"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-ls-git"; - rev = "7b7b6dc2554603ad98412927f84a803625069ab3"; - sha256 = "1s748a5abj58hd7cwzfggfnnmyzhj04gpbqqwqmskn8xlsq5qcdi"; + rev = "d116bb96b6ea946f633ed7735fbf38a63e611a3a"; + sha256 = "0z09qvb6yyz2vnxkcg6xhaawja1ynxfwzx5j2aqyiicwqbyf3kvg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b487b4c0db9092bb7e32aad9265b79a9d18c8478/recipes/helm-ls-git"; @@ -31724,18 +32218,19 @@ license = lib.licenses.free; }; }) {}; - helm-ls-svn = callPackage ({ cl-lib ? null, emacs, fetchsvn, fetchurl, helm, lib, melpaBuild }: + helm-ls-svn = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-ls-svn"; version = "20150717.39"; - src = fetchsvn { - url = "https://svn.macports.org/repository/macports/users/chunyang/helm-ls-svn.el"; - rev = "154482"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "helm-ls-svn"; + rev = "4d4dc1a272f27fba5fdd7cc47e5d309b53c63ae3"; sha256 = "0b7gah21rkfd43mb89lrwaqrrwq646abh7wi4q74sx796gmpz4dz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/99cc183c09b97264d243b4fe036574ce9c6b9687/recipes/helm-ls-svn"; - sha256 = "08mwzi340akw4ar20by0q981mzmzvf0wz3mn738q4inn2kqgs60d"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/helm-ls-svn"; + sha256 = "0rqsy6gk114khqr28bp2fi0ixaa8wbqd952yxph517p1pbfwxy66"; name = "helm-ls-svn"; }; packageRequires = [ cl-lib emacs helm ]; @@ -31747,12 +32242,12 @@ helm-make = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, projectile }: melpaBuild { pname = "helm-make"; - version = "20170412.1229"; + version = "20171004.1018"; src = fetchFromGitHub { owner = "abo-abo"; repo = "helm-make"; - rev = "77f6f47277cfca5df9019165037277cafd0aac76"; - sha256 = "1cbiqvgynnbj7cc30da2yyakik52bh9aqpr4b55pzly6mcq32qfl"; + rev = "786104ac0c3cf4fe5b53f841eb9fe10bda2e4031"; + sha256 = "0qdfk0p2j8jah7m0ngy2mm7775cn779m3a84yll86wqc74g331qs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f25f066c60d4caff1fbf885bc944cac47515ec8/recipes/helm-make"; @@ -31831,12 +32326,12 @@ helm-mu = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-mu"; - version = "20161010.102"; + version = "20171027.933"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-mu"; - rev = "1f9a6b0f8217c0c6359f53b724d9da4c3c3f896c"; - sha256 = "0ch0zip9ldsza3vq66hs8kyczlhdywr2i9sqkza4inm8b938y1dv"; + rev = "cda769ef48e1e11e3b21cdafa85adb8e36384d78"; + sha256 = "0s7v2hdrsd3xmdw0iwd3zqpdj3zp3z0akcyyw3cicpmic7wrcc75"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/63ee2e2aa622c96993c1b705d0fd223d6b36fd0f/recipes/helm-mu"; @@ -31877,8 +32372,8 @@ src = fetchFromGitHub { owner = "travisbhartwell"; repo = "nix-emacs"; - rev = "ace629f7645d12778c96ff7b5cf4b1e41a98af29"; - sha256 = "11infdrdjc30kxvfg5rh1zn4idvkhf9s0c6v60qn441m1d5bnavq"; + rev = "7007363e773a419203a69798fb0e0731b2eb0f73"; + sha256 = "00hv8fhyahkdh1vfy1qkahqvsik6d81c7mqh4gjiqxrmb2l1vbcb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6846c7d86e70a9dd8300b89b61435aa7e146be96/recipes/helm-nixos-options"; @@ -31894,12 +32389,12 @@ helm-notmuch = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, notmuch }: melpaBuild { pname = "helm-notmuch"; - version = "20170221.1208"; + version = "20170903.2159"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "helm-notmuch"; - rev = "aac6b3ee2142515dc3f4b59f242cdfa2b012118c"; - sha256 = "10d2r9bksiq2v03fw6f44i30dk0hai12d1baygkci850m5n67irz"; + rev = "782c221bf293eee55990de5b54171f08d881dcee"; + sha256 = "04mlsjqhh2nw2javxz8m1hbnsq0s70dw5pnwdbx8s9dk1p8ikxvw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/98667b3aa43d3e0f6174eeef82acaf71d7019aac/recipes/helm-notmuch"; @@ -31936,12 +32431,12 @@ helm-org-rifle = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: melpaBuild { pname = "helm-org-rifle"; - version = "20170409.1055"; + version = "20170807.611"; src = fetchFromGitHub { owner = "alphapapa"; repo = "helm-org-rifle"; - rev = "540d095b769980dbe5e12968a1fd7688d6bc6526"; - sha256 = "1aqp82njc06zap4iv6jbf7iznw6knwfqi5a7m3cd4ngdcg4gl7s8"; + rev = "502ea1285b8ce858a3acbc39dd4f54ff1af5b7e3"; + sha256 = "1j87fd9qv7pl7s52ksj7iy023lw76qy4mkgjc4w5rljvm5bdnrgp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615/recipes/helm-org-rifle"; @@ -32020,12 +32515,12 @@ helm-pass = callPackage ({ auth-password-store, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, password-store }: melpaBuild { pname = "helm-pass"; - version = "20170417.1033"; + version = "20170627.1124"; src = fetchFromGitHub { owner = "jabranham"; repo = "helm-pass"; - rev = "8c4b330dad4be9df74eb44e312d72aedcbf628d4"; - sha256 = "0q2vjnfiivb778cfnbg777y4srqk117k1kc5az4qk7n3hq0rg12l"; + rev = "bf5e1ea85ca531f07372eb8e7b9a8812ff3d3a5e"; + sha256 = "1l3dbgl65rcvw7cgqfxm3kvpfj65pj8jhkp9pg4yykli5y0wsbdx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d8100599d69a760cd4548004a552cc0adcdb3bed/recipes/helm-pass"; @@ -32146,12 +32641,12 @@ helm-projectile = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, projectile }: melpaBuild { pname = "helm-projectile"; - version = "20170328.2152"; + version = "20170926.1123"; src = fetchFromGitHub { owner = "bbatsov"; repo = "helm-projectile"; - rev = "c987e81ededdcb69c5a7b2bb6efc32bc2398ce54"; - sha256 = "06ygcmpdpr7qzpx6l7qlbdif10vpzw009zg8z8yl1p1r30qdcbs0"; + rev = "4466adbcada8be19ec97b9dba52e12b8da3da849"; + sha256 = "1a4s3vs2vh2dz31an7jjrbyli1dsqwl7qcd1r63ak87klzpqn98b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc4e3a5af7ba86d277c73a1966a91c87d3d855a/recipes/helm-projectile"; @@ -32251,12 +32746,12 @@ helm-qiita = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-qiita"; - version = "20160528.611"; + version = "20170821.609"; src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-qiita"; - rev = "45e38ae7b816da5db38412b2992c6d1c7a6cc30a"; - sha256 = "05394vf125qlgfrhkaqvly3340qp3zy7kldsnisms9gv0l1c60bq"; + rev = "f00a61fc802d0f6442f07e7bd1c55fedf60f3895"; + sha256 = "0z5xyb4kh3hwv8a869kgfx7hdzmja4ksvfkmc7v0xmxzjcg3nb7j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/37331f6cc8a95fd2b2ed5b20be0bcb604ea66dee/recipes/helm-qiita"; @@ -32272,12 +32767,12 @@ helm-rage = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: melpaBuild { pname = "helm-rage"; - version = "20170331.607"; + version = "20170422.510"; src = fetchFromGitHub { owner = "bomgar"; repo = "helm-rage"; - rev = "67c62eafe8af70b330895576dcb004e45c93a98a"; - sha256 = "0rrrkz092h7cikcafwf6blkyqsb6qwq1mkw8k4mbb8vy9bp9mx0b"; + rev = "3cae7f309b45cc6e40507be68c0cc2e5595c1392"; + sha256 = "0j8yvxvd78lcfpss327xc6rahkqva66rrqjjx5cmdl82xncb53vz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/84f831fdc5a0e90c23ac11c79f193f4d3c1ebb04/recipes/helm-rage"; @@ -32440,12 +32935,12 @@ helm-rtags = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, rtags }: melpaBuild { pname = "helm-rtags"; - version = "20170402.653"; + version = "20170812.2111"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/helm-rtags"; @@ -32566,12 +33061,12 @@ helm-smex = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, smex }: melpaBuild { pname = "helm-smex"; - version = "20161202.1252"; + version = "20171004.1308"; src = fetchFromGitHub { owner = "ptrv"; repo = "helm-smex"; - rev = "7af4e4b44671f739b39584fc50c20084700701ac"; - sha256 = "1dhzglpd48mb47iyii8igb1dldvnr4alg18m7g8xb529dx8z9wni"; + rev = "2269375dfa452b88b5170d1a5d5849ebb2c1e413"; + sha256 = "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/85568bd732da952053148e07b95e53f7caf5f62c/recipes/helm-smex"; @@ -32671,12 +33166,12 @@ helm-swoop = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-swoop"; - version = "20160619.953"; + version = "20170923.2127"; src = fetchFromGitHub { owner = "ShingoFukuyama"; repo = "helm-swoop"; - rev = "6d3fdcfb6dea06242efc8ff4cafff9917e558bfc"; - sha256 = "1pjpzccviz95zgl86yw2xda7lhlsfdddf8la8di8rka8sz79nw72"; + rev = "66a951700e0ef0621cc705791bdd6699488ab121"; + sha256 = "1j1qmbj4g5z891i1xyz8p34mk63ckpl1j80pznbhvb9ffl9aw976"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-swoop"; @@ -32734,12 +33229,12 @@ helm-tramp = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-tramp"; - version = "20170412.437"; + version = "20170708.320"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-helm-tramp"; - rev = "e0fc2b0f9c3763e9c1e35cc515a29ebbbcd322e0"; - sha256 = "06mxff0dx5l2q1ayy574gyhlslngv7ha7jc6yazw8wkhqnldp79h"; + rev = "9480ee2d5a9cc190e48a04ffac33ca6403fd12e1"; + sha256 = "0jh9vbbsdzgxd41x5ykvb4b5ww248bc7lrzfjn4jmckgjmqq8v1y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-tramp"; @@ -32759,8 +33254,8 @@ src = fetchFromGitHub { owner = "bomgar"; repo = "helm-unicode"; - rev = "e331c38e651287981e5d34c27e5d7dc4ff24b0d4"; - sha256 = "05pvswisi44bl35anjbimd0q8i3c7kkjfksvaj69gcr788lhb8iv"; + rev = "1ad1fcca7a83c163ae74eb72a443cfc102128e33"; + sha256 = "16s0k6l2k32nxmgqc159kr5vzgn8gydj3bkrkvhhydm3lnh8ki0n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f720b9f9b667bf9ff3080938beab36aa0036dc92/recipes/helm-unicode"; @@ -32797,12 +33292,12 @@ helm-w3m = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, w3m }: melpaBuild { pname = "helm-w3m"; - version = "20150722.824"; + version = "20170918.1017"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-w3m"; - rev = "280673470672c9fbc57fd6a91defeb9f6641fc8a"; - sha256 = "0d47mqib4zkfadq26vpy0ih7j18d6n5v4c21wvr4hhg6hg205iiz"; + rev = "158f52abaa216cd64fc2c85f07722eceef508cec"; + sha256 = "1kvvgrfjpifrph1fgn4jvrhsrq8qq9z3w0ag9wjx5lb595svn4vh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f683fc9c7990e9ecb8a94808a7d03eb90c5569b1/recipes/helm-w3m"; @@ -32836,27 +33331,6 @@ license = lib.licenses.free; }; }) {}; - helm-words = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "helm-words"; - version = "20150413.1318"; - src = fetchFromGitHub { - owner = "pronobis"; - repo = "helm-words"; - rev = "637aa3a7e9cfd34e0127472c5b1f993a4da26185"; - sha256 = "19l8vysjygscr1nsddjz2yv0fjhbsswfq40rdny8zsmaa6qhpj35"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f8c5b91762d47a4d3024f1ed7f19666c6f2d5ce5/recipes/helm-words"; - sha256 = "0l9mb7g3xzasna1bw2p7vh2wdg1hmjkff40p8kpqvwwzszdm9v76"; - name = "helm-words"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/helm-words"; - license = lib.licenses.free; - }; - }) {}; helm-xcdoc = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-xcdoc"; @@ -32878,6 +33352,27 @@ license = lib.licenses.free; }; }) {}; + helm-xref = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-xref"; + version = "20170822.1708"; + src = fetchFromGitHub { + owner = "brotzeit"; + repo = "helm-xref"; + rev = "af55df844aa65275c8f75d3a8705e13717fd3ee6"; + sha256 = "0srjmz3xm6ycx5grjl7iqrnx5qlmg7n42i9wrb3i01zrjrjbqi7x"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6d1796688ed0d6957557d960ca28e450f9bcb6cf/recipes/helm-xref"; + sha256 = "1wyh25gxqgsc151bv4j5l050z1cz0n3yq174m62ihi1fy1pkra4l"; + name = "helm-xref"; + }; + packageRequires = [ emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-xref"; + license = lib.licenses.free; + }; + }) {}; helm-youtube = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, request }: melpaBuild { pname = "helm-youtube"; @@ -32885,8 +33380,8 @@ src = fetchFromGitHub { owner = "maximus12793"; repo = "helm-youtube"; - rev = "7a944bc25f0f9e915011e9325caf46b46fcaa1b8"; - sha256 = "0948rq6i4ibwhmi6m2k23f83yvf56vwgri1sg2060d901zd86cxy"; + rev = "202c27fc3b54927611e9d9c764465e1b42ef7e41"; + sha256 = "1wqxcz03fq2z31a1n90dg9ap3451vx1376ijbpfy9sg66pgj8yxv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7537f732091b96b6c1b96c0174895278eba6776a/recipes/helm-youtube"; @@ -32920,57 +33415,45 @@ license = lib.licenses.free; }; }) {}; - help-fns-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "help-fns-plus"; - version = "20170223.733"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/help-fns+.el"; - sha256 = "0n7sdzvplcb0zivpjq9x75kaid59yxr7sl85w7z99irx3kgpy9y4"; + helpful = callPackage ({ dash, elisp-refs, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "helpful"; + version = "20171016.1437"; + src = fetchFromGitHub { + owner = "Wilfred"; + repo = "helpful"; + rev = "3e08b24e9eabbb17535d39b087895c04cbcd5c1f"; + sha256 = "17i4q307rdpgpw76m6brf6vis1znfwfqzhfcb181zgf2gam620hb"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/help-fns+"; - sha256 = "10vz7w79k3barlcs3ph3pc7914xdhcygagdk2wj3bq0wmwxa1lia"; - name = "help-fns-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful"; + sha256 = "17w9j5v1r2c8ka1fpzbr295cgnsbiw8fxlslh4zbjqzaazamchn2"; + name = "helpful"; }; - packageRequires = []; + packageRequires = [ dash elisp-refs emacs s ]; meta = { - homepage = "https://melpa.org/#/help-fns+"; + homepage = "https://melpa.org/#/helpful"; license = lib.licenses.free; }; }) {}; - help-mode-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "help-mode-plus"; - version = "20170223.737"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/help-mode+.el"; - sha256 = "00yx1rhp7akap63c3nqh766zkjvfarmvm0xvza40i167wc7xmydg"; + hemera-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "hemera-theme"; + version = "20170910.603"; + src = fetchFromGitHub { + owner = "GuidoSchmidt"; + repo = "emacs-hemera-theme"; + rev = "354ae3b788c11ac08e6e2fe7c86adc621e2b16fd"; + sha256 = "00cfi9gsn9fvjpgxkz931p02gs8dcgwwsaqz3anss9qadxxmi9xv"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/help-mode+"; - sha256 = "1pmb845bxa5kazjpdxm12rm2wcshmv2cmisigs3kyva1pmi1shra"; - name = "help-mode-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/hemera-theme"; + sha256 = "0lxm06gv5f75s86320m8wh3dirdcspb6zd5n1a6l0pnn585xqkrn"; + name = "hemera-theme"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/help-mode+"; - license = lib.licenses.free; - }; - }) {}; - help-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "help-plus"; - version = "20170223.731"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/help+.el"; - sha256 = "0zypqsj940cmb8szbk5acv47kaj3czg6yplx1lg5dynhvab3p29f"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/help+"; - sha256 = "1jx0wa4md1mvdsvjyx2yvi4hhm5w061qqcafsrw4axsz7gjpd4yi"; - name = "help-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/help+"; + homepage = "https://melpa.org/#/hemera-theme"; license = lib.licenses.free; }; }) {}; @@ -33040,12 +33523,12 @@ hexo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hexo"; - version = "20170308.205"; + version = "20170702.1915"; src = fetchFromGitHub { owner = "kuanyui"; repo = "hexo.el"; - rev = "f7b8803fd81e738e25425e0eeeed4cf2adc6a5e8"; - sha256 = "0hbfgzs4kg2vqm034falm9rhhin9ii0n0rc50qli5v3a85c7ayrw"; + rev = "201c795ded01d96690ceadc1dd068744aceaeda8"; + sha256 = "0rj5lcmlghxm4d1vx8jxdhw53famzjxzp1bx38zgrqlhwakyghab"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/21de1b7db0fa4af4fc0014207d41893a0713d738/recipes/hexo"; @@ -33058,24 +33541,6 @@ license = lib.licenses.free; }; }) {}; - hexrgb = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hexrgb"; - version = "20170304.1213"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hexrgb.el"; - sha256 = "1aj1fsc3wr8174xs45j2wc2mm6f8v6zs40xn0r4qisdw0plmsbsy"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hexrgb"; - sha256 = "0b8lzmyv91f5bg7n2wj50p1pv6hpd2wygjcrffg4wwa52lp24dzk"; - name = "hexrgb"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hexrgb"; - license = lib.licenses.free; - }; - }) {}; hfst-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hfst-mode"; @@ -33160,24 +33625,6 @@ license = lib.licenses.free; }; }) {}; - hide-comnt = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hide-comnt"; - version = "20170223.739"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hide-comnt.el"; - sha256 = "1shkq45vm60nh2kkvf284nck8jwxh7f7m4c5d53k66mxn214h53m"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hide-comnt"; - sha256 = "0l3qvklyyc6hfinlzif7vfspl8b91ql0qdiwhixcilglyvad8r80"; - name = "hide-comnt"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hide-comnt"; - license = lib.licenses.free; - }; - }) {}; hide-lines = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hide-lines"; @@ -33199,24 +33646,6 @@ license = lib.licenses.free; }; }) {}; - hide-region = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hide-region"; - version = "20140201.314"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hide-region.el"; - sha256 = "1zxrygpf47bzj6p808r3qhj3dfr3m8brp1xgxs33c7f88rinfval"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c5fc294a4d0cfa74530c98d81149fd0501ea7efe/recipes/hide-region"; - sha256 = "0nsc6m3yza658xsxvjz8766vkp71rcm6vwnvcv225r2pr94mq7vm"; - name = "hide-region"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hide-region"; - license = lib.licenses.free; - }; - }) {}; hideshow-org = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hideshow-org"; @@ -33238,33 +33667,15 @@ license = lib.licenses.free; }; }) {}; - hideshowvis = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hideshowvis"; - version = "20170227.1250"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hideshowvis.el"; - sha256 = "02a6v2m54r5nfbi54h1502aqh7gnz827pfi1sq266qyzj3p6yz12"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/881fd07512c417c0b98021af2a2c26eac4268a5f/recipes/hideshowvis"; - sha256 = "1ajr71fch3v5g8brb83kwmlakcam5w21i3yr8df00c5j2pnc6v1f"; - name = "hideshowvis"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hideshowvis"; - license = lib.licenses.free; - }; - }) {}; hierarchy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hierarchy"; - version = "20170417.231"; + version = "20171017.1103"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "hierarchy"; - rev = "b2ce428d199967ddfb6face22ec7ec0593bd06fe"; - sha256 = "11zzm10xivqs16msdw2p2w12zjzwy2qk8mpan08y8zm982dx2mnc"; + rev = "cd65d149b8910edfa5536eeda26988aabcfd511a"; + sha256 = "0746wn62vwgnn4hg8ag0hq80hv7lwv929pjk5cccqqz4s0kp0c80"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7aea238a2d14e9f58c0474251984b6c617b6854d/recipes/hierarchy"; @@ -33277,24 +33688,6 @@ license = lib.licenses.free; }; }) {}; - highlight = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "highlight"; - version = "20170223.743"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/highlight.el"; - sha256 = "05dsa2sfciajwagm1gzl3v2r199nl1yjnb6l0v8ria3f9d72yj5j"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/603e9fc90e6e6cf7fe903cb3c38155c1a4f45278/recipes/highlight"; - sha256 = "0clv4mzy9kllcvc0cgsbx3a9anw68dc2c7vzwbrv13sw5gh9skc0"; - name = "highlight"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/highlight"; - license = lib.licenses.free; - }; - }) {}; highlight-blocks = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-blocks"; @@ -33316,42 +33709,6 @@ license = lib.licenses.free; }; }) {}; - highlight-chars = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "highlight-chars"; - version = "20170223.740"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/highlight-chars.el"; - sha256 = "00rna5bs0ilgsdi5168djjpb3hg89yq20pp17sx5r3jcksm2fm4f"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/highlight-chars"; - sha256 = "19jawbjvqx1hsjbynx0jgpziap3r64k8s1xfckajrx8aq8m4c6i0"; - name = "highlight-chars"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/highlight-chars"; - license = lib.licenses.free; - }; - }) {}; - highlight-cl = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "highlight-cl"; - version = "20091012.1030"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/highlight-cl.el"; - sha256 = "0r3kzs2fsi3kl5gqmsv75dc7lgfl4imrrqhg09ij6kq1ri8gjxjw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7dc85d7fd8e4d7381850f4a379140c64506f86e8/recipes/highlight-cl"; - sha256 = "164h3c3rzriahb7v5hk2pw4i0gk2vk5ak722bai6x4zx4l1xp20w"; - name = "highlight-cl"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/highlight-cl"; - license = lib.licenses.free; - }; - }) {}; highlight-context-line = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-context-line"; @@ -33373,25 +33730,6 @@ license = lib.licenses.free; }; }) {}; - highlight-current-line = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "highlight-current-line"; - version = "20051013.1056"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/highlight-current-line.el"; - sha256 = "1aki7a7nnj9n7vh19k4fr0v7cqbwkrpc6b3f3yv95vcqj8a4y34c"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2768ed5917ec2e2339412d8fbd146ca5a8a5042/recipes/highlight-current-line"; - sha256 = "01bga6is3frzlzfajpvpgz224vhl0jnc2bl2ipvlygdcmv4h8973"; - name = "highlight-current-line"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/highlight-current-line"; - license = lib.licenses.free; - }; - }) {}; highlight-defined = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-defined"; @@ -33434,15 +33772,36 @@ license = lib.licenses.free; }; }) {}; + highlight-function-calls = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "highlight-function-calls"; + version = "20170907.2200"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "highlight-function-calls"; + rev = "f7a1eaf95fc64cc0db4d0567f9ff79ec4ae04787"; + sha256 = "1gbj1awjp69352a5p49ldimvij5mj8cngjp2sh45qw1cm5dpq653"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2d1eed3f9af218d21ea8db37ee91888e23e59bd5/recipes/highlight-function-calls"; + sha256 = "0wmxijkhx74da3ygnvzsdvbh2iii4f7424wmm01b5skbr7qva690"; + name = "highlight-function-calls"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/highlight-function-calls"; + license = lib.licenses.free; + }; + }) {}; highlight-indent-guides = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-indent-guides"; - version = "20170106.1025"; + version = "20170516.1355"; src = fetchFromGitHub { owner = "DarthFennec"; repo = "highlight-indent-guides"; - rev = "087f719fda7d60c837146c81b1d9d0aab22ba88e"; - sha256 = "0q8ch945h9slfp636clf0f60ws78zcbnc1grld8n59chhq22nfyb"; + rev = "b51744bde1287979f2d948f46501bd6ed0897f69"; + sha256 = "17xbd1kiww762dibws48gwn682g1bxy5rb7np5alqhiiw1l13wdw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c8acca65a5c134d4405900a43b422c4f4e18b586/recipes/highlight-indent-guides"; @@ -33458,12 +33817,12 @@ highlight-indentation = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-indentation"; - version = "20170411.40"; + version = "20170502.43"; src = fetchFromGitHub { owner = "antonj"; repo = "Highlight-Indentation-for-Emacs"; - rev = "2e1891aef4a763560a2f51c8fa81e5cb16ae3165"; - sha256 = "03bhig71lb9z2fg3wz0y9cxmdnd7n8m4f6hpnqlsc6x5c8xrjlv5"; + rev = "5c7717a2224372f7113d13640515df3650388a37"; + sha256 = "13d85qbq6q9pz3yrwpn6rjlrbrjs0fnskkbb5liczyxyk8rzj924"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31c443de5088410c0fe1b1c18f664b33ad259277/recipes/highlight-indentation"; @@ -33500,12 +33859,12 @@ highlight-numbers = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, parent-mode }: melpaBuild { pname = "highlight-numbers"; - version = "20160717.1228"; + version = "20170905.342"; src = fetchFromGitHub { owner = "Fanael"; repo = "highlight-numbers"; - rev = "b7adef0286aaa5bca8e98a12d0ffed3a880e25aa"; - sha256 = "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"; + rev = "f952ecb7448c125d4ef82ee6ad136b25e640d74a"; + sha256 = "0fgb63iwdaakzm9cddivmr2j0mmay3512wmd14dh804a62j5l2pv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/882e3a4877ddd22cc52f56f0ce3d55b6e4831c7a/recipes/highlight-numbers"; @@ -33541,12 +33900,12 @@ highlight-parentheses = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-parentheses"; - version = "20151107.2316"; + version = "20170809.1151"; src = fetchFromGitHub { owner = "tsdh"; repo = "highlight-parentheses.el"; - rev = "a821a314942f409cd69660d816cd9a0aebd1ae8f"; - sha256 = "0kzqx1y6rr4ryxi2md9087saad4g4bzysckmp8272k521d46xa1r"; + rev = "c38885bba4f174c0a2cad3a60fe12b7cf8699aa1"; + sha256 = "0j3rv7cpvckbsdl7lppgdyxbbznqzds5hvjl1qfwip1plbc8vcb2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/highlight-parentheses"; @@ -33643,33 +34002,15 @@ license = lib.licenses.free; }; }) {}; - highlight-tail = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "highlight-tail"; - version = "20140415.1841"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/highlight-tail.el"; - sha256 = "1bbiyqddqkrp3c7xsg1m4143611bhg1kkakrwscqjb4cfmx29qqg"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d033ff8cceb7e6d1e5a9f0ec7b706eb28bfe30f3/recipes/highlight-tail"; - sha256 = "187kv3n262l38jdapi9bwcafz8fh61pdq2zliwiz7m7xdspp2iws"; - name = "highlight-tail"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/highlight-tail"; - license = lib.licenses.free; - }; - }) {}; highlight-thing = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "highlight-thing"; - version = "20170207.2239"; + version = "20170919.704"; src = fetchFromGitHub { owner = "fgeller"; repo = "highlight-thing.el"; - rev = "c998172704ac4b96147d862a0eb4a0f97deb5e0a"; - sha256 = "0s441ya0fcw7sv1ah13dh0b0m2rcvf68a442knvnf06a07hpr5sr"; + rev = "4eadd178175772fb04ae50e1199d797a6375ad4d"; + sha256 = "1h2ka1fi0pdh0mx3z8sh4fvwyiyc18d56nl9wd4c96h3n93f7py0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/84b6cb403ff9a588771d051e472596f4e3cc974d/recipes/highlight-thing"; @@ -33724,15 +34065,36 @@ license = lib.licenses.free; }; }) {}; + himp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, vimish-fold }: + melpaBuild { + pname = "himp"; + version = "20170814.1215"; + src = fetchFromGitHub { + owner = "mkcms"; + repo = "himp"; + rev = "140234b7f7cde03cf858c5011a2ab63e3bc802ec"; + sha256 = "1g3ivash185anw8i67di1mxdfxa9py51prdy5ixl95vpqk5nmwbw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/51b31fb1fa7052d16d659313d249eef01ca3ee88/recipes/himp"; + sha256 = "1igzlvm4g4rcnlvnwi5kn1jfvyrw2vnmp1kpvfnv7w9n6d8kflla"; + name = "himp"; + }; + packageRequires = [ emacs vimish-fold ]; + meta = { + homepage = "https://melpa.org/#/himp"; + license = lib.licenses.free; + }; + }) {}; hindent = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hindent"; - version = "20160905.243"; + version = "20170609.126"; src = fetchFromGitHub { owner = "chrisdone"; repo = "hindent"; - rev = "712ab8c48759dddc2b3f0c752db3c1e2f90b142b"; - sha256 = "1rrvcdqmgmk033bb5zvyrnbbwhbhkpmhi5rv9bbikci49ka4jy5g"; + rev = "578d1256e466eb8bf40fd7e441172eb12e878637"; + sha256 = "02dvnlg3r9pfk18664d5paqc90ll6a4sc05a9w2phafmi9kypwgr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dbae71a47446095f768be35e689025aed57f462f/recipes/hindent"; @@ -33769,12 +34131,12 @@ hippie-expand-slime = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hippie-expand-slime"; - version = "20170317.0"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "hippie-expand-slime"; - rev = "ed6c91a0600550788dc78a3ab32040ac28f7c8d4"; - sha256 = "0nqrz1wmg84xk08mi5w8h9mrymr23v8i39s2kdqsrmn6qpw37fpl"; + rev = "39bbae94896a62854d31754debdfae71d35fec62"; + sha256 = "1l2j5k4jk8jpm1vdf0z5zwa287859afsgd3gda778sdsiy38l6r7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/hippie-expand-slime"; @@ -33811,12 +34173,12 @@ historian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "historian"; - version = "20170416.2154"; + version = "20170722.1714"; src = fetchFromGitHub { owner = "PythonNut"; repo = "historian.el"; - rev = "0838ed60febaf618cf242377d92aa9b5c4e42fae"; - sha256 = "1zzngs5xqqib2yj19snwndyc27s8lfm6nfsya9zvz4bafizgdn6k"; + rev = "78ec5632e4f4fd005014bd762c4a5ccdeabbd33d"; + sha256 = "1ag9hpxrzg5add4nj2j08ymxrggnzdzqb8k1vcpkd8rg72138k3w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f16dacf64c52767c0c8aef653ac5d1a7a3bd0883/recipes/historian"; @@ -33857,8 +34219,8 @@ src = fetchFromGitHub { owner = "k1LoW"; repo = "emacs-historyf"; - rev = "66590519a02816cde8f442032fb144f3c38ebc6e"; - sha256 = "1y275fchhx0n6dv038hsr44a3bjghqdhc8j1dcpm2rvs8chgm8g0"; + rev = "196c058ceb092fdd56b0e4ce85b7e714d6f72224"; + sha256 = "0fgm1m9mq1zn5gnrynf332hamif05qhh8haqci7gii7crzy47c0g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a67279875c19475433fa13625c95ee5855962a59/recipes/historyf"; @@ -33934,33 +34296,15 @@ license = lib.licenses.free; }; }) {}; - hl-defined = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hl-defined"; - version = "20170223.744"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hl-defined.el"; - sha256 = "0sj1ypfawb1pxblm11zbfyy96f2mbpnmif972yqfrxzf5h20ra1y"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/hl-defined"; - sha256 = "1y7vbhvpwxz70kja5hfm4i57mdd1cv43m4y9fr978y3nk265p8xx"; - name = "hl-defined"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hl-defined"; - license = lib.licenses.free; - }; - }) {}; hl-indent = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hl-indent"; - version = "20141227.1330"; + version = "20170429.1404"; src = fetchFromGitHub { owner = "ikirill"; repo = "hl-indent"; - rev = "e749f726ce589e04bb508160e7b290b61fb64d75"; - sha256 = "17apqs7yqd89mv5283kmwp7byaaimj7j0vis0z1d89jlmp8i6zbc"; + rev = "bdb2e0177a7c8b29af26998e688b856adc6ded93"; + sha256 = "0fwb64ja5ij97308pnd7g6l5mascavcp7jcar8igxv9yyqnw6pfi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3aa6ce8f3d1349e28dd9dea8396c38257e3cea2f/recipes/hl-indent"; @@ -33973,33 +34317,15 @@ license = lib.licenses.free; }; }) {}; - hl-line-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hl-line-plus"; - version = "20170223.745"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hl-line+.el"; - sha256 = "1dhrfbmh98y18xgsp42rx1qqcs296mpqqzzp3nr9rcqv4gvpllgp"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hl-line+"; - sha256 = "16wlvi97wfkj36rnkbhzsky7sib3b76r2ng0lizp7ncr8d0vvhfv"; - name = "hl-line-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hl-line+"; - license = lib.licenses.free; - }; - }) {}; hl-sentence = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hl-sentence"; - version = "20140802.920"; + version = "20171018.819"; src = fetchFromGitHub { owner = "milkypostman"; repo = "hl-sentence"; - rev = "45e3cc525ba636c0f22baa6d0938d9808622bc89"; - sha256 = "0pjfbm8p077frk475bx8xkygn8r4vdsvnx4rcqbjlpjawj0ndgxs"; + rev = "86ae38d3103bd20da5485cbdd59dfbd396c45ee4"; + sha256 = "1rzc74ckj06qs8kq2bd1cgqvgjd2qc3zxmk7bvgg6dy2m9nj52cm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/hl-sentence"; @@ -34033,33 +34359,15 @@ license = lib.licenses.free; }; }) {}; - hl-spotlight = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "hl-spotlight"; - version = "20170223.746"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/hl-spotlight.el"; - sha256 = "02x7p6hy1mkhbish55mzsdp6a1pnsdcfl4qi9cq48syg6cfm8fw3"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/adb008d2da35dbd3fca63555f04dd8a0009380c6/recipes/hl-spotlight"; - sha256 = "1166g27fp2pj4j3a8904pzvp5idlq4l22i0w6lbk5c9zh5pqyyf3"; - name = "hl-spotlight"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/hl-spotlight"; - license = lib.licenses.free; - }; - }) {}; hl-todo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hl-todo"; - version = "20161102.1337"; + version = "20170621.1257"; src = fetchFromGitHub { owner = "tarsius"; repo = "hl-todo"; - rev = "a23312464fc6462d559462a44cd74735e9f73421"; - sha256 = "0sy0fjmh1m36ajzfmxa2j9akws5qa8a4f1qmj3wgj9vdqd043mr8"; + rev = "961db3116f1396dc4f903e3a59824a40e0bbb6a2"; + sha256 = "0w847g7lvzk9br9r73n7rf2ba6wafqrapyigp91f62jicz28lvm1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7c262f6a1a10e8b3cc30151cad2e34ceb66c6ed7/recipes/hl-todo"; @@ -34075,12 +34383,12 @@ hledger-mode = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, popup }: melpaBuild { pname = "hledger-mode"; - version = "20170416.111"; + version = "20171031.1157"; src = fetchFromGitHub { owner = "narendraj9"; repo = "hledger-mode"; - rev = "f4244cbd773a20b887b937a2eafd1933d91a4d4d"; - sha256 = "1qv3v6x2ld518kg1f9ic3bz5y61jpqqzrlwlisd8jwx7cc8jvzic"; + rev = "7caae71ba87b592e08fb4caaaa1da8e9af80ec62"; + sha256 = "17b5hg7fkm8fj2v477ir9z87kn7q07v75akga414k29xlfzmvdw3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/hledger-mode"; @@ -34096,15 +34404,15 @@ hlint-refactor = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hlint-refactor"; - version = "20151124.1241"; + version = "20170817.2148"; src = fetchFromGitHub { owner = "mpickering"; repo = "hlint-refactor-mode"; - rev = "695d39b3434a5e35fab70aa5251f824ffaa30d6b"; - sha256 = "02mkfrs55d32948x739f94v35343gw6a0f7fknbcigbz56mzsvsp"; + rev = "92c69aa01c65968e86c15db087bb1ea785e4736c"; + sha256 = "0khnn8qk0948hlq513i7nhf7vg09iwznmj3bgw1b5k5r8j6lhs0g"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/79363587b07f68e30a98698fd33ab39153bcb06c/recipes/hlint-refactor"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/384ffc463cc6edb4806f8da68bd251e662718e65/recipes/hlint-refactor"; sha256 = "1311z6y7ycwx0mj67bya7a39j5hiypg72y6yg93dhgpk23wk7frq"; name = "hlint-refactor"; }; @@ -34117,12 +34425,12 @@ hlinum = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hlinum"; - version = "20160521.2112"; + version = "20170507.2227"; src = fetchFromGitHub { owner = "tom-tan"; repo = "hlinum-mode"; - rev = "bc92bb8344af61929ffb0cb4df9d6b30d7df80d1"; - sha256 = "1yfq55gzg6p17qbd9xf0g9cza5bzkvl47rkjq19mf6kjxk0ihkh7"; + rev = "2b4a08db4ff361ac8eeee1ed94eca7e26c614595"; + sha256 = "0j2ras605i2zsna02lp8k4mkyhln65cggmgkhgr9imcxfzwpjzqk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/41bca7b89a7ce52d4c9381b9a4046b7103996c4f/recipes/hlinum"; @@ -34242,12 +34550,12 @@ hound = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "hound"; - version = "20161130.1955"; + version = "20170627.1259"; src = fetchFromGitHub { owner = "ryoung786"; repo = "hound.el"; - rev = "dd95fc10b79029142c95307e895da0bc92bba28c"; - sha256 = "0c0fjfb8l0ladxw8b2ylnrnzw8k0xffl40hnkrc4bdzbl48zn55g"; + rev = "0c5a250ef82870dca737a429b6e9b9db93874ed3"; + sha256 = "0kf2nhp5k3gk82ad1k9qi4aysqhw36x4mcdhg6kjckmcakfjw3g6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/90cfc34eb4e8be7bf887533b85feba91131a435b/recipes/hound"; @@ -34307,13 +34615,13 @@ pname = "howm"; version = "20160928.439"; src = fetchgit { - url = "git://git.osdn.jp/gitroot/howm/howm.git"; + url = "https://scm.osdn.net/gitroot/howm/howm.git"; rev = "e0237b07f60011a1926b36848c73340ae46cdb3e"; sha256 = "0ljsvrpbj7y690pq6llnqqkvm9mlrhksxihv9jpx06d1g4ghknpq"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b4f66d7b6835d06b8e7451aec9e32bb9288a6020/recipes/howm"; - sha256 = "007r8mjn7m7m1mvsb1gaiqbizlwykh23k72g48nwan8bw556gfcr"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/0099a1f9b0efb3fc3a1420cfe71a647ec6458998/recipes/howm"; + sha256 = "07wx3wmc51vm42s81km5sdbm600ax2pv83xg0116xsyn05za3bfn"; name = "howm"; }; packageRequires = [ cl-lib ]; @@ -34325,12 +34633,12 @@ ht = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ht"; - version = "20161015.1945"; + version = "20171024.1200"; src = fetchFromGitHub { owner = "Wilfred"; repo = "ht.el"; - rev = "8b9281611c49335e97f2b644e34aa07a47dc4b2a"; - sha256 = "1pnsrirbh901qzqals6p2bbf28g2xn2zminwzj2x02cj49vfyqsz"; + rev = "a741bac82797d25ec0542764df7443e9e7241033"; + sha256 = "1m1v31bfaw2g3jymcxsl2bi1z37pj0sfhmldljk8m9zgjll56g6c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6c7589bca1c1dfcc0fe76779f6847fda946ab981/recipes/ht"; @@ -34430,12 +34738,12 @@ html2org = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "html2org"; - version = "20170416.624"; + version = "20170417.2201"; src = fetchFromGitHub { owner = "lujun9972"; repo = "html2org.el"; - rev = "89d35daea5e00bb597798800354ddd9fddcc2887"; - sha256 = "1il0h1plwn6472r8xa312dg0zvxxwdmj7yh6zh94l9p3y4iiwy4d"; + rev = "6904aed40259ad8afccff079ebd8a07bff319ebc"; + sha256 = "0dryk622fz0yj939pbs0fbb9i4m8qjnmkcxjsssws8f90plk06af"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/771e6604edc90182697bbd4827c8c46c34b48289/recipes/html2org"; @@ -34451,12 +34759,12 @@ htmlize = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "htmlize"; - version = "20161211.1019"; + version = "20171017.141"; src = fetchFromGitHub { owner = "hniksic"; repo = "emacs-htmlize"; - rev = "88e2cb6588827893d7bc619529393887c264d15a"; - sha256 = "09xpv8dsc39a7w9s6xnilc5kh1krs2jw8cklizxzz4gp36hrsj2n"; + rev = "a0b55cba65a225df8d9e17a3ac448ce9e8ec962d"; + sha256 = "0k23xz34ksd6n9xa8anbpvx07fymflyxdggy2is2kp0vqg66pv5q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/075aa00a0757c6cd1ad392f0300bf5f1b937648d/recipes/htmlize"; @@ -34472,12 +34780,12 @@ http = callPackage ({ edit-indirect, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "http"; - version = "20161127.1449"; + version = "20170906.1111"; src = fetchFromGitHub { owner = "emacs-pe"; repo = "http.el"; - rev = "18057d0967015979ee7e59598b1d3410d5966fcb"; - sha256 = "1bw9369c3r172p14rb74vqs0243696rqf46z627p1w73afq48zy5"; + rev = "193a7bf843dd6b6805c7b18dab31f50c8325d710"; + sha256 = "1v6adfy1774axplsjfsdkm0azfwb5g7iq26zcss4mj966q1633xv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7c63aaf27240706d84e464881d40cfb7cbe9ee3/recipes/http"; @@ -34493,12 +34801,12 @@ http-post-simple = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "http-post-simple"; - version = "20131010.2058"; + version = "20170715.240"; src = fetchFromGitHub { owner = "emacsorphanage"; repo = "http-post-simple"; - rev = "1c7b06cb0d6930aaaf3f319d9836786d40f1595f"; - sha256 = "1nvcqh3wwczh83k4nb7zgk1r07bsaycbds4zhpy7gic3jhxbvdns"; + rev = "f53697fca278c741051aeb668b00466b5e0fd3fe"; + sha256 = "0krdbvvvzn323vx554yw7947nddl3icfjk4wf5kfx7fim5v3mdn6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ae489be43b1aee93614e40f492ebdf0b98a3fbc1/recipes/http-post-simple"; @@ -34574,6 +34882,27 @@ license = lib.licenses.free; }; }) {}; + hugsql-ghosts = callPackage ({ cider, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "hugsql-ghosts"; + version = "20170612.1223"; + src = fetchFromGitHub { + owner = "rkaercher"; + repo = "hugsql-ghosts"; + rev = "2f3f98b644b4da35f4fb80b7c3b63f986417b415"; + sha256 = "0ng01pzxipzb3vkdn8yy5128kmnqnc4rhkszqji8lf8489jxfn8n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/969fd5e51bf93b5eff6919956c43c041a3b24d1e/recipes/hugsql-ghosts"; + sha256 = "1v1iypis5iyimdr9796qpqw0qmhzijap0nbr0mhhyp4001kakkwz"; + name = "hugsql-ghosts"; + }; + packageRequires = [ cider dash s ]; + meta = { + homepage = "https://melpa.org/#/hugsql-ghosts"; + license = lib.licenses.free; + }; + }) {}; hungarian-holidays = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hungarian-holidays"; @@ -34616,22 +34945,22 @@ license = lib.licenses.free; }; }) {}; - hy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + hy-mode = callPackage ({ dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "hy-mode"; - version = "20151025.543"; + version = "20171030.1023"; src = fetchFromGitHub { owner = "hylang"; repo = "hy-mode"; - rev = "50d7d24a52aefd7079c3f26a90c8eaf3065884a1"; - sha256 = "0wn83n1780bvrzx9p870wln51n9rfdghsxl79dp968dxycyhyxvj"; + rev = "afb1610b0f78e059ee1a034048a876ece70118f1"; + sha256 = "14b5dk7n9727dwyi9p80rcwm0f6i21y1x10rj05bal1s3lxq7frp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fc9ab5cf16b61bb27559cd8ec5cf665a5aab2154/recipes/hy-mode"; sha256 = "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m"; name = "hy-mode"; }; - packageRequires = []; + packageRequires = [ dash dash-functional emacs s ]; meta = { homepage = "https://melpa.org/#/hy-mode"; license = lib.licenses.free; @@ -34665,8 +34994,8 @@ src = fetchFromGitHub { owner = "hydandata"; repo = "hydandata-light-theme"; - rev = "169c0d9ab1272b0f4a1f29eb5f1cd5ffb2365e1e"; - sha256 = "19q63kg1higqxf26bhwnqwvqxpayjq2j24yi54b1wkvwbv5f28nr"; + rev = "0fbc91678ef65e1f65d7ec6792ff0b2f104d16a9"; + sha256 = "0bkj5cw173l829fkgigghs07mc2i84ngvs2y9g6kamrpg6zhq7g8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/413c617f15947782891159a240e0c9014f1f7d11/recipes/hydandata-light-theme"; @@ -34703,12 +35032,12 @@ hydra = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hydra"; - version = "20170325.815"; + version = "20170924.2259"; src = fetchFromGitHub { owner = "abo-abo"; repo = "hydra"; - rev = "38ce88a9c3be11b0431080078095159b2211ca7a"; - sha256 = "0hja61lxhnkl0mpq3fj46pmd9pp85ncdzvgzc1dy82a48sib92dj"; + rev = "df3025f7e3cf3899168ae8ced1e9b734df2b32a0"; + sha256 = "1sbj699956vxbzbdagw5hbx168sx9cfrc5vx6m6s89v2rkq8fw8k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a4375d8ae519290fd5018626b075c226016f951d/recipes/hydra"; @@ -34744,11 +35073,11 @@ }) {}; i3wm = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "i3wm"; - version = "20170116.1825"; + version = "20170822.738"; src = fetchgit { url = "https://git.flintfam.org/swf-projects/emacs-i3.git"; - rev = "7daad9bcbb545ed5cd75706eef56172cef1498cf"; - sha256 = "1y69hh9gaz8q3kljgjarqkxmc70qpf83rzwsb1rzsglf4aqlr2rq"; + rev = "71391dc61063fee77ad174f3b2ca25c60b41009e"; + sha256 = "16rwqfg517ask3y6mqxw689w8xx4i51nq8js5wnzbz9a55aj776n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2e12638554a13ef49ab24da08fe20ed2a53dbd11/recipes/i3wm"; @@ -34764,12 +35093,12 @@ iasm-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iasm-mode"; - version = "20131004.1644"; + version = "20171023.722"; src = fetchFromGitHub { owner = "RAttab"; repo = "iasm-mode"; - rev = "6b404ff94bbfe971b3614007c8e5dcd5757c5727"; - sha256 = "1gl21li9vqfjvls4ffjw8a4bicas2c7hmaa621k3hpllgpy6qdg5"; + rev = "abbec7f308f9ce97beeb57e459fff35f559b4c18"; + sha256 = "0hvpcckhlxab5f7w4s6iw5lhdbjrqn0l8gayg1w42rn6gssr3rap"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5c230ec10eb62d1b3f6df10c05c5dbc2e25d4507/recipes/iasm-mode"; @@ -34806,12 +35135,12 @@ ibuffer-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: melpaBuild { pname = "ibuffer-projectile"; - version = "20170410.1452"; + version = "20170721.1823"; src = fetchFromGitHub { owner = "purcell"; repo = "ibuffer-projectile"; - rev = "a004cd0121ab15a00311631289fc6a8c7a86a897"; - sha256 = "013yx94q2ffhiqbx9dara7kq76yfmigj4y00zc48rdinclnzb6az"; + rev = "431e29d6cf12fc333fc8dc16ceeba54b9416a4aa"; + sha256 = "1z5a4ygqmp4yjyfpcqlb846vsxvv5s2awhd3r63whw1hs9h6qqah"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/363a6a888945f2c8b02f5715539439ba744d737d/recipes/ibuffer-projectile"; @@ -34873,8 +35202,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "ibuffer-vc"; - rev = "de75fb3345384fe13d0500435241ca4a056f5fc7"; - sha256 = "0c8y53aim35v88w5h4zn49187j6v8j7frxlhcw8crfxi1v6i7wdh"; + rev = "e504f9233a9a15834562b6646883b6bf81986674"; + sha256 = "04a9y4kgbzw5s34rl3xidv21h35vs2rsy061vjsppglggyp1jpl5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/ibuffer-vc"; @@ -34887,42 +35216,6 @@ license = lib.licenses.free; }; }) {}; - icicles = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "icicles"; - version = "20170409.1830"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/icicles.el"; - sha256 = "00zsdahszs919zvklxgpm5kqhm2139cdr4acchgp9ppnyljs94jp"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ca7bf43ef8893bf04e9658390e306ef69e80a156/recipes/icicles"; - sha256 = "15h2511gm38q14avsd86j5mnxhsjvcdmwbnhj66ashj5p5nxhr92"; - name = "icicles"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/icicles"; - license = lib.licenses.free; - }; - }) {}; - icomplete-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "icomplete-plus"; - version = "20170303.1456"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/icomplete+.el"; - sha256 = "00wy0jqk6jdfh9izdpqq4y6x2x8q1m38sy6nb4ygfg3055lbhkam"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/fade28733f33e52a8622479de201f451c9a31c11/recipes/icomplete+"; - sha256 = "0gxqkj4bjrxb046qisfz22wvanxx6bzl4hfv91rfwm78q3484slx"; - name = "icomplete-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/icomplete+"; - license = lib.licenses.free; - }; - }) {}; id-manager = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "id-manager"; @@ -35091,22 +35384,22 @@ license = lib.licenses.free; }; }) {}; - ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, s }: melpaBuild { pname = "ido-completing-read-plus"; - version = "20170313.1603"; + version = "20170820.3"; src = fetchFromGitHub { owner = "DarwinAwardWinner"; - repo = "ido-ubiquitous"; - rev = "2bd3a2722d8df0db9dfe25f5763f7dfaf0734624"; - sha256 = "1zz0k5ddcwkg0wjdzihklgnxq5f6rlsxldhn7h9jzyss5bsgykhj"; + repo = "ido-completing-read-plus"; + rev = "e2ea358725f03ae623ae03ed90715efb92a61030"; + sha256 = "1bai04fz6ln4dbc3lgglv11g6mibg40wci5ylmc90wgd38iw9gkn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-completing-read+"; - sha256 = "034j1q47d57ia5bwbf1w66gw6c7aqbhscpy3dg2a71lwjzfmshwh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-completing-read+"; + sha256 = "0rxdv3cd0bg0p8c1bck5vichdq941dki934k23qf5p6cfgw8gw4z"; name = "ido-completing-read-plus"; }; - packageRequires = [ cl-lib emacs ]; + packageRequires = [ cl-lib emacs memoize s ]; meta = { homepage = "https://melpa.org/#/ido-completing-read+"; license = lib.licenses.free; @@ -35136,12 +35429,12 @@ ido-exit-target = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ido-exit-target"; - version = "20150904.737"; + version = "20170717.1151"; src = fetchFromGitHub { owner = "waymondo"; repo = "ido-exit-target"; - rev = "322520c665284ce6547eb9dcd3aa888a02a51489"; - sha256 = "1s93q47cadanynvm1y4y08s68yq0l8q8vfasdk7w39vrjsxxsj3x"; + rev = "e56fc6928649c87ccf39d56d84ab53ebaced1f73"; + sha256 = "1a1bcvmihf22kr8rpv6kyp4b7x79hla5qdys48d6kl06m53gyckp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b815e7492eb0bd39c5d1be5a95784f9fe5612b62/recipes/ido-exit-target"; @@ -35367,12 +35660,12 @@ ido-sort-mtime = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ido-sort-mtime"; - version = "20131117.530"; + version = "20170705.712"; src = fetchFromGitHub { owner = "pkkm"; repo = "ido-sort-mtime"; - rev = "7b7c77f6856125a59aff99ba0ff8d2b369896b5e"; - sha256 = "0w3cr2yf8644i0g8w6r147vi9wanibn41sg7dzws51yb9q0y92vd"; + rev = "5f4ec2c562f79b7fb2d1480c88db1fa8a812d814"; + sha256 = "1fqqkpz0x3q7fqmax90vxkpn14valkb0lprqs0w641cbq8a4wqm7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/36d2f7f1bb0d0694a25c1e83340781e08bee814b/recipes/ido-sort-mtime"; @@ -35406,22 +35699,22 @@ license = lib.licenses.free; }; }) {}; - ido-ubiquitous = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: + ido-ubiquitous = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: melpaBuild { pname = "ido-ubiquitous"; - version = "20170313.1603"; + version = "20170923.842"; src = fetchFromGitHub { owner = "DarwinAwardWinner"; - repo = "ido-ubiquitous"; - rev = "2bd3a2722d8df0db9dfe25f5763f7dfaf0734624"; - sha256 = "1zz0k5ddcwkg0wjdzihklgnxq5f6rlsxldhn7h9jzyss5bsgykhj"; + repo = "ido-completing-read-plus"; + rev = "e2ea358725f03ae623ae03ed90715efb92a61030"; + sha256 = "1bai04fz6ln4dbc3lgglv11g6mibg40wci5ylmc90wgd38iw9gkn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-ubiquitous"; - sha256 = "143pzpix9aqpzjy8akrxfsxmwlzc9bmaqzp9fyhjgzrhq7zchjsp"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous"; + sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz"; name = "ido-ubiquitous"; }; - packageRequires = [ cl-lib emacs ido-completing-read-plus ]; + packageRequires = [ cl-lib ido-completing-read-plus ]; meta = { homepage = "https://melpa.org/#/ido-ubiquitous"; license = lib.licenses.free; @@ -35493,12 +35786,12 @@ idris-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, prop-menu }: melpaBuild { pname = "idris-mode"; - version = "20161102.707"; + version = "20170722.1339"; src = fetchFromGitHub { owner = "idris-hackers"; repo = "idris-mode"; - rev = "b5e057bf6b805f4da7c17cb6ca5e69833935e900"; - sha256 = "1bwrf529m9xjb9bdypx35ss5v6k5v96hcqah3sij98x9357g7b6n"; + rev = "5c01039112a8c52a0275560575f1f542f3966cf5"; + sha256 = "0r3fbp2c8qhmsnpd63r9fjz1vxjsa054x69d9716pbp1jk3qsjsv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/17a86efca3bdebef7c92ba6ece2de214d283c627/recipes/idris-mode"; @@ -35514,16 +35807,16 @@ ids-edit = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ids-edit"; - version = "20160324.1522"; + version = "20170818.802"; src = fetchFromGitHub { owner = "kawabata"; repo = "ids-edit"; - rev = "3073f03267dd3527718e1edf1010055b6e55929e"; - sha256 = "18dca47ds5fiihijd1vv7nif44n4b4nv4za2djjfqbhbvizra1fd"; + rev = "8562a6cbfb3f2d44bc6f62ab15081a80f8fee502"; + sha256 = "10h64c5n9piq9ly7ipqq33ji8x8vwh9j1h7r05yab8a2sn0h8587"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f12d49b6ece6d2ac8ecb80d881db560367ddc4ba/recipes/ids-edit"; - sha256 = "0jzmcynr6lvsr36nblqzrjwxawyqcdz972zsv4rqkihdydpqfz7m"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/ids-edit"; + sha256 = "1n4gpcl3qj65cmaq9cdljsmrf84570z4chfvga6slsqjz5him8d1"; name = "ids-edit"; }; packageRequires = [ emacs ]; @@ -35535,12 +35828,12 @@ iedit = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iedit"; - version = "20161228.2111"; + version = "20170916.1024"; src = fetchFromGitHub { owner = "victorhge"; repo = "iedit"; - rev = "03b647be8bd35ca82916f2ace27a95d5b85e8ecf"; - sha256 = "1pbbkizaa2f8lazpsc1j7qs3snvwkmw7schzhminzxrvdx15yids"; + rev = "5b14cc9fcaef509c50f25cff872fba5d70b2c799"; + sha256 = "1vlfqh616id2kh35diwig6jswq5q5z22zwrpbdxkginag3sq8732"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/iedit"; @@ -35577,12 +35870,12 @@ iflipb = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iflipb"; - version = "20170205.200"; + version = "20170527.839"; src = fetchFromGitHub { owner = "jrosdahl"; repo = "iflipb"; - rev = "8eb478535aa4847b94ea4ce29d9476a6b652be2b"; - sha256 = "0plvjg1nkq37mpdbli2fyqhvabzi18mq5kjrgxk9d6s6ki2m26kq"; + rev = "e19229473be70e55c56a26ccc26c4e11e8be6389"; + sha256 = "1ybnxl6zgzhxrwsqf54hz235xhz3rmxy7w459salb7rr2s1fqvlz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fad6fc8bc3c0be0d5789a0d7626ebc3f298b4318/recipes/iflipb"; @@ -35616,24 +35909,6 @@ license = lib.licenses.free; }; }) {}; - igrep = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "igrep"; - version = "20130824.507"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/igrep.el"; - sha256 = "0qiv69v7ig38iizif7zg8aljdmpa1jk8bsfa0iyhqqqrkvsmhc29"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/83c05578974289527082bb67338c35e70bbff8f2/recipes/igrep"; - sha256 = "1vyhrziy29q6w8w9vvanb7d29r1n7nfkznbcd62il991n48d08i3"; - name = "igrep"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/igrep"; - license = lib.licenses.free; - }; - }) {}; igv = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "igv"; version = "20141210.427"; @@ -35737,6 +36012,27 @@ license = lib.licenses.free; }; }) {}; + imake = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "imake"; + version = "20171006.450"; + src = fetchFromGitHub { + owner = "tarsius"; + repo = "imake"; + rev = "edd2e59f7996c35450987cf8f137ecb54777e9ca"; + sha256 = "12mq1ki001jgjdfr3fx43z1xz4jrki18rb0wkb7n956dvl34w0fg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/28de8f7f5302b27c7c6600ad65a998119518be43/recipes/imake"; + sha256 = "0j732fi6999n9990w4l28raw140fvqfbynyh4x65yilhw95r7c34"; + name = "imake"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/imake"; + license = lib.licenses.free; + }; + }) {}; imapfilter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imapfilter"; @@ -35761,12 +36057,12 @@ imenu-anywhere = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imenu-anywhere"; - version = "20160831.356"; + version = "20170805.1155"; src = fetchFromGitHub { owner = "vspinu"; repo = "imenu-anywhere"; - rev = "94bab9136e1264e98a10d9325ad53d735307f8f3"; - sha256 = "1ffdh0izdd22av85rizk38fidfp8f6lk6phr549fzaspn11hvd8j"; + rev = "fc7f0fd2f19e5ebee70156a99bf87393123893e3"; + sha256 = "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/imenu-anywhere"; @@ -35782,12 +36078,12 @@ imenu-list = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imenu-list"; - version = "20170215.125"; + version = "20170728.632"; src = fetchFromGitHub { owner = "bmag"; repo = "imenu-list"; - rev = "999fc0ec7f03b56be8e2a6e673d9473f51e5a92f"; - sha256 = "0py4sc5a5hjdijavymjmvipkm9z4jy1l8yb35d8rl7mfzr5cz3l7"; + rev = "27170d27c9594989587c03c23f753a809f6a0e10"; + sha256 = "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/86dea881a5b2d0458449f08b82c2614ad9abd068/recipes/imenu-list"; @@ -35800,24 +36096,6 @@ license = lib.licenses.free; }; }) {}; - imenu-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "imenu-plus"; - version = "20170303.1457"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/imenu+.el"; - sha256 = "0dga9a61ckvd8w4nnz9z8z0iakaxminwn0lgmf8vfj2nwkd0m6hb"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/imenu+"; - sha256 = "1v2h3xs5pnv7z5qphkn2y5pa1p8pivrknkw7xihm5yr4a4dqjv5d"; - name = "imenu-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/imenu+"; - license = lib.licenses.free; - }; - }) {}; imenus = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imenus"; @@ -35839,27 +36117,6 @@ license = lib.licenses.free; }; }) {}; - imgix = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, ht, json ? null, lib, melpaBuild, s }: - melpaBuild { - pname = "imgix"; - version = "20141226.1332"; - src = fetchFromGitHub { - owner = "imgix"; - repo = "imgix-emacs"; - rev = "4906ff0b4f7c9e84a5beb81630fe6d522ec91eaa"; - sha256 = "1q53r3f3x0hpzryxd1v1w3qgs54p384q0azi7xj2gppi1q49sa42"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/imgix"; - sha256 = "1480571q6qy7wv88398kxjhd96gsdhb6ar6pa1kr5y6il0s6d5lg"; - name = "imgix"; - }; - packageRequires = [ cl-lib dash ht json s ]; - meta = { - homepage = "https://melpa.org/#/imgix"; - license = lib.licenses.free; - }; - }) {}; imgur = callPackage ({ anything, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imgur"; @@ -35925,12 +36182,12 @@ impatient-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, simple-httpd }: melpaBuild { pname = "impatient-mode"; - version = "20150501.247"; + version = "20170505.1921"; src = fetchFromGitHub { owner = "netguy204"; repo = "imp.el"; - rev = "eba1efce3dd20b5f5017ab64bae0cfb3b181c2b0"; - sha256 = "0vr4i3ayp1n8zg3v9rfv81qnr0vrdbkzphwd5kyadjgy4sbfjykj"; + rev = "48e6c4842b1fc2657a3c6c23029f89e35fafc859"; + sha256 = "0srjgzcmdgvdi9fm127wlj7zsbq00wsmb3fkzzpy05nvmm2dgng5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bb1fbd03f17d2069a461260ad5e2ad4e5441919b/recipes/impatient-mode"; @@ -35946,12 +36203,12 @@ import-js = callPackage ({ emacs, fetchFromGitHub, fetchurl, grizzl, lib, melpaBuild }: melpaBuild { pname = "import-js"; - version = "20161220.508"; + version = "20171026.1628"; src = fetchFromGitHub { owner = "Galooshi"; repo = "emacs-import-js"; - rev = "15d395126f57408d770a72db2e5f43271f90fa52"; - sha256 = "1ipbfacjx9vqqhvsf9sgfci8vqx0plks510w1gsjj0xwrpqn1f6l"; + rev = "0a1032894445062b87dbe4e2c8cdba35ac25c250"; + sha256 = "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/import-js"; @@ -35988,12 +36245,12 @@ importmagic = callPackage ({ emacs, epc, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "importmagic"; - version = "20170101.1603"; + version = "20170702.1844"; src = fetchFromGitHub { owner = "anachronic"; repo = "importmagic.el"; - rev = "c75afbb93b024307c4cf67e6dd44cda80bbea697"; - sha256 = "1xz99g9j8gfd6qrdsmrf98mq61168divw8lrwl3zylfw04x20b4b"; + rev = "c0360a8146ca65565a7fa66c6d72986edd916dd5"; + sha256 = "0s6hp62kmhvmgj3m5jr3cfqc8yv3p8jfxk0piq8xbf2chr1hp6l5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/importmagic"; @@ -36030,12 +36287,12 @@ indent-tools = callPackage ({ fetchFromGitLab, fetchurl, hydra, lib, melpaBuild, s, yafolding }: melpaBuild { pname = "indent-tools"; - version = "20170322.1001"; + version = "20170907.715"; src = fetchFromGitLab { owner = "emacs-stuff"; repo = "indent-tools"; - rev = "d50c762d9f6f66cd1b4b72f1b5d024284b378aa9"; - sha256 = "1jk8k13mx5z3v38q9d8m5lz52p14imj89zvy7484mbjqmvxh6wga"; + rev = "5605fee418287bf13d2e132fa7f90a6b7ec08584"; + sha256 = "0ps3n6m3il7gj1v04fq1a0fmw8wz32jcxrf2ig6qvxyx0q12672k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/indent-tools"; @@ -36072,12 +36329,12 @@ indium = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, seq, websocket }: melpaBuild { pname = "indium"; - version = "20170414.156"; + version = "20171027.914"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "Indium"; - rev = "0da2825dc21d3ba14b5dea6965f79330eb7ba13e"; - sha256 = "1hf9ls1wh5iykai454rc96gkcl4959h71akf7i5gm9kk4hsjcf5q"; + rev = "f7b46c9dd39dfc7ffefb52e35b0795450d3ea96f"; + sha256 = "0qba8c4qr8v0881lc2pnw6lddspzkdj7hsapf6x0vk1mwqmnww4x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4292058cc6e31cabc0de575134427bce7fcef541/recipes/indium"; @@ -36114,12 +36371,12 @@ inf-clojure = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inf-clojure"; - version = "20170414.1424"; + version = "20171029.40"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "inf-clojure"; - rev = "e10ac489e015515aaa7f49d397c08a26063cf777"; - sha256 = "0085mjlbw6sppgps3g6zlmkr1ih8ffnfjmaak05vsfiq5sivxldl"; + rev = "b04f05d2c735795b68a10cc7e699b676a8acc811"; + sha256 = "16xsrny70f5lr6hr4sipyrnry813cvbhy25jxfx90kp2f9kkak53"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5d6112e06d1efcb7cb5652b0bec8d282d7f67bd9/recipes/inf-clojure"; @@ -36153,36 +36410,15 @@ license = lib.licenses.free; }; }) {}; - inf-php = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode }: - melpaBuild { - pname = "inf-php"; - version = "20130414.21"; - src = fetchFromGitHub { - owner = "taksatou"; - repo = "inf-php"; - rev = "4396022d6e169f0cf30cd9f68ca575d8b30c418a"; - sha256 = "1z5ns94xgj2dkv2sc2ckax6bzwdxsm19pkvni24ys2w7d5nhajzr"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/da48d14bd46f25976f7109306f335bd57b237ee5/recipes/inf-php"; - sha256 = "011sc6f0ka7mmik8z0df8qk24mf6ygq22jy781f2ikhjh94gy83d"; - name = "inf-php"; - }; - packageRequires = [ php-mode ]; - meta = { - homepage = "https://melpa.org/#/inf-php"; - license = lib.licenses.free; - }; - }) {}; inf-ruby = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inf-ruby"; - version = "20170212.1444"; + version = "20170615.335"; src = fetchFromGitHub { owner = "nonsequitur"; repo = "inf-ruby"; - rev = "af4f238ef4555521d13c5eb2fb8e818acf59d70a"; - sha256 = "1668dr6y0nph739x947kjz435qikg77m8ja7h6laf3f9wzcxcg9s"; + rev = "674a2a837fccea88ada6634e981a656b41d16d8e"; + sha256 = "09am0gq1sx0wv7bvcs7pp118brjj19qr7mis7cxjvrxbryc1mxf4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/inf-ruby"; @@ -36219,12 +36455,12 @@ inflections = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inflections"; - version = "20161126.1727"; + version = "20170913.216"; src = fetchFromGitHub { owner = "eschulte"; repo = "jump.el"; - rev = "95a9559bd301ff86fa3b72b15126dc4851ce4a69"; - sha256 = "0fyrrzilvacvrxbw8r6wc0jphrk3h4dsw86zp3d63h4s6rlldhsa"; + rev = "e4f1372cf22e811faca52fc86bdd5d817498a4d8"; + sha256 = "0354b64drvv8v5g13xy5nc1klwx4hldz1b5mf1frhna7h2dqz0j9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/392c7616d27bf12b29ef3c2ea71e42ffaea81cc6/recipes/inflections"; @@ -36258,45 +36494,6 @@ license = lib.licenses.free; }; }) {}; - info-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "info-plus"; - version = "20170303.1500"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/info+.el"; - sha256 = "0xpgry9bzjwmdj0j0pcsr2a37gp8yqbcpl06linv0hjxcwca9nsz"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e77aadd8195928eed022f1e00c088151e68aa280/recipes/info+"; - sha256 = "0flpmi8dsaalg14xd86xcr087j51899sm8ghsa150ag4g4acfggr"; - name = "info-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/info+"; - license = lib.licenses.free; - }; - }) {}; - inform7-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, sws-mode }: - melpaBuild { - pname = "inform7-mode"; - version = "20131009.2354"; - src = fetchFromGitHub { - owner = "fred-o"; - repo = "inform7-mode"; - rev = "42458733947f2fbd44bc78f7264be247a5d8980b"; - sha256 = "19kc6a8jkx22rg9xp862pqfhv0an7q6fs7v7i2kxp3ji55aq001w"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/inform7-mode"; - sha256 = "0fpnf9rgizsfz9pn06k87v4s0dr7z1pn0gdxfi6hnnv68qni8hg3"; - name = "inform7-mode"; - }; - packageRequires = [ sws-mode ]; - meta = { - homepage = "https://melpa.org/#/inform7-mode"; - license = lib.licenses.free; - }; - }) {}; inherit-local = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inherit-local"; @@ -36318,6 +36515,27 @@ license = lib.licenses.free; }; }) {}; + ini-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ini-mode"; + version = "20170424.209"; + src = fetchFromGitHub { + owner = "Lindydancer"; + repo = "ini-mode"; + rev = "2194cfa2fd13196a37350ec20b3f00dcf6162b7c"; + sha256 = "0s3dcqywrbggrcn9j5nibhcl4xbnhdndz5sibcp26qswd18jyrdk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/000cca577d000bafe7bf5711d0bfe7593fb6975a/recipes/ini-mode"; + sha256 = "0f6fbmg4wmlzghcibfbcx3z124b2017rhsasi5smgx9i2vkydzrm"; + name = "ini-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ini-mode"; + license = lib.licenses.free; + }; + }) {}; init-loader = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "init-loader"; @@ -36325,8 +36543,8 @@ src = fetchFromGitHub { owner = "emacs-jp"; repo = "init-loader"; - rev = "287da99eadfa3dd85492506db43d68324069b593"; - sha256 = "03a655qzcwizv9hvfcp47466axsrq0h049fdd79xk6zmans5s6fj"; + rev = "5d3cea1004c11ff96b33020e337b03b925c67c42"; + sha256 = "17bg4s8yz7yz28m04fp2ff6ld0y01yl99wkn2k5rkg4j441xg3n2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e46e6ec79ff4c76fc85e13321e6dabd5797c5f45/recipes/init-loader"; @@ -36405,12 +36623,12 @@ inkpot-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inkpot-theme"; - version = "20170413.120"; + version = "20170709.1858"; src = fetchFromGitHub { owner = "ideasman42"; repo = "emacs-inkpot-theme"; - rev = "372ad654293cd0b8cf7db6129674c5a84d54ca53"; - sha256 = "0642rcjj1z5c86ry97b6kmf7kivhajvz5f9fz9kqfw0f98srzhrs"; + rev = "7b2f19ebd01535f77da407e28ca970c2ce442493"; + sha256 = "1d2vi919fz6kdya5gafhy9wwmlzid88j9klcbslzh8bjmamnbxcx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dd3e02aaf8865d8038b9c590c8545e7a1b21d620/recipes/inkpot-theme"; @@ -36426,15 +36644,15 @@ inline-crypt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inline-crypt"; - version = "20130409.507"; + version = "20170824.200"; src = fetchFromGitHub { owner = "Sodel-the-Vociferous"; repo = "inline-crypt-el"; - rev = "497ce9dc29a8ccac0b6dd6854f5d120514350282"; - sha256 = "0jipds844432a8m4d5gxbbkk2h1rsq9fg748g6bxy2q066kyzfz6"; + rev = "281385b383f850fd2e895926b1cef804dd052633"; + sha256 = "0hjmq8j7y4wnjgk6z92w4ci0ag9fm6rn63z9mi3krvdv154vz2n0"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5bf7761c9091260d378621907a1689498aedc098/recipes/inline-crypt"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b04fffe5e52f26e92930a112a64531228f94e340/recipes/inline-crypt"; sha256 = "04mcyyqa9h6g6wrzphzqalpqxsndmzxpavlpdc24z4a2c5s3yz8n"; name = "inline-crypt"; }; @@ -36447,12 +36665,12 @@ inline-docs = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inline-docs"; - version = "20170130.1434"; + version = "20170522.2150"; src = fetchFromGitHub { owner = "stardiviner"; repo = "inline-docs.el"; - rev = "4e94a62f6b02c37c1497f34b36fe36f04cc23405"; - sha256 = "0851jgh5v36d7lq9pwlmigqpqrfbrqqssib4id7s4c8j4sh4c03g"; + rev = "b57f1681be6147f999cdc12abff414a0442e8897"; + sha256 = "0ji8qgscs4fxp2i29l3v8z9y6i2glga6bysbcsn855pqsn00xkcv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/inline-docs"; @@ -36489,12 +36707,12 @@ insert-shebang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "insert-shebang"; - version = "20160626.409"; + version = "20170825.438"; src = fetchFromGitHub { owner = "psachin"; repo = "insert-shebang"; - rev = "d5a827ce9ee1bdabb7561203a3e774ca599514c1"; - sha256 = "11dxkgn9d6slcwq1zpi13g2cy80ns97gprxakqjvy9gi2l5wl634"; + rev = "adfa473f07443b231914d277c20a3419b30399b6"; + sha256 = "10zy3vg5fr30hhv0q3jldffhjacg1yrv5d9gfkdz55ry277l3xz1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c257f4f5011cd7d0b2a5ef3adf13f9871bf0be92/recipes/insert-shebang"; @@ -36551,12 +36769,12 @@ intellij-theme = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "intellij-theme"; - version = "20170416.359"; + version = "20171017.715"; src = fetchFromGitLab { owner = "fommil"; repo = "emacs-intellij-theme"; - rev = "ad207c8c3d266d566fb1e4862df154096c059171"; - sha256 = "06slahp36mj39ri4v4k7sv3mly6cgk76m4zpc1why3h6dmd7hhyr"; + rev = "1bbfff8e6742d18e9b77ed796f44da3b7bd10606"; + sha256 = "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cfe86071b2e84929476a771da99341f4a73cfd06/recipes/intellij-theme"; @@ -36593,12 +36811,12 @@ interleave = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "interleave"; - version = "20170211.807"; + version = "20171003.2324"; src = fetchFromGitHub { owner = "rudolfochrist"; repo = "interleave"; - rev = "822ae2d29aaf92bcf96324442126b551e4477d6a"; - sha256 = "0nq2f6pgq4vszy3hx84qdml4i9lbqlrh9knqgwgrl819vr15srqg"; + rev = "87549df30cbc681baf86b238bd14c7cf7ec11fc4"; + sha256 = "07430hsyq9q90rjzxq7ifq4mlfc8k8b7l6b31s7xk1xm2snbky6b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6c43d4aaaf4fca17f2bc0ee90a21c51071886ae2/recipes/interleave"; @@ -36614,12 +36832,12 @@ intero = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild }: melpaBuild { pname = "intero"; - version = "20170410.1625"; + version = "20171023.1102"; src = fetchFromGitHub { owner = "commercialhaskell"; repo = "intero"; - rev = "e546ea086d72b5bf8556727e2983930621c3cb3c"; - sha256 = "1qv7l5ri3nysrpmnzfssw8wvdvz0f6bmymnz1agr66fplazid4pn"; + rev = "5697c86fde2b6131629e8d1c69f9b2363dadc7ae"; + sha256 = "1zwvmchk8rymxfciiip78zf69p3f8jpbr7fqqj43cxv0lq9w284s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1b56ca344ad944e03b669a9974e9b734b5b445bb/recipes/intero"; @@ -36674,6 +36892,27 @@ license = lib.licenses.free; }; }) {}; + inverse-acme-theme = callPackage ({ autothemer, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "inverse-acme-theme"; + version = "20170822.1954"; + src = fetchFromGitHub { + owner = "dcjohnson"; + repo = "inverse-acme-theme"; + rev = "74d6f3e2f6534371509dd2d77006435156c276d6"; + sha256 = "15fk60ky8kbj665yjylmgc4nn4qsk57fvarqzwv3fns64yfshkv3"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1c44dbc8d3ca29d8715af755b845af7236e95406/recipes/inverse-acme-theme"; + sha256 = "03g6h8dpn42qnr593ryhj22lj1h2nx4rdr1knhkvxygfv3c4lgh5"; + name = "inverse-acme-theme"; + }; + packageRequires = [ autothemer cl-lib ]; + meta = { + homepage = "https://melpa.org/#/inverse-acme-theme"; + license = lib.licenses.free; + }; + }) {}; io-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "io-mode"; @@ -36761,12 +37000,12 @@ ipcalc = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ipcalc"; - version = "20160927.220"; + version = "20170926.105"; src = fetchFromGitHub { owner = "dotemacs"; repo = "ipcalc.el"; - rev = "e92afd8b96592b6e2d65ba073bf87c9dd2408e91"; - sha256 = "1s17wpdbrbkbmkndbwm0byy11cmymhs6yn7w0v5lvw5l2cgicxjg"; + rev = "2720f7e3e662e04e195f8338b81a499cf321296a"; + sha256 = "1kmqbb9ca3sca59462ha21grbgxkl4wynz2lr4yqb4qk7cijgd6g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ipcalc"; @@ -36821,6 +37060,27 @@ license = lib.licenses.free; }; }) {}; + iqa = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "iqa"; + version = "20170722.834"; + src = fetchFromGitHub { + owner = "a13"; + repo = "iqa.el"; + rev = "08e3f70d0a3ed95a0c5675ae88e7966474ecc45a"; + sha256 = "1n7ghcixk16n6x8p7128mqjfcsalxfyp3asydnijw7qp358l7f9r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a9bd2e952d98f7ac2dc823581b07b65e951e9e45/recipes/iqa"; + sha256 = "02yrkizk4ssip44s6r62finsrf45hxj9cpil1xrvh8g4jbsmfsw4"; + name = "iqa"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/iqa"; + license = lib.licenses.free; + }; + }) {}; ir-black-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ir-black-theme"; @@ -36863,33 +37123,15 @@ license = lib.licenses.free; }; }) {}; - irfc = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "irfc"; - version = "20130824.507"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/irfc.el"; - sha256 = "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0b4f2dc79231b165bd3b03a728e2b872ed6c50c1/recipes/irfc"; - sha256 = "0186l6zk5l427vjvmjvi0xhwk8a4fjhsvw9kd0yw88q3ggpdl25i"; - name = "irfc"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/irfc"; - license = lib.licenses.free; - }; - }) {}; irony = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "irony"; - version = "20170404.1127"; + version = "20171018.1550"; src = fetchFromGitHub { owner = "Sarcasm"; repo = "irony-mode"; - rev = "3a903459d0c368b318a00ad94a18484dafde67a5"; - sha256 = "1mjwhx9cj8ilv4xf0phpg3xx5h14z4gz4d0ghi7gzakkk5bl31yk"; + rev = "78b06aa2df5251adaabb6c749febc1f1bd2ad605"; + sha256 = "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2b6a8d57b192325dcd30fddc9ff8dd1516ad680/recipes/irony"; @@ -36905,12 +37147,12 @@ irony-eldoc = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, irony, lib, melpaBuild }: melpaBuild { pname = "irony-eldoc"; - version = "20141226.2219"; + version = "20170502.1208"; src = fetchFromGitHub { owner = "ikirill"; repo = "irony-eldoc"; - rev = "bd1fadbc7c806d84aeec098b19238e5328cbbb7b"; - sha256 = "01fjpfixfcca01a5fnnpd2wga4j30p0kwhbai25prvib4qcp1kqn"; + rev = "0df5831eaae264a25422b061eb2792aadde8b3f2"; + sha256 = "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fc42459d5c1671bd478d781339f2572b3de2e7d0/recipes/irony-eldoc"; @@ -36944,42 +37186,6 @@ license = lib.licenses.free; }; }) {}; - isearch-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "isearch-plus"; - version = "20170321.1306"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/isearch+.el"; - sha256 = "0zdc45nmswipfi8vrsbfipzd1vg9y0pcggvi5mfpwf7c3qn4sgh2"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/isearch+"; - sha256 = "0n9jh3bx2h6k4mvbwss16m34fxzlq6sb057rj16hgrlmbqknynhw"; - name = "isearch-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/isearch+"; - license = lib.licenses.free; - }; - }) {}; - isearch-prop = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "isearch-prop"; - version = "20170303.1504"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/isearch-prop.el"; - sha256 = "0q18i76gq2pfnkqlbxlx2hndpy9mhbag302dvr8irk1kjwgngz5r"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/isearch-prop"; - sha256 = "1z9y88b23m4ffil8p3wcq61q1fiyqjxphyd3wacs5fnc53mdzad9"; - name = "isearch-prop"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/isearch-prop"; - license = lib.licenses.free; - }; - }) {}; isearch-symbol-at-point = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "isearch-symbol-at-point"; @@ -37043,6 +37249,27 @@ license = lib.licenses.free; }; }) {}; + isortify = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "isortify"; + version = "20170726.1254"; + src = fetchFromGitHub { + owner = "proofit404"; + repo = "isortify"; + rev = "28699f29cfc0d9d78b636d0ecadcf9139173bc6f"; + sha256 = "0r7hbvsnn590wfydwibvpdihcah5jj6ylqhqq7w1a1nljzwk6d4h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9d4ad18492e7f4a56a1515873bc0b66fa49829bb/recipes/isortify"; + sha256 = "0nlpjd6mrhv8iccdny0x5lb41dpyp6l7kiax4xqra0rb2vq0chcs"; + name = "isortify"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/isortify"; + license = lib.licenses.free; + }; + }) {}; iss-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iss-mode"; @@ -37067,12 +37294,12 @@ itail = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "itail"; - version = "20161022.1431"; + version = "20170823.1629"; src = fetchFromGitHub { owner = "re5et"; repo = "itail"; - rev = "129d7089fcf712c296706841afc5918955a83f19"; - sha256 = "0jllp27syd533raj7lqfj5ismm7g7f4av9ikgqar8048m3xkvy2q"; + rev = "606a5e93f53a36cad958e191a9698dd74683a773"; + sha256 = "1ddy3q36hhhzjkr4lcaw0brk28ssyllava0yx2xn5kxbfs0lhdfb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6b810bf1deeb79064144d8b684fab336686018ef/recipes/itail"; @@ -37088,12 +37315,12 @@ itasca = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "itasca"; - version = "20160406.542"; + version = "20170601.922"; src = fetchFromGitHub { owner = "jkfurtney"; repo = "itasca-emacs"; - rev = "bf0b6a66b57c8a0e7d692d306a50b587a2da8284"; - sha256 = "1174f75p3rkq812gl2rs1x51nqbz4fqxwsbrd7djh1vkd2zii3aw"; + rev = "3d15dd1b70d6db69b0f4758a3e28b8b506cc84ca"; + sha256 = "0mfcl7ka7r5mx52xvf13i3799ddkdi9sq2q4p2rkgb96r37ia221"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/itasca"; @@ -37106,6 +37333,27 @@ license = lib.licenses.free; }; }) {}; + iter2 = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "iter2"; + version = "20171031.755"; + src = fetchFromGitHub { + owner = "doublep"; + repo = "iter2"; + rev = "a0e41b2f55d50c08c59ffcc6e83a977c141bcc55"; + sha256 = "0ccr9qjhc35wi07yckd9y26synihhsg8zwkxgqyzkx7avxkqfyhn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d94316660051ee0ba0c12e380e6203986440368f/recipes/iter2"; + sha256 = "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65"; + name = "iter2"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/iter2"; + license = lib.licenses.free; + }; + }) {}; iterator = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iterator"; @@ -37130,15 +37378,15 @@ ivariants = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivs-edit, lib, melpaBuild }: melpaBuild { pname = "ivariants"; - version = "20140720.2127"; + version = "20170822.1924"; src = fetchFromGitHub { owner = "kawabata"; repo = "emacs-ivariants"; - rev = "f9deff2e6fba5647f69771546fb2283136d0fb0d"; - sha256 = "12nqpzcmz724wpk8p16lc3z26rxma3wp6pf6dvrsqagnlixrs9si"; + rev = "ca0b74d32b5d2d77a45cc6ad6edc00be0ee85284"; + sha256 = "16hygfx9gla6yhc3kaiy4m6g910m1hak3v86fnpf12kzvjjs9zfx"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4caff7dc7c8b328c21a3c3cb51c505c21f044ee7/recipes/ivariants"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/ivariants"; sha256 = "00fgcm62g4fw4306lw9ld2k7w0c358fcbkxn969k5p009g7pk5bw"; name = "ivariants"; }; @@ -37151,15 +37399,15 @@ ivs-edit = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ivs-edit"; - version = "20140720.346"; + version = "20170818.741"; src = fetchFromGitHub { owner = "kawabata"; repo = "ivs-edit"; - rev = "c496e85f93f6f00e723d9df0ea0703f6c672826b"; - sha256 = "1926pyfsbr6j7cn3diq8ibs0db94rgsf0aifvbqrqp4grs85pkva"; + rev = "5db39c234aa7393b591168a4fd0a9a4cbbca347d"; + sha256 = "1sdl83cf87zbv0ynvb6qlgbpm4d3dqhdn84jhhs5j247r5qzhmz6"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7fd59ccf003a7fc4165dc7e34c1648e85abe378f/recipes/ivs-edit"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/ivs-edit"; sha256 = "0gzhvzrfk17j2vwlg82f5ifk4dcfc1yv7barcij38ckran8cqmb2"; name = "ivs-edit"; }; @@ -37172,12 +37420,12 @@ ivy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ivy"; - version = "20170416.1021"; + version = "20171031.716"; src = fetchFromGitHub { owner = "abo-abo"; repo = "swiper"; - rev = "a3abf3ffd670776da591ae9e5e2d7011b6d6a190"; - sha256 = "1jn7lry6fdnv9m24m4i5fgvz0qywcx3r08a36l2y1ksb125vank8"; + rev = "96663b77945ab21e4e1b0aab690fc2e926f01f9c"; + sha256 = "0r691dzs77zdkvjzb787kjg8zvvba8gdj2da9zjb14m4nyjmg9d9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/06c24112a5e17c423a4d92607356b25eb90a9a7b/recipes/ivy"; @@ -37193,12 +37441,12 @@ ivy-bibtex = callPackage ({ biblio, cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, parsebib, s, swiper }: melpaBuild { pname = "ivy-bibtex"; - version = "20170321.1306"; + version = "20171022.220"; src = fetchFromGitHub { owner = "tmalsburg"; repo = "helm-bibtex"; - rev = "13f27f3cfdf137bdb22addfc0c832ba1c8572c25"; - sha256 = "02b9hb7nmh75qwkmanw6ci6pyann71ag8mp4fd5agrlwq6rrlgl4"; + rev = "54de08577f9c19354cc303ee52836263aef486fb"; + sha256 = "0l98lmy0c9l64khnl9j87l5g9g5fiah5l64hxn97h4b438kjcjm0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c23c09225c57a9b9abe0a0a770a9184ae2e58f7c/recipes/ivy-bibtex"; @@ -37211,15 +37459,36 @@ license = lib.licenses.free; }; }) {}; + ivy-dired-history = callPackage ({ cl-lib ? null, counsel, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "ivy-dired-history"; + version = "20170625.2256"; + src = fetchFromGitHub { + owner = "jixiuf"; + repo = "ivy-dired-history"; + rev = "c9c67ea1ee5e68443f0e6006ba162d6c8d868b69"; + sha256 = "1lim9zi57w011df5zppb18yjkaxkgfy796pc6i01p4dl32x0rpfv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ad37f6b04ff45fbffeadefc94db16baa27bcc2ac/recipes/ivy-dired-history"; + sha256 = "1vj073k5m0l8rx9iiisikzl053ad9mlhvbk30f5zmw9sw7b9blyl"; + name = "ivy-dired-history"; + }; + packageRequires = [ cl-lib counsel ivy ]; + meta = { + homepage = "https://melpa.org/#/ivy-dired-history"; + license = lib.licenses.free; + }; + }) {}; ivy-erlang-complete = callPackage ({ async, counsel, emacs, erlang, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-erlang-complete"; - version = "20170411.451"; + version = "20170709.2151"; src = fetchFromGitHub { owner = "s-kostyaev"; repo = "ivy-erlang-complete"; - rev = "9ee63f0415e9774082993d672d8200bc7e62d715"; - sha256 = "0wrkpl6v56k553zzksy4rh6wkwxdp027x8n0byic9phydrnsdn57"; + rev = "acd6322571cb0820868a6febdc5326782a29b729"; + sha256 = "158cmxhky8nng43jj0d7w8126phx6zlr6r0kf9g2in5nkmbcbd33"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac1b9e350d3f066e4e56202ebb443134d5fc3669/recipes/ivy-erlang-complete"; @@ -37239,8 +37508,8 @@ src = fetchFromGitHub { owner = "nlamirault"; repo = "emacs-gitlab"; - rev = "730a86b770b0838c86e7080d8d502528e0c26792"; - sha256 = "11rp2il78av244ba49h243s9a5qvnw5ljqpssiws1j3xcnmbgyz1"; + rev = "67567a354a1888419331b79862f151817d9747c5"; + sha256 = "11bcl5ndwvm2nahcfdbrvxgh48s5i4i7sv74lgnskd90fnjh7gdw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/35d4d4f22e4c567954287b2a1cabcb595497095a/recipes/ivy-gitlab"; @@ -37256,12 +37525,12 @@ ivy-historian = callPackage ({ emacs, fetchFromGitHub, fetchurl, flx, historian, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-historian"; - version = "20170416.2154"; + version = "20170715.2120"; src = fetchFromGitHub { owner = "PythonNut"; repo = "historian.el"; - rev = "0838ed60febaf618cf242377d92aa9b5c4e42fae"; - sha256 = "1zzngs5xqqib2yj19snwndyc27s8lfm6nfsya9zvz4bafizgdn6k"; + rev = "78ec5632e4f4fd005014bd762c4a5ccdeabbd33d"; + sha256 = "1ag9hpxrzg5add4nj2j08ymxrggnzdzqb8k1vcpkd8rg72138k3w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fb79cbc9af6cd443b9de97817d24bcc9050d5940/recipes/ivy-historian"; @@ -37277,12 +37546,12 @@ ivy-hydra = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-hydra"; - version = "20170412.30"; + version = "20170703.2350"; src = fetchFromGitHub { owner = "abo-abo"; repo = "swiper"; - rev = "a3abf3ffd670776da591ae9e5e2d7011b6d6a190"; - sha256 = "1jn7lry6fdnv9m24m4i5fgvz0qywcx3r08a36l2y1ksb125vank8"; + rev = "96663b77945ab21e4e1b0aab690fc2e926f01f9c"; + sha256 = "0r691dzs77zdkvjzb787kjg8zvvba8gdj2da9zjb14m4nyjmg9d9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/06c24112a5e17c423a4d92607356b25eb90a9a7b/recipes/ivy-hydra"; @@ -37295,6 +37564,27 @@ license = lib.licenses.free; }; }) {}; + ivy-lobsters = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "ivy-lobsters"; + version = "20170903.445"; + src = fetchFromGitHub { + owner = "julienXX"; + repo = "ivy-lobsters"; + rev = "49923d6b59fc8ede5d930317f63f00577fef60b9"; + sha256 = "1z593062phsxn7y408zj82w4xc8l5y4x6kj919hm8a0d3nf28kg7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d9774fbf133ce8db3ce996b1a40c586309a2fec6/recipes/ivy-lobsters"; + sha256 = "1g8bwlh4nls21k16r1pmqmb633j19h3jnjbfl2vixyrh2na8ff1w"; + name = "ivy-lobsters"; + }; + packageRequires = [ cl-lib ivy ]; + meta = { + homepage = "https://melpa.org/#/ivy-lobsters"; + license = lib.licenses.free; + }; + }) {}; ivy-pages = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-pages"; @@ -37316,6 +37606,27 @@ license = lib.licenses.free; }; }) {}; + ivy-pass = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, password-store }: + melpaBuild { + pname = "ivy-pass"; + version = "20170812.1255"; + src = fetchFromGitHub { + owner = "ecraven"; + repo = "ivy-pass"; + rev = "5b523de1151f2109fdd6a8114d0af12eef83d3c5"; + sha256 = "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7bfef855e071442d2b9d1e0ce9b5706937bffc53/recipes/ivy-pass"; + sha256 = "1sb29q22fsjqfxqznf73xcqhzy132bjd45w7r27sfmf825vcysci"; + name = "ivy-pass"; + }; + packageRequires = [ emacs ivy password-store ]; + meta = { + homepage = "https://melpa.org/#/ivy-pass"; + license = lib.licenses.free; + }; + }) {}; ivy-purpose = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, window-purpose }: melpaBuild { pname = "ivy-purpose"; @@ -37340,12 +37651,12 @@ ivy-rich = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-rich"; - version = "20170227.1745"; + version = "20170716.1924"; src = fetchFromGitHub { owner = "yevgnen"; repo = "ivy-rich"; - rev = "ba15a2fb46a63f0aaf5e5b4dae026c2e1228ec1a"; - sha256 = "1hkydyrcqv3qn605kjm8lhv2hpjmrjp7qvfxwyjbr878nhbm6jn0"; + rev = "84964443f9a3ded1676190e9e0f91dac4557cc21"; + sha256 = "1gsf3klcrmabalfywxv5pffpbgw9nw90plc5xxq6a01f7b46rp7c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0fc297f4949e8040d1b0b3271c9a70c64887b960/recipes/ivy-rich"; @@ -37361,12 +37672,12 @@ ivy-rtags = callPackage ({ fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, rtags }: melpaBuild { pname = "ivy-rtags"; - version = "20170415.1027"; + version = "20170522.2154"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ivy-rtags"; @@ -37424,12 +37735,12 @@ ivy-youtube = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, request }: melpaBuild { pname = "ivy-youtube"; - version = "20170217.404"; + version = "20170822.659"; src = fetchFromGitHub { owner = "squiter"; repo = "ivy-youtube"; - rev = "7e916dd531c52a2809188a99716aeff8446056cc"; - sha256 = "1dia1m9fjxbd5lsf788bv7zpdbrwbjswd9m588iaijcdd2hnma8q"; + rev = "9a9d584124bd9905b5a8a7e29cdafa3224770c9d"; + sha256 = "0fircdxhfb9s6qmzic2hizhlwfkszw3was83nw09zf0zhab3vllh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ivy-youtube"; @@ -37487,12 +37798,12 @@ j-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "j-mode"; - version = "20140702.809"; + version = "20171017.1813"; src = fetchFromGitHub { owner = "zellio"; repo = "j-mode"; - rev = "caa55dfaae01d1875380929826952c2b3ef8a653"; - sha256 = "07kbicf760nw4qlb2lkf1ns8yzqy0r5jqqwqjbsnqxx4sm52hml9"; + rev = "96154937120028f24ee4933904ce4240c87f387e"; + sha256 = "0mni4wk9kn1iq9vyl7v7akjsb566sgm2vwwsc4sk2mf4x7g9m2rs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/410134ab2145adad3648b1024bfe4f6801df82c9/recipes/j-mode"; @@ -37734,36 +38045,15 @@ license = lib.licenses.free; }; }) {}; - jaunte = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "jaunte"; - version = "20130413.219"; - src = fetchFromGitHub { - owner = "kawaguchi"; - repo = "jaunte.el"; - rev = "b719c2d4d5d70640d70978b661863d10d6be06fc"; - sha256 = "1bv0al89wlwdv3bhasxnwhsv84phgnixclgrh4l52385rjn8v53f"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/jaunte"; - sha256 = "0chqiai7fv1idga71gc5dw4rdv1rblg5rrbdijh3glyi8yfr4snf"; - name = "jaunte"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/jaunte"; - license = lib.licenses.free; - }; - }) {}; java-imports = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pcache, s }: melpaBuild { pname = "java-imports"; - version = "20160311.1515"; + version = "20170913.710"; src = fetchFromGitHub { owner = "dakrone"; repo = "emacs-java-imports"; - rev = "f1631adacdd9fcb7a92ee4fdfb9e592a1a9c3b0b"; - sha256 = "1wk9i43b147bjcvhq27vcqxi6y1yl6w3n4i2sw3krk4vxcm1mwnm"; + rev = "e96ff44ed48b362ab6227b8b802b84d84f78bcaa"; + sha256 = "0nryawj8v6gj6hnb81yf6966kjnydcz49zsg2k355gldryqf4v5p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5f6f4e4c14c422c2066f2200bb9b8f35e2ecc896/recipes/java-imports"; @@ -37842,12 +38132,12 @@ jaword = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, tinysegmenter }: melpaBuild { pname = "jaword"; - version = "20150325.718"; + version = "20170425.2327"; src = fetchFromGitHub { owner = "zk-phi"; repo = "jaword"; - rev = "a96bc63a08f616cc23dcc43d565e1f22a94aa9f3"; - sha256 = "1430xwd86fdlv1gzkdlp9a0x3w4blbplw24z0m7y8b0j9rhl4fka"; + rev = "ac062b0e5ab4bd3270497e80aa0f3ac033a0493f"; + sha256 = "05kbscympb59njfrs94w4b2lwkc3057wzib65kq0l93bx4pcw2iy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/00fe123ddc7fbcb9fd2b97e8a9fc8a8c5fabbf7f/recipes/jaword"; @@ -37884,12 +38174,12 @@ jbeans-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "jbeans-theme"; - version = "20170413.901"; + version = "20171011.927"; src = fetchFromGitHub { owner = "synic"; repo = "jbeans-emacs"; - rev = "ee3c3b95e4a8697438d48757c604f9491b395417"; - sha256 = "10zgdc4619y7w80w41jvr63s3wms52kfz011gaxwhzdgm2mdjqav"; + rev = "d3cd21b794ba94680f0f3aa574b5029a749430e6"; + sha256 = "1c3qb3f4dapvfwwrnbgx5sim515pr2i5lvmnid780wphymwjslsc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6dd4bd78795ec7509d8744fec1e80426ce0557ec/recipes/jbeans-theme"; @@ -37923,22 +38213,22 @@ license = lib.licenses.free; }; }) {}; - jdee = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, memoize }: + jdee = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, memoize, s }: melpaBuild { pname = "jdee"; - version = "20170330.21"; + version = "20171007.835"; src = fetchFromGitHub { owner = "jdee-emacs"; repo = "jdee"; - rev = "551276220abab21106112c6100a1078313189243"; - sha256 = "0myln9igbw628lm14l44w3hh2fm6lpbys6iv1b05cfzwpkiszsnh"; + rev = "ebe5d2e36a6a367376ed6cde590d5f805830ec9e"; + sha256 = "0rq8vp3pmnyabqzzplc91dk2ka48k809is9v4q486xv7y43013jh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a6d2c98f3bf2075e33d95c7befe205df802e798d/recipes/jdee"; sha256 = "15n76w0ygjmsa2bym59bkmbbh0kpqx6nacp4zz32hlg48kgz1dx4"; name = "jdee"; }; - packageRequires = [ dash emacs flycheck memoize ]; + packageRequires = [ dash emacs flycheck memoize s ]; meta = { homepage = "https://melpa.org/#/jdee"; license = lib.licenses.free; @@ -38028,15 +38318,36 @@ license = lib.licenses.free; }; }) {}; + jemdoc-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jemdoc-mode"; + version = "20170704.1327"; + src = fetchFromGitHub { + owner = "drdv"; + repo = "jemdoc-mode"; + rev = "529b4d4681e1198b9892f340fdd6c3f1592a047a"; + sha256 = "1f8nn8mv18q3x3k32i6kjis9f3g1ybdjcfaw8hywqwy6k8dr734m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/49a8c0f885df0b91d758b4d7c92bd67368da8a56/recipes/jemdoc-mode"; + sha256 = "1bl8a9fcilrqjzh92q7nvd16pxjiwmbnj157q2bx36y7bxm60acv"; + name = "jemdoc-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/jemdoc-mode"; + license = lib.licenses.free; + }; + }) {}; jenkins = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "jenkins"; - version = "20160903.1556"; + version = "20170721.236"; src = fetchFromGitHub { owner = "rmuslimov"; repo = "jenkins.el"; - rev = "8a3c1849fcbac379ea88ba1c14f3a63bb9dd3244"; - sha256 = "1dd7qmkdarrfm0gf115c2m2913jn7yv2ns0ic1ywq7b9v547i9cz"; + rev = "1ec967973db685c9d84133ec6a5e06489ce06b62"; + sha256 = "1ai5adv46van2g029x9idj394ycczfacyhyv291sasf8mv9i7j4b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2ed2da33db5eaea1a37f86057da174a45cd37ea5/recipes/jenkins"; @@ -38070,15 +38381,36 @@ license = lib.licenses.free; }; }) {}; + jetbrains = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jetbrains"; + version = "20171027.2055"; + src = fetchFromGitHub { + owner = "emacs-php"; + repo = "jetbrains.el"; + rev = "38e136079f3f2ddbe0e8b7dec01cf6b515e897d8"; + sha256 = "1ji64qip5raf0lbv7fv36rd4fwa33zn0xi7sa0zrgf0kcsr0qasb"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/00dd4626e261d9831fc62d866d50b7257ee418c4/recipes/jetbrains"; + sha256 = "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7"; + name = "jetbrains"; + }; + packageRequires = [ cl-lib emacs f ]; + meta = { + homepage = "https://melpa.org/#/jetbrains"; + license = lib.licenses.free; + }; + }) {}; jg-quicknav = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "jg-quicknav"; - version = "20160216.2035"; + version = "20170808.1830"; src = fetchFromGitHub { owner = "jeffgran"; repo = "jg-quicknav"; - rev = "1b598ee3d691b68dc64f1727a959eab538893d07"; - sha256 = "164wm83av3p2c9dkhpmqrb7plq9ngmnsa5aly3a1xam1cds22hp4"; + rev = "c8d53e774d63e68a944092c08a026b57da741038"; + sha256 = "0rdrryfppgj5smrds5gyyhc4z8x36aq3gxdpckq80rbl4s729chy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/jg-quicknav"; @@ -38112,24 +38444,6 @@ license = lib.licenses.free; }; }) {}; - jira = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "jira"; - version = "20131210.1022"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/jira.el"; - sha256 = "18b6hdqk59gnqh4ibq8lj59kbsg5gbyfb7vfcvpgmxjikpl3cgkz"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/jira"; - sha256 = "1zrywkwzqn5ffzzk3rmy01vj6afm2p9gm81rpc7s86cj3ywfy4wx"; - name = "jira"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/jira"; - license = lib.licenses.free; - }; - }) {}; jira-markup-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "jira-markup-mode"; @@ -38242,8 +38556,8 @@ src = fetchFromGitHub { owner = "ljos"; repo = "jq-mode"; - rev = "f2dc70af890694828b8227b2727240e82780d7e5"; - sha256 = "18hprvhlwf110j7anyrrrjp4xjr3556yipz7n4jyqj69i0kvjw5c"; + rev = "5c081859def7510dafc6b14449f5285916898f15"; + sha256 = "14421p9k6b02syb8irprz527dcqbh1r4i2m86pi94sv6ffzbs0gg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/318705966e26e58f87b53c115c519db95874ac1c/recipes/jq-mode"; @@ -38284,8 +38598,8 @@ src = fetchFromGitHub { owner = "Qquanwei"; repo = "auto-beautify.el"; - rev = "dd2e5940a07c5bb8e793f25e644def62c3426eed"; - sha256 = "0wqw9gj59n4bxb3zpr3ddaqzwl2rb8zk7zv5dkfrzzvy2rz10zxd"; + rev = "180d15af7b5dfaab4ee1954cca2fdc797932f9de"; + sha256 = "0xwkjq41v32dqc5gq8hcmcvdjg2y38xq6hkw5pja0kyvyk92c82d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/js-auto-beautify"; @@ -38298,15 +38612,57 @@ license = lib.licenses.free; }; }) {}; + js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "js-auto-format-mode"; + version = "20171031.1819"; + src = fetchFromGitHub { + owner = "ybiquitous"; + repo = "js-auto-format-mode"; + rev = "68c6c51320f124d84145643dda59619966bb29f4"; + sha256 = "04slx5ipcf1lj9fvx537yfyvqmg324pfji02w5iafqnyvyhdjy9p"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode"; + sha256 = "1gxf7xz1j3ga2pk5w8cgny7l8kid59zap2a97lhb50w1qczfqqzs"; + name = "js-auto-format-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/js-auto-format-mode"; + license = lib.licenses.free; + }; + }) {}; + js-codemod = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "js-codemod"; + version = "20171017.1411"; + src = fetchFromGitHub { + owner = "torgeir"; + repo = "js-codemod.el"; + rev = "cf0d0a47588cad640e4397f306fd17d2166a8f04"; + sha256 = "04im9cs7hbs2bzx5ynibwgbypy91vvrz3jjy72hzfaamdglw7w8r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/81670a2467fa846a3f0e6c81e870e8ae140dd54e/recipes/js-codemod"; + sha256 = "1m5wbyx12sc5qwbrh948ikskck10p6j05ahrrvmmflvfb3q4vpcj"; + name = "js-codemod"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/js-codemod"; + license = lib.licenses.free; + }; + }) {}; js-comint = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "js-comint"; - version = "20161212.2125"; + version = "20170808.527"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "js-comint"; - rev = "2f42249c0a18ad2e17cfb272d75aa9fd3ec5e4ec"; - sha256 = "17f99cih28lfral5iq43pjrvimlx0bnigirv44wm81n58widismy"; + rev = "eb4744122724b24e492c2171fff438e3ee2045a8"; + sha256 = "1bbzbv1dasqxkljq06qngb4l22x7gpgncz7jmn0pqixnhqj5k66y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bc9d20b95e369e5a73c85a4a9385d3a8f9edd4ca/recipes/js-comint"; @@ -38385,12 +38741,12 @@ js2-closure = callPackage ({ fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "js2-closure"; - version = "20160715.1536"; + version = "20170816.1218"; src = fetchFromGitHub { owner = "jart"; repo = "js2-closure"; - rev = "2b99540f43ddae123014d0fe20c66f5b536312cd"; - sha256 = "0f280vk7mhslra793183jmi72hlhiq5mgjd0f0b6hr0gyj3iszb0"; + rev = "f59db386d7d0693935d0bf52babcd2c203c06d04"; + sha256 = "09zfmxi9m883lzsafnws06ifpq92b2i9q05pxk085vgkdpq35nss"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/61bf3e70ae38a78184f0b373ff6f0db234f51cb2/recipes/js2-closure"; @@ -38406,12 +38762,12 @@ js2-highlight-vars = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "js2-highlight-vars"; - version = "20161209.128"; + version = "20170418.1129"; src = fetchFromGitHub { owner = "unhammer"; repo = "js2-highlight-vars.el"; - rev = "15dbc583d8c2b7385f677d7ea563065fe6bfdb56"; - sha256 = "0da32ky9fg5rilb3h3s6s7v8swvnyqfwv51f55y3dhyya3n1lclm"; + rev = "e3bb177e50f76b272e8073a94d4f46be6512a163"; + sha256 = "0yy8sqkn6c7r377qr2id4z550vw1x70xjd4i7yg0g1rj7q1kg98l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5f4a7c90be2e032277ae87b8de36d2e3f6146f09/recipes/js2-highlight-vars"; @@ -38427,12 +38783,12 @@ js2-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "js2-mode"; - version = "20170330.639"; + version = "20171014.1229"; src = fetchFromGitHub { owner = "mooz"; repo = "js2-mode"; - rev = "908395e3aa413b4293b35aab9d41a56f1dbe1e04"; - sha256 = "1klwg6clx5nvj6755rakzdg62brfms1s8g9cccdkipbb8m6paffh"; + rev = "dd295e838d3878188b1797b82a86867e3e56d22c"; + sha256 = "04axxxhy1jbn21bzsxwlirsv9mnzbrwcxbql28vzvw6572vkrb9x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/js2-mode"; @@ -38448,12 +38804,12 @@ js2-refactor = callPackage ({ dash, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, multiple-cursors, s, yasnippet }: melpaBuild { pname = "js2-refactor"; - version = "20170315.1315"; + version = "20171013.258"; src = fetchFromGitHub { owner = "magnars"; repo = "js2-refactor.el"; - rev = "1f0ffe0a3948d7a610f20544c31de91fb08a8bb5"; - sha256 = "0rf2lagzw8qnglnmgq73np829j2i7n8hzz3y8d8ragkaz8gipsi1"; + rev = "b9829059745fbedfeb8c48646056fb27ce23a33a"; + sha256 = "1jwkly6srxx21ff6xnkvr7qqrlpsvis8i89v0z7vfz5f05yryscj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8935264dfea9bacc89fef312215624d1ad9fc437/recipes/js2-refactor"; @@ -38532,12 +38888,12 @@ json-mode = callPackage ({ fetchFromGitHub, fetchurl, json-reformat, json-snatcher, lib, melpaBuild }: melpaBuild { pname = "json-mode"; - version = "20170402.1808"; + version = "20170719.2205"; src = fetchFromGitHub { owner = "joshwnj"; repo = "json-mode"; - rev = "c528c7784f6449a35a8c90db58cb73125c69987e"; - sha256 = "0g9zc9sbs3m92qn2jx4nyd0b8s10c1nl92z5rwq9nci5wsmpqxzg"; + rev = "32d5a9b3319e6797c4d52e7d61a65e5638102ef4"; + sha256 = "04n68ppxdga5r7mbahiqjkykf3i5simpx91aa8x9h197y5wwi4ww"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/03d0ff6c8d724cf39446fa27f52aa5cc1a3cefb6/recipes/json-mode"; @@ -38550,6 +38906,27 @@ license = lib.licenses.free; }; }) {}; + json-navigator = callPackage ({ emacs, fetchFromGitHub, fetchurl, hierarchy, lib, melpaBuild }: + melpaBuild { + pname = "json-navigator"; + version = "20170606.34"; + src = fetchFromGitHub { + owner = "DamienCassou"; + repo = "json-navigator"; + rev = "d005a253fa73ed2c6c0b3ebbc7dc41be9270c304"; + sha256 = "1dklr166p5gx5y3nzkh758wwr6jvw50c3si05m71247kirhs0f89"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/62d4d68bd473652b80988a68250e9190b886ad6e/recipes/json-navigator"; + sha256 = "0yfl31cg0mkgsbpgx00m9h2cxnhsavcf7zlspb0qr4g2zq6ya1wx"; + name = "json-navigator"; + }; + packageRequires = [ emacs hierarchy ]; + meta = { + homepage = "https://melpa.org/#/json-navigator"; + license = lib.licenses.free; + }; + }) {}; json-reformat = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "json-reformat"; @@ -38613,6 +38990,27 @@ license = lib.licenses.free; }; }) {}; + jsonnet-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jsonnet-mode"; + version = "20171005.24"; + src = fetchFromGitHub { + owner = "mgyucht"; + repo = "jsonnet-mode"; + rev = "efe768fdcff25d746674fbbf229b9e1a7efea4f1"; + sha256 = "1a52266y83z9i3sg7hhc8sw7rhjy5i9wdy2bv7s2fv00lnngaj29"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ba17372732723f73e8eeb6e7c47abc0edeb20da4/recipes/jsonnet-mode"; + sha256 = "1aadys887szlc924qr645lby9f8vzvxkwhq6byhppk1b01h911ia"; + name = "jsonnet-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/jsonnet-mode"; + license = lib.licenses.free; + }; + }) {}; jss = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, websocket }: melpaBuild { pname = "jss"; @@ -38698,12 +39096,12 @@ julia-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "julia-mode"; - version = "20170210.1504"; + version = "20170916.628"; src = fetchFromGitHub { owner = "JuliaLang"; repo = "julia-emacs"; - rev = "9067194d9df9c856ae6cff4060b19810759f74d4"; - sha256 = "0vaq2dv77pj9xkn8vfk4wv2lxxn1fy0a473blblzrhgcifd7dfv4"; + rev = "115d4dc8a07445301772da8376b232fa8c7168f4"; + sha256 = "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8522d197cb1b2c139959e7189765001c5ee7e61a/recipes/julia-mode"; @@ -38716,6 +39114,27 @@ license = lib.licenses.free; }; }) {}; + julia-repl = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "julia-repl"; + version = "20171018.443"; + src = fetchFromGitHub { + owner = "tpapp"; + repo = "julia-repl"; + rev = "b20cadb67d65e52ecb57bbb07369215d01c956e0"; + sha256 = "048jf00lmyrsr815kk8h5y5hdvpmbd6zvchq8x5vyziqd2vpsdc3"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9a2a494969a9caf2f4513b12504379c9685047dc/recipes/julia-repl"; + sha256 = "1k8a54s7g64zasmmnywygr0ra3s3din5mkqb7b5van2l0d4hcmzn"; + name = "julia-repl"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/julia-repl"; + license = lib.licenses.free; + }; + }) {}; julia-shell = callPackage ({ fetchFromGitHub, fetchurl, julia-mode, lib, melpaBuild }: melpaBuild { pname = "julia-shell"; @@ -38740,12 +39159,12 @@ jumblr = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "jumblr"; - version = "20140908.1352"; + version = "20170727.1343"; src = fetchFromGitHub { owner = "mkmcc"; repo = "jumblr"; - rev = "705c7286e09a307b2b7f60072a12ed45325657c0"; - sha256 = "1f0kai4cz3r25fqlnryyvnyf80cf57xa655dvv1rx8si3xd20x4j"; + rev = "34533dfb9db8538c005f4eaffafeff7ed193729f"; + sha256 = "0nn2m27c70nykin4iakrna0c61qd1hr09czrfmfpk06k70iifjky"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b47000c35a181c03263e85e8955eb4b4c9e69e4d/recipes/jumblr"; @@ -38765,8 +39184,8 @@ src = fetchFromGitHub { owner = "eschulte"; repo = "jump.el"; - rev = "95a9559bd301ff86fa3b72b15126dc4851ce4a69"; - sha256 = "0fyrrzilvacvrxbw8r6wc0jphrk3h4dsw86zp3d63h4s6rlldhsa"; + rev = "e4f1372cf22e811faca52fc86bdd5d817498a4d8"; + sha256 = "0354b64drvv8v5g13xy5nc1klwx4hldz1b5mf1frhna7h2dqz0j9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f0c791aebccc08b770b3969ce5d2e82cbe26f80e/recipes/jump"; @@ -38821,6 +39240,27 @@ license = lib.licenses.free; }; }) {}; + jump-tree = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jump-tree"; + version = "20171014.851"; + src = fetchFromGitHub { + owner = "yangwen0228"; + repo = "jump-tree"; + rev = "282267dc6305889e31d46b405b7ad4dfe5923b66"; + sha256 = "0r6cwpks4aylndvq5lcny3799fag05zm36gd11043wca7sgr90fz"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fe6b08848929c83e3cdea623b331176c0f20cbe9/recipes/jump-tree"; + sha256 = "1gknpwd1vjpd1jqpi2axhyi6sg4clarr32rfrfz6hi6kmzr848mj"; + name = "jump-tree"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/jump-tree"; + license = lib.licenses.free; + }; + }) {}; jumplist = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "jumplist"; @@ -38929,12 +39369,12 @@ kakapo-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kakapo-mode"; - version = "20160727.2136"; + version = "20171003.2151"; src = fetchFromGitHub { owner = "listx"; repo = "kakapo-mode"; - rev = "bb6de027fb578df31652e58daa92522884ecc274"; - sha256 = "1y6ihk52jza07krz24l9axkwhi46fwi4h6bcjdck9q1qvdrcxw40"; + rev = "67d516138172fd60782df94454b3d0bd247e84f3"; + sha256 = "0r2n410arr48skcwm39c6mjhzsia117lb8xd7pc4854y0rbrvrvs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a43f0f1f6a0773240a51d379ec786c20a9389e7b/recipes/kakapo-mode"; @@ -38947,13 +39387,55 @@ license = lib.licenses.free; }; }) {}; + kaleidoscope = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "kaleidoscope"; + version = "20170808.117"; + src = fetchFromGitHub { + owner = "algernon"; + repo = "kaleidoscope.el"; + rev = "e932103e043bd1503bf5d98dd117ff6737b852bc"; + sha256 = "1vz4f3w9630dpr4ba4gdiwza29dacakm9h9vzyjrg643wcsgi6v1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/148d47626879be1608f35827ef82a28274ff4de3/recipes/kaleidoscope"; + sha256 = "0nfz207rzpnni7jyzvdvz5lr0zcpzy278a86821cmw8d5l81a3yp"; + name = "kaleidoscope"; + }; + packageRequires = [ s ]; + meta = { + homepage = "https://melpa.org/#/kaleidoscope"; + license = lib.licenses.free; + }; + }) {}; + kaleidoscope-evil-state-flash = callPackage ({ evil, fetchFromGitHub, fetchurl, kaleidoscope, lib, melpaBuild, s }: + melpaBuild { + pname = "kaleidoscope-evil-state-flash"; + version = "20170728.320"; + src = fetchFromGitHub { + owner = "algernon"; + repo = "kaleidoscope.el"; + rev = "e932103e043bd1503bf5d98dd117ff6737b852bc"; + sha256 = "1vz4f3w9630dpr4ba4gdiwza29dacakm9h9vzyjrg643wcsgi6v1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/148d47626879be1608f35827ef82a28274ff4de3/recipes/kaleidoscope-evil-state-flash"; + sha256 = "17a4nmdi6h0z4va3kiw4ivaywiisblz6cicypk9d3g9sl92drcvq"; + name = "kaleidoscope-evil-state-flash"; + }; + packageRequires = [ evil kaleidoscope s ]; + meta = { + homepage = "https://melpa.org/#/kaleidoscope-evil-state-flash"; + license = lib.licenses.free; + }; + }) {}; kanban = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kanban"; - version = "20170203.1701"; + version = "20170418.110"; src = fetchhg { url = "https://bitbucket.com/ArneBab/kanban.el"; - rev = "4481f57aee47"; - sha256 = "1crghlq0d87kc9mwy7prifxqla4q59c2447hhhl0pxbkf3ag9si1"; + rev = "dd11d722b20a"; + sha256 = "07g0spi9jf48vap76f9rgl61sg3jqy03qdxnmchzwlia8wvcsscb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/kanban"; @@ -38987,24 +39469,24 @@ license = lib.licenses.free; }; }) {}; - kaolin-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "kaolin-theme"; - version = "20170416.1713"; + pname = "kaolin-themes"; + version = "20171101.316"; src = fetchFromGitHub { - owner = "0rdy"; - repo = "kaolin-theme"; - rev = "1e3a03e0b3c408913c8487cac291d163c53217e8"; - sha256 = "0zr187f1pc4lj9kglzsh0h71k6vf8j1pkk3p02pacxs4ixs473vy"; + owner = "ogdenwebb"; + repo = "emacs-kaolin-themes"; + rev = "85d11341944ff91e7949306c588f237ebf8adc5e"; + sha256 = "1cqmg3hksqb3vi2m77ysacx8znp6b94vqcxw7lm4psrdwb3ris8g"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d2abf9d914cdc210bbd47ea92d0dac76683e21f0/recipes/kaolin-theme"; - sha256 = "1316sn1xpli9aqbhn8sldyvsc2fwk1ql9aw4l0rgkfbivvcklp7c"; - name = "kaolin-theme"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes"; + sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw"; + name = "kaolin-themes"; }; - packageRequires = [ emacs ]; + packageRequires = [ autothemer cl-lib emacs ]; meta = { - homepage = "https://melpa.org/#/kaolin-theme"; + homepage = "https://melpa.org/#/kaolin-themes"; license = lib.licenses.free; }; }) {}; @@ -39263,12 +39745,12 @@ keymap-utils = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "keymap-utils"; - version = "20161212.957"; + version = "20170614.1134"; src = fetchFromGitHub { owner = "tarsius"; repo = "keymap-utils"; - rev = "a4f6ff724eeade5612c01c6f6bf401f264687793"; - sha256 = "0jgmw8798g3ikhwnic3fbbjld0hj8fvg50q6x78pngf78ws92mkl"; + rev = "0130f32e5ade649dd2738206a80570e450906ef6"; + sha256 = "1bq7zihdj67j94yyv6655mcrxhz99szbf2zi64nwsl60bxz0znb8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c03acebf1462dea36c81d4b9ab41e2e5739be3c3/recipes/keymap-utils"; @@ -39389,12 +39871,12 @@ kill-or-bury-alive = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kill-or-bury-alive"; - version = "20170316.509"; + version = "20170518.2358"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "kill-or-bury-alive"; - rev = "23f911c35414b0157f23c0b01fac898ef0740fdb"; - sha256 = "0ay9x6vk505p67hsf8hijxvm5nf8qwf6k67hv7cq9z4cxfmyzpl1"; + rev = "415de48695efd30163a015063873b03f4ca5b743"; + sha256 = "1jsgvwi3zy22wirxgzkbbjzk4q6f6mxf3223cf5pkk7x2prv6fcn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/25016ed09b6333bd79b989a8f6b7b03cd92e08b3/recipes/kill-or-bury-alive"; @@ -39498,8 +39980,8 @@ src = fetchFromGitHub { owner = "kivy"; repo = "kivy"; - rev = "fd01c099e9bb5a65bcd58e3a67b090bd39b1e764"; - sha256 = "060lw75dk8ibgswq2f0yysvkkgpw5q0jmdwqpicdj6n1nc4zn99r"; + rev = "be946b5e33cc1fc734a29ba46ca734391803fbcd"; + sha256 = "1ngpwjhilpg974xx4z8fiz6c2ycpdr6xbky1d3d24563hjp1a5kr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/688e2a114073958c413e56e1d117d48db9d16fb8/recipes/kivy-mode"; @@ -39515,12 +39997,12 @@ kiwix = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kiwix"; - version = "20170116.503"; + version = "20170927.120"; src = fetchFromGitHub { owner = "stardiviner"; repo = "kiwix.el"; - rev = "edea2234a7a5267c1888dbe2271e9100bdc3f5a8"; - sha256 = "0b9bwcgxm2gachh2g5cn4fih2n5mzqzvl591ahq0rylgajxmxvhp"; + rev = "86dbead6c0017beefd92a0b64a0bb5f5d12c5b16"; + sha256 = "142mm1wy8zvlkzairnc1rjdi1lsq1asfk4zdbs1aria1nxz1sx6x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/kiwix"; @@ -39578,12 +40060,12 @@ kodi-remote = callPackage ({ elnode, fetchFromGitHub, fetchurl, json ? null, let-alist, lib, melpaBuild, request }: melpaBuild { pname = "kodi-remote"; - version = "20170410.958"; + version = "20171008.2226"; src = fetchFromGitHub { owner = "spiderbit"; repo = "kodi-remote.el"; - rev = "76603f29cbaf316d72c858afeb3d7ce17e195dba"; - sha256 = "1j9y678ddpbi6jcnn9yb3bw97kwqgx1k9d172fa324m2iqylrfiq"; + rev = "479075d96857696cf029cd1f482b9f2f31d82452"; + sha256 = "0kvx43ny49j115kj6zpy1i5g87bjgiimfgj9xp2fn9830adymc24"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/08f06dd824e67250afafdecc25128ba794ca971f/recipes/kodi-remote"; @@ -39662,12 +40144,12 @@ kosmos-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kosmos-theme"; - version = "20170218.1121"; + version = "20170502.1150"; src = fetchFromGitHub { owner = "habamax"; repo = "kosmos-theme"; - rev = "0c7b2257ab1d8aedafcf89a43dd2112871df23b4"; - sha256 = "18n0lw6cfc56np4s3mvpdp13pnsmqhjn1izipjv1s1sgyjj04qj4"; + rev = "616456d2376a75dc31190ad65137d179fbad4336"; + sha256 = "193zwgwfnj0lyk0msa16y0dfg7asp953p3jm56d9wdacggbcraj9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/kosmos-theme"; @@ -39683,12 +40165,12 @@ kotlin-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kotlin-mode"; - version = "20170403.826"; + version = "20171009.1301"; src = fetchFromGitHub { owner = "Emacs-Kotlin-Mode-Maintainers"; repo = "kotlin-mode"; - rev = "e5c6d845e689ed0623b864ff863cc99ca558b442"; - sha256 = "0add2vi13caxgcxgl2yxdjccjmszs0918jm70084ry3iih8ljl37"; + rev = "ebcf6f3730f455894ebb7ed8e42950f66e8e1c1d"; + sha256 = "1345ahc8i69sl2d9v03gdgrdcj7qkbzrl0pl957hjn3vbvmhrz00"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9f2560e913b215821221c96069a1385fe4e19c3e/recipes/kotlin-mode"; @@ -39704,12 +40186,12 @@ kpm-list = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kpm-list"; - version = "20160310.1050"; + version = "20170924.652"; src = fetchFromGitHub { owner = "KMahoney"; repo = "kpm-list"; - rev = "6fb7db35f7dac7fb8f956c67ee2eea9d3fa54034"; - sha256 = "0hbzr5x9ykzrbwzfsf6rc4pbiw9m59ny3cgcx26nbi6ijbjl2fxj"; + rev = "e0f5112e5ce8ec1b603f4428fa51681c68bb28f5"; + sha256 = "1achcr3v0d85narnxqpbfxy9qfk537kl83wiq5lyfy3lwqqf7dmp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6b7065d016e2da49277b165edf565bef5819d483/recipes/kpm-list"; @@ -39746,12 +40228,12 @@ ksp-cfg-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ksp-cfg-mode"; - version = "20160521.1333"; + version = "20170724.1127"; src = fetchFromGitHub { owner = "lashtear"; repo = "ksp-cfg-mode"; - rev = "07a957512e66030e1b9f8ac0f259051386acb5b5"; - sha256 = "1kbmlhfxbp704mky8v69lzqd20bbnqijfnv110yigsy3kxi7hdrr"; + rev = "713a22ee28688e581ec3ad60228c853b516a14b6"; + sha256 = "04r8mfsc349wdhx1brlf2l54v4dn58y69fqv3glhvml12962lwy3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d49db5938fa4e3ab1176a955a4788b15c63d9e69/recipes/ksp-cfg-mode"; @@ -39767,12 +40249,12 @@ kubernetes = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "kubernetes"; - version = "20170416.2333"; + version = "20170523.1517"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "kubernetes-el"; - rev = "34b991ec138dece790e9c7ab51a1c0031b81b39b"; - sha256 = "0vzmx4hahrc4g3qxqrvyqz890zpgz2n3cj9libk13bf4nsfbbj6y"; + rev = "560b65baef1c4f2bedffd8e767774b55dfc35594"; + sha256 = "0n9msgawac0jbid671nfr8c5z1zw89wnfw021igxaqwqrl3438rw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/16850227ea48f6f38102b9cdf80e0758766a24d2/recipes/kubernetes"; @@ -39788,12 +40270,12 @@ kubernetes-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, kubernetes, lib, melpaBuild }: melpaBuild { pname = "kubernetes-evil"; - version = "20170416.1959"; + version = "20170523.1517"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "kubernetes-el"; - rev = "34b991ec138dece790e9c7ab51a1c0031b81b39b"; - sha256 = "0vzmx4hahrc4g3qxqrvyqz890zpgz2n3cj9libk13bf4nsfbbj6y"; + rev = "560b65baef1c4f2bedffd8e767774b55dfc35594"; + sha256 = "0n9msgawac0jbid671nfr8c5z1zw89wnfw021igxaqwqrl3438rw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/16850227ea48f6f38102b9cdf80e0758766a24d2/recipes/kubernetes-evil"; @@ -39806,15 +40288,36 @@ license = lib.licenses.free; }; }) {}; + kubernetes-tramp = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "kubernetes-tramp"; + version = "20171026.922"; + src = fetchFromGitHub { + owner = "gruggiero"; + repo = "kubernetes-tramp"; + rev = "9fa84df71f6e88bc23a756cdf2df393a35aec945"; + sha256 = "1l1ibc97ahp3zwwypqfg3201qdxad4sdpdaq7nsfb87gh46vsbz8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8ea4b15e64a9dc33b9977650488693cacadd1ab1/recipes/kubernetes-tramp"; + sha256 = "15nlx3w2v0gky0zgbx7n0w1mdr6yaj4dh028ay2k19wg8wbsckjq"; + name = "kubernetes-tramp"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/kubernetes-tramp"; + license = lib.licenses.free; + }; + }) {}; kurecolor = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "kurecolor"; - version = "20161016.1827"; + version = "20170808.602"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "kurecolor"; - rev = "2b2c6778d75ef90f42fdffbe3ba7e58fa661946a"; - sha256 = "0zcqjphz2vad6jccw9z7fds8xmvv0vmgp7fi0d8i0i5fbhpwpfz7"; + rev = "3e8b63e89e294179e42a14a4a357c29a72669a22"; + sha256 = "0pj8252x5s61bwsfrhi5qvwk8jia3kc67r82v5m4a900zpmx3a7k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/58a5ebdbf82e83e6602161bca049d468887abe02/recipes/kurecolor"; @@ -39872,12 +40375,12 @@ labburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "labburn-theme"; - version = "20170104.211"; + version = "20170502.207"; src = fetchFromGitHub { owner = "ksjogo"; repo = "labburn-theme"; - rev = "c77596042d4f96e1cfdc2e8a542dd30cd55227a6"; - sha256 = "0wrwx1lgy38hvp7axwkgm3a760nw8gwl1b61ll33vc4qajgp525g"; + rev = "e95334acd8a73fbe8e156f70e047014a87e92e66"; + sha256 = "0ai8gr4an4d44lgin7kdzydn2d0a98jb8mv0n9b93bq160lbmkwj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b1bfc9870fbe61f58f107b72fd7f16efba22c902/recipes/labburn-theme"; @@ -39890,24 +40393,6 @@ license = lib.licenses.free; }; }) {}; - lacarte = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "lacarte"; - version = "20170307.837"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/lacarte.el"; - sha256 = "0m3swrvxz0cy01pd4kag626fxqp4l2zzwpgr26yp5wpsfxl9avv8"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/lacarte"; - sha256 = "07rxgjax6ms0knjj5qplfy0hxzfhs6iqk4ny43566zzqv86n0bhi"; - name = "lacarte"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/lacarte"; - license = lib.licenses.free; - }; - }) {}; lang-refactor-perl = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lang-refactor-perl"; @@ -39953,12 +40438,12 @@ langtool = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "langtool"; - version = "20160116.1654"; + version = "20170917.2154"; src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-langtool"; - rev = "d014434d5698d927dfdbd0882d974edc3fc6ac66"; - sha256 = "1rj0j4vxfwss0w6bwh591w5mbyzjg5rkbwyjaphyi6p7wq5w6np1"; + rev = "bae4bdd240583b2253b4ff03af5295146e285103"; + sha256 = "0zwaddpmvkq7v5nnyzacmx0ql5zjlisvkqwa2knw3pihngr160cd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/503845e79e67c921f1fde31447f3dd4da2b6f993/recipes/langtool"; @@ -39995,12 +40480,12 @@ lastpass = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "lastpass"; - version = "20170415.1008"; + version = "20170801.1214"; src = fetchFromGitHub { owner = "storvik"; repo = "emacs-lastpass"; - rev = "5407aefb0135b400cd73203b92ac23b8b74050f8"; - sha256 = "1amqs8v27037qljjrz5r5fn6fscknm3r0hwap1ia5fivg9j8fnzv"; + rev = "264250725b3ba23412919ec10cfa7390473b534c"; + sha256 = "1qqmg59vbwb31nx3vi88d53484gy3sg8wnq45xrra45drpjka3ry"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/46e5e8735baab7728bddce2693cea6bcee0e6360/recipes/lastpass"; @@ -40016,12 +40501,12 @@ latex-extra = callPackage ({ auctex, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "latex-extra"; - version = "20160328.1721"; + version = "20170816.1847"; src = fetchFromGitHub { owner = "Malabarba"; repo = "latex-extra"; - rev = "9e89c5548298394aa47a5087a8e79655105a6f3d"; - sha256 = "1gz2zay2wah56s0gkkfnhfmm0wr1w4gjz51pb1q72br0n4r01xq9"; + rev = "82d99b8b0c2db20e5270749582e03bcc2443ffb5"; + sha256 = "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/latex-extra"; @@ -40037,12 +40522,12 @@ latex-math-preview = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "latex-math-preview"; - version = "20160321.2159"; + version = "20170522.1455"; src = fetchFromGitLab { owner = "latex-math-preview"; repo = "latex-math-preview"; - rev = "2c7a526a4e46f7154befc9009b131dfbab22ac03"; - sha256 = "0cxmvadkiqhvhmvmx3vvwxasw7wll8abhviss7wgizwqf4i2p3v4"; + rev = "775887a89447dd19541b121161cc02e9799d0d3a"; + sha256 = "1mp6bpl8992pi40vs6b86q922h4z8879mrjalldv5dyz57ym5fsq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9e413b7684e9199510b00035825aa861d670e072/recipes/latex-math-preview"; @@ -40183,12 +40668,12 @@ lavender-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lavender-theme"; - version = "20141115.2302"; + version = "20170808.613"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-lavender-theme"; - rev = "d9e4d7838167a0e07fb5d04877a7b34c4b4cc1ee"; - sha256 = "1mg923rs2dk104bcr461dif3mg42r081ii8ipnnr588w7il0xh7k"; + rev = "ef5e959b95d7fb8152137bc186c4c24e986c1e3c"; + sha256 = "0pbpns387fmalkakbdl2q7d2y720m7ai7mnydsinjwlkdrshvj4g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/lavender-theme"; @@ -40243,6 +40728,27 @@ license = lib.licenses.free; }; }) {}; + lean-mode = callPackage ({ dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s }: + melpaBuild { + pname = "lean-mode"; + version = "20170920.755"; + src = fetchFromGitHub { + owner = "leanprover"; + repo = "lean-mode"; + rev = "2f73061c886bae07bc51e4d9eb545ed8027c0442"; + sha256 = "17bqx7bkfzv4w7cf0l139xwg1shns680rq74hrqgicammb453kz7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde/recipes/lean-mode"; + sha256 = "0rdraxsirkrzbinjwg4qam15iy3qiixqgwsckngzw8d9a4s9l6sj"; + name = "lean-mode"; + }; + packageRequires = [ dash dash-functional emacs f flycheck s ]; + meta = { + homepage = "https://melpa.org/#/lean-mode"; + license = lib.licenses.free; + }; + }) {}; leanote = callPackage ({ async, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pcache, request, s }: melpaBuild { pname = "leanote"; @@ -40264,22 +40770,22 @@ license = lib.licenses.free; }; }) {}; - ledger-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + ledger-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ledger-mode"; - version = "20170413.2120"; + version = "20170901.2039"; src = fetchFromGitHub { owner = "ledger"; repo = "ledger-mode"; - rev = "61670fb0ee5ced369fb2265e096ca0b476789c8c"; - sha256 = "0jvm0j1m5p5hkag61swgmn5zjs6wbgx5ayxs1wf0b9v6cvmjm7vp"; + rev = "24b43e34dd34de23e54d7ddaa2a147efda6af03d"; + sha256 = "0cdcd2hpv34yhpplgqljiyncs2q0i321f4xwfkb2inqbv9q4byhk"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/851eca11911b337f809d030785dc2608c8a47424/recipes/ledger-mode"; - sha256 = "19vljgprgfpb9bkbdvkqnwc5pjn1rl0rniwav08a2c6kd2g59xaf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1549048b6f57fbe9d1f7fcda74b78a7294327b7b/recipes/ledger-mode"; + sha256 = "10asbcb5syv3b75bngsab3c84dp2xmc0q7s29im6kf4mzv5zcfcf"; name = "ledger-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/ledger-mode"; license = lib.licenses.free; @@ -40288,12 +40794,12 @@ leerzeichen = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "leerzeichen"; - version = "20151105.2228"; + version = "20170422.613"; src = fetchFromGitHub { owner = "fgeller"; repo = "leerzeichen.el"; - rev = "e67e59a0e15bc4a41006fdd9822c4b3e6d7da626"; - sha256 = "0yrrlwmxg1wy65bqyacjpzd5ksljgp41x4zyizl7h0zx9rmqcdvn"; + rev = "5acf9855ecb2b2cd5da4402bb48df149e7525cc5"; + sha256 = "1bx4pv51a9x8f51pjrms8jkfrpa3glwkh308svz05gnyi2g0r8hw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5de7033e75bc28de6e50b2146511cdaac4542ad6/recipes/leerzeichen"; @@ -40418,8 +40924,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "less-css-mode"; - rev = "59bf174c4e9f053ec2a7ef8c8a8198490390f6fb"; - sha256 = "1rkjamdy2a80w439vb2hhr7vqjj47wi2azlr7yq2xdz9851xsx9f"; + rev = "2c3f69640c3c98457255f601db98f520dee2e7b6"; + sha256 = "01cxa7p299k3kgcv2x4lcri154fij7p02v1kl3fx4vnc88nr9jwd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/less-css-mode"; @@ -40453,15 +40959,36 @@ license = lib.licenses.free; }; }) {}; + letterbox-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "letterbox-mode"; + version = "20170701.1825"; + src = fetchFromGitHub { + owner = "pacha64"; + repo = "letterbox-mode"; + rev = "88c67a51d67216d569a28e8423200883fde096dd"; + sha256 = "1xzzfr525pn2mj7x6xnvccxhls79bfpi5mqhl9ivisnlgj1bvdjw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1512e20962ea354e4311c0a2696a22576a099ba9/recipes/letterbox-mode"; + sha256 = "117dj5xzf6givwjyqsciz6axhlcj7xbx0zj91ximm81kb5fswgda"; + name = "letterbox-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/letterbox-mode"; + license = lib.licenses.free; + }; + }) {}; leuven-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "leuven-theme"; - version = "20170309.1340"; + version = "20170919.252"; src = fetchFromGitHub { owner = "fniessen"; repo = "emacs-leuven-theme"; - rev = "4b11c7d4ea4dbde316844d3c73be9bafe12ac911"; - sha256 = "0saaakcs32i0bal2v6zcw1r27jzbs3hlhcsvr0k9dkhyi2kv2nwn"; + rev = "9d31a9d4ed763d6309e9d44985cd8b4a5a2fb500"; + sha256 = "0vr535a32cgkna0h1z8ac9cb4al3jb01bybn956rz51qdbzm2d1h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b09451f4eb2be820e94d3fecbf4ec7cecd2cabdc/recipes/leuven-theme"; @@ -40523,8 +41050,8 @@ src = fetchFromGitHub { owner = "rvirding"; repo = "lfe"; - rev = "69a2d1d410220a688ad169366d0d20e138e264f6"; - sha256 = "0ky6dcvqprmaww5503q2y42vz5qls844xvb7yx2sl3czlm47riy0"; + rev = "2880c8a2a7fe998238b6490fe3e3c484b5c5985e"; + sha256 = "1xcnh1hk815wizhp7h1mik3npm7zpbvg4554nwbj072gnbb9j1nx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c44bdb00707c9ef90160e0a44f7148b480635132/recipes/lfe-mode"; @@ -40537,24 +41064,6 @@ license = lib.licenses.free; }; }) {}; - lib-requires = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "lib-requires"; - version = "20170307.855"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/lib-requires.el"; - sha256 = "04lrkdjrhsgg7vgvw1mkr9a5m9xlyvjvnj2aj6w453bgmnp1mbvv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/lib-requires"; - sha256 = "1a69qf9dlsq5r7nm32hd0srzka7crd08gl82w8hjfvdhn43n2h0c"; - name = "lib-requires"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/lib-requires"; - license = lib.licenses.free; - }; - }) {}; libmpdee = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "libmpdee"; @@ -40663,12 +41172,12 @@ link-hint = callPackage ({ avy, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "link-hint"; - version = "20170313.1945"; + version = "20170923.855"; src = fetchFromGitHub { owner = "noctuid"; repo = "link-hint.el"; - rev = "6b926a6fbb7288eb062b28747a32644c5c8fea4f"; - sha256 = "047y75wkqiv1vlrgg6fy78xsfms14drfwmil2sb7j5p5p0cw5xc7"; + rev = "0294df85aee10b47fcf6c2c9bfe7e1038660fa21"; + sha256 = "0ixfrp6pfljgy5ja79cka0fa6a9ganwhh5myz6czqj4ykjzlyi2c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d24b48fe0bc127ae6ac4084be8059aacb8445afd/recipes/link-hint"; @@ -40815,33 +41324,15 @@ license = lib.licenses.free; }; }) {}; - lispxmp = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "lispxmp"; - version = "20170110.1508"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/lispxmp.el"; - sha256 = "120wgxvckrgryfg2lvyx60rkcayii0g4ny2cdk3aiwsrpqcyhlyr"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/6fc8f86533402e4be8bac87ad66bc8d51c8d40f8/recipes/lispxmp"; - sha256 = "02gfbyng3dh2445jfkasxzjc9dlk02dafbfkjm40iwmb8h0fzji4"; - name = "lispxmp"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/lispxmp"; - license = lib.licenses.free; - }; - }) {}; lispy = callPackage ({ ace-window, emacs, fetchFromGitHub, fetchurl, hydra, iedit, lib, melpaBuild, swiper, zoutline }: melpaBuild { pname = "lispy"; - version = "20170415.842"; + version = "20171017.1052"; src = fetchFromGitHub { owner = "abo-abo"; repo = "lispy"; - rev = "10a7297d6772367a9cf9cd39ee44e2ff4a04e6c3"; - sha256 = "1bc6x4bxqlb3dpaia4cm7gvys1nlnq22nn1vqpmfy4scmlrngxc7"; + rev = "d70db0d6cfae3c030167389828219b9c9ac88248"; + sha256 = "1jrcrlnn0k814wqw2dyzjhcc7q4k95pp7apcmfzv7zk5jwf5p0xk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e23c062ff32d7aeae486c01e29c56a74727dcf1d/recipes/lispy"; @@ -40857,12 +41348,12 @@ lispyscript-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lispyscript-mode"; - version = "20130828.719"; + version = "20170720.1217"; src = fetchFromGitHub { owner = "krisajenkins"; repo = "lispyscript-mode"; - rev = "d0e67ee734919d7ff14c72712e909149cb9604bd"; - sha256 = "0n0mk01h9c3f24gzpws5xf6syrdwkq4kzs9mgwl74x9l0x904rgf"; + rev = "def632e3335b0c481fbcf5a17f18b0a8c58dd12f"; + sha256 = "042nndsrv7kyq20v3lahrpr0x89xyayvhx59i0hx6pvkc9wgk5b6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bf912fa20edc9cff12645381b303e37f2de14976/recipes/lispyscript-mode"; @@ -40878,12 +41369,12 @@ lispyville = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, lispy, melpaBuild }: melpaBuild { pname = "lispyville"; - version = "20170205.1833"; + version = "20170907.926"; src = fetchFromGitHub { owner = "noctuid"; repo = "lispyville"; - rev = "3ba91c5908484188971e952d98256139123c4cbe"; - sha256 = "15zfpa2bd80537vcmlp4i39rpxvn6396wynh7sa9yiwrnq246sj6"; + rev = "522fd8dcce23b2719c758e64f99b64591406f2f5"; + sha256 = "0sbqw585lv5j3w13zq2adrcqybw88y36qnnd2vp8nk9kgzvl4p62"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b5d96d3603dc328467fcce29d3ac1b0a02833d51/recipes/lispyville"; @@ -40938,25 +41429,6 @@ license = lib.licenses.free; }; }) {}; - list-processes-plus = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "list-processes-plus"; - version = "20131117.1135"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/list-processes+.el"; - sha256 = "1bssvyjgk1h1wiaxxdi2m5gjy6a790a9rwvi0r22hin7iskg300a"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d508d50d89c914c53211197afc758fc0e1154081/recipes/list-processes+"; - sha256 = "10x7hkba2bmryyl68w769fggw65dl4f3a9g0gqdzmkdj80rcipky"; - name = "list-processes-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/list-processes+"; - license = lib.licenses.free; - }; - }) {}; list-register = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "list-register"; @@ -40985,8 +41457,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "list-unicode-display"; - rev = "59770cf3572bd36c3e9ba044846dc420c0dca09b"; - sha256 = "05nn4db8s8h4mn3fxhwsa111ayvlq1raf6bifh7jciyw7a2c3aww"; + rev = "222c21c68ccc930b2843ea919c960de9be3b55c2"; + sha256 = "15gz7iw8k4xlj1ik216qw4q1j7nxihlnqgr983ic4k1n2r29fys7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0c8e2a974a56665b97d7622b0428994edadc88a0/recipes/list-unicode-display"; @@ -41048,8 +41520,8 @@ src = fetchFromGitHub { owner = "Fuco1"; repo = "litable"; - rev = "4a57d7aeddca76448e4df2a46b42d49253e5e625"; - sha256 = "1zryrc0d2avb27w6a6yzqcc73rsr2rp795vi10qhb04ixda4a8w4"; + rev = "90a2dca14a6da9b24fe332a65cff899ab4a90810"; + sha256 = "1xaixgjfpnqnsdkhfia107fq5xaq2l0gdb0zp730z97958136mm3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/74f2190b653907985e49a96ded986ab11b4946d7/recipes/litable"; @@ -41170,12 +41642,12 @@ live-py-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "live-py-mode"; - version = "20170413.2124"; + version = "20171029.1522"; src = fetchFromGitHub { owner = "donkirkby"; repo = "live-py-plugin"; - rev = "58ccb38fdbfbc2e227c8515fea40325fba164f92"; - sha256 = "14fkwdizn085avhjmd89z6ld8l3aanzj6sx06z3fxy407arfd01v"; + rev = "2ecd23457ac26f30f7218a5506142ca71dc602be"; + sha256 = "17d6p7i2yi3iawc2k8w4fkx5lwnr0x5kax73cgwapv6ghmr9yy42"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7615237e80b46b5c50cb51a3ed5b07d92566fb7/recipes/live-py-mode"; @@ -41191,16 +41663,16 @@ lively = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lively"; - version = "20160208.1035"; + version = "20171005.54"; src = fetchFromGitHub { - owner = "emacsorphanage"; + owner = "purcell"; repo = "lively"; - rev = "12df5ccaec03670de87c01b0b4cd3e2b96e0738a"; - sha256 = "1qxw7i23z6c4yimrzpaqna8j39rashgbswdv4m0x4qg4sqc7szdp"; + rev = "348675828c6a81bfa1ac311ca465aad813542c1b"; + sha256 = "1j8w63hhk1wcxcfqz0wimqijp7p1m8a2n947gwqv8nk1wm40aqg3"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/lively"; - sha256 = "0qnyqlhqmmfq2f47zmy29hn6wqrx5yvsax8kn63nmxw380gw1z18"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3e4b01286dbc84f01b43955b693ca08e675ffa07/recipes/lively"; + sha256 = "1q8cbl3sr3dpvzk57985giy4xmz4lvg94jcw7shbhz1v9q05dr5g"; name = "lively"; }; packageRequires = []; @@ -41209,6 +41681,27 @@ license = lib.licenses.free; }; }) {}; + livereload = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, websocket }: + melpaBuild { + pname = "livereload"; + version = "20170628.2350"; + src = fetchFromGitHub { + owner = "joaotavora"; + repo = "emacs-livereload"; + rev = "1e501d7e46dbd476c2c7cc9d20b5ac9d41fb1955"; + sha256 = "1z1v2panxrqpam5ysnilx83y6b4dwxmxqhmbgjwfyd1bdmr4iya4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/330731804c442226fa2faaa3da408e9253a1c051/recipes/livereload"; + sha256 = "1z0dbg82l6znz1b03v19a8fnq6b1smikpvaplpxlgny82xrs9als"; + name = "livereload"; + }; + packageRequires = [ emacs websocket ]; + meta = { + homepage = "https://melpa.org/#/livereload"; + license = lib.licenses.free; + }; + }) {}; livescript-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "livescript-mode"; @@ -41256,13 +41749,13 @@ pname = "llvm-mode"; version = "20150910.644"; src = fetchgit { - url = "http://llvm.org/git/llvm"; - rev = "82b3362feae87748cb6e5bbd997d9ce182d65329"; - sha256 = "0g6rdfcm7wz7dq13vlrz12ldvc6xspgqlxwwwcfayb7nh9czdqbh"; + url = "https://llvm.org/git/llvm"; + rev = "26acced737715cfcbf29f6708f900b4bb8a6d5e8"; + sha256 = "189c90wax1zyzk017j4brq2i25smkmpkb05wzakywkf0rgswxwqh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/05b7a689463c1dd4d3d00b992b9863d10e93112d/recipes/llvm-mode"; - sha256 = "0j3zsd0shd7kbi65a2ha7kmr0zy3my05378swx6m5m9x7miyr4y7"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/llvm-mode"; + sha256 = "0jxwa7gaxv9kkgjp87ggzlfqbf6xs19z0s9ycnv2h5hlxpnzrlnb"; name = "llvm-mode"; }; packageRequires = []; @@ -41271,15 +41764,35 @@ license = lib.licenses.free; }; }) {}; + lms = callPackage ({ emacs, fetchhg, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "lms"; + version = "20170804.922"; + src = fetchhg { + url = "https://bitbucket.com/inigoserna/lms.el"; + rev = "f07ac3678e27"; + sha256 = "15l3nfrddblfzqxgvf0dmmsk4h5l80l6r2kgxcfk8s01msjka3sl"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b8be8497494b8543a8257c9ea92444baf7674951/recipes/lms"; + sha256 = "1ckrh6qbh5y2y3yzl2iyq8nqlpy4qp6vzc72ijcgayvcflb01vr1"; + name = "lms"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/lms"; + license = lib.licenses.free; + }; + }) {}; load-relative = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "load-relative"; - version = "20160716.438"; + version = "20170526.310"; src = fetchFromGitHub { owner = "rocky"; repo = "emacs-load-relative"; - rev = "8280df5ce6db836559a5c2442b97a2f02b6f7a05"; - sha256 = "0jzq3vpdq5cw5nh2l2pvj0y3lnvjff2wyy6ip2z9n6xcjjdnzki9"; + rev = "738896e3da491b35399178ed2c6bc92cc728d119"; + sha256 = "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f052f201f7c308325c27cc2423e85cf6b9b67b4e/recipes/load-relative"; @@ -41355,6 +41868,27 @@ license = lib.licenses.free; }; }) {}; + lockfile-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "lockfile-mode"; + version = "20170624.2207"; + src = fetchFromGitHub { + owner = "preetpalS"; + repo = "emacs-lockfile-mode"; + rev = "fcfef88460cb3cd67c4d83a1801d0326d282feac"; + sha256 = "1dh41a8dj8h3lrhjajaz886vsimflshk6bc08w71rwvjyy2k8xil"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/12a383eb6c29acb007dae9dc777ace3ba84edac9/recipes/lockfile-mode"; + sha256 = "13nr983xldja8m02a1rdnyqxc8g045hxjh6649wmqmqk4mk0m310"; + name = "lockfile-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/lockfile-mode"; + license = lib.licenses.free; + }; + }) {}; lodgeit = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lodgeit"; @@ -41462,12 +41996,12 @@ logstash-conf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "logstash-conf"; - version = "20150308.518"; + version = "20170524.1229"; src = fetchFromGitHub { owner = "Wilfred"; repo = "logstash-conf.el"; - rev = "60a06ad1ceb6699cef849e9f2e8255f7816ca5de"; - sha256 = "05px3zc3is7k2jmh7mal0al5zx5cqvn1bzmhgqq02pp6lwsx5xqa"; + rev = "4e127f9aec190786613445aa88efa307ff7c6748"; + sha256 = "119yb1wk1n5ycfzgpffcwy7yx8ar8k1gza0gvbq3r61ha5a9qijs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/logstash-conf"; @@ -41483,12 +42017,12 @@ logview = callPackage ({ datetime, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "logview"; - version = "20170414.1223"; + version = "20170928.820"; src = fetchFromGitHub { owner = "doublep"; repo = "logview"; - rev = "aa996ca1df79701e59a6ab0b324adc8b11531563"; - sha256 = "0mjb2806hkvy8xqkwabfwp29q4gnc719zdc0gjq74xblbrx5f90x"; + rev = "72b6c5349206172a146b2c730b8ac040a92ebc3f"; + sha256 = "1f93iyxf8v0jazzh6jljrm7r28z00nn14wr90qrh9y9chyq72n63"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1df3c11ed7738f32e6ae457647e62847701c8b19/recipes/logview"; @@ -41609,12 +42143,12 @@ love-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, lua-mode, melpaBuild }: melpaBuild { pname = "love-minor-mode"; - version = "20130429.1459"; + version = "20170726.2236"; src = fetchFromGitHub { owner = "ejmr"; repo = "love-minor-mode"; - rev = "31c3fc1ecd31f72f0f736014a4ff905eb3742e74"; - sha256 = "179r4pz3hlb5p6bjfhdikkx1zvh09ln5dbw3c3rmlyww1q7v26yl"; + rev = "3ca8f3405338f2d6f4fbcdd5e89342a46378543a"; + sha256 = "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f224c4c7519b3668b1270c957227e486896b7b6/recipes/love-minor-mode"; @@ -41627,19 +42161,124 @@ license = lib.licenses.free; }; }) {}; + lsp-go = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-go"; + version = "20171021.336"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-go"; + rev = "d270b7c0bd893fdc73a97763e07706830756cad2"; + sha256 = "0i9l56dmkxcycn9a2ddj1zwa9cmzb5lpj6qn5x1k9q9yfk9hsc6b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-go"; + sha256 = "1yg21qqlf8ma734vaz6xrfym2058gvx7llsqy94fbbg1fg61c32c"; + name = "lsp-go"; + }; + packageRequires = [ lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-go"; + license = lib.licenses.free; + }; + }) {}; + lsp-haskell = callPackage ({ fetchFromGitHub, fetchurl, haskell-mode, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-haskell"; + version = "20171021.330"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-haskell"; + rev = "16ca9fa975e64e840e062485ed30e4b297d72424"; + sha256 = "03zrk3h76hpacrqw7lchjbslh0lg081jqkgf9n5nhxj2jg60v3vd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-haskell"; + sha256 = "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8"; + name = "lsp-haskell"; + }; + packageRequires = [ haskell-mode lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-haskell"; + license = lib.licenses.free; + }; + }) {}; + lsp-java = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-java"; + version = "20171023.650"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-java"; + rev = "5176f63e80e8f971563c0b98658db7dc72404369"; + sha256 = "07g259bx3vra2gf9mhxyd3qv1jb2s0lc0hndf0kvrcjdy29wwi52"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-java"; + sha256 = "1y5wxggkr7v4a2a3h2n01911gd1xv047dikbvyy1gappf05fdngj"; + name = "lsp-java"; + }; + packageRequires = [ emacs lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-java"; + license = lib.licenses.free; + }; + }) {}; + lsp-javacomp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild, s }: + melpaBuild { + pname = "lsp-javacomp"; + version = "20171024.1547"; + src = fetchFromGitHub { + owner = "tigersoldier"; + repo = "lsp-javacomp"; + rev = "ed23aaeee27e6253bed5752fb8fbb7a5fa61967c"; + sha256 = "096rbyv0qwa454p1ns7g0py9lni5r6h1gw85wm5mwr00shjzq23n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6b8a1c034554579a7e271409fa72020cfe441f68/recipes/lsp-javacomp"; + sha256 = "1gp8dlcpik2lmpicccq2kya498pmw9m8vz9m1fbd725p7wk58fhi"; + name = "lsp-javacomp"; + }; + packageRequires = [ emacs lsp-mode s ]; + meta = { + homepage = "https://melpa.org/#/lsp-javacomp"; + license = lib.licenses.free; + }; + }) {}; + lsp-javascript-typescript = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-javascript-typescript"; + version = "20171027.1005"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-javascript"; + rev = "8a565260906f90bb39f2da54cdb6179ec27005a6"; + sha256 = "1dx0b7sq6wn309l1iy8s3ccn21hkv0xs061jbm53hz40pn30sjqc"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/999a4b0cd84e821c7e785ae4e487f32cff5c346b/recipes/lsp-javascript-typescript"; + sha256 = "0pml7f7874c5xx94qpq7w5sz5hcail8s5nm5sy5vgax1j742r5y1"; + name = "lsp-javascript-typescript"; + }; + packageRequires = [ lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-javascript-typescript"; + license = lib.licenses.free; + }; + }) {}; lsp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "lsp-mode"; - version = "20170415.848"; + version = "20171029.148"; src = fetchFromGitHub { - owner = "vibhavp"; - repo = "emacs-lsp"; - rev = "84c2ca12cd5934322393d764584907d664776bd9"; - sha256 = "09xvm70np4yz0bmb3hahfrfnajh4lflx2gf27ffn8lviwwxkfkbb"; + owner = "emacs-lsp"; + repo = "lsp-mode"; + rev = "b221b2acce8936114649cdbdf0ce1d584487ef91"; + sha256 = "0ndbhy1035ji31ffhc6hxybwm59kzmlp9hg1zjhfww4d0sym9hz9"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b192c90c96e24ccb464ac56e624a2fd527bc5cc9/recipes/lsp-mode"; - sha256 = "0acgfzm9irk8s5lv3chwh9kp7nrwqwlidwaqzf2f4jk3yr3ww9p1"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-mode"; + sha256 = "0cklwllqxzsvs4wvvvsc1pqpmp9w99m8wimpby6v6wlijfg6y1m9"; name = "lsp-mode"; }; packageRequires = [ emacs flycheck ]; @@ -41648,6 +42287,69 @@ license = lib.licenses.free; }; }) {}; + lsp-ocaml = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-ocaml"; + version = "20171022.308"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-ocaml"; + rev = "3683281bcb56fbe778fadb23e4363a411b6f9e73"; + sha256 = "102cfv52hicmpbczs1z3cfz8d03p2hwzdkp3n0ljx1asnk4l1b8x"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7be2d7a7af3d744c531e5e018d791bf2566df428/recipes/lsp-ocaml"; + sha256 = "17334qcgqrz4jd5npizyq20fmxy07z2p3pq98s5np2kc4h9ara33"; + name = "lsp-ocaml"; + }; + packageRequires = [ emacs lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-ocaml"; + license = lib.licenses.free; + }; + }) {}; + lsp-python = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-python"; + version = "20171021.254"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-python"; + rev = "5acea5f921dc396ea092ee253ec01b45dee3cbfd"; + sha256 = "0nz0n7k0i0h77fn8w0d49b4pkljw7l15hzvjym16jh4gr1n098ar"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-python"; + sha256 = "0x8cyvkwp4znliiwf3qfrhnk80h8n1jfyyq0n5yfccsgk7gpm8qx"; + name = "lsp-python"; + }; + packageRequires = [ lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-python"; + license = lib.licenses.free; + }; + }) {}; + lsp-rust = callPackage ({ fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild }: + melpaBuild { + pname = "lsp-rust"; + version = "20171021.241"; + src = fetchFromGitHub { + owner = "emacs-lsp"; + repo = "lsp-rust"; + rev = "239e0cb8912749266a6226b68c6bc3b4362876c1"; + sha256 = "0ki66lcdc67hxx3llzw5x8vrsfi1p5m509jpcvkhrrxs1sqr4bqn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1a7b69312e688211089a23b75910c05efb507e35/recipes/lsp-rust"; + sha256 = "0p86223pfpi4hh8m66ccksxgl0yi7zrigd1gmbz0bzqa6yjgbp28"; + name = "lsp-rust"; + }; + packageRequires = [ lsp-mode ]; + meta = { + homepage = "https://melpa.org/#/lsp-rust"; + license = lib.licenses.free; + }; + }) {}; lua-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lua-mode"; @@ -41672,11 +42374,11 @@ luarocks = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "luarocks"; - version = "20170326.941"; + version = "20170430.1605"; src = fetchFromGitHub { owner = "emacs-pe"; repo = "luarocks.el"; - rev = "e0e52ba395432e18508740cc3d097b2918f55b9b"; + rev = "cee27ba0716edf338077387969883226dd2b7484"; sha256 = "0rdsjmmi95agb859997qdhbk0dns2jyx2mlg8rync58wna70nmbn"; }; recipeFile = fetchurl { @@ -41781,8 +42483,8 @@ src = fetchFromGitHub { owner = "phillord"; repo = "m-buffer-el"; - rev = "e2d5a416ce47b36da10a9815ff5702f28c716d57"; - sha256 = "0nm8ljciim7wjc4r021jv8xrsk7jffmagzbllbvd5cab4zxvs4ik"; + rev = "8681342aaffa187e5c54945ab91b812965a96d19"; + sha256 = "040g7l0r4bxz4ynp4zxy80jsa6x2f48z8rylc41fqxiblasmh0af"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c34d02682e87c9978a3583bd903dcac5da5b41d5/recipes/m-buffer"; @@ -41795,6 +42497,48 @@ license = lib.licenses.free; }; }) {}; + mac-pseudo-daemon = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mac-pseudo-daemon"; + version = "20170728.1240"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "mac-pseudo-daemon"; + rev = "d235680a72677f11925b912428ad1a57b664e3e8"; + sha256 = "0gqknrwhfzr7cf5pgs33a5xh79y0yzxghs6wsvavvqkmf4cvck40"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/mac-pseudo-daemon"; + sha256 = "12fwrcnwzsfms42rzv4wif5yzx3gnsz8yzdcgkpl37kkx85iy8v0"; + name = "mac-pseudo-daemon"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/mac-pseudo-daemon"; + license = lib.licenses.free; + }; + }) {}; + maces-game = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "maces-game"; + version = "20170903.851"; + src = fetchFromGitHub { + owner = "pawelbx"; + repo = "maces-game"; + rev = "c0fb795f5642467ea528d2f04d904547e8a77ecd"; + sha256 = "1sf1h5660fd3mfcca3h1fqk3xssgigkil26wz1kp1kvxfx9lm31m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2c9f33b926ecec48a43ba4f0484c687a7349ce50/recipes/maces-game"; + sha256 = "0wz91dsa0w4xlkl5lbdr8k4pgkgalsqcy27sd0i8xswq3wwiy0ip"; + name = "maces-game"; + }; + packageRequires = [ cl-lib dash emacs ]; + meta = { + homepage = "https://melpa.org/#/maces-game"; + license = lib.licenses.free; + }; + }) {}; macro-math = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "macro-math"; @@ -41816,24 +42560,6 @@ license = lib.licenses.free; }; }) {}; - macros-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "macros-plus"; - version = "20170307.842"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/macros+.el"; - sha256 = "0x9fycqw234s1i0ndy7v0d7vn654id245pi0kwphbqgnga7w3l6p"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/macros+"; - sha256 = "0aihszxsjnc93pbbkmkr1iwzvii3jw8yh1f6dpnjykgvb328pvqi"; - name = "macros-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/macros+"; - license = lib.licenses.free; - }; - }) {}; macrostep = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "macrostep"; @@ -41902,14 +42628,14 @@ pname = "magic-filetype"; version = "20161214.1017"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "magic-filetype.el"; rev = "9a20137474697063898902b43a40423daa4eb64d"; sha256 = "1r16qlm2pqcph0zwy3fhzdjywdrfcwvldqk809vbhw71qkq4a54i"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0d6027c5a66386f7140305a4cde12d66da4dfa09/recipes/magic-filetype"; - sha256 = "0gcys45cqn5ghppkn0rmyvfybprlfz1x6hqr21yv93mf79h75zhg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/magic-filetype"; + sha256 = "0f0j8fgh2gpkarz9308pns0d89wc2dchyim6hbixkdpqzg9gskc3"; name = "magic-filetype"; }; packageRequires = [ emacs s ]; @@ -41921,12 +42647,12 @@ magic-latex-buffer = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "magic-latex-buffer"; - version = "20161231.2300"; + version = "20170530.1705"; src = fetchFromGitHub { owner = "zk-phi"; repo = "magic-latex-buffer"; - rev = "49a9ac6aff0a45aa6630dc0044533b7b3d3be7ad"; - sha256 = "1r9zq16n546xd9i27kiifdl7mwld8jk88rll2h0lbd77ir6wdlfm"; + rev = "c03277d5619d9adcd871f3e6480a1a27985810cb"; + sha256 = "065xfj6asw7px4xmh5isbfs0y6m6818lrds1ca45rhkyfw98d2sb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/07e240ebe71d389d314c4a27bbcfe1f88b215c3b/recipes/magic-latex-buffer"; @@ -41942,12 +42668,12 @@ magit = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, git-commit, lib, magit-popup, melpaBuild, with-editor }: melpaBuild { pname = "magit"; - version = "20170416.1549"; + version = "20171031.1141"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "3c7ac0ed47b8597749f8eaa1b27b9a2029dc2754"; - sha256 = "0hfar78wkn69s54dkn5m4ky6bvx8sh66sszy67nvqpr5ax9y8dkl"; + rev = "5c08d09cdaad506ca94616c59f39982f43f4c12f"; + sha256 = "053ff7gr56chbfg3n6ysn5q13db2rjr5s7nkplkv72hzla381dys"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/68bb049b7c4424345f5c1aea82e950a5e47e9e47/recipes/magit"; @@ -41970,12 +42696,12 @@ magit-annex = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-annex"; - version = "20170408.1426"; + version = "20170913.659"; src = fetchFromGitHub { owner = "magit"; repo = "magit-annex"; - rev = "ae6250aead8f283eac8d6951a249cfc7d85e0b40"; - sha256 = "0n6dhc92z5w67rcfngjzprzbdn42ja263gdqa7fncqq9p66slccq"; + rev = "895c229c2b0d822a4debb302d8638105ecb4ee20"; + sha256 = "0316csgc95dalqmkxj6qlb7inzcg4csfs9n3im1ygswcswpdaajh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/magit-annex"; @@ -42075,12 +42801,12 @@ magit-gitflow = callPackage ({ fetchFromGitHub, fetchurl, lib, magit, magit-popup, melpaBuild }: melpaBuild { pname = "magit-gitflow"; - version = "20160809.1335"; + version = "20170929.124"; src = fetchFromGitHub { owner = "jtatarik"; repo = "magit-gitflow"; - rev = "a2b7b85134784317445faee13d647fb62401ea23"; - sha256 = "1m6hnds12gpj66hcpaxgncapvslh0dml99r1vhg0r8rlmnmf0b9p"; + rev = "cc41b561ec6eea947fe9a176349fb4f771ed865b"; + sha256 = "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dfaeb33dec2c75d21733b6e51d063664c6544e4d/recipes/magit-gitflow"; @@ -42093,6 +42819,27 @@ license = lib.licenses.free; }; }) {}; + magit-imerge = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: + melpaBuild { + pname = "magit-imerge"; + version = "20170805.819"; + src = fetchFromGitHub { + owner = "magit"; + repo = "magit-imerge"; + rev = "1cd0fa843095f4ce8aa4eae89476c116414d060c"; + sha256 = "1h9m0miiv44az4bigg5gjgkpdgdy4hh114kavzjgjhmw5zsg6qfg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e78a5c27eedfc9b1d79e37e8d333c5d253f31a3c/recipes/magit-imerge"; + sha256 = "0rycmbsi2s7rjqfpcv794vhkybav7d8ikzdaxai36szxpg9pzhj4"; + name = "magit-imerge"; + }; + packageRequires = [ emacs magit ]; + meta = { + homepage = "https://melpa.org/#/magit-imerge"; + license = lib.licenses.free; + }; + }) {}; magit-lfs = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-lfs"; @@ -42121,8 +42868,8 @@ src = fetchFromGitHub { owner = "qoocku"; repo = "magit-p4"; - rev = "ef23e89dc504970e78ac9b158731a3eda7d6d7ee"; - sha256 = "1gld0x4y4jshyfr0q8k5icjpgmfrbcfir13sysgzqjz9ssyn2bi5"; + rev = "c87de6d3f10fd35415a0c56e63747eb14ed5a113"; + sha256 = "03gn9xl9mqxb7ways9n9rcl0hc3h41j2nq42q10b0jw5zrzmr9ra"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/440d47ca465845eaa601ca8a6e4b15fc197e522b/recipes/magit-p4"; @@ -42138,12 +42885,12 @@ magit-popup = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "magit-popup"; - version = "20170308.146"; + version = "20171023.926"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "3c7ac0ed47b8597749f8eaa1b27b9a2029dc2754"; - sha256 = "0hfar78wkn69s54dkn5m4ky6bvx8sh66sszy67nvqpr5ax9y8dkl"; + rev = "5c08d09cdaad506ca94616c59f39982f43f4c12f"; + sha256 = "053ff7gr56chbfg3n6ysn5q13db2rjr5s7nkplkv72hzla381dys"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/magit-popup"; @@ -42159,12 +42906,12 @@ magit-rockstar = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-rockstar"; - version = "20161013.544"; + version = "20170703.704"; src = fetchFromGitHub { owner = "tarsius"; repo = "magit-rockstar"; - rev = "bccce1ac8e012f52e29470c1c7d815f9bb1a192b"; - sha256 = "0z411x2w6ldy3b8qbavfvfgvkbjd1rl0m1plr44ynp55awrhj0k2"; + rev = "a65042e3445008b55190f1258ae54bd78e12174b"; + sha256 = "1wbbg9jr9kl69sbq9b9dgwvnplmdzjyanwfcncamw3lfcjfnw1bn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7a20b539cbd38ffa546c1b56b9fac78c0b9457f6/recipes/magit-rockstar"; @@ -42219,6 +42966,27 @@ license = lib.licenses.free; }; }) {}; + magit-tbdiff = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: + melpaBuild { + pname = "magit-tbdiff"; + version = "20170725.1850"; + src = fetchFromGitHub { + owner = "magit"; + repo = "magit-tbdiff"; + rev = "1d1333af9d76b9e832212e9da152397df65f7205"; + sha256 = "1rhjqvdg43n0qa9qdq9rlq4v8msy48y912m9dcjdvsaw45hh8062"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ad97eea866c8732e3adc17551d37a6d1ae511e6c/recipes/magit-tbdiff"; + sha256 = "1wydmw4f1072k8frk8mi8aaky7dndinq8n7kn10q583bjlxgw80r"; + name = "magit-tbdiff"; + }; + packageRequires = [ emacs magit ]; + meta = { + homepage = "https://melpa.org/#/magit-tbdiff"; + license = lib.licenses.free; + }; + }) {}; magit-topgit = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-topgit"; @@ -42240,22 +43008,22 @@ license = lib.licenses.free; }; }) {}; - magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, git-commit, lib, magit, melpaBuild, s, with-editor }: + magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, ghub-plus, lib, magit, melpaBuild, s }: melpaBuild { pname = "magithub"; - version = "20170214.1710"; + version = "20171029.1959"; src = fetchFromGitHub { owner = "vermiculus"; repo = "magithub"; - rev = "0b5207f3097dee40feefea916cdf211734c9fe32"; - sha256 = "143iwmga1ypa6v9086pcfr3n5jvaf1dl9czlld5y7npm4r0pxnbr"; + rev = "2fcd5eebf3e052234950b3b07e43d26ce632a794"; + sha256 = "0k5bxxfj60vr58g7rnj562ls8ijb0ia66fdiqpyffi5sf0wan13i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/magithub"; sha256 = "11par5rncsa866gazdw98d4902rvyjnnwbiwpndlyh06ak0lryab"; name = "magithub"; }; - packageRequires = [ emacs git-commit magit s with-editor ]; + packageRequires = [ emacs ghub-plus magit s ]; meta = { homepage = "https://melpa.org/#/magithub"; license = lib.licenses.free; @@ -42310,8 +43078,8 @@ src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-mainline"; - rev = "0e88f91e49ef27cb77d74f6a8d8140063549d67f"; - sha256 = "06sjwl0bk648wnnrmyh6qgnlqmxypjmy0gkfl6kpv01r8vh7x2q5"; + rev = "2ef3175854f5b6c85f2e1bed26507cdca2f6ad16"; + sha256 = "1zkm51gp1lkaz6n8ixf31rwjqms49mi8qdq10a7nibdzivpj8mg7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/main-line"; @@ -42408,24 +43176,24 @@ license = lib.licenses.free; }; }) {}; - maker-mode = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + makefile-executor = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { - pname = "maker-mode"; - version = "20150116.354"; + pname = "makefile-executor"; + version = "20171017.438"; src = fetchFromGitHub { - owner = "fommil"; - repo = "maker-mode"; - rev = "335c43b08eff589040129dae1ea13c88793b069e"; - sha256 = "0w3kar52yf8clf9801c4jzfrixi10clc8fs8ni2d4pzhdwwca2zw"; + owner = "thiderman"; + repo = "makefile-executor.el"; + rev = "a950438c93dc2fdcb867ac25174c773deda95aff"; + sha256 = "1vpa24k8gm9zr8mpam76k1wbzc1zama5s5ch1f8c1h539l8i8cl9"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ba7edfa6ab6b93c346f92859db706acb3fd5fc6e/recipes/maker-mode"; - sha256 = "03q09jxmhwqy7g09navj08z9ir0rbh7w26c1av7hwhmq4i6xwg8a"; - name = "maker-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/08f8b4d680e4907dbd8ea46a75d98aa0e93c2bb9/recipes/makefile-executor"; + sha256 = "0889rq2a7ks2ynyq91xsa2kpzgd72kzbjxx0b34w8faknpj3b6hi"; + name = "makefile-executor"; }; - packageRequires = [ dash s ]; + packageRequires = [ dash emacs f s ]; meta = { - homepage = "https://melpa.org/#/maker-mode"; + homepage = "https://melpa.org/#/makefile-executor"; license = lib.licenses.free; }; }) {}; @@ -42453,12 +43221,12 @@ malinka = callPackage ({ cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, rtags, s }: melpaBuild { pname = "malinka"; - version = "20170410.242"; + version = "20170723.1635"; src = fetchFromGitHub { owner = "LefterisJP"; repo = "malinka"; - rev = "8ab9e0bcefb122ef5b931284c6cc329d8f8aaa82"; - sha256 = "0pasdzgikp8rylxxyfmxd0dd4gfjklgrsd6v1idv8cd0955gbrd8"; + rev = "8072d159dae04f0f1a87b117ff03f9f1eb33f6cb"; + sha256 = "0s5dcm11nw88j1n4asqpm92z0csjv3jvh06f4qqghfvcym8qv44h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/malinka"; @@ -42579,12 +43347,12 @@ mandm-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mandm-theme"; - version = "20170304.1401"; + version = "20170925.321"; src = fetchFromGitHub { owner = "choppsv1"; repo = "emacs-mandm-theme"; - rev = "cd1505c8bcff0a3de821f0b419f897f4b0378b01"; - sha256 = "1spj3mlydwnngccrny27p8s3m75n039hipqvzqskdg7p1hvr6m59"; + rev = "078d6d6f11bd48193c5de590cfb0e3d0d687ffc9"; + sha256 = "070280438388q57lpzvd5wdk16abmxixiq01n68hdskfcipdkn2d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/mandm-theme"; @@ -42600,12 +43368,12 @@ mandoku = callPackage ({ fetchFromGitHub, fetchurl, git, github-clone, lib, magit, melpaBuild, org }: melpaBuild { pname = "mandoku"; - version = "20170325.1917"; + version = "20171002.12"; src = fetchFromGitHub { owner = "mandoku"; repo = "mandoku"; - rev = "ab6cccaccea2d0d26fc461942b4ae3ea65bd8f39"; - sha256 = "0k4dcm4gkjy82nhcg00wgk2hipzbzvrwn8qyvjjn5r6h1jcpmfb3"; + rev = "77647573331c602847b06b9e21de69f72cd7bad5"; + sha256 = "0yqxsls9phvd4dgzb908xds4x437rqpm3ddy07pq3qq7ghri1cnv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1aac4ae2c908de2c44624fb22a3f5ccf0b7a4912/recipes/mandoku"; @@ -42618,6 +43386,35 @@ license = lib.licenses.free; }; }) {}; + mandoku-tls = callPackage ({ emacs, fetchFromGitHub, fetchurl, github-clone, helm, helm-charinfo, hydra, lib, mandoku, melpaBuild, org }: + melpaBuild { + pname = "mandoku-tls"; + version = "20170822.1138"; + src = fetchFromGitHub { + owner = "mandoku"; + repo = "mandoku-tls"; + rev = "82b1b39305da3259b53a2200260713500d7a9ec5"; + sha256 = "0xkycqwv5bczz111zlfai2y3m9shwv237dhgyjmhd1j6blpp59jw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c97d3f653057eab35c612109792884334be556fe/recipes/mandoku-tls"; + sha256 = "0zny1l548rvjsbbzj47wysz6gk1sqxvpj215r3w84vw5dyrn78bz"; + name = "mandoku-tls"; + }; + packageRequires = [ + emacs + github-clone + helm + helm-charinfo + hydra + mandoku + org + ]; + meta = { + homepage = "https://melpa.org/#/mandoku-tls"; + license = lib.licenses.free; + }; + }) {}; map-progress = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "map-progress"; @@ -42726,12 +43523,12 @@ markdown-edit-indirect = callPackage ({ edit-indirect, emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: melpaBuild { pname = "markdown-edit-indirect"; - version = "20170210.1504"; + version = "20170607.1244"; src = fetchFromGitHub { owner = "emacs-pe"; repo = "markdown-edit-indirect.el"; - rev = "980d8bf3a123a72aef18f608e99be3472be100c3"; - sha256 = "1idsh6gsm7kaz7i8kv3s326qxnd2j3nmwn8ykbnfwracm6him3qf"; + rev = "a789320354eab2b2275a308c38b1390e6d2cc41b"; + sha256 = "067rp6h2wax242zmykz5iv2v30cj327dh9vz6c69im02lsn65ib3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fa4da9d5c63da3bd777101098168696f5c4d3fbc/recipes/markdown-edit-indirect"; @@ -42747,12 +43544,12 @@ markdown-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "markdown-mode"; - version = "20170317.1202"; + version = "20171031.1725"; src = fetchFromGitHub { owner = "jrblevin"; repo = "markdown-mode"; - rev = "0f88075c9091b4120fac96aaf091ec647d2ea555"; - sha256 = "0cjchpnfwj06y4whnlj3a005ckn3l6ylpv1zmhxv5233znnp6zhs"; + rev = "7a62259a22ccbf59b0132d077348ee489edf5d1e"; + sha256 = "137xkm76k6faak478hmnr6yrhymbfln0xs0ninzp4iy57kxyx9d9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/74610ec93d4478e835f8b3b446279efc0c71d644/recipes/markdown-mode"; @@ -42810,12 +43607,12 @@ markdown-preview-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild, uuidgen, web-server, websocket }: melpaBuild { pname = "markdown-preview-mode"; - version = "20161211.1443"; + version = "20170820.459"; src = fetchFromGitHub { owner = "ancane"; repo = "markdown-preview-mode"; - rev = "65f48df07c87d37275cc6a135741df4b585f1836"; - sha256 = "0gkfwm7zxwdi7x7xd6m9sl9q1p5f2q8mxryq6cd4xldbvbcki71f"; + rev = "134fd336750b8b3165bc906f0a7161c25eb6f589"; + sha256 = "0j1jdvmn8psarjdl1j4d3rsjmnb3gcissh2l78xj2c8vckmp2g24"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d3c5d222cf0d7eca6a4e3eb914907f8ca58e40f0/recipes/markdown-preview-mode"; @@ -42838,12 +43635,12 @@ markdown-toc = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild, s }: melpaBuild { pname = "markdown-toc"; - version = "20170224.2350"; + version = "20170711.1249"; src = fetchFromGitHub { owner = "ardumont"; repo = "markdown-toc"; - rev = "0edc303871517da67483119f2b1969055e6e0608"; - sha256 = "0fnb2qw7p5mmv9nbkjy2iw3whi40gxwxbdfwgadbypzk0yvh6a3v"; + rev = "7038f4f6d5c2bc7e4aea89699a607ac2b7dd16a8"; + sha256 = "1kvf30ib1kxp29k1xwixkq6l4jjr3q3g1wpvh9yfzk5ld97zmry1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4db1e90be8e34d5ad0c898be10dfa5cd95ccb921/recipes/markdown-toc"; @@ -42877,22 +43674,22 @@ license = lib.licenses.free; }; }) {}; - markup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + markup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "markup"; - version = "20130207.1309"; + version = "20170420.429"; src = fetchFromGitHub { owner = "leoc"; repo = "markup.el"; - rev = "5ff4874ce897db146f5fd2b3d32147a0d404e1e5"; - sha256 = "1i95b15mvkkki2iq8hysdr7jr1d5nix9jjkh7jz0alvaybqlsnqi"; + rev = "876da2d3f23473475bb0fd0a1480ae11d2671291"; + sha256 = "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a75c955ad6b2f68b8933329e545625d948f6f8f4/recipes/markup"; sha256 = "0yw4b42nc2n7nanqvj596hwjf0p4qc7x6g2d9g5cwi7975iak8pf"; name = "markup"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/markup"; license = lib.licenses.free; @@ -42943,12 +43740,12 @@ marshal = callPackage ({ eieio ? null, fetchFromGitHub, fetchurl, ht, json ? null, lib, melpaBuild }: melpaBuild { pname = "marshal"; - version = "20160807.1954"; + version = "20171018.932"; src = fetchFromGitHub { owner = "sigma"; repo = "marshal.el"; - rev = "d5b6fdd97159b22d5a9dbc3b0db18a04089b3f2f"; - sha256 = "1pix1cz8zv3kgf103ml1y42a0l2hvakbykfpbyx81z4nw7n958lf"; + rev = "406ea2f60c7e4aeafd384b8d6696d726b3d8f611"; + sha256 = "1mr5p2yiad1k15byrlk0a784kj7rvibpn4li5phk4rnm0zg1xy9s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/203f2061c5c7d4aefab3175de5e0538f12158ee3/recipes/marshal"; @@ -42982,6 +43779,27 @@ license = lib.licenses.free; }; }) {}; + mastodon = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mastodon"; + version = "20170619.1050"; + src = fetchFromGitHub { + owner = "jdenen"; + repo = "mastodon.el"; + rev = "e08bb5794762d22f90e85fd65cef7c143e6b9318"; + sha256 = "0bil0xxava04pd4acjqm3bfqm1kjdk4g0czd4zqvacsp5c9sl2qp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/809d963b69b154325faaf61e54ca87b94c1c9a90/recipes/mastodon"; + sha256 = "1bsyf4j6zs9gin0k7p22yv5gaqd6m3vdc2fiagfbs7gxsmhb6p4i"; + name = "mastodon"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/mastodon"; + license = lib.licenses.free; + }; + }) {}; material-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "material-theme"; @@ -43027,12 +43845,12 @@ math-symbols = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "math-symbols"; - version = "20151121.1642"; + version = "20170818.759"; src = fetchFromGitHub { owner = "kawabata"; repo = "math-symbols"; - rev = "666b1f00d9e106cf2a3a7d58c2262fe9a1404764"; - sha256 = "1chyxi096krjbi9zgbrnrkvwgmn4wygnia9m57m0jh4arlbm28la"; + rev = "3f8b466f002e1b28ddbe9a6f236c9a1352adb17d"; + sha256 = "0r63acgicb43p05gsiz98m7077sj72c1miz18fi8qbzi02p9qjr7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d7b0799bddbbbecd12bc1589b56a6250acf76407/recipes/math-symbols"; @@ -43128,24 +43946,6 @@ license = lib.licenses.free; }; }) {}; - mb-depth-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "mb-depth-plus"; - version = "20170307.844"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/mb-depth+.el"; - sha256 = "1vqminlfc146c8wr00ck7drs5kf92fvdmhyqyh2hj6394cvqs7w9"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/mb-depth+"; - sha256 = "031hh227rh7l818p3di4h34i4698yynw5g9a5sl2hj47c0734q6w"; - name = "mb-depth-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mb-depth+"; - license = lib.licenses.free; - }; - }) {}; mb-url = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mb-url"; @@ -43191,12 +43991,12 @@ mbo70s-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mbo70s-theme"; - version = "20141122.642"; + version = "20170808.615"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-mbo70s-theme"; - rev = "d50414697760896dbe6b06d2a00c271c16e0e4a2"; - sha256 = "1vr85fdlb4zwgid1v00ndppla9fqqk25g2x2f5alm69pfqssr75z"; + rev = "bed3db8965708ed4e9482b224a9b084765c052f2"; + sha256 = "19hha9xwfqvdgsws69x0mcm93yfllp44hdl1xw9zlhj8f4ihizh5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b8d0c1050b3319e136fe75903ae3612a52790189/recipes/mbo70s-theme"; @@ -43233,12 +44033,12 @@ mc-extras = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, multiple-cursors }: melpaBuild { pname = "mc-extras"; - version = "20150218.234"; + version = "20170824.2239"; src = fetchFromGitHub { owner = "knu"; repo = "mc-extras.el"; - rev = "71cf966be06d9c74e781a87bb30fa4cf657ee852"; - sha256 = "0252wdq4sd6jhzfy0pn3gdm6aq2h13nnp8hvrn1mpml9x473a5n1"; + rev = "f0ba639e9b18cc56e80ae45bbb2b694dbad9171a"; + sha256 = "0d6ncj6zd0lfsdpffbh3l25ycjw5hn0rwi5znp5hpl06b1ycyk4s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/12747bb8603ebc09ce0873f3317a99e34d818313/recipes/mc-extras"; @@ -43275,12 +44075,12 @@ mediawiki = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mediawiki"; - version = "20170411.1921"; + version = "20170812.2255"; src = fetchFromGitHub { owner = "hexmode"; repo = "mediawiki-el"; - rev = "d4a00fa6873d09920d94b7c35eabe08c715b906d"; - sha256 = "1l0pfgjv6f5rlqgn8bnc81pzzf743z7ij5qharhxh860248gy41k"; + rev = "8473e12d1839f5287a4227586bf117dad820f867"; + sha256 = "03rpj3yrk3i1l9yjnamnx38idn6y4zi9zg53bc83sx3g2b4m5v04"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/865e0ba1dbace58784181d214000d090478173bd/recipes/mediawiki"; @@ -43296,12 +44096,12 @@ meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }: melpaBuild { pname = "meghanada"; - version = "20170412.2054"; + version = "20170723.1724"; src = fetchFromGitHub { owner = "mopemope"; repo = "meghanada-emacs"; - rev = "fa20a6ae2e0f0ed3437181f2dc233b8c2a9dca6e"; - sha256 = "1awi879ch0ms2js1v1kb0c0jv7iicgj8qrfj9xlb3j4wzmxi3vcw"; + rev = "af65a0c60bbdda051e0d8ab0b7213249eb6703c5"; + sha256 = "08sxy81arypdj22bp6pdniwxxbhakay4ndvyvl7a6vjvn38ppzw8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada"; @@ -43338,12 +44138,12 @@ mellow-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mellow-theme"; - version = "20141115.2302"; + version = "20170808.617"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-mellow-theme"; - rev = "ab72898824af6452d0cefea16e49491e42b660d1"; - sha256 = "0bilwhvprzk634sk5hnxilrvrl0yv593swzznch0p38hqxl585ld"; + rev = "2bdf18f05f5212b6f269d9a94afe2cf201766891"; + sha256 = "0cj9lkqgiaq1s2k9ky93jgv5pfbmjznsd54r3iqkiy1zshpkir68"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/mellow-theme"; @@ -43377,36 +44177,15 @@ license = lib.licenses.free; }; }) {}; - memento = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "memento"; - version = "20150823.339"; - src = fetchFromGitHub { - owner = "ehartc"; - repo = "memento"; - rev = "35733b79101f694346792a57df686cbffe64bd79"; - sha256 = "0pjqax3pi6pb650yb8iwa4brwwl6cdka7jym3cfkpppyy782dm0q"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3bee3cd6b491bf8813ec2332794b2548603014f4/recipes/memento"; - sha256 = "0f8ajhj677r2kxszmad6h1j1b827ja0vaz2my1vx145y3gf160b8"; - name = "memento"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/memento"; - license = lib.licenses.free; - }; - }) {}; memoize = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "memoize"; - version = "20130421.1234"; + version = "20170720.1802"; src = fetchFromGitHub { owner = "skeeto"; repo = "emacs-memoize"; - rev = "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75"; - sha256 = "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"; + rev = "636defefa9168f90bce6fc27431352ac7d01a890"; + sha256 = "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6cc9be5bbcff04de5e6d3bb8c47d202fd350989b/recipes/memoize"; @@ -43461,33 +44240,15 @@ license = lib.licenses.free; }; }) {}; - menu-bar-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "menu-bar-plus"; - version = "20170412.1036"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/menu-bar+.el"; - sha256 = "1rxy2yp1f5fi5wk8lg04dmg943131rvvqiif1k18n0gajg1x8hxx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/menu-bar+"; - sha256 = "181jxjnzdckmvpsdknhm21xwimvsp0qxn8azfn58dz41gl4xcg90"; - name = "menu-bar-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/menu-bar+"; - license = lib.licenses.free; - }; - }) {}; merlin = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "merlin"; - version = "20170204.628"; + version = "20170917.430"; src = fetchFromGitHub { owner = "the-lambda-church"; repo = "merlin"; - rev = "89f9643c08211a770454919551a7fd8605d1fca8"; - sha256 = "13x0zjd297ssqmbvba32zk2p588kznd5ag4wh3nqb6fdgyzy4d63"; + rev = "a5dbf8e321ff162476555e62264468dd6f55c279"; + sha256 = "0mq4ddr3g64dd4bhq812hb5xvlkswfmib1nw34f3m8sghmaxcd5z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b1b9bfd3164e62758dc0a3362d85c6627ed7cbf8/recipes/merlin"; @@ -43503,12 +44264,12 @@ meson-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "meson-mode"; - version = "20170416.247"; + version = "20170901.1135"; src = fetchFromGitHub { owner = "wentasah"; repo = "meson-mode"; - rev = "61d8177c3e3c195b32f7420d769a0860a873b7d9"; - sha256 = "0qqwp5mn11fm8f13nfn72c7bmrxa49jqmacga8ipcla3gx59vhs2"; + rev = "212d9f38a08074f1cb6e914e12b60bc52dcb8bee"; + sha256 = "1kv7413y5530frs1nrp0nl40h9j0idwp7vlg761r260200m8sl3v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4702a31ffd6b9c34f96d151f2611a1bfb25baa88/recipes/meson-mode"; @@ -43521,24 +44282,6 @@ license = lib.licenses.free; }; }) {}; - message-x = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "message-x"; - version = "20151029.718"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/message-x.el"; - sha256 = "05ic97plsysh4nqwdrsl5m9f24m11w24bahj8bxzfdawfima2bkf"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b7bf124ec30fa5551b31c0e0d39be234f19e2e81/recipes/message-x"; - sha256 = "0z12alizwrqp5f9wq3qllym9k5xljh904c9qhlfhp9biazj6yqwj"; - name = "message-x"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/message-x"; - license = lib.licenses.free; - }; - }) {}; messages-are-flowing = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "messages-are-flowing"; @@ -43546,8 +44289,8 @@ src = fetchFromGitHub { owner = "legoscia"; repo = "messages-are-flowing"; - rev = "17a0d91658390ba8d38f325b3ece380e07e3cb49"; - sha256 = "0600is9cynvppdy9vrnr1c0m3cyxim0ha4gq4wbhw9h0cvkz8i1b"; + rev = "ef879726957c850c3a5afd7f1118604991e37e32"; + sha256 = "1mryk48z92r4j8f3qg0j0q5iygv7vnk1k0wgza5pq6bhrl5w13hq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/messages-are-flowing"; @@ -43563,12 +44306,12 @@ meta-presenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "meta-presenter"; - version = "20160924.2206"; + version = "20170425.1934"; src = fetchFromGitHub { owner = "myTerminal"; repo = "meta-presenter"; - rev = "0b7f3d47e34fdd0c150da55e58ec2bfc274930a8"; - sha256 = "06s93i46rm91i23in51mf7ynl37c90f2gl52ykv48p41dyv1kg6v"; + rev = "e882ac7f7658dd9507aca0ff88c88fcf74618252"; + sha256 = "0h8zg2nvb0yn0z8xv1101r8rjxgs05k08j3n71inr7n118sa98bj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b73e9424515b3ddea220b786e91c57ee22bed87f/recipes/meta-presenter"; @@ -43581,27 +44324,6 @@ license = lib.licenses.free; }; }) {}; - metafmt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "metafmt"; - version = "20160221.855"; - src = fetchFromGitHub { - owner = "lvillani"; - repo = "metafmt"; - rev = "b624ba1ac46cdbeddb0cfe920dd44dcab3fdb529"; - sha256 = "1r4v06pyi7y7gp3w0p3xfz8hf807p7i4frgws54naagzihww06y6"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7a53f740fb7a58cd6339b301d0de8c543b61f6a5/recipes/metafmt"; - sha256 = "1ca102al7r3k2g92b4jkqv53crnmxy3z7cz31w1rprf41s69mn75"; - name = "metafmt"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/metafmt"; - license = lib.licenses.free; - }; - }) {}; metalheart-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "metalheart-theme"; @@ -43647,12 +44369,12 @@ metaweblog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, xml-rpc }: melpaBuild { pname = "metaweblog"; - version = "20141130.605"; + version = "20170626.750"; src = fetchFromGitHub { owner = "punchagan"; repo = "metaweblog"; - rev = "c8b50a6edf0fd2f396570c9a1c2ef8cd207606fb"; - sha256 = "06mbdb4zb07skq1jpv05hr45k5x96d9hgkb358jiq0kfsqlrbbb4"; + rev = "c039d1ffb618d19d160bde835fab389e9a7433a3"; + sha256 = "116m0v73v636xvsq46i3qhd4wy3x7zk3k8ffmsx36ksphn9kwx0k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/metaweblog"; @@ -43668,12 +44390,12 @@ mew = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mew"; - version = "20161224.1535"; + version = "20170508.22"; src = fetchFromGitHub { owner = "kazu-yamamoto"; repo = "Mew"; - rev = "8138c83339071884a2d6c5365a088ba8da4a0fc0"; - sha256 = "0yvqarinibrg7f362gg1i3r2wgjmzzv0j71zcrp9id30gfwbs6z3"; + rev = "36b36a154dab22e112cc19675cfd73478f2a5956"; + sha256 = "01wqa5pf6zjxgsgzqw0pnp278vfd7livfgyqvc24xfqr519k2ifq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/362dfc4d0fdb3e5cb39564160de62c3440ce182e/recipes/mew"; @@ -43710,12 +44432,12 @@ mhc = callPackage ({ calfw, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mhc"; - version = "20160704.633"; + version = "20171016.335"; src = fetchFromGitHub { owner = "yoshinari-nomura"; repo = "mhc"; - rev = "d5f7c5abe90831248581c26ef3abfec70b2c2b9c"; - sha256 = "0f5ilbl6dc5hf9s4lfp027qjdlwd0kzb7sni7lda6v5597vhsnb4"; + rev = "03a50a7dd5f90fb981b72e4b9e9385e4d1fe3be3"; + sha256 = "17p6gkf6xmx6sflzd3pyc3p3x7ma8p497hmj1yc7w863kqm8jclk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d8d3efa0fcd6cd4af94bc99b35614ef6402cbdba/recipes/mhc"; @@ -43731,16 +44453,16 @@ mic-paren = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mic-paren"; - version = "20150110.1816"; + version = "20170731.1207"; src = fetchFromGitHub { - owner = "emacsmirror"; + owner = "emacsattic"; repo = "mic-paren"; - rev = "d0332fae515af2fa461d19afa7f933588afc327f"; - sha256 = "0l7xfana2cb894w5qi6wwx7w9k89c3i8k40fpsd93sm3hgi5ryii"; + rev = "d0410c7d805c9aaf51a1bcefaaef092bed5824c4"; + sha256 = "0f24ibzgra94bwal8b0dpjxa11n42gkmanqswfnjhlvx052v9dxr"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/mic-paren"; - sha256 = "042dzp0nal18nxq94qlwwksh0nnypsyc0yykmc6l3kayp9pv4hw7"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6f0e54eac31fbbce9a778fb654f07e11aaaa46ca/recipes/mic-paren"; + sha256 = "17j0b8jyr0zx6zds2dz5fzvarm2wh8l5hxds2s90kh5z0kk23r07"; name = "mic-paren"; }; packageRequires = []; @@ -43773,12 +44495,12 @@ midje-mode = callPackage ({ cider, clojure-mode, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "midje-mode"; - version = "20150921.1750"; + version = "20170808.2103"; src = fetchFromGitHub { owner = "dnaumov"; repo = "midje-mode"; - rev = "07fc6cee4f5d6aa4187636266b9681a3e455ab6b"; - sha256 = "1cigsr0hkbi1860w38k2j8fw6j4w43pgv2bpkmdsifbqy6l8grpg"; + rev = "10ad5b6084cd03d5cd268b486a7c3c246d85535f"; + sha256 = "0nag9ks7qbg40h9z954v42x8zi65wbgfhviwvxvb2bmbzv4m4pbs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/midje-mode"; @@ -43877,12 +44599,12 @@ mini-header-line = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mini-header-line"; - version = "20161108.137"; + version = "20170621.521"; src = fetchFromGitHub { owner = "ksjogo"; repo = "mini-header-line"; - rev = "d8c3b6e93ad631d22564c273f61463dc9ded49ba"; - sha256 = "07r231xz45k1b3pzix308jn24s0gl8vgdbcd4vdh6p154znvcbm5"; + rev = "73b6724e0a26c4528d93768191c8aa59e6bce2e5"; + sha256 = "187xynmpgkx498an246ywrqdhyyp2ag1l7yxnm0x0rbfgw67q5j1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/122db5436ff9061713c0d3d8f44c47494067843e/recipes/mini-header-line"; @@ -44028,8 +44750,8 @@ src = fetchFromGitHub { owner = "arthurnn"; repo = "minitest-emacs"; - rev = "2997ba81456f2a0f3e25b6555b491586865ebb61"; - sha256 = "10f1caszcas39g8kz0hfx1gq1jbpcnb5wwd1c262l9lwvla85nyl"; + rev = "1aadb7865c1dc69c201cecee275751ecec33a182"; + sha256 = "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/41b2e55c0fe48267dc4f55924c782c6f934d8ca4/recipes/minitest"; @@ -44045,12 +44767,12 @@ minizinc-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "minizinc-mode"; - version = "20151214.558"; + version = "20170708.358"; src = fetchFromGitHub { owner = "m00nlight"; repo = "minizinc-mode"; - rev = "98064f098e6871382614fcf3c99520f7a526af0a"; - sha256 = "0808cl5ixvmhd8pa6fc8rn7wbxzvqjgz43mz1pambj89vbkzmw1c"; + rev = "b621b9e106edbe094bcc8e609d9398a60c2ac8b5"; + sha256 = "15d90fsrpc7qcnblgwjcqrqyyphbfjvdnkwj6dnv79d0m4n58m1c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fc86b4ba54fca6f1ebf1ae3557fe564e05c1e382/recipes/minizinc-mode"; @@ -44063,24 +44785,6 @@ license = lib.licenses.free; }; }) {}; - minor-mode-hack = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "minor-mode-hack"; - version = "20141226.1220"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/minor-mode-hack.el"; - sha256 = "0vwvvhzqiad82qvfwygb2arq1mdvh1lj6q2as0a92fg1vc95qcb0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/df182bfd8272f3ded761c90826c8cfe6bfd1a48b/recipes/minor-mode-hack"; - sha256 = "1f2wy25iphk3hzjy39ls5j04173g7gaq2rdp2grkawfhwx0ld4pj"; - name = "minor-mode-hack"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/minor-mode-hack"; - license = lib.licenses.free; - }; - }) {}; mip-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mip-mode"; @@ -44123,39 +44827,24 @@ license = lib.licenses.free; }; }) {}; - misc-cmds = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "misc-cmds"; - version = "20170307.847"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/misc-cmds.el"; - sha256 = "1w58z2j95sycgkakgb9anlc3q73v77whspi9a4j1kf6lmcbpyms8"; + mixed-pitch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mixed-pitch"; + version = "20170723.955"; + src = fetchFromGitHub { + owner = "jabranham"; + repo = "mixed-pitch"; + rev = "6a4fbb9c48fc345d4d40228e8b686f6f2e585f8a"; + sha256 = "14hpcx75rb41fya8i8qk6cg388wgkhhxnj64ywar3pycngm8jwl9"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/misc-cmds"; - sha256 = "0bylb84icddgznmim18fwq1mhh3qz8yh8ch6lpadf9p3h420qgcl"; - name = "misc-cmds"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/20e85b11dc864500d44b25e36c5e7c4c67c1ebe2/recipes/mixed-pitch"; + sha256 = "1910x5mssxmzzdmllmbqd3ihx0x8s50qf5dx86wal7aja9rris1z"; + name = "mixed-pitch"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/misc-cmds"; - license = lib.licenses.free; - }; - }) {}; - misc-fns = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "misc-fns"; - version = "20170307.848"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/misc-fns.el"; - sha256 = "0jjmd33z36dikkbskskgbdv8pflkwaxn4ifajq4ghrdprdhm6gbm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c2cbbe5a718ec961982a7f65de8f6ec1c9513696/recipes/misc-fns"; - sha256 = "1spjbkcac33lyfsgkd6z186a3432x9nw3akmx194gaap2863xcam"; - name = "misc-fns"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/misc-fns"; + homepage = "https://melpa.org/#/mixed-pitch"; license = lib.licenses.free; }; }) {}; @@ -44224,12 +44913,12 @@ mmm-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mmm-mode"; - version = "20170220.1548"; + version = "20171004.336"; src = fetchFromGitHub { owner = "purcell"; repo = "mmm-mode"; - rev = "631e7f12d1641cb40e650134f35f2680a1a310a1"; - sha256 = "0lwvh7f6hmjfdgidshqz25pihyd5bg87y23mbhkjb7qkdjas07wb"; + rev = "7661968fa6974996e58dfa28da33bca0cbde777d"; + sha256 = "066qp884qw0bqcglncxvag89i1z5rmqjc73y7ksr7ll3309y1969"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/mmm-mode"; @@ -44245,12 +44934,12 @@ mmt = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mmt"; - version = "20170319.434"; + version = "20170519.4"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "mmt"; - rev = "f7db836a10720ee50217012e7e2597ebcf624f90"; - sha256 = "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"; + rev = "5cc5d1ee3efe675fa49d62fe0ae6b483d7ad9392"; + sha256 = "1vkj28351si30l3szjpkdgjlmp2vfjp6jxk3dvlbxicfqd1k823p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d1137bb53ecd92b1a8537abcd2635602c5ab3277/recipes/mmt"; @@ -44263,19 +44952,19 @@ license = lib.licenses.free; }; }) {}; - mo-git-blame = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + mo-git-blame = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mo-git-blame"; version = "20160129.959"; - src = fetchFromGitHub { + src = fetchFromGitLab { owner = "mbunkus"; repo = "mo-git-blame"; rev = "254a675eb794cdbbdef9fa2b4b7bb510b70089c0"; sha256 = "1dh92hzpicfvrlg6swrw4igwb771xbsmsf7hxp1a4iry4w8dk398"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b72b67897c349d48e8fd47a4b33055738ed5d89/recipes/mo-git-blame"; - sha256 = "1dp9pxhggappb70m5hyp8sxlnh06y996adabq7x6qvm745mk6f0x"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a784f931849ca836557390999b179ef9f6e775f3/recipes/mo-git-blame"; + sha256 = "14ngwwgzrnnysq1k1k681b5i06ad8r3phhgpvn5alp2fj3il03l3"; name = "mo-git-blame"; }; packageRequires = []; @@ -44329,12 +45018,12 @@ mocha = callPackage ({ f, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "mocha"; - version = "20170320.1128"; + version = "20171016.903"; src = fetchFromGitHub { owner = "scottaj"; repo = "mocha.el"; - rev = "55f1e6afd100891ffd7008f5c5efbc5a9ab1c22d"; - sha256 = "1jqygkn02vawynfnymvnjnglj7gscfinwyk7vbkbh2dp932wsl02"; + rev = "0f74ecf500f833f7f959187a375dacdd33d4d569"; + sha256 = "03ixygw28hzn00136747mv2r3vii3n0gif1wqgg3k7ajh7c45f5b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/39c26134ba95f277a4e9400e506433d96a695aa4/recipes/mocha"; @@ -44392,12 +45081,12 @@ modalka = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "modalka"; - version = "20161231.1639"; + version = "20170519.32"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "modalka"; - rev = "1831129c063fbef5f5378389281ecccca095b9e8"; - sha256 = "0jyczwam7xipw2qrk27wph3j4jd9gbkawvnsiad5xr1h9d019a41"; + rev = "88935a26318a574adeeb2301ae8d010f0102b1d3"; + sha256 = "1zibawwflf2wx7hzg2ld7qvmlpljfd6nb86998ckzbx75s5yb20a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fa0a02da851a603b81e183f461da55bf4c71f0e9/recipes/modalka"; @@ -44452,51 +45141,15 @@ license = lib.licenses.free; }; }) {}; - modeline-char = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "modeline-char"; - version = "20170307.854"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/modeline-char.el"; - sha256 = "1c6ij1c0d6r9chzwqcpgdjq1rb2h0m09fpck9rc9rg5jy7fgdc0d"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/modeline-char"; - sha256 = "0ksi5vfcwbyhgpp59qdl7l536zw2rd33xf4r2gihcx2g2k52h2w9"; - name = "modeline-char"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/modeline-char"; - license = lib.licenses.free; - }; - }) {}; - modeline-posn = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "modeline-posn"; - version = "20170307.856"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/modeline-posn.el"; - sha256 = "1cpab6k0p65nmw78y5v4lbpxw6pczkzk46zmkc76pi55yjpw6pbm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c62008950ea27b5a47363810f57063c1915b7c39/recipes/modeline-posn"; - sha256 = "0dngfcbcdh22fl6nd47dhg9z9iivj67six67zjr9j1cbngp10dwk"; - name = "modeline-posn"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/modeline-posn"; - license = lib.licenses.free; - }; - }) {}; modern-cpp-font-lock = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "modern-cpp-font-lock"; - version = "20170224.114"; + version = "20170625.1306"; src = fetchFromGitHub { owner = "ludwigpacifici"; repo = "modern-cpp-font-lock"; - rev = "f1a4413c40e933b8b5b380860656b1ef5663f121"; - sha256 = "0hb40cp33fpgfs4c5g8phhvv9mbykygybidh73pbrcacyiz4g6jc"; + rev = "b0a45dc1d7c49854988103c2570c783f46f44566"; + sha256 = "1gh7l6c4xznpjialbmswhfm1cmmbzkl2s6acjcway0nb52rshgr6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4bfc2386049adfe7a8e20da9b69fb73d6cb71387/recipes/modern-cpp-font-lock"; @@ -44533,12 +45186,12 @@ moe-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "moe-theme"; - version = "20170111.1838"; + version = "20170914.2111"; src = fetchFromGitHub { owner = "kuanyui"; repo = "moe-theme.el"; - rev = "70e71ef7404cc5c38254771695eee221090d5110"; - sha256 = "1dpcffb6pyggg2lj7n9lnxyg2clwm4q7hnxvgc87r6b61vjr3a20"; + rev = "b8f0206614ab40ffb75e50ce6c38675fb9c7cf2e"; + sha256 = "0pn3a1rrj7ycxh91x3q008b6rmq7rbl8ir6diqzqfp6y465pn2w2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4efefd7edacf90620436ad4ef9ceb470618a8018/recipes/moe-theme"; @@ -44621,8 +45274,8 @@ src = fetchFromGitHub { owner = "ananthakumaran"; repo = "monky"; - rev = "190079ea4d22a4e875a3b2892e58737344cb2b26"; - sha256 = "01d7mbpkkb36lk6g9gkxlj3b58c23nqfmh7m5qq7xz90kd42316g"; + rev = "62fc907cb541aef1c253d6bcd60447156e6f064c"; + sha256 = "1qxykx8ccm4k95ncnzy8pspqgmz29pvqha5dg8al4zq20bms98s5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9b33d35e3004f3cc8a5c17aa1ee07dd21d2d46dc/recipes/monky"; @@ -44642,12 +45295,12 @@ src = fetchFromGitHub { owner = "fxn"; repo = "monochrome-theme.el"; - rev = "58fb4cf28c407f059b78bfd72c4dbced07638dd6"; - sha256 = "1sxhpvxapzgrwvzibkg7zd3ppmfcz5rhrbvg73b8rggjg4m5snyf"; + rev = "bfca67fe7365310bc47ae9ca96c417caada54896"; + sha256 = "0jvsss38rgry37dnshxbqxcj7qh1q6iyza58kix47h5wbnrpvszn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/bd753349134f4db6f80b6e86d4facd1704e87ccc/recipes/monochrome-theme"; - sha256 = "191ikqns1sxcz6ca6xp6mb2vyfj19x19cmcf17snrf46kmx60qk9"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d00b78ead693e844e35c760fe2c39b8ed6cb0d81/recipes/monochrome-theme"; + sha256 = "0cq2clliwcwnn1spz1w6y5qw1lgqznw212rcc4q6f1kslq0jyk5x"; name = "monochrome-theme"; }; packageRequires = []; @@ -44659,12 +45312,12 @@ monokai-alt-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "monokai-alt-theme"; - version = "20170325.1430"; + version = "20170630.1348"; src = fetchFromGitHub { owner = "dawidof"; repo = "emacs-monokai-theme"; - rev = "584aaf88b83a40bbbfeb6a7c89c5feecebf5a52b"; - sha256 = "1709f2gf8gdz5ppb0k3gxcg4z0r7kgcm2hpymji9gnag87nnx1m6"; + rev = "f342b6afc31f929be0626eca2d696ee9fab78011"; + sha256 = "1lgsqrwf21b0rh4x8nmj08a46ld7dkq4jhwxi1fi7a9xhmi2yd4i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6ff05515c2f3bd80cb8d7de9afc8fd983e62ad91/recipes/monokai-alt-theme"; @@ -44680,12 +45333,12 @@ monokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "monokai-theme"; - version = "20170314.1612"; + version = "20171013.236"; src = fetchFromGitHub { owner = "oneKelvinSmith"; repo = "monokai-emacs"; - rev = "46fe076b5943ccc6fdc9cdacc7e8ad02b64bcd36"; - sha256 = "03aw9ab54a5fljhwygg62hr2n9kk82xfwcdq17ln5z0951gqi99r"; + rev = "019e07947426f0192fc3458f3f72c19031b607de"; + sha256 = "0id35345zp0fchbcz8qk2lg71jyln91k56vfama27ss3nzy3f9kz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2bc9ce95a02fc4bcf7bc7547849c1c15d6db5089/recipes/monokai-theme"; @@ -44701,12 +45354,12 @@ monroe = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "monroe"; - version = "20170220.540"; + version = "20170623.103"; src = fetchFromGitHub { owner = "sanel"; repo = "monroe"; - rev = "6190d9935109e116944296be2faa46773e545d91"; - sha256 = "1lp0xbsgiajbx27fnsx61krcbj6p0frar4wh5dq6i98af46vwly6"; + rev = "2bb59ac84e030f7047e7443e2df25185b397a5d3"; + sha256 = "0jcyidk62djd47dv4m53k7wky92982pzz87n8zq1fijqic63iib9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/590e5e784c5a1c12a241d90c9a0794d2737a61ef/recipes/monroe"; @@ -44722,12 +45375,12 @@ moonscript = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "moonscript"; - version = "20160503.631"; + version = "20170831.1526"; src = fetchFromGitHub { owner = "k2052"; repo = "moonscript-mode"; - rev = "2278810a43ee41b760e84e48e54ffc48b11772b0"; - sha256 = "0bz35m0drjl12f9y42a79nnzxz5ahf5m7c2l2nfz8fyif270ph1y"; + rev = "56f90471e2ced2b0a177aed4d8c2f854797e9cc7"; + sha256 = "1v2phdpfngrb01x4qygpfgxdzpgvbprki2kbmpc83vlqxlmkvvjk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3046afee95277024830d7d372f2f1c84a0adcb00/recipes/moonscript"; @@ -44845,24 +45498,6 @@ license = lib.licenses.free; }; }) {}; - mouse-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "mouse-plus"; - version = "20170307.859"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/mouse+.el"; - sha256 = "1f49b10i1iqh0q2s2fa309dc617dzavah7fw0k1rpjk84kb001bd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/01cbe9b5bb88f8c02fab67a269ac53c8aa4d8326/recipes/mouse+"; - sha256 = "1fv7jnqzskx9iv92dm2pf0mqy2accl0svjl2kkb6v273n1day3f8"; - name = "mouse-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mouse+"; - license = lib.licenses.free; - }; - }) {}; mouse-slider-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mouse-slider-mode"; @@ -44884,33 +45519,15 @@ license = lib.licenses.free; }; }) {}; - mouse3 = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "mouse3"; - version = "20170324.1050"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/mouse3.el"; - sha256 = "0rnpfz0d4spxkyssgf3j5kfajm54i1vism2q0giikd0savrh0a1c"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/mouse3"; - sha256 = "1rppn55axjpqwqm2lq4dvwi3z7xkd5jkyqi1x8jqgcsfc9w6m777"; - name = "mouse3"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mouse3"; - license = lib.licenses.free; - }; - }) {}; move-dup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "move-dup"; - version = "20161026.742"; + version = "20170513.1911"; src = fetchFromGitHub { owner = "wyuenho"; repo = "move-dup"; - rev = "612f5b3faa5bc36f7403b6fac7a1a524ae146f37"; - sha256 = "0xiwlqhhx9aqj4059srp04zw1nksf8crp1z1wcfn4516f8mxs66p"; + rev = "dae61de7aa5e2bf56a7bab1fa36fa3a39520a3c0"; + sha256 = "1mrrxx2slxi1qgf483nnxv3y8scfsc844sfnzn4b7hjpfpali0r8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3ea1f7f015a366192492981ff75672fc363c6c18/recipes/move-dup"; @@ -44926,12 +45543,12 @@ move-text = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "move-text"; - version = "20170213.2128"; + version = "20170908.2030"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "move-text"; - rev = "ea57d20a49bcffbcd948ad2f6f6c710fdd71d689"; - sha256 = "0cc6cyqwm6nivnplr1226xz25vmjk6icsjp80kkwdwgfbiyj986j"; + rev = "bdaf3e3a0d33cd528cad1d10facbdf0635232e4d"; + sha256 = "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82bfd0f41e42eed1d4c2361ec1d1685edebbac1b/recipes/move-text"; @@ -44951,8 +45568,8 @@ src = fetchFromGitHub { owner = "retroj"; repo = "mowedline"; - rev = "67ca629b4bc3063ea19a7fccc693432a4eb10021"; - sha256 = "0i06ms5m7qhv2m1mmgzqh73j9wz3nxygz65p6vsnicxas09w70rd"; + rev = "bca452544b5e200034d0505a767090a975a21a28"; + sha256 = "07bjkcgy2qvnkrlb5ypgbf969ka0pchz305326r7vfswlvkvihdg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/86f7df6b8df3398ef476c0ed31722b03f16b2fec/recipes/mowedline"; @@ -44972,8 +45589,8 @@ src = fetchFromGitHub { owner = "bard"; repo = "mozrepl"; - rev = "57f278849e4246a992e731e188b221a2574fc81e"; - sha256 = "1g06i3d8xv8ja6nfww4k60l3467xr1s9xsk7i6dbicq0lf8559h9"; + rev = "ab3e79914445039ceb62f7f2dc342358fec3492e"; + sha256 = "1c7dsip5wmlf7x2hziwil5n3igvpnh17d7yg8lsg001y5sjl3mjv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6839c5e52364fb32f6d8a351e5c2f21fbd6669a1/recipes/moz"; @@ -45112,27 +45729,6 @@ license = lib.licenses.free; }; }) {}; - mpg123 = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "mpg123"; - version = "20170313.715"; - src = fetchFromGitHub { - owner = "emacsmirror"; - repo = "mpg123"; - rev = "d1dd8c56428ae55df9e23ba26f102588001d55be"; - sha256 = "1faqz3svh9l14617d39b8c7gfgf7kxf4q6d0k2q6y8whfljnbyvm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/714d40891ab697b6303a3e25df2cb8adf04942f3/recipes/mpg123"; - sha256 = "184ip9pvv4zkfxnrzxbfajjadc9f4dz4psn33f9x3sfh7s1y4nw8"; - name = "mpg123"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mpg123"; - license = lib.licenses.free; - }; - }) {}; mpv = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild, names, org }: melpaBuild { pname = "mpv"; @@ -45157,12 +45753,12 @@ msvc = callPackage ({ ac-clang, cedet ? null, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "msvc"; - version = "20161221.558"; + version = "20170610.1044"; src = fetchFromGitHub { owner = "yaruopooner"; repo = "msvc"; - rev = "71c38323187c98b32250b89088768599bb216ddb"; - sha256 = "1wwa861a8bnrqv59bx6l5k3qi98wqv6cicvg5gjyx8rdvpcq28dg"; + rev = "bb9af3aee0e82d6a78a49a9af61ce47fab32d577"; + sha256 = "1vxgdc19jiamymrazikdikdrhw5vmzanzr326s3rx7sbc2nb7lrk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/69939b85353a23f374cab996ede879ab315a323b/recipes/msvc"; @@ -45178,12 +45774,12 @@ mtg-deck-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mtg-deck-mode"; - version = "20170416.1618"; + version = "20170925.1338"; src = fetchFromGitHub { owner = "mattiasb"; repo = "mtg-deck-mode"; - rev = "7774641630ef85999ab2f6d57eebddbc7c1e7244"; - sha256 = "12ajrlgyj14jf66if7bdgj69jm72wzrmiclx7x8dpsz4zpj38m20"; + rev = "546a62ada70aa89d325cc3941c8c9379a4c21553"; + sha256 = "1gbgsfd04jdw6jrsp13h13jkkac5ndrn684pl18q0wjgx9kk11b6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/425fa66cffe7bfda71de4ff2b49e951456bdeae1/recipes/mtg-deck-mode"; @@ -45220,12 +45816,12 @@ mu4e-alert = callPackage ({ alert, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: melpaBuild { pname = "mu4e-alert"; - version = "20170403.2222"; + version = "20170901.1027"; src = fetchFromGitHub { owner = "iqbalansari"; repo = "mu4e-alert"; - rev = "c57a29933e4a03e0ece8310c51a8bc2143f8b010"; - sha256 = "0mgxldxb07ixp8jli7j5jgv2b5vfzhvdv9nszqap4hp4iz7hm50f"; + rev = "ef90cd0f0fb6c841f326db5cad276567eb5f96b5"; + sha256 = "0sym7mp1via65h883f5h45cbfxq58qck7ypcvcfdmnmn9jnl3j9d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/mu4e-alert"; @@ -45259,6 +45855,27 @@ license = lib.licenses.free; }; }) {}; + mu4e-query-fragments = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mu4e-query-fragments"; + version = "20170923.622"; + src = fetchFromGitHub { + owner = "wavexx"; + repo = "mu4e-query-fragments.el"; + rev = "34ddad4e6785f575333efcc66153d892daa1c884"; + sha256 = "0l5i3a88j9il2y0jq2sfzwi9q3czc1wi8n9nvgdysj5db5m4xsw6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/21277a79a211b4d101809314bdb9963130a3d533/recipes/mu4e-query-fragments"; + sha256 = "0h8rapfz9snvr722vr65gqa0xhgig81b2gvswjlzljwd2m98yzzn"; + name = "mu4e-query-fragments"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/mu4e-query-fragments"; + license = lib.licenses.free; + }; + }) {}; multi = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "multi"; @@ -45301,33 +45918,15 @@ license = lib.licenses.free; }; }) {}; - multi-eshell = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "multi-eshell"; - version = "20120608.1135"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/multi-eshell.el"; - sha256 = "1w1jwfznpl214a1xx46zlgqbx9c5yjzpyqqrkn3xqjgnj485yhkl"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a9069a6eb1e57bccb06d26577cac70765de8e52f/recipes/multi-eshell"; - sha256 = "1i0mvgqxsc99dwp9qcdrijqxsxflrbxw846rgw89p1jfs8mp4l7d"; - name = "multi-eshell"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/multi-eshell"; - license = lib.licenses.free; - }; - }) {}; multi-line = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: melpaBuild { pname = "multi-line"; - version = "20161103.1715"; + version = "20170821.1926"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "multi-line"; - rev = "f510b7bc3c4726f262620bd6739f7de80d13ff35"; - sha256 = "01dbk0vxznmqhx8vd2iaa967ng5apnwkv0mlyd235wk2z1j8wci4"; + rev = "d3ce76b6aec62f96ef2c0409d8262fd39e67dccc"; + sha256 = "0kysz7l18z3fkzygpdnqf2ancixrwyzh6n49jgk0c50lhhqj324x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f8eee6798a0ba71d437a1cbf82e360a5b60eafb/recipes/multi-line"; @@ -45343,11 +45942,11 @@ multi-project = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "multi-project"; - version = "20170322.332"; + version = "20170604.1514"; src = fetchhg { url = "https://bitbucket.com/ellisvelo/multi-project"; - rev = "c03cafbbfba9"; - sha256 = "0v0q4v3pnqmm89hix90pfx4hpfpc9iv1r5ldn3zwzwhbs0jvgj3d"; + rev = "04eeab45d19b"; + sha256 = "11mn36m40i93wig79kj1jp2i3ggck1qsfw2z9q24a1zxj2gns12i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/multi-project"; @@ -45447,12 +46046,12 @@ multiple-cursors = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "multiple-cursors"; - version = "20170215.552"; + version = "20170908.1452"; src = fetchFromGitHub { owner = "magnars"; repo = "multiple-cursors.el"; - rev = "ddbe3ae932b6564c7429c3b2507510093ed1f3aa"; - sha256 = "0icaz5md2jydsp8w9fdgxj7689g8v6yq123yi7bp17g6lfnw4v7y"; + rev = "10752700084595bb24712c27ba70a2326302e45b"; + sha256 = "1hg693xq45bjxdla4drn6qn0np417hyvw6x3bmhfykg6lpibslz6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f015e6b88be2a5ded363bd882a558e94d1f391/recipes/multiple-cursors"; @@ -45489,12 +46088,12 @@ mustache = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: melpaBuild { pname = "mustache"; - version = "20131117.1407"; + version = "20170923.533"; src = fetchFromGitHub { owner = "Wilfred"; repo = "mustache.el"; - rev = "b0ea352813592424164520a49e86c04600242752"; - sha256 = "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"; + rev = "5e39654b933a18131146a0f3b3e3dc55c5058124"; + sha256 = "0ilsdrvqy9zn0yb1c8zh1zidag32rfb9xhm43qpfcg6n5w6c7r82"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d1bcf9599ca6d2c29333071a80f96808d4ab52e2/recipes/mustache"; @@ -45531,12 +46130,12 @@ mustang-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mustang-theme"; - version = "20141017.1623"; + version = "20170719.246"; src = fetchFromGitHub { owner = "mswift42"; repo = "mustang-theme"; - rev = "79c3381dd50601775402fe2fddd16fffa9218837"; - sha256 = "19qd34dcfspv621p4y07zhq2pr8pwss3lcssm9sfhr6w2vmvgcr4"; + rev = "dda6d04803f1c9b196b620ef564e7768fee15de2"; + sha256 = "0pg3iay0iinf361v4ay8kizdxs5rm23ir556cwwgz3m3gbs0mgsh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2ed3691edd1cba6abc0c30d2aab732e2ba51bf00/recipes/mustang-theme"; @@ -45552,12 +46151,12 @@ mustard-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mustard-theme"; - version = "20141115.2302"; + version = "20170808.619"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-mustard-theme"; - rev = "33bc6e3a0e2abc5668afdb349bca7e8b5730582c"; - sha256 = "170qhbbvcv9dg6jzfd9r95in5m8z1k647mn0gaqflfj0hvq5hwgf"; + rev = "3b15d992c79590d7ea2503004e2a863b57e274b5"; + sha256 = "01ak4ayk46jqawlbb9cqliiqhnn68cq27kryamibdpds8sq0ch83"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/mustard-theme"; @@ -45591,24 +46190,6 @@ license = lib.licenses.free; }; }) {}; - muttrc-mode = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "muttrc-mode"; - version = "20090804.1552"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/muttrc-mode.el"; - sha256 = "1xihp3zdqs9054j3bfrd9wnahsvvxjk1ags1iy50ncv5850ppjis"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7d3fd45af3345742cff7be99ad8210d7f8fd2a2f/recipes/muttrc-mode"; - sha256 = "0ym6rfrhrmpnlqhkxv9ck5893qm0yhswslvgc9vb4nl9hyc1b5jn"; - name = "muttrc-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/muttrc-mode"; - license = lib.licenses.free; - }; - }) {}; mvn = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mvn"; @@ -45630,27 +46211,6 @@ license = lib.licenses.free; }; }) {}; - mwe-log-commands = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "mwe-log-commands"; - version = "20100703.541"; - src = fetchFromGitHub { - owner = "emacsmirror"; - repo = "mwe-log-commands"; - rev = "8253f2a311f35b03f72a035744f0cbdd776ea17e"; - sha256 = "0qdlbyq47gr65yq5ri8s9lxw4wp9fmyqc2prkh560d4hkvw60aw3"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/mwe-log-commands"; - sha256 = "1nf3rd5i4r61z64apkqi5wx60fpshx5px0y53jqf0rk86708l6wx"; - name = "mwe-log-commands"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mwe-log-commands"; - license = lib.licenses.free; - }; - }) {}; mwim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mwim"; @@ -45759,12 +46319,12 @@ mysql2sqlite = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mysql2sqlite"; - version = "20151123.1339"; + version = "20170725.1516"; src = fetchFromGitHub { owner = "echosa"; repo = "emacs-mysql2sqlite"; - rev = "07415c5fcd895ebccf1b774d0eab175f2700652f"; - sha256 = "0q5809hq22hyzxx5xr2hwwf3jh3qlpf3mkbl3fxqq93gm16plh1i"; + rev = "8e6e74451c942e2e92f90dc13222b95a7dbb285e"; + sha256 = "18jriaj391n4wr0qiva68jf482yx9v9l4xagbzl9vw125lszkngb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9841d3cfd1ee954eb0ab9b2ca3a3f605eb0fd22a/recipes/mysql2sqlite"; @@ -45780,12 +46340,12 @@ myterminal-controls = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "myterminal-controls"; - version = "20160924.2206"; + version = "20170425.1936"; src = fetchFromGitHub { owner = "myTerminal"; repo = "myterminal-controls"; - rev = "b76ef43a64f25cbea67b966ebf88eb12518a52b4"; - sha256 = "1x8sfhdb5cw1xih9gpr07pz3f0y9wzxv38pxg4pllkayc2sqhsr4"; + rev = "3edcef051f882342ca769b84527bf92dfb755e14"; + sha256 = "0g9vyy639aqnk0g9rmrlszc7i0rl2f2ygnzfs4pwakgfiwig5r0c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4a82a45d9fcafea0795f832bce1bdd7bc83667e2/recipes/myterminal-controls"; @@ -45798,27 +46358,6 @@ license = lib.licenses.free; }; }) {}; - n3-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "n3-mode"; - version = "20141027.1057"; - src = fetchFromGitHub { - owner = "doriantaylor"; - repo = "n3-mode-for-emacs"; - rev = "0145e7938c30183edb03a55a4f16390dabd191ec"; - sha256 = "1lp1bx9110vqzjww94va8pdks39qvqzl8rf0p8na1q0qn06rnk9h"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a71e3a572cb2ff58c731df9ff6a65b69ebd8f6eb/recipes/n3-mode"; - sha256 = "0hasxq39phgyc259dgxskhqxjsp0yi98vx1bs8ynvwa26la4ddzh"; - name = "n3-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/n3-mode"; - license = lib.licenses.free; - }; - }) {}; n4js = callPackage ({ cypher-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "n4js"; @@ -45840,24 +46379,6 @@ license = lib.licenses.free; }; }) {}; - naked = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "naked"; - version = "20170307.920"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/naked.el"; - sha256 = "1l6r7vdhzlbv70in16qiyac81930srakr4d14dqda5j3h4w09hbg"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/naked"; - sha256 = "06p6dzhn34dva3677mrvwq2a2x3bhw7f486y654hszla7i75pilq"; - name = "naked"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/naked"; - license = lib.licenses.free; - }; - }) {}; name-this-color = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "name-this-color"; @@ -45949,8 +46470,8 @@ src = fetchFromGitHub { owner = "Malabarba"; repo = "Nameless"; - rev = "ab1a5c589378334eafca105af1a17f73b9065423"; - sha256 = "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"; + rev = "108f16e743aecd35401c0e914c896572cf1d5082"; + sha256 = "110bxdn2sqxlxqffaxp0yc6g2hglbv91az00mmgc01n6hjxcrc3h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8e4ee4dae5f32a8d445dc0cc2455c1f7075c9b3d/recipes/nameless"; @@ -45966,12 +46487,12 @@ names = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "names"; - version = "20151201.404"; + version = "20171012.1214"; src = fetchFromGitHub { owner = "Malabarba"; repo = "names"; - rev = "65b577b1215c4cfaee1ed5e98b0545e9ef7b9964"; - sha256 = "13r1qmibjikx6hz36m6xf79wap6fci2x7jz7rac5s52hq2hdj2wk"; + rev = "1d45ec50568eb2f5b55973f7ed0b48c68f9f13aa"; + sha256 = "1z0zdi9r6x6pqy2qfj9krkmbmlw9rlrgdvgn4dppfzrmrig8libr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/names"; @@ -46088,24 +46609,6 @@ license = lib.licenses.free; }; }) {}; - narrow-indirect = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "narrow-indirect"; - version = "20170307.921"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/narrow-indirect.el"; - sha256 = "1sdyya2gmmd2h39kmijf514y3vln6ax5xdfsrkx1hcalw4l418gh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/38e5dd845c99acaae719562595059154a08a5f00/recipes/narrow-indirect"; - sha256 = "10aq4gssayh3adw8yz2lza1xbypyffi8r03lsc0kiis6gd9ibiyj"; - name = "narrow-indirect"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/narrow-indirect"; - license = lib.licenses.free; - }; - }) {}; narrow-reindent = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "narrow-reindent"; @@ -46298,12 +46801,12 @@ ncl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ncl-mode"; - version = "20170121.231"; + version = "20170903.2355"; src = fetchFromGitHub { owner = "yyr"; repo = "ncl-mode"; - rev = "cfabbbf5e49a856c9b4cb32408f28ef4378731b5"; - sha256 = "1rq0snv7qxkh1l09ail3mjs2jjrxixryxy6z91maabj7qfp1yrqi"; + rev = "84599a730169b9b19f9dcc532e20dcdc9648bbaa"; + sha256 = "0sqbrvlx9n7abn71r4hb5fgps7nm6cfyg84hjwdbkrw0cgy2w1hc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2eea3936b8a3a7546450d1d7399e0f86d855fefd/recipes/ncl-mode"; @@ -46337,6 +46840,27 @@ license = lib.licenses.free; }; }) {}; + neato-graph-bar = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "neato-graph-bar"; + version = "20170731.2341"; + src = fetchFromGitLab { + owner = "RobertCochran"; + repo = "neato-graph-bar"; + rev = "3ebd5168c9b8cc56cc4163206c03864b9b802f27"; + sha256 = "133k1lwmb7ky91ij03nd4vipkivvx4bz56m4waf1pdmaynsidy6j"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/49c5bd4e1506a28ada9856e5f70e520890123d16/recipes/neato-graph-bar"; + sha256 = "1p4jmla75ny443cv7djk3nvl3ikchllnsivxx9yds14ynk4jxhgb"; + name = "neato-graph-bar"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/neato-graph-bar"; + license = lib.licenses.free; + }; + }) {}; nemerle = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nemerle"; @@ -46344,8 +46868,8 @@ src = fetchFromGitHub { owner = "rsdn"; repo = "nemerle"; - rev = "d0777b677c50714415174e407a321efc1e9bfdae"; - sha256 = "19darrq975w11n4809f5blrc3paaxpdxmvwmsd96k8g5gwi0yf5m"; + rev = "847d1343e63c0a2d25a43f8432c4d750e4e9e7d0"; + sha256 = "0wriamdich72h1m0rmhx1s38ph6q8ak0rfd39kyycw7v8bvwgv08"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/nemerle"; @@ -46361,12 +46885,12 @@ neon-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "neon-mode"; - version = "20160811.216"; + version = "20170711.501"; src = fetchFromGitHub { owner = "Fuco1"; repo = "neon-mode"; - rev = "370212fa9ffcba3ff542a154d17ccf5be1066c4c"; - sha256 = "13a760jidh00czl05c0pnpbxzr7smrkf5ms9kd3h1cq613ffapby"; + rev = "9c23289c0c8ed17d1596cfb95a5ade57df7db5f7"; + sha256 = "0q5niz0di1r0wl0lsq8hcsz854xdwpzw798sl42qc1r5mdpz3ghz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c6b2a4898bf21413c4d9e6714af129bbb0a23e1a/recipes/neon-mode"; @@ -46382,12 +46906,12 @@ neotree = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "neotree"; - version = "20170227.1731"; + version = "20170522.758"; src = fetchFromGitHub { owner = "jaypei"; repo = "emacs-neotree"; - rev = "75d8e8686ae479490a0e60d4ea96f989d7a18725"; - sha256 = "10xc3hmm468rvjwmgyfg6zwwmki2bzlnnj61ch33m0hqrr8q6nl9"; + rev = "bc98dfb44c106375efa4f26848f3790ee264da97"; + sha256 = "1m30ldbprz3f62szyi1alzjy337ryczljxy1z5lf6smb03ymns2s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9caf2e12762d334563496d2c75fae6c74cfe5c1c/recipes/neotree"; @@ -46508,12 +47032,12 @@ ng2-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, typescript-mode }: melpaBuild { pname = "ng2-mode"; - version = "20160910.820"; + version = "20170504.2007"; src = fetchFromGitHub { owner = "AdamNiederer"; repo = "ng2-mode"; - rev = "e48698fd474fb1b76356101fc97df00eaa610ddd"; - sha256 = "0k356rw2ack1bf5f0km7fljws5iml9f8scp1ykpf86kskrl2gygq"; + rev = "adbfe16a47cf26edeb1b508cbedae5307b4efbf6"; + sha256 = "0ll850wpr4dyh25mq41afwbz17mqz82i53hfn970n9vw2icf36py"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a856ecd8aca2d9232bb20fa7019de9e1dbbb19f4/recipes/ng2-mode"; @@ -46529,12 +47053,12 @@ nginx-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nginx-mode"; - version = "20170213.1326"; + version = "20170611.2137"; src = fetchFromGitHub { owner = "ajc"; repo = "nginx-mode"; - rev = "b58708d15a6659577945c0aa3a63983eebff2e67"; - sha256 = "0y2wwgvm3495h6hms425gzgi3qx2wn33xq6b7clrvj4amfy29qix"; + rev = "a2bab83c2eb233d57d76b236e7c141c2ccc97005"; + sha256 = "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a6da3640b72496e2b32e6ed21aa39df87af9f7f3/recipes/nginx-mode"; @@ -46571,12 +47095,12 @@ niconama = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "niconama"; - version = "20160703.802"; + version = "20170910.801"; src = fetchFromGitHub { owner = "NOBUTOKA"; repo = "niconama.el"; - rev = "533559931670d49e930dfe4d19bc7a182dbbd3a8"; - sha256 = "0iwgfqwywlrgf3151619z7ppf39r5dq2891qhgk0vs76kz6frai2"; + rev = "96e7553e50e6bf7b58aac50f52c9b0b8edb41c56"; + sha256 = "1gihjzwl6309vgav5z7jzi8jb7is8vx8lr23kb6h373gwws4bi10"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ad8e7189e9c4c5d86cef268f45be0dda2d702805/recipes/niconama"; @@ -46589,63 +47113,22 @@ license = lib.licenses.free; }; }) {}; - niflheim-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "niflheim-theme"; - version = "20150630.821"; - src = fetchFromGitHub { - owner = "niflheim-theme"; - repo = "emacs"; - rev = "5265e89164132fbdbc13146a79f0abce78bd0c5e"; - sha256 = "147vw3qlsply5h8cjmjzqr5dv9jzf9xlmhjnmcpyb1r7krh1l8xm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/36d82e64af02289f759239f24dd6d921a6eb3f0f/recipes/niflheim-theme"; - sha256 = "1dipxwaar7rghmz7s733v035vrbijcg1dla9f7cld1gkgiq9iq36"; - name = "niflheim-theme"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/niflheim-theme"; - license = lib.licenses.free; - }; - }) {}; - nikola = callPackage ({ async, emacs, fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "nikola"; - version = "20170301.1148"; - src = fetchgit { - url = "https://git.daemons.cf/drymer/nikola.el/"; - rev = "6752cc70b08889ff5184ac111616863f1881d357"; - sha256 = "0cwn05q0fj6xddfc5qimryvqi5l68sqyxvw638vzmrpnzl6dfc9h"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/89354d06dddc3be4b952e3f0b86d11824064dd97/recipes/nikola"; - sha256 = "1i6z4gkh52fr9s506dqr3ccczank7c8zr0q1bg8ik5gbna0jv705"; - name = "nikola"; - }; - packageRequires = [ async emacs ]; - meta = { - homepage = "https://melpa.org/#/nikola"; - license = lib.licenses.free; - }; - }) {}; - nim-mode = callPackage ({ commenter, emacs, epc, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild }: + nim-mode = callPackage ({ commenter, emacs, epc, fetchFromGitHub, fetchurl, flycheck-nimsuggest, let-alist, lib, melpaBuild }: melpaBuild { pname = "nim-mode"; - version = "20170409.1737"; + version = "20171028.2219"; src = fetchFromGitHub { owner = "nim-lang"; repo = "nim-mode"; - rev = "58707562dd29c7a9f36e96a8e894caec90ce1e41"; - sha256 = "1r6vs77b2rsdarkvcsg6awfa4mna308m53002vxykmpj9apkjszr"; + rev = "10296ac3d9ee70bf31180b5158ac3b4a58f45d22"; + sha256 = "0mswc1f141xif3h4zshza0ar64s99fp6j3l795c67a3yvmc7l50v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc2ccb5f24b9d55c77eaa7952a9e6a2e0ed7be24/recipes/nim-mode"; sha256 = "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6"; name = "nim-mode"; }; - packageRequires = [ commenter emacs epc flycheck let-alist ]; + packageRequires = [ commenter emacs epc flycheck-nimsuggest let-alist ]; meta = { homepage = "https://melpa.org/#/nim-mode"; license = lib.licenses.free; @@ -46654,12 +47137,12 @@ nimbus-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nimbus-theme"; - version = "20170412.758"; + version = "20171026.504"; src = fetchFromGitHub { owner = "m-cat"; repo = "nimbus-theme"; - rev = "ce999b8d152b9b15d75f66fe22b84827167c8311"; - sha256 = "08bfp2xm8ylkmb4rby15f6xx51qppd2g01i3mg2wwb8kvlwz6s4w"; + rev = "e78561a828e50b5bd0984723d9040620367180c8"; + sha256 = "04cbr0a3kvk79lyrriblm4q7y00j0banwl7a4r9li4iq92rgcivh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fc0e6b456b76e2379c64a86ad844362c58146dc6/recipes/nimbus-theme"; @@ -46679,8 +47162,8 @@ src = fetchFromGitHub { owner = "martine"; repo = "ninja"; - rev = "586bb6daef38b3657ba917eb3d7f07ba80c72cd7"; - sha256 = "0qs73q4d83f6xiz1zdpmln8lzgi78h4indha7r783rx07crvvxw6"; + rev = "e234a7bdb6c42f4539c0ab09b624f191287c2c10"; + sha256 = "01hsabhvp1yilzdss3mkvrskkvxw41xxch6lkwlcrr6h5f70szi2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/aed2f32a02cb38c49163d90b1b503362e2e4a480/recipes/ninja-mode"; @@ -46696,12 +47179,12 @@ nix-buffer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nix-buffer"; - version = "20170305.1601"; + version = "20170809.1128"; src = fetchFromGitHub { owner = "shlevy"; repo = "nix-buffer"; - rev = "89d30002eddcc33c5c74dcc871a97aee0228d403"; - sha256 = "0pz1p8mdk988x4k41qi3j8rf6g33gj6lx4dm9sgfyzgzi9ixyma8"; + rev = "b922497ea0af39fdf1a7e856d0cd2ce81d98d76f"; + sha256 = "1db0cjsq99b1z6786g3j8y39vj3gga7x6yzkilxdp7z6scs1qdwr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/08b978724ff26b3ea7a134d307d888c80e2a92a9/recipes/nix-buffer"; @@ -46714,22 +47197,22 @@ license = lib.licenses.free; }; }) {}; - nix-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + nix-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nix-mode"; - version = "20160502.637"; + version = "20170831.1721"; src = fetchFromGitHub { owner = "NixOS"; - repo = "nix"; - rev = "f8a2e8a55203f2cc16d70ad43afcc186adaab6b3"; - sha256 = "19m36vw8j9b4ll6llhaisa4w6w9iilj8af8vvw4bglcmd3jbn8mg"; + repo = "nix-mode"; + rev = "3294f8a2f83ace2d71f16c274a262ff76be412dc"; + sha256 = "1p1dka9v8fm6rklspkscj5rs5f21dwi3bq44d3hjqw6xva4q7bx4"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f2b542189cfde5b9b1ebee4625684949b6704ded/recipes/nix-mode"; - sha256 = "00rqawi8zs2x79c91gmk0anfyqbwalvfwmpak20i11lfzmdsza1s"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode"; + sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5"; name = "nix-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/nix-mode"; license = lib.licenses.free; @@ -46738,12 +47221,12 @@ nix-sandbox = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "nix-sandbox"; - version = "20170131.241"; + version = "20171004.1006"; src = fetchFromGitHub { owner = "travisbhartwell"; repo = "nix-emacs"; - rev = "ace629f7645d12778c96ff7b5cf4b1e41a98af29"; - sha256 = "11infdrdjc30kxvfg5rh1zn4idvkhf9s0c6v60qn441m1d5bnavq"; + rev = "7007363e773a419203a69798fb0e0731b2eb0f73"; + sha256 = "00hv8fhyahkdh1vfy1qkahqvsik6d81c7mqh4gjiqxrmb2l1vbcb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/66be755a6566e8c0cfb5aafa50de29b434023c7a/recipes/nix-sandbox"; @@ -46763,8 +47246,8 @@ src = fetchFromGitHub { owner = "travisbhartwell"; repo = "nix-emacs"; - rev = "ace629f7645d12778c96ff7b5cf4b1e41a98af29"; - sha256 = "11infdrdjc30kxvfg5rh1zn4idvkhf9s0c6v60qn441m1d5bnavq"; + rev = "7007363e773a419203a69798fb0e0731b2eb0f73"; + sha256 = "00hv8fhyahkdh1vfy1qkahqvsik6d81c7mqh4gjiqxrmb2l1vbcb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6846c7d86e70a9dd8300b89b61435aa7e146be96/recipes/nixos-options"; @@ -46777,6 +47260,27 @@ license = lib.licenses.free; }; }) {}; + nlinum-hl = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, nlinum }: + melpaBuild { + pname = "nlinum-hl"; + version = "20170613.1748"; + src = fetchFromGitHub { + owner = "hlissner"; + repo = "emacs-nlinum-hl"; + rev = "d5ca1490e0cde0605e34a6a17de8cc236c9810da"; + sha256 = "0rj2ay2x7mqnj2vpnndfzr47sldx7i6zxj4nn81yamrdxgv19ajd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b13a886535a5c33fe389a6b616988b7377249625/recipes/nlinum-hl"; + sha256 = "17lcp1ira7yhch9npg9sf3npwg06yh9zyhg0lnb22xg09lbndj0x"; + name = "nlinum-hl"; + }; + packageRequires = [ cl-lib emacs nlinum ]; + meta = { + homepage = "https://melpa.org/#/nlinum-hl"; + license = lib.licenses.free; + }; + }) {}; nlinum-relative = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, nlinum }: melpaBuild { pname = "nlinum-relative"; @@ -46822,15 +47326,15 @@ nnir-est = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nnir-est"; - version = "20140301.602"; + version = "20170818.746"; src = fetchFromGitHub { owner = "kawabata"; repo = "nnir-est"; - rev = "ba263fbd872fe05cfa6b3d815c0d98cdbe24b687"; - sha256 = "0gzxcq0gki89dz9ad26683zhq1nif3wdz185cdplwy68z9szbdx1"; + rev = "dc1fee4757725b8171b755313d7bafbf1364f49a"; + sha256 = "054mzb1h7smvvpzkg59pb4fd5rnig9j937wwvdr9s9222akyvkma"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9ad5bcd7e5cc71bb40803b9b39c40310574f3450/recipes/nnir-est"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/nnir-est"; sha256 = "04ih47pipph8sl84nv6ka4xlpd8vhnpwhs5cchgk5k1zv3l5scxv"; name = "nnir-est"; }; @@ -46843,16 +47347,16 @@ no-littering = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "no-littering"; - version = "20170312.612"; + version = "20171015.2358"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "no-littering"; - rev = "18e1506135be031db010292d27ef156e32766017"; - sha256 = "1lqz9fda24i3zkff9nnj4gndrs2bfql80wvvfisn106a3j0ah1n8"; + rev = "79c18c7efffd80446d81201b4c7dd92dde6cac3a"; + sha256 = "1xganpzb7sy5dlazjzrx9cif1r1n8lf3za0jwlq806w7601g5nym"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/cf5d2152c91b7c5c38181b551db3287981657ce3/recipes/no-littering"; - sha256 = "129nyml8jx3nwdskcr2favbi3x6f74dblc6yw8vijw32w8z14k2l"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering"; + sha256 = "15w784ir48v8biiaar8ip19s9y3wn5831m815kcw02mgzy3bfjmh"; name = "no-littering"; }; packageRequires = [ cl-lib ]; @@ -46861,6 +47365,27 @@ license = lib.licenses.free; }; }) {}; + noaa = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: + melpaBuild { + pname = "noaa"; + version = "20170719.1136"; + src = fetchFromGitHub { + owner = "thomp"; + repo = "noaa"; + rev = "a4ec583275450d718334238d2813579420229f65"; + sha256 = "0ah6b31x9f4lc6q984nilj4g0aqzam5rhb3s61jgx9k4x7jmdks1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1272203f85375e50d951451bd5fd3baffd57bbfa/recipes/noaa"; + sha256 = "11hzpmgapmf6dc5imvj5jvzcy7hfddyz74lqmrq8128i72q1sj0v"; + name = "noaa"; + }; + packageRequires = [ cl-lib emacs request ]; + meta = { + homepage = "https://melpa.org/#/noaa"; + license = lib.licenses.free; + }; + }) {}; noccur = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "noccur"; @@ -46948,12 +47473,12 @@ nodejs-repl = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nodejs-repl"; - version = "20170110.940"; + version = "20170722.443"; src = fetchFromGitHub { owner = "abicky"; repo = "nodejs-repl.el"; - rev = "53b7f09a9be6700934321297758e29180e7850d7"; - sha256 = "1fwz6wpair617p9l2wdx923zpbbklfcdrygsryjx5gpnnm649mmy"; + rev = "4a4104dbf2cd314e90f35d200f28bd93c34708d0"; + sha256 = "1hcvi4nhgfrjalq8nw20kjjpcf4xmjid70qpqdv8dsgfann5i3wl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14f22f97416111fcb02e299ff2b20c44fb75f049/recipes/nodejs-repl"; @@ -46990,12 +47515,12 @@ nord-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nord-theme"; - version = "20170417.209"; + version = "20171005.1039"; src = fetchFromGitHub { owner = "arcticicestudio"; repo = "nord-emacs"; - rev = "43b34f6c6d613a340cbc3e629916156bcc3d89fd"; - sha256 = "04jj25h1infivqdvcgq0cbc96y2rj2c23y6vw6yh73x4kyynzvcc"; + rev = "be32879416bbed1d6524f7c30ac53fbfa5a0e024"; + sha256 = "0q347f9bjayfl8y8vz83kjamf1lp58386nhy0iacjxsq4riwpric"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31cb60069825abe3998c8b43bc9177b39a7f3659/recipes/nord-theme"; @@ -47029,11 +47554,11 @@ }) {}; notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "notmuch"; - version = "20170313.1712"; + version = "20170927.415"; src = fetchgit { url = "git://git.notmuchmail.org/git/notmuch"; - rev = "e08f5f76e406de2c6bdcf85952aaeb66ec0d37de"; - sha256 = "0g9wryjv56xvgvflii0wilvj17hrf4ddk7vjl2bj9lg4glhyyvl0"; + rev = "1b91884296f7e423f2e190ccf7f590ccb3028fdd"; + sha256 = "0f78b9nw7ccpkkf192ka40d5021gbj114capjlkf4d79qr8m91yh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch"; @@ -47067,33 +47592,36 @@ license = lib.licenses.free; }; }) {}; - novice-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "novice-plus"; - version = "20170307.925"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/novice+.el"; - sha256 = "1f49c0wv1zsi720g3a8ka3h17n7r81pzz7zfwalz0zxwxmh6jghb"; + nov = callPackage ({ dash, emacs, esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "nov"; + version = "20170924.512"; + src = fetchFromGitHub { + owner = "wasamasa"; + repo = "nov.el"; + rev = "19ab463864f137b43704b4f34173349c88e84d8e"; + sha256 = "00f5hhw157nwdwy26yn6l3z2hgk6xxvx5xl0hasskj1l9rg0zgh2"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/novice+"; - sha256 = "0r4w4c6y4fny8k0kipzqjsn7idwbi9jq6x9yw51d41ra3pkpvfzf"; - name = "novice-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/cf543955ba2d5d0074fa2a5ba176f9415f6e006d/recipes/nov"; + sha256 = "0hlcncpdazi4rn5yxd0zq85v7gpjhw7a6dl2i99zf4ymsan97lhq"; + name = "nov"; }; - packageRequires = []; + packageRequires = [ dash emacs esxml ]; meta = { - homepage = "https://melpa.org/#/novice+"; + homepage = "https://melpa.org/#/nov"; license = lib.licenses.free; }; }) {}; noxml-fold = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "noxml-fold"; - version = "20160707.847"; + version = "20170823.657"; src = fetchFromGitHub { owner = "paddymcall"; repo = "noXML-fold"; - rev = "4cf3628004ad872fb44943aab5274a45e22ea430"; - sha256 = "0i4fyxkwp2yksz8d4x309q8imab8gz59vcw64k9y1kzylcnxci0i"; + rev = "46c7f6a008672213238a9f8d7a416ce80916aa62"; + sha256 = "0axr7n4wdrd009lz6sg4y9ggf4f5svgrsclwhs0hyn2ld34rvrax"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13d2af88b292293cb5ab50819c63acfe936630c8/recipes/noxml-fold"; @@ -47190,36 +47718,63 @@ license = lib.licenses.free; }; }) {}; - nu-mode = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, transpose-frame, undo-tree }: + nu-mode = callPackage ({ ace-window, avy, fetchFromGitHub, fetchurl, lib, melpaBuild, transpose-frame, undo-tree, which-key }: melpaBuild { pname = "nu-mode"; - version = "20160520.614"; + version = "20171028.1443"; src = fetchFromGitHub { owner = "pyluyten"; repo = "emacs-nu"; - rev = "347f6c958f20d6e8e46bc7122556405b3a434242"; - sha256 = "17nj8bkqw34hsbb8b51rl6221hlpxw265h2cwxqf64cswm22y313"; + rev = "683e2648a5b669e91138eec606f2e86f9f54ccd3"; + sha256 = "0mf8cj729ag7c0z1155ziaqx9s119nwxg9231rb8i8qx17vdci2b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/230d5f8fdd965a24b8ff3cc94acf378d04815fca/recipes/nu-mode"; sha256 = "0nzv3p62k8yyyww6idlxyi94q4d07nis7ydypar8d01jfqlrybkn"; name = "nu-mode"; }; - packageRequires = [ helm transpose-frame undo-tree ]; + packageRequires = [ + ace-window + avy + transpose-frame + undo-tree + which-key + ]; meta = { homepage = "https://melpa.org/#/nu-mode"; license = lib.licenses.free; }; }) {}; + nubox = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "nubox"; + version = "20170619.210"; + src = fetchFromGitHub { + owner = "martijnat"; + repo = "nubox"; + rev = "1ccb8035ae42727ba6bdd5c1106fbceddeeed370"; + sha256 = "02yh99rcgxdq6jn4xs8782nl6bjccmal8j78qslvpkrzrrxjajx6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/725948568b8a067762b63475bc400f089f478a36/recipes/nubox"; + sha256 = "0snzfsd765i363ykdhqkn65lqy97c79d20lalszrwcl2snm96n1f"; + name = "nubox"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/nubox"; + license = lib.licenses.free; + }; + }) {}; number = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "number"; - version = "20141127.1004"; + version = "20170901.612"; src = fetchFromGitHub { owner = "chrisdone"; repo = "number"; - rev = "f483365c330392b3e9362481b145acf3db040baf"; - sha256 = "045m83rdqryjpqh6y9s6x0yf9fw9xrwmxbm4qgg8ka164x9szv0n"; + rev = "bbc278d34dbcca83e70e3be855ec98b23debfb99"; + sha256 = "0a1r352zs58mdwkq58561qxrz3m5rwk3xqcaaqhkxc0h9jqs4a9r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/49d56b297ab729695249143dd65d3c67543cfcc6/recipes/number"; @@ -47253,6 +47808,27 @@ license = lib.licenses.free; }; }) {}; + numbers = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "numbers"; + version = "20170802.434"; + src = fetchFromGitHub { + owner = "davep"; + repo = "numbers.el"; + rev = "dd02508b788a13b7d4dbcc4923fa23134b783ab3"; + sha256 = "0bgha85j5f9lpk1h3siiw28v5sy6z52n7d7xi3m301r9hdlccc39"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5c77353d3a2b0d360bb28e528ef2707227081c72/recipes/numbers"; + sha256 = "02cx19fi34yvc0icajnwrmb8lr2g8y08kis08v9xxalfxz06kb3h"; + name = "numbers"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/numbers"; + license = lib.licenses.free; + }; + }) {}; nummm-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nummm-mode"; @@ -47298,12 +47874,12 @@ nvm = callPackage ({ dash, dash-functional, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "nvm"; - version = "20151113.55"; + version = "20170513.1501"; src = fetchFromGitHub { owner = "rejeep"; repo = "nvm.el"; - rev = "d6c7ad048f1d2854ec3c043d80528857aa1090a8"; - sha256 = "0prag0ks511ifa5mdpqmizp5n8190dxp4vdr81ld9w9xv7migpd7"; + rev = "61590e7fdeb19b1d866d26e48aef1af4767e5709"; + sha256 = "04z8zkgp0km575ijijpvmrqs0aa2f0878c5n4rl91hs1grq93mjf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/nvm"; @@ -47319,12 +47895,12 @@ nyan-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nyan-mode"; - version = "20160429.1323"; + version = "20170423.40"; src = fetchFromGitHub { owner = "TeMPOraL"; repo = "nyan-mode"; - rev = "98f2283d60686d331346371bc7f7f3d49bdfaf34"; - sha256 = "0yv6wv1vdc5zd1sh3f8vcz7wdizziasjzr11shx2bhm8nhnqcdbj"; + rev = "3447aa114575230cb230862ac0ac9b065f789ecd"; + sha256 = "1nlsgkll6gagn4bs092ad1glkcihlcac9ai4cbj63l8x9x346yqg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4d8c3000df5f2ee2493a54dee6f9b65008add753/recipes/nyan-mode"; @@ -47337,24 +47913,24 @@ license = lib.licenses.free; }; }) {}; - nyan-prompt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + nyx-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "nyan-prompt"; - version = "20140809.2208"; + pname = "nyx-theme"; + version = "20170910.607"; src = fetchFromGitHub { - owner = "PuercoPop"; - repo = "nyan-prompt"; - rev = "b5137f2ee9afe640f59786eed17b308df6356c73"; - sha256 = "0bgspjy8h3d7v12sfjnd2ghj4183pdf0z48g5xs129jwd3nycykp"; + owner = "GuidoSchmidt"; + repo = "emacs-nyx-theme"; + rev = "afe2b8c3b5421b4c292d182dcf77079b278e93d8"; + sha256 = "1qamw4x3yrygy8qkicy6smxksnsfkkp76hlnivswh7dm3fr23v6m"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2e3bf5fe2adaf557146df6f4e13aa6ffedb5d1e3/recipes/nyan-prompt"; - sha256 = "1s0qyhpfpncsv9qfxy07rbp4gv8pp5xzb48rbd3r14nkjlnylnfb"; - name = "nyan-prompt"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/nyx-theme"; + sha256 = "17ajpsbwbal1rwgd38kckh1kvnd412h6fkvj2x4j5rqvjr9nhgr6"; + name = "nyx-theme"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/nyan-prompt"; + homepage = "https://melpa.org/#/nyx-theme"; license = lib.licenses.free; }; }) {}; @@ -47421,56 +47997,57 @@ license = lib.licenses.free; }; }) {}; - ob-async = callPackage ({ async, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + ob-async = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-async"; - version = "20170216.2011"; + version = "20170705.2131"; src = fetchFromGitHub { owner = "astahlman"; repo = "ob-async"; - rev = "6bdb5b63ff4a8853d03805d7a7042213003a3dee"; - sha256 = "1n4zc4nfv7hzilnb0qng6vh19dj4kq12gwsillj6c3i89gjz73wr"; + rev = "f0bfe88d6032e9ae8f4953e2569aeca5431a3e3d"; + sha256 = "0ak23m2i24ix9443236zdvp3f3j27dis5k6pivic3whmb618g3v8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ob-async"; sha256 = "0k7kv71nnibp53lav774c61w9pzhq8qvch9rvpyyrwbyd67ninl8"; name = "ob-async"; }; - packageRequires = [ async org ]; + packageRequires = [ async emacs org ]; meta = { homepage = "https://melpa.org/#/ob-async"; license = lib.licenses.free; }; }) {}; - ob-axiom = callPackage ({ axiom-environment, emacs, fetchhg, fetchurl, lib, melpaBuild }: + ob-blockdiag = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "ob-axiom"; - version = "20161122.1222"; - src = fetchhg { - url = "https://bitbucket.com/pdo/axiom-environment"; - rev = "110e20a7a86c"; - sha256 = "0s18bbfw4kcv9iij1016pamq394rg8xr7016qp6cxyklp9hivcdm"; + pname = "ob-blockdiag"; + version = "20170727.1801"; + src = fetchFromGitHub { + owner = "corpix"; + repo = "ob-blockdiag.el"; + rev = "634fcf64a4ae735afe7001d865b03f5d71e23046"; + sha256 = "0xr3bv4wxz13b1grfyl2qnrszzab3n9735za837nf4lxh527ksaj"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/ob-axiom"; - sha256 = "12cmzhgzk8314y6nvzdjwidalccz6h440lil83c1h4lz4ddlwmf6"; - name = "ob-axiom"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/261b77a3fd07644d1c250b16857de70cc1bbf478/recipes/ob-blockdiag"; + sha256 = "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g"; + name = "ob-blockdiag"; }; - packageRequires = [ axiom-environment emacs ]; + packageRequires = []; meta = { - homepage = "https://melpa.org/#/ob-axiom"; + homepage = "https://melpa.org/#/ob-blockdiag"; license = lib.licenses.free; }; }) {}; ob-browser = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-browser"; - version = "20150101.710"; + version = "20170720.1218"; src = fetchFromGitHub { owner = "krisajenkins"; repo = "ob-browser"; - rev = "9271453d28d0912093ab5f91807745ada69ada0c"; - sha256 = "1nzli8wk3nd05j2z2fw511857qbawirhg8mfw21wqclkz8zqn813"; + rev = "a347d9df1c87b7eb660be8723982c7ad2563631a"; + sha256 = "0q2amf2kh2gkn65132q9nvn87pws5mmnr3wm1ajk23c01kcjf29c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c51529213c15d42a7a7b76771f07dd73c036a51f/recipes/ob-browser"; @@ -47483,15 +48060,36 @@ license = lib.licenses.free; }; }) {}; + ob-cfengine3 = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-cfengine3"; + version = "20170915.634"; + src = fetchFromGitHub { + owner = "nickanderson"; + repo = "ob-cfengine3"; + rev = "f38f87256efcb2b02f5c7042900087be941c1ddc"; + sha256 = "09xn84d2vy3kxk2xihjml8zzrhv2cz2jy20dg7w6ll9wn38gs33h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d068233c438e76cbcc6e9a97cbec9b2550a18ed6/recipes/ob-cfengine3"; + sha256 = "1pp3mykc5k629qlqixpl2900m1j604xpp6agrngwagsvf7qkhnvl"; + name = "ob-cfengine3"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-cfengine3"; + license = lib.licenses.free; + }; + }) {}; ob-coffee = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-coffee"; - version = "20160415.2036"; + version = "20170725.724"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-coffee"; - rev = "dbfa5827df91ed1cdc5b0f3247da6b93fa632507"; - sha256 = "01l8zvnfpc1vihnpqj75xlvjkk2hkvxpb1872jdzv2k1na2ajfxm"; + rev = "7f0b330273e8af7777de87a75fe52a89798e4548"; + sha256 = "1w3fw3ka46d7vcsdq03l0wlviwsk52asfjiy9zfk4qabhpqwj9mz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e23d7f1d021b07053acb57e2668ece0eaed0f817/recipes/ob-coffee"; @@ -47504,15 +48102,57 @@ license = lib.licenses.free; }; }) {}; + ob-coffeescript = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-coffeescript"; + version = "20170719.121"; + src = fetchFromGitHub { + owner = "brantou"; + repo = "ob-coffeescript"; + rev = "b70f3d822c707cb02333fcb739ba4874614cad2a"; + sha256 = "0284v3km41427q7dr0wmvf3zhbsgzj0j2r9zny0g3n85qvyk0rgd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ba1a808c77653bac1948d6c44bd1db09301ffeff/recipes/ob-coffeescript"; + sha256 = "05q1wnabw52kd3fpcpinpxs9z6xmi4n1p19jbcz0bgjpnw05s27p"; + name = "ob-coffeescript"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-coffeescript"; + license = lib.licenses.free; + }; + }) {}; + ob-crystal = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-crystal"; + version = "20171101.347"; + src = fetchFromGitHub { + owner = "brantou"; + repo = "ob-crystal"; + rev = "9d58b880b74e0ad83b37596bb44635e5d7ae5c3f"; + sha256 = "11qly91h6cm0qdj2dx8lvmfgp7bakrvvwf106rqh4f98y1qv22xh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b9a7d43199a83ab6f672aaa69ef4e158c868f180/recipes/ob-crystal"; + sha256 = "11mk2spwlddbrvcimhzw43b6d3gxzmi8br58bily1x4qkvl6zy4n"; + name = "ob-crystal"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/ob-crystal"; + license = lib.licenses.free; + }; + }) {}; ob-cypher = callPackage ({ cypher-mode, dash, dash-functional, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ob-cypher"; - version = "20150224.1837"; + version = "20170725.720"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-cypher"; - rev = "b3511df05f175c1947996802e9e199432ea9ced8"; - sha256 = "1xbczyqfqdig5w6jvx2kg57mk16sbiz5ysv445v83wqk0sz6nc9n"; + rev = "114bdf6db20ee0ade060bb5df379ddee48ff4f26"; + sha256 = "142d91jvf7nr7q2sj61njy5hv6ljhsq2qkvkdbkfqj07rgpwfgn3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc05c833f64e7974cf5a2ad60a053a04267251cb/recipes/ob-cypher"; @@ -47525,6 +48165,27 @@ license = lib.licenses.free; }; }) {}; + ob-dao = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "ob-dao"; + version = "20170816.858"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "ob-dao"; + rev = "fa92f62a63c684d689f57e790e5dd614c5bba270"; + sha256 = "18i2qwxcn5p1hj32svl54n0dv2j551n3nmgb4h8gbvs39rl49qkq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6284c73f1d0797fa2ed4d9a11d3198076cc5fff9/recipes/ob-dao"; + sha256 = "0nj1qyac0lj5ljrqfqi9g2z0d7z5yihajkvjhlx5kg9zs3lgs5rs"; + name = "ob-dao"; + }; + packageRequires = [ org ]; + meta = { + homepage = "https://melpa.org/#/ob-dao"; + license = lib.licenses.free; + }; + }) {}; ob-dart = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ob-dart"; @@ -47570,12 +48231,12 @@ ob-elixir = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-elixir"; - version = "20151021.447"; + version = "20170725.719"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-elixir"; - rev = "d0e8007efa0b99ab7a6e4cb7160a87d6cb60d210"; - sha256 = "0qknm1h2ijnzs1km51hqwpnv5083m9ngi3nbxd90r7d6vva5fhhk"; + rev = "8990a8178b2f7bd93504a9ab136622aab6e82e32"; + sha256 = "19awvfbjsnd5la14ad8cfd20pdwwlf3d2wxmz7kz6x6rf48x38za"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/287e4758f6f1df0152d68577abd91478c4a3f4ab/recipes/ob-elixir"; @@ -47588,15 +48249,36 @@ license = lib.licenses.free; }; }) {}; + ob-fsharp = callPackage ({ emacs, fetchFromGitHub, fetchurl, fsharp-mode, lib, melpaBuild }: + melpaBuild { + pname = "ob-fsharp"; + version = "20170618.729"; + src = fetchFromGitHub { + owner = "juergenhoetzel"; + repo = "ob-fsharp"; + rev = "65ec2b626ac55313d8a04e746940370f615fed1e"; + sha256 = "12k6z3zsh8av3avhl2a62v475bpxpcdy56v8i248bv1wgd3ma2mi"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/89bc8c5fe6db0573109e82b3d1350d33d6d8aff5/recipes/ob-fsharp"; + sha256 = "1b9052lvr03vyizkjz3qsa8cw3pjml4kb3yy13jwh09jz5q87qbf"; + name = "ob-fsharp"; + }; + packageRequires = [ emacs fsharp-mode ]; + meta = { + homepage = "https://melpa.org/#/ob-fsharp"; + license = lib.licenses.free; + }; + }) {}; ob-go = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ob-go"; - version = "20170324.932"; + version = "20170731.1057"; src = fetchFromGitHub { owner = "pope"; repo = "ob-go"; - rev = "1f582d5c16ff032207a40d49be0727190a227912"; - sha256 = "1i0c7z1jfrd39pfdfr67qcisv578mmi6i73jnm9zliygk1mryggf"; + rev = "28a0250cd969974936e44dfdccb0265632d25f84"; + sha256 = "1g595miqn7wdmphvgi06ijqzjy801nal226kbghk9p002s3xzzn0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3afb687d6d3d1e52336ca9a7343278a9f37c3d54/recipes/ob-go"; @@ -47612,12 +48294,12 @@ ob-http = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ob-http"; - version = "20170411.1842"; + version = "20170920.2251"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-http"; - rev = "5fd0e99630e07c5e64f2483c6d46aefdd37677d2"; - sha256 = "1i5la27m36xfc8jwmz5i0yiim9ddmfaqjpahxgpbf63zks555vpk"; + rev = "c4da6d47b3f96c31c00f9eaaf712b59afe00daef"; + sha256 = "0rhxp7gw4d5yp6yvjcp80in22wckj4zl9siykalj0jm97hkwqmzz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/950b02f76a04f453992b8720032e8c4cec9a039a/recipes/ob-http"; @@ -47630,15 +48312,36 @@ license = lib.licenses.free; }; }) {}; + ob-hy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-hy"; + version = "20171101.344"; + src = fetchFromGitHub { + owner = "brantou"; + repo = "ob-hy"; + rev = "a3512f274709dc4ab6c18d7955d361f8715505f0"; + sha256 = "1i796041svy7njjl3aqaxzjydmm24q688vpxvqd0pj5hyajqdgqw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/12a7a7dba169010a3a047f961010236a203c16c2/recipes/ob-hy"; + sha256 = "18a8fpda0f28wxmjprhd9dmz7bpk1j3iayl20lqffrcal6m4f1h7"; + name = "ob-hy"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/ob-hy"; + license = lib.licenses.free; + }; + }) {}; ob-ipython = callPackage ({ dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ob-ipython"; - version = "20160918.1001"; + version = "20171021.839"; src = fetchFromGitHub { owner = "gregsexton"; repo = "ob-ipython"; - rev = "cfdd9c00e6286d31d647defdb813b7aabfadcbff"; - sha256 = "0i441jwc32fnkd8rba512z373jaind8sdb20hf2yma7ny2iawcyk"; + rev = "c93d26342c28d1ba01ab46406f7f277128d85e6d"; + sha256 = "08p7sm40s0sb4cplh92krp18jkjm62m5wsivcpzyln7ambb9ml3y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/557c36e86844c211f2d2ee097ce51ee9db92ea8b/recipes/ob-ipython"; @@ -47654,12 +48357,12 @@ ob-kotlin = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-kotlin"; - version = "20150312.614"; + version = "20170725.718"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-kotlin"; - rev = "c494f50184d25e196c009bf5cc105c4931b9464d"; - sha256 = "01cjwg27m0iqndkwwl0v5w8vvk270xvi81za3y5hyrmb7dq6bfy7"; + rev = "3b2f57e9944cfc36f2714dc550db42159904929a"; + sha256 = "1fgfl4j0jgz56a1w8h2mvnzisz123c1xz7ga380bg1hmy44dbv5j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7aa74d349eb55aafddfc4327b6160ae2da80d689/recipes/ob-kotlin"; @@ -47675,12 +48378,12 @@ ob-lfe = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-lfe"; - version = "20150701.655"; + version = "20170725.720"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-lfe"; - rev = "d50a5d76e389501504e060a7005f20b96c895594"; - sha256 = "1mk7qcf4svf4yk4mimcyhbw5imq3zps2vh2zzq9gwjcn17jnplhn"; + rev = "f7780f58e650b4d29dfd834c662b1d354b620a8e"; + sha256 = "1ricvb2wxsmsd4jr0301pk30mswx41msy07fjgwhsq8dimxzmngp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d595d3b93e6b25ece1cdffc9d1502e8a868eb538/recipes/ob-lfe"; @@ -47696,12 +48399,12 @@ ob-ml-marklogic = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ob-ml-marklogic"; - version = "20160508.932"; + version = "20170622.1133"; src = fetchFromGitHub { owner = "ndw"; repo = "ob-ml-marklogic"; - rev = "58e101a8b79d408d5c9da2fbcbc0f38e80eb7208"; - sha256 = "15mzra45jcihgvddv69yxpml34hy15yz2hxcxz6a4la8vk6mw3ky"; + rev = "f678af0f440b3030e311ed6fbc444200be04da91"; + sha256 = "1fszg6bn927bi1dx4zgiq0wr7zxrjv8sjrwgn9mansbljszbmccm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/edce412552d4798450493e0a3dbe768f38f77cc7/recipes/ob-ml-marklogic"; @@ -47717,12 +48420,12 @@ ob-mongo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-mongo"; - version = "20161130.152"; + version = "20170720.1219"; src = fetchFromGitHub { owner = "krisajenkins"; repo = "ob-mongo"; - rev = "d64a507c2f9e2a1f8062acae50199541fc23be65"; - sha256 = "0xlddh28z9afqj8j9brcncrbwsyqzmv432zayn9ajjj1vk1avsxg"; + rev = "371bf19c7c10eab2f86424f8db8ab685997eb5aa"; + sha256 = "02k4gvh1nqhn0h36h77vvms7xwwak8rdddibbidsrwwspbr4qr1s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e020ea3ef89a3787d498c2f698c82c5073c9ee32/recipes/ob-mongo"; @@ -47738,12 +48441,12 @@ ob-nim = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ob-nim"; - version = "20160830.220"; + version = "20170809.1130"; src = fetchFromGitHub { owner = "lompik"; repo = "ob-nim"; - rev = "050b165817e62067b0d686d96e25bc12fb9c7d84"; - sha256 = "18v4f23rxbl76ldzxmga1dlkammdy87aslk2p6x9l5gjr9w1xz3a"; + rev = "bf1642cb93f0a898804dc13fd9408d2964403bd2"; + sha256 = "1xgi863wn1pvlsajmldd706k1dk7d7pa6b9nbgsh34kzchvhd75s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7263ebadeabe36359c14ffb36deda2bc75f2ca61/recipes/ob-nim"; @@ -47759,12 +48462,12 @@ ob-php = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-php"; - version = "20160505.219"; + version = "20171017.2206"; src = fetchFromGitHub { owner = "stardiviner"; repo = "ob-php"; - rev = "fd30c5e945a08b605725cf51808b3512ca885777"; - sha256 = "02vmy3nnk4yyjbp3r7zzv9sb3frv7kbj4a2a855iqa0isp8nhyfi"; + rev = "c281c1e17f0fd7de4adb6c3e6029dc2bd76beca1"; + sha256 = "1c0967cpimmr5j7ymr4654y62f615dfrv1h3385i7n57jsvqr6bs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/940a22790c9e5fd2f7729c71efad907683cc392c/recipes/ob-php"; @@ -47840,6 +48543,27 @@ license = lib.licenses.free; }; }) {}; + ob-rust = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-rust"; + version = "20170730.759"; + src = fetchFromGitHub { + owner = "micanzhang"; + repo = "ob-rust"; + rev = "f23d93725c21ab95a44cb4d2c0c4ab0489bd55d9"; + sha256 = "0indljqh6idfwza286gi9dkqwrndbnny4a5f7csz8gssmn0x3i30"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/843affc2fd481647c5377bf9a96b636b39718034/recipes/ob-rust"; + sha256 = "1syzwh399wcwqhg1f3fvl12978dr574wji7cknqvll3hyh0zwd65"; + name = "ob-rust"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-rust"; + license = lib.licenses.free; + }; + }) {}; ob-sagemath = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, sage-shell-mode }: melpaBuild { pname = "ob-sagemath"; @@ -47847,8 +48571,8 @@ src = fetchFromGitHub { owner = "stakemori"; repo = "ob-sagemath"; - rev = "1d99614509624d7bfd457325ca52f3bf1059f4d5"; - sha256 = "11qsh0lfb1kqiz0cfx7acfpyw0a90bh7r86a4h31d4xl1xfq94sx"; + rev = "68d3e516c712bc7aa5042f305f3eb5bbb6d656c2"; + sha256 = "1yr7d3ayrdnycapnhc08zyf6b9gp7xw0pngz90h75s6j33pisx30"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc074af316a09906a26ad957a56e3dc272cd813b/recipes/ob-sagemath"; @@ -47906,12 +48630,12 @@ ob-spice = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org, spice-mode }: melpaBuild { pname = "ob-spice"; - version = "20160815.2249"; + version = "20170801.2222"; src = fetchFromGitHub { owner = "stardiviner"; repo = "ob-spice"; - rev = "0ea589f852de4b1eb239c985be9f960367aa5c1a"; - sha256 = "10cyqjqbv87n3d1m3v6vxlyk3xzazms6876ay30nhkd4dbsw8kak"; + rev = "b296232e28f61366265084fafb2f47876d987069"; + sha256 = "1s2jyx75xkqbkm9g4i3h1f0rz9ms5dbs7zqavdiswq9mr8qx1kwq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ob-spice"; @@ -47948,12 +48672,12 @@ ob-swift = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ob-swift"; - version = "20151204.2311"; + version = "20170921.625"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-swift"; - rev = "f376af0d86fb410e41289df59a0c2625954c9067"; - sha256 = "071rl0bvhwh5vqbl7n84shvzgqgwg2f5l9vb8wfs4y24hsqfgxmz"; + rev = "ed478ddbbe41ce5373efde06b4dd0c3663c9055f"; + sha256 = "1vwg10d33mwb32bpdbpghfihy3ryiqbc4yydpb5hfv3v5k83vs0x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b401383966398d3223032c59baa920ce594e5fef/recipes/ob-swift"; @@ -47969,12 +48693,12 @@ ob-translate = callPackage ({ fetchFromGitHub, fetchurl, google-translate, lib, melpaBuild, org }: melpaBuild { pname = "ob-translate"; - version = "20160411.124"; + version = "20170720.1219"; src = fetchFromGitHub { owner = "krisajenkins"; repo = "ob-translate"; - rev = "bba3bd1e2dbb5c672543129460c2713f78b26120"; - sha256 = "086z3smcfn5g599967vmxj3akppyqk9d64acm8zzj76zj29xfk1k"; + rev = "9d9054a51bafd5a29a8135964069b4fa3a80b169"; + sha256 = "143dq3wp3h1zzk8ihj8yjw9ydqnf48q7y8yxxa0ly7f2v1li84bc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4d89e4006afc51bd44e23f87a1d1ef1140489ab3/recipes/ob-translate"; @@ -48008,6 +48732,27 @@ license = lib.licenses.free; }; }) {}; + ob-uart = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-uart"; + version = "20170521.158"; + src = fetchFromGitHub { + owner = "andrmuel"; + repo = "ob-uart"; + rev = "90daeac90a9e75c20cdcf71234c67b812110c50e"; + sha256 = "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5334f1a48b8ea6b7a660db27910769093c76113d/recipes/ob-uart"; + sha256 = "1dkbyk8da0zw784dgwi8njnz304s54341dyfzvlb0lhcn41dmkz7"; + name = "ob-uart"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-uart"; + license = lib.licenses.free; + }; + }) {}; oberon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "oberon"; @@ -48032,12 +48777,12 @@ obfusurl = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "obfusurl"; - version = "20170325.802"; + version = "20170809.824"; src = fetchFromGitHub { owner = "davep"; repo = "obfusurl.el"; - rev = "96c619fe4753062af93a12f44b67ba8aed22f2fb"; - sha256 = "176a8r4y4glrjssywvc2xzdbk987fs796zsj892xcamcmzc688na"; + rev = "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5"; + sha256 = "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/201fe11682cb06b26775a52c81b6a1258b74b4d0/recipes/obfusurl"; @@ -48074,12 +48819,12 @@ obsidian-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "obsidian-theme"; - version = "20140420.943"; + version = "20170719.248"; src = fetchFromGitHub { owner = "mswift42"; repo = "obsidian-theme"; - rev = "0f92ce87245529d5c75d6e5f7862ebbc54bdbc92"; - sha256 = "00v21iw9wwxap8jhg9035cp47fm5v2djmldq6nprv860m01xlwh1"; + rev = "f45efb2ebe9942466c1db6abbe2d0e6847b785ea"; + sha256 = "1d36mdq8b1q1x84a2nb93bwnzlpdldiafh7q7qfjjm9dsgbij73b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e90227252eb69d3eac81f5a6bd5e3a582d33f335/recipes/obsidian-theme"; @@ -48116,12 +48861,12 @@ occur-context-resize = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "occur-context-resize"; - version = "20151227.2002"; + version = "20170904.1609"; src = fetchFromGitHub { owner = "dgtized"; repo = "occur-context-resize.el"; - rev = "36e69b9d3b7c6de884a8e8822d67856b78a07f4f"; - sha256 = "1v1c2481v2xgnw8kgbbqhqkdd41lzvki9hm3iypbf3n0jxz8nnzy"; + rev = "cdee5a631ceed9337579d4090e0acf8140747f80"; + sha256 = "0h7ypw45h5rcbwx4c4mn2ps9hp84dpjp3iay2nc9zaavv05n7ysa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a2425d82b365784b17ab56af5f77c6095664c784/recipes/occur-context-resize"; @@ -48200,12 +48945,12 @@ ocp-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ocp-indent"; - version = "20170412.12"; + version = "20170803.222"; src = fetchFromGitHub { owner = "OCamlPro"; repo = "ocp-indent"; - rev = "ef97b02aad386203da7066d159cc7d847dc3f55f"; - sha256 = "1sx3bbp75v4xkd4aikrap735rp00klzxz22qsij76v0r7dhrdlr4"; + rev = "002e047d848beb0e0b77538f0674dd171efc9d66"; + sha256 = "1al44f7nrh4jbx4vdpbps92pk6px0my43b24brinck186j8d7vc4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e1af061328b15360ed25a232cc6b8fbce4a7b098/recipes/ocp-indent"; @@ -48263,12 +49008,12 @@ octopress = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "octopress"; - version = "20161222.343"; + version = "20170813.615"; src = fetchFromGitHub { owner = "aaronbieber"; repo = "octopress.el"; - rev = "85bab12adbd985767233eb1622c4b8f7c1fe7e1a"; - sha256 = "012g0mf8g602f53x3bc35ahy4bq31s3m7cv13hm46zj8syvdckvq"; + rev = "b4c25df9e3ccf49ac27c0a152daa4e27d1247d56"; + sha256 = "0zidh929sc1wi695ibzglbybfvxz2rj1365mij97088wwdk5dyz8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7205d3d43797755077f19f57f531b4b39e77bae3/recipes/octopress"; @@ -48302,6 +49047,27 @@ license = lib.licenses.free; }; }) {}; + old-norse-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "old-norse-input"; + version = "20170816.1142"; + src = fetchFromGitHub { + owner = "david-christiansen"; + repo = "emacs-old-norse-input"; + rev = "c2e21ee72c3768e9152aff6baf12a19cde1d0c53"; + sha256 = "0zybr1v91884p4ncrpr962pr02qsns6hf7kc4c5gyad8sg4pbvxh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/84780a6ebd1b2294b86ae8c6df5bd6521cf4e85a/recipes/old-norse-input"; + sha256 = "1g00h6ykf61ckr6f3r17j72w3h04p5q65aa3rhr5llk3jk1wv331"; + name = "old-norse-input"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/old-norse-input"; + license = lib.licenses.free; + }; + }) {}; oldlace-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "oldlace-theme"; @@ -48326,12 +49092,12 @@ olivetti = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "olivetti"; - version = "20160912.1758"; + version = "20171017.210"; src = fetchFromGitHub { owner = "rnkn"; repo = "olivetti"; - rev = "de2716cfb1f4dc82a08093cdd00200e9bb1f07ef"; - sha256 = "0gfjrfhmjvq2zkyp0bgxymdv6r7p4x40aicvv1r61z29nz4dbyn2"; + rev = "4c8b62f54ec4151cf8b48a7e1f904d3b4a7d73d6"; + sha256 = "06hyn8mmi7ikgwpyds17z35rjwxrlwjkvv1dmjcp4jirnqbp9lmk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/697334ca3cdb9630572ae267811bd5c2a67d2a95/recipes/olivetti"; @@ -48368,12 +49134,12 @@ omni-kill = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "omni-kill"; - version = "20150526.2349"; + version = "20171016.1440"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-kill.el"; - rev = "4c8dbb6b2c9f1afc0f82077c04eab022e5387e85"; - sha256 = "1925mh47n4x9v780qp5l6cksl64v9mpyb87znsg93x6sxr0cvv4c"; + rev = "904549c8fd6ac3cf22b5d7111ca8944e179cffea"; + sha256 = "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c24df34d2fa5d908223379e909148423ba327ae2/recipes/omni-kill"; @@ -48389,12 +49155,12 @@ omni-log = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: melpaBuild { pname = "omni-log"; - version = "20150604.1038"; + version = "20170930.535"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-log.el"; - rev = "21b81c2358e2a17a636c6494eb084241d06962b7"; - sha256 = "1241jfckijwimm6b9xfp2rjap5va5hkphcvj3qflkprq2y33y8s3"; + rev = "11e959473c1bd9415d0cda785940c36ba6ad44ab"; + sha256 = "081vq3wzl8w9yz1356np6h27d7yi5j8i3va9sc2flfwylmw1y9gr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/47bb19bb7b4713c3fd82c1035a2fe66588c069e3/recipes/omni-log"; @@ -48410,12 +49176,12 @@ omni-quotes = callPackage ({ dash, f, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, omni-log, s }: melpaBuild { pname = "omni-quotes"; - version = "20170416.1416"; + version = "20170425.1132"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-quotes.el"; - rev = "be1e719c046ca468275ed844989320f48358f2cd"; - sha256 = "0sc4mhvxj91rs4h1vg3x759fq77cmlzkqyn5wv456w3w3g2narxw"; + rev = "454116c1dd6581baaeefd6b9310b1b6b7a5c36d0"; + sha256 = "1h8lrpi5wizi5vncdz83cxlx7c71xw3sw89sfg462zfbz2sq8afl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3402524f79381c99fdeb81a6a5a9241c918811be/recipes/omni-quotes"; @@ -48431,12 +49197,12 @@ omni-scratch = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "omni-scratch"; - version = "20170416.329"; + version = "20171009.1451"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-scratch.el"; - rev = "0da549c1386f93ed4de201bf8779ba64ddc91347"; - sha256 = "0qfi54z2jqrkrdzriandwc9myzc27sxsx7nf20jf5qvcdgn13cl1"; + rev = "9eee3161e5cb6df58618548a2173f4da7d194814"; + sha256 = "1cppy9p5k8737jjgjlmfqqfdx048kpjn5cx7iw0dxal180y3i39g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6ba3e128a7fe4476d82266506b18ba9984c37944/recipes/omni-scratch"; @@ -48452,12 +49218,12 @@ omni-tags = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, pcre2el }: melpaBuild { pname = "omni-tags"; - version = "20150513.1053"; + version = "20170426.1409"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-tags.el"; - rev = "f949a062e8dab12e8fda39eec465d53a2f23e314"; - sha256 = "01nawy8nadi9yspnql4wq8ssn5xgaf34yknxdjyhkswjr3bql3f4"; + rev = "8f0f6c302fab900b7681e5c039f90850cbbabd33"; + sha256 = "0cqj4h4bdhmb0r6f2xx9g6cs3599m4j3snkrvsgddaq8c6mg47w0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c77e57f41484c08cae9f47c4379d1752ccf43ce2/recipes/omni-tags"; @@ -48491,19 +49257,19 @@ license = lib.licenses.free; }; }) {}; - omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, fetchFromGitHub, fetchurl, flycheck, json ? null, lib, melpaBuild, popup, s, shut-up }: + omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, s, shut-up }: melpaBuild { pname = "omnisharp"; - version = "20170404.2224"; + version = "20171030.2201"; src = fetchFromGitHub { owner = "OmniSharp"; repo = "omnisharp-emacs"; - rev = "93c188938305533ea34ceca51dd53c7841598ada"; - sha256 = "0ynjxf0r9i5yb98pnhrcm55shhv4gqfr0wigfkz83yqzpsjzq6fn"; + rev = "906e29a702237f039f24c215fdb561a728a3df1b"; + sha256 = "1l1rzl7y5j2wmlgx7ivivwvwvbn4h7pg5s7yqsk65n9kb59ha8s8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/68bdb7e0100e120b95e9416398127d83530a221d/recipes/omnisharp"; - sha256 = "0dwya22y92k7x2s223az1g8hmrpfmk1sgwbr9z47raaa8kd52iad"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp"; + sha256 = "0gh0wwdpdx2cjf95pcagj52inf7mrmiq7x8p0x5c7lvl4pfzhh87"; name = "omnisharp"; }; packageRequires = [ @@ -48511,8 +49277,9 @@ cl-lib csharp-mode dash + emacs + f flycheck - json popup s shut-up @@ -48606,24 +49373,6 @@ license = lib.licenses.free; }; }) {}; - oneonone = callPackage ({ fetchurl, hexrgb, lib, melpaBuild }: melpaBuild { - pname = "oneonone"; - version = "20170416.858"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/oneonone.el"; - sha256 = "0ag62z31mb5n50m9qph2ww945pr71j95c5xv7krna1iq01qr8ji1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/oneonone"; - sha256 = "0v4nvhzgq97zbi18jd3ds57yh1fpv57b2a1cd7r8jbxwaaz3gpg9"; - name = "oneonone"; - }; - packageRequires = [ hexrgb ]; - meta = { - homepage = "https://melpa.org/#/oneonone"; - license = lib.licenses.free; - }; - }) {}; opam = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "opam"; @@ -48687,15 +49436,36 @@ license = lib.licenses.free; }; }) {}; + opencc = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "opencc"; + version = "20170722.116"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "emacs-opencc"; + rev = "8c539f72669ba9a99d8b5198db5ea930897ad1b9"; + sha256 = "140s88z0rsiylm8g1mzgc50ai38x79j004advin6lil5zcggxq3i"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/71bc5476b3670a9f5c3d3682c2e7852fc6c5fe60/recipes/opencc"; + sha256 = "1dd62x0h3imil4g3psndxykp45jf83fm4afxcvvyayj45z099f4r"; + name = "opencc"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/opencc"; + license = lib.licenses.free; + }; + }) {}; opencl-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "opencl-mode"; - version = "20160220.909"; + version = "20170816.549"; src = fetchFromGitHub { owner = "salmanebah"; repo = "opencl-mode"; - rev = "bb39190bb4fdffa188ce4e6849853a07c682b999"; - sha256 = "094r6fx1s76m8anqqg2qrddidn1dp08kmv8p8md27yy9mm49d91n"; + rev = "6e69434d0fa6e11a542acad370611bba18d3bc5c"; + sha256 = "00vhmbfh51mncx5xnzv96kbb5r6r27xw6xwvi7gf454zbvcibrws"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d97575fdae88d55b55686aa6814f858813cad171/recipes/opencl-mode"; @@ -48811,6 +49581,27 @@ license = lib.licenses.free; }; }) {}; + orca = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "orca"; + version = "20171030.1216"; + src = fetchFromGitHub { + owner = "abo-abo"; + repo = "orca"; + rev = "5e1744afb793dda744ddc6fe342144b5e90bea08"; + sha256 = "0gqgs3rmdzm5vqk8azgzwannxjifvrf5fj40n543d0066c2dfsfi"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f4d9cf89c58a9b36b7c2a42de2aecb3b60001908/recipes/orca"; + sha256 = "012ndbrgm58r09snhvi476rw0lq4m913y0slc0cxb688p9wgz5w3"; + name = "orca"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/orca"; + license = lib.licenses.free; + }; + }) {}; org-ac = callPackage ({ auto-complete-pcmp, fetchFromGitHub, fetchurl, lib, log4e, melpaBuild, yaxception }: melpaBuild { pname = "org-ac"; @@ -48856,12 +49647,12 @@ org-alert = callPackage ({ alert, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "org-alert"; - version = "20160701.1900"; + version = "20170724.2116"; src = fetchFromGitHub { owner = "groksteve"; repo = "org-alert"; - rev = "685c18aa5ce994360c7f9e8bbf49590c412187ac"; - sha256 = "0gkv2sfl9nb64qqh5xhgq68r9kfmsny3vpcmnzk2mqjcb9nh657s"; + rev = "3b7417ac12f2710e88f8dff538670621064ef8bc"; + sha256 = "1hyl4b2r7wzdfr2m7x8pgpylia3z15fihn679xdiyc32rzy7k5vk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2976b7f9271bc46679a5774ff5f388b81a9f0cf8/recipes/org-alert"; @@ -48898,12 +49689,12 @@ org-autolist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-autolist"; - version = "20150922.705"; + version = "20170924.1201"; src = fetchFromGitHub { owner = "calvinwyoung"; repo = "org-autolist"; - rev = "da332fadcd9be4c5eb21c5e98c392b89743750b2"; - sha256 = "0j6fqgzvbmvvdh0dgwsxq004wxys2zwnq9wa3idm087ynp2a2ani"; + rev = "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1"; + sha256 = "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca8e2cdb282674b20881bf6b4fc49af42a5d09a7/recipes/org-autolist"; @@ -48916,22 +49707,22 @@ license = lib.licenses.free; }; }) {}; - org-babel-eval-in-repl = callPackage ({ emacs, eval-in-repl, fetchFromGitHub, fetchurl, lib, melpaBuild }: + org-babel-eval-in-repl = callPackage ({ emacs, ess, eval-in-repl, fetchFromGitHub, fetchurl, lib, matlab-mode, melpaBuild }: melpaBuild { pname = "org-babel-eval-in-repl"; - version = "20161120.1243"; + version = "20170511.514"; src = fetchFromGitHub { owner = "diadochos"; repo = "org-babel-eval-in-repl"; - rev = "1e3189e2da14c1c2a2b793c6563597c1aa7d1122"; - sha256 = "0vf77wc1pq9dfqkrnagkxfg7klwyaichms492jsp0dh5warnw7hm"; + rev = "bfa72c582ac1531ad42aba23e2b1267ab68e31f6"; + sha256 = "1jm56zxa99s163jv02vhfrshmykvld7girq7gmj1x60g3wjzhn5k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-babel-eval-in-repl"; sha256 = "0brqp0w9s28ibws4idlm1rw09lsfa98l5wbpwm64rvlixhs6zlnx"; name = "org-babel-eval-in-repl"; }; - packageRequires = [ emacs eval-in-repl ]; + packageRequires = [ emacs ess eval-in-repl matlab-mode ]; meta = { homepage = "https://melpa.org/#/org-babel-eval-in-repl"; license = lib.licenses.free; @@ -48940,12 +49731,12 @@ org-beautify-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-beautify-theme"; - version = "20161019.1524"; + version = "20170908.1518"; src = fetchFromGitHub { owner = "jonnay"; repo = "org-beautify-theme"; - rev = "7b7a7cbd4f25f77e8bd81783f517b2b182220fd9"; - sha256 = "0nqw4apv642vqbjjqbi960zim9lkbnaszrlasf25c9fnzdg1m134"; + rev = "df6a1114fda313e1689363e196c8284fbe2a2738"; + sha256 = "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f55f1ee9890f720e058401a052e14c7411252967/recipes/org-beautify-theme"; @@ -48961,12 +49752,12 @@ org-board = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-board"; - version = "20170403.916"; + version = "20170507.858"; src = fetchFromGitHub { owner = "scallywag"; repo = "org-board"; - rev = "1daf7bbd52edec82156f0289d42fc7b190f0bc3a"; - sha256 = "0sm4gr17yi2iki28yimzk5mffp9xfpafk6abi6c6frxab0x42vg5"; + rev = "2978aee8981a2ff5c09104b2d8b055957b277078"; + sha256 = "1vbpwzzrl5vq0vwkwn0cr1w9wkfbjd9rmxbpsddm0sbx7k4m3am9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d8063ee17586d9b1e7415f7b924239826b81ab08/recipes/org-board"; @@ -48982,12 +49773,12 @@ org-bookmark-heading = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-bookmark-heading"; - version = "20160325.2359"; + version = "20170510.1008"; src = fetchFromGitHub { owner = "alphapapa"; repo = "org-bookmark-heading"; - rev = "6c8aad7bf98387875836873040e7815d8720ba84"; - sha256 = "0hhw9w5aj8rbfrifpr4djppif5hwgzdb3x1az4gdwvc2dsgd8psf"; + rev = "c535fd9b430d2cc50b54a1ab550d64e20ebd5bd6"; + sha256 = "0v2321lzivxd35174xgsnc95g49dlcgj8lzb6nlid1ri38fhqwyl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eaadbd149399c6e3c48ac5cbeedeb29a3f5791f1/recipes/org-bookmark-heading"; @@ -49000,22 +49791,22 @@ license = lib.licenses.free; }; }) {}; - org-brain = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + org-brain = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-brain"; - version = "20170404.2329"; + version = "20171004.1305"; src = fetchFromGitHub { owner = "Kungsgeten"; repo = "org-brain"; - rev = "9424b8002238a1ffb67e78e25bc997826f37dc14"; - sha256 = "0vn2s8p21kfnabva7ikal87hl4asgdj6hm7597hfx45w60vakn9a"; + rev = "35d46695ceffff4069e66fa2a4f039509f1a3c7e"; + sha256 = "0c0jps0gxsk3m8s78yp8141wh7g2nx8acd1jc0v4ffmlr8qi2csj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/47480fbae06e4110d50bc89db7df05fa80afc7d3/recipes/org-brain"; sha256 = "0c05c6lbr740nnjp9p34padrbrc3q1x2pgylkyhsxadm4mfsvj0c"; name = "org-brain"; }; - packageRequires = [ dash emacs org ]; + packageRequires = [ emacs org ]; meta = { homepage = "https://melpa.org/#/org-brain"; license = lib.licenses.free; @@ -49045,12 +49836,12 @@ org-caldav = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-caldav"; - version = "20160614.1342"; + version = "20170615.724"; src = fetchFromGitHub { owner = "dengste"; repo = "org-caldav"; - rev = "f8638d459c7294d44ccd7792b4216541c181d891"; - sha256 = "0vjw8fn6ipi2fg5wkj4jq8cs3m7694xgccy1h1n774w12bby3xhk"; + rev = "07e6ccda6756754a115d567f2ad3a760514b731d"; + sha256 = "0gaqkbdqkb7v6k2bg21c8c7c38g9rkgk8gy79s4gi6hzd4j717mp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-caldav"; @@ -49084,36 +49875,36 @@ license = lib.licenses.free; }; }) {}; - org-chinese-utils = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + org-category-capture = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { - pname = "org-chinese-utils"; - version = "20170313.2148"; + pname = "org-category-capture"; + version = "20170819.1047"; src = fetchFromGitHub { - owner = "tumashu"; - repo = "org-chinese-utils"; - rev = "f44d7114899102f1e1109bb7aeeab4330281ff94"; - sha256 = "127nnjdd7p3sy38pd39ivrpxgnzdhbh6sf99667s7qxryfx837y8"; + owner = "IvanMalison"; + repo = "org-projectile"; + rev = "8cec702f602b18da90b3d6207888a887b8e07750"; + sha256 = "1prfkkfsbmprcq4irsj1qgixgwrsddz2zb9gwl8r3rq8qwfn9lhn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-chinese-utils"; - sha256 = "0bxx81zigbv5vv3aficd65p03lgpp2iknj8qgvn2k4wgbv56j4q4"; - name = "org-chinese-utils"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6760daac1ef9d9d7ba07e2fc9668873020f901f1/recipes/org-category-capture"; + sha256 = "0l5n71h9lc8q9k0sb5ghzwb81lah4l1ykc06shfl9zw5lqqvahav"; + name = "org-category-capture"; }; - packageRequires = []; + packageRequires = [ emacs org ]; meta = { - homepage = "https://melpa.org/#/org-chinese-utils"; + homepage = "https://melpa.org/#/org-category-capture"; license = lib.licenses.free; }; }) {}; org-cliplink = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-cliplink"; - version = "20160819.900"; + version = "20170724.413"; src = fetchFromGitHub { owner = "rexim"; repo = "org-cliplink"; - rev = "4c7c126ad3421ef076e4eb6358c57389b40a5e53"; - sha256 = "1z514mrppdd3yir6apyf12nqhqsmyzlrh1xfvcb8m6q2f12ny7f2"; + rev = "16c2cad9c3bafb71fea70f70c1e584307a6dee01"; + sha256 = "1k3vcr4fr290pg00gvb9q9wpvq1fk6pzgw95x12fdrig5lp48hih"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7ddb13c59441fdf4eb1ba3816e147279dea7d429/recipes/org-cliplink"; @@ -49150,12 +49941,12 @@ org-clock-csv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org, s }: melpaBuild { pname = "org-clock-csv"; - version = "20170326.1041"; + version = "20170904.1745"; src = fetchFromGitHub { owner = "atheriel"; repo = "org-clock-csv"; - rev = "0bae215df11e5602b07294e83b595447ae73ca0d"; - sha256 = "17im4njl1w5wm0rxvib2g7v0ibg1p6n0ibq480wwz204jd98q4gv"; + rev = "20ab6ee4395bedc0a7b8dfaf7b51f2c63dc8d2c6"; + sha256 = "00lcvmls7zlkqmsi0yfiihyxv49803jlc9khcbqawxlkijvr65pm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e023cb898699f76f6c3d9ffe8162aacfc6a8c34f/recipes/org-clock-csv"; @@ -49318,12 +50109,12 @@ org-download = callPackage ({ async, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-download"; - version = "20170213.1151"; + version = "20170924.2309"; src = fetchFromGitHub { owner = "abo-abo"; repo = "org-download"; - rev = "137c3d2aa083283a3fc853f9ecbbc03039bf397b"; - sha256 = "0c4vvpccmc60bavywsd0lijzyzchs6cdmp8y36d70lmp4s66863v"; + rev = "14261c2619be224fc4c499624abc2cba3663e7f5"; + sha256 = "0d8lcg9gnzf5bpn1z83i5nni444mzy6mlqggadsrdav9bdf8cfy2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/edab283bc9ca736499207518b4c9f5e71e822bd9/recipes/org-download"; @@ -49420,22 +50211,22 @@ license = lib.licenses.free; }; }) {}; - org-edit-latex = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + org-edit-latex = callPackage ({ auctex, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-edit-latex"; - version = "20170408.2046"; + version = "20170908.822"; src = fetchFromGitHub { owner = "et2010"; repo = "org-edit-latex"; - rev = "a3faf83fe13910596c370a0d4b9a69f9b65f6f99"; - sha256 = "13q2xd8h0i4ain1y68qnvipmilly9ivdsv2glvnz5ji8k9f5wajk"; + rev = "1f228310ef2f3f2959a527f6d99e42ce977384c8"; + sha256 = "1zfimgnmn7nqaq8aglyly55k5dr548467masr2g4x3m0z1by1z6b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-edit-latex"; sha256 = "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry"; name = "org-edit-latex"; }; - packageRequires = [ emacs ]; + packageRequires = [ auctex emacs ]; meta = { homepage = "https://melpa.org/#/org-edit-latex"; license = lib.licenses.free; @@ -49486,12 +50277,12 @@ org-evil = callPackage ({ dash, evil, fetchFromGitHub, fetchurl, lib, melpaBuild, monitor, org }: melpaBuild { pname = "org-evil"; - version = "20161029.222"; + version = "20171004.255"; src = fetchFromGitHub { owner = "GuiltyDolphin"; repo = "org-evil"; - rev = "5349f4f50d8b16ac4d38ef70a2a7562632e193cc"; - sha256 = "112rr4cwldwnwhg0qdq6khfl41azxp0c4j5l4il06560s6h7dmjq"; + rev = "aae5688c15cef9f2f6105d395dab36b163d5af34"; + sha256 = "01ablfw0prcb4bwsaa6fbqc80xz539a48psvnmddz98c8yjhb9g7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/17a4772d409aa5dbda5fb84d86c237fd2653c70b/recipes/org-evil"; @@ -49527,12 +50318,12 @@ org-gcal = callPackage ({ alert, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org, request-deferred }: melpaBuild { pname = "org-gcal"; - version = "20161115.357"; + version = "20170420.1401"; src = fetchFromGitHub { owner = "myuhe"; repo = "org-gcal.el"; - rev = "d32031f7c488be0d9845c47cc1452d6d6489e561"; - sha256 = "0b3jwrfr55hqar5kyhv4wg05x21gzxab0n93xm1371vimhahgmbl"; + rev = "bdc704842da000a1cffb8f155ef3887c5e1d0446"; + sha256 = "0nbwxmc2arssy1ll416i6chb0rx239jh2fm1lcylhdg3af25rsbj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1c2d5bd8d8f2616dae19b9232d9442fe423d6e5e/recipes/org-gcal"; @@ -49611,12 +50402,12 @@ org-iv = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, impatient-mode, lib, melpaBuild, org }: melpaBuild { pname = "org-iv"; - version = "20160609.1854"; + version = "20171001.322"; src = fetchFromGitHub { owner = "kuangdash"; repo = "org-iv"; - rev = "40fa39ae680794cd493dfa8624e5eff4d04c2363"; - sha256 = "1zn1bvk2kgd6a969m1d63v8ax52lanvb1h2w62ffpxlkap3kl6m8"; + rev = "7f2bb1b32647655fd9d6684f6f09dcc66b61b0cd"; + sha256 = "0s3fi8sk7jm5vr0fz20fbygm4alhpirv0j20jfi1pab14yhhf34h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e7db0c34f0f6fb9c3b9e581a74304cc9a26ed342/recipes/org-iv"; @@ -49629,36 +50420,15 @@ license = lib.licenses.free; }; }) {}; - org-jekyll = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: - melpaBuild { - pname = "org-jekyll"; - version = "20130508.239"; - src = fetchFromGitHub { - owner = "juanre"; - repo = "org-jekyll"; - rev = "66300a1a6676ab168663178e7a7c954541a39992"; - sha256 = "0whv8nsla93194jjpxrhlr6g230spdxbac8ibmzmyad075vx97z5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8e6059b532fc95e0251a1edb7b1e29d03477b3f2/recipes/org-jekyll"; - sha256 = "0jh3rla8s8prprvhnlg0psdrj7swz7v6vf2xy1m6ff66p9saiv8i"; - name = "org-jekyll"; - }; - packageRequires = [ org ]; - meta = { - homepage = "https://melpa.org/#/org-jekyll"; - license = lib.licenses.free; - }; - }) {}; org-jira = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "org-jira"; - version = "20170416.2152"; + version = "20171017.2015"; src = fetchFromGitHub { owner = "ahungry"; repo = "org-jira"; - rev = "ab86b343634acaaa04b81ecea511a38e975977d1"; - sha256 = "19sd42w91gzhd0qxgymi09ms0kn6yhv3kdpky1n6l5mkpbv3kp39"; + rev = "ff048833113bac1ee67284826a6c3a4cd70793b4"; + sha256 = "071z37sv6fw1dggi2ckphb1srzvanwnmy0xbsa3b2pfpv4yvvdhm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/730a585e5c9216a2428a134c09abcc20bc7c631d/recipes/org-jira"; @@ -49674,12 +50444,12 @@ org-journal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-journal"; - version = "20170221.612"; + version = "20170928.231"; src = fetchFromGitHub { owner = "bastibe"; repo = "org-journal"; - rev = "30ca909d50737d32b3790c57fd2e13915fccfe97"; - sha256 = "0j60ka5klx97swa20ldcm1y8rs5ib0jc0zz3vavhgdg0nhc7w69p"; + rev = "06402de02461338503bf034ceca44c3a5a898778"; + sha256 = "1myrxs1s51vpv3a47fbprsh4b17ylglxqv2nak5i1g2834plhpgv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/org-journal"; @@ -49692,6 +50462,27 @@ license = lib.licenses.free; }; }) {}; + org-link-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "org-link-minor-mode"; + version = "20170805.1152"; + src = fetchFromGitHub { + owner = "seanohalpin"; + repo = "org-link-minor-mode"; + rev = "7b92df60f3fee7f609d649d80ef243b45771ebea"; + sha256 = "1lz7qj57s391ssawmccvhgxv1w99fj1m9rg3g4pymdl3sgdcz4g4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b1d2add7baf96c9a18671766d61c8aa028756796/recipes/org-link-minor-mode"; + sha256 = "1akb670mzzhmldw2202x3k6b7vwfcn0rs55znpxsrc4iqihdgka3"; + name = "org-link-minor-mode"; + }; + packageRequires = [ org ]; + meta = { + homepage = "https://melpa.org/#/org-link-minor-mode"; + license = lib.licenses.free; + }; + }) {}; org-link-travis = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-link-travis"; @@ -49734,55 +50525,15 @@ license = lib.licenses.free; }; }) {}; - org-mac-iCal = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "org-mac-iCal"; - version = "20140107.519"; - src = fetchgit { - url = "git://orgmode.org/org-mode.git"; - rev = "1dfdb8193251ebf3a5e38834ccd5c04204159c5d"; - sha256 = "1l92143firgpl071k3k5nw3633951sn0ibvcni2221wqc3397n2k"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ee69e5e7b1617a29919d5fcece92414212fdf963/recipes/org-mac-iCal"; - sha256 = "1ilzvmw1x5incagp1vf8d9v9mz0krlv7bpv428gg3gpqzpm6kksw"; - name = "org-mac-iCal"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/org-mac-iCal"; - license = lib.licenses.free; - }; - }) {}; - org-mac-link = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "org-mac-link"; - version = "20170105.1723"; - src = fetchgit { - url = "git://orgmode.org/org-mode.git"; - rev = "1dfdb8193251ebf3a5e38834ccd5c04204159c5d"; - sha256 = "1l92143firgpl071k3k5nw3633951sn0ibvcni2221wqc3397n2k"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b86c666ee9b0620390a250dddd42b17cbec2409f/recipes/org-mac-link"; - sha256 = "02rmhrwikppppw8adnzvwj43kp9wsyk60csj5pygg7cd7wah7khw"; - name = "org-mac-link"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/org-mac-link"; - license = lib.licenses.free; - }; - }) {}; org-mime = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-mime"; - version = "20170218.501"; + version = "20171014.141"; src = fetchFromGitHub { owner = "org-mime"; repo = "org-mime"; - rev = "d540da37df26c673b83cc9aab36f2ca6cfed3481"; - sha256 = "0fcq75cjvd0fh7ic0j28ly40i95clgn5i7j1sj5infycqkrj87xc"; + rev = "db707a73379fb3b21ae6e24c6230bfd3dde7ef45"; + sha256 = "1sy5d1nnhvkan877bx2pbc16n7sy2jn5cpdsca06mrxb1m3mxzbd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/521678fa13884dae69c2b4b7a2af718b2eea4b28/recipes/org-mime"; @@ -49795,6 +50546,27 @@ license = lib.licenses.free; }; }) {}; + org-mind-map = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "org-mind-map"; + version = "20171012.1834"; + src = fetchFromGitHub { + owner = "theodorewiles"; + repo = "org-mind-map"; + rev = "cd5dbe2bded1294de1bdc881e53d691244e5c921"; + sha256 = "0x7nbgcsf0nhda4m7qrxdaa0sffkndfd59nrr09vcxap84rfwacm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3c8683ee547a6a99f8d258561c3ae157b1f427f2/recipes/org-mind-map"; + sha256 = "07wffzf4dzfj8bplwhr9yscm6l9wbz8y01j0jc8cw943z5b8pdgs"; + name = "org-mind-map"; + }; + packageRequires = [ dash emacs org ]; + meta = { + homepage = "https://melpa.org/#/org-mind-map"; + license = lib.licenses.free; + }; + }) {}; org-mobile-sync = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-mobile-sync"; @@ -49819,12 +50591,12 @@ org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-mru-clock"; - version = "20170323.308"; + version = "20171101.506"; src = fetchFromGitHub { owner = "unhammer"; repo = "org-mru-clock"; - rev = "98691aac779001d50516b12679e2a53b5192f164"; - sha256 = "02v872vmvrda94s8gpv3ylss2fvj3ja6r70rvcmannjikmjdan5k"; + rev = "10f6a7021c82dc6795f4020e89889a5a72eb8832"; + sha256 = "00f4l5w6p0l1x5ghpvbp5934m9m012fabvzb7apazwdr5c7xbd7q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b36bf1c1faa4d7e38254416a293e56af96214136/recipes/org-mru-clock"; @@ -49882,12 +50654,12 @@ org-octopress = callPackage ({ ctable, fetchFromGitHub, fetchurl, lib, melpaBuild, org, orglue }: melpaBuild { pname = "org-octopress"; - version = "20170315.441"; + version = "20170820.2115"; src = fetchFromGitHub { owner = "yoshinari-nomura"; repo = "org-octopress"; - rev = "a8a251d6940623daae58453dd91630593c2536c0"; - sha256 = "14iqxg75x7iq0wbjsir6ijbmbkapzfcxjc64kzncwa5ixgdxph3j"; + rev = "38598ef98d04076a8eb78d549907ddfde8d3a652"; + sha256 = "0bmj5wkwidj1v3b8ipligr0nkfdaxm82717nz8fqidz967q4xbk6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fba6c3c645ba903f636814b5a2bb1baca0b5283b/recipes/org-octopress"; @@ -49900,6 +50672,27 @@ license = lib.licenses.free; }; }) {}; + org-onenote = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, oauth2, org, request }: + melpaBuild { + pname = "org-onenote"; + version = "20171007.2200"; + src = fetchFromGitHub { + owner = "ifree"; + repo = "org-onenote"; + rev = "5ce5cf4edb143180e0b185ac26826d39ae5bc929"; + sha256 = "1jlnnb04ichcl155lklvjw91l8j1dvg77bv1815chak226aq4xqj"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7705ee9a8733733664b6214bf4eec15d640c6895/recipes/org-onenote"; + sha256 = "0qgmizzryb6747yd80d3nic3546f4h8vjd6c30jr99vv2ildjsfk"; + name = "org-onenote"; + }; + packageRequires = [ oauth2 org request ]; + meta = { + homepage = "https://melpa.org/#/org-onenote"; + license = lib.licenses.free; + }; + }) {}; org-outlook = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-outlook"; @@ -49924,12 +50717,12 @@ org-page = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, git, ht, htmlize, lib, melpaBuild, mustache, org, simple-httpd }: melpaBuild { pname = "org-page"; - version = "20170416.2327"; + version = "20170806.1924"; src = fetchFromGitHub { owner = "kelvinh"; repo = "org-page"; - rev = "58f51112d557d328d818c8b9cada5e3dab539de3"; - sha256 = "12kk2yn5sm4jq19kiln3giq1nnljcjyd617p0ff3r9qn5dh1qnxs"; + rev = "50430ababf73a2d090881a952e9770badaf7478b"; + sha256 = "1xph0pdcbzlxfnbhhad2jgkznrl2vs76yl3jd29ny4xsl0n3gglw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/872f163d4da58760009001472e2240f00d4d2d89/recipes/org-page"; @@ -49951,41 +50744,41 @@ license = lib.licenses.free; }; }) {}; - org-parser = callPackage ({ dash, emacs, fetchhg, fetchurl, lib, melpaBuild }: + org-parser = callPackage ({ dash, emacs, fetchhg, fetchurl, ht, lib, melpaBuild }: melpaBuild { pname = "org-parser"; - version = "20170317.2238"; + version = "20171002.2136"; src = fetchhg { url = "https://bitbucket.com/zck/org-parser.el"; - rev = "a1dd102b9cb5"; - sha256 = "06qwqfv0lz7l1fy5i2r4dbc8alkzshxcv8r3s4iy2866z2lgl7pi"; + rev = "105050acee08"; + sha256 = "1y1ikk950awxhvx4d930ymqa8ds6a0wlywzx09jvrnkvbisd4l63"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/28d55005cbce276cda21021a8d9368568cb4bcc6/recipes/org-parser"; sha256 = "06yb78mf486b986dhvqg3avflfyi271vykyars465qpk0v8ahq8h"; name = "org-parser"; }; - packageRequires = [ dash emacs ]; + packageRequires = [ dash emacs ht ]; meta = { homepage = "https://melpa.org/#/org-parser"; license = lib.licenses.free; }; }) {}; - org-password-manager = callPackage ({ fetchgit, fetchurl, lib, melpaBuild, org, s }: + org-password-manager = callPackage ({ dash, fetchgit, fetchurl, lib, melpaBuild, org, s }: melpaBuild { pname = "org-password-manager"; - version = "20170124.549"; + version = "20170701.919"; src = fetchgit { url = "https://git.leafac.com/org-password-manager"; - rev = "a982506652a2f5f4afeb338238e724d361cbc74d"; - sha256 = "0x9f0vlgawbvga56yj95pdcx1j9r51ax76xsbbyrir0iyawgh258"; + rev = "3e7058586b2ab96b12e9b1195b1db1e66e704f20"; + sha256 = "0ac0nd84y8lckapyckbdvc1wdflwz5nxm7isxcc8cp92pgqy49r2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/02ef86ffe6923921cc1246e51ad8db87faa00ecb/recipes/org-password-manager"; sha256 = "0n07k2nng3zkrcif85f1r2g2l4vha78lmrdnj590axn7l5q5fidm"; name = "org-password-manager"; }; - packageRequires = [ org s ]; + packageRequires = [ dash org s ]; meta = { homepage = "https://melpa.org/#/org-password-manager"; license = lib.licenses.free; @@ -50075,27 +50868,48 @@ license = lib.licenses.free; }; }) {}; - org-projectile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: + org-projectile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org-category-capture, projectile, s }: melpaBuild { pname = "org-projectile"; - version = "20161205.1508"; + version = "20171022.950"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "org-projectile"; - rev = "e2b78ca7fbd2e3b873d3ab9bb7196be4d7613f92"; - sha256 = "03zy2bb1ha22xpx29d8610yrqfyaiaa8vgplpx6bmixaw85mcv58"; + rev = "8cec702f602b18da90b3d6207888a887b8e07750"; + sha256 = "1prfkkfsbmprcq4irsj1qgixgwrsddz2zb9gwl8r3rq8qwfn9lhn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-projectile"; - sha256 = "1kkgi49bvdwz50x32lqdj2ii02mxv8i4dr1asr8zk6mdg0fwlqpf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/9d7a7ab98f364d3d5e93f83f0cb3d80a95f28689/recipes/org-projectile"; + sha256 = "0xdkd5pkyi6yfqi4przgp5mpklyxfxv0cww285zdlh00rzl935cw"; name = "org-projectile"; }; - packageRequires = [ dash emacs projectile ]; + packageRequires = [ dash emacs org-category-capture projectile s ]; meta = { homepage = "https://melpa.org/#/org-projectile"; license = lib.licenses.free; }; }) {}; + org-projectile-helm = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, org-projectile }: + melpaBuild { + pname = "org-projectile-helm"; + version = "20170819.826"; + src = fetchFromGitHub { + owner = "IvanMalison"; + repo = "org-projectile"; + rev = "8cec702f602b18da90b3d6207888a887b8e07750"; + sha256 = "1prfkkfsbmprcq4irsj1qgixgwrsddz2zb9gwl8r3rq8qwfn9lhn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6760daac1ef9d9d7ba07e2fc9668873020f901f1/recipes/org-projectile-helm"; + sha256 = "0x79j5yr9wsgzjf1dpp7d4xiji8hgyhr79vb973an5z2r02vnaf4"; + name = "org-projectile-helm"; + }; + packageRequires = [ emacs helm org-projectile ]; + meta = { + homepage = "https://melpa.org/#/org-projectile-helm"; + license = lib.licenses.free; + }; + }) {}; org-protocol-jekyll = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-protocol-jekyll"; @@ -50165,22 +50979,22 @@ license = lib.licenses.free; }; }) {}; - org-recent-headings = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + org-recent-headings = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, frecency, lib, melpaBuild, org }: melpaBuild { pname = "org-recent-headings"; - version = "20170417.17"; + version = "20170907.2129"; src = fetchFromGitHub { owner = "alphapapa"; repo = "org-recent-headings"; - rev = "d53f97bd8c640a06eb606b35c1c269bd3089cb54"; - sha256 = "0697nwfvkhik8i87apq2xyb4qkk10xa4s03gz6ijybxn98576hli"; + rev = "a09c2670c400c7a4fbbf0ac05d2d9226aa10e8f4"; + sha256 = "1m0v94zaz30c5p4k1s213dpg0kjs6nd92bph2zlbm37wq8znizmn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/668b79c179cbdb77c4049e7c620433255f63d808/recipes/org-recent-headings"; sha256 = "0b51pyxdk8fdbksx7h1c88sw1liwng8wkjfb1q7w7lglw6f8sjsa"; name = "org-recent-headings"; }; - packageRequires = [ dash emacs org ]; + packageRequires = [ dash emacs frecency org ]; meta = { homepage = "https://melpa.org/#/org-recent-headings"; license = lib.licenses.free; @@ -50193,8 +51007,8 @@ src = fetchFromGitHub { owner = "gongo"; repo = "org-redmine"; - rev = "4cdf9a2aea8420befd2d667d98f63c386f3e44f7"; - sha256 = "0fvzrc8k67di5qyzh13ly5wx6m34rg980yl2rqp5d3vvw8mbbsqw"; + rev = "e77d013bc3784947c46a5c53f03cd7d3c68552fc"; + sha256 = "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/017a9dd8029d083ca0c1307f2b83be187c7615e5/recipes/org-redmine"; @@ -50207,15 +51021,15 @@ license = lib.licenses.free; }; }) {}; - org-ref = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, helm-bibtex, hydra, ivy, key-chord, lib, melpaBuild, s }: + org-ref = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, helm-bibtex, hydra, ivy, key-chord, lib, melpaBuild, pdf-tools, s }: melpaBuild { pname = "org-ref"; - version = "20170413.1111"; + version = "20171019.724"; src = fetchFromGitHub { owner = "jkitchin"; repo = "org-ref"; - rev = "81204eaa39d556b6628b35627e0ccbe2799a8e68"; - sha256 = "0ppr3d7l15xwxjdhpdkczjpwhsvxm3y2jfz2ddxqpydqywhgypn4"; + rev = "8fb1275b4c0e2dd46593754e497940c49fd9da6b"; + sha256 = "0jha5qlab3gsyl8iysf1kqn2f15afvqjvnl2nyzh47llqng8yskj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/550e4dcef2f74fbd96474561c1cb6c4fd80091fe/recipes/org-ref"; @@ -50231,6 +51045,7 @@ hydra ivy key-chord + pdf-tools s ]; meta = { @@ -50322,27 +51137,69 @@ license = lib.licenses.free; }; }) {}; - org-sticky-header = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + org-static-blog = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "org-static-blog"; + version = "20170706.646"; + src = fetchFromGitHub { + owner = "bastibe"; + repo = "org-static-blog"; + rev = "9dea733006ae53902e6ec91fb11ff058229afe84"; + sha256 = "0gyhhcr54myg0r4pjc5z4mkmpc2xnw3ymykz3m0sm589q1i1ym34"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e0768d41a3de625c04ac8644ef2e05f17ee99908/recipes/org-static-blog"; + sha256 = "07vh2k7cj0cs1yzfmrrz9p03x5mbfh0bigbl93s72h1wf7i05rkw"; + name = "org-static-blog"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/org-static-blog"; + license = lib.licenses.free; + }; + }) {}; + org-sticky-header = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-sticky-header"; - version = "20170413.1844"; + version = "20170422.2135"; src = fetchFromGitHub { owner = "alphapapa"; repo = "org-sticky-header"; - rev = "f2dbfc443e7504e0468b417ef89a68b152ec1f2d"; - sha256 = "134ss1rrf1q73afvhj4k5ymlwhyagfab18y11v51j5xyx77ydaw6"; + rev = "aae8dbc7f3b33c4dd35dc38d83791d7c23757060"; + sha256 = "1vdaqi0054hgf70i1g4lxxr3ry6k855ndjysq9c8ip4x2dfzyrv4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bc9a600bd156eb766ba5ce37e16f3e8253f37ee8/recipes/org-sticky-header"; sha256 = "0ign3vjckmxp7n3625wb53qlch07c3s4l67jsvk38dhhcsg1rhnj"; name = "org-sticky-header"; }; - packageRequires = [ emacs ]; + packageRequires = [ emacs org ]; meta = { homepage = "https://melpa.org/#/org-sticky-header"; license = lib.licenses.free; }; }) {}; + org-super-agenda = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, org, s }: + melpaBuild { + pname = "org-super-agenda"; + version = "20170904.1516"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "org-super-agenda"; + rev = "00b0dbbc48b99e89f6e76e6a6b000f2f5716c40e"; + sha256 = "126v1zc5cm1sbm56z2h8v5lvlbjsnccgf80x7zm3970q0rdf0qh4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fd27b2df7594a867529de4b84c8107f82dabe2e9/recipes/org-super-agenda"; + sha256 = "1h3kqvpjq2w0n8qiqwb8wcpdy2g4ac7j6kin0943g7p5gm5yf0ra"; + name = "org-super-agenda"; + }; + packageRequires = [ dash emacs ht org s ]; + meta = { + homepage = "https://melpa.org/#/org-super-agenda"; + license = lib.licenses.free; + }; + }) {}; org-sync = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-sync"; @@ -50350,8 +51207,8 @@ src = fetchFromGitHub { owner = "arbox"; repo = "org-sync"; - rev = "1e9045e38cd6f12dc0d60e2f7bd2d414a49a5722"; - sha256 = "14zn0b8qs740ls1069kg2lwm0b9yc4qv525fg8km0hgi0yp8qw7z"; + rev = "7f02167ef805cd76def274be4d3bd0c6e41d9af8"; + sha256 = "18v56lrscpzxq5prigd1pjkx990xf57pzf1d2yj6r1grqfz235yy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/923ddbaf1a158caac5e666a396a8dc66969d204a/recipes/org-sync"; @@ -50367,12 +51224,12 @@ org-sync-snippets = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-sync-snippets"; - version = "20170319.902"; + version = "20170824.1128"; src = fetchFromGitHub { owner = "abrochard"; repo = "org-sync-snippets"; - rev = "80d89985ae52c3adf445deba851b6eadc794eef3"; - sha256 = "0vgq51im5124f7qzbqbyfyv4qbhjw4z4q1ksz3p5axd9hgir6520"; + rev = "0f264a032d371d7dbb4a7cbaf0ea2f91b5a629ca"; + sha256 = "0j680cla1zlxkwnslxwnxd5h6v1vvwr9byi1aawm9gxvz11x7vsj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/96aff3f39adfa0c68aca8ff8d3b11fbfd889327e/recipes/org-sync-snippets"; @@ -50430,12 +51287,12 @@ org-tfl = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-tfl"; - version = "20161120.932"; + version = "20170923.518"; src = fetchFromGitHub { owner = "storax"; repo = "org-tfl"; - rev = "f0405e3ad62b90ea43489bdd6312adbd77edb9f3"; - sha256 = "0cznw60ivaz42ass35sf9i62x7mf9in6z8kr8wc5i1mb7hafy2hk"; + rev = "f0d7d39106a1de5457f5160cddd98ab892b61066"; + sha256 = "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d9e97f2fee577c7e3fb42e4ca9d4f422c8907faf/recipes/org-tfl"; @@ -50598,12 +51455,12 @@ org-vcard = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-vcard"; - version = "20161001.2202"; + version = "20170929.410"; src = fetchFromGitHub { owner = "flexibeast"; repo = "org-vcard"; - rev = "58f83784c580da893c214bd729aae3ab5d285f33"; - sha256 = "122qxg0ji9c7zj52vqlf9d6276w7rdlxg4ippy6dayqs8bhkimbg"; + rev = "dbe266b79df4fb31f1766010322bf4e383ce1c03"; + sha256 = "1rcqcgxvjshbz3n1p376h618xapj03n6m7b3cxgv9gnryviyr6ax"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/df860814a09c376c9a6a2c5e7f528bbae29810b2/recipes/org-vcard"; @@ -50619,16 +51476,16 @@ org-wc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-wc"; - version = "20160204.1715"; + version = "20170727.1911"; src = fetchFromGitHub { - owner = "dato"; + owner = "tesujimath"; repo = "org-wc"; - rev = "7735d5111f779a84c40b1eb3783631e6048fb6fe"; - sha256 = "08yww77697kck1ld9xcrcx8amqdh28rdc4fsavp5d3my78qk7rac"; + rev = "d294ad7117c150445e6166fc0d88c14a8386f34e"; + sha256 = "1ijmdir2csvrmfqh9b5h57x0v3jcla5xzjamb4c7hhd87a6qd9wl"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2f0d29fb0c046d9f7c32215ea58897147f3b291/recipes/org-wc"; - sha256 = "1sa9fcy0bnn06swwq2gfrgmppd6dsbmw2mq0v73mizg3l6has1zb"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/852e0a5cee285cc9b5e2cd9e18061fc0fe91d5a6/recipes/org-wc"; + sha256 = "1yk2py4bzm2yr8vw6rbgl2hfpd21hf4fga0d5q6y779631klp6wl"; name = "org-wc"; }; packageRequires = []; @@ -50637,24 +51494,24 @@ license = lib.licenses.free; }; }) {}; - org-webpage = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, ht, htmlize, lib, melpaBuild, mustache, org, simple-httpd }: + org-web-tools = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org, s }: melpaBuild { - pname = "org-webpage"; - version = "20170318.450"; + pname = "org-web-tools"; + version = "20171014.804"; src = fetchFromGitHub { - owner = "tumashu"; - repo = "org-webpage"; - rev = "c71042f16bf33120d0d3d40e107f3f4de044ae53"; - sha256 = "1jy55qapc8fqf6r3wz4v489iyw4pxzj2hadkwsgsv1m1ha1sdvyk"; + owner = "alphapapa"; + repo = "org-web-tools"; + rev = "e9583248e838806271643770102e786671fabaf5"; + sha256 = "07kdgkkl3f7w1nxdw1j7vcm2f05sdpd06dlw7vpdd77pdbwafp3h"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1428ef6b2291d415ae2114de123652d9e378398e/recipes/org-webpage"; - sha256 = "0ndvv5kw65p5shgg0gn3rpxz3zbxgcpa6an4m4yxms0ma72xw124"; - name = "org-webpage"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/f082bfb480649d21f586b7eb331c19d57e7a84cf/recipes/org-web-tools"; + sha256 = "19zpspap85fjqg5a20ps34rcigb0ws986pj6dzd7xik8s6ia29s7"; + name = "org-web-tools"; }; - packageRequires = [ cl-lib dash ht htmlize mustache org simple-httpd ]; + packageRequires = [ dash emacs org s ]; meta = { - homepage = "https://melpa.org/#/org-webpage"; + homepage = "https://melpa.org/#/org-web-tools"; license = lib.licenses.free; }; }) {}; @@ -50679,27 +51536,48 @@ license = lib.licenses.free; }; }) {}; - org2blog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, metaweblog, org, xml-rpc }: + org2blog = callPackage ({ fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, metaweblog, org, xml-rpc }: melpaBuild { pname = "org2blog"; - version = "20160502.1821"; + version = "20170826.1843"; src = fetchFromGitHub { owner = "punchagan"; repo = "org2blog"; - rev = "fc7b2d934f2199368d9fc2a0a97d46f20c4f667b"; - sha256 = "1bqiq27ln1pl40b9dms05nla4kf72s80g9ilvrgqflxgl36gxws7"; + rev = "62a6400746847f246e12493271f0bb52f7465a92"; + sha256 = "1xnb6yd5ny5i6hvzxfsnga5m75si5y8vc1j3vfs42r99s2ns8yid"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org2blog"; sha256 = "1xa03k9z8fq74w0w3vfkigz24i6c8s4vib077l16vqik7wg4yh40"; name = "org2blog"; }; - packageRequires = [ metaweblog org xml-rpc ]; + packageRequires = [ htmlize metaweblog org xml-rpc ]; meta = { homepage = "https://melpa.org/#/org2blog"; license = lib.licenses.free; }; }) {}; + org2ctex = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "org2ctex"; + version = "20171016.2343"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "org2ctex"; + rev = "1b74aa9cf45de224ffd6aa9b93f0debddc2b48bc"; + sha256 = "17qkz3ja87hhq41hvlxvdzqipmi1gn38khd00dshsxhk5hg7i99a"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8f77fe537ca8ee2ddb6e3efe71f3b3c560c52c7d/recipes/org2ctex"; + sha256 = "0049zf3ls7vbbcz1hdwai57ih9gppk2j0gzwijzwkb23ccwaf64a"; + name = "org2ctex"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/org2ctex"; + license = lib.licenses.free; + }; + }) {}; org2elcomment = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org2elcomment"; @@ -50763,15 +51641,45 @@ license = lib.licenses.free; }; }) {}; + org2web = callPackage ({ cl-lib ? null, dash, el2org, fetchFromGitHub, fetchurl, ht, htmlize, lib, melpaBuild, mustache, org, simple-httpd }: + melpaBuild { + pname = "org2web"; + version = "20171005.1617"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "org2web"; + rev = "5243b399927a4c474bb3b8d1c8a00799df1f27d7"; + sha256 = "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2864959163442165b9b1cd5471dc2649508decde/recipes/org2web"; + sha256 = "0lcqf0pgkd7jilasw1485fy45k269jxvyl7hl7qrcs94s6fy2vaf"; + name = "org2web"; + }; + packageRequires = [ + cl-lib + dash + el2org + ht + htmlize + mustache + org + simple-httpd + ]; + meta = { + homepage = "https://melpa.org/#/org2web"; + license = lib.licenses.free; + }; + }) {}; organic-green-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "organic-green-theme"; - version = "20170125.606"; + version = "20170720.1111"; src = fetchFromGitHub { owner = "kostafey"; repo = "organic-green-theme"; - rev = "5f8ce452d16f1acbd18a6963f2c042851968dd8d"; - sha256 = "0irkcjb6vxb7kf9fr4s4ap6lighhh7h6mwfamcwcacgwfvs4zs7y"; + rev = "eea6b77b7ee26310fd6741b9affc3f2c43be2820"; + sha256 = "1zaxvc1j6lfdg8wi80pfjywr6nfr7qc27j4ahzz59giba3bb7azp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9383ef5f0372724b34f4bb9173ef8ccbb773e19e/recipes/organic-green-theme"; @@ -50808,12 +51716,12 @@ orgit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild, org }: melpaBuild { pname = "orgit"; - version = "20170118.1647"; + version = "20170731.1003"; src = fetchFromGitHub { owner = "magit"; repo = "orgit"; - rev = "cbce5871fe267fef725631b0b7365952c35ae401"; - sha256 = "00iwp3bajr9hxs55rj3ka5bymhp5icsq8m44z514sb8h54fwapb7"; + rev = "022687eb02f0bf0d0151d0ad917b165bfef2d663"; + sha256 = "1cddyns82a06ydbw8rhxzghkjav5vxmmc671pdnai50mql3cx9kf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/73b5f7c44c90540e4cbdc003d9881f0ac22cc7bc/recipes/orgit"; @@ -50850,12 +51758,12 @@ orglue = callPackage ({ epic, fetchFromGitHub, fetchurl, lib, melpaBuild, org, org-mac-link }: melpaBuild { pname = "orglue"; - version = "20150430.513"; + version = "20150503.114"; src = fetchFromGitHub { owner = "yoshinari-nomura"; repo = "orglue"; - rev = "4732f8bfd6866e20230b36e5971f2492827c6944"; - sha256 = "1w0hadpslxcjn29yxl9i37sja4qf4kp7ffjpwij5hs73r518c2z6"; + rev = "1274652d527cb6afe45d1acb79f41be5a2886ee4"; + sha256 = "0qf2k89nldfm3njcnygh8ak8fz5m9ykmpzfx1cnfffxcyi139s9f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/orglue"; @@ -50868,6 +51776,27 @@ license = lib.licenses.free; }; }) {}; + orgnav = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: + melpaBuild { + pname = "orgnav"; + version = "20170608.1013"; + src = fetchFromGitHub { + owner = "facetframer"; + repo = "orgnav"; + rev = "9e2cac9c1a67af5f0080e60022e821bf7b70312d"; + sha256 = "0764dg3dcsdy4i6syv9aqqmr47civn9dl3638g4lsqdikghw7lvv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a41436df126d7ef2c0a8b56d90afb942fe47dc59/recipes/orgnav"; + sha256 = "0z04n5rzv5c0lvn658nrfj6rg3a31n369h5rjgi5bap06qm427ix"; + name = "orgnav"; + }; + packageRequires = [ dash emacs helm s ]; + meta = { + homepage = "https://melpa.org/#/orgnav"; + license = lib.licenses.free; + }; + }) {}; orgtbl-aggregate = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "orgtbl-aggregate"; @@ -50938,8 +51867,8 @@ src = fetchFromGitHub { owner = "DamienCassou"; repo = "orgtbl-show-header"; - rev = "0b63ab4425b6e2af8ffb1f0b94839918d1720d09"; - sha256 = "161bsmgrbdhb73k36gqb5b96mf0y0sl8q9sjg81vx86bs9sbkddw"; + rev = "112d54a44682f065318ed0c9c89a8f5b8907342a"; + sha256 = "1s2bgsm4s33w5275qghw1axdpmz6bbyhki53jr2giyk4f90822gi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c5ea906b1d642405ca532d89dbb32cf79f53582/recipes/orgtbl-show-header"; @@ -51018,12 +51947,12 @@ osx-dictionary = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "osx-dictionary"; - version = "20170208.505"; + version = "20171026.34"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "osx-dictionary.el"; - rev = "ec16c40cc4db0140db1cf6ad1fb1198c7c344b2b"; - sha256 = "0n09s09qaqwdrpd4dgxj16bh3lgc8nzdld49z8zkipf3cfh5v040"; + rev = "b16630ecf69f87ac873486d8b9c8c03e6c9ea7fa"; + sha256 = "06qsg8hlw1b725pzpsg5f194pxqcg1pjncsi8j0815yrlzfcg6sp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ae4467ad646d663f0266f39a76f9764004903424/recipes/osx-dictionary"; @@ -51064,8 +51993,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "osx-location"; - rev = "84e9269f6c66e52e8bbe8a0cd55932e7b3e7977e"; - sha256 = "0yixzqx2b5pnc4qs2qas0jm7sxls511x9ahasqizsawcnqd43apg"; + rev = "8bb3a94cc9f04b922d2d730fe08596cc6ee12bf2"; + sha256 = "09hjcpmh0fxhsx63vcaz05w94xcc8q35vgffggjqaybs7hyzlx69"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8673dafb02a8d70c278bfd2c063f40992defe3a3/recipes/osx-location"; @@ -51123,16 +52052,16 @@ osx-pseudo-daemon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "osx-pseudo-daemon"; - version = "20131026.1730"; + version = "20170721.2307"; src = fetchFromGitHub { owner = "DarwinAwardWinner"; - repo = "osx-pseudo-daemon"; - rev = "0b9f330a66b4e8d2ff9bcd57e09b8d304dfb5841"; - sha256 = "1j601gzizxjsvkw6bvih4a49iq05yfkw0ni77xbc5klc7x7s80hk"; + repo = "mac-pseudo-daemon"; + rev = "d235680a72677f11925b912428ad1a57b664e3e8"; + sha256 = "0gqknrwhfzr7cf5pgs33a5xh79y0yzxghs6wsvavvqkmf4cvck40"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/25a3562788b541e8682500911d7da89d209ab84f/recipes/osx-pseudo-daemon"; - sha256 = "150fxj2phj5axnh5i8ws5fv2qzzmpyisch452wgxb604p56j7vy8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/osx-pseudo-daemon"; + sha256 = "1sch7bb8hl96fji2ayw2ah5cjgsga08wj44vddjxskyway8ykf0z"; name = "osx-pseudo-daemon"; }; packageRequires = []; @@ -51204,6 +52133,27 @@ license = lib.licenses.free; }; }) {}; + outline-toc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "outline-toc"; + version = "20170730.430"; + src = fetchFromGitHub { + owner = "abingham"; + repo = "outline-toc.el"; + rev = "31f04bea19cfcfb01a94d1fd2b72391cb02b7463"; + sha256 = "1pqz2ynw51n3f7d9hknz80d42017lccsggkg13zqmn51wkjpc48j"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/64b07ee55e87c4a1125ce18a8ae0a44661380ffe/recipes/outline-toc"; + sha256 = "13hy9ahla68qcbfbm7b5d0yy774qfc3byb6pn9c66k2wg4xh6pxb"; + name = "outline-toc"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/outline-toc"; + license = lib.licenses.free; + }; + }) {}; outlined-elisp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "outlined-elisp-mode"; @@ -51246,15 +52196,36 @@ license = lib.licenses.free; }; }) {}; + outrespace = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "outrespace"; + version = "20170904.511"; + src = fetchFromGitHub { + owner = "articuluxe"; + repo = "outrespace"; + rev = "cf2a397971f82c87dcfbe3400e3e7c2de79fa68e"; + sha256 = "1rxyyvax3f0fh3k8majkhpdrnlqg4pg7hl68q61csiccayx04213"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2659a78181b8fe98ca4a80c75ec8c9b6dff44bb5/recipes/outrespace"; + sha256 = "13xasp9vjb3n0smdhrh9pq1yhhrg3p6z14fmlvf6xqip52rx89hl"; + name = "outrespace"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/outrespace"; + license = lib.licenses.free; + }; + }) {}; outshine = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, outorg }: melpaBuild { pname = "outshine"; - version = "20170414.1217"; + version = "20171005.955"; src = fetchFromGitHub { owner = "alphapapa"; repo = "outshine"; - rev = "399ccd20cd65c758bbbd5563bd804d2bccfd0279"; - sha256 = "03jd3gyqrmrnykcv7p6fv53f32li7gkvd61zbhp483n8a8n3yy5j"; + rev = "75389b7104692f4f6a97dc72020d145f03affd25"; + sha256 = "0j99wx48xq5vpla69yj5w255n3acbgc4bbig4kmbvayr2871ls7n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8edf78a0ecd2ff8e6e066b80751a31e11a068c3f/recipes/outshine"; @@ -51295,8 +52266,8 @@ src = fetchFromGitHub { owner = "tonini"; repo = "overseer.el"; - rev = "3269801dc5145d41c11599430229340e6dfa6cc6"; - sha256 = "1zjp1bw7ipg4ibabrc0wzzsvd4jydjq571768v2hdpzcdw36d8f7"; + rev = "6be1f2a4df1b7a20298865b85502ee89e327898d"; + sha256 = "0ipq5gflymvznb8xzfl524l09sj90787bzga9ymjjpc4rn9zmqlb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/overseer"; @@ -51333,12 +52304,12 @@ ox-asciidoc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-asciidoc"; - version = "20160120.523"; + version = "20170622.346"; src = fetchFromGitHub { owner = "yashi"; repo = "org-asciidoc"; - rev = "da5f66d881c79cc780290d80caa528c1dd219509"; - sha256 = "03ivnvqxc5xdcik4skk32fhr686yv2y5mj8w7v27dhyc0vdpfhvy"; + rev = "83cc8afad239bf386832e1da49fa273ab5a3e466"; + sha256 = "0slv4mp9vlazzd4c503zvqx66dxl6qwr9qrdi1grmshq0vnfxlyb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3b268064f09ae5c3d15064b7d197c7af767fb278/recipes/ox-asciidoc"; @@ -51354,16 +52325,16 @@ ox-bibtex-chinese = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ox-bibtex-chinese"; - version = "20160510.506"; + version = "20170722.2009"; src = fetchFromGitHub { owner = "tumashu"; repo = "ox-bibtex-chinese"; - rev = "7771304977f921ff0596b17520289c984116f1a1"; - sha256 = "1d463d7mdlr65yrq7x16nk9124fw1iphf5g238mlh4abbl6kz241"; + rev = "2ad2364399229144110db7ef6365ad0461d6a38c"; + sha256 = "06lp56na1fv87296hhaxgb6gfnzln39p4v245gfxhk0k27589vxj"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a679ebaedcb496f915b9338f9d5c003e1389594d/recipes/ox-bibtex-chinese"; - sha256 = "0h02jlzk97rd3jmdni5mggbkij61d7zn1n1ibz1jg6zb0000cj7a"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6c09c708c4372451502923cd3cb756f4f98ba97b/recipes/ox-bibtex-chinese"; + sha256 = "0f3xigrkhc86vv23f76fdd4rjsspsd2ck5c65biq2ds247f4gm61"; name = "ox-bibtex-chinese"; }; packageRequires = [ emacs ]; @@ -51375,16 +52346,16 @@ ox-clip = callPackage ({ fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, org }: melpaBuild { pname = "ox-clip"; - version = "20170108.1348"; + version = "20170805.505"; src = fetchFromGitHub { owner = "jkitchin"; - repo = "scimax"; - rev = "f686459c02b27e6f22128c2ff4e26818fb7f4ee7"; - sha256 = "0i8fd8jjimzp3p9l10ixdxv7ghlc3x191914wlq1znqzra09xb0p"; + repo = "ox-clip"; + rev = "b596760aec2ab4e10b18807c01839047aa209d6e"; + sha256 = "0bd5vbbz0p0dg5v7s54a88ba7aca53xwr8niirshfkm916lc8mpy"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/222ccf4480395bda8c582ad5faf8c7902a69370e/recipes/ox-clip"; - sha256 = "0vkw8r34wnax08kkdgwzm62srp9avvza1jaj582l8nn0a75284yg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6d9ae1e58a1f214a9b88627a2d3254ce7de50740/recipes/ox-clip"; + sha256 = "1sm0ivd8rypnl0z901anjsnbfjwhxqcaagqav82ybdb1z6x1qicv"; name = "ox-clip"; }; packageRequires = [ htmlize org ]; @@ -51396,12 +52367,12 @@ ox-epub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-epub"; - version = "20170414.0"; + version = "20171020.1659"; src = fetchFromGitHub { owner = "ofosos"; repo = "ox-epub"; - rev = "113300ed2c66cca10624e6d7bf5ff0a72e05653a"; - sha256 = "1xj643jybrd6idn6bazp0canj8pm9v3gs199fa17hlag7151ancw"; + rev = "a93d1833533c3589dbba62dcdfd13f99881e0fad"; + sha256 = "1iqdsp70h98qwfah91w9rj9j29952zkr6q261mrfy4c43jvghvln"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3ac31dfef00e83fa6b716ea006f35afb5dc6cd5/recipes/ox-epub"; @@ -51417,12 +52388,12 @@ ox-gfm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ox-gfm"; - version = "20170304.1504"; + version = "20170628.1402"; src = fetchFromGitHub { owner = "larstvei"; repo = "ox-gfm"; - rev = "47c466b660ec184af70589df1c3a26d90241cd1c"; - sha256 = "0jwk7nrdc09mrmwc6myyhlnqq4fap15s8spbzl78zsw3kf89n4vs"; + rev = "99f93011b069e02b37c9660b8fcb45dab086a07f"; + sha256 = "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/10e90430f29ce213fe57c507f06371ea0b29b66b/recipes/ox-gfm"; @@ -51456,6 +52427,27 @@ license = lib.licenses.free; }; }) {}; + ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "ox-hugo"; + version = "20171029.1929"; + src = fetchFromGitHub { + owner = "kaushalmodi"; + repo = "ox-hugo"; + rev = "caa3aa99c6bef6d0dcaa4713a7934c7d410a5641"; + sha256 = "0vadb0d7wgz37cdzhgciv0b0fd6wc4gwdz0ppdhk1s9y3hkcbkw6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo"; + sha256 = "1niarxj2y4a14lrv2nqcc36msw7k61h8fbjpcdrfbaw3n0kchd40"; + name = "ox-hugo"; + }; + packageRequires = [ emacs org ]; + meta = { + homepage = "https://melpa.org/#/ox-hugo"; + license = lib.licenses.free; + }; + }) {}; ox-impress-js = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-impress-js"; @@ -51501,12 +52493,12 @@ ox-jira = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-jira"; - version = "20170326.47"; + version = "20171001.216"; src = fetchFromGitHub { owner = "stig"; repo = "ox-jira.el"; - rev = "638a9a44c96f5b21e2e36121465645e586910713"; - sha256 = "12is86csnix270rnyf9q0l7ds70g128fn9nzgjgjgfylsp5nk9rf"; + rev = "db2ec528f46c9e611624ba28611c440a99bff255"; + sha256 = "04zz6359xkn4w7jmmadxyvjd8pw21gw12mqwch1l9yxc4m9q474l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8a77d9c903acd6d7fdcb53f63384144e85589c9/recipes/ox-jira"; @@ -51522,12 +52514,12 @@ ox-latex-chinese = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ox-latex-chinese"; - version = "20170401.439"; + version = "20171014.1532"; src = fetchFromGitHub { owner = "tumashu"; repo = "ox-latex-chinese"; - rev = "f79d25443987a169a1234f5fbb2bc115cccea33e"; - sha256 = "1sw7wvsyp5z7jdijkc3lyfx7b0cq3c60fjdvmqlpygl9020md99w"; + rev = "3af3872c5435b6d4feccd0fd2bac32cd156724dd"; + sha256 = "06b3k3c407dvj0gx73w8wspy2mndl1q2s9wlq4g6hs2v4i2pd9dd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a679ebaedcb496f915b9338f9d5c003e1389594d/recipes/ox-latex-chinese"; @@ -51587,14 +52579,14 @@ pname = "ox-nikola"; version = "20151114.316"; src = fetchFromGitHub { - owner = "masayuko"; + owner = "msnoigrs"; repo = "ox-nikola"; rev = "5bcbc1a38f6619f62294194f13ca0cd4ca14dd48"; sha256 = "0cc14p6c3d4djfmrkac0abb2jq128vlmayv2a8cyvnyjffyvjbk7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3af3905e1ce36397645a54078280852a8a7eb1eb/recipes/ox-nikola"; - sha256 = "1amplnazs9igfd382djq23d8j7r0knr0hwlpasd01aypc25c82a4"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/4e3fa1b0728ad3058376800ec5e2e9e3847c1d2f/recipes/ox-nikola"; + sha256 = "13k5wggz8bhnfgpsc09jnisk7xdb226d6imp7v6vmd1ax9m2xb0w"; name = "ox-nikola"; }; packageRequires = [ emacs org ox-rst ]; @@ -51603,22 +52595,22 @@ license = lib.licenses.free; }; }) {}; - ox-pandoc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, org }: + ox-pandoc = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, org }: melpaBuild { pname = "ox-pandoc"; - version = "20161125.35"; + version = "20170829.1658"; src = fetchFromGitHub { owner = "kawabata"; repo = "ox-pandoc"; - rev = "d9cf410096fb27be8eb13b2207697f8530f62abf"; - sha256 = "0c8nfvh9vn850i3minfqvri2py48ycgz3sf5p1l0a3k98s4x4jl3"; + rev = "63a1e2b39049a95f6ad7f599561bcfea45086bc2"; + sha256 = "0iw5imsf7qllkrh39p4pwp6ibwx08nfydfrzwc7bvck0qgzrs7fv"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/92f89a923d877c9dea9349a5c594209cb716bf18/recipes/ox-pandoc"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/ox-pandoc"; sha256 = "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc"; name = "ox-pandoc"; }; - packageRequires = [ dash emacs ht org ]; + packageRequires = [ cl-lib dash emacs ht org ]; meta = { homepage = "https://melpa.org/#/ox-pandoc"; license = lib.licenses.free; @@ -51690,16 +52682,16 @@ ox-rst = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-rst"; - version = "20170219.2052"; + version = "20171004.1553"; src = fetchFromGitHub { - owner = "masayuko"; + owner = "msnoigrs"; repo = "ox-rst"; - rev = "c5f300cf020e6bdd654e304e0388a0c63d4b8ea1"; - sha256 = "1cdlqk0sbj8pa24dqxwg5kgjrghq4f7dma8d0mk33cfaxaq7jvxv"; + rev = "6d1eab55ff7c8dc4bcf511c9483e69f2a840e928"; + sha256 = "10z922lcg8hz517kg57knx2irfcac8plp9nsxayrbxpkjx7mmjlj"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3af3905e1ce36397645a54078280852a8a7eb1eb/recipes/ox-rst"; - sha256 = "1vyj6frrl7328n2x7vc3qwv3ssdhi8bp6ja5h2q4bqalc6bl1pq0"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/85770d6e235217e98dda9d8b9f027a4ba3ebba96/recipes/ox-rst"; + sha256 = "0447q0gvasii57rp391la9prz0w228jnzgi59s785vzswdryww0n"; name = "ox-rst"; }; packageRequires = [ emacs org ]; @@ -51711,12 +52703,12 @@ ox-textile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-textile"; - version = "20151114.2025"; + version = "20170907.351"; src = fetchFromGitHub { owner = "yashi"; repo = "org-textile"; - rev = "0dfca070e35bc6f4a412319e2474bb88666c8c2d"; - sha256 = "1r9c4s9f7cvxxzf9h07rg75bil0295zq1inh5i4r6za5jabkr4dg"; + rev = "04bcaa64a0c5a099bd7adae5e6584cfa685b2b67"; + sha256 = "1z1574n6br5rabv9g5qcwk49lx05a4j1gzl3hc2axkxdrrm4m6kk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/02a68a7a99ecce8f1afa03e72ff1f636edaf5868/recipes/ox-textile"; @@ -51736,8 +52728,8 @@ src = fetchFromGitHub { owner = "dfeich"; repo = "org8-wikiexporters"; - rev = "57538ada07d1c631cfd07410cd8f47523be54c9a"; - sha256 = "05rlfykwvfir177bvqa7nvwmzn1amhpaizfmyjzi73d78h062vcl"; + rev = "970bb8ed0e4c4426c37a929b1fe08f944c1cf74f"; + sha256 = "14k9jsz7vkjqxn2xpj71qg54w0laqr99178bzsmbapkfp5yxrib5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ox-tiddly"; @@ -51753,12 +52745,12 @@ ox-trac = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-trac"; - version = "20151102.955"; + version = "20171026.1123"; src = fetchFromGitHub { owner = "JalapenoGremlin"; repo = "ox-trac"; - rev = "2f2f70eefb9679025ae5812e221f0c118da36012"; - sha256 = "0w6963jvz1sk732nh18735dxivd6nl59jd4m26ps6l4wqhqby0db"; + rev = "03cc31efb1aa06991918f1071e250a9d58f96cfb"; + sha256 = "0knrmq0sc8s9c6j0967jmrp2hq8jcwg281qqk89y8j9rpbmhbaj6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b73753ef9229d0fdfbe237acc63126f1786a494/recipes/ox-trac"; @@ -51816,12 +52808,12 @@ ox-twiki = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-twiki"; - version = "20160306.915"; + version = "20170803.1339"; src = fetchFromGitHub { owner = "dfeich"; repo = "org8-wikiexporters"; - rev = "57538ada07d1c631cfd07410cd8f47523be54c9a"; - sha256 = "05rlfykwvfir177bvqa7nvwmzn1amhpaizfmyjzi73d78h062vcl"; + rev = "970bb8ed0e4c4426c37a929b1fe08f944c1cf74f"; + sha256 = "14k9jsz7vkjqxn2xpj71qg54w0laqr99178bzsmbapkfp5yxrib5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/084da2cc725cc23b02657e7adb14ec31532ad25a/recipes/ox-twiki"; @@ -51879,12 +52871,12 @@ package-build = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "package-build"; - version = "20170412.1620"; + version = "20171020.1419"; src = fetchFromGitHub { owner = "melpa"; repo = "package-build"; - rev = "2346b0eec188cce4106ac605a396ded0d380f610"; - sha256 = "053zzllffpa17nq488zgc7xhn27p1b42jrg28k5vpzvmin64bda3"; + rev = "e4d174870ea40275a8bc35996416326cf28051f9"; + sha256 = "00p7hrcb2ivk6sjxqccbpswjsk5rj02nyd29d2nd6b8r3fskskzp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/948fb86b710aafe6bc71f95554655dfdfcab0cca/recipes/package-build"; @@ -51904,8 +52896,8 @@ src = fetchFromGitHub { owner = "milkypostman"; repo = "package-filter"; - rev = "c8e2531227c02c4c5e9d593f2cdb6a4ab4a6849b"; - sha256 = "001h92jchz6x6pm8bj90law0yzc5xd84f703z7fcwan4k0g1iwl7"; + rev = "bc73b41aea1d65ca44ef1593ca13126df9bbb39e"; + sha256 = "0fq31zcz5j0n29p3zmx2k2w0xvay24zs34mbq8nb0y0jr7ycm184"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/89312eaf69f3d7ac46647255c847fcb45415e78d/recipes/package-filter"; @@ -51921,12 +52913,12 @@ package-lint = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "package-lint"; - version = "20170417.54"; + version = "20171006.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "package-lint"; - rev = "1cee5135bd9a12e1b28e515a28093a751b4f7dd1"; - sha256 = "1qvvdr5wx37x5jrw4hkx5vl4jmi3l1bjn97nnvwlsmzi6sgkcwsr"; + rev = "ff64e1171e8330972c26bf547042429927aed7c7"; + sha256 = "11hsxvla2vq944zfd8kr0wynvkr7n90jv714ll6f7yhn10nrraks"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9744d8521b4ac5aeb1f28229c0897af7260c6f78/recipes/package-lint"; @@ -51942,12 +52934,12 @@ package-plus = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "package-plus"; - version = "20150319.1455"; + version = "20170815.1956"; src = fetchFromGitHub { owner = "zenspider"; repo = "package"; - rev = "4a9618a44ec4f26a14e0136cd9d3c4855fceb25b"; - sha256 = "1xv0ra130qg0ksgqi4npspnv0ckq77k7f5kcibavj030h578kj97"; + rev = "9213f6134eabc2cff5826779ced437714324c066"; + sha256 = "0b20mxr5xvkydxn9gv246xls52is3jyhm5ckmrhkb2dp9qc4hfa4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/49cfbbc4535aa7e175aa819d67b8aa52a6f94384/recipes/package+"; @@ -52002,22 +52994,22 @@ license = lib.licenses.free; }; }) {}; - packed = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + packed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "packed"; - version = "20170314.1340"; + version = "20170819.942"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "packed"; - rev = "536f4a3bda06cc09759fed1aa0cdebb068ff75a1"; - sha256 = "1ayizqkhxjd3rv3chnl51sl12gsfhxcqqnz0p6r0xbwglx4n3vzi"; + rev = "94ea12b9d44bfa42c28d0548199f2fcd19e4aa6a"; + sha256 = "1n80y5pqaibix71fnw3cxmq66frmqfji2b2y170jszmrxi03kwxm"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1ee9e95c00f791010f77720068a7f3cd76133a1c/recipes/packed"; - sha256 = "0sw7d2l17bq471i4isrf2xf0z85nqqiciw25whw0c0chdzwzai6z"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/packed"; + sha256 = "103z6fas2fkvlhvwbv1rl6jcij5pfsv5vlqqsb4dkq1b0s7k11jd"; name = "packed"; }; - packageRequires = [ dash emacs ]; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/packed"; license = lib.licenses.free; @@ -52065,22 +53057,22 @@ license = lib.licenses.free; }; }) {}; - page-break-lines = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + page-break-lines = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "page-break-lines"; - version = "20161205.2251"; + version = "20171020.108"; src = fetchFromGitHub { owner = "purcell"; repo = "page-break-lines"; - rev = "c133848345ceef91e257aab8804c61f31c31b264"; - sha256 = "1d0b2pb2s04l7nkcn7yhrbcm927bsinyiayxn59in7p3mqlcmsnb"; + rev = "ae1c0065984429c7364a667abb9180e80134c4c0"; + sha256 = "1j2fw5p5cwyxpb3clym59jbma06r7la83n62xmz0q1z41llmwx4j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/page-break-lines"; sha256 = "0i5kx191wnq9763jyqxbyh33hvdaqbd98a1rhgqd97zhvg0hslz1"; name = "page-break-lines"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/page-break-lines"; license = lib.licenses.free; @@ -52128,24 +53120,6 @@ license = lib.licenses.free; }; }) {}; - palette = callPackage ({ fetchurl, hexrgb, lib, melpaBuild }: melpaBuild { - pname = "palette"; - version = "20170307.936"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/palette.el"; - sha256 = "112b91z1f4p0j4kzrn8110w9pk2fyndjqiiyh0vkwah2ihpsw3pj"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/palette"; - sha256 = "1v6dsph18rqfbvda2c25mqgdwap2a4zrg6qqq57n205zprpcwxc0"; - name = "palette"; - }; - packageRequires = [ hexrgb ]; - meta = { - homepage = "https://melpa.org/#/palette"; - license = lib.licenses.free; - }; - }) {}; palimpsest = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "palimpsest"; @@ -52188,6 +53162,27 @@ license = lib.licenses.free; }; }) {}; + pamparam = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, lib, lispy, melpaBuild, worf }: + melpaBuild { + pname = "pamparam"; + version = "20170927.1048"; + src = fetchFromGitHub { + owner = "abo-abo"; + repo = "pamparam"; + rev = "c840a8f941940bb8e694c635995566faee995c7b"; + sha256 = "0wqnzgkcwhrgxdkrlk6i469gcas9477pbkv878cqq9ifsjwvf42n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/067b5e3594641447478db8c1ffcb36d63018b1b2/recipes/pamparam"; + sha256 = "0xwz1il9ldkfprin3rva407m4wm7c48blwfn4mgaxmqafy4p0g9f"; + name = "pamparam"; + }; + packageRequires = [ emacs hydra lispy worf ]; + meta = { + homepage = "https://melpa.org/#/pamparam"; + license = lib.licenses.free; + }; + }) {}; pandoc = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pandoc"; @@ -52212,12 +53207,12 @@ pandoc-mode = callPackage ({ dash, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild }: melpaBuild { pname = "pandoc-mode"; - version = "20161104.1521"; + version = "20170720.127"; src = fetchFromGitHub { owner = "joostkremers"; repo = "pandoc-mode"; - rev = "88ad7ea08afae0bf062755bb1e91c5543aac6028"; - sha256 = "0vjxlbm143i9a8pi5v2q82fms8lwf1i24nddxj4a1js2r6mpz15m"; + rev = "58f893d54c0916ad832097a579288ef8ce405da5"; + sha256 = "03nh5ivcwknnsw9khz196n6s3pa1392jk7pm2mr4yjjs24izyz1i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/pandoc-mode"; @@ -52254,16 +53249,16 @@ paper-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, hexrgb, lib, melpaBuild }: melpaBuild { pname = "paper-theme"; - version = "20151231.932"; + version = "20170924.1231"; src = fetchFromGitHub { owner = "cadadr"; - repo = "paper-theme"; - rev = "15af5e31492f79dc0d47787150ef39d6318a2608"; - sha256 = "1xh614czldjvfl66vhkyaai5k4qsg1l3mz6wd5b1w6kd45qrc54i"; + repo = "elisp"; + rev = "b3d8b45c76134e2248448d719c840776e41b747a"; + sha256 = "0fy0b04mf3brx86xjnidkwg4zs4nh123nc6pgrl4mp6d6552vv98"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a35a0888a7a27174b5de58d99b01554769041f46/recipes/paper-theme"; - sha256 = "04diqm2c9fm29zyms3hplkzb4kb7b2kyrxdsy0jxyjj5kabypd50"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a7ea18a56370348715dec91f75adc162c800dd10/recipes/paper-theme"; + sha256 = "1ph6c6g907cnxzl74byc754119qia8rs8y7wvaj8i6q3fz2658zr"; name = "paper-theme"; }; packageRequires = [ emacs hexrgb ]; @@ -52300,8 +53295,8 @@ src = fetchFromGitHub { owner = "Malabarba"; repo = "paradox"; - rev = "71a8eb68cd618094244110c5d2d5ae9632605204"; - sha256 = "1zkhmpd20vm95l9bfgzlpc2hl8qvig3rm9kxhyrhwn2iybna05rw"; + rev = "dfdfbec8b4a3b71966c134f00c3f5edfa87b6245"; + sha256 = "1l0rs49lbclq4ayhnx6vi6bxn37a0h2ylk73fjcbar2lbr1dhf9r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/paradox"; @@ -52441,12 +53436,12 @@ parinfer = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "parinfer"; - version = "20170315.2109"; + version = "20170710.821"; src = fetchFromGitHub { owner = "DogLooksGood"; repo = "parinfer-mode"; - rev = "c67686b24cf14064931d812f29f4114b30696d12"; - sha256 = "0lpj81hkzw24v1f3s13rw22sm1nm0i177di5v2b8kwy50pjirs8v"; + rev = "23ac701e2a1a1364ca96d267437c3413986a4497"; + sha256 = "1kbwmdhv8fpw613yk8sgh3yz4rcrh2aygqkv3c46d5fr0xm04a80"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/470ab2b5cceef23692523b4668b15a0775a0a5ba/recipes/parinfer"; @@ -52483,12 +53478,12 @@ parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "parsebib"; - version = "20170326.2344"; + version = "20170501.347"; src = fetchFromGitHub { owner = "joostkremers"; repo = "parsebib"; - rev = "73327c471d92c7716484d8c3cbcdeed1d70ae468"; - sha256 = "18g7mir5ynik5ryg0hl6vpjpajz6d6j0xd9ni54h3h60vvhciwmi"; + rev = "bc31b627c666df576aa37e21c27a2223b3cb91a3"; + sha256 = "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib"; @@ -52504,12 +53499,12 @@ parsec = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "parsec"; - version = "20170219.1442"; + version = "20170508.1500"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "parsec.el"; - rev = "45046868fb2d5f3c914f2e3b67fbe15033c93532"; - sha256 = "07brvf6wcnvwz3y29gxk2yckgcg59898s1dhr3jfsnsq0nxam2ix"; + rev = "8755c60826efaa8603b0d4300bfba9abaa072584"; + sha256 = "03yzs4l53j4fvviqfhdn3cxc710yrg4wdbnl7r69yn69r4di9bfj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/248aaf5ff9c98cd3e439d0a26611cdefe6b6c32a/recipes/parsec"; @@ -52522,22 +53517,43 @@ license = lib.licenses.free; }; }) {}; - pass = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store }: + pasp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pasp-mode"; + version = "20170803.1301"; + src = fetchFromGitHub { + owner = "santifa"; + repo = "pasp-mode"; + rev = "6511193677d6113fec1171f476c0db3be242ee15"; + sha256 = "1fk87iiqnyfwblw8fgqhw2mg61w2pl7id1dm8lb75pqrjq8kvjbg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f3c1bbfc6b3a60f8bb4f0ee77ec4108e9d3f458b/recipes/pasp-mode"; + sha256 = "0aix8siyd5yhgxq94k1sl64a9q2xlfrz6cj9y5mcqhb6qjgmrnva"; + name = "pasp-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/pasp-mode"; + license = lib.licenses.free; + }; + }) {}; + pass = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, password-store-otp }: melpaBuild { pname = "pass"; - version = "20161111.1320"; + version = "20171010.410"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "pass"; - rev = "b4c3bd9130044c4e106bac5ba73a50822865e258"; - sha256 = "0na895x91a37wmdpqp545qvjh34d0vfq4dyxji7casdrdhx3bg16"; + rev = "0f4ff034fb31b18f387e67f1de4029826db6cd0b"; + sha256 = "084497na8qql638qjhgad02rvhwyzz81xwh70p6rxxwfzj0i1p17"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/428c2d53db69bed8938ec3486dfcf7fc048cd4e8/recipes/pass"; sha256 = "1vvyvnqf6k7wm0p45scwi6ny86slkrcbr36lnxdlkf96cqyrqzfr"; name = "pass"; }; - packageRequires = [ emacs f password-store ]; + packageRequires = [ emacs f password-store password-store-otp ]; meta = { homepage = "https://melpa.org/#/pass"; license = lib.licenses.free; @@ -52627,26 +53643,48 @@ license = lib.licenses.free; }; }) {}; - password-store = callPackage ({ f, fetchgit, fetchurl, lib, melpaBuild, s }: + password-store = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, with-editor }: melpaBuild { pname = "password-store"; - version = "20151027.1449"; - src = fetchgit { - url = "http://git.zx2c4.com/password-store"; - rev = "38ec1c72e29c872ec0cdde82f75490640d4019bf"; - sha256 = "04rqph353qfhnrwji6fmvrbk4yag8brqpbpaysq5z0c9l4p9ci87"; + version = "20170829.1633"; + src = fetchFromGitHub { + owner = "zx2c4"; + repo = "password-store"; + rev = "7252e8b3cf829e908179913daad16ff2b8bdefdd"; + sha256 = "1wmayp7wjlfxdjb0wlmjqyxqa95ssrhhxhkiy0ip3bgip77s7rbw"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e204fb4d672220ee1a4a49975fd3999916e60f8c/recipes/password-store"; - sha256 = "1jh24737l4hccr1k0b9fnq45ag2dsk84fnfs86hcgsadl94d6kss"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/207f8ec84572176749d328cb2bbc4e87c36f202c/recipes/password-store"; + sha256 = "03r8j14l12yc42b51fzvn1jh8j85nyl1rg6c80r0a7ihwkj27jv6"; name = "password-store"; }; - packageRequires = [ f s ]; + packageRequires = [ emacs f s with-editor ]; meta = { homepage = "https://melpa.org/#/password-store"; license = lib.licenses.free; }; }) {}; + password-store-otp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, s }: + melpaBuild { + pname = "password-store-otp"; + version = "20170928.18"; + src = fetchFromGitHub { + owner = "volrath"; + repo = "password-store-otp.el"; + rev = "a39a64a91de36e87b852339635bd3c5fb0e32441"; + sha256 = "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fc89d02554a6ff150ad42634879073892f3e88be/recipes/password-store-otp"; + sha256 = "0m3n4gjf6hmcs2kg80h1whzbl74zsj79ihliyqfcdfc4v31m32sg"; + name = "password-store-otp"; + }; + packageRequires = [ emacs password-store s ]; + meta = { + homepage = "https://melpa.org/#/password-store-otp"; + license = lib.licenses.free; + }; + }) {}; password-vault = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "password-vault"; @@ -52668,6 +53706,27 @@ license = lib.licenses.free; }; }) {}; + paste-of-code = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: + melpaBuild { + pname = "paste-of-code"; + version = "20170709.1655"; + src = fetchFromGitHub { + owner = "spebern"; + repo = "paste-of-code.el"; + rev = "92d258e8ec98598d847ecab82903f9224c7c2050"; + sha256 = "1bf2d0i726psjwnqdp0w4h0qk7fnwcbwf1a66q7p8vczavqygfan"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b29a5101bb6fc01b8b6e1b798ce6f73bc6d34944/recipes/paste-of-code"; + sha256 = "0wjcchpp1689arfz6s7gfq4bxn0svz6qj5azvjwwsyzais1bicdi"; + name = "paste-of-code"; + }; + packageRequires = [ emacs request ]; + meta = { + homepage = "https://melpa.org/#/paste-of-code"; + license = lib.licenses.free; + }; + }) {}; pastebin = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pastebin"; @@ -52731,26 +53790,6 @@ license = lib.licenses.free; }; }) {}; - pastels-on-dark-theme = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "pastels-on-dark-theme"; - version = "20120304.1022"; - src = fetchgit { - url = "https://gist.github.com/1974259.git"; - rev = "854839a0b4bf8c3f6a7d947926bf41d690547002"; - sha256 = "1ar6rf2ykd252y8ahx0lca7xsgfs6ff287q9iij79gs9fhn4yfy5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ab432b0eac0bcf0d40c5b3c8a78475bc0fea47d2/recipes/pastels-on-dark-theme"; - sha256 = "0zdr29793gg229r47yjb3plagxc9pszqyy4sx81ffp3rpdf0nlbh"; - name = "pastels-on-dark-theme"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/pastels-on-dark-theme"; - license = lib.licenses.free; - }; - }) {}; pastery = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "pastery"; @@ -53090,12 +54129,12 @@ pdf-tools = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, tablist }: melpaBuild { pname = "pdf-tools"; - version = "20170417.150"; + version = "20171012.2226"; src = fetchFromGitHub { owner = "politza"; repo = "pdf-tools"; - rev = "f314597b2e391f6564e4f9e5cc3af0b4b53f19e9"; - sha256 = "15m7x61m63zxz2jdz52brm9qjzmx1gy24rq8ilmc4drmb0vfmrr2"; + rev = "0f99f0c06514acf51445e7e4cb0f638fa0c75ee5"; + sha256 = "1gc7n5r60ib65bnkgpac3bn71pxnm58sxajnwjfkwi9xzgw72acv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8e3d53913f4e8a618e125fa9c1efb3787fbf002d/recipes/pdf-tools"; @@ -53111,12 +54150,12 @@ peacock-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "peacock-theme"; - version = "20141115.2302"; + version = "20170808.620"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-peacock-theme"; - rev = "268a2a7eb48ac750fc939657169ec65f2ac0f4f7"; - sha256 = "1clvrmvijwpffigh5f29vnwcvffqk0nrvlz26158hip1z9x7nah3"; + rev = "9e46fbfb562b6e26c6e3d6d618b044b3694da4c8"; + sha256 = "0w4dzdsv2cdldss5jwmdbjb5a62k5j1szwdim4gv8ldifhj7fy22"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/peacock-theme"; @@ -53192,6 +54231,26 @@ license = lib.licenses.free; }; }) {}; + pelican-mode = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pelican-mode"; + version = "20171001.503"; + src = fetchgit { + url = "https://git.korewanetadesu.com/pelican-mode.git"; + rev = "64d41f0ee5970b2d875880994eb287b97cad24a1"; + sha256 = "0xivc8sdp6h3fajyj7g73xnyfqlkhfpm2cs9x3mpyr42502lmn2c"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/aede5994c2e76c7fd860661c1e3252fb741f9228/recipes/pelican-mode"; + sha256 = "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi"; + name = "pelican-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/pelican-mode"; + license = lib.licenses.free; + }; + }) {}; per-buffer-theme = callPackage ({ cl-lib ? null, fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "per-buffer-theme"; @@ -53212,48 +54271,6 @@ license = lib.licenses.free; }; }) {}; - perl-completion = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "perl-completion"; - version = "20090527.2336"; - src = fetchFromGitHub { - owner = "imakado"; - repo = "perl-completion"; - rev = "f2ec91b88a8b7d97d40d6c90a89eaf8e595c2b89"; - sha256 = "0fzypcxxd5zlkcybz0xppf09l0vf4vsfisr2y3ijsmxhg7yrwzj5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/987c14a2c4a31e27382d05cdbca18a3d2661d2e1/recipes/perl-completion"; - sha256 = "01p17mlkwjm60f14arda3ly8ng0r98nn3rly94ghn6jr7r7fv14b"; - name = "perl-completion"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/perl-completion"; - license = lib.licenses.free; - }; - }) {}; - perl6-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: - melpaBuild { - pname = "perl6-mode"; - version = "20160730.1455"; - src = fetchFromGitHub { - owner = "hinrik"; - repo = "perl6-mode"; - rev = "14073feeb0f8ad2225616d550133f8f473a51b33"; - sha256 = "1j6zgr9vfyqpdya8975sjh2ny70rqqyj9zbl63kldkirppnw995i"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d4bbb2171c70958d5ab3730f974db3b07561a81b/recipes/perl6-mode"; - sha256 = "0af1djypd8n0n1fq10sl8mrdg27354kg9g87d6xz4q5phvi48cqv"; - name = "perl6-mode"; - }; - packageRequires = [ emacs pkg-info ]; - meta = { - homepage = "https://melpa.org/#/perl6-mode"; - license = lib.licenses.free; - }; - }) {}; perlbrew = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "perlbrew"; @@ -53341,12 +54358,12 @@ persp-fr = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, persp-mode }: melpaBuild { pname = "persp-fr"; - version = "20161226.1241"; + version = "20170908.44"; src = fetchFromGitHub { owner = "rocher"; repo = "persp-fr"; - rev = "ba989ad309c2023d1826e79446908bd1b881a56a"; - sha256 = "1l9yb14sqxxfxzh76yv415ifnmrdi5qqp4m0858drs9wcm9f23pm"; + rev = "4d2d1a75019f520742da79f1aeed9c4a960677e0"; + sha256 = "1waakbmxwm0xdnl0iznyk61ccwdjvwv5g1naml31r7q0cnk0jfz8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8e09213dddf003a1275eafb767431a507ecf7639/recipes/persp-fr"; @@ -53362,12 +54379,12 @@ persp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "persp-mode"; - version = "20170401.218"; + version = "20171014.111"; src = fetchFromGitHub { owner = "Bad-ptr"; repo = "persp-mode.el"; - rev = "651fe02ff10eece65c01ac8d286174cc8ffa87fa"; - sha256 = "1nij6mrz2fm411z97z13dyy38i482dkpj50fjsgnlc9pmggykqnx"; + rev = "ccf87da2c230c3a91e627105b0f034a954e6842a"; + sha256 = "1dv3ghl9falw888bl1w0d5pzp0jz8qsbisd7kfd887bsyn7x7jqw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/caad63d14f770f07d09b6174b7b40c5ab06a1083/recipes/persp-mode"; @@ -53446,12 +54463,12 @@ perspeen = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline }: melpaBuild { pname = "perspeen"; - version = "20170312.19"; + version = "20170916.404"; src = fetchFromGitHub { owner = "seudut"; repo = "perspeen"; - rev = "f093cfecde0e8ce0d5e390784c228831536aef72"; - sha256 = "0gb8f23ls2f5zj9a9q3i39775g3zijwdnbl7gyqi4hi5v90rb0s4"; + rev = "525f2f25358f17c7269c3750d56bfb8a6d59b5e6"; + sha256 = "17nv33nl60jdn6cz6abbj6jxnvjcshaq4a22lkssxczp968k1qn3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/perspeen"; @@ -53464,6 +54481,27 @@ license = lib.licenses.free; }; }) {}; + pfuture = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pfuture"; + version = "20170726.1502"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "pfuture"; + rev = "8b5cd8dfb8769d2b24484a313d3d21938afd3dfb"; + sha256 = "1d63sfwy7qmldhq2xda9dglg91cy2kpjdr2rlmqb48w95wf0am3m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5fb70c9f56a58b5c7a2e8b69b191aa2fc7c9bcc8/recipes/pfuture"; + sha256 = "15fr9wkpv8v1p22wz7hsyihq7f807ck105c2crfs8y7capfvs53s"; + name = "pfuture"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/pfuture"; + license = lib.licenses.free; + }; + }) {}; pg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pg"; @@ -53551,16 +54589,16 @@ phan = callPackage ({ composer, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "phan"; - version = "20170205.604"; + version = "20171017.2045"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "phan.el"; - rev = "6442663bf7618bc614b6c47b0ad7bc591c68f947"; - sha256 = "0s38vbnsbpazca0jsahjmms7qgq74gsvfn2zkrfkhx9y8cpfxrrb"; + rev = "17b44a62580272bcf5ee91fb58098292e9de6f83"; + sha256 = "002qak8jlim6pjj3ckikzzcc6n40mcqd5qvzakazi1q01z1ffsnd"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d591d9ba70b1e32f25204ad9409aad78fd68a93c/recipes/phan"; - sha256 = "16r1d2bgbb2y7l141sw7nzhx0s50gzwq5ang00y7f4sfldqvshzf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/phan"; + sha256 = "17ar6nxy0plx5li49kgf4f0h99wwmnnp5kwmpf34jg9ygyhaglvb"; name = "phan"; }; packageRequires = [ composer emacs f ]; @@ -53593,12 +54631,12 @@ phi-grep = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "phi-grep"; - version = "20170220.103"; + version = "20170606.107"; src = fetchFromGitHub { owner = "zk-phi"; repo = "phi-grep"; - rev = "e0cdb6d6b8502f9cb4db2d5536d8b32a3be9ebc5"; - sha256 = "12y7jhhqg16sqm063zbz8hjlh1hggjl627qqigqnslxbgsghk97n"; + rev = "ab9bd8d25e751a9cbfa108b49839293230b6e8b5"; + sha256 = "0p1i07dgaic0jnwdsnvsnib2913r9w8j98d1p5rx8db2nabjmzc0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/992655fa4bd209abdf1149572e95f853e595125e/recipes/phi-grep"; @@ -53698,12 +54736,12 @@ phi-search-migemo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, migemo, phi-search }: melpaBuild { pname = "phi-search-migemo"; - version = "20150116.506"; + version = "20170618.221"; src = fetchFromGitHub { owner = "zk-phi"; repo = "phi-search-migemo"; - rev = "57623e4b67ee766cbb299da00a212f3ebf7d6fb0"; - sha256 = "1k8hjnkinzdxy9qxldsyvj6npa2sv48m905d1cvxr8lyzpc5hikh"; + rev = "308909ebfc8003d16673f97ca9eb26a667b72969"; + sha256 = "07pi72jnd6k5xj9ypmxa0pbb03r07safpgf8vlp1m0xda5ixl0wf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b78e07146a4e954e050349a1798ac46ecba10bab/recipes/phi-search-migemo"; @@ -53719,12 +54757,12 @@ phoenix-dark-mono-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "phoenix-dark-mono-theme"; - version = "20130306.1215"; + version = "20170729.706"; src = fetchFromGitHub { owner = "j0ni"; repo = "phoenix-dark-mono"; - rev = "dafb65c542605145d6b1702aae5b195b70f98285"; - sha256 = "1fg63g1cm9mp50sf3ldcb0pr4bvlfxx010arisxdkj102pmib2ri"; + rev = "a54f515d162148bcb38676980bc2316adb3d7b8b"; + sha256 = "1zr334qsjrajd2vrrlc1rfm4b4kdw15jfh5d102vj5bp7z7ajhb4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/87e3b036fbcc96b047bbb141345a7b51f19d6951/recipes/phoenix-dark-mono-theme"; @@ -53740,12 +54778,12 @@ phoenix-dark-pink-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "phoenix-dark-pink-theme"; - version = "20170324.1144"; + version = "20170729.703"; src = fetchFromGitHub { owner = "j0ni"; repo = "phoenix-dark-pink"; - rev = "219edf69adb7e911394c5849c310ca0f4201a917"; - sha256 = "0i7m9iqnglirwfdibskz2alk8bzkffp8gaa38yqg6bxwb46x67nq"; + rev = "4defbb76b00c1a29f060813898578152d6be623d"; + sha256 = "03d7ak4ia3fifp0c8fm4qdydizsfsxvcvbzwfxlsk66s28p5wglc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/87e3b036fbcc96b047bbb141345a7b51f19d6951/recipes/phoenix-dark-pink-theme"; @@ -53821,6 +54859,27 @@ license = lib.licenses.free; }; }) {}; + php-cs-fixer = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "php-cs-fixer"; + version = "20170506.1133"; + src = fetchFromGitHub { + owner = "OVYA"; + repo = "php-cs-fixer"; + rev = "ca2c075a22ad156c336d2aa093fb6394c9f6c112"; + sha256 = "1axjfsfasg7xyq5ax2bx7rh2mgf8caw5bh858hhp1gk9xvi21qhx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a3631c4b81c1784995ae9e74d832e301d79214e2/recipes/php-cs-fixer"; + sha256 = "1xvz6v1fwngi2rizrx5sf0wrs4cy8rb13467r26k8hb7z8h1rqmf"; + name = "php-cs-fixer"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/php-cs-fixer"; + license = lib.licenses.free; + }; + }) {}; php-eldoc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "php-eldoc"; @@ -53845,12 +54904,12 @@ php-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "php-mode"; - version = "20170412.514"; + version = "20171018.1236"; src = fetchFromGitHub { owner = "ejmr"; repo = "php-mode"; - rev = "56a7e7c67b70c4aba5919317a8898157ba0b08e4"; - sha256 = "1jdpb4f6msw4g9amp1wmbgngldy033x7lhf8y8r34n6q2c7sb68r"; + rev = "0e87a708fb0cf7bb5ad88baf08bd60e061e8b63c"; + sha256 = "13676hca2mdfawc61g3hp1m56wv45i37g8gxhjb3mvjyjrb10rkv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7cdbc35fee67b87b87ec72aa00e6dca77aef17c4/recipes/php-mode"; @@ -53866,16 +54925,16 @@ php-plus--mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "php-plus--mode"; - version = "20170215.657"; + version = "20171027.921"; src = fetchFromGitHub { owner = "echosa"; repo = "phpplus-mode"; - rev = "963eb19c06a7237879ae7b7a111c83abcfe9ca36"; - sha256 = "06ffbw66zw5ssavgbllcb9a0syi5asy6wq8yqxdyw66nj941kjbr"; + rev = "523e7e50f9978ba74b8a324f9f896cd9b5dfd9de"; + sha256 = "0xf79pxsrfr9bi3138hdq2ccrh391sci8lvmvzcs3vnzw0hrzbfh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f10631b740eea56e7209d7e84f0da8613274ef1d/recipes/php+-mode"; - sha256 = "1ibcsky6la3l7gawpgx814w1acjf73b68i6wbb4p6saxhwg6adik"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d542e94471b9f601f1ee6f31e727bc4a31fa8f9e/recipes/php+-mode"; + sha256 = "1wl15l4m68xng1b87a19fm21qwr230ckjz1iwi3y1xl184zliv8p"; name = "php-plus--mode"; }; packageRequires = []; @@ -53905,6 +54964,27 @@ license = lib.licenses.free; }; }) {}; + php-runtime = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "php-runtime"; + version = "20170901.1106"; + src = fetchFromGitHub { + owner = "emacs-php"; + repo = "php-runtime.el"; + rev = "e1bca88ab5472e9b520b4ce915cd27d1e7803c2d"; + sha256 = "1krnfzck9j5wmda1rkmzhl9lcdzxfw324xfy4lz92nwb92mgw8gq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/615c9ac208d8c20082a8ac83e49e93d99e2cbc89/recipes/php-runtime"; + sha256 = "0dvnwajrjsgyqzglzpkx9vwx3f55mrag6dsbdjqc9vvpvxhmgfwb"; + name = "php-runtime"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/php-runtime"; + license = lib.licenses.free; + }; + }) {}; php-scratch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, s }: melpaBuild { pname = "php-scratch"; @@ -54013,12 +55093,12 @@ picpocket = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "picpocket"; - version = "20170305.259"; + version = "20170905.1133"; src = fetchFromGitHub { owner = "johanclaesson"; repo = "picpocket"; - rev = "3404de0e6ed1b46f3b873472e34ea9342445f43e"; - sha256 = "044p26x76i5x0921f8b8zl51k0wfkygdwdiwyhqmmnxzb54qj74l"; + rev = "e0ca0f1fc03b4166ce2eab9d7532b9b29989e5bd"; + sha256 = "0ldiwfysfwz6mr54j7rl1jccfx9lq31a4v9r6cm55js75mamhbw1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e88dc89311d4bfe82dc15f22b84c4b76abb3fd69/recipes/picpocket"; @@ -54160,12 +55240,12 @@ pinyinlib = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pinyinlib"; - version = "20160505.1248"; + version = "20170827.1442"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "pinyinlib.el"; - rev = "457b5ac6611d0f35ff2444e62008c798b45ae368"; - sha256 = "0kxsam8zb1rdw82d4jpa2n9kcdk05iscymgan39izgaa0w422s0r"; + rev = "45f05d3dbb4fe957f7ab332ca6f94675848b6aa3"; + sha256 = "0pmgb4y06dbffs4442aa92vn8ydwl45zqwzxzwhk6md1318fppvd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f4aa27985dcfaf24f1863667b89e13df4710546f/recipes/pinyinlib"; @@ -54199,22 +55279,22 @@ license = lib.licenses.free; }; }) {}; - pippel = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + pippel = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "pippel"; - version = "20170325.649"; + version = "20170730.623"; src = fetchFromGitHub { - owner = "brotzeitmacher"; + owner = "brotzeit"; repo = "pippel"; - rev = "764c8ec30ad14288accd05c7f8a1c9425d6aab7f"; - sha256 = "0plpjjyhn1rz8pwyldshwa61r7pfz310j4qciw55smjizz4hfjx8"; + rev = "3737d5934665b5059c1e858feeb4270262b37e53"; + sha256 = "0k94y305c6abhxgq6birfvnrplsx5gadwsqwn8m87sh8ldsjnmgi"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/pippel"; - sha256 = "0w6qbjb1wpz8gn4gzifzzjbc3gckhgnqvrpszrrklqmd10rk5mrw"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6d1796688ed0d6957557d960ca28e450f9bcb6cf/recipes/pippel"; + sha256 = "1li4h0dff1n7njy2lk3d50ndrlw84fphmdg16j0srkbgy7xz90yn"; name = "pippel"; }; - packageRequires = [ emacs s ]; + packageRequires = [ dash emacs s ]; meta = { homepage = "https://melpa.org/#/pippel"; license = lib.licenses.free; @@ -54223,12 +55303,12 @@ pivotal-tracker = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pivotal-tracker"; - version = "20161028.618"; + version = "20170720.816"; src = fetchFromGitHub { owner = "jxa"; repo = "pivotal-tracker"; - rev = "87b4e3cce343519b54a8ff4fef5d7b7745e27c3c"; - sha256 = "08rj1nimxrz5g1gj231f9d6p8al1svvwv1782h8hyxi87fzmw9sw"; + rev = "0311d117037c74512149a4a78b269c2e46d7dfba"; + sha256 = "0g3xzh8jr9lbg6h2hk81cdyxkxx3l79qhxrp4g34rc0dml79rzf9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/pivotal-tracker"; @@ -54328,12 +55408,12 @@ plain-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plain-theme"; - version = "20170114.1146"; + version = "20170625.1100"; src = fetchFromGitHub { owner = "yegortimoshenko"; repo = "plain-theme"; - rev = "43fc59d487d39e6110230a073f1376ab877aa739"; - sha256 = "0g44qdpn3ni291awjklia4r26qyiavpjib04k761hfacrdkvsdys"; + rev = "7c376f5bf9d653bf12e414176284736cbdd19108"; + sha256 = "12fjas93if4dqarj5g1bjvwxv3i3b5xanq6jnnks9f7gkxkbn75a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d7ad3737f081f101500317f7e183be6b1e7e8122/recipes/plain-theme"; @@ -54349,12 +55429,12 @@ plan9-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plan9-theme"; - version = "20170129.553"; + version = "20170529.2212"; src = fetchFromGitHub { owner = "john2x"; repo = "plan9-theme.el"; - rev = "db36861907144674a2526fed3ff733c53489b7f5"; - sha256 = "1sxx749xwxxab3k98wb4gpvy723kw5lcm7zhvvbjbgxr43lk6d05"; + rev = "cdc50195f6579e6c3e6e8060142ce25b609f7949"; + sha256 = "17grr5rvazh448qzrksxrgp0yclp32s2rxs4h5pygky7knb5vf3v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cdc4c2bafaa09e38edd485a9091db689fbda2fe6/recipes/plan9-theme"; @@ -54388,22 +55468,22 @@ license = lib.licenses.free; }; }) {}; - plantuml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + plantuml-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plantuml-mode"; - version = "20161225.1142"; + version = "20170819.1033"; src = fetchFromGitHub { owner = "skuro"; repo = "plantuml-mode"; - rev = "c7e83c260778467be5f82500a5541ce76da662ac"; - sha256 = "0lf2438ia39idxbz2b7qaagajnlfgf74cgvwppdl53hsy12b421n"; + rev = "fce628885b54635b0287b3337626752b2725369d"; + sha256 = "1pcxl00iwhrsi57s6gbf3bch00pkdxbg46p8xryn1w5r16xzd9pm"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a658eb8085f2bf413c276af19c77597132cf569b/recipes/plantuml-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/38e74bb9923044323f34473a5b13867fe39bed25/recipes/plantuml-mode"; sha256 = "03srbg34512vxcqn95q4r7h2aqbqq0sd5c9ffnbx2a75vsblqc6h"; name = "plantuml-mode"; }; - packageRequires = [ emacs ]; + packageRequires = []; meta = { homepage = "https://melpa.org/#/plantuml-mode"; license = lib.licenses.free; @@ -54433,12 +55513,12 @@ play-routes-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "play-routes-mode"; - version = "20160615.2053"; + version = "20170426.33"; src = fetchFromGitHub { owner = "brocode"; repo = "play-routes-mode"; - rev = "325ce59b0b3cb27ddbbde9949a16f6a749ffbd3f"; - sha256 = "0jn4mcwaws92lsj5hp67zlx03qwcxbqacy3rigy1b183ksqqf26i"; + rev = "22d7b87e0eaf0330f2b2283872f8dc08a3258771"; + sha256 = "0j61adh2lsh2zgz1v9i2jzh56ngnrpvsblipvc472k5dxa5qdxin"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/740cef8687232eb0e2186e8df956c2d4f39575cf/recipes/play-routes-mode"; @@ -54458,8 +55538,8 @@ src = fetchFromGitHub { owner = "thomasluquet"; repo = "playerctl.el"; - rev = "fa79b3c1223738ed89ded01fb1f4fb5fdd3aa92d"; - sha256 = "1c5bdkr7wr803pz889dmhhlcar0jmmwg1yy2b04zwc58cqw9g1i9"; + rev = "8354352813cd206efb60002f2af4427957bf8894"; + sha256 = "1138jcn2yjfhg0abkiwzzrf69pc5nddppf2hj35mn8b0rr7zs4bq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6db0d82c2eef7c5bef5f9f2c15969da4c404b62d/recipes/playerctl"; @@ -54556,24 +55636,6 @@ license = lib.licenses.free; }; }) {}; - plsql = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "plsql"; - version = "20121115.243"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/plsql.el"; - sha256 = "1v0wvy9fd1qq3aq83x5jv3953n0n51x7y2r2ql11j0h8xasy42p1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/eb457144c112a7a9de2fc4c634dfd6c2dda2e486/recipes/plsql"; - sha256 = "1jvppmfdll34b8dav5dvbabfxiapv92p7lciblj59a707bbdb7l1"; - name = "plsql"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/plsql"; - license = lib.licenses.free; - }; - }) {}; plur = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plur"; @@ -54616,11 +55678,11 @@ }) {}; po-mode = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "po-mode"; - version = "20160827.857"; + version = "20170419.303"; src = fetchgit { url = "https://git.savannah.gnu.org/git/gettext.git"; - rev = "41e5199f0e4a3e9d518d6f95a3efdfae5e2c7913"; - sha256 = "06ww6081aicw2d4rprig8ab5g1rx7dqx7cl9xh444k746c8a554d"; + rev = "981c523ddbd1462970335a1069573ca3bdd3df5e"; + sha256 = "1aq95scp0lg5r1fsn62r54dqamm3174wzrr0h3vxx75m3iycsxxi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/po-mode"; @@ -54636,12 +55698,12 @@ pocket-api = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "pocket-api"; - version = "20170315.1934"; + version = "20170818.533"; src = fetchFromGitHub { owner = "lujun9972"; repo = "pocket-api.el"; - rev = "de4c14122ffe6a04c93590da0ad4b8411801c6f5"; - sha256 = "1f1frnxsi8pgbmiycssq1jh1qjp12yfy1hq6zqscj0v510c4kzcq"; + rev = "26e4583311ebc472f7bba59a1189f04938f2c03e"; + sha256 = "04cf97mwkp5rw0dvnspdbrycywjdv4mljl6lbjhbvlijj745d5xm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04e3be76aef4d1b6d5bb3eda533b5deffcc8a5bc/recipes/pocket-api"; @@ -54654,6 +55716,27 @@ license = lib.licenses.free; }; }) {}; + pocket-lib = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, kv, lib, melpaBuild, request }: + melpaBuild { + pname = "pocket-lib"; + version = "20171026.1610"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "pocket-lib.el"; + rev = "52d4c3d9ca500acbf0a4cac4abfacc0641007abe"; + sha256 = "1c59xzh2acrfmld0fg78h3kyzhgfcfcbk7nmvb584jr2qppkszgy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/71f17ce28f4fc8c2c100848be8aec15526ef8697/recipes/pocket-lib"; + sha256 = "0v619blifmvm36dr773wjf35fjji4dj3pyck9nkz0m8zmpz0fg78"; + name = "pocket-lib"; + }; + packageRequires = [ dash emacs kv request ]; + meta = { + homepage = "https://melpa.org/#/pocket-lib"; + license = lib.licenses.free; + }; + }) {}; pocket-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pocket-api }: melpaBuild { pname = "pocket-mode"; @@ -54675,6 +55758,36 @@ license = lib.licenses.free; }; }) {}; + pocket-reader = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, kv, lib, melpaBuild, org-web-tools, ov, pocket-lib, rainbow-identifiers, s }: + melpaBuild { + pname = "pocket-reader"; + version = "20171023.737"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "pocket-reader.el"; + rev = "e65a7e7529ece4fb7a738c062e73d5c07ace9574"; + sha256 = "0bqxsvhmwvf0gpjmmh7pmzyw4lpcarj2prm52bgncch8x1f0gvnp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/835a7bf2f72987183e9d15ada7ae747fb5715c11/recipes/pocket-reader"; + sha256 = "0gcgmz4mhjgvqbh2gmv8v09sy80cnfccjym455m0fbl31b8dczhf"; + name = "pocket-reader"; + }; + packageRequires = [ + dash + emacs + kv + org-web-tools + ov + pocket-lib + rainbow-identifiers + s + ]; + meta = { + homepage = "https://melpa.org/#/pocket-reader"; + license = lib.licenses.free; + }; + }) {}; podcaster = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "podcaster"; @@ -54696,15 +55809,36 @@ license = lib.licenses.free; }; }) {}; + point-pos = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "point-pos"; + version = "20170421.932"; + src = fetchFromGitHub { + owner = "alezost"; + repo = "point-pos.el"; + rev = "442bccb40791832cbc2d6f5c8f53be745aea2b73"; + sha256 = "1p56h8ipgrd5433pc641xccdnsni51l58ll0hv2rp9aqjg9nlgcr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/23a1e835155fba51f595c10c46487a4c269f43ff/recipes/point-pos"; + sha256 = "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync"; + name = "point-pos"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/point-pos"; + license = lib.licenses.free; + }; + }) {}; point-stack = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "point-stack"; - version = "20141225.2110"; + version = "20170808.958"; src = fetchFromGitHub { owner = "dgutov"; repo = "point-stack"; - rev = "86b37666882398f4db93f3aba0ebb7b7965032cd"; - sha256 = "0nqv63yy0qpxhblzmkyvla90p9a7729fqxvhkfld9jxfqpgv1xyp"; + rev = "76e17311e3a810314c7d31ac46dc55450ff30fa2"; + sha256 = "1sp3djnyg3f5ci43m4pi0f6clblrz5lrnzc415r87csbavqqgv2z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bb3c9e6b3c583f098f75462b4d48cd137a1bcb76/recipes/point-stack"; @@ -54717,24 +55851,6 @@ license = lib.licenses.free; }; }) {}; - point-undo = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "point-undo"; - version = "20100504.129"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/point-undo.el"; - sha256 = "13c1iw77ccvrfrv4lyljg8fpm7xqhnv29yzvig8wr8b5j2vsd8bz"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ce31bd8f9a1ad4f3252f8cd4ef15984495df18bd/recipes/point-undo"; - sha256 = "0by7ifj1lf0w9pp7v1j9liqjs40k8kk9yjnznxchq172816zbg3k"; - name = "point-undo"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/point-undo"; - license = lib.licenses.free; - }; - }) {}; pointback = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pointback"; @@ -54777,6 +55893,27 @@ license = lib.licenses.free; }; }) {}; + poly-ruby = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, polymode }: + melpaBuild { + pname = "poly-ruby"; + version = "20170802.648"; + src = fetchFromGitHub { + owner = "knu"; + repo = "poly-ruby.el"; + rev = "e6f50a92d29a5ff567d70cafa6621c4f89056d11"; + sha256 = "1pdimvcrjq0k6a9kijcl6zmsmmvssdqsdkgcz14qs4444qly4l9b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/68213703359324d09553a2164f1f6ecca7c16854/recipes/poly-ruby"; + sha256 = "0d8s6bl5ynx0r5cwvfkd52rksiq5kdyrgbxds56r8ls6cfkwqngg"; + name = "poly-ruby"; + }; + packageRequires = [ emacs polymode ]; + meta = { + homepage = "https://melpa.org/#/poly-ruby"; + license = lib.licenses.free; + }; + }) {}; polymode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "polymode"; @@ -54801,12 +55938,12 @@ pomidor = callPackage ({ alert, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pomidor"; - version = "20170310.634"; + version = "20170925.2301"; src = fetchFromGitHub { owner = "TatriX"; repo = "pomidor"; - rev = "bac68f7a1c72da3db6020d3bda45e38576c9c488"; - sha256 = "13bq9cm9aclnlsjzw66kig2618xr2v5sfb12dff8ja5hmw0j2jla"; + rev = "16bed77ff933cb5f8430b6eacf27509631d22072"; + sha256 = "1w2ql67arjzzjakqm34gbs3vf6w9yzkw5kzi5vrvkcwajqq8qq56"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0d4f313081594df23f357c40feb456847d8bd0/recipes/pomidor"; @@ -54843,12 +55980,12 @@ pony-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pony-mode"; - version = "20151028.302"; + version = "20170807.822"; src = fetchFromGitHub { owner = "davidmiller"; repo = "pony-mode"; - rev = "d319b0317bfbdac12d28cfd83abe31cc35f3cdd7"; - sha256 = "1g1yw0ykwswl9dnicyi7kxskqqry40wjykshgrqhs4k09j3jnacr"; + rev = "760684d30b6c234d1b88c9a4673a808f36f7f341"; + sha256 = "1y4gxn25i2nszdhqq8jxf9h65mqfgcwbypx5p4wkan5i1v2i3yr1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a1fd64317610fb6ef5b14e8bf15e727680d5ff09/recipes/pony-mode"; @@ -54885,12 +56022,12 @@ ponylang-mode = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ponylang-mode"; - version = "20161008.1423"; + version = "20171028.1356"; src = fetchFromGitHub { owner = "SeanTAllen"; repo = "ponylang-mode"; - rev = "1f4ce183e11f4908173cea16685020f2acb818ae"; - sha256 = "1lxzl5ks4lydn8zzvkc0jz6p1zjz7hfm4fs9dlyjxi6fn2bvj5kw"; + rev = "5e23459dc395eb77fa4c6cfa3d6c08b1b185a6df"; + sha256 = "0iwdnv56200w53ba4f66vih7gha2nb36ajnvbqixc0byibwcsnc9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d51adec3c6519d6ffe9b3f7f8a86b4dbc2c9817/recipes/ponylang-mode"; @@ -54906,12 +56043,12 @@ pophint = callPackage ({ fetchFromGitHub, fetchurl, lib, log4e, melpaBuild, yaxception }: melpaBuild { pname = "pophint"; - version = "20170403.701"; + version = "20170917.1948"; src = fetchFromGitHub { owner = "aki2o"; repo = "emacs-pophint"; - rev = "5d1db7c0b92862ba2cc5f3566b25840b8ce3ba59"; - sha256 = "09av2krrmm8g3f3f31kl4j4agmmf8hx9irzrqyvgshljflk0nq1q"; + rev = "909025c5a871ca4b9ec7aed7f1a27c819a94dba1"; + sha256 = "0qbb36qijkzbzxlmqsvvddm7x2gk9rkafnyjbkxsl76rz1ajy6nz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0055c2887acbbd8a2803bf3f81ac2cc444cc805a/recipes/pophint"; @@ -55134,6 +56271,27 @@ license = lib.licenses.free; }; }) {}; + postcss-sorting = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "postcss-sorting"; + version = "20170531.1858"; + src = fetchFromGitHub { + owner = "P233"; + repo = "postcss-sorting.el"; + rev = "1320d74abd8ee7f0a09b5f7920d554650a7047a6"; + sha256 = "0071al1nwqazv8rhr7qm799rmizbqwgcrb5in3lm0sz88fbs9vnk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9fae97430f211786f615f7450936f823e2a04ec4/recipes/postcss-sorting"; + sha256 = "0730b2wddal15yi4k6wzhv9xv1k40iwrn3mivg9bkxabh3mgrl10"; + name = "postcss-sorting"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/postcss-sorting"; + license = lib.licenses.free; + }; + }) {}; pov-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pov-mode"; @@ -55179,12 +56337,12 @@ powerline = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "powerline"; - version = "20161121.2320"; + version = "20171023.750"; src = fetchFromGitHub { owner = "milkypostman"; repo = "powerline"; - rev = "67538e4dbc2f1d2f270142481eb0b0d24e8cde36"; - sha256 = "0jjv6wszsnrdi5l5qz4d50nj6p6zzyvqmn1j31zlhypbvi05isls"; + rev = "fda4fb96984607d4a6502b1d8c8898e56d10cf6c"; + sha256 = "1lz3kr8w9z9xx5amqqvim85asjji13q84d4r1cb5x77wajmj1p21"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f805053cd4dd9ed53ee0df17ad69429bc62325bb/recipes/powerline"; @@ -55239,42 +56397,6 @@ license = lib.licenses.free; }; }) {}; - pp-c-l = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "pp-c-l"; - version = "20170307.939"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/pp-c-l.el"; - sha256 = "0q36bq82lp381jnzf8kapiiglqgibzkhsxlhpgfdg3ynbmw5i1cc"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/pp-c-l"; - sha256 = "0gbqxlrsh9lcdkrj8bqh1mpxyhdlwbaxz4ndp5s90inmisaqb83v"; - name = "pp-c-l"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/pp-c-l"; - license = lib.licenses.free; - }; - }) {}; - pp-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "pp-plus"; - version = "20170307.938"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/pp+.el"; - sha256 = "0a1dj9n3n81xal17djj15hqa71cqphjnf9k9z03vnpw8zq0m93lh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/pp+"; - sha256 = "1ng5x7dp85y6yqj6q43h08qdnapg2j1ab8rmc47w4w79d1pryniq"; - name = "pp-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/pp+"; - license = lib.licenses.free; - }; - }) {}; ppd-sr-speedbar = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, project-persist-drawer, sr-speedbar }: melpaBuild { pname = "ppd-sr-speedbar"; @@ -55341,12 +56463,12 @@ preseed-generic-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "preseed-generic-mode"; - version = "20150119.1241"; + version = "20170802.1753"; src = fetchFromGitHub { owner = "suntong"; repo = "preseed-generic-mode"; - rev = "19bce980d41607bef8af4b1901343abfca0f0855"; - sha256 = "1dyi9nc2q43jf87xiz9xw42irrbla2vyixifdiibh6nm9misnfj0"; + rev = "341d85f8ecdc8834956a0352ece542f45def88db"; + sha256 = "1p486absi0mlcangpbh6hs36wvlmm9s6f4ag0lzmw7w3ikhp88kn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/preseed-generic-mode"; @@ -55359,6 +56481,27 @@ license = lib.licenses.free; }; }) {}; + prettier-js = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "prettier-js"; + version = "20170823.159"; + src = fetchFromGitHub { + owner = "prettier"; + repo = "prettier-emacs"; + rev = "6cc79cc933968f9ecae988ed79398d9dc97790e2"; + sha256 = "01k1k68rwwpjdajc12dvpjr8jfncvj8lli2l6065jwbq8ldg2ja0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/968ac7bb98b385f8542dc150486982c0ded73187/recipes/prettier-js"; + sha256 = "0mf66sdsdbhf76pwkjkfjsnh26g4j3zb4y1qrbxc9jcvymccb3yq"; + name = "prettier-js"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/prettier-js"; + license = lib.licenses.free; + }; + }) {}; prettify-greek = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "prettify-greek"; @@ -55380,24 +56523,6 @@ license = lib.licenses.free; }; }) {}; - pretty-lambdada = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "pretty-lambdada"; - version = "20170307.940"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/pretty-lambdada.el"; - sha256 = "0b8m96hbqmgyqmv5f890fnyl9vl2wcsaz8w4b11wdprh82ravp4r"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/pretty-lambdada"; - sha256 = "16v5fgifz672c37xyzv557mm6za4rldvdrb26vdymxqg4fy62fd6"; - name = "pretty-lambdada"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/pretty-lambdada"; - license = lib.licenses.free; - }; - }) {}; pretty-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pretty-mode"; @@ -55527,12 +56652,12 @@ processing-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "processing-mode"; - version = "20150217.432"; + version = "20171022.1602"; src = fetchFromGitHub { owner = "ptrv"; repo = "processing2-emacs"; - rev = "a57415e523c9c3faeef02fa62a2b749270c4cc33"; - sha256 = "1smw786dcjvdn2j6bwqn2rfzhw039rrhxiv7vlrgzm0fyy2v1q6h"; + rev = "448aba82970c98322629eaf2746e73be6c30c98e"; + sha256 = "1fv74k37yyrh6jzasgqj88lrbq152gs9gpbjpxn7fz424c38gq2q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ba59561e8a2f259fde170a79844af5e1ef5ed34f/recipes/processing-mode"; @@ -55552,8 +56677,8 @@ src = fetchFromGitHub { owner = "ptrv"; repo = "processing2-emacs"; - rev = "a57415e523c9c3faeef02fa62a2b749270c4cc33"; - sha256 = "1smw786dcjvdn2j6bwqn2rfzhw039rrhxiv7vlrgzm0fyy2v1q6h"; + rev = "448aba82970c98322629eaf2746e73be6c30c98e"; + sha256 = "1fv74k37yyrh6jzasgqj88lrbq152gs9gpbjpxn7fz424c38gq2q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ba59561e8a2f259fde170a79844af5e1ef5ed34f/recipes/processing-snippets"; @@ -55569,12 +56694,12 @@ prodigy = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "prodigy"; - version = "20160929.2302"; + version = "20170816.1114"; src = fetchFromGitHub { owner = "rejeep"; repo = "prodigy.el"; - rev = "50a5d4e0c720e73ef0919cf8019a32d934e86616"; - sha256 = "1a9cbzfchbiv7kafmim1mbx38y2iscibbgg6i0aq3200b30mxk57"; + rev = "94d4d2870b86af1185e6395dabf15b3695846f38"; + sha256 = "017xw1havxq9v6vxwvarmvxwk41jsrjik1mak5habmpfpwv78k01"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/prodigy"; @@ -55671,25 +56796,6 @@ license = lib.licenses.free; }; }) {}; - project-local-variables = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "project-local-variables"; - version = "20080502.952"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/project-local-variables.el"; - sha256 = "1bb5b6hxg3gvwf0sqwkd97nnipsmr60py0rnsfhgvizn4cj3khhw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/project-local-variables"; - sha256 = "1jys9nac2912jdv40fly1q4i30xa8b1v2ndbc50rk4ysarhbhdd9"; - name = "project-local-variables"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/project-local-variables"; - license = lib.licenses.free; - }; - }) {}; project-persist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "project-persist"; @@ -55776,12 +56882,12 @@ projectile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: melpaBuild { pname = "projectile"; - version = "20170416.148"; + version = "20171031.456"; src = fetchFromGitHub { owner = "bbatsov"; repo = "projectile"; - rev = "da581cdfe4f4f63137f3320ed3dbda9cf6c20e14"; - sha256 = "1bgkx3vwn3vy796a1aq2hd7817qaznf4laqni417gzi43jqf8414"; + rev = "7892f642ce7ab6ee816e5926ae02ea2014dac2a8"; + sha256 = "17vclk40435qv2g0fjgyc0fndjghd2x20i43zvcff45yjqmyhw88"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca7bf43ef8893bf04e9658390e306ef69e80a156/recipes/projectile"; @@ -55839,12 +56945,12 @@ projectile-git-autofetch = callPackage ({ alert, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: melpaBuild { pname = "projectile-git-autofetch"; - version = "20161109.1429"; + version = "20170612.1011"; src = fetchFromGitHub { owner = "andrmuel"; repo = "projectile-git-autofetch"; - rev = "3d4eae6493607b9a0461c5161d195659c268184b"; - sha256 = "1db4jq4vn9mk8c9ma7yma7q00hwhwba25w2hy8jyagyb83lk2zgj"; + rev = "51b40134000a2411c6342e865e63f74c950a9310"; + sha256 = "0g4g4sjinmigyxs1irxv0yg524iq2hy8za09ksm3wbnbfa7w35ml"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fdfdeb69fd78fc1bb2c62392f860a8c434f1762/recipes/projectile-git-autofetch"; @@ -55881,12 +56987,12 @@ projectile-rails = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }: melpaBuild { pname = "projectile-rails"; - version = "20170411.152"; + version = "20170901.47"; src = fetchFromGitHub { owner = "asok"; repo = "projectile-rails"; - rev = "9647dc1368df6a3b6de17314332d024cceb90052"; - sha256 = "1v8hipd7i63dv9lvq0ff5v9awg017kr0xfjk5hysamb346r1rsrn"; + rev = "31c9f90d472e07cb8e49fa8992b187b67c9c9a71"; + sha256 = "0j38zbprkga3iq5wb77zvfa5r3sj3sqv8qh0ab62wm68qy60d6g3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b16532bb8d08f7385bca4b83ab4e030d7b453524/recipes/projectile-rails"; @@ -55906,8 +57012,8 @@ src = fetchFromGitHub { owner = "nlamirault"; repo = "ripgrep.el"; - rev = "73595f1364f2117db49e1e4a49290bd6d430e345"; - sha256 = "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"; + rev = "c47a2da4668ca338e7fadc3d8c095e075caaa17d"; + sha256 = "0x2rkm1yf03qfzylx6pk32cq7mmydila2iwiq40k5nl4wgfia5vx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/195f340855b403128645b59c8adce1b45e90cd18/recipes/projectile-ripgrep"; @@ -55927,8 +57033,8 @@ src = fetchFromGitHub { owner = "nlamirault"; repo = "sift.el"; - rev = "ef509ac4c579340e8d924c26d9e5858a9f4fb9de"; - sha256 = "0i8gqzvpl3drzp031dqdpsi1ssr3az8fzb7xpbxnamzscfz6pdyc"; + rev = "4ce8878a0fc396ded7521ce38852d93e1d863065"; + sha256 = "1x78i6svi4cwah9xw85imhpncvxsx4xim4fzykpnd328mxkk07h6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a730e1331b0486c4bd2d309b85d2f8810489eb47/recipes/projectile-sift"; @@ -55944,12 +57050,12 @@ projectile-speedbar = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, sr-speedbar }: melpaBuild { pname = "projectile-speedbar"; - version = "20170127.810"; + version = "20170516.1943"; src = fetchFromGitHub { owner = "anshulverma"; repo = "projectile-speedbar"; - rev = "1b9b3ae7624ca58a41ca7e0d0eb37556d3105c44"; - sha256 = "0src453yf63j5dhndrqjx6gh6nfm5c83y2xj2ibk3sj61x9daxj2"; + rev = "dcab13db72c2084edbebe808e35f1126fe0b3bcd"; + sha256 = "106a4y5r1adjpbnjn734s7d910r6akhjlyjpd6bnczjhp357wyc7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eda8cb5a175258404c347ffa30fca002504467a0/recipes/projectile-speedbar"; @@ -55962,19 +57068,40 @@ license = lib.licenses.free; }; }) {}; + projectile-trailblazer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }: + melpaBuild { + pname = "projectile-trailblazer"; + version = "20170928.924"; + src = fetchFromGitHub { + owner = "micdahl"; + repo = "projectile-trailblazer"; + rev = "a37a4f7b7f727d98e4c74c0256e059e84263553d"; + sha256 = "1njs2aps4mlbnnfjkfwrb8vy8lg6lyxzxkxpscv91la7yf3wpc3g"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f9c6f2f92ff99e7a3241003dc396f978f3916c8a/recipes/projectile-trailblazer"; + sha256 = "18cijb5c1ym5kn2g2apbijbfd3aqhrraki8vv9bk8rvi7wmm6qj4"; + name = "projectile-trailblazer"; + }; + packageRequires = [ emacs f inf-ruby inflections projectile rake ]; + meta = { + homepage = "https://melpa.org/#/projectile-trailblazer"; + license = lib.licenses.free; + }; + }) {}; projectile-variable = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "projectile-variable"; version = "20170208.918"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "projectile-variable"; rev = "8d348ac70bdd6dc320c13a12941b32b38140e264"; sha256 = "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ff603b43235f546cd47f72e675aee88d5f41e855/recipes/projectile-variable"; - sha256 = "1cj8nwxf1jp5q5zzxp92fxla6jhwzd21gw649ar6mygi4hgymsji"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/projectile-variable"; + sha256 = "15qc5n91nxyfvb100iyihfmrdr57qgw6098yv3nfqgw3zx1qchdw"; name = "projectile-variable"; }; packageRequires = [ cl-lib emacs ]; @@ -55986,12 +57113,12 @@ projector = callPackage ({ alert, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: melpaBuild { pname = "projector"; - version = "20170410.905"; + version = "20171006.1258"; src = fetchFromGitHub { owner = "waymondo"; repo = "projector.el"; - rev = "bd9e5b5c4727c0facd9d45a4b6a46ffddaf6a131"; - sha256 = "1fx5wg5lnb59z0y25bmysf6a2wld333iihrb9jhcab4hicdqsh9s"; + rev = "03751fca880c95cf47e560c78cfc2aaa056cd455"; + sha256 = "1yg9pcs6pbwd7a35q0jqjwnqwjqz4v5jd24msr51xh0v8kbs2v61"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/420ffea4549f59677a16c1ee89c77b866487e302/recipes/projector"; @@ -56053,8 +57180,8 @@ src = fetchFromGitHub { owner = "chuntaro"; repo = "emacs-promise"; - rev = "7adac1f8e87d69b3d328add8db396f73254a4303"; - sha256 = "0xaa54plzlr894j3bp78c9nf8fqwgjscvdrrirh581ff772gx26z"; + rev = "d3cad4e1f7825404828cd9f5b887f18d3fd83c56"; + sha256 = "1cn1xcp6yfxp642yibknngf456v29s2qq3y8bsc67ydxjkr5w4gz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3eaf5ac668008759677b9cc6f11406abd573012a/recipes/promise"; @@ -56151,6 +57278,27 @@ license = lib.licenses.free; }; }) {}; + proportional = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "proportional"; + version = "20171025.1637"; + src = fetchFromGitHub { + owner = "ksjogo"; + repo = "proportional"; + rev = "f671ffe8fd803e2fc462e2e1844aeeab1a13918e"; + sha256 = "02sbrcb9c27djk64xv41vii6pbw83b6iljrd66w4ad9hgz2pkxzk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9e0a7f061df4cce44e5fe98f6e1c31bec4a7338f/recipes/proportional"; + sha256 = "022lhbslzd67wyah8r0gl73vzxgjjwia08l3ssdd08jj3p56m3wx"; + name = "proportional"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/proportional"; + license = lib.licenses.free; + }; + }) {}; prosjekt = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "prosjekt"; @@ -56175,12 +57323,12 @@ protobuf-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "protobuf-mode"; - version = "20160805.1045"; + version = "20170526.950"; src = fetchFromGitHub { owner = "google"; repo = "protobuf"; - rev = "8aa927f08f6b92808976b0c22fa4a45850279987"; - sha256 = "12n6i25mvb4a4yqpiyrfd9firfz2frv0zh0akpjd03qv93fmw30j"; + rev = "cbe250591fca9d2e776776be065a72c5550a5556"; + sha256 = "0g8zp8ws7i9v3a719dvwkva0f9rap5s6jdpw2j8cj1kp94bvk9fl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b4e7f5f641251e17add561991d3bcf1fde23467b/recipes/protobuf-mode"; @@ -56196,12 +57344,12 @@ protocols = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "protocols"; - version = "20170327.758"; + version = "20170802.432"; src = fetchFromGitHub { owner = "davep"; repo = "protocols.el"; - rev = "1c93a48d4173635a7b742248797f424e7ce851e3"; - sha256 = "1hbk7ikcp041m7g2nfbbvsyj15d7p3dhsv0yvyy1n6bm5azh30zr"; + rev = "d0f7c4acb05465f1a0d4be54363bbd2802647e77"; + sha256 = "1xg3pwsnzn795bz299x273ral2jrz2v3p9r6gjm4dcx5pm3348mj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c9a75671a00e9196d00b08911232aac87fd8c83/recipes/protocols"; @@ -56217,15 +57365,15 @@ psc-ide = callPackage ({ cl-lib ? null, company, dash, dash-functional, emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild, s, seq }: melpaBuild { pname = "psc-ide"; - version = "20170324.243"; + version = "20171031.129"; src = fetchFromGitHub { owner = "epost"; repo = "psc-ide-emacs"; - rev = "28a3a95890243993b20c2c2bf66d6c00a2f0fd21"; - sha256 = "0kajvmfyaxma9mh7mbrc3hiilzkdjwmgvv6zdfv39r9llwkrv80k"; + rev = "d28c33f65318a475133afc2f42e103db9251d2a2"; + sha256 = "19f9aw675d6crhd9j9jvqya39ddsf4f6hcwb03525k307syvg62y"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8189f4e7d6742d72fb22acf61a9d7eb0bffb2d93/recipes/psc-ide"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/384ffc463cc6edb4806f8da68bd251e662718e65/recipes/psc-ide"; sha256 = "1f8bphrbksz7si9flyhz54brb7w1lcz19pmn92hjwx7kd4nl18i9"; name = "psc-ide"; }; @@ -56248,16 +57396,16 @@ psci = callPackage ({ dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, purescript-mode, s }: melpaBuild { pname = "psci"; - version = "20160717.1125"; + version = "20171011.50"; src = fetchFromGitHub { - owner = "ardumont"; + owner = "purescript-emacs"; repo = "emacs-psci"; - rev = "d773b407f772e6ab3c40406c22824889e0fd14fe"; - sha256 = "1kvw5qj975s7r58858aiql9861rglz1xgj9n69g5li9mcdxk0v2f"; + rev = "5360b244c588ed2f2a5bb86180cb5d4deb2216de"; + sha256 = "0m9lpwwm29h0pms1rnwnh67ff1n1dmf25yy429g438zq98l94x9s"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a0f45269895b8e061c972da46f932c96eb0f5279/recipes/psci"; - sha256 = "0sgrz8byz2pcsad2pydinp4hh2xb48pdb03r93wg2vvyy8p15j9g"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3451719ce5096383db082917716a5ed8346fc186/recipes/psci"; + sha256 = "1iwkr58b910vrwwxyk00psy74vp201vmm3b0cm4k5fh3glr31vp9"; name = "psci"; }; packageRequires = [ dash f purescript-mode s ]; @@ -56308,22 +57456,22 @@ license = lib.licenses.free; }; }) {}; - psysh = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + psysh = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "psysh"; - version = "20170205.1142"; + version = "20171022.2229"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "psysh.el"; - rev = "429b59ba8fd5ac7b6d3c6c4e3ad72867062c96db"; - sha256 = "0ldv1lyra05g91hdsif131x7yqdmwld8hdpg4h3qi040kls9bix1"; + rev = "926af4ae0c068ed699fc939f4b3e642aaa6f7c9e"; + sha256 = "0k6kb4xbfxcvd7dm3kb600mq56xyy086zi7nal04jkv9lc59bwn7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4b3131d9a0ad359f15bc3550868a12f02476449a/recipes/psysh"; - sha256 = "0ygnfmfx1ifppg6j3vfz10srbcpr5ird2bhw6pvydijxkyd75vy5"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/psysh"; + sha256 = "00rzfw8nlbcmfbjnzbfl08136dhgvrrn9g1s9l623xgpbcay63sg"; name = "psysh"; }; - packageRequires = [ emacs ]; + packageRequires = [ emacs f s ]; meta = { homepage = "https://melpa.org/#/psysh"; license = lib.licenses.free; @@ -56350,27 +57498,48 @@ license = lib.licenses.free; }; }) {}; - pug-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + pug-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pug-mode"; - version = "20170127.1949"; + version = "20171018.829"; src = fetchFromGitHub { owner = "hlissner"; repo = "emacs-pug-mode"; - rev = "83599129c0de6f9f5082d019373c3d9347150191"; - sha256 = "17fwl967kw0kykakvga9vk7i294y5iysff263ir4y6vsnca3syn8"; + rev = "9dcebdb10c50620a3a5c6d71361d53bf482a482e"; + sha256 = "1rkbk8apd612ixksyssmmkrhswks6gbxl9kxhrbaxszfrrhqx86v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b3710aac9f3df3a23238af1f969c462b3692f260/recipes/pug-mode"; sha256 = "1njhr95y2rx7inpl9phxxz580844p2iadqlga1kj7xzvjz698x85"; name = "pug-mode"; }; - packageRequires = [ emacs ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/pug-mode"; license = lib.licenses.free; }; }) {}; + pulseaudio-control = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pulseaudio-control"; + version = "20171024.2339"; + src = fetchFromGitHub { + owner = "flexibeast"; + repo = "pulseaudio-control"; + rev = "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b"; + sha256 = "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7964f226e12c3a27ff856e28f4b030ebf304aea2/recipes/pulseaudio-control"; + sha256 = "1vdhg85lbdx7sj1xg2vhhfmhrrp5q2x560agnsb0gxi2akp6z9r0"; + name = "pulseaudio-control"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/pulseaudio-control"; + license = lib.licenses.free; + }; + }) {}; punctuality-logger = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "punctuality-logger"; @@ -56437,12 +57606,12 @@ puppet-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: melpaBuild { pname = "puppet-mode"; - version = "20170415.2259"; + version = "20170928.1007"; src = fetchFromGitHub { owner = "voxpupuli"; repo = "puppet-mode"; - rev = "1f74263f42c56c0b88e8fded540231a2d4fd9e36"; - sha256 = "1mc6msf6hzy0fdm1gwq4f9gadspk68d1mdwbhl1j1ngx2gqbrhik"; + rev = "e04f041386ebfe29fc67c3407e85b577b820df4f"; + sha256 = "0hcp7hmxri62qcx80zqphlhwrhzapzi0c07kk4l2cm75xfy20a2l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1de94f0ab39ab18dfd0b050e337f502d894fb3ad/recipes/puppet-mode"; @@ -56458,12 +57627,12 @@ purescript-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "purescript-mode"; - version = "20161216.133"; + version = "20170926.242"; src = fetchFromGitHub { owner = "dysinger"; repo = "purescript-mode"; - rev = "c88126070c052d636f4dad5525846a1b200fce43"; - sha256 = "1ndclsywvh5x06gmvk44zjlgfamdn55lygdgxf3x1vrznvr0jawy"; + rev = "e2d6519a9669a1443db1040cf098bc3ea30ec861"; + sha256 = "1k8q32ipa684hvk7iwpdzqwikimw8g3j6gkmz9yi5fxflq6z1swr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/77175fa470e517fa134751fbb38e144eb5b979ff/recipes/purescript-mode"; @@ -56542,14 +57711,14 @@ pushover = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pushover"; - version = "20160718.857"; + version = "20170818.1403"; src = fetchgit { url = "https://git.flintfam.org/swf-projects/emacs-pushover.git"; - rev = "c43f149eaef832f6af399723a5a59424aa093aaa"; - sha256 = "0vrx8m7jcxavbfsyh35mf289vfyal0yrfl6h2m2yfx81whbinb5j"; + rev = "bbe3ac8df3c532a72da4552615af960b8a577588"; + sha256 = "187bisngi37n66ik2dq7rg4hy4nlxl9pifqgqq08kf9238y8hd11"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2e12638554a13ef49ab24da08fe20ed2a53dbd11/recipes/pushover"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e9553cd029bc0733c89d2c790cb173d9668a9eba/recipes/pushover"; sha256 = "0im5bf2r69s2jb6scm8xdk63y1xi5zm4kg9ghfixlvyvipfli4kl"; name = "pushover"; }; @@ -56604,15 +57773,15 @@ py-gnitset = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "py-gnitset"; - version = "20140224.2010"; + version = "20170821.1032"; src = fetchFromGitHub { owner = "quodlibetor"; repo = "py-gnitset"; - rev = "471eb99b83eb9f6915d8ca241e9770ddd6244a78"; - sha256 = "05803wi7rj73sy9ihkilr6pcn72szfsvgf2dgbdpnqra508rxyb6"; + rev = "1e993cc29cbc31e06fe1e335dec198e21972fa55"; + sha256 = "1hslq2bdk95cgza9qbskxf942ckhjb4bqi6nrhbmlnm9agmjqm59"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/187d97c797818c4e0f61073b9e24baf925c437ff/recipes/py-gnitset"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d00b78ead693e844e35c760fe2c39b8ed6cb0d81/recipes/py-gnitset"; sha256 = "0f6ivq4ignb4gfxw2q8qvigvv3fbvvyr87x25wcaz6yipg1lr18r"; name = "py-gnitset"; }; @@ -56667,12 +57836,12 @@ py-smart-operator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "py-smart-operator"; - version = "20150824.1910"; + version = "20170531.509"; src = fetchFromGitHub { owner = "rmuslimov"; repo = "py-smart-operator"; - rev = "5e3222e4fc285c48a77c8e4c0e1cbc985a9713c8"; - sha256 = "14gppb354wzbbqv0zp1675p84n07rll9n4i6lncd9bvv1flqsxy8"; + rev = "0c8a66faca4b35158d0b5885472cb75286039167"; + sha256 = "09pmkp24s7nwh6p4pzsjp1z65ksi9n3n2xv7d3igpa86l8qgcm2d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a7491a1825b7aaa5f76aafadb8f04721ab1b1cfe/recipes/py-smart-operator"; @@ -56755,8 +57924,8 @@ src = fetchFromGitHub { owner = "mattharrison"; repo = "pycoverage.el"; - rev = "dbc152a807efcaac4e50bedb64c026674009a279"; - sha256 = "0qap6iz865l43mixga7541c2z9kdx8zkkdcgdlgn6n8pyv8iz7qs"; + rev = "4f5451f4d6e1e2ddd5878fc7d18f5fc4fc92a83d"; + sha256 = "0xhkzskxnj4lmf4152c3n1vp68l1xgwa277f3yg8sslg6ixkd2p0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eb0310bbe8427abdcba2b30414ec26475b0b7440/recipes/pycoverage"; @@ -56772,12 +57941,12 @@ pydoc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pydoc"; - version = "20160529.1639"; + version = "20170429.1158"; src = fetchFromGitHub { owner = "statmobile"; repo = "pydoc"; - rev = "5392248e33d83ef05d3b2809b0c6b207786b2644"; - sha256 = "1m0jb5pk1a1ww5jx2y5nz21by4dh7nlnhdn6bigz53ra449rrxii"; + rev = "916153516382e5546b59b46342c58ed76cf27faf"; + sha256 = "18ba5mcp030l6ywdq70ryvbwn7af28kp0xi8h1bma5mwcxj2sg2c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5c4988a66040ddf659492bdb0ae2b9617c342c69/recipes/pydoc"; @@ -56813,12 +57982,12 @@ pyenv-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic }: melpaBuild { pname = "pyenv-mode"; - version = "20160221.1123"; + version = "20170801.1648"; src = fetchFromGitHub { owner = "proofit404"; repo = "pyenv-mode"; - rev = "560614d47e3b0331f5c0e136763be69ef052048d"; - sha256 = "049wgwygdaa0p8p4pl37wkc06nam9ph17i9gzcg7w0hfwghjrc5j"; + rev = "215b7f0ed3847e0c844adbff7d9b19057aa7c820"; + sha256 = "0wb9xgpp9bc045kkw0jg14qnxa1y7ydsv1zw4nmy0mw7acxpcjgn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/pyenv-mode"; @@ -56894,15 +58063,99 @@ license = lib.licenses.free; }; }) {}; + pyim = callPackage ({ async, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip, pyim-basedict }: + melpaBuild { + pname = "pyim"; + version = "20170916.2024"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim"; + rev = "d44db4cb74c1c0cf6f814ff14d0be8e733f8404a"; + sha256 = "02b2aknx127xvl8amf74krvd7z33kyr049iw5h0665zkzsli4g8w"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/151a0af91a58e27f724854d85d5dd9668229fe8d/recipes/pyim"; + sha256 = "1ly4xhfr3irlrwvv20j3kyz98g7barridi9n8jppc0brh2dlv98j"; + name = "pyim"; + }; + packageRequires = [ async cl-lib emacs popup pos-tip pyim-basedict ]; + meta = { + homepage = "https://melpa.org/#/pyim"; + license = lib.licenses.free; + }; + }) {}; + pyim-basedict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pyim-basedict"; + version = "20170726.1959"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim-basedict"; + rev = "3196cb210e056702c5a4ea1dac1d8e1e27740fab"; + sha256 = "03jbjc5a1h22vpcybg0gmbyibaa85w2ml1pjk646qb28ljywd5aw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/151a0af91a58e27f724854d85d5dd9668229fe8d/recipes/pyim-basedict"; + sha256 = "1y8cmccli3im5bvws2h582z7k4nj6p8brgypl8h09y3na6yjy2z9"; + name = "pyim-basedict"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/pyim-basedict"; + license = lib.licenses.free; + }; + }) {}; + pyim-cangjie5dict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pyim }: + melpaBuild { + pname = "pyim-cangjie5dict"; + version = "20170729.1946"; + src = fetchFromGitHub { + owner = "erstern"; + repo = "pyim-cangjie5dict"; + rev = "c8618590780b818db1a67a29bc47c5d25903517a"; + sha256 = "0p49h2kn8wy3b51zahzyc1cy24h3b44cg5yjpmv4w23dhsr4zlz8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/27a58729115b038abe813601bf16bba1524cdb2c/recipes/pyim-cangjie5dict"; + sha256 = "0k2nxdlrj3m09javv599ajwd8cd5mjz0hj1j51zpv4y0l1n801bn"; + name = "pyim-cangjie5dict"; + }; + packageRequires = [ pyim ]; + meta = { + homepage = "https://melpa.org/#/pyim-cangjie5dict"; + license = lib.licenses.free; + }; + }) {}; + pyim-wbdict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pyim }: + melpaBuild { + pname = "pyim-wbdict"; + version = "20170724.1527"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim-wbdict"; + rev = "114489ed97e825ae11a8d09da6e873820cf23106"; + sha256 = "187wx418pj4h8p8baf4943v9dsb6mfbn0n19r8xiil1z2cmm4ygc"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ab1cb8bc623d1f12f78fa42ce8b16514e5b07c51/recipes/pyim-wbdict"; + sha256 = "1s0i9xcnpy8kxqhsv7rqxabv5vnxsciyng398mn32mknib03315i"; + name = "pyim-wbdict"; + }; + packageRequires = [ pyim ]; + meta = { + homepage = "https://melpa.org/#/pyim-wbdict"; + license = lib.licenses.free; + }; + }) {}; pyimport = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: melpaBuild { pname = "pyimport"; - version = "20170303.732"; + version = "20170808.346"; src = fetchFromGitHub { owner = "Wilfred"; repo = "pyimport"; - rev = "2482c8efee8edab9f26ea278848d786323fcff9d"; - sha256 = "091ilax7vs34mh907rxfi2hm140ipa39nwrs27w8nllx2qsrbljv"; + rev = "50789ef8c5e19997bd5b0d4c47acb7660d128e76"; + sha256 = "1g4kp6m9bqpvyp0wy1bjx8246mqvdy5jznl1ash1qn7gr07kb34s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/71bc39b06cee37814960ef31c6a2056261b802fb/recipes/pyimport"; @@ -56943,8 +58196,8 @@ src = fetchFromGitHub { owner = "PyCQA"; repo = "pylint"; - rev = "7cb3ffddfd96f5e099ca697f6b1e30e727544627"; - sha256 = "19f1bjhyizhsb2xva8f5n2x20nmja34j5ps278phqmg46qffbw5j"; + rev = "dd78aedcf0f499188ad8232f2193ba62c791d33e"; + sha256 = "0hqxh294hg9y8nz4i8p2mipg65d6p6wfy9kqlfx9zy5cm19dn7fm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a073c91d6f4d31b82f6bfee785044c4e3ae96d3f/recipes/pylint"; @@ -56960,12 +58213,12 @@ pytest = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "pytest"; - version = "20161014.815"; + version = "20170614.745"; src = fetchFromGitHub { owner = "ionrock"; repo = "pytest-el"; - rev = "91d8b7fe568527f51c172d6caadaad4f49e53bdd"; - sha256 = "1s2s8bf0r1nidypmqiawj8i6jwb3y3wslgrhr8nzbz8c7lf626s3"; + rev = "013fccd684fc8f2092d6e1ec4203ec574e12051d"; + sha256 = "0yjnq2lyh6jr5xz29n6xxmp4lcy28wrcmw05j0zgcjdshri1pd43"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/33a854a27adbaf57d344340199f90d52747b8450/recipes/pytest"; @@ -57023,12 +58276,12 @@ python-docstring = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "python-docstring"; - version = "20170314.43"; + version = "20170508.156"; src = fetchFromGitHub { owner = "glyph"; repo = "python-docstring-mode"; - rev = "6ac0b4cab3beb7cb8923f2b273526183179ccf86"; - sha256 = "0vhhni9wxcwdv7lfdp12a223dvn5w3i5y62cv0gmlsgcr9qdy3cq"; + rev = "d35d2e0fbe468743c19a870fec7b28a7e725790d"; + sha256 = "11y208svg5nxw8k7cbgd2iydng40gwpr85bdnxkywd910sac5p7b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e159e59ba0b60326cca0e1ea68fac4b85d54cd24/recipes/python-docstring"; @@ -57086,12 +58339,12 @@ python-mode = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "python-mode"; - version = "20170307.457"; + version = "20171031.431"; src = fetchFromGitLab { owner = "python-mode-devs"; repo = "python-mode"; - rev = "ac40376edcd2ca5a608f8aaa87b76fa020a2f3a3"; - sha256 = "0z375bx4609c1p9bb1awvrzcqscmn4v5jzarkw9ps5y1r0770b1r"; + rev = "06e1db1bb2f4d2da994387f2cbb1cfc6e5db242b"; + sha256 = "019j22hmc1f1izc61l8hnasvs4vj9sb9pl9w3v63ck086h89jda1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82861e1ab114451af5e1106d53195afd3605448a/recipes/python-mode"; @@ -57128,12 +58381,12 @@ python-test = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "python-test"; - version = "20170415.1556"; + version = "20170711.1155"; src = fetchFromGitHub { owner = "emacs-pe"; repo = "python-test.el"; - rev = "2005e6f6797e875ba0946a3f50c2320c28614e7c"; - sha256 = "1wvyi4mdzasnby3z57xax6w6wkag3zpk23y99n9mhmfmf0fvyvix"; + rev = "196efba6dae286e0719bc5993ee23e01db9a0912"; + sha256 = "00hbwy0cnv2v1djncijmbsdxddd48p4g0mfr4nn83203243hvbn0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0ea68b3aa9c057e81a3e90a359a38ac16cb26c2f/recipes/python-test"; @@ -57149,12 +58402,12 @@ python-x = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, folding, lib, melpaBuild, python ? null }: melpaBuild { pname = "python-x"; - version = "20161029.531"; + version = "20171006.336"; src = fetchFromGitHub { owner = "wavexx"; repo = "python-x.el"; - rev = "ef749fe2d3e58d5f6d7f32453d06964786c085d5"; - sha256 = "1nncinrwh0nqy8wn1q8yzi15nf15gj576ccsp5l28951gjgkc6s9"; + rev = "9bf0d16cfe7b5f24b98d6b33cbc8763edaceb174"; + sha256 = "0x255lnfyv2i7yz6ipx5adazqmvgmf4mdcixzs1wv85gazmbgfc5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/87ed5ea4868945df1bf92d1eae5d3ebb83ece117/recipes/python-x"; @@ -57191,12 +58444,12 @@ pyvenv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pyvenv"; - version = "20170224.538"; + version = "20171005.1106"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "pyvenv"; - rev = "91c47b8d2608ccbcac2eba91f0e36b422101ce55"; - sha256 = "09c0f7ln1in8h03idbzggvmqkxj6i9jdjbmg1nnyarhffmgbcvnh"; + rev = "9f528449dfc35516647118689a2104603f23b49c"; + sha256 = "11yznfndkbyl6cmi7blxrr5yw9b32qw01abhvsj8jz1g1wnxhn45"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e37236b89b9705ba7a9d134b1fb2c3c003953a9b/recipes/pyvenv"; @@ -57251,6 +58504,27 @@ license = lib.licenses.free; }; }) {}; + qt-pro-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "qt-pro-mode"; + version = "20170604.1141"; + src = fetchFromGitHub { + owner = "EricCrosson"; + repo = "qt-pro-mode"; + rev = "66601441cc728a609765b149ee0d7dcfb74dc8bf"; + sha256 = "0azx8a7kwgn5byijgwar2rib9xv2p9w7w3yyb5bk19g3id2f8gdw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e9af710be77ccde8ffa5f22168d2c8a06b73dd6a/recipes/qt-pro-mode"; + sha256 = "1k3ph9bqvvg6i6n623qrwdpsffs8w9rv9nihmlggb4w30dwqc9nf"; + name = "qt-pro-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/qt-pro-mode"; + license = lib.licenses.free; + }; + }) {}; quack = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "quack"; @@ -57296,12 +58570,12 @@ quelpa = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, package-build }: melpaBuild { pname = "quelpa"; - version = "20170205.2155"; + version = "20170727.557"; src = fetchFromGitHub { owner = "quelpa"; repo = "quelpa"; - rev = "a39ab429d6544dff17e933f8d98530da4f8c636f"; - sha256 = "002r4vc2a5yjm448xsk2dsfzm9p1whiwrcb0pccyy2597ba87w55"; + rev = "c095fa14046c1313b97df4ec102bdea5a981ff1d"; + sha256 = "159pkv7q0kz3slc34489gnfbyw07g3iphkx6mvzqkxql8k2iw0v7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7dc3ba4f3efbf66142bf946d9cd31ff0c7a0b60e/recipes/quelpa"; @@ -57398,15 +58672,36 @@ license = lib.licenses.free; }; }) {}; + quick-shell-keybind = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "quick-shell-keybind"; + version = "20171022.2313"; + src = fetchFromGitHub { + owner = "eyeinsky"; + repo = "quick-shell-keybind"; + rev = "5f4541a5a5554d108bf16b5fd1713e962161ca1b"; + sha256 = "19hqywwf80q6ay886xmcjjpr4pghkw78hzdg0mrpkpkqn2vj06gk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e9bf4d78da24d88476545f97b2af0527dde73600/recipes/quick-shell-keybind"; + sha256 = "1f66wk2m0yykcbq6qbalgscpq8s53qshyyqdnimlmdi0g0glif1b"; + name = "quick-shell-keybind"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/quick-shell-keybind"; + license = lib.licenses.free; + }; + }) {}; quickref = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "quickref"; - version = "20160326.936"; + version = "20170817.532"; src = fetchFromGitHub { owner = "pd"; repo = "quickref.el"; - rev = "9cad569c6eaeacf0b393a2c520ba444f6521ff38"; - sha256 = "13svdvww8dbv75lg66xhca6xi08k7k44rsx2ckdf82j9i52y5lw6"; + rev = "f368c8b8219bb90498c5ab84e26f00eedaa234cf"; + sha256 = "0nalnfb816qk1dfxjk9j8r5lvzv2k4jf747xdjbj2mcvv07g2jd2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/quickref"; @@ -57461,6 +58756,27 @@ license = lib.licenses.free; }; }) {}; + quiz = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "quiz"; + version = "20170818.415"; + src = fetchFromGitHub { + owner = "davep"; + repo = "quiz.el"; + rev = "c43151212ead2330e7ec8e5ac6914c617a12e4f8"; + sha256 = "09r3p6gw17xrsm0pk6yv4lg8i3yf03yx2mlj4mi9i0r765m01c27"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/23d547c0d69d8f5d1e9983e3669a63dffaede2b3/recipes/quiz"; + sha256 = "0pcjfhk109ifi834jw8lndwhpfcv764wym1dhiqhp5qd2vf431kg"; + name = "quiz"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/quiz"; + license = lib.licenses.free; + }; + }) {}; r-autoyas = callPackage ({ ess, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "r-autoyas"; @@ -57506,12 +58822,12 @@ racket-mode = callPackage ({ emacs, faceup, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "racket-mode"; - version = "20170407.858"; + version = "20170913.534"; src = fetchFromGitHub { owner = "greghendershott"; repo = "racket-mode"; - rev = "3332895078ebc5e2f547538913eccb1db63ec0ca"; - sha256 = "09a251m0j8ican0myp96755ykg6z2bp0kgggwbdbg4af6bwz3a13"; + rev = "33877b1bb24faea68842e0396bd5718b84e47451"; + sha256 = "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7ad88d92cf02e718c9318d197dd458a2ecfc0f46/recipes/racket-mode"; @@ -57524,27 +58840,6 @@ license = lib.licenses.free; }; }) {}; - railgun = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "railgun"; - version = "20121016.2257"; - src = fetchFromGitHub { - owner = "mbriggs"; - repo = "railgun.el"; - rev = "66aaa1b091baef53a69d0d7425f48d184b865fb8"; - sha256 = "00x09vjd3jz5f73qkf5v1y402zn8vl8dsyfwlq9z646p18ba7gyh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f8ba60673f2cb04176ed734c6457a20211609118/recipes/railgun"; - sha256 = "1a3fplfipk1nv3py1sy0p2adf3w1h4api01h2j5rjlq2jw06kyr0"; - name = "railgun"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/railgun"; - license = lib.licenses.free; - }; - }) {}; rails-log-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rails-log-mode"; @@ -57566,27 +58861,6 @@ license = lib.licenses.free; }; }) {}; - rails-new = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "rails-new"; - version = "20141221.49"; - src = fetchFromGitHub { - owner = "cheunghy"; - repo = "rails-new"; - rev = "b68055a99cde15f9d02ab36b8ad0ea7ab35b2283"; - sha256 = "0cqp2vns7gq377bm6q9n5q0ra1d5yy2x2aiw9q1hswk82xpibj9l"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c9f86ccce9ea4ef3cb7e162d4572609d3a8216cc/recipes/rails-new"; - sha256 = "0wgbm6qxqkpsbzj9wccicsphajaii07dl27b8x2vidsyw6ambj5h"; - name = "rails-new"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/rails-new"; - license = lib.licenses.free; - }; - }) {}; railscasts-reloaded-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "railscasts-reloaded-theme"; @@ -57632,12 +58906,12 @@ rainbow-blocks = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rainbow-blocks"; - version = "20140306.1033"; + version = "20171025.738"; src = fetchFromGitHub { owner = "istib"; repo = "rainbow-blocks"; - rev = "8335993563aadd4290c5fa09dd7a6a81691b0690"; - sha256 = "02x5ciyafqwak06yk813kl8p92hq03wjsk1882q8axr9q231100c"; + rev = "dd435d7bb34ff6f162a5f315df308b90b7e9f842"; + sha256 = "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/rainbow-blocks"; @@ -57653,12 +58927,12 @@ rainbow-delimiters = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rainbow-delimiters"; - version = "20160430.2358"; + version = "20170929.432"; src = fetchFromGitHub { owner = "Fanael"; repo = "rainbow-delimiters"; - rev = "93cd2dc873e7fedca7abc599cd97d46db4376ac7"; - sha256 = "0vs9pf8lqq5p5qz1770pxgw47ym4xj8axxmwamn66br59mykdhv0"; + rev = "19b93892afa0494ba749c2ca9c154e04447ad778"; + sha256 = "0c2a8pbhzzy0bxx8gxz320r106k69hvwkn43j06i6sidbgjwh786"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2cf11dbff76f0e3581b865f48bb44a307aa7f23/recipes/rainbow-delimiters"; @@ -57695,12 +58969,12 @@ rake = callPackage ({ cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rake"; - version = "20161114.605"; + version = "20170921.801"; src = fetchFromGitHub { owner = "asok"; repo = "rake"; - rev = "e680f1a8f2591af7c80cad188340601b101b5ddc"; - sha256 = "1dk2clsnmjy3bfv6laxf8sslvdajjbwpk83ss8v9xm55dcxjvd7n"; + rev = "a27322262ebcce7765574b577000f6f939400206"; + sha256 = "1fzlll8s5vri5hmqsx5ilbrms73b0rsn3k6m5dgq6rhgn5z5k6r1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bf0f84698dda02a5b84a244ee29a23a6faa9de68/recipes/rake"; @@ -57779,12 +59053,12 @@ ranger = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ranger"; - version = "20170315.2037"; + version = "20170817.857"; src = fetchFromGitHub { owner = "ralesi"; repo = "ranger.el"; - rev = "e0429a06d55b3f11b369da61aa9043bb2843fa12"; - sha256 = "171r9iljbp0pz7lvqsrnhdnir0bq2ynmhlb1ikf4k3i02w95i4v6"; + rev = "6bbff5df2e55f56047fca5058d9ca93ba4963aef"; + sha256 = "000dqqy5fbic8rwyndchj5pjmzad2yfa7z3xzi84dla6vhv15q6p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0207e754f424823fb48e9c065c3ed9112a0c445b/recipes/ranger"; @@ -57821,12 +59095,12 @@ rats = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild, s }: melpaBuild { pname = "rats"; - version = "20160315.1145"; + version = "20170818.313"; src = fetchFromGitHub { owner = "ane"; repo = "rats.el"; - rev = "a5c519b88455a8eacd5e3b72286c96dfc484479d"; - sha256 = "0dd9yhxwwk16xkwld9c3hpf9bw8zzc1lyvisp0vn6vcd240j02w0"; + rev = "a6d55aebcc54f669c6c6ffedf84364c4097903cc"; + sha256 = "0cskw05jb7wckhfs2qs9pn5icxa93ay2mw2i1brsmdd0igz34lg3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a62cbae1b2d9af2322bb6a27949de8c8bfddc2b7/recipes/rats"; @@ -57944,36 +59218,15 @@ license = lib.licenses.free; }; }) {}; - rcirc-color = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "rcirc-color"; - version = "20151130.758"; - src = fetchFromGitHub { - owner = "kensanata"; - repo = "rcirc-color"; - rev = "a94c7811e6ab578a138eb582f7ce31d3568b5c4d"; - sha256 = "173lhi48dwfp9k7jmgivhcc9f38snz5xlciyjhrafpadq1pir497"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/146b31de03f1f588fda3f7e27a538f87e71077f1/recipes/rcirc-color"; - sha256 = "1a8qqwdc0gw6m1xsnwrj3xldp05p7pabyj6l4bccpg3vf5wbgkn5"; - name = "rcirc-color"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/rcirc-color"; - license = lib.licenses.free; - }; - }) {}; rcirc-groups = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rcirc-groups"; - version = "20160115.431"; + version = "20170731.1401"; src = fetchFromGitHub { owner = "dimitri"; repo = "rcirc-groups"; - rev = "e858084e5956ba32a84046616326c0903de6d59f"; - sha256 = "0d99x7dfw5xrn62knvs65lvn6xyy7399xwqyy47bs4n81v25aqbh"; + rev = "b68ece9d219b909244d4e3c0d8bf6a746d6fead7"; + sha256 = "196x3qg22rhh917diml1q0hszqrqwg0klzp96q1c7c744mlq82fx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/35b9c9e877c686df0ac9f96855d733a240063829/recipes/rcirc-groups"; @@ -58031,12 +59284,12 @@ rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rdf-prefix"; - version = "20170304.508"; + version = "20170915.1200"; src = fetchFromGitHub { owner = "simenheg"; repo = "rdf-prefix"; - rev = "d7e61535aaf89e643673b27c79b4a84ddb530288"; - sha256 = "1in1xp559g8hlxa9i2algwlgc069m8afjad6laxbyjqc61srzw6i"; + rev = "25cc3c8902f16191496b549705b00ffc7dff51f1"; + sha256 = "00ycsqzgn5rq8r4r86z1j43i2a7wj4r3c2vcggdaizyf4parmgmy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix"; @@ -58070,15 +59323,36 @@ license = lib.licenses.free; }; }) {}; + rdxmk = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rdxmk"; + version = "20170629.1834"; + src = fetchFromGitHub { + owner = "jsalzbergedu"; + repo = "rdxmk"; + rev = "e78749fb29738365ffa4d863ffabeb969ebb0bcf"; + sha256 = "0gwlqjk84ih89c2ckx0rrw07jgwd32wfwj4mibchdrn0ai891md0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/db54339795e0519f154328e54d47a7a0c80afc71/recipes/rdxmk"; + sha256 = "14iavsgqp28y2ykgly8x69sny34r32dl4bpb47m921vk5n4y6zky"; + name = "rdxmk"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/rdxmk"; + license = lib.licenses.free; + }; + }) {}; react-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "react-snippets"; - version = "20160712.1521"; + version = "20170803.1550"; src = fetchFromGitHub { owner = "johnmastro"; repo = "react-snippets.el"; - rev = "3216134ee98b0ac39454d11d19b1508d3e7ca709"; - sha256 = "1j89pzx5karfh37gp0s9mnsq72h9628fihjqhra5h4qpj1irmkld"; + rev = "bfc4b68b81374a6a080240592641091a7e8a6d61"; + sha256 = "1wna4v8l3j0ppjv4nj72lhp0yh6vbka6bvl1paqqfvay300kiqjb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3720192fdfa45f9b83259ab39356f469c5ac85b4/recipes/react-snippets"; @@ -58098,8 +59372,8 @@ src = fetchFromGitHub { owner = "gromnitsky"; repo = "read-aloud.el"; - rev = "d5f80ab72054a957aed25224639c1779cae5f4d1"; - sha256 = "1hbb6diz96jabajxrnancjfpyd9div8vzbwys1f5bddi9z8l2jyy"; + rev = "c662366226abfb07204ab442b4f853ed85438d8a"; + sha256 = "0wmfjbk3s45wj8j6xwfdldxwkrxsfcby2a242r2p88y3f8pp30i1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/20452bf3112276a7e1c880bfab259150fc70b47a/recipes/read-aloud"; @@ -58157,12 +59431,12 @@ real-auto-save = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "real-auto-save"; - version = "20150701.815"; + version = "20170918.730"; src = fetchFromGitHub { owner = "chillaranand"; repo = "real-auto-save"; - rev = "81bf61742ea553ccdee0e22d3abb43fcf07f82cf"; - sha256 = "1kghhps8mqys5l59qwzv3fgy1fvb15cnyaxmk29v818a6khjc5l2"; + rev = "780d6c1c219e1f1efde1159a99af97b1c54c005d"; + sha256 = "1wcyvyc3nwr9a89v8i4wmqvy2fwf7x7f3kcj7a8kdnp2albkvwsa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/525039a3dc29190829bf50d608ef09bc4a8557af/recipes/real-auto-save"; @@ -58178,12 +59452,12 @@ realgud = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, load-relative, loc-changes, melpaBuild, test-simple }: melpaBuild { pname = "realgud"; - version = "20170218.740"; + version = "20171006.1840"; src = fetchFromGitHub { owner = "rocky"; repo = "emacs-dbgr"; - rev = "2328ede5bbe6f20c69c0696e9f6ed4692ca4b4f0"; - sha256 = "04fa6sbw7hwwmrs0s94l1bdb4gw9q5xs3y26ngqqx0y6a211pb6q"; + rev = "081f7edc79a8e510d47e10c6ce4306b2f850df1f"; + sha256 = "0nj95w5jfck0lhnrrnrl6h31cvgnpizbhnr52k7mf360vwrsjil6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7ca56f05df6c8430a5cbdc55caac58ba79ed6ce5/recipes/realgud"; @@ -58286,15 +59560,36 @@ license = lib.licenses.free; }; }) {}; + reason-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "reason-mode"; + version = "20171027.2235"; + src = fetchFromGitHub { + owner = "reasonml-editor"; + repo = "reason-mode"; + rev = "a9de59cced37b44db72ee248107021a660561d11"; + sha256 = "04g3598ykczxkmj5gjd4airfl41b821agy6r4h2bnq5fcfdj0jnx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f9f1a18c13601f3a4fd7b1bbfe7d5da07746e492/recipes/reason-mode"; + sha256 = "07sirgj8bs9yv7pbx1lahwslvjd2aadkzkz7lsyw6xflj5fxpggr"; + name = "reason-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/reason-mode"; + license = lib.licenses.free; + }; + }) {}; rebecca-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rebecca-theme"; - version = "20170406.2136"; + version = "20170730.943"; src = fetchFromGitHub { owner = "vic"; repo = "rebecca-theme"; - rev = "ddbc2e0ceaa4849ddd284a9265211b61a8777106"; - sha256 = "0d4yk6gkswfx7hkwgq5s9qc2bi73041fcsigpzvl2q0smb8202cr"; + rev = "add349748d0f648587bf17d14036677570f081aa"; + sha256 = "1932ga5j5cv3w32iwxjdjs2jdz20sw5ai10dnxb6bdzh68kkw4f3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/19f40f30113c7dabd76a2d0e52898e6d6be69a35/recipes/rebecca-theme"; @@ -58328,24 +59623,6 @@ license = lib.licenses.free; }; }) {}; - recentf-ext = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "recentf-ext"; - version = "20161210.840"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/recentf-ext.el"; - sha256 = "0pzimhqkrdg2s9zw7ysir740cmaycf6fjs08bmlfjads7vdbjfpg"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5a36ac5e0fc3599d50d7926cacf16b7a315f0e76/recipes/recentf-ext"; - sha256 = "1m54w1n3ci5j7i1jhw6cs7dgzmxrj1hsrrarqlrd1d4iqhixjzbq"; - name = "recentf-ext"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/recentf-ext"; - license = lib.licenses.free; - }; - }) {}; recompile-on-save = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "recompile-on-save"; @@ -58370,12 +59647,12 @@ recover-buffers = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "recover-buffers"; - version = "20150812.5"; + version = "20171008.2137"; src = fetchFromGitHub { owner = "tripleee"; repo = "recover-buffers"; - rev = "a1db7f084977697081da3497628e3514e032b966"; - sha256 = "114ssmby614xjs7mrpbbsdd4gj5ra6klfh8h6z8iij8xn3kii83q"; + rev = "81a5cb53099955ebc2a411a44cba5a394ee3f2d1"; + sha256 = "07dfdvz5rn5l13xdycd7h75zaq0pw2afb9n1yiq01fqk6gvrhc5b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/43b33cfb794c35de78fde6eabb71ffe01049d23d/recipes/recover-buffers"; @@ -58472,24 +59749,6 @@ license = lib.licenses.free; }; }) {}; - redo-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "redo-plus"; - version = "20131117.351"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/redo+.el"; - sha256 = "1jc4n60spzssa57i3jwrqwy20f741hb271vmmx49riycx1ybx3d3"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/redo+"; - sha256 = "0v7nrn6fbjx4mb0xsnkvqxk2hp35wfy83si5bavwwym4jcb5pl2r"; - name = "redo-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/redo+"; - license = lib.licenses.free; - }; - }) {}; redpen-paragraph = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "redpen-paragraph"; @@ -58514,12 +59773,12 @@ redprl = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "redprl"; - version = "20160912.1847"; + version = "20171030.1346"; src = fetchFromGitHub { owner = "RedPRL"; repo = "sml-redprl"; - rev = "608b896b58c6e1c7fec8c6e97202fc303a731a8b"; - sha256 = "1x1d4gq2j8lanzpnqhx8aarwzd2mpprhkrz6j9w1s94g2p210ssg"; + rev = "b01bf5db718395eead17b679ed10c6b876117034"; + sha256 = "0vnfjh0h0z9w28fb1sjncsjcc8f7h1ll0svm203cb5vw6v9d8nrs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/06e7371d703ffdc5b6ea555f2ed289e57e71e377/recipes/redprl"; @@ -58532,26 +59791,6 @@ license = lib.licenses.free; }; }) {}; - redshank = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "redshank"; - version = "20120510.1230"; - src = fetchgit { - url = "http://www.foldr.org/~michaelw/projects/redshank.git"; - rev = "f98e68f532e622bcd464292ca4a9cf5fbea14ebb"; - sha256 = "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f2cf21b79d47a4bc154ac15f8111794ca9eeac16/recipes/redshank"; - sha256 = "07s4gja1w8piabkajbzrgq77mkdkxr0jy9bmy2qb9w2svfsyns9b"; - name = "redshank"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/redshank"; - license = lib.licenses.free; - }; - }) {}; redtick = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "redtick"; @@ -58573,27 +59812,6 @@ license = lib.licenses.free; }; }) {}; - refheap = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: - melpaBuild { - pname = "refheap"; - version = "20140902.1402"; - src = fetchFromGitHub { - owner = "Raynes"; - repo = "refheap.el"; - rev = "d41f8efb8e913b29035f545914859e3f18287492"; - sha256 = "08kzi2jcfqnlanqzvbk5gq1if7k8qc9gmz5bmvd2mvmx6z436398"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/refheap"; - sha256 = "11w2pmkz56141gvyzyims9rd42djizni3g6dw4qa48bvlqc56klh"; - name = "refheap"; - }; - packageRequires = [ json ]; - meta = { - homepage = "https://melpa.org/#/refheap"; - license = lib.licenses.free; - }; - }) {}; refine = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, list-utils, loop, melpaBuild, s }: melpaBuild { pname = "refine"; @@ -58782,27 +60000,6 @@ license = lib.licenses.free; }; }) {}; - relative-line-numbers = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "relative-line-numbers"; - version = "20161112.2151"; - src = fetchFromGitHub { - owner = "Fanael"; - repo = "relative-line-numbers"; - rev = "38b5f9065aec008d9ad94fe5597338463aa1aa63"; - sha256 = "00ixh7siyc8m7j6hfaxnnl3ynfhzkccpjfc89v8bp3z83m4v269w"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a2901c841d221bd782dae9059a070ae8130e1ae/recipes/relative-line-numbers"; - sha256 = "0mj1w5a4ax8hwz41vn02bacxlnifd14hvf3p288ljvwchvlf0hn3"; - name = "relative-line-numbers"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/relative-line-numbers"; - license = lib.licenses.free; - }; - }) {}; relax = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "relax"; @@ -58848,12 +60045,12 @@ remember-last-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "remember-last-theme"; - version = "20170304.29"; + version = "20170619.1433"; src = fetchFromGitHub { owner = "anler"; repo = "remember-last-theme"; - rev = "14b4b5a03bb59b4e7040da96d7c261ee8f7884e9"; - sha256 = "069bzswwaq1disnq0j49c3xq69xrz7rn6z3zc0cv2cspn2hk1x5p"; + rev = "0973f1aa6b96355fa376fffe8b45733b6e963c51"; + sha256 = "11kcqpw1wrhghbw2dx3pqndmq9a1rbqir3k71ggaj1x2y2arzvm7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/26edcdddaf8dc8c9a18d6b007e0d49d04fe4ccca/recipes/remember-last-theme"; @@ -58869,12 +60066,12 @@ repeatable-motion = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "repeatable-motion"; - version = "20150629.1112"; + version = "20170620.1148"; src = fetchFromGitHub { owner = "willghatch"; repo = "emacs-repeatable-motion"; - rev = "e664b0a4a3e39c4085378a28b5136b349a0afb22"; - sha256 = "007lqahjbig6yygqik6fgbq114784z6l40a3vrc4qs9361zqizck"; + rev = "f29effdc4121c2dc7e3fec9b3a62debce29cda9d"; + sha256 = "11s7r5g0djj0yc8ll7jfw5v3m9kyvaiscndnfnvvjw5lwgfyh0v3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0dd56ebaea098715b9c201f07e6196c38977f8e3/recipes/repeatable-motion"; @@ -58950,24 +60147,6 @@ license = lib.licenses.free; }; }) {}; - replace-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "replace-plus"; - version = "20170307.942"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/replace+.el"; - sha256 = "0bbqmgz4grbg9g4kd5c85wn1icfgqapdkb2v7jmqwg4mc8s7piv5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/replace+"; - sha256 = "1imsgr3v8g2p2mnkzp92ga3nvckr758pblmlha8gh8mb80089krn"; - name = "replace-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/replace+"; - license = lib.licenses.free; - }; - }) {}; replace-symbol = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "replace-symbol"; @@ -58989,6 +60168,27 @@ license = lib.licenses.free; }; }) {}; + replace-with-inflections = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, inflections, lib, melpaBuild, string-inflection }: + melpaBuild { + pname = "replace-with-inflections"; + version = "20170911.245"; + src = fetchFromGitHub { + owner = "knu"; + repo = "replace-with-inflections.el"; + rev = "e286036a5d1dbac06a72a1e831b2a8d9cad27238"; + sha256 = "1szbps1k3na3w9djkqxm3s1anm12505ajr7ay9j7pmd00qf75379"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7892eb506b8f4260bde4be2805bf3b2d594ab640/recipes/replace-with-inflections"; + sha256 = "1pqpin5ipm3g74zjh1kh6s1gh0aan6202p0y2q00d4ywbz9kn5s0"; + name = "replace-with-inflections"; + }; + packageRequires = [ cl-lib inflections string-inflection ]; + meta = { + homepage = "https://melpa.org/#/replace-with-inflections"; + license = lib.licenses.free; + }; + }) {}; repo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "repo"; @@ -59013,12 +60213,12 @@ req-package = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, log4e, melpaBuild, use-package }: melpaBuild { pname = "req-package"; - version = "20170314.2342"; + version = "20170826.2252"; src = fetchFromGitHub { owner = "edvorg"; repo = "req-package"; - rev = "e7108177d05fc6f674b1766f1154d0652654b1af"; - sha256 = "1pv3yvglfq09rc2vxhy48hglppydsz0ji92564xba5kngqbbjw34"; + rev = "179ab70bb3d4f7a94401dace64f695c50acfe389"; + sha256 = "1j54l002vq8hz1pghyas4aalqhsnma5czjh4fh5s5cs4v7v6d7s8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f58a801f0791566d0c39493a5f82ff0d15d7ab41/recipes/req-package"; @@ -59118,12 +60318,12 @@ resize-window = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "resize-window"; - version = "20170329.1644"; + version = "20170704.2212"; src = fetchFromGitHub { owner = "dpsutton"; repo = "resize-window"; - rev = "e4879731f3a3bc2261d6ec465bff01f88bd77d1d"; - sha256 = "0lhf1sk1gx0vpy038bdnmlqjzpg4kchlladihk36pv4hgqn5r9w7"; + rev = "dcbbd30f4f4435070a66a22c5a169b752ca9f904"; + sha256 = "0x2kkf7bdj9s3993kdz74igi80rqma0w3hi7aggf0zwllqdcnzvk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/601a8d8f9046db6c4d50af983a11fa2501304028/recipes/resize-window"; @@ -59139,12 +60339,12 @@ restart-emacs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "restart-emacs"; - version = "20170413.2305"; + version = "20170609.905"; src = fetchFromGitHub { owner = "iqbalansari"; repo = "restart-emacs"; - rev = "dc25f00c3cab1c97db2ca4733e7e7e7805ae68f2"; - sha256 = "1rx5mj7lpxpmkbpbwb78garhl118d0kpbwvdwfh3f3j1rmzyiblx"; + rev = "98aa4efd2caeaf0f42ca385c24fa14a843b271b7"; + sha256 = "00qh17m4q6a1d2ck1309hp4hcw528nzp60zp8vy6x6qx7shsibrm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9faeb6d910d686cbcafe7d12e0bcf62a85689bd/recipes/restart-emacs"; @@ -59160,12 +60360,12 @@ restclient = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "restclient"; - version = "20160801.707"; + version = "20170727.825"; src = fetchFromGitHub { owner = "pashky"; repo = "restclient.el"; - rev = "87c4f25155abef1ee8678e2137c1d8b3b2154ff5"; - sha256 = "18ym81hmcj83qsw96y6amb84wxjk63a9fgij6hbkq7d6vp970x5g"; + rev = "ef6d756e2013843f7afcbea42b69ad54aa5de518"; + sha256 = "0a44hyfi55khripys7spml7xnz8yp8v7cbj01q9q0vsips6gqpra"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/59303304fe1f724596245556dd90f6afffba425d/recipes/restclient"; @@ -59185,8 +60385,8 @@ src = fetchFromGitHub { owner = "pashky"; repo = "restclient.el"; - rev = "87c4f25155abef1ee8678e2137c1d8b3b2154ff5"; - sha256 = "18ym81hmcj83qsw96y6amb84wxjk63a9fgij6hbkq7d6vp970x5g"; + rev = "ef6d756e2013843f7afcbea42b69ad54aa5de518"; + sha256 = "0a44hyfi55khripys7spml7xnz8yp8v7cbj01q9q0vsips6gqpra"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/59303304fe1f724596245556dd90f6afffba425d/recipes/restclient-helm"; @@ -59241,33 +60441,15 @@ license = lib.licenses.free; }; }) {}; - reveal-next = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "reveal-next"; - version = "20170101.1120"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/reveal-next.el"; - sha256 = "0vqacr3q9n772qmyyj35dxkqp79yqrpfhlf8zj70jzg04xzy6f0m"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/38e5dd845c99acaae719562595059154a08a5f00/recipes/reveal-next"; - sha256 = "0fp6ssd4fad0s2pbxbw75bnx7fcgasig8xvcx7nls8m9p6zbbmh2"; - name = "reveal-next"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/reveal-next"; - license = lib.licenses.free; - }; - }) {}; reverse-im = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "reverse-im"; - version = "20170209.556"; + version = "20170721.940"; src = fetchFromGitHub { owner = "a13"; repo = "reverse-im.el"; - rev = "47033e0597675a45d2b6852682e392e848a51af8"; - sha256 = "0kd55p8hl7mhcbsqxhqqyfkzq31cnk4aaqzrka681dk6d1xzk8z5"; + rev = "63fb1edee017177c44f8b663a707201b3dd78345"; + sha256 = "1ha4ldfcnw57rg15mbxspymgs6b2b50f6s0fcb6d7k9xai5idmnp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f282ebbed8ad01b63b0e708ab273db51bf65fdbb/recipes/reverse-im"; @@ -59304,12 +60486,12 @@ review-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "review-mode"; - version = "20170105.2156"; + version = "20171029.650"; src = fetchFromGitHub { owner = "kmuto"; repo = "review-el"; - rev = "fc7a2f152be63874da4211ec0b49ff1fadb6465e"; - sha256 = "1fg18kb5y8rsxnh166r0yj5wb0927rsdhpwmfwq3i9kgycgpznix"; + rev = "115cd06558c01889f89feaa659e0d7513a2ad21e"; + sha256 = "0162gg3hf633zhr5jwj222lx143xvph001qmpmlbbqdxc0sgw5hv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f2f9e2667389577d0703874ca69ebe4800ae3e01/recipes/review-mode"; @@ -59322,27 +60504,6 @@ license = lib.licenses.free; }; }) {}; - revive = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "revive"; - version = "20150417.1555"; - src = fetchFromGitHub { - owner = "emacsmirror"; - repo = "revive"; - rev = "16e1ac7cfa2fdccddf60d4a0e15731fc7448d818"; - sha256 = "037sac5fvz6l2zgzlf8ykk4jf9zhj7ybzyz013jqzjj47a6sn1r1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/965891688e94839e63fcc7c22dae317bb56d1ff6/recipes/revive"; - sha256 = "1l7c6zq3ga2k1488qb0hgxlk08p3vrcf0sx116c1f8z8nf4c8ny5"; - name = "revive"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/revive"; - license = lib.licenses.free; - }; - }) {}; reykjavik-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "reykjavik-theme"; @@ -59364,40 +60525,22 @@ license = lib.licenses.free; }; }) {}; - rfringe = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "rfringe"; - version = "20110405.820"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/rfringe.el"; - sha256 = "02i5znln0aphvmvaia3sz75bvjhqwyjq1blf5qkcbprnn95lm3yh"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/rfringe"; - sha256 = "16a647gvvn5nzgng7a8pam4ay6aifvhldaxg2xfz9fcafzkvw967"; - name = "rfringe"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/rfringe"; - license = lib.licenses.free; - }; - }) {}; - rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }: + rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "rg"; - version = "20170415.938"; + version = "20171018.1317"; src = fetchFromGitHub { owner = "dajva"; repo = "rg.el"; - rev = "44eca47f049b25bd45e8cbc7e6579911e552b88a"; - sha256 = "0riv5cr5sy37pcwvg0yjwi3qkvqr081503j487mcc7dcyvwlcrzy"; + rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14"; + sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg"; sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm"; name = "rg"; }; - packageRequires = [ cl-lib emacs s seq ]; + packageRequires = [ cl-lib emacs s ]; meta = { homepage = "https://melpa.org/#/rg"; license = lib.licenses.free; @@ -59424,15 +60567,36 @@ license = lib.licenses.free; }; }) {}; + rib-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rib-mode"; + version = "20170726.748"; + src = fetchFromGitHub { + owner = "blezek"; + repo = "rib-mode"; + rev = "97470158784c3c212e22e2c20b8471ee65ba59af"; + sha256 = "0hln0hympmxmsci82ivc2rw289j1bmgdxns96m1ng1bl668bwag7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c38c18f3eb75d559752fcd9956464fef890be728/recipes/rib-mode"; + sha256 = "0qgbzrwbbgg4mzjb7yw85qs83b6hpldazip1cigywr46w7f81587"; + name = "rib-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/rib-mode"; + license = lib.licenses.free; + }; + }) {}; rich-minority = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rich-minority"; - version = "20160725.1255"; + version = "20170813.622"; src = fetchFromGitHub { owner = "Malabarba"; repo = "rich-minority"; - rev = "478f0fbc0dbba6619a96a471b9b295f2f436475f"; - sha256 = "1n07bvjaz468zbd7am3rmw98a97clz8p4x6ryhbd4riqmfh845wi"; + rev = "3201f6e1769beb9f6cbbda392bef99fce337acf4"; + sha256 = "1qa447k3qq2x1i2nxbm60wzr8kaysk3cifl09c13sv97n4yq3x2b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/rich-minority"; @@ -59448,12 +60612,12 @@ rigid-tabs = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rigid-tabs"; - version = "20150807.856"; + version = "20170903.859"; src = fetchFromGitHub { owner = "wavexx"; repo = "rigid-tabs.el"; - rev = "c7c6b726806df7e8cb25a41b213a207850c91cb7"; - sha256 = "0p044wg9d4i6f5x7bdshmisgwvw424y16lixac93q6v5bh3xmab5"; + rev = "eba84ceaba2e57e76ad2dfbb7a7154238a25d956"; + sha256 = "18rba101m9vmjl4mf3x0k7wvbgn6qmay9la745vzpr3lx1f4nn98"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/689b0060ee5db505fc0ed4603aca204b2d3c63a2/recipes/rigid-tabs"; @@ -59466,6 +60630,27 @@ license = lib.licenses.free; }; }) {}; + rimero-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rimero-theme"; + version = "20171001.821"; + src = fetchFromGitHub { + owner = "yveszoundi"; + repo = "emacs-rimero-theme"; + rev = "2c15da5a4d56f1b29db2fc178d387eb86e7abd39"; + sha256 = "0pvykjz0a2jgq2dghhshc4w7852jrlk0vy35ppbn956yp7rq9sx3"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c6d07b0c021001195e6e0951c890566a5a784ce1/recipes/rimero-theme"; + sha256 = "0jbknrp9hc8s956cy2gqffxnx0fgnhmjqp2i4vyp0ywh45wrls5r"; + name = "rimero-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/rimero-theme"; + license = lib.licenses.free; + }; + }) {}; rinari = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, jump, lib, melpaBuild, ruby-compilation, ruby-mode ? null }: melpaBuild { pname = "rinari"; @@ -59511,12 +60696,12 @@ ripgrep = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ripgrep"; - version = "20170211.857"; + version = "20170810.1118"; src = fetchFromGitHub { owner = "nlamirault"; repo = "ripgrep.el"; - rev = "73595f1364f2117db49e1e4a49290bd6d430e345"; - sha256 = "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"; + rev = "c47a2da4668ca338e7fadc3d8c095e075caaa17d"; + sha256 = "0x2rkm1yf03qfzylx6pk32cq7mmydila2iwiq40k5nl4wgfia5vx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8d789818876e959a1a59690f1dd7d4efa6d608b/recipes/ripgrep"; @@ -59532,12 +60717,12 @@ riscv-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "riscv-mode"; - version = "20161001.1838"; + version = "20170804.821"; src = fetchFromGitHub { owner = "AdamNiederer"; repo = "riscv-mode"; - rev = "e8425b71443a2decbe70cc5892e72ce2ceb17570"; - sha256 = "035hv8dpc6rk4b22mw4ch9yzf4wq14h8bba765fxg87grpi0mwg4"; + rev = "99febf97d1fa9441e8dada94fe30c2aa439c9749"; + sha256 = "119p926ypz525xdh82m2d1saky1qh5va224fxyqisfbwfrc17arh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0853b4b678be7d1906a2f7946bfa1072590faf72/recipes/riscv-mode"; @@ -59553,12 +60738,12 @@ rjsx-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "rjsx-mode"; - version = "20161115.456"; + version = "20171029.1156"; src = fetchFromGitHub { owner = "felipeochoa"; repo = "rjsx-mode"; - rev = "5347e3609c5ea8b767f9ec0c08969467d288c516"; - sha256 = "1gnbphf4ldi60wdfwpcyyyhgj2scj0wmlxp10014cwz9xcdqnfl5"; + rev = "4c10dcd764ade8e3d5dc235c26ba9299576a513d"; + sha256 = "034hrzcvbnsrr9cxy2wzggnsax708hd231hfkixwffzrrwdlhwz8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b83be7efdef2457e1320fe3dec46484fbd20263c/recipes/rjsx-mode"; @@ -59571,22 +60756,22 @@ license = lib.licenses.free; }; }) {}; - robe = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: + robe = callPackage ({ emacs, fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: melpaBuild { pname = "robe"; - version = "20170316.511"; + version = "20170611.1755"; src = fetchFromGitHub { owner = "dgutov"; repo = "robe"; - rev = "53360f55df3857933a483af652aefe33187f5304"; - sha256 = "1na2h4pxrs0l3i5bsyn2c5mf5nbpr90lyhxav57wc2jcqz24nz4l"; + rev = "9305fa042c40a32a2fcf60f935c0796dc67b5c55"; + sha256 = "0jx3pnz9m9bxlga867qdb6midz82mfl4wzn9dsfihkl399hbj46j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/673f920d02fe761bc080b73db7d37dbf5b6d86d8/recipes/robe"; sha256 = "19py2lwi7maya90kh1mgwqb16j72f7gm05dwla6xrzq1aks18wrk"; name = "robe"; }; - packageRequires = [ inf-ruby ]; + packageRequires = [ emacs inf-ruby ]; meta = { homepage = "https://melpa.org/#/robe"; license = lib.licenses.free; @@ -59595,16 +60780,16 @@ robots-txt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "robots-txt-mode"; - version = "20160820.202"; + version = "20170908.642"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "robots-txt-mode"; - rev = "edf1f8082c88cb2ff5a784ba00f92c535aaa1c7d"; - sha256 = "11ig771ck610glb6f3322ka026ikq0b072rlq5z6ymr3rbxagn6j"; + rev = "4a77674ab2963b829d3b751741c4ce1169e87f6b"; + sha256 = "1ynmb9gpryfrml80kkv71k11j7r91mgyzh1q8xx52s0b4mkd33zc"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1669c7a0d89ea36d61bfa57ef54ee1f203daff5f/recipes/robots-txt-mode"; - sha256 = "1q3fqaf9nysy9bhx4h9idgshxr65hfwnx05vlwazx7jd6bq6kxfh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/robots-txt-mode"; + sha256 = "00hxz4mygcxg7d8m2i4cm0bl82v3hw8wb4m8vv7g7fqkjp32c9qc"; name = "robots-txt-mode"; }; packageRequires = []; @@ -59637,12 +60822,12 @@ rope-read-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rope-read-mode"; - version = "20170325.831"; + version = "20171003.719"; src = fetchFromGitHub { owner = "marcowahl"; repo = "rope-read-mode"; - rev = "66c02e3efab84e12c2857cb2b56d524e98b7bc87"; - sha256 = "1hmp7k17q5d5i6286x99jmfq954d9ys5347xk3aph9m5pmybvfrf"; + rev = "77b183a6f5450138388509f54a6a2ce442766e50"; + sha256 = "0ddm7gwr51ip8mc79jxkvp52sxhlvs0kyy59v7r7pf5mbadbpsbz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14a674559aa485e92357a8b941304ae8167b9c3e/recipes/rope-read-mode"; @@ -59702,14 +60887,14 @@ pname = "rpm-spec-mode"; version = "20160710.436"; src = fetchFromGitHub { - owner = "bjorlykke"; + owner = "stigbjorlykke"; repo = "rpm-spec-mode"; rev = "c1c38050c48ea330c7cea632b8785d66daeefb2b"; sha256 = "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f1ce736b8db53fea4935d195a0d07dc8141125a8/recipes/rpm-spec-mode"; - sha256 = "01vggdv8sac4p0szwk7xgxcglmd5a1hv5q0ylf8zcp1lsyyh8ypd"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/bb7e188fffda3d4e42690511775e5e32a11e1b34/recipes/rpm-spec-mode"; + sha256 = "1ygk0pdhq1hvgzd173h79lxb04b9lmvq4hi70qf9244bqbm0m182"; name = "rpm-spec-mode"; }; packageRequires = []; @@ -59721,12 +60906,12 @@ rpn-calc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "rpn-calc"; - version = "20170402.1833"; + version = "20170522.1842"; src = fetchFromGitHub { owner = "zk-phi"; repo = "rpn-calc"; - rev = "4d8aa137b31392a76a0fd4eaf676291029c1aad9"; - sha256 = "0m373xzxx6ywrxll0qqsnyx55bfp0phbw6mcczz53yw9kpf3mf22"; + rev = "66fcb64dbfddfc23823356b6213215bd7ab5efc6"; + sha256 = "1lgabs97x6h4yrgwln8hsxi47wgl46jzhf162wa1almdbqbp9100"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/47d5b3c931cdbc2351e01d15e2b98c78081c9506/recipes/rpn-calc"; @@ -59763,12 +60948,12 @@ rspec-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, ruby-mode ? null }: melpaBuild { pname = "rspec-mode"; - version = "20170312.56"; + version = "20171025.1606"; src = fetchFromGitHub { owner = "pezra"; repo = "rspec-mode"; - rev = "fe336636a57955b927b5994c8c738e21cacdc800"; - sha256 = "07qjp6bb5rkcpbda7gb8g0zr2mr6cwplaspwc4ckidfcd8vzdn7b"; + rev = "94a04f148922852b591957b0b3b22de5c4237448"; + sha256 = "04qcicaklj9fhl0wbb8axi8zvd0az43cnrhf53vhgwsgnf7rjya2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cd83e61b10da20198de990aa081b47d3b0b44d43/recipes/rspec-mode"; @@ -59784,12 +60969,12 @@ rtags = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rtags"; - version = "20170416.1111"; + version = "20171027.1028"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "f1f8709556f25d0cef12b1d4dff5ca0b09a890a0"; - sha256 = "05r888crk8y5fi4xvarrnr89wjjrrzzdr4bfmd0kzq83vs0azr77"; + rev = "7fa54d513fc716b2dc1055636b4728ab29dfdd3e"; + sha256 = "1i0php9nnpgsmb4l1sc7qgxvdgg4hyviq68f4k41b9bcwab2hbl8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/rtags"; @@ -59844,18 +61029,19 @@ license = lib.licenses.free; }; }) {}; - ruby-additional = callPackage ({ emacs, fetchsvn, fetchurl, lib, melpaBuild, ruby-mode ? null }: + ruby-additional = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, ruby-mode ? null }: melpaBuild { pname = "ruby-additional"; - version = "20161115.2259"; - src = fetchsvn { - url = "https://svn.ruby-lang.org/repos/ruby/trunk/misc/"; - rev = "58383"; - sha256 = "0n4gnpms3vyvnag3sa034yisfcfy5gnwl2l46krfwy6qjm1nyzhf"; + version = "20171001.2106"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "ruby-additional"; + rev = "14f380893cb7c1d9ddbb4ed1a2fc280999c82fde"; + sha256 = "07mbjnph72l52f0bgz6qn5pbnfiyjx5p1ranq5g4csbfpx9jcc3s"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ruby-additional"; - sha256 = "1x5574swmch89jz2jiq6g34igp94bivzld0lb1nhyb1i3v1msq6i"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/ruby-additional"; + sha256 = "1ivxn787k64q5jl0dxmxbj240ykcyvfhfam5fdvrwvc3yysk2dx7"; name = "ruby-additional"; }; packageRequires = [ emacs ruby-mode ]; @@ -59864,24 +61050,6 @@ license = lib.licenses.free; }; }) {}; - ruby-block = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "ruby-block"; - version = "20131210.1931"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/ruby-block.el"; - sha256 = "0c4vy9xsw44g6q9nc8aaav5avgp34h24mvgcnww468afiimivdcq"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2149ce3baef9ac01d5b2e8b1a933a3e1206015f/recipes/ruby-block"; - sha256 = "0jfimjq1xpwxkxya452kp27h0fdiy87aj713w3zsm04k7l6i12hm"; - name = "ruby-block"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ruby-block"; - license = lib.licenses.free; - }; - }) {}; ruby-compilation = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: melpaBuild { pname = "ruby-compilation"; @@ -59903,39 +61071,19 @@ license = lib.licenses.free; }; }) {}; - ruby-dev = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "ruby-dev"; - version = "20130811.151"; - src = fetchFromGitHub { - owner = "Mon-Ouie"; - repo = "ruby-dev.el"; - rev = "3a6f6e489697916dd554852492bd325879be2e44"; - sha256 = "1cy5zmdfwsjw8jla8mxjm1cmvrv727fwq1kqhjr5nxj0flwsm4x1"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b6e0c48ac1fa26e027c6a17f20eee7c084568cae/recipes/ruby-dev"; - sha256 = "0mf2ra3p5976qn4ryc2s20vi0nrzwcg3xvsgppsc0bsirjw2l0fh"; - name = "ruby-dev"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ruby-dev"; - license = lib.licenses.free; - }; - }) {}; - ruby-electric = callPackage ({ fetchsvn, fetchurl, lib, melpaBuild }: + ruby-electric = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ruby-electric"; - version = "20150424.752"; - src = fetchsvn { - url = "https://svn.ruby-lang.org/repos/ruby/trunk/misc/"; - rev = "58383"; - sha256 = "0n4gnpms3vyvnag3sa034yisfcfy5gnwl2l46krfwy6qjm1nyzhf"; + version = "20170810.430"; + src = fetchFromGitHub { + owner = "knu"; + repo = "ruby-electric.el"; + rev = "3553448a780a1ea5c3b0e9becd820d4762876593"; + sha256 = "0h47lfgxjcyyl8gb1w7l8j8h65s3lp1hsq742sl7a1gf5y6bbm3v"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/ruby-electric"; - sha256 = "0abi1hqjscz2wj4n5habjb6rksxkhwv0cvpw68irkj4fas92qhk8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/5fd5fa797a813e02a6433ecbe2bca1270a383753/recipes/ruby-electric"; + sha256 = "02xskivi917l8xyhrij084dmzwjq3knjcn65l2iwz34s767fbwl2"; name = "ruby-electric"; }; packageRequires = []; @@ -59951,8 +61099,8 @@ src = fetchFromGitHub { owner = "rejeep"; repo = "ruby-end.el"; - rev = "ea453f5ac6259f09667fa26b865b6afacd06aa97"; - sha256 = "1x4nvrq5nk50c1l3b5wcr4g1n5nmwafcz1zzc12qzsl5sya7si55"; + rev = "a136f75abb6d5577ce40d61dfeb778c2e9bb09c0"; + sha256 = "1f530gaiy010qln51g83m1llazhyfi8ws0lvsb982fhi4dh1xfk5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/ruby-end"; @@ -59986,36 +61134,15 @@ license = lib.licenses.free; }; }) {}; - ruby-guard = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "ruby-guard"; - version = "20160131.1752"; - src = fetchFromGitHub { - owner = "cheunghy"; - repo = "ruby-guard"; - rev = "bc864cadb241be855ada148f07e5048cce0991a0"; - sha256 = "080hmrh7pgpaj33w1rkhcqb1yp70w4cap0rq9hsxaaajj0sn47z3"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b9d47bb7eb0f6c56fa7fcf84478aab34f938d195/recipes/ruby-guard"; - sha256 = "0hwxhirdvaysw9hxcgfdf0l12wilr6b9f9w91pk1hfwfi1w0lfwr"; - name = "ruby-guard"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ruby-guard"; - license = lib.licenses.free; - }; - }) {}; ruby-hash-syntax = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ruby-hash-syntax"; - version = "20141010.839"; + version = "20171013.50"; src = fetchFromGitHub { owner = "purcell"; repo = "ruby-hash-syntax"; - rev = "13288a29478a9e45ab4fd2188aea8d4894e08848"; - sha256 = "1zx70bdyqabx03g813h76ks9agy66yf08z9x83yw1rsf713d1pg2"; + rev = "bc05c3130a5d3237f04c6064297e56de5f73887d"; + sha256 = "1jwvyj3kqchd40h37m75ydl0gjrbm873dhfn1grqg4sgk60hr414"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7d21a43a4bf267507bdc746ec9d0fd82049c0af/recipes/ruby-hash-syntax"; @@ -60073,12 +61200,12 @@ ruby-test-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pcre2el, ruby-mode ? null }: melpaBuild { pname = "ruby-test-mode"; - version = "20160930.9"; + version = "20171016.931"; src = fetchFromGitHub { owner = "r0man"; repo = "ruby-test-mode"; - rev = "0924e9d17e0a9b7c5c1a4e878367be47f58a396c"; - sha256 = "0hlzkwll6di13hja3hm3nzmcjkwgciq9bziz837cr49agagz3b55"; + rev = "87f6d770f8d2326c8d36099aeee5d577f3e2af69"; + sha256 = "0qiwc2h5hyh6np16a2gfcchbnyh7v5wnzd8idr64cmd9blg3jh8d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ruby-test-mode"; @@ -60112,6 +61239,48 @@ license = lib.licenses.free; }; }) {}; + rufo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rufo"; + version = "20170718.716"; + src = fetchFromGitHub { + owner = "danielma"; + repo = "rufo.el"; + rev = "85a6d80fb05fef396a8029b8f944c92a53faf8fe"; + sha256 = "11klircrdc9z9jfksd6rjgwbb775mziss67mw74673b8iva8n1y7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/123b89e06a44ef45150ca7243afc41302dfb6c6e/recipes/rufo"; + sha256 = "0pxsifcxic3q54rqj0jbj20hq7f2s4icl57lligf9g0w23qzj239"; + name = "rufo"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/rufo"; + license = lib.licenses.free; + }; + }) {}; + run-stuff = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "run-stuff"; + version = "20170813.1957"; + src = fetchFromGitHub { + owner = "ideasman42"; + repo = "emacs-run-stuff"; + rev = "2e23a78c26f62141142c743febd57ec54c78c0e3"; + sha256 = "04m7hpda5hbmr0dni4cnpdjxwzk3sygpr5m158gswhbwh2p4r0j4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0d6e9ce2acd859b887f7e161f4b9969be1a0b8ef/recipes/run-stuff"; + sha256 = "0zx96m6cval5g4p0lhy9kpyycp2jygaq3y2njhkpij9gl4nb2ll2"; + name = "run-stuff"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/run-stuff"; + license = lib.licenses.free; + }; + }) {}; runner = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "runner"; @@ -60178,12 +61347,12 @@ rust-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rust-mode"; - version = "20170411.2043"; + version = "20171013.258"; src = fetchFromGitHub { owner = "rust-lang"; repo = "rust-mode"; - rev = "dae5af71ebf4b5c6797ef057e8a0ebf655bcdbfb"; - sha256 = "0s01pzlq0lqzbxqj0x2x4lr3l1rsvnd8h2kskgli6y2m8nv97qc6"; + rev = "b8e49089713714a9f3f815b399df569a0e507e73"; + sha256 = "0ny5prsm70incv30g5310bknbpix0415dn16hhf55rhjhwg39dns"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8f6e5d990d699d571dccbdeb13327b33389bb113/recipes/rust-mode"; @@ -60262,12 +61431,12 @@ s = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "s"; - version = "20160928.636"; + version = "20171101.219"; src = fetchFromGitHub { owner = "magnars"; repo = "s.el"; - rev = "fc395c8d5e6c14d5e0920ab80d4d5df007eed14a"; - sha256 = "07db8jfi1m19x760grkznaiwbap5dp00cicd88cbam16a0qfhbjj"; + rev = "71f2902fc7875b3df9ee089c85904a4e8a00d438"; + sha256 = "0k6ny3ca4iwvhmzpdfs5v44l19djwpx8x7a1kfjgdafdh2x6d7ds"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/s"; @@ -60301,6 +61470,27 @@ license = lib.licenses.free; }; }) {}; + s12cpuv2-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "s12cpuv2-mode"; + version = "20171013.1351"; + src = fetchFromGitHub { + owner = "AdamNiederer"; + repo = "s12cpuv2-mode"; + rev = "b17d4cf848dec1e20e66458e5c7ff77a2c051a8c"; + sha256 = "1fc132gv48xwrxiw139kc9f5wkhjgsgqdfm6b7v97xj5025zg6hr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6c1b9bbdc4deb17636270c7f2be0b43b647c695a/recipes/s12cpuv2-mode"; + sha256 = "0mrcf5s7vmkyrsdka7qd2vfcmdy8hzf6a6g14la88rxrv4chv29s"; + name = "s12cpuv2-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/s12cpuv2-mode"; + license = lib.licenses.free; + }; + }) {}; sackspace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sackspace"; @@ -60325,12 +61515,12 @@ sage-shell-mode = callPackage ({ cl-lib ? null, deferred, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "sage-shell-mode"; - version = "20170218.1829"; + version = "20170823.1809"; src = fetchFromGitHub { owner = "sagemath"; repo = "sage-shell-mode"; - rev = "c10f969e06deb0cb1471ebaa4c9bef8e3aeed39c"; - sha256 = "05g6pd125bjh4494fm65iyxjc1nn3a21amdf8cbzcyjakywajjwa"; + rev = "5ba8a40c38c71c813a9d6dc79036f71a7a47e013"; + sha256 = "04f11yp1rc5zi31hn9imz1z4nli2i5pzllx8niiibff82kw8dvip"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eb875c50c2f97919fd0027869c5d9970e1eaf373/recipes/sage-shell-mode"; @@ -60364,22 +61554,22 @@ license = lib.licenses.free; }; }) {}; - salt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-jinja2, mmm-mode, yaml-mode }: + salt-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-jinja2, mmm-mode, yaml-mode }: melpaBuild { pname = "salt-mode"; - version = "20170313.725"; + version = "20170702.246"; src = fetchFromGitHub { owner = "glynnforrest"; repo = "salt-mode"; - rev = "e14ed8f2ce0ab7a783c4341879ec8c003e2b5c81"; - sha256 = "19gw35qv13f2r4wif5fgqfhrph2r320n81faxx8980zds28x2q0x"; + rev = "a41c07660199cfad3f9dd928d5674d2727508035"; + sha256 = "0y7z4lfvhd1aiyhy0yhrx9jdjsy2k1di6y747rjmf0rlwcq2gb2q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9dcf1a93a06fc42581521c88cfd988b03bedc000/recipes/salt-mode"; sha256 = "1n7i9d6qpjsdcgbzmbf63y4c7ggxh5wsim8fd0casnrq9bl7ssym"; name = "salt-mode"; }; - packageRequires = [ mmm-jinja2 mmm-mode yaml-mode ]; + packageRequires = [ emacs mmm-jinja2 mmm-mode yaml-mode ]; meta = { homepage = "https://melpa.org/#/salt-mode"; license = lib.licenses.free; @@ -60535,12 +61725,12 @@ sayid = callPackage ({ cider, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sayid"; - version = "20170306.1733"; + version = "20170509.1215"; src = fetchFromGitHub { owner = "bpiel"; repo = "sayid"; - rev = "3e5456cade044f01eb0753aabc9e50868000bd14"; - sha256 = "1asphbijh5y4ax03x1cn02l4ya8v44s23ani91a0d52msdaxbnyw"; + rev = "20a92323c3edc060c521aa93edab9dad47646b4f"; + sha256 = "0h0wn5c1n2y3cyslz3kbhksvwy1rnwvb1995949b6qkkzwf0cb4l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid"; @@ -60556,12 +61746,12 @@ sbt-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sbt-mode"; - version = "20170317.330"; + version = "20170820.924"; src = fetchFromGitHub { owner = "ensime"; repo = "emacs-sbt-mode"; - rev = "c92cf327f49d9bf8a146dec64b72baf7d341d80c"; - sha256 = "1iysw66g3nxsfl3svxi2j7ish3hzi4b8qy30wcj27jjwfjn2mywp"; + rev = "bdf31a1ffe637d1445b149804d5f5cc29333a1bd"; + sha256 = "0ygp0c2hy4zp5x0ghplxf2fhrf16cn37sk2zf6i43zqz6gydzq8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/364abdc3829fc12e19f00b534565227dbc30baad/recipes/sbt-mode"; @@ -60581,8 +61771,8 @@ src = fetchFromGitHub { owner = "openscad"; repo = "openscad"; - rev = "ac72fb1103c506ce8c00f1b2be37b5c5ab771a61"; - sha256 = "19z8dwybj4bmmqlxa8g6jc87kkj2bdnlgv0k31d0kqxwswng309w"; + rev = "11ef66e8aa8d97f0ed8786c46daa091b1d812867"; + sha256 = "1p0xhsvpxk6sbw4fwq5yhnz8kgf5m7g5q3vxpx8qn7bsd3z0sg31"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2d27782b9ac8474fbd4f51535351207c9c84984c/recipes/scad-mode"; @@ -60619,12 +61809,12 @@ scala-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "scala-mode"; - version = "20170323.502"; + version = "20170802.432"; src = fetchFromGitHub { owner = "ensime"; repo = "emacs-scala-mode"; - rev = "970d88eeff82df635ee12336ab1eb185585f30c6"; - sha256 = "0wfv20dyb13v7fbfsvy0k5dajvmyyhn80l6xyx6kppiv3qmy9s90"; + rev = "56cba2903cf6e12c715dbb5c99b34c97b2679379"; + sha256 = "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/564aa1637485192a97803af46b3a1f8e0d042c9a/recipes/scala-mode"; @@ -60661,12 +61851,12 @@ scheme-complete = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "scheme-complete"; - version = "20170410.617"; + version = "20170824.713"; src = fetchFromGitHub { owner = "ashinn"; repo = "scheme-complete"; - rev = "6bf844202cb9e8490ce37a414374be3f04eefca4"; - sha256 = "16mbcwx1x6bg86qfgl6bhq5qjkz9xgd5f2jl993vvfk824qg4jgl"; + rev = "4c77038048cbcf34b5907f0439c93058a71a2d2b"; + sha256 = "14b1bajgvim48j7y4pss73lyxqfyazjnxn1dgvvmkvngm3k1a4y8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/scheme-complete"; @@ -60703,11 +61893,11 @@ schrute = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "schrute"; - version = "20161124.1227"; + version = "20170521.1140"; src = fetchgit { url = "https://bitbucket.org/shackra/dwight-k.-schrute"; - rev = "08ab6565fa94f3a8016163fe6f7be1932af1156b"; - sha256 = "0l1k6wjjr569lk5k8ydwq13041kn889g20qbzf79qj1ws96rim4m"; + rev = "59faa6c4232ae183cea93237301acad8c0763997"; + sha256 = "1w5l1vf4cn4psrxgnq5n6j3zw644s70inpa17vsvng3sk5r8crcb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/505fc4d26049d4e2973a54b24117ccaf4f2fb7e7/recipes/schrute"; @@ -60786,12 +61976,12 @@ scpaste = callPackage ({ fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild }: melpaBuild { pname = "scpaste"; - version = "20160613.1943"; + version = "20171031.1337"; src = fetchFromGitHub { owner = "technomancy"; repo = "scpaste"; - rev = "eb415f7ca56d64c89cf99d5c6f8a442c4ec3912e"; - sha256 = "1fycdsa93bfiij72cwyc0rp85bwv3lv4r169p9czsph5ns466b65"; + rev = "68445166750a46c86dd7f2ffdca14d3c50e431de"; + sha256 = "0q8cka12gx11wpjz1jk24kn5m1nlqa1xnadlxflhz2x5p9fkscvq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9007fb32097bc63731c3615dae9342fcef2558a2/recipes/scpaste"; @@ -60807,16 +61997,16 @@ scratch = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "scratch"; - version = "20120830.1105"; + version = "20170614.1401"; src = fetchFromGitHub { - owner = "cbbrowne"; + owner = "ieure"; repo = "scratch-el"; - rev = "b377e5642aa0d0ddc9dbb2003d2055bc013e6426"; - sha256 = "1nr6yqmxz6jqjkfj249yz88480shlsnmri0d322pkz88d4nkr0hq"; + rev = "2cdf2b841ce7a0987093f65b0cc431947549f897"; + sha256 = "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/scratch"; - sha256 = "1g4jm54n5k0pkspbd9636hcmxi1p3lkgayiwavlgs0sg2s6vc9l9"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b46813f928eadfa08a1d4bf94ceeb96dbc2a7c72/recipes/scratch"; + sha256 = "1an30pr64fz13s6lghlcb36b7hn3961vv0yipfp9s140ccygdvh7"; name = "scratch"; }; packageRequires = []; @@ -60912,12 +62102,12 @@ scratch-pop = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popwin }: melpaBuild { pname = "scratch-pop"; - version = "20150820.139"; + version = "20170510.758"; src = fetchFromGitHub { owner = "zk-phi"; repo = "scratch-pop"; - rev = "2c9648a669ce8e3a9e35e8e1e3c808531d20c549"; - sha256 = "1yvmfiv1s83r0jcxzbxyrx3b263d73lbap6agansmrhkxp914xr1"; + rev = "7f4172c792b10bd38898dd8963cf0ade91921869"; + sha256 = "0mwjq7z0cpaqhqygzhfcpfqyx8376jsc1g2874np6ff49389bj4d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/420fb3408b64f1a3e42316262016728c483bf0c1/recipes/scratch-pop"; @@ -60951,24 +62141,6 @@ license = lib.licenses.free; }; }) {}; - screenshot = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "screenshot"; - version = "20120509.405"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/screenshot.el"; - sha256 = "0q7yxaaa0fic4d2xwr0qk28clkinwz4xvw3wf8dv1g322s0xx2cw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/24f113097db4cc27a2e9c7b9086af6d263e6fcb7/recipes/screenshot"; - sha256 = "0aw2343as38y26r2g7wpn1rq1n6xpw4y5c7ir8qh1crkc1y513hs"; - name = "screenshot"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/screenshot"; - license = lib.licenses.free; - }; - }) {}; scribble-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "scribble-mode"; @@ -60993,12 +62165,12 @@ scrooge = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, thrift }: melpaBuild { pname = "scrooge"; - version = "20160718.1735"; + version = "20170728.1106"; src = fetchFromGitHub { owner = "cosmicexplorer"; repo = "emacs-scrooge"; - rev = "5e8a301919ec88a7aa48a9c66cafb1bddd9f6100"; - sha256 = "0ndv9j7n9z53f7q0w7cgb4wsh7vyb8f4bga723cm7j0gipx8fjnf"; + rev = "fb55c64eb2ae4db57b14bc99d2e411d81b2c5c2a"; + sha256 = "1hhbm7jmngv69l81vaj0fhpzkvw4sf7q5mdf9mm27mwd2jk70prl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7e3623181fa771dc94a7026eb58ac81fe9d9fc68/recipes/scrooge"; @@ -61035,12 +62207,12 @@ sdcv = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip, showtip }: melpaBuild { pname = "sdcv"; - version = "20161029.1945"; + version = "20171002.210"; src = fetchFromGitHub { owner = "stardiviner"; repo = "sdcv.el"; - rev = "62235bb69b903a5b191ff9935616dddf15fed52c"; - sha256 = "1y2a7132xsi10j9mx0mrpkp947h171rp67n04q0y5smjapvgjjlf"; + rev = "1aad9defb871dc07e27f603092bb81413be54cf2"; + sha256 = "1ij7inm1f59hmn9s1iqnywk1acfm0pqiim2s36vwrljy9lnb4ls8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/173e233b2dacaaf54d92f3bcc06e54d068520dd4/recipes/sdcv"; @@ -61137,32 +62309,14 @@ license = lib.licenses.free; }; }) {}; - second-sel = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "second-sel"; - version = "20170307.946"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/second-sel.el"; - sha256 = "1sgwza2ka3iqsajnppq2vd150h1wbkzzi04rk7bzpqj32dyh7gbx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/second-sel"; - sha256 = "1nzy5ms5qf5big507kg3z5m6d6zgnsv2fswn359r2j59cval3fvr"; - name = "second-sel"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/second-sel"; - license = lib.licenses.free; - }; - }) {}; secretaria = callPackage ({ alert, emacs, f, fetchgit, fetchurl, lib, melpaBuild, org, s }: melpaBuild { pname = "secretaria"; - version = "20161017.1345"; + version = "20170828.945"; src = fetchgit { url = "https://bitbucket.org/shackra/secretaria.el"; - rev = "aae30bfc93fa5ea846bce086b22321c46b94ff7b"; - sha256 = "18ad7q2a131gpvjj8923vp06zh0zfdy1589vs3f09v16aazbcfqc"; + rev = "1cd32d957864be1ba5c44a3f505f662832169a28"; + sha256 = "1xvwzmcfwfxsm9chbjnqjsipmv5pqpzk5d0ybw3rcdc47nag3jdg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7b4c9ccbf2eeaa290f3b9d1e5eaaeb5b5547b365/recipes/secretaria"; @@ -61220,12 +62374,12 @@ sekka = callPackage ({ cl-lib ? null, concurrent, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "sekka"; - version = "20170309.543"; + version = "20170803.547"; src = fetchFromGitHub { owner = "kiyoka"; repo = "sekka"; - rev = "987c1cce65c8f30b12cdb5991e1b1ad9da766916"; - sha256 = "03930cfqq97f7m6z9da2y9388iyymc56b1vdrl5a6mpggv3wifn7"; + rev = "61840b57d9ae32bf8e297b175942590a1319c7e7"; + sha256 = "05vj12l88s29wnkpvgzlbypv9hkmy1hqgv9hvav6v4kmdykl5w1b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/350bbb5761b5ba69aeb4acf6d7cdf2256dba95a6/recipes/sekka"; @@ -61346,12 +62500,12 @@ sensitive = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, sequences }: melpaBuild { pname = "sensitive"; - version = "20131015.635"; + version = "20170818.551"; src = fetchFromGitHub { owner = "timvisher"; repo = "sensitive.el"; - rev = "7f2c77811e983234e1a93055d78cc4480ae807c3"; - sha256 = "0g4jfcc5k26yh192bmmxnim9mqv993v2jjd9g9ssvnd42ihpx1n3"; + rev = "69dd6125a41d8b55f4b6ba61daa4d1aa1f716fa8"; + sha256 = "0nj71ds4frfi16hsfswmp89rfxkvvdvhdlsqizzi9cbvr49s0l1f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5e5468ce136fabe59e1434f8a7f265f41c5e64c1/recipes/sensitive"; @@ -61364,27 +62518,6 @@ license = lib.licenses.free; }; }) {}; - sentence-highlight = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sentence-highlight"; - version = "20170405.2352"; - src = fetchFromGitHub { - owner = "sbelak"; - repo = "sentence-highlight"; - rev = "f47839853455d0f4ffe50b3b0f9d3e7a15ace1fa"; - sha256 = "11s5zvwklf5vzwiiwmcw5c93qjvf5nxclbbk8hlj8fg88c5ssbzd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/sentence-highlight"; - sha256 = "07pyyl74cvnz6dd85ghv3zdrir08317lvnzm5nf1n3p85aqjpcxm"; - name = "sentence-highlight"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sentence-highlight"; - license = lib.licenses.free; - }; - }) {}; sentence-navigation = callPackage ({ ample-regexps, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sentence-navigation"; @@ -61430,12 +62563,12 @@ sequences = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sequences"; - version = "20130908.1122"; + version = "20170818.552"; src = fetchFromGitHub { owner = "timvisher"; repo = "sequences.el"; - rev = "2bcc54a6738202fffb23e9579b9695337ba6ef26"; - sha256 = "1np6ip28ksms6fig67scwvwj43zgblny50ccvz8aclbl0z8nxswl"; + rev = "564ebbd93b0beea4e75acfbf824350e90b5d5738"; + sha256 = "0ym2bl9dpsglz35is0iwxfw5w7zs9398bkln8lgv28nr6kw0ym4s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4cf716df68fb2d6a41fe75fac0b41e356bddcf30/recipes/sequences"; @@ -61448,25 +62581,6 @@ license = lib.licenses.free; }; }) {}; - sequential-command = callPackage ({ fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sequential-command"; - version = "20151207.1403"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/sequential-command.el"; - sha256 = "0vg8rqzzi29swznhra2mnf45czr2vb77dpcxn3j0fi7gynx3wcwk"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/31db031dc8712e89042d4ce80438a4267a241739/recipes/sequential-command"; - sha256 = "03qybacgy5fs3lam73x0rds4f68s173mhbah6rr97272nikd50v1"; - name = "sequential-command"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sequential-command"; - license = lib.licenses.free; - }; - }) {}; servant = callPackage ({ ansi, commander, dash, epl, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up, web-server }: melpaBuild { pname = "servant"; @@ -61512,12 +62626,12 @@ services = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "services"; - version = "20170327.835"; + version = "20170802.430"; src = fetchFromGitHub { owner = "davep"; repo = "services.el"; - rev = "87d65bf9fd8b02101f751846c650fc518355d1ea"; - sha256 = "01wlknj97jrmhji3c3dyc6cm8pp0rj93knfrg3l7zimr7crx3rg3"; + rev = "04c7986041a33dfa0b0ae57c7d6fbd600548c596"; + sha256 = "0ycfkskkdlmc0l75z5a8f66wq5mvb24c4kz19a6kqs8rwm2ygz35"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/beb91b4397f6e35a1d5c73a127d8cd7fc9201935/recipes/services"; @@ -61596,16 +62710,16 @@ sexy-monochrome-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sexy-monochrome-theme"; - version = "20170324.510"; + version = "20171011.536"; src = fetchFromGitHub { - owner = "nuncostans"; + owner = "voloyev"; repo = "sexy-monochrome-theme"; - rev = "c221231bb8a0d60413d710efe6226683326d57b0"; - sha256 = "0zjy6d4fqg08dwbn1y360514pzzj3nrg3wzm656n7sg90mffh22i"; + rev = "9fb835606088a0d24600faa12fe24d85cb2c0731"; + sha256 = "182wzr7lisrszivxpjp29m7vjxxi429mshp2labf2abqkfrb9jv4"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9a09ffb7d271773f6cfa7c7eeaba45a717a5bdca/recipes/sexy-monochrome-theme"; - sha256 = "1qmbb2aaa1lc18l9kk42iq466hy2mg7565b0gb7hdvfqsi05d8dg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/dfd5ae9a93e036d11899c7adffdf6b63c2b21381/recipes/sexy-monochrome-theme"; + sha256 = "0rlx4029zxrnzzqspn8zrp3q6w0n46q24qk7za46hvxdsmgdpxbq"; name = "sexy-monochrome-theme"; }; packageRequires = []; @@ -61617,12 +62731,12 @@ shackle = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shackle"; - version = "20170213.1534"; + version = "20171018.1120"; src = fetchFromGitHub { owner = "wasamasa"; repo = "shackle"; - rev = "979b021077655ca38749a60c9752c0817e8fd93e"; - sha256 = "11qp4gqxfi5d6krvxlqxfn58b1kcgsnldpi54r8lx6mis8l0f4wl"; + rev = "0cee957bc0bfbdee5ea3f3e430e94cdcd87ed0c3"; + sha256 = "18zhrn18asbpanmlgasy271gfh6qywr947fx2svxz5b1w40hhyr0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/806e7d00f763f3fc4e3b8ebd483070ac6c5d0f21/recipes/shackle"; @@ -61932,12 +63046,12 @@ shen-elisp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shen-elisp"; - version = "20170213.1303"; + version = "20170427.1502"; src = fetchFromGitHub { owner = "deech"; repo = "shen-elisp"; - rev = "8248cd96a0931cb3215dc13e0905ac4be1701981"; - sha256 = "1acml0p04wxnm0di9iy5kwml6myr7gcj09ky6dw35f0k0m1w51ba"; + rev = "ffe17dee05f75539cf5e4c59395e4c7400ececaa"; + sha256 = "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/shen-elisp"; @@ -61992,17 +63106,19 @@ license = lib.licenses.free; }; }) {}; - shimbun = callPackage ({ fetchcvs, fetchurl, lib, melpaBuild }: melpaBuild { + shimbun = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "shimbun"; - version = "20170301.255"; - src = fetchcvs { - cvsRoot = ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot"; - module = "emacs-w3m"; - sha256 = "b861237e76035df9e806681dee0f58680d9e68e773cc5e3c65dd513e127f4240"; + version = "20171018.131"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "w3m"; + rev = "e2e2c907f4fa575bec74803aab95af426cb37e6e"; + sha256 = "13lzj1h6ib779fszmvlz3wamnjibivdrxl8hd5l3xhh7fkgbc8c8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8bbb18b0db057b9cca78ae7280674fd1beb56443/recipes/shimbun"; - sha256 = "05dxdyh8xvbpjmc19q733jmjd6kgv8rdahjd3bw5wwsb3smqig4x"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/shimbun"; + sha256 = "1rjykr0y5jfd6r3shm8x23yyra6qjsb55jrfc45rhpb89klyg1nk"; name = "shimbun"; }; packageRequires = []; @@ -62014,12 +63130,12 @@ shm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shm"; - version = "20170126.420"; + version = "20170523.238"; src = fetchFromGitHub { owner = "chrisdone"; repo = "structured-haskell-mode"; - rev = "45b32a79d90a4e23064f0ca18d4ff9283b01ef03"; - sha256 = "189vx1kjrdr0lxbfbvfvrxvr1y216px23rfa52ysha5av2khr39v"; + rev = "bd08a0b2297667e2ac7896e3b480033ae5721d4d"; + sha256 = "14rl739z19ns31h9fj48sx9ppca4g4mqkc7ccpacagwwf55m259c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/68a2fddb7e000487f022b3827a7de9808ae73e2a/recipes/shm"; @@ -62095,24 +63211,6 @@ license = lib.licenses.free; }; }) {}; - showkey = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "showkey"; - version = "20170307.1528"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/showkey.el"; - sha256 = "143889knvy6ifvq759869gbjfg10k10mi2by2hajcgzqhby72h61"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/showkey"; - sha256 = "04lw32k1imvpfc4dr5pz11sx74982xr13hcyblvrz1zxhgixb1z1"; - name = "showkey"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/showkey"; - license = lib.licenses.free; - }; - }) {}; showtip = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "showtip"; @@ -62155,6 +63253,48 @@ license = lib.licenses.free; }; }) {}; + shr-tag-pre-highlight = callPackage ({ emacs, fetchFromGitHub, fetchurl, language-detection, lib, melpaBuild }: + melpaBuild { + pname = "shr-tag-pre-highlight"; + version = "20170820.2127"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "shr-tag-pre-highlight.el"; + rev = "63eb0b2a4c1caf1004bac8e002ff8b7477871e36"; + sha256 = "14b398k7rd0c2ymvg8wyq65fhggkm0camgvqr7j6ia2y0kairxba"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7be3c139bee02e8bd9a9830026cbfdd17629ac4d/recipes/shr-tag-pre-highlight"; + sha256 = "1v8fqx8bd5504r2mflq6x8xs3k0py3bgsnadz3bjs68yhaxacj3v"; + name = "shr-tag-pre-highlight"; + }; + packageRequires = [ emacs language-detection ]; + meta = { + homepage = "https://melpa.org/#/shr-tag-pre-highlight"; + license = lib.licenses.free; + }; + }) {}; + shrink-path = callPackage ({ dash, emacs, f, fetchFromGitLab, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "shrink-path"; + version = "20170812.1947"; + src = fetchFromGitLab { + owner = "bennya"; + repo = "shrink-path.el"; + rev = "9d06c453d1537df46a4b703a29213cc7f7857aa0"; + sha256 = "021bpgpzysag1s11m9pyq2bk6a0mf9ayx10yxhf5cw56x3d0jj1b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/86b0d105e8a57d5f0bcde779441dc80b85e170ea/recipes/shrink-path"; + sha256 = "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb"; + name = "shrink-path"; + }; + packageRequires = [ dash emacs f s ]; + meta = { + homepage = "https://melpa.org/#/shrink-path"; + license = lib.licenses.free; + }; + }) {}; shrink-whitespace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shrink-whitespace"; @@ -62197,6 +63337,27 @@ license = lib.licenses.free; }; }) {}; + shx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "shx"; + version = "20171004.1113"; + src = fetchFromGitHub { + owner = "riscy"; + repo = "shx-for-emacs"; + rev = "e53d798ba4a4c07a3ee1c194840c937b18c02087"; + sha256 = "0sig9gpa2wn23skwny9jpvwxax0gbwp143anvgkc5gm87iw2jgrd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7a2ff78ae3c4289ebf9e06cdfd8f8082c395a16f/recipes/shx"; + sha256 = "0h5ldglx4y85lm0pfilasnch2k82mlr7rb20qvarzwd41hb1az1k"; + name = "shx"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/shx"; + license = lib.licenses.free; + }; + }) {}; sibilant-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sibilant-mode"; @@ -62221,15 +63382,15 @@ sicp = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sicp"; - version = "20170124.1650"; + version = "20171028.1523"; src = fetchFromGitHub { owner = "webframp"; repo = "sicp-info"; - rev = "935da01b7aa782a1a7f9fd17b5512132b197da8c"; - sha256 = "0mgbhf5cp7z6yd5kl5x4whlc6nfm2lqq6khxcmilrbgv4was55sj"; + rev = "8e13f7ff4695a05471486d37a6c5f979a5b965fb"; + sha256 = "15krfnj2qz4j2ns4a05a4wwaknhx77m4jhazg7zvz9xm4b4j1qm8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/sicp"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1363d7b6e95375ac63f07eed2b3947f4f81bc9ba/recipes/sicp"; sha256 = "1q7pbhjk8qgwvj27ianrdbmj98pwf3xv10gmpchh7bypmbyir4wz"; name = "sicp"; }; @@ -62246,8 +63407,8 @@ src = fetchFromGitHub { owner = "nlamirault"; repo = "sift.el"; - rev = "ef509ac4c579340e8d924c26d9e5858a9f4fb9de"; - sha256 = "0i8gqzvpl3drzp031dqdpsi1ssr3az8fzb7xpbxnamzscfz6pdyc"; + rev = "4ce8878a0fc396ded7521ce38852d93e1d863065"; + sha256 = "1x78i6svi4cwah9xw85imhpncvxsx4xim4fzykpnd328mxkk07h6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/sift"; @@ -62389,12 +63550,12 @@ simple-httpd = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "simple-httpd"; - version = "20170125.1910"; + version = "20171004.938"; src = fetchFromGitHub { owner = "skeeto"; repo = "emacs-web-server"; - rev = "348483efea6ec2752bc5aa4028a16087d19b2809"; - sha256 = "191aq4zhg5a8g6ypkbh20rnqyk76lhxfhnq5ww0g5hzpig8srxaa"; + rev = "e7775d3bc5c6b73255814d0a62dc954e23a12c15"; + sha256 = "0pjhxhzzxrpcczwvd7b6a6q1nfmsr6m6mnlxn13nwf3r270grz87"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/simple-httpd"; @@ -62428,38 +63589,19 @@ license = lib.licenses.free; }; }) {}; - simple-plus = callPackage ({ fetchurl, lib, melpaBuild, strings }: - melpaBuild { - pname = "simple-plus"; - version = "20170307.1529"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/simple+.el"; - sha256 = "061vw3w8gl1lcjy67ina4w496i91addsl5s3xbffk2q6k1qhjsdi"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/simple+"; - sha256 = "12fsgjk53fq2316j8nm6wvdckpyg9hq3v65j5c52i0g0cwmx62ra"; - name = "simple-plus"; - }; - packageRequires = [ strings ]; - meta = { - homepage = "https://melpa.org/#/simple+"; - license = lib.licenses.free; - }; - }) {}; - simple-rtm = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, rtm }: + simple-rtm = callPackage ({ dash, fetchFromGitLab, fetchurl, lib, melpaBuild, rtm }: melpaBuild { pname = "simple-rtm"; version = "20160222.734"; - src = fetchFromGitHub { + src = fetchFromGitLab { owner = "mbunkus"; repo = "simple-rtm"; rev = "8c7cd96cf66ef112be5c363e3378e304f8f83999"; sha256 = "1kkhnsxr8zrb21k4ckyg69nsndwy4zdkvfw2drk4v1vnbgx8144f"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/fae2c5512242c39f9a1d806fafda85081e84cda3/recipes/simple-rtm"; - sha256 = "1aadzaf73clhyny2qiryg6z84k34yx3ghy6pyl0px9qhqc1ak271"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a784f931849ca836557390999b179ef9f6e775f3/recipes/simple-rtm"; + sha256 = "0v5f0vr8sh62yvb7znx00wgybb83dfnkvgl8afyk3ry8n9xkhf5b"; name = "simple-rtm"; }; packageRequires = [ dash rtm ]; @@ -62492,12 +63634,12 @@ simpleclip = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "simpleclip"; - version = "20150804.1010"; + version = "20170803.540"; src = fetchFromGitHub { owner = "rolandwalker"; repo = "simpleclip"; - rev = "7079086ec09a148fcc9146ba9bd10e12fb011861"; - sha256 = "09286h2q9dqghgfj9a4cniz6djw7867vcy3ixs7cn4wghvhyxm8s"; + rev = "d461c462c237cd896553adb468cd77499d0d26ad"; + sha256 = "1dfa1sa7rbadj36nbzyxbpbvkdlh1s5n0mx6hxn52psqin1ra6yn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7c921e27d6aafc1b82d37f6beb8407840034377a/recipes/simpleclip"; @@ -62534,12 +63676,12 @@ simplenote2 = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, request-deferred }: melpaBuild { pname = "simplenote2"; - version = "20170317.335"; + version = "20170618.644"; src = fetchFromGitHub { owner = "alpha22jp"; repo = "simplenote2.el"; - rev = "5f267d6289b103d77feb2f038baedeae39deee75"; - sha256 = "07rmwga7qd8g71km5p3g3vjmmiy8cr5snyrvhiwi9lcnai83kc50"; + rev = "78ab3d818633c0d6575cd1895c119bd690003bf6"; + sha256 = "0z9zary8apzjsx031fhy94ggqancm94mjhj335kr743s8zr3511g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1ac16abd2ce075a8bed4b7b52aed71cb12b38518/recipes/simplenote2"; @@ -62576,12 +63718,12 @@ skeletor = callPackage ({ cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, s }: melpaBuild { pname = "skeletor"; - version = "20170413.2030"; + version = "20170616.1746"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "skeletor.el"; - rev = "376958e6e39dcf32df945c617c230dba3bcc076d"; - sha256 = "152kqsbhn1z3nf55vrrz6iv96c4jkzp2bglgp2bqb37nfh722frz"; + rev = "01c330ec115fc29bba5d9bdf6c15beb4a44e2281"; + sha256 = "0i3axni8y4s5n2s7qbqzz3sadcfhr3369q7qn8psk29qbicjw5wv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e63aefc869900c2af6f958dc138f9c72c63e2b8/recipes/skeletor"; @@ -62601,8 +63743,8 @@ src = fetchFromGitHub { owner = "purcell"; repo = "skewer-less"; - rev = "4d4394418b70bd454efef1cb68129da05ab67891"; - sha256 = "0bf6w9wca8bkm23246cbf4dcb5y583xz8114a7xg0152hpfcg46q"; + rev = "927d6848a1ea9428d4cc995f76bd42f7b8da6bc8"; + sha256 = "11zaq1p04igg0hbmazsf5c0xz7aigx120rwg5iq7niaz2277j1k1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fb63f7417f39bd718972f54e57360708eb48b977/recipes/skewer-less"; @@ -62618,12 +63760,12 @@ skewer-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, simple-httpd }: melpaBuild { pname = "skewer-mode"; - version = "20170122.938"; + version = "20170730.1241"; src = fetchFromGitHub { owner = "skeeto"; repo = "skewer-mode"; - rev = "18a90f401451f8ca0486bdaf45647ac3ccebc0ac"; - sha256 = "1y25c3mq5fzlsjjj98p75jxynk1aaj72vp1zi6jrr2g8hay1yi31"; + rev = "7df248a4b7ec2eb0f3cabcbdfb052593d1f86590"; + sha256 = "07l90cqcngwy8vxx4yxx7i72lp10wzv44ypn07zwyrl69bcmf2q8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/10fba4f7935c78c4fc5eee7dbb161173dea884ba/recipes/skewer-mode"; @@ -62702,12 +63844,12 @@ slack = callPackage ({ alert, circe, emojify, fetchFromGitHub, fetchurl, lib, melpaBuild, oauth2, request, websocket }: melpaBuild { pname = "slack"; - version = "20170331.2242"; + version = "20171017.822"; src = fetchFromGitHub { owner = "yuya373"; repo = "emacs-slack"; - rev = "86756c37968cbbc171e52e416ef656af2a2258a8"; - sha256 = "1vhcfmyk9swf5h7gka9fbwq2s3x4a540km6wjxqynmpw8c45q154"; + rev = "c8f4c3312b574b8f4cd5ddaaa6ec7710893a9ff0"; + sha256 = "01aibrnkzyi40b7bfz5wfl34wwjil4nylg6llkhrmzc6mfqabnjy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f0258cc41de809b67811a5dde3d475c429df0695/recipes/slack"; @@ -62744,12 +63886,12 @@ slim-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "slim-mode"; - version = "20140611.950"; + version = "20170728.648"; src = fetchFromGitHub { owner = "slim-template"; repo = "emacs-slim"; - rev = "869c84821cf3e556b380c5c35d8ad62287c4df58"; - sha256 = "0vgyc2ny9qmn8f5r149y4g398mh4gnwsp4yim85z4vmdikqg8vi1"; + rev = "3636d18ab1c8b316eea71c4732eb44743e2ded87"; + sha256 = "1sqylm6ipmlh9249mmwfb16b4pv94cvzdwvi3zakdpz713phyjw5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6a3b59bdbc53d7c0b4c4d6434689f7aab2546678/recipes/slim-mode"; @@ -62765,12 +63907,12 @@ slime = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, macrostep, melpaBuild }: melpaBuild { pname = "slime"; - version = "20170319.1601"; + version = "20170929.1441"; src = fetchFromGitHub { owner = "slime"; repo = "slime"; - rev = "0f3459f558bb71daab2416102b99a8ce39947d83"; - sha256 = "0sqjsc7gbiqivi9f8y53fc3nys61dhs8lq1zz57yg24qvv3hxqi3"; + rev = "c5fa94f86b61f3a14a7348b4fa001a0e1c62cef2"; + sha256 = "0y9n40knm1r3z0kx0xd5yda5191m5s2ibsxb2sa23qp1yj2qs6xm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14c60acbfde13d5e9256cea83d4d0d33e037d4b9/recipes/slime"; @@ -62783,27 +63925,6 @@ license = lib.licenses.free; }; }) {}; - slime-annot = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, slime }: - melpaBuild { - pname = "slime-annot"; - version = "20131230.1908"; - src = fetchFromGitHub { - owner = "arielnetworks"; - repo = "cl-annot"; - rev = "c99e69c15d935eabc671b483349a406e0da9518d"; - sha256 = "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/498c938a9d5c51f0842fdae317f5b2fae33bb6d5/recipes/slime-annot"; - sha256 = "14x9lzpkgkc96jsbfpahl027qh6y5azwdk0cmk9pbd1xm95kxj6n"; - name = "slime-annot"; - }; - packageRequires = [ slime ]; - meta = { - homepage = "https://melpa.org/#/slime-annot"; - license = lib.licenses.free; - }; - }) {}; slime-company = callPackage ({ company, fetchFromGitHub, fetchurl, lib, melpaBuild, slime }: melpaBuild { pname = "slime-company"; @@ -62828,12 +63949,12 @@ slime-docker = callPackage ({ cl-lib ? null, docker-tramp, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, slime }: melpaBuild { pname = "slime-docker"; - version = "20160817.2344"; + version = "20171004.1151"; src = fetchFromGitHub { owner = "daewok"; repo = "slime-docker"; - rev = "f90fc274c2f764a5962a3cbcf0ea00622ee5bfe6"; - sha256 = "0wknygb8gnr49xc5wyyalgs97zk0qj33wwcw1kcxah4nmvzgqg7f"; + rev = "13fa8be2fca516f3ff5fb70fa79dd8404bf86439"; + sha256 = "005zkypg2hkyzpkcv1rzfrmg8amg1bp0534y13xjqq3rz1p602bx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/15ec3f7208287161571c8fc3b29369ceabb44e5f/recipes/slime-docker"; @@ -62846,36 +63967,15 @@ license = lib.licenses.free; }; }) {}; - slime-ritz = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "slime-ritz"; - version = "20130218.1537"; - src = fetchFromGitHub { - owner = "pallet"; - repo = "ritz"; - rev = "4003fdaa5657d4ed1eeb0e244c46658cbb981667"; - sha256 = "0rsh0bbhyx74yz1gjfqyi0bkqq5n3scpyh5mmc3d6dkpv8wa7bwz"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/669a4ae76deea86084307ac3c2d26072e4b8fe17/recipes/slime-ritz"; - sha256 = "1y1439y07l1a0sp9wn110hw4yyxj8n1cnd6h17rmsr549m2qbg1a"; - name = "slime-ritz"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/slime-ritz"; - license = lib.licenses.free; - }; - }) {}; slime-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "slime-theme"; - version = "20141115.2302"; + version = "20170808.622"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-slime-theme"; - rev = "441288a5791d24e79ada2698888653ef3cf2ac6f"; - sha256 = "13rm9pmshgssmydhpirri38s38z3kvkhqama40qdzqq96dsxlnjx"; + rev = "8e5880ac69e0b6a079103001cc3a90bdb688998f"; + sha256 = "0g90ypwyvpdzilvhj0rgfrp78a5gflply3rix2wx8rncw569qb6g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/641d1959bd31598fcdacd39a3d1bb077dcccfa5c/recipes/slime-theme"; @@ -62951,15 +64051,36 @@ license = lib.licenses.free; }; }) {}; + slstats = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "slstats"; + version = "20170823.149"; + src = fetchFromGitHub { + owner = "davep"; + repo = "slstats.el"; + rev = "e9696066abf3f2b7b818a57c062530dfd9377033"; + sha256 = "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fe7c8c241cc6920bbedb6711db63ea28ed633327/recipes/slstats"; + sha256 = "0z5y2fmb3v16g5gf87c9gll04wbjp3d1cf7gm5cxi4w3y1kw4r7q"; + name = "slstats"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/slstats"; + license = lib.licenses.free; + }; + }) {}; sly = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sly"; - version = "20170413.557"; + version = "20171011.809"; src = fetchFromGitHub { owner = "capitaomorte"; repo = "sly"; - rev = "35ccf713384477b9e314ffef69f762ce2a6a94e9"; - sha256 = "0j1z536ydcdmg16xx0nzd2cj9cpi8l8lhwb8ig0b9nl3lv12cb4d"; + rev = "687942cb08525bb10abef0d0fdfb57dd69e988b8"; + sha256 = "1hzc6cpndzc9lb82g6k8g65spnw09impgnfj6lfm9v25pbyg8y2m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/79e7213183df892c5058a766b5805a1854bfbaec/recipes/sly"; @@ -63077,45 +64198,24 @@ license = lib.licenses.free; }; }) {}; - sly-repl-ansi-color = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, sly }: + smart-backspace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "sly-repl-ansi-color"; - version = "20160214.18"; + pname = "smart-backspace"; + version = "20171013.2226"; src = fetchFromGitHub { - owner = "PuercoPop"; - repo = "sly-repl-ansi-color"; - rev = "505d162d52219654b57a455e26c9e02c7254a8f2"; - sha256 = "194bdibpxpqsag86h583b62ybmfqmq4442a0czbijqwngbgjpj3l"; + owner = "itome"; + repo = "smart-backspace"; + rev = "a10ec44ff325ec8c4c98b1a6e44e89e60a9aa4ac"; + sha256 = "0p19qikalmvs9y1lws08mxvh2k8s219mpm3nyi9aqq62ryyfwf1n"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2fc906b674e1829e023e6a1c0e4cf87830216a8/recipes/sly-repl-ansi-color"; - sha256 = "0wz24kfjl6rp4qss0iq2ilav0mkg2spy2ziikypy7v0iqbssmssi"; - name = "sly-repl-ansi-color"; - }; - packageRequires = [ cl-lib sly ]; - meta = { - homepage = "https://melpa.org/#/sly-repl-ansi-color"; - license = lib.licenses.free; - }; - }) {}; - smali-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "smali-mode"; - version = "20160406.1556"; - src = fetchFromGitHub { - owner = "strazzere"; - repo = "Emacs-Smali"; - rev = "10437ab0b29994cf4bf67ec28ccf82a74b8c026b"; - sha256 = "1ircjz571q1sgjkxryc3rlcpdrh6ac7ydnvclr7ldh3nhz77pm7p"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/90182e5bbf79c570b3cb59f541636d4aad5d8652/recipes/smali-mode"; - sha256 = "17fcr66ky9hmj74i4wr3y9n1d9g8hib7l3gmr4jxj8vsjzfxy7h7"; - name = "smali-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/88cd95cd623fb00d1bc6800c1dd3c665a0cce349/recipes/smart-backspace"; + sha256 = "152xdxzrr91qiyq25ghvjlbpc627cw4s120axmz2p2d48pinwir9"; + name = "smart-backspace"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/smali-mode"; + homepage = "https://melpa.org/#/smart-backspace"; license = lib.licenses.free; }; }) {}; @@ -63140,16 +64240,19 @@ license = lib.licenses.free; }; }) {}; - smart-compile = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { + smart-compile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "smart-compile"; - version = "20161118.403"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/smart-compile.el"; - sha256 = "163s97h1a9pjz3pqyn2mhh4mf05b7yycp29k5wnk3c9zc71pafvp"; + version = "20170827.1050"; + src = fetchFromGitHub { + owner = "zenitani"; + repo = "elisp"; + rev = "64258b424e471c749a3399d32aa35b39dfb05222"; + sha256 = "08hk3kdz2mkp6lmx1fvgax862ibw99yji12c12n23ksjv1qz261z"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d2e6c3dd7b8e19193d070fd41c2be4bcd61f1022/recipes/smart-compile"; - sha256 = "0vgxqyzl7jw2j96rmjw75b5lmjwrvzajrdvfyabss4xmv96dy2r3"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/93562afd7b62d7535b8010179ba6ac7e8e6280d0/recipes/smart-compile"; + sha256 = "1w3vyb6wz786ydrywkjmazyvgfl0qxamn0fgnqpn17d2c5jr9c4g"; name = "smart-compile"; }; packageRequires = []; @@ -63286,12 +64389,12 @@ smart-mode-line = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rich-minority }: melpaBuild { pname = "smart-mode-line"; - version = "20160818.508"; + version = "20171013.849"; src = fetchFromGitHub { owner = "Malabarba"; repo = "smart-mode-line"; - rev = "3656417ec06ba448f940d65e96bddb57fdc79244"; - sha256 = "1vm96cb693mgzf7x9wl3sy3z90rq4mgbrnhy9hb746ypdpkfd3am"; + rev = "1facbe9816b602c640ddb23602e30588d6d904ca"; + sha256 = "1fgh4yss9brchnfphdijy23qknv30hxkgsbz6p2d5ck6w7xml4lc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/smart-mode-line"; @@ -63311,8 +64414,8 @@ src = fetchFromGitHub { owner = "Malabarba"; repo = "smart-mode-line"; - rev = "3656417ec06ba448f940d65e96bddb57fdc79244"; - sha256 = "1vm96cb693mgzf7x9wl3sy3z90rq4mgbrnhy9hb746ypdpkfd3am"; + rev = "1facbe9816b602c640ddb23602e30588d6d904ca"; + sha256 = "1fgh4yss9brchnfphdijy23qknv30hxkgsbz6p2d5ck6w7xml4lc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/60072b183151e519d141ec559b4902d20c87904c/recipes/smart-mode-line-powerline-theme"; @@ -63367,6 +64470,27 @@ license = lib.licenses.free; }; }) {}; + smart-semicolon = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "smart-semicolon"; + version = "20171007.1833"; + src = fetchFromGitHub { + owner = "iquiw"; + repo = "smart-semicolon"; + rev = "c11096679dbed3875c37413337ee490ee7951b63"; + sha256 = "1v6z3a1f6nxc62n7595qnji39ywdsz7xy5bkl2218v3y7gkbc518"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fe339b95636b02ceb157294055d2f5f4c4b0b8cf/recipes/smart-semicolon"; + sha256 = "1vq6l3vc615w0p640wy226z5i7dky666sgzczkngv07kag0iwqp0"; + name = "smart-semicolon"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/smart-semicolon"; + license = lib.licenses.free; + }; + }) {}; smart-shift = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smart-shift"; @@ -63391,12 +64515,12 @@ smart-tab = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smart-tab"; - version = "20150703.917"; + version = "20170902.1407"; src = fetchFromGitHub { owner = "genehack"; repo = "smart-tab"; - rev = "28918a72045811294ecb33f666ba23fe66c169af"; - sha256 = "0aighpby8khrljb67m533bwkzlsckyvv7d09cnzr1rfwxiil0ml4"; + rev = "76a8ec13384975d39aa1b25e5384a02558dba574"; + sha256 = "02mj2is05adq5v64aahivbkx2kzrxmmg2va650hsvl4izj3dr2x3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/smart-tab"; @@ -63454,12 +64578,12 @@ smartparens = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smartparens"; - version = "20170417.1126"; + version = "20171101.244"; src = fetchFromGitHub { owner = "Fuco1"; repo = "smartparens"; - rev = "72f3d2846a7fe324136b7b58d6bf3f8939551c99"; - sha256 = "181sb5rv0li00gp67sg16g9clhcs9gbmp1cs8f29ww3m753k1nvs"; + rev = "9682ba930374a4d62b444950b008d2bca1cffba1"; + sha256 = "1nsi3x9zizbxx95ka5cgl5rnsw5iz92acjcv6b4id0acaysq6mdm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bd98f85461ef7134502d4f2aa8ce1bc764f3bda3/recipes/smartparens"; @@ -63514,27 +64638,6 @@ license = lib.licenses.free; }; }) {}; - smartwin = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "smartwin"; - version = "20160513.56"; - src = fetchFromGitHub { - owner = "jerryxgh"; - repo = "smartwin"; - rev = "61528c1cf6c8d913a44e60c40fa8773b7e400eac"; - sha256 = "1jcaspqrm23viigk0701711bmaqsyc5fbpkszf7bg7nvhkl4pfqy"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/29c5d92b518ad74f4dff2d83fb0230d49e76aaf1/recipes/smartwin"; - sha256 = "0rg92j0aa8qxhr91hjj2f4w8vj5w9b4d2nmkggng44nxk8zafdif"; - name = "smartwin"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/smartwin"; - license = lib.licenses.free; - }; - }) {}; smarty-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smarty-mode"; @@ -63580,12 +64683,12 @@ smblog = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smblog"; - version = "20160317.430"; + version = "20170419.321"; src = fetchFromGitHub { owner = "aaptel"; repo = "smblog-mode"; - rev = "25bf9374f692aec845d911286f10a11aaa0945d8"; - sha256 = "1ca8i45dj41vif2hm87ircwm9alxdm98irfi586ybrc72s24036r"; + rev = "5245e7aeac20915121946f59bba30899305d950b"; + sha256 = "0i5q29b3hk644dnc0d98d613l065p0k846ljg13vgawpiic6ld6b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6469537a11972509fa2bfb10eb3f8816cc98efed/recipes/smblog"; @@ -63661,18 +64764,19 @@ license = lib.licenses.free; }; }) {}; - sml-modeline = callPackage ({ fetchbzr, fetchurl, lib, melpaBuild }: + sml-modeline = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sml-modeline"; - version = "20120110.1240"; - src = fetchbzr { - url = "lp:~nxhtml/nxhtml/main"; - rev = "835"; - sha256 = "1p10q1b5bvc8fvgfxynrq2kf1ygr6gad92x40zhaa5r1ksf6ryk4"; + version = "20170614.1411"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "sml-modeline"; + rev = "d2f9f70174c4cf68c67eb3bb8088235735e34d9a"; + sha256 = "18k2k213vgawxskp9m57r8qarg3pnza6nvbpyi6l03jnmf2kcw2b"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3438977c0bf907b7a3480e6b88b277109c663385/recipes/sml-modeline"; - sha256 = "086hslzznv6fmlhkf28mcl8nh4xk802mv6w0a4zwd5px2wyyaysd"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/4728fce21f03c95bcc2b562648e99c537fb09cd8/recipes/sml-modeline"; + sha256 = "00kz03ixkfnm4id8dd8aij2rhakzd4arzd790jdac1y3yyd5pp3y"; name = "sml-modeline"; }; packageRequires = []; @@ -63810,12 +64914,12 @@ snakemake-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }: melpaBuild { pname = "snakemake-mode"; - version = "20170406.1736"; + version = "20171030.1016"; src = fetchFromGitHub { owner = "kyleam"; repo = "snakemake-mode"; - rev = "15803162483e635f3e22b2efea33ccad725e0535"; - sha256 = "1nc8xp22i57kf89x0qh69dspl9hl710m01gdr35ph5gl8ycmyir5"; + rev = "990d6d8e98b96b9afe5b9b340507b1aecd8de1ce"; + sha256 = "1bd6kwzkk8vfhfc7m384y40lh6rdw90g6624c0hlfrs9zwihmvs3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3a5b51fee1c9e6ce7e21555faa355d118d34b8d/recipes/snakemake-mode"; @@ -63870,6 +64974,27 @@ license = lib.licenses.free; }; }) {}; + snazzy-theme = callPackage ({ base16-theme, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "snazzy-theme"; + version = "20170823.1132"; + src = fetchFromGitHub { + owner = "weijiangan"; + repo = "emacs-snazzy"; + rev = "479351a34cd7f754375ee45f161f83a19d0fd29c"; + sha256 = "0lxxg6x5kb6ibwlywci9gw1bcdw2i23s07qd7k2lm86j5ixlpjgw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/18c89a612418e0f49b7e6ae29a678d2fc1ffaf3d/recipes/snazzy-theme"; + sha256 = "0srmhwhqrp1s01p1znhjzs254l3r2i6c91v7cnlwlvrls1sbh32k"; + name = "snazzy-theme"; + }; + packageRequires = [ base16-theme emacs ]; + meta = { + homepage = "https://melpa.org/#/snazzy-theme"; + license = lib.licenses.free; + }; + }) {}; snippet = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "snippet"; @@ -63891,6 +65016,27 @@ license = lib.licenses.free; }; }) {}; + snoopy = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "snoopy"; + version = "20171008.1304"; + src = fetchFromGitHub { + owner = "anmonteiro"; + repo = "snoopy-mode"; + rev = "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386"; + sha256 = "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4a882cd92964ac195a09469006c9a44dc202f000/recipes/snoopy"; + sha256 = "1wa8jykqyj6rxqfhwbiyli6yh8s7n0pqv7fc9sfaymarda93zbgi"; + name = "snoopy"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/snoopy"; + license = lib.licenses.free; + }; + }) {}; socyl = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, s }: melpaBuild { pname = "socyl"; @@ -63975,15 +65121,36 @@ license = lib.licenses.free; }; }) {}; + solaire-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "solaire-mode"; + version = "20170823.422"; + src = fetchFromGitHub { + owner = "hlissner"; + repo = "emacs-solaire-mode"; + rev = "c8da9d228003b88ea31f80e7223608b119d41848"; + sha256 = "0v0vzxzfxh3pqq9hs52bkgyny3vwzas2qpk5pbpzim3zg3lia35r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/52c69070eef3003eb53e1436c538779c74670ce6/recipes/solaire-mode"; + sha256 = "0pvgip12xl16rwz4wqmqjd8nhh3a299aknfsghazmxigamlmlsl5"; + name = "solaire-mode"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/solaire-mode"; + license = lib.licenses.free; + }; + }) {}; solarized-theme = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "solarized-theme"; - version = "20161222.109"; + version = "20170924.1440"; src = fetchFromGitHub { owner = "bbatsov"; repo = "solarized-emacs"; - rev = "dc80b1fe7c613d26b6357dbf447b593af6000ca6"; - sha256 = "0w0lxihnzkav8mab050s600p06f8cmvvdv84fnfzj8zmd2raifki"; + rev = "a2595627a793c57fa904ac210a6ca07fe1fef656"; + sha256 = "1q65mrarmqxsvc27flr6wy6v3yrmpw5i6hax95hh6y50zx3hfsd1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/solarized-theme"; @@ -63999,12 +65166,12 @@ solidity-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "solidity-mode"; - version = "20161017.1506"; + version = "20171001.926"; src = fetchFromGitHub { owner = "ethereum"; repo = "emacs-solidity"; - rev = "db392f96f8e892b7788ebe25819a8ec195bb376d"; - sha256 = "1x1ljbmrn06pbdcb7kjivbh2f2m29ivwa1ifl4lgi2rh884s27ma"; + rev = "d0a09c68912fcd03e384b0b2a9746f4e002d0df8"; + sha256 = "0zs16af2j6l0vypgikvs78x82cq8m5yfdfpi550cymkv7mjydj4v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bb9df5ec0692352b6494d435d11166f4ea26c99e/recipes/solidity-mode"; @@ -64020,12 +65187,12 @@ sonic-pi = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, highlight, lib, melpaBuild, osc }: melpaBuild { pname = "sonic-pi"; - version = "20170313.810"; + version = "20171011.503"; src = fetchFromGitHub { owner = "repl-electric"; repo = "sonic-pi.el"; - rev = "494981aa8f7828392a930ef8533698944738090e"; - sha256 = "1x9qn6b4nbld9v0r7vi3mg6w7nsa76pzyn1fl118n14a8kkc0is7"; + rev = "6b362bbdfacf7aabeb494c3e22f6fd3f48ca9738"; + sha256 = "0xk03swaclhm41vnwzmwil05mgabkb23lrp28wvl6qxzhd3hmrwq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/sonic-pi"; @@ -64104,12 +65271,12 @@ sotclojure = callPackage ({ cider, clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, sotlisp }: melpaBuild { pname = "sotclojure"; - version = "20160421.1811"; + version = "20170921.1708"; src = fetchFromGitHub { owner = "Malabarba"; repo = "speed-of-thought-clojure"; - rev = "8d879ef41c004726cca3c27a81b7543cc273c19b"; - sha256 = "13yn2yadkpmykaly3l3xsq1bhm4sxyk8k1px555y11qi0mfdcjhh"; + rev = "ceac82aa691e8d98946471be6aaff9c9a4603c32"; + sha256 = "1a6riq7ksk5m76dsgc75d8b992nyr50l48l8cpms9064m6b0r9jv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3a2ccef8af91eada4449d9cd4bda6bd28272722e/recipes/sotclojure"; @@ -64125,12 +65292,12 @@ sotlisp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sotlisp"; - version = "20161012.1217"; + version = "20170429.1945"; src = fetchFromGitHub { owner = "Malabarba"; repo = "speed-of-thought-lisp"; - rev = "fffe8d0b42b143a2e7df0470d9049fa57b6ecac5"; - sha256 = "0j5zwb1ypqps30126w2684lmjh8ia4qxg8inlajcbv8i3pbai7k6"; + rev = "89dfed2b5d2e9a3b16bfc47f169412b583626059"; + sha256 = "17g03bfaq98ncd95qwms18pdrn5jphq7g2g606pymf10qr62g3n2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/sotlisp"; @@ -64276,27 +65443,6 @@ license = lib.licenses.free; }; }) {}; - sourcetalk = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, request }: - melpaBuild { - pname = "sourcetalk"; - version = "20140823.739"; - src = fetchFromGitHub { - owner = "malroc"; - repo = "sourcetalk_emacs"; - rev = "aced89fa8776e6d5e42dad4a863e159959f08de6"; - sha256 = "0j4qm1y7rhb95k1zbl3c60a46l9rchzslzq36mayyw61s6yysjnv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e51aed64ffd0d2583c54035bd3e822f8adbaedde/recipes/sourcetalk"; - sha256 = "0qaf2q784xgl1s3m88jpwdzghpi4f3nybga3lnr1w7sb7b3yvj3z"; - name = "sourcetalk"; - }; - packageRequires = [ request ]; - meta = { - homepage = "https://melpa.org/#/sourcetalk"; - license = lib.licenses.free; - }; - }) {}; sourcetrail = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sourcetrail"; @@ -64342,12 +65488,12 @@ spaceline = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline, s }: melpaBuild { pname = "spaceline"; - version = "20170102.59"; + version = "20171016.157"; src = fetchFromGitHub { owner = "TheBB"; repo = "spaceline"; - rev = "75cc751c3da252bd84f33b12daf11655a9f98fa6"; - sha256 = "1jn3qjxjhbgjixxny1n68ha80c2zqmfrj24ws7ni4zia264phxs0"; + rev = "251d92ef77ed4daa798e3300e5c671052870827e"; + sha256 = "13mnsvlncrzsh2q8xhx5ippvhlrk9sgsrbpcihk0m90d2bxj53qy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/46e4c876aeeb0bb0d0e81dcbb8363a5db9c3ff61/recipes/spaceline"; @@ -64360,22 +65506,22 @@ license = lib.licenses.free; }; }) {}; - spaceline-all-the-icons = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, spaceline }: + spaceline-all-the-icons = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, spaceline }: melpaBuild { pname = "spaceline-all-the-icons"; - version = "20170417.105"; + version = "20170829.120"; src = fetchFromGitHub { owner = "domtronn"; repo = "spaceline-all-the-icons.el"; - rev = "26a9e571122aed17318948f677827068e13cb216"; - sha256 = "0bpy812hlnmjracnz66xb9v4xd8m1sxizls7nhhpi68i870q2449"; + rev = "e2e195f64a541d72b6d0ba0451f1e3072234b820"; + sha256 = "0lrf62gsss19z2ca4hg5c08b3nbkqaa33fqrbfa126v2c98bj583"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d039e057c1d441592da8f54e6d524b395b030375/recipes/spaceline-all-the-icons"; sha256 = "1h6clkr2f29k2vw0jcrmnfbjpphaxm7s3zai6pn6qag32bgm3jq6"; name = "spaceline-all-the-icons"; }; - packageRequires = [ all-the-icons emacs spaceline ]; + packageRequires = [ all-the-icons emacs memoize spaceline ]; meta = { homepage = "https://melpa.org/#/spaceline-all-the-icons"; license = lib.licenses.free; @@ -64384,12 +65530,12 @@ spacemacs-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "spacemacs-theme"; - version = "20170305.506"; + version = "20171020.531"; src = fetchFromGitHub { owner = "nashamri"; repo = "spacemacs-theme"; - rev = "9358c37ee9c90a3d13a43afcd6917fea8eef144b"; - sha256 = "1k711ppzkd9c5ial8cs0aazsi0zig6r9acmbhr0h9zizbrsw5sl1"; + rev = "0a5a745c209daafc0e60b8db92993802a9c05fb8"; + sha256 = "1wnf0jwdavkpv3xz2mni7n29qfp60i28530hmaimlk8mnhb2x94k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6c8ac39214856c1598beca0bd609e011b562346f/recipes/spacemacs-theme"; @@ -64405,12 +65551,12 @@ spaces = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "spaces"; - version = "20130610.49"; + version = "20170809.1508"; src = fetchFromGitHub { owner = "chumpage"; repo = "chumpy-windows"; - rev = "164be41b588b615864258c502583100d3ccfe13e"; - sha256 = "069aqyqzjp5ljqfzm7lxkh8j8firk7041wc2jwzqha8jn9zpvbxs"; + rev = "6bdb51e9a346907d60a9625f6180bddd06be6674"; + sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fa5d57074f73cf11607f2f1610f92a0c77367f2a/recipes/spaces"; @@ -64468,12 +65614,12 @@ sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sparql-mode"; - version = "20170313.721"; + version = "20171030.528"; src = fetchFromGitHub { owner = "ljos"; repo = "sparql-mode"; - rev = "33da09b3895e03e64959005678d448ab82e527b6"; - sha256 = "17fpfc0hc39y9h12mj62fwfga4mhk0c9fm2qnbnzf4i3ajhp7r2w"; + rev = "e220a0c0c478fee0be3622442651981cdd82090c"; + sha256 = "1k1ih6y9yq1fx13863yacx69v6f77b8xhkrx5i2dpm4h7wki1dg4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode"; @@ -64486,33 +65632,15 @@ license = lib.licenses.free; }; }) {}; - speck = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "speck"; - version = "20160717.951"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/speck.el"; - sha256 = "0zn7gjrga1ly1za04jd4s61m1dwkyy960x7g3x9hn4szqvpcsvfa"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/speck"; - sha256 = "06x5543pwqazs4airj43208caw3sxw7zb148njbn33qgl09r1iv6"; - name = "speck"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/speck"; - license = lib.licenses.free; - }; - }) {}; speech-tagger = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "speech-tagger"; - version = "20160224.2"; + version = "20170728.1129"; src = fetchFromGitHub { owner = "cosmicexplorer"; repo = "speech-tagger"; - rev = "60ce97b0fc34eb32f507957646679fff77b5f0fd"; - sha256 = "0v4v2nr680zgljr9k7rgf7mhy49bv5ixc8ksba3g1bbrz0qv5ny6"; + rev = "61955b40d4e8b09e66a3e8033e82893f81657c06"; + sha256 = "07rgs1f9z2ayphv04jdjk9v1s2s47qvksf64z6qn1zss2alc0y0v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/db80aa5d95846ee02a9d762aa68325ab5e37dcf7/recipes/speech-tagger"; @@ -64552,8 +65680,8 @@ src = fetchFromGitHub { owner = "parkouss"; repo = "speed-type"; - rev = "5d691f57743304db63b6afdc5bd79dabd282d390"; - sha256 = "08qp2b80rh9k8h5vv141lfsg73rqqikhh7ygal789rr278ai1rjf"; + rev = "9940383d94688e7f130b01f9872182ab59edf00f"; + sha256 = "0gfiw3rmqyargc1prkrglmzvzxm03nszqqba1q9zd7cs0m315pmm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d6c33b5bd15875baea0fd2f24ee8ec9414a6f7aa/recipes/speed-type"; @@ -64611,12 +65739,12 @@ sphinx-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sphinx-mode"; - version = "20160911.558"; + version = "20170607.1436"; src = fetchFromGitHub { owner = "Fuco1"; repo = "sphinx-mode"; - rev = "7db516b8b985cf209b6430b032cd0457af83b72b"; - sha256 = "0a3vgkp65hpc1a5h79yl0pc02lr6w299wd2fs9cgn8nvbdrip5ij"; + rev = "0a9fcd60639f1f4235b4747e8449b9f48651705f"; + sha256 = "05kn45gh4l1wrj06qb3qzphx8mfqn3zqb8v73awhn5p7a1asb8kr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/sphinx-mode"; @@ -64632,12 +65760,12 @@ spice-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "spice-mode"; - version = "20160919.330"; + version = "20171027.2343"; src = fetchFromGitHub { owner = "stardiviner"; repo = "spice-mode"; - rev = "1dcaa4b4cd1527cf15bfc6dfc278c574359a5062"; - sha256 = "0ngfyxpvwgyqh99vjr2msqan0hma1qlljkx971qjxcpn0y80dj23"; + rev = "702bf2d5c3561be44771ea77b476532d32068504"; + sha256 = "1wqcy9nmhpl3vyasvc79msgd25xbbzva9nbxkdrsbpg07p1is9ik"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/spice-mode"; @@ -64695,12 +65823,12 @@ splitter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "splitter"; - version = "20130705.50"; + version = "20170809.1508"; src = fetchFromGitHub { owner = "chumpage"; repo = "chumpy-windows"; - rev = "164be41b588b615864258c502583100d3ccfe13e"; - sha256 = "069aqyqzjp5ljqfzm7lxkh8j8firk7041wc2jwzqha8jn9zpvbxs"; + rev = "6bdb51e9a346907d60a9625f6180bddd06be6674"; + sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/129f0d20616226c449bdaf672c43a06e8f281869/recipes/splitter"; @@ -64923,27 +66051,6 @@ license = lib.licenses.free; }; }) {}; - sql-mssql = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sql-mssql"; - version = "20160512.137"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "sql-mssql"; - rev = "f8a7f16720fbc7480a7ae83e21958860f66c1ccf"; - sha256 = "02jsz69j1mi082s0xfk99qrm6wskdfz20na3jc7c35f564l493hs"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f4df28e4f5fe01a7c4e02744c4a335047779fe1d/recipes/sql-mssql"; - sha256 = "15z60d2244mxhigr52g332qzjj5ygqyl1i6c19q6vfv2z2vcvy7x"; - name = "sql-mssql"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/sql-mssql"; - license = lib.licenses.free; - }; - }) {}; sqlite = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sqlite"; @@ -64965,33 +66072,15 @@ license = lib.licenses.free; }; }) {}; - sqlplus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "sqlplus"; - version = "20161110.758"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/sqlplus.el"; - sha256 = "04wqy4ss6499rpn0rnczmn39yi78xkqslblyq4xb700xzmzn7sg3"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/41b1fc299cf8eeba1916a58ad8f50eb4560f0252/recipes/sqlplus"; - sha256 = "1z9pf36b1581flykis9cjv7pynnp94fm4ijzjy6hvqyj81aikxpz"; - name = "sqlplus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sqlplus"; - license = lib.licenses.free; - }; - }) {}; sqlup-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sqlup-mode"; - version = "20161207.2044"; + version = "20170610.837"; src = fetchFromGitHub { owner = "Trevoke"; repo = "sqlup-mode.el"; - rev = "81ad4ec3ca58172a3c261acf4973ec767693d0ef"; - sha256 = "02438pr144952ragf1ph4qd43kpzalbp6c5qpl725rwqxjh7bf8s"; + rev = "04970977b4abb4d44301651618bbf1cdb0b263dd"; + sha256 = "14s66xrabj269z7f94iynsla96bka7zac011psrbcfyy4m8mlamz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/sqlup-mode"; @@ -65049,12 +66138,12 @@ ssass-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ssass-mode"; - version = "20170310.2024"; + version = "20170817.1216"; src = fetchFromGitHub { owner = "AdamNiederer"; repo = "ssass-mode"; - rev = "c26852123436849367d826c370f24dd9f20cb501"; - sha256 = "05wk2jfvzpzjpqz5vmv8b1yz8nnnix6lv9rh66vgddm794j92dkd"; + rev = "d17d2de381ffc96e62e77435fb7b387bf59aceec"; + sha256 = "1vw2mzn8yczgyspgmv4f621d7h10qxa8hfzalb14bvwqn4h37spy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3137f98aaa871a52f477b63d9c3b7b63f7271344/recipes/ssass-mode"; @@ -65091,12 +66180,12 @@ ssh-agency = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ssh-agency"; - version = "20170205.1306"; + version = "20170807.1152"; src = fetchFromGitHub { owner = "magit"; repo = "ssh-agency"; - rev = "94abffa716aff963175196066526c7ee8b4efae7"; - sha256 = "1r41hgh0kaf9x56jllqjz7f9ypzgyf9pqqpm3r49xyi8fr1drbxc"; + rev = "e572e031852561f98a7053afcdc9a3796dde2137"; + sha256 = "0z2ywkiwv983vz4bk5vc62p3xapp15a4715l9sp5c8x70nlq02y3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9a9e4bd0205908bfb99762c7daaf3be276bb03a/recipes/ssh-agency"; @@ -65112,16 +66201,16 @@ ssh-config-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ssh-config-mode"; - version = "20170413.918"; + version = "20170803.1039"; src = fetchFromGitHub { owner = "jhgorrell"; repo = "ssh-config-mode-el"; - rev = "082219f18f34d146e3b6ced175c912f2da31220d"; - sha256 = "1035r0msl7av5g0hkn69784zdqvpamplvzgn06yzjsnf0bfbsdl5"; + rev = "c6dc66b6678605f0df8eb61778b10ae21eb7caf5"; + sha256 = "05pdz6117m78zfvxi9mskw8svx4bs5k3bpv9nk9mzg9n0zw8algy"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce38cac422ad82f8b77a1757490daa1f5e284b0/recipes/ssh-config-mode"; - sha256 = "0aihyig6q3pmk9ld519f4n3kychrg3l7r29ijd2dpvs0530md4wb"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/750b16ee631b4c2014f2ebf767609bab4b8ee421/recipes/ssh-config-mode"; + sha256 = "1jlaf1bipmf51552jyp2ax6n4gwg38n2348kyxlwd7d8vwsibbpq"; name = "ssh-config-mode"; }; packageRequires = []; @@ -65133,12 +66222,12 @@ ssh-deploy = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ssh-deploy"; - version = "20170315.844"; + version = "20171031.2204"; src = fetchFromGitHub { owner = "cjohansson"; repo = "emacs-ssh-deploy"; - rev = "4c1a539e6f95e4847c13685d2b752e40d2b8aad8"; - sha256 = "1zkxiy66d34v09krfajx6y8i2s5jdp99sxfzbvzi854s9hldl58x"; + rev = "5cd1f8080fefb64e6eaa1098cc191db6abb97e23"; + sha256 = "0pn9wf4svka3rxzy09jarjp3ycz2bvm39898qaikjf0dwaydlqlw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ssh-deploy"; @@ -65238,12 +66327,12 @@ standoff-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "standoff-mode"; - version = "20170214.1713"; + version = "20170609.134"; src = fetchFromGitHub { owner = "lueck"; repo = "standoff-mode"; - rev = "a1bea7231a6d25fc05f88c9af588538fea664caa"; - sha256 = "0cxnph1n1f77xhdafl5glmgqysg89k4lk2fy8384gbyhamfj95v4"; + rev = "b194fde6bf31ddc77409275e134aacba27e88043"; + sha256 = "0l48dij62d5cvw7kry0739i8zixkbmj80ghhixb30l6g0wg8k48g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/98858a45f72c28eec552b119a66479ea99b60f93/recipes/standoff-mode"; @@ -65343,12 +66432,12 @@ steam = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "steam"; - version = "20160427.231"; + version = "20171008.1327"; src = fetchFromGitHub { owner = "Kungsgeten"; repo = "steam.el"; - rev = "a0547487ccf40aa582af3dd0d433a1b153d25246"; - sha256 = "142jamr8mi1nkjvivvkh2qgh5fch89xpg5wwi8q0b6hcqcsy8nqn"; + rev = "476da75cce7def2f3323e4a112a500728178e71e"; + sha256 = "1d23m611p001i846ypv9mz78hqn4wmjnh6cwa2yif9h6m44g1dsf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/25a45eb6297168cd0ce4c4db5574362addad5c69/recipes/steam"; @@ -65403,43 +66492,6 @@ license = lib.licenses.free; }; }) {}; - stgit = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "stgit"; - version = "20140213.348"; - src = fetchgit { - url = "git://repo.or.cz/stgit.git"; - rev = "90d50ad4a78c06f99fbf185aeb3322d1502a016e"; - sha256 = "0gh15q04dl0cgnabxjr3sgzkm31m9ls3r0d9ha7vs710wiffpbqx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4ed7cc025d22d8e1e63464e43f733c78421c91c7/recipes/stgit"; - sha256 = "102s9lllrcxsqs0lgbrcljwq1l3s8ri4276wck6rcypck5zgzj89"; - name = "stgit"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/stgit"; - license = lib.licenses.free; - }; - }) {}; - sticky = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "sticky"; - version = "20101129.1852"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/sticky.el"; - sha256 = "18izyia1j3w2c07qhkp9h6rnvw35m5k1brrrjhm51fpdv2xj65fy"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1c3a9689703b8c8edbffdc966cded9ea98fc8762/recipes/sticky"; - sha256 = "1xjkdwphq3m4jrazsfnzrrcrqikfdxzph3jdzkpbzk3grd4af96w"; - name = "sticky"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sticky"; - license = lib.licenses.free; - }; - }) {}; stickyfunc-enhance = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "stickyfunc-enhance"; @@ -65548,12 +66600,12 @@ string-inflection = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "string-inflection"; - version = "20161220.1825"; + version = "20170419.1638"; src = fetchFromGitHub { owner = "akicho8"; repo = "string-inflection"; - rev = "f11e732a582419e14a36c53130dd3a7b2c9da8c5"; - sha256 = "1sq7h58v61cdyca5kfhf9rf3ybj25zgbhfdvb29qd7b2b33px7a5"; + rev = "297aaf68e666381521b02d433fcd28d8b51c48de"; + sha256 = "1621lwda3j3pwfxqwfa2gp4fxz869bc0ib87v71mrab8p1qsdizg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5c2e2b6dba8686236c2595475cfddac5fd700e60/recipes/string-inflection"; @@ -65587,24 +66639,6 @@ license = lib.licenses.free; }; }) {}; - strings = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "strings"; - version = "20170307.1533"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/strings.el"; - sha256 = "08sq20ys4xkkg11jyrnlzibl5v73i7zlnj28ygivy3sqvp07z7iz"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/strings"; - sha256 = "0n3239y7biq3rlg74m7nqimhf654w4snnw2zm7z84isgwzz2dphk"; - name = "strings"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/strings"; - license = lib.licenses.free; - }; - }) {}; stripe-buffer = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "stripe-buffer"; @@ -65649,11 +66683,11 @@ stupid-indent-mode = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "stupid-indent-mode"; - version = "20130816.1354"; + version = "20170525.417"; src = fetchgit { url = "https://gist.github.com/5487564.git"; - rev = "e26ff5a2c4a582c6c1940bbcd204cfeed8e65222"; - sha256 = "0sw7r4sbg0vmm7gqisjdp1wansn9k64djz3p83fwmyq3qkj90ar4"; + rev = "3295e7de5e2cfddc3bf0e462e852bf58972f5d70"; + sha256 = "00js2jkzvmvh1gbraijknv48y86pqyk9zv264a5n3l4sw5q6kcvk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/68cd648bde8028a39849f7beae8deae78bfb877b/recipes/stupid-indent-mode"; @@ -65774,12 +66808,12 @@ sublime-themes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sublime-themes"; - version = "20160111.122"; + version = "20170606.1144"; src = fetchFromGitHub { owner = "owainlewis"; repo = "emacs-color-themes"; - rev = "4648b68e96bfde26d6e4af9f919971eef2768e5f"; - sha256 = "0q9p974xvswr2sijz1rs858x9sdx0rb00lkhj5cd90abn33lb260"; + rev = "60ee40af82eb55b79d5ed4026f1911326311603f"; + sha256 = "17fcqvavgyl9cmv1hwcid2bw513vhawlsmac1w2adiz567594i6h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/648d250c7d341b31581c839f77c1084ac29d3163/recipes/sublime-themes"; @@ -65792,96 +66826,36 @@ license = lib.licenses.free; }; }) {}; - sublimity = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + sublimity = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sublimity"; - version = "20161214.2032"; + version = "20170820.827"; src = fetchFromGitHub { owner = "zk-phi"; repo = "sublimity"; - rev = "033c7c04e47e7666afd125a72467c3eb657732d9"; - sha256 = "073c4bbxkmq7cifzwn933qxkqvklcbg3gh9vm5hr3af9j7vpx2ac"; + rev = "62b0c526c599a0178a16a75f16513fc1f93a0d53"; + sha256 = "0kncjm6133a84z9rvygn5dqnwdj036sw6cf1pi595rk3f9r2ccg5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c1e78cd1e5366a9b6d04237e9bf6a7e73424be52/recipes/sublimity"; sha256 = "1xwggaalad65cxcfvmy30f141bxhpzc3fgvwziwbzi8fygbdv4nw"; name = "sublimity"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/sublimity"; license = lib.licenses.free; }; }) {}; - subr-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "subr-plus"; - version = "20170307.1534"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/subr+.el"; - sha256 = "191yqzkvvfnx8hx19ak20dvm9qjcm5r5yqcmnzw6nsc53m2pdwbx"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/subr+"; - sha256 = "17i5sgsv8clh3pzpkv5zvhmm584m1rvsypd6nh6ks2jpidwgs8x1"; - name = "subr-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/subr+"; - license = lib.licenses.free; - }; - }) {}; - subshell-proc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "subshell-proc"; - version = "20130122.1322"; - src = fetchFromGitHub { - owner = "andrewmains12"; - repo = "subshell-proc"; - rev = "d18b20e03fc89ee08e8c6a968aba31a16b53287f"; - sha256 = "09izm28jrzfaj469v6yd1xgjgvy6pmxarcy0rzn2ihn3c0z7mdg4"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/subshell-proc"; - sha256 = "1ma5i4ka48w46ksxyppjnyq2ka03b2ylsmw3jv1hp35f3ycqpbqp"; - name = "subshell-proc"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/subshell-proc"; - license = lib.licenses.free; - }; - }) {}; - sudden-death = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sudden-death"; - version = "20140829.538"; - src = fetchFromGitHub { - owner = "yewton"; - repo = "sudden-death.el"; - rev = "beba6b4fb42b1e27575d3f722d23a0eb19666736"; - sha256 = "1007xz4x1wgvxilv1qwf0a4y7hd7sqnnzwk2bdr12kfk7vq9cw2b"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/24c94bff44029b6493575a9e09d7deb78db095a9/recipes/sudden-death"; - sha256 = "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh"; - name = "sudden-death"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sudden-death"; - license = lib.licenses.free; - }; - }) {}; sudo-edit = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sudo-edit"; - version = "20170201.916"; + version = "20170803.2052"; src = fetchFromGitHub { owner = "nflath"; repo = "sudo-edit"; - rev = "615f6c073e42d433e79ae5a63210e2e04357a4c8"; - sha256 = "0k3ldywy1g6672hhasqmj1rvzrs0cmd3nzxkb688vw6mhzxfzld4"; + rev = "bcb12aaa0da0c56d851cfa2f1b3ea4afdd2a755b"; + sha256 = "1k6sx8k304dw9dlidnxcln9ip9cj3b6i196z98g9n0kcd1js9f99"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3b08d4bbdb23b988db5ed7cb5a2a925b7c2e242e/recipes/sudo-edit"; @@ -65939,12 +66913,12 @@ suggest = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, loop, melpaBuild, s }: melpaBuild { pname = "suggest"; - version = "20170326.321"; + version = "20171016.1420"; src = fetchFromGitHub { owner = "Wilfred"; repo = "suggest.el"; - rev = "2f8e52d9d34535899292799778fc1242342b64d9"; - sha256 = "18vpr0k3pd4cvmxaxhvl8abz78fpni8vk3mws89grjbb3fc4b17i"; + rev = "345e00569333095eb24e61239a80b0f0c77b2d11"; + sha256 = "0npqvhnfmrx7jq1slz489rh2l4rnfhqhbi6ybdzw5rism8r3jqwb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9fd27e812549587dc2ec26bb58974177ff263ff/recipes/suggest"; @@ -65960,12 +66934,12 @@ suggestion-box = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "suggestion-box"; - version = "20160927.1530"; + version = "20170830.107"; src = fetchFromGitHub { owner = "yuutayamada"; repo = "suggestion-box-el"; - rev = "90452d71e4afe9f42ee975f2f7897835cf3dee87"; - sha256 = "1bcmhbx4l4x01n2vpcyw8wyp3cklzp65v5d4sx284qj5gd64i1p4"; + rev = "50af0776c8caf3c79c4d37fd51cbf304ea34b68e"; + sha256 = "01lx20kzay5504xcq6m6yhvayyd7wpzaa1r6i67xqjnr25lqyajw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b59be8dc0a1850d3e245957fd170e1d01f4e284/recipes/suggestion-box"; @@ -65978,21 +66952,24 @@ license = lib.licenses.free; }; }) {}; - summarye = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "summarye"; - version = "20130328.327"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/summarye.el"; - sha256 = "0q5m8d6p9aqbfx17zgznkqw2jgh027xix4894wrdz91670zxd3py"; + sunburn-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "sunburn-theme"; + version = "20171021.1407"; + src = fetchFromGitHub { + owner = "mvarela"; + repo = "Sunburn-Theme"; + rev = "566280a981097b89b19c4bba921f568c77212db6"; + sha256 = "08a3js02zxqgxrk4afr2n39jf34pnv9mwiykysbhf560blq8gha2"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/85e28911e6b8173188f45331c6540681691223f2/recipes/summarye"; - sha256 = "1znd96ixg1n90yjiny84igb7m8qsbiibn7s6bky8g6n2k7zzmq65"; - name = "summarye"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/bfd68b90234222dbf5907a29d506b6c4e61a372b/recipes/sunburn-theme"; + sha256 = "09shmaaii0lfd52v49cazn91sj4jz2siqbanw682vi7zsl79jx9f"; + name = "sunburn-theme"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/summarye"; + homepage = "https://melpa.org/#/sunburn-theme"; license = lib.licenses.free; }; }) {}; @@ -66041,12 +67018,12 @@ suomalainen-kalenteri = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "suomalainen-kalenteri"; - version = "20151129.304"; + version = "20170801.126"; src = fetchFromGitHub { owner = "tlikonen"; repo = "suomalainen-kalenteri"; - rev = "f5907236ce4da372325fce8b3ce429defa5b0f5a"; - sha256 = "1f16ds671mp8jwkkhvpbdqkk3jji96q9ipjlr8ij9vglp2arvslg"; + rev = "c702e33cb6e13cb28bd761844e95be112a3c04f3"; + sha256 = "13avc3ba6vhysmhrcxfpkamggfpal479gn7k9n7509dpwp06dv8h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/181adf1b16253481674663fd28b195172231b7da/recipes/suomalainen-kalenteri"; @@ -66062,12 +67039,12 @@ super-save = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "super-save"; - version = "20160426.729"; + version = "20171008.3"; src = fetchFromGitHub { owner = "bbatsov"; repo = "super-save"; - rev = "701c98eef4b9b21cd6cfd31f190f9988d32353aa"; - sha256 = "1frm90kssrp4s6x0g4vq4jkssh8rnrfjbgwa05igsjnsbnnfxxd1"; + rev = "1c8fbd5e18277e4af0ada2678a854b1c9072db38"; + sha256 = "0mh7xp71l9xybbv17b1rsbpa60bwjw79ql9krj1kzy2c2pv9hmff"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9730b65787b26d3909952cf246a01bd349e5fbab/recipes/super-save"; @@ -66108,8 +67085,8 @@ src = fetchFromGitHub { owner = "TheSuspiciousWombat"; repo = "SusColors-emacs"; - rev = "8f5cdf8de5e58db838ef0e803b60b7d74fc2a889"; - sha256 = "1wc4l7zvb8zmh48cgrl7bkbyfj0sflzq28sc8jssghkcl2735cbg"; + rev = "b946e7924aa02fa7441c970026898f17fe97601f"; + sha256 = "0553fgiyjy2n3wa2agwzvadf6il85waf2vjpsy75ljj6lw8glhka"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/suscolors-theme"; @@ -66209,16 +67186,16 @@ swbuff = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "swbuff"; - version = "20160824.707"; + version = "20041012.18"; src = fetchFromGitHub { owner = "emacsorphanage"; repo = "swbuff"; - rev = "8d5b2bec12503509554f9dd83b97c198b259db2b"; - sha256 = "0h96pwvf1smd2kakd5ydsn6q59dv9sj706p1ak86aj82m028wzk5"; + rev = "dcde4ddc7beafef3150e8c645724bdbbf8596028"; + sha256 = "1hxwa3hdhdx3ikfkblda748assm0k5mgwpdjv3jif37n0lw0f435"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a44a6577740b98749fe2703b32d70f15a473eb46/recipes/swbuff"; - sha256 = "0pi816ljprpl8p2pigfyzm9ripvrc4hvnpkjdsg30mw8iyrk66yn"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/39e87d0e01a4a836671b6d6e22091df6ebecf566/recipes/swbuff"; + sha256 = "1bqnq6zxkq4yyq3khnkbprgwq5k93rpcmmkjbr9wqf9drfld1bkk"; name = "swbuff"; }; packageRequires = []; @@ -66227,24 +67204,6 @@ license = lib.licenses.free; }; }) {}; - swbuff-x = callPackage ({ fetchurl, lib, melpaBuild, swbuff }: melpaBuild { - pname = "swbuff-x"; - version = "20130607.314"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/swbuff-x.el"; - sha256 = "1fkicyjvanh8yk2y27sq075sarcyqhsdz0r4xhillpnv34ji98r5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/42bac16fa83eb3df693835326444f4bd4255cf1d/recipes/swbuff-x"; - sha256 = "1wglcxgfr839lynwsl8i7fm70sxxjidy3ib6ibz0kgiwr41rh49y"; - name = "swbuff-x"; - }; - packageRequires = [ swbuff ]; - meta = { - homepage = "https://melpa.org/#/swbuff-x"; - license = lib.licenses.free; - }; - }) {}; sweetgreen = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, request }: melpaBuild { pname = "sweetgreen"; @@ -66266,22 +67225,22 @@ license = lib.licenses.free; }; }) {}; - swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "swift-mode"; - version = "20170224.1825"; + version = "20170918.51"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "swift-mode"; - rev = "e91e924c225b7bfb7aa6e4a84b5d379c6268014a"; - sha256 = "0nfh5a3lnrj9z1qfgdn28mk5f9cn5fzpdjvpcv44kab3dff2irnl"; + rev = "e8d9a5d7af59e8be25997b8b048d7c3e257cd0b0"; + sha256 = "035478shf1crb1qnhk5rmz08xgn0z2p6fsw0yii1a4q5f3h85xrc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode"; sha256 = "1imr53f8agfza9zxs1h1mwyhg7yaywqqffd1lsvm1m84nvxvri2d"; name = "swift-mode"; }; - packageRequires = [ emacs ]; + packageRequires = [ emacs seq ]; meta = { homepage = "https://melpa.org/#/swift-mode"; license = lib.licenses.free; @@ -66311,12 +67270,12 @@ swiper = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "swiper"; - version = "20170410.24"; + version = "20170926.937"; src = fetchFromGitHub { owner = "abo-abo"; repo = "swiper"; - rev = "a3abf3ffd670776da591ae9e5e2d7011b6d6a190"; - sha256 = "1jn7lry6fdnv9m24m4i5fgvz0qywcx3r08a36l2y1ksb125vank8"; + rev = "96663b77945ab21e4e1b0aab690fc2e926f01f9c"; + sha256 = "0r691dzs77zdkvjzb787kjg8zvvba8gdj2da9zjb14m4nyjmg9d9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e64cad81615ef3ec34fab1f438b0c55134833c97/recipes/swiper"; @@ -66353,11 +67312,11 @@ switch-buffer-functions = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "switch-buffer-functions"; - version = "20160702.2157"; + version = "20171011.1004"; src = fetchFromGitHub { owner = "10sr"; repo = "switch-buffer-functions-el"; - rev = "4778a2bc9ecfb71bb2b6a65c7108260ec8f30a37"; + rev = "651696ef9dec7affbe51c81d9318288376c35899"; sha256 = "0xv57imh6w6kbh1i1ib9k9x2h01l4vdxs2i667a76ym6dmsjbx2x"; }; recipeFile = fetchurl { @@ -66374,12 +67333,12 @@ switch-window = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "switch-window"; - version = "20160229.334"; + version = "20170718.1932"; src = fetchFromGitHub { owner = "dimitri"; repo = "switch-window"; - rev = "c1bbe51573a19ff6adae8531bf20601e5da5f7db"; - sha256 = "09ba45zbya2a72prq13pjg9pgbs86c6kayf8q2papvr9f5yv57xa"; + rev = "67113287ba61ce1951363a49f54148743dcea51e"; + sha256 = "06s1zdy2mlw63w3rnyja9jkvq4m5b46mvi8qjwxcpgqjdihj6f6m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d2204e3b53ade1e400e143ac219f3c7ab63a1e9/recipes/switch-window"; @@ -66437,12 +67396,12 @@ sx = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, json ? null, let-alist, lib, markdown-mode, melpaBuild }: melpaBuild { pname = "sx"; - version = "20161222.1205"; + version = "20170521.1832"; src = fetchFromGitHub { owner = "vermiculus"; repo = "sx.el"; - rev = "de73e993930f910862698727b5c0d93a1f656deb"; - sha256 = "03dah9rn6ray0c65rkqcmak77b1hgyi2fc1nqgb5vfgf65jk7z7c"; + rev = "8f1e3346286cfa5a5299ef192cc5aca3f37a7745"; + sha256 = "1ans6l0rv71w2vq0v4137jr0jhgzhkk62l7cq6b5m83v4ld9gr09"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f16958a09820233fbe2abe403561fd9a012d0046/recipes/sx"; @@ -66458,12 +67417,12 @@ symbol-overlay = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "symbol-overlay"; - version = "20170417.116"; + version = "20171031.658"; src = fetchFromGitHub { owner = "wolray"; repo = "symbol-overlay"; - rev = "3fd1607725ac8163b38f9f60142af7764afbd1e1"; - sha256 = "02pq1gnmg87brdbhzjvb0dx4mm0m28rrnf07p11d0k9hscpg6ln4"; + rev = "6076319f57a7e8dbf2fe11250def5a3fa3c0c854"; + sha256 = "11ny21rbczmkc7ni3kfw94dyc70bxwzn35f9gryxn1ppw48c7zsx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c2a468ebe1a3e5a35ef40c59a62befbf8960bd7b/recipes/symbol-overlay"; @@ -66581,33 +67540,15 @@ license = lib.licenses.free; }; }) {}; - synonyms = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "synonyms"; - version = "20170307.1537"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/synonyms.el"; - sha256 = "0456mmp3niljpghqcngknqkrxmpkba3n95ab4pf0b0021z2zjyxk"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/synonyms"; - sha256 = "1b000scgba310i7w27c8wj0iflqqgwik524ql084wpqvikwqnlzm"; - name = "synonyms"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/synonyms"; - license = lib.licenses.free; - }; - }) {}; synosaurus = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "synosaurus"; - version = "20160812.723"; + version = "20170621.957"; src = fetchFromGitHub { owner = "hpdeifel"; repo = "synosaurus"; - rev = "24d194992d9c57df29256257b80960fdb1c4c2a7"; - sha256 = "022fj1pfbjjl6khzmns9pwigwg1cll3vlccf48i8amk4n1m1wgmc"; + rev = "acc4c634eb7c7f6dd9bce8610efa7fc900e9c47b"; + sha256 = "0q8ggyfzvclgxvma2nvkfc89870hmii9cc8022ff0n7729rfj7m0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/synosaurus"; @@ -66641,22 +67582,22 @@ license = lib.licenses.free; }; }) {}; - syntactic-close = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + syntactic-close = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "syntactic-close"; - version = "20161213.735"; + version = "20171004.1037"; src = fetchFromGitHub { owner = "emacs-berlin"; repo = "syntactic-close"; - rev = "e03d1c8d09825377fcb6ae271c60a554f4d7a000"; - sha256 = "0l1ymn6ld15rvpkrz1pyq79c72y4rpc9wz99wfc791r30dqgvj2d"; + rev = "e2cd1f332d111b0e90d9a72f35bc969c7638b7cf"; + sha256 = "18fq9v1kb6bx0xxd1cic2f3gfwv82y4mjs5qg7q2ra1cz5d502w9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f2c15c0c8ee37a1de042a974c6daddbfa7f33f1d/recipes/syntactic-close"; sha256 = "19lrzxxyzdj1nrzdgzandjz3b8b4pw7akbv86yf0mdf023d9as1f"; name = "syntactic-close"; }; - packageRequires = []; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/syntactic-close"; license = lib.licenses.free; @@ -66703,36 +67644,15 @@ license = lib.licenses.free; }; }) {}; - syslog-mode = callPackage ({ fetchFromGitHub, fetchurl, hide-lines, lib, melpaBuild }: - melpaBuild { - pname = "syslog-mode"; - version = "20170107.1517"; - src = fetchFromGitHub { - owner = "vapniks"; - repo = "syslog-mode"; - rev = "e2ade4f27672a644fcb69ceaa8a08f04eaa2ccf2"; - sha256 = "0b3p91f44ghzlma3vw607fsvzzgrfjq4k3zchv0drlga2kv771vw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/478b307f885a06d9ced43758d8c117370152baae/recipes/syslog-mode"; - sha256 = "15kh2v8jsw04vyh2lmh1ndpxli3cwp6yq66hl8mwb1i3g429az19"; - name = "syslog-mode"; - }; - packageRequires = [ hide-lines ]; - meta = { - homepage = "https://melpa.org/#/syslog-mode"; - license = lib.licenses.free; - }; - }) {}; system-packages = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "system-packages"; - version = "20170311.2357"; + version = "20170831.1239"; src = fetchFromGitHub { owner = "jabranham"; repo = "system-packages"; - rev = "ebfb6f9eb46c006a4488c1fbf9f46de48f5a788a"; - sha256 = "199bmzxw6lrby6l9fgm01i92lvzzbz7sqpjrn9jjmpiwr718qxcf"; + rev = "ccc2a6b3794b6ada59905ee609fe9e1d973622aa"; + sha256 = "0hs00y8wvsagnc8ckd8izxvigsli7230hgxf5xmrdknj9h4icrgw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8c423d8c1ff251bd34df20bdb8b425c2f55ae1b1/recipes/system-packages"; @@ -66769,12 +67689,12 @@ systemd = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "systemd"; - version = "20170202.1844"; + version = "20171006.1352"; src = fetchFromGitHub { owner = "holomorph"; repo = "systemd-mode"; - rev = "4c1b2befd0c853dcc7bca52d9b084933c3a08254"; - sha256 = "1sdrga3mmajai2jcf4zpcii0l2b9wch8rhdsbjlzx76ia5snp23l"; + rev = "22f024fe8f433af7b6a6b99520cea1e766894fe5"; + sha256 = "11h1nr9gz0mw2gwlplv00i06s9ziw77a7zfcrrzd01rmanz1m4fa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca810e512c357d1d0130aeeb9b46b38c595e3351/recipes/systemd"; @@ -67041,12 +67961,12 @@ tangotango-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tangotango-theme"; - version = "20150702.104"; + version = "20170924.809"; src = fetchFromGitHub { owner = "juba"; repo = "color-theme-tangotango"; - rev = "08c3b9270547970dbce2cb1e35e66f6ae380c8b2"; - sha256 = "11xb7xpmxvgv7mrjd2vlbjz3h5fa541aydv6bdxngjq6y3qn6wsp"; + rev = "e2f2ea9c35f06dfc43a29c91c14cf0cdb19f2144"; + sha256 = "01gvsvha8z7pyr8c33gh3xmz47lh6b8g0nwf1gzdiw1gd0sfhs4z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ebfcfa3ba4ca77443667a9478d59214810cd8cc2/recipes/tangotango-theme"; @@ -67062,12 +67982,12 @@ tao-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tao-theme"; - version = "20170412.1916"; + version = "20170718.2306"; src = fetchFromGitHub { owner = "11111000000"; repo = "tao-theme-emacs"; - rev = "2ca07996e91636314aaf921edcba8191c03aabec"; - sha256 = "1ljif6cpygphl5y3cra9kxq0yahv445hsi388q4zp0qgq8pqslpx"; + rev = "321dad4278776b63f8dcd1e67ad387531c472ed4"; + sha256 = "0w78ssd5qj5a1l3yhi2r2dhmls5jfw2p3ic1iinsqwimkwmvh8aa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/94b70f11655944080507744fd06464607727ecef/recipes/tao-theme"; @@ -67083,12 +68003,12 @@ tawny-mode = callPackage ({ cider, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tawny-mode"; - version = "20160504.1046"; + version = "20170422.1502"; src = fetchFromGitHub { owner = "phillord"; repo = "tawny-owl"; - rev = "f7013f7e70da5d2fff2fcaf88c5edc2d807a022b"; - sha256 = "08l8c1kixx32zm7vvs4xy7zp53aqwlgx567hg7byqy8mqn3x0q8f"; + rev = "a8fc8300481a1e033a3811ccda54e552392d1689"; + sha256 = "1lkldr6rr21f97vp6kms2ha8hsszhmba4sn07is4k55lpvlnxd49"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ea9a114ff739f7d6f5d4c3167f5635ddf79bf60c/recipes/tawny-mode"; @@ -67251,12 +68171,12 @@ telephone-line = callPackage ({ cl-generic, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "telephone-line"; - version = "20161105.840"; + version = "20170831.1215"; src = fetchFromGitHub { owner = "dbordak"; repo = "telephone-line"; - rev = "44f296e6a16afdde97927c170c6dd0cdb3a3598b"; - sha256 = "16zjijz9syzbcxq1d4bx11kagxwhzygrlgdqvb443cch5s70n2n7"; + rev = "c17c71ae18ad54b8c3d1eddbe78ed82816d06186"; + sha256 = "1f5mlxjmyliz0ahcj6c3cypssrcp2ybhqpswzsqp5vqp75bc7ysz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c998b70365fb0a210c3b9639db84034c7d45097/recipes/telephone-line"; @@ -67356,12 +68276,12 @@ term-manager = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "term-manager"; - version = "20161110.1707"; + version = "20171020.141"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "term-manager"; - rev = "f29bced3ecdf23d999f55573894b1ec1e2a94fc9"; - sha256 = "1nkahsnwvmg1fv3qsdc49k5xick6wji3j6qffwfnpw1prx2n2a45"; + rev = "13a0f1637a1f075d70211ccb8162e63a18a474da"; + sha256 = "0hvn60wk3w27fjb023drnaw0gmys6ancha8blpl0r4vc5k203kcf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0b2f7d8c8fcbb535432f8e70729d69a572e49a1a/recipes/term-manager"; @@ -67374,22 +68294,22 @@ license = lib.licenses.free; }; }) {}; - term-plus = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + term-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "term-plus"; - version = "20160404.355"; + version = "20170508.1717"; src = fetchFromGitHub { owner = "tarao"; repo = "term-plus-el"; - rev = "f4a8c3aa616f21fa0b4381874149db3cf4e3a360"; - sha256 = "0ca82vj61inn41xzk36a91g73gpg38nya4r9ajc2ldjqa5z1zdj8"; + rev = "c3c9239b339c127231860de43abfa08c44c0201a"; + sha256 = "1mpv9vvvl1sh35vsa5415rvdv57mmbfix8s435q676zvhz3nl8yx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/term+"; sha256 = "12lvfspqmyrapmbz3x997vf160927d325y50kxdx3s6p81r7n2n8"; name = "term-plus"; }; - packageRequires = []; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/term+"; license = lib.licenses.free; @@ -67440,12 +68360,12 @@ term-projectile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, term-manager }: melpaBuild { pname = "term-projectile"; - version = "20161106.1419"; + version = "20170421.105"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "term-manager"; - rev = "f29bced3ecdf23d999f55573894b1ec1e2a94fc9"; - sha256 = "1nkahsnwvmg1fv3qsdc49k5xick6wji3j6qffwfnpw1prx2n2a45"; + rev = "13a0f1637a1f075d70211ccb8162e63a18a474da"; + sha256 = "0hvn60wk3w27fjb023drnaw0gmys6ancha8blpl0r4vc5k203kcf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5260876280148fae28a459f07932cebb059b560e/recipes/term-projectile"; @@ -67503,12 +68423,12 @@ terminal-here = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "terminal-here"; - version = "20170413.521"; + version = "20171022.552"; src = fetchFromGitHub { owner = "davidshepherd7"; repo = "terminal-here"; - rev = "722213c91d1cd123649629908d7c872b28c49490"; - sha256 = "1511ja1184231py38gi64a4xcxpsp98fh60m63j62kav9wlzbkkr"; + rev = "b3659e13d3d41503b4fc59dd2c7ea622631fc3ec"; + sha256 = "1z3ngwgv8ybwq42lkpavk51a25zdkl6v9xdfi41njpxdpbfcmx8z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f8df6f7e23476eb52e7fdfbf9de277d3b44db978/recipes/terminal-here"; @@ -67524,12 +68444,12 @@ tern = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "tern"; - version = "20161222.850"; + version = "20170925.1333"; src = fetchFromGitHub { owner = "ternjs"; repo = "tern"; - rev = "e5a3f048ee7c7729434918648cafc564cbb3046a"; - sha256 = "0dgsg6nppssf3fjv37idb7z4c3k6plxjybp9al079bqhkr1cawdz"; + rev = "5c395b5d696aad5a185724f56c74a7f83349f3bd"; + sha256 = "11sp1jz0fn8gnc28qvyrmc7qxr1gn5r3vxv6gp46p7cmgg9mflri"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eaecd67af24050c72c5df73c3a12e717f95d5059/recipes/tern"; @@ -67545,12 +68465,12 @@ tern-auto-complete = callPackage ({ auto-complete, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, tern }: melpaBuild { pname = "tern-auto-complete"; - version = "20160906.1204"; + version = "20170521.1235"; src = fetchFromGitHub { owner = "ternjs"; repo = "tern"; - rev = "e5a3f048ee7c7729434918648cafc564cbb3046a"; - sha256 = "0dgsg6nppssf3fjv37idb7z4c3k6plxjybp9al079bqhkr1cawdz"; + rev = "5c395b5d696aad5a185724f56c74a7f83349f3bd"; + sha256 = "11sp1jz0fn8gnc28qvyrmc7qxr1gn5r3vxv6gp46p7cmgg9mflri"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/eaecd67af24050c72c5df73c3a12e717f95d5059/recipes/tern-auto-complete"; @@ -67692,12 +68612,12 @@ test-simple = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "test-simple"; - version = "20170117.411"; + version = "20170527.832"; src = fetchFromGitHub { owner = "rocky"; repo = "emacs-test-simple"; - rev = "604942d36021a8b14877a0a640234a09c79e0927"; - sha256 = "1ydbhd1xkwhd5zmas06rw7v5vzcmvri8gla3pyf2rcf2li5sz247"; + rev = "b3b69f52207d3a8111421ad7ab9ed82abbe85316"; + sha256 = "0n400nmz3iyp50sdd4gz0bmfn1sfq5p6a69yv4zd09ypa9gkndws"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a4b76e053faee299f5b770a0e41aa615bf5fbf10/recipes/test-simple"; @@ -67710,6 +68630,27 @@ license = lib.licenses.free; }; }) {}; + tex-smart-umlauts = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "tex-smart-umlauts"; + version = "20160427.58"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "tex-smart-umlauts"; + rev = "5261b931443558f4252489a1e6616034848aff02"; + sha256 = "1rq1l52mgbasgwvjwpivjrfjf8l8r85wdkfpbw8213449qh9c9zh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/tex-smart-umlauts"; + sha256 = "05q5mzl0pya682hdmjyp09hh121dc5y4d5vgqjffx3yfd5kgsy5w"; + name = "tex-smart-umlauts"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/tex-smart-umlauts"; + license = lib.licenses.free; + }; + }) {}; textile-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "textile-mode"; @@ -67776,12 +68717,12 @@ textx-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "textx-mode"; - version = "20170329.339"; + version = "20170516.211"; src = fetchFromGitHub { owner = "novakboskov"; repo = "textx-mode"; - rev = "cd47daf9737479ff06e2fa43fbb45ada2d7386e8"; - sha256 = "165m6p18nzpqvdvx2a6hf94blsa2r947wdf1x6jicqflfpki45cx"; + rev = "72f9f0c5855b382024f0da8f56833c22a70a5cb3"; + sha256 = "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dada0378af342e0798c418032a8dcc7dfd80d600/recipes/textx-mode"; @@ -67815,24 +68756,6 @@ license = lib.licenses.free; }; }) {}; - tfs = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "tfs"; - version = "20120508.1120"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/tfs.el"; - sha256 = "16byw8ix7bjh5ldr8rymisq2bhc5sh7db6rhpf0x28yd6mmzn73v"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/tfs"; - sha256 = "0h38qd1xhfd0my26i6w5j1jr91r5qal8x4bp7ij1cym72yxspna6"; - name = "tfs"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/tfs"; - license = lib.licenses.free; - }; - }) {}; theme-changer = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "theme-changer"; @@ -67857,12 +68780,12 @@ theme-looper = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "theme-looper"; - version = "20170330.1829"; + version = "20170425.606"; src = fetchFromGitHub { owner = "myTerminal"; repo = "theme-looper"; - rev = "4c07f6f6e1c733d274e26ed8eb03cc5bb6e9149a"; - sha256 = "0nq298fclba9k1bdg9yhhnfsxw1dnvs96m6wdl5wnv21087zj77j"; + rev = "0feeed3c93fc54305499bda5953112487f25a3a0"; + sha256 = "18fkfr7cihnkxbz7r2p6dl5w2yzaibx3qxgwqgmx3g47lb1g13gc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/theme-looper"; @@ -67896,61 +68819,6 @@ license = lib.licenses.free; }; }) {}; - thesaurus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "thesaurus"; - version = "20121125.1137"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/thesaurus.el"; - sha256 = "0zcyasdzb7dvmld8418cy2mg8mpdx01bv44cm0sp5950scrypsaq"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/thesaurus"; - sha256 = "1cnna27dlragk4w3f59xbrwppp49r010qdn7n3n7wvhibv3cfyd7"; - name = "thesaurus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/thesaurus"; - license = lib.licenses.free; - }; - }) {}; - thing-cmds = callPackage ({ fetchurl, hide-comnt, lib, melpaBuild }: - melpaBuild { - pname = "thing-cmds"; - version = "20170331.1338"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/thing-cmds.el"; - sha256 = "0zi7hbdb5w0lry09rdsxmb0kqnfp6s72kn0z5npfhvwalkcpywbq"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/thing-cmds"; - sha256 = "133bm2cw9ar6m2amj0rrq4wbj9c3zl61gaprx0vlasxj2cyxs7yw"; - name = "thing-cmds"; - }; - packageRequires = [ hide-comnt ]; - meta = { - homepage = "https://melpa.org/#/thing-cmds"; - license = lib.licenses.free; - }; - }) {}; - thingatpt-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "thingatpt-plus"; - version = "20170307.1539"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/thingatpt+.el"; - sha256 = "1k9y354315gvhbdk0m9xpjx24w1bwrnzlnfiils8xgdwnw4py99a"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/thingatpt+"; - sha256 = "0w031lzjl5phvzsmbbxn2fpziwkmdyxsn08h6b9lxbss1prhx7aa"; - name = "thingatpt-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/thingatpt+"; - license = lib.licenses.free; - }; - }) {}; thingopt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "thingopt"; @@ -67975,12 +68843,12 @@ thinks = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "thinks"; - version = "20170325.430"; + version = "20170802.428"; src = fetchFromGitHub { owner = "davep"; repo = "thinks.el"; - rev = "122c0dcafa79bb1d9b37dc5bf6045e9f62666e6c"; - sha256 = "05jczr3vj7j7b83sv2w79hrd4hq8xip79yx4z9g1v8lr3j3l4gzq"; + rev = "c02f236abc8c2025d9f01460b09b89ebdc96e28d"; + sha256 = "0g4ls668kyqnh4xkvz1s1z9j6n0a1gkgrzgl98hys7hny6zrk7aa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/439957cabf379651dc243219a83c3c96bae6f8cf/recipes/thinks"; @@ -67996,12 +68864,12 @@ thread-dump = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "thread-dump"; - version = "20130323.1025"; + version = "20170816.1150"; src = fetchFromGitHub { owner = "nd"; repo = "thread-dump.el"; - rev = "1cee07775ac8c13bb52217be6c383562c617542b"; - sha256 = "0rjcrvw9v2y10ahycra53bwbccpwqxxwn2c21wjj1kfs0kdwhs9p"; + rev = "204c9600242756d4b514bb5ff6293e052bf4b49d"; + sha256 = "11qx194gwizqg7p2mqy7mdfii85bdayabxfd388dmrm916i4w47n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/thread-dump"; @@ -68042,8 +68910,8 @@ src = fetchFromGitHub { owner = "apache"; repo = "thrift"; - rev = "2d65c2365f19f637bc732222e71d78727bf0b709"; - sha256 = "0g347bhy6hppkl4769ahfyw2cbl0dqhv889c0xf8wbzfbsn9kaz5"; + rev = "a533ea1615e9df935e77b99440cf264c6b417e3e"; + sha256 = "0nx6amk2jawd5nqkz54sx1x29a8nkpa7h9b4qgn0j7j5sdvfyrxr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/857ab7e3a5c290265d88ebacb9685b3faee586e5/recipes/thrift"; @@ -68056,25 +68924,6 @@ license = lib.licenses.free; }; }) {}; - thumb-frm = callPackage ({ fetchurl, frame-cmds, frame-fns, lib, melpaBuild }: - melpaBuild { - pname = "thumb-frm"; - version = "20170307.1540"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/thumb-frm.el"; - sha256 = "1mfz4gkq71sp9q7pa8q0md36g7x0dpsqz0np507dx2kypzqhklpd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/thumb-frm"; - sha256 = "1fjjd80drm8banni909lww9zqazr1kk9m40xwwa1ln2zicaf091c"; - name = "thumb-frm"; - }; - packageRequires = [ frame-cmds frame-fns ]; - meta = { - homepage = "https://melpa.org/#/thumb-frm"; - license = lib.licenses.free; - }; - }) {}; thumb-through = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "thumb-through"; @@ -68096,45 +68945,48 @@ license = lib.licenses.free; }; }) {}; - tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, typescript-mode }: + tickscript-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "tickscript-mode"; + version = "20171101.108"; + src = fetchFromGitHub { + owner = "msherry"; + repo = "tickscript-mode"; + rev = "45ce0b4f8f18ffa00a4fd2ab3823118f69b94653"; + sha256 = "0w6gh6nb81c5jp4px6xx5d3wmwgkh6irzwgk42g0mkhjifzm83ip"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode"; + sha256 = "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54"; + name = "tickscript-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/tickscript-mode"; + license = lib.licenses.free; + }; + }) {}; + tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s, typescript-mode }: melpaBuild { pname = "tide"; - version = "20170412.541"; + version = "20171009.1142"; src = fetchFromGitHub { owner = "ananthakumaran"; repo = "tide"; - rev = "9b6599246679d7d09c97b44d3d4375d4e895f061"; - sha256 = "0j5n9wn596ayqyzymr0p20mx8cxp5pzz6362nicr13s0rn7bz4rv"; + rev = "d4a86487475b08adcbc1974c3362ce247d65a381"; + sha256 = "1f0l8s50ihhl4w00q5f101g9bfn9zssh4ippbchfdz4ialisyk2y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a21e063011ebbb03ac70bdcf0a379f9e383bdfab/recipes/tide"; sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1"; name = "tide"; }; - packageRequires = [ cl-lib dash flycheck typescript-mode ]; + packageRequires = [ cl-lib dash flycheck s typescript-mode ]; meta = { homepage = "https://melpa.org/#/tide"; license = lib.licenses.free; }; }) {}; - tidy = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "tidy"; - version = "20111222.956"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/tidy.el"; - sha256 = "0psci55a3angwv45z9i8wz8jw634rxg1xawkrb57m878zcxxddwa"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/bf079dbd04675ecd5f511b940d7cc5f80ccc94c4/recipes/tidy"; - sha256 = "09xb2k3k99hp3m725f31s6hlaxgl4fsaa1dylahxvdfddhbh290m"; - name = "tidy"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/tidy"; - license = lib.licenses.free; - }; - }) {}; tile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, stream }: melpaBuild { pname = "tile"; @@ -68182,14 +69034,14 @@ pname = "timecop"; version = "20160520.352"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "emacs-datetime"; rev = "e6427538b547cbe02e1bd6ed4b765c73620bdae8"; sha256 = "1573z8wq5m8qzbzmnsz2fmbwrj9c0ava0jjfchzmwm2b3jyvqh5r"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c367c756a02e161a2f6ce6c422802c9f74102a07/recipes/timecop"; - sha256 = "0kcjx3silk9vwysaawhcvpb7c82dzb2y7ns8x50jznylqg8c4zh5"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/timecop"; + sha256 = "1hnmxcc2hjx9a4jyavx2v9hxmqacmmg1xj86rxqx3ms32hgigji5"; name = "timecop"; }; packageRequires = [ cl-lib datetime-format ]; @@ -68294,12 +69146,12 @@ tinkerer = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "tinkerer"; - version = "20161102.531"; + version = "20170906.524"; src = fetchFromGitHub { owner = "yyr"; repo = "tinkerer.el"; - rev = "713769e5f5eb90a87d515b7ba2dca71f2f297218"; - sha256 = "1dpf6s1mv8mvcr84hzawhjgz3fjpbr8qrlcvdsw3r2c6b9pdi4hw"; + rev = "e34135555f3748b578c7f8706dfd0c888fb87581"; + sha256 = "0lzrarqh965ysd7w0z5rbisl45j11fbibyxmgivgy9parvhg59hk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8a28e1dfe987287bac7c45f83ae6e754bc13e345/recipes/tinkerer"; @@ -68315,12 +69167,12 @@ tiny = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tiny"; - version = "20160811.246"; + version = "20170903.249"; src = fetchFromGitHub { owner = "abo-abo"; repo = "tiny"; - rev = "1766056dc768df6c981c301a2e7b8de7305acb73"; - sha256 = "0k3wmp0m4w77q00sk2i30zd23rjlwnj9r66xrl2gw55sapnayh77"; + rev = "012b2e7a67b9f067bbfa0292479861ffbaa201fa"; + sha256 = "13hwzq5ip9pb6nmsg3377haz5f45nm96khrwdls07mzni6gay8az"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d3029dab001fff5d12e8a2bace6ddbf897842c26/recipes/tiny"; @@ -68340,8 +69192,8 @@ src = fetchFromGitHub { owner = "aaronbieber"; repo = "tiny-menu.el"; - rev = "f1fc844f514f57fd93602ff5e00c6125b0e93254"; - sha256 = "125ckmfsvzacd5icsnldcbfl4rkxpfal6qfindy80i84vk0qw47g"; + rev = "05563b94537b6eb22aeddedef2a6e59e3f88d073"; + sha256 = "0k0djq60mwhjiwy9dpy9m9bs507b9p19pdl3g2s8sd9i2fk53rfy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82700c97ca40130e7508c151f60220d3f23bf23c/recipes/tiny-menu"; @@ -68375,36 +69227,15 @@ license = lib.licenses.free; }; }) {}; - tj-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, tern }: - melpaBuild { - pname = "tj-mode"; - version = "20150826.851"; - src = fetchFromGitHub { - owner = "katspaugh"; - repo = "tj-mode"; - rev = "361f5b0baa90f9d0b3fd92a3d9d557a1224b4308"; - sha256 = "1zvykanmn065rlk9hlv85vary1l6y52bsnaa51fkpckpr6dicmcl"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1b16dd25c0c1031923717d4fe23bbb9276f75885/recipes/tj-mode"; - sha256 = "1i7dvxgj00p4n2fh8irgdfsjl2dpvfjjnkkv0cw71441f79p79mf"; - name = "tj-mode"; - }; - packageRequires = [ emacs js2-mode tern ]; - meta = { - homepage = "https://melpa.org/#/tj-mode"; - license = lib.licenses.free; - }; - }) {}; tldr = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tldr"; - version = "20170401.2140"; + version = "20171023.1929"; src = fetchFromGitHub { owner = "kuanyui"; repo = "tldr.el"; - rev = "05da2ac1d82f9918b493e0895e98cd59666d3e28"; - sha256 = "14ni301cn6s793157k1fkz65ab1xgh94n3g12hcj1xnmbdvnlymy"; + rev = "fe1bd5cee3d30741c816f3ccc118b94105ceba4c"; + sha256 = "1hdkrgv03w968qf8fm7c35k5pahk9wfwz5vy8xz6568ci1af47h3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/45af2c5d1a36fcbf739812594c5cc878bf319a26/recipes/tldr"; @@ -68441,12 +69272,12 @@ toc-org = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "toc-org"; - version = "20170404.15"; + version = "20171009.156"; src = fetchFromGitHub { owner = "snosov1"; repo = "toc-org"; - rev = "d30b57f16d158fa859b0626f5350520f3ee86f44"; - sha256 = "0q0wshcxn60c87lml2fxrhikrj7zay48ijrwj334yzwp26dvm422"; + rev = "4d259c9cea3f575e5210974c025ebe3d51cc317f"; + sha256 = "04y7zib1wpxswkh7srxgh4bq25cpsybpi2aaynrwjms695ggh346"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1305d88eca984a66039444da1ea64f29f1950206/recipes/toc-org"; @@ -68459,33 +69290,15 @@ license = lib.licenses.free; }; }) {}; - todochiku = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "todochiku"; - version = "20150112.1254"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/todochiku.el"; - sha256 = "0fhlyjl0a3fd25as185j6dmch0wsrf1zc59q29lhjximg9lk3hr5"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/todochiku"; - sha256 = "1iq08s5ji6hd8as80qxqkbavnjbx0kcmmjjvhjchmvv93vsn1f96"; - name = "todochiku"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/todochiku"; - license = lib.licenses.free; - }; - }) {}; todotxt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "todotxt"; - version = "20160919.2238"; + version = "20170919.1141"; src = fetchFromGitHub { owner = "rpdillon"; repo = "todotxt.el"; - rev = "c0d0e8320ba9284710d46941eaf6847f909b589e"; - sha256 = "08fd5lk1gq9clxhz5i81qm5f0a20yrx49iy13bx1p59gj20f1z41"; + rev = "afa4079f15f705a4fa34ea8e14b122e73028f285"; + sha256 = "07rhjxl8kvsjf23kxyl6xj51a2z1r66h4bsdsfj7nncavvybzqn3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/todotxt"; @@ -68522,12 +69335,12 @@ togetherly = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "togetherly"; - version = "20150820.138"; + version = "20170425.2316"; src = fetchFromGitHub { owner = "zk-phi"; repo = "togetherly"; - rev = "9d655661984f7d62e9d6e0e9d47ae7ca8c4f43c7"; - sha256 = "1falf86mm2206szkkwiwa5yk65y12asv84j1pdbcy6n8y6hha796"; + rev = "a6491bd5dd84f2aded0cd112ff06ae76ff78dfeb"; + sha256 = "05x6ppfkpklxf1098acs6gpd3zm9k05vhywa7n01y2g6nhp697pw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/05da36e2d57a57255423a24a34742cbac2f6c9a5/recipes/togetherly"; @@ -68708,42 +69521,6 @@ license = lib.licenses.free; }; }) {}; - tool-bar-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "tool-bar-plus"; - version = "20170307.1542"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/tool-bar+.el"; - sha256 = "09myj10ifjjc43invxbiinskv5xllkqvqfnzmc7893k2hp2miczm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/tool-bar+"; - sha256 = "07nsas600w5kxx7yzg52ax9avry8kq429mqlrs38jg5ycf3b1l6d"; - name = "tool-bar-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/tool-bar+"; - license = lib.licenses.free; - }; - }) {}; - top-mode = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "top-mode"; - version = "20130605.1039"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/top-mode.el"; - sha256 = "0a5rl1cgznycqwx4r48mh69lgm8ixbnlfzbqdyvclgm8fldbannn"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/top-mode"; - sha256 = "0hrjlbiz827v9yf4086wlghw64rhvvlsbzv8lzs6pprdwbpr9pdx"; - name = "top-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/top-mode"; - license = lib.licenses.free; - }; - }) {}; tornado-template-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tornado-template-mode"; @@ -68830,12 +69607,12 @@ tql-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tql-mode"; - version = "20170402.1846"; + version = "20170723.1954"; src = fetchFromGitHub { owner = "tiros-dev"; repo = "tql-mode"; - rev = "2c4827652b4b9b640f3c55e27e1b1856ec9e2018"; - sha256 = "08vsg5y2bg9gxzfcm630vv95d9kwzxqhzz5dzbbi3g71nlgcclk2"; + rev = "488add79eb3fc8ec02aedaa997fe1ed9e5c3e638"; + sha256 = "09vkqr5n66w1q5f7m1vgiv0555v23wg6j46ri52lnnslsxpxhlyv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6a7c3dec5d970a4e819c0166a4b9846d74484b08/recipes/tql-mode"; @@ -68851,12 +69628,12 @@ traad = callPackage ({ deferred, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, request, request-deferred, virtualenvwrapper }: melpaBuild { pname = "traad"; - version = "20170302.613"; + version = "20171010.2353"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-traad"; - rev = "6d797f124fd4e037df7727d7696328a95748b9af"; - sha256 = "1r3s7qjlf943h3wqc5plw0la0p54xmxzdj3iwaz9lymfxx6n3h72"; + rev = "5ee7a4411fa39601ff59873f1e129fdb64df4e97"; + sha256 = "0h9hx5jpi0clmrj7sf0srisdp9h5zgakwrs7cyqs3hmw7z4ds5r2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2b3eb31c077fcaff94b74b757c1ce17650333943/recipes/traad"; @@ -68882,8 +69659,8 @@ src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "9d68903018f255838b51c734015be74bbdbf539c"; - sha256 = "0iddz0m7p7bfnly33gwi8vmpz0lv026lj4val1x584hqix6xk8vh"; + rev = "6b110d4c2c6447c4ed65cfa5b7e8676620081ee2"; + sha256 = "01llr34y9mvgpbz3y10l7gmp40qvislwhm6jb2fvcb7vdn9k9gmz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/tracking"; @@ -68917,22 +69694,22 @@ license = lib.licenses.free; }; }) {}; - tramp-hdfs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + tramp-hdfs = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tramp-hdfs"; - version = "20151028.2036"; + version = "20170821.620"; src = fetchFromGitHub { owner = "raghavgautam"; repo = "tramp-hdfs"; - rev = "82683b45eabc09f327ea45a9e8faba0524eada29"; - sha256 = "0llzfn9y3yyz2wwdbv8whx8vy2lazbnww6hjj0r621gkfxjml7wd"; + rev = "b64f24d0419a80dffaa2c4ecec317aa2bba56e35"; + sha256 = "1bfqzwn19w6fs5npslw0sjqrwdswsv5m3wcdnk438pz1lp199wfy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4c185553314a2a9fe18907fd9251077777b33538/recipes/tramp-hdfs"; sha256 = "1l7s2z8yk3cbnffig9fds75jkjlkng76qglx5ankzva61dz1kf2b"; name = "tramp-hdfs"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/tramp-hdfs"; license = lib.licenses.free; @@ -68983,12 +69760,12 @@ transmission = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "transmission"; - version = "20170326.1044"; + version = "20171029.1210"; src = fetchFromGitHub { owner = "holomorph"; repo = "transmission"; - rev = "5b88e643e93115af3a96c8cf558eb506b34a64fc"; - sha256 = "1zcpy3628s9cm9am92imwhp31fdnd6146hz0x4qaazia4gbhp66z"; + rev = "d78ae51fdc9292cc0b77dfb18279b38b6ccbf480"; + sha256 = "01k0nppxvkd2cy13hjcvihgh6j9c4by92yxv4jv8zvaz35fqf92n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9ed7e414687c0bd82b140a1bd8044084d094d18f/recipes/transmission"; @@ -69085,6 +69862,90 @@ license = lib.licenses.free; }; }) {}; + treemacs = callPackage ({ ace-window, cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, pfuture, s }: + melpaBuild { + pname = "treemacs"; + version = "20171101.340"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "444f0517a875dbb5b832f3c3270f0ea2a39bc258"; + sha256 = "0k5rfdck8895s2906f4b213kn1icnrd49217gbm9llzqhskl8hdq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/486f21e99856a77f470d246f3c71cd32d2e61ad6/recipes/treemacs"; + sha256 = "07npjnhn9a0b537h1wmvy57bmicd2cji7bslp4wbnrfmmg2jdc3a"; + name = "treemacs"; + }; + packageRequires = [ ace-window cl-lib dash emacs f hydra pfuture s ]; + meta = { + homepage = "https://melpa.org/#/treemacs"; + license = lib.licenses.free; + }; + }) {}; + treemacs-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild, treemacs }: + melpaBuild { + pname = "treemacs-evil"; + version = "20170925.2232"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "444f0517a875dbb5b832f3c3270f0ea2a39bc258"; + sha256 = "0k5rfdck8895s2906f4b213kn1icnrd49217gbm9llzqhskl8hdq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a52c2770097fe8968bff7c31ac411b3d9b60972e/recipes/treemacs-evil"; + sha256 = "146j4l2g40dhrv8nyfymxkajn19gvlkmirwv9ndvkvl3yy175vg3"; + name = "treemacs-evil"; + }; + packageRequires = [ evil treemacs ]; + meta = { + homepage = "https://melpa.org/#/treemacs-evil"; + license = lib.licenses.free; + }; + }) {}; + treemacs-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, treemacs }: + melpaBuild { + pname = "treemacs-projectile"; + version = "20170903.1235"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "444f0517a875dbb5b832f3c3270f0ea2a39bc258"; + sha256 = "0k5rfdck8895s2906f4b213kn1icnrd49217gbm9llzqhskl8hdq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b694918c94e6311745776d451aa2519924beef2d/recipes/treemacs-projectile"; + sha256 = "0y7mq466c9cigyd6imzjnh54aq9kcsikhr7llga5gsclf35fc5ld"; + name = "treemacs-projectile"; + }; + packageRequires = [ projectile treemacs ]; + meta = { + homepage = "https://melpa.org/#/treemacs-projectile"; + license = lib.licenses.free; + }; + }) {}; + treepy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "treepy"; + version = "20170721.913"; + src = fetchFromGitHub { + owner = "volrath"; + repo = "treepy.el"; + rev = "b2191139d67d024e4666b6039e39a23b15b1aba2"; + sha256 = "170xgvwgnnqkr259d0wv6l4kcp62mb1y1wq6rnk8gp39djsqw01q"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/63c94a703841f8c11948200d86d98145bc62162c/recipes/treepy"; + sha256 = "0jfah4vywi1b6c86h7vh8fspmklhs790qzkl51i9p7yckfggwp72"; + name = "treepy"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/treepy"; + license = lib.licenses.free; + }; + }) {}; trident-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, skewer-mode, slime }: melpaBuild { pname = "trident-mode"; @@ -69106,27 +69967,6 @@ license = lib.licenses.free; }; }) {}; - tronesque-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "tronesque-theme"; - version = "20150125.241"; - src = fetchFromGitHub { - owner = "aurelienbottazini"; - repo = "tronesque"; - rev = "42093c08a50c860601c364c8a746c803458c10ba"; - sha256 = "06wm3qwxjhzwjn9nnrqm5wwj1z5gfghg9d2qbg8w3zyqzva5dmvm"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c7e488c08c56a879d0c20f0e8c271b7179faee8a/recipes/tronesque-theme"; - sha256 = "1bk73zawl1922aq739r3rz30flxd6nq87k8ahzbix139g7gxf19j"; - name = "tronesque-theme"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/tronesque-theme"; - license = lib.licenses.free; - }; - }) {}; trr = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "trr"; @@ -69275,12 +70115,12 @@ tuareg = callPackage ({ caml, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tuareg"; - version = "20170221.1141"; + version = "20171101.231"; src = fetchFromGitHub { owner = "ocaml"; repo = "tuareg"; - rev = "f242fe45dc47aab8fe69392304ebc2c779c411e0"; - sha256 = "07lz7s7z913h0mvmjnvvg9m36pc5r9nrg1a6z2wxszbccjvkz95b"; + rev = "359d0e7a4f75dee8f57557b7cc133ae3a65f78a5"; + sha256 = "0v8wzifrc99y4dzl1wdkil1df76d5ijl2pasx5qdig69mpf5gj1w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/01fb6435a1dfeebdf4e7fa3f4f5928bc75526809/recipes/tuareg"; @@ -69356,18 +70196,39 @@ license = lib.licenses.free; }; }) {}; + turing-machine = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "turing-machine"; + version = "20170512.1438"; + src = fetchFromGitHub { + owner = "therockmandolinist"; + repo = "turing-machine"; + rev = "4b5901a13b38028b05ce19cecc78bcd2f708f97d"; + sha256 = "1avsqqpsbzlm0wi6fc5lgnmhps5wcr6gp05d4hw51sd5r0vx00dk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a003b40a52a92b3ab4d1ffc003f570d4fa6bfbde/recipes/turing-machine"; + sha256 = "1ndy953q9hr1psqqkkqsffyvj800cnqdxcrixqiw0ls77f2kczcn"; + name = "turing-machine"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/turing-machine"; + license = lib.licenses.free; + }; + }) {}; turkish = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "turkish"; - version = "20160324.323"; + version = "20170910.811"; src = fetchFromGitHub { owner = "emres"; repo = "turkish-mode"; - rev = "237b696e2f513149f1a77ef58b5ba7d44b6f4661"; - sha256 = "1jb6par116mm5l4z27wk6m2sfh6j9nmgrya352sdagcvjbcpnzcl"; + rev = "9831a316c176bb21a1b91226323ea4133163e00c"; + sha256 = "0nrxi845gd24d5vymbmxz696jwld4rn6nw2dz1gzmdaks7bbv87m"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4c305076082d17db90647577137d76128b15defa/recipes/turkish"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/12cdbdf404fa859a48d1bb69f058321d7595d2a2/recipes/turkish"; sha256 = "0pdapxjbpj3lg3hxvwjn9v51jqaiz7a8053z2bmk4485vzs34532"; name = "turkish"; }; @@ -69527,12 +70388,12 @@ typescript-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "typescript-mode"; - version = "20170324.1301"; + version = "20171022.1029"; src = fetchFromGitHub { owner = "ananthakumaran"; repo = "typescript.el"; - rev = "f25f4751fea12298905c811a1f469a6b0a169ef1"; - sha256 = "1s4qzhi8bd45l824pwzh97i9npf7j4ai6wkbhf28q2nd1hiv29hw"; + rev = "56a1ea861f80979d376716629abfce45a8e5e2c7"; + sha256 = "1lbfia8n2zwg9j8f9y1shjg88zmgr3cz03dk3277yrvh9djs8kcx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d3f534a1e2cee4ad2e32e32802c5080207417b3d/recipes/typescript-mode"; @@ -69545,24 +70406,6 @@ license = lib.licenses.free; }; }) {}; - typing = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "typing"; - version = "20121026.1418"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/typing.el"; - sha256 = "0mgvpdp3vlvjy32d163h2mzsf9j2ij2f542sdr3rsy8l80n6nx31"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1bc0c7b53431a9d2bc41c9a7a755bdad0fa0f5cf/recipes/typing"; - sha256 = "0b72lbzji105wzvsi58l6pjc08qcwrm5ddf42irdxi956081pzp3"; - name = "typing"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/typing"; - license = lib.licenses.free; - }; - }) {}; typing-game = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "typing-game"; @@ -69587,12 +70430,12 @@ typit = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, mmt }: melpaBuild { pname = "typit"; - version = "20170101.318"; + version = "20170519.51"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "typit"; - rev = "eb2d9a73851c64e21c211136c36b9de34812dc0f"; - sha256 = "0r8cr4h3pkc23zxv01kkqv7bn34vppw6wgm7npzc9c04l40hs7iq"; + rev = "bf6e72d76c0f3a68d7cd53c6580e92aa15d28dc5"; + sha256 = "0qf2599x60nipmr78cmlnswid0lj552b0fjcw2lbyg7mnhxlnkmj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d17d019155e19c156f123dcd702f18cfba488701/recipes/typit"; @@ -69608,12 +70451,12 @@ typo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "typo"; - version = "20160121.330"; + version = "20171005.1045"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "typoel"; - rev = "f7d07cedf90ce65f226a66c428c0788d2bd7b912"; - sha256 = "0bn1bvs334wb64bli9h613zf1vzjyi0pz8bgyq1wy12qmbwwmfwk"; + rev = "73c8d960e9dcbb77a4ad6166b4685122a0f208ee"; + sha256 = "1zlnfjav11842am9n043j3hk23134hp92k1pg86jvnsj5mwmp9ij"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/typo"; @@ -69668,24 +70511,6 @@ license = lib.licenses.free; }; }) {}; - ucs-cmds = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "ucs-cmds"; - version = "20170308.1512"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/ucs-cmds.el"; - sha256 = "072swg5iyx9n4xpdm65ydh2z7g11jqi3jjwkhcd7a389lavfqnbw"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/ucs-cmds"; - sha256 = "1n0f0qf8w8ark78fs67aaxnqpk0km97hy59pnxwfyahgjl2qz6d1"; - name = "ucs-cmds"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/ucs-cmds"; - license = lib.licenses.free; - }; - }) {}; ucs-utils = callPackage ({ fetchFromGitHub, fetchurl, lib, list-utils, melpaBuild, pcache, persistent-soft }: melpaBuild { pname = "ucs-utils"; @@ -69731,12 +70556,12 @@ ujelly-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ujelly-theme"; - version = "20170413.358"; + version = "20170905.1505"; src = fetchFromGitHub { owner = "marktran"; repo = "color-theme-ujelly"; - rev = "304f9470fc3b4fa29e0e9a030c5a10363c55a729"; - sha256 = "0igw5p2idf5c07qzhc0m2i2mhn3yhvjy3yrk4dbw1vbzx1b1afdh"; + rev = "d08fe8e01db6df151b38c3001fba239a9a22369a"; + sha256 = "1a93pd7c2fgdy4vhhwy0lm7plyrwfqa9177m2x5kfblz0q51n6y8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/ujelly-theme"; @@ -69770,24 +70595,6 @@ license = lib.licenses.free; }; }) {}; - unbound = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "unbound"; - version = "20160505.2355"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/unbound.el"; - sha256 = "0awmzz9cfr17ggpzsgxqqhz5946l7705vvkfaiz7qx9wg0pbch18"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/118e8df30e4caf2a5ef668af8970cfbfc2327004/recipes/unbound"; - sha256 = "1ys6pgb3lhx4ihhv8i28vrchp1ad37md7lnana40macf5n72d77x"; - name = "unbound"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/unbound"; - license = lib.licenses.free; - }; - }) {}; uncrustify-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "uncrustify-mode"; @@ -69812,12 +70619,12 @@ undercover = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, shut-up }: melpaBuild { pname = "undercover"; - version = "20161114.819"; + version = "20170502.912"; src = fetchFromGitHub { owner = "sviridov"; repo = "undercover.el"; - rev = "3d69b33a0b52ba25415ba8ad8552b0cfb250435d"; - sha256 = "15h2nabbi6ysr6xrf35p8zs0mi00ifk645kskhhfyn3hm103j052"; + rev = "d947e6410a3b269c657645b499a413d90d4b69ca"; + sha256 = "0c4i8qfa6mzbnjmdk9zqgw324fxyjnq5dm6bmxfadsnvnhjmn7y5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d58ad9eb863494f609114e3c6af8c14c891b83a5/recipes/undercover"; @@ -69830,6 +70637,27 @@ license = lib.licenses.free; }; }) {}; + underline-with-char = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "underline-with-char"; + version = "20170814.223"; + src = fetchFromGitHub { + owner = "marcowahl"; + repo = "underline-with-char"; + rev = "6daeba77e17dc11558ca3ccb0495524f5104d581"; + sha256 = "1i6qgkzn8rlv44mjc4b9sksr4wpnj9a1b6p1y3g6fqpvhy5pmygg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e24888ccf61ac05eba5c30a47d35653f2badf019/recipes/underline-with-char"; + sha256 = "0la24nvyqinla40c2f3f4a63mjjsg58096hyw3pvp0mwiff7rxyd"; + name = "underline-with-char"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/underline-with-char"; + license = lib.licenses.free; + }; + }) {}; underwater-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "underwater-theme"; @@ -69854,11 +70682,11 @@ undo-tree = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "undo-tree"; - version = "20161012.701"; + version = "20170706.246"; src = fetchgit { url = "http://www.dr-qubit.org/git/undo-tree.git"; - rev = "4cba00bb049cfaa2ee6821a9e347209a88a740b5"; - sha256 = "0qawh5cr0ahdg1rks96g9fbva2nfkz8mbl82jnps6axqdf57gm38"; + rev = "e9a9102f515acd7523158f20e83f300600374989"; + sha256 = "07y1pn0dzwh1avkd3dm96lcjisvnr7p02wbhxf1m3dgaxf059mcn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/undo-tree"; @@ -69895,12 +70723,12 @@ unfill = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "unfill"; - version = "20160816.2300"; + version = "20170722.1846"; src = fetchFromGitHub { owner = "purcell"; repo = "unfill"; - rev = "88186dce0de69e8f4aeaf2bfdc77d62210f19cd8"; - sha256 = "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"; + rev = "df0c4dee19a3874b11c7c7f04e8a2fba629fda9b"; + sha256 = "0bdlr8kqzwzi7aggcn7cwwih19585wi6dd9lvwj4i966zr4w84yx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2ade389a20419b3e29a613409ac73a16b7c5bddb/recipes/unfill"; @@ -70116,12 +70944,12 @@ unify-opening = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "unify-opening"; - version = "20170215.657"; + version = "20171011.201"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "unify-opening"; - rev = "2f0164328b9234c9083758349103be873cb65af8"; - sha256 = "0d7advfxfnx0v2y292fq4ynqm7ial6p0x7mh28l511b8b4qgpjgv"; + rev = "fbe53b56e9629143a73c5da9e7797579508e0fbf"; + sha256 = "0hr65nrywa9yijqymw902q02adyczbwzam2ahv8m2wzay5pcwg8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0a2faab13744262ef4d12750f70b300b3afd2835/recipes/unify-opening"; @@ -70242,12 +71070,12 @@ uptimes = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "uptimes"; - version = "20170402.143"; + version = "20170830.533"; src = fetchFromGitHub { owner = "davep"; repo = "uptimes.el"; - rev = "2be31db3508513478d3f27f4eff2ff1094786b4e"; - sha256 = "177d1h84w9rr6x3hsq9z7sbr8s8pippgy0l99gpdhycbff6a7cwg"; + rev = "c2c1b44b16a0fd873193b17c580ef3dfdacea580"; + sha256 = "1rq4m77fydkawdwkbw8125ihmvv6aisr03nwb1857k3hxhrg0gwv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/72099e35ce3e34ec6afc6a3f87a4da07ec91499a/recipes/uptimes"; @@ -70263,12 +71091,12 @@ url-shortener = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "url-shortener"; - version = "20160404.1959"; + version = "20170804.1942"; src = fetchFromGitHub { owner = "yuyang0"; repo = "url-shortener"; - rev = "48182912d4f3a704d0b53f1664b995cfbf2ccd28"; - sha256 = "179hi6hsp2naczlcym3qxx9wbqx96bkkzvqygf3iffa0rmik4j7h"; + rev = "06db8270213b9e352d6c335b0663059a1353d05e"; + sha256 = "1ndcajgvfl46zw2iwgghvcldsy9p778pifkhlanivc6azajhpjhh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/url-shortener"; @@ -70302,33 +71130,15 @@ license = lib.licenses.free; }; }) {}; - usage-memo = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "usage-memo"; - version = "20110722.851"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/usage-memo.el"; - sha256 = "00g1zj5fjykdi6gh2wkswpwx132xa6jmwfnrgfg5r96zwb8pib4i"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ae8f3adf42300fc0d8f0c5474edf839614d84978/recipes/usage-memo"; - sha256 = "05n50adjnavl7ag24wfjwlnbv5x55qlhmplgsm8j57gjig01nd95"; - name = "usage-memo"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/usage-memo"; - license = lib.licenses.free; - }; - }) {}; use-package = callPackage ({ bind-key, diminish, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "use-package"; - version = "20170405.1028"; + version = "20171030.1428"; src = fetchFromGitHub { owner = "jwiegley"; repo = "use-package"; - rev = "0139f85595a10b9e50e38f3d8d59f70cf4f3a2a2"; - sha256 = "1zv2an1mzks51j46j2gvizjmh7k5frzw7qja9kh9lvighl2qrg2v"; + rev = "82d15961a0f2dc7842a98030d6daee0061ef63dc"; + sha256 = "0i9cqms0bm6vfn8mzkzv40dql2mzmp2jma1na6m8bf1z2ciszy6l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3f9b52790e2a0bd579c24004873df5384e2ba549/recipes/use-package"; @@ -70344,12 +71154,12 @@ use-package-chords = callPackage ({ bind-chord, bind-key, fetchFromGitHub, fetchurl, key-chord, lib, melpaBuild, use-package }: melpaBuild { pname = "use-package-chords"; - version = "20170208.1035"; + version = "20170717.1152"; src = fetchFromGitHub { owner = "waymondo"; repo = "use-package-chords"; - rev = "e8551ce8a514d865831d3a889acece79103fc627"; - sha256 = "0500pqsszg7h7923i0kyjirdyhj8aza3a2h5wbqzdpli2aqra5a5"; + rev = "f47b2dc8d79f02e5fe39de1f63c78a6c09be2026"; + sha256 = "0nwcs3akf1cy7dv36n5s5hsr67djfcn7w499vamn0yh16bs7r5ds"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/92fbae4e0bcc1d5ad9f3f42d01f08ab4c3450f1f/recipes/use-package-chords"; @@ -70365,12 +71175,12 @@ utop = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "utop"; - version = "20151105.247"; + version = "20170508.2343"; src = fetchFromGitHub { owner = "diml"; repo = "utop"; - rev = "a9696b7ea30ffe709fb11f865570595103516e91"; - sha256 = "0wnhfhdac3qfcrim5q4cp2i2k3ich5hkkljinsbmg14qncqxcmrx"; + rev = "5ca193128c10f6af877c174ec0a9029782f0ef50"; + sha256 = "1m8ccx4hnncwd5hhi46ghprk9cdljw0qlyy4ya05fgvxl7yz8b4s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/30489fe52b4031184e54f994770aa3291257bc9d/recipes/utop"; @@ -70425,27 +71235,6 @@ license = lib.licenses.free; }; }) {}; - uzumaki = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "uzumaki"; - version = "20150119.1706"; - src = fetchFromGitHub { - owner = "geyslan"; - repo = "uzumaki"; - rev = "afae141588ef9407ff86ce1ae9a0f1860843c4a4"; - sha256 = "0fx18m688wfflbzwv8h3051439fwql69v1ip5q6xn958rdq4pi3x"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/6d63f9408e3bb581a47c8ab1f729f9ee087933d6/recipes/uzumaki"; - sha256 = "1fvhzz2qpyc819rjvzyf42jmb70hlg7a9ybqwi81w7rydpabg61q"; - name = "uzumaki"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/uzumaki"; - license = lib.licenses.free; - }; - }) {}; v2ex-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, request }: melpaBuild { pname = "v2ex-mode"; @@ -70617,12 +71406,12 @@ vc-darcs = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vc-darcs"; - version = "20170409.623"; + version = "20170904.2020"; src = fetchFromGitHub { owner = "velkyel"; repo = "vc-darcs"; - rev = "9c5cbf6fd9b624a31e918dd1a516b24d8b7ffe9d"; - sha256 = "0g26hyjblxldqr5hhijqaclmk1p6a1kc5yh3hkflw6y7lgcrqxkx"; + rev = "390fb1ebdda1ffac45b9be02626dde3b6d95ac11"; + sha256 = "1fcqkavc7hlbhswx5nnaqhash42cjsbr72ijznx5cplr582g3mfq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/54f89c50ae45365e86bdadcf67b2411c0f4c5603/recipes/vc-darcs"; @@ -70638,16 +71427,16 @@ vc-fossil = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vc-fossil"; - version = "20161030.842"; + version = "20171018.2216"; src = fetchFromGitHub { - owner = "emacsorphanage"; - repo = "vc-fossil"; - rev = "066a1c591c18102d199407e303ccdd0dd8c26be9"; - sha256 = "1z42y04h4649i1hn3lc0ydkmaps39357jy25hlcy07x5nxpklvxf"; + owner = "venks1"; + repo = "emacs-fossil"; + rev = "abdb5487831e641c291c0dcb3848f539ca11f400"; + sha256 = "024bf8cjf3srz0zrxk90c63yz9v525m83znb2fscwa1fwvnnpqkn"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5c8f2a79d6ad9cac527db2d08f3ee6aa199152d1/recipes/vc-fossil"; - sha256 = "0fym5wnig3bdkj86x0n7milcxh3fbigpx42827aim6bm3ry7a081"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/31c5ee4b625b90c1af66d7d11a25af8e1aa307b1/recipes/vc-fossil"; + sha256 = "11ps2wrkjrjm1d984mf80wwj1hzskw5qrn0nv7md21lp75kxsvxb"; name = "vc-fossil"; }; packageRequires = []; @@ -70656,6 +71445,27 @@ license = lib.licenses.free; }; }) {}; + vc-msg = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: + melpaBuild { + pname = "vc-msg"; + version = "20170725.7"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "vc-msg"; + rev = "6f1b788a58d2b64ac0c4648039ecd40b3989a489"; + sha256 = "1xay9h16vr9pm1csfaqy71m9rsphh77r2rmk1sxpdasr5aa00vq1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/59ad4e80b49c78decd7b5794565313f65550384e/recipes/vc-msg"; + sha256 = "16pgx8pg3djhkmhf1fihgjk7c6nb2nsqj58888bwg7385mlwc7g9"; + name = "vc-msg"; + }; + packageRequires = [ emacs popup ]; + meta = { + homepage = "https://melpa.org/#/vc-msg"; + license = lib.licenses.free; + }; + }) {}; vc-osc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vc-osc"; @@ -70722,12 +71532,12 @@ vdiff = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild }: melpaBuild { pname = "vdiff"; - version = "20170320.1805"; + version = "20170525.1231"; src = fetchFromGitHub { owner = "justbur"; repo = "emacs-vdiff"; - rev = "f11c7c2eeef33a0b75fe4e025818e7e672c57397"; - sha256 = "1shkjk38piwrsn78bcy557zvm68xznlk4kg5l2fgiwfmmzdnvj13"; + rev = "66ae1ac324d9ec7ef87abee38f260734f036cf3d"; + sha256 = "0d8zam8p6qyzjr99n0jpmjav429qkjgg59gidmhgf0cbx2pyvy8s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e90f19c8fa4b0d267d269b76f117995e812e899c/recipes/vdiff"; @@ -70740,15 +71550,36 @@ license = lib.licenses.free; }; }) {}; + vdiff-magit = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild, vdiff }: + melpaBuild { + pname = "vdiff-magit"; + version = "20170519.1407"; + src = fetchFromGitHub { + owner = "justbur"; + repo = "emacs-vdiff-magit"; + rev = "1ccf0a8be5aad18648fd59c775a8dd6070398b74"; + sha256 = "1skcrpfgz2c9s9r2xvwanrvyczcqjgmjrwjm188d55l4pn8ylr83"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2159275fabde8ec8b297f6635546b1314d519b8b/recipes/vdiff-magit"; + sha256 = "1vjc1r5xfdg9bmscgppx1fps1w5bd0zpp6ab5z5dxlg2zx2vdldw"; + name = "vdiff-magit"; + }; + packageRequires = [ emacs magit vdiff ]; + meta = { + homepage = "https://melpa.org/#/vdiff-magit"; + license = lib.licenses.free; + }; + }) {}; vdirel = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, org-vcard, seq }: melpaBuild { pname = "vdirel"; - version = "20161009.224"; + version = "20170605.43"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "vdirel"; - rev = "1f071902d4e2aea49e7e96a327e09712565cb39c"; - sha256 = "0qkb7wx1qaa85g0dwmkyh4r65fg1j441f0b4hgg7qjq1yxrlkkhb"; + rev = "72399f5e09f53aa25a068be8689cb711b8accf08"; + sha256 = "1xlzm2c6wcmrjjwl61552yaijjsiazbs2lxn1y5p7xbj9x7jrkn9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/72b5ea3f4444c3de73d986a28e1d12bf47c40246/recipes/vdirel"; @@ -70869,12 +71700,12 @@ vhdl-tools = callPackage ({ emacs, fetchFromGitHub, fetchurl, ggtags, helm, lib, melpaBuild, outshine }: melpaBuild { pname = "vhdl-tools"; - version = "20170315.1525"; + version = "20171025.514"; src = fetchFromGitHub { owner = "csantosb"; repo = "vhdl-tools"; - rev = "6f3f8ba58432dfdac59122164c732ccc0dfc475b"; - sha256 = "076v5zafalv1r14ms90zs1p7yq11fzff4vywrda6dh63i0yk2vxs"; + rev = "b6d07ba21e9073a0e008831bfb82fbddbd0b5e90"; + sha256 = "1ypj9saprjaxx60fxjl9ab2lb4x9s8szkh3mj23iininx1bxp4wm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/69fe2f8fb98ac1af1d3185f62ae1c89e646cfebf/recipes/vhdl-tools"; @@ -70992,36 +71823,15 @@ license = lib.licenses.free; }; }) {}; - vimgolf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "vimgolf"; - version = "20170323.600"; - src = fetchFromGitHub { - owner = "timvisher"; - repo = "vimgolf.el"; - rev = "741e414ec24072af05471058a5719271bfcfe766"; - sha256 = "0fs0gimry8xzydh7m305j86h1rq7qivsda19ah48sxbxks6xq5ax"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/50dc1c26cb848986dda3c930c8d9b421cd3b1d17/recipes/vimgolf"; - sha256 = "15xq5vm82hy4pjw04m7xcqav7azsb3c65lp8cfxa29z7xg81w62f"; - name = "vimgolf"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/vimgolf"; - license = lib.licenses.free; - }; - }) {}; vimish-fold = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vimish-fold"; - version = "20161231.1600"; + version = "20170730.2206"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "vimish-fold"; - rev = "1eb00dc2d803df411d7b2eae1c775eecc6512728"; - sha256 = "1shxvnlpb3hw3pa7883nmpzjy2q6cyww3r8x4yx3h315nvxwxfkq"; + rev = "5e2875c18e2d8ef27f594e0ea1ca15a2f759be42"; + sha256 = "1a24diw5xwk10d9y8dr1bgpc78d36f3swvlll0igl5b91q4x86dn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b4862b0a3d43f073e645803cbbf11d973a4b51d5/recipes/vimish-fold"; @@ -71037,12 +71847,12 @@ vimrc-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vimrc-mode"; - version = "20150607.913"; + version = "20170814.1837"; src = fetchFromGitHub { owner = "mcandre"; repo = "vimrc-mode"; - rev = "fae7604e5ea6eef104d8c68598c3bbf9d798aa74"; - sha256 = "02yhagnrq0zl19w7fh559fs6vm6b383k1r27alvixjfcm18p0fpg"; + rev = "ba8140fba6e03a35b123acbd62fc8c6f0a03bf4a"; + sha256 = "07pwmjaa24hh20bcanmxgnaf050c0j6190i0qfvpd0gpc4p80pxx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/vimrc-mode"; @@ -71079,12 +71889,12 @@ virtualenvwrapper = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "virtualenvwrapper"; - version = "20161002.1515"; + version = "20171022.1831"; src = fetchFromGitHub { owner = "porterjamesj"; repo = "virtualenvwrapper.el"; - rev = "5649028ea0c049cb7dfa2105285dee9c00d189fb"; - sha256 = "1xcjjs394vlaz94xh52kqaq94gkbmmjqmxlg7wly8vfn9vh34mws"; + rev = "b4fd61aa5fddd47d33b147ffa1c873d8b20db724"; + sha256 = "04qhxg2gghb9bbvabrjbwj89jl154hhk00s07mzgg93js75ipx6z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/virtualenvwrapper"; @@ -71142,12 +71952,12 @@ visual-fill-column = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "visual-fill-column"; - version = "20161109.337"; + version = "20170502.1300"; src = fetchFromGitHub { owner = "joostkremers"; repo = "visual-fill-column"; - rev = "159dcee48e7311ee816686d62e7ce36619127462"; - sha256 = "0bij20a8f9pd4307m2qslcx8p3j59hkr14sm18aw0bric65him8b"; + rev = "57c2a72d46900117ea92e0a01b97e19481800503"; + sha256 = "086zfx4lh168rg50ndg8qzdh8vzc6sgfii7qzcn4mg4wa74hnp9y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7628c805840c4687686d0b9dc5007342864721e/recipes/visual-fill-column"; @@ -71226,12 +72036,12 @@ vlf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vlf"; - version = "20170330.1613"; + version = "20170830.1148"; src = fetchFromGitHub { owner = "m00natic"; repo = "vlfi"; - rev = "eaa362922734a6fc0b1228a040be267faec07d3c"; - sha256 = "1s2yqknwg02nnsy7b1lr2si4mj8sz3wkm0criqwnbhh380k5sypr"; + rev = "df677c128f8abc764b51d2a0ed26071618e686de"; + sha256 = "1fx2ngjh3y69ynih328jiy8132z9y7q7s91rzw8mgpf3hnfmaqly"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9116b11eb513dd9e1dc9542d274dd60f183b24c4/recipes/vlf"; @@ -71244,24 +72054,6 @@ license = lib.licenses.free; }; }) {}; - vline = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "vline"; - version = "20120108.445"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/vline.el"; - sha256 = "1ys6928fgk8mswa4gv10cxggir8acck27g78cw1z3pdz5gakbgnj"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/aa860c2ccbaeb19d8b866919cdc45549d9cf9537/recipes/vline"; - sha256 = "0p59xhyrv7fmcn3qi51sp8v9v2y71ray2s756zbhzgzg63h3nbjp"; - name = "vline"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/vline"; - license = lib.licenses.free; - }; - }) {}; vmd-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vmd-mode"; @@ -71349,12 +72141,12 @@ vue-html-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vue-html-mode"; - version = "20170225.2301"; + version = "20170928.1057"; src = fetchFromGitHub { owner = "AdamNiederer"; repo = "vue-html-mode"; - rev = "e9708b80a319af14266562d8bf920747e94f1cf8"; - sha256 = "073vygm04x4gf150ibarz2qxbl37k6jzd907ydbq8nyq6hm1z1wj"; + rev = "9218c61ff1ab2bdc6a6711d21ad760198d3511a8"; + sha256 = "1xpbr2fajn0nk53abb2x9m0qs0ygxfl62gdxd2iqfcwj56fswj9y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/48588b163ab76204b9054340071e758045480e19/recipes/vue-html-mode"; @@ -71367,22 +72159,22 @@ license = lib.licenses.free; }; }) {}; - vue-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode, ssass-mode, vue-html-mode }: + vue-mode = callPackage ({ edit-indirect, fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode, ssass-mode, vue-html-mode }: melpaBuild { pname = "vue-mode"; - version = "20170403.2159"; + version = "20171029.1905"; src = fetchFromGitHub { owner = "CodeFalling"; repo = "vue-mode"; - rev = "95ca5d13f55b7863fe187865c8c4f6e378af11a1"; - sha256 = "18dxqfkgg2ii6ys6vsi2y7jx26rk3pwh1z3wnqpw225x2jzfz7rv"; + rev = "a34f8a14fe6a680bb18cfa4519f7984d8071a4e3"; + sha256 = "08c3sgd80aszfpc4zbh0rsn7717nwwjhr38lfbsbxmgmlvqalxzk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2e5e0a9fff332aeec09f6d3d758e2b67dfdf8397/recipes/vue-mode"; sha256 = "0gy7a5sliaijq0666l55vbkg15anrw7k1828szdn1ppkraw14bn0"; name = "vue-mode"; }; - packageRequires = [ mmm-mode ssass-mode vue-html-mode ]; + packageRequires = [ edit-indirect mmm-mode ssass-mode vue-html-mode ]; meta = { homepage = "https://melpa.org/#/vue-mode"; license = lib.licenses.free; @@ -71409,36 +72201,19 @@ license = lib.licenses.free; }; }) {}; - w32browser-dlgopen = callPackage ({ fetchurl, lib, melpaBuild }: + w3m = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "w32browser-dlgopen"; - version = "20170309.1433"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/w32browser-dlgopen.el"; - sha256 = "1fkkrqwhkg58jjjsjf0fzwabaaxarjylp22zng1id6hqfsm7r1cd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/w32browser-dlgopen"; - sha256 = "0dnvsnahnbnvjlhfmb0q6agzikv9d42fbnfrwsz6hni92937gz39"; - name = "w32browser-dlgopen"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/w32browser-dlgopen"; - license = lib.licenses.free; - }; - }) {}; - w3m = callPackage ({ fetchcvs, fetchurl, lib, melpaBuild }: melpaBuild { pname = "w3m"; - version = "20170301.254"; - src = fetchcvs { - cvsRoot = ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot"; - module = "emacs-w3m"; - sha256 = "b861237e76035df9e806681dee0f58680d9e68e773cc5e3c65dd513e127f4240"; + version = "20171019.1734"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "w3m"; + rev = "e2e2c907f4fa575bec74803aab95af426cb37e6e"; + sha256 = "13lzj1h6ib779fszmvlz3wamnjibivdrxl8hd5l3xhh7fkgbc8c8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8bbb18b0db057b9cca78ae7280674fd1beb56443/recipes/w3m"; - sha256 = "17mzs126fvlnsvxgfpbil9wmka0i87psblq49phky7dywcwz27lc"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/30de78c9cf83de30093a5647976eeaf552d4b2cb/recipes/w3m"; + sha256 = "0a4jql7ky62ickccbr2xnyggix5wf726d4pfz7mi3yxlw6i8m79s"; name = "w3m"; }; packageRequires = []; @@ -71512,12 +72287,12 @@ wakatime-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wakatime-mode"; - version = "20170324.2348"; + version = "20170517.2053"; src = fetchFromGitHub { owner = "wakatime"; repo = "wakatime-mode"; - rev = "7172a92df66a69537c849182c22404715ddd9bfe"; - sha256 = "0scayq5vwxsilm90zbma8lc6fvmm6w7p3gfyphcvvsm93rx5601r"; + rev = "b1eae15f38a367017e519c10837c44650631b154"; + sha256 = "0l2nwjz978lamlikipljw143j40bnli7rzf9rixsia9iby4krl25"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a46036a0e53afbebacafd3bc9545c99af79ccfcc/recipes/wakatime-mode"; @@ -71533,12 +72308,12 @@ wand = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "wand"; - version = "20170412.1315"; + version = "20171031.1103"; src = fetchFromGitHub { owner = "cmpitg"; repo = "wand"; - rev = "3674f2edaa6ac30c314a885b229204f978ddce14"; - sha256 = "1yylw7yn9k8li283d5r4x9i38wfdx24jmlzdivvffn0jkhjj6i4k"; + rev = "3d0b459c4ae7e0240cb16bd9bd0a0a0dc39d8f99"; + sha256 = "0wc1gmaz02bfbapwrmmc5r7rcfwqlfr52x3jqk6bhxpiav141yq4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/38be840bbb32094b753ec169b717a70817006655/recipes/wand"; @@ -71554,12 +72329,12 @@ wandbox = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request, s }: melpaBuild { pname = "wandbox"; - version = "20170324.1014"; + version = "20170603.531"; src = fetchFromGitHub { owner = "kosh04"; repo = "emacs-wandbox"; - rev = "4e52c14aca11de4686d4f1de98588cb5cf42d815"; - sha256 = "1c9wvnc8nqizh5sw424hznnqymfcyqdgdj8gzwfy5i04mi7mic4p"; + rev = "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1"; + sha256 = "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/wandbox"; @@ -71575,12 +72350,12 @@ wanderlust = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, semi }: melpaBuild { pname = "wanderlust"; - version = "20170325.357"; + version = "20171019.550"; src = fetchFromGitHub { owner = "wanderlust"; repo = "wanderlust"; - rev = "0a324086eb9cf2d357d3c8a431e80cd45fce016a"; - sha256 = "0hcyy44xxg6f7c10db6xf8944wiaijxln3kgrl49kc0m3icilxyy"; + rev = "15a8ca7a28d086066d148ca8bfbd454e32cc5f77"; + sha256 = "1a7xm3x8zyax6crrj8fj932yicwds12774znv991yggjzw5kcwcd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/426172b72026d1adeb1bf3fcc6b0407875047333/recipes/wanderlust"; @@ -71638,12 +72413,12 @@ wavefront-obj-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wavefront-obj-mode"; - version = "20150501.1116"; + version = "20170808.1016"; src = fetchFromGitHub { owner = "abend"; repo = "wavefront-obj-mode"; - rev = "75eedad052848e82cdd94064764956b906e6d6b2"; - sha256 = "0zw8z2r82986likz0b0zy37bywicrvz9dizzw9p52gs1lx0is1fy"; + rev = "34027915de6496460d8e68b5991dd24d47d54859"; + sha256 = "0yj4wb5sdsbh3gp0sh2ajrrn6s8vg492809g4gxkxp30jhr6xc9q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d48e4fdc6c7079a1ca70c1e879473a98c11bbe6c/recipes/wavefront-obj-mode"; @@ -71806,12 +72581,12 @@ web-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "web-mode"; - version = "20170410.1335"; + version = "20171017.1214"; src = fetchFromGitHub { owner = "fxbois"; repo = "web-mode"; - rev = "841f253e11e3c5880b357204190996c4ad98d9dc"; - sha256 = "009s886spm45jjk7valdk3kjb4dchc60wzqlswgylbvcmx6b3mxn"; + rev = "4754211f44e9fe1389e4378553ad538460282225"; + sha256 = "0c1p8srr1zacpp697rwy83rjz51yhgff9w1sb4cv9wi5yzfsic56"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f0565555eaa356141422c5175d6cca4e9eb5c00/recipes/web-mode"; @@ -71866,6 +72641,27 @@ license = lib.licenses.free; }; }) {}; + web-search = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "web-search"; + version = "20170911.1246"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "web-search.el"; + rev = "410c490ecf82a3693db3eb62003302233471ff84"; + sha256 = "0hib0ffwikdydkm5asmvzj6l49pd9694psnn2c010j3ixw6i8gsl"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/503ef2042cc14dbe53e7121b8d0b5ccbdf6c882b/recipes/web-search"; + sha256 = "08iflbp6rmsxsy2lahsdjj9ki70ixqhsas0vxzawz5pi5vk2x9gj"; + name = "web-search"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/web-search"; + license = lib.licenses.free; + }; + }) {}; web-server = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "web-server"; @@ -71911,12 +72707,12 @@ webpaste = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "webpaste"; - version = "20170328.1448"; + version = "20171025.956"; src = fetchFromGitHub { owner = "etu"; repo = "webpaste.el"; - rev = "382e01d787c4a0fa6bd4c58bed1810ed5b7787e2"; - sha256 = "1nz4ri36k49gwdkc9sb886avpijijssrj4frjyrw27ff9aj9q9h0"; + rev = "f047313c656e0ea85033bacc564d02ae6f4605ff"; + sha256 = "00mawa0n415dcnrldqmgwwjcj2rv59wblrbzkc2g9i388nl41rp5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13847d91c1780783e516943adee8a3530c757e17/recipes/webpaste"; @@ -71929,22 +72725,22 @@ license = lib.licenses.free; }; }) {}; - websocket = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + websocket = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "websocket"; - version = "20161113.1736"; + version = "20170829.457"; src = fetchFromGitHub { owner = "ahyatt"; repo = "emacs-websocket"; - rev = "fbd9e2263d2d7168aae31d4f8bde38f511e9d2ec"; - sha256 = "04kg6njw5frp9xafjyqff57m0a2r15r7c57mnb6dw6lgazxlscgb"; + rev = "33d0406901f7306b326928190b6ad94247d01a5f"; + sha256 = "0lw7s121jfqaqrl3b2w9jbx3adh3nq0mkh911c40s4ydxm6xcnk3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/websocket"; sha256 = "1v8jlpahp30lihz7mdznwl6pyrbsdbqznli2wb5gfblnlxil04lg"; name = "websocket"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/websocket"; license = lib.licenses.free; @@ -71978,8 +72774,8 @@ src = fetchFromGitHub { owner = "the-kenny"; repo = "weechat.el"; - rev = "a0d81074088d313dd596af6602e51d4253a55ca5"; - sha256 = "08ibyabvdlmp74xa950al3axmzsqpcal30313ab5wgb746sh3dvm"; + rev = "2edf75a8405680ba94528864668b226102dd37c5"; + sha256 = "14p8q2bjpgka3mdfphllz13kp6l85aghn2l64fwbcpy0i4xgicbg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e38255a31a4ca31541c97a506a55f82e2670abe6/recipes/weechat"; @@ -72041,8 +72837,8 @@ src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-wgrep"; - rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8"; - sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz"; + rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"; + sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9648e3df896fcd97b3757a727108bc78261973cc/recipes/wgrep"; @@ -72062,8 +72858,8 @@ src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-wgrep"; - rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8"; - sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz"; + rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"; + sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9648e3df896fcd97b3757a727108bc78261973cc/recipes/wgrep-ack"; @@ -72083,8 +72879,8 @@ src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-wgrep"; - rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8"; - sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz"; + rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"; + sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2c50b704343c4cac5e2a62a67e284ba6d8e15f8a/recipes/wgrep-ag"; @@ -72100,12 +72896,12 @@ wgrep-helm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, wgrep }: melpaBuild { pname = "wgrep-helm"; - version = "20140528.1427"; + version = "20170510.1539"; src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-wgrep"; - rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8"; - sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz"; + rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"; + sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9648e3df896fcd97b3757a727108bc78261973cc/recipes/wgrep-helm"; @@ -72125,8 +72921,8 @@ src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-wgrep"; - rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8"; - sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz"; + rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"; + sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c39faef3b9c2e1867cd48341d9878b714dbed4eb/recipes/wgrep-pt"; @@ -72163,12 +72959,12 @@ which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "which-key"; - version = "20170407.605"; + version = "20170817.1107"; src = fetchFromGitHub { owner = "justbur"; repo = "emacs-which-key"; - rev = "bb30f56868ae4888a8ac5a406c7c7ee2ff168f9b"; - sha256 = "1v50qa611lqj0hjp8v6pnyqvnmljkd0p5g9aj517kv5d7b2rk1dj"; + rev = "6d2e17c949ff7bfebfe0b0878a93d94b31585031"; + sha256 = "03szbjp6j6rjj43k3vs2jay4y7bnhhh1ymgqv8vvdnqsf88pdg88"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key"; @@ -72247,12 +73043,12 @@ whitespace-cleanup-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "whitespace-cleanup-mode"; - version = "20150603.447"; + version = "20170505.1923"; src = fetchFromGitHub { owner = "purcell"; repo = "whitespace-cleanup-mode"; - rev = "cdc6ee4e33b9e637afabf2075198c5616a44f91f"; - sha256 = "1j6gh435r52p8kjnzqwbnkynmdq541clwxlnzpsjw8n5mspp7g25"; + rev = "6d0a35159ee04ef9f3b1a80c548f545643ddb397"; + sha256 = "0pqvrhws49aqyfp25kcrk9q7ib0ckx9gi6avzmymnpxy9aicnb3r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b461cfe450d7ce6bd0c14be3460cacffc1a32e6f/recipes/whitespace-cleanup-mode"; @@ -72268,12 +73064,12 @@ whizzml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "whizzml-mode"; - version = "20161115.1720"; + version = "20171015.938"; src = fetchFromGitHub { owner = "whizzml"; repo = "whizzml-mode"; - rev = "b5804004fb35c603468054cf179f4dd6936c8882"; - sha256 = "0x0cxwifqb8pv6j55iwxy7hdk0cvjz0zygayi494y4nhabcyp3kf"; + rev = "9060fdce07c137abc2c494cb72641b9b9d6fbe22"; + sha256 = "10yi3n6pyqirlzxdkv7nvp0d0n1fkjrgwhn0kp5i27dnp3fi0i2b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/11f26b15c326c3b8541bac510579b32493916042/recipes/whizzml-mode"; @@ -72289,12 +73085,12 @@ whole-line-or-region = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "whole-line-or-region"; - version = "20110901.130"; + version = "20170815.212"; src = fetchFromGitHub { owner = "purcell"; repo = "whole-line-or-region"; - rev = "a60e022b30c2f4d3118bcaef1adb77b90e0ca941"; - sha256 = "0ip0vkqb4dm88xqzgwc9yaxzf4sc4x006m6z73a3lbfmrncy2c1d"; + rev = "1220974153b7eaca5192ed87f86182d121e228e4"; + sha256 = "1n44nn0zkk55cnwlincv5i8s36nymnh3bm6jd85h6m97jssxd85l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/whole-line-or-region"; @@ -72307,33 +73103,15 @@ license = lib.licenses.free; }; }) {}; - wid-edit-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "wid-edit-plus"; - version = "20170309.1434"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/wid-edit+.el"; - sha256 = "0w2hjahcq68inabjbdyh3a0wcxd6pdgsp81iqcikxzfvwpzm35a9"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/wid-edit+"; - sha256 = "1wwrsk14hc0wrvy7hm94aw6zg50n2smlqwr6frwpi7yp8y394wiv"; - name = "wid-edit-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/wid-edit+"; - license = lib.licenses.free; - }; - }) {}; wide-column = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wide-column"; - version = "20120814.112"; + version = "20170925.913"; src = fetchFromGitHub { owner = "phillord"; repo = "wide-column"; - rev = "0b382e7a3ceecafcea6c9e7e742fb6d11641b04b"; - sha256 = "0bq39sfipad16skh5q26gp7z24kk93hgnaxb378dzfq1306kmn8q"; + rev = "ce9ef4675485a7bea381077866368ef875226b10"; + sha256 = "0qh8hy4jl59bfg4323a8h4q4a78gn4hsglfk2h23hqssbv4mhsp2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8d29def44ae42dc4b60c1d254a57572bd09faf51/recipes/wide-column"; @@ -72374,8 +73152,8 @@ src = fetchFromGitHub { owner = "foretagsplatsen"; repo = "emacs-js"; - rev = "77d18cf8fcd5a87139650a645d50e71db0ab5712"; - sha256 = "0l6qr5dy6h7p5kdyyygrc4ss50sw7h6fi442dig6la8978jqsli8"; + rev = "b05d584a4b3e0db168c3b920ce4a270b3908d842"; + sha256 = "0shgxd08da8a7ij37k5ybmvyqbqzq4nqxdyfbbpgnh1vgw61gr6c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/78d7a15152f45a193384741fa00d0649c4bba91e/recipes/widgetjs"; @@ -72451,24 +73229,6 @@ license = lib.licenses.free; }; }) {}; - wimpy-del = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "wimpy-del"; - version = "20170309.1436"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/wimpy-del.el"; - sha256 = "0impy9kp1xnhs0834azzndx93p8q53dxdqd9hz0n1mg0h8331c13"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/wimpy-del"; - sha256 = "10qw5lfq2392fr5sdz5a9bc6rvsg0j4dkrwvdhip1kqvajznw49x"; - name = "wimpy-del"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/wimpy-del"; - license = lib.licenses.free; - }; - }) {}; win-switch = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "win-switch"; @@ -72535,12 +73295,12 @@ window-jump = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "window-jump"; - version = "20150213.1236"; + version = "20170809.1508"; src = fetchFromGitHub { owner = "chumpage"; repo = "chumpy-windows"; - rev = "164be41b588b615864258c502583100d3ccfe13e"; - sha256 = "069aqyqzjp5ljqfzm7lxkh8j8firk7041wc2jwzqha8jn9zpvbxs"; + rev = "6bdb51e9a346907d60a9625f6180bddd06be6674"; + sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d44fc32e12f00bbaa799b4054e9ff0fc0d3bfbfb/recipes/window-jump"; @@ -72577,12 +73337,12 @@ window-number = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "window-number"; - version = "20141106.1829"; + version = "20170731.1851"; src = fetchFromGitHub { owner = "nikolas"; repo = "window-number"; - rev = "1d222f0b48c8d51bad956c3000ff0635b883a355"; - sha256 = "0n6a4kriwx7c8shvns3fcdp8l1i66bsca5mgd00p7nllnxvldhn3"; + rev = "d41722de646ffeb3f70d26e4a86a5a1ba5c6be87"; + sha256 = "1ifs7zp8c5m9da5dz0y4cq7pgqgdkz63v00ib07xdycnfjp4w17i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/74523af6e22ebae2f5fe7c4da4e8af8fac5fa074/recipes/window-number"; @@ -72616,33 +73376,15 @@ license = lib.licenses.free; }; }) {}; - window-plus = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "window-plus"; - version = "20170309.1437"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/window+.el"; - sha256 = "1l6fwrd2f58xpf7cprp354bq2fz0hvl9bz73hrbrzyqvnd9kix61"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/window+"; - sha256 = "0fhzb0ay9g9qgcaxpb2qaw15dh0lfmv3x4akyipi3zx11446d06j"; - name = "window-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/window+"; - license = lib.licenses.free; - }; - }) {}; window-purpose = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, imenu-list, let-alist, lib, melpaBuild }: melpaBuild { pname = "window-purpose"; - version = "20161017.433"; + version = "20171018.821"; src = fetchFromGitHub { owner = "bmag"; repo = "emacs-purpose"; - rev = "67ecaa2b52c113f92913c3beb9fb7f302bd50318"; - sha256 = "0jvihc94iwrb2zxr1qg9yc5fypd1a028d2wfhvg68ipmngcf4q2g"; + rev = "2b8059256a90caf578ca5ba62205ca7f0d67a740"; + sha256 = "1pv5sjsvm3xmhfbf0j2581ifp7yykgzhd8bml9cav242r1m2dnh7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5813120ab674f6db7d0a486433d8faa6cfec1727/recipes/window-purpose"; @@ -72676,6 +73418,48 @@ license = lib.licenses.free; }; }) {}; + windwow = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "windwow"; + version = "20170815.1848"; + src = fetchFromGitHub { + owner = "vijumathew"; + repo = "windwow"; + rev = "77bad26f651744b68d31b389389147014d250f23"; + sha256 = "0vbmmf8wm76k389g5ncs0grwlpwp3glpwvhdi5dfxaqcp2phaaad"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/12aba18872021ce0affa96c46a17353c7d073ca2/recipes/windwow"; + sha256 = "0cbkp98pwzj484akdbidvdz4kqxv6ix6paimpxnag6fffciq245h"; + name = "windwow"; + }; + packageRequires = [ cl-lib dash emacs ]; + meta = { + homepage = "https://melpa.org/#/windwow"; + license = lib.licenses.free; + }; + }) {}; + winnow = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "winnow"; + version = "20170903.506"; + src = fetchFromGitHub { + owner = "dgtized"; + repo = "winnow.el"; + rev = "18cb6b94338f3b7b4f2cd0331dad22f82dd9e0d3"; + sha256 = "1wp00zxxcibvl6vjwmvhkgcbi76dyb2g8c30wy4kp7876cpc8hgv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/58891c2057ec834f999e3bf82af15e0617a4d4cf/recipes/winnow"; + sha256 = "07kwjdmvzgvg7gc53dv10jfi212m0pimzrhiga38lrqrnrw631m0"; + name = "winnow"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/winnow"; + license = lib.licenses.free; + }; + }) {}; winpoint = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "winpoint"; @@ -72718,22 +73502,22 @@ license = lib.licenses.free; }; }) {}; - winum = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + winum = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "winum"; - version = "20170217.110"; + version = "20171028.702"; src = fetchFromGitHub { owner = "deb0ch"; repo = "emacs-winum"; - rev = "3c28c0dd685ee71b073e6a336efe3bff21f65a9b"; - sha256 = "0bxwhkshyxzq5f2jlsp6z97j2gdgz3a0hbp8bvjj71biywhn2m26"; + rev = "c56d1cdb8d1723eb4c0d7a7eb3ecd2697739146c"; + sha256 = "09jd5srlnd4060hs719qil84ssmnvq196bz7ywaswgapv1gs1h6r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c1caa7a54a910a44322fdee300e8cce6ddcde071/recipes/winum"; sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw"; name = "winum"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib dash ]; meta = { homepage = "https://melpa.org/#/winum"; license = lib.licenses.free; @@ -72745,8 +73529,8 @@ version = "20160419.1232"; src = fetchhg { url = "https://bitbucket.com/ArneBab/wisp"; - rev = "626eaec86a97"; - sha256 = "13hcp52krlb0vw3wxvw9mdcm7qxr80p2rs52zkkzrc73qvzxvwn3"; + rev = "7633b2a5133f"; + sha256 = "0j6j9wkmq95dhx5cr3z2gpx5mvsqsgissp2060ij252ijc3l9k4a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode"; @@ -72762,12 +73546,12 @@ wispjs-mode = callPackage ({ clojure-mode, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wispjs-mode"; - version = "20140103.1432"; + version = "20170720.1219"; src = fetchFromGitHub { owner = "krisajenkins"; repo = "wispjs-mode"; - rev = "be094c3c3223c07b26b5d8bb8fa7aa6866369b3f"; - sha256 = "188h1sy4mxzrkwi3zgiw108c5f71rkj5agdkf9yy9v8c1bkawm4x"; + rev = "60f9f5fd9d1556e2d008939f67eb1b1d0f325fa8"; + sha256 = "1hhd8ixb2wr06vrd1kw0cd5jh08zm86h2clbvzv9wmqpawwxfm5f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a628330ee8deeab2bd5c2d4b61b33f119c4549d8/recipes/wispjs-mode"; @@ -72780,22 +73564,22 @@ license = lib.licenses.free; }; }) {}; - with-editor = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "with-editor"; - version = "20170111.609"; + version = "20171006.352"; src = fetchFromGitHub { owner = "magit"; repo = "with-editor"; - rev = "8ae3c7aed92842f5988671c1b3350c65c58857e0"; - sha256 = "1jy5jxkr99a9qp7abmncaphp0xd3y6m3fflvj3fq1wp33i3f7cfn"; + rev = "ee39f232f2daf997498a4030d104c35ae397f457"; + sha256 = "17m5b7g5sdh0iy6lpj2inv9akscyw83nyx9hl71disdk7diq15hn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor"; sha256 = "1wsl1vwvywlc32r5pcc9jqd0pbzq1sn4fppxk3vwl0s5h40v8rnb"; name = "with-editor"; }; - packageRequires = [ async dash emacs ]; + packageRequires = [ async emacs ]; meta = { homepage = "https://melpa.org/#/with-editor"; license = lib.licenses.free; @@ -72822,6 +73606,27 @@ license = lib.licenses.free; }; }) {}; + with-simulated-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }: + melpaBuild { + pname = "with-simulated-input"; + version = "20170820.2317"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "with-simulated-input"; + rev = "af9a38ce28a741e6d8742750bef5d7b5afa13796"; + sha256 = "0iann7zi9bgd3vmvxvg2n6x24hkyzbchbli1ymsmfrn8rif9byf7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e4ddf16e19f5018106a423327ddc7e7499cf9248/recipes/with-simulated-input"; + sha256 = "0113la76nbp18vaffsd7w7wcw5k2sqwgnjq1gslf4khdfqghrkwk"; + name = "with-simulated-input"; + }; + packageRequires = [ emacs s seq ]; + meta = { + homepage = "https://melpa.org/#/with-simulated-input"; + license = lib.licenses.free; + }; + }) {}; wn-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wn-mode"; @@ -72864,27 +73669,6 @@ license = lib.licenses.free; }; }) {}; - wolfram-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "wolfram-mode"; - version = "20170221.120"; - src = fetchFromGitHub { - owner = "kawabata"; - repo = "wolfram-mode"; - rev = "d27a0f23791abde2bdda22e50108b99f11c13ed7"; - sha256 = "0r82h3x1ggirgd0a03qr71pdcxgkc4s3307ggwy86j4asd308m79"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/299fe35d0a5a11d20f0b917bc8f406bd0f011c93/recipes/wolfram-mode"; - sha256 = "1bq95lamzz45macpklnq1kxw9ak4x4f41kx16f472dn650ff0zlf"; - name = "wolfram-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/wolfram-mode"; - license = lib.licenses.free; - }; - }) {}; wonderland = callPackage ({ dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, multi }: melpaBuild { pname = "wonderland"; @@ -72909,12 +73693,12 @@ wordgen = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wordgen"; - version = "20161104.944"; + version = "20170803.1120"; src = fetchFromGitHub { owner = "Fanael"; repo = "wordgen.el"; - rev = "c46d8da6dae8c82d3a5d8b903a12dd5f2ae94939"; - sha256 = "0gcbj64dkzwa2xfp6y9lwb5m678g7lf9jrkr9whdrm9mgpifmdmi"; + rev = "aacad928ae99a953e034a831dfd0ebdf7d52ac1d"; + sha256 = "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5cfdc64a9aa79575dad8057c4cd747d2cdd460aa/recipes/wordgen"; @@ -72934,8 +73718,8 @@ src = fetchFromGitHub { owner = "gromnitsky"; repo = "wordnut"; - rev = "bcdb86f1f7ee91f721a427b19492ee9578ae74fc"; - sha256 = "0p8nl5ccic8jx0dzy2976v5mkwb5sq4165qnhq4i26741qbalb62"; + rev = "6e223dced5b865e9d38af6f9b7e57b3a56d362bb"; + sha256 = "1w4037jplkl8sr6b7qj4cb5qcrjwz6vnfxfshdjimilwgc3ihs16"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/321c5e171eb4da85980968ac3c8ef4300101c0b1/recipes/wordnut"; @@ -72948,36 +73732,15 @@ license = lib.licenses.free; }; }) {}; - wordsmith-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "wordsmith-mode"; - version = "20151117.236"; - src = fetchFromGitHub { - owner = "istib"; - repo = "wordsmith-mode"; - rev = "597e1e7c7ef89b06ed8280251ecd8f40ce55e1bf"; - sha256 = "0d2byl3si2r0zh5ih6xpsgcd9r114ry0lzg5vcf31rr2gqf0j06h"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d9f8f01f1807de24fb6e92b355d05b81be4bab07/recipes/wordsmith-mode"; - sha256 = "1570h1sjjaks6bnhd4xrbx6nna4v7hz6dmrzwjq37rwvallasg1n"; - name = "wordsmith-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/wordsmith-mode"; - license = lib.licenses.free; - }; - }) {}; worf = callPackage ({ ace-link, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, swiper, zoutline }: melpaBuild { pname = "worf"; - version = "20170326.712"; + version = "20171002.1118"; src = fetchFromGitHub { owner = "abo-abo"; repo = "worf"; - rev = "820fe2316d672e7bb2be7a2ead8ad5ed027f1a9a"; - sha256 = "13d089n9y8y7ka708byg9704rq0slxvdzfhw8vk0yzzd3jrbfgs3"; + rev = "cf2f382b368bcb3c8ba4785a7fac8ee9300e80b5"; + sha256 = "0rnvmwdks8m4f6dwnyinv9rli58mlvlnrg7swpdjfh0g3bqgr7w5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f00f8765e35c21dd1a4b5c01c239ed4d15170ab7/recipes/worf"; @@ -73081,8 +73844,8 @@ src = fetchFromGitHub { owner = "rejeep"; repo = "wrap-region.el"; - rev = "0eff3165db36464d28ed303ab25b715307cbdee0"; - sha256 = "09fzbbrdgq19c3gylj4i0c5g070k65w943wz28mzis8b403vzh3n"; + rev = "fbae9b0f106187af19823f1a6260b5c68b7252e6"; + sha256 = "1k5q925igdv5lnpbmy0c2f0j3rj7yh4l6bxbd61g9lcnyl0j3ym9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/wrap-region"; @@ -73098,12 +73861,12 @@ writegood-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "writegood-mode"; - version = "20160802.1405"; + version = "20170925.647"; src = fetchFromGitHub { owner = "bnbeckwith"; repo = "writegood-mode"; - rev = "a99896531a260db11acb931b68dbdc45030832d7"; - sha256 = "15g133ql8mgjchm6h255q77b6rks843lzva44kgjmfgwmgbfmc1b"; + rev = "416453af5a44da52646052fa2ee3a63acfd7bf8a"; + sha256 = "08z35gc3j25h02jmlkzsis4n7a6sy6zy2qykcnp8b3s8y51d0dg0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/75c5a4304999fc3f5a02235a1c2c904238d2ce4f/recipes/writegood-mode"; @@ -73119,12 +73882,12 @@ writeroom-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, visual-fill-column }: melpaBuild { pname = "writeroom-mode"; - version = "20170324.1514"; + version = "20170623.327"; src = fetchFromGitHub { owner = "joostkremers"; repo = "writeroom-mode"; - rev = "071ebbecf6bc9dc40c5d1a120a9aa3d27ddaa81b"; - sha256 = "1w4bhp9b3jm6gqj4lvxbljr2xw05xldsxb8xaddj3ac82afq7kh5"; + rev = "9e924dd7dd83f10b026c89cddef7e1646f1a3869"; + sha256 = "1v7hbmi9dqdqyr3png1xwhg3k05jr2q6jdjmj48bxiixl9zhcq9p"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/writeroom-mode"; @@ -73161,12 +73924,12 @@ wsd-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wsd-mode"; - version = "20160930.236"; + version = "20170731.837"; src = fetchFromGitHub { owner = "josteink"; repo = "wsd-mode"; - rev = "cdbdf48f60900cedca2805a8b0875327a3a81f19"; - sha256 = "1ms30d1vz4nd90q6nypz5vixw1s3x6c68lm3l9zgq2ls6bw3kz93"; + rev = "566ae4b45b4a34b985f1b363d6cdbd463ab6aba6"; + sha256 = "0k30i1gq6ljxwf97f6nlz8b6blh6hg0b4syfx64lzf0zc22di2l4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/wsd-mode"; @@ -73182,12 +73945,12 @@ wttrin = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, xterm-color }: melpaBuild { pname = "wttrin"; - version = "20170322.2041"; + version = "20170614.506"; src = fetchFromGitHub { owner = "bcbcarl"; repo = "emacs-wttrin"; - rev = "00ae9ee54056b16bb20c5b35e6bd262e6bda7eb5"; - sha256 = "09vxi1vm5vsh7q9dqjbya8qrrclwid8r2hq9ycc46mbhx5blyz45"; + rev = "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc"; + sha256 = "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1b2b6876562f1fadd4af1ea9b279ac4dc1b21660/recipes/wttrin"; @@ -73284,6 +74047,27 @@ license = lib.licenses.free; }; }) {}; + x509-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "x509-mode"; + version = "20170909.632"; + src = fetchFromGitHub { + owner = "jobbflykt"; + repo = "x509-mode"; + rev = "240b5045dcce18190bdabd91d74f48d3610a6fe2"; + sha256 = "0pi5hi0n6f2hif5hz1g04rk509rb4jlw6nrlhc8fg5k6x4n7ci3p"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/27145423eb4e68e006ef96868a35b99d119a3099/recipes/x509-mode"; + sha256 = "15k3pxj3a2vaf64cl2xrzzlvzbqzqc29qyfd8brhq6yc69snr0vj"; + name = "x509-mode"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/x509-mode"; + license = lib.licenses.free; + }; + }) {}; x86-lookup = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "x86-lookup"; @@ -73308,15 +74092,15 @@ xah-css-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-css-mode"; - version = "20170312.151"; + version = "20170821.400"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-css-mode"; - rev = "b710877056cc91641aff82d26af01db728131563"; - sha256 = "0hmnbbdf2rsw24dspfbbdr0b0f4wlrrkw9pzc73dcn8y0pafavyg"; + rev = "7167c7a9a0f0dcc167dafa833efd43a0c9ae4307"; + sha256 = "1iychyj79g9mxpr688f2a9w8bbsgm2r88rr11b42gagal0kgk8q4"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/57c2e2112c4eb50ee6ebddef9c3d219cc5ced804/recipes/xah-css-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-css-mode"; sha256 = "1kkwfyf94v3ni3d4szy28v49p6f3hy8ww9mlris2vvgc726wy6hr"; name = "xah-css-mode"; }; @@ -73329,15 +74113,15 @@ xah-elisp-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-elisp-mode"; - version = "20170127.1616"; + version = "20170828.1"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-elisp-mode"; - rev = "c32bae59a8d8daf97769b1c57b70ef9fb8b2570c"; - sha256 = "1gs6h8csy8yz3f6gvqn3lx3i6xdqrddfhg54m4g8c5yxz0202yyg"; + rev = "6e94446566df206911afa107d06aec50ac3a56fc"; + sha256 = "028y8dlb5b4vclg03imcipjp56l1m4klgj69f0n7ir0rr6xwl3f6"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f2e996dd5b0061371662490e0b21d3c5bb506550/recipes/xah-elisp-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-elisp-mode"; sha256 = "0cl07hw1hd3hj7wrzkh20m8vcs7mqsajxjmnlbnk2yg927yyijij"; name = "xah-elisp-mode"; }; @@ -73350,15 +74134,15 @@ xah-find = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-find"; - version = "20170407.251"; + version = "20170821.358"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-find"; - rev = "a83fd078b9b475edc5fd29e0c7d4f02f203e0390"; - sha256 = "166f4yjz1s6bbjz4cw2n8hgv98ambhjy9qs7hkq9d7jjpcjgyzwr"; + rev = "6b7a60d6210d42559b46f0e17d7a0e4a2607f887"; + sha256 = "11whm7cnz6z61lycm5w6qmvbbl5f2c2lpgmk5c5whks7v3bkq6n6"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1d94ffd9c3380cd56770f253e43d566a95083e37/recipes/xah-find"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-find"; sha256 = "1d3x9yhm7my3yhvgqnjxr2v28g5w1h4ri40sy6dqcx09bjf3jhyq"; name = "xah-find"; }; @@ -73371,15 +74155,15 @@ xah-fly-keys = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-fly-keys"; - version = "20170415.740"; + version = "20171026.422"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-fly-keys"; - rev = "96f697741eb4dc48afa1ab45f33cb21695c4fbb5"; - sha256 = "1dqh6dkxw3h1z72snbpn2a8fgyr9a70n3p267pjiblg7wzxvrdiz"; + rev = "6130b10b0f133344d5e6afa7c083d400c8e780ca"; + sha256 = "08shy433x5papxdbr6q2xsccpg1h0vym9vv6zcaz8vzqw33kr0w7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/fc1683be70d1388efa3ce00adc40510e595aef2b/recipes/xah-fly-keys"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-fly-keys"; sha256 = "0bzfz8q7yd1jai0pgngxwjp82nsfx5ivn24cb20vc5r8hhzj17cs"; name = "xah-fly-keys"; }; @@ -73392,15 +74176,15 @@ xah-get-thing = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-get-thing"; - version = "20170303.1530"; + version = "20170821.353"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-get-thing-or-selection"; - rev = "1eef698b7be06fa49347798089ca1e2ed8484da5"; - sha256 = "0cysykwnwpy43mnx9fjiqk1r004ac6c7h92zhki8858bcgjnwzzk"; + rev = "e3ef069ea9fea3a092689d45c94c6211b51d0ea4"; + sha256 = "0z9pflz99p2i7czccpzvw7bkbshfycpb6js9n8a12yhc1ndbz6z0"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9e8dc32a5317f0ff0e72fa87220243dd742eb1ef/recipes/xah-get-thing"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-get-thing"; sha256 = "0m61bmfgqy19h4ivw655mqj547ga8hrpaswcp48hx00hx8mqzcvg"; name = "xah-get-thing"; }; @@ -73413,15 +74197,15 @@ xah-lookup = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-lookup"; - version = "20170227.1044"; + version = "20170821.405"; src = fetchFromGitHub { owner = "xahlee"; repo = "lookup-word-on-internet"; - rev = "4843663678db42827d12f2514f8ad4e2f4abcfb9"; - sha256 = "1hr4m5lrwhx1jf8zlwpx60w9528vq49j0q8kzydlsb895nivnn3s"; + rev = "cd5d622140e78e01d0ab32fcb43edc49f4e7fbb5"; + sha256 = "1i952mm0mxiaphnwimlr28swrk8b0k6rwx90f4s5s8idcp6wvp4y"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/38e6609a846a3c7781e0f03730b79bbf8d0355a9/recipes/xah-lookup"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-lookup"; sha256 = "0z0h1myw6wmybyd0z2lw4l59vgm6q6kh492q77kf3s0fssc0facc"; name = "xah-lookup"; }; @@ -73434,15 +74218,15 @@ xah-math-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-math-input"; - version = "20170210.2128"; + version = "20170905.849"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-math-input"; - rev = "a4b8aa833f65c028f7f94b9c3b5b8993b8961736"; - sha256 = "02xin68nrzlg6qaniincj5dk1aw5fbqfb8cj00yjyyjnv55jrbpn"; + rev = "fcdfbed46ff81c8da84422611e0009c6b267e359"; + sha256 = "01s4fhnp4zqh2cmqbp2sh1sbdcyq4i5hy1r8manqa26m041xk2z0"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/95d57e33e6d60dc20d6452b407ea1486604ba23a/recipes/xah-math-input"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-math-input"; sha256 = "1afikjk46sjf97fb5fc8h63h7b9af010wxhsbpnmabsb4j72rx5a"; name = "xah-math-input"; }; @@ -73455,15 +74239,15 @@ xah-reformat-code = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-reformat-code"; - version = "20170111.812"; + version = "20170821.411"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-reformat-code"; - rev = "7e5bbd09be8035a482a76417d900cb5d3a70e1cd"; - sha256 = "04xwf9jxk4805bl7xj05kjfgl7m71zp94qdvw4g37s6q8v25j73d"; + rev = "7fec8b28e46b8cc2813fac5149e3bbb56c0aa6b1"; + sha256 = "0mz47laig0p7fwwiv66x60f5jg0kh8zvjd1vg3nnn3xvk37lv2cw"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/45e731ccee5ccbf97169e32a16300b5fb78e1155/recipes/xah-reformat-code"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-reformat-code"; sha256 = "1sj407nbh4x586hvsq4ycr0ahhxin0wgfwdj0551cz8793wvjpzp"; name = "xah-reformat-code"; }; @@ -73476,15 +74260,15 @@ xah-replace-pairs = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xah-replace-pairs"; - version = "20170221.2112"; + version = "20170823.2028"; src = fetchFromGitHub { owner = "xahlee"; repo = "xah-replace-pairs"; - rev = "b5bd1ff843063f6eba32ab71f33f0ebde57d5e41"; - sha256 = "1m5yd9kwsjy37f2czqhjpj5dkqf62pgj40a4ziy65mch4niw0slz"; + rev = "f051772e097723bafd05a7a05f283b900375ebd7"; + sha256 = "0r85y1qaqvnj36c931cz4qzxwf86ai35xjaw6bwy7hjjdxp82cz0"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0e7de2fe0e55b1a546f105aa1aac44fde46c8f44/recipes/xah-replace-pairs"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xah-replace-pairs"; sha256 = "0r4aq9davh3ypzcjixr3aw9g659dhiblwbmcyhm8iqhkavcpqr1x"; name = "xah-replace-pairs"; }; @@ -73497,15 +74281,15 @@ xahk-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xahk-mode"; - version = "20161218.2311"; + version = "20170821.407"; src = fetchFromGitHub { owner = "xahlee"; repo = "xahk-mode.el"; - rev = "24aa00cd0a8c47f7d8906379eeccbeca22c1a50b"; - sha256 = "1npa30kp5jaqn7qmsca0a3ch0428l4n8w0hix0bvlfwr5s4zksfy"; + rev = "02012b20603c00e3b2ef32159a690ed1e05d12c3"; + sha256 = "09nakcfczb95vd48f8z77igmi1kbcblmgpzfzm9i7df4jcfkkh3c"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3d6422756b435f59ead15fa7e8081f5c88b2e93f/recipes/xahk-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/05eed39bae37cc8359d2cc678052cbbcc946e379/recipes/xahk-mode"; sha256 = "1bs12z7lnqlhm44hq0l98d0ka1bjgvm2yv97yivaj9akd53znca9"; name = "xahk-mode"; }; @@ -73557,6 +74341,27 @@ license = lib.licenses.free; }; }) {}; + xcode-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "xcode-project"; + version = "20170922.612"; + src = fetchFromGitHub { + owner = "nhojb"; + repo = "xcode-project"; + rev = "ec5d503a51430205daa6f5f382d921b6412b4b55"; + sha256 = "0m3262mqqhjcpzw8m4n403kr75m561kxvwf8clzwmv0fvkf8aazk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/49b866ebf7e707bc74525f83dd5038e6e860fcef/recipes/xcode-project"; + sha256 = "0igp30f6ypmp4l8zmdfpa5bza4avm7mq2gj8v7b3ii655v91n6vi"; + name = "xcode-project"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/xcode-project"; + license = lib.licenses.free; + }; + }) {}; xcscope = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xcscope"; @@ -73602,12 +74407,12 @@ xml-plus = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xml-plus"; - version = "20160210.1942"; + version = "20170727.1651"; src = fetchFromGitHub { owner = "bddean"; repo = "xml-plus"; - rev = "1b728dda31dd13506aa4e1220f925bb43c93847b"; - sha256 = "0c30xh7qxg3y2p5jqkbssz5z53rx0yp64qqyy9f87qzgkcd2jd8k"; + rev = "232fa863c08fc159b21dd58c39ea45dce3334895"; + sha256 = "0b7v59dya346ds1wad0avrqhjimx5n9r3pcgqafagzf34hdcv3jy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/244388d158efda6fe8c1362a65b89b352c444422/recipes/xml+"; @@ -73749,12 +74554,12 @@ xquery-tool = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xquery-tool"; - version = "20160823.902"; + version = "20170605.126"; src = fetchFromGitHub { owner = "paddymcall"; repo = "xquery-tool.el"; - rev = "b81b5862e8541aca5231840eb176afad7ab55cf3"; - sha256 = "0dv3gl9djs9sbsg5mhdfnnv61ir9xccqijh7i2b82gq2j3lqhibm"; + rev = "0d1e2960c48701b83be5255d56324f65a6ee182e"; + sha256 = "0x6927x18nimh9rgnkl8dyc6r437a03byzscgg053lbg0cf2mqp1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cc71e5ea4a0ecb006f62617f5b6caadc9b3c77b2/recipes/xquery-tool"; @@ -73770,12 +74575,12 @@ xref-js2 = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "xref-js2"; - version = "20160803.116"; + version = "20170530.126"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "xref-js2"; - rev = "031def02271fdbe2e0ab30515c7291a239fea4e6"; - sha256 = "1i3gsv7npf6lg7hakky6yxn96aqjdlridj74l0vhj55j2w7ia6f8"; + rev = "d5f93605405989529c2f66b542def6c32429b927"; + sha256 = "1vzsw257xkqwlgfj8d5hnrirjhxzzs9d8ms40ihb2zwsxn70im53"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b5dab444ead98210b4ab3a6f9a61d013aed6d5b7/recipes/xref-js2"; @@ -73795,8 +74600,8 @@ src = fetchFromGitHub { owner = "CQQL"; repo = "xresources-theme"; - rev = "09a0bfc1684161dd1cdc899c027808a99646a652"; - sha256 = "171vffga2yzxqmgh77vila6x96bz1i6818f1pfaxblw1hz2ga341"; + rev = "feb0552d31cb54210eabbc1abe32c8ea62841b6f"; + sha256 = "1dfksid7dc27dz43lrriyr724qs7pf7dqhkmcai6b5qbi893ib8y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4cef3a5683ea572f823d915ec2a94d591ac915d6/recipes/xresources-theme"; @@ -74001,12 +74806,12 @@ yahoo-weather = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yahoo-weather"; - version = "20160703.2008"; + version = "20170822.1544"; src = fetchFromGitHub { owner = "lujun9972"; repo = "yahoo-weather-mode"; - rev = "5154c320400fc20a8deb1b43e21f790709c4af76"; - sha256 = "0f3jh0y14kkbflsdpf4c6qlzdc0jk5p3c6xxs4hd7mb8af32rrvh"; + rev = "a74e29bc81b13efe285b87fa4d0694d75f8e2bb5"; + sha256 = "1nimmv84q5zsv81ji3nmvpmi30f8xh0ypa88hpdpykc5iirj1m0x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ae5ca93d48a2d24787c3d4ed7ab3a65aa8023f4f/recipes/yahoo-weather"; @@ -74019,6 +74824,27 @@ license = lib.licenses.free; }; }) {}; + yahtzee = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "yahtzee"; + version = "20171022.712"; + src = fetchFromGitHub { + owner = "drdv"; + repo = "yahtzee"; + rev = "5263fb8883d37d79a4ed34dd3216a8947d2ae4a0"; + sha256 = "1qv8p3zpxkkp0ncq3cs8sq2bj4jrxs4s5jfc5hbs905a9z8bsnq9"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/200169fdabce0ae3a2ecb6f4f3255c15ec3ed094/recipes/yahtzee"; + sha256 = "1fnywiami9mszagmms27dmak6chcichdi7q70x5c6aimc4jb98jk"; + name = "yahtzee"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/yahtzee"; + license = lib.licenses.free; + }; + }) {}; yalinum = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yalinum"; @@ -74043,12 +74869,12 @@ yaml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yaml-mode"; - version = "20170406.241"; + version = "20170727.1531"; src = fetchFromGitHub { owner = "yoshiki"; repo = "yaml-mode"; - rev = "64b28913bfe910b147d6ee16488dbaedb1452ca6"; - sha256 = "0c4c9qa8avqnkd0qp88wdc1jpp674bghma4x0bvbi147g224ybp7"; + rev = "28c34033194130d452d5c958b5241c88d42ca02b"; + sha256 = "1m3fr19sfkr7d94qzqkl7x1jmhpar2hnhq6mjscd3lfcqkifh6kv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/yaml-mode"; @@ -74124,54 +74950,36 @@ license = lib.licenses.free; }; }) {}; - yankpad = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + yankpad = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yankpad"; - version = "20170220.55"; + version = "20170607.819"; src = fetchFromGitHub { owner = "Kungsgeten"; repo = "yankpad"; - rev = "0f2af3671f5f3b879a2c9a3f521f1d4066889d58"; - sha256 = "0qx98klmc40064si47s7ivvyx3vzki1skyjkxszi6gl8g5k0i1dl"; + rev = "70e755fcf58e37092de2c335355eab93d5f1fb44"; + sha256 = "1ijd3vpym573p96dh81pw9rzlmman7dvamhvnf0jqp8mmy4g4bml"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e64746d10f9e0158621a7c4dc41dc2eca6ad573c/recipes/yankpad"; sha256 = "1w5r9zk33cjgsmk45znfg32ym06nyqj5q3knr59jmn1fafx7a3z4"; name = "yankpad"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/yankpad"; license = lib.licenses.free; }; }) {}; - yaoddmuse = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "yaoddmuse"; - version = "20170325.1752"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/yaoddmuse.el"; - sha256 = "0vlllq3xmnlni0ws226pqxj68nshclbl5rgqv6y11i3yvzgiazr6"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/yaoddmuse"; - sha256 = "1p68f3xjv55m8lnq5x27b8y87mq685hpm3n9kiga9qq8wxdf2rnf"; - name = "yaoddmuse"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/yaoddmuse"; - license = lib.licenses.free; - }; - }) {}; yapfify = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yapfify"; - version = "20161202.1055"; + version = "20170519.115"; src = fetchFromGitHub { owner = "JorisE"; repo = "yapfify"; - rev = "c22db3683133ed4aff78e280983ec0621ca1cf1f"; - sha256 = "05nilm9adpymx1gs1qvcrrgyv13vf5lm13rp12ljbndk0gx4n8x6"; + rev = "492eb038b35f49b1012fb843d880bccc40f2260b"; + sha256 = "1jj1j525xlwhylsysay52f4rdrwz3r72ghx4iggkxqiqbv919ia4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/060c32d8e9fdc56fe702d265a935d74d76082f86/recipes/yapfify"; @@ -74187,12 +74995,12 @@ yara-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yara-mode"; - version = "20160821.724"; + version = "20170719.2351"; src = fetchFromGitHub { owner = "binjo"; repo = "yara-mode"; - rev = "3ad06bc419329ec9c872fe3292da214b3aa9a1f1"; - sha256 = "12xdhmxilqfrsqkx8dv5g78c0dcarsfjf3gy928rqjfhgslafbq6"; + rev = "af5c05b34a29fc1bd73a6d21c82cc76320b33e5c"; + sha256 = "1v8z3cwwla42d3r317091g5i7bj1hlbr9sd1p9s9b7y134gpd1xp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ef22d2dad1bae62721710bbff4b7228204d7c425/recipes/yara-mode"; @@ -74208,12 +75016,12 @@ yard-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yard-mode"; - version = "20160310.850"; + version = "20170817.537"; src = fetchFromGitHub { owner = "pd"; repo = "yard-mode.el"; - rev = "78792f6a6fbff4f1bc955f494fdb11378e7f8095"; - sha256 = "096ay60hrd14b459cyxxcf9g7i1ivsxg6yhc0q162px6kl1x0m2y"; + rev = "ba74a47463b0320ae152bd42a7dd7aeecd7b5748"; + sha256 = "0zry3p66bvrk32icnd6kkk8y5rrr8crnqjp6wlp889c8c7wm00n1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/afad2677f901b8d27922389afb1d235d5c8edc39/recipes/yard-mode"; @@ -74247,6 +75055,27 @@ license = lib.licenses.free; }; }) {}; + yarn-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "yarn-mode"; + version = "20170709.1237"; + src = fetchFromGitHub { + owner = "anachronic"; + repo = "yarn-mode"; + rev = "998b408d6be05fd1c3a9fd8db6ffaab3bf86d06b"; + sha256 = "09mrcv30n6zmgnwgl5pb2cyk6122a0ng1xg20grpmlwbq3qlr424"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/860fa2a8fdb22be374fa64a5277af3ab484a047a/recipes/yarn-mode"; + sha256 = "08a3lrz670jsf531mn1hwhh7fg5dby6i749cscd6d4dyvkzpz5dg"; + name = "yarn-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/yarn-mode"; + license = lib.licenses.free; + }; + }) {}; yascroll = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yascroll"; @@ -74271,12 +75100,12 @@ yasnippet = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yasnippet"; - version = "20170409.2044"; + version = "20170923.1646"; src = fetchFromGitHub { owner = "joaotavora"; repo = "yasnippet"; - rev = "47f37f70f4748e30010b700b5eca39d5cd063616"; - sha256 = "0rl0hd6cwa5jvzi3aixws90hvin4p7ppylc4jn7v8cnhy2hckzjp"; + rev = "35a4df769cbdebd10d043f16d680bdb16ee858ed"; + sha256 = "0rkk39bm12d3d4gf8r99a2ipjaf1yb0b57rpg44bsqz5jada4a86"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5d1927dc3351d3522de1baccdc4ce200ba52bd6e/recipes/yasnippet"; @@ -74289,6 +75118,27 @@ license = lib.licenses.free; }; }) {}; + yasnippet-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: + melpaBuild { + pname = "yasnippet-snippets"; + version = "20171031.617"; + src = fetchFromGitHub { + owner = "AndreaCrotti"; + repo = "yasnippet-snippets"; + rev = "120d35010a29d028634a1e4c6ec9d00c1bea5515"; + sha256 = "1bd89d9d1m6647kpdsczj6c28r3zkjpqjj7p4qndcrwc9h37r4dv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/25b8d4efe2e7833eb95dfdf33aa3ecc34af7a687/recipes/yasnippet-snippets"; + sha256 = "0i6rk50a9l26r47v9xsnx35ziz4spx5pml3ys8y30n0r0xjdsj51"; + name = "yasnippet-snippets"; + }; + packageRequires = [ yasnippet ]; + meta = { + homepage = "https://melpa.org/#/yasnippet-snippets"; + license = lib.licenses.free; + }; + }) {}; yatemplate = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "yatemplate"; @@ -74296,8 +75146,8 @@ src = fetchFromGitHub { owner = "mineo"; repo = "yatemplate"; - rev = "b58d17e176f77ded83860d33f4f43fcb5f7d2c9c"; - sha256 = "13as073yw6wphcs7w62zicqgva0lh4xx4f1c9sph8ip1wydkr9pg"; + rev = "07da11de32feb6cbce0f8c140c0304e3ba1b42c0"; + sha256 = "10af3pa8rh3rs0vpm436vm5wlwvqkfa3zpqyhdf2i3q4gaqfb902"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8ba3cdb74f121cbf36b6d9d5a434c363905ce526/recipes/yatemplate"; @@ -74312,14 +75162,14 @@ }) {}; yatex = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yatex"; - version = "20170306.55"; + version = "20171030.502"; src = fetchhg { url = "https://www.yatex.org/hgrepos/yatex/"; - rev = "7bf780961390"; - sha256 = "19nxjabwr3c5sjii2pwlgak751wq9h12yp7xd6nz8i6f75md59xs"; + rev = "16763e5b7481"; + sha256 = "1mrcc9amz0kflm570bd2cprhin0z8lr668k2s56mj6shixb61dwh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/yatex"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex"; sha256 = "17np4am7yan1bh4706azf8in60c41158h3z591478j5b1w13y5a6"; name = "yatex"; }; @@ -74374,12 +75224,12 @@ ycmd = callPackage ({ cl-lib ? null, dash, deferred, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pkg-info, request, request-deferred, s }: melpaBuild { pname = "ycmd"; - version = "20170416.312"; + version = "20171027.1412"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "35553f0e8b84f6b1dc149b84dedb52b72a64240a"; - sha256 = "1cwbpl2mi63faxj7izl97qn7gc9g1wy8xig89d2yxyv3isb65la2"; + rev = "d951afd8c1c2f25a5cbeef3acfcec5f72acfd6e4"; + sha256 = "0k6z82a3xkk71lbnw3sxqmr8ixafglivmsb5y35q1jichzz6hail"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b25378540c64d0214797348579671bf2b8cc696/recipes/ycmd"; @@ -74510,12 +75360,12 @@ zeal-at-point = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zeal-at-point"; - version = "20161114.1811"; + version = "20170427.2042"; src = fetchFromGitHub { owner = "jinzhu"; repo = "zeal-at-point"; - rev = "bc71e4ecb154e140fa688add55d26d01b5a52dea"; - sha256 = "15ymggp3j7bxwp5q4ng8g2hnym8psgjyvx5baxh4d0yc54jiq1gx"; + rev = "50a1bd4240ff0db7c8f2046c3b00c5a8e14b9d2f"; + sha256 = "1xy9nbbk0fkd9dm8n0c0gy52vi34s6vgzbnab0hrghn6whs89ig8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4bcb472b6b18b75acd9c68e1fc7ecce4c2a40d8f/recipes/zeal-at-point"; @@ -74528,23 +75378,24 @@ license = lib.licenses.free; }; }) {}; - zeitgeist = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: + zel = callPackage ({ emacs, fetchFromGitHub, fetchurl, frecency, lib, melpaBuild }: melpaBuild { - pname = "zeitgeist"; - version = "20131228.1009"; - src = fetchgit { - url = "git://anongit.freedesktop.org/zeitgeist/zeitgeist-datasources"; - rev = "cdd1c219ed3afa9500403c3c499f49583d599034"; - sha256 = "0xg67asvgav5js03i3bqmh7apndrn0jy5vai0bsh22pq8wgvq083"; + pname = "zel"; + version = "20171014.132"; + src = fetchFromGitHub { + owner = "rudolfochrist"; + repo = "zel"; + rev = "9dae2d212224d1deae1f62561fa8e4d689fd09f2"; + sha256 = "1518wp3zjfdvzz5r22cjgn735c4yxr345qzj40b5agww4dsxmwmp"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/fb5f96d92b33fe97573334038f2fe4f984f37cca/recipes/zeitgeist"; - sha256 = "0m6drp3c6hp70ypbva3ji2dndl9an1jm2zlhnpwmjxsmw47cd732"; - name = "zeitgeist"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b48132eb4c0fd01b9fc31236c5c4701f8f83a806/recipes/zel"; + sha256 = "14qf83n1wz8hg9wfmbh8b50c5xshc28x1xq6wh4g4lfqbfm7marh"; + name = "zel"; }; - packageRequires = []; + packageRequires = [ emacs frecency ]; meta = { - homepage = "https://melpa.org/#/zeitgeist"; + homepage = "https://melpa.org/#/zel"; license = lib.licenses.free; }; }) {}; @@ -74572,12 +75423,12 @@ zenburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zenburn-theme"; - version = "20170306.2250"; + version = "20171010.543"; src = fetchFromGitHub { owner = "bbatsov"; repo = "zenburn-emacs"; - rev = "f031c785b469cf4356fddb997eccf60399e34235"; - sha256 = "029955wp29wdrk1ddmhxixd76vhkp2li3mjaknw9d8iqz819vshc"; + rev = "a26323ca3029d653f658b8236ae9528d242c885b"; + sha256 = "0gx6yl3bl3z7rgl4m1np8bx8b53ywbni4wi2bhc716f4b96q658x"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/zenburn-theme"; @@ -74631,18 +75482,39 @@ license = lib.licenses.free; }; }) {}; + zephir-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: + melpaBuild { + pname = "zephir-mode"; + version = "20170917.2125"; + src = fetchFromGitHub { + owner = "sergeyklay"; + repo = "zephir-mode"; + rev = "c2c6b7451667e68e29c353616f54ef9195c3fffd"; + sha256 = "1h5iv0ggh4jzv180mg8lz72d91b6kcqwy6ypgy3rn50bk6pz06kg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5bd901c93ce7f64de6082e801327adbd18fd4517/recipes/zephir-mode"; + sha256 = "0nxm6w7z89q2vvf3bp1p6hb6f2axv9ha85jyiv4k02l46sjprf4j"; + name = "zephir-mode"; + }; + packageRequires = [ cl-lib emacs pkg-info ]; + meta = { + homepage = "https://melpa.org/#/zephir-mode"; + license = lib.licenses.free; + }; + }) {}; zerodark-theme = callPackage ({ all-the-icons, fetchFromGitHub, fetchurl, flycheck, lib, magit, melpaBuild }: melpaBuild { pname = "zerodark-theme"; - version = "20161212.1151"; + version = "20171016.59"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "zerodark-theme"; - rev = "c7e4d3aa3062aa6c89408720e5b68856a39cd401"; - sha256 = "0yqb9wbq4ava9i02skyvjh6n1gd9lcp7lz1a2skzihc2hmnjw2jg"; + rev = "ccadcfba1a708352508d4c0857359df7425e7574"; + sha256 = "1mg1dhda9zvdinxizckvz454633lrl62a382vdm838295gvc40wm"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/72ef967a9bea2e100ae17aad1a88db95820f4f6a/recipes/zerodark-theme"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d00b78ead693e844e35c760fe2c39b8ed6cb0d81/recipes/zerodark-theme"; sha256 = "1nqzswmnq6h0av4rivqm237h7ghp7asa2nvls7nz4ma467p9qhp9"; name = "zerodark-theme"; }; @@ -74655,15 +75527,15 @@ zig-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zig-mode"; - version = "20170413.130"; + version = "20170920.802"; src = fetchFromGitHub { owner = "AndreaOrru"; repo = "zig-mode"; - rev = "1d2639072736283b6112a7f7cf30da7897b27c3e"; - sha256 = "04s529jsjjb5bann99asspb3wcip7ww2d7niylkza9z6rfcyaj2g"; + rev = "814657c5b6b0600ace78a7bbd216c3e90d611cfd"; + sha256 = "0nhx2wsk3qpdplvwxmdzwlka9255x46ca9vcjb58zbpb5wbfckzx"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/64d12e362a2490e85c8e7a66a5ed1ebff9ce95a6/recipes/zig-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/33895b0ff559ffd18a62c04736597188f55419ee/recipes/zig-mode"; sha256 = "1rmvlsgx01h62imbksxl164d5p0caz49nlgg0z7spvvd9bmplr09"; name = "zig-mode"; }; @@ -74760,12 +75632,12 @@ zone-nyan = callPackage ({ esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zone-nyan"; - version = "20161014.154"; + version = "20170818.944"; src = fetchFromGitHub { owner = "wasamasa"; repo = "zone-nyan"; - rev = "0ec6328ee58d7d140c8c7be84822c07741f3ad2b"; - sha256 = "106sppnp1jd5qcp2ydb180fbhfld90jvfimy8316qvrgk5xc2q57"; + rev = "4b1f8d95f130946718d52806489ffe2762aebfdc"; + sha256 = "1axq4ch7garlfrybq9kgv6x7d8y4dw5y9pqbqlqvlwf4xmdrvzmm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/zone-nyan"; @@ -74841,61 +75713,24 @@ license = lib.licenses.free; }; }) {}; - zones = callPackage ({ fetchurl, lib, melpaBuild }: melpaBuild { - pname = "zones"; - version = "20170309.1440"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/zones.el"; - sha256 = "1mgfv9q4mwng0cqni13kmsridbfqsw66z5cgynlrvagga6v94bq0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/zones"; - sha256 = "1l4qilawlgvanrz4ny4aaqzg011dlqh65g06d44pf6ha586rvzp2"; - name = "zones"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/zones"; - license = lib.licenses.free; - }; - }) {}; - zonokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + zoom = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "zonokai-theme"; - version = "20160321.1925"; + pname = "zoom"; + version = "20171030.529"; src = fetchFromGitHub { - owner = "ZehCnaS34"; - repo = "zonokai-emacs"; - rev = "38ee819b711e848437ba6d563594129a0ecac598"; - sha256 = "16ni0va1adpqdnrkiwmpxwrhyanxp5jwbknii2wnbhgq62s7gv43"; + owner = "cyrus-and"; + repo = "zoom"; + rev = "d92ea444df6f6bb6cae92242f3269582d1b8ab40"; + sha256 = "08riz3dd19c1dixm3c6j5dkkwjpgcib05pxq611w8z0mgsn0hsc5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/80c7b1e01eb23f2f9b71fbeeea7d54ac36bae992/recipes/zonokai-theme"; - sha256 = "1hrpgh03mp7yynqamgzkw7fa70c5pmyjfmfblkfhspnsif8j4v29"; - name = "zonokai-theme"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom"; + sha256 = "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls"; + name = "zoom"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/zonokai-theme"; - license = lib.licenses.free; - }; - }) {}; - zoom-frm = callPackage ({ fetchurl, frame-cmds, frame-fns, lib, melpaBuild }: - melpaBuild { - pname = "zoom-frm"; - version = "20170309.1439"; - src = fetchurl { - url = "https://www.emacswiki.org/emacs/download/zoom-frm.el"; - sha256 = "03f3clivm7nfgg16k9pcshdwbwmjaqk0lcdm9d0180dl1c1z2wvs"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/zoom-frm"; - sha256 = "111lr29zhj8w8j7dbzl58iisqxjhccxpw4spfxx08zxh4623g5mk"; - name = "zoom-frm"; - }; - packageRequires = [ frame-cmds frame-fns ]; - meta = { - homepage = "https://melpa.org/#/zoom-frm"; + homepage = "https://melpa.org/#/zoom"; license = lib.licenses.free; }; }) {}; @@ -75007,12 +75842,12 @@ zoutline = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zoutline"; - version = "20160915.503"; + version = "20170722.651"; src = fetchFromGitHub { owner = "abo-abo"; repo = "zoutline"; - rev = "714c10a25112b3da62696585bea289c3f8e74158"; - sha256 = "1z45p9i89lhqak993kq7rdji84rxrdcsnz1yz9xa2l758mnq5gp1"; + rev = "e86e739b53a1c8a0a2cf6de43dffabb15d465507"; + sha256 = "0ycri5d61pbwhwpwh9qx9m22mb4ab7bgniwgdbi9s8rzqs4q1p91"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4a26341f491145938aee9b531cd861200bfa2f6d/recipes/zoutline"; @@ -75025,21 +75860,21 @@ license = lib.licenses.free; }; }) {}; - zpresent = callPackage ({ dash, emacs, fetchhg, fetchurl, lib, melpaBuild, org-parser }: + zpresent = callPackage ({ dash, emacs, fetchhg, fetchurl, lib, melpaBuild, org-parser, request }: melpaBuild { pname = "zpresent"; - version = "20170413.2126"; + version = "20171008.2152"; src = fetchhg { url = "https://bitbucket.com/zck/zpresent.el"; - rev = "08ae558834c2"; - sha256 = "1bwjn1shnirmrqf7xcvzhnyg87jpwbcv231r28hlnyb5f2sqvr2y"; + rev = "eb6f5bf71b00"; + sha256 = "1q3xz4gwqb7ac49w0nq7zvl4n790wk6r97by1kldv54y2fj0ja9g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3aae38ad54490fa650c832fb7d22e2c73b0fb060/recipes/zpresent"; sha256 = "0316qyspmdbg94aw620133ilh8kfpr3db1p2cifgccgcacjv3v5j"; name = "zpresent"; }; - packageRequires = [ dash emacs org-parser ]; + packageRequires = [ dash emacs org-parser request ]; meta = { homepage = "https://melpa.org/#/zpresent"; license = lib.licenses.free; @@ -75111,12 +75946,12 @@ zzz-to-char = callPackage ({ avy, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zzz-to-char"; - version = "20161231.1557"; + version = "20170519.335"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "zzz-to-char"; - rev = "aaa854efb6b9e4451e97dfe90d37f368ff868b9e"; - sha256 = "1k66wsbgb7fqb5mbani0lzffy3yf0801rlgxwbkj34ciblz6a197"; + rev = "96dfe16a990474267cd290498cf9ac6dd6b3e7c0"; + sha256 = "1jvysrq9ya77x2xg0wqy1q27y0r43578d10bdhihpj2281nxng1y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7063cbc1f1501ce81552d7ef1d42d1309f547c42/recipes/zzz-to-char"; diff --git a/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix b/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix index 818d1058ec8..51b9facd111 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix @@ -20,6 +20,27 @@ license = lib.licenses.free; }; }) {}; + a = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "a"; + version = "0.1.0alpha4"; + src = fetchFromGitHub { + owner = "plexus"; + repo = "a.el"; + rev = "3af0122abac723f0d3dc21ee50eeb81afa26d361"; + sha256 = "0grwpy4ssmn2m8aihfkxb7ifl7ql2hgicw16wzl0crpy5fndh1mp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a226f1d81cd1ae81b91c1102fbe40aac2eddcaa8/recipes/a"; + sha256 = "1xqja47iw1c78kiv4854z47iblvvzrc1l35zjdhmhkh9hh10z886"; + name = "a"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/a"; + license = lib.licenses.free; + }; + }) {}; aa-edit-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, navi2ch }: melpaBuild { pname = "aa-edit-mode"; @@ -65,12 +86,12 @@ abyss-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "abyss-theme"; - version = "0.5"; + version = "0.7"; src = fetchFromGitHub { owner = "mgrbyte"; repo = "emacs-abyss-theme"; - rev = "e860499a0b2ae0d6d2a27eab12b67dec896a7afc"; - sha256 = "1yr6cqycd7ljkqzfp4prz9ilcpjq8wxg5yf645m24gy9v4w365ia"; + rev = "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14"; + sha256 = "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f390e5153b6360a27abc74983f5fef11226634f3/recipes/abyss-theme"; @@ -212,12 +233,12 @@ ac-clang = callPackage ({ auto-complete, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pos-tip, yasnippet }: melpaBuild { pname = "ac-clang"; - version = "1.9.0"; + version = "1.9.2"; src = fetchFromGitHub { owner = "yaruopooner"; repo = "ac-clang"; - rev = "c4aab21df64011916039e18094e189533018e115"; - sha256 = "1ac8rw0r4x1plrwy6xwswy5mj5h1r975y8wvx01g2j8an41xhlms"; + rev = "ee692f7cde535f317e440a132b8e60b7c5e34dfd"; + sha256 = "0zg39brrpgdakb6hbylala6ajja09nhbzqf4xl9nzwc7gzpgfl57"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ffe0485048b85825f5e8ba95917d8c9dc64fe5de/recipes/ac-clang"; @@ -527,12 +548,12 @@ ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "ac-php"; - version = "1.7.8"; + version = "1.8.1"; src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php"; @@ -548,12 +569,12 @@ ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }: melpaBuild { pname = "ac-php-core"; - version = "1.7.8"; + version = "1.8.1"; src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core"; @@ -587,6 +608,27 @@ license = lib.licenses.free; }; }) {}; + ac-rtags = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }: + melpaBuild { + pname = "ac-rtags"; + version = "2.14"; + src = fetchFromGitHub { + owner = "Andersbakken"; + repo = "rtags"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ac-rtags"; + sha256 = "1w9v32di9135mm598c4506gxf0xr5jyz8dyd9dhga5d60q7g9641"; + name = "ac-rtags"; + }; + packageRequires = [ auto-complete rtags ]; + meta = { + homepage = "https://melpa.org/#/ac-rtags"; + license = lib.licenses.free; + }; + }) {}; ac-slime = callPackage ({ auto-complete, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, slime }: melpaBuild { pname = "ac-slime"; @@ -650,22 +692,22 @@ license = lib.licenses.free; }; }) {}; - ace-jump-buffer = callPackage ({ ace-jump-mode, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: + ace-jump-buffer = callPackage ({ avy, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-jump-buffer"; - version = "0.3.1"; + version = "0.4.1"; src = fetchFromGitHub { owner = "waymondo"; repo = "ace-jump-buffer"; - rev = "41f8bb0744cdf9c219d25b417f2ffbd0883469e7"; - sha256 = "1z82a0lrb61msamqpsy7rxcgs2nfhhckkk4zw0aw49l248p2nrgs"; + rev = "02797c22c10a817dbbdfbd8fddceeba6c4f0499a"; + sha256 = "13wq92ia18q9vyhmvnz1grl1l18hxnaisb7hv13dhfc06alcsrw2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31100b5b899e942de7796bcbf6365625d1b62574/recipes/ace-jump-buffer"; sha256 = "0hkxa0ps0v1hwmjafqbnyr6rc4s0w95igk8y3w53asl7f5sj5mpi"; name = "ace-jump-buffer"; }; - packageRequires = [ ace-jump-mode dash ]; + packageRequires = [ avy dash ]; meta = { homepage = "https://melpa.org/#/ace-jump-buffer"; license = lib.licenses.free; @@ -779,12 +821,12 @@ ace-popup-menu = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ace-popup-menu"; - version = "0.2.0"; + version = "0.2.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "ace-popup-menu"; - rev = "3e771b470b0c633d7633dceec054fc05beac81f0"; - sha256 = "1qiiivkwa95bhyym8ly7fnwwglc9dcifkyr314bsq8m4rp1mgry4"; + rev = "e7cc8bace9dda5c9fbe545c6fbd41c12679c3d7d"; + sha256 = "1khqh5b9c7ass3q2gc04ayc8idanabkyfpaqvfnag063x16fv40c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/53742e2242101c4b3b3901f5c74e24facf62c7d6/recipes/ace-popup-menu"; @@ -863,12 +905,12 @@ add-hooks = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "add-hooks"; - version = "2.2.0"; + version = "3.1.0"; src = fetchFromGitHub { owner = "nickmccurdy"; repo = "add-hooks"; - rev = "fa88bfc17c01f526a156a45ad00fa66cc0909805"; - sha256 = "0jq9gywg6zvlv8rmvw5vv3228y0k4pk1bczygiwfmav13g0dnb1k"; + rev = "edd4cb032a509b576d88f4cc0521ebfe66a9e6c7"; + sha256 = "1qg1ifkds84xv07ibz4sqp34ks60w4c7dvrq9dch4gvg040hal82"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/901f846aef46d512dc0a1770bab7f07c0ae330cd/recipes/add-hooks"; @@ -884,12 +926,12 @@ add-node-modules-path = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "add-node-modules-path"; - version = "1.0.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "codesuki"; repo = "add-node-modules-path"; - rev = "9ed240e05dcb9628ba380151b54b02688be5e78e"; - sha256 = "0avv3ypdpscchq9n1lxs0ba0fc52zjyv7dbv54s7sclqxx4mi63k"; + rev = "6f7801b2c41e3711406b7e1654257ad5557f5bb3"; + sha256 = "1pfgy1k7vp34k4zb9835y3x4jmf81na60vsf80wlgvfafwk170z6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/63e99d8fc0678d7b1831cae8940e9e6547780861/recipes/add-node-modules-path"; @@ -947,12 +989,12 @@ aes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aes"; - version = "0.8"; + version = "0.9"; src = fetchFromGitHub { owner = "Sauermann"; repo = "emacs-aes"; - rev = "d78796facc034b09f379cda5f27090f3139305ec"; - sha256 = "1y9bw2vkl952pha2dsi18swyr94mihgwlcg5m8hg4d5bfg2fzcb2"; + rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af"; + sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/33ca3106852f82624b36c7e3f03f5c0c620f304f/recipes/aes"; @@ -989,12 +1031,12 @@ aggressive-indent = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "aggressive-indent"; - version = "1.8.3"; + version = "1.9.0"; src = fetchFromGitHub { owner = "Malabarba"; repo = "aggressive-indent-mode"; - rev = "998407f56009f441a7cb83d678118d4d8e68f661"; - sha256 = "0brggqlij0nacx0yjk10rkn045nk0z03r8llmnqkangjm47ffksr"; + rev = "d6778ae89cd2d40949aa076a43e327f7acff59c3"; + sha256 = "0xya19w1bwpqrrqvmms0lfhqb168iv7j6kvnn49zbynnf9dhgr9w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/aggressive-indent"; @@ -1031,12 +1073,12 @@ ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ahungry-theme"; - version = "1.3.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "ahungry"; repo = "color-theme-ahungry"; - rev = "3ce72cf77cf5958d91b65bc4867cbacff968da74"; - sha256 = "0wiwxh6k2s48gpklhd9abbsr0ll73jzggwgq1lvm7gha203ji5v4"; + rev = "32ce7765c95559f6a0552cdaeedb6eb97bb7a476"; + sha256 = "0c1xwqknhjx6y29fwca949r8d2fqb17mca5qc79pdxdlp3l606fg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme"; @@ -1094,12 +1136,12 @@ alda-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "alda-mode"; - version = "0.1.0"; + version = "0.2.0"; src = fetchFromGitHub { owner = "jgkamat"; repo = "alda-mode"; - rev = "921b1d39ee1122c0f6935598dc17aaa904e74819"; - sha256 = "01zz3h6q3djqmb3l6s9jld8x1zx2m0x1qskxzywnyfh8hcvbqy6f"; + rev = "97c20b1fd9ad3f138e1100e3a837d05108c4c564"; + sha256 = "1wsvs756cbwbxlaxij352kman7196m39684m6sqnfb685cfrwzdj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2612c494a2b6bd43ffbbaef88ce9ee6327779158/recipes/alda-mode"; @@ -1154,27 +1196,48 @@ license = lib.licenses.free; }; }) {}; - all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild }: + all-the-icons = callPackage ({ emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild, memoize }: melpaBuild { pname = "all-the-icons"; - version = "2.4.0"; + version = "3.1.1"; src = fetchFromGitHub { owner = "domtronn"; repo = "all-the-icons.el"; - rev = "4f7c556167e42c02d2f840aec345b8f60b71c477"; - sha256 = "0vhmw6z6q5a3abxphxxq5yd37hz5x9hs61vgx4wfyk2853701ks0"; + rev = "bb69345ead914345faad582723a2b61618f13289"; + sha256 = "0h8a2jvn2wfi3bqd35scmhm8wh20mlk09sy68m1whi9binzkm8rf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/604c01aa15927bd122260529ff0f4bb6a8168b7e/recipes/all-the-icons"; sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q"; name = "all-the-icons"; }; - packageRequires = [ emacs font-lock-plus ]; + packageRequires = [ emacs font-lock-plus memoize ]; meta = { homepage = "https://melpa.org/#/all-the-icons"; license = lib.licenses.free; }; }) {}; + all-the-icons-ivy = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "all-the-icons-ivy"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "asok"; + repo = "all-the-icons-ivy"; + rev = "aa791d6b0055bce3ac68970a8ef6abf0726edf0f"; + sha256 = "0mmimibzn5ncy4rpyq6vkk2m2qlki54nf8yirphabh4m2zf9marg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9496e6bb6f03f35444fb204860bc50e5e1b36214/recipes/all-the-icons-ivy"; + sha256 = "1xv67gxd2sqj6zld4i3qcid0x5qsbd7baz55m93y1ivdqi7x7gr2"; + name = "all-the-icons-ivy"; + }; + packageRequires = [ all-the-icons emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/all-the-icons-ivy"; + license = lib.licenses.free; + }; + }) {}; amd-mode = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, js2-mode, js2-refactor, lib, makey, melpaBuild, projectile, s, seq }: melpaBuild { pname = "amd-mode"; @@ -1205,15 +1268,36 @@ license = lib.licenses.free; }; }) {}; + amx = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "amx"; + version = "1.1.1"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "amx"; + rev = "7d5d7974057a36a332f8b30e99fe464f25b6e0ae"; + sha256 = "0jqvah4i2r5di8k3rx6hyjnxdr3alzqmlv6iab5wdhkafyvwl0dq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c55bfad05343b2b0f3150fd2b4adb07a1768c1c0/recipes/amx"; + sha256 = "1ikhjvkca0lsb9j719yf6spg6nwc0qaydkd8aax162sis7kp9fap"; + name = "amx"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/amx"; + license = lib.licenses.free; + }; + }) {}; anaconda-mode = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }: melpaBuild { pname = "anaconda-mode"; - version = "0.1.8"; + version = "0.1.9"; src = fetchFromGitHub { owner = "proofit404"; repo = "anaconda-mode"; - rev = "95fdfab07600171daccb0e9e98fb91c11237fd48"; - sha256 = "0l5h6apjshr6drfak6j66m3rv26hkr2namj85k8isvalmn4dlrj2"; + rev = "89fc16d50b889a17521084347b28f3011b84e113"; + sha256 = "08wdci57vig88iy5kk57k5qjkzphbbzy8g7b87hxakfgdmcwpg3g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e03b698fd3fe5b80bdd24ce01f7fba28e9da0da8/recipes/anaconda-mode"; @@ -1564,12 +1648,12 @@ anything-tramp = callPackage ({ anything, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "anything-tramp"; - version = "0.3.3"; + version = "0.5.4"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-anything-tramp"; - rev = "08bf0752e5b885a0492fbd0d7790668683c87797"; - sha256 = "13026l259vbbgi7q0lb6jb7d54z6jgapv0d2qlprh9mlqjf32xic"; + rev = "c6d0e9bfa0f71c7c0bb75f6df0c82dd81c486f43"; + sha256 = "08ffw4y14c99jypl1nhiq2k3lbmv3lgw2dgmhkb8lpc1szkjg57m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/anything-tramp"; @@ -1606,16 +1690,16 @@ apache-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "apache-mode"; - version = "2.0"; + version = "2.1"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "apache-mode"; - rev = "7e79a6602da77b5c3a11dab93d46fef26abc860d"; - sha256 = "0i4kmw0qbnnfbfih7iwfpihv5d6kh1l9k2b062dvc5mx1vvlr8k8"; + rev = "0906559e0cb2997405d98ea6b2195954e3935d3b"; + sha256 = "0vfyi34qcwkz9975cq5hin1p2zyy3h05fni4f93xyrcs31zvmk22"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b5216c40e60c5a69a6235c15b432b5e9bdda6fd3/recipes/apache-mode"; - sha256 = "0f8r3xnnidcm9ahj8c3s1vxk6yqk3ra34nrc19r76xyprbb2sjsm"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/apache-mode"; + sha256 = "0wzfx3kaiwvya30ihq3vpdhy6znkzf25w5x43x457ifdn2vrh9zi"; name = "apache-mode"; }; packageRequires = []; @@ -1624,27 +1708,48 @@ license = lib.licenses.free; }; }) {}; - apib-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: + apib-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild }: melpaBuild { pname = "apib-mode"; - version = "0.6"; + version = "0.7"; src = fetchFromGitHub { owner = "w-vi"; repo = "apib-mode"; - rev = "18aebab7cd61b9d296b7d5d2de0c828e2058c906"; - sha256 = "0sj948j4s26sxxandjzjjzmjqma7vf86msyyi23gsljy1q28vwlf"; + rev = "6cc7c6f21b8e415b1718bb6a07ab2182e9e9dde6"; + sha256 = "1717f78kaqkmbhfwb9kzsv5wi2zabcbwb4wh1jklhcaalvmk3z7d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc2ebb04f975d8226a76260895399c937d6a1940/recipes/apib-mode"; sha256 = "0y3n0xmyc4gkypq07v4sp0i6291qaj2m13zkg6mxp61zm669v2fb"; name = "apib-mode"; }; - packageRequires = [ emacs markdown-mode ]; + packageRequires = [ markdown-mode ]; meta = { homepage = "https://melpa.org/#/apib-mode"; license = lib.licenses.free; }; }) {}; + apiwrap = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "apiwrap"; + version = "0.3"; + src = fetchFromGitHub { + owner = "vermiculus"; + repo = "apiwrap.el"; + rev = "5d25972192cd34553997ba193c09eab093a2b870"; + sha256 = "1pp2gzw17k58s9akraf8p4jxbar8viym2a43rkc7agzy47qsybs0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0197fd3657e65e3826375d9b6f19da3058366c91/recipes/apiwrap"; + sha256 = "0n50n1n5pvcgcp1gmna3ci36pnbanjdbjpgv7zyarlb80hywbiyw"; + name = "apiwrap"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/apiwrap"; + license = lib.licenses.free; + }; + }) {}; apples-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "apples-mode"; @@ -1687,6 +1792,27 @@ license = lib.licenses.free; }; }) {}; + apropospriate-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "apropospriate-theme"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "waymondo"; + repo = "apropospriate-theme"; + rev = "0d918da74a7a225fe5a586e26f5d834e579c5323"; + sha256 = "0hqsq7y89crcmqcfbgn885dlvj7f7b0zd9q6adbhyscphk7kasjw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1da33013f15825ab656260ce7453b8127e0286f4/recipes/apropospriate-theme"; + sha256 = "10bj2bsi7b104m686z8mgvbh493liidsvivxfvfxzbndc8wyjsw9"; + name = "apropospriate-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/apropospriate-theme"; + license = lib.licenses.free; + }; + }) {}; artbollocks-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "artbollocks-mode"; @@ -1774,12 +1900,12 @@ async = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "async"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "jwiegley"; repo = "emacs-async"; - rev = "666066d30a420d86801d8380f5991f2b82471107"; - sha256 = "1hjyac7dm0yvg5y32fii6508wwhl5q493i8ikf3fszafz03nc6sc"; + rev = "d6222c2959caaca5c4980038756097da8a51e505"; + sha256 = "1w7crkgi2k97zxdqv2k6a88kmz75s5v7p7n8bw8v18dvxx9sfisn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/async"; @@ -1837,12 +1963,12 @@ auctex-latexmk = callPackage ({ auctex, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "auctex-latexmk"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "tom-tan"; repo = "auctex-latexmk"; - rev = "b7053f71f578ffb0d247f8a9e8d5152efd86e096"; - sha256 = "0slihygr74vyijnyzssckapscxmdd7zlgrs0wvmpw9hnjzwwzzql"; + rev = "4d353522650d7685acbf1d38f7dbc504f734bd84"; + sha256 = "0qvscgffmzqk8lkcg3yk91vciim5ygk2m4crk02qn72ipkw5q13m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3f48af615c56f093dff417a5d3b705f9993c518f/recipes/auctex-latexmk"; @@ -1876,27 +2002,6 @@ license = lib.licenses.free; }; }) {}; - aurora-config-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "aurora-config-mode"; - version = "0.0.2"; - src = fetchFromGitHub { - owner = "bdd"; - repo = "aurora-config-mode.el"; - rev = "0a7ca7987c3a0824e25470389c7d25c337a81593"; - sha256 = "0ns1xhpk1awbj3kv946dv11a99p84dhm54vjk72kslxwx42nia28"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/aurora-config-mode"; - sha256 = "1hpjwidqmjxanijsc1imc7ww9abbylmkin1p0846fbz1hz3a603c"; - name = "aurora-config-mode"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/aurora-config-mode"; - license = lib.licenses.free; - }; - }) {}; auth-password-store = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, seq }: melpaBuild { pname = "auth-password-store"; @@ -1918,22 +2023,22 @@ license = lib.licenses.free; }; }) {}; - auto-compile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }: + auto-compile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }: melpaBuild { pname = "auto-compile"; - version = "1.4.0"; + version = "1.4.1"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "auto-compile"; - rev = "0cbebd8fd22c88a57a834797e4841900ea1bae1c"; - sha256 = "1sngafab6sssidz6w1zsxw8i6k4j13m0073lbmp7gq3ixsqdxbr7"; + rev = "a31819a1b75a2320edb0f7f25d6c6faf528bf41a"; + sha256 = "17hzl03livgj49zb0knlfn6r020nvj41pjjz3acy82zwrjydsvxa"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e00dcd4f8c59c748cc3c85af1607dd19b85d7813/recipes/auto-compile"; - sha256 = "1cdv41hg71mi5ixxi4kiizyg03xai2gyhk0vz7gw59d9a7482yks"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/auto-compile"; + sha256 = "08k9wqk4yysps8n5n50v7lpadwsnm553pv9p7m242fwbgbsgz6nf"; name = "auto-compile"; }; - packageRequires = [ dash emacs packed ]; + packageRequires = [ emacs packed ]; meta = { homepage = "https://melpa.org/#/auto-compile"; license = lib.licenses.free; @@ -2107,6 +2212,27 @@ license = lib.licenses.free; }; }) {}; + auto-minor-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "auto-minor-mode"; + version = "20170716"; + src = fetchFromGitHub { + owner = "joewreschnig"; + repo = "auto-minor-mode"; + rev = "06fa6975a9fb171b91a8b8234d65ef72374d64e2"; + sha256 = "19r71hdgz367f6cgyqfdpilwlmhrjw5drmijpq8m0fxgysnmz2qd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b3ab5f048034777551e344101d8415cac92362c8/recipes/auto-minor-mode"; + sha256 = "1dpdylrpw1pvlmhh229b3lqs07drx9kdhw4vcv5a48qah14dz6qa"; + name = "auto-minor-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/auto-minor-mode"; + license = lib.licenses.free; + }; + }) {}; auto-package-update = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "auto-package-update"; @@ -2278,12 +2404,12 @@ avy-menu = callPackage ({ avy, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "avy-menu"; - version = "0.1.0"; + version = "0.1.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "avy-menu"; - rev = "9b8c6be09487dd3e804a10761266c4f22923eb9c"; - sha256 = "1564yv9330vjymw3xnikc2lz20f65n40fbl8m1zs1gp4nlgzkk38"; + rev = "71b71e64900d0637e17013781042e086e9bf56e7"; + sha256 = "1mxrq2fpx3qa9vy121wnv02r43sb7djc2j8z7c2vh8x56h8bpial"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2f0b4cfb30c405d44803b36ebcaccef0cf87fe2d/recipes/avy-menu"; @@ -2536,12 +2662,12 @@ beacon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "beacon"; - version = "1.3.3"; + version = "1.3.4"; src = fetchFromGitHub { owner = "Malabarba"; repo = "beacon"; - rev = "f1a3ff5ea8fecf9bf250205de66aedf0bf49c35b"; - sha256 = "0wr2ffwbi5w23a7hbdmn5ijfy5gmizrmy75zj6m1bz4mbw23ccvn"; + rev = "729338b02a0e331a4faf475da9f54771a3470106"; + sha256 = "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d09cfab21be800831644218e9c8c4433087951c0/recipes/beacon"; @@ -2578,12 +2704,12 @@ beginend = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "beginend"; - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "beginend"; - rev = "9c6ad190ecc71373f6ac7485c924f1ef3dce6fc4"; - sha256 = "05z23amn1s1692y3wzwmbzpnm5m6qskq53aqp47wiyyxn3dq2kdj"; + rev = "a06a479c2279da9e852cf42628b6dfa466fff0bd"; + sha256 = "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31c1157d4fd9e47a780bbd91075252acdc7899dd/recipes/beginend"; @@ -2596,6 +2722,27 @@ license = lib.licenses.free; }; }) {}; + benchstat = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "benchstat"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "Quasilyte"; + repo = "benchstat.el"; + rev = "b39a97f3072c2d3c1d3f86790b9e134d05b8d7e6"; + sha256 = "0j508n860dp4in1psnkcriqck6by1jvnscalyff5na8hx6xgyysm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d9180fbedf95f9b1f5810bbf4929dfee513f89e3/recipes/benchstat"; + sha256 = "0h2zi4gh23bas1zfj7j2x994lwgd3xyys96ipg1vq7z2b06572k9"; + name = "benchstat"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/benchstat"; + license = lib.licenses.free; + }; + }) {}; better-defaults = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "better-defaults"; @@ -2680,6 +2827,48 @@ license = lib.licenses.free; }; }) {}; + bifocal = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "bifocal"; + version = "0.0.3"; + src = fetchFromGitHub { + owner = "riscy"; + repo = "bifocal-mode"; + rev = "a8b222b069a6bd64531b4780905989797bad8abe"; + sha256 = "0c6vzh35lj3pg9wd4v2fy6xdmcg9kq3n5br6rp4lx257gxglzpwh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/79e71995bd8452bad2e717884f148ec74c9735fc/recipes/bifocal"; + sha256 = "07qrxsby611l3cwsmw3d53h1n7cd1vg53j4vlc2isg56l2m4qks5"; + name = "bifocal"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/bifocal"; + license = lib.licenses.free; + }; + }) {}; + binclock = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "binclock"; + version = "1.11"; + src = fetchFromGitHub { + owner = "davep"; + repo = "binclock.el"; + rev = "b964e437311e5406a31c0ec7038b3bf1fd02b876"; + sha256 = "0ljxb70vx7x0yn8y1ilf4phk0hamprl43dh23fm3njqqgw60hzbk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/95dfa38d795172dca6a09cd02e21630747723949/recipes/binclock"; + sha256 = "1s0072kcd1xp8355j8aph94gb3a1wqmzx1hhfp9d6bzqf6cij8gk"; + name = "binclock"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/binclock"; + license = lib.licenses.free; + }; + }) {}; bind-key = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bind-key"; @@ -2893,12 +3082,12 @@ boxquote = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "boxquote"; - version = "2.0"; + version = "2.1"; src = fetchFromGitHub { owner = "davep"; repo = "boxquote.el"; - rev = "b0239fb7b7a9d75d4ac3c66f9b96abd911dbf4e0"; - sha256 = "0agnsghxf35b6g49radxigw81bmvw1ggljzzmy771nmwl44q2dbb"; + rev = "b6a4ad3ee5b327bd3b1bf65f8733bd301fe59883"; + sha256 = "1f61k3sw9zvn6jq60ygi6p66blr52497fadimzcaspa79k9y1cfm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2148f8f17b16154bfc337df69a5ad31e25a9b05/recipes/boxquote"; @@ -2956,12 +3145,12 @@ bshell = callPackage ({ buffer-manage, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bshell"; - version = "0.1"; + version = "0.3"; src = fetchFromGitHub { owner = "plandes"; repo = "bshell"; - rev = "0abd93439895851c1ad3037b0df7443e577ed1ba"; - sha256 = "1frs3m44m4jjl3rxkahkyss2gnijpdpsbqvx0vwbl637gcap1slw"; + rev = "884a8b906617d305e9d5d2c3750618d2f86f9aed"; + sha256 = "16qh71yhpxs5cxjmkiqiia8xrxa0ym2n32znp4yc7xiv2xfw2ss4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cf0ed51304f752af3e1f56caf2856d1521d782a4/recipes/bshell"; @@ -2995,22 +3184,22 @@ license = lib.licenses.free; }; }) {}; - buffer-manage = callPackage ({ choice-program, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + buffer-manage = callPackage ({ choice-program, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buffer-manage"; - version = "0.1"; + version = "0.6"; src = fetchFromGitHub { owner = "plandes"; repo = "buffer-manage"; - rev = "09c7e652010ce84ea43c0ac20a943e7733bea0af"; - sha256 = "0dhqx4zlqznl4kn8cqp2a4a7c8nsw58pxss2852pfaz11pyv22ma"; + rev = "44b26d5c17a4ecea3484727fa46c3d734569a018"; + sha256 = "0c9hz2532vcbn69am7pd2zyraqgw0q139qsck9hs1vfxnsj4v8dc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/28f8f376df810e6ebebba9fb2c93eabbe3526cc9/recipes/buffer-manage"; sha256 = "0fwri332faybv2apjh8zajqpryi0g4kk3and8djibpvci40l42jb"; name = "buffer-manage"; }; - packageRequires = [ choice-program emacs ]; + packageRequires = [ choice-program dash emacs ]; meta = { homepage = "https://melpa.org/#/buffer-manage"; license = lib.licenses.free; @@ -3058,6 +3247,27 @@ license = lib.licenses.free; }; }) {}; + buffer-watcher = callPackage ({ f, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "buffer-watcher"; + version = "0.1"; + src = fetchFromGitHub { + owner = "NicolasPetton"; + repo = "buffer-watcher"; + rev = "353d76882c65d44341b6f28bd86279dda00c3440"; + sha256 = "0x9bcnya47pf78p6ksdvs1ca5arvbgyi1q8b9yxq55fg3k9523ln"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c8681776d467951d14d8247e6939bd9a6f2a80ec/recipes/buffer-watcher"; + sha256 = "0v096021xk7k821bxb5zddw6sljqa6fs8f7s8j0w3pv6lmhra1ln"; + name = "buffer-watcher"; + }; + packageRequires = [ f ]; + meta = { + homepage = "https://melpa.org/#/buffer-watcher"; + license = lib.licenses.free; + }; + }) {}; bufshow = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "bufshow"; @@ -3121,6 +3331,27 @@ license = lib.licenses.free; }; }) {}; + build-status = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "build-status"; + version = "0.0.2"; + src = fetchFromGitHub { + owner = "sshaw"; + repo = "build-status"; + rev = "c29a0146c5d0be274f5e17921e01698f572c23a1"; + sha256 = "03f0h7sp0sr9kjyhvcx7i34lvc26f5x8nikfidihgzhrqpprv2b6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/23bbe012f313cf0cf4c45a66eb0bee9361ced564/recipes/build-status"; + sha256 = "0ckyf0asll50gifx1v0qqzpimjms8i1rgw9bnqiyj861qn5hch92"; + name = "build-status"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/build-status"; + license = lib.licenses.free; + }; + }) {}; bundler = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: melpaBuild { pname = "bundler"; @@ -3187,12 +3418,12 @@ buttercup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "buttercup"; - version = "1.6"; + version = "1.9"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "emacs-buttercup"; - rev = "c95b95fe8d93eeed510c281990842718a21e53b3"; - sha256 = "077hxzichvr406m9grdxjf31k0l33g6wh9zdvx73f7crsmzxhkzy"; + rev = "18a887957b0e22d3cc8873796bd27f06b2493a03"; + sha256 = "0y0wg0yqmvqjyhjs4dx8yw44hl19k227krd9mds220w0dx8wmhay"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d4b187cb5b3cc5b546bfa6b94b6792e6363242d1/recipes/buttercup"; @@ -3331,27 +3562,111 @@ license = lib.licenses.free; }; }) {}; - calfw = callPackage ({ fetchFromGitHub, fetchurl, google-maps, lib, melpaBuild }: + calfw = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "calfw"; - version = "1.5"; + version = "1.6"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-calfw"; - rev = "50e0e0261568f84f31fe7f87c9f863e21d30132f"; - sha256 = "1rv6slk3a7ca2q16isjlkmgxbxmbqx4lx2ip7z33fvnq10r5h60n"; + rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; + sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1d1aaab9844413a5fff992509935b399b5154c3d/recipes/calfw"; - sha256 = "1lyb0jzpx19mx50d8xjv9sx201518vkvskxbglykaqpjm9ik2ai8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw"; + sha256 = "0am1nafc16zax8082gjlz0pi85lryjhrx0v80nzgr23iybj5mfx4"; name = "calfw"; }; - packageRequires = [ google-maps ]; + packageRequires = []; meta = { homepage = "https://melpa.org/#/calfw"; license = lib.licenses.free; }; }) {}; + calfw-cal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-cal"; + version = "1.6"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; + sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-cal"; + sha256 = "1wylkd7jl1ifq56jj04l5b9wfrjkhwncxzrjgnbgg1cl2klf6v4m"; + name = "calfw-cal"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-cal"; + license = lib.licenses.free; + }; + }) {}; + calfw-howm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-howm"; + version = "1.6"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; + sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-howm"; + sha256 = "08cv16cq211sy2v1i0gk7d81f0gyywv0i9szmamnrbjif3rrv2m0"; + name = "calfw-howm"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-howm"; + license = lib.licenses.free; + }; + }) {}; + calfw-ical = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-ical"; + version = "1.6"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; + sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-ical"; + sha256 = "1bh9ahwp9b5knjxph79kl19fgs48x3w7dga299l0xvbxq2jhs95q"; + name = "calfw-ical"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-ical"; + license = lib.licenses.free; + }; + }) {}; + calfw-org = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "calfw-org"; + version = "1.6"; + src = fetchFromGitHub { + owner = "kiwanami"; + repo = "emacs-calfw"; + rev = "c538d3746449b4f0e16b16aad3073d4f7379d805"; + sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cc64274abdc7c8fb904b43d2d036aac98e738131/recipes/calfw-org"; + sha256 = "1cfpjh08djz3k067w3580yb15p1csks3gzch9c4cbrbcjvg8inh5"; + name = "calfw-org"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/calfw-org"; + license = lib.licenses.free; + }; + }) {}; camcorder = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, names }: melpaBuild { pname = "camcorder"; @@ -3373,15 +3688,36 @@ license = lib.licenses.free; }; }) {}; + caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "caml"; + version = "4.6.0pre1"; + src = fetchFromGitHub { + owner = "ocaml"; + repo = "ocaml"; + rev = "500625015d40f716e19278209faaa44216dcff58"; + sha256 = "1s10wirx080yl0gd2n09lw5kj8yy1mbiipmcr8gpfyc8dq7kfjna"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml"; + sha256 = "1ixs0626nsg1ilqdwj5rd8kicjy7mprswwy0kprppmpmc8y7xf7c"; + name = "caml"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/caml"; + license = lib.licenses.free; + }; + }) {}; cargo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rust-mode }: melpaBuild { pname = "cargo"; - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "kwrooijen"; repo = "cargo.el"; - rev = "25ca2fcbd6b664cc7a20b0cccca3adc19e79917a"; - sha256 = "1fzrczx1aq0q130qrvzq8dssc1qm5qc9pclsyd3zn27xbn5lsag3"; + rev = "b0487f95a7de7a1d6f03cdd05220f633977d65a2"; + sha256 = "0r9v7q7hkdw2q3iifyrb6n9jrssz2rcv2xcc7n1nmg1v40av3ijd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e997b356b009b3d2ab467fe49b79d728a8cfe24b/recipes/cargo"; @@ -3460,12 +3796,12 @@ cask-package-toolset = callPackage ({ ansi, cl-lib ? null, commander, dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: melpaBuild { pname = "cask-package-toolset"; - version = "0.9.1"; + version = "0.9.2"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "cask-package-toolset.el"; - rev = "1e972739dbdf3af5b60a250c99414e76db238f78"; - sha256 = "0padb1zfjkmx9kbqnqh744qvpd3ln0khwxifxld9cpcpdp5k04vc"; + rev = "2c74cd827e88c7f8360581a841e45f0b794510e7"; + sha256 = "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ed71e45389626e700b93b29d5e2659b6706274d8/recipes/cask-package-toolset"; @@ -3499,6 +3835,25 @@ license = lib.licenses.free; }; }) {}; + catmacs = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { + pname = "catmacs"; + version = "0.1.1"; + src = fetchgit { + url = "https://bitbucket.org/pymaximus/catmacs"; + rev = "c6e8277bd2aab3f5fbf10d419111110f3b33564f"; + sha256 = "0kdlmmqgpgmhbbvafywllqdwkkd5a41rf8zhfmxhs3ydza86hmlg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e62e45ea234a574ed602f27c3c6bc240bcd4fa43/recipes/catmacs"; + sha256 = "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50"; + name = "catmacs"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/catmacs"; + license = lib.licenses.free; + }; + }) {}; cbm = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cbm"; @@ -3604,15 +3959,36 @@ license = lib.licenses.free; }; }) {}; + ceylon-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ceylon-mode"; + version = "0.2"; + src = fetchFromGitHub { + owner = "lucaswerkmeister"; + repo = "ceylon-mode"; + rev = "00f790b3ed5ec48e2461e20a4d466ba45c634e13"; + sha256 = "08zk6aspy59gv3989zxz0ibxxwkbjasa83ilpzvpcwszrzq8x640"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/09cd1a2ccf33b209a470780a66d54e1b1d597a86/recipes/ceylon-mode"; + sha256 = "0dgqmmb8qmvzn557h0fw1mx4y0p96870l8f8glizkk3fifg7wgq4"; + name = "ceylon-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/ceylon-mode"; + license = lib.licenses.free; + }; + }) {}; cfengine-code-style = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cfengine-code-style"; - version = "3.10.1"; + version = "3.11.0"; src = fetchFromGitHub { owner = "cfengine"; repo = "core"; - rev = "99e8b116e779f97e96866891362817c1c5c6534c"; - sha256 = "1ckk6jvmwrrlfd4ja8n5q99ajasgvbdkzkba9mswhq9dvk6avvn0"; + rev = "520851447dba901097b121b58b1a0da370481a2c"; + sha256 = "0sz4zqw2s7f5rhqad4kmrfdsl24xqflfsm4hzfbwzvsrlp7ndis7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c737839aeda583e61257ad40157e24df7f918b0f/recipes/cfengine-code-style"; @@ -3625,6 +4001,27 @@ license = lib.licenses.free; }; }) {}; + cframe = callPackage ({ buffer-manage, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cframe"; + version = "0.1"; + src = fetchFromGitHub { + owner = "plandes"; + repo = "cframe"; + rev = "bb99672502046e87c8f029ce98c637f762a4fc54"; + sha256 = "088px3wlvr4km913y7hajrjqnxnv6n325rk6353bkbah2d75vxq4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6e39555b2538cc8a955766c5533871396e8fe712/recipes/cframe"; + sha256 = "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l"; + name = "cframe"; + }; + packageRequires = [ buffer-manage dash emacs ]; + meta = { + homepage = "https://melpa.org/#/cframe"; + license = lib.licenses.free; + }; + }) {}; chapel-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chapel-mode"; @@ -3649,12 +4046,12 @@ char-menu = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "char-menu"; - version = "0.1.0"; + version = "0.1.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "char-menu"; - rev = "5bdd7e880f89f27dbabe11def0fd31225b7f1c0a"; - sha256 = "0vb03k10i8vwy5wv65xl15kcsh9zz4y2xhpgndih87ssckdnhhlw"; + rev = "f4d8bf8fa6787e2aaca2ccda5223646541d7a4b2"; + sha256 = "0zyi1ha17jk3zz7nirasrrx43j3jkrsfz7ypbc4mk44w7hsvx2hj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f6676747e853045b3b19e7fc9524c793c6a08303/recipes/char-menu"; @@ -3688,6 +4085,48 @@ license = lib.licenses.free; }; }) {}; + chatwork = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "chatwork"; + version = "0.3"; + src = fetchFromGitHub { + owner = "ataka"; + repo = "chatwork"; + rev = "fea231d479f06bf40dbfcf45de143eecc9ed744c"; + sha256 = "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/77ae72e62b8771e890525c063522e7091ca8f674/recipes/chatwork"; + sha256 = "0p71swcpfqbx2zmp5nh57f0m30cn68g3019005wa5x4fg7dx746p"; + name = "chatwork"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/chatwork"; + license = lib.licenses.free; + }; + }) {}; + cheat-sh = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cheat-sh"; + version = "1.7"; + src = fetchFromGitHub { + owner = "davep"; + repo = "cheat-sh.el"; + rev = "6409bb66241255cc9a0362f2acdcb0b34344f9f2"; + sha256 = "1nmsja1s45fs93v2vbalfralixvzp88rgv47vf9p80i7x6w2149m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ebac62fb3828d81e30145b9948d60e781e20eda2/recipes/cheat-sh"; + sha256 = "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80"; + name = "cheat-sh"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/cheat-sh"; + license = lib.licenses.free; + }; + }) {}; checkbox = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "checkbox"; @@ -3709,90 +4148,6 @@ license = lib.licenses.free; }; }) {}; - chinese-fonts-setup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-fonts-setup"; - version = "0.1"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-fonts-setup"; - rev = "6f4423664e55d5470c4f239d04b88da5d6acb34d"; - sha256 = "0d9xx43ijxrp95j5bnxcsnfwn032ypy2c1lypak15772nk6i7s1w"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c536882e613e83a4a2baf86479bfb3efb86d916a/recipes/chinese-fonts-setup"; - sha256 = "141ri6a6mnxf7fn17gw48kxk8pvl3khdxkb4pw8brxwrr9rx0xd5"; - name = "chinese-fonts-setup"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/chinese-fonts-setup"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim = callPackage ({ async, chinese-pyim-basedict, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip }: - melpaBuild { - pname = "chinese-pyim"; - version = "1.5.3"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim"; - rev = "ed2ccea3d827084b3c80afbd5d7b9345f31243d1"; - sha256 = "03nvmrwvkadab9yp74d5msfxd01xjj1jhqxymisj6jnhgv421yi0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/157a264533124ba05c161aa93a32c7209f002fba/recipes/chinese-pyim"; - sha256 = "0zdx5zhgj1ly89pl48vigjzd8g74fxnxcd9bxrqykcn7y5qvim8l"; - name = "chinese-pyim"; - }; - packageRequires = [ async chinese-pyim-basedict cl-lib popup pos-tip ]; - meta = { - homepage = "https://melpa.org/#/chinese-pyim"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim-basedict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-pyim-basedict"; - version = "0.1"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-basedict"; - rev = "f13b6d20629a0b691ead626cca249b227622fa83"; - sha256 = "1ddld5jkhqarm31p6qjdvdha36k6yqaz3jzg3lyzd0nkavcmdq57"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2315ffe7d13928eddaf217a5f67a3e0dd5e62a1/recipes/chinese-pyim-basedict"; - sha256 = "1qmr71lnpn06mcbb6gfr3dh78pav0sk9mld956cvnkg82vg7nmpv"; - name = "chinese-pyim-basedict"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chinese-pyim-basedict"; - license = lib.licenses.free; - }; - }) {}; - chinese-pyim-greatdict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "chinese-pyim-greatdict"; - version = "0.1"; - src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-greatdict"; - rev = "11cf5145710349e9d928eb9197bebb426025fd58"; - sha256 = "1pza690b31ynyj31f1gp7y2d29ri3swcblpzd2pcpj3ynmnbsy3f"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/03234f7a1abe7423c5a9bcb4c100957c8eece351/recipes/chinese-pyim-greatdict"; - sha256 = "1xqr2fcsb45khavqx06ry2sm8db790zlggk61civbdyafvlz8ikc"; - name = "chinese-pyim-greatdict"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/chinese-pyim-greatdict"; - license = lib.licenses.free; - }; - }) {}; chinese-word-at-point = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "chinese-word-at-point"; @@ -3817,16 +4172,16 @@ choice-program = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "choice-program"; - version = "0.1"; + version = "0.4"; src = fetchFromGitHub { owner = "plandes"; repo = "choice-program"; - rev = "154c12ed7e2afc2d5dae031698be4787d7d647b0"; - sha256 = "1695pmz0j93pz3pkcyqk0ngajcf8cyzxihmpp2zfspya3ihxj4ia"; + rev = "27607ec1fe241c58fbc1f861454a8e2ec1fd7b15"; + sha256 = "0q8krgsydrc2xc29y60qljifdvxfmxnvbncxsh64xhrzsnrgwmq5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/894357125db5035999a39514516852d7e957453e/recipes/choice-program"; - sha256 = "0hhp6qhrshqrw4978xq6biwddm7gv7yf4avbb64xvz66i3a2kgy1"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6e39555b2538cc8a955766c5533871396e8fe712/recipes/choice-program"; + sha256 = "0a21yd3b8sb15vms9mclaa7xnnk0as08p6q38mwdwjp9sgcfyh1b"; name = "choice-program"; }; packageRequires = [ cl-lib emacs ]; @@ -3838,12 +4193,12 @@ cider = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, queue, seq, spinner }: melpaBuild { pname = "cider"; - version = "0.14.0"; + version = "0.15.1"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "cider"; - rev = "f3c396ff8cf4baf331b0e19e18e33b795b66ee3e"; - sha256 = "1np4bh7fxv6xkvdg1nyd596p2yjkrh5msw2wsfyidl0xb1jdnj9c"; + rev = "8a9eab32646abcaaf31fe83b2d897c01971b98f1"; + sha256 = "0ddkm87l9ann05a6j57r0x59qqgfavwrvlzhkc5xhak1nmk5556h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/55a937aed818dbe41530037da315f705205f189b/recipes/cider"; @@ -3898,15 +4253,36 @@ license = lib.licenses.free; }; }) {}; + circadian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "circadian"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "GuidoSchmidt"; + repo = "circadian.el"; + rev = "feec308591b43e7869d7a018d5c6fc7e943d53ee"; + sha256 = "0j8an9ny3jk9nmlpi360n064m20nhah9p8rj6wb9xbvnfrri5zjk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/circadian"; + sha256 = "13797y1w1636bibisz5i5p2xp0smd3apnhc1nx8ijm75smx679id"; + name = "circadian"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/circadian"; + license = lib.licenses.free; + }; + }) {}; circe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "circe"; - version = "2.4"; + version = "2.6"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "87f2d8604e41c6caf68cff3fcf61b1f4d4e8a961"; - sha256 = "19mjzws9hiqhaa8v0wxa369m3qzam2axvhcqcrggdjjsr7hyhvwr"; + rev = "59f1096238e6c30303a6fe9fc1c635f49e5946c6"; + sha256 = "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/circe"; @@ -4006,12 +4382,12 @@ cliphist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "cliphist"; - version = "0.5.3"; + version = "0.5.4"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "cliphist"; - rev = "acbd9782d82d7ae6bfb22fb0955597b9c5fcbb6c"; - sha256 = "1gj5fqjyr4m4qim9qjsvzzk42rm3vw3yycvq3nj0wpj90zb1yh14"; + rev = "2aceea0e16e2f18b8b51161423ef1c0f655c7c8d"; + sha256 = "13vhm7dsqbaslml3a2hd3s39c7q494p5w2xznhdxvh8ig6w102lc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82d86dae4ad8efc8ef342883c164c56e43079171/recipes/cliphist"; @@ -4045,15 +4421,15 @@ license = lib.licenses.free; }; }) {}; - clj-refactor = callPackage ({ cider, dash, edn, emacs, fetchFromGitHub, fetchurl, hydra, inflections, lib, melpaBuild, multiple-cursors, paredit, s, yasnippet }: + clj-refactor = callPackage ({ cider, clojure-mode, edn, emacs, fetchFromGitHub, fetchurl, hydra, inflections, lib, melpaBuild, multiple-cursors, paredit, s, seq, yasnippet }: melpaBuild { pname = "clj-refactor"; - version = "2.2.0"; + version = "2.3.1"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "clj-refactor.el"; - rev = "531a09fda51c9043efe18fd1f288be21ced3f3d1"; - sha256 = "0qjj40h8ryrs02rj73hkyhcjxdz926qxgvnjidav3sw2ggn8vdl3"; + rev = "9005de31ed05122d3db9f503fbc69722abf3634b"; + sha256 = "1pvxwvx36fl971j9dfhfk33sqg70nsw57brsi6kgphq7dgzmv7dk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3a2db268e55d10f7d1d5a5f02d35b2c27b12b78e/recipes/clj-refactor"; @@ -4062,7 +4438,7 @@ }; packageRequires = [ cider - dash + clojure-mode edn emacs hydra @@ -4070,6 +4446,7 @@ multiple-cursors paredit s + seq yasnippet ]; meta = { @@ -4227,12 +4604,12 @@ closql = callPackage ({ emacs, emacsql-sqlite, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "closql"; - version = "0.3.3"; + version = "0.4.0"; src = fetchFromGitHub { owner = "emacscollective"; repo = "closql"; - rev = "0bb0fa3dd1e545cbf025d42e253ddb00107156a3"; - sha256 = "1mpycmj88gi62rhzxdv4933l318j3llphbc00b7rvzms55sgpcz5"; + rev = "66597831248bbe14ebc7bbf24b24cafebb5fd362"; + sha256 = "0jxf7k95l2j6rjyafq3zj6bxaa2xn4zmi4zg1n04sachcdrcgh3l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/closql"; @@ -4311,12 +4688,12 @@ cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cmake-mode"; - version = "3.8.0"; + version = "3.10.0pre4"; src = fetchFromGitHub { owner = "Kitware"; repo = "CMake"; - rev = "da7833c5bb1f331162d46a2c664a443c1c641089"; - sha256 = "0ca99p3i0q0f313yzfzd62pc4gl385lr1rfsx4z5vlr24ap7ipzy"; + rev = "45da558742bad36be518e8d95dee0d0ec3793a64"; + sha256 = "0qq7dhwcl290ymza5imc16cg3f9crxym1q6b4i7w9fax8x2vlc1m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode"; @@ -4350,6 +4727,27 @@ license = lib.licenses.free; }; }) {}; + cnfonts = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cnfonts"; + version = "0.9.1"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "cnfonts"; + rev = "cbe1ddd49e33b790a568c55351146aa5b909f173"; + sha256 = "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0d5787ffeeee68ffa41f3e777071815084e0ed7a/recipes/cnfonts"; + sha256 = "1pryn08fkdrdj7w302205nj1qhfbk1jzqxx6717crrxakkdqmn9w"; + name = "cnfonts"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/cnfonts"; + license = lib.licenses.free; + }; + }) {}; codic = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "codic"; @@ -4476,6 +4874,27 @@ license = lib.licenses.free; }; }) {}; + colormaps = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "colormaps"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "lepisma"; + repo = "colormaps.el"; + rev = "3a88961ba66b09a49ea5aa92b2b8776b2c92d68c"; + sha256 = "083hks2zzalizdsgabiwc1kd114r748v5i3w3kfk8pv37i2gay35"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f4c795d9e323b08bc8354a6933a061644705a2ec/recipes/colormaps"; + sha256 = "16plhgpfz1wb58p6h8wxjhplhgv0mbj3f2xj34p6vydh44l8w8q2"; + name = "colormaps"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/colormaps"; + license = lib.licenses.free; + }; + }) {}; commander = callPackage ({ cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "commander"; @@ -4518,6 +4937,27 @@ license = lib.licenses.free; }; }) {}; + comment-tags = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info }: + melpaBuild { + pname = "comment-tags"; + version = "0.1"; + src = fetchFromGitHub { + owner = "vincekd"; + repo = "comment-tags"; + rev = "293a30026d7750f6657d6c2e6d6428abf1d7db5a"; + sha256 = "06s0phgqpzkkv81gl0cm6x8rjs53lhs8b2j56xamflqiydq0fz7n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6ac71f4ffc19bce4f571001f9270d5be855dfc3c/recipes/comment-tags"; + sha256 = "13slv150zch0b7zpxa2dbqjzpqh0iy559m6rc0zs0dwdagzryp3i"; + name = "comment-tags"; + }; + packageRequires = [ emacs pkg-info ]; + meta = { + homepage = "https://melpa.org/#/comment-tags"; + license = lib.licenses.free; + }; + }) {}; commenter = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "commenter"; @@ -4542,12 +4982,12 @@ common-lisp-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "common-lisp-snippets"; - version = "0.1.1"; + version = "0.1.2"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "common-lisp-snippets"; - rev = "3b2b50fda8b1526d45a74e3d30f560d6b6bbb284"; - sha256 = "1cc9ak9193m92g6l4mrfxbkkmvljl3c51d0xzdidwww978q3x6ad"; + rev = "fc5c2683952328927a6d1c1f2694b85ddf7e9053"; + sha256 = "1835kg05794p1wdi7fsmpzlnnqy79dgfnfrxjfjj2j1gzcwmynsw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/48d0166ccd3dcdd3df4719349778c6c5ab6872ca/recipes/common-lisp-snippets"; @@ -4563,12 +5003,12 @@ company = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company"; - version = "0.9.3"; + version = "0.9.4"; src = fetchFromGitHub { owner = "company-mode"; repo = "company-mode"; - rev = "f1499404163d8148e7a6303a8598f9c0f696d1cb"; - sha256 = "1ncfvf6ndqnn95m02ij66l7674h7chzgwg2r9biymqadzxjxim9i"; + rev = "a197b072dc93dbad238f1dc70da01e3775ebfb56"; + sha256 = "0is65adahvfgfjamnr8dmnh5xnijcwzhbzsvvi6ixkkfm2xvs5aa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/96e7b4184497d0d0db532947f2801398b72432e4/recipes/company"; @@ -4605,12 +5045,12 @@ company-ansible = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-ansible"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitHub { owner = "krzysztof-magosa"; repo = "company-ansible"; - rev = "f08c19e95e67c852512c30b6825dae3dbd3005a0"; - sha256 = "0qypfla1j7c34syphh21nyswr363v6vwi87614wx9d1rz5v4h24n"; + rev = "2c30c3bdb8316b27d5c1832b944cb146d00de456"; + sha256 = "183hyy5vy7xs6hwsk8nrylck8w5czcqwzfx0wik4ppx8011jzis1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7b44cd4bd9f9a7c942ca3f3bd88b2ce61ffff130/recipes/company-ansible"; @@ -4626,12 +5066,12 @@ company-cabal = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-cabal"; - version = "0.1.1"; + version = "0.2.1"; src = fetchFromGitHub { owner = "iquiw"; repo = "company-cabal"; - rev = "a570559ff92522598b5ed40e21c4539fffb3e976"; - sha256 = "1pja44g15d11kl47abzykrp28j782nkbmb0db0ilpc96xf1fjlsw"; + rev = "f458de88cad16ed48a605e8347e56433e73dcef8"; + sha256 = "0ll9dxzsgrpy4psz3dqhzny990lfccn63swcyfvl8mnqgwbrq8k0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ee888b1ba57b6af3a3330607898810cd248862db/recipes/company-cabal"; @@ -4791,22 +5231,22 @@ license = lib.licenses.free; }; }) {}; - company-go = callPackage ({ company, fetchFromGitHub, fetchurl, lib, melpaBuild }: + company-go = callPackage ({ company, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild }: melpaBuild { pname = "company-go"; - version = "20150303"; + version = "20170907"; src = fetchFromGitHub { owner = "nsf"; repo = "gocode"; - rev = "eef10fdde96a12528a6da32f51bf638b2863a3b1"; - sha256 = "03snnra31b5j6iy94gql240vhkynbjql9b4b5j8bsqp9inmbsia3"; + rev = "c7fddb39ecbc9ebd1ebe7d2a3af473ed0fffffa1"; + sha256 = "0qx8pq38faig41xkl1a4hrgp3ziyjyn6g53vn5wj7cdgm5kk67nb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/company-go"; sha256 = "1ncy5wlg3ywr17zrxb1d1bap4gdvwr35w9a8b0crz5h3l3y4cp29"; name = "company-go"; }; - packageRequires = [ company ]; + packageRequires = [ company go-mode ]; meta = { homepage = "https://melpa.org/#/company-go"; license = lib.licenses.free; @@ -4815,12 +5255,12 @@ company-irony = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, irony, lib, melpaBuild }: melpaBuild { pname = "company-irony"; - version = "0.1.1"; + version = "1.1.0"; src = fetchFromGitHub { owner = "Sarcasm"; repo = "company-irony"; - rev = "c09f66c26bdd0dda007559a5c9bccfca0bd49ccd"; - sha256 = "17zi0xx8p2diwy1wgrhl6j8p57alwz24rjpz4apyyrqjk09ippq4"; + rev = "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7"; + sha256 = "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2b6a8d57b192325dcd30fddc9ff8dd1516ad680/recipes/company-irony"; @@ -4875,15 +5315,36 @@ license = lib.licenses.free; }; }) {}; + company-lsp = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild, s }: + melpaBuild { + pname = "company-lsp"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "tigersoldier"; + repo = "company-lsp"; + rev = "86fda23d29b732ba3987bf20901034da1515b077"; + sha256 = "068lg2yrpnzq8cg73irnx7i41giww7m0ysnl2inc7hikhmm3a95y"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5125f53307c1af3d9ccf2bae3c25e7d23dfe1932/recipes/company-lsp"; + sha256 = "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l"; + name = "company-lsp"; + }; + packageRequires = [ company emacs lsp-mode s ]; + meta = { + homepage = "https://melpa.org/#/company-lsp"; + license = lib.licenses.free; + }; + }) {}; company-math = callPackage ({ company, fetchFromGitHub, fetchurl, lib, math-symbol-lists, melpaBuild }: melpaBuild { pname = "company-math"; - version = "1.2"; + version = "1.3"; src = fetchFromGitHub { owner = "vspinu"; repo = "company-math"; - rev = "2cb03c48f44a5b3cbbbbe05e9841b2c61bd8ed81"; - sha256 = "1i13w1pziv8c1d9gi6pg50v60z7jyx2grpamrbnazvd6rci88paf"; + rev = "7e7f8c71f57b12f9bcbbf01f2bbcc59343ad76d4"; + sha256 = "0akqhhjvzsg0lbqx4bbkfkzijidwgi3bb32sxl3yxz7zfm9pbhn2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fadff01600d57f5b9ea9c0c47ed109e058114998/recipes/company-math"; @@ -4941,12 +5402,12 @@ company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "company-php"; - version = "1.7.8"; + version = "1.8.1"; src = fetchFromGitHub { owner = "xcwen"; repo = "ac-php"; - rev = "36e37b21ebcd3d178da4e23a440759bc6b049c7d"; - sha256 = "1rs7v5n5rb6gdyxxadg2p8zabh0qxvdmyq9356qk6drx8mnsvq8k"; + rev = "317ad1d023db6b2fe67444a2c075e656c35f5094"; + sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php"; @@ -5007,27 +5468,48 @@ license = lib.licenses.free; }; }) {}; - company-rtags = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + company-rtags = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }: melpaBuild { pname = "company-rtags"; - version = "2.9"; + version = "2.14"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "ffa21b5408a30a346815bc4db6e74e2c6562d936"; - sha256 = "0828i5lcbspacydjnbrp3zhgbw2gggaaizzm0qqgmvry4cs79bxv"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/company-rtags"; sha256 = "0dicxbp3xn02pflrpfndj7hs494prvz64llsk1xpc2z23kfarp6f"; name = "company-rtags"; }; - packageRequires = []; + packageRequires = [ company emacs rtags ]; meta = { homepage = "https://melpa.org/#/company-rtags"; license = lib.licenses.free; }; }) {}; + company-shell = callPackage ({ cl-lib ? null, company, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "company-shell"; + version = "1.2.1"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "company-shell"; + rev = "acdbf8cba6ad9831d81a77bab7bbfd50f19edd86"; + sha256 = "1dk927da7g4a39sva9bda978bx6hpiz5kf341fj8sb7xhryvh5r2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/bbaa05d158f3806b9f79a2c826763166dbee56ca/recipes/company-shell"; + sha256 = "0my9jghf3s4idkgrpki8mj1lm5ichfvznb09lfwf07fjhg0q1apz"; + name = "company-shell"; + }; + packageRequires = [ cl-lib company dash emacs ]; + meta = { + homepage = "https://melpa.org/#/company-shell"; + license = lib.licenses.free; + }; + }) {}; company-sourcekit = callPackage ({ company, dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, sourcekit }: melpaBuild { pname = "company-sourcekit"; @@ -5091,6 +5573,27 @@ license = lib.licenses.free; }; }) {}; + company-terraform = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, terraform-mode }: + melpaBuild { + pname = "company-terraform"; + version = "1.1"; + src = fetchFromGitHub { + owner = "rafalcieslak"; + repo = "emacs-company-terraform"; + rev = "b08ced5bac44c0253e3725a7f7a6246bdf1cf2b6"; + sha256 = "10922ykv6ii28rnhg4vri2g1fs5897xjxw6a5pk1rw2mld5kx57r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1d9732da975dcf59d3b311b19e20abbb29c33656/recipes/company-terraform"; + sha256 = "198ppqn6f7y9bg582z5s4cl9gg1q9ibsr7mmn68b50zvma7ankzh"; + name = "company-terraform"; + }; + packageRequires = [ company emacs terraform-mode ]; + meta = { + homepage = "https://melpa.org/#/company-terraform"; + license = lib.licenses.free; + }; + }) {}; company-web = callPackage ({ cl-lib ? null, company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, web-completion-data }: melpaBuild { pname = "company-web"; @@ -5115,12 +5618,12 @@ company-ycmd = callPackage ({ company, dash, deferred, f, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, s, ycmd }: melpaBuild { pname = "company-ycmd"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "9f5ad4a20e6bf893491635108adfff71f3c6b590"; - sha256 = "08kvbvhx5y3239bzdb1xpr81lfrhjy9xka4kn9dpa5bdxs0xx92w"; + rev = "d042a673b4d717c3ca9d641f120bfe16c994c740"; + sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/company-ycmd"; @@ -5159,14 +5662,14 @@ pname = "composer"; version = "0.0.8"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "composer.el"; rev = "2d16d3bb65c53e9e26f4b7b22ad38590a4a48ee1"; sha256 = "1zxqqd12p1db75icbwbdj51fvp8zzhivi8ssnxda1r5y5crbiqdv"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/39c5002f0688397a51b1b0c6c15f6ac07c3681bc/recipes/composer"; - sha256 = "1gwgfbb0fqn87s7jscr9xy47h239wy74n3hgpk4i16p2g6qinpza"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/composer"; + sha256 = "01w9cywhfngkrl9az8kfpzm12nc0zwmax01pyxlbi2l2icmvp5s1"; name = "composer"; }; packageRequires = [ emacs f request s seq ]; @@ -5178,12 +5681,12 @@ concurrent = callPackage ({ deferred, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "concurrent"; - version = "0.5.0"; + version = "0.5.1"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-deferred"; - rev = "9668749635472a63e7a9282e2124325405199b79"; - sha256 = "1ch5br9alvwcpijl9g8w5ypjrah29alpfpk4hjw23rwzyq5p4izq"; + rev = "d012a1ab50edcc2c44e3e49006f054dbff47cb6c"; + sha256 = "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8bc29a8d518ce7a584277089bd4654f52ac0f358/recipes/concurrent"; @@ -5199,12 +5702,12 @@ conda = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }: melpaBuild { pname = "conda"; - version = "0.0.6"; + version = "0.0.8"; src = fetchFromGitHub { owner = "necaris"; repo = "conda.el"; - rev = "5a13e7deda80adb40553f1c256531d040a4c99a1"; - sha256 = "011z47hkynss8a56c2fi702laqxicmwai6anald58436pdxi3y6y"; + rev = "526be691824f4a32299f560a883913697bc4d847"; + sha256 = "1jix3md6b02fypjm4y05av7acjkqryd1vqqz9wgxyinydlagrvh7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda"; @@ -5280,15 +5783,36 @@ license = lib.licenses.free; }; }) {}; + contextual-menubar = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "contextual-menubar"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "aaronjensen"; + repo = "contextual-menubar"; + rev = "cc2e7c952b59401188b81d84be81dead9d0da3db"; + sha256 = "01mk5xzsg52vfqjri1my193y6jczg2dp3pa2d0v0vw11m1k433h3"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cba21d98f3abbf1f45d1fdd9164d4660b7d3e368/recipes/contextual-menubar"; + sha256 = "0r9bsnvf45h7gsdfhsz7h02nskjvflfa2yjarjv9fcl7aipz8rr6"; + name = "contextual-menubar"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/contextual-menubar"; + license = lib.licenses.free; + }; + }) {}; copy-as-format = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "copy-as-format"; - version = "0.0.5"; + version = "0.0.6"; src = fetchFromGitHub { owner = "sshaw"; repo = "copy-as-format"; - rev = "161feb918b104e87f1a284f5c4e5e507e0c177f8"; - sha256 = "0y1j6f9xs877r4bv6dmcl2jsl27v0n6rsmpml719id2cfnh9sn4g"; + rev = "fba9fe57a310a71c5aac90a26434df4c08214833"; + sha256 = "1qh3qxy8p23nz0zh8iavggjhp0mn10finq3zl3i0a3vkxxrvgh76"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/42fe8a2113d1c15701abe7a7e0a68e939c3d789b/recipes/copy-as-format"; @@ -5301,6 +5825,27 @@ license = lib.licenses.free; }; }) {}; + copy-file-on-save = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "copy-file-on-save"; + version = "0.0.2"; + src = fetchFromGitHub { + owner = "emacs-php"; + repo = "emacs-auto-deployment"; + rev = "fe78b4c9fdc261ce22a771765702ebe4d9437c84"; + sha256 = "0vf6qp7fxqvgd02vfsbmm38vc8n2wvrfwv4wnsr15gd8y8zldlgs"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/copy-file-on-save"; + sha256 = "1mcwgkhd241aijnmzrrqqn9f7hiq5k1w4fj83v50aixrcs049gc3"; + name = "copy-file-on-save"; + }; + packageRequires = [ cl-lib emacs f s ]; + meta = { + homepage = "https://melpa.org/#/copy-file-on-save"; + license = lib.licenses.free; + }; + }) {}; copyit = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "copyit"; @@ -5385,22 +5930,22 @@ license = lib.licenses.free; }; }) {}; - counsel-bbdb = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + counsel-bbdb = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "counsel-bbdb"; - version = "0.0.1"; + version = "0.0.2"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "counsel-bbdb"; - rev = "297d0c7e6e1eaafcd5e188724fea8e8f26b95555"; - sha256 = "14gw4d855v2nvqh06vs9rzs816pn1hp4rhfikb0wzg1ay6gdrwi7"; + rev = "f95e4812cd17e5f8069c9209241396780d414680"; + sha256 = "08zal6wyzxqqg9650xyj2gmhb5cr34zwjgpfmkiw610ypld1xr73"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0ed9bcdb1f25a6dd743c1dac2bb6cda73a5a5dc2/recipes/counsel-bbdb"; sha256 = "14d9mk44skpmyj0zkqwz97j80r630j7s5hfrrhlsafdpl5aafjxp"; name = "counsel-bbdb"; }; - packageRequires = [ emacs ivy ]; + packageRequires = []; meta = { homepage = "https://melpa.org/#/counsel-bbdb"; license = lib.licenses.free; @@ -5427,6 +5972,27 @@ license = lib.licenses.free; }; }) {}; + counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "counsel-etags"; + version = "1.2.0"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "counsel-etags"; + rev = "5d7b51ce7806bbe7e1f75077b4dde2ac17a53c5d"; + sha256 = "0v3b3gs4jy8cqkvchnakwpws3a0igiklchb9q3754lnmk8784dn8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags"; + sha256 = "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0"; + name = "counsel-etags"; + }; + packageRequires = [ counsel emacs ]; + meta = { + homepage = "https://melpa.org/#/counsel-etags"; + license = lib.licenses.free; + }; + }) {}; counsel-gtags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "counsel-gtags"; @@ -5556,12 +6122,12 @@ cricbuzz = callPackage ({ dash, enlive, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "cricbuzz"; - version = "0.2.8"; + version = "0.2.10"; src = fetchFromGitHub { owner = "lepisma"; repo = "cricbuzz.el"; - rev = "5fe51347f5d6e7636ece5e904e4bdec0be21db45"; - sha256 = "1x29garhp1x5h1mwbamwjnfw52w45b39aqxsvcdxmcf730w9pq63"; + rev = "62c86b1aa6e0779c4f6d8fb9d31d75bf81994f69"; + sha256 = "1k8n65scj3frafy1fk25j3kzpp0q8r98ydibryv48izndpck03h3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/cricbuzz"; @@ -5658,6 +6224,27 @@ license = lib.licenses.free; }; }) {}; + csound-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, multi, shut-up }: + melpaBuild { + pname = "csound-mode"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "hlolli"; + repo = "csound-mode"; + rev = "877c7c9d5bdc6a2acf4ac1a10e9e24ba1bd3cc76"; + sha256 = "1vsngs42n8xp72701ppvmwyy6b90vnj39fq12yvp7x9zqf29lmq1"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c940d29de11e43b4abf2901c466c94d426a21818/recipes/csound-mode"; + sha256 = "047a78nhkn6qycsz8w9a0r1xyz5wyf4rds3z5yx9sn5wkv54w95d"; + name = "csound-mode"; + }; + packageRequires = [ emacs multi shut-up ]; + meta = { + homepage = "https://melpa.org/#/csound-mode"; + license = lib.licenses.free; + }; + }) {}; csv = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "csv"; @@ -5742,6 +6329,27 @@ license = lib.licenses.free; }; }) {}; + cubicaltt = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "cubicaltt"; + version = "1.0"; + src = fetchFromGitHub { + owner = "mortberg"; + repo = "cubicaltt"; + rev = "3257eadf70826fb3ef060c46f85b7a4d60464b1d"; + sha256 = "1c5nfzsj4bi2rk3d3r2iw03kkpc5dg9p3q3xzj7cxfg2wmg1xaxk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1be42b49c206fc4f0df6fb50fed80b3d9b76710b/recipes/cubicaltt"; + sha256 = "1wgy6965cnw201wx4a2pn71sa40mh2712y0d0470klr156krj0n9"; + name = "cubicaltt"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/cubicaltt"; + license = lib.licenses.free; + }; + }) {}; cuda-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cuda-mode"; @@ -5763,15 +6371,36 @@ license = lib.licenses.free; }; }) {}; + cwl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }: + melpaBuild { + pname = "cwl-mode"; + version = "0.2.4"; + src = fetchFromGitHub { + owner = "tom-tan"; + repo = "cwl-mode"; + rev = "c5110c1e035535a1133a7107c0d2d55e5fe3c5b9"; + sha256 = "088998r78bpy77pb2rhbr6a2fks5mcy3qyvyzlqwwl0v2gnscl59"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2309764cd56d9631dd97981a78b50b9fe793a280/recipes/cwl-mode"; + sha256 = "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j"; + name = "cwl-mode"; + }; + packageRequires = [ emacs yaml-mode ]; + meta = { + homepage = "https://melpa.org/#/cwl-mode"; + license = lib.licenses.free; + }; + }) {}; cyberpunk-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cyberpunk-theme"; - version = "1.18"; + version = "1.19"; src = fetchFromGitHub { owner = "n3mo"; repo = "cyberpunk-theme.el"; - rev = "bec963abce7a208ec192a8349ed0b8e1ac3b3041"; - sha256 = "1adbws88113lfm5ljahms12aji1swip732l7pamxwibfywhgpn2f"; + rev = "8c3cc39bcff5def0d476c080b5248436da7f990f"; + sha256 = "1npwrw3pgdmvqhihcqcfi2yrs178iiip5fcj8zhpp6cr9yqsvvgi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4c632d1e501d48dab54432ab111ce589aa229125/recipes/cyberpunk-theme"; @@ -5787,12 +6416,12 @@ cyphejor = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cyphejor"; - version = "0.1.1"; + version = "0.1.2"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "cyphejor"; - rev = "9e1cdaaaf86f3acae074e40d96de008115d81ef9"; - sha256 = "04add8i0g4x5kzi1yd49i5viq9i2f5r5gzq33k05q6rimsp2ga02"; + rev = "d7842388a1872b165489624a1a68f536de97e28d"; + sha256 = "1gi7rp0vf3iahljzjhs3rj9c0rvfcfs93hr8a3hl0ch3h9qq8ng2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ad7cacfa39d8f85e26372ef21898663aebb68e43/recipes/cyphejor"; @@ -5808,12 +6437,12 @@ cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "cython-mode"; - version = "0.25.2"; + version = "0.27.2"; src = fetchFromGitHub { owner = "cython"; repo = "cython"; - rev = "c9bcf1bed3acf367d6deb0c273cf22db0f18dab2"; - sha256 = "16yd296n0nh96pnkjpdbdz4i7ga4j961pkzm3cbnika26xwndx03"; + rev = "41b4a28d7c7c505d58502c9cf69bde2e33091de0"; + sha256 = "04k534xyr8816821y0lf2dq24bzvb40v99ijdwgy5qhv4rjxbr18"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode"; @@ -5847,22 +6476,43 @@ license = lib.licenses.free; }; }) {}; - dante = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + dad-joke = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dad-joke"; + version = "1.4"; + src = fetchFromGitHub { + owner = "davep"; + repo = "dad-joke.el"; + rev = "bee47e7b746b403228fa7d7361cb095de19ac9ba"; + sha256 = "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/484d571b2737f7c613816333afdde6460c64e635/recipes/dad-joke"; + sha256 = "1cg8iaq79w5zx1s3dirdl7ymcp162mmsy5c4vly90v20yrijblad"; + name = "dad-joke"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/dad-joke"; + license = lib.licenses.free; + }; + }) {}; + dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild, s }: melpaBuild { pname = "dante"; - version = "1.2"; + version = "1.3"; src = fetchFromGitHub { owner = "jyp"; repo = "dante"; - rev = "385dd8114bb9eaba44943f00f9f7aea71af7bf34"; - sha256 = "1jkdq9li3vqzdmmznpaxak7mf9y9vlk0abdb7ffzvvlry19dvgs8"; + rev = "6b260611dc08468fca9b9af132a00783dd2cf8d9"; + sha256 = "0s5wi010sn3ng9fr7fqbc11kmjqirr28wya3rnnzzb3m5gyxs8id"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante"; sha256 = "1j0qwjshh2227k63vd06bvrsccymqssx26yfzams1xf7bp6y0krs"; name = "dante"; }; - packageRequires = [ dash emacs flycheck ]; + packageRequires = [ dash emacs f flycheck haskell-mode s ]; meta = { homepage = "https://melpa.org/#/dante"; license = lib.licenses.free; @@ -5871,12 +6521,12 @@ darcula-theme = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darcula-theme"; - version = "1.1"; + version = "1.7"; src = fetchFromGitLab { owner = "fommil"; repo = "emacs-darcula-theme"; - rev = "834202004507221c3bdf49457219a56760b13d22"; - sha256 = "1j2g94cz9b3ivv0w88gw1hcf236kc0c7hnrf13yyspxjm5jfdmd5"; + rev = "25f179b9fb72c1b95a3907aa4b4a44f8d261e45a"; + sha256 = "0x1amh0ycjvk218d6cyqizkak47b6r1wczakbfkvnbr0khgkgmr7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/23c8f10205187babb17e3abc3dc40eb1938e6640/recipes/darcula-theme"; @@ -5892,12 +6542,12 @@ darktooth-theme = callPackage ({ autothemer, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "darktooth-theme"; - version = "0.3.5"; + version = "0.3.7"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "emacs-theme-darktooth"; - rev = "dde50661210d8610cd03526a6c9a922bb0e494a6"; - sha256 = "1mab28rm175ylg17ziha2kndcqb9a23f8wrpydypa8k7iirhadp6"; + rev = "fb66992286c009e594eb7bb9ee2f1cdc3bebb555"; + sha256 = "0n7qgnyl4rdvgwjb7gz6m1c22mxwg8bp08r7lz27z0b1bcyw94sc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b7f62ac1566ced7332e83253f79078dc30cb7889/recipes/darktooth-theme"; @@ -5976,12 +6626,12 @@ dashboard = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, page-break-lines }: melpaBuild { pname = "dashboard"; - version = "1.0.3"; + version = "1.2.4"; src = fetchFromGitHub { owner = "rakanalh"; repo = "emacs-dashboard"; - rev = "cd9899342bc94e59aa42275554810e50d045aaa4"; - sha256 = "1klmjdym4w3cbarabzvkxddjdcisfk62wkpys3z4nclp4g91p8as"; + rev = "8594c4f55448148b720eda5b72d51667fb7a8a39"; + sha256 = "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e9a79341ccaa82a8c065e71c02fe6aee22007c66/recipes/dashboard"; @@ -6039,12 +6689,12 @@ datetime = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "datetime"; - version = "0.2.1"; + version = "0.3"; src = fetchFromGitHub { owner = "doublep"; repo = "datetime"; - rev = "3ecf9985250ecd441e91614b44cf12323af907c0"; - sha256 = "1x8kj6d9p42lffk15m0c955ibwxxvfxhihij43alwq5xab2l16bv"; + rev = "082d2c7b0e38c26a8c46af9c9956a2e100d88e71"; + sha256 = "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fff9f0748b0ef76130b24e85ed109325256f956e/recipes/datetime"; @@ -6081,12 +6731,12 @@ decide = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "decide"; - version = "0.5"; + version = "0.7"; src = fetchFromGitHub { owner = "lifelike"; repo = "decide-mode"; - rev = "ce0cd15e8e42d458d86cbf4c1effd03cefec33bd"; - sha256 = "0wm24ndiyhrayg1gz456s0s1ddlpcvg4vp555g4zzl3zcpsy94bg"; + rev = "90133687118c236142b8110571c463304b3192f9"; + sha256 = "04yakjnh9c165ssmcwkkm03lnlhgfx5bnk0v3cm73kmwdmfd2q7s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6adcd300e2ac2c718989cf855fd7b3eef654df00/recipes/decide"; @@ -6144,12 +6794,12 @@ deferred = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "deferred"; - version = "0.5.0"; + version = "0.5.1"; src = fetchFromGitHub { owner = "kiwanami"; repo = "emacs-deferred"; - rev = "9668749635472a63e7a9282e2124325405199b79"; - sha256 = "1ch5br9alvwcpijl9g8w5ypjrah29alpfpk4hjw23rwzyq5p4izq"; + rev = "d012a1ab50edcc2c44e3e49006f054dbff47cb6c"; + sha256 = "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/deferred"; @@ -6183,17 +6833,19 @@ license = lib.licenses.free; }; }) {}; - deft = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { + deft = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "deft"; version = "0.7"; - src = fetchgit { - url = "git://jblevins.org/git/deft.git"; + src = fetchFromGitHub { + owner = "jrblevin"; + repo = "deft"; rev = "4001a55cf5f79cdbfa00f1405e8a4645af4acd40"; sha256 = "157c6ck6gb59i7dikbdnaq7cwlh3nnk0vqgil4v1294s2xbpp46n"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4327b4dd464ebb00c2acdd496274dedf912cdf92/recipes/deft"; - sha256 = "1c9kps0lw97nl567ynlzk4w719a86a18q697rcmrbrg5imdx4y5p"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/deft"; + sha256 = "0f6z9hsigbwdsmg0abk1ddl9j19d0rpj4gzkl0d5arcpqbla26hp"; name = "deft"; }; packageRequires = []; @@ -6664,6 +7316,27 @@ license = lib.licenses.free; }; }) {}; + diredfl = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "diredfl"; + version = "0.4"; + src = fetchFromGitHub { + owner = "purcell"; + repo = "diredfl"; + rev = "45e9c46f58c655694758d4986b9195c8bb40ddf3"; + sha256 = "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3da86e18d423198766455929da1dcb3a9a3be381/recipes/diredfl"; + sha256 = "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn"; + name = "diredfl"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/diredfl"; + license = lib.licenses.free; + }; + }) {}; diredful = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "diredful"; @@ -6688,12 +7361,12 @@ direnv = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }: melpaBuild { pname = "direnv"; - version = "1.1.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "wbolster"; repo = "emacs-direnv"; - rev = "cc8fbcc9c71f120c45c3363ed6ad202352e9a6d5"; - sha256 = "03m4c2x7d7hmsgx3ma4z0ra5y6s7fyfsxmzwz618pfa94nbx3qny"; + rev = "3c632dd1fdf0ad1edb6d9b0a4a09cdbb420c27aa"; + sha256 = "0jajqf7ad0x6ca7i051svrc37mr3ww8pvd1832i0k7nf3i8cv867"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5419809ee62b920463e359c8e1314cd0763657c1/recipes/direnv"; @@ -6751,12 +7424,12 @@ disable-mouse = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "disable-mouse"; - version = "0.2"; + version = "0.3"; src = fetchFromGitHub { owner = "purcell"; repo = "disable-mouse"; - rev = "d1c52d80ed2149d0751afd948ffc2d9f80f589ac"; - sha256 = "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"; + rev = "81639930bcaeedadbcc19728e91719afcac84613"; + sha256 = "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dbbc396373212fdf731e135cde391f27708ff015/recipes/disable-mouse"; @@ -6923,6 +7596,27 @@ license = lib.licenses.free; }; }) {}; + docker-compose-mode = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }: + melpaBuild { + pname = "docker-compose-mode"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "meqif"; + repo = "docker-compose-mode"; + rev = "ae25b0e01394f94995f4b0ceaab1e04eb4b9acbd"; + sha256 = "14xri92dcj52vw1vhrnicibrn9y010zv8w7jw6j3q9lrpmr073lr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/37dd4c1fc11d22598c6faf03ccc860503a68b950/recipes/docker-compose-mode"; + sha256 = "1hldddl86h0i1ysxklkr1kyz44lzic1zr68x3vb0mha4n5d6bl5g"; + name = "docker-compose-mode"; + }; + packageRequires = [ dash emacs yaml-mode ]; + meta = { + homepage = "https://melpa.org/#/docker-compose-mode"; + license = lib.licenses.free; + }; + }) {}; docker-tramp = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "docker-tramp"; @@ -7007,22 +7701,22 @@ license = lib.licenses.free; }; }) {}; - doom-themes = callPackage ({ all-the-icons, dash, emacs, fetchFromGitHub, fetchurl, font-lock-plus, lib, melpaBuild }: + doom-themes = callPackage ({ all-the-icons, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "doom-themes"; - version = "1.1.5"; + version = "1.2.5"; src = fetchFromGitHub { owner = "hlissner"; - repo = "emacs-doom-theme"; - rev = "f07088c1a6c177cdb5e2ff674489c17a8a7a8426"; - sha256 = "1c6id6d42p38viwd0x6cic0v08g117gj7im1m15k9j52rkvgvvn8"; + repo = "emacs-doom-themes"; + rev = "d04875c9c7ce21d5f51dfc541a5d03efddac7728"; + sha256 = "0lfldrsfldrnw9g59dnsmyyp7j3v3kqv0d39h4kzs9dhm5v9dpbr"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/73fd9f3c2352ea1af49166c2fe586d0410614081/recipes/doom-themes"; - sha256 = "1ckr8rv1i101kynnx666lm7qa73jf9i5lppgwmhlc76lisg07cik"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c5084bc2c3fe378af6ff39d65e40649c6359b7b5/recipes/doom-themes"; + sha256 = "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs"; name = "doom-themes"; }; - packageRequires = [ all-the-icons dash emacs font-lock-plus ]; + packageRequires = [ all-the-icons cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/doom-themes"; license = lib.licenses.free; @@ -7136,12 +7830,12 @@ drupal-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode }: melpaBuild { pname = "drupal-mode"; - version = "0.7.1"; + version = "0.7.3"; src = fetchFromGitHub { owner = "arnested"; repo = "drupal-mode"; - rev = "1e6f973ed5dfdbbfda96c4ab266bd8ef3d6436d7"; - sha256 = "1c3krir3l04rwlyadnhra6kmbnmvdm95aj7iwspa6dssnry4vflj"; + rev = "49ce63c659aa0af7a2daf0c9e74e58fbce6deb71"; + sha256 = "1l2xc24y037b3z62yxmq2bx1x3qqv56d15bf3qmb3mpgm4gh85j6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13e16af340868048eb1f51f9865dfc707e57abe8/recipes/drupal-mode"; @@ -7175,6 +7869,27 @@ license = lib.licenses.free; }; }) {}; + dtrt-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "dtrt-indent"; + version = "0.3"; + src = fetchFromGitHub { + owner = "jscheid"; + repo = "dtrt-indent"; + rev = "69d0c5e143453708dbf0ebec4e368bc26fff683c"; + sha256 = "154m53hhzjawmrg2vlqjcg9npgq1igw9f0fz6gh7vscmbxl5dnjq"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/61bcbcfa6c0f38a1d87f5b6913b8be6c50ef2994/recipes/dtrt-indent"; + sha256 = "1npn2jngy1wq0jpwmg1hkn8lx6ncbqsi587jl38lyp2xwchshfk5"; + name = "dtrt-indent"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/dtrt-indent"; + license = lib.licenses.free; + }; + }) {}; ducpel = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ducpel"; @@ -7199,12 +7914,12 @@ dumb-jump = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s }: melpaBuild { pname = "dumb-jump"; - version = "0.5.0"; + version = "0.5.1"; src = fetchFromGitHub { owner = "jacktasia"; repo = "dumb-jump"; - rev = "c96467b3079495353350a6b00fd2e6052b3a3fd0"; - sha256 = "04jhbapf84if54d648mx1fk7b9vwrnd0apyarwjv7p1azasm6vwl"; + rev = "64c0759432334465ccea115d83600b468f86e3be"; + sha256 = "00vhxd7z7fw2cwdzgvfbdzfp668dfaw83c95kkicmmdzlabiz50i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/dumb-jump"; @@ -7223,8 +7938,8 @@ version = "0.7"; src = fetchhg { url = "https://bitbucket.com/harsman/dyalog-mode"; - rev = "6cc0b8488a17"; - sha256 = "03x94q315yq5kg2wvsp508a9hxl625iji3b84kywmg5hb3w5r9qn"; + rev = "9e446540a794"; + sha256 = "0gyip843fdqp6cwwaqcrnpngf5a3iqcbd9h7rl5lbvxpkqvm7shi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/dyalog-mode"; @@ -7405,15 +8120,36 @@ license = lib.licenses.free; }; }) {}; + eacl = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "eacl"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "eacl"; + rev = "c7a8d705295dc51cc306cb4c2d8773e24c4c74f4"; + sha256 = "1f3liqrw55v9wnf7g475iabx4pf7gbg2x82mqrf22hhkvxzi2b2b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8223bec7eed97f0bad300af9caa4c8207322d39a/recipes/eacl"; + sha256 = "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr"; + name = "eacl"; + }; + packageRequires = [ emacs ivy ]; + meta = { + homepage = "https://melpa.org/#/eacl"; + license = lib.licenses.free; + }; + }) {}; easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "easy-hugo"; - version = "0.5.5"; + version = "2.0.16"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-easy-hugo"; - rev = "65fe2afeb240ff16b6fa0e580e3b03342b388e28"; - sha256 = "0sv4m44zbil54mppqybq5978f3dnn0smjpkl3qw7d4sfh4dwf779"; + rev = "d55472bdb08850fb3b2b27a373630c68f6cd2ac0"; + sha256 = "168wz1638arypqz6i0mzj1pw6mzgp6x10i2wz2vpgkw5p79zw46i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo"; @@ -7489,22 +8225,22 @@ license = lib.licenses.free; }; }) {}; - ebal = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: + ebal = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ebal"; - version = "0.2.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "ebal"; - rev = "4d2ffa7ffbdfd6ee8a39a268e7c7c0de0905df6b"; - sha256 = "0ysym38xaqyx1wc7xd3fvjm62dmiq4727dnjvyxv7hs4czff1gcb"; + rev = "4d19565516785348894c4911e757e33a270b3efd"; + sha256 = "1wj9h8ypi70az387c7pcrpc59lpf89dkp2q4df2ighxw3l648mb7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/629aa451162a0085488caad4052a56366b7ce392/recipes/ebal"; sha256 = "1kqnlp5n1aig1qbqdq9q50wgqkzd1l6h9wi1gv43cif8qa1kxhwg"; name = "ebal"; }; - packageRequires = [ emacs f ido-completing-read-plus ]; + packageRequires = [ emacs f ]; meta = { homepage = "https://melpa.org/#/ebal"; license = lib.licenses.free; @@ -7534,12 +8270,12 @@ ebib = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, parsebib, seq }: melpaBuild { pname = "ebib"; - version = "2.10.2"; + version = "2.11.6"; src = fetchFromGitHub { owner = "joostkremers"; repo = "ebib"; - rev = "558097220099505994b7e9a2ea9e1208da6c5668"; - sha256 = "1v9x69jzsfl7kh5nnbax218xykylz6ib0f73f9yrsjbmgap3fvva"; + rev = "9e5f3377a5e9c6956300de3872c89cd902c2cfc6"; + sha256 = "0rklwdz3d2b065yhhiz7bhyfb3fsg9rcqi6d4rhk7wb8w849vf20"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/ebib"; @@ -7702,12 +8438,12 @@ edit-indirect = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "edit-indirect"; - version = "0.1.4"; + version = "0.1.5"; src = fetchFromGitHub { owner = "Fanael"; repo = "edit-indirect"; - rev = "1d1dae842505e5ff09644529deec87c056e1b14e"; - sha256 = "145knahvvxbm8qmcdb69ilrg14w7130vav2pqjd7anr1l8n2i6gz"; + rev = "032ac0ec690d4999d564fd882588c7a197efe8dd"; + sha256 = "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/acc9b816796b9f142c53f90593952b43c962d2d8/recipes/edit-indirect"; @@ -7765,12 +8501,12 @@ editorconfig = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "editorconfig"; - version = "0.7.9"; + version = "0.7.10"; src = fetchFromGitHub { owner = "editorconfig"; repo = "editorconfig-emacs"; - rev = "b86a4b3a696328faaa37a808abeed54561d19385"; - sha256 = "0ak5rw3y9cqggyclf9qddqrg9kzl50r5ynk9f99xjmsn2mpw6dwj"; + rev = "1543835ce00412c3cd34a61497af5f68ead250a6"; + sha256 = "1c516972gx1rvlixdl6mgknx6vx1m4hbzbz3x43pzlg0mn31yn01"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/50d4f2ed288ef38153a7eab44c036e4f075b51d0/recipes/editorconfig"; @@ -7846,6 +8582,27 @@ license = lib.licenses.free; }; }) {}; + eg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eg"; + version = "1.1"; + src = fetchFromGitHub { + owner = "davep"; + repo = "eg.el"; + rev = "0791452498719afb7409d1f723dbea2ec26d56f1"; + sha256 = "1y16pah8f4jp117vihvlcwvsw2i85gdk45h9y9r1w9mslb24faac"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3d2b6b92b2a71486f260571885bf149ad6afc551/recipes/eg"; + sha256 = "1ic6qzk0zmay3vvbb8jg35irqkc0k68dmgbq4j9isiawy449zvp7"; + name = "eg"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/eg"; + license = lib.licenses.free; + }; + }) {}; egg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "egg"; @@ -7890,11 +8647,11 @@ }) {}; eide = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eide"; - version = "2.1.1"; + version = "2.1.2"; src = fetchgit { url = "git://git.tuxfamily.org/gitroot/eide/emacs-ide.git"; - rev = "524494fd2b23217c6807b30b43bb95b5724f809e"; - sha256 = "0w9j5q5pzw55nwsw5wic7dl7psvg75vk1cxhrz2isgra6gissh9z"; + rev = "5f046ea74eee7af9afbd815c2bfd11fa9c72e6b3"; + sha256 = "1bd9vqqzhbkpfr80r91r65gv6mqnjqfnyclylivg79sfkkahil9n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eide"; @@ -7907,22 +8664,32 @@ license = lib.licenses.free; }; }) {}; - ein = callPackage ({ cl-generic, fetchFromGitHub, fetchurl, lib, melpaBuild, request, websocket }: + ein = callPackage ({ auto-complete, cl-generic, dash, deferred, fetchFromGitHub, fetchurl, lib, melpaBuild, request, request-deferred, s, skewer-mode, websocket }: melpaBuild { pname = "ein"; - version = "0.12.2"; + version = "0.13.0"; src = fetchFromGitHub { owner = "millejoh"; repo = "emacs-ipython-notebook"; - rev = "0ede9e7ef64017039748b8f47de4df834b0443ed"; - sha256 = "03fm7lhfzrhn4dddlhqx6v1dqfgz6rj352y0znnfdaskzychw1sa"; + rev = "213cea559e7a8fb50e303ea25e1626fefddaf4bd"; + sha256 = "18ysd78pfyymqd0f6ipma9p9x61pw21f0jwk118r5yi00wnry9za"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/215e163755fe391ce1f049622e7b9bf9a8aea95a/recipes/ein"; sha256 = "14blq1cbrp00rq0ilk7z9qppqfj0r4n3jidw3abcpchvh5ln086r"; name = "ein"; }; - packageRequires = [ cl-generic request websocket ]; + packageRequires = [ + auto-complete + cl-generic + dash + deferred + request + request-deferred + s + skewer-mode + websocket + ]; meta = { homepage = "https://melpa.org/#/ein"; license = lib.licenses.free; @@ -8057,12 +8824,12 @@ el-patch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "el-patch"; - version = "1.1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "raxod502"; repo = "el-patch"; - rev = "0cbcbc0ddf2f65ce02a4b0b027990d7131828a9b"; - sha256 = "1nzzjb5q58f5p0jpa3rg9mmnkmnlbs19ws993sn5fcb1161hhg7r"; + rev = "cc26f37e19ebc60ca75067115d3794cda88003c5"; + sha256 = "0b8yy51dy5280y7yvq0ylm20m9bvzi7lzs3c9m1i2gb3ssx7267w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2f4f57e0edbae35597aa4a7744d22d2f971d5de5/recipes/el-patch"; @@ -8117,6 +8884,27 @@ license = lib.licenses.free; }; }) {}; + el2org = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "el2org"; + version = "0.6.0"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "el2org"; + rev = "4a33469cd305e581603d7ef63bc2a1f2156f2e2e"; + sha256 = "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/el2org"; + sha256 = "02kyvzpjws2mrp414i4zm4fmrnzgkaax6bnrlyhp17a8aqaggbnh"; + name = "el2org"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/el2org"; + license = lib.licenses.free; + }; + }) {}; eldoc-eval = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eldoc-eval"; @@ -8183,12 +8971,12 @@ elfeed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elfeed"; - version = "2.1.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "skeeto"; repo = "elfeed"; - rev = "67c4f07f5b0f942f030848f5d657909a1424b597"; - sha256 = "1dc7csmj8w2k5056dz4lm86qhzgwpmr08s2hj216cpgg7cjxnwc0"; + rev = "79077efc34aad25bb43cf46a28a69a308196c972"; + sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/407ae027fcec444622c2a822074b95996df9e6af/recipes/elfeed"; @@ -8204,12 +8992,12 @@ elfeed-web = callPackage ({ elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, simple-httpd }: melpaBuild { pname = "elfeed-web"; - version = "2.1.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "skeeto"; repo = "elfeed"; - rev = "67c4f07f5b0f942f030848f5d657909a1424b597"; - sha256 = "1dc7csmj8w2k5056dz4lm86qhzgwpmr08s2hj216cpgg7cjxnwc0"; + rev = "79077efc34aad25bb43cf46a28a69a308196c972"; + sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/62459d16ee44d5fcf170c0ebc981ca2c7d4672f2/recipes/elfeed-web"; @@ -8225,12 +9013,12 @@ elisp-refs = callPackage ({ dash, f, fetchFromGitHub, fetchurl, lib, list-utils, loop, melpaBuild, s }: melpaBuild { pname = "elisp-refs"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "Wilfred"; repo = "refs.el"; - rev = "e309c87a91012305ecb37124a758609c64e0ca4a"; - sha256 = "0wvz5ysaj2dnqhkp5xdqsm45fxwlhym5j8rn4g0h7g7zwdi3c6c6"; + rev = "8f2da5ba5b728a8f278813c95d0fda3364cca40c"; + sha256 = "0i0xjy4x3i349jbpbqhfz57frk8cdakwi78fw1mlycx4qinlx2n0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/60891099e241ebd32d39bdcfe4953529a5a3263e/recipes/elisp-refs"; @@ -8390,22 +9178,22 @@ license = lib.licenses.free; }; }) {}; - elpa-clone = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + elpa-clone = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elpa-clone"; - version = "0.0.4"; + version = "0.0.6"; src = fetchFromGitHub { owner = "dochang"; repo = "elpa-clone"; - rev = "8d0827b03b08eb4844e2b8465c27d5aa0e12101d"; - sha256 = "1ik2k6ngzg3znfp4a36f7m5ca6p3iivfb7w280w3gm5x1ja8as2a"; + rev = "92f4c9d3570ad002575a90d0cc4a522c203a1110"; + sha256 = "0m5w5wgyslvakcqpr3d198sy3561w2h002gflw0jp47v17hba1r7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/11861edd9c7f9deebd44fd1f8ef648e7a04caf2b/recipes/elpa-clone"; sha256 = "172gpmpwf75y41n3v05l47w34x83vy63bqk97fd8a6b4dkj91lqa"; name = "elpa-clone"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/elpa-clone"; license = lib.licenses.free; @@ -8435,12 +9223,12 @@ elpy = callPackage ({ company, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }: melpaBuild { pname = "elpy"; - version = "1.14.1"; + version = "1.17.0"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "elpy"; - rev = "9afc370f7044d4e5c5a47e7080b43468ff2a4e28"; - sha256 = "1ynranqi0lv9nhap4ydqns3znpqpc0q69qyb22i93pkd505ryyf8"; + rev = "99f0b6401bff25d40b9f58123533271f7870a286"; + sha256 = "06n0vr8y5s8y7q9v96z030l1i9n29p622p36biyi5cjcmgf5h09j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy"; @@ -8502,27 +9290,6 @@ license = lib.licenses.free; }; }) {}; - elscreen-persist = callPackage ({ elscreen, fetchFromGitHub, fetchurl, lib, melpaBuild, revive }: - melpaBuild { - pname = "elscreen-persist"; - version = "0.2.0"; - src = fetchFromGitHub { - owner = "robario"; - repo = "elscreen-persist"; - rev = "652b4c738f92c518ead69343ebfcf66bc2a0254c"; - sha256 = "06g7fl2c7cvwsrgi462wf6j13ny56y6zvgkizz9f256xjjq77ymf"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/c30ec71dcc29d1d0fd6c54de512c8c4636a7e0a6/recipes/elscreen-persist"; - sha256 = "1rjfvpsx0y5l9b76wa1ilj5lx39jd0m78nb1a4bqn81z0rkfpl4k"; - name = "elscreen-persist"; - }; - packageRequires = [ elscreen revive ]; - meta = { - homepage = "https://melpa.org/#/elscreen-persist"; - license = lib.licenses.free; - }; - }) {}; elwm = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elwm"; @@ -8547,16 +9314,16 @@ elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "elx"; - version = "1.0.1"; + version = "1.1.1"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "elx"; - rev = "84c9cd5721be9594de743330e7abcec092d2838c"; - sha256 = "0z2xgy8n3gwh71129pk53nrm13h2x51n61vz7xjqmhm6c11vgrq4"; + rev = "9f5d593b65686e8da29ef79457c8f6fc061af7e5"; + sha256 = "1vs7nmsi82gv9mw1mia6ri1vmn26ldwnj8akirqgq31rfgyfj4vh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/91430562ecea439af020e96405ec3f21d768cf9f/recipes/elx"; - sha256 = "02nq66c0sds61k2p8cn2l0p2l8ysb38ibr038qn41l9hg1dq065x"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx"; + sha256 = "008nwa2gn3d2ayr8023pxyvph52gh9m56f77h41hp8hcw6hbdwrz"; name = "elx"; }; packageRequires = [ emacs ]; @@ -8757,12 +9524,12 @@ embrace = callPackage ({ cl-lib ? null, expand-region, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "embrace"; - version = "0.1.3"; + version = "0.1.4"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "embrace.el"; - rev = "a57b4be5d60daf8c176f9bd35770540c2d3963c9"; - sha256 = "0sn81a7f8g5i4q74byfkj0jlg4aj0rxpfvx9sqv8azcg6wq2f65l"; + rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2"; + sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6/recipes/embrace"; @@ -8796,20 +9563,21 @@ license = lib.licenses.free; }; }) {}; - emms = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { + emms = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { pname = "emms"; - version = "4.2"; + version = "4.4"; src = fetchgit { url = "https://git.savannah.gnu.org/git/emms.git"; - rev = "6736d2e86d2909ef44759b1162e006bd5cc07547"; - sha256 = "1qxdxy2grh0fdx50w1m9rmpvygxcywis4qjzi0mrpv2i7rwn8qal"; + rev = "88fecd0234da595843ce6be4d3f9f2b755ff612d"; + sha256 = "0ycm2lggljhzrb10r3c322c7bb580gk125x9nvpvjrvsp74p8im0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms"; sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94"; name = "emms"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/emms"; license = lib.licenses.free; @@ -8839,12 +9607,12 @@ emms-player-mpv = callPackage ({ emms, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "emms-player-mpv"; - version = "0.0.11"; + version = "0.0.12"; src = fetchFromGitHub { owner = "dochang"; repo = "emms-player-mpv"; - rev = "ce142304d1fe6b096b9b984e40e55c8cc54217c1"; - sha256 = "1s8jmkcr11fp93hmyxq7c781lx7krc5xsk99ar0h50v2hpnmzgbb"; + rev = "8c72282c98f9b10601e9a6901277040cda4b33aa"; + sha256 = "1h37kqhsi1x5xgxfp1i72vfdx5c2klblzmphf6mih3fvw3pcyxi6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9679cb8d4b3b9dce1e0bff16647ea3f3e02c4189/recipes/emms-player-mpv"; @@ -9014,22 +9782,22 @@ license = lib.licenses.free; }; }) {}; - enh-ruby-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + enh-ruby-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "enh-ruby-mode"; - version = "20150711"; + version = "20170417"; src = fetchFromGitHub { owner = "zenspider"; repo = "enhanced-ruby-mode"; - rev = "f945cff5e784e23e0028bf0a5221f4f47a822fac"; - sha256 = "1f6zyz5jmbrvv37mbzsvwb3ycmq105p4ryz8p65b76jz3ps8yq5w"; + rev = "2e483fe316ff993c80eafcf4ce4defd87d97776d"; + sha256 = "1xzhgmbc9iplxmqm7gc4hqk6nfdhqcrxz8g9kkf5ww3dx1czhiv7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cd1ac1ce69b77b11f34c4175611a852e7ec0806c/recipes/enh-ruby-mode"; sha256 = "0r486yajjf7vsaz92ypxpfmz2nsvw9giffpxb9szj7fcry3nfdns"; name = "enh-ruby-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/enh-ruby-mode"; license = lib.licenses.free; @@ -9080,12 +9848,12 @@ ensime = callPackage ({ company, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, s, sbt-mode, scala-mode, yasnippet }: melpaBuild { pname = "ensime"; - version = "1.0.1"; + version = "2.0.1"; src = fetchFromGitHub { owner = "ensime"; repo = "ensime-emacs"; - rev = "2b4d4cd764b9fa4757738a6dae87f4d1e99686d6"; - sha256 = "0j7zd3qxh4m5gv5s8pvfacad2mkzwwz1xdrvg1sa035xaxahqsyx"; + rev = "34c7719c9739d1e5d55c3f776e8f32a417b4eea6"; + sha256 = "1dpj31krw0vwrb1pimpbpdm3k2ivqmr6kbgaw8p2dwwwqk1s6nbg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/502faab70af713f50dd8952be4f7a5131075e78e/recipes/ensime"; @@ -9151,12 +9919,12 @@ epkg = callPackage ({ closql, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "epkg"; - version = "2.3.0"; + version = "3.0.0"; src = fetchFromGitHub { owner = "emacscollective"; repo = "epkg"; - rev = "deb9affaadce11c356df53b6b62ab376ef652d16"; - sha256 = "1515gv9bhjwbmkbz6sivq5zhpalvfb0ias4qia9anz9npqfx24y0"; + rev = "1768e91e02a2d6441c2d82a711912a9498d2316e"; + sha256 = "02fknkqxqxzqdqa2vj7ql6swrl83v1xs5iym5r6yr6mpj69di8bd"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2df16abf56e53d4a1cc267a78797419520ff8a1c/recipes/epkg"; @@ -9378,22 +10146,22 @@ license = lib.licenses.free; }; }) {}; - erlang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "erlang"; - version = "19.3.1"; + version = "20.1.3"; src = fetchFromGitHub { owner = "erlang"; repo = "otp"; - rev = "d25ad84195ca42969fbfb017a52aab8c8effc246"; - sha256 = "06jxpypw8i13gjiq006p0ahy0mlkxhmpq8fhn4pp7hi2n4ycnfj1"; + rev = "a98379d0519c28f9bc9b673ed2c09fb1ad52456e"; + sha256 = "1672yqqh7ql88c6ifv555wvqrj8nyn5a2nph43n2nc43h7hhz17c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang"; sha256 = "1cs768xxbyrr78ln50k4yknmpbcc1iplws3k07r0gx5f3ca73iaq"; name = "erlang"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/erlang"; license = lib.licenses.free; @@ -9493,8 +10261,8 @@ sha256 = "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/85445b59329bfd81a3fd913d7d6fe7784c31744c/recipes/es-mode"; - sha256 = "1541c7d8gbi4mgxwk886hgsxhq7bfx8is7hjjg80sfn40z6kdwcp"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/9912193f73c4beae03b295822bf41cb2298756e2/recipes/es-mode"; + sha256 = "0zp84k5idqkrvc9qci49ains0b86kpk97lk1jcwyj75s4xsfyp1y"; name = "es-mode"; }; packageRequires = [ cl-lib dash spark ]; @@ -9545,6 +10313,27 @@ license = lib.licenses.free; }; }) {}; + esh-help = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "esh-help"; + version = "1.0.1"; + src = fetchFromGitHub { + owner = "tom-tan"; + repo = "esh-help"; + rev = "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6"; + sha256 = "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ab94c66d1ed7cfdbc437ee239984ba70408fd28a/recipes/esh-help"; + sha256 = "1k925wmn8jy9rxxsxxawasxq6r4yzwl116digdx314gd3i04sh3w"; + name = "esh-help"; + }; + packageRequires = [ dash ]; + meta = { + homepage = "https://melpa.org/#/esh-help"; + license = lib.licenses.free; + }; + }) {}; eshell-autojump = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-autojump"; @@ -9566,6 +10355,27 @@ license = lib.licenses.free; }; }) {}; + eshell-bookmark = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eshell-bookmark"; + version = "2.0.0"; + src = fetchFromGitHub { + owner = "Fuco1"; + repo = "eshell-bookmark"; + rev = "deda4b848b2fb979dbe73ead2cb866610e3596ed"; + sha256 = "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e7bf4702a907727990fcc676980f2b219e22ab0c/recipes/eshell-bookmark"; + sha256 = "1bybxlq1h5chrjxqjb23kq8dmgw2xrjwkrnvpbphblqzpdy5ck0s"; + name = "eshell-bookmark"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/eshell-bookmark"; + license = lib.licenses.free; + }; + }) {}; eshell-did-you-mean = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-did-you-mean"; @@ -9590,12 +10400,12 @@ eshell-git-prompt = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-git-prompt"; - version = "0.1.1"; + version = "0.1.2"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "eshell-git-prompt"; - rev = "fb56e851c1baac68249c34043bd5db9c9420141e"; - sha256 = "08mhjps17w3kfmmbdws1lqzphr2ayl160i0ckd4552jdyzd28vvs"; + rev = "b6bb2d7bd4e393b4170b29891cfefb72ae020aab"; + sha256 = "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5272280b19579c302ba41b53c77e42bc5e8ccbda/recipes/eshell-git-prompt"; @@ -9608,6 +10418,27 @@ license = lib.licenses.free; }; }) {}; + eshell-prompt-extras = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eshell-prompt-extras"; + version = "0.96"; + src = fetchFromGitHub { + owner = "hiddenlotus"; + repo = "eshell-prompt-extras"; + rev = "7581c109673c40aceff278cd524273f50ffe170d"; + sha256 = "1m1jisjz974cfz89i6l2zq666yzhsqipc6dmqlrm8mw81fxsfm1h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/eshell-prompt-extras"; + sha256 = "0kh4lvjkayjdz5lqvdqmdcblxizxk9kwmigjwa68kx8z6ngmfwa5"; + name = "eshell-prompt-extras"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/eshell-prompt-extras"; + license = lib.licenses.free; + }; + }) {}; eshell-up = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eshell-up"; @@ -9650,6 +10481,27 @@ license = lib.licenses.free; }; }) {}; + eslint-fix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "eslint-fix"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "codesuki"; + repo = "eslint-fix"; + rev = "be90d1e78b1dfd43b6b3b1c06868539e2ac27d3a"; + sha256 = "1l7pm0ywjby0giilyn6qsz1zh54sgmvmii7y9jhrva13c5kgg9an"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/eslint-fix"; + sha256 = "0ry271jlv95nhdqx6qxmvkpa10lpwkg1q6asnliviwplq2mxw2da"; + name = "eslint-fix"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/eslint-fix"; + license = lib.licenses.free; + }; + }) {}; eslintd-fix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eslintd-fix"; @@ -9734,27 +10586,6 @@ license = lib.licenses.free; }; }) {}; - ess-R-object-popup = callPackage ({ ess, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: - melpaBuild { - pname = "ess-R-object-popup"; - version = "1.0"; - src = fetchFromGitHub { - owner = "myuhe"; - repo = "ess-R-object-popup.el"; - rev = "7e1f601bfba72de0fda44d9c82f96028ecbb9948"; - sha256 = "0q8pbaa6wahli6fh0kng5zmnypsxi1fr2bzs2mfk3h8vf4nikpv0"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8783caab9019623ade5c369a4713eba996507bd0/recipes/ess-R-object-popup"; - sha256 = "1dxwgahfki6d6ywh85ifk3kq6f2a1114kkd8xcv4lcpzqykp93zj"; - name = "ess-R-object-popup"; - }; - packageRequires = [ ess popup ]; - meta = { - homepage = "https://melpa.org/#/ess-R-object-popup"; - license = lib.licenses.free; - }; - }) {}; ess-smart-underscore = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ess-smart-underscore"; @@ -9779,12 +10610,12 @@ esup = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esup"; - version = "0.5"; + version = "0.6"; src = fetchFromGitHub { owner = "jschaf"; repo = "esup"; - rev = "6faef1fe1b5ff2fb761722ef1972a16395d9a10b"; - sha256 = "18igz3gcdp42wk89y59d4gxkbv0zvs8i4lg1b0qsrf90knasfjc9"; + rev = "53355b13dc9f1636ba681ffff830162ebbd3b223"; + sha256 = "1a4b8390azimlrr5ayxvaks1w7009vfbm56q11ybx00xxrd26v43"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9d2948a42da5d4864404d2d11a924a4f235fc3b/recipes/esup"; @@ -9800,16 +10631,16 @@ esxml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "esxml"; - version = "0.3.2"; + version = "0.3.3"; src = fetchFromGitHub { owner = "tali713"; repo = "esxml"; - rev = "fd0f0185cd579b00c3d76d2c383cd33fe642bb93"; - sha256 = "0azwfxzxghxhzwal4al0lngm0w3q035jyvm3wj2aaml2dibsi3pb"; + rev = "08fcc5d76abb90c194e181f267cf1d2a149b7a7c"; + sha256 = "034lxfqn5yh78hz7i568vw8kyv3hlb699z2d1dffjiigc1lblgip"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/esxml"; - sha256 = "0v63ihgg2db3648s2xygcky9s0vx9byjjpbhlgjy5j159w2w53vh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/db6556fe1b2403d1bcdade263986fd0faf0d9087/recipes/esxml"; + sha256 = "1375gryii984l33gc8f8yhl3vncjmw1w9k6xpvjgmnpx2fwr1vbq"; name = "esxml"; }; packageRequires = []; @@ -9821,12 +10652,12 @@ ethan-wspace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ethan-wspace"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "glasserc"; repo = "ethan-wspace"; - rev = "b8eae49ed3e7f646c16234970af5663e3090e720"; - sha256 = "1xqc4lqzirpmr21w766g8vmcvvsq8b3hv9i7r27i5x1g0j4jabja"; + rev = "e055ee6730c0b03525d32e67511ef6c51e4c29e4"; + sha256 = "0ik3y60xd3ap1pg5dr5ab6bq4qh8gblpgz1iiprmv7acr3ckzc41"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9454f3a58e3416fa60d8411b0db19c408935408f/recipes/ethan-wspace"; @@ -9842,12 +10673,12 @@ eval-in-repl = callPackage ({ ace-window, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, paredit }: melpaBuild { pname = "eval-in-repl"; - version = "0.9.4"; + version = "0.9.6"; src = fetchFromGitHub { owner = "kaz-yos"; repo = "eval-in-repl"; - rev = "674873139ebde439fbeecaf0fb217d54f470bc14"; - sha256 = "1fzsq6fkkrsxg6mimrnls0kn59rq7w332b94gg04j0khl61s1v1s"; + rev = "7e2b42570b449b2a3c2922f3036a027d1e393a60"; + sha256 = "0x97flv356kd7j6wbhacz0lmsrdd9as87b0n6nliq5n0y30my8dy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0bee5fb7a7874dd20babd1de7f216c5bda3e0115/recipes/eval-in-repl"; @@ -9902,22 +10733,22 @@ license = lib.licenses.free; }; }) {}; - evil = callPackage ({ fetchFromGitHub, fetchurl, goto-chg, lib, melpaBuild, undo-tree }: + evil = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, goto-chg, lib, melpaBuild, undo-tree }: melpaBuild { pname = "evil"; - version = "1.2.12"; + version = "1.2.13"; src = fetchFromGitHub { owner = "emacs-evil"; repo = "evil"; - rev = "0ad4c2dae1249558f7b59a78a685e4f8092009c9"; - sha256 = "1z7ysn0h62i674pw47k905713m4ch7hrisk4834rf53zq3c9sabn"; + rev = "427cf5faa57e8794ac93f594dc3d1972e687a25a"; + sha256 = "02xc9zgrabnlwk3wlsxbzbhdzi3fm5fk8kimvgdcp8vsnpdcrhql"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/514964d788f250e1e7893142bc094c63131bc6a5/recipes/evil"; - sha256 = "044k9p32y4cys3zwdfanr1zddgkxz16ahqspfz7vfszyw8yml1jb"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/440482c0edac8ee8bd4fe22f6bc5c1607f34c7ad/recipes/evil"; + sha256 = "1d36r6mi5nvrwnk4a9338wmhr72fcbrwj0r8gmvivpjdngjy4k39"; name = "evil"; }; - packageRequires = [ goto-chg undo-tree ]; + packageRequires = [ cl-lib emacs goto-chg undo-tree ]; meta = { homepage = "https://melpa.org/#/evil"; license = lib.licenses.free; @@ -9965,22 +10796,22 @@ license = lib.licenses.free; }; }) {}; - evil-colemak-basics = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + evil-colemak-basics = callPackage ({ emacs, evil, evil-snipe, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-colemak-basics"; - version = "2.0.0"; + version = "2.1.0"; src = fetchFromGitHub { owner = "wbolster"; repo = "evil-colemak-basics"; - rev = "f976bda20098c43be1418c36520a57467c8c6c13"; - sha256 = "18f1k4z7lkh237sz4p1xz4sxzs41ywmvd6dj7k9b6d9dscv3yxws"; + rev = "7844079b47f47bb1dc24c885b0ac2e67524fa960"; + sha256 = "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/945417d19faf492fb678aee3ba692d14e7518d85/recipes/evil-colemak-basics"; sha256 = "1sbbli0hdmpc23f3g5n95svqfdg3rlvf71plyvpv1a6va9jhi83k"; name = "evil-colemak-basics"; }; - packageRequires = [ emacs evil ]; + packageRequires = [ emacs evil evil-snipe ]; meta = { homepage = "https://melpa.org/#/evil-colemak-basics"; license = lib.licenses.free; @@ -10115,12 +10946,12 @@ evil-magit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "evil-magit"; - version = "0.4.1"; + version = "0.4.2"; src = fetchFromGitHub { owner = "emacs-evil"; repo = "evil-magit"; - rev = "077354f8ebd5da76937bf8f5df5d484f8a0ccc62"; - sha256 = "05llzcdbg84x04a98b6r7d0m8631hk83hjq33hwd4n8ixp85dg20"; + rev = "a24186be7cc2cdab24b56f6dcc4665eeb8349c1a"; + sha256 = "12hr2w5r2hgagb3hqbi59v73rxpjml5prc3m7dw3wzsm0rf1rwh3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/50315ec837d2951bf5b2bb75809a35dd7ffc8fe8/recipes/evil-magit"; @@ -10157,12 +10988,12 @@ evil-matchit = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-matchit"; - version = "2.2.1"; + version = "2.2.3"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "evil-matchit"; - rev = "e9f77f7d6a14434a8ca3280d721b96c0984fa7eb"; - sha256 = "11mhgw0xa8kn73svgvzpmvvnkj2ja4mxs030vlzkh4scvlfa98dl"; + rev = "bed39041b1181ec26cf2601a8a7aa4afe2510f5b"; + sha256 = "0b1gl5mhl8w63rhx4bbr69cklgz630038lxpjb4nl6h8yl41pcrp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/aeab4a998bffbc784e8fb23927d348540baf9951/recipes/evil-matchit"; @@ -10199,12 +11030,12 @@ evil-multiedit = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, iedit, lib, melpaBuild }: melpaBuild { pname = "evil-multiedit"; - version = "1.3.3"; + version = "1.3.8"; src = fetchFromGitHub { owner = "hlissner"; repo = "evil-multiedit"; - rev = "5f263a9388dd3593b5acefe9f523c819bd3b338f"; - sha256 = "0bsdyy5jw8adj26p85831n4f34d0sv4rrv9xlhjqkzx9gsr4h7d1"; + rev = "c0cb6858399863e51935dae62c7c61ebc68f92eb"; + sha256 = "010y4vxj7rr5kr4csbh72s60ndqzqxdrvgkyb65vxb5vskr1n1wm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/997f5a6999d1add57fae33ba8eb3e3bc60d7bb56/recipes/evil-multiedit"; @@ -10220,12 +11051,12 @@ evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-nerd-commenter"; - version = "3.0.2"; + version = "3.1.1"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "evil-nerd-commenter"; - rev = "cac2f7945fc90f43d1282dfe4aca24ded9f7cd03"; - sha256 = "1zjnscnj0zrxpdjikxwg4fw7m6yb39060cmn24xzs0hmnmbxnw9m"; + rev = "92bee71aa6fbb36299a4e69e710da786f3694637"; + sha256 = "1sxwiar17jvqj7plf7jdpwx9kymabr0dsfl7mbkcxpzvrfdlmp12"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter"; @@ -10285,14 +11116,14 @@ pname = "evil-org"; version = "0.1.1"; src = fetchFromGitHub { - owner = "edwtjo"; + owner = "Somelauw"; repo = "evil-org-mode"; rev = "2d7c58dbeca0d4ac7b4eab5f47b77946951f27e9"; sha256 = "09l0ph9rc941kr718zq0dw27fq6l7rb0h2003ihw7q0a5yr8fpk7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/evil-org"; - sha256 = "1306pf5ws7acdanypn3c0r4yh5wxdf0knl6j3hhs4ys9zszd79bw"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1768558ed0a0249421437b66fe45018dd768e637/recipes/evil-org"; + sha256 = "18glpsnpxap4dvnvkl59h9pnwlp20libsfbbkmvrbzsvbdyspg6z"; name = "evil-org"; }; packageRequires = [ evil org ]; @@ -10348,14 +11179,14 @@ pname = "evil-search-highlight-persist"; version = "1.8"; src = fetchFromGitHub { - owner = "juanjux"; + owner = "naclander"; repo = "evil-search-highlight-persist"; rev = "0e2b3d4e3dec5f38ae95f62519eb2736f73c0b85"; sha256 = "1jfi2k9dm0cc9bx8klppm965ydhdw17a2n664199vhxrap6g27yk"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/91361f95852910968b395423e16377c70189fc55/recipes/evil-search-highlight-persist"; - sha256 = "0iia136js364iygi1mydyzwvizhic6w5z9pbwmhva4654pq8dzqy"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/f2e91974ddb219c88229782b70ade7e14f20c0b5/recipes/evil-search-highlight-persist"; + sha256 = "08l8ymrp9vkpwprq9gp4562yvcnd4hfc3z7n4n5lz7h6ffv3zym3"; name = "evil-search-highlight-persist"; }; packageRequires = [ highlight ]; @@ -10385,22 +11216,22 @@ license = lib.licenses.free; }; }) {}; - evil-snipe = callPackage ({ cl-lib ? null, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + evil-snipe = callPackage ({ cl-lib ? null, emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-snipe"; - version = "2.0.3"; + version = "2.0.8"; src = fetchFromGitHub { owner = "hlissner"; repo = "evil-snipe"; - rev = "c37aa6bcac8d78aa4115d5bc48e219a6ec8a8261"; - sha256 = "0r6nna21w9hcwwhi6ij9lrmlhvgp6c67zl3pbc2iwwfw7bvca4xb"; + rev = "dc62ac317fd29f018e9785c1b3b7dd7ad57b3938"; + sha256 = "18j33smlajj7ynigfgm64z3kfys5idbxin2gd93civ2564n85r33"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6748f3febbe2f098761e967b4dc67791186d0aa7/recipes/evil-snipe"; sha256 = "0gcmpjw3iw7rjk86b2k6clfigp48vakfjd1a9n8qramhnc85rgkn"; name = "evil-snipe"; }; - packageRequires = [ cl-lib evil ]; + packageRequires = [ cl-lib emacs evil ]; meta = { homepage = "https://melpa.org/#/evil-snipe"; license = lib.licenses.free; @@ -10432,14 +11263,14 @@ pname = "evil-surround"; version = "1.0.0"; src = fetchFromGitHub { - owner = "timcharper"; + owner = "emacs-evil"; repo = "evil-surround"; rev = "7a0358ce3eb9ed01744170fa8a1e12d98f8b8839"; sha256 = "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/da8b46729f3bd9aa74c4f0ee2a9dc60804aa661c/recipes/evil-surround"; - sha256 = "1bcjxw0yrk2bqj5ihl5r2c4id0m9wbnj7fpd0wwmw9444xvwp8ag"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/2c9dc47a4c837c44429a74fd998fe468c00639f2/recipes/evil-surround"; + sha256 = "0aphv5zinb0lzdx22qbzcr7fn6jbpkdczar7py3df6mzxw5wvcm1"; name = "evil-surround"; }; packageRequires = [ evil ]; @@ -10448,6 +11279,27 @@ license = lib.licenses.free; }; }) {}; + evil-test-helpers = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "evil-test-helpers"; + version = "1.2.13"; + src = fetchFromGitHub { + owner = "emacs-evil"; + repo = "evil"; + rev = "427cf5faa57e8794ac93f594dc3d1972e687a25a"; + sha256 = "02xc9zgrabnlwk3wlsxbzbhdzi3fm5fk8kimvgdcp8vsnpdcrhql"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/87da8c50f9167ad9c3844b23becb6904f809611d/recipes/evil-test-helpers"; + sha256 = "0l4skyznzgr76z518q22lf90ymlsfcs02w8vqkg8az1nfl3ch7fs"; + name = "evil-test-helpers"; + }; + packageRequires = [ evil ]; + meta = { + homepage = "https://melpa.org/#/evil-test-helpers"; + license = lib.licenses.free; + }; + }) {}; evil-text-object-python = callPackage ({ emacs, evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-text-object-python"; @@ -10535,12 +11387,12 @@ evil-visual-replace = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "evil-visual-replace"; - version = "0.0.4"; + version = "0.0.5"; src = fetchFromGitHub { owner = "troyp"; repo = "evil-visual-replace"; - rev = "9bfbaf71898294e25d588a887fb4753641edfbe9"; - sha256 = "00mhqb9rn4hq90x5i44jyq51lg351bv8hdj4c443nxrbldi73k9s"; + rev = "163fc827a1ffc106475da470c37fb26f4cc9b008"; + sha256 = "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/evil-visual-replace"; @@ -10640,11 +11492,11 @@ exiftool = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "exiftool"; - version = "0.2"; + version = "0.3"; src = fetchgit { url = "https://git.systemreboot.net/exiftool.el/"; - rev = "799076ae62d96e9d502f1189217b04ffdda2dc1a"; - sha256 = "0yfa6w0518179v8hzzwrs6swrc1ak1nkyy0a7lkryrw310107j5n"; + rev = "8dd70ba5214a73960361a0c6220bb4aa72b9e478"; + sha256 = "0sb71bj8djppzac02bpl3v7fy0jlidd4aagg8bmmgyp7zx84xws8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4835a76909d020781021e747fbc341111a94dbfa/recipes/exiftool"; @@ -10699,6 +11551,27 @@ license = lib.licenses.free; }; }) {}; + exsqlaim-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "exsqlaim-mode"; + version = "0.0.1"; + src = fetchFromGitHub { + owner = "ahmadnazir"; + repo = "exsqlaim-mode"; + rev = "e77d2a07addffd7df4393019d9c3dad1ab1925d9"; + sha256 = "19v5sf3nf6dciakvs7ksbg66b5z1hybc4ivs24hm6k3fziblfzzs"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7f660d7629bc27144c99ebcba45f1b06b14c5745/recipes/exsqlaim-mode"; + sha256 = "0ssn48wcn3x066nsl8y78y57ndasqv5x6ifxbifdxl3f5vjhyvg7"; + name = "exsqlaim-mode"; + }; + packageRequires = [ s ]; + meta = { + homepage = "https://melpa.org/#/exsqlaim-mode"; + license = lib.licenses.free; + }; + }) {}; extend-dnd = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "extend-dnd"; @@ -10720,6 +11593,27 @@ license = lib.licenses.free; }; }) {}; + exwm-x = callPackage ({ bind-key, cl-lib ? null, exwm, fetchFromGitHub, fetchurl, lib, melpaBuild, swiper, switch-window }: + melpaBuild { + pname = "exwm-x"; + version = "1.7.2"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "exwm-x"; + rev = "e50edd9e4174b729fdbc5750221c5e49b772e9c5"; + sha256 = "0kx4db5mdm295d4gyx88xjgivhsnl6f5p24smvwi1wf3jv35rnds"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a0e6e23bcffdcd1e17c70599c563609050e5de40/recipes/exwm-x"; + sha256 = "1d9q57vz63sk3h1g5gvp9xnmqkpa73wppmiy2bv8mxk11whl6xa3"; + name = "exwm-x"; + }; + packageRequires = [ bind-key cl-lib exwm swiper switch-window ]; + meta = { + homepage = "https://melpa.org/#/exwm-x"; + license = lib.licenses.free; + }; + }) {}; eyebrowse = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eyebrowse"; @@ -10744,12 +11638,12 @@ eziam-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "eziam-theme"; - version = "0.4"; + version = "0.4.5"; src = fetchFromGitHub { owner = "thblt"; repo = "eziam-theme-emacs"; - rev = "3e888e489774e1f6e5ce15fda46296d2fee0de1f"; - sha256 = "1rxyah6xcdjf3zx1b0gn56wi6gsk95ifsarca67ir3lc1797ldwk"; + rev = "4a79230739cfaa607f39fbfe53339692b83c3933"; + sha256 = "0cdaayp2ca6wcqh11snmc50p4gl6sika58jxvn5dklsipzxv75v8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e0411583bd4fdbe425eb07de98851136fa1eeb0/recipes/eziam-theme"; @@ -10849,12 +11743,12 @@ fancy-narrow = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fancy-narrow"; - version = "0.9.4"; + version = "0.9.5"; src = fetchFromGitHub { owner = "Malabarba"; repo = "fancy-narrow"; - rev = "cd381c1acd5e0d9b6acd7f3e76c3b1de21e8b6df"; - sha256 = "10ds6nlzm1s5xsp53a52qlzrnph7in6gib67qhgnwpj33wp8gs91"; + rev = "c0f70b4333d4764323b7154e37a378adb1610ab7"; + sha256 = "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/fancy-narrow"; @@ -10912,12 +11806,12 @@ faust-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "faust-mode"; - version = "0.1"; + version = "0.3"; src = fetchFromGitHub { owner = "magnetophon"; repo = "emacs-faust-mode"; - rev = "41379dd52a8be01cdfac06996ea1593877fdaf58"; - sha256 = "0q624nm9wfyg95wybi542bx8pdpqk9vibyb6b9fin4mw102nah9j"; + rev = "5e7390479d6f4c12186b39fd5c642050e1c62e40"; + sha256 = "1g3xzzcnswh03plmrhcn6ib68kcx5b37af3lqfbfa6s0rwwldxap"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31f4177ce35313e0f40e9ef0e5a1043ecd181573/recipes/faust-mode"; @@ -10930,15 +11824,35 @@ license = lib.licenses.free; }; }) {}; + faustine = callPackage ({ emacs, faust-mode, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "faustine"; + version = "0.3"; + src = fetchgit { + url = "https://bitbucket.org/yassinphilip/faustine"; + rev = "43cf31284eabf0d831f8185a5ed217e56fdc2023"; + sha256 = "1v78raszh8scac5m04g10rrc9cdflhgmkpbbqpf28zxk3dxcjpxm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b298e399335efbbdbc6e9bb06ab915fc07909faa/recipes/faustine"; + sha256 = "0pkjxfzgdhkjjx38d1c2kw8m5cw5ryhfj7lykpym79wsa471hf9s"; + name = "faustine"; + }; + packageRequires = [ emacs faust-mode ]; + meta = { + homepage = "https://melpa.org/#/faustine"; + license = lib.licenses.free; + }; + }) {}; fcitx = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fcitx"; - version = "0.2.2"; + version = "0.2.3"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "fcitx.el"; - rev = "77f1e187b9cecb6975bedcfe91c8c81f1b133686"; - sha256 = "0n0v9jwswcc16cigyffvy3m9y7qqrs8qzjs11sq3d420zrv16b39"; + rev = "6d552ab44234ed78ce9a50f2412f56197266bc9f"; + sha256 = "08l859rw1lwj6hdxrlxqlxf1cfxv8yv9h1jsgs5zfis3hp7nq39j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e8c40f09d9397b3ca32a7ed37203f490497dc984/recipes/fcitx"; @@ -10975,12 +11889,12 @@ fill-column-indicator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fill-column-indicator"; - version = "1.87"; + version = "1.89"; src = fetchFromGitHub { owner = "alpaker"; repo = "Fill-Column-Indicator"; - rev = "0e755319451dd9c6c99c2a2ef82c890ba93343b6"; - sha256 = "0gbqspqn4y7f2fwqq8210b6k5q22c0zr7b4ws8qgz9swav8g3vrq"; + rev = "23ad25f2c2fddd32a1ea12a9e0f631e243e6a779"; + sha256 = "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4ea0c00a7784621fcca0391a9c8ea85e9dd43852/recipes/fill-column-indicator"; @@ -10993,22 +11907,22 @@ license = lib.licenses.free; }; }) {}; - finalize = callPackage ({ cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + finalize = callPackage ({ cl-generic, cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "finalize"; - version = "1.0.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "skeeto"; repo = "elisp-finalize"; - rev = "72c8eaab3deb150ee2cf7f1473114cecffb5204a"; - sha256 = "1r9y9zschavi28c5ysrlh56vxszjfyhh5r36fhn74i0b5iiy15rx"; + rev = "0f7d47c4d50f1c76fc3b43bfc2d4886dd3e8ca27"; + sha256 = "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1b55869b5183644de02687d2e56f9b68854ccda3/recipes/finalize"; sha256 = "1n0w4kdzc4hv4pprv13lr88gh46slpxdvsc162nqm5mrqp9giqqq"; name = "finalize"; }; - packageRequires = [ cl-lib eieio emacs ]; + packageRequires = [ cl-generic cl-lib eieio emacs ]; meta = { homepage = "https://melpa.org/#/finalize"; license = lib.licenses.free; @@ -11038,12 +11952,12 @@ find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "find-file-in-project"; - version = "5.2.7"; + version = "5.4.3"; src = fetchFromGitHub { owner = "technomancy"; repo = "find-file-in-project"; - rev = "1ac2c0a717a1a0b70839625f2aaad2c18c21f729"; - sha256 = "0vmigmbr4fc36sahpf0bj65isa4sf1xhn1v2qvnidbx8qg18hm2f"; + rev = "dcc0801c4781d76efd9ac0d86bab4084b4b93663"; + sha256 = "0axk4a4b3s0x8wn4a4mj1i89kix88cv94iclhw4wigsscndpr03v"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project"; @@ -11185,12 +12099,12 @@ fix-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fix-input"; - version = "0.1.0"; + version = "0.1.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "fix-input"; - rev = "728ae9258ebe790a69cf332407cba2f8c0be7d81"; - sha256 = "16rd23ygh76fs4i7rni94k8gwa9n360h40qmhm65snp31kqnpr1p"; + rev = "a70edfa7880ff9b082f358607d2a9ad6a8dcc8f3"; + sha256 = "121m0h0nwxr27f9d2llbgl63ni1makcg66lnvg24wx07wggf0n8z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d31f907997d1d07ec794a4f09824f43818f035c/recipes/fix-input"; @@ -11227,12 +12141,12 @@ fix-word = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fix-word"; - version = "0.1.1"; + version = "0.1.2"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "fix-word"; - rev = "256a87d4b871ead0975fa0e7f76a1ecbaa074582"; - sha256 = "1hj5jp4vbkcmnc8l2hqsvjc76f7c9zcsq8znwcwv2nv9xj9hlbkr"; + rev = "91552cbceac8e2b7c23036f044fc84f5c6f8e338"; + sha256 = "1pilsd3hkryyl4sd6s4nvmraszkdmcn3qdqi939yjgzp4lz3q412"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/22636390e8a15c09293a1506a901286dd72e565f/recipes/fix-word"; @@ -11273,15 +12187,57 @@ license = lib.licenses.free; }; }) {}; + flatui-dark-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "flatui-dark-theme"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "theasp"; + repo = "flatui-dark-theme"; + rev = "af5c84e2a2810748cc71a68ec7ba333097cc1f63"; + sha256 = "0c0pm67d8w9jdraap0sswvx7ywly9ifimij2c5w9p4hiph8gisr9"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5f9dc5abeb37422c63cac74f9a006d54c4a7c5a5/recipes/flatui-dark-theme"; + sha256 = "1mswmkhi43fm0cmdgf0ywpy9lmapy0syl65kqh68sa3jqbznhm6y"; + name = "flatui-dark-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/flatui-dark-theme"; + license = lib.licenses.free; + }; + }) {}; + flex-compile = callPackage ({ buffer-manage, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "flex-compile"; + version = "0.1"; + src = fetchFromGitHub { + owner = "plandes"; + repo = "flex-compile"; + rev = "4ca317883404a14c1b4920d7b3e6f0bffb04a8f2"; + sha256 = "08ax91bdf4dwky8zp0cwmk53wqyqs893j7q1jah5cimnhgi82ksz"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/259caeebc317e81ab9d532a371ea85656c2b1619/recipes/flex-compile"; + sha256 = "1hlh4k7qgln87xajnjjhf1yyg6bgdwd0iczhlfw8gdwfj5xpjd38"; + name = "flex-compile"; + }; + packageRequires = [ buffer-manage dash emacs ]; + meta = { + homepage = "https://melpa.org/#/flex-compile"; + license = lib.licenses.free; + }; + }) {}; floobits = callPackage ({ fetchFromGitHub, fetchurl, highlight, json ? null, lib, melpaBuild }: melpaBuild { pname = "floobits"; - version = "1.9.0"; + version = "1.9.2"; src = fetchFromGitHub { owner = "Floobits"; repo = "floobits-emacs"; - rev = "fdac635ecc57ac7743f74678147aca2e956561de"; - sha256 = "134b5ss249x06bgqvsxnlcfys7nl8aid42s7ln8pamxrc3prfcc1"; + rev = "ed5586d1bf94f36354091648e824ccb6fcaf807f"; + sha256 = "08m9snmkhdjmvw1pqww9l39xqas9f6yxksjxvfjjfnad8ak80x9b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/95c859e8440049579630b4c2bcc31e7eaa13b1f1/recipes/floobits"; @@ -11294,24 +12250,24 @@ license = lib.licenses.free; }; }) {}; - flow-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, web-mode }: + flow-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "flow-mode"; + pname = "flow-minor-mode"; version = "0.1"; src = fetchFromGitHub { owner = "an-sh"; - repo = "flow-mode"; + repo = "flow-minor-mode"; rev = "eb2372b0acf740ed3c5f9c048addbb8048e04458"; sha256 = "0ajdzpjghm7iscv2c6nwwx4v1639map104ldsi978iw8hy7m1mmp"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3eca3f0c0a4dda79d00cbd0045eb0925bb3ce2e4/recipes/flow-mode"; - sha256 = "0hq1lkn4mn6r8ih74d52hba1a6gb6pg4qcv60sfsiga4b737yla8"; - name = "flow-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/66504f789069922ea56f268f4da90fac52b601ff/recipes/flow-minor-mode"; + sha256 = "190dv225sb37jawzrasd7qkbznrmkrdnb90l44il63vrlmjv3r1s"; + name = "flow-minor-mode"; }; - packageRequires = [ emacs web-mode ]; + packageRequires = []; meta = { - homepage = "https://melpa.org/#/flow-mode"; + homepage = "https://melpa.org/#/flow-minor-mode"; license = lib.licenses.free; }; }) {}; @@ -11360,12 +12316,12 @@ flycheck = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pkg-info, seq }: melpaBuild { pname = "flycheck"; - version = "30"; + version = "31"; src = fetchFromGitHub { owner = "flycheck"; repo = "flycheck"; - rev = "9c063965e893f0cc7c97fabb810ac41ec22f82fb"; - sha256 = "1vyncqicafmy9av2nsawywn56ay50zdyjba9r55vv11baklabg8w"; + rev = "401b115d10e202a1b31f57340438420081af21ce"; + sha256 = "141i6wzqlb0dslmca6930cal7q4y5wbwzmxrpjk3hgm6nxz483p8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/649f9c3576e81409ae396606798035173cc6669f/recipes/flycheck"; @@ -11612,12 +12568,12 @@ flycheck-joker = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-joker"; - version = "1.0.0"; + version = "1.1.0"; src = fetchFromGitHub { owner = "candid82"; repo = "flycheck-joker"; - rev = "e7964140cbb0ee7badfc3d67c6412f5c3a461f76"; - sha256 = "0mqnhcpkf86dxqj0y7g5mnn91m81jdvrsbwikyqvx46z1jpi0y37"; + rev = "c34c3922a2e8bc918f250602e0ddf655cdcad456"; + sha256 = "0fp7h0pmxk02x1kisqvnb9wkjjn9bl91capmnllrb7qmb24w6pd5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/599bf33a5d4a4a590b355001e532cab4e1ee9ef6/recipes/flycheck-joker"; @@ -11630,6 +12586,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-julia = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-julia"; + version = "0.1.1"; + src = fetchFromGitHub { + owner = "gdkrmr"; + repo = "flycheck-julia"; + rev = "213b60a5a9a1cb7887260e1d159b5bb27167cbb6"; + sha256 = "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4e964e3c6f737d0102b4fd7440fa9d434e6382bf/recipes/flycheck-julia"; + sha256 = "0340bv0lifs8pajk7gh7rngdjg62vaggn5biyysng642dlg5fwqs"; + name = "flycheck-julia"; + }; + packageRequires = [ emacs flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-julia"; + license = lib.licenses.free; + }; + }) {}; flycheck-kotlin = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-kotlin"; @@ -11693,15 +12670,36 @@ license = lib.licenses.free; }; }) {}; + flycheck-nimsuggest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, nim-mode }: + melpaBuild { + pname = "flycheck-nimsuggest"; + version = "0.8.1"; + src = fetchFromGitHub { + owner = "yuutayamada"; + repo = "flycheck-nimsuggest"; + rev = "8b1c69e9aa924368bc4dadd4cde818ff158cd3f0"; + sha256 = "0vnwy7b3xs2smbr6ah6yk8hq7vvsciq7d6m1qr91nfnazdgvxmvg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cb4170f002dbcd1906e81836f3ce035b1e81c379/recipes/flycheck-nimsuggest"; + sha256 = "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv"; + name = "flycheck-nimsuggest"; + }; + packageRequires = [ emacs flycheck nim-mode ]; + meta = { + homepage = "https://melpa.org/#/flycheck-nimsuggest"; + license = lib.licenses.free; + }; + }) {}; flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-objc-clang"; - version = "1.0.6"; + version = "2.0.0"; src = fetchFromGitHub { owner = "GyazSquare"; repo = "flycheck-objc-clang"; - rev = "11805f1d420e297db0346a6657f144b08e2ca556"; - sha256 = "1s9bk3k7ys79m2iww4yf1abfy01d08z9x9pfq8l045q0snsh64il"; + rev = "29a9eb320d62400564360986f7ad400b74070d8e"; + sha256 = "0b4vwbxzhds9vb4nknfdywvfpr1gkk86vsbbq6f5ds0pfk75x022"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4ff4412f507371b93cfb85fc744e54110cd87338/recipes/flycheck-objc-clang"; @@ -11777,6 +12775,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-popup-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup }: + melpaBuild { + pname = "flycheck-popup-tip"; + version = "0.12.2"; + src = fetchFromGitHub { + owner = "flycheck"; + repo = "flycheck-popup-tip"; + rev = "ef86aad907f27ca076859d8d9416f4f7727619c6"; + sha256 = "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9b2269ee9532bb092756ae0c0693cb44b73820e8/recipes/flycheck-popup-tip"; + sha256 = "1j8pgljnxcbfh08qpbr9jkw56l7d6k8lmdcsjbi6jd7jmyqbqvnx"; + name = "flycheck-popup-tip"; + }; + packageRequires = [ emacs flycheck popup ]; + meta = { + homepage = "https://melpa.org/#/flycheck-popup-tip"; + license = lib.licenses.free; + }; + }) {}; flycheck-pos-tip = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, pos-tip }: melpaBuild { pname = "flycheck-pos-tip"; @@ -11798,6 +12817,27 @@ license = lib.licenses.free; }; }) {}; + flycheck-pycheckers = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: + melpaBuild { + pname = "flycheck-pycheckers"; + version = "0.4"; + src = fetchFromGitHub { + owner = "msherry"; + repo = "flycheck-pycheckers"; + rev = "a3d39139dbe5cdaa64dda90907bb8653f196c71e"; + sha256 = "1i1kliy0n9b7b0rby419030n35f59xb8952widaszz4z8qb7xw9k"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/af36dca316b318d25d65c9e842f15f736e19ea63/recipes/flycheck-pycheckers"; + sha256 = "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq"; + name = "flycheck-pycheckers"; + }; + packageRequires = [ flycheck ]; + meta = { + homepage = "https://melpa.org/#/flycheck-pycheckers"; + license = lib.licenses.free; + }; + }) {}; flycheck-rebar3 = callPackage ({ fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-rebar3"; @@ -11819,22 +12859,22 @@ license = lib.licenses.free; }; }) {}; - flycheck-rtags = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + flycheck-rtags = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, rtags }: melpaBuild { pname = "flycheck-rtags"; - version = "2.9"; + version = "2.14"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "ffa21b5408a30a346815bc4db6e74e2c6562d936"; - sha256 = "0828i5lcbspacydjnbrp3zhgbw2gggaaizzm0qqgmvry4cs79bxv"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/flycheck-rtags"; sha256 = "00v6shfs7piqapmyqyi0fk3182rcfa3p8wr2cm5vqlrana13kbw4"; name = "flycheck-rtags"; }; - packageRequires = []; + packageRequires = [ emacs flycheck rtags ]; meta = { homepage = "https://melpa.org/#/flycheck-rtags"; license = lib.licenses.free; @@ -11885,12 +12925,12 @@ flycheck-swift3 = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }: melpaBuild { pname = "flycheck-swift3"; - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "GyazSquare"; repo = "flycheck-swift3"; - rev = "6b0b7c6fffc86809d0535afebd6b0972059992d5"; - sha256 = "0d411idv9ib1jhmdbjb8ycc8clmm1ygpwapaka3d50gkgrmfin4q"; + rev = "756833425f51baa9eb0a2fa7493df6e68612c88d"; + sha256 = "1hvrg717q0nlz4r8wby82gs3vdx8fdhf38rg4j77j3fqfmxdd3fi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f1fb8c731c118327dc0bbb726e046fec46bcfb82/recipes/flycheck-swift3"; @@ -11969,12 +13009,12 @@ flycheck-ycmd = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild, ycmd }: melpaBuild { pname = "flycheck-ycmd"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "9f5ad4a20e6bf893491635108adfff71f3c6b590"; - sha256 = "08kvbvhx5y3239bzdb1xpr81lfrhjy9xka4kn9dpa5bdxs0xx92w"; + rev = "d042a673b4d717c3ca9d641f120bfe16c994c740"; + sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/flycheck-ycmd"; @@ -12452,12 +13492,12 @@ flyspell-popup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "flyspell-popup"; - version = "0.2"; + version = "0.3"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "flyspell-popup"; - rev = "a3890c9272c0cfa1e2cde6526f7d6280ad4af00c"; - sha256 = "1rk7fsill0salrhb4anbf698nd21nxj8pni35brbmv64nj9fhfic"; + rev = "29311849bfd253b9b689bf331860b4c4d3bd4dde"; + sha256 = "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/186d00724137c055b521a5f5c54acf71c4b16c32/recipes/flyspell-popup"; @@ -12638,27 +13678,6 @@ license = lib.licenses.free; }; }) {}; - forecast = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "forecast"; - version = "0.6.2"; - src = fetchFromGitHub { - owner = "cadadr"; - repo = "forecast.el"; - rev = "1eb60db1760572e3b1b87f6d672e3aa0812d6d94"; - sha256 = "1imrn4wc744fdcm1pkfjk8gmilzcrjzawbcg6mhdkzsz5cnb7klb"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e6ff6a4ee29b96bccb2e4bc0644f2bd2e51971ee/recipes/forecast"; - sha256 = "0whag2n1120384w304g0w4bqr7svdxxncdhnz4rznfpxlgiw2rsc"; - name = "forecast"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/forecast"; - license = lib.licenses.free; - }; - }) {}; foreman-mode = callPackage ({ dash, dash-functional, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "foreman-mode"; @@ -12725,12 +13744,12 @@ fountain-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fountain-mode"; - version = "2.2.2"; + version = "2.3.0"; src = fetchFromGitHub { owner = "rnkn"; repo = "fountain-mode"; - rev = "4e88b7525c2f39c3d25f689b394b0ece7c6eed6d"; - sha256 = "1vcc8sdm0b3kss3g47wggc6mv28pr474559d3786fhncp5mxl1qq"; + rev = "37289bb68f01dd49b1192032ade6b0741d024a54"; + sha256 = "06bqnyx2h0ypyxy5vxrh3v75qqfcmfgx31xkip7w6sj6pbfc8dq5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/913386ac8d5049d37154da3ab32bde408a226511/recipes/fountain-mode"; @@ -12743,6 +13762,48 @@ license = lib.licenses.free; }; }) {}; + frames-only-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: + melpaBuild { + pname = "frames-only-mode"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "davidshepherd7"; + repo = "frames-only-mode"; + rev = "5a2947d797a5d6f74d3a9c97f8c0ab6cff115b28"; + sha256 = "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e628416ad9420b3ac5bbfacf930a86d98958ac8/recipes/frames-only-mode"; + sha256 = "17p04l16ghz9kk096xk37yjpi4rmla86gp7c8ysjf6q6nyh0608h"; + name = "frames-only-mode"; + }; + packageRequires = [ emacs seq ]; + meta = { + homepage = "https://melpa.org/#/frames-only-mode"; + license = lib.licenses.free; + }; + }) {}; + free-keys = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "free-keys"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "Fuco1"; + repo = "free-keys"; + rev = "edfd69dc369b2647447b7c28c7c1163b1ddf45b4"; + sha256 = "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/55067e899ba618d4394ad9657322c92a667a0774/recipes/free-keys"; + sha256 = "0j9cfgy2nkbska4lm5z32p804i9n8pdgn50bs5zzk1ilwd5vbalj"; + name = "free-keys"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/free-keys"; + license = lib.licenses.free; + }; + }) {}; fringe-helper = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fringe-helper"; @@ -12788,12 +13849,12 @@ fsharp-mode = callPackage ({ company, company-quickhelp, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, pos-tip, s }: melpaBuild { pname = "fsharp-mode"; - version = "1.9.6"; + version = "1.9.11"; src = fetchFromGitHub { owner = "rneatherway"; repo = "emacs-fsharp-mode-bin"; - rev = "c2acdaaf36176d36ccadfe73c2593362ef930ebd"; - sha256 = "00am42hl5icvbw5d7kpbdcl9sr8flsgl1pqmcxqpcz30yw6f4pr2"; + rev = "5504550605354146842c8f5c34482ece778b7b31"; + sha256 = "0hjqgyjch8fdz54akcpw5kmx2z1yvck6k8qyc0mzzmb54iiayf5a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dc45611e2b629d8bc5f74555368f964420b79541/recipes/fsharp-mode"; @@ -12825,8 +13886,8 @@ sha256 = "0manmkd66355g1fw2q1q96ispd0vxf842i8dcr6g592abrz5lhi7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/fstar-mode"; - sha256 = "1cjwai0qf48m18dsa0r9sh4qlgvdzg5ajfbmxxc2vqzcl5ygrxjx"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c58ace42342c3d3ff5a56d86a16206f2ecb45f77/recipes/fstar-mode"; + sha256 = "1kwa6gqh91265vpp4gcady2brkizfkfjj0gnya9lar6x7rn4gj7s"; name = "fstar-mode"; }; packageRequires = [ dash emacs ]; @@ -12859,12 +13920,12 @@ fullframe = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fullframe"; - version = "0.4.0"; + version = "0.5.0"; src = fetchFromGitHub { owner = "tomterl"; repo = "fullframe"; - rev = "3c046dd4c27a5c96d9dc3bc50a44eb1e7fd68912"; - sha256 = "1narmlcd8ycwkmsrgk64l7q0ljsbq2fsikl8hjbrsc20nma032m4"; + rev = "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd"; + sha256 = "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1dc5c39543b65c6bb4150c3690211872c00dc/recipes/fullframe"; @@ -12877,27 +13938,48 @@ license = lib.licenses.free; }; }) {}; - function-args = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, swiper }: + function-args = callPackage ({ fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "function-args"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "abo-abo"; repo = "function-args"; - rev = "25e447d8a8930a8c515077de57a7693c6a642514"; - sha256 = "0m7fcw0cswypiwi5abg6vhw7a3agx9vhp10flbbbji6lblb0fya8"; + rev = "0b07db81c0c1fa88d1ec763219ee57640858f79d"; + sha256 = "0lg9bhwn3za4jvz38zld389gdl48qf34nqqqrzj0r119g1jqdrg1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/80688d85a34b77783140ad2b8a47ef60c762b084/recipes/function-args"; sha256 = "13yfscr993pll5yg019v9dwy71g123a166w114n2m78h0rbnzdak"; name = "function-args"; }; - packageRequires = [ swiper ]; + packageRequires = [ ivy ]; meta = { homepage = "https://melpa.org/#/function-args"; license = lib.licenses.free; }; }) {}; + futhark-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "futhark-mode"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "HIPERFIT"; + repo = "futhark"; + rev = "2a7d824f7265a35bb928bf4de8e46d02e0a56a12"; + sha256 = "0dkx9xl39k0bcspyx37410rb5ngphw9svinwjw1kgq0pqhc2qxdf"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/0607f01aad7e77d53595ad8db95d32acfd29b148/recipes/futhark-mode"; + sha256 = "1k22xkg6vd60hk58zkxhmsw2gs6ikzmidvxcdglnr46m6x7r7pnq"; + name = "futhark-mode"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/futhark-mode"; + license = lib.licenses.free; + }; + }) {}; fuzzy = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "fuzzy"; @@ -12964,12 +14046,12 @@ fxrd-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "fxrd-mode"; - version = "0.8"; + version = "1.0"; src = fetchFromGitHub { owner = "msherry"; repo = "fxrd-mode"; - rev = "8a1a0d5a08527ec8dee9bbe135803ed7ad297d9d"; - sha256 = "1yzw0fnlqilpx4xl84hpr75l86y9iiqyh13r1hskmwb79s2niw1m"; + rev = "795b969346982b75e24b5c8619b46197982fbb4d"; + sha256 = "0aha13vqj6ygyr7bflrxll837g4z6wrmrhh5rhcd0vphqg70frgn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/796eb6b2126ec616c0de6af6abb7598900557c12/recipes/fxrd-mode"; @@ -13048,12 +14130,12 @@ geben = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "geben"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "ahungry"; repo = "geben"; - rev = "1308c93c1eb6c96c0e322f09fcb784f5df208a04"; - sha256 = "0fva9xmwh887d0fdm8id67azs5rjbqk7qpjlwh7nlhrwgxsnzr7d"; + rev = "003abd23a7468daa133dfbc7ef85d0d61a0410dc"; + sha256 = "15ck23xv3dz9i4w5xd9lkg0c6rlsyxdz465xrpkr77fq9qw0c4dg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f8648609e160f7dcefe4a963e8b00475f2fff78/recipes/geben"; @@ -13069,12 +14151,12 @@ geben-helm-projectile = callPackage ({ emacs, fetchFromGitHub, fetchurl, geben, helm-projectile, lib, melpaBuild }: melpaBuild { pname = "geben-helm-projectile"; - version = "0.0.3"; + version = "0.0.4"; src = fetchFromGitHub { owner = "ahungry"; repo = "geben-helm-projectile"; - rev = "14db489efcb20c5aa9102288c94cec3c5a87c35d"; - sha256 = "1nd1jhy393vkn2g65zhygxkpgna0l8gkndxr8jb6qjkkapk58k8l"; + rev = "31ce0faca5dcc71924884f03fd5a7a25d00ccd9b"; + sha256 = "0a1srhwfbgkvndjfi9irg5s6snlxyqrw1vwyqg1sn8aqnbpgib04"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b7d28c45304a69e6ca78b3d00df2563171c027ee/recipes/geben-helm-projectile"; @@ -13216,12 +14298,12 @@ ghc = callPackage ({ fetchFromGitHub, fetchurl, haskell-mode, lib, melpaBuild }: melpaBuild { pname = "ghc"; - version = "5.7.0.0"; + version = "5.8.0.0"; src = fetchFromGitHub { owner = "DanielG"; repo = "ghc-mod"; - rev = "c3d0a681a19261817cf928685f7b96878fe51e91"; - sha256 = "1d2hsfmshh29g5bvd701py9n421hmz49hk0zjx5m09s8znjkvgx3"; + rev = "35690941aadbe44d9401102ab44a39753e0bb2b5"; + sha256 = "0fcaxj2lhkhkm2h91d9fdqas2b99wblwl74l2y6ckpf05hrc4w1q"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/ghc"; @@ -13276,36 +14358,57 @@ license = lib.licenses.free; }; }) {}; - ghub = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + ghub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ghub"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "magit"; repo = "ghub"; - rev = "018aa524e12141b0d5a121ffcbde6d66d3f7aa4d"; - sha256 = "0phskyb48bvmmrrjcd8n7w2cnwyhfq6i3cfl71l8ypxb4pdibz0l"; + rev = "da60fa2316bf829cab18676afd5a43088ac06b60"; + sha256 = "0aj0ayh4jvpxwqss5805qnklqbp9krzbh689syyz65ja6r0r2bgs"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9375cbae3ffe5bf4ba5606358860050f3005d9b7/recipes/ghub"; - sha256 = "01kzziqv5y798rps52w45kkdcn0shhb6mrina2iawab4rlvlmnd8"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d5db83957187c9b65f697eba7e4c3320567cf4ab/recipes/ghub"; + sha256 = "15kjyi8ialpr1zjqvw68w9pa5sigcwy2szq21yvcy295z7ylzy4i"; name = "ghub"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/ghub"; license = lib.licenses.free; }; }) {}; + ghub-plus = callPackage ({ apiwrap, emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }: + melpaBuild { + pname = "ghub-plus"; + version = "0.2"; + src = fetchFromGitHub { + owner = "vermiculus"; + repo = "ghub-plus"; + rev = "e04050f81106029c342deb7adbfc67b2a888ec58"; + sha256 = "0ydd6aiy8x878jlzp88gi30yslhkcin0rbdjirj2vjs88cfvcjq6"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/03a412fd25218ff6f302734e078a699ff0234e36/recipes/ghub+"; + sha256 = "0xx7nwmjx3f7z6z164x1lb9arbb3m3d16mpn92v66w572rhbr34n"; + name = "ghub-plus"; + }; + packageRequires = [ apiwrap emacs ghub ]; + meta = { + homepage = "https://melpa.org/#/ghub+"; + license = lib.licenses.free; + }; + }) {}; gist = callPackage ({ emacs, fetchFromGitHub, fetchurl, gh, lib, melpaBuild }: melpaBuild { pname = "gist"; - version = "1.3.1"; + version = "1.4.0"; src = fetchFromGitHub { owner = "defunkt"; repo = "gist.el"; - rev = "144280f5353bceb902d5278fa64078337e99fa4d"; - sha256 = "0q3ps5f6mr9hyf6nq1wshcm1z6a5yhskqd7dbbwq5dm78552z6z8"; + rev = "a03f142455e8b39f77fbd57ee1c1e44478c1f9e2"; + sha256 = "1xisjaxr54zrxzxj8cp8f90kzphd5v3j56d14534fm5r1f5343vp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/gist"; @@ -13405,12 +14508,12 @@ git-commit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, with-editor }: melpaBuild { pname = "git-commit"; - version = "2.10.3"; + version = "2.11.0"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e"; - sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc"; + rev = "4ad2ebfef0afa7e5f5fb85e8d1146da613804fe5"; + sha256 = "1zvib46hn2c0g2zdnf4vcwjrs9dj5sb81hpqm7bqm8f97p9dv6ym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/git-commit"; @@ -13423,6 +14526,27 @@ license = lib.licenses.free; }; }) {}; + git-commit-insert-issue = callPackage ({ bitbucket, fetchFromGitLab, fetchurl, github-issues, gitlab, helm, lib, melpaBuild, projectile, s }: + melpaBuild { + pname = "git-commit-insert-issue"; + version = "0.3.1"; + src = fetchFromGitLab { + owner = "emacs-stuff"; + repo = "git-commit-insert-issue"; + rev = "5f08c17bf93b17915415d435ee41923d924fe20b"; + sha256 = "11my5apnyhdqh0pmq9wdjd1iah415a5nw87sk586cb3vxnbn5qas"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/git-commit-insert-issue"; + sha256 = "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax"; + name = "git-commit-insert-issue"; + }; + packageRequires = [ bitbucket github-issues gitlab helm projectile s ]; + meta = { + homepage = "https://melpa.org/#/git-commit-insert-issue"; + license = lib.licenses.free; + }; + }) {}; git-gutter = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "git-gutter"; @@ -13528,22 +14652,22 @@ license = lib.licenses.free; }; }) {}; - git-link = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + git-link = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "git-link"; - version = "0.4.5"; + version = "0.5.1"; src = fetchFromGitHub { owner = "sshaw"; repo = "git-link"; - rev = "efd2a9a40b07e93cd5030d8b409d380c77fca88b"; - sha256 = "0yhk4r5fdlmiw7n0cpdbjqcsm2vkm37qwwvkb7xz9046mkdag6gy"; + rev = "472af75eca7aba42a1934f408c4bda55e34c9dcf"; + sha256 = "0xgvwg2zxb9akk3kxxcz5cvgw4zkbqx5p4b5in01z5aj4lqmjw6s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1385443585e628e3d4efb3badb7611e9d653e0c9/recipes/git-link"; sha256 = "1vqabnmdw8pxd84c15ghh1rnglwb5i4zxicvpkg1ci8xalayn1c7"; name = "git-link"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/git-link"; license = lib.licenses.free; @@ -13636,12 +14760,12 @@ gitattributes-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gitattributes-mode"; - version = "1.2.4"; + version = "1.2.6"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "af4ff3222f38daa0d352afdf3d20741b4fab2e79"; - sha256 = "0nn5mj29airjacckzxkh4q12wnk2pq6mp1wlzxzxdwijmkk52dbr"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b4e2ddd2a80875afc0fc654052e6cbff2f3777f/recipes/gitattributes-mode"; @@ -13678,12 +14802,12 @@ gitconfig-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gitconfig-mode"; - version = "1.2.4"; + version = "1.2.6"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "af4ff3222f38daa0d352afdf3d20741b4fab2e79"; - sha256 = "0nn5mj29airjacckzxkh4q12wnk2pq6mp1wlzxzxdwijmkk52dbr"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/44a37f59b87f59a587f6681e7aadfabf137c98d7/recipes/gitconfig-mode"; @@ -13759,6 +14883,27 @@ license = lib.licenses.free; }; }) {}; + github-notifier = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "github-notifier"; + version = "0.1"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "github-notifier.el"; + rev = "f8d011ebef9f626a94a27b5576c8ed06e6ff8987"; + sha256 = "0glkn36fs93y2n1583k8v958qfhl212hbdk3cpkq432hj08wzjnr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c09f4e7e8a84a241881d214e8359f8a50ab14ddf/recipes/github-notifier"; + sha256 = "1jqc2wx1pvkca8syj97ds32404szm0wn12b7zpa98265sg3n64nw"; + name = "github-notifier"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/github-notifier"; + license = lib.licenses.free; + }; + }) {}; github-search = callPackage ({ fetchFromGitHub, fetchurl, gh, lib, magit, melpaBuild }: melpaBuild { pname = "github-search"; @@ -13783,12 +14928,12 @@ gitignore-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gitignore-mode"; - version = "1.2.4"; + version = "1.2.6"; src = fetchFromGitHub { owner = "magit"; repo = "git-modes"; - rev = "af4ff3222f38daa0d352afdf3d20741b4fab2e79"; - sha256 = "0nn5mj29airjacckzxkh4q12wnk2pq6mp1wlzxzxdwijmkk52dbr"; + rev = "9f18eca514d242816a4969e86c4cfd2cf4dfe401"; + sha256 = "0k380f9ff15gg724c2spfd9qml97k24bhn3h9ipv1c7rn9qvhdhc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/44a37f59b87f59a587f6681e7aadfabf137c98d7/recipes/gitignore-mode"; @@ -13822,6 +14967,27 @@ license = lib.licenses.free; }; }) {}; + gitpatch = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gitpatch"; + version = "0.5.1"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "gitpatch"; + rev = "94d40a2ee2b7cd7b209546ea02568079176b0034"; + sha256 = "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e1746d87f65dc4b0d8f47c7d6ba4c7e0dfa35953/recipes/gitpatch"; + sha256 = "0qaswkk06z24v40nkjkv7f6gfv0dlsjd6wchkn0ppqw95883vhv1"; + name = "gitpatch"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/gitpatch"; + license = lib.licenses.free; + }; + }) {}; gitter = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "gitter"; @@ -13843,6 +15009,27 @@ license = lib.licenses.free; }; }) {}; + gl-conf-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gl-conf-mode"; + version = "0.3"; + src = fetchFromGitHub { + owner = "llloret"; + repo = "gitolite-emacs"; + rev = "1a53e548277eb9c669bbeda4bee9be32be7a82ec"; + sha256 = "059m30vvp71y630pcam6qfv5bxc35ygj26wcg28p56pccxxyj3q9"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e3117e62d429e44506f7d82fc64252d41bc1a4b6/recipes/gl-conf-mode"; + sha256 = "0lf8xmq309aqyf16ymqlr8gj2qawlsqagbdndj0kgj72dnnw4cfm"; + name = "gl-conf-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/gl-conf-mode"; + license = lib.licenses.free; + }; + }) {}; glab = callPackage ({ emacs, fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "glab"; @@ -14035,12 +15222,12 @@ go-autocomplete = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "go-autocomplete"; - version = "20150303"; + version = "20170907"; src = fetchFromGitHub { owner = "nsf"; repo = "gocode"; - rev = "eef10fdde96a12528a6da32f51bf638b2863a3b1"; - sha256 = "03snnra31b5j6iy94gql240vhkynbjql9b4b5j8bsqp9inmbsia3"; + rev = "c7fddb39ecbc9ebd1ebe7d2a3af473ed0fffffa1"; + sha256 = "0qx8pq38faig41xkl1a4hrgp3ziyjyn6g53vn5wj7cdgm5kk67nb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/go-autocomplete"; @@ -14308,12 +15495,12 @@ google-this = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "google-this"; - version = "1.11"; + version = "1.12"; src = fetchFromGitHub { owner = "Malabarba"; repo = "emacs-google-this"; - rev = "22cff810e7ed3b3c9dae066588508864c25c6d99"; - sha256 = "14dz9wjp8ym86a03pw5y1sd51zw83d6485hpq8mh8zm0j1fba0y0"; + rev = "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84"; + sha256 = "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/google-this"; @@ -14329,12 +15516,12 @@ google-translate = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "google-translate"; - version = "0.11.13"; + version = "0.11.14"; src = fetchFromGitHub { owner = "atykhonov"; repo = "google-translate"; - rev = "c859592c3fda01594b270e388414a79373b5587b"; - sha256 = "1arwq4nld3capjj2b3ask1pwy89fz25f550fb7cnhiv5rhqr51iw"; + rev = "486c63bbfa0338589589f628703c38112035a5b2"; + sha256 = "08b4lxnwy9iqxacbjjljybvvdkl9g2dy6vga6hw7h7h32qra8w2j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e3c275e59cbfe6e40f9cd4c470fc66544c9a6d21/recipes/google-translate"; @@ -14347,15 +15534,36 @@ license = lib.licenses.free; }; }) {}; + gorepl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "gorepl-mode"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "manute"; + repo = "gorepl-mode"; + rev = "17e025951f5964a0542a4b353ddddbc734c01eed"; + sha256 = "1abb78xxsggawl43hspl0cr0f7i1b3jd9r6xl1nl5jg97i4byg0b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/gorepl-mode"; + sha256 = "0xcjjh9hf3pv5jgv089c6bb00s215fc9qwn72fav1xbm5f49nkaq"; + name = "gorepl-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/gorepl-mode"; + license = lib.licenses.free; + }; + }) {}; gotest = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild, s }: melpaBuild { pname = "gotest"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitHub { owner = "nlamirault"; repo = "gotest.el"; - rev = "2ae187078beb5d9672ca14cb636b6b4021de4230"; - sha256 = "1pq9zjfs7gp7bz3jq11fx75m4zcx9p772lja5jicz535khpgxw7f"; + rev = "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9"; + sha256 = "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0670b42c0c998daa7bf01080757976ac3589ec06/recipes/gotest"; @@ -14375,8 +15583,8 @@ src = fetchFromGitHub { owner = "wasamasa"; repo = "gotham-theme"; - rev = "d9b00bd93ab3fed0e7fff99b0dc8773584f5207d"; - sha256 = "0vrz97w9yzkxl8pc9jmxkxvj5nagpnzqq9pvavwmvlh68wrh58gi"; + rev = "417d61978d139cb5d089c5365fc8d3166d76d3ac"; + sha256 = "0rc40cfj2mby1q7bk1pp1fxdi72nh9ip80spjdm1csvjjc4dbkwr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b388de872be397864a1217a330ba80437c287c0/recipes/gotham-theme"; @@ -14389,6 +15597,27 @@ license = lib.licenses.free; }; }) {}; + goto-chg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "goto-chg"; + version = "1.7"; + src = fetchFromGitHub { + owner = "emacs-evil"; + repo = "goto-chg"; + rev = "171b1331022caf12d8c3593e9b5075f87ee958d4"; + sha256 = "1jcnrin4j1x8p63fd9r37dq1vr5a7a1nvzk6kp0bdsgn9vbjmapc"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cf1fc176430fe3ab55ce537a0efc59780bb812be/recipes/goto-chg"; + sha256 = "1yd4jq4zql4av9nr1sdk4nsnnk54c3brgjhpczndy1ipiaxlnydy"; + name = "goto-chg"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/goto-chg"; + license = lib.licenses.free; + }; + }) {}; goto-gem = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "goto-gem"; @@ -14434,12 +15663,12 @@ govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }: melpaBuild { pname = "govc"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "vmware"; repo = "govmomi"; - rev = "9bfdc5ce62c0585b48b154cc460f8664dcd124c3"; - sha256 = "0p00s08fjwh106dag9wyhikzrh0vqd4pzb852b2zrmb7zlhigx65"; + rev = "b63044e5f833781eb7b305bc035392480ee06a82"; + sha256 = "1p0xnhcm7kx4g9wvy18nnij2wfirp0fccv24jz6v1i9bc64n7zka"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc"; @@ -14539,12 +15768,12 @@ grails-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "grails-mode"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "Groovy-Emacs-Modes"; repo = "groovy-emacs-modes"; - rev = "50801257d376fd7383ddf9c19ff567183c24ad0b"; - sha256 = "0wy8iw12b9bs7xza8jjnjvggr59rgbsgn1kk2g0pj0nppvfdrvjm"; + rev = "f8e9628916d4d41e1816b53d02f0b5a00c499555"; + sha256 = "1myb15n207yl2cgacmn105r1xbjq076paq6anvw53smy3fhw9sh9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/grails-mode"; @@ -14599,15 +15828,15 @@ license = lib.licenses.free; }; }) {}; - graphene = callPackage ({ company, dash, exec-path-from-shell, fetchFromGitHub, fetchurl, flycheck, graphene-meta-theme, ido-ubiquitous, lib, melpaBuild, ppd-sr-speedbar, smartparens, smex, sr-speedbar, web-mode }: + graphene = callPackage ({ company, dash, exec-path-from-shell, fetchFromGitHub, fetchurl, flycheck, graphene-meta-theme, ido-completing-read-plus, lib, melpaBuild, ppd-sr-speedbar, smartparens, smex, sr-speedbar, web-mode }: melpaBuild { pname = "graphene"; - version = "0.9.7"; + version = "0.9.8"; src = fetchFromGitHub { owner = "rdallasgray"; repo = "graphene"; - rev = "b25707ae82e286aefa5a66087b12c9cb3b7bf2ed"; - sha256 = "1h21fv8plxydydm509immp0kpkf24ba6j3wrbpvp5w4nkx49mlkl"; + rev = "89bbdaa465b3440f46f588664eada0f091ed6bfe"; + sha256 = "1xrk26v9d3njydwab7drqg4p3qd8rw2diicfr7bfwd0d21bs5ykz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0206d6adcb7855c2174c3cd506b71c21def1209b/recipes/graphene"; @@ -14620,7 +15849,7 @@ exec-path-from-shell flycheck graphene-meta-theme - ido-ubiquitous + ido-completing-read-plus ppd-sr-speedbar smartparens smex @@ -14701,8 +15930,8 @@ version = "0.1"; src = fetchhg { url = "https://bitbucket.com/tws/grass-mode.el"; - rev = "5383fff2996b"; - sha256 = "1igbdrs14dmaa5mbhq3jnrkq16nndingflpnwxi921dag613c3jz"; + rev = "1ae8eae88117"; + sha256 = "1sl3d5759fjm98pb50ykz2c05czb2298ipccwj2qz2hdzq63hfv8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/grass-mode"; @@ -14715,6 +15944,27 @@ license = lib.licenses.free; }; }) {}; + green-is-the-new-black-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "green-is-the-new-black-theme"; + version = "0.0.3"; + src = fetchFromGitHub { + owner = "fredcamps"; + repo = "green-is-the-new-black-emacs"; + rev = "b9cdecd04691311c30c94ad4ec81124e63b9b122"; + sha256 = "124q733rirc8a2d9xfparphcjrrbxhp4wxf070l8hqp3p2764bka"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3e42528d5677fd90515cad47266c07ea3d4363fb/recipes/green-is-the-new-black-theme"; + sha256 = "03q0vj409icmawffy2kd9yl04r453q80cy1p9y4i3xk368z0362g"; + name = "green-is-the-new-black-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/green-is-the-new-black-theme"; + license = lib.licenses.free; + }; + }) {}; green-screen-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "green-screen-theme"; @@ -14800,12 +16050,12 @@ groovy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "groovy-mode"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "Groovy-Emacs-Modes"; repo = "groovy-emacs-modes"; - rev = "50801257d376fd7383ddf9c19ff567183c24ad0b"; - sha256 = "0wy8iw12b9bs7xza8jjnjvggr59rgbsgn1kk2g0pj0nppvfdrvjm"; + rev = "f8e9628916d4d41e1816b53d02f0b5a00c499555"; + sha256 = "1myb15n207yl2cgacmn105r1xbjq076paq6anvw53smy3fhw9sh9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/groovy-mode"; @@ -14884,12 +16134,12 @@ gscholar-bibtex = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "gscholar-bibtex"; - version = "0.3.1"; + version = "0.3.3"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "gscholar-bibtex"; - rev = "00b32521de3aa689bc58516ae10ba7f3ef1b6c92"; - sha256 = "1dfd22629gz0c8r4wplvbn0n7bm20549mg5chq289s826ca0kxqk"; + rev = "ba4ce159e385d695d8560e8b06b3cbe48424861c"; + sha256 = "0idnfhk17avp0r4706grjqqkz0xl98gs0bx7wrkvwym3y2gadlz2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9fa546d3dce59b07a623ee83e3befe139dc10481/recipes/gscholar-bibtex"; @@ -14947,12 +16197,12 @@ guix = callPackage ({ bui, dash, emacs, fetchFromGitHub, fetchurl, geiser, lib, magit-popup, melpaBuild }: melpaBuild { pname = "guix"; - version = "0.3"; + version = "0.3.3"; src = fetchFromGitHub { owner = "alezost"; repo = "guix.el"; - rev = "9cc6dba6ac9ede2855a1a95a22bc7353949f4362"; - sha256 = "0yyq2z3vsgib9r8paaj7ls4f8rwxmnhi5jsydzdmwqw1hrpkclv9"; + rev = "54bd174b514c5de11e82c4263ac2723addb0fe87"; + sha256 = "1i5kwzwlb6lx65rgixm8mbdi6x03n0hb4hbc7j76lar4j58ypwz2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b3d8c73e8a946b8265487a0825d615d80aa3337d/recipes/guix"; @@ -15031,12 +16281,12 @@ hackernews = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "hackernews"; - version = "0.3.1"; + version = "0.4.0"; src = fetchFromGitHub { owner = "clarete"; repo = "hackernews.el"; - rev = "452e939211ebc0af7256a2f0e8cdad5c426694e6"; - sha256 = "1c49lfm5saafxks591qyy2nilymxz3aqlxpsmnad5d0kfhvjr47z"; + rev = "22a15dc57dd6aab7793c0f9c2b72e161e0bee00c"; + sha256 = "0bpbiadv4bf3lllsm0w1jcw8nc7c9zl97m972hbxb1dgv90gvs5b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c43a342e47e5ede468bcf51a60d4dea3926f51bd/recipes/hackernews"; @@ -15165,8 +16415,8 @@ sha256 = "0rqxi668wra1mfzq4fqscjghis5gqnwpazgidgix13brybaxydx4"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/b1dcfc8f0759792367ee49d2fe96e5bd7ca4105f/recipes/harvest"; - sha256 = "1qfhfzjwlnqpbq4kfxvs97fa3xks8zi02fnwv0ik8wb1ppbb77qd"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c97d3f653057eab35c612109792884334be556fe/recipes/harvest"; + sha256 = "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c"; name = "harvest"; }; packageRequires = [ hydra s swiper ]; @@ -15303,12 +16553,12 @@ hasky-extensions = callPackage ({ avy-menu, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hasky-extensions"; - version = "0.1.1"; + version = "0.2.0"; src = fetchFromGitHub { owner = "hasky-mode"; repo = "hasky-extensions"; - rev = "3f1862989a2ca3b79761dccfa352a1b6d518ee77"; - sha256 = "10214654gvnyqimh4950jsw1r42p0y79pfl8h0x44mzll62bvz87"; + rev = "65bf7bc3967cbda23789d6c505daf73eed9a43aa"; + sha256 = "0r91hcm265xa8amdfi44pn0cqf4m9zigzqx1ldgg8qd6l9r2hbh7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e3f73e3df8476fa231d04211866671dd74911603/recipes/hasky-extensions"; @@ -15321,6 +16571,27 @@ license = lib.licenses.free; }; }) {}; + hasky-stack = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }: + melpaBuild { + pname = "hasky-stack"; + version = "0.6.0"; + src = fetchFromGitHub { + owner = "hasky-mode"; + repo = "hasky-stack"; + rev = "a3f890fb8570369898ee9718b128d4e7123a6585"; + sha256 = "0bc5i4s7aclwrsh8yrhfwwlfbcs5hdbzm31glikd487asv30jq9c"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c3faf544872478c3bccf2fe7dc51d406031e4d80/recipes/hasky-stack"; + sha256 = "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8"; + name = "hasky-stack"; + }; + packageRequires = [ emacs f magit-popup ]; + meta = { + homepage = "https://melpa.org/#/hasky-stack"; + license = lib.licenses.free; + }; + }) {}; haxor-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "haxor-mode"; @@ -15366,12 +16637,12 @@ helm = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild, popup }: melpaBuild { pname = "helm"; - version = "2.6.1"; + version = "2.8.5"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm"; - rev = "9db9ed21c8d6454c60eb50c7cc935540d31abc43"; - sha256 = "1vanva75xv52yg68mqcbxvdbrkq66qb883sjvg3fsg4slwivbiz6"; + rev = "2385b81edc706f7efc74f2aff4854399254cde17"; + sha256 = "02qhjyaqxh18g23lbcfpygz1ng7skifbqb6xkgh5wii1qykqxy6m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7e8bccffdf69479892d76b9336a4bec3f35e919d/recipes/helm"; @@ -15450,12 +16721,12 @@ helm-backup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: melpaBuild { pname = "helm-backup"; - version = "0.2.1"; + version = "1.0.0"; src = fetchFromGitHub { owner = "antham"; repo = "helm-backup"; - rev = "184026b9fe454aab8e7730106b4ca494fe307769"; - sha256 = "0d6h4gbb69abxxgm85pdi5rsaf9h72yryg72ykd5633i1g4s8a76"; + rev = "3f39d296ddc77df758b812c50e3c267dd03db8bb"; + sha256 = "05528ajhmvkc50i65wcb3bi1w4i3y1vvr56dvq6yp7cbyw9r7b8w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5e6eba7b201e91211e43c39e501f6066f0afeb8b/recipes/helm-backup"; @@ -15678,15 +16949,36 @@ license = lib.licenses.free; }; }) {}; + helm-company = callPackage ({ company, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-company"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "Sodel-the-Vociferous"; + repo = "helm-company"; + rev = "ae4e1a05455f5eaf07e61b8627934ea1df4eb048"; + sha256 = "05lfqdg5pzwji3j5w1l892qab9nffd3if8ha0545gbxfn94lnx90"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8acf7420f2ac8a36474594bc34316f187b43d771/recipes/helm-company"; + sha256 = "1wl1mzm1h9ig351y77yascdv4z0cka1gayi8cnnlayk763is7q34"; + name = "helm-company"; + }; + packageRequires = [ company helm ]; + meta = { + homepage = "https://melpa.org/#/helm-company"; + license = lib.licenses.free; + }; + }) {}; helm-core = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "helm-core"; - version = "2.6.1"; + version = "2.8.5"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm"; - rev = "9db9ed21c8d6454c60eb50c7cc935540d31abc43"; - sha256 = "1vanva75xv52yg68mqcbxvdbrkq66qb883sjvg3fsg4slwivbiz6"; + rev = "2385b81edc706f7efc74f2aff4854399254cde17"; + sha256 = "02qhjyaqxh18g23lbcfpygz1ng7skifbqb6xkgh5wii1qykqxy6m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7/recipes/helm-core"; @@ -15723,12 +17015,12 @@ helm-dash = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-dash"; - version = "1.2.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "areina"; repo = "helm-dash"; - rev = "a0f5d6539da873cd0c51d8ef714930c970a66aa0"; - sha256 = "0s503q56acv70i5qahrdgk3nhvdpb3wa22a8jh1kvb7lykaw74ai"; + rev = "9a230125a7a11f5fa90aa048b61abd95eb78ddfe"; + sha256 = "0xs3nq86qmvkiazn5w564npdgbcfjlnpw2f48g2jd43yznblz7ly"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-dash"; @@ -15762,15 +17054,36 @@ license = lib.licenses.free; }; }) {}; + helm-directory = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: + melpaBuild { + pname = "helm-directory"; + version = "0.6.4"; + src = fetchFromGitHub { + owner = "masasam"; + repo = "emacs-helm-directory"; + rev = "2c6d45404506ba744888dcdb65e9f63878f2da16"; + sha256 = "1a5j4zzn249jdm4kcri64x1dxazhhk7g5dmgnhflrnbrc2kdwm8h"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d0c066d6f285ab6d572dab4549781101547cb704/recipes/helm-directory"; + sha256 = "01c5a08v6rd867kdyrfwdvj05z4srzj9g6xy4scirlbwbff0q76n"; + name = "helm-directory"; + }; + packageRequires = [ emacs helm ]; + meta = { + homepage = "https://melpa.org/#/helm-directory"; + license = lib.licenses.free; + }; + }) {}; helm-dired-history = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-dired-history"; - version = "1.2"; + version = "1.3"; src = fetchFromGitHub { owner = "jixiuf"; repo = "helm-dired-history"; - rev = "9480383b6ccede6f7c200fbd50aaeb2898b3a008"; - sha256 = "0cfq06lray7hpnhkwnhjq18izyk2w0m4cxqg0m5nyidiwc4qssqa"; + rev = "281523f9fc46cf00fafd670ba5cd16552a607212"; + sha256 = "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-dired-history"; @@ -15786,12 +17099,12 @@ helm-emms = callPackage ({ cl-lib ? null, emacs, emms, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-emms"; - version = "1.0"; + version = "1.3"; src = fetchFromGitHub { owner = "emacs-helm"; repo = "helm-emms"; - rev = "ed3da37e86ea5dabc15da708335b1e439ae0777d"; - sha256 = "0330s07b41nw9q32xhjdl7yw83p8ikj6b2qkir3y0jyx16gk10dl"; + rev = "d7da090af0f63b92c5d735197992c732adbeef3d"; + sha256 = "0fs0i33di3liyx1f55xpg5nmac1b750n37g3pkxw2mil7fx7dz32"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/db836b671705607f6cd9bce8229884b1f29b4a76/recipes/helm-emms"; @@ -15933,12 +17246,12 @@ helm-git-grep = callPackage ({ fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }: melpaBuild { pname = "helm-git-grep"; - version = "0.9.0"; + version = "0.10.1"; src = fetchFromGitHub { owner = "yasuyk"; repo = "helm-git-grep"; - rev = "6ca2fcd44510305cf019815d61bf65eca200c238"; - sha256 = "0qmxccwpv7l5lbhv9n7ylikzcggdr99qzci868ghf33p4zhqyrj5"; + rev = "744cea07dba6e6a5effbdba83f1b786c78fd86d3"; + sha256 = "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/338d28c3fe201a7b2f15793be6d540f44819f4d8/recipes/helm-git-grep"; @@ -16038,12 +17351,12 @@ helm-hatena-bookmark = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-hatena-bookmark"; - version = "2.2.2"; + version = "2.2.3"; src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-hatena-bookmark"; - rev = "8350a600d3e03f1ec7dc899cc0b2e323b12518bb"; - sha256 = "0hmvyyhddpf831cad35c9z9fv5mpdq6qg4nzbdghlqs9pf7ik6h2"; + rev = "d64833a5bbb4ae112ed176f6473232e526138572"; + sha256 = "01b6nlbidk93arnnd2irm088qlws4i4p1sagsh9v153x6sk0r38k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3e9335ad16d4151dd4970c4a3ad1fee9a84404fa/recipes/helm-hatena-bookmark"; @@ -16269,12 +17582,12 @@ helm-notmuch = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, notmuch }: melpaBuild { pname = "helm-notmuch"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "xuchunyang"; repo = "helm-notmuch"; - rev = "7d03cd9fed32b49a1f200c65ed38086c9f19cfaf"; - sha256 = "10nx6wnd2vfqxv9zr8brml0l9mfx8rrid3lbqgs8wr9313ra3360"; + rev = "782c221bf293eee55990de5b54171f08d881dcee"; + sha256 = "04mlsjqhh2nw2javxz8m1hbnsq0s70dw5pnwdbx8s9dk1p8ikxvw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/98667b3aa43d3e0f6174eeef82acaf71d7019aac/recipes/helm-notmuch"; @@ -16311,12 +17624,12 @@ helm-org-rifle = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: melpaBuild { pname = "helm-org-rifle"; - version = "1.3.0"; + version = "1.4.2"; src = fetchFromGitHub { owner = "alphapapa"; repo = "helm-org-rifle"; - rev = "c8ad1d86dd375f1be433b95e2bc40876f663663f"; - sha256 = "1ia960sqkbc5bqljjb0arw54q90x36lhp0230s75xcg6m47bxpw3"; + rev = "26749ff9f34b2abddf7c47ff71b1046942e38398"; + sha256 = "1q969rlqj706wdzd3s54pqpfpqkg18bzl5srl7xkw43cfzxpcpj2"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615/recipes/helm-org-rifle"; @@ -16563,12 +17876,12 @@ helm-qiita = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-qiita"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "masutaka"; repo = "emacs-helm-qiita"; - rev = "45e38ae7b816da5db38412b2992c6d1c7a6cc30a"; - sha256 = "05394vf125qlgfrhkaqvly3340qp3zy7kldsnisms9gv0l1c60bq"; + rev = "1eb97a44ba6fbfe61a0735b0c62171ee5217eda1"; + sha256 = "1swkj65fhk48704ny3x6h95qqm2g21d94vzd8s8qqyjmnajj07i3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/37331f6cc8a95fd2b2ed5b20be0bcb604ea66dee/recipes/helm-qiita"; @@ -16644,6 +17957,27 @@ license = lib.licenses.free; }; }) {}; + helm-rtags = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, rtags }: + melpaBuild { + pname = "helm-rtags"; + version = "2.14"; + src = fetchFromGitHub { + owner = "Andersbakken"; + repo = "rtags"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/helm-rtags"; + sha256 = "1vv6wnniplyls344qzgcf1ivv25c8qilax6sbhvsf46lvrwnr48n"; + name = "helm-rtags"; + }; + packageRequires = [ helm rtags ]; + meta = { + homepage = "https://melpa.org/#/helm-rtags"; + license = lib.licenses.free; + }; + }) {}; helm-rubygems-org = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-rubygems-org"; @@ -16689,12 +18023,12 @@ helm-smex = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, smex }: melpaBuild { pname = "helm-smex"; - version = "0.2"; + version = "0.3"; src = fetchFromGitHub { owner = "ptrv"; repo = "helm-smex"; - rev = "7af4e4b44671f739b39584fc50c20084700701ac"; - sha256 = "1dhzglpd48mb47iyii8igb1dldvnr4alg18m7g8xb529dx8z9wni"; + rev = "2269375dfa452b88b5170d1a5d5849ebb2c1e413"; + sha256 = "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/85568bd732da952053148e07b95e53f7caf5f62c/recipes/helm-smex"; @@ -16773,12 +18107,12 @@ helm-tramp = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }: melpaBuild { pname = "helm-tramp"; - version = "0.3.3"; + version = "0.5.4"; src = fetchFromGitHub { owner = "masasam"; repo = "emacs-helm-tramp"; - rev = "68d4c614830970e9eaf929882e1d395a61872bea"; - sha256 = "0zfhdlzpy6w7prdh60nd98cwgzfqfsn87xh2kb5hi40dh8gsccfb"; + rev = "9480ee2d5a9cc190e48a04ffac33ca6403fd12e1"; + sha256 = "0jh9vbbsdzgxd41x5ykvb4b5ww248bc7lrzfjn4jmckgjmqq8v1y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/helm-tramp"; @@ -16875,6 +18209,27 @@ license = lib.licenses.free; }; }) {}; + helpful = callPackage ({ dash, elisp-refs, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "helpful"; + version = "0.2"; + src = fetchFromGitHub { + owner = "Wilfred"; + repo = "helpful"; + rev = "b9a06978b6ffcd7f0ea213a6f534fa39318f0050"; + sha256 = "1czqvmlca3w7n28c04dl3ljn8gbvfc565lysxlrhvgmv08iagnxm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful"; + sha256 = "17w9j5v1r2c8ka1fpzbr295cgnsbiw8fxlslh4zbjqzaazamchn2"; + name = "helpful"; + }; + packageRequires = [ dash elisp-refs emacs s ]; + meta = { + homepage = "https://melpa.org/#/helpful"; + license = lib.licenses.free; + }; + }) {}; hfst-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hfst-mode"; @@ -16941,12 +18296,12 @@ hierarchy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hierarchy"; - version = "0.2.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "hierarchy"; - rev = "d44d60d85cbeaf81d5e02ba154f4fcdca9faf7fd"; - sha256 = "14zww0174vwf08fl9fv23faqn2byapb80rn72z4iv54p6pqykc2f"; + rev = "4ab1372c252847c316f8978a81e2fe92ff79579e"; + sha256 = "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7aea238a2d14e9f58c0474251984b6c617b6854d/recipes/hierarchy"; @@ -17109,12 +18464,12 @@ hindent = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hindent"; - version = "5.2.2"; + version = "5.2.4"; src = fetchFromGitHub { owner = "chrisdone"; repo = "hindent"; - rev = "d67cee32231aee30984b9c5d0250d21b5377b620"; - sha256 = "126q56673w7yz1p58550k6aya47nhbzn29g4zvq6wjbnicn0vwd1"; + rev = "e18ec3f55e288883f8042065190572e91651733d"; + sha256 = "0iq4hs2r56rnsxfjda5acd0s2wrza7jd5jsawnzbyix1vnbgp98z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dbae71a47446095f768be35e689025aed57f462f/recipes/hindent"; @@ -17277,12 +18632,12 @@ hl-todo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hl-todo"; - version = "1.7.4"; + version = "1.8.0"; src = fetchFromGitHub { owner = "tarsius"; repo = "hl-todo"; - rev = "a23312464fc6462d559462a44cd74735e9f73421"; - sha256 = "0sy0fjmh1m36ajzfmxa2j9akws5qa8a4f1qmj3wgj9vdqd043mr8"; + rev = "961db3116f1396dc4f903e3a59824a40e0bbb6a2"; + sha256 = "0w847g7lvzk9br9r73n7rf2ba6wafqrapyigp91f62jicz28lvm1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7c262f6a1a10e8b3cc30151cad2e34ceb66c6ed7/recipes/hl-todo"; @@ -17484,6 +18839,27 @@ license = lib.licenses.free; }; }) {}; + hugsql-ghosts = callPackage ({ cider, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "hugsql-ghosts"; + version = "0.1.1"; + src = fetchFromGitHub { + owner = "rkaercher"; + repo = "hugsql-ghosts"; + rev = "9d76acb41333c6377c7fe79e936008d10fe55420"; + sha256 = "18wkqvmfr5v3mf3si0mwmwlc5gms82jzb5p3q3kpbmsayzg3xi8n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/969fd5e51bf93b5eff6919956c43c041a3b24d1e/recipes/hugsql-ghosts"; + sha256 = "1v1iypis5iyimdr9796qpqw0qmhzijap0nbr0mhhyp4001kakkwz"; + name = "hugsql-ghosts"; + }; + packageRequires = [ cider dash s ]; + meta = { + homepage = "https://melpa.org/#/hugsql-ghosts"; + license = lib.licenses.free; + }; + }) {}; hungry-delete = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hungry-delete"; @@ -17505,6 +18881,27 @@ license = lib.licenses.free; }; }) {}; + hy-mode = callPackage ({ dash, dash-functional, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "hy-mode"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "hylang"; + repo = "hy-mode"; + rev = "267a3b163136d207d8d9ecd0d2aa14dc30fd0690"; + sha256 = "11n60zzhad68vff7fqzkvbj04i3xc3xp9yc2v26v8y6zpqizhib0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fc9ab5cf16b61bb27559cd8ec5cf665a5aab2154/recipes/hy-mode"; + sha256 = "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m"; + name = "hy-mode"; + }; + packageRequires = [ dash dash-functional emacs s ]; + meta = { + homepage = "https://melpa.org/#/hy-mode"; + license = lib.licenses.free; + }; + }) {}; hyai = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hyai"; @@ -17571,12 +18968,12 @@ hydra = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "hydra"; - version = "0.13.6"; + version = "0.14.0"; src = fetchFromGitHub { owner = "abo-abo"; repo = "hydra"; - rev = "91f8e7c13bcd9629ad1678588e58576ca6806b58"; - sha256 = "1czdar4yv5c9996wvj887d0c1knlrpcjj0aq2dily2x074gdzh4j"; + rev = "943636fe4a35298d9d234222bc4520dec9ef2305"; + sha256 = "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a4375d8ae519290fd5018626b075c226016f951d/recipes/hydra"; @@ -17715,22 +19112,22 @@ license = lib.licenses.free; }; }) {}; - ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + ido-completing-read-plus = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, s }: melpaBuild { pname = "ido-completing-read-plus"; - version = "3.16"; + version = "4.5"; src = fetchFromGitHub { owner = "DarwinAwardWinner"; - repo = "ido-ubiquitous"; - rev = "2bd3a2722d8df0db9dfe25f5763f7dfaf0734624"; - sha256 = "1zz0k5ddcwkg0wjdzihklgnxq5f6rlsxldhn7h9jzyss5bsgykhj"; + repo = "ido-completing-read-plus"; + rev = "e8cfebac1df2bfca52003f28ed84cb1a39dc8345"; + sha256 = "14g5v823wsr0sgrawqw9kwilm68w0k4plz3b00jd7z903np9cxih"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-completing-read+"; - sha256 = "034j1q47d57ia5bwbf1w66gw6c7aqbhscpy3dg2a71lwjzfmshwh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-completing-read+"; + sha256 = "0rxdv3cd0bg0p8c1bck5vichdq941dki934k23qf5p6cfgw8gw4z"; name = "ido-completing-read-plus"; }; - packageRequires = [ cl-lib emacs ]; + packageRequires = [ cl-lib emacs memoize s ]; meta = { homepage = "https://melpa.org/#/ido-completing-read+"; license = lib.licenses.free; @@ -17823,16 +19220,16 @@ ido-ubiquitous = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, ido-completing-read-plus, lib, melpaBuild }: melpaBuild { pname = "ido-ubiquitous"; - version = "3.16"; + version = "4.5"; src = fetchFromGitHub { owner = "DarwinAwardWinner"; - repo = "ido-ubiquitous"; - rev = "2bd3a2722d8df0db9dfe25f5763f7dfaf0734624"; - sha256 = "1zz0k5ddcwkg0wjdzihklgnxq5f6rlsxldhn7h9jzyss5bsgykhj"; + repo = "ido-completing-read-plus"; + rev = "e8cfebac1df2bfca52003f28ed84cb1a39dc8345"; + sha256 = "14g5v823wsr0sgrawqw9kwilm68w0k4plz3b00jd7z903np9cxih"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a227a6d44f1981e8a3f73b253d2c33eb18ef72f/recipes/ido-ubiquitous"; - sha256 = "143pzpix9aqpzjy8akrxfsxmwlzc9bmaqzp9fyhjgzrhq7zchjsp"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/ido-ubiquitous"; + sha256 = "11sdk0ymsqnsw1gycvq2wj4j0g502fp23qk6q9d95lm98nz68frz"; name = "ido-ubiquitous"; }; packageRequires = [ cl-lib emacs ido-completing-read-plus ]; @@ -18075,12 +19472,12 @@ imenu-anywhere = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imenu-anywhere"; - version = "1.1.3"; + version = "1.1.4"; src = fetchFromGitHub { owner = "vspinu"; repo = "imenu-anywhere"; - rev = "94bab9136e1264e98a10d9325ad53d735307f8f3"; - sha256 = "1ffdh0izdd22av85rizk38fidfp8f6lk6phr549fzaspn11hvd8j"; + rev = "fc7f0fd2f19e5ebee70156a99bf87393123893e3"; + sha256 = "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/imenu-anywhere"; @@ -18096,12 +19493,12 @@ imenu-list = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "imenu-list"; - version = "0.7"; + version = "0.8"; src = fetchFromGitHub { owner = "bmag"; repo = "imenu-list"; - rev = "999fc0ec7f03b56be8e2a6e673d9473f51e5a92f"; - sha256 = "0py4sc5a5hjdijavymjmvipkm9z4jy1l8yb35d8rl7mfzr5cz3l7"; + rev = "27170d27c9594989587c03c23f753a809f6a0e10"; + sha256 = "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/86dea881a5b2d0458449f08b82c2614ad9abd068/recipes/imenu-list"; @@ -18135,27 +19532,6 @@ license = lib.licenses.free; }; }) {}; - imgix = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, ht, json ? null, lib, melpaBuild, s }: - melpaBuild { - pname = "imgix"; - version = "1.0.0"; - src = fetchFromGitHub { - owner = "imgix"; - repo = "imgix-emacs"; - rev = "cf3994f69b34a36f627e9ceaf3e6f4309ee9ec30"; - sha256 = "19jqcbiwqknlpij9q63m1p69k4zb3v1qdx0858drprc2rl1p55cd"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/imgix"; - sha256 = "1480571q6qy7wv88398kxjhd96gsdhb6ar6pa1kr5y6il0s6d5lg"; - name = "imgix"; - }; - packageRequires = [ cl-lib dash ht json s ]; - meta = { - homepage = "https://melpa.org/#/imgix"; - license = lib.licenses.free; - }; - }) {}; immutant-server = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "immutant-server"; @@ -18201,12 +19577,12 @@ import-js = callPackage ({ emacs, fetchFromGitHub, fetchurl, grizzl, lib, melpaBuild }: melpaBuild { pname = "import-js"; - version = "1.0.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "Galooshi"; repo = "emacs-import-js"; - rev = "15d395126f57408d770a72db2e5f43271f90fa52"; - sha256 = "1ipbfacjx9vqqhvsf9sgfci8vqx0plks510w1gsjj0xwrpqn1f6l"; + rev = "0a1032894445062b87dbe4e2c8cdba35ac25c250"; + sha256 = "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/import-js"; @@ -18240,6 +19616,27 @@ license = lib.licenses.free; }; }) {}; + importmagic = callPackage ({ emacs, epc, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "importmagic"; + version = "1.1"; + src = fetchFromGitHub { + owner = "anachronic"; + repo = "importmagic.el"; + rev = "c0360a8146ca65565a7fa66c6d72986edd916dd5"; + sha256 = "0s6hp62kmhvmgj3m5jr3cfqc8yv3p8jfxk0piq8xbf2chr1hp6l5"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/importmagic"; + sha256 = "1kpmgpll0zz3zlr3q863v1fq6wmwdwx7mn676x0r7g4iy1bdslmv"; + name = "importmagic"; + }; + packageRequires = [ emacs epc f ]; + meta = { + homepage = "https://melpa.org/#/importmagic"; + license = lib.licenses.free; + }; + }) {}; indent-guide = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "indent-guide"; @@ -18261,22 +19658,22 @@ license = lib.licenses.free; }; }) {}; - indium = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + indium = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, seq, websocket }: melpaBuild { pname = "indium"; - version = "0.28"; + version = "1.0"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "Indium"; - rev = "83ad172b96bb011bb705add136a7571b08f6c4c2"; - sha256 = "16l17sldq68492xa2nbkr956hcpncalmjr1spbf1avi9z910d17l"; + rev = "db3b727c9deedcf9afa13e07cd25734cbf7305a2"; + sha256 = "1cm6zm8d7rywvlhzf1vpblqb1kgn6c7bwk9q2mjz7f5gdcsx1jp5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4292058cc6e31cabc0de575134427bce7fcef541/recipes/indium"; sha256 = "024ljx7v8xahmr8jm41fiy8i5jbg48ybqp5n67k4jwg819cz8wvl"; name = "indium"; }; - packageRequires = []; + packageRequires = [ company emacs js2-mode seq websocket ]; meta = { homepage = "https://melpa.org/#/indium"; license = lib.licenses.free; @@ -18285,12 +19682,12 @@ inf-clojure = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inf-clojure"; - version = "1.4.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "clojure-emacs"; repo = "inf-clojure"; - rev = "a9eb2109fcd547b5c9f18f7bf9e617f32d47b5a0"; - sha256 = "1dmr1arqy2vs9jdjha513mvw3yfwgkn4zs728q83asjy91sfcz7k"; + rev = "956b22e7941d71216799ca4e8d5244e94fad9558"; + sha256 = "1wakfwmb43na3g2yqign764kwi791x7ikzmf76pkdpky70a5dkhz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5d6112e06d1efcb7cb5652b0bec8d282d7f67bd9/recipes/inf-clojure"; @@ -18306,12 +19703,12 @@ inf-ruby = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inf-ruby"; - version = "2.5.0"; + version = "2.5.1"; src = fetchFromGitHub { owner = "nonsequitur"; repo = "inf-ruby"; - rev = "54eb6bf6d68d71bdac63fcb2042d8e1c554b427f"; - sha256 = "0yqcl2r8kwdl99704vm8qsdzziidznp0gpyr29ipya7fl24nkfxr"; + rev = "81adadf0f98122b655d0c2bee9c8074d2b6a3ee2"; + sha256 = "1r452h6cyypqlc59q8dx5smkwhck4qjcg1pf9qdw539cpva5q77z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/inf-ruby"; @@ -18327,12 +19724,12 @@ inflections = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "inflections"; - version = "2.4"; + version = "2.5"; src = fetchFromGitHub { owner = "eschulte"; repo = "jump.el"; - rev = "fb3dd59f21f77016742de40028aee92176c0917a"; - sha256 = "1alncmx4q2szvlzg57332zmqm6rsgzf12kfg9l1vb5s9vgd1ki5p"; + rev = "40a7ffdf734ffe7d1968909663146255d7ba69c8"; + sha256 = "1ig1wdjg914p9ng1nir2fid4mb3xz2dbpmkdnfy1klq2zp0xw2s3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/392c7616d27bf12b29ef3c2ea71e42ffaea81cc6/recipes/inflections"; @@ -18461,7 +19858,7 @@ sha256 = "0jipds844432a8m4d5gxbbkk2h1rsq9fg748g6bxy2q066kyzfz6"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/5bf7761c9091260d378621907a1689498aedc098/recipes/inline-crypt"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/b04fffe5e52f26e92930a112a64531228f94e340/recipes/inline-crypt"; sha256 = "04mcyyqa9h6g6wrzphzqalpqxsndmzxpavlpdc24z4a2c5s3yz8n"; name = "inline-crypt"; }; @@ -18495,12 +19892,12 @@ insert-shebang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "insert-shebang"; - version = "0.9.5"; + version = "0.9.6"; src = fetchFromGitHub { owner = "psachin"; repo = "insert-shebang"; - rev = "8b36eaa092e62002fe64162daf9d3ad1138b6ec2"; - sha256 = "1an7wzqnh9aj38bi9w0wsrs35h2z43lkaaw04lrz3a6zf797ac3x"; + rev = "adfa473f07443b231914d277c20a3419b30399b6"; + sha256 = "10zy3vg5fr30hhv0q3jldffhjacg1yrv5d9gfkdz55ry277l3xz1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c257f4f5011cd7d0b2a5ef3adf13f9871bf0be92/recipes/insert-shebang"; @@ -18536,12 +19933,12 @@ intellij-theme = callPackage ({ fetchFromGitLab, fetchurl, lib, melpaBuild }: melpaBuild { pname = "intellij-theme"; - version = "1.1"; + version = "1.3"; src = fetchFromGitLab { owner = "fommil"; repo = "emacs-intellij-theme"; - rev = "ad207c8c3d266d566fb1e4862df154096c059171"; - sha256 = "06slahp36mj39ri4v4k7sv3mly6cgk76m4zpc1why3h6dmd7hhyr"; + rev = "1bbfff8e6742d18e9b77ed796f44da3b7bd10606"; + sha256 = "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cfe86071b2e84929476a771da99341f4a73cfd06/recipes/intellij-theme"; @@ -18578,12 +19975,12 @@ intero = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild }: melpaBuild { pname = "intero"; - version = "0.1.20"; + version = "0.1.23"; src = fetchFromGitHub { owner = "commercialhaskell"; repo = "intero"; - rev = "402722b5ad035b87fc08bc73343f05610a5fcb3c"; - sha256 = "143y94b4spslh06x4klvsvil7ywn3cmrad4mg1qc0y0h0d9ksd4v"; + rev = "3865aad923559bee140eaede20c3510890979930"; + sha256 = "1q6q2hnqf78kxd61nic4zjx7crbv8p25p4aq0h4vihamm8r0v7vm"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1b56ca344ad944e03b669a9974e9b734b5b445bb/recipes/intero"; @@ -18596,6 +19993,27 @@ license = lib.licenses.free; }; }) {}; + inverse-acme-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "inverse-acme-theme"; + version = "1.12.0"; + src = fetchFromGitHub { + owner = "dcjohnson"; + repo = "inverse-acme-theme"; + rev = "e57f494fd94e49321a6396f530b8a13bae8b57df"; + sha256 = "16f9vszl0f1dkjvqk5hxi570gf4l8p6fk27p0d7j11grsck0yzly"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1c44dbc8d3ca29d8715af755b845af7236e95406/recipes/inverse-acme-theme"; + sha256 = "03g6h8dpn42qnr593ryhj22lj1h2nx4rdr1knhkvxygfv3c4lgh5"; + name = "inverse-acme-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/inverse-acme-theme"; + license = lib.licenses.free; + }; + }) {}; iplayer = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "iplayer"; @@ -18641,12 +20059,12 @@ irony = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "irony"; - version = "0.2.1"; + version = "1.2.0"; src = fetchFromGitHub { owner = "Sarcasm"; repo = "irony-mode"; - rev = "250ed1e03359fe5b29070da13cd55abc6deb0cda"; - sha256 = "168bnirfqpgiqmrjs52ixzqzq074y9szvxi6bml9zbxi8dcmafaq"; + rev = "78b06aa2df5251adaabb6c749febc1f1bd2ad605"; + sha256 = "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d2b6a8d57b192325dcd30fddc9ff8dd1516ad680/recipes/irony"; @@ -18680,6 +20098,27 @@ license = lib.licenses.free; }; }) {}; + iter2 = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "iter2"; + version = "0.9.4"; + src = fetchFromGitHub { + owner = "doublep"; + repo = "iter2"; + rev = "a0e41b2f55d50c08c59ffcc6e83a977c141bcc55"; + sha256 = "0ccr9qjhc35wi07yckd9y26synihhsg8zwkxgqyzkx7avxkqfyhn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d94316660051ee0ba0c12e380e6203986440368f/recipes/iter2"; + sha256 = "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65"; + name = "iter2"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/iter2"; + license = lib.licenses.free; + }; + }) {}; ivy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ivy"; @@ -18722,15 +20161,36 @@ license = lib.licenses.free; }; }) {}; + ivy-dired-history = callPackage ({ cl-lib ? null, counsel, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: + melpaBuild { + pname = "ivy-dired-history"; + version = "1.0"; + src = fetchFromGitHub { + owner = "jixiuf"; + repo = "ivy-dired-history"; + rev = "3604840f85e4ff2d7ecab6233e820cb2ec5c8733"; + sha256 = "0slisbnfcdx8jv0p67ag6s4l0m0jmrwcpm5a2jm6sai9x67ayn4l"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ad37f6b04ff45fbffeadefc94db16baa27bcc2ac/recipes/ivy-dired-history"; + sha256 = "1vj073k5m0l8rx9iiisikzl053ad9mlhvbk30f5zmw9sw7b9blyl"; + name = "ivy-dired-history"; + }; + packageRequires = [ cl-lib counsel ivy ]; + meta = { + homepage = "https://melpa.org/#/ivy-dired-history"; + license = lib.licenses.free; + }; + }) {}; ivy-erlang-complete = callPackage ({ async, counsel, emacs, erlang, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }: melpaBuild { pname = "ivy-erlang-complete"; - version = "0.2.1"; + version = "0.3.0"; src = fetchFromGitHub { owner = "s-kostyaev"; repo = "ivy-erlang-complete"; - rev = "9ee63f0415e9774082993d672d8200bc7e62d715"; - sha256 = "0wrkpl6v56k553zzksy4rh6wkwxdp027x8n0byic9phydrnsdn57"; + rev = "acd6322571cb0820868a6febdc5326782a29b729"; + sha256 = "158cmxhky8nng43jj0d7w8126phx6zlr6r0kf9g2in5nkmbcbd33"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ac1b9e350d3f066e4e56202ebb443134d5fc3669/recipes/ivy-erlang-complete"; @@ -18827,15 +20287,36 @@ license = lib.licenses.free; }; }) {}; + ivy-rtags = callPackage ({ fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, rtags }: + melpaBuild { + pname = "ivy-rtags"; + version = "2.14"; + src = fetchFromGitHub { + owner = "Andersbakken"; + repo = "rtags"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ivy-rtags"; + sha256 = "18f0jak643dd8lmx701wgk95miajabd8190ls35831slr28lqxsq"; + name = "ivy-rtags"; + }; + packageRequires = [ ivy rtags ]; + meta = { + homepage = "https://melpa.org/#/ivy-rtags"; + license = lib.licenses.free; + }; + }) {}; ivy-youtube = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, request }: melpaBuild { pname = "ivy-youtube"; - version = "0.2.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "squiter"; repo = "ivy-youtube"; - rev = "32f609f1d1a3718739be5797e020d6266d8340d2"; - sha256 = "0vvqp6aw83bxk7j835w267m1xyl7a9a5m45h50267ahvhd9vn1sd"; + rev = "9a9d584124bd9905b5a8a7e29cdafa3224770c9d"; + sha256 = "0fircdxhfb9s6qmzic2hizhlwfkszw3was83nw09zf0zhab3vllh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ivy-youtube"; @@ -19098,6 +20579,27 @@ license = lib.licenses.free; }; }) {}; + jetbrains = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jetbrains"; + version = "0.0.2"; + src = fetchFromGitHub { + owner = "emacs-php"; + repo = "jetbrains.el"; + rev = "38e136079f3f2ddbe0e8b7dec01cf6b515e897d8"; + sha256 = "1ji64qip5raf0lbv7fv36rd4fwa33zn0xi7sa0zrgf0kcsr0qasb"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/00dd4626e261d9831fc62d866d50b7257ee418c4/recipes/jetbrains"; + sha256 = "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7"; + name = "jetbrains"; + }; + packageRequires = [ cl-lib emacs f ]; + meta = { + homepage = "https://melpa.org/#/jetbrains"; + license = lib.licenses.free; + }; + }) {}; jinja2-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "jinja2-mode"; @@ -19161,22 +20663,43 @@ license = lib.licenses.free; }; }) {}; - js-comint = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, nvm }: + js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "js-auto-format-mode"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "ybiquitous"; + repo = "js-auto-format-mode"; + rev = "e0b7ae9d1d70fa74abd91bb6f901bd46db5a22eb"; + sha256 = "1z5vi8681afm7jsqwifnb35sja1s4b2j123b3pn0bv1j6b8iaq9j"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode"; + sha256 = "1gxf7xz1j3ga2pk5w8cgny7l8kid59zap2a97lhb50w1qczfqqzs"; + name = "js-auto-format-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/js-auto-format-mode"; + license = lib.licenses.free; + }; + }) {}; + js-comint = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "js-comint"; - version = "0.0.5"; + version = "1.1.0"; src = fetchFromGitHub { owner = "redguardtoo"; repo = "js-comint"; - rev = "83978912073d554f3dc1185a8a46222317a90539"; - sha256 = "0h0dfq2rrnlvdbm39l2wqmhzrps6z6ha65j26bnblwa03jr608l9"; + rev = "2c19fafed953ea0972ff086614f86614f4d5dc13"; + sha256 = "1ljsq02g8jcv98c8zc5307g2pqvgpbgj9g0a5gzpz27m440b85sp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bc9d20b95e369e5a73c85a4a9385d3a8f9edd4ca/recipes/js-comint"; sha256 = "0jvkjb0rmh87mf20v6rjapi2j6qv8klixy0y0kmh3shylkni3an1"; name = "js-comint"; }; - packageRequires = [ nvm ]; + packageRequires = []; meta = { homepage = "https://melpa.org/#/js-comint"; license = lib.licenses.free; @@ -19185,12 +20708,12 @@ js2-closure = callPackage ({ fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "js2-closure"; - version = "2.1"; + version = "2.2.1"; src = fetchFromGitHub { owner = "jart"; repo = "js2-closure"; - rev = "6050abb334c228702c23fcb03bfdf1dfbd1d6b11"; - sha256 = "1b4d13kz7afr5a6wyhq6vmwz8gsabdi86scw3q3v6l56hl2rgy46"; + rev = "74a75f001a8bc2b9c02b9e8b4557f7ee3c5f84fb"; + sha256 = "1gapx656s4ngy8s8y1p56xxnclwf4qqg83l3jizknxky7yhayyl9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/61bf3e70ae38a78184f0b373ff6f0db234f51cb2/recipes/js2-closure"; @@ -19227,12 +20750,12 @@ js2-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "js2-mode"; - version = "20170116"; + version = "20170721"; src = fetchFromGitHub { owner = "mooz"; repo = "js2-mode"; - rev = "03c679eb9914d58d7d9b7afc2036c482a9a01236"; - sha256 = "1kgmljgh71f2sljdsr134jrj1i6kgj9bwyh4pl1lrz0v4ahwgd6g"; + rev = "cb57d9b67390ae3ff70ab64169bbc4f1264244bc"; + sha256 = "0z7ya533ap6lm5qwfsbhn1k4jh1k1p5xyk5r27wd40rfzvd2x2gy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/js2-mode"; @@ -19329,6 +20852,27 @@ license = lib.licenses.free; }; }) {}; + json-navigator = callPackage ({ emacs, fetchFromGitHub, fetchurl, hierarchy, lib, melpaBuild }: + melpaBuild { + pname = "json-navigator"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "DamienCassou"; + repo = "json-navigator"; + rev = "bc5634fc78d2e43ebd3c255350829877f3e4549c"; + sha256 = "1j2lic9sn00j6pzq5qslv9m2z0rvsxkvz73z8swp7vcrsgz7qvqd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/62d4d68bd473652b80988a68250e9190b886ad6e/recipes/json-navigator"; + sha256 = "0yfl31cg0mkgsbpgx00m9h2cxnhsavcf7zlspb0qr4g2zq6ya1wx"; + name = "json-navigator"; + }; + packageRequires = [ emacs hierarchy ]; + meta = { + homepage = "https://melpa.org/#/json-navigator"; + license = lib.licenses.free; + }; + }) {}; json-reformat = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "json-reformat"; @@ -19371,6 +20915,27 @@ license = lib.licenses.free; }; }) {}; + jsonnet-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "jsonnet-mode"; + version = "0.0.1"; + src = fetchFromGitHub { + owner = "mgyucht"; + repo = "jsonnet-mode"; + rev = "efe768fdcff25d746674fbbf229b9e1a7efea4f1"; + sha256 = "1a52266y83z9i3sg7hhc8sw7rhjy5i9wdy2bv7s2fv00lnngaj29"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ba17372732723f73e8eeb6e7c47abc0edeb20da4/recipes/jsonnet-mode"; + sha256 = "1aadys887szlc924qr645lby9f8vzvxkwhq6byhppk1b01h911ia"; + name = "jsonnet-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/jsonnet-mode"; + license = lib.licenses.free; + }; + }) {}; jsx-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "jsx-mode"; @@ -19392,22 +20957,22 @@ license = lib.licenses.free; }; }) {}; - jump = callPackage ({ fetchFromGitHub, fetchurl, findr, inflections, lib, melpaBuild }: + jump = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, findr, inflections, lib, melpaBuild }: melpaBuild { pname = "jump"; - version = "2.4"; + version = "2.5"; src = fetchFromGitHub { owner = "eschulte"; repo = "jump.el"; - rev = "fb3dd59f21f77016742de40028aee92176c0917a"; - sha256 = "1alncmx4q2szvlzg57332zmqm6rsgzf12kfg9l1vb5s9vgd1ki5p"; + rev = "40a7ffdf734ffe7d1968909663146255d7ba69c8"; + sha256 = "1ig1wdjg914p9ng1nir2fid4mb3xz2dbpmkdnfy1klq2zp0xw2s3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f0c791aebccc08b770b3969ce5d2e82cbe26f80e/recipes/jump"; sha256 = "18g0fa9g8m9jscsm6pn7jwdq94l4aj0dfhrv2hqapq1q1x537364"; name = "jump"; }; - packageRequires = [ findr inflections ]; + packageRequires = [ cl-lib findr inflections ]; meta = { homepage = "https://melpa.org/#/jump"; license = lib.licenses.free; @@ -19539,6 +21104,27 @@ license = lib.licenses.free; }; }) {}; + kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "kaolin-themes"; + version = "1.0"; + src = fetchFromGitHub { + owner = "ogdenwebb"; + repo = "emacs-kaolin-themes"; + rev = "720762a42ad4cb4b325f78a9d41af380b8783501"; + sha256 = "104prgkjqnnv1bqgpcl0di1q9sqkfnj4ibqvrk6ls32hw75shvdh"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes"; + sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw"; + name = "kaolin-themes"; + }; + packageRequires = [ autothemer cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/kaolin-themes"; + license = lib.licenses.free; + }; + }) {}; karma = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "karma"; @@ -19689,12 +21275,12 @@ keymap-utils = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "keymap-utils"; - version = "2.1.0"; + version = "3.0.0"; src = fetchFromGitHub { owner = "tarsius"; repo = "keymap-utils"; - rev = "a4f6ff724eeade5612c01c6f6bf401f264687793"; - sha256 = "0jgmw8798g3ikhwnic3fbbjld0hj8fvg50q6x78pngf78ws92mkl"; + rev = "0130f32e5ade649dd2738206a80570e450906ef6"; + sha256 = "1bq7zihdj67j94yyv6655mcrxhz99szbf2zi64nwsl60bxz0znb8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c03acebf1462dea36c81d4b9ab41e2e5739be3c3/recipes/keymap-utils"; @@ -19752,12 +21338,12 @@ kill-or-bury-alive = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kill-or-bury-alive"; - version = "0.1.2"; + version = "0.1.3"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "kill-or-bury-alive"; - rev = "b488c3dbba657bbd524402f48fde16ab6b1211db"; - sha256 = "1c5al7cyfnb0p5ya2aa5afadzbrrc079jx3r6zpkr64psskrhdv5"; + rev = "51daf55565034b8cb6aa3ca2aa0a827e31751041"; + sha256 = "1qbdxjni1brhsw6m4cvd2jjaf3y8v3fkbxxf0pvsb089mkpi7mpq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/25016ed09b6333bd79b989a8f6b7b03cd92e08b3/recipes/kill-or-bury-alive"; @@ -19815,12 +21401,12 @@ kivy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "kivy-mode"; - version = "1.9.1"; + version = "1.10.0"; src = fetchFromGitHub { owner = "kivy"; repo = "kivy"; - rev = "7e789b24cdb0ee044469d7bc42da9e4146674a18"; - sha256 = "0rzzjzkzgpiadm9awkj7wrh2hg97lhgwxg74gvdis3fc1xg2hyri"; + rev = "a4116a58d7c5448a4c6615021302375cbe3e129a"; + sha256 = "070ybsn66spb82jp1fzrnkn6xlbn7jn8zprmxkz8jv0lf5lg6ggk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/688e2a114073958c413e56e1d117d48db9d16fb8/recipes/kivy-mode"; @@ -19878,12 +21464,12 @@ ksp-cfg-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ksp-cfg-mode"; - version = "0.4"; + version = "0.5"; src = fetchFromGitHub { owner = "lashtear"; repo = "ksp-cfg-mode"; - rev = "07a957512e66030e1b9f8ac0f259051386acb5b5"; - sha256 = "1kbmlhfxbp704mky8v69lzqd20bbnqijfnv110yigsy3kxi7hdrr"; + rev = "713a22ee28688e581ec3ad60228c853b516a14b6"; + sha256 = "04r8mfsc349wdhx1brlf2l54v4dn58y69fqv3glhvml12962lwy3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d49db5938fa4e3ab1176a955a4788b15c63d9e69/recipes/ksp-cfg-mode"; @@ -19899,12 +21485,12 @@ kubernetes = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "kubernetes"; - version = "0.6.0"; + version = "0.11.3"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "kubernetes-el"; - rev = "494dae923b96a10853ba26f405059e8c04e72d22"; - sha256 = "03lnflyyqags7im9gp7cq3q6fnfr9a65s62m333aydbg7dzk5pzh"; + rev = "560b65baef1c4f2bedffd8e767774b55dfc35594"; + sha256 = "0n9msgawac0jbid671nfr8c5z1zw89wnfw021igxaqwqrl3438rw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/16850227ea48f6f38102b9cdf80e0758766a24d2/recipes/kubernetes"; @@ -19920,12 +21506,12 @@ kubernetes-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, kubernetes, lib, melpaBuild }: melpaBuild { pname = "kubernetes-evil"; - version = "0.6.0"; + version = "0.11.3"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "kubernetes-el"; - rev = "494dae923b96a10853ba26f405059e8c04e72d22"; - sha256 = "03lnflyyqags7im9gp7cq3q6fnfr9a65s62m333aydbg7dzk5pzh"; + rev = "560b65baef1c4f2bedffd8e767774b55dfc35594"; + sha256 = "0n9msgawac0jbid671nfr8c5z1zw89wnfw021igxaqwqrl3438rw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/16850227ea48f6f38102b9cdf80e0758766a24d2/recipes/kubernetes-evil"; @@ -19959,15 +21545,36 @@ license = lib.licenses.free; }; }) {}; + labburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "labburn-theme"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "ksjogo"; + repo = "labburn-theme"; + rev = "bfa1d9f1c7e107cb45754fe57e4e72a9be70e9d1"; + sha256 = "1r221fwfigr6fk4p3xh00wgw9wxm2gpzvj17jf5pgd7cvyspchsy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b1bfc9870fbe61f58f107b72fd7f16efba22c902/recipes/labburn-theme"; + sha256 = "09qqb62hfga88zka0pc27rc8i43cxi84cv1x8wj0vvzx6mvic1lm"; + name = "labburn-theme"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/labburn-theme"; + license = lib.licenses.free; + }; + }) {}; langtool = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "langtool"; - version = "1.5.1"; + version = "1.6.0"; src = fetchFromGitHub { owner = "mhayashi1120"; repo = "Emacs-langtool"; - rev = "708799b021d4f4a765c312e33737e343d7e3c9bf"; - sha256 = "1i8wbhc6i88plpq48ccka0avdj2x5rcxm81j93dmwp70ld0zws8p"; + rev = "d976e4f0cadb2309b798540429558936f8f45889"; + sha256 = "1qlgd5i8jngsq754jm44gb46p5y6j2cccacg72aklvwajay0adyh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/503845e79e67c921f1fde31447f3dd4da2b6f993/recipes/langtool"; @@ -19983,12 +21590,12 @@ latex-extra = callPackage ({ auctex, cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "latex-extra"; - version = "1.13"; + version = "1.14"; src = fetchFromGitHub { owner = "Malabarba"; repo = "latex-extra"; - rev = "d5b759fa61da968c3ca998ba0d2ef4a73647e5fd"; - sha256 = "07aavdr1dlw8hca27l8a0i8cs5ga1wqqdf1v1iyvjz61vygld77a"; + rev = "82d99b8b0c2db20e5270749582e03bcc2443ffb5"; + sha256 = "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/latex-extra"; @@ -20096,8 +21703,8 @@ sha256 = "12q6wblwnb6y5c1882jz14742fqbm6p5jpzlvz7p90ylqfl7h989"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/851eca11911b337f809d030785dc2608c8a47424/recipes/ledger-mode"; - sha256 = "19vljgprgfpb9bkbdvkqnwc5pjn1rl0rniwav08a2c6kd2g59xaf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1549048b6f57fbe9d1f7fcda74b78a7294327b7b/recipes/ledger-mode"; + sha256 = "10asbcb5syv3b75bngsab3c84dp2xmc0q7s29im6kf4mzv5zcfcf"; name = "ledger-mode"; }; packageRequires = []; @@ -20172,12 +21779,12 @@ lfe-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "lfe-mode"; - version = "1.2.1"; + version = "1.3"; src = fetchFromGitHub { owner = "rvirding"; repo = "lfe"; - rev = "d722d3662b191b61310dc9bba78f9a77f512b742"; - sha256 = "0j5gjlsk92y14kxgvd80q9vwyhmjkphpzadcswyjxikgahwg1avz"; + rev = "af14b1439097850ffa39935419ed83f5bcaa6d09"; + sha256 = "0pgwi0h0d34353m39jin8dxw4yykgfcg90k6pc4qkjyrg40hh4l6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c44bdb00707c9ef90160e0a44f7148b480635132/recipes/lfe-mode"; @@ -20494,12 +22101,12 @@ live-py-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "live-py-mode"; - version = "2.14.0"; + version = "2.18.1"; src = fetchFromGitHub { owner = "donkirkby"; repo = "live-py-plugin"; - rev = "51b1e177f115ab527cc47baf98abe09d43d9a95f"; - sha256 = "0rcxrq3r4vbr9zb844andy1zj246gs8s1ksqp1f092fiiyqpllnx"; + rev = "145d21d65b5469e682ef464ae8f4e0e3d8c0f04b"; + sha256 = "1h188cprka13bd1prfj1w86m5z8c1nfaz4dw18g88jf6b0gyazhz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7615237e80b46b5c50cb51a3ed5b07d92566fb7/recipes/live-py-mode"; @@ -20512,6 +22119,47 @@ license = lib.licenses.free; }; }) {}; + lively = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "lively"; + version = "0.2"; + src = fetchFromGitHub { + owner = "purcell"; + repo = "lively"; + rev = "6ec648fcde85e81393db1ed1364860f960179c92"; + sha256 = "06sdaj2akwjg1a7yvmm3gsip66iaq9bhm3gr45szwg6z622q4gvf"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3e4b01286dbc84f01b43955b693ca08e675ffa07/recipes/lively"; + sha256 = "1q8cbl3sr3dpvzk57985giy4xmz4lvg94jcw7shbhz1v9q05dr5g"; + name = "lively"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/lively"; + license = lib.licenses.free; + }; + }) {}; + lms = callPackage ({ emacs, fetchhg, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "lms"; + version = "0.7"; + src = fetchhg { + url = "https://bitbucket.com/inigoserna/lms.el"; + rev = "f07ac3678e27"; + sha256 = "15l3nfrddblfzqxgvf0dmmsk4h5l80l6r2kgxcfk8s01msjka3sl"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b8be8497494b8543a8257c9ea92444baf7674951/recipes/lms"; + sha256 = "1ckrh6qbh5y2y3yzl2iyq8nqlpy4qp6vzc72ijcgayvcflb01vr1"; + name = "lms"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/lms"; + license = lib.licenses.free; + }; + }) {}; load-relative = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "load-relative"; @@ -20620,12 +22268,12 @@ logview = callPackage ({ datetime, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "logview"; - version = "0.8"; + version = "0.8.2"; src = fetchFromGitHub { owner = "doublep"; repo = "logview"; - rev = "b5cafd1145f22e7beff8ef8ed742bf10af1e6e1c"; - sha256 = "08is4fg94a6am7c2j0d5qd1nkrnik5vpzg3pqkimyxgy5czj764b"; + rev = "72b6c5349206172a146b2c730b8ac040a92ebc3f"; + sha256 = "1f93iyxf8v0jazzh6jljrm7r28z00nn14wr90qrh9y9chyq72n63"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1df3c11ed7738f32e6ae457647e62847701c8b19/recipes/logview"; @@ -20659,22 +22307,22 @@ license = lib.licenses.free; }; }) {}; - love-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + love-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, lua-mode, melpaBuild }: melpaBuild { pname = "love-minor-mode"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "ejmr"; repo = "love-minor-mode"; - rev = "1634ff3a8b657c63a5cffd9a937812a289f2c954"; - sha256 = "11y5jyq4xg9zlm1qi2y97nh05vhva9pai9yyr4x2pr41xz3s8fpk"; + rev = "3ca8f3405338f2d6f4fbcdd5e89342a46378543a"; + sha256 = "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0f224c4c7519b3668b1270c957227e486896b7b6/recipes/love-minor-mode"; sha256 = "1skg039h2hn8dh47ww6n9l776s2yda8ariab4v9f56kb21bncr4m"; name = "love-minor-mode"; }; - packageRequires = []; + packageRequires = [ lua-mode ]; meta = { homepage = "https://melpa.org/#/love-minor-mode"; license = lib.licenses.free; @@ -20722,6 +22370,27 @@ license = lib.licenses.free; }; }) {}; + mac-pseudo-daemon = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mac-pseudo-daemon"; + version = "2.1"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "mac-pseudo-daemon"; + rev = "4d10e327cd8ee5bb7f006d68744be21c7097c1fc"; + sha256 = "0rjdjddlkaps9cfyc23kcr3cdh08c12jfgkz7ca2j141mm89pyp2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/mac-pseudo-daemon"; + sha256 = "12fwrcnwzsfms42rzv4wif5yzx3gnsz8yzdcgkpl37kkx85iy8v0"; + name = "mac-pseudo-daemon"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/mac-pseudo-daemon"; + license = lib.licenses.free; + }; + }) {}; macro-math = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "macro-math"; @@ -20769,14 +22438,14 @@ pname = "magic-filetype"; version = "0.2.1"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "magic-filetype.el"; rev = "0dfe3d9e0e22c7b06e34c8338f110e337306e3fd"; sha256 = "1yjn2w0ykczhlj4q3dnfw2z4q66201dn3jz31yw7hh8bxjlsvwfh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0d6027c5a66386f7140305a4cde12d66da4dfa09/recipes/magic-filetype"; - sha256 = "0gcys45cqn5ghppkn0rmyvfybprlfz1x6hqr21yv93mf79h75zhg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/magic-filetype"; + sha256 = "0f0j8fgh2gpkarz9308pns0d89wc2dchyim6hbixkdpqzg9gskc3"; name = "magic-filetype"; }; packageRequires = [ emacs s ]; @@ -20788,12 +22457,12 @@ magit = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, git-commit, lib, magit-popup, melpaBuild, with-editor }: melpaBuild { pname = "magit"; - version = "2.10.3"; + version = "2.11.0"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e"; - sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc"; + rev = "4ad2ebfef0afa7e5f5fb85e8d1146da613804fe5"; + sha256 = "1zvib46hn2c0g2zdnf4vcwjrs9dj5sb81hpqm7bqm8f97p9dv6ym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/68bb049b7c4424345f5c1aea82e950a5e47e9e47/recipes/magit"; @@ -20816,12 +22485,12 @@ magit-annex = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-annex"; - version = "1.3.1"; + version = "1.4.0"; src = fetchFromGitHub { owner = "magit"; repo = "magit-annex"; - rev = "ae6250aead8f283eac8d6951a249cfc7d85e0b40"; - sha256 = "0n6dhc92z5w67rcfngjzprzbdn42ja263gdqa7fncqq9p66slccq"; + rev = "895c229c2b0d822a4debb302d8638105ecb4ee20"; + sha256 = "0316csgc95dalqmkxj6qlb7inzcg4csfs9n3im1ygswcswpdaajh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/magit-annex"; @@ -20921,12 +22590,12 @@ magit-gitflow = callPackage ({ fetchFromGitHub, fetchurl, lib, magit, magit-popup, melpaBuild }: melpaBuild { pname = "magit-gitflow"; - version = "2.2.1"; + version = "2.2.3"; src = fetchFromGitHub { owner = "jtatarik"; repo = "magit-gitflow"; - rev = "a2b7b85134784317445faee13d647fb62401ea23"; - sha256 = "1m6hnds12gpj66hcpaxgncapvslh0dml99r1vhg0r8rlmnmf0b9p"; + rev = "cc41b561ec6eea947fe9a176349fb4f771ed865b"; + sha256 = "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dfaeb33dec2c75d21733b6e51d063664c6544e4d/recipes/magit-gitflow"; @@ -20939,15 +22608,36 @@ license = lib.licenses.free; }; }) {}; + magit-imerge = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: + melpaBuild { + pname = "magit-imerge"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "magit"; + repo = "magit-imerge"; + rev = "1cd0fa843095f4ce8aa4eae89476c116414d060c"; + sha256 = "1h9m0miiv44az4bigg5gjgkpdgdy4hh114kavzjgjhmw5zsg6qfg"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e78a5c27eedfc9b1d79e37e8d333c5d253f31a3c/recipes/magit-imerge"; + sha256 = "0rycmbsi2s7rjqfpcv794vhkybav7d8ikzdaxai36szxpg9pzhj4"; + name = "magit-imerge"; + }; + packageRequires = [ emacs magit ]; + meta = { + homepage = "https://melpa.org/#/magit-imerge"; + license = lib.licenses.free; + }; + }) {}; magit-popup = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "magit-popup"; - version = "2.10.3"; + version = "2.11.0"; src = fetchFromGitHub { owner = "magit"; repo = "magit"; - rev = "d5b747473ab0bf0f0034fca2f57f6497d476b67e"; - sha256 = "1cw1nrgmbh0jikr88di4na3f0m643v0p7x8cf7xya2lgqwkdravc"; + rev = "4ad2ebfef0afa7e5f5fb85e8d1146da613804fe5"; + sha256 = "1zvib46hn2c0g2zdnf4vcwjrs9dj5sb81hpqm7bqm8f97p9dv6ym"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/cec5af50ae7634cc566adfbfdf0f95c3e2951c0c/recipes/magit-popup"; @@ -20963,12 +22653,12 @@ magit-rockstar = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-rockstar"; - version = "1.0.5"; + version = "1.0.6"; src = fetchFromGitHub { owner = "tarsius"; repo = "magit-rockstar"; - rev = "bccce1ac8e012f52e29470c1c7d815f9bb1a192b"; - sha256 = "0z411x2w6ldy3b8qbavfvfgvkbjd1rl0m1plr44ynp55awrhj0k2"; + rev = "a65042e3445008b55190f1258ae54bd78e12174b"; + sha256 = "1wbbg9jr9kl69sbq9b9dgwvnplmdzjyanwfcncamw3lfcjfnw1bn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7a20b539cbd38ffa546c1b56b9fac78c0b9457f6/recipes/magit-rockstar"; @@ -21023,6 +22713,27 @@ license = lib.licenses.free; }; }) {}; + magit-tbdiff = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: + melpaBuild { + pname = "magit-tbdiff"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "magit"; + repo = "magit-tbdiff"; + rev = "2e7d54d290260e5834cca06863d78fc563d7373c"; + sha256 = "07i0bnjkflgrrg246z996slzy28b2kjhhv13z0lcb72w46l935yr"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ad97eea866c8732e3adc17551d37a6d1ae511e6c/recipes/magit-tbdiff"; + sha256 = "1wydmw4f1072k8frk8mi8aaky7dndinq8n7kn10q583bjlxgw80r"; + name = "magit-tbdiff"; + }; + packageRequires = [ emacs magit ]; + meta = { + homepage = "https://melpa.org/#/magit-tbdiff"; + license = lib.licenses.free; + }; + }) {}; magit-topgit = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: melpaBuild { pname = "magit-topgit"; @@ -21044,22 +22755,22 @@ license = lib.licenses.free; }; }) {}; - magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, git-commit, lib, magit, melpaBuild, s, with-editor }: + magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, ghub-plus, lib, magit, melpaBuild, s }: melpaBuild { pname = "magithub"; - version = "0.1.2"; + version = "0.1.3"; src = fetchFromGitHub { owner = "vermiculus"; repo = "magithub"; - rev = "283bde94b3fe5cd8f4634887812c58eaf55aef60"; - sha256 = "0nd9q3x60pydigyrp7b00xgnw7pgb0plh6mry7pj1532z3xxz1d7"; + rev = "959e7b259697c79ccf46b95827575d3e15e83d30"; + sha256 = "19m7qmp5pi5l3mak1j475qxgnpr4kc4dm7qj80qc4m844bkacc4h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/magithub"; sha256 = "11par5rncsa866gazdw98d4902rvyjnnwbiwpndlyh06ak0lryab"; name = "magithub"; }; - packageRequires = [ emacs git-commit magit s with-editor ]; + packageRequires = [ emacs ghub-plus magit s ]; meta = { homepage = "https://melpa.org/#/magithub"; license = lib.licenses.free; @@ -21233,22 +22944,22 @@ license = lib.licenses.free; }; }) {}; - markdown-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + markdown-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "markdown-mode"; - version = "2.1"; + version = "2.3"; src = fetchFromGitHub { owner = "jrblevin"; repo = "markdown-mode"; - rev = "c6eb56eff31f7961c9a00a5d18eaf939c2c40b7d"; - sha256 = "098lf4n4rpx00sm07sy8dwp683a4sb7x0p15mrfp268apir3kkxb"; + rev = "cde5c5d2bcce470c494b76e23cfe1364b6291c20"; + sha256 = "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/74610ec93d4478e835f8b3b446279efc0c71d644/recipes/markdown-mode"; sha256 = "0gfb3hp87kpcrvxax3m5hsaclwwk1qmxc73cg26smzd1kjfwgz14"; name = "markdown-mode"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/markdown-mode"; license = lib.licenses.free; @@ -21278,12 +22989,12 @@ markdown-preview-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, markdown-mode, melpaBuild, uuidgen, web-server, websocket }: melpaBuild { pname = "markdown-preview-mode"; - version = "0.8"; + version = "0.9"; src = fetchFromGitHub { owner = "ancane"; repo = "markdown-preview-mode"; - rev = "65f48df07c87d37275cc6a135741df4b585f1836"; - sha256 = "0gkfwm7zxwdi7x7xd6m9sl9q1p5f2q8mxryq6cd4xldbvbcki71f"; + rev = "134fd336750b8b3165bc906f0a7161c25eb6f589"; + sha256 = "0j1jdvmn8psarjdl1j4d3rsjmnb3gcissh2l78xj2c8vckmp2g24"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d3c5d222cf0d7eca6a4e3eb914907f8ca58e40f0/recipes/markdown-preview-mode"; @@ -21324,6 +23035,27 @@ license = lib.licenses.free; }; }) {}; + markup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "markup"; + version = "2.0.1"; + src = fetchFromGitHub { + owner = "leoc"; + repo = "markup.el"; + rev = "876da2d3f23473475bb0fd0a1480ae11d2671291"; + sha256 = "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a75c955ad6b2f68b8933329e545625d948f6f8f4/recipes/markup"; + sha256 = "0yw4b42nc2n7nanqvj596hwjf0p4qc7x6g2d9g5cwi7975iak8pf"; + name = "markup"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/markup"; + license = lib.licenses.free; + }; + }) {}; markup-faces = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "markup-faces"; @@ -21348,12 +23080,12 @@ marshal = callPackage ({ eieio ? null, fetchFromGitHub, fetchurl, ht, json ? null, lib, melpaBuild }: melpaBuild { pname = "marshal"; - version = "0.7.0"; + version = "0.8.2"; src = fetchFromGitHub { owner = "sigma"; repo = "marshal.el"; - rev = "92caeddbb3c3de61707d12db62b9915e271807b7"; - sha256 = "0fajz4k3p2ki237jz0c3wfab5272fvvw9vzxzfivpmpcnws6gbn6"; + rev = "d714219aeb388ded88582c47940f2c6febae333c"; + sha256 = "1mr5p2yiad1k15byrlk0a784kj7rvibpn4li5phk4rnm0zg1xy9s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/203f2061c5c7d4aefab3175de5e0538f12158ee3/recipes/marshal"; @@ -21366,6 +23098,27 @@ license = lib.licenses.free; }; }) {}; + mastodon = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "mastodon"; + version = "0.7.0"; + src = fetchFromGitHub { + owner = "jdenen"; + repo = "mastodon.el"; + rev = "a9e595142eee69fe84f0ab06f7fde76cef27cdac"; + sha256 = "1wgx8i6ww9w99f0f62p7v626bb6pvdg04hnhqyjgsmb99wzwlpk7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/809d963b69b154325faaf61e54ca87b94c1c9a90/recipes/mastodon"; + sha256 = "1bsyf4j6zs9gin0k7p22yv5gaqd6m3vdc2fiagfbs7gxsmhb6p4i"; + name = "mastodon"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/mastodon"; + license = lib.licenses.free; + }; + }) {}; material-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "material-theme"; @@ -21495,12 +23248,12 @@ mc-extras = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, multiple-cursors }: melpaBuild { pname = "mc-extras"; - version = "1.2.1"; + version = "1.2.4"; src = fetchFromGitHub { owner = "knu"; repo = "mc-extras.el"; - rev = "71cf966be06d9c74e781a87bb30fa4cf657ee852"; - sha256 = "0252wdq4sd6jhzfy0pn3gdm6aq2h13nnp8hvrn1mpml9x473a5n1"; + rev = "f0ba639e9b18cc56e80ae45bbb2b694dbad9171a"; + sha256 = "0d6ncj6zd0lfsdpffbh3l25ycjw5hn0rwi5znp5hpl06b1ycyk4s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/12747bb8603ebc09ce0873f3317a99e34d818313/recipes/mc-extras"; @@ -21537,12 +23290,12 @@ meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }: melpaBuild { pname = "meghanada"; - version = "0.7.4"; + version = "0.8.3"; src = fetchFromGitHub { owner = "mopemope"; repo = "meghanada-emacs"; - rev = "9c97a5c23b016cd9dec3c22f626f2ec22c5035c1"; - sha256 = "1nx84c7akgjrbql9jjb4gj3j09iai8k3g3wrwam61fblqm5ckhny"; + rev = "af65a0c60bbdda051e0d8ab0b7213249eb6703c5"; + sha256 = "08sxy81arypdj22bp6pdniwxxbhakay4ndvyvl7a6vjvn38ppzw8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada"; @@ -21576,6 +23329,27 @@ license = lib.licenses.free; }; }) {}; + memoize = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "memoize"; + version = "1.1"; + src = fetchFromGitHub { + owner = "skeeto"; + repo = "emacs-memoize"; + rev = "636defefa9168f90bce6fc27431352ac7d01a890"; + sha256 = "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6cc9be5bbcff04de5e6d3bb8c47d202fd350989b/recipes/memoize"; + sha256 = "0mzz3hghnbkmxf9wgjqv3sbyxyqqzvvscazq9ybb0b41qrzm73s6"; + name = "memoize"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/memoize"; + license = lib.licenses.free; + }; + }) {}; mentor = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, seq, xml-rpc }: melpaBuild { pname = "mentor"; @@ -21600,12 +23374,12 @@ merlin = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "merlin"; - version = "2.5.3"; + version = "3.0.3"; src = fetchFromGitHub { owner = "the-lambda-church"; repo = "merlin"; - rev = "89f9643c08211a770454919551a7fd8605d1fca8"; - sha256 = "13x0zjd297ssqmbvba32zk2p588kznd5ag4wh3nqb6fdgyzy4d63"; + rev = "a5dbf8e321ff162476555e62264468dd6f55c279"; + sha256 = "0mq4ddr3g64dd4bhq812hb5xvlkswfmib1nw34f3m8sghmaxcd5z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b1b9bfd3164e62758dc0a3362d85c6627ed7cbf8/recipes/merlin"; @@ -21618,36 +23392,57 @@ license = lib.licenses.free; }; }) {}; - metafmt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + meson-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "metafmt"; - version = "0.0.3"; + pname = "meson-mode"; + version = "0.1"; src = fetchFromGitHub { - owner = "lvillani"; - repo = "metafmt"; - rev = "bd20fc67d0affd48c1199315b7da06a7182e7d76"; - sha256 = "0n4nv1s25z70xfy3bl1wy467abz3agj4qmpx4rwdwzbarnqp9ps3"; + owner = "wentasah"; + repo = "meson-mode"; + rev = "212d9f38a08074f1cb6e914e12b60bc52dcb8bee"; + sha256 = "1kv7413y5530frs1nrp0nl40h9j0idwp7vlg761r260200m8sl3v"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/7a53f740fb7a58cd6339b301d0de8c543b61f6a5/recipes/metafmt"; - sha256 = "1ca102al7r3k2g92b4jkqv53crnmxy3z7cz31w1rprf41s69mn75"; - name = "metafmt"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/4702a31ffd6b9c34f96d151f2611a1bfb25baa88/recipes/meson-mode"; + sha256 = "16yg217ghx6pvlxha2swznkg12c2a9hhyi0hnsbqdj2ijcdzca80"; + name = "meson-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/meson-mode"; + license = lib.licenses.free; + }; + }) {}; + meta-presenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "meta-presenter"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "myTerminal"; + repo = "meta-presenter"; + rev = "7ba8d30e36ce6de6e563c7f3a41a24d288787c48"; + sha256 = "0m23qsbai8j0bx0px7v3ipw92i4y8maxibna6zqrw3msv1j3s7cw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b73e9424515b3ddea220b786e91c57ee22bed87f/recipes/meta-presenter"; + sha256 = "0f70cfa91wavchlx8d9hdlgq90cmnylhbg2dbw603rzjkyvslp5d"; + name = "meta-presenter"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/metafmt"; + homepage = "https://melpa.org/#/meta-presenter"; license = lib.licenses.free; }; }) {}; metaweblog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, xml-rpc }: melpaBuild { pname = "metaweblog"; - version = "0.1.1"; + version = "1.0.0"; src = fetchFromGitHub { owner = "punchagan"; repo = "metaweblog"; - rev = "c8b50a6edf0fd2f396570c9a1c2ef8cd207606fb"; - sha256 = "06mbdb4zb07skq1jpv05hr45k5x96d9hgkb358jiq0kfsqlrbbb4"; + rev = "2200eacde17edb66bbdde9c0b6b65481f40d498b"; + sha256 = "116m0v73v636xvsq46i3qhd4wy3x7zk3k8ffmsx36ksphn9kwx0k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/metaweblog"; @@ -21702,27 +23497,6 @@ license = lib.licenses.free; }; }) {}; - mic-paren = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "mic-paren"; - version = "3.10"; - src = fetchFromGitHub { - owner = "emacsmirror"; - repo = "mic-paren"; - rev = "e4cf6e1a0ee91e849a9d42ecdcd6ed0287f8a521"; - sha256 = "1cdjpqrsv2vhpdmv67krsds7wz19z9ajkabawr3yhxqii4myl4ik"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f/recipes/mic-paren"; - sha256 = "042dzp0nal18nxq94qlwwksh0nnypsyc0yykmc6l3kayp9pv4hw7"; - name = "mic-paren"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/mic-paren"; - license = lib.licenses.free; - }; - }) {}; migemo = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "migemo"; @@ -22040,12 +23814,12 @@ modalka = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "modalka"; - version = "0.1.4"; + version = "0.1.5"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "modalka"; - rev = "95627e660768c7ab7af4d8ad35c2bc0c4fa7195b"; - sha256 = "0yf5lwd95j55dkrkplsgnynq37ww0g97vw517j9q7spn7dqnq5f6"; + rev = "1259afa084f58d143d133aac56a6c0c10bc460f2"; + sha256 = "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/fa0a02da851a603b81e183f461da55bf4c71f0e9/recipes/modalka"; @@ -22145,12 +23919,12 @@ monokai-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "monokai-theme"; - version = "3.3.0"; + version = "3.4.0"; src = fetchFromGitHub { owner = "oneKelvinSmith"; repo = "monokai-emacs"; - rev = "46fe076b5943ccc6fdc9cdacc7e8ad02b64bcd36"; - sha256 = "03aw9ab54a5fljhwygg62hr2n9kk82xfwcdq17ln5z0951gqi99r"; + rev = "019e07947426f0192fc3458f3f72c19031b607de"; + sha256 = "0id35345zp0fchbcz8qk2lg71jyln91k56vfama27ss3nzy3f9kz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2bc9ce95a02fc4bcf7bc7547849c1c15d6db5089/recipes/monokai-theme"; @@ -22229,12 +24003,12 @@ move-dup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "move-dup"; - version = "0.2.1"; + version = "1.0.0"; src = fetchFromGitHub { owner = "wyuenho"; repo = "move-dup"; - rev = "4df67072eebac69d6be7619335b03f56f9960235"; - sha256 = "01mdy7sps0xryz5gfpl083rv7ixkxs2rkz5yaqjlam2rypdcsyy2"; + rev = "dae61de7aa5e2bf56a7bab1fa36fa3a39520a3c0"; + sha256 = "1mrrxx2slxi1qgf483nnxv3y8scfsc844sfnzn4b7hjpfpali0r8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3ea1f7f015a366192492981ff75672fc363c6c18/recipes/move-dup"; @@ -22250,12 +24024,12 @@ move-text = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "move-text"; - version = "2.0.5"; + version = "2.0.8"; src = fetchFromGitHub { owner = "emacsfodder"; repo = "move-text"; - rev = "58f66f9b62af776a6c3ebe1151b038b59b2c12d4"; - sha256 = "03rkqv8l98ximfw33972y2lsqzjvbdv9kvz38i9p8iva56cmkbki"; + rev = "bdaf3e3a0d33cd528cad1d10facbdf0635232e4d"; + sha256 = "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/82bfd0f41e42eed1d4c2361ec1d1685edebbac1b/recipes/move-text"; @@ -22271,12 +24045,12 @@ mowedline = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mowedline"; - version = "3.1.0"; + version = "3.2.0"; src = fetchFromGitHub { owner = "retroj"; repo = "mowedline"; - rev = "67ca629b4bc3063ea19a7fccc693432a4eb10021"; - sha256 = "0i06ms5m7qhv2m1mmgzqh73j9wz3nxygz65p6vsnicxas09w70rd"; + rev = "832e81b7f90f6c2e753f89737c0b57a260544424"; + sha256 = "1ll0ywrzpc5ignddgri8xakf93q1rg8zf7h23hfv8jiiwv3240w5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/86f7df6b8df3398ef476c0ed31722b03f16b2fec/recipes/mowedline"; @@ -22376,12 +24150,12 @@ msvc = callPackage ({ ac-clang, cedet ? null, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "msvc"; - version = "1.3.0"; + version = "1.3.5"; src = fetchFromGitHub { owner = "yaruopooner"; repo = "msvc"; - rev = "71c38323187c98b32250b89088768599bb216ddb"; - sha256 = "1wwa861a8bnrqv59bx6l5k3qi98wqv6cicvg5gjyx8rdvpcq28dg"; + rev = "bb9af3aee0e82d6a78a49a9af61ce47fab32d577"; + sha256 = "1vxgdc19jiamymrazikdikdrhw5vmzanzr326s3rx7sbc2nb7lrk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/69939b85353a23f374cab996ede879ab315a323b/recipes/msvc"; @@ -22418,12 +24192,12 @@ mu4e-alert = callPackage ({ alert, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: melpaBuild { pname = "mu4e-alert"; - version = "0.4"; + version = "1.0"; src = fetchFromGitHub { owner = "iqbalansari"; repo = "mu4e-alert"; - rev = "75ee79ed663bde0bd52f09c5b444cbd9e13a738a"; - sha256 = "09sywhf1g8yqadzp19djar2gm3fmilqi3pbdm0hvm9b7xpq1gg44"; + rev = "3453e25ff6c07c1b768b2a79fdb9fc5c97100e76"; + sha256 = "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/mu4e-alert"; @@ -22562,6 +24336,27 @@ license = lib.licenses.free; }; }) {}; + mustache = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: + melpaBuild { + pname = "mustache"; + version = "0.23"; + src = fetchFromGitHub { + owner = "Wilfred"; + repo = "mustache.el"; + rev = "b0ea352813592424164520a49e86c04600242752"; + sha256 = "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d1bcf9599ca6d2c29333071a80f96808d4ab52e2/recipes/mustache"; + sha256 = "1pjr00xx77mlfw1myxaz6i3y2gbivhbiq5hyjxxbjlfrkm1vxc8g"; + name = "mustache"; + }; + packageRequires = [ dash ht s ]; + meta = { + homepage = "https://melpa.org/#/mustache"; + license = lib.licenses.free; + }; + }) {}; mustache-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "mustache-mode"; @@ -22646,6 +24441,27 @@ license = lib.licenses.free; }; }) {}; + myterminal-controls = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "myterminal-controls"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "myTerminal"; + repo = "myterminal-controls"; + rev = "59ff3a02e34969a2ac608906937cb65cb514f9f1"; + sha256 = "11b0m09n1qqhjbdmcilb1g1408k17700qn37m3wavjrcjvdhnd5n"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4a82a45d9fcafea0795f832bce1bdd7bc83667e2/recipes/myterminal-controls"; + sha256 = "0ipk5s2whf3l68q0dydm1j6rcb6jhk61hgjwxygdphifvih7c5y2"; + name = "myterminal-controls"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/myterminal-controls"; + license = lib.licenses.free; + }; + }) {}; name-this-color = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "name-this-color"; @@ -22880,12 +24696,12 @@ neon-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "neon-mode"; - version = "1.0.2"; + version = "1.2.2"; src = fetchFromGitHub { owner = "Fuco1"; repo = "neon-mode"; - rev = "370212fa9ffcba3ff542a154d17ccf5be1066c4c"; - sha256 = "13a760jidh00czl05c0pnpbxzr7smrkf5ms9kd3h1cq613ffapby"; + rev = "044040df9e83a015ddfe58940b503b6197fc29ce"; + sha256 = "0cxfn1v3jww8ih4yn77jw4lp8kjlc19m2vffwm8jli0dg8fzrfqa"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c6b2a4898bf21413c4d9e6714af129bbb0a23e1a/recipes/neon-mode"; @@ -22898,22 +24714,22 @@ license = lib.licenses.free; }; }) {}; - neotree = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + neotree = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "neotree"; - version = "0.5.1"; + version = "0.5.2"; src = fetchFromGitHub { owner = "jaypei"; repo = "emacs-neotree"; - rev = "d2ae6ac8a919f164f34c589f2f46ddd140a79f81"; - sha256 = "0xqcrxmpk2z4pd9scqn2nannqy0a76mkkqv9bz037a36w8v481nd"; + rev = "5e1271655170f4cdc6849258e383c548a4e6e3d0"; + sha256 = "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9caf2e12762d334563496d2c75fae6c74cfe5c1c/recipes/neotree"; sha256 = "05smm1xsn866lsrak0inn2qw6dvzy24lz6h7rvinlhk5w27xva06"; name = "neotree"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/neotree"; license = lib.licenses.free; @@ -22922,12 +24738,12 @@ nginx-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nginx-mode"; - version = "1.1.7"; + version = "1.1.9"; src = fetchFromGitHub { owner = "ajc"; repo = "nginx-mode"; - rev = "b58708d15a6659577945c0aa3a63983eebff2e67"; - sha256 = "0y2wwgvm3495h6hms425gzgi3qx2wn33xq6b7clrvj4amfy29qix"; + rev = "a2bab83c2eb233d57d76b236e7c141c2ccc97005"; + sha256 = "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a6da3640b72496e2b32e6ed21aa39df87af9f7f3/recipes/nginx-mode"; @@ -22961,15 +24777,36 @@ license = lib.licenses.free; }; }) {}; + nim-mode = callPackage ({ commenter, emacs, epc, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild }: + melpaBuild { + pname = "nim-mode"; + version = "0.4.1"; + src = fetchFromGitHub { + owner = "nim-lang"; + repo = "nim-mode"; + rev = "86abed21b9b718ac65cc167f208e0bd5b92c79ed"; + sha256 = "0h1paf9z6xvkay97ns74w2w9plwi46md5f2kik4jvjy74p57gxal"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/dc2ccb5f24b9d55c77eaa7952a9e6a2e0ed7be24/recipes/nim-mode"; + sha256 = "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6"; + name = "nim-mode"; + }; + packageRequires = [ commenter emacs epc flycheck let-alist ]; + meta = { + homepage = "https://melpa.org/#/nim-mode"; + license = lib.licenses.free; + }; + }) {}; ninja-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ninja-mode"; - version = "1.7.2"; + version = "1.8.2"; src = fetchFromGitHub { owner = "martine"; repo = "ninja"; - rev = "717b7b4a31db6027207588c0fb89c3ead384747b"; - sha256 = "1pc4sr50wknwai33lqm92bm811yzvpyrvry9419p7wp3r6p3nmhw"; + rev = "253e94c1fa511704baeb61cf69995bbf09ba435e"; + sha256 = "16scq9hcq6c5ap6sy8j4qi75qps1zvrf3p79j1vbrvnqzp928i5f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/aed2f32a02cb38c49163d90b1b503362e2e4a480/recipes/ninja-mode"; @@ -22985,12 +24822,12 @@ nix-buffer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nix-buffer"; - version = "3.0.0"; + version = "3.0.1"; src = fetchFromGitHub { owner = "shlevy"; repo = "nix-buffer"; - rev = "89d30002eddcc33c5c74dcc871a97aee0228d403"; - sha256 = "0pz1p8mdk988x4k41qi3j8rf6g33gj6lx4dm9sgfyzgzi9ixyma8"; + rev = "749f48b510d0fd47dac67850f4089119fbff142a"; + sha256 = "1iav1s2vc2ivkah9v42961vpk74z8961ybyxq0cnswzjb1xi5n25"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/08b978724ff26b3ea7a134d307d888c80e2a92a9/recipes/nix-buffer"; @@ -23003,22 +24840,22 @@ license = lib.licenses.free; }; }) {}; - nix-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + nix-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nix-mode"; - version = "1.11.8"; + version = "1.2.1"; src = fetchFromGitHub { owner = "NixOS"; - repo = "nix"; - rev = "206b61b07405229979ed9a1518da1560930d05ee"; - sha256 = "1qlddlzkpavhsrb7h3cyqhif5qc2qhkhjwnv4pbzg9hamqbd45wc"; + repo = "nix-mode"; + rev = "d5e839692a1273b128003eaed543318e7e5965a7"; + sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/f2b542189cfde5b9b1ebee4625684949b6704ded/recipes/nix-mode"; - sha256 = "00rqawi8zs2x79c91gmk0anfyqbwalvfwmpak20i11lfzmdsza1s"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode"; + sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5"; name = "nix-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/nix-mode"; license = lib.licenses.free; @@ -23048,16 +24885,16 @@ no-littering = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "no-littering"; - version = "0.5.6"; + version = "0.5.11"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "no-littering"; - rev = "0227c5eea5b9f3fb056a7ef6052ef6f076371bde"; - sha256 = "0hjb2paylmcc68998cqgfdnw79z43ha5bv1cg91ysbdjcx2lp1x7"; + rev = "a4b42b185b65e78bc3bb6523e23aefb1213eb3b2"; + sha256 = "1yzcawvz3vbq6pgr0b3sk0qg24jx1fpkinwcmsdl283ib8msbc7g"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/cf5d2152c91b7c5c38181b551db3287981657ce3/recipes/no-littering"; - sha256 = "129nyml8jx3nwdskcr2favbi3x6f74dblc6yw8vijw32w8z14k2l"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering"; + sha256 = "15w784ir48v8biiaar8ip19s9y3wn5831m815kcw02mgzy3bfjmh"; name = "no-littering"; }; packageRequires = [ cl-lib ]; @@ -23090,12 +24927,12 @@ nodejs-repl = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nodejs-repl"; - version = "0.1.1"; + version = "0.1.6"; src = fetchFromGitHub { owner = "abicky"; repo = "nodejs-repl.el"; - rev = "d821ef49a8eae0e405fd2a000246f0475542a575"; - sha256 = "1fwz6wpair617p9l2wdx923zpbbklfcdrygsryjx5gpnnm649mmy"; + rev = "16770656a4072f8fbbd29d0cace4893a3d5541b1"; + sha256 = "1hcvi4nhgfrjalq8nw20kjjpcf4xmjid70qpqdv8dsgfann5i3wl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14f22f97416111fcb02e299ff2b20c44fb75f049/recipes/nodejs-repl"; @@ -23111,12 +24948,12 @@ nord-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nord-theme"; - version = "0.2.0"; + version = "0.3.0"; src = fetchFromGitHub { owner = "arcticicestudio"; repo = "nord-emacs"; - rev = "a49113a0808ef53d066068e227d3d5a4d7f0ad44"; - sha256 = "04jj25h1infivqdvcgq0cbc96y2rj2c23y6vw6yh73x4kyynzvcc"; + rev = "290aa9221a10e107acb0f06d0ec338fcb3e44785"; + sha256 = "0az5l8y3jg6yk587wvgz1v5671d8p1vf9m0529x9axi1x7yzxry1"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/31cb60069825abe3998c8b43bc9177b39a7f3659/recipes/nord-theme"; @@ -23150,11 +24987,11 @@ }) {}; notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { pname = "notmuch"; - version = "0.24.1"; + version = "0.25.1"; src = fetchgit { url = "git://git.notmuchmail.org/git/notmuch"; - rev = "e64fdf889d0f78543557f5b72ebca1571caf497e"; - sha256 = "0vappcyidhzka2za6zqlcygn90a1xm9xrhpr9gvdp258m8qhz6d1"; + rev = "949c27144e0b9294267511993a109c29d319a23d"; + sha256 = "088f6f5696v8zrgbipshns6gla4zmfpj8n4jm66slgip9fcrbpvb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch"; @@ -23188,6 +25025,27 @@ license = lib.licenses.free; }; }) {}; + nov = callPackage ({ dash, emacs, esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "nov"; + version = "0.2.1"; + src = fetchFromGitHub { + owner = "wasamasa"; + repo = "nov.el"; + rev = "19ab463864f137b43704b4f34173349c88e84d8e"; + sha256 = "00f5hhw157nwdwy26yn6l3z2hgk6xxvx5xl0hasskj1l9rg0zgh2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/cf543955ba2d5d0074fa2a5ba176f9415f6e006d/recipes/nov"; + sha256 = "0hlcncpdazi4rn5yxd0zq85v7gpjhw7a6dl2i99zf4ymsan97lhq"; + name = "nov"; + }; + packageRequires = [ dash emacs esxml ]; + meta = { + homepage = "https://melpa.org/#/nov"; + license = lib.licenses.free; + }; + }) {}; noxml-fold = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "noxml-fold"; @@ -23293,6 +25151,27 @@ license = lib.licenses.free; }; }) {}; + numbers = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "numbers"; + version = "1.4"; + src = fetchFromGitHub { + owner = "davep"; + repo = "numbers.el"; + rev = "74be68b94143f042ce461b2a69202f515acaf20c"; + sha256 = "0b4bgc4hkndia8zg4d23l1w78iwzj1l46ifrhz5z1p97qldalb0x"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5c77353d3a2b0d360bb28e528ef2707227081c72/recipes/numbers"; + sha256 = "02cx19fi34yvc0icajnwrmb8lr2g8y08kis08v9xxalfxz06kb3h"; + name = "numbers"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/numbers"; + license = lib.licenses.free; + }; + }) {}; nvm = callPackage ({ dash, dash-functional, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "nvm"; @@ -23317,12 +25196,12 @@ nyan-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "nyan-mode"; - version = "1.1.1"; + version = "1.1.2"; src = fetchFromGitHub { owner = "TeMPOraL"; repo = "nyan-mode"; - rev = "b5db3a612bba35c8f54f44c300ebc879db6b3288"; - sha256 = "199ii1658k4sp5krha77n9l5jblyvnvvvr28g2nbc74lfybckjwq"; + rev = "4195cd368aca8f05a71cbff4e60cfa9dde10319a"; + sha256 = "1bnfxw6cnhsqill3n32j9bc6adl437ia9ivbwvwjpz1ay928yxm7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4d8c3000df5f2ee2493a54dee6f9b65008add753/recipes/nyan-mode"; @@ -23335,27 +25214,6 @@ license = lib.licenses.free; }; }) {}; - nyan-prompt = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "nyan-prompt"; - version = "0.2.0"; - src = fetchFromGitHub { - owner = "PuercoPop"; - repo = "nyan-prompt"; - rev = "b5137f2ee9afe640f59786eed17b308df6356c73"; - sha256 = "0bgspjy8h3d7v12sfjnd2ghj4183pdf0z48g5xs129jwd3nycykp"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/2e3bf5fe2adaf557146df6f4e13aa6ffedb5d1e3/recipes/nyan-prompt"; - sha256 = "1s0qyhpfpncsv9qfxy07rbp4gv8pp5xzb48rbd3r14nkjlnylnfb"; - name = "nyan-prompt"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/nyan-prompt"; - license = lib.licenses.free; - }; - }) {}; o-blog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "o-blog"; @@ -23377,15 +25235,36 @@ license = lib.licenses.free; }; }) {}; + ob-blockdiag = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-blockdiag"; + version = "20170728.113"; + src = fetchFromGitHub { + owner = "corpix"; + repo = "ob-blockdiag.el"; + rev = "634fcf64a4ae735afe7001d865b03f5d71e23046"; + sha256 = "0xr3bv4wxz13b1grfyl2qnrszzab3n9735za837nf4lxh527ksaj"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/261b77a3fd07644d1c250b16857de70cc1bbf478/recipes/ob-blockdiag"; + sha256 = "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g"; + name = "ob-blockdiag"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-blockdiag"; + license = lib.licenses.free; + }; + }) {}; ob-http = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "ob-http"; - version = "0.1.0"; + version = "0.2.0"; src = fetchFromGitHub { owner = "zweifisch"; repo = "ob-http"; - rev = "9155a413e41d918042e9839399e3940aa0f8499c"; - sha256 = "1b39g0nifw0000s0x8ir0cfr716jypq6b5n2l1i4mrby6aw3bw1k"; + rev = "20393dd8130d21a3f06d8514da14c5ffdd88ae44"; + sha256 = "0xa7rgsb0d1d96h5bb0n0sy1hgmd2fg6r6g2aqp1c29ld4hpi7r7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/950b02f76a04f453992b8720032e8c4cec9a039a/recipes/ob-http"; @@ -23503,15 +25382,36 @@ license = lib.licenses.free; }; }) {}; + ob-uart = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ob-uart"; + version = "0.1.0"; + src = fetchFromGitHub { + owner = "andrmuel"; + repo = "ob-uart"; + rev = "90daeac90a9e75c20cdcf71234c67b812110c50e"; + sha256 = "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5334f1a48b8ea6b7a660db27910769093c76113d/recipes/ob-uart"; + sha256 = "1dkbyk8da0zw784dgwi8njnz304s54341dyfzvlb0lhcn41dmkz7"; + name = "ob-uart"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ob-uart"; + license = lib.licenses.free; + }; + }) {}; obfusurl = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "obfusurl"; - version = "2.0"; + version = "2.1"; src = fetchFromGitHub { owner = "davep"; repo = "obfusurl.el"; - rev = "fb7524fe8432bf58f0c4f637e5a12565ae81134e"; - sha256 = "15w8cnwl4hpcslfbmb3j81gbr2dvp0xra2z841503b26s5w91961"; + rev = "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5"; + sha256 = "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/201fe11682cb06b26775a52c81b6a1258b74b4d0/recipes/obfusurl"; @@ -23548,12 +25448,12 @@ ocp-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ocp-indent"; - version = "1.6.0"; + version = "1.6.1"; src = fetchFromGitHub { owner = "OCamlPro"; repo = "ocp-indent"; - rev = "032599b162624a4b65c82c20be06433f24b00e8f"; - sha256 = "1h9y597s3ag8w1z32zzv4dfk3ppq557s55bnlfw5a5wqwvia911f"; + rev = "5d83bc71d12c89850cb0fdff50d4830adb705b6c"; + sha256 = "0rcaa11mjqka032g94wgw9llqpflyk3ywr3lr6jyxbh1rjvnipnw"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e1af061328b15360ed25a232cc6b8fbce4a7b098/recipes/ocp-indent"; @@ -23611,12 +25511,12 @@ olivetti = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "olivetti"; - version = "1.5.6"; + version = "1.5.8"; src = fetchFromGitHub { owner = "rnkn"; repo = "olivetti"; - rev = "de2716cfb1f4dc82a08093cdd00200e9bb1f07ef"; - sha256 = "0gfjrfhmjvq2zkyp0bgxymdv6r7p4x40aicvv1r61z29nz4dbyn2"; + rev = "9bd41082a593ba90f3e9e34d3ffc29bbb276b674"; + sha256 = "0j33wn2kda5fi906h6y0zd5d0ygw0jg576kdndc3zyb4pxby96dn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/697334ca3cdb9630572ae267811bd5c2a67d2a95/recipes/olivetti"; @@ -23632,12 +25532,12 @@ omni-kill = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "omni-kill"; - version = "0.2.3"; + version = "0.6.0"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-kill.el"; - rev = "8a1145b58b4736c9163bcd5b28c8fea80b2ea97b"; - sha256 = "07grj81alrr6qgs3jmqkjzphkvi26w6jm5hf1f5wyx7h6q293ady"; + rev = "904549c8fd6ac3cf22b5d7111ca8944e179cffea"; + sha256 = "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c24df34d2fa5d908223379e909148423ba327ae2/recipes/omni-kill"; @@ -23653,12 +25553,12 @@ omni-log = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }: melpaBuild { pname = "omni-log"; - version = "0.1.2"; + version = "0.3.6"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-log.el"; - rev = "7eb30e42cc89064abb7acbec63cb9644c2ad7c9b"; - sha256 = "030f983n19n64f8irif102nncvam04xpx020vfgja9886wlj40pk"; + rev = "20021eb788cbeec0371145468430b259686f519d"; + sha256 = "1sf2zbhjaz5b9xmz6632338cga7d326ibgw8b8c6c6b4vk16yhqc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/47bb19bb7b4713c3fd82c1035a2fe66588c069e3/recipes/omni-log"; @@ -23674,12 +25574,12 @@ omni-quotes = callPackage ({ dash, f, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, omni-log, s }: melpaBuild { pname = "omni-quotes"; - version = "0.3.0"; + version = "0.5.0"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-quotes.el"; - rev = "be1e719c046ca468275ed844989320f48358f2cd"; - sha256 = "0sc4mhvxj91rs4h1vg3x759fq77cmlzkqyn5wv456w3w3g2narxw"; + rev = "454116c1dd6581baaeefd6b9310b1b6b7a5c36d0"; + sha256 = "1h8lrpi5wizi5vncdz83cxlx7c71xw3sw89sfg462zfbz2sq8afl"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3402524f79381c99fdeb81a6a5a9241c918811be/recipes/omni-quotes"; @@ -23695,12 +25595,12 @@ omni-scratch = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "omni-scratch"; - version = "0.4.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "AdrieanKhisbe"; repo = "omni-scratch.el"; - rev = "0da549c1386f93ed4de201bf8779ba64ddc91347"; - sha256 = "0qfi54z2jqrkrdzriandwc9myzc27sxsx7nf20jf5qvcdgn13cl1"; + rev = "636374c59c7d33c2f72c97ad8ba9fb4854f2324d"; + sha256 = "0w62bk2m0gs4b605s691z4iap9baz1z6c8z4v9vb05917qlsx5xb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6ba3e128a7fe4476d82266506b18ba9984c37944/recipes/omni-scratch"; @@ -23734,19 +25634,19 @@ license = lib.licenses.free; }; }) {}; - omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, fetchFromGitHub, fetchurl, flycheck, json ? null, lib, melpaBuild, popup, s, shut-up }: + omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, s, shut-up }: melpaBuild { pname = "omnisharp"; - version = "3.9"; + version = "4.1"; src = fetchFromGitHub { owner = "OmniSharp"; repo = "omnisharp-emacs"; - rev = "93c188938305533ea34ceca51dd53c7841598ada"; - sha256 = "0ynjxf0r9i5yb98pnhrcm55shhv4gqfr0wigfkz83yqzpsjzq6fn"; + rev = "906e29a702237f039f24c215fdb561a728a3df1b"; + sha256 = "1l1rzl7y5j2wmlgx7ivivwvwvbn4h7pg5s7yqsk65n9kb59ha8s8"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/68bdb7e0100e120b95e9416398127d83530a221d/recipes/omnisharp"; - sha256 = "0dwya22y92k7x2s223az1g8hmrpfmk1sgwbr9z47raaa8kd52iad"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp"; + sha256 = "0gh0wwdpdx2cjf95pcagj52inf7mrmiq7x8p0x5c7lvl4pfzhh87"; name = "omnisharp"; }; packageRequires = [ @@ -23754,8 +25654,9 @@ cl-lib csharp-mode dash + emacs + f flycheck - json popup s shut-up @@ -23936,12 +25837,12 @@ org-autolist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-autolist"; - version = "0.13"; + version = "0.14"; src = fetchFromGitHub { owner = "calvinwyoung"; repo = "org-autolist"; - rev = "da332fadcd9be4c5eb21c5e98c392b89743750b2"; - sha256 = "0j6fqgzvbmvvdh0dgwsxq004wxys2zwnq9wa3idm087ynp2a2ani"; + rev = "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1"; + sha256 = "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca8e2cdb282674b20881bf6b4fc49af42a5d09a7/recipes/org-autolist"; @@ -23954,22 +25855,22 @@ license = lib.licenses.free; }; }) {}; - org-babel-eval-in-repl = callPackage ({ emacs, eval-in-repl, fetchFromGitHub, fetchurl, lib, melpaBuild }: + org-babel-eval-in-repl = callPackage ({ emacs, ess, eval-in-repl, fetchFromGitHub, fetchurl, lib, matlab-mode, melpaBuild }: melpaBuild { pname = "org-babel-eval-in-repl"; - version = "1.0"; + version = "1.4"; src = fetchFromGitHub { owner = "diadochos"; repo = "org-babel-eval-in-repl"; - rev = "1e3189e2da14c1c2a2b793c6563597c1aa7d1122"; - sha256 = "0vf77wc1pq9dfqkrnagkxfg7klwyaichms492jsp0dh5warnw7hm"; + rev = "bfa72c582ac1531ad42aba23e2b1267ab68e31f6"; + sha256 = "1jm56zxa99s163jv02vhfrshmykvld7girq7gmj1x60g3wjzhn5k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-babel-eval-in-repl"; sha256 = "0brqp0w9s28ibws4idlm1rw09lsfa98l5wbpwm64rvlixhs6zlnx"; name = "org-babel-eval-in-repl"; }; - packageRequires = [ emacs eval-in-repl ]; + packageRequires = [ emacs ess eval-in-repl matlab-mode ]; meta = { homepage = "https://melpa.org/#/org-babel-eval-in-repl"; license = lib.licenses.free; @@ -24059,6 +25960,48 @@ license = lib.licenses.free; }; }) {}; + org-category-capture = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "org-category-capture"; + version = "1.1.0"; + src = fetchFromGitHub { + owner = "IvanMalison"; + repo = "org-projectile"; + rev = "48f621b595e748c5e03431f237facf258ffc9443"; + sha256 = "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6760daac1ef9d9d7ba07e2fc9668873020f901f1/recipes/org-category-capture"; + sha256 = "0l5n71h9lc8q9k0sb5ghzwb81lah4l1ykc06shfl9zw5lqqvahav"; + name = "org-category-capture"; + }; + packageRequires = [ emacs org ]; + meta = { + homepage = "https://melpa.org/#/org-category-capture"; + license = lib.licenses.free; + }; + }) {}; + org-clock-csv = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org, s }: + melpaBuild { + pname = "org-clock-csv"; + version = "1.1"; + src = fetchFromGitHub { + owner = "atheriel"; + repo = "org-clock-csv"; + rev = "20ab6ee4395bedc0a7b8dfaf7b51f2c63dc8d2c6"; + sha256 = "00lcvmls7zlkqmsi0yfiihyxv49803jlc9khcbqawxlkijvr65pm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e023cb898699f76f6c3d9ffe8162aacfc6a8c34f/recipes/org-clock-csv"; + sha256 = "02spjrzdf1kmvyvqkzg7nnmq9kqv75zwxn5ifqmg0f7a1gw28f0l"; + name = "org-clock-csv"; + }; + packageRequires = [ org s ]; + meta = { + homepage = "https://melpa.org/#/org-clock-csv"; + license = lib.licenses.free; + }; + }) {}; org-commentary = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-commentary"; @@ -24122,6 +26065,27 @@ license = lib.licenses.free; }; }) {}; + org-edit-latex = callPackage ({ auctex, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "org-edit-latex"; + version = "0.8.3"; + src = fetchFromGitHub { + owner = "et2010"; + repo = "org-edit-latex"; + rev = "39cbc9a99acb030f537c7269ab93958187321871"; + sha256 = "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-edit-latex"; + sha256 = "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry"; + name = "org-edit-latex"; + }; + packageRequires = [ auctex emacs ]; + meta = { + homepage = "https://melpa.org/#/org-edit-latex"; + license = lib.licenses.free; + }; + }) {}; org-elisp-help = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-elisp-help"; @@ -24230,12 +26194,12 @@ org-journal = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-journal"; - version = "1.12.0"; + version = "1.12.2"; src = fetchFromGitHub { owner = "bastibe"; repo = "org-journal"; - rev = "24313870fa682a53e7f3f916b0e853a731868886"; - sha256 = "0nc3jl7sgqc8swi89rdk1yapmqxp8vaxm7390iqxy7a1sng4jydh"; + rev = "cda1980b013afabd299e7a2294517897f6442d98"; + sha256 = "1y6idbp74vrr3g0r10n09znky8ih94kzf5fyil47sjkqyzzmpk3s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/org-journal"; @@ -24290,35 +26254,15 @@ license = lib.licenses.free; }; }) {}; - org-mac-iCal = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "org-mac-iCal"; - version = "7.9.3.5"; - src = fetchgit { - url = "git://orgmode.org/org-mode.git"; - rev = "592dc2ee7e4c80b9b61efb77117c8dc22d6cefd1"; - sha256 = "0rvsn085r1sgvv0gwvjlfgn7371bjd254hdzamc97m122pqr7cxr"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ee69e5e7b1617a29919d5fcece92414212fdf963/recipes/org-mac-iCal"; - sha256 = "1ilzvmw1x5incagp1vf8d9v9mz0krlv7bpv428gg3gpqzpm6kksw"; - name = "org-mac-iCal"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/org-mac-iCal"; - license = lib.licenses.free; - }; - }) {}; org-mime = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-mime"; - version = "0.0.6"; + version = "0.0.9"; src = fetchFromGitHub { owner = "org-mime"; repo = "org-mime"; - rev = "d540da37df26c673b83cc9aab36f2ca6cfed3481"; - sha256 = "0fcq75cjvd0fh7ic0j28ly40i95clgn5i7j1sj5infycqkrj87xc"; + rev = "62791db188fa6a9a6b4e53c5c29fb4fa46582b98"; + sha256 = "1l1fyyyyyi8nj4vpkyhpvz1yyqa2vn7042kp9443kqcswdfc9660"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/521678fa13884dae69c2b4b7a2af718b2eea4b28/recipes/org-mime"; @@ -24331,6 +26275,27 @@ license = lib.licenses.free; }; }) {}; + org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "org-mru-clock"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "unhammer"; + repo = "org-mru-clock"; + rev = "10f6a7021c82dc6795f4020e89889a5a72eb8832"; + sha256 = "00f4l5w6p0l1x5ghpvbp5934m9m012fabvzb7apazwdr5c7xbd7q"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b36bf1c1faa4d7e38254416a293e56af96214136/recipes/org-mru-clock"; + sha256 = "1arww5x6vdyyn1bwxry91w88phbr9l6nk8xxrw40iqmmbhggahgm"; + name = "org-mru-clock"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/org-mru-clock"; + license = lib.licenses.free; + }; + }) {}; org-multiple-keymap = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-multiple-keymap"; @@ -24456,27 +26421,48 @@ license = lib.licenses.free; }; }) {}; - org-projectile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }: + org-projectile = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org-category-capture, projectile, s }: melpaBuild { pname = "org-projectile"; - version = "0.2.6"; + version = "1.1.0"; src = fetchFromGitHub { owner = "IvanMalison"; repo = "org-projectile"; - rev = "e2b78ca7fbd2e3b873d3ab9bb7196be4d7613f92"; - sha256 = "03zy2bb1ha22xpx29d8610yrqfyaiaa8vgplpx6bmixaw85mcv58"; + rev = "48f621b595e748c5e03431f237facf258ffc9443"; + sha256 = "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-projectile"; - sha256 = "1kkgi49bvdwz50x32lqdj2ii02mxv8i4dr1asr8zk6mdg0fwlqpf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/9d7a7ab98f364d3d5e93f83f0cb3d80a95f28689/recipes/org-projectile"; + sha256 = "0xdkd5pkyi6yfqi4przgp5mpklyxfxv0cww285zdlh00rzl935cw"; name = "org-projectile"; }; - packageRequires = [ dash emacs projectile ]; + packageRequires = [ dash emacs org-category-capture projectile s ]; meta = { homepage = "https://melpa.org/#/org-projectile"; license = lib.licenses.free; }; }) {}; + org-projectile-helm = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, org-projectile }: + melpaBuild { + pname = "org-projectile-helm"; + version = "1.1.0"; + src = fetchFromGitHub { + owner = "IvanMalison"; + repo = "org-projectile"; + rev = "48f621b595e748c5e03431f237facf258ffc9443"; + sha256 = "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6760daac1ef9d9d7ba07e2fc9668873020f901f1/recipes/org-projectile-helm"; + sha256 = "0x79j5yr9wsgzjf1dpp7d4xiji8hgyhr79vb973an5z2r02vnaf4"; + name = "org-projectile-helm"; + }; + packageRequires = [ emacs helm org-projectile ]; + meta = { + homepage = "https://melpa.org/#/org-projectile-helm"; + license = lib.licenses.free; + }; + }) {}; org-protocol-jekyll = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-protocol-jekyll"; @@ -24540,15 +26526,15 @@ license = lib.licenses.free; }; }) {}; - org-ref = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, helm-bibtex, hydra, ivy, key-chord, lib, melpaBuild, s }: + org-ref = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, helm-bibtex, hydra, ivy, key-chord, lib, melpaBuild, pdf-tools, s }: melpaBuild { pname = "org-ref"; - version = "0.9.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "jkitchin"; repo = "org-ref"; - rev = "b6c6ae209d31caf71b158d6357780d74f6d08f19"; - sha256 = "18zzzh5aifbdbd2lw69fn7scvhalgxhzfz3f3cscjjkvzhkkya8j"; + rev = "db6c52f41faba686a378a8c57356a563f5cef496"; + sha256 = "0kx6w3zz5gmlmr9bx1mdq1k8ykkbnll6m91z90p6f2xm96j627j6"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/550e4dcef2f74fbd96474561c1cb6c4fd80091fe/recipes/org-ref"; @@ -24564,6 +26550,7 @@ hydra ivy key-chord + pdf-tools s ]; meta = { @@ -24592,6 +26579,27 @@ license = lib.licenses.free; }; }) {}; + org-static-blog = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "org-static-blog"; + version = "1.0.3"; + src = fetchFromGitHub { + owner = "bastibe"; + repo = "org-static-blog"; + rev = "1a63f7eb0682a73126b534458b403ad0858273e8"; + sha256 = "13k8rqh8r48hhdn8z580g379m6mgyc3jnh8a2kk0b22vlx6c3zap"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e0768d41a3de625c04ac8644ef2e05f17ee99908/recipes/org-static-blog"; + sha256 = "07vh2k7cj0cs1yzfmrrz9p03x5mbfh0bigbl93s72h1wf7i05rkw"; + name = "org-static-blog"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/org-static-blog"; + license = lib.licenses.free; + }; + }) {}; org-sync = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-sync"; @@ -24658,12 +26666,12 @@ org-tfl = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "org-tfl"; - version = "0.3.4"; + version = "0.4.0"; src = fetchFromGitHub { owner = "storax"; repo = "org-tfl"; - rev = "f0405e3ad62b90ea43489bdd6312adbd77edb9f3"; - sha256 = "0cznw60ivaz42ass35sf9i62x7mf9in6z8kr8wc5i1mb7hafy2hk"; + rev = "f0d7d39106a1de5457f5160cddd98ab892b61066"; + sha256 = "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d9e97f2fee577c7e3fb42e4ca9d4f422c8907faf/recipes/org-tfl"; @@ -24826,12 +26834,12 @@ org-vcard = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "org-vcard"; - version = "0.1.0"; + version = "0.2.0"; src = fetchFromGitHub { owner = "flexibeast"; repo = "org-vcard"; - rev = "5c4e17c166fb0406d5dfdc8876b0e182ba7af8fd"; - sha256 = "1qf4pqsg12y1qx7di0y5dp0f4slyp69h2q6y21hldzknhwxx4yy4"; + rev = "a6ab82ab28fa78f7c985d3ea9c9fafdd17f7ea8b"; + sha256 = "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/df860814a09c376c9a6a2c5e7f528bbae29810b2/recipes/org-vcard"; @@ -24847,12 +26855,12 @@ org2blog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, metaweblog, org, xml-rpc }: melpaBuild { pname = "org2blog"; - version = "0.9.2"; + version = "1.0.0"; src = fetchFromGitHub { owner = "punchagan"; repo = "org2blog"; - rev = "ad389ae994d269a57e56fbea68df7e6fe5c2ff55"; - sha256 = "0av1477jn3s4s5kymd7sbb0av437vb5mnfc6rpfgzwji7b8mfr7l"; + rev = "e266ff4296661de520b73e6e18f201fb6378ba05"; + sha256 = "030fwgwn2xsi6nnnn4k32479hhmbr4n819yarr3n367b29al2461"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org2blog"; @@ -24886,6 +26894,36 @@ license = lib.licenses.free; }; }) {}; + org2web = callPackage ({ cl-lib ? null, dash, el2org, fetchFromGitHub, fetchurl, ht, htmlize, lib, melpaBuild, mustache, org, simple-httpd }: + melpaBuild { + pname = "org2web"; + version = "0.9.1"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "org2web"; + rev = "5243b399927a4c474bb3b8d1c8a00799df1f27d7"; + sha256 = "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2864959163442165b9b1cd5471dc2649508decde/recipes/org2web"; + sha256 = "0lcqf0pgkd7jilasw1485fy45k269jxvyl7hl7qrcs94s6fy2vaf"; + name = "org2web"; + }; + packageRequires = [ + cl-lib + dash + el2org + ht + htmlize + mustache + org + simple-httpd + ]; + meta = { + homepage = "https://melpa.org/#/org2web"; + license = lib.licenses.free; + }; + }) {}; orgbox = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "orgbox"; @@ -24910,12 +26948,12 @@ orgit = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild, org }: melpaBuild { pname = "orgit"; - version = "1.3.0"; + version = "1.4.1"; src = fetchFromGitHub { owner = "magit"; repo = "orgit"; - rev = "cbce5871fe267fef725631b0b7365952c35ae401"; - sha256 = "00iwp3bajr9hxs55rj3ka5bymhp5icsq8m44z514sb8h54fwapb7"; + rev = "022687eb02f0bf0d0151d0ad917b165bfef2d663"; + sha256 = "1cddyns82a06ydbw8rhxzghkjav5vxmmc671pdnai50mql3cx9kf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/73b5f7c44c90540e4cbdc003d9881f0ac22cc7bc/recipes/orgit"; @@ -25075,6 +27113,27 @@ license = lib.licenses.free; }; }) {}; + osx-pseudo-daemon = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "osx-pseudo-daemon"; + version = "2.1"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "mac-pseudo-daemon"; + rev = "4d10e327cd8ee5bb7f006d68744be21c7097c1fc"; + sha256 = "0rjdjddlkaps9cfyc23kcr3cdh08c12jfgkz7ca2j141mm89pyp2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/6104efc035bcf469d133ab9a2caf42c9d4482334/recipes/osx-pseudo-daemon"; + sha256 = "1sch7bb8hl96fji2ayw2ah5cjgsga08wj44vddjxskyway8ykf0z"; + name = "osx-pseudo-daemon"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/osx-pseudo-daemon"; + license = lib.licenses.free; + }; + }) {}; osx-trash = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "osx-trash"; @@ -25204,12 +27263,12 @@ ox-epub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-epub"; - version = "0.2.1"; + version = "0.2.4"; src = fetchFromGitHub { owner = "ofosos"; repo = "ox-epub"; - rev = "113300ed2c66cca10624e6d7bf5ff0a72e05653a"; - sha256 = "1xj643jybrd6idn6bazp0canj8pm9v3gs199fa17hlag7151ancw"; + rev = "4b4585264a28152f2eda0f7e5ceed132f9d23e16"; + sha256 = "1k3lv4qqkp87piwlwl3gahac1zpjzv397f65g4khbpby2kgg8dpi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3ac31dfef00e83fa6b716ea006f35afb5dc6cd5/recipes/ox-epub"; @@ -25222,6 +27281,48 @@ license = lib.licenses.free; }; }) {}; + ox-gfm = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ox-gfm"; + version = "1.0"; + src = fetchFromGitHub { + owner = "larstvei"; + repo = "ox-gfm"; + rev = "99f93011b069e02b37c9660b8fcb45dab086a07f"; + sha256 = "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/10e90430f29ce213fe57c507f06371ea0b29b66b/recipes/ox-gfm"; + sha256 = "065ngmzfd3g2h8n903hc4d363hz4z5rrdgizh2xpz03kf3plca6q"; + name = "ox-gfm"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ox-gfm"; + license = lib.licenses.free; + }; + }) {}; + ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: + melpaBuild { + pname = "ox-hugo"; + version = "0.4.1"; + src = fetchFromGitHub { + owner = "kaushalmodi"; + repo = "ox-hugo"; + rev = "c32359c71e7926c7f13039069d8d7481dfb9bc82"; + sha256 = "1nw2dp6rn3hnnzzffvpr6yz7c154338h9i5ixxgh5vjxm9phzdml"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo"; + sha256 = "1niarxj2y4a14lrv2nqcc36msw7k61h8fbjpcdrfbaw3n0kchd40"; + name = "ox-hugo"; + }; + packageRequires = [ emacs org ]; + meta = { + homepage = "https://melpa.org/#/ox-hugo"; + license = lib.licenses.free; + }; + }) {}; ox-ioslide = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, org }: melpaBuild { pname = "ox-ioslide"; @@ -25254,7 +27355,7 @@ sha256 = "0h49pfl97vl796sm7r62rpv3slj0z5krm4zrqkgz0q6zlyrjay29"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/92f89a923d877c9dea9349a5c594209cb716bf18/recipes/ox-pandoc"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38/recipes/ox-pandoc"; sha256 = "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc"; name = "ox-pandoc"; }; @@ -25309,12 +27410,12 @@ package-build = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "package-build"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "melpa"; repo = "package-build"; - rev = "d70db33776cd52586e05e932915653ec54f41c9c"; - sha256 = "1hfbmh4gzgxdmv421bnpj8486fja7015sj7jrnp8bhvcxxxc3azd"; + rev = "940c991ccd0dab53bd7c120601b3db35669c5e73"; + sha256 = "18yr4qq3jyf9zhlwqrbfq616svsgn5spnj0s4gsni7kb2ijjh2bp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/948fb86b710aafe6bc71f95554655dfdfcab0cca/recipes/package-build"; @@ -25330,12 +27431,12 @@ package-lint = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "package-lint"; - version = "0.4"; + version = "0.5"; src = fetchFromGitHub { owner = "purcell"; repo = "package-lint"; - rev = "de08b846b3a031838b79445bb7a254c9de4a80f6"; - sha256 = "0mvs4afjp5ab89vdz3bd9pca55brn57lxvjqjjyc6cyqxpclh06j"; + rev = "1cee5135bd9a12e1b28e515a28093a751b4f7dd1"; + sha256 = "1qvvdr5wx37x5jrw4hkx5vl4jmi3l1bjn97nnvwlsmzi6sgkcwsr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9744d8521b4ac5aeb1f28229c0897af7260c6f78/recipes/package-lint"; @@ -25411,22 +27512,22 @@ license = lib.licenses.free; }; }) {}; - packed = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + packed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "packed"; - version = "2.0.1"; + version = "2.0.2"; src = fetchFromGitHub { - owner = "tarsius"; + owner = "emacscollective"; repo = "packed"; - rev = "536f4a3bda06cc09759fed1aa0cdebb068ff75a1"; - sha256 = "1ayizqkhxjd3rv3chnl51sl12gsfhxcqqnz0p6r0xbwglx4n3vzi"; + rev = "94ea12b9d44bfa42c28d0548199f2fcd19e4aa6a"; + sha256 = "1n80y5pqaibix71fnw3cxmq66frmqfji2b2y170jszmrxi03kwxm"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1ee9e95c00f791010f77720068a7f3cd76133a1c/recipes/packed"; - sha256 = "0sw7d2l17bq471i4isrf2xf0z85nqqiciw25whw0c0chdzwzai6z"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/packed"; + sha256 = "103z6fas2fkvlhvwbv1rl6jcij5pfsv5vlqqsb4dkq1b0s7k11jd"; name = "packed"; }; - packageRequires = [ dash emacs ]; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/packed"; license = lib.licenses.free; @@ -25498,12 +27599,12 @@ pandoc-mode = callPackage ({ dash, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild }: melpaBuild { pname = "pandoc-mode"; - version = "2.22"; + version = "2.23"; src = fetchFromGitHub { owner = "joostkremers"; repo = "pandoc-mode"; - rev = "b4e03ab345043fa7447dd59e59234dd33395e3cc"; - sha256 = "08yxi878l1hibcsq0bb93g2rjwlc0xw415rgn1rzs3zib2hqj1qc"; + rev = "58f893d54c0916ad832097a579288ef8ce405da5"; + sha256 = "03nh5ivcwknnsw9khz196n6s3pa1392jk7pm2mr4yjjs24izyz1i"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/pandoc-mode"; @@ -25537,36 +27638,15 @@ license = lib.licenses.free; }; }) {}; - paper-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, hexrgb, lib, melpaBuild }: - melpaBuild { - pname = "paper-theme"; - version = "1.0.0"; - src = fetchFromGitHub { - owner = "cadadr"; - repo = "paper-theme"; - rev = "15af5e31492f79dc0d47787150ef39d6318a2608"; - sha256 = "1xh614czldjvfl66vhkyaai5k4qsg1l3mz6wd5b1w6kd45qrc54i"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a35a0888a7a27174b5de58d99b01554769041f46/recipes/paper-theme"; - sha256 = "04diqm2c9fm29zyms3hplkzb4kb7b2kyrxdsy0jxyjj5kabypd50"; - name = "paper-theme"; - }; - packageRequires = [ emacs hexrgb ]; - meta = { - homepage = "https://melpa.org/#/paper-theme"; - license = lib.licenses.free; - }; - }) {}; paradox = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, let-alist, lib, melpaBuild, seq, spinner }: melpaBuild { pname = "paradox"; - version = "2.5.1"; + version = "2.5.2"; src = fetchFromGitHub { owner = "Malabarba"; repo = "paradox"; - rev = "17a6690d42a1e854ec270ed930c7494077570fc8"; - sha256 = "1vg5i4cxgn4a8cgx43i75w3cf0d8sb6ig6xxxdj3pvpzc81i53bc"; + rev = "dfdfbec8b4a3b71966c134f00c3f5edfa87b6245"; + sha256 = "1l0rs49lbclq4ayhnx6vi6bxn37a0h2ylk73fjcbar2lbr1dhf9r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/paradox"; @@ -25664,12 +27744,12 @@ parinfer = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "parinfer"; - version = "0.4.9"; + version = "0.4.10"; src = fetchFromGitHub { owner = "DogLooksGood"; repo = "parinfer-mode"; - rev = "c67686b24cf14064931d812f29f4114b30696d12"; - sha256 = "0lpj81hkzw24v1f3s13rw22sm1nm0i177di5v2b8kwy50pjirs8v"; + rev = "5b3b247d68eeaf7404598cbcbf2158e07f16e65d"; + sha256 = "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/470ab2b5cceef23692523b4668b15a0775a0a5ba/recipes/parinfer"; @@ -25685,12 +27765,12 @@ parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "parsebib"; - version = "2.2"; + version = "2.3.1"; src = fetchFromGitHub { owner = "joostkremers"; repo = "parsebib"; - rev = "621a87d444d9b9c479221fffcd8f7cb5ce2f7717"; - sha256 = "14rvqjd24xwp2pvl4r00jvhvq7p2wndpz3yy1ml9yymkkn1p1hnh"; + rev = "bc31b627c666df576aa37e21c27a2223b3cb91a3"; + sha256 = "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib"; @@ -25727,12 +27807,12 @@ pass = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store }: melpaBuild { pname = "pass"; - version = "1.6"; + version = "1.7"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "pass"; - rev = "b4c3bd9130044c4e106bac5ba73a50822865e258"; - sha256 = "0na895x91a37wmdpqp545qvjh34d0vfq4dyxji7casdrdhx3bg16"; + rev = "2ccf4f68fa4d2aab7efbdc26ebdc45ac1ef1819c"; + sha256 = "11b8c0qihgkl46hjqx6g1p1ifd7lc3q7jhqds3gr41zsrnlyi3p8"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/428c2d53db69bed8938ec3486dfcf7fc048cd4e8/recipes/pass"; @@ -25787,18 +27867,19 @@ license = lib.licenses.free; }; }) {}; - password-store = callPackage ({ f, fetchgit, fetchurl, lib, melpaBuild, s }: + password-store = callPackage ({ f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "password-store"; version = "1.7.1"; - src = fetchgit { - url = "http://git.zx2c4.com/password-store"; + src = fetchFromGitHub { + owner = "zx2c4"; + repo = "password-store"; rev = "38ec1c72e29c872ec0cdde82f75490640d4019bf"; sha256 = "04rqph353qfhnrwji6fmvrbk4yag8brqpbpaysq5z0c9l4p9ci87"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e204fb4d672220ee1a4a49975fd3999916e60f8c/recipes/password-store"; - sha256 = "1jh24737l4hccr1k0b9fnq45ag2dsk84fnfs86hcgsadl94d6kss"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/207f8ec84572176749d328cb2bbc4e87c36f202c/recipes/password-store"; + sha256 = "03r8j14l12yc42b51fzvn1jh8j85nyl1rg6c80r0a7ihwkj27jv6"; name = "password-store"; }; packageRequires = [ f s ]; @@ -25807,6 +27888,27 @@ license = lib.licenses.free; }; }) {}; + password-store-otp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, s }: + melpaBuild { + pname = "password-store-otp"; + version = "0.1.5"; + src = fetchFromGitHub { + owner = "volrath"; + repo = "password-store-otp.el"; + rev = "a39a64a91de36e87b852339635bd3c5fb0e32441"; + sha256 = "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fc89d02554a6ff150ad42634879073892f3e88be/recipes/password-store-otp"; + sha256 = "0m3n4gjf6hmcs2kg80h1whzbl74zsj79ihliyqfcdfc4v31m32sg"; + name = "password-store-otp"; + }; + packageRequires = [ emacs password-store s ]; + meta = { + homepage = "https://melpa.org/#/password-store-otp"; + license = lib.licenses.free; + }; + }) {}; pastehub = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pastehub"; @@ -25999,12 +28101,12 @@ pdf-tools = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, tablist }: melpaBuild { pname = "pdf-tools"; - version = "0.70"; + version = "0.80"; src = fetchFromGitHub { owner = "politza"; repo = "pdf-tools"; - rev = "0107f80dcf268d08ac075b01729820062c0fbd67"; - sha256 = "19sy49r3ijh36m7hl4vspw5c4i8pnfqdn4ldm2sqchxigkw56ayl"; + rev = "920e598c1ec6eb9a48dde32282d10adc9cc3b011"; + sha256 = "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8e3d53913f4e8a618e125fa9c1efb3787fbf002d/recipes/pdf-tools"; @@ -26038,6 +28140,26 @@ license = lib.licenses.free; }; }) {}; + pelican-mode = callPackage ({ emacs, fetchgit, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pelican-mode"; + version = "20170808"; + src = fetchgit { + url = "https://git.korewanetadesu.com/pelican-mode.git"; + rev = "8b13c30c4ec38dd535eadf26e463f8616d5c089c"; + sha256 = "0rghcyp09ga95ag0pjbk4hdxxlsnr93dr6706z0xvfgmninbn5aw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/aede5994c2e76c7fd860661c1e3252fb741f9228/recipes/pelican-mode"; + sha256 = "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi"; + name = "pelican-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/pelican-mode"; + license = lib.licenses.free; + }; + }) {}; per-buffer-theme = callPackage ({ cl-lib ? null, fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "per-buffer-theme"; @@ -26100,6 +28222,27 @@ license = lib.licenses.free; }; }) {}; + persp-fr = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, persp-mode }: + melpaBuild { + pname = "persp-fr"; + version = "0.0.3"; + src = fetchFromGitHub { + owner = "rocher"; + repo = "persp-fr"; + rev = "4d2d1a75019f520742da79f1aeed9c4a960677e0"; + sha256 = "1waakbmxwm0xdnl0iznyk61ccwdjvwv5g1naml31r7q0cnk0jfz8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/8e09213dddf003a1275eafb767431a507ecf7639/recipes/persp-fr"; + sha256 = "0p4379yr1b32l8ghq1axyb8qhp28gnq5qxxvbk3mdzgbwwj8y4b2"; + name = "persp-fr"; + }; + packageRequires = [ emacs persp-mode ]; + meta = { + homepage = "https://melpa.org/#/persp-fr"; + license = lib.licenses.free; + }; + }) {}; persp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "persp-mode"; @@ -26184,6 +28327,27 @@ license = lib.licenses.free; }; }) {}; + pfuture = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pfuture"; + version = "1.2"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "pfuture"; + rev = "8b5cd8dfb8769d2b24484a313d3d21938afd3dfb"; + sha256 = "1d63sfwy7qmldhq2xda9dglg91cy2kpjdr2rlmqb48w95wf0am3m"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5fb70c9f56a58b5c7a2e8b69b191aa2fc7c9bcc8/recipes/pfuture"; + sha256 = "15fr9wkpv8v1p22wz7hsyihq7f807ck105c2crfs8y7capfvs53s"; + name = "pfuture"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/pfuture"; + license = lib.licenses.free; + }; + }) {}; ph = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ph"; @@ -26208,16 +28372,16 @@ phan = callPackage ({ composer, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "phan"; - version = "0.0.2"; + version = "0.0.3"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "phan.el"; - rev = "4e3528f490e77d3aa6d81729b30b569434ef679f"; - sha256 = "1aif1hshwpzi353k2gcpwk9s76jlmz3s5dyf357qfv14b5ddhw6l"; + rev = "17b44a62580272bcf5ee91fb58098292e9de6f83"; + sha256 = "002qak8jlim6pjj3ckikzzcc6n40mcqd5qvzakazi1q01z1ffsnd"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d591d9ba70b1e32f25204ad9409aad78fd68a93c/recipes/phan"; - sha256 = "16r1d2bgbb2y7l141sw7nzhx0s50gzwq5ang00y7f4sfldqvshzf"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/phan"; + sha256 = "17ar6nxy0plx5li49kgf4f0h99wwmnnp5kwmpf34jg9ygyhaglvb"; name = "phan"; }; packageRequires = [ composer emacs f ]; @@ -26289,6 +28453,27 @@ license = lib.licenses.free; }; }) {}; + php-cs-fixer = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "php-cs-fixer"; + version = "1.0beta4"; + src = fetchFromGitHub { + owner = "OVYA"; + repo = "php-cs-fixer"; + rev = "ca2c075a22ad156c336d2aa093fb6394c9f6c112"; + sha256 = "1axjfsfasg7xyq5ax2bx7rh2mgf8caw5bh858hhp1gk9xvi21qhx"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a3631c4b81c1784995ae9e74d832e301d79214e2/recipes/php-cs-fixer"; + sha256 = "1xvz6v1fwngi2rizrx5sf0wrs4cy8rb13467r26k8hb7z8h1rqmf"; + name = "php-cs-fixer"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/php-cs-fixer"; + license = lib.licenses.free; + }; + }) {}; php-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "php-mode"; @@ -26397,12 +28582,12 @@ pinyinlib = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pinyinlib"; - version = "0.1.0"; + version = "0.1.1"; src = fetchFromGitHub { owner = "cute-jumper"; repo = "pinyinlib.el"; - rev = "f1e6c86f47e16c2bd48436630286bae8d6f8cb8c"; - sha256 = "13q95z0j1mpk2yrrq0amc2jjhajaz4884bfliy2h8adh109j4q1d"; + rev = "39943d226c2a42a9013421a0b4b6d5d3696bf234"; + sha256 = "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/f4aa27985dcfaf24f1863667b89e13df4710546f/recipes/pinyinlib"; @@ -26502,12 +28687,12 @@ plain-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plain-theme"; - version = "2"; + version = "7"; src = fetchFromGitHub { owner = "yegortimoshenko"; repo = "plain-theme"; - rev = "43fc59d487d39e6110230a073f1376ab877aa739"; - sha256 = "0g44qdpn3ni291awjklia4r26qyiavpjib04k761hfacrdkvsdys"; + rev = "7c376f5bf9d653bf12e414176284736cbdd19108"; + sha256 = "12fjas93if4dqarj5g1bjvwxv3i3b5xanq6jnnks9f7gkxkbn75a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d7ad3737f081f101500317f7e183be6b1e7e8122/recipes/plain-theme"; @@ -26520,22 +28705,22 @@ license = lib.licenses.free; }; }) {}; - plantuml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + plantuml-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "plantuml-mode"; - version = "1.2.3"; + version = "1.2.5"; src = fetchFromGitHub { owner = "skuro"; repo = "plantuml-mode"; - rev = "eb380bac5663ec8e73482db6c6ba9d1394766eb3"; - sha256 = "19zxwmn5mjbzqgk7l444h57ninrlhi22l85l9zphryx2992plf0k"; + rev = "5a2e8d0dd2ba9286fc3c82d8689d25050290f68d"; + sha256 = "1gcv5gmps371wd2sjbq4g5p2yj2ip8lpn81lypwb5xavqa7gjhlv"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a658eb8085f2bf413c276af19c77597132cf569b/recipes/plantuml-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/38e74bb9923044323f34473a5b13867fe39bed25/recipes/plantuml-mode"; sha256 = "03srbg34512vxcqn95q4r7h2aqbqq0sd5c9ffnbx2a75vsblqc6h"; name = "plantuml-mode"; }; - packageRequires = [ emacs ]; + packageRequires = []; meta = { homepage = "https://melpa.org/#/plantuml-mode"; license = lib.licenses.free; @@ -26686,6 +28871,57 @@ license = lib.licenses.free; }; }) {}; + pocket-reader = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, kv, lib, melpaBuild, org-web-tools, ov, pocket-lib, rainbow-identifiers, s }: + melpaBuild { + pname = "pocket-reader"; + version = "0.1.1"; + src = fetchFromGitHub { + owner = "alphapapa"; + repo = "pocket-reader.el"; + rev = "e65a7e7529ece4fb7a738c062e73d5c07ace9574"; + sha256 = "0bqxsvhmwvf0gpjmmh7pmzyw4lpcarj2prm52bgncch8x1f0gvnp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/835a7bf2f72987183e9d15ada7ae747fb5715c11/recipes/pocket-reader"; + sha256 = "0gcgmz4mhjgvqbh2gmv8v09sy80cnfccjym455m0fbl31b8dczhf"; + name = "pocket-reader"; + }; + packageRequires = [ + dash + emacs + kv + org-web-tools + ov + pocket-lib + rainbow-identifiers + s + ]; + meta = { + homepage = "https://melpa.org/#/pocket-reader"; + license = lib.licenses.free; + }; + }) {}; + point-pos = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "point-pos"; + version = "0.1"; + src = fetchFromGitHub { + owner = "alezost"; + repo = "point-pos.el"; + rev = "4cd0f8c8d1296c5c64f708b6a5835e8520c51b68"; + sha256 = "1l3mlz51wp729rm6wf72x2fk1fla2n2s1qh8h8z58inipdi2qydp"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/23a1e835155fba51f595c10c46487a4c269f43ff/recipes/point-pos"; + sha256 = "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync"; + name = "point-pos"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/point-pos"; + license = lib.licenses.free; + }; + }) {}; pony-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: melpaBuild { pname = "pony-snippets"; @@ -26710,12 +28946,12 @@ ponylang-mode = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ponylang-mode"; - version = "0.0.8"; + version = "0.0.9"; src = fetchFromGitHub { owner = "SeanTAllen"; repo = "ponylang-mode"; - rev = "bdc549e2658f4662f462e0c233b4825c761288cd"; - sha256 = "0v55bdj3vhf260addgsim6q4rwfzyvhqswxan4qqcq6acgi1liw4"; + rev = "38786ba7f9f5709d511e27b85028b2dc6aff532d"; + sha256 = "0cr22scxk3y2qdlhhfvwf4fkk2ql1c0r73fxzhw64dhwm4q01pih"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d51adec3c6519d6ffe9b3f7f8a86b4dbc2c9817/recipes/ponylang-mode"; @@ -27150,12 +29386,12 @@ projectile-rails = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }: melpaBuild { pname = "projectile-rails"; - version = "0.14.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "asok"; repo = "projectile-rails"; - rev = "fb28fc8710b614e9ab535788ee58f9a9070561f1"; - sha256 = "0v7ddlk8mzqa8gvxrrcvd15klap5m31df8vn14z99s3ybj3zk0yb"; + rev = "31c9f90d472e07cb8e49fa8992b187b67c9c9a71"; + sha256 = "0j38zbprkga3iq5wb77zvfa5r3sj3sqv8qh0ab62wm68qy60d6g3"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b16532bb8d08f7385bca4b83ab4e030d7b453524/recipes/projectile-rails"; @@ -27210,19 +29446,40 @@ license = lib.licenses.free; }; }) {}; + projectile-trailblazer = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, inf-ruby, inflections, lib, melpaBuild, projectile, rake }: + melpaBuild { + pname = "projectile-trailblazer"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "micdahl"; + repo = "projectile-trailblazer"; + rev = "79299498d74876f2ac3fe8075716b39a5bdd04cd"; + sha256 = "1lkj9jdr3g7nl80fxvic6g5cn7vbkyxys7m3kcmd6xa9mq7nvci4"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f9c6f2f92ff99e7a3241003dc396f978f3916c8a/recipes/projectile-trailblazer"; + sha256 = "18cijb5c1ym5kn2g2apbijbfd3aqhrraki8vv9bk8rvi7wmm6qj4"; + name = "projectile-trailblazer"; + }; + packageRequires = [ emacs f inf-ruby inflections projectile rake ]; + meta = { + homepage = "https://melpa.org/#/projectile-trailblazer"; + license = lib.licenses.free; + }; + }) {}; projectile-variable = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "projectile-variable"; version = "0.0.2"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "projectile-variable"; rev = "8d348ac70bdd6dc320c13a12941b32b38140e264"; sha256 = "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ff603b43235f546cd47f72e675aee88d5f41e855/recipes/projectile-variable"; - sha256 = "1cj8nwxf1jp5q5zzxp92fxla6jhwzd21gw649ar6mygi4hgymsji"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/projectile-variable"; + sha256 = "15qc5n91nxyfvb100iyihfmrdr57qgw6098yv3nfqgw3zx1qchdw"; name = "projectile-variable"; }; packageRequires = [ cl-lib emacs ]; @@ -27297,12 +29554,12 @@ protobuf-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "protobuf-mode"; - version = "3.2.1"; + version = "3.4.1"; src = fetchFromGitHub { owner = "google"; repo = "protobuf"; - rev = "b50c9ec1223895973d0e2fa6b6cb74ec3c8f3ce8"; - sha256 = "17drjxry365als0drs56gzdpdjhkhjwg9jwvrhmq5dp9ly0rb2f4"; + rev = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"; + sha256 = "1lzxmbqlnmi34kymnf399azv86gmdbrf71xiad6wc24bzpkzqybb"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b4e7f5f641251e17add561991d3bcf1fde23467b/recipes/protobuf-mode"; @@ -27341,14 +29598,14 @@ pname = "psci"; version = "0.0.6"; src = fetchFromGitHub { - owner = "ardumont"; + owner = "purescript-emacs"; repo = "emacs-psci"; rev = "8c2d5a0ba604ec593f83f632b2830a87f41f84d4"; sha256 = "0wgxrwl7dpy084sc76wiwpixycb171g7xwc66m5gnlrv79qyac73"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a0f45269895b8e061c972da46f932c96eb0f5279/recipes/psci"; - sha256 = "0sgrz8byz2pcsad2pydinp4hh2xb48pdb03r93wg2vvyy8p15j9g"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3451719ce5096383db082917716a5ed8346fc186/recipes/psci"; + sha256 = "1iwkr58b910vrwwxyk00psy74vp201vmm3b0cm4k5fh3glr31vp9"; name = "psci"; }; packageRequires = [ dash deferred f purescript-mode s ]; @@ -27378,22 +29635,22 @@ license = lib.licenses.free; }; }) {}; - psysh = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + psysh = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "psysh"; - version = "0.0.3"; + version = "0.0.4"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "psysh.el"; - rev = "6932f03447c3d821e4c03e99f1630928f0979452"; - sha256 = "00dssrdsdvwdg6a6fwl3wv0y94axcd4jb3b3ndd1p3bcr56fxq49"; + rev = "f72d6fe41af2d9566d41b167cda66e97efdf8cfa"; + sha256 = "0hr8nlxcqfas9wl5ahz9hmvpa8b6k35n4f7iv9dx6zwf5q48q7y7"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4b3131d9a0ad359f15bc3550868a12f02476449a/recipes/psysh"; - sha256 = "0ygnfmfx1ifppg6j3vfz10srbcpr5ird2bhw6pvydijxkyd75vy5"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/psysh"; + sha256 = "00rzfw8nlbcmfbjnzbfl08136dhgvrrn9g1s9l623xgpbcay63sg"; name = "psysh"; }; - packageRequires = []; + packageRequires = [ emacs f s ]; meta = { homepage = "https://melpa.org/#/psysh"; license = lib.licenses.free; @@ -27420,22 +29677,22 @@ license = lib.licenses.free; }; }) {}; - pug-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + pug-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "pug-mode"; - version = "1.0.4"; + version = "1.0.7"; src = fetchFromGitHub { owner = "hlissner"; repo = "emacs-pug-mode"; - rev = "bff32a818ccc9e400210b942bd5e67fa21551148"; - sha256 = "1ad5n8v40acj17qficbzrnixbmg5wplmbd8h1z9hdxhbrkwy5323"; + rev = "96718f802dad3acd5a3f770b1452b81e39f77d92"; + sha256 = "1jqj3qfc4686v09am869ls1k3jwy397646cql4a8dg7crjdpf023"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b3710aac9f3df3a23238af1f969c462b3692f260/recipes/pug-mode"; sha256 = "1njhr95y2rx7inpl9phxxz580844p2iadqlga1kj7xzvjz698x85"; name = "pug-mode"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib emacs ]; meta = { homepage = "https://melpa.org/#/pug-mode"; license = lib.licenses.free; @@ -27672,6 +29929,69 @@ license = lib.licenses.free; }; }) {}; + pyim = callPackage ({ async, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip, pyim-basedict }: + melpaBuild { + pname = "pyim"; + version = "1.6.4"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim"; + rev = "d44db4cb74c1c0cf6f814ff14d0be8e733f8404a"; + sha256 = "02b2aknx127xvl8amf74krvd7z33kyr049iw5h0665zkzsli4g8w"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/151a0af91a58e27f724854d85d5dd9668229fe8d/recipes/pyim"; + sha256 = "1ly4xhfr3irlrwvv20j3kyz98g7barridi9n8jppc0brh2dlv98j"; + name = "pyim"; + }; + packageRequires = [ async cl-lib emacs popup pos-tip pyim-basedict ]; + meta = { + homepage = "https://melpa.org/#/pyim"; + license = lib.licenses.free; + }; + }) {}; + pyim-basedict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "pyim-basedict"; + version = "0.3.1"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim-basedict"; + rev = "f71d0ffd9d2421f2b51cd0ccb89fd9eb43c09585"; + sha256 = "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/151a0af91a58e27f724854d85d5dd9668229fe8d/recipes/pyim-basedict"; + sha256 = "1y8cmccli3im5bvws2h582z7k4nj6p8brgypl8h09y3na6yjy2z9"; + name = "pyim-basedict"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/pyim-basedict"; + license = lib.licenses.free; + }; + }) {}; + pyim-wbdict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pyim }: + melpaBuild { + pname = "pyim-wbdict"; + version = "0.1"; + src = fetchFromGitHub { + owner = "tumashu"; + repo = "pyim-wbdict"; + rev = "114489ed97e825ae11a8d09da6e873820cf23106"; + sha256 = "187wx418pj4h8p8baf4943v9dsb6mfbn0n19r8xiil1z2cmm4ygc"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/ab1cb8bc623d1f12f78fa42ce8b16514e5b07c51/recipes/pyim-wbdict"; + sha256 = "1s0i9xcnpy8kxqhsv7rqxabv5vnxsciyng398mn32mknib03315i"; + name = "pyim-wbdict"; + }; + packageRequires = [ pyim ]; + meta = { + homepage = "https://melpa.org/#/pyim-wbdict"; + license = lib.licenses.free; + }; + }) {}; pyimport = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "pyimport"; @@ -27840,6 +30160,27 @@ license = lib.licenses.free; }; }) {}; + qt-pro-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "qt-pro-mode"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "EricCrosson"; + repo = "qt-pro-mode"; + rev = "66601441cc728a609765b149ee0d7dcfb74dc8bf"; + sha256 = "0azx8a7kwgn5byijgwar2rib9xv2p9w7w3yyb5bk19g3id2f8gdw"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e9af710be77ccde8ffa5f22168d2c8a06b73dd6a/recipes/qt-pro-mode"; + sha256 = "1k3ph9bqvvg6i6n623qrwdpsffs8w9rv9nihmlggb4w30dwqc9nf"; + name = "qt-pro-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/qt-pro-mode"; + license = lib.licenses.free; + }; + }) {}; quasi-monochrome-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "quasi-monochrome-theme"; @@ -27882,6 +30223,27 @@ license = lib.licenses.free; }; }) {}; + quiz = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "quiz"; + version = "1.4"; + src = fetchFromGitHub { + owner = "davep"; + repo = "quiz.el"; + rev = "69629937eaf994a51dad39c26355e1a56b9dcb95"; + sha256 = "06k1kv9ijg9gx8c5jid8ckbmjkviyzh59rygp9drbkpihwdwyfmj"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/23d547c0d69d8f5d1e9983e3669a63dffaede2b3/recipes/quiz"; + sha256 = "0pcjfhk109ifi834jw8lndwhpfcv764wym1dhiqhp5qd2vf431kg"; + name = "quiz"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/quiz"; + license = lib.licenses.free; + }; + }) {}; r-autoyas = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "r-autoyas"; @@ -28158,12 +30520,12 @@ rdf-prefix = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rdf-prefix"; - version = "1.7"; + version = "1.9"; src = fetchFromGitHub { owner = "simenheg"; repo = "rdf-prefix"; - rev = "d7e61535aaf89e643673b27c79b4a84ddb530288"; - sha256 = "1in1xp559g8hlxa9i2algwlgc069m8afjad6laxbyjqc61srzw6i"; + rev = "25cc3c8902f16191496b549705b00ffc7dff51f1"; + sha256 = "00ycsqzgn5rq8r4r86z1j43i2a7wj4r3c2vcggdaizyf4parmgmy"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a5f083bd629697038ea6391c7a4eeedc909a5231/recipes/rdf-prefix"; @@ -28176,6 +30538,27 @@ license = lib.licenses.free; }; }) {}; + react-snippets = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }: + melpaBuild { + pname = "react-snippets"; + version = "0.1"; + src = fetchFromGitHub { + owner = "johnmastro"; + repo = "react-snippets.el"; + rev = "bfc4b68b81374a6a080240592641091a7e8a6d61"; + sha256 = "1wna4v8l3j0ppjv4nj72lhp0yh6vbka6bvl1paqqfvay300kiqjb"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3720192fdfa45f9b83259ab39356f469c5ac85b4/recipes/react-snippets"; + sha256 = "0chs0h41nb2fdz02hdsaynz7ma8fg66a8m1q1np0464skrsdaj73"; + name = "react-snippets"; + }; + packageRequires = [ yasnippet ]; + meta = { + homepage = "https://melpa.org/#/react-snippets"; + license = lib.licenses.free; + }; + }) {}; real-auto-save = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "real-auto-save"; @@ -28218,6 +30601,27 @@ license = lib.licenses.free; }; }) {}; + reason-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "reason-mode"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "reasonml-editor"; + repo = "reason-mode"; + rev = "6b53815a0405be1f364a082d22fe5c900409a01a"; + sha256 = "1433bgakbfyf5d5vq69rwj4zg1h0xwjy9qsryvd9r1ssax2hzi7r"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/f9f1a18c13601f3a4fd7b1bbfe7d5da07746e492/recipes/reason-mode"; + sha256 = "07sirgj8bs9yv7pbx1lahwslvjd2aadkzkz7lsyw6xflj5fxpggr"; + name = "reason-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/reason-mode"; + license = lib.licenses.free; + }; + }) {}; rebecca-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rebecca-theme"; @@ -28407,27 +30811,6 @@ license = lib.licenses.free; }; }) {}; - relative-line-numbers = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "relative-line-numbers"; - version = "0.3.3"; - src = fetchFromGitHub { - owner = "Fanael"; - repo = "relative-line-numbers"; - rev = "38b5f9065aec008d9ad94fe5597338463aa1aa63"; - sha256 = "00ixh7siyc8m7j6hfaxnnl3ynfhzkccpjfc89v8bp3z83m4v269w"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4a2901c841d221bd782dae9059a070ae8130e1ae/recipes/relative-line-numbers"; - sha256 = "0mj1w5a4ax8hwz41vn02bacxlnifd14hvf3p288ljvwchvlf0hn3"; - name = "relative-line-numbers"; - }; - packageRequires = [ emacs ]; - meta = { - homepage = "https://melpa.org/#/relative-line-numbers"; - license = lib.licenses.free; - }; - }) {}; relax = callPackage ({ fetchFromGitHub, fetchurl, json ? null, lib, melpaBuild }: melpaBuild { pname = "relax"; @@ -28512,6 +30895,27 @@ license = lib.licenses.free; }; }) {}; + replace-with-inflections = callPackage ({ fetchFromGitHub, fetchurl, inflections, lib, melpaBuild, string-inflection }: + melpaBuild { + pname = "replace-with-inflections"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "knu"; + repo = "replace-with-inflections.el"; + rev = "e0486653abf7c248024800132df23993cd617892"; + sha256 = "1fygsr3vjpy0crxlyawwk6k21h1w3svgk79rm7fqg5xzilg6kf25"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7892eb506b8f4260bde4be2805bf3b2d594ab640/recipes/replace-with-inflections"; + sha256 = "1pqpin5ipm3g74zjh1kh6s1gh0aan6202p0y2q00d4ywbz9kn5s0"; + name = "replace-with-inflections"; + }; + packageRequires = [ inflections string-inflection ]; + meta = { + homepage = "https://melpa.org/#/replace-with-inflections"; + license = lib.licenses.free; + }; + }) {}; repo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "repo"; @@ -28620,12 +31024,12 @@ resize-window = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "resize-window"; - version = "0.5"; + version = "0.7"; src = fetchFromGitHub { owner = "dpsutton"; repo = "resize-window"; - rev = "e4879731f3a3bc2261d6ec465bff01f88bd77d1d"; - sha256 = "0lhf1sk1gx0vpy038bdnmlqjzpg4kchlladihk36pv4hgqn5r9w7"; + rev = "dcbbd30f4f4435070a66a22c5a169b752ca9f904"; + sha256 = "0x2kkf7bdj9s3993kdz74igi80rqma0w3hi7aggf0zwllqdcnzvk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/601a8d8f9046db6c4d50af983a11fa2501304028/recipes/resize-window"; @@ -28722,36 +31126,57 @@ license = lib.licenses.free; }; }) {}; - rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }: + rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: melpaBuild { pname = "rg"; - version = "1.2.0"; + version = "1.4.0"; src = fetchFromGitHub { owner = "dajva"; repo = "rg.el"; - rev = "32fc22b192cbad03fca3835f29c36ab4a90e50a0"; - sha256 = "168p4h7h9ik1f56cw0zr8brbn53d5jglv9r7i9zqh80zzhljw4xv"; + rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14"; + sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg"; sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm"; name = "rg"; }; - packageRequires = [ cl-lib emacs s seq ]; + packageRequires = [ cl-lib emacs s ]; meta = { homepage = "https://melpa.org/#/rg"; license = lib.licenses.free; }; }) {}; + rib-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rib-mode"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "blezek"; + repo = "rib-mode"; + rev = "4172e902fd66f235184c0eb6db7fd4a73dbd0866"; + sha256 = "0s9dyqv4yh0zxngay951g98g07029h51m4r2fc7ib2arw6srfram"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c38c18f3eb75d559752fcd9956464fef890be728/recipes/rib-mode"; + sha256 = "0qgbzrwbbgg4mzjb7yw85qs83b6hpldazip1cigywr46w7f81587"; + name = "rib-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/rib-mode"; + license = lib.licenses.free; + }; + }) {}; rich-minority = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rich-minority"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "Malabarba"; repo = "rich-minority"; - rev = "311ac8ee54078f95b7279e532da6cf5a2afb4125"; - sha256 = "11hwf9y5ax207w6rwrsmi3pmn7pn7ap6iys0z8hni2f5zzxjrmx3"; + rev = "3201f6e1769beb9f6cbbda392bef99fce337acf4"; + sha256 = "1qa447k3qq2x1i2nxbm60wzr8kaysk3cifl09c13sv97n4yq3x2b"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/1e6aed365c42987d64d0cd9a8a6178339b1b39e8/recipes/rich-minority"; @@ -28830,12 +31255,12 @@ rjsx-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild }: melpaBuild { pname = "rjsx-mode"; - version = "0.1.0"; + version = "0.3.0"; src = fetchFromGitHub { owner = "felipeochoa"; repo = "rjsx-mode"; - rev = "20c7bd0e704dfc1c391edf78765c8b0ec4f5b3c0"; - sha256 = "142zihjqgdq4bfy1hp0pz6k109ngii4kyc8xrdvd9yvzc0y5vp8a"; + rev = "79bedb1d188e209be5cfef3bea8906df9c509ab8"; + sha256 = "1dh76r9hy1d1f9xhdywslgv0w3c9nhsbwvpd8icgp300x5c6a3zh"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b83be7efdef2457e1320fe3dec46484fbd20263c/recipes/rjsx-mode"; @@ -28848,22 +31273,22 @@ license = lib.licenses.free; }; }) {}; - robe = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: + robe = callPackage ({ emacs, fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }: melpaBuild { pname = "robe"; - version = "0.7.9"; + version = "0.8.1"; src = fetchFromGitHub { owner = "dgutov"; repo = "robe"; - rev = "7c56895b6c2fd5d6c9572182f5de10ebe5bfc977"; - sha256 = "01xd3nc7bmf4r4d37x08rw2dlsg6gns8mraahi4rwkg6a9lwl44n"; + rev = "22457d6855fb39b8aedf068556d0e2fbd2874d5b"; + sha256 = "0ll7ivxqnglfb0i70ly6qq2yfw9cyi3vq3lmj4s6h6c1c7rm3gcq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/673f920d02fe761bc080b73db7d37dbf5b6d86d8/recipes/robe"; sha256 = "19py2lwi7maya90kh1mgwqb16j72f7gm05dwla6xrzq1aks18wrk"; name = "robe"; }; - packageRequires = [ inf-ruby ]; + packageRequires = [ emacs inf-ruby ]; meta = { homepage = "https://melpa.org/#/robe"; license = lib.licenses.free; @@ -28874,14 +31299,14 @@ pname = "robots-txt-mode"; version = "0.0.2"; src = fetchFromGitHub { - owner = "zonuexe"; + owner = "emacs-php"; repo = "robots-txt-mode"; rev = "edf1f8082c88cb2ff5a784ba00f92c535aaa1c7d"; sha256 = "11ig771ck610glb6f3322ka026ikq0b072rlq5z6ymr3rbxagn6j"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/1669c7a0d89ea36d61bfa57ef54ee1f203daff5f/recipes/robots-txt-mode"; - sha256 = "1q3fqaf9nysy9bhx4h9idgshxr65hfwnx05vlwazx7jd6bq6kxfh"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/eb13cb0dba1696cc51132cd1ff723fa17f892a7c/recipes/robots-txt-mode"; + sha256 = "00hxz4mygcxg7d8m2i4cm0bl82v3hw8wb4m8vv7g7fqkjp32c9qc"; name = "robots-txt-mode"; }; packageRequires = []; @@ -28977,12 +31402,12 @@ rtags = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "rtags"; - version = "2.9"; + version = "2.14"; src = fetchFromGitHub { owner = "Andersbakken"; repo = "rtags"; - rev = "ffa21b5408a30a346815bc4db6e74e2c6562d936"; - sha256 = "0828i5lcbspacydjnbrp3zhgbw2gggaaizzm0qqgmvry4cs79bxv"; + rev = "15ef9a8bab847773d6e247005be929422fc9c285"; + sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/rtags"; @@ -29037,6 +31462,27 @@ license = lib.licenses.free; }; }) {}; + ruby-electric = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "ruby-electric"; + version = "2.3.1"; + src = fetchFromGitHub { + owner = "knu"; + repo = "ruby-electric.el"; + rev = "3553448a780a1ea5c3b0e9becd820d4762876593"; + sha256 = "0h47lfgxjcyyl8gb1w7l8j8h65s3lp1hsq742sl7a1gf5y6bbm3v"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5fd5fa797a813e02a6433ecbe2bca1270a383753/recipes/ruby-electric"; + sha256 = "02xskivi917l8xyhrij084dmzwjq3knjcn65l2iwz34s767fbwl2"; + name = "ruby-electric"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/ruby-electric"; + license = lib.licenses.free; + }; + }) {}; ruby-end = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ruby-end"; @@ -29061,12 +31507,12 @@ ruby-hash-syntax = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ruby-hash-syntax"; - version = "0.4"; + version = "0.5"; src = fetchFromGitHub { owner = "purcell"; repo = "ruby-hash-syntax"; - rev = "a0362c2dc449a1e67ef75ad736bcf8b03b083226"; - sha256 = "01n9j7sag49m4bdl6065jklnxnc5kck51izg884s1is459qgy86k"; + rev = "bc05c3130a5d3237f04c6064297e56de5f73887d"; + sha256 = "1jwvyj3kqchd40h37m75ydl0gjrbm873dhfn1grqg4sgk60hr414"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7d21a43a4bf267507bdc746ec9d0fd82049c0af/recipes/ruby-hash-syntax"; @@ -29121,6 +31567,27 @@ license = lib.licenses.free; }; }) {}; + rufo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "rufo"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "danielma"; + repo = "rufo.el"; + rev = "4e7413fafd0320f30190ae9835ab021cf7a9ebdc"; + sha256 = "10gwr479q4kd6ndp9r2nzj7rzap21q3f0l3icrviah9l5xzdx2x0"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/123b89e06a44ef45150ca7243afc41302dfb6c6e/recipes/rufo"; + sha256 = "0pxsifcxic3q54rqj0jbj20hq7f2s4icl57lligf9g0w23qzj239"; + name = "rufo"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/rufo"; + license = lib.licenses.free; + }; + }) {}; runner = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "runner"; @@ -29229,12 +31696,12 @@ s = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "s"; - version = "1.11.0"; + version = "1.12.0"; src = fetchFromGitHub { owner = "magnars"; repo = "s.el"; - rev = "a56f0d0fedf9754e1728067ac868100f2499357d"; - sha256 = "08vf62fcrnbmf2ppb759kzznjdz8x72fqdwbc4n8nbswrwgm2ikl"; + rev = "12f116d58ac03706496bd682c6449b452681874e"; + sha256 = "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/s"; @@ -29376,12 +31843,12 @@ sayid = callPackage ({ cider, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sayid"; - version = "0.0.14"; + version = "0.0.15"; src = fetchFromGitHub { owner = "bpiel"; repo = "sayid"; - rev = "3e5456cade044f01eb0753aabc9e50868000bd14"; - sha256 = "1asphbijh5y4ax03x1cn02l4ya8v44s23ani91a0d52msdaxbnyw"; + rev = "b44b6d346604f8d1ef9b9180be359ce1e601a298"; + sha256 = "0ggk60l132qgscgqbx4fdhzx6nlv2k7gbrjapkdl15slz2kyq03d"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/2bd2e05f9c9328d8f9ae434c86697a4a04af8b0d/recipes/sayid"; @@ -29394,22 +31861,22 @@ license = lib.licenses.free; }; }) {}; - sbt-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + sbt-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sbt-mode"; - version = "0.2"; + version = "0.3"; src = fetchFromGitHub { owner = "ensime"; repo = "emacs-sbt-mode"; - rev = "217d56bc2ec93a77a9e644233f4fb1815e437c61"; - sha256 = "1lvf7y1n63p8jvnp6ppwmxq2s6h9sk45319576f3s28ixsfa6cp2"; + rev = "bdf31a1ffe637d1445b149804d5f5cc29333a1bd"; + sha256 = "0ygp0c2hy4zp5x0ghplxf2fhrf16cn37sk2zf6i43zqz6gydzq8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/364abdc3829fc12e19f00b534565227dbc30baad/recipes/sbt-mode"; sha256 = "0v0n70czgkdijnw5jd4na41vlrmqcshvr8gdpv0bv55ilqhiihc8"; name = "sbt-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/sbt-mode"; license = lib.licenses.free; @@ -29418,12 +31885,12 @@ scala-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "scala-mode"; - version = "0.23"; + version = "1.0.0"; src = fetchFromGitHub { owner = "ensime"; repo = "emacs-scala-mode"; - rev = "970d88eeff82df635ee12336ab1eb185585f30c6"; - sha256 = "0wfv20dyb13v7fbfsvy0k5dajvmyyhn80l6xyx6kppiv3qmy9s90"; + rev = "56cba2903cf6e12c715dbb5c99b34c97b2679379"; + sha256 = "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/564aa1637485192a97803af46b3a1f8e0d042c9a/recipes/scala-mode"; @@ -29522,11 +31989,11 @@ secretaria = callPackage ({ alert, emacs, f, fetchgit, fetchurl, lib, melpaBuild, org, s }: melpaBuild { pname = "secretaria"; - version = "0.2.4"; + version = "0.2.7"; src = fetchgit { url = "https://bitbucket.org/shackra/secretaria.el"; - rev = "aae30bfc93fa5ea846bce086b22321c46b94ff7b"; - sha256 = "18ad7q2a131gpvjj8923vp06zh0zfdy1589vs3f09v16aazbcfqc"; + rev = "1cd32d957864be1ba5c44a3f505f662832169a28"; + sha256 = "1xvwzmcfwfxsm9chbjnqjsipmv5pqpzk5d0ybw3rcdc47nag3jdg"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7b4c9ccbf2eeaa290f3b9d1e5eaaeb5b5547b365/recipes/secretaria"; @@ -29542,12 +32009,12 @@ sekka = callPackage ({ cl-lib ? null, concurrent, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: melpaBuild { pname = "sekka"; - version = "1.6.6"; + version = "1.8.0"; src = fetchFromGitHub { owner = "kiyoka"; repo = "sekka"; - rev = "987c1cce65c8f30b12cdb5991e1b1ad9da766916"; - sha256 = "03930cfqq97f7m6z9da2y9388iyymc56b1vdrl5a6mpggv3wifn7"; + rev = "d1fd5d47aacba723631d5d374169a45ff2051c41"; + sha256 = "035rx863cj3hs1lhayff0810cpp6kv8nwc1c0y54gvdk1bb333x0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/350bbb5761b5ba69aeb4acf6d7cdf2256dba95a6/recipes/sekka"; @@ -29602,27 +32069,6 @@ license = lib.licenses.free; }; }) {}; - sentence-highlight = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sentence-highlight"; - version = "0.1"; - src = fetchFromGitHub { - owner = "sbelak"; - repo = "sentence-highlight"; - rev = "6f2bc989207ec8cf641e44924ef530a2e436eedb"; - sha256 = "0740swhm3kzjx58a6nr9992p05q4kzvyham8g7kds4ydd7xsd9am"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/sentence-highlight"; - sha256 = "07pyyl74cvnz6dd85ghv3zdrir08317lvnzm5nf1n3p85aqjpcxm"; - name = "sentence-highlight"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sentence-highlight"; - license = lib.licenses.free; - }; - }) {}; servant = callPackage ({ ansi, commander, dash, epl, f, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up, web-server }: melpaBuild { pname = "servant"; @@ -29731,16 +32177,16 @@ sexy-monochrome-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sexy-monochrome-theme"; - version = "2.1"; + version = "3.1"; src = fetchFromGitHub { - owner = "nuncostans"; + owner = "voloyev"; repo = "sexy-monochrome-theme"; - rev = "d74cf7a50852c469ad13c634df74be2fcb3f3a96"; - sha256 = "14va3sy94vpkn4fc9g7gsxk3anl25jvp9a92c8ppndqzfisy7vgg"; + rev = "f64714a176d9212c9fa82355dd8ec89587ce13f0"; + sha256 = "17ahrdyk2v7vz13b4934xn8xjza4b7bfrkq8n42frq3pc8mgwqfd"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/9a09ffb7d271773f6cfa7c7eeaba45a717a5bdca/recipes/sexy-monochrome-theme"; - sha256 = "1qmbb2aaa1lc18l9kk42iq466hy2mg7565b0gb7hdvfqsi05d8dg"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/dfd5ae9a93e036d11899c7adffdf6b63c2b21381/recipes/sexy-monochrome-theme"; + sha256 = "0rlx4029zxrnzzqspn8zrp3q6w0n46q24qk7za46hvxdsmgdpxbq"; name = "sexy-monochrome-theme"; }; packageRequires = []; @@ -29752,12 +32198,12 @@ shackle = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shackle"; - version = "0.9.2"; + version = "1.0.0"; src = fetchFromGitHub { owner = "wasamasa"; repo = "shackle"; - rev = "979b021077655ca38749a60c9752c0817e8fd93e"; - sha256 = "11qp4gqxfi5d6krvxlqxfn58b1kcgsnldpi54r8lx6mis8l0f4wl"; + rev = "55df581cdb3cfaf9ebf9c54d8849f8f5775cf74b"; + sha256 = "1s59v6fnyzvgnbjcd1gpll4xp8316dqmdpi77382w0vjfcrsvbih"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/806e7d00f763f3fc4e3b8ebd483070ac6c5d0f21/recipes/shackle"; @@ -29938,6 +32384,27 @@ license = lib.licenses.free; }; }) {}; + shen-elisp = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "shen-elisp"; + version = "0.1"; + src = fetchFromGitHub { + owner = "deech"; + repo = "shen-elisp"; + rev = "ffe17dee05f75539cf5e4c59395e4c7400ececaa"; + sha256 = "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/shen-elisp"; + sha256 = "045nawzyqaxd3g5f56fxfy680pl18x67w0wi28nrq4l4681w9xyq"; + name = "shen-elisp"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/shen-elisp"; + license = lib.licenses.free; + }; + }) {}; shift-number = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shift-number"; @@ -30022,6 +32489,48 @@ license = lib.licenses.free; }; }) {}; + shr-tag-pre-highlight = callPackage ({ emacs, fetchFromGitHub, fetchurl, language-detection, lib, melpaBuild }: + melpaBuild { + pname = "shr-tag-pre-highlight"; + version = "2"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "shr-tag-pre-highlight.el"; + rev = "63eb0b2a4c1caf1004bac8e002ff8b7477871e36"; + sha256 = "14b398k7rd0c2ymvg8wyq65fhggkm0camgvqr7j6ia2y0kairxba"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7be3c139bee02e8bd9a9830026cbfdd17629ac4d/recipes/shr-tag-pre-highlight"; + sha256 = "1v8fqx8bd5504r2mflq6x8xs3k0py3bgsnadz3bjs68yhaxacj3v"; + name = "shr-tag-pre-highlight"; + }; + packageRequires = [ emacs language-detection ]; + meta = { + homepage = "https://melpa.org/#/shr-tag-pre-highlight"; + license = lib.licenses.free; + }; + }) {}; + shrink-path = callPackage ({ dash, f, fetchFromGitLab, fetchurl, lib, melpaBuild, s }: + melpaBuild { + pname = "shrink-path"; + version = "0.3.1"; + src = fetchFromGitLab { + owner = "bennya"; + repo = "shrink-path.el"; + rev = "9b8cfb59a2dcee8b39b680ab9adad5ecb1f53c0b"; + sha256 = "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/86b0d105e8a57d5f0bcde779441dc80b85e170ea/recipes/shrink-path"; + sha256 = "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb"; + name = "shrink-path"; + }; + packageRequires = [ dash f s ]; + meta = { + homepage = "https://melpa.org/#/shrink-path"; + license = lib.licenses.free; + }; + }) {}; shrink-whitespace = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "shrink-whitespace"; @@ -30064,6 +32573,27 @@ license = lib.licenses.free; }; }) {}; + shx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "shx"; + version = "0.0.10"; + src = fetchFromGitHub { + owner = "riscy"; + repo = "shx-for-emacs"; + rev = "e53d798ba4a4c07a3ee1c194840c937b18c02087"; + sha256 = "0sig9gpa2wn23skwny9jpvwxax0gbwp143anvgkc5gm87iw2jgrd"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/7a2ff78ae3c4289ebf9e06cdfd8f8082c395a16f/recipes/shx"; + sha256 = "0h5ldglx4y85lm0pfilasnch2k82mlr7rb20qvarzwd41hb1az1k"; + name = "shx"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/shx"; + license = lib.licenses.free; + }; + }) {}; sift = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sift"; @@ -30085,6 +32615,27 @@ license = lib.licenses.free; }; }) {}; + silkworm-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "silkworm-theme"; + version = "0.1"; + src = fetchFromGitHub { + owner = "mswift42"; + repo = "silkworm-theme"; + rev = "7951b53e5caf9daf6a5a15a57ae3a668cb78bd7b"; + sha256 = "1q21886qsam8y3s60zlfh48w0jl67q14qg9pzda7j2jcbj1q6r91"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/9451d247693c3e991f79315868c73808c0a664d4/recipes/silkworm-theme"; + sha256 = "1zbrjqmhf80qs3i910sixirrv42rxkqdrg2z03gnz1g885gpcn13"; + name = "silkworm-theme"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/silkworm-theme"; + license = lib.licenses.free; + }; + }) {}; simple-bookmarks = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "simple-bookmarks"; @@ -30130,12 +32681,12 @@ simpleclip = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "simpleclip"; - version = "1.0.0"; + version = "1.0.4"; src = fetchFromGitHub { owner = "rolandwalker"; repo = "simpleclip"; - rev = "eba19a21da2e4d1e11abdc158f72d6513afaa669"; - sha256 = "0v0vmkix9f0hb2183irr6xra8mwi47g6rn843sas7jy2ycaqd91v"; + rev = "d461c462c237cd896553adb468cd77499d0d26ad"; + sha256 = "1dfa1sa7rbadj36nbzyxbpbvkdlh1s5n0mx6hxn52psqin1ra6yn"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7c921e27d6aafc1b82d37f6beb8407840034377a/recipes/simpleclip"; @@ -30235,12 +32786,12 @@ skewer-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, simple-httpd }: melpaBuild { pname = "skewer-mode"; - version = "1.6.2"; + version = "1.7.0"; src = fetchFromGitHub { owner = "skeeto"; repo = "skewer-mode"; - rev = "8a3a22ef4fe4d9d0831e82fde08c6355d0b19ed4"; - sha256 = "05jndz0c26q60s416vqgvr66axdmxb7qsr2g70fvl5iqavnayhpv"; + rev = "51f3bbeafea6701de78190a395f6376a9974f1e5"; + sha256 = "0k8yc75d7hly4qiqxvg027cwmcck63nmbyr75qyjq8kc0vk0x5mr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/10fba4f7935c78c4fc5eee7dbb161173dea884ba/recipes/skewer-mode"; @@ -30319,12 +32870,12 @@ slime = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, macrostep, melpaBuild }: melpaBuild { pname = "slime"; - version = "2.19"; + version = "2.20"; src = fetchFromGitHub { owner = "slime"; repo = "slime"; - rev = "6e20d01e446334848ea31ace0ce041cec25647ab"; - sha256 = "1ywlbdk9ywfkv8z6pb69r29nh03krfdg676d086i8qjaas7ly2yp"; + rev = "f223388c78ea51ce7717e9bbae14c50ad2386c2c"; + sha256 = "07jks9fnqjv2i9sjfpgj7r3a7g5aha4aipsffjbnw1qd930ygw83"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/14c60acbfde13d5e9256cea83d4d0d33e037d4b9/recipes/slime"; @@ -30379,27 +32930,6 @@ license = lib.licenses.free; }; }) {}; - slime-ritz = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "slime-ritz"; - version = "0.6.0"; - src = fetchFromGitHub { - owner = "pallet"; - repo = "ritz"; - rev = "1cc6faedae26323994ea8dd1a4f555db8acbf244"; - sha256 = "0lp584k35asqlvbhglv124jazdgp3h7pzl0akfwbdmby9zayqk96"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/669a4ae76deea86084307ac3c2d26072e4b8fe17/recipes/slime-ritz"; - sha256 = "1y1439y07l1a0sp9wn110hw4yyxj8n1cnd6h17rmsr549m2qbg1a"; - name = "slime-ritz"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/slime-ritz"; - license = lib.licenses.free; - }; - }) {}; slime-volleyball = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "slime-volleyball"; @@ -30421,6 +32951,27 @@ license = lib.licenses.free; }; }) {}; + slstats = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "slstats"; + version = "1.10"; + src = fetchFromGitHub { + owner = "davep"; + repo = "slstats.el"; + rev = "e9696066abf3f2b7b818a57c062530dfd9377033"; + sha256 = "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fe7c8c241cc6920bbedb6711db63ea28ed633327/recipes/slstats"; + sha256 = "0z5y2fmb3v16g5gf87c9gll04wbjp3d1cf7gm5cxi4w3y1kw4r7q"; + name = "slstats"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/slstats"; + license = lib.licenses.free; + }; + }) {}; sly = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sly"; @@ -30505,6 +33056,27 @@ license = lib.licenses.free; }; }) {}; + smart-semicolon = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "smart-semicolon"; + version = "0.2.1"; + src = fetchFromGitHub { + owner = "iquiw"; + repo = "smart-semicolon"; + rev = "c11096679dbed3875c37413337ee490ee7951b63"; + sha256 = "1v6z3a1f6nxc62n7595qnji39ywdsz7xy5bkl2218v3y7gkbc518"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/fe339b95636b02ceb157294055d2f5f4c4b0b8cf/recipes/smart-semicolon"; + sha256 = "1vq6l3vc615w0p640wy226z5i7dky666sgzczkngv07kag0iwqp0"; + name = "smart-semicolon"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/smart-semicolon"; + license = lib.licenses.free; + }; + }) {}; smart-tabs-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smart-tabs-mode"; @@ -30529,12 +33101,12 @@ smartparens = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "smartparens"; - version = "1.9.0"; + version = "1.10.1"; src = fetchFromGitHub { owner = "Fuco1"; repo = "smartparens"; - rev = "253afc49ff30a19ea1a7af10e1e8abdb46546ac1"; - sha256 = "0ml0fdvgx60vqansh4j17ihkrnyjdndkijysqhqx1q78d97vnhi4"; + rev = "7841b2f02a1a99e1cb166d595f24f16a514ccbb5"; + sha256 = "062g6y8an4kvfym2w56qy2iqd4ngxdxba38136ph0ckkzl0yrl7l"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/bd98f85461ef7134502d4f2aa8ce1bc764f3bda3/recipes/smartparens"; @@ -30718,12 +33290,12 @@ snakemake-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }: melpaBuild { pname = "snakemake-mode"; - version = "1.2.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "kyleam"; repo = "snakemake-mode"; - rev = "15803162483e635f3e22b2efea33ccad725e0535"; - sha256 = "1nc8xp22i57kf89x0qh69dspl9hl710m01gdr35ph5gl8ycmyir5"; + rev = "22b3efd741e26f59e18c9fd28691d8b84c9130ab"; + sha256 = "0hjp5ci7miggw0gs2y8q867gi7p3dq2yyfkckkh52isrp0yvz0wf"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3a5b51fee1c9e6ce7e21555faa355d118d34b8d/recipes/snakemake-mode"; @@ -30757,6 +33329,48 @@ license = lib.licenses.free; }; }) {}; + snazzy-theme = callPackage ({ base16-theme, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "snazzy-theme"; + version = "1.0"; + src = fetchFromGitHub { + owner = "weijiangan"; + repo = "emacs-snazzy"; + rev = "578d7ebc4ed91c0a630b652c4b6fdd54d9ae16cd"; + sha256 = "0gykymah4ap7zgjr7fkir21avcdhgy6n88nwxl1iynim3vkq441v"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/18c89a612418e0f49b7e6ae29a678d2fc1ffaf3d/recipes/snazzy-theme"; + sha256 = "0srmhwhqrp1s01p1znhjzs254l3r2i6c91v7cnlwlvrls1sbh32k"; + name = "snazzy-theme"; + }; + packageRequires = [ base16-theme emacs ]; + meta = { + homepage = "https://melpa.org/#/snazzy-theme"; + license = lib.licenses.free; + }; + }) {}; + snoopy = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "snoopy"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "anmonteiro"; + repo = "snoopy-mode"; + rev = "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386"; + sha256 = "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/4a882cd92964ac195a09469006c9a44dc202f000/recipes/snoopy"; + sha256 = "1wa8jykqyj6rxqfhwbiyli6yh8s7n0pqv7fc9sfaymarda93zbgi"; + name = "snoopy"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/snoopy"; + license = lib.licenses.free; + }; + }) {}; socyl = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, s }: melpaBuild { pname = "socyl"; @@ -30778,6 +33392,27 @@ license = lib.licenses.free; }; }) {}; + solaire-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "solaire-mode"; + version = "1.0.2"; + src = fetchFromGitHub { + owner = "hlissner"; + repo = "emacs-solaire-mode"; + rev = "0f467e5f309e5a36280e06b40c0e6bbe90e06358"; + sha256 = "1jka6213sw3rqan6s31s1ndyd0h2gwxvl0rcfm4jqc68mfyikzma"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/52c69070eef3003eb53e1436c538779c74670ce6/recipes/solaire-mode"; + sha256 = "0pvgip12xl16rwz4wqmqjd8nhh3a299aknfsghazmxigamlmlsl5"; + name = "solaire-mode"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/solaire-mode"; + license = lib.licenses.free; + }; + }) {}; solarized-theme = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "solarized-theme"; @@ -30823,12 +33458,12 @@ sotclojure = callPackage ({ cider, clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, sotlisp }: melpaBuild { pname = "sotclojure"; - version = "1.2"; + version = "1.3.1"; src = fetchFromGitHub { owner = "Malabarba"; repo = "speed-of-thought-clojure"; - rev = "8d879ef41c004726cca3c27a81b7543cc273c19b"; - sha256 = "13yn2yadkpmykaly3l3xsq1bhm4sxyk8k1px555y11qi0mfdcjhh"; + rev = "ceac82aa691e8d98946471be6aaff9c9a4603c32"; + sha256 = "1a6riq7ksk5m76dsgc75d8b992nyr50l48l8cpms9064m6b0r9jv"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/3a2ccef8af91eada4449d9cd4bda6bd28272722e/recipes/sotclojure"; @@ -30925,27 +33560,6 @@ license = lib.licenses.free; }; }) {}; - sourcetalk = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, request }: - melpaBuild { - pname = "sourcetalk"; - version = "1.2.0"; - src = fetchFromGitHub { - owner = "malroc"; - repo = "sourcetalk_emacs"; - rev = "aced89fa8776e6d5e42dad4a863e159959f08de6"; - sha256 = "0j4qm1y7rhb95k1zbl3c60a46l9rchzslzq36mayyw61s6yysjnv"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e51aed64ffd0d2583c54035bd3e822f8adbaedde/recipes/sourcetalk"; - sha256 = "0qaf2q784xgl1s3m88jpwdzghpi4f3nybga3lnr1w7sb7b3yvj3z"; - name = "sourcetalk"; - }; - packageRequires = [ request ]; - meta = { - homepage = "https://melpa.org/#/sourcetalk"; - license = lib.licenses.free; - }; - }) {}; spaceline = callPackage ({ cl-lib ? null, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, powerline, s }: melpaBuild { pname = "spaceline"; @@ -30967,6 +33581,27 @@ license = lib.licenses.free; }; }) {}; + spaceline-all-the-icons = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, spaceline }: + melpaBuild { + pname = "spaceline-all-the-icons"; + version = "1.4.0"; + src = fetchFromGitHub { + owner = "domtronn"; + repo = "spaceline-all-the-icons.el"; + rev = "7eafe2d7a81f8d10e03498bdcc3bec0ea50f905d"; + sha256 = "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/d039e057c1d441592da8f54e6d524b395b030375/recipes/spaceline-all-the-icons"; + sha256 = "1h6clkr2f29k2vw0jcrmnfbjpphaxm7s3zai6pn6qag32bgm3jq6"; + name = "spaceline-all-the-icons"; + }; + packageRequires = [ all-the-icons emacs memoize spaceline ]; + meta = { + homepage = "https://melpa.org/#/spaceline-all-the-icons"; + license = lib.licenses.free; + }; + }) {}; sparkline = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sparkline"; @@ -30991,12 +33626,12 @@ sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sparql-mode"; - version = "2.0.0"; + version = "3.0.0"; src = fetchFromGitHub { owner = "ljos"; repo = "sparql-mode"; - rev = "33da09b3895e03e64959005678d448ab82e527b6"; - sha256 = "17fpfc0hc39y9h12mj62fwfga4mhk0c9fm2qnbnzf4i3ajhp7r2w"; + rev = "e220a0c0c478fee0be3622442651981cdd82090c"; + sha256 = "1k1ih6y9yq1fx13863yacx69v6f77b8xhkrx5i2dpm4h7wki1dg4"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode"; @@ -31201,12 +33836,12 @@ sqlup-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "sqlup-mode"; - version = "0.7.1"; + version = "0.8.0"; src = fetchFromGitHub { owner = "Trevoke"; repo = "sqlup-mode.el"; - rev = "65e75ebc7d85a63e4e27900ba746623a8e4bfa95"; - sha256 = "1yiz1k2dg010dypql5l9ahcl33nvqxl731wghv4jvp6bdxcf90g3"; + rev = "04970977b4abb4d44301651618bbf1cdb0b263dd"; + sha256 = "14s66xrabj269z7f94iynsla96bka7zac011psrbcfyy4m8mlamz"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7fabdb05de9b8ec18a3a566f99688b50443b6b44/recipes/sqlup-mode"; @@ -31285,12 +33920,12 @@ ssh-deploy = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "ssh-deploy"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "cjohansson"; repo = "emacs-ssh-deploy"; - rev = "3569e5ea6892d6d7f4ef36bf41462af011e1a114"; - sha256 = "0l3h6w13xc81i6vavfsg617ly8m2y8yjzbwa6zwwkfqi301kgpij"; + rev = "dbd8608551bc9e05280415b7b3937b1a151c7718"; + sha256 = "1045snp3xdfa9nf34b1f0w4ql8kjl5m2jl7imxj5n46g579g9dhr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ssh-deploy"; @@ -31387,25 +34022,6 @@ license = lib.licenses.free; }; }) {}; - stgit = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "stgit"; - version = "0.17.1"; - src = fetchgit { - url = "git://repo.or.cz/stgit.git"; - rev = "48e5cef14cea5c810833d119900cd484c2a6ca85"; - sha256 = "0hgqxhqnc93pnh6j3hyi92hfx1cbdjylzqb2nl6ldsz1g2wdcw9r"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/4ed7cc025d22d8e1e63464e43f733c78421c91c7/recipes/stgit"; - sha256 = "102s9lllrcxsqs0lgbrcljwq1l3s8ri4276wck6rcypck5zgzj89"; - name = "stgit"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/stgit"; - license = lib.licenses.free; - }; - }) {}; string-edit = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "string-edit"; @@ -31594,57 +34210,15 @@ license = lib.licenses.free; }; }) {}; - subshell-proc = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "subshell-proc"; - version = "0.1"; - src = fetchFromGitHub { - owner = "andrewmains12"; - repo = "subshell-proc"; - rev = "bf475eb7b0684af967755e91c9cabd19f953b03b"; - sha256 = "0mx892vn4a32df30iqmf2vsz1gdl3i557fw0194g6a66n9w2q7xf"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/subshell-proc"; - sha256 = "1ma5i4ka48w46ksxyppjnyq2ka03b2ylsmw3jv1hp35f3ycqpbqp"; - name = "subshell-proc"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/subshell-proc"; - license = lib.licenses.free; - }; - }) {}; - sudden-death = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "sudden-death"; - version = "0.2"; - src = fetchFromGitHub { - owner = "yewton"; - repo = "sudden-death.el"; - rev = "c58fb9a672f306604dde4fbb0ff079e65a5e40be"; - sha256 = "1kmyivsyxr6gb2k36ssyr779rpk8qsrb27q5rjsir9fgc95qhvjb"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/24c94bff44029b6493575a9e09d7deb78db095a9/recipes/sudden-death"; - sha256 = "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh"; - name = "sudden-death"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/sudden-death"; - license = lib.licenses.free; - }; - }) {}; suggest = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, loop, melpaBuild, s }: melpaBuild { pname = "suggest"; - version = "0.2"; + version = "0.5"; src = fetchFromGitHub { owner = "Wilfred"; repo = "suggest.el"; - rev = "588ec8b9476c8d7f5f16018a7aaf90ee828fb4f5"; - sha256 = "1ckvsckqlbdcw6nbsrh9xizbpkr7r88ks39av8dhn5n412c5jm4g"; + rev = "05beef9ecf94107d72d0070fa092a8392505b012"; + sha256 = "008d9kk8vb90n8j5dvw1rslfny66q012022na03dzbnmq3f73k7a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b9fd27e812549587dc2ec26bb58974177ff263ff/recipes/suggest"; @@ -31660,12 +34234,12 @@ suomalainen-kalenteri = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "suomalainen-kalenteri"; - version = "2015.11.29"; + version = "2017.8.1"; src = fetchFromGitHub { owner = "tlikonen"; repo = "suomalainen-kalenteri"; - rev = "b7991cb35624ebc04a89bbe759d40f186c9c097e"; - sha256 = "1b637p2cyc8a83qv9vba4yamzhk08f62zykqh5p35jwvym8wkann"; + rev = "c702e33cb6e13cb28bd761844e95be112a3c04f3"; + sha256 = "13avc3ba6vhysmhrcxfpkamggfpal479gn7k9n7509dpwp06dv8h"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/181adf1b16253481674663fd28b195172231b7da/recipes/suomalainen-kalenteri"; @@ -31752,8 +34326,8 @@ sha256 = "0h96pwvf1smd2kakd5ydsn6q59dv9sj706p1ak86aj82m028wzk5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a44a6577740b98749fe2703b32d70f15a473eb46/recipes/swbuff"; - sha256 = "0pi816ljprpl8p2pigfyzm9ripvrc4hvnpkjdsg30mw8iyrk66yn"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/39e87d0e01a4a836671b6d6e22091df6ebecf566/recipes/swbuff"; + sha256 = "1bqnq6zxkq4yyq3khnkbprgwq5k93rpcmmkjbr9wqf9drfld1bkk"; name = "swbuff"; }; packageRequires = []; @@ -31783,22 +34357,22 @@ license = lib.licenses.free; }; }) {}; - swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "swift-mode"; - version = "2.2.4"; + version = "3.0"; src = fetchFromGitHub { owner = "chrisbarrett"; repo = "swift-mode"; - rev = "e91e924c225b7bfb7aa6e4a84b5d379c6268014a"; - sha256 = "0nfh5a3lnrj9z1qfgdn28mk5f9cn5fzpdjvpcv44kab3dff2irnl"; + rev = "e8d9a5d7af59e8be25997b8b048d7c3e257cd0b0"; + sha256 = "035478shf1crb1qnhk5rmz08xgn0z2p6fsw0yii1a4q5f3h85xrc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode"; sha256 = "1imr53f8agfza9zxs1h1mwyhg7yaywqqffd1lsvm1m84nvxvri2d"; name = "swift-mode"; }; - packageRequires = [ emacs ]; + packageRequires = [ emacs seq ]; meta = { homepage = "https://melpa.org/#/swift-mode"; license = lib.licenses.free; @@ -31888,22 +34462,22 @@ license = lib.licenses.free; }; }) {}; - switch-window = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + switch-window = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "switch-window"; - version = "1.0.0"; + version = "1.5.1"; src = fetchFromGitHub { owner = "dimitri"; repo = "switch-window"; - rev = "cd4b06121aa5bac4c4b13b63526a99008def5f2b"; - sha256 = "1zpfilcaycj0l2q3zyvpjbwp5j3d9rrkacd5swzlr1n1klvbji48"; + rev = "f4e3fde4d4717b75716f287577e84b7ee4f33d8d"; + sha256 = "15ks1x62rn0q8lgy4x749mizvanzl9lkzgrsasrdx0v4ydmj3n7c"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7d2204e3b53ade1e400e143ac219f3c7ab63a1e9/recipes/switch-window"; sha256 = "02f0zjvlzms66w1ryhk1cbr4rqwklzvgcjfiicj0lcnqqx61m2k2"; name = "switch-window"; }; - packageRequires = []; + packageRequires = [ cl-lib ]; meta = { homepage = "https://melpa.org/#/switch-window"; license = lib.licenses.free; @@ -32079,12 +34653,12 @@ systemd = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "systemd"; - version = "1.5"; + version = "1.6"; src = fetchFromGitHub { owner = "holomorph"; repo = "systemd-mode"; - rev = "4c1b2befd0c853dcc7bca52d9b084933c3a08254"; - sha256 = "1sdrga3mmajai2jcf4zpcii0l2b9wch8rhdsbjlzx76ia5snp23l"; + rev = "1e7567a9973bf80cab0d7e0355656a84bee7ca96"; + sha256 = "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/ca810e512c357d1d0130aeeb9b46b38c595e3351/recipes/systemd"; @@ -32223,22 +34797,22 @@ license = lib.licenses.free; }; }) {}; - telephone-line = callPackage ({ cl-lib ? null, eieio ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }: + telephone-line = callPackage ({ cl-generic, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }: melpaBuild { pname = "telephone-line"; - version = "0.3"; + version = "0.4"; src = fetchFromGitHub { owner = "dbordak"; repo = "telephone-line"; - rev = "70c113bea37719c83961023afd893044398e681d"; - sha256 = "0smdlzrcbmip6c6c3rd0871wv5xyagavwsxhhgvki6ybyzdj9a19"; + rev = "a83dcda21b0f6e10e51c3cded7da9a5d2ead5f34"; + sha256 = "1cg34l6jq75mcqnb3p93z0kv1arvnswm8nkk39fmryand2yygnl9"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9c998b70365fb0a210c3b9639db84034c7d45097/recipes/telephone-line"; sha256 = "0dyh9h1yk9y0217b6rxsm7m372n910vpfgw5w23lkkrwa8x8qpx3"; name = "telephone-line"; }; - packageRequires = [ cl-lib eieio emacs s seq ]; + packageRequires = [ cl-generic cl-lib emacs seq ]; meta = { homepage = "https://melpa.org/#/telephone-line"; license = lib.licenses.free; @@ -32625,12 +35199,12 @@ textx-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "textx-mode"; - version = "0.0.1"; + version = "0.0.2"; src = fetchFromGitHub { owner = "novakboskov"; repo = "textx-mode"; - rev = "1f9ae651508176b4cb1ae9a03aec06049f333c61"; - sha256 = "00hdnfa27rb9inqq4dn51v8jrbsl4scql0cngp6fxdaf93j1p5gk"; + rev = "72f9f0c5855b382024f0da8f56833c22a70a5cb3"; + sha256 = "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/dada0378af342e0798c418032a8dcc7dfd80d600/recipes/textx-mode"; @@ -32664,15 +35238,36 @@ license = lib.licenses.free; }; }) {}; + theme-looper = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "theme-looper"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "myTerminal"; + repo = "theme-looper"; + rev = "5e3a3ea7ad31d4b38efa2cc08f0063b230736da9"; + sha256 = "06khrrjlhnzckr2zisdbx4pj6r8kmv7dbdzvzh74qz79x337lvzn"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/theme-looper"; + sha256 = "018bixcbzri3zsasy1pp2qfvgd679ylpi9gq26qv9iwlfhlrpwgf"; + name = "theme-looper"; + }; + packageRequires = [ cl-lib ]; + meta = { + homepage = "https://melpa.org/#/theme-looper"; + license = lib.licenses.free; + }; + }) {}; thinks = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "thinks"; - version = "1.10"; + version = "1.12"; src = fetchFromGitHub { owner = "davep"; repo = "thinks.el"; - rev = "370d399703d232010599d24a242b5f91e25a1b9d"; - sha256 = "1kac32mgk2gcchh9lvnny81xq03h4656v05xyd3fpkpr30sisyrq"; + rev = "7bdc418ff946d0cc9ea4cc73d38b3c71ffaa838d"; + sha256 = "0wf3nikpnn0yivlmp6plyaiydm56mp3f91lljb1kay64nqgnfq65"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/439957cabf379651dc243219a83c3c96bae6f8cf/recipes/thinks"; @@ -32706,22 +35301,43 @@ license = lib.licenses.free; }; }) {}; - tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, typescript-mode }: + tickscript-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "tickscript-mode"; + version = "0.4"; + src = fetchFromGitHub { + owner = "msherry"; + repo = "tickscript-mode"; + rev = "9acf389dd055ae77c92170802769838810472490"; + sha256 = "1v60y244papzrirwqk9c2wcwgz4qp9h7m3887kvgr5ffn5imjss8"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode"; + sha256 = "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54"; + name = "tickscript-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/tickscript-mode"; + license = lib.licenses.free; + }; + }) {}; + tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s, typescript-mode }: melpaBuild { pname = "tide"; - version = "2.2.2"; + version = "2.5.3"; src = fetchFromGitHub { owner = "ananthakumaran"; repo = "tide"; - rev = "eabcad4dbebb705d4e366f90344ea543068d2dc4"; - sha256 = "1ykxsr8q9gwx2d8b0v2xf4glchwg3ikcx60a5r4phw1nlwff8gg7"; + rev = "e5d1d3852aaf63cbfb0abaec1792a62bed024a72"; + sha256 = "1kwssyzbjwl2vyll0p49l57z41yv6k1jnzbsdnh0d1h81nixg5wk"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a21e063011ebbb03ac70bdcf0a379f9e383bdfab/recipes/tide"; sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1"; name = "tide"; }; - packageRequires = [ cl-lib dash flycheck typescript-mode ]; + packageRequires = [ cl-lib dash flycheck s typescript-mode ]; meta = { homepage = "https://melpa.org/#/tide"; license = lib.licenses.free; @@ -32855,12 +35471,12 @@ tracking = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tracking"; - version = "2.4"; + version = "2.6"; src = fetchFromGitHub { owner = "jorgenschaefer"; repo = "circe"; - rev = "87f2d8604e41c6caf68cff3fcf61b1f4d4e8a961"; - sha256 = "19mjzws9hiqhaa8v0wxa369m3qzam2axvhcqcrggdjjsr7hyhvwr"; + rev = "59f1096238e6c30303a6fe9fc1c635f49e5946c6"; + sha256 = "19h3983zy3f15cgs86irvbdzz55qyjm48qd7gjlzcxplr7vnnh0j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/a2b295656d53fddc76cacc86b239e5648e49e3a4/recipes/tracking"; @@ -32876,12 +35492,12 @@ transmission = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }: melpaBuild { pname = "transmission"; - version = "0.10"; + version = "0.12"; src = fetchFromGitHub { owner = "holomorph"; repo = "transmission"; - rev = "fc0af768454f7964ba0c8b6934fc0cae24b8ebe8"; - sha256 = "05zrdgv0b7a3y89phg66y8cfpmshm34yg7ahhc861k6wh4kvkv89"; + rev = "0de5a5fa2438890ae9c2ca61999042ab175df3e9"; + sha256 = "1wqlbbm71s1hvglsdp1qs7nvj6gnkjkai4rr8hhp1lliiyd5vmia"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/9ed7e414687c0bd82b140a1bd8044084d094d18f/recipes/transmission"; @@ -32915,6 +35531,69 @@ license = lib.licenses.free; }; }) {}; + treemacs = callPackage ({ ace-window, cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, pfuture, s }: + melpaBuild { + pname = "treemacs"; + version = "1.11.8"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "4213045d59e19d0aac6246d5df5fc0a9b104d5bd"; + sha256 = "0iwfk42l8wlwnbd6c2l201gfn0k4k0h5whbr21dp8ngr54p5w95z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/486f21e99856a77f470d246f3c71cd32d2e61ad6/recipes/treemacs"; + sha256 = "07npjnhn9a0b537h1wmvy57bmicd2cji7bslp4wbnrfmmg2jdc3a"; + name = "treemacs"; + }; + packageRequires = [ ace-window cl-lib dash emacs f hydra pfuture s ]; + meta = { + homepage = "https://melpa.org/#/treemacs"; + license = lib.licenses.free; + }; + }) {}; + treemacs-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild, treemacs }: + melpaBuild { + pname = "treemacs-evil"; + version = "1.11.8"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "4213045d59e19d0aac6246d5df5fc0a9b104d5bd"; + sha256 = "0iwfk42l8wlwnbd6c2l201gfn0k4k0h5whbr21dp8ngr54p5w95z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a52c2770097fe8968bff7c31ac411b3d9b60972e/recipes/treemacs-evil"; + sha256 = "146j4l2g40dhrv8nyfymxkajn19gvlkmirwv9ndvkvl3yy175vg3"; + name = "treemacs-evil"; + }; + packageRequires = [ evil treemacs ]; + meta = { + homepage = "https://melpa.org/#/treemacs-evil"; + license = lib.licenses.free; + }; + }) {}; + treemacs-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, treemacs }: + melpaBuild { + pname = "treemacs-projectile"; + version = "1.11.8"; + src = fetchFromGitHub { + owner = "Alexander-Miller"; + repo = "treemacs"; + rev = "4213045d59e19d0aac6246d5df5fc0a9b104d5bd"; + sha256 = "0iwfk42l8wlwnbd6c2l201gfn0k4k0h5whbr21dp8ngr54p5w95z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/b694918c94e6311745776d451aa2519924beef2d/recipes/treemacs-projectile"; + sha256 = "0y7mq466c9cigyd6imzjnh54aq9kcsikhr7llga5gsclf35fc5ld"; + name = "treemacs-projectile"; + }; + packageRequires = [ projectile treemacs ]; + meta = { + homepage = "https://melpa.org/#/treemacs-projectile"; + license = lib.licenses.free; + }; + }) {}; trr = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "trr"; @@ -32957,6 +35636,27 @@ license = lib.licenses.free; }; }) {}; + try = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "try"; + version = "0.0.1"; + src = fetchFromGitHub { + owner = "larstvei"; + repo = "Try"; + rev = "271b0a362cadf44d0694628b9e213f54516ef913"; + sha256 = "1fvpi02c6awyrwg2yqjapvcv4132qvmvd9bkbwpjmndxpicsann3"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/13c0ed40ad02fa0893cbf4dd9617dccb624f064b/recipes/try"; + sha256 = "0dv0i77agva215bf1gj1x1k7f7g3pvccyyd7vslapf9z8brccn7n"; + name = "try"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/try"; + license = lib.licenses.free; + }; + }) {}; tss = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, json-mode, lib, log4e, melpaBuild, yaxception }: melpaBuild { pname = "tss"; @@ -32978,22 +35678,22 @@ license = lib.licenses.free; }; }) {}; - tuareg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + tuareg = callPackage ({ caml, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "tuareg"; - version = "2.0.10"; + version = "2.1.0"; src = fetchFromGitHub { owner = "ocaml"; repo = "tuareg"; - rev = "93b9c6cdba3a8f333cc817c3822fc76b71ff4dcd"; - sha256 = "14l0y7gahbz1l4ag5nvswj7cl4skchvzr6r7zc1a5k000skdmv69"; + rev = "64537bc753094b2adc2e3e97625fa9c0a01f9ae6"; + sha256 = "03d0n49p6d77p221majmbh0gjyrmh2z4cb2l2vi5xxfwc1fsxzmp"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/01fb6435a1dfeebdf4e7fa3f4f5928bc75526809/recipes/tuareg"; sha256 = "0wx723dmjlpm86xdabl9n8p22zbbxpapyfn6ifz0b0pvhh49ip7q"; name = "tuareg"; }; - packageRequires = []; + packageRequires = [ caml ]; meta = { homepage = "https://melpa.org/#/tuareg"; license = lib.licenses.free; @@ -33041,6 +35741,27 @@ license = lib.licenses.free; }; }) {}; + turing-machine = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "turing-machine"; + version = "0.1.4"; + src = fetchFromGitHub { + owner = "therockmandolinist"; + repo = "turing-machine"; + rev = "41bfe79ecf8a44dcbaf308c33cbdf324f7c806ae"; + sha256 = "04j4nw526mxlm4fd2a28p0pa2ss4b4vznjvpk0f0wlf61ymvy884"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/a003b40a52a92b3ab4d1ffc003f570d4fa6bfbde/recipes/turing-machine"; + sha256 = "1ndy953q9hr1psqqkkqsffyvj800cnqdxcrixqiw0ls77f2kczcn"; + name = "turing-machine"; + }; + packageRequires = [ cl-lib emacs ]; + meta = { + homepage = "https://melpa.org/#/turing-machine"; + license = lib.licenses.free; + }; + }) {}; twilight-anti-bright-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "twilight-anti-bright-theme"; @@ -33128,12 +35849,12 @@ typit = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, mmt }: melpaBuild { pname = "typit"; - version = "0.2.0"; + version = "0.2.1"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "typit"; - rev = "0e5b374830e85a32b51a4cc8206df8e494378cb2"; - sha256 = "1jv5qmp3xs37py7d9aln4jn85j65h9pp5vb2dcmd8rlszhplsrng"; + rev = "a4e3147dedac5535bdc8b06aca00f34f14f26e35"; + sha256 = "0hbnwrhxj9wwjvxsk372ffgjqfkb3ljxhgi5h7wps2r15dxfvf3w"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d17d019155e19c156f123dcd702f18cfba488701/recipes/typit"; @@ -33212,12 +35933,12 @@ undercover = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, shut-up }: melpaBuild { pname = "undercover"; - version = "0.6.0"; + version = "0.6.1"; src = fetchFromGitHub { owner = "sviridov"; repo = "undercover.el"; - rev = "e72b8c924272f65d7cc6e884478e26d0b1e1e4e8"; - sha256 = "06qcvbp5rd0kh3ibrxj5p6r578lwsrgd7yj5c6slwmkdmna2fj33"; + rev = "86f856c799aacfd48d2eb42d1a6afda0e6e49845"; + sha256 = "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/d58ad9eb863494f609114e3c6af8c14c891b83a5/recipes/undercover"; @@ -33230,6 +35951,27 @@ license = lib.licenses.free; }; }) {}; + underline-with-char = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "underline-with-char"; + version = "3.0.0"; + src = fetchFromGitHub { + owner = "marcowahl"; + repo = "underline-with-char"; + rev = "c2f4870aff70efe70a8d1b089e56d3a2d6d048b9"; + sha256 = "0i6jfr4l7mr8gpavmfblr5d41ck8aqzaf4iv1qk5fyzsb6yi0nla"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e24888ccf61ac05eba5c30a47d35653f2badf019/recipes/underline-with-char"; + sha256 = "0la24nvyqinla40c2f3f4a63mjjsg58096hyw3pvp0mwiff7rxyd"; + name = "underline-with-char"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/underline-with-char"; + license = lib.licenses.free; + }; + }) {}; underwater-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "underwater-theme"; @@ -33386,12 +36128,12 @@ unify-opening = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "unify-opening"; - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "DamienCassou"; repo = "unify-opening"; - rev = "2812e43029cab7183197ce5e3c9577856bfd22c5"; - sha256 = "1vbx10s2zmhpxjg26ik947bcg9f7w3g2w45wmm0shjp743fsdq8p"; + rev = "fbe53b56e9629143a73c5da9e7797579508e0fbf"; + sha256 = "0hr65nrywa9yijqymw902q02adyczbwzam2ahv8m2wzay5pcwg8a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/0a2faab13744262ef4d12750f70b300b3afd2835/recipes/unify-opening"; @@ -33428,12 +36170,12 @@ uptimes = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "uptimes"; - version = "3.3"; + version = "3.5"; src = fetchFromGitHub { owner = "davep"; repo = "uptimes.el"; - rev = "2be31db3508513478d3f27f4eff2ff1094786b4e"; - sha256 = "177d1h84w9rr6x3hsq9z7sbr8s8pippgy0l99gpdhycbff6a7cwg"; + rev = "07bcd6517243c9c9f61172202d33718bd9b2a850"; + sha256 = "0n416p47j4cl84lq8wcgmkagkws7a9n4g9307v1s91s2gqmfia3n"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/72099e35ce3e34ec6afc6a3f87a4da07ec91499a/recipes/uptimes"; @@ -33470,12 +36212,12 @@ utop = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "utop"; - version = "1.19.3"; + version = "2.0.1"; src = fetchFromGitHub { owner = "diml"; repo = "utop"; - rev = "ee81ce49bab31757837bed35a182d29cbd54dfcb"; - sha256 = "1p2vjxw0y6py5hly6vjl4gxm171n9pr4rkimxd0rg3dl1npvn99z"; + rev = "d658bd8f63ed6b23144fdba2ee3f2a6d77979c4f"; + sha256 = "1x96zxkvfq8mshgi654vvklrr7dqvq9can89n4jrrb82pcn06k5j"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/30489fe52b4031184e54f994770aa3291257bc9d/recipes/utop"; @@ -33488,27 +36230,6 @@ license = lib.licenses.free; }; }) {}; - uzumaki = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: - melpaBuild { - pname = "uzumaki"; - version = "0.1"; - src = fetchFromGitHub { - owner = "geyslan"; - repo = "uzumaki"; - rev = "a75956e1757f4b98aad3384a4616481aede70cb1"; - sha256 = "0z53n9qsglp87f6q1pa3sixrjni9k46j31zg15gcwrmflmfrw8ds"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/6d63f9408e3bb581a47c8ab1f729f9ee087933d6/recipes/uzumaki"; - sha256 = "1fvhzz2qpyc819rjvzyf42jmb70hlg7a9ybqwi81w7rydpabg61q"; - name = "uzumaki"; - }; - packageRequires = [ cl-lib ]; - meta = { - homepage = "https://melpa.org/#/uzumaki"; - license = lib.licenses.free; - }; - }) {}; v2ex-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, request }: melpaBuild { pname = "v2ex-mode"; @@ -33572,6 +36293,27 @@ license = lib.licenses.free; }; }) {}; + vc-msg = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, popup }: + melpaBuild { + pname = "vc-msg"; + version = "0.0.4"; + src = fetchFromGitHub { + owner = "redguardtoo"; + repo = "vc-msg"; + rev = "091f3cf15ecb35bb4dc5de1ef7229f78735d9aee"; + sha256 = "0s129fzxhrr8pp4h0hkmxapnman67r0bdmbj8ys6r361na7h16hf"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/59ad4e80b49c78decd7b5794565313f65550384e/recipes/vc-msg"; + sha256 = "16pgx8pg3djhkmhf1fihgjk7c6nb2nsqj58888bwg7385mlwc7g9"; + name = "vc-msg"; + }; + packageRequires = [ emacs popup ]; + meta = { + homepage = "https://melpa.org/#/vc-msg"; + license = lib.licenses.free; + }; + }) {}; vcomp = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vcomp"; @@ -33593,6 +36335,48 @@ license = lib.licenses.free; }; }) {}; + vdiff = callPackage ({ emacs, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild }: + melpaBuild { + pname = "vdiff"; + version = "0.2.2"; + src = fetchFromGitHub { + owner = "justbur"; + repo = "emacs-vdiff"; + rev = "f55acdbfcbb14e463d0850cfd041614c7002669e"; + sha256 = "0dlhisvnlzkzlilg456lxi0m5wh4a8681n142684hmk8vaw3wx2k"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e90f19c8fa4b0d267d269b76f117995e812e899c/recipes/vdiff"; + sha256 = "11gw0l63fssbiyhngqb7ykrp7m1vy55wlf27ybhh2dkwh1cpkr4l"; + name = "vdiff"; + }; + packageRequires = [ emacs hydra ]; + meta = { + homepage = "https://melpa.org/#/vdiff"; + license = lib.licenses.free; + }; + }) {}; + vdiff-magit = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild, vdiff }: + melpaBuild { + pname = "vdiff-magit"; + version = "0.3.1"; + src = fetchFromGitHub { + owner = "justbur"; + repo = "emacs-vdiff-magit"; + rev = "5e245b6a078860d3b0f58436efec8ff6b4f485db"; + sha256 = "0rz06jh5ayg0w6a19w9jyyn6jw27ri3cydynflxygk9364zvj59p"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2159275fabde8ec8b297f6635546b1314d519b8b/recipes/vdiff-magit"; + sha256 = "1vjc1r5xfdg9bmscgppx1fps1w5bd0zpp6ab5z5dxlg2zx2vdldw"; + name = "vdiff-magit"; + }; + packageRequires = [ emacs magit vdiff ]; + meta = { + homepage = "https://melpa.org/#/vdiff-magit"; + license = lib.licenses.free; + }; + }) {}; vdirel = callPackage ({ emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, org-vcard, seq }: melpaBuild { pname = "vdirel"; @@ -33659,12 +36443,12 @@ vhdl-tools = callPackage ({ emacs, fetchFromGitHub, fetchurl, ggtags, helm, lib, melpaBuild, outshine }: melpaBuild { pname = "vhdl-tools"; - version = "5.4"; + version = "5.7"; src = fetchFromGitHub { owner = "csantosb"; repo = "vhdl-tools"; - rev = "6f3f8ba58432dfdac59122164c732ccc0dfc475b"; - sha256 = "076v5zafalv1r14ms90zs1p7yq11fzff4vywrda6dh63i0yk2vxs"; + rev = "40d5e1020b1a2b6e8ff04cbd8c84bf7959e4e7af"; + sha256 = "1ndrvwjgfjnmaw71y4452ck9aqlwnpxa7379ldsn7gfl0r67qhsi"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/69fe2f8fb98ac1af1d3185f62ae1c89e646cfebf/recipes/vhdl-tools"; @@ -33701,12 +36485,12 @@ vimish-fold = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "vimish-fold"; - version = "0.2.2"; + version = "0.2.3"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "vimish-fold"; - rev = "5c9ae8018002c10a034de60b527c42f3665f6b67"; - sha256 = "01wxjvbq3i1ji9fpff7fbk20pzmr52z6fycqfi7malgwq05is1bm"; + rev = "e631352fbf910f692807afe38a2b6a7882a403a8"; + sha256 = "152w1wqxj7yzm3d12lknzz1aix4h8cb571sjns3m1s7azsr3vfbq"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/b4862b0a3d43f073e645803cbbf11d973a4b51d5/recipes/vimish-fold"; @@ -33764,12 +36548,12 @@ visual-fill-column = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "visual-fill-column"; - version = "1.10"; + version = "1.11"; src = fetchFromGitHub { owner = "joostkremers"; repo = "visual-fill-column"; - rev = "159dcee48e7311ee816686d62e7ce36619127462"; - sha256 = "0bij20a8f9pd4307m2qslcx8p3j59hkr14sm18aw0bric65him8b"; + rev = "57c2a72d46900117ea92e0a01b97e19481800503"; + sha256 = "086zfx4lh168rg50ndg8qzdh8vzc6sgfii7qzcn4mg4wa74hnp9y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c7628c805840c4687686d0b9dc5007342864721e/recipes/visual-fill-column"; @@ -33887,6 +36671,27 @@ license = lib.licenses.free; }; }) {}; + vue-mode = callPackage ({ edit-indirect, fetchFromGitHub, fetchurl, lib, melpaBuild, mmm-mode, ssass-mode, vue-html-mode }: + melpaBuild { + pname = "vue-mode"; + version = "0.3.1"; + src = fetchFromGitHub { + owner = "CodeFalling"; + repo = "vue-mode"; + rev = "fe501dba780025066dcdcd2055e772d06c2abdbc"; + sha256 = "0k67kzrh2fjhjiqcy1yq5cmcwjpx85yd2xxvkqvv4791q58f7c4z"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/2e5e0a9fff332aeec09f6d3d758e2b67dfdf8397/recipes/vue-mode"; + sha256 = "0gy7a5sliaijq0666l55vbkg15anrw7k1828szdn1ppkraw14bn0"; + name = "vue-mode"; + }; + packageRequires = [ edit-indirect mmm-mode ssass-mode vue-html-mode ]; + meta = { + homepage = "https://melpa.org/#/vue-mode"; + license = lib.licenses.free; + }; + }) {}; w32-browser = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "w32-browser"; @@ -33932,12 +36737,12 @@ wandbox = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request, s }: melpaBuild { pname = "wandbox"; - version = "0.6.2"; + version = "0.6.4"; src = fetchFromGitHub { owner = "kosh04"; repo = "emacs-wandbox"; - rev = "4e52c14aca11de4686d4f1de98588cb5cf42d815"; - sha256 = "1c9wvnc8nqizh5sw424hznnqymfcyqdgdj8gzwfy5i04mi7mic4p"; + rev = "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1"; + sha256 = "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/wandbox"; @@ -34076,22 +36881,22 @@ license = lib.licenses.free; }; }) {}; - web-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + web-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "web-mode"; - version = "14.1"; + version = "15"; src = fetchFromGitHub { owner = "fxbois"; repo = "web-mode"; - rev = "44de4e0198051b52110d50d860db26ed770219f3"; - sha256 = "0pbim6aw0w9z5bb0hl98bda1a19pjmfki6jr1mxcfi5yismk2863"; + rev = "aef2a32f6e5e2fdb7f38a650b009a737c67959e2"; + sha256 = "14x91pngh9i7r66inssc4jaqvzv2kb3bnbks5x2bhsidvls7s28r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/6f0565555eaa356141422c5175d6cca4e9eb5c00/recipes/web-mode"; sha256 = "1vyhyc5nf4yj2m63inpwmcqvlsihaqw8nn8xvfdg44nhl6vjz97i"; name = "web-mode"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { homepage = "https://melpa.org/#/web-mode"; license = lib.licenses.free; @@ -34118,15 +36923,36 @@ license = lib.licenses.free; }; }) {}; + web-search = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "web-search"; + version = "0.1.1"; + src = fetchFromGitHub { + owner = "xuchunyang"; + repo = "web-search.el"; + rev = "72fea0e7429ed3d6932a497b568335316d8ef283"; + sha256 = "1f2g6r24482k1dra1z92yahwvqiryc8p5p1v2naxv16ysa461a34"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/503ef2042cc14dbe53e7121b8d0b5ccbdf6c882b/recipes/web-search"; + sha256 = "08iflbp6rmsxsy2lahsdjj9ki70ixqhsas0vxzawz5pi5vk2x9gj"; + name = "web-search"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/web-search"; + license = lib.licenses.free; + }; + }) {}; webpaste = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }: melpaBuild { pname = "webpaste"; - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "etu"; repo = "webpaste.el"; - rev = "f6583397a4f8c9cde6b556175a6e05303d6238de"; - sha256 = "0z7pkqfli1lqvfjjaf8p1sbbwf0f7xgz87k3rqqav9xyc9iqh0ni"; + rev = "aed3e00b6332a068d53ce482f5139a95c3dcd245"; + sha256 = "1p4sgn0rh8a5f0f6f1njq329zwgs6yp8j3zqs0yfz4kaikw1xw10"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/13847d91c1780783e516943adee8a3530c757e17/recipes/webpaste"; @@ -34139,15 +36965,36 @@ license = lib.licenses.free; }; }) {}; + websocket = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "websocket"; + version = "1.8"; + src = fetchFromGitHub { + owner = "ahyatt"; + repo = "emacs-websocket"; + rev = "a9b8e74fa190024cd450ef4f832482e8438674fa"; + sha256 = "0yi6g7wmjsgv0dmpyf8cpin0icw3ymb7vbr3f9s01xs2w6kp8p13"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/091dcc3775ec2137cb61d66df4e72aca4900897a/recipes/websocket"; + sha256 = "1v8jlpahp30lihz7mdznwl6pyrbsdbqznli2wb5gfblnlxil04lg"; + name = "websocket"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/websocket"; + license = lib.licenses.free; + }; + }) {}; weechat = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, tracking }: melpaBuild { pname = "weechat"; - version = "0.3.1"; + version = "0.4.0"; src = fetchFromGitHub { owner = "the-kenny"; repo = "weechat.el"; - rev = "41f06299b2a691473b6b26c15dc46367542c79f0"; - sha256 = "0vg3w18xj6i320jsivsml3mi1fdxr8dgxmn7qy2780ajy5ndxnw1"; + rev = "a1bda40513f0ea94a8a85ee122a475475a03f6ef"; + sha256 = "05jnfrjrf1da038jkypvx3slyk39xlpak4n9s5vwmx7mgf4zg06y"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/e38255a31a4ca31541c97a506a55f82e2670abe6/recipes/weechat"; @@ -34289,12 +37136,12 @@ which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "which-key"; - version = "2.0.1"; + version = "3.0.2"; src = fetchFromGitHub { owner = "justbur"; repo = "emacs-which-key"; - rev = "3c7ecc69d48258af66978a685aedcbc8d1ada512"; - sha256 = "1q6v4bnw9sl6f138lxkqp979xpbgsb57gxj8a1k7clms16kkn5ci"; + rev = "6d2e17c949ff7bfebfe0b0878a93d94b31585031"; + sha256 = "03szbjp6j6rjj43k3vs2jay4y7bnhhh1ymgqv8vvdnqsf88pdg88"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key"; @@ -34349,6 +37196,27 @@ license = lib.licenses.free; }; }) {}; + whizzml-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "whizzml-mode"; + version = "0.2.2"; + src = fetchFromGitHub { + owner = "whizzml"; + repo = "whizzml-mode"; + rev = "9060fdce07c137abc2c494cb72641b9b9d6fbe22"; + sha256 = "10yi3n6pyqirlzxdkv7nvp0d0n1fkjrgwhn0kp5i27dnp3fi0i2b"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/11f26b15c326c3b8541bac510579b32493916042/recipes/whizzml-mode"; + sha256 = "0gas9xfpz5v9fbhjxhd4msihwz9w4a05l5icsaclxvh06f92wcyk"; + name = "whizzml-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/whizzml-mode"; + license = lib.licenses.free; + }; + }) {}; whole-line-or-region = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "whole-line-or-region"; @@ -34538,22 +37406,22 @@ license = lib.licenses.free; }; }) {}; - winum = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: + winum = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "winum"; - version = "1.0.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "deb0ch"; repo = "emacs-winum"; - rev = "e89791b90e45f588f9e8c11884ea1daf3dc98518"; - sha256 = "1gd0byijl5cyn6gkf5pkadzqvczshgizfrr3ddg6czvgblf1vgl9"; + rev = "c56d1cdb8d1723eb4c0d7a7eb3ecd2697739146c"; + sha256 = "09jd5srlnd4060hs719qil84ssmnvq196bz7ywaswgapv1gs1h6r"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/c1caa7a54a910a44322fdee300e8cce6ddcde071/recipes/winum"; sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw"; name = "winum"; }; - packageRequires = [ cl-lib ]; + packageRequires = [ cl-lib dash ]; meta = { homepage = "https://melpa.org/#/winum"; license = lib.licenses.free; @@ -34562,11 +37430,11 @@ wisp-mode = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wisp-mode"; - version = "0.9.1"; + version = "0.9.7"; src = fetchhg { url = "https://bitbucket.com/ArneBab/wisp"; - rev = "626eaec86a97"; - sha256 = "13hcp52krlb0vw3wxvw9mdcm7qxr80p2rs52zkkzrc73qvzxvwn3"; + rev = "7633b2a5133f"; + sha256 = "0j6j9wkmq95dhx5cr3z2gpx5mvsqsgissp2060ij252ijc3l9k4a"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode"; @@ -34600,27 +37468,48 @@ license = lib.licenses.free; }; }) {}; - with-editor = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "with-editor"; - version = "2.5.10"; + version = "2.7.0"; src = fetchFromGitHub { owner = "magit"; repo = "with-editor"; - rev = "8ae3c7aed92842f5988671c1b3350c65c58857e0"; - sha256 = "1jy5jxkr99a9qp7abmncaphp0xd3y6m3fflvj3fq1wp33i3f7cfn"; + rev = "99d3278b1c79718de16dd4f57dcc8c4aa31a4051"; + sha256 = "1mcfinr1wv87hqn2787dcyn7lkgfni4xfgsji50pwj3zfgg0yqyr"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor"; sha256 = "1wsl1vwvywlc32r5pcc9jqd0pbzq1sn4fppxk3vwl0s5h40v8rnb"; name = "with-editor"; }; - packageRequires = [ async dash emacs ]; + packageRequires = [ async emacs ]; meta = { homepage = "https://melpa.org/#/with-editor"; license = lib.licenses.free; }; }) {}; + with-simulated-input = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }: + melpaBuild { + pname = "with-simulated-input"; + version = "2.2"; + src = fetchFromGitHub { + owner = "DarwinAwardWinner"; + repo = "with-simulated-input"; + rev = "9efeb236c8f6887a8591d6241962c37266d8e726"; + sha256 = "1v8c85ahsk9pz3zndh0c9xba4c78f4b1j97hbv62jirvr75b079g"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/e4ddf16e19f5018106a423327ddc7e7499cf9248/recipes/with-simulated-input"; + sha256 = "0113la76nbp18vaffsd7w7wcw5k2sqwgnjq1gslf4khdfqghrkwk"; + name = "with-simulated-input"; + }; + packageRequires = [ emacs s seq ]; + meta = { + homepage = "https://melpa.org/#/with-simulated-input"; + license = lib.licenses.free; + }; + }) {}; wn-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "wn-mode"; @@ -34684,24 +37573,24 @@ license = lib.licenses.free; }; }) {}; - wordsmith-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + wordgen = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "wordsmith-mode"; - version = "1.0.0"; + pname = "wordgen"; + version = "0.1.4"; src = fetchFromGitHub { - owner = "istib"; - repo = "wordsmith-mode"; - rev = "41b10f2fe3589da9812395cb417c3dcf906f0969"; - sha256 = "0s3mjmfjiidn3spklndw0dvcwbb9x034xyphp60aad8vjaflbchs"; + owner = "Fanael"; + repo = "wordgen.el"; + rev = "aacad928ae99a953e034a831dfd0ebdf7d52ac1d"; + sha256 = "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/d9f8f01f1807de24fb6e92b355d05b81be4bab07/recipes/wordsmith-mode"; - sha256 = "1570h1sjjaks6bnhd4xrbx6nna4v7hz6dmrzwjq37rwvallasg1n"; - name = "wordsmith-mode"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/5cfdc64a9aa79575dad8057c4cd747d2cdd460aa/recipes/wordgen"; + sha256 = "0vlrplm3pmpwwa8p8j6lck97b875gzzm7vxxc8l9l18vs237cz1m"; + name = "wordgen"; }; - packageRequires = []; + packageRequires = [ cl-lib emacs ]; meta = { - homepage = "https://melpa.org/#/wordsmith-mode"; + homepage = "https://melpa.org/#/wordgen"; license = lib.licenses.free; }; }) {}; @@ -34771,12 +37660,12 @@ writeroom-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, visual-fill-column }: melpaBuild { pname = "writeroom-mode"; - version = "3.6.1"; + version = "3.7"; src = fetchFromGitHub { owner = "joostkremers"; repo = "writeroom-mode"; - rev = "f853350da848d0814f822587ae310e52d895f523"; - sha256 = "1al4ch96p0c8qf51pqv62nl3cwz05w8s2cgkxl01ff3l9y7qjsvz"; + rev = "d3252f54c8f9f37a19d6a21fb2291c3da7a7121a"; + sha256 = "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4e39cd8e8b4f61c04fa967def6a653bb22f45f5b/recipes/writeroom-mode"; @@ -34894,6 +37783,27 @@ license = lib.licenses.free; }; }) {}; + xcode-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "xcode-project"; + version = "1.0.0"; + src = fetchFromGitHub { + owner = "nhojb"; + repo = "xcode-project"; + rev = "f5548a26a1afc0b0d873556c25f6d8b6b9c2aa8c"; + sha256 = "0xb1cvjaw7zjnw6c5aq315vvlc3cncris62jis44jb8s5r8gxcrv"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/49b866ebf7e707bc74525f83dd5038e6e860fcef/recipes/xcode-project"; + sha256 = "0igp30f6ypmp4l8zmdfpa5bza4avm7mq2gj8v7b3ii655v91n6vi"; + name = "xcode-project"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/xcode-project"; + license = lib.licenses.free; + }; + }) {}; xcscope = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "xcscope"; @@ -35167,6 +38077,48 @@ license = lib.licenses.free; }; }) {}; + yard-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "yard-mode"; + version = "0.1"; + src = fetchFromGitHub { + owner = "pd"; + repo = "yard-mode.el"; + rev = "78792f6a6fbff4f1bc955f494fdb11378e7f8095"; + sha256 = "096ay60hrd14b459cyxxcf9g7i1ivsxg6yhc0q162px6kl1x0m2y"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/afad2677f901b8d27922389afb1d235d5c8edc39/recipes/yard-mode"; + sha256 = "0jmlcba8qapjwaaliz9gzs99if3wglkhmlpjzcdy3icx18sw8kzx"; + name = "yard-mode"; + }; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#/yard-mode"; + license = lib.licenses.free; + }; + }) {}; + yarn-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "yarn-mode"; + version = "1.0"; + src = fetchFromGitHub { + owner = "anachronic"; + repo = "yarn-mode"; + rev = "99891000efe31214b065fa9446cd5e68c5c42ed8"; + sha256 = "0cg06ba9yfgjzprq78cvhvvl06av0p2vhnmynddzbpgjgjnwskfy"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/860fa2a8fdb22be374fa64a5277af3ab484a047a/recipes/yarn-mode"; + sha256 = "08a3lrz670jsf531mn1hwhh7fg5dby6i749cscd6d4dyvkzpz5dg"; + name = "yarn-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/yarn-mode"; + license = lib.licenses.free; + }; + }) {}; yascroll = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yascroll"; @@ -35191,12 +38143,12 @@ yasnippet = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yasnippet"; - version = "0.11.0"; + version = "0.12.2"; src = fetchFromGitHub { owner = "joaotavora"; repo = "yasnippet"; - rev = "e6b865127783f498b61fa99ad0f5413200ac09d0"; - sha256 = "0djj2gi0s0jyxpqgfk2818xnj5ykwhzy5k9yi65klsw2nanhh8y9"; + rev = "89eb7ab64d67e96646576dc0d551e8c23d50438a"; + sha256 = "1wr0d14yl3440hkdr436zxl9pk7nqhl76n9m3b3ia4lp6z5aj4jc"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/5d1927dc3351d3522de1baccdc4ce200ba52bd6e/recipes/yasnippet"; @@ -35232,14 +38184,14 @@ }) {}; yatex = callPackage ({ fetchhg, fetchurl, lib, melpaBuild }: melpaBuild { pname = "yatex"; - version = "1.78"; + version = "1.80"; src = fetchhg { url = "https://www.yatex.org/hgrepos/yatex/"; - rev = "7bf780961390"; - sha256 = "19nxjabwr3c5sjii2pwlgak751wq9h12yp7xd6nz8i6f75md59xs"; + rev = "16763e5b7481"; + sha256 = "1mrcc9amz0kflm570bd2cprhin0z8lr668k2s56mj6shixb61dwh"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/yatex"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex"; sha256 = "17np4am7yan1bh4706azf8in60c41158h3z591478j5b1w13y5a6"; name = "yatex"; }; @@ -35273,12 +38225,12 @@ ycmd = callPackage ({ cl-lib ? null, dash, deferred, emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild, pkg-info, request, request-deferred, s }: melpaBuild { pname = "ycmd"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { owner = "abingham"; repo = "emacs-ycmd"; - rev = "9f5ad4a20e6bf893491635108adfff71f3c6b590"; - sha256 = "08kvbvhx5y3239bzdb1xpr81lfrhjy9xka4kn9dpa5bdxs0xx92w"; + rev = "d042a673b4d717c3ca9d641f120bfe16c994c740"; + sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/4b25378540c64d0214797348579671bf2b8cc696/recipes/ycmd"; @@ -35406,18 +38358,39 @@ license = lib.licenses.free; }; }) {}; + zephir-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "zephir-mode"; + version = "0.3.3"; + src = fetchFromGitHub { + owner = "sergeyklay"; + repo = "zephir-mode"; + rev = "243f0fb7fd1dfebf0f0bdf94046b72d1bea4f66c"; + sha256 = "0jydy2zcbksi7db7bvfhgdh08np8k4a1yd6q2wq6m3ll2y3zd0w2"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/5bd901c93ce7f64de6082e801327adbd18fd4517/recipes/zephir-mode"; + sha256 = "0nxm6w7z89q2vvf3bp1p6hb6f2axv9ha85jyiv4k02l46sjprf4j"; + name = "zephir-mode"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/zephir-mode"; + license = lib.licenses.free; + }; + }) {}; zerodark-theme = callPackage ({ all-the-icons, fetchFromGitHub, fetchurl, flycheck, lib, magit, melpaBuild }: melpaBuild { pname = "zerodark-theme"; - version = "4.2"; + version = "4.5"; src = fetchFromGitHub { owner = "NicolasPetton"; repo = "zerodark-theme"; - rev = "af231794425255d436690c9c31bceb2052251210"; - sha256 = "1xnhcxf5d0gn8lhapjg7b289bqpf8w0d2mp76ksb8rsvx4r0bdbw"; + rev = "ceb46240636865e86f3fe26906957943ba7bd73c"; + sha256 = "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/72ef967a9bea2e100ae17aad1a88db95820f4f6a/recipes/zerodark-theme"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/d00b78ead693e844e35c760fe2c39b8ed6cb0d81/recipes/zerodark-theme"; sha256 = "1nqzswmnq6h0av4rivqm237h7ghp7asa2nvls7nz4ma467p9qhp9"; name = "zerodark-theme"; }; @@ -35469,6 +38442,27 @@ license = lib.licenses.free; }; }) {}; + zoom = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "zoom"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "cyrus-and"; + repo = "zoom"; + rev = "d92ea444df6f6bb6cae92242f3269582d1b8ab40"; + sha256 = "08riz3dd19c1dixm3c6j5dkkwjpgcib05pxq611w8z0mgsn0hsc5"; + }; + recipeFile = fetchurl { + url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom"; + sha256 = "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls"; + name = "zoom"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://melpa.org/#/zoom"; + license = lib.licenses.free; + }; + }) {}; zoom-window = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zoom-window"; @@ -35577,12 +38571,12 @@ zzz-to-char = callPackage ({ avy, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { pname = "zzz-to-char"; - version = "0.1.1"; + version = "0.1.2"; src = fetchFromGitHub { owner = "mrkkrp"; repo = "zzz-to-char"; - rev = "efbe99c9163602f23408abaea70ffe292632bf26"; - sha256 = "0y0hhar3krkvbpb5y9k197mb0wfpz8cl6fmxazq8msjml7hkk339"; + rev = "b62414b155fe2e09d91b70059a909d1403d89acf"; + sha256 = "07a086s3fpncr4plkmr89vghn7xwji9k69m64ri7i1vhnnl6q4zj"; }; recipeFile = fetchurl { url = "https://raw.githubusercontent.com/milkypostman/melpa/7063cbc1f1501ce81552d7ef1d42d1309f547c42/recipes/zzz-to-char"; diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix index 0e3d3fea328..a6108093933 100644 --- a/pkgs/applications/editors/emacs-modes/org-generated.nix +++ b/pkgs/applications/editors/emacs-modes/org-generated.nix @@ -1,10 +1,10 @@ { callPackage }: { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "org"; - version = "20170210"; + version = "20171030"; src = fetchurl { - url = "http://orgmode.org/elpa/org-20170210.tar"; - sha256 = "1v8adjz3rv429is8m7xx2v8hvc20dxl4hcdhdf2vhcx44bgbvyjb"; + url = "http://orgmode.org/elpa/org-20171030.tar"; + sha256 = "1g2dyzy1844lli2hhfjnbskn1mskccgaaf0mxb1cm0zhhas8bnfd"; }; packageRequires = []; meta = { @@ -14,10 +14,10 @@ }) {}; org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { pname = "org-plus-contrib"; - version = "20170210"; + version = "20171030"; src = fetchurl { - url = "http://orgmode.org/elpa/org-plus-contrib-20170210.tar"; - sha256 = "1h0lwf1sw7n1df865ip5mp0pdmdi2md6hz6fq53r4zhali041ifx"; + url = "http://orgmode.org/elpa/org-plus-contrib-20171030.tar"; + sha256 = "0pq2hs5d2i6s036pcs0jn6ld2p1ap08dmbjf17hsh899741mg9cj"; }; packageRequires = []; meta = { diff --git a/pkgs/applications/editors/emacs-modes/prolog/default.nix b/pkgs/applications/editors/emacs-modes/prolog/default.nix index 237b1ac1483..b01c526aa8e 100644 --- a/pkgs/applications/editors/emacs-modes/prolog/default.nix +++ b/pkgs/applications/editors/emacs-modes/prolog/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://bruda.ca/emacs/prolog_mode_for_emacs/"; + homepage = http://bruda.ca/emacs/prolog_mode_for_emacs/; description = "Prolog mode for Emacs"; license = stdenv.lib.licenses.gpl2Plus; }; diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix b/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix index 5d44173729d..fd580ae9270 100644 --- a/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix +++ b/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix @@ -1,12 +1,14 @@ -{ stdenv, fetchgit, emacs, texinfo, texLive, perl, which, automake, enableDoc ? false }: +{ stdenv, fetchFromGitHub, emacs, texinfo, texLive, perl, which, automake, enableDoc ? false }: stdenv.mkDerivation (rec { - name = "ProofGeneral-HEAD"; + name = "ProofGeneral-unstable-${version}"; + version = "2017-05-06"; - src = fetchgit { - url = "https://github.com/ProofGeneral/PG.git"; - rev = "62ec846fcaaef8f3ae94302cbef2972f88a0804f"; - sha256 = "0vln1bc884qynbl5yci0dkr6ckz3p46q4jrhxgylcx4w0jkhizhm"; + src = fetchFromGitHub { + owner = "ProofGeneral"; + repo = "PG"; + rev = "574b0992e3cb4b7a4ad88400b9a5ab0198a96ca5"; + sha256 = "1c1pgdmy58h78s53g0ga9b5ilbsibz0dr2lk52xgbs3q5m22v5fh"; }; buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive; @@ -16,16 +18,11 @@ stdenv.mkDerivation (rec { -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \ s|/sbin/install-info|install-info|g" - - sed -i "bin/proofgeneral" -e's/which/type -p/g' - # @image{ProofGeneral} fails, so remove it. sed -i '94d' doc/PG-adapting.texi sed -i '96d' doc/ProofGeneral.texi ''; - patches = [ ./pg.patch ]; - preBuild = '' make clean; ''; diff --git a/pkgs/applications/editors/emacs-modes/rudel/default.nix b/pkgs/applications/editors/emacs-modes/rudel/default.nix index f830b16da98..0031ffee4d4 100644 --- a/pkgs/applications/editors/emacs-modes/rudel/default.nix +++ b/pkgs/applications/editors/emacs-modes/rudel/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation ''; meta = { - homepage = "http://rudel.sourceforge.net/"; + homepage = http://rudel.sourceforge.net/; description = "A collaborative editing environment for GNU Emacs"; license = "GPL"; }; diff --git a/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix b/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix index 092026aca88..835cf8081af 100644 --- a/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix +++ b/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "https://github.com/hvesalai/scala-mode2"; + homepage = https://github.com/hvesalai/scala-mode2; description = "An Emacs mode for editing Scala code"; license = "permissive"; }; diff --git a/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix index ed3ac0e3da0..0a44deb8ced 100644 --- a/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix +++ b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "https://github.com/hvesalai/scala-mode2"; + homepage = https://github.com/hvesalai/scala-mode2; description = "An Emacs mode for editing Scala code"; license = "permissive"; }; diff --git a/pkgs/applications/editors/emacs/clean-env.patch b/pkgs/applications/editors/emacs/clean-env.patch new file mode 100644 index 00000000000..f80efeeef70 --- /dev/null +++ b/pkgs/applications/editors/emacs/clean-env.patch @@ -0,0 +1,15 @@ +Dump temacs in an empty environment to prevent -dev paths from ending +up in the dumped image. + +diff -ru -x '*~' emacs-25.3/src/Makefile.in emacs-25.3-new/src/Makefile.in +--- emacs-25.3/src/Makefile.in 2017-04-14 17:02:47.000000000 +0200 ++++ emacs-25.3-new/src/Makefile.in 2017-09-25 19:03:02.173861038 +0200 +@@ -532,7 +532,7 @@ + ifeq ($(CANNOT_DUMP),yes) + ln -f temacs$(EXEEXT) $@ + else +- LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump ++ env -i LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump + ifneq ($(PAXCTL_dumped),) + $(PAXCTL_dumped) $@ + endif diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix index 79c75e76820..af3298a5883 100644 --- a/pkgs/applications/editors/emacs/default.nix +++ b/pkgs/applications/editors/emacs/default.nix @@ -5,7 +5,7 @@ , withX ? !stdenv.isDarwin , withGTK2 ? false, gtk2 ? null , withGTK3 ? true, gtk3 ? null, gsettings_desktop_schemas ? null -, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null +, withXwidgets ? false, webkitgtk24x-gtk3 ? null, wrapGAppsHook ? null, glib_networking ? null , withCsrc ? true , srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null }: @@ -16,7 +16,7 @@ assert withGTK2 -> withX || stdenv.isDarwin; assert withGTK3 -> withX || stdenv.isDarwin; assert withGTK2 -> !withGTK3 && gtk2 != null; assert withGTK3 -> !withGTK2 && gtk3 != null; -assert withXwidgets -> withGTK3 && webkitgtk24x != null; +assert withXwidgets -> withGTK3 && webkitgtk24x-gtk3 != null; let toolkit = @@ -26,35 +26,19 @@ let in stdenv.mkDerivation rec { name = "emacs-${version}${versionModifier}"; - version = "25.1"; + version = "25.3"; versionModifier = ""; src = fetchurl { - url = "mirror://gnu//emacs/${name}.tar.xz"; - sha256 = "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr"; + url = "mirror://gnu/emacs/${name}.tar.xz"; + sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"; }; - patches = (lib.optional stdenv.isDarwin ./at-fdcwd.patch) ++ [ - ## Fixes a segfault in emacs 25.1 - ## http://lists.gnu.org/archive/html/emacs-devel/2016-10/msg00917.html - ## https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24358 - (fetchurl { - url = http://git.savannah.gnu.org/cgit/emacs.git/patch/?id=9afea93ed536fb9110ac62b413604cf4c4302199; - sha256 = "0pshhq8wlh98m9hm8xd3g7gy3ms0l44dq6vgzkg67ydlccziqz40"; }) - (fetchurl { - url = http://git.savannah.gnu.org/cgit/emacs.git/patch/?id=71ca4f6a43bad06192cbc4bb8c7a2d69c179b7b0; - sha256 = "0h76wrrqyrky441immprskx5x7200zl7ajf7hyg4da22q7sr09qa"; }) - (fetchurl { - url = http://git.savannah.gnu.org/cgit/emacs.git/patch/?id=1047496722a58ef5b736dae64d32adeb58c5055c; - sha256 = "0hk9pi3f2zj266qj8armzpl0z8rfjg0m9ss4k09mgg1hyz80wdvv"; }) - (fetchurl { - url = http://git.savannah.gnu.org/cgit/emacs.git/patch/?id=96ac0c3ebce825e60595794f99e703ec8302e240; - sha256 = "1q2hqkjvj9z46b5ik56lv9wiibz09mvg2q3pn8fnpa04ki3zbh4x"; }) - (fetchurl { - url = http://git.savannah.gnu.org/cgit/emacs.git/patch/?id=43986d16fb6ad78a627250e14570ea70bdb1f23a; - sha256 = "1wlyy04qahvls7bdrcxaazh9k27gksk7if1q58h83f7h6g9xxkzj"; - }) - ]; + enableParallelBuilding = true; + + patches = + [ ./clean-env.patch ] + ++ lib.optional stdenv.isDarwin ./at-fdcwd.patch; nativeBuildInputs = [ pkgconfig ] ++ lib.optionals srcRepo [ autoconf automake texinfo ] @@ -69,7 +53,7 @@ stdenv.mkDerivation rec { ++ lib.optional (withX && withGTK2) gtk2 ++ lib.optionals (withX && withGTK3) [ gtk3 gsettings_desktop_schemas ] ++ lib.optional (stdenv.isDarwin && withX) cairo - ++ lib.optionals (withX && withXwidgets) [ webkitgtk24x glib_networking ]; + ++ lib.optionals (withX && withXwidgets) [ webkitgtk24x-gtk3 glib_networking ]; propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ]; diff --git a/pkgs/applications/editors/emacs/macport.nix b/pkgs/applications/editors/emacs/macport.nix index 34729783cce..70c723b40da 100644 --- a/pkgs/applications/editors/emacs/macport.nix +++ b/pkgs/applications/editors/emacs/macport.nix @@ -4,21 +4,21 @@ }: stdenv.mkDerivation rec { - emacsVersion = "25.1"; + emacsVersion = "25.3"; emacsName = "emacs-${emacsVersion}"; - macportVersion = "6.1"; + macportVersion = "6.8"; name = "emacs-mac-${emacsVersion}-${macportVersion}"; builder = ./builder.sh; src = fetchurl { - url = "ftp://ftp.gnu.org/gnu/emacs/${emacsName}.tar.xz"; - sha256 = "19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33"; + url = "mirror:///gnu/emacs/${emacsName}.tar.xz"; + sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5"; }; macportSrc = fetchurl { url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz"; - sha256 = "1zwxh7zsvwcg221mpjh0dhpdas3j9mc5q92pprf8yljl7clqvg62"; + sha256 = "167lgl76jz1bq6whb9ajshhw5v9bbw9ci4lji4qlmd5nrwnb7kqg"; }; hiresSrc = fetchurl { @@ -28,7 +28,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ ncurses libxml2 gnutls pkgconfig texinfo gettext autoconf automake]; + nativeBuildInputs = [ pkgconfig autoconf automake ]; + + buildInputs = [ ncurses libxml2 gnutls texinfo gettext ]; propagatedBuildInputs = [ AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit @@ -58,6 +60,7 @@ stdenv.mkDerivation rec { "--with-xml2=yes" "--with-gnutls=yes" "--with-mac" + "--with-modules" "--enable-mac-app=$$out/Applications" ]; diff --git a/pkgs/applications/editors/flpsed/default.nix b/pkgs/applications/editors/flpsed/default.nix index 9334b7820fa..bd00045bca9 100644 --- a/pkgs/applications/editors/flpsed/default.nix +++ b/pkgs/applications/editors/flpsed/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "WYSIWYG PostScript annotator"; - homepage = "http://http://flpsed.org/flpsed.html"; + homepage = http://http://flpsed.org/flpsed.html; license = licenses.gpl3; platforms = platforms.mesaPlatforms; maintainers = with maintainers; [ fuuzetsu ]; diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix index eedb674b472..10816e0a283 100644 --- a/pkgs/applications/editors/focuswriter/default.nix +++ b/pkgs/applications/editors/focuswriter/default.nix @@ -1,25 +1,27 @@ -{ stdenv, fetchurl, qt4, qmake4Hook, pkgconfig, hunspell }: +{ stdenv, fetchurl, pkgconfig, qmake, qttools, hunspell, qtbase, qtmultimedia }: stdenv.mkDerivation rec { name = "focuswriter-${version}"; - version = "1.5.3"; + version = "1.6.7"; src = fetchurl { - url = http://gottcode.org/focuswriter/focuswriter-1.5.3-src.tar.bz2; - sha256 = "1i58jxbiy95ijf81g8c3gwxhcg3irzssna3wv7vhrd57g4lcfj0w"; + url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2"; + sha256 = "10rqzinr6yd6ca06rklg34kdc08a3xgygfzmprsfg7gdsybfay5z"; }; - buildInputs = [ qt4 qmake4Hook pkgconfig hunspell ]; - - qmakeFlags = [ "PREFIX=/" ]; + nativeBuildInputs = [ pkgconfig qmake qttools ]; + buildInputs = [ hunspell qtbase qtmultimedia ]; + enableParallelBuilding = true; + + qmakeFlags = [ "PREFIX=/" ]; installFlags = [ "INSTALL_ROOT=$(out)" ]; - meta = { + meta = with stdenv.lib; { description = "Simple, distraction-free writing environment"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.madjar ]; - platforms = stdenv.lib.platforms.all; - homepage = "http://gottcode.org/focuswriter/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ madjar ]; + platforms = platforms.all; + homepage = https://gottcode.org/focuswriter/; }; } diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix index 89235514bb8..b2cf9c6d68d 100644 --- a/pkgs/applications/editors/geany/default.nix +++ b/pkgs/applications/editors/geany/default.nix @@ -3,7 +3,7 @@ with stdenv.lib; let - version = "1.30.1"; + version = "1.31"; in stdenv.mkDerivation rec { @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://download.geany.org/${name}.tar.bz2"; - sha256 = "0ac360f1f3d6c28790a81d570252a7d40421f6e1d8e5a8d653756bd041d88491"; + sha256 = "30fdb906bb76c4251a8bcf83ee267db28c26ef6ab867668a782cec1164a3aba5"; }; NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null; - + nativeBuildInputs = [ pkgconfig intltool ]; buildInputs = [ gtk2 which file ]; diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix index 32998700c23..de1e5e4c64b 100644 --- a/pkgs/applications/editors/gobby/default.nix +++ b/pkgs/applications/editors/gobby/default.nix @@ -15,7 +15,8 @@ in stdenv.mkDerivation rec { sha256 = "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"; }; - buildInputs = [ pkgconfig gtkmm2 gsasl gtksourceview libxmlxx libinf intltool ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtkmm2 gsasl gtksourceview libxmlxx libinf intltool ] ++ stdenv.lib.optional gnomeSupport gnome_vfs; configureFlags = '' diff --git a/pkgs/applications/editors/heme/default.nix b/pkgs/applications/editors/heme/default.nix index c74e47a5243..dce02b56890 100644 --- a/pkgs/applications/editors/heme/default.nix +++ b/pkgs/applications/editors/heme/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { description = "Portable and fast console hex editor for unix operating systems"; - homepage = "http://heme.sourceforge.net/"; + homepage = http://heme.sourceforge.net/; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix index 17bb9739b9b..5c0f2ee18e1 100644 --- a/pkgs/applications/editors/hexcurse/default.nix +++ b/pkgs/applications/editors/hexcurse/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "ncurses-based console hexeditor written in C"; - homepage = "https://github.com/LonnyGomes/hexcurse"; + homepage = https://github.com/LonnyGomes/hexcurse; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/hexedit/default.nix b/pkgs/applications/editors/hexedit/default.nix index 24282b9ac8e..4671df77554 100644 --- a/pkgs/applications/editors/hexedit/default.nix +++ b/pkgs/applications/editors/hexedit/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "View and edit files in hexadecimal or in ASCII"; - homepage = "http://prigaux.chez.com/hexedit.html"; + homepage = http://prigaux.chez.com/hexedit.html; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/ht/default.nix b/pkgs/applications/editors/ht/default.nix index 4455c70d71a..112eebfaf6f 100644 --- a/pkgs/applications/editors/ht/default.nix +++ b/pkgs/applications/editors/ht/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "File editor/viewer/analyzer for executables"; - homepage = "http://hte.sourceforge.net"; + homepage = http://hte.sourceforge.net; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 26b4d3833f3..41ad3164d6a 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -1,37 +1,71 @@ { lib, stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf , coreutils, gnugrep, which, git, python, unzip, p7zip -, androidsdk, jdk +, androidsdk, jdk, cmake, libxml2, zlib, python2, ncurses }: assert stdenv.isLinux; +with stdenv.lib; + let mkJetBrainsProduct = callPackage ./common.nix { }; # Sorted alphabetically - buildClion = { name, version, src, license, description, wmClass }: - (mkJetBrainsProduct rec { + buildClion = { name, version, src, license, description, wmClass, update-channel }: + lib.overrideDerivation (mkJetBrainsProduct rec { inherit name version src wmClass jdk; product = "CLion"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/clion/"; + homepage = https://www.jetbrains.com/clion/; inherit description license; longDescription = '' Enhancing productivity for every C and C++ - developer on Linux, OS X and Windows. + developer on Linux, macOS and Windows. ''; - maintainers = with maintainers; [ edwtjo ]; + maintainers = with maintainers; [ edwtjo mic92 ]; platforms = platforms.linux; }; + }) (attrs: { + postFixup = (attrs.postFixup or "") + optionalString (stdenv.isLinux) '' + ( + cd $out/clion-${version} + # bundled cmake does not find libc + rm -rf bin/cmake + ln -s ${cmake} bin/cmake + + lldbLibPath=$out/clion-${version}/bin/lldb/lib + interp="$(cat $NIX_CC/nix-support/dynamic-linker)" + ln -s ${ncurses.out}/lib/libncurses.so $lldbLibPath/libtinfo.so.5 + + patchelf --set-interpreter $interp \ + --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \ + bin/lldb/bin/lldb-server + patchelf --set-interpreter $interp \ + --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \ + bin/lldb/LLDBFrontend + patchelf \ + --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python2 ]}:$lldbLibPath" \ + bin/lldb/lib/liblldb.so + + patchelf --set-interpreter $interp bin/gdb/bin/gdb + patchelf --set-interpreter $interp bin/gdb/bin/gdbserver + patchelf --set-interpreter $interp \ + --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$lldbLibPath" \ + bin/clang/clang-tidy + + wrapProgram $out/bin/clion \ + --set CL_JDK "${jdk}" + ) + ''; }); - buildDataGrip = { name, version, src, license, description, wmClass }: + buildDataGrip = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct { inherit name version src wmClass jdk; product = "DataGrip"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/datagrip/"; + homepage = https://www.jetbrains.com/datagrip/; inherit description license; longDescription = '' DataGrip is a new IDE from JetBrains built for database admins. @@ -43,12 +77,12 @@ let }; }); - buildGogland = { name, version, src, license, description, wmClass }: - (mkJetBrainsProduct { + buildGogland = { name, version, src, license, description, wmClass, update-channel }: + lib.overrideDerivation (mkJetBrainsProduct { inherit name version src wmClass jdk; product = "Gogland"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/go/"; + homepage = https://www.jetbrains.com/go/; inherit description license; longDescription = '' Gogland is the codename for a new commercial IDE by JetBrains @@ -59,14 +93,21 @@ let maintainers = [ maintainers.miltador ]; platforms = platforms.linux; }; + }) (attrs: { + postFixup = (attrs.postFixup or "") + '' + interp="$(cat $NIX_CC/nix-support/dynamic-linker)" + patchelf --set-interpreter $interp $out/gogland*/plugins/intellij-go-plugin/lib/dlv/linux/dlv + + chmod +x $out/gogland*/plugins/intellij-go-plugin/lib/dlv/linux/dlv + ''; }); - buildIdea = { name, version, src, license, description, wmClass }: + buildIdea = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct rec { inherit name version src wmClass jdk; product = "IDEA"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/idea/"; + homepage = https://www.jetbrains.com/idea/; inherit description license; longDescription = '' IDE for Java SE, Groovy & Scala development Powerful @@ -78,12 +119,12 @@ let }; }); - buildPhpStorm = { name, version, src, license, description, wmClass }: + buildPhpStorm = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct { inherit name version src wmClass jdk; product = "PhpStorm"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/phpstorm/"; + homepage = https://www.jetbrains.com/phpstorm/; inherit description license; longDescription = '' PhpStorm provides an editor for PHP, HTML and JavaScript @@ -95,12 +136,12 @@ let }; }); - buildPycharm = { name, version, src, license, description, wmClass }: + buildPycharm = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct rec { inherit name version src wmClass jdk; product = "PyCharm"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/pycharm/"; + homepage = https://www.jetbrains.com/pycharm/; inherit description license; longDescription = '' Python IDE with complete set of tools for productive @@ -122,19 +163,19 @@ let propagatedUserEnvPkgs = [ python ]; }; - buildRider = { name, version, src, license, description, wmClass }: + buildRider = { name, version, src, license, description, wmClass, update-channel }: lib.overrideDerivation (mkJetBrainsProduct rec { inherit name version src wmClass jdk; product = "Rider"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/rider/"; + homepage = https://www.jetbrains.com/rider/; inherit description license; longDescription = '' JetBrains Rider is a new .NET IDE based on the IntelliJ platform and ReSharper. Rider supports .NET Core, .NET Framework and Mono based projects. This lets you develop a wide array of applications including .NET desktop - apps, services and libraries, Unity games, ASP.NET and + apps, services and libraries, Unity games, ASP.NET and ASP.NET Core web applications. ''; maintainers = [ maintainers.miltador ]; @@ -148,12 +189,12 @@ let ''; }); - buildRubyMine = { name, version, src, license, description, wmClass }: + buildRubyMine = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct rec { inherit name version src wmClass jdk; product = "RubyMine"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/ruby/"; + homepage = https://www.jetbrains.com/ruby/; inherit description license; longDescription = description; maintainers = with maintainers; [ edwtjo ]; @@ -161,12 +202,12 @@ let }; }); - buildWebStorm = { name, version, src, license, description, wmClass }: + buildWebStorm = { name, version, src, license, description, wmClass, update-channel }: (mkJetBrainsProduct { inherit name version src wmClass jdk; product = "WebStorm"; meta = with stdenv.lib; { - homepage = "https://www.jetbrains.com/webstorm/"; + homepage = https://www.jetbrains.com/webstorm/; inherit description license; longDescription = '' WebStorm provides an editor for HTML, JavaScript (incl. Node.js), @@ -185,229 +226,145 @@ in clion = buildClion rec { name = "clion-${version}"; - version = "2017.1"; + version = "2017.2.3"; /* updated by script */ description = "C/C++ IDE. New. Intelligent. Cross-platform"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; - sha256 = "00fc023ca56f2781864cddc7bd5c2897d837d1db17dd8f987abe046ed4df3ca5"; + sha256 = "02hyndyfcrvfbi4q8vmmj0xh2bggwc2azggm24g3m03iffa7j6fx"; /* updated by script */ }; wmClass = "jetbrains-clion"; + update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml }; datagrip = buildDataGrip rec { name = "datagrip-${version}"; - version = "2017.1"; + version = "2017.2.2"; /* updated by script */ description = "Your Swiss Army Knife for Databases and SQL"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; - sha256 = "91ee6a1e43d75a45ae51829835e457da85262410d89e617324d0239ba5625dfa"; + sha256 = "1l8y65fw9g5ckzwpcgigm2qwy8fhpw2hil576rphsnx6qvnh4swn"; /* updated by script */ }; wmClass = "jetbrains-datagrip"; + update-channel = "datagrip_2017_2"; }; gogland = buildGogland rec { name = "gogland-${version}"; - version = "171.3780.106"; + version = "173.2696.28"; /* updated by script */ description = "Up and Coming Go IDE"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/go/${name}.tar.gz"; - sha256 = "cbe84d07fdec6425d8ac63b0ecd5e04148299c1c0c6d05751523aaaa9360110b"; + sha256 = "07nz2pf7fnjxsvc82vihk2i880cji349czxzshr1dk50ixlydq7n"; /* updated by script */ }; wmClass = "jetbrains-gogland"; - }; - - idea14-community = buildIdea rec { - name = "idea-community-${version}"; - version = "14.1.7"; - 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 = "1i4mdjm9dd6zvxlpdgd3bqg45ir0cfc9hl55cdc0hg5qwbz683fz"; - }; - wmClass = "jetbrains-idea-ce"; + update-channel = "gogland_1.0_EAP"; }; idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "2017.1.1"; + version = "2017.2.5"; /* updated by script */ 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 = "1222xkw7n424ihqxyjk352nnx9ka6as7ajwafgb2f27hfiz8d3li"; + sha256 = "01p63wsy60icy4673ci435rmzpjfkyz7a8w413vw45i2bm76skhr"; /* updated by script */ }; wmClass = "jetbrains-idea-ce"; - }; - - idea14-ultimate = buildIdea rec { - name = "idea-ultimate-${version}"; - version = "14.1.7"; - 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 = "1hhga1i2zbsipgq283gn19kv9n94inhr1bxh2yx19gz7yr4r49d2"; - }; - wmClass = "jetbrains-idea"; - }; - - idea15-ultimate = buildIdea rec { - name = "idea-ultimate-${version}"; - version = "15.0.6"; - 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 = "012aap2qn0jx4x34bdv9ivrsr86vvf683srb5vpj27hc4l6rw6ll"; - }; - wmClass = "jetbrains-idea"; + update-channel = "IDEA_Release"; }; idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "2017.1.1"; + version = "2017.2.5"; /* updated by script */ 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 = "18z9kv2nk8fgpns8r4ra39hs4d2v3knnwv9a996wrrbsfc9if8lp"; + url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz"; + sha256 = "0pp49nck1cad6pz81bd95v4v55vmnvj7cbdzybmldglka1afqjb6"; /* updated by script */ }; wmClass = "jetbrains-idea"; + update-channel = "IDEA_Release"; }; phpstorm = buildPhpStorm rec { name = "phpstorm-${version}"; - version = "2017.1"; + version = "2017.2.4"; /* updated by script */ description = "Professional IDE for Web and PHP developers"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; - sha256 = "1ynffm5x8fqq2r71rr9rbvdifbwbvbhqb2x1hkyy4az38gxal1bm"; - }; - wmClass = "jetbrains-phpstorm"; - }; - - phpstorm10 = buildPhpStorm rec { - name = "phpstorm-${version}"; - version = "10.0.4"; - description = "Professional IDE for Web and PHP developers"; - license = stdenv.lib.licenses.unfree; - src = fetchurl { - url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; - sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm"; + sha256 = "0hn3x5wid2z7s2mhnxfqh2yhdkscccpbz7qgsxkjvmkxcynazrvy"; /* updated by script */ }; wmClass = "jetbrains-phpstorm"; + update-channel = "PS2017.2"; }; pycharm-community = buildPycharm rec { name = "pycharm-community-${version}"; - version = "2017.1"; + version = "2017.2.3"; /* updated by script */ description = "PyCharm Community Edition"; license = stdenv.lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "14p6f15n0927awgpsdsdqgmdfbbwkykrw5xggz5hnfl7d05i4sb6"; + sha256 = "1aik3jhggxfxnfv4kg9716gwsi013511jf9n20f2mqzdq8w2jmp8"; /* updated by script */ }; wmClass = "jetbrains-pycharm-ce"; + update-channel = "PyCharm_Release"; }; pycharm-professional = buildPycharm rec { name = "pycharm-professional-${version}"; - version = "2017.1"; + version = "2017.2.3"; /* updated by script */ description = "PyCharm Professional Edition"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1rvic3njsq480pslhw6rxld7jngchihkplq3dfnmkr2h9gx26lkf"; + sha256 = "0ib96yaj7l0igiv2bcrqqpbfn2xn3ic7lxyjn99k6dh8ika1qvry"; /* updated by script */ }; wmClass = "jetbrains-pycharm"; + update-channel = "PyCharm_Release"; }; rider = buildRider rec { name = "rider-${version}"; - version = "171.3655.1246"; + version = "2017.1.2"; /* updated by script */ description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; license = stdenv.lib.licenses.unfree; src = fetchurl { - url = "https://download.jetbrains.com/resharper/riderRS-${version}.tar.gz"; - sha256 = "90f9f8f1919e0f1dad42387f1a308483448323b089c13c409f3dd4d52992266b"; + url = "https://download.jetbrains.com/resharper/JetBrains.Rider-${version}.tar.gz"; + sha256 = "0kphjxibrs4ss6hpxbssvs3n35xh9zzw7a1q09x79ibvvk73gwqh"; /* updated by script */ }; wmClass = "jetbrains-rider"; + update-channel = "rider_2017_1"; }; ruby-mine = buildRubyMine rec { name = "ruby-mine-${version}"; - version = "2017.1"; + version = "2017.1.5"; /* updated by script */ description = "The Most Intelligent Ruby and Rails IDE"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "6c27f43ddc385ffba2cb2f011b80ab46d9b128d0fccf3b4ea43272fe36401a3a"; - }; - wmClass = "jetbrains-rubymine"; - }; - - ruby-mine7 = buildRubyMine rec { - name = "ruby-mine-${version}"; - version = "7.1.5"; - description = "The Most Intelligent Ruby and Rails IDE"; - license = stdenv.lib.licenses.unfree; - src = fetchurl { - url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l"; - }; - wmClass = "jetbrains-rubymine"; - }; - - ruby-mine8 = buildRubyMine rec { - name = "ruby-mine-${version}"; - version = "8.0.4"; - description = "The Most Intelligent Ruby and Rails IDE"; - license = stdenv.lib.licenses.unfree; - src = fetchurl { - url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a"; + sha256 = "198eb3d7914529ce3a6857e038167e194fb838c4b94242048ae45e8413458d66"; /* updated by script */ }; wmClass = "jetbrains-rubymine"; + update-channel = "rm2017.1"; }; webstorm = buildWebStorm rec { name = "webstorm-${version}"; - version = "2017.1"; + version = "2017.2.4"; /* updated by script */ description = "Professional IDE for Web and JavaScript development"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "e651ad78ff9de92bb5b76698eeca1e02ab0f0c36209908074fa4a6b48586071c"; + sha256 = "1dd2fbsyra4fm39w1kz2biljbrmcqwd866hvzsidigmjplhlzan0"; /* updated by script */ }; wmClass = "jetbrains-webstorm"; + update-channel = "WS_Release"; }; - webstorm10 = buildWebStorm rec { - name = "webstorm-${version}"; - version = "10.0.5"; - description = "Professional IDE for Web and JavaScript development"; - license = stdenv.lib.licenses.unfree; - src = fetchurl { - url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "0a5s6f99wyql5pgjl94pf4ljdbviik3b8dbr1s6b7c6jn1gk62ic"; - }; - wmClass = "jetbrains-webstorm"; - }; - - webstorm11 = buildWebStorm rec { - name = "webstorm-${version}"; - version = "11.0.4"; - description = "Professional IDE for Web and JavaScript development"; - license = stdenv.lib.licenses.unfree; - src = fetchurl { - url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "17agyqdyz6naxyx6p0y240ar93gja0ypw01nm2qmfzvh7ch03r24"; - }; - wmClass = "jetbrains-webstorm"; - }; } diff --git a/pkgs/applications/editors/jetbrains/update.pl b/pkgs/applications/editors/jetbrains/update.pl new file mode 100755 index 00000000000..a0479fc9112 --- /dev/null +++ b/pkgs/applications/editors/jetbrains/update.pl @@ -0,0 +1,92 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp + +use strict; +use List::Util qw(reduce); +use File::Slurp; +use LWP::Simple; + +sub semantic_less { + my ($a, $b) = @_; + $a =~ s/\b(\d+)\b/sprintf("%010s", $1)/eg; + $b =~ s/\b(\d+)\b/sprintf("%010s", $1)/eg; + return $a lt $b; +} + +sub get_latest_versions { + my @channels = get("http://www.jetbrains.com/updates/updates.xml") =~ /()/gs; + my %h = {}; + for my $ch (@channels) { + my ($id) = $ch =~ /^)/gs; + my $latest_build = reduce { + my ($aversion) = $a =~ /^]*version="([^"]+)"/; die "no version in $a" unless $aversion; + my ($bversion) = $b =~ /^]*version="([^"]+)"/; die "no version in $b" unless $bversion; + semantic_less($aversion, $bversion) ? $b : $a; + } @builds; + next unless $latest_build; + + # version as in download url + my ($version) = $latest_build =~ /^]*version="([^"]+)"/; + my ($fullNumber) = $latest_build =~ /^]*fullNumber="([^"]+)"/; + my $latest_version_full1 = "$version-$fullNumber"; + $latest_version_full1 =~ s/\s*EAP//; + + my ($latest_version) = $latest_build =~ /^]*version="([^"]+)"/; + ($latest_version) = $latest_build =~ /^]*fullNumber="([^"]+)"/ if $latest_version =~ / /; + + $h{$id} = $latest_version; + $h{"full1_" . $id} = $latest_version_full1; + } + return %h; +} + +my %latest_versions = get_latest_versions(); +# for my $ch (sort keys %latest_versions) { +# print("$ch $latest_versions{$ch}\n"); +# } + +sub update_nix_block { + my ($block) = @_; + my ($channel) = $block =~ /update-channel\s*=\s*"([^"]+)"/; + if ($channel) { + if ($latest_versions{$channel}) { + my ($version) = $block =~ /version\s*=\s*"([^"]+)"/; + die "no version in $block" unless $version; + if ($version eq $latest_versions{$channel}) { + print("$channel is up to date at $version\n"); + } else { + print("updating $channel: $version -> $latest_versions{$channel}\n"); + my ($url) = $block =~ /url\s*=\s*"([^"]+)"/; + # try to interpret some nix + my ($name) = $block =~ /name\s*=\s*"([^"]+)"/; + $name =~ s/\$\{version\}/$latest_versions{$channel}/; + $url =~ s/\$\{name\}/$name/; + $url =~ s/\$\{version\}/$latest_versions{$channel}/; + die "$url still has some interpolation" if $url =~ /\$/; + my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/; + my $version_string = $latest_versions{$channel}; + unless ( $sha256 ) { + my $full_version = $latest_versions{"full1_" . $channel}; + $url =~ s/$version_string/$full_version/; + ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/; + $version_string = $full_version; + } + die "invalid sha256 in $url.sha256" unless $sha256; + my ($sha256Base32) = readpipe("nix-hash --type sha256 --to-base32 $sha256"); + chomp $sha256Base32; + print "Jetbrains published SHA256: $sha256\n"; + print "Conversion into base32 yields: $sha256Base32\n"; + $block =~ s#version\s*=\s*"([^"]+)".+$#version = "$version_string"; /* updated by script */#m; + $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m; + } + } else { + warn "unknown update-channel $channel"; + } + } + return $block; +} + +my $nix = read_file 'default.nix'; +$nix =~ s/(= build\w+ rec \{.+?\n \};\n)/update_nix_block($1)/gse; +write_file 'default.nix', $nix; diff --git a/pkgs/applications/editors/jupp/default.nix b/pkgs/applications/editors/jupp/default.nix new file mode 100644 index 00000000000..14fdcce1c8e --- /dev/null +++ b/pkgs/applications/editors/jupp/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl +, ncurses, gpm +}: + +stdenv.mkDerivation rec { + + name = "jupp-${version}"; + version = "3.1"; + srcName = "joe-3.1jupp31"; + + src = fetchurl { + urls = [ + "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz" + "http://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ]; + sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s"; + }; + + preConfigure = "chmod +x ./configure"; + + buildInputs = [ ncurses gpm ]; + + configureFlags = [ + "--enable-curses" + "--enable-termcap" + "--enable-termidx" + "--enable-getpwnam" + "--enable-largefile" + ]; + + meta = with stdenv.lib; { + description = "A portable fork of Joe's editor"; + longDescription = '' + This is the portable version of JOE's Own Editor, which is currently + developed at sourceforge, licenced under the GNU General Public License, + Version 1, using autoconf/automake. This version has been enhanced by + several functions intended for programmers or other professional users, + and has a lot of bugs fixed. It is based upon an older version of joe + because these behave better overall. + ''; + homepage = http://mirbsd.de/jupp; + license = licenses.gpl1; + maintainers = with maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix index c8aae34e6c4..fac18c0b129 100644 --- a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix +++ b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix @@ -2,16 +2,15 @@ let pname = "kdevelop-pg-qt"; - version = "2.0"; - dirVersion = "2.0.0"; + version = "2.1.0"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { - url = "mirror://kde/stable/${pname}/${dirVersion}/src/${name}.tar.xz"; - sha256 = "2f778d324b7c0962e8bb5f62dd2643bac1a6f3ac971d145b6aace7cd61878993"; + url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; + sha256 = "20d84d25bd40610bd6c0964e4fe0642e56c41b76a65575122dc5196649621e5d"; }; nativeBuildInputs = [ cmake pkgconfig extra-cmake-modules ]; diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix index facd1206a00..1a164ec08de 100644 --- a/pkgs/applications/editors/kdevelop5/kdevelop.nix +++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix @@ -1,45 +1,55 @@ -{ stdenv, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules, makeQtWrapper -, qtquickcontrols, qtwebkit, qttools +{ mkDerivation, lib, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules +, qtquickcontrols, qtwebkit, qttools, kde-cli-tools , kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews , kjobwidgets, kcmutils, kio, knewstuff, knotifyconfig, kparts, ktexteditor -, threadweaver, kxmlgui, kwindowsystem, grantlee +, threadweaver, kxmlgui, kwindowsystem, grantlee, kcrash, karchive, kguiaddons , plasma-framework, krunner, kdevplatform, kdevelop-pg-qt, shared_mime_info , libksysguard, konsole, llvmPackages, makeWrapper }: let pname = "kdevelop"; - version = "5.0.4"; - dirVersion = "5.0.4"; + version = "5.1.2"; in -stdenv.mkDerivation rec { +mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { - url = "mirror://kde/stable/${pname}/${dirVersion}/src/${name}.tar.xz"; - sha256 = "191142b2bdb14837c82721fdfeb15e852329f2c4c0d48fd479c57514c3235d55"; + url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; + sha256 = "af54e807847d145fe5f3eb55962ed0d22e6363c2bc6c32167e51ca4823c00ac7"; }; nativeBuildInputs = [ - cmake gettext pkgconfig extra-cmake-modules makeWrapper makeQtWrapper + cmake gettext pkgconfig extra-cmake-modules makeWrapper ]; buildInputs = [ + kdevelop-pg-qt + llvmPackages.llvm llvmPackages.clang-unwrapped + ]; + + propagatedBuildInputs = [ qtquickcontrols qtwebkit kconfig kdeclarative kdoctools kiconthemes ki18n kitemmodels kitemviews kjobwidgets kcmutils kio knewstuff knotifyconfig kparts ktexteditor threadweaver kxmlgui kwindowsystem grantlee plasma-framework krunner - kdevplatform kdevelop-pg-qt shared_mime_info libksysguard konsole.unwrapped - llvmPackages.llvm llvmPackages.clang-unwrapped + kdevplatform shared_mime_info libksysguard konsole kcrash karchive kguiaddons ]; postInstall = '' - wrapQtProgram "$out/bin/kdevelop" - wrapProgram "$out/bin/kdevelop!" --prefix PATH ":" "${qttools}/bin" + # The kdevelop! script (shell environment) needs qdbus and kioclient5 in PATH. + wrapProgram "$out/bin/kdevelop!" --prefix PATH ":" "${lib.makeBinPath [ qttools kde-cli-tools ]}" + + # Fix the (now wrapped) kdevelop! to find things in right places: + # - Make KDEV_BASEDIR point to bin directory of kdevplatform. + kdev_fixup_sed="s|^export KDEV_BASEDIR=.*$|export KDEV_BASEDIR=${kdevplatform}/bin|" + # - Fixup the one use where KDEV_BASEDIR is assumed to contain kdevelop. + kdev_fixup_sed+=";s|\\\$KDEV_BASEDIR/kdevelop|$out/bin/kdevelop|" + sed -E -i "$kdev_fixup_sed" "$out/bin/.kdevelop!-wrapped" ''; - meta = with stdenv.lib; { + meta = with lib; { maintainers = [ maintainers.ambrop72 ]; platforms = platforms.linux; description = "KDE official IDE"; @@ -52,6 +62,6 @@ stdenv.mkDerivation rec { libraries and is under development since 1998. ''; homepage = https://www.kdevelop.org; - license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; + license = with licenses; [ gpl2Plus lgpl2Plus ]; }; } diff --git a/pkgs/applications/editors/kdevelop5/kdevplatform.nix b/pkgs/applications/editors/kdevelop5/kdevplatform.nix index f2b4fc32fe4..78881b21018 100644 --- a/pkgs/applications/editors/kdevelop5/kdevplatform.nix +++ b/pkgs/applications/editors/kdevelop5/kdevplatform.nix @@ -1,28 +1,26 @@ -{ stdenv, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules, makeQtWrapper -, boost, subversion, apr, aprutil +{ stdenv, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules +, boost, subversion, apr, aprutil, kwindowsystem , qtscript, qtwebkit, grantlee, karchive, kconfig, kcoreaddons, kguiaddons, kiconthemes, ki18n , kitemmodels, kitemviews, kio, kparts, sonnet, kcmutils, knewstuff, knotifications , knotifyconfig, ktexteditor, threadweaver, kdeclarative, libkomparediff2 }: let pname = "kdevplatform"; - version = "5.0.4"; - dirVersion = "5.0.4"; + version = "5.1.2"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; - + src = fetchurl { - url = "mirror://kde/stable/kdevelop/${dirVersion}/src/${name}.tar.xz"; - sha256 = "01abfcd71383048d017fe989ccce0e7590010a3975bbe6e161f55ababe2ad471"; + url = "mirror://kde/stable/kdevelop/${version}/src/${name}.tar.xz"; + sha256 = "e622ddad552a678baaf1166d5cbdc5fd1192d2324300c52ef2d25f1c6778664a"; }; - nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules makeQtWrapper ]; + nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules ]; - propagatedBuildInputs = [ ]; buildInputs = [ - boost subversion apr aprutil + boost subversion apr aprutil kwindowsystem qtscript qtwebkit grantlee karchive kconfig kcoreaddons kguiaddons kiconthemes ki18n kitemmodels kitemviews kio kparts sonnet kcmutils knewstuff knotifications knotifyconfig ktexteditor threadweaver kdeclarative diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix index a5914c92e8f..259c319c70f 100644 --- a/pkgs/applications/editors/kile/default.nix +++ b/pkgs/applications/editors/kile/default.nix @@ -1,9 +1,9 @@ -{ kdeDerivation +{ mkDerivation , lib , fetchgit , extra-cmake-modules , kdoctools -, kdeWrapper +, wrapGAppsHook , qtscript , kconfig , kcrash @@ -17,52 +17,47 @@ , kparts , ktexteditor , kwindowsystem +, okular , poppler }: -let - unwrapped = - kdeDerivation rec { - name = "kile-${version}"; - version = "2017-02-09"; +mkDerivation rec { + name = "kile-${version}"; + version = "2017-02-09"; - src = fetchgit { - url = git://anongit.kde.org/kile.git; - rev = "f77f6e627487c152f111e307ad6dc71699ade746"; - sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib"; + src = fetchgit { + url = git://anongit.kde.org/kile.git; + rev = "f77f6e627487c152f111e307ad6dc71699ade746"; + sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib"; - }; + }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ]; - buildInputs = [ - kconfig - kcrash - kdbusaddons - kdelibs4support - kdoctools - kguiaddons - kiconthemes - kinit - khtml - kparts - ktexteditor - kwindowsystem - poppler - qtscript - ]; + propagatedBuildInputs = [ + kconfig + kcrash + kdbusaddons + kdelibs4support + kdoctools + kguiaddons + kiconthemes + kinit + khtml + kparts + ktexteditor + kwindowsystem + okular + poppler + qtscript + ]; - meta = { - description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment"; - homepage = https://www.kde.org/applications/office/kile/; - maintainers = with lib.maintainers; [ fridh ]; - license = lib.licenses.gpl2Plus; - }; - }; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/kile" ]; - paths = [ konsole.unwrapped ]; + propagatedUserEnvPkgs = [ konsole ]; + + meta = { + description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment"; + homepage = https://www.kde.org/applications/office/kile/; + maintainers = with lib.maintainers; [ fridh ]; + license = lib.licenses.gpl2Plus; + }; } diff --git a/pkgs/applications/editors/leafpad/default.nix b/pkgs/applications/editors/leafpad/default.nix index 055816a798d..dd3fb542da7 100644 --- a/pkgs/applications/editors/leafpad/default.nix +++ b/pkgs/applications/editors/leafpad/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0b0az2wvqgvam7w0ns1j8xp2llslm1rx6h7zcsy06a7j0yp257cm"; }; - buildInputs = [ intltool pkgconfig gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool gtk2 ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/editors/leo-editor/default.nix b/pkgs/applications/editors/leo-editor/default.nix index 81f9ddd96d2..b05bbd053c1 100644 --- a/pkgs/applications/editors/leo-editor/default.nix +++ b/pkgs/applications/editors/leo-editor/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { mkdir -p $out/share/leo-editor mv * $out/share/leo-editor - makeWrapper ${python3Packages.python}/bin/python3.5m $out/bin/leo \ + makeWrapper ${python3Packages.python.interpreter} $out/bin/leo \ --set PYTHONPATH "$PYTHONPATH:$out/share/leo-editor" \ --add-flags "-O $out/share/leo-editor/launchLeo.py" ''; diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix index b8bfd40c079..f4bdee830e1 100644 --- a/pkgs/applications/editors/mg/default.nix +++ b/pkgs/applications/editors/mg/default.nix @@ -1,33 +1,30 @@ -{ fetchurl, stdenv, ncurses, pkgconfig, libbsd }: +{ stdenv, fetchurl, pkgconfig, libbsd, ncurses }: + stdenv.mkDerivation rec { name = "mg-${version}"; - version = "20161005"; + version = "20170828"; src = fetchurl { url = "http://homepage.boetes.org/software/mg/${name}.tar.gz"; - sha256 = "0qaydk2cy765n9clghmi5gdnpwn15y2v0fj6r0jcm0v7d89vbz5p"; + sha256 = "139nc58l5ifj3d3478nhqls0lic52skmxfxggznzxaz9camqd20z"; }; - NIX_CFLAGS_COMPILE = "-Wno-error"; - - preConfigure = '' - substituteInPlace GNUmakefile \ - --replace /usr/bin/pkg-config ${pkgconfig}/bin/pkg-config - ''; + enableParallelBuilding = true; + + makeFlags = [ "PKG_CONFIG=${pkgconfig}/bin/pkg-config" ]; installPhase = '' - mkdir -p $out/bin - cp mg $out/bin - mkdir -p $out/share/man/man1 - cp mg.1 $out/share/man/man1 + install -m 555 -Dt $out/bin mg + install -m 444 -Dt $out/share/man/man1 mg.1 ''; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ ncurses libbsd ]; + + buildInputs = [ libbsd ncurses ]; meta = with stdenv.lib; { - homepage = http://homepage.boetes.org/software/mg/; description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team"; + homepage = "https://homepage.boetes.org/software/mg"; license = licenses.publicDomain; platforms = platforms.all; }; diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/applications/editors/moe/default.nix new file mode 100644 index 00000000000..a1506eb9d6c --- /dev/null +++ b/pkgs/applications/editors/moe/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl +, lzip, ncurses +}: + +with stdenv.lib; +stdenv.mkDerivation rec { + + name = "moe-${version}"; + version = "1.9"; + + src = fetchurl { + url = "mirror://gnu/moe/${name}.tar.lz"; + sha256 = "1wsfzy0iia0c89wnx1ilzw54wqcmlp2nz8mkpvc393z0zagrx48q"; + }; + + nativeBuildInputs = [ lzip ]; + buildInputs = [ ncurses ]; + + meta = { + description = "A small, 8-bit clean editor"; + longDescription = '' + GNU moe is a powerful, 8-bit clean, console text editor for ISO-8859 and + ASCII character encodings. It has a modeless, user-friendly interface, + online help, multiple windows, unlimited undo/redo capability, unlimited + line length, unlimited buffers, global search/replace (on all buffers at + once), block operations, automatic indentation, word wrapping, file name + completion, directory browser, duplicate removal from prompt histories, + delimiter matching, text conversion from/to UTF-8, romanization, etc. + ''; + homepage = http://www.gnu.org/software/moe/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; + }; +} +# TODO: a configurable, global moerc file diff --git a/pkgs/applications/editors/monodevelop/default.nix b/pkgs/applications/editors/monodevelop/default.nix index 44c61d16ec8..53ea9741c03 100644 --- a/pkgs/applications/editors/monodevelop/default.nix +++ b/pkgs/applications/editors/monodevelop/default.nix @@ -34,10 +34,10 @@ stdenv.mkDerivation rec { patchFlags = [ "-p2" ]; patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - autoconf automake pkgconfig shared_mime_info intltool + autoconf automake shared_mime_info intltool mono gtk-sharp-2_0 gnome-sharp unzip - pkgconfig dotnetPackages.NUnit dotnetPackages.NUnitRunners dotnetPackages.Nuget diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix index bfc3b7c79fa..441c157a349 100644 --- a/pkgs/applications/editors/nano/default.nix +++ b/pkgs/applications/editors/nano/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchFromGitHub +{ stdenv, hostPlatform, fetchurl, fetchFromGitHub , ncurses , texinfo , gettext ? null @@ -20,11 +20,11 @@ let in stdenv.mkDerivation rec { name = "nano-${version}"; - version = "2.8.1"; + version = "2.8.7"; src = fetchurl { url = "mirror://gnu/nano/${name}.tar.xz"; - sha256 = "02vdnv30ms2s53ch5j4ldch5sxwjsg3098zkvwrwhi9k6yxshdg9"; + sha256 = "0nhns59smd43mad2w6lnaxqnj4h6ifnlivi6cwydg646jm31gqzv"; }; nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext; @@ -43,7 +43,7 @@ in stdenv.mkDerivation rec { ''; meta = { - homepage = http://www.nano-editor.org/; + homepage = https://www.nano-editor.org/; description = "A small, user-friendly console text editor"; license = licenses.gpl3Plus; maintainers = with maintainers; [ diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 3f2058af133..dafd4e6f120 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, cmake, gettext, libmsgpack, libtermkey -, libtool, libuv, luajit, luaPackages, ncurses, perl, pkgconfig +, libtool, libuv, luajit, luajitPackages, luaPackages, ncurses, perl, pkgconfig , unibilium, makeWrapper, vimUtils, xsel, gperf , withPython ? true, pythonPackages, extraPythonPackages ? [] @@ -24,8 +24,8 @@ let src = fetchFromGitHub { owner = "neovim"; repo = "libvterm"; - rev = "11682793d84668057c5aedc3d7f8071bb54eaf2c"; - sha256 = "0pd90yx6xsagrqjipi26sxri1l4wdnx23ziad1zbxnqx9njxa7g3"; + rev = "5a748f97fbf27003e141002b58933a99f3addf8d"; + sha256 = "1fnd57f5n9h7z50a4vj7g96k6ndsdknjqsibgnxi9ndhyz244qbx"; }; buildInputs = [ perl ]; @@ -81,13 +81,13 @@ let neovim = stdenv.mkDerivation rec { name = "neovim-${version}"; - version = "0.1.7"; + version = "0.2.0"; src = fetchFromGitHub { owner = "neovim"; repo = "neovim"; rev = "v${version}"; - sha256 = "0bk0raxlb1xsqyw9pmqmxvcq5szqhimidrasnvzrci84gld8cwz4"; + sha256 = "0fhjkgjwqqmzbfn9wk10l2vq9v74zkriz5j12b1rx0gdwzlfybn8"; }; enableParallelBuilding = true; @@ -115,7 +115,7 @@ let LUA_PATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaPath lualibs); LUA_CPATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaCPath lualibs); - lualibs = [ luaPackages.mpack luaPackages.lpeg luaPackages.luabitop ]; + lualibs = [ luaPackages.mpack luaPackages.lpeg luajitPackages.lpeg luaPackages.luabitop ]; cmakeFlags = [ "-DLUA_PRG=${luaPackages.lua}/bin/lua" diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index 487d9c842b8..cf4ea9df544 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -4,17 +4,17 @@ with stdenv.lib; pythonPackages.buildPythonPackage rec { name = "neovim-remote-${version}"; - version = "v1.4.0"; + version = "v1.6.0"; disabled = !pythonPackages.isPy3k; src = fetchFromGitHub { owner = "mhinz"; repo = "neovim-remote"; rev = version; - sha256 = "0msvfh27f56xj5ki59ikzavxz863nal5scm57n43618m49qzg8iz"; + sha256 = "0x01zpmxi37jr7j2az2bd8902h7zhkpg6kpvc8xmll9f7703zz2l"; }; - propagatedBuildInputs = [ pythonPackages.neovim ]; + propagatedBuildInputs = with pythonPackages; [ neovim psutil ]; meta = { description = "A tool that helps controlling nvim processes from a terminal"; diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 26f2a3b6941..48f7b29f407 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchFromGitHub, cmake, doxygen -, libmsgpack, makeQtWrapper, neovim, pythonPackages, qtbase }: +{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper +, libmsgpack, neovim, pythonPackages, qtbase }: stdenv.mkDerivation rec { name = "neovim-qt-${version}"; - version = "0.2.6"; + version = "0.2.8"; src = fetchFromGitHub { owner = "equalsraf"; repo = "neovim-qt"; rev = "v${version}"; - sha256 = "1wsxhy8fdayy4dsr2dxgh5k4jysybjlyzj134vk325v6cqz9bsgm"; + sha256 = "190yg6kkw953h8wajlqr2hvs2fz65y6z0blmywlg1nff724allaq"; }; cmakeFlags = [ @@ -17,33 +17,39 @@ stdenv.mkDerivation rec { "-DMSGPACK_LIBRARIES=${libmsgpack}/lib/libmsgpackc.so" ]; - doCheck = true; - buildInputs = with pythonPackages; [ neovim qtbase libmsgpack ] ++ (with pythonPackages; [ jinja2 msgpack python ]); - nativeBuildInputs = [ cmake doxygen makeQtWrapper ]; + nativeBuildInputs = [ cmake doxygen makeWrapper ]; enableParallelBuilding = true; preConfigure = '' # avoid cmake trying to download libmsgpack echo "" > third-party/CMakeLists.txt - # we rip out the gui test as spawning a GUI fails in our build environment - sed -i '/^add_xtest_gui/d' test/CMakeLists.txt + # we rip out a number of tests that fail in the build env + # the GUI tests will never work but the others should - they did before neovim 0.2.0 + # was released + sed -i test/CMakeLists.txt \ + -e '/^add_xtest_gui/d' \ + -e '/tst_neovimconnector/d' \ + -e '/tst_callallmethods/d' \ + -e '/tst_encoding/d' ''; + doCheck = true; + postInstall = '' - wrapQtProgram "$out/bin/nvim-qt" \ + wrapProgram "$out/bin/nvim-qt" \ --prefix PATH : "${neovim}/bin" ''; meta = with stdenv.lib; { description = "Neovim client library and GUI, in Qt5"; - license = licenses.isc; + license = licenses.isc; maintainers = with maintainers; [ peterhoeg ]; inherit (neovim.meta) platforms; inherit version; diff --git a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock index 88100b2e8f8..327edca0ed2 100644 --- a/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock +++ b/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock @@ -1,8 +1,8 @@ GEM remote: https://rubygems.org/ specs: - msgpack (1.0.2) - neovim (0.3.1) + msgpack (1.1.0) + neovim (0.5.0) msgpack (~> 1.0) PLATFORMS @@ -12,4 +12,4 @@ DEPENDENCIES neovim BUNDLED WITH - 1.12.5 + 1.15.1 diff --git a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix index c3ed45a7848..fbb9c63a1cf 100644 --- a/pkgs/applications/editors/neovim/ruby_provider/gemset.nix +++ b/pkgs/applications/editors/neovim/ruby_provider/gemset.nix @@ -2,18 +2,18 @@ msgpack = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1fb2my91j08plsbbry5kilsrh7slmzgbbf6f55zy6xk28p9036lg"; + sha256 = "0ck7w17d6b4jbb8inh1q57bghi9cjkiaxql1d3glmj1yavbpmlh7"; type = "gem"; }; - version = "1.0.2"; + version = "1.1.0"; }; neovim = { dependencies = ["msgpack"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "018mk4vqaxzbk4anq558h2rgj8prbn2rmi777iwrg3n0v8k5nxqw"; + sha256 = "1da0ha3mz63iyihldp7185b87wx86jg07023xjhbng6i28y1ksn7"; type = "gem"; }; - version = "0.3.1"; + version = "0.5.0"; }; } \ No newline at end of file diff --git a/pkgs/applications/editors/notepadqq/default.nix b/pkgs/applications/editors/notepadqq/default.nix index b553e09ed5e..6d1bba8c4d5 100644 --- a/pkgs/applications/editors/notepadqq/default.nix +++ b/pkgs/applications/editors/notepadqq/default.nix @@ -1,13 +1,13 @@ -{ stdenv, fetchgit, pkgconfig, which, qtbase, qtsvg, qttools, qtwebkit }: +{ stdenv, fetchgit, pkgconfig, which, qtbase, qtsvg, qttools, qtwebkit}: let - version = "0.53.0"; + version = "1.2.0"; in stdenv.mkDerivation { name = "notepadqq-${version}"; src = fetchgit { url = "https://github.com/notepadqq/notepadqq.git"; - rev = "3b0751277fb268ec72b466b37d0f0977c536bc1b"; - sha256 = "0hw94mn2xg2r58afvz1xg990jinv9aa33942zgwq54qwj61r93hi"; + rev = "ab074d30e02d49e0fe6957c1523e7fed239aff7d"; + sha256 = "0j8vqsdw314qpk5lrgccm9n7gbyr14ac3s65sl1qn87pxhrz1hpg"; fetchSubmodules = true; }; @@ -24,7 +24,7 @@ in stdenv.mkDerivation { ''; meta = { - homepage = "http://notepadqq.altervista.org/"; + homepage = http://notepadqq.altervista.org/; description = "Notepad++-like editor for the Linux desktop"; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix index c9d86561fe2..0bcbad58b3a 100644 --- a/pkgs/applications/editors/nvpy/default.nix +++ b/pkgs/applications/editors/nvpy/default.nix @@ -30,7 +30,7 @@ in pythonPackages.buildPythonApplication rec { meta = with pkgs.lib; { description = "A simplenote-syncing note-taking tool inspired by Notational Velocity"; - homepage = "https://github.com/cpbotha/nvpy"; + homepage = https://github.com/cpbotha/nvpy; platforms = platforms.linux; license = licenses.bsd3; }; diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix index 5fef166e663..a5049e4236b 100644 --- a/pkgs/applications/editors/rstudio/default.nix +++ b/pkgs/applications/editors/rstudio/default.nix @@ -1,32 +1,32 @@ -{ stdenv, fetchurl, makeDesktopItem, cmake, boost155, zlib, openssl, -R, qt4, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, -# If you have set up an R wrapper with other packages by following -# something like https://nixos.org/nixpkgs/manual/#r-packages, RStudio -# by default not be able to access any of those R packages. In order -# to do this, override the argument "R" here with your respective R -# wrapper, and set "useRPackages" to true. This will add the -# environment variable R_PROFILE_USER to the RStudio wrapper, pointing -# to an R script which will allow R to use these packages. -useRPackages ? false +{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost, zlib, openssl, +R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc }: let - version = "0.98.110"; + version = "1.1.383"; ginVer = "1.5"; - gwtVer = "2.5.1"; + gwtVer = "2.7.0"; in stdenv.mkDerivation rec { name = "RStudio-${version}"; - buildInputs = [ cmake boost155 zlib openssl R qt4 libuuid unzip ant jdk makeWrapper ]; + nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ]; + + buildInputs = [ boost zlib openssl R qt5.full qt5.qtwebkit qt5.qtwebchannel libuuid ]; src = fetchurl { url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz"; - sha256 = "0wybbvl5libki8z2ywgcd0hg0py1az484r95lhwh3jbrwfx7ri2z"; + sha256 = "06680l9amq03b4jarmzfr605bijhb79fip9rk464zab6hgwqbp3f"; }; # Hack RStudio to only use the input R. - patches = [ ./r-location.patch ]; + patches = [ + ./r-location.patch + (fetchpatch { + url = https://aur.archlinux.org/cgit/aur.git/plain/socketproxy-openssl.patch?h=rstudio-desktop-git; + sha256 = "0ywq9rk14s5961l6hvd3cw70jsm73r16h0bsh4yp52vams7cwy9d"; + }) + ]; postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}"; inherit ginVer; @@ -38,14 +38,34 @@ stdenv.mkDerivation rec { inherit gwtVer; gwtSrc = fetchurl { url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip"; - sha256 = "0fjr2rcr8lnywj54mzhg9i4xz1b6fh8yv12p5i2q5mgfld2xymy4"; + sha256 = "1cs78z9a1jg698j2n35wsy07cy4fxcia9gi00x0r0qc3fcdhcrda"; }; hunspellDictionaries = builtins.attrValues hunspellDicts; mathJaxSrc = fetchurl { - url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-20.zip; - sha256 = "1ikg3fhharsfrh2fv8c53fdawqajj24nif89400l3klw1hyq4zal"; + url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip; + sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk"; + }; + + rmarkdownSrc = fetchurl { + url = "https://github.com/rstudio/rmarkdown/archive/95b8b1fa64f78ca99f225a67fff9817103be56.zip"; + sha256 = "12fa65qr04rwsprkmyl651mkaqcbn1znwsmcjg4qsk9n5nxg0fah"; + }; + + rsconnectSrc = fetchurl { + url = "https://github.com/rstudio/rsconnect/archive/425f3767b3142bc6b81c9eb62c4722f1eedc9781.zip"; + sha256 = "1sgf9dj9wfk4c6n5p1jc45386pf0nj2alg2j9qx09av3can1dy9p"; + }; + + rstudiolibclang = fetchurl { + url = https://s3.amazonaws.com/rstudio-buildtools/libclang-3.5.zip; + sha256 = "1sl5vb8misipwbbbykdymw172w9qrh8xv3p29g0bf3nzbnv6zc7c"; + }; + + rstudiolibclangheaders = fetchurl { + url = https://s3.amazonaws.com/rstudio-buildtools/libclang-builtin-headers.zip; + sha256 = "0x4ax186bm3kf098izwmsplckgx1kqzg9iiyzg95rpbqsb4593qb"; }; preConfigure = @@ -66,10 +86,21 @@ stdenv.mkDerivation rec { done done - unzip $mathJaxSrc -d dependencies/common/mathjax + unzip $mathJaxSrc -d dependencies/common/mathjax-26 + unzip $rmarkdownSrc -d dependencies/common/rmarkdown + unzip $rsconnectSrc -d dependencies/common/rsconnect + mkdir -p dependencies/common/libclang/3.5 + unzip $rstudiolibclang -d dependencies/common/libclang/3.5 + mkdir -p dependencies/common/libclang/builtin-headers + unzip $rstudiolibclangheaders -d dependencies/common/libclang/builtin-headers + + mkdir -p dependencies/common/pandoc + cp ${pandoc}/bin/pandoc dependencies/common/pandoc/ ''; - cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" ]; + enableParallelBuilding = true; + + cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ]; desktopItem = makeDesktopItem { name = name; @@ -82,14 +113,8 @@ stdenv.mkDerivation rec { mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;"; }; - postInstall = let rProfile = - # RStudio seems to bypass the environment variables that the R - # wrapper already applies, and so this sets R_PROFILE_USER to - # again make those R packages accessible: - if useRPackages - then "--set R_PROFILE_USER ${R}/${R.passthru.fixLibsR}" else ""; - in '' - wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin ${rProfile} + postInstall = '' + wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin mkdir $out/share cp -r ${desktopItem}/share/applications $out/share mkdir $out/share/icons @@ -100,7 +125,7 @@ stdenv.mkDerivation rec { { description = "Set of integrated tools for the R language"; homepage = http://www.rstudio.com/; license = licenses.agpl3; - maintainers = [ maintainers.ehmry ]; + maintainers = with maintainers; [ ehmry changlinli ciil ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/editors/rstudio/r-location.patch b/pkgs/applications/editors/rstudio/r-location.patch index a1ec84a5475..24cb6a24697 100644 --- a/pkgs/applications/editors/rstudio/r-location.patch +++ b/pkgs/applications/editors/rstudio/r-location.patch @@ -1,18 +1,19 @@ -diff -ur rstudio-0.98.110-old/src/cpp/core/CMakeLists.txt rstudio-0.98.110-new/src/cpp/core/CMakeLists.txt ---- rstudio-0.98.110-old/src/cpp/core/r_util/REnvironmentPosix.cpp 2013-04-28 10:02:14.000000000 -0400 -+++ rstudio-0.98.110-new/src/cpp/core/r_util/REnvironmentPosix.cpp 2015-03-23 15:06:35.533400807 -0400 -@@ -84,9 +84,7 @@ +diff -ur rstudio-1.1.216-old/src/cpp/core/CMakeLists.txt rstudio-1.1.216-new/src/cpp/core/CMakeLists.txt +--- rstudio-1.1.216-old/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:37:26.669418665 -0400 ++++ rstudio-1.1.216-new/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:36:33.590726185 -0400 +@@ -87,10 +87,7 @@ { // define potential paths std::vector rScriptPaths; - rScriptPaths.push_back("/usr/bin/R"); - rScriptPaths.push_back("/usr/local/bin/R"); - rScriptPaths.push_back("/opt/local/bin/R"); +- rScriptPaths.push_back("/Library/Frameworks/R.framework/Resources/bin/R"); + rScriptPaths.push_back("@R@/bin/R"); return scanForRScript(rScriptPaths, pErrMsg); } - -@@ -220,8 +218,7 @@ + +@@ -226,8 +223,7 @@ // scan in standard locations as a fallback std::string scanErrMsg; std::vector rScriptPaths; diff --git a/pkgs/applications/editors/scite/default.nix b/pkgs/applications/editors/scite/default.nix index d02a08a0a59..61b28e02949 100644 --- a/pkgs/applications/editors/scite/default.nix +++ b/pkgs/applications/editors/scite/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "scite-${version}"; - version = "3.7.3"; + version = "3.7.5"; src = fetchurl { - url = "mirror://sourceforge/project/scintilla/SciTE/${version}/scite373.tgz"; - sha256 = "05d81h1fqhjlw9apvrni3x2q4a562cd5ra1071qpna8h4ml0an9m"; + url = http://www.scintilla.org/scite375.tgz; + sha256 = "11pg9bifyyqpblqsrl1b9f8shb3fa6fgzclvjba6hwh7hh98drji"; }; nativeBuildInputs = [ pkgconfig ]; @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = "http://www.scintilla.org/SciTE.html"; + homepage = http://www.scintilla.org/SciTE.html; description = "SCIntilla based Text Editor"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/editors/sublime3/default.nix b/pkgs/applications/editors/sublime3/default.nix index 0b8ecda6230..1ec24325460 100644 --- a/pkgs/applications/editors/sublime3/default.nix +++ b/pkgs/applications/editors/sublime3/default.nix @@ -6,7 +6,7 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; assert gksuSupport -> gksu != null; let - build = "3126"; + build = "3143"; libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo pango]; redirects = [ "/usr/bin/pkexec=${pkexecPath}" ] ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo"; @@ -20,31 +20,30 @@ in let fetchurl { name = "sublimetext-${build}.tar.bz2"; url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x32.tar.bz2"; - sha256 = "0acff4wj1s61x3xszdd93lkhaqa26lb7ryqdxnbphxzhf2jfzzwj"; + sha256 = "0dgpx4wij2m77f478p746qadavab172166bghxmj7fb61nvw9v5i"; } else fetchurl { name = "sublimetext-${build}.tar.bz2"; url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x64.tar.bz2"; - sha256 = "0ykj33fq86iv7f9zx76h90pl9y86iri0idhlj09a6prhk8p17nqq"; + sha256 = "06b554d2cvpxc976rvh89ix3kqc7klnngvk070xrs8wbyb221qcw"; }; dontStrip = true; dontPatchELF = true; - buildInputs = [ makeWrapper ]; + buildInputs = [ makeWrapper zip unzip ]; # make exec.py in Default.sublime-package use own bash with # an LD_PRELOAD instead of "/bin/bash" patchPhase = '' mkdir Default.sublime-package-fix ( cd Default.sublime-package-fix - ${unzip}/bin/unzip ../Packages/Default.sublime-package > /dev/null + unzip -q ../Packages/Default.sublime-package substituteInPlace "exec.py" --replace \ "[\"/bin/bash\"" \ "[\"$out/sublime_bash\"" + zip -q ../Packages/Default.sublime-package **/* ) - ${zip}/bin/zip -j Default.sublime-package.zip Default.sublime-package-fix/* > /dev/null - mv Default.sublime-package.zip Packages/Default.sublime-package rm -r Default.sublime-package-fix ''; @@ -85,14 +84,17 @@ in stdenv.mkDerivation { name = "sublimetext3-${build}"; phases = [ "installPhase" ]; + + inherit sublime; + installPhase = '' mkdir -p $out/bin - ln -s ${sublime}/sublime_text $out/bin/subl - ln -s ${sublime}/sublime_text $out/bin/sublime - ln -s ${sublime}/sublime_text $out/bin/sublime3 + ln -s $sublime/sublime_text $out/bin/subl + ln -s $sublime/sublime_text $out/bin/sublime + ln -s $sublime/sublime_text $out/bin/sublime3 mkdir -p $out/share/applications - ln -s ${sublime}/sublime_text.desktop $out/share/applications/sublime_text.desktop - ln -s ${sublime}/Icon/256x256/ $out/share/icons + ln -s $sublime/sublime_text.desktop $out/share/applications/sublime_text.desktop + ln -s $sublime/Icon/256x256/ $out/share/icons ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/editors/supertux-editor/default.nix b/pkgs/applications/editors/supertux-editor/default.nix index a9f236a57ae..a6d624d4b1e 100644 --- a/pkgs/applications/editors/supertux-editor/default.nix +++ b/pkgs/applications/editors/supertux-editor/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "08y5haclgxvcii3hpdvn1ah8qd0f3n8xgxxs8zryj02b8n7cz3vx"; }; - buildInputs = [mono gtk-sharp-2_0 pkgconfig makeWrapper gnome2.libglade gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [mono gtk-sharp-2_0 makeWrapper gnome2.libglade gtk2 ]; installPhase = '' mkdir -p $out/bin $out/lib/supertux-editor diff --git a/pkgs/applications/editors/tecoc/default.nix b/pkgs/applications/editors/tecoc/default.nix index a3f58012e53..1c5730838ff 100644 --- a/pkgs/applications/editors/tecoc/default.nix +++ b/pkgs/applications/editors/tecoc/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { ''; homepage = https://github.com/blakemcbride/TECOC; maintainers = [ maintainers.AndersonTorres ]; - platforms = platforms.unix; + platforms = platforms.linux; }; } # TODO: test in other platforms - especially Darwin diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix index eb6e1baccb5..76c8e4ae0e4 100644 --- a/pkgs/applications/editors/texmaker/default.nix +++ b/pkgs/applications/editors/texmaker/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { LaTeX editing with completion, structure viewer, preview, spell checking and support of any compilation chain. ''; - homepage = "http://www.xm1math.net/texmaker/"; + homepage = http://www.xm1math.net/texmaker/; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ cfouche ]; diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix index d1fa03c5479..db74a58da43 100644 --- a/pkgs/applications/editors/textadept/default.nix +++ b/pkgs/applications/editors/textadept/default.nix @@ -112,8 +112,9 @@ stdenv.mkDerivation rec { version = "9.3"; name = "textadept-${version}"; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - gtk2 glib pkgconfig unzip ncurses zip + gtk2 glib unzip ncurses zip ]; src = fetchhg { diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix new file mode 100644 index 00000000000..fe90250d415 --- /dev/null +++ b/pkgs/applications/editors/texworks/default.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig +, qt5, libsForQt5, hunspell +, withLua ? true, lua +, withPython ? true, python }: + +stdenv.mkDerivation rec { + name = "texworks-${version}"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "TeXworks"; + repo = "texworks"; + rev = "release-${version}"; + sha256 = "0kj4pq5h4vs2wwg6cazxjlv83x6cwdfsa76winfkdddaqzpdklsj"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell lua python ] + ++ lib.optional withLua lua + ++ lib.optional withPython python; + + cmakeFlags = lib.optional withLua "-DWITH_LUA=ON" + ++ lib.optional withPython "-DWITH_PYTHON=ON"; + + meta = with stdenv.lib; { + description = "Simple TeX front-end program inspired by TeXShop"; + homepage = http://www.tug.org/texworks/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dotlambda ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix index be518b9336a..d1c0ab274f0 100644 --- a/pkgs/applications/editors/tiled/default.nix +++ b/pkgs/applications/editors/tiled/default.nix @@ -1,20 +1,20 @@ -{ stdenv, fetchFromGitHub, pkgconfig, qmakeHook +{ stdenv, fetchFromGitHub, pkgconfig, qmake , python, qtbase, qttools, zlib }: let # qtEnv = with qt5; env "qt-${qtbase.version}" [ qtbase qttools ]; in stdenv.mkDerivation rec { name = "tiled-${version}"; - version = "0.18.2"; + version = "1.0.3"; src = fetchFromGitHub { owner = "bjorn"; repo = "tiled"; rev = "v${version}"; - sha256 = "087jl36g6w2g5l70gz573iwyvx3r7i8fijl3y4mmmf8pyqdyq1n2"; + sha256 = "1j8307h7xkxqwr8rpr9fn1svm5h10k61w6zxr4sgph1hiv8x33aa"; }; - nativeBuildInputs = [ pkgconfig qmakeHook ]; + nativeBuildInputs = [ pkgconfig qmake ]; buildInputs = [ python qtbase qttools ]; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix index eb0be39e7c1..e55bcb48787 100644 --- a/pkgs/applications/editors/tweak/default.nix +++ b/pkgs/applications/editors/tweak/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An efficient hex editor"; - homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak"; + homepage = http://www.chiark.greenend.org.uk/~sgtatham/tweak; license = licenses.mit; platforms = platforms.linux; }; diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix new file mode 100644 index 00000000000..0733bd79665 --- /dev/null +++ b/pkgs/applications/editors/typora/default.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchurl, dpkg, lib, glib, dbus, makeWrapper, gnome2, atk, cairo +, freetype, fontconfig, nspr, nss, xorg, alsaLib, cups, expat, udev }: + +stdenv.mkDerivation rec { + name = "typora-${version}"; + version = "0.9.31"; + + src = + if stdenv.system == "x86_64-linux" then + fetchurl { + url = "https://www.typora.io/linux/typora_${version}_amd64.deb"; + sha256 = "786b5164d9c63ecc23eb427c5ff393285ce8fd540c5bfdd5c1464655fac87a42"; + } + else + fetchurl { + url = "https://www.typora.io/linux/typora_${version}_i386.deb"; + sha256 = "a8fe53f8984d9f8c4e06c14affbb616be58a91cd2b475b9681fb18a6e21930d1"; + } + ; + + rpath = stdenv.lib.makeLibraryPath [ + alsaLib + gnome2.GConf + gnome2.gtk + gnome2.gdk_pixbuf + gnome2.pango + expat + atk + nspr + nss + stdenv.cc.cc + glib + cairo + cups + dbus + udev + fontconfig + freetype + xorg.libX11 + xorg.libXi + xorg.libXext + xorg.libXtst + xorg.libXfixes + xorg.libXcursor + xorg.libXdamage + xorg.libXrender + xorg.libXrandr + xorg.libXcomposite + xorg.libxcb + xorg.libXScrnSaver + ]; + + + buildInputs = [ dpkg makeWrapper ]; + + unpackPhase = "true"; + installPhase = '' + mkdir -p $out + dpkg -x $src $out + cp -av $out/usr/* $out + rm $out/bin/typora + + # Otherwise it looks "suspicious" + chmod -R g-w $out + ''; + + postFixup = '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$out/share/typora:${rpath}" "$out/share/typora/Typora" + + ln -s "$out/share/typora/Typora" "$out/bin/typora" + + # Fix the desktop link + substituteInPlace $out/share/applications/typora.desktop \ + --replace /usr/bin/ $out/bin/ \ + --replace /usr/share/ $out/share/ + + ''; + + meta = with stdenv.lib; { + description = "A minimal Markdown reading & writing app"; + homepage = https://typora.io; + license = licenses.free; + maintainers = with stdenv.lib.maintainers; [ jensbin ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} + diff --git a/pkgs/applications/editors/vanubi/default.nix b/pkgs/applications/editors/vanubi/default.nix index 876bd145b72..273ef33250f 100644 --- a/pkgs/applications/editors/vanubi/default.nix +++ b/pkgs/applications/editors/vanubi/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "145zxgaky5bcq5bxm4z7h0pvviq7k1nrgnf40q6nax6ik616ybjq"; }; - buildInputs = [ pkgconfig vala_0_26 which autoconf automake + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ vala_0_26 which autoconf automake libtool glib gtk3 libwnck3 asciidoc gnome3.gtksourceview gnome3.vte_290 python3Packages.pygments ]; diff --git a/pkgs/applications/editors/vbindiff/default.nix b/pkgs/applications/editors/vbindiff/default.nix index 97bf0d5c237..becb5ccc29a 100644 --- a/pkgs/applications/editors/vbindiff/default.nix +++ b/pkgs/applications/editors/vbindiff/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "A terminal visual binary diff viewer"; - homepage = "http://www.cjmweb.net/vbindiff/"; + homepage = http://www.cjmweb.net/vbindiff/; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix index 1d661014c77..1b1751e9b1d 100644 --- a/pkgs/applications/editors/vim/common.nix +++ b/pkgs/applications/editors/vim/common.nix @@ -1,12 +1,12 @@ { lib, fetchFromGitHub }: rec { - version = "8.0.0442"; + version = "8.0.1245"; src = fetchFromGitHub { owner = "vim"; repo = "vim"; rev = "v${version}"; - sha256 = "1pyyrkb7k5vhm1ijrh4v2f50lxhrgga5mm0gvmz4v704z0h585yg"; + sha256 = "10nh8b2jgfbq4xvha0d2qashvdyqzvq96w8k6rl6793d8y7f3z8s"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix index 3f588fdde58..0f81b0bdd64 100644 --- a/pkgs/applications/editors/vim/configurable.nix +++ b/pkgs/applications/editors/vim/configurable.nix @@ -24,6 +24,10 @@ let let pluginname = substitute(d, ".*/", "", "") if !has_key(seen, pluginname) exec 'set runtimepath^='.d + let after = d."/after" + if isdirectory(after) + exec 'set runtimepath^='.after + endif let seen[pluginname] = 1 endif endfor @@ -85,7 +89,7 @@ composableDerivation { NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; }; - } #Disable Darwin (Mac OS X) support. + } #Disable Darwin (macOS) support. // edf { name = "xsmp"; } #Disable XSMP session management // edf { name = "xsmp_interact"; } #Disable XSMP interaction // edf { name = "mzscheme"; feat = "mzschemeinterp";} #Include MzScheme interpreter. diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix index 8c9a725ddd6..2f110749277 100644 --- a/pkgs/applications/editors/vim/default.nix +++ b/pkgs/applications/editors/vim/default.nix @@ -2,11 +2,13 @@ # default vimrc , vimrc ? fetchurl { name = "default-vimrc"; - url = https://projects.archlinux.org/svntogit/packages.git/plain/trunk/archlinux.vim?h=packages/vim?id=68f6d131750aa778807119e03eed70286a17b1cb; + url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/archlinux.vim?id=68f6d131750aa778807119e03eed70286a17b1cb; sha256 = "18ifhv5q9prd175q3vxbqf6qyvkk6bc7d2lhqdk0q78i68kv9y0c"; } # apple frameworks -, Carbon, Cocoa }: +, Carbon, Cocoa +, buildPlatform, hostPlatform +}: let common = callPackage ./common.nix {}; @@ -16,13 +18,24 @@ stdenv.mkDerivation rec { inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta; - buildInputs = [ ncurses pkgconfig ] - ++ stdenv.lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; - nativeBuildInputs = [ gettext ]; + nativeBuildInputs = [ gettext pkgconfig ]; + buildInputs = [ ncurses ] + ++ stdenv.lib.optionals hostPlatform.isDarwin [ Carbon Cocoa ]; configureFlags = [ "--enable-multibyte" "--enable-nls" + ] ++ stdenv.lib.optionals (hostPlatform != buildPlatform) [ + "vim_cv_toupper_broken=no" + "--with-tlib=ncurses" + "vim_cv_terminfo=yes" + "vim_cv_tty_group=tty" + "vim_cv_tty_mode=0660" + "vim_cv_getcwd_broken=no" + "vim_cv_stat_ignores_slash=yes" + "ac_cv_sizeof_int=4" + "vim_cv_memmove_handles_overlap=yes" + "vim_cv_memmove_handles_overlap=yes" ]; postInstall = '' @@ -31,22 +44,6 @@ stdenv.mkDerivation rec { cp "${vimrc}" $out/share/vim/vimrc ''; - crossAttrs = { - configureFlags = [ - "vim_cv_toupper_broken=no" - "--with-tlib=ncurses" - "vim_cv_terminfo=yes" - "vim_cv_tty_group=tty" - "vim_cv_tty_mode=0660" - "vim_cv_getcwd_broken=no" - "vim_cv_stat_ignores_slash=yes" - "ac_cv_sizeof_int=4" - "vim_cv_memmove_handles_overlap=yes" - "vim_cv_memmove_handles_overlap=yes" - "STRIP=${stdenv.cross.config}-strip" - ]; - }; - __impureHostDeps = [ "/dev/ptmx" ]; # To fix the trouble in vim73, that it cannot cross-build with this patch diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix index a688170b8ad..144fb5428a5 100644 --- a/pkgs/applications/editors/vim/macvim.nix +++ b/pkgs/applications/editors/vim/macvim.nix @@ -17,8 +17,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - gettext ncurses pkgconfig luajit ruby tcl perl python + gettext ncurses luajit ruby tcl perl python ]; patches = [ ./macvim.patch ]; @@ -102,7 +103,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Vim - the text editor - for Mac OS X"; + description = "Vim - the text editor - for macOS"; homepage = https://github.com/b4winckler/macvim; license = licenses.vim; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/editors/vim/qvim.nix b/pkgs/applications/editors/vim/qvim.nix index 5e98b3c9a78..c23bf360daf 100644 --- a/pkgs/applications/editors/vim/qvim.nix +++ b/pkgs/applications/editors/vim/qvim.nix @@ -43,7 +43,7 @@ composableDerivation { ''; }; } - // edf { name = "darwin"; } #Disable Darwin (Mac OS X) support. + // edf { name = "darwin"; } #Disable Darwin (macOS) support. // edf { name = "xsmp"; } #Disable XSMP session management // edf { name = "xsmp_interact"; } #Disable XSMP interaction // edf { name = "mzscheme"; } #Include MzScheme interpreter. diff --git a/pkgs/applications/editors/vis/default.nix b/pkgs/applications/editors/vis/default.nix index 291c7b1b412..eef1746ff38 100644 --- a/pkgs/applications/editors/vis/default.nix +++ b/pkgs/applications/editors/vis/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A vim like editor"; - homepage = http://github.com/martanne/vis; + homepage = https://github.com/martanne/vis; license = licenses.isc; maintainers = with maintainers; [ vrthra ramkromberg ]; platforms = platforms.unix; diff --git a/pkgs/applications/editors/vscode-with-extensions/default.nix b/pkgs/applications/editors/vscode-with-extensions/default.nix new file mode 100644 index 00000000000..c54c8a4277f --- /dev/null +++ b/pkgs/applications/editors/vscode-with-extensions/default.nix @@ -0,0 +1,82 @@ +{ stdenv, lib, fetchurl, runCommand, buildEnv, vscode, which, writeScript +, vscodeExtensions ? [] }: + +/* + `vscodeExtensions` + : A set of vscode extensions to be installed alongside the editor. Here's a an + example: + + ~~~ + vscode-with-extensions.override { + + # When the extension is already available in the default extensions set. + vscodeExtensions = with vscode-extensions; [ + bbenoist.Nix + ] + + # Concise version from the vscode market place when not available in the default set. + ++ vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "code-runner"; + publisher = "formulahendry"; + version = "0.6.33"; + sha256 = "166ia73vrcl5c9hm4q1a73qdn56m0jc7flfsk5p5q41na9f10lb0"; + } + ]; + } + ~~~ + + This expression should fetch + - the *nix* vscode extension from whatever source defined in the + default nixpkgs extensions set `vscodeExtensions`. + + - the *code-runner* vscode extension from the marketplace using the + following url: + + ~~~ + https://bbenoist.gallery.vsassets.io/_apis/public/gallery/publisher/bbenoist/extension/nix/1.0.1/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage + ~~~ + + The original `code` executable will be wrapped so that it uses the set of pre-installed / unpacked + extensions as its `--extensions-dir`. +*/ + +let + + wrappedPkgVersion = lib.getVersion vscode; + wrappedPkgName = lib.removeSuffix "-${wrappedPkgVersion}" vscode.name; + + combinedExtensionsDrv = buildEnv { + name = "${wrappedPkgName}-extensions-${wrappedPkgVersion}"; + paths = vscodeExtensions; + }; + + wrappedExeName = "code"; + exeName = wrappedExeName; + + wrapperExeFile = writeScript "${exeName}" '' + #!${stdenv.shell} + exec ${vscode}/bin/${wrappedExeName} \ + --extensions-dir "${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions" \ + "$@" + ''; + +in + +# When no extensions are requested, we simply redirect to the original +# non-wrapped vscode executable. +runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" { + buildInputs = [ vscode which ]; + dontPatchELF = true; + dontStrip = true; + meta = vscode.meta; +} '' + mkdir -p "$out/bin" + ${if [] == vscodeExtensions + then '' + ln -sT "${vscode}/bin/${wrappedExeName}" "$out/bin/${exeName}" + '' + else '' + ln -sT "${wrapperExeFile}" "$out/bin/${exeName}" + ''} +'' diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index 3d710296219..23bcdae5fb2 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -1,8 +1,8 @@ { stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem, - makeWrapper, libXScrnSaver, libxkbfile }: + makeWrapper, libXScrnSaver, libxkbfile, libsecret }: let - version = "1.11.2"; + version = "1.17.2"; channel = "stable"; plat = { @@ -12,15 +12,16 @@ let }.${stdenv.system}; sha256 = { - "i686-linux" = "0cd3iwd5aizixfxc6ayrpvx6k1zk8nsfhd8i3rgz4p4zzfnx6ri5"; - "x86_64-linux" = "1y3qgm7p1vchh02mqgn8d8pxxnifxfs6hbv01q8zjw3gb7m4anw3"; - "x86_64-darwin" = "1v8x466080rpm0rfiv1mr2adbpia6j5v9pbsspwm0ndc7ly0h71k"; + "i686-linux" = "04mnj74pqkgfgdacq4643qrd7ybka1366lr7mwn0f70lk05wb2h2"; + "x86_64-linux" = "0y37wwvq6flaa2fh2r6b9cplbcszq726zrx6b8slzq6s5wl2lgmr"; + "x86_64-darwin" = "1cqyir7ijwafy68d5vbw47cs1x2lqs1wjnvhhw15yi2d7c14fq7q"; }.${stdenv.system}; archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; rpath = lib.concatStringsSep ":" [ atomEnv.libPath + "${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0" "${lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1" "${lib.makeLibraryPath [libxkbfile]}/libxkbfile.so.1" "$out/lib/vscode" @@ -47,8 +48,8 @@ in }; buildInputs = if stdenv.system == "x86_64-darwin" - then [ unzip makeWrapper libXScrnSaver ] - else [ makeWrapper libXScrnSaver libxkbfile ]; + then [ unzip makeWrapper libXScrnSaver libsecret ] + else [ makeWrapper libXScrnSaver libxkbfile libsecret ]; installPhase = if stdenv.system == "x86_64-darwin" then '' @@ -58,6 +59,9 @@ in '' else '' mkdir -p $out/lib/vscode $out/bin cp -r ./* $out/lib/vscode + + substituteInPlace $out/lib/vscode/bin/code --replace '"$CLI" "$@"' '"$CLI" "--skip-getting-started" "$@"' + ln -s $out/lib/vscode/bin/code $out/bin mkdir -p $out/share/applications @@ -72,16 +76,22 @@ in --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath "${rpath}" \ $out/lib/vscode/code + + patchelf \ + --set-rpath "${rpath}" \ + $out/lib/vscode/resources/app/node_modules/keytar/build/Release/keytar.node + + ln -s ${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0 $out/lib/vscode/libsecret-1.so.0 ''; meta = with stdenv.lib; { description = '' Open source source code editor developed by Microsoft for Windows, - Linux and OS X + Linux and macOS ''; longDescription = '' Open source source code editor developed by Microsoft for Windows, - Linux and OS X. It includes support for debugging, embedded Git + Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is also customizable, so users can change the editor's theme, keyboard shortcuts, and preferences diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix index de423987c02..ad294480e60 100644 --- a/pkgs/applications/editors/wxhexeditor/default.nix +++ b/pkgs/applications/editors/wxhexeditor/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { a good reverse engineer tool like a good hex editor, you welcome. wxHexEditor could edit HDD/SDD disk devices or partitions in raw up to exabyte sizes. ''; - homepage = "http://www.wxhexeditor.org/"; + homepage = http://www.wxhexeditor.org/; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix index 58971b3199b..7213b22c949 100644 --- a/pkgs/applications/editors/zile/default.nix +++ b/pkgs/applications/editors/zile/default.nix @@ -1,25 +1,27 @@ { fetchurl, stdenv, pkgconfig, ncurses, boehmgc, perl, help2man }: stdenv.mkDerivation rec { - name = "zile-2.4.13"; + name = "zile-2.4.14"; src = fetchurl { url = "mirror://gnu/zile/${name}.tar.gz"; - sha256 = "03mcg0bxkzprlsx8y6h22w924pzx4a9zr7zm3g11j8j3x9lz75f7"; + sha256 = "0x3byaddms8l3g7igx6njycqsq98wgapysdb5c7lhcnajlkp8y3s"; }; - buildInputs = [ pkgconfig ncurses boehmgc ]; - nativeBuildInputs = [ help2man perl ]; - - # `help2man' wants to run Zile, which fails when cross-compiling. - crossAttrs.nativeBuildInputs = []; + buildInputs = [ ncurses boehmgc ]; + nativeBuildInputs = [ perl pkgconfig ] + # `help2man' wants to run Zile, which won't work when the + # newly-produced binary can't be run at build-time. + ++ stdenv.lib.optional + (stdenv.hostPlatform == stdenv.buildPlatform) + help2man; # Tests can't be run because most of them rely on the ability to # fiddle with the terminal. doCheck = false; # XXX: Work around cross-compilation-unfriendly `gl_FUNC_FSTATAT' macro. - preConfigure = "export gl_cv_func_fstatat_zero_flag=yes"; + gl_cv_func_fstatat_zero_flag="yes"; meta = with stdenv.lib; { description = "Lightweight Emacs clone"; diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index 790997e328b..3382bb3e56d 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation { sha256 = "02qrdgn46gxr60amxwax4b8fkkmhmjxi6qh4yfvpbii6ai6diarf"; }; - buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.client blas ] ++ (with python2Packages; [ python dateutil wxPython30 numpy ]); @@ -71,5 +72,6 @@ stdenv.mkDerivation { description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.all; + broken = true; }; } diff --git a/pkgs/applications/gis/qgis/default.nix b/pkgs/applications/gis/qgis/default.nix index d7dbaeb1fc2..a008835f59f 100644 --- a/pkgs/applications/gis/qgis/default.nix +++ b/pkgs/applications/gis/qgis/default.nix @@ -5,24 +5,15 @@ }: stdenv.mkDerivation rec { - name = "qgis-2.18.4"; + name = "qgis-2.18.13"; buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++ (stdenv.lib.optional withGrass grass) ++ - (with python2Packages; [ numpy psycopg2 requests2 python2Packages.qscintilla sip ]); + (with python2Packages; [ jinja2 numpy psycopg2 pygments requests python2Packages.qscintilla sip ]); nativeBuildInputs = [ cmake makeWrapper ]; - patches = [ - # See https://hub.qgis.org/issues/16071 - (fetchpatch { - name = "fix-build-against-recent-sip"; - url = "https://github.com/qgis/QGIS/commit/85a0db24f32351f6096cd8282f03ad5c2f4e6ef5.patch"; - sha256 = "0snspzdrpawd7j5b69i8kk7pmmy6ij8bn02bzg94qznfpf9ihf30"; - }) - ]; - # fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory #enableParallelBuilding = true; @@ -34,7 +25,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://qgis.org/downloads/${name}.tar.bz2"; - sha256 = "1s264pahxpn0215xmzm8q2khr5xspipd7bbvxah5kj339kyjfy3k"; + sha256 = "033l3wg3l7hv4642wmsdycjca1dw8p89sk9xyc51wpb3id17vgv2"; }; cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}"; diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix index 83f725622d7..4d229450a4a 100644 --- a/pkgs/applications/gis/saga/default.nix +++ b/pkgs/applications/gis/saga/default.nix @@ -2,15 +2,15 @@ libharu, opencv, vigra, postgresql }: stdenv.mkDerivation rec { - name = "saga-2.3.1"; + name = "saga-5.0.0"; buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ]; enableParallelBuilding = true; src = fetchurl { - url = "mirror://sourceforge/project/saga-gis/SAGA%20-%202.3/SAGA%202.3.1/saga_2.3.1.tar.gz"; - sha256 = "1h4zkfid9z02mqm1f8az9j0pzmm95f83ra57c4r7bvrrz21w3xaq"; + url = "mirror://sourceforge/project/saga-gis/SAGA%20-%205/SAGA%20-%205.0.0/saga-5.0.0.tar.gz"; + sha256 = "9be997209737e80262d9f13fd9b9797194a9f2facb10e5b9bd756d8cda675089"; }; meta = { diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index 2ee7f3bb160..f2046f0d912 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -2,6 +2,7 @@ , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp , ApplicationServices +, buildPlatform, hostPlatform }: let @@ -9,11 +10,12 @@ let if stdenv.system == "i686-linux" then "i686" else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64" else if stdenv.system == "armv7l-linux" then "armv7l" + else if stdenv.system == "aarch64-linux" then "aarch64" else throw "ImageMagick is not supported on this platform."; cfg = { - version = "7.0.4-6"; - sha256 = "1nm0hjijwhcp6rzcn7zksp2820dxvj4lmblj7kzpzd3s1ds09q0y"; + version = "7.0.7-8"; + sha256 = "0h2jbaxrxrmdcr5crf1d93sc60v4zfqrrl3w79md6h11wf57ksbp"; patches = []; }; in @@ -47,7 +49,7 @@ stdenv.mkDerivation rec { [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" "--with-gslib" ] - ++ lib.optionals (stdenv.cross.libc or null == "msvcrt") + ++ lib.optionals hostPlatform.isMinGW [ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM ; @@ -57,13 +59,13 @@ stdenv.mkDerivation rec { [ zlib fontconfig freetype ghostscript libpng libtiff libxml2 ] - ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + ++ lib.optionals (!hostPlatform.isMinGW) [ openexr librsvg openjpeg ] ++ lib.optional stdenv.isDarwin ApplicationServices; propagatedBuildInputs = [ bzip2 freetype libjpeg lcms2 ] - ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + ++ lib.optionals (!hostPlatform.isMinGW) [ libX11 libXext libXt libwebp ] ; diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix index 58a88e89681..35e4fb989b3 100644 --- a/pkgs/applications/graphics/ImageMagick/default.nix +++ b/pkgs/applications/graphics/ImageMagick/default.nix @@ -2,6 +2,7 @@ , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp , ApplicationServices +, buildPlatform, hostPlatform }: let @@ -9,16 +10,17 @@ let if stdenv.system == "i686-linux" then "i686" else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64" else if stdenv.system == "armv7l-linux" then "armv7l" + else if stdenv.system == "aarch64-linux" then "aarch64" else throw "ImageMagick is not supported on this platform."; cfg = { - version = "6.9.7-6"; - sha256 = "17pc3xz8srb9g5a5gkk6q9sjiss77fgm0wxxfmb5qya4rqivjpzn"; + version = "6.9.9-20"; + sha256 = "1pz8clmhnq26vdsp1j21czq3nfbvrmfdz30k7na7w4vh7wqxsrx1"; patches = []; } # Freeze version on mingw so we don't need to port the patch too often. # FIXME: This version has multiple security vulnerabilities - // lib.optionalAttrs (stdenv.cross.libc or null == "msvcrt") { + // lib.optionalAttrs (hostPlatform.isMinGW) { version = "6.9.2-0"; sha256 = "17ir8bw1j7g7srqmsz3rx780sgnc21zfn0kwyj78iazrywldx8h7"; patches = [(fetchpatch { @@ -59,7 +61,7 @@ stdenv.mkDerivation rec { [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" "--with-gslib" ] - ++ lib.optionals (stdenv.cross.libc or null == "msvcrt") + ++ lib.optionals (hostPlatform.isMinGW) [ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM ; @@ -69,13 +71,13 @@ stdenv.mkDerivation rec { [ zlib fontconfig freetype ghostscript libpng libtiff libxml2 ] - ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + ++ lib.optionals (!hostPlatform.isMinGW) [ openexr librsvg openjpeg ] ++ lib.optional stdenv.isDarwin ApplicationServices; propagatedBuildInputs = [ bzip2 freetype libjpeg lcms2 ] - ++ lib.optionals (stdenv.cross.libc or null != "msvcrt") + ++ lib.optionals (!hostPlatform.isMinGW) [ libX11 libXext libXt libwebp ] ; @@ -84,7 +86,9 @@ stdenv.mkDerivation rec { moveToOutput "bin/*-config" "$dev" moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params for file in "$dev"/bin/*-config; do - substituteInPlace "$file" --replace pkg-config \ + substituteInPlace "$file" --replace "${pkgconfig}/bin/pkg-config -config" \ + ${pkgconfig}/bin/pkg-config + substituteInPlace "$file" --replace ${pkgconfig}/bin/pkg-config \ "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/pkg-config'" done '' + lib.optionalString (ghostscript != null) '' diff --git a/pkgs/applications/graphics/PythonMagick/default.nix b/pkgs/applications/graphics/PythonMagick/default.nix index 332bb8794e7..f0b4a991f74 100644 --- a/pkgs/applications/graphics/PythonMagick/default.nix +++ b/pkgs/applications/graphics/PythonMagick/default.nix @@ -1,3 +1,5 @@ +# This expression provides Python bindings to ImageMagick. Python libraries are supposed to be called via `python-packages.nix`. + {stdenv, fetchurl, python, boost, pkgconfig, imagemagick}: stdenv.mkDerivation rec { @@ -6,7 +8,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://imagemagick/python/releases/PythonMagick-${version}.tar.xz"; - sha256 = "0vkgpmrdz530nyvmjahpdrvcj7fd7hvsp15d485hq6103qycisv8"; + sha256 = "137278mfb5079lns2mmw73x8dhpzgwha53dyl00mmhj2z25varpn"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/graphics/ahoviewer/default.nix b/pkgs/applications/graphics/ahoviewer/default.nix index dc974aed057..2d42a479999 100644 --- a/pkgs/applications/graphics/ahoviewer/default.nix +++ b/pkgs/applications/graphics/ahoviewer/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { name = "ahoviewer-${version}"; - version = "1.4.8"; + version = "1.4.9"; src = fetchFromGitHub { owner = "ahodesuka"; repo = "ahoviewer"; rev = version; - sha256 = "0fsak22hpi2r8zqysswdyngaf3n635qvclqh1p0g0wrkfza4dbc4"; + sha256 = "194h3k5zvd8gjrbs91qba7d9h7i30yh4rjk4w3aa1vwvv0qm2amx"; }; enableParallelBuilding = true; @@ -33,9 +33,9 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = "https://github.com/ahodesuka/ahoviewer"; + homepage = https://github.com/ahodesuka/ahoviewer; description = "A GTK2 image viewer, manga reader, and booru browser"; - maintainers = [ maintainers.skrzyp ]; + maintainers = with maintainers; [ skrzyp xzfc ]; license = licenses.mit; platforms = platforms.allBut [ "darwin" "cygwin" ]; }; diff --git a/pkgs/applications/graphics/ao/default.nix b/pkgs/applications/graphics/ao/default.nix index 2bba73fae1a..990fee8cc37 100644 --- a/pkgs/applications/graphics/ao/default.nix +++ b/pkgs/applications/graphics/ao/default.nix @@ -5,11 +5,13 @@ stdenv.mkDerivation rec { version = "0.0pre20160820"; name = "ao-${version}"; + + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake ninja boost libpng glfw3 epoxy guile pkgconfig mesa libX11 + cmake ninja boost libpng glfw3 epoxy guile mesa libX11 libpthreadstubs libXau libXdmcp libXrandr libXext libXinerama libXxf86vm libXcursor libXfixes - ]; + ]; src = fetchgit { url = https://github.com/mkeeter/ao; @@ -18,7 +20,6 @@ stdenv.mkDerivation rec { }; cmakeFlags = "-G Ninja"; - buildPhase = "ninja"; installPhase = '' ninja install cd .. diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix index a9b2eb1163a..9b1dd4c25ae 100644 --- a/pkgs/applications/graphics/apitrace/default.nix +++ b/pkgs/applications/graphics/apitrace/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "apitrace-${version}"; - version = "7.1"; + version = "7.1-363-ge3509be1"; src = fetchFromGitHub { - sha256 = "1n2gmsjnpyam7isg7n1ksggyh6y1l8drvx0a93bnvbcskr7jiz9a"; - rev = version; + sha256 = "1xbz6gwl7kqjm7jjy5gxkdxzrg93vj1a3l19ara7rni6dii0q136"; + rev = "e3509be175eda77749abffe051ed0d3eb5d14e72"; repo = "apitrace"; owner = "apitrace"; }; diff --git a/pkgs/applications/graphics/astah-community/default.nix b/pkgs/applications/graphics/astah-community/default.nix new file mode 100644 index 00000000000..72d367d8fea --- /dev/null +++ b/pkgs/applications/graphics/astah-community/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchurl, makeWrapper, makeDesktopItem, unzip, jre }: + +let + + name = "astah-community"; + version = "7.2.0"; + postfix = "1ff236"; + desktopIcon = fetchurl { + name = "${name}.png"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/astah_community.png?h=astah-community&id=94710b5a6aadcaf489022b0f0e61f8832ae6fa87"; + sha256 = "0knlknwfqqnhg63sxxpia5ykn397id31gzr956wnn6yjj58k3ckm"; + }; + mimeXml = fetchurl { + name = "${name}.xml"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/astah_community.xml?h=astah-community&id=94710b5a6aadcaf489022b0f0e61f8832ae6fa87"; + sha256 = "096n2r14ddm97r32i4sbp7v4qdmwn9sxy7lwphcx1nydppb0m97b"; + }; + desktopItem = makeDesktopItem { + name = name; + exec = "astah %U"; + icon = "${desktopIcon}"; + comment = "Lightweight, easy-to-use, and free UML2.x modeler"; + desktopName = "Astah* Community"; + genericName = "Astah* Community"; + mimeType = "application/x-astah"; + categories = "Application;Development;"; + extraEntries = "NoDisplay=false"; + }; + +in + +stdenv.mkDerivation { + name = "${name}-${version}"; + + src = fetchurl { + url = "http://cdn.change-vision.com/files/${name}-${stdenv.lib.replaceStrings ["."] ["_"] version}-${postfix}.zip"; + sha256 = "1lkl30jdjiarvh2ap9rjabvrq9qhrlmfrasv3vvkag22y9w4l499"; + }; + + nativeBuildInputs = [ unzip makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share} + cp -r . $out/share/astah + cp -r ${desktopItem}/share/applications $out/share/applications + + install -D ${desktopIcon} $out/share/pixmaps/${name}.png + install -D ${mimeXml} $out/share/mime/packages/${name}.xml + + makeWrapper ${jre}/bin/java $out/bin/astah \ + --add-flags "-jar $out/share/astah/astah-community.jar" + + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "Lightweight, easy-to-use, and free UML2.x modeler"; + homepage = http://astah.net/editions/community; + license = licenses.unfree; + }; +} diff --git a/pkgs/applications/graphics/autotrace/autofig.nix b/pkgs/applications/graphics/autotrace/autofig.nix new file mode 100644 index 00000000000..31ee0ff0d07 --- /dev/null +++ b/pkgs/applications/graphics/autotrace/autofig.nix @@ -0,0 +1,10 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "autofig-0.1"; + + src = fetchurl { + url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz"; + sha256 = "11cs9hdbgcl3aamcs3149i8kvyyldmnjf6yq81kbcf8fdmfk2zdq"; + }; +} diff --git a/pkgs/applications/graphics/autotrace/default.nix b/pkgs/applications/graphics/autotrace/default.nix new file mode 100644 index 00000000000..7af7c8986f2 --- /dev/null +++ b/pkgs/applications/graphics/autotrace/default.nix @@ -0,0 +1,124 @@ +{ stdenv, fetchurl, callPackage, libpng12, imagemagick, + autoreconfHook, glib, pstoedit, pkgconfig, gettext, gd, darwin }: + +# TODO: Figure out why the resultant binary is somehow linked against +# libpng16.so.16 rather than libpng12. + +stdenv.mkDerivation rec { + name = "autotrace-${version}"; + version = "0.31.1"; + + src = fetchurl { + url = "mirror://sourceforge/autotrace/AutoTrace/0.31.1/${name}.tar.gz"; + sha256 = "1xmgja5fv48mdbsa51inf7ksz36nqd6bsaybrk5xgprm6cy946js"; + }; + + # The below commented out part is for an identically-named project + # on GitHub which appears to derive somehow from the Sourceforge + # version, but I have no idea what the lineage is of this project. + # It will build, but it segfaults when I attempt to run -centerline. + # Someone may need this for some reason, so I've left it here. + # + #src = fetchFromGitHub { + # owner = "autotrace"; + # repo = "autotrace"; + # rev = "b3ac8818d86943102cb4f13734e0b527c42dc45a"; + # sha256 = "0z5h2mvxwckk2msi361zk1nc9fdcvxyimyc2hlyqd6h8k3p7zdi4"; + #}; + #postConfigure = '' + # sed -i -e "s/at_string/gchar */g" *.c + # sed -i -e "s/at_address/gpointer/g" *.c + # sed -i -e "s/at_bitmap_type/struct _at_bitmap/g" *.c + # sed -i -e "s/AT_BITMAP_BITS(bitmap)/AT_BITMAP_BITS(\&bitmap)/g" input-magick.c + #''; + + autofig = callPackage ./autofig.nix {}; + nativeBuildInputs = [ autoreconfHook glib autofig pkgconfig gettext ]; + buildInputs = [ libpng12 imagemagick pstoedit ] + ++ stdenv.lib.optionals stdenv.isDarwin + (with darwin.apple_sdk.frameworks; [ gd ApplicationServices ]); + + postUnpack = '' + pushd $sourceRoot + autofig autotrace-config.af + popd + ''; + + # This complains about various m4 files, but it appears to not be an + # actual error. + preConfigure = '' + glib-gettextize --copy --force + # pstoedit-config no longer exists, it was replaced with pkg-config + mkdir wrappers + cat >wrappers/pstoedit-config <<'EOF' + #!${stdenv.shell} + # replace --version with --modversion for pkg-config + args=''${@/--version/--modversion} + exec pkg-config pstoedit "''${args[@]}" + EOF + chmod +x wrappers/pstoedit-config + export PATH="$PATH:$PWD/wrappers" + ''; + + meta = with stdenv.lib; { + homepage = http://autotrace.sourceforge.net/; + description = "Utility for converting bitmap into vector graphics"; + platforms = platforms.unix; + maintainers = with maintainers; [ hodapp ]; + license = licenses.gpl2; + knownVulnerabilities = [ + "CVE-2013-1953" + "CVE-2016-7392" + "CVE-2017-9151" + "CVE-2017-9152" + "CVE-2017-9153" + "CVE-2017-9154" + "CVE-2017-9155" + "CVE-2017-9156" + "CVE-2017-9157" + "CVE-2017-9158" + "CVE-2017-9159" + "CVE-2017-9160" + "CVE-2017-9161" + "CVE-2017-9162" + "CVE-2017-9163" + "CVE-2017-9164" + "CVE-2017-9165" + "CVE-2017-9166" + "CVE-2017-9167" + "CVE-2017-9168" + "CVE-2017-9169" + "CVE-2017-9170" + "CVE-2017-9171" + "CVE-2017-9172" + "CVE-2017-9173" + "CVE-2017-9174" + "CVE-2017-9175" + "CVE-2017-9176" + "CVE-2017-9177" + "CVE-2017-9178" + "CVE-2017-9179" + "CVE-2017-9180" + "CVE-2017-9181" + "CVE-2017-9182" + "CVE-2017-9183" + "CVE-2017-9184" + "CVE-2017-9185" + "CVE-2017-9186" + "CVE-2017-9187" + "CVE-2017-9188" + "CVE-2017-9189" + "CVE-2017-9190" + "CVE-2017-9191" + "CVE-2017-9192" + "CVE-2017-9193" + "CVE-2017-9194" + "CVE-2017-9195" + "CVE-2017-9196" + "CVE-2017-9197" + "CVE-2017-9198" + "CVE-2017-9199" + "CVE-2017-9200" + ]; + }; +} diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix index b89e18ed148..f190b421b05 100644 --- a/pkgs/applications/graphics/awesomebump/default.nix +++ b/pkgs/applications/graphics/awesomebump/default.nix @@ -1,31 +1,50 @@ -{ lib, stdenv, fetchurl, qtbase, qmakeHook, makeWrapper }: +{ lib, stdenv, fetchgit, qtbase, qmake, makeWrapper, qtscript, gcc, flex, bison, qtdeclarative, gnutar }: -stdenv.mkDerivation { - name = "awesomebump-4.0"; - src = fetchurl { - url = https://github.com/kmkolasinski/AwesomeBump/archive/Linuxv4.0.tar.gz; - sha256 = "1rp4m4y2ld49hibzwqwy214cbiin80i882d9l0y1znknkdcclxf2"; +let + version = "5.1"; + + src = fetchgit { + url = "https://github.com/kmkolasinski/AwesomeBump.git"; + rev = "Winx32v${version}"; + sha256 = "1c8b9jki0v8kzkvsvyv7q1w3s7j40br6ph15hh2xi0a1mpwckq56"; + fetchSubmodules = true; }; - setSourceRoot = "sourceRoot=$(echo */Sources)"; - - buildInputs = [ qtbase qmakeHook makeWrapper ]; - - enableParallelBuilding = true; - - installPhase = - '' - d=$out/libexec/AwesomeBump - mkdir -p $d $out/bin - cp AwesomeBump $d/ - cp -prd ../Bin/Configs ../Bin/Core $d/ - - # AwesomeBump expects to find Core and Configs in its current - # directory. - makeWrapper $d/AwesomeBump $out/bin/AwesomeBump \ - --run "cd $d" + qtnproperty = stdenv.mkDerivation { + name = "qtnproperty"; + inherit src; + sourceRoot = "AwesomeBump/Sources/utils/QtnProperty"; + buildInputs = [ qtscript qtbase qtdeclarative ]; + nativeBuildInputs = [ qmake flex bison ]; + postInstall = '' + install -D bin-linux/QtnPEG $out/bin/QtnPEG ''; + }; +in stdenv.mkDerivation rec { + name = "awesomebump-${version}"; + + inherit src; + + buildInputs = [ qtbase qtscript qtdeclarative ]; + + nativeBuildInputs = [ qmake makeWrapper ]; + + preBuild = '' + ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG + ''; + + postInstall = '' + d=$out/libexec/AwesomeBump + + mkdir -p $d + cp -vr workdir/`cat workdir/current`/bin/AwesomeBump $d/ + cp -prd Bin/Configs Bin/Core $d/ + + # AwesomeBump expects to find Core and Configs in its current directory. + makeWrapper $d/AwesomeBump $out/bin/AwesomeBump \ + --run "cd $d" + ''; meta = { homepage = https://github.com/kmkolasinski/AwesomeBump; diff --git a/pkgs/applications/graphics/c3d/default.nix b/pkgs/applications/graphics/c3d/default.nix index a254993a016..74631e88ebf 100644 --- a/pkgs/applications/graphics/c3d/default.nix +++ b/pkgs/applications/graphics/c3d/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchgit, cmake, itk }: +{ stdenv, fetchgit, cmake, itk, Cocoa }: stdenv.mkDerivation rec { - _name = "c3d"; - _version = "1.1.0"; - name = "${_name}-${_version}"; + name = "${pname}-${version}"; + pname = "c3d"; + version = "1.1.0"; src = fetchgit { url = "https://git.code.sf.net/p/c3d/git"; @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ itk ]; + buildInputs = [ itk ] + ++ stdenv.lib.optional stdenv.isDarwin Cocoa; meta = with stdenv.lib; { homepage = http://www.itksnap.org/c3d; diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index 68ab287f1a6..8c1db9c039e 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -11,12 +11,12 @@ assert stdenv ? glibc; stdenv.mkDerivation rec { - version = "2.2.4"; + version = "2.2.5"; name = "darktable-${version}"; src = fetchurl { url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz"; - sha256 = "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x"; + sha256 = "10gjzd4irxhladh4jyss9kgp627k8vgx2divipsb33pp6cms80z3"; }; buildInputs = diff --git a/pkgs/applications/graphics/dia/default.nix b/pkgs/applications/graphics/dia/default.nix index 8d8e36a8bc8..73362588a57 100644 --- a/pkgs/applications/graphics/dia/default.nix +++ b/pkgs/applications/graphics/dia/default.nix @@ -1,50 +1,43 @@ -{stdenv, fetchurl, gtk2, pkgconfig, perl, perlXMLParser, libxml2, gettext -, python, libxml2Python, docbook5, docbook_xsl, libxslt, intltool, libart_lgpl -, withGNOME ? false, libgnomeui }: +{ stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkgconfig, perl, +perlXMLParser, libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl, +libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui, +gtk-mac-integration }: stdenv.mkDerivation rec { - name = "dia-${minVer}.3"; - minVer = "0.97"; + name = "dia-${version}"; + version = "0.97.3.20170622"; - src = fetchurl { - url = "mirror://gnome/sources/dia/${minVer}/${name}.tar.xz"; - sha256 = "0d3x6w0l6fwd0l8xx06y1h56xf8ss31yzia3a6xr9y28xx44x492"; - }; - - correctPersistence = fetchurl { - url = https://launchpadlibrarian.net/132677658/persistence; - sha256 = "1rv6zv9i03bna4bdp1wzn72lg7kdwi900y1izdq0imibi54nxjsk"; + src = fetchgit { + url = git://git.gnome.org/dia; + rev = "b86085dfe2b048a2d37d587adf8ceba6fb8bc43c"; + sha256 = "1fyxfrzdcs6blxhkw3bcgkksaf3byrsj4cbyrqgb4869k3ynap96"; }; buildInputs = [ gtk2 perlXMLParser libxml2 gettext python libxml2Python docbook5 - libxslt docbook_xsl libart_lgpl - ] ++ stdenv.lib.optional withGNOME libgnomeui; + libxslt docbook_xsl libart_lgpl ] + ++ stdenv.lib.optional withGNOME libgnomeui + ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration; - nativeBuildInputs = [ pkgconfig intltool perl ]; + nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool perl ]; + preConfigure = '' + NOCONFIGURE=1 ./autogen.sh # autoreconfHook is not enough + ''; configureFlags = stdenv.lib.optionalString withGNOME "--enable-gnome"; - patches = [ ]; + hardeningDisable = [ "format" ]; # This file should normally require a gtk-update-icon-cache -q /usr/share/icons/hicolor command # It have no reasons to exist in a redistribuable package postInstall = '' rm $out/share/icons/hicolor/icon-theme.cache - - cd "$out"/bin/ - mv dia .dia-wrapped - echo '#! ${stdenv.shell}' >> dia - echo 'test -f "$HOME/.dia/persistence" || cp ${correctPersistence} "$HOME/.dia/persistence" ' >> dia - echo 'chmod u+rw "$HOME/.dia/persistence" ' >> dia - echo "\"$out/bin/"'.dia-wrapped" "$@"' >> dia - chmod a+x dia ''; meta = { description = "Gnome Diagram drawing software"; homepage = http://live.gnome.org/Dia; maintainers = with stdenv.lib.maintainers; [raskin]; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.unix; }; } diff --git a/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch b/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch deleted file mode 100644 index 149a2b2b1ac..00000000000 --- a/pkgs/applications/graphics/digikam/0001-Disable-fno-operator-names.patch +++ /dev/null @@ -1,25 +0,0 @@ -From beb9ad0149adfe448acfa650fb3e171d5fdd7e27 Mon Sep 17 00:00:00 2001 -From: Moritz Ulrich -Date: Wed, 22 Feb 2017 15:28:11 +0100 -Subject: [PATCH] Disable `-fno-operator-names` - ---- - core/CMakeLists.txt | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt -index 89e06827e6..01d0c88ea9 100644 ---- a/core/CMakeLists.txt -+++ b/core/CMakeLists.txt -@@ -98,6 +98,8 @@ include(MacroOpenCV) - include(MacroJPEG) - include(MacroBoolTo01) - -+string(REPLACE "-fno-operator-names" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -+ - # ================================================================================================== - - option(ENABLE_OPENCV3 "Build digiKam with OpenCV3 instead OpenCV2 (default=OFF)" OFF) --- -2.11.1 - diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix index f1179101692..a62940ff703 100644 --- a/pkgs/applications/graphics/digikam/default.nix +++ b/pkgs/applications/graphics/digikam/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, extra-cmake-modules, makeQtWrapper +{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook # For `digitaglinktree` , perl, sqlite @@ -8,6 +8,7 @@ , qtsvg , qtwebkit +, kcalcore , kconfigwidgets , kcoreaddons , kdoctools @@ -28,12 +29,15 @@ , lensfun , libgphoto2 , libkipi +, libksane , liblqr1 , libqtav , libusb1 , marble +, mesa , mysql -, opencv +, opencv3 +, pcre , threadweaver # For panorama and focus stacking @@ -44,35 +48,18 @@ , oxygen }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "digikam-${version}"; - version = "5.4.0"; + version = "5.7.0"; src = fetchurl { - url = "http://download.kde.org/stable/digikam/${name}.tar.xz"; - sha256 = "0dgsgji14l5zvxny36hrfsp889fsfrsbbn9bg57m18404xp903kg"; + url = "mirror://kde/stable/digikam/${name}.tar.xz"; + sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n"; }; - nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ]; - - patches = [ ./0001-Disable-fno-operator-names.patch ]; + nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ]; buildInputs = [ - qtbase - qtxmlpatterns - qtsvg - qtwebkit - - kconfigwidgets - kcoreaddons - kdoctools - kfilemetadata - knotifications - knotifyconfig - ktextwidgets - kwidgetsaddons - kxmlgui - bison boost eigen @@ -83,43 +70,55 @@ stdenv.mkDerivation rec { lensfun libgphoto2 libkipi + libksane liblqr1 libqtav libusb1 - marble.unwrapped + mesa mysql - opencv - threadweaver + opencv3 + pcre + qtbase + qtxmlpatterns + qtsvg + qtwebkit + + kcalcore + kconfigwidgets + kcoreaddons + kfilemetadata + knotifications + knotifyconfig + ktextwidgets + kwidgetsaddons + kxmlgui + + marble oxygen + threadweaver ]; enableParallelBuilding = true; cmakeFlags = [ - "-DLIBUSB_LIBRARIES=${libusb1.out}/lib" - "-DLIBUSB_INCLUDE_DIR=${libusb1.dev}/include/libusb-1.0" "-DENABLE_MYSQLSUPPORT=1" "-DENABLE_INTERNALMYSQL=1" "-DENABLE_MEDIAPLAYER=1" ]; - fixupPhase = '' + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]}) substituteInPlace $out/bin/digitaglinktree \ --replace "/usr/bin/perl" "${perl}/bin/perl" \ --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3" - - wrapQtProgram $out/bin/digikam \ - --prefix PATH : "${gnumake}/bin:${hugin}/bin:${enblend-enfuse}/bin" - - wrapQtProgram $out/bin/showfoto ''; - meta = { + meta = with lib; { description = "Photo Management Program"; - license = stdenv.lib.licenses.gpl2; + license = licenses.gpl2; homepage = http://www.digikam.org; - maintainers = with stdenv.lib.maintainers; [ the-kenny ]; - platforms = stdenv.lib.platforms.linux; + maintainers = with maintainers; [ the-kenny ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/graphics/displaycal/default.nix b/pkgs/applications/graphics/displaycal/default.nix new file mode 100644 index 00000000000..80d2b290367 --- /dev/null +++ b/pkgs/applications/graphics/displaycal/default.nix @@ -0,0 +1,57 @@ +{buildPythonPackage, stdenv, fetchurl, pkgconfig + , libXext, libXxf86vm, libX11, libXrandr, libXinerama + , argyllcms, wxPython, numpy + }: +buildPythonPackage { + name = "displaycal-3.2.4.0"; + + enableParallelBuilding = true; + + src = fetchurl { + url = mirror://sourceforge/project/dispcalgui/release/3.2.4.0/DisplayCAL-3.2.4.0.tar.gz; + sha256 = "0swkhv338d1kmfxyf30zzdjs5xpbha40pg2zysiipcbasc0xhlb8"; + }; + + propagatedBuildInputs = [ + libXext + libXxf86vm + libX11 + libXrandr + libXinerama + argyllcms + wxPython + numpy + ]; + + nativeBuildInputs = [ + pkgconfig + ]; + + preConfigure = '' + mkdir dist + cp {misc,dist}/DisplayCAL.appdata.xml + mkdir -p $out + ln -s $out/share/DisplayCAL $out/Resources + ''; + + # no idea why it looks there - symlink .json lang (everything) + postInstall = '' + for x in $out/share/DisplayCAL/*; do + ln -s $x $out/lib/python2.7/site-packages/DisplayCAL + done + + for prog in "$out/bin/"*; do + wrapProgram "$prog" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PATH : ${argyllcms}/bin + done + ''; + + meta = { + description = "Display Calibration and Characterization powered by Argyll CMS"; + homepage = http://displaycal.net/; + license = stdenv.lib.licenses.gpl3; + maintainers = [stdenv.lib.maintainers.marcweber]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/applications/graphics/draftsight/default.nix b/pkgs/applications/graphics/draftsight/default.nix new file mode 100644 index 00000000000..17334c5b366 --- /dev/null +++ b/pkgs/applications/graphics/draftsight/default.nix @@ -0,0 +1,76 @@ +{ stdenv, requireFile, dpkg, makeWrapper, gcc, mesa, xdg_utils, + dbus_tools, alsaLib, cups, fontconfig, glib, icu, libpng12, + xkeyboard_config, gstreamer, zlib, libxslt, libxml2, sqlite, orc, + libX11, libXcursor, libXrandr, libxcb, libXi, libSM, libICE, + libXrender, libXcomposite }: + +assert stdenv.system == "x86_64-linux"; + +let version = "2017-SP2"; in +stdenv.mkDerivation { + name = "draftsight-${version}"; + + nativeBuildInputs = [ dpkg makeWrapper ]; + + unpackPhase = '' + mkdir $out + mkdir $out/draftsight + dpkg -x $src $out/draftsight + ''; + + # Both executables and bundled libraries need patching to find their + # dependencies. The makeWrapper & QT_XKB_CONFIG_ROOT is to + # alleviate "xkbcommon: ERROR: failed to add default include path + # /usr/share/X11/xkb" and "Qt: Failed to create XKB context!". + installPhase = '' + mkdir $out/bin + for exe in DraftSight dsHttpApiController dsHttpApiService FxCrashRptApp HelpGuide; do + echo "Patching $exe..." + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath $libPath:\$ORIGIN/../Libraries \ + $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe + makeWrapper $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe \ + $out/bin/$exe \ + --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb" + done + for lib in $out/draftsight/opt/dassault-systemes/DraftSight/Libraries/*.so; do + # DraftSight ships with broken symlinks for some reason + if [ -f $(readlink -f $lib) ] + then + echo "Patching $lib..." + patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib + else + echo "Ignoring broken link $lib" + fi + done + ''; + + # TODO: Figure out why HelpGuide segfaults at startup. + + # This must be here for main window graphics to appear (without it + # it also gives the error: "QXcbIntegration: Cannot create platform + # OpenGL context, neither GLX nor EGL are enabled"). My guess is + # that it dlopen()'s libraries in paths removed by shrinking RPATH. + dontPatchELF = true; + + src = requireFile { + name = "draftSight.deb"; + url = "https://www.3ds.com/?eID=3ds_brand_download&uid=41&pidDown=13426&L=0"; + sha256 = "04i3dqza6y4p2059pqg5inp3qzr5jmiqplzzk7h1a6gh380v1rbr"; + }; + + libPath = stdenv.lib.makeLibraryPath [ gcc.cc mesa xdg_utils + dbus_tools alsaLib cups.lib fontconfig glib icu libpng12 + xkeyboard_config gstreamer zlib libxslt libxml2 sqlite orc libX11 + libXcursor libXrandr libxcb libXi libSM libICE libXrender + libXcomposite ]; + + meta = with stdenv.lib; { + description = "2D design & drafting application, meant to be similar to AutoCAD"; + longDescription = "Professional-grade 2D design and drafting solution from Dassault Systèmes that lets you create, edit, view and mark up any kind of 2D CAD drawing."; + homepage = https://www.3ds.com/products-services/draftsight-cad-software/; + license = stdenv.lib.licenses.unfree; + maintainers = with maintainers; [ hodapp ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/graphics/exrdisplay/default.nix b/pkgs/applications/graphics/exrdisplay/default.nix index 4aeb7a4a567..3386d75e81e 100644 --- a/pkgs/applications/graphics/exrdisplay/default.nix +++ b/pkgs/applications/graphics/exrdisplay/default.nix @@ -18,11 +18,12 @@ stdenv.mkDerivation { make LDFLAGS="`fltk-config --ldflags` -lGL -lfltk_gl" ''; - buildInputs = [ openexr fltk pkgconfig mesa openexr_ctl ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openexr fltk mesa openexr_ctl ]; meta = { description = "Application for viewing OpenEXR images on a display at various exposure settings"; - homepage = "http://openexr.com"; + homepage = http://openexr.com; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.bsd3; }; diff --git a/pkgs/applications/graphics/exrtools/default.nix b/pkgs/applications/graphics/exrtools/default.nix index 310f81961cb..097062a8258 100644 --- a/pkgs/applications/graphics/exrtools/default.nix +++ b/pkgs/applications/graphics/exrtools/default.nix @@ -9,11 +9,12 @@ stdenv.mkDerivation rec { sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z"; }; - buildInputs = [ stdenv pkgconfig openexr libpng12 libjpeg ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ stdenv openexr libpng12 libjpeg ]; meta = with stdenv.lib; { description = "Collection of utilities for manipulating OpenEXR images"; - homepage = "http://scanline.ca/exrtools"; + homepage = http://scanline.ca/exrtools; platforms = platforms.linux; license = licenses.mit; maintainers = [ maintainers.juliendehos ]; diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix index 5f0605bbf87..2943b5ef94c 100644 --- a/pkgs/applications/graphics/fbida/default.nix +++ b/pkgs/applications/graphics/fbida/default.nix @@ -14,17 +14,13 @@ stdenv.mkDerivation rec { buildInputs = [ libexif libjpeg libpng libungif freetype fontconfig libtiff libwebp imagemagick curl sane-backends libdrm libXpm epoxy poppler lirc ]; - makeFlags = [ "prefix=$(out)" "verbose=yes" ]; + makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" ]; patchPhase = '' sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile ''; - crossAttrs = { - makeFlags = makeFlags ++ [ "CC=${stdenv.cross.config}-gcc" "STRIP=" ]; - }; - meta = with stdenv.lib; { description = "Image viewing and manipulation programs"; homepage = https://www.kraxel.org/blog/linux/fbida/; diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix index 035a275618c..f68162de4e3 100644 --- a/pkgs/applications/graphics/feh/default.nix +++ b/pkgs/applications/graphics/feh/default.nix @@ -6,14 +6,14 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "feh-${version}"; - version = "2.18.2"; + version = "2.21"; src = fetchurl { - url = "http://feh.finalrewind.org/${name}.tar.bz2"; - sha256 = "09f5rfzls4h5jcrp7ylwbiljp5qzc2nbw9p2csv0pnlaixj69gil"; + url = "https://feh.finalrewind.org/${name}.tar.bz2"; + sha256 = "0azgpr4al2pi4858z4xh4lfz84cvzxw3n426fn7rz6cdj34q212j"; }; - outputs = [ "out" "doc" ]; + outputs = [ "out" "man" "doc" ]; nativeBuildInputs = [ makeWrapper xorg.libXt ] ++ optionals doCheck [ perlPackages.TestCommand perlPackages.TestHarness ]; @@ -22,13 +22,20 @@ stdenv.mkDerivation rec { preBuild = '' makeFlags="PREFIX=$out exif=1" - ''; + ''; + + postBuild = '' + pushd man + make + popd + ''; postInstall = '' wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg.bin}/bin" \ - --add-flags '--theme=feh' - ''; - + --add-flags '--theme=feh' + install -D -m 644 man/*.1 $out/share/man/man1 + ''; + checkPhase = '' PERL5LIB="${perlPackages.TestCommand}/lib/perl5/site_perl" make test ''; @@ -37,9 +44,9 @@ stdenv.mkDerivation rec { meta = { description = "A light-weight image viewer"; - homepage = https://derf.homelinux.org/projects/feh/; + homepage = "https://feh.finalrewind.org/"; license = licenses.mit; - maintainers = [ maintainers.viric ]; + maintainers = [ maintainers.viric maintainers.willibutz ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/graphics/fontmatrix/default.nix b/pkgs/applications/graphics/fontmatrix/default.nix index ced6a5f7258..8ca093b90c3 100644 --- a/pkgs/applications/graphics/fontmatrix/default.nix +++ b/pkgs/applications/graphics/fontmatrix/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac"; - homepage = http://github.com/fontmatrix/fontmatrix; + homepage = https://github.com/fontmatrix/fontmatrix; license = licenses.gpl2; platforms = platforms.linux; }; diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix index c58d9e0bda1..80f893e7c3c 100644 --- a/pkgs/applications/graphics/freecad/default.nix +++ b/pkgs/applications/graphics/freecad/default.nix @@ -5,11 +5,11 @@ let pythonPackages = python27Packages; in stdenv.mkDerivation rec { name = "freecad-${version}"; - version = "0.16"; + version = "0.16.6712"; src = fetchurl { url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz"; - sha256 = "02cfw5wlb04j0ymhk4skrm7rvbz13hpv995asf9v8q6wn2s1mivc"; + sha256 = "14hs26gvv7gbg9misxq34v4nrds2sbxjhj4yyw5kq3zbvl517alp"; }; buildInputs = with pythonPackages; [ cmake coin3d xercesc ode eigen qt4 opencascade gts boost @@ -36,7 +36,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler"; - homepage = http://www.freecadweb.org/; + homepage = https://www.freecadweb.org/; license = licenses.lgpl2Plus; maintainers = [ maintainers.viric ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/freepv/default.nix b/pkgs/applications/graphics/freepv/default.nix index 6d82db4bac1..e6d8a06a519 100644 --- a/pkgs/applications/graphics/freepv/default.nix +++ b/pkgs/applications/graphics/freepv/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, libjpeg, mesa, freeglut, zlib, cmake, libX11, libxml2, libpng, - libXxf86vm, gcc6 }: + libXxf86vm }: stdenv.mkDerivation { name = "freepv-0.3.0"; @@ -10,7 +10,7 @@ stdenv.mkDerivation { }; buildInputs = [ libjpeg mesa freeglut zlib cmake libX11 libxml2 libpng - libXxf86vm gcc6 ]; + libXxf86vm ]; postPatch = '' sed -i -e '/GECKO/d' CMakeLists.txt diff --git a/pkgs/applications/graphics/gcolor2/default.nix b/pkgs/applications/graphics/gcolor2/default.nix index b9cf229e8c8..3747b802e23 100644 --- a/pkgs/applications/graphics/gcolor2/default.nix +++ b/pkgs/applications/graphics/gcolor2/default.nix @@ -20,7 +20,8 @@ stdenv.mkDerivation { [ ./gcolor2-amd64.patch ] else [ ]; -buildInputs = [ gtk2 perl perlXMLParser pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; +buildInputs = [ gtk2 perl perlXMLParser ]; meta = { description = "Simple GTK+2 color selector"; diff --git a/pkgs/applications/graphics/gcolor3/default.nix b/pkgs/applications/graphics/gcolor3/default.nix new file mode 100644 index 00000000000..afad1e6c3af --- /dev/null +++ b/pkgs/applications/graphics/gcolor3/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, gnome3, libtool, intltool, pkgconfig, gtk3, hicolor_icon_theme, wrapGAppsHook } : + +let + version = "2.2"; +in stdenv.mkDerivation { + name = "gcolor3-${version}"; + + src = fetchFromGitHub { + owner = "hjdskes"; + repo = "gcolor3"; + rev = "v${version}"; + sha256 = "1rbahsi33pfggpj5cigy6wy5333g3rpm8v2q0b35c6m7pwhmf2gr"; + }; + + nativeBuildInputs = [ gnome3.gnome_common libtool intltool pkgconfig hicolor_icon_theme wrapGAppsHook ]; + + buildInputs = [ gtk3 ]; + + configureScript = "./autogen.sh"; + + # clang-4.0: error: argument unused during compilation: '-pthread' + NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-error=unused-command-line-argument"; + + meta = { + description = "A simple color chooser written in GTK3"; + homepage = https://hjdskes.github.io/projects/gcolor3/; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ jtojnar ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix index 9149e19819f..1e8f0e209c0 100644 --- a/pkgs/applications/graphics/geeqie/default.nix +++ b/pkgs/applications/graphics/geeqie/default.nix @@ -15,8 +15,9 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-gps" ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig autoconf automake gtk2 libpng exiv2 lcms intltool gettext + autoconf automake gtk2 libpng exiv2 lcms intltool gettext ]; postInstall = '' diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix index 8c430435dd7..ff87b70a0c1 100644 --- a/pkgs/applications/graphics/gimp/2.8.nix +++ b/pkgs/applications/graphics/gimp/2.8.nix @@ -8,7 +8,7 @@ let inherit (python2Packages) pygtk wrapPython python; in stdenv.mkDerivation rec { name = "gimp-${version}"; - version = "2.8.20"; + version = "2.8.22"; # This declarations for `gimp-with-plugins` wrapper, # (used for determining $out/lib/gimp/${majorVersion}/ paths) @@ -18,7 +18,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2"; - sha256 = "939ca1df70be865c672ffd654f4e20f188121d01601c5c90237214101533c805"; + sha256 = "12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi"; }; buildInputs = @@ -51,7 +51,7 @@ in stdenv.mkDerivation rec { meta = { description = "The GNU Image Manipulation Program"; - homepage = http://www.gimp.org/; + homepage = https://www.gimp.org/; license = stdenv.lib.licenses.gpl3Plus; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 20a9648e839..6b145ca09ee 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -5,7 +5,7 @@ { pkgs, gimp }: let - inherit (pkgs) stdenv fetchurl pkgconfig glib fetchFromGitHub; + inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub; inherit (gimp) targetPluginDir targetScriptDir; pluginDerivation = a: stdenv.mkDerivation ({ @@ -23,7 +23,11 @@ let } // a # don't call this gimp-* unless you want nix replace gimp by a plugin :-) - // { name = "${a.name}-${gimp.name}-plugin"; } + // { + name = "${a.name}-${gimp.name}-plugin"; + buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []); + nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []); + } ); scriptDerivation = {name, src} : pluginDerivation { @@ -34,7 +38,6 @@ let libLQR = pluginDerivation { name = "liblqr-1-0.4.1"; # required by lqrPlugin, you don't havet to install this lib explicitely - buildInputs = [ gimp ] ++ gimp.nativeBuildInputs; src = fetchurl { url = http://registry.gimp.org/files/liblqr-1-0.4.1.tar.bz2; sha256 = "02g90wag7xi5rjlmwq8h0qs666b1i2sa90s4303hmym40il33nlz"; @@ -48,7 +51,6 @@ rec { Video */ name = "gap-2.6.0"; - buildInputs = [ gimp pkgconfig glib pkgs.intltool gimp.gtk ] ++ gimp.nativeBuildInputs; src = fetchurl { url = http://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2; sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql"; @@ -73,7 +75,7 @@ rec { Filters/Generic/FFT Inverse */ name = "fourier-0.4.1"; - buildInputs = [ gimp pkgs.fftw pkgconfig glib] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ fftw ]; postInstall = "fail"; installPhase = "installPlugins fourier"; src = fetchurl { @@ -87,7 +89,7 @@ rec { Blur/Focus Blur */ name = "focusblur-3.2.6"; - buildInputs = [ gimp pkgconfig pkgs.fftwSinglePrec ] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ fftwSinglePrec ]; patches = [ ./patches/focusblur-glib.patch ]; postInstall = "fail"; installPhase = "installPlugins src/focusblur"; @@ -105,7 +107,7 @@ rec { Filters/Enhance/Smart remove selection */ name = "resynthesizer-0.16"; - buildInputs = [ gimp pkgs.fftw ] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ fftw ]; src = fetchurl { url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz; sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x"; @@ -125,8 +127,8 @@ rec { Filters/Enhance/Smart remove selection */ name = "resynthesizer-2.0.1"; - buildInputs = [ gimp pkgs.fftw pkgs.autoreconfHook ] - ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ fftw ]; + nativeBuildInputs = with pkgs; [ autoreconfHook ]; makeFlags = "GIMP_LIBDIR=$out/lib/gimp/2.0/"; src = fetchFromGitHub { owner = "bootchk"; @@ -138,11 +140,11 @@ rec { texturize = pluginDerivation { name = "texturize-2.1"; - buildInputs = [ gimp ] ++ gimp.nativeBuildInputs; src = fetchurl { url = mirror://sourceforge/gimp-texturize/texturize-2.1_src.tgz; sha256 = "0cdjq25g3yfxx6bzx6nid21kq659s1vl9id4wxyjs2dhcv229cg3"; }; + buildInputs = with pkgs; [ perl ]; patchPhase = '' sed -i '/.*gimpimage_pdb.h.*/ d' src/*.c* ''; @@ -154,7 +156,6 @@ rec { Filters/Enhance/Wavelet sharpen */ name = "wavelet-sharpen-0.1.2"; - buildInputs = [ gimp ] ++ gimp.nativeBuildInputs; src = fetchurl { url = http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz; sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw"; @@ -167,7 +168,7 @@ rec { Layer/Liquid Rescale */ name = "lqr-plugin-0.6.1"; - buildInputs = [ pkgconfig libLQR gimp ] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ libLQR ]; src = fetchurl { url = http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2; sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9"; @@ -180,8 +181,7 @@ rec { pluginDerivation rec { inherit (pkgs.gmic) name src meta; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ pkgs.fftw pkgs.opencv gimp ] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ fftw opencv curl ]; sourceRoot = "${name}/src"; @@ -195,7 +195,7 @@ rec { # or use the binary ufraw = pluginDerivation rec { name = "ufraw-0.19.2"; - buildInputs = [pkgs.gtkimageview pkgs.lcms gimp] ++ gimp.nativeBuildInputs; + buildInputs = with pkgs; [ gtkimageview lcms ]; # --enable-mime - install mime files, see README for more information # --enable-extras - build extra (dcraw, nikon-curve) executables # --enable-dst-correction - enable DST correction for file timestamps. @@ -228,7 +228,7 @@ rec { sha256 = "0zlmp9v732qmzj083mnk5z421s57mnckmpjhiw890wmmwzj2lhxz"; }; - buildInputs = [ gimp pkgconfig glib gimp.gtk pkgs.lensfun pkgs.exiv2 ]; + buildInputs = with pkgs; [ lensfun exiv2 ]; installPhase = " installPlugins gimp-lensfun diff --git a/pkgs/applications/graphics/giv/build.patch b/pkgs/applications/graphics/giv/build.patch index ec343c90238..f57689fd3fa 100644 --- a/pkgs/applications/graphics/giv/build.patch +++ b/pkgs/applications/graphics/giv/build.patch @@ -2,16 +2,21 @@ Get the environment propagated to scons forked childs, and correct the dicom plu a typedef of size_t that failed at least on x86_64-linux. diff --git a/SConstruct b/SConstruct -index 16eccd9..603e931 100644 +index 9e752d6..f93f27f 100644 --- a/SConstruct +++ b/SConstruct -@@ -7,8 +7,7 @@ else: - cppflags = ['-O2'] - variant = 'Release' +@@ -9,13 +9,7 @@ else: + + commit_id = os.popen('git rev-parse HEAD').read().replace('\n','') -env = Environment(LIBPATH=[], -- CPPFLAGS = cppflags) +- CPPFLAGS = cppflags + ['-Wno-deprecated-declarations', +- '-Wno-reorder', +- '-Wno-unused-but-set-variable', +- '-Wno-unused-function'], +- CXXFLAGS=['-std=c++1y'] +- ) +env = Environment(ENV = os.environ) env['SBOX'] = False - + env['COMMITIDSHORT'] = commit_id[0:6] diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix index 6c892f1bfd4..92e6084ce67 100644 --- a/pkgs/applications/graphics/giv/default.nix +++ b/pkgs/applications/graphics/giv/default.nix @@ -2,13 +2,14 @@ pcre, cfitsio, perl, gob2, vala_0_23, libtiff, json_glib }: stdenv.mkDerivation rec { - name = "giv-20150811-git"; + name = "giv-${version}"; + version = "0.9.26"; src = fetchFromGitHub { owner = "dov"; repo = "giv"; - rev = "64648bfbbf10ec4a9adfbc939c96c7d1dbdce57a"; - sha256 = "1sz2n7jbmg3g97bs613xxjpzqbsl5rvpg6v7g3x3ycyd35r8vsfp"; + rev = "v${version}"; + sha256 = "1sfm8j3hvqij6z3h8xz724d7hjqqbzljl2a6pp4yjpnnrxksnic2"; }; hardeningDisable = [ "format" ]; @@ -24,7 +25,8 @@ stdenv.mkDerivation rec { installPhase = "scons install"; - buildInputs = [ gdk_pixbuf pkgconfig gtk2 glib scons pcre cfitsio perl gob2 vala_0_23 libtiff + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gdk_pixbuf gtk2 glib scons pcre cfitsio perl gob2 vala_0_23 libtiff json_glib ]; meta = { diff --git a/pkgs/applications/graphics/gocr/default.nix b/pkgs/applications/graphics/gocr/default.nix index 0a1059c6a47..6fe37d605ae 100644 --- a/pkgs/applications/graphics/gocr/default.nix +++ b/pkgs/applications/graphics/gocr/default.nix @@ -8,12 +8,23 @@ stdenv.mkDerivation rec { sha256 = "1dgmcpapy7h68d53q2c5d0bpgzgfb2nw2blndnx9qhc7z12149mw"; }; + buildFlags = [ "all" "libs" ]; + installFlags = [ "libdir=/lib/" ]; # Specify libdir so Makefile will also install library. + + preInstall = "mkdir -p $out/lib"; + postInstall = '' + for i in pgm2asc.h gocr.h; do + install -D -m644 src/$i $out/include/gocr/$i + done + ''; + + preFixup = '' sed -i -e 's|exec wish|exec ${tk}/bin/wish|' $out/bin/gocr.tcl ''; meta = { - homepage = "http://jocr.sourceforge.net/"; + homepage = http://jocr.sourceforge.net/; description = "GPL Optical Character Recognition"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix index 7e11c9dea3a..86867cd1cca 100644 --- a/pkgs/applications/graphics/gpicview/default.nix +++ b/pkgs/applications/graphics/gpicview/default.nix @@ -24,5 +24,6 @@ stdenv.mkDerivation { platforms = platforms.unix; }; - buildInputs = [ intltool pkgconfig gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool gtk2 ]; } diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix index 801e9c5f502..a892f98ac47 100644 --- a/pkgs/applications/graphics/gqview/default.nix +++ b/pkgs/applications/graphics/gqview/default.nix @@ -13,7 +13,8 @@ stdenv.mkDerivation { sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj"; }; - buildInputs = [pkgconfig gtk2 libpng]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 libpng]; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix index ee9df683c0a..fd17ef69c99 100644 --- a/pkgs/applications/graphics/grafx2/default.nix +++ b/pkgs/applications/graphics/grafx2/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q"; }; - buildInputs = [ SDL SDL_image SDL_ttf libpng zlib lua5 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ SDL SDL_image SDL_ttf libpng zlib lua5 ]; preBuild = "cd src"; diff --git a/pkgs/applications/graphics/graphicsmagick/cmyka-bounds.patch b/pkgs/applications/graphics/graphicsmagick/cmyka-bounds.patch deleted file mode 100644 index dd375143277..00000000000 --- a/pkgs/applications/graphics/graphicsmagick/cmyka-bounds.patch +++ /dev/null @@ -1,36 +0,0 @@ -# HG changeset patch -# User Bob Friesenhahn -# Date 1487905610 21600 -# Node ID 6156b4c2992d855ece6079653b3b93c3229fc4b8 -# Parent 0392c4305a4369984ec8069055acc470c0a73647 -Fix out of bounds access when reading CMYKA tiff which claims wrong samples/pixel. - -diff -r 0392c4305a43 -r 6156b4c2992d coders/tiff.c ---- a/coders/tiff.c Sun Jan 29 10:04:57 2017 -0600 -+++ b/coders/tiff.c Thu Feb 23 21:06:50 2017 -0600 -@@ -1230,8 +1230,8 @@ - case 0: - if (samples_per_pixel == 1) - *quantum_type=GrayQuantum; -- else -- *quantum_type=RedQuantum; -+ else -+ *quantum_type=RedQuantum; - break; - case 1: - *quantum_type=GreenQuantum; -@@ -1411,12 +1411,12 @@ - } - else - { -- if (image->matte) -+ if (image->matte && samples_per_pixel >= 5) - { - *quantum_type=CMYKAQuantum; - *quantum_samples=5; - } -- else -+ else if (samples_per_pixel >= 4) - { - *quantum_type=CMYKQuantum; - *quantum_samples=4; diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix index 0858dfba8b4..c8c9ac8f26e 100644 --- a/pkgs/applications/graphics/graphicsmagick/default.nix +++ b/pkgs/applications/graphics/graphicsmagick/default.nix @@ -2,47 +2,18 @@ , libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11 , libwebp, quantumdepth ? 8, fixDarwinDylibNames }: -let version = "1.3.25"; in +let version = "1.3.26"; in stdenv.mkDerivation { name = "graphicsmagick-${version}"; src = fetchurl { url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz"; - sha256 = "17xcc7pfcmiwpfr1g8ys5a7bdnvqzka53vg3kkzhwwz0s99gljyn"; + sha256 = "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"; }; patches = [ ./disable-popen.patch - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-7996_CVE-2016-7997.patch"; - sha256 = "0xsby2z8n7cnnln7szjznq7iaabq323wymvdjra59yb41aix74r2"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-7800_part1.patch"; - sha256 = "02s0x9bkbnm5wrd0d2x9ld4d9z5xqpfk310lyylyr5zlnhqxmwgn"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-7800_part2.patch"; - sha256 = "1h4xv3i1aq5avsd584rwa5sa7ca8f7w9ggmh7j2llqq5kymwsv5f"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-8682.patch"; - sha256 = "1wfirw2yi5y72657kvnbgjs0f9b3rs9nvk8gjbwhb9a03z9ws0y5"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-8683.patch"; - sha256 = "102252zb34nj6alk1nhh1wbn3apd2v9rzk7clmm237332yj72vif"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-5/debian/patches/CVE-2016-8684.patch"; - sha256 = "1p36gpz904wnmbz1n64x4pdpg8lp9zs3gx0awklxqdvgl8m82vvy"; - }) - (fetchpatch { - url = "https://sources.debian.net/data/main/g/graphicsmagick/1.3.25-7/debian/patches/CVE-2016-9830.patch"; - sha256 = "0qh15sd7nx7vf9sld4453iml951bwsx2fx84hxc7plhds2k3gjpa"; - }) - ./cmyka-bounds.patch ]; configureFlags = [ diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix index 93894d0c6cb..d9e0f42e53e 100644 --- a/pkgs/applications/graphics/gthumb/default.nix +++ b/pkgs/applications/graphics/gthumb/default.nix @@ -6,12 +6,12 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "gthumb"; - version = "${major}.1"; + version = "${major}.3"; major = "3.5"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${major}/${name}.tar.xz"; - sha256 = "1hxnjskrq57d5ycn2fyif7363n1bav931pkjvq1fr2r4yrj0d202"; + sha256 = "0hka1b3l8mf94zsk7jff87wsb8bz4pj5pixjrs0w2j8jbsa9sggk"; }; nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; diff --git a/pkgs/applications/graphics/guetzli/default.nix b/pkgs/applications/graphics/guetzli/default.nix new file mode 100644 index 00000000000..061dc2b69a6 --- /dev/null +++ b/pkgs/applications/graphics/guetzli/default.nix @@ -0,0 +1,29 @@ +{ stdenv, libpng, fetchFromGitHub, pkgconfig }: +let + version = "1.0.1"; +in +stdenv.mkDerivation { + name = "guetzli-${version}"; + src = fetchFromGitHub { + owner = "google"; + repo = "guetzli"; + rev = "v${version}"; + sha256 = "1wy9wfvyradp0aigfv8yijvj0dgb5kpq2yf2xki15f605jc1r5dm"; + }; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libpng ]; + + installPhase = '' + mkdir -p $out/bin + install bin/Release/guetzli $out/bin/ + ''; + + meta = { + description = "Perceptual JPEG encoder"; + longDescription = "Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality."; + homepage = https://github.com/google/guetzli; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.x86_64; + maintainers = [ stdenv.lib.maintainers.seppeljordan ]; + }; +} diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix index 29e43a93c98..9acd8357cb7 100644 --- a/pkgs/applications/graphics/hugin/default.nix +++ b/pkgs/applications/graphics/hugin/default.nix @@ -5,11 +5,11 @@ }: stdenv.mkDerivation rec { - name = "hugin-2016.2.0"; + name = "hugin-2017.0.0"; src = fetchurl { url = "mirror://sourceforge/hugin/${name}.tar.bz2"; - sha256 = "058zd63vx29yrx2pphbbll7kzcxkai22q26lpw13rn4lvp41pasl"; + sha256 = "02a6rlwp20jdn5jdsyg3c7liljr10c3jfdkxiv9mkf9jgyi6wr46"; }; buildInputs = [ diff --git a/pkgs/applications/graphics/imagej/default.nix b/pkgs/applications/graphics/imagej/default.nix new file mode 100644 index 00000000000..673361c734e --- /dev/null +++ b/pkgs/applications/graphics/imagej/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, jre, unzip, makeWrapper }: + +# Note: +# - User config dir is hard coded by upstream to $HOME/.imagej on linux systems +# and to $HOME/Library/Preferences on macOS. +# (The current trend appears to be to use $HOME/.config/imagej +# on linux systems, but we here do not attempt to fix it.) + +let + imagej150 = stdenv.mkDerivation rec { + name = "imagej-${version}"; + version = "150"; + + src = fetchurl { + url = "http://wsr.imagej.net/distros/cross-platform/ij150.zip"; + sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b"; + }; + buildInputs = [ unzip makeWrapper ]; + inherit jre; + + # JAR files that are intended to be used by other packages + # should go to $out/share/java. + # (Some uses ij.jar as a library not as a standalone program.) + installPhase = '' + mkdir -p $out/share/java + # Read permisssion suffices for the jar and others. + # Simple cp shall clear suid bits, if any. + cp ij.jar $out/share/java + cp -dR luts macros plugins $out/share + mkdir $out/bin + makeWrapper ${jre}/bin/java $out/bin/imagej \ + --add-flags "-jar $out/share/java/ij.jar -ijpath $out/share" + ''; + meta = with stdenv.lib; { + homepage = https://imagej.nih.gov/ij/; + description = "Image processing and analysis in Java"; + longDescription = '' + ImageJ is a public domain Java image processing program + inspired by NIH Image for the Macintosh. + It runs on any computer with a Java 1.4 or later virtual machine. + ''; + license = licenses.publicDomain; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ yuriaisaka ]; + }; + }; +in + imagej150 diff --git a/pkgs/applications/graphics/imlibsetroot/default.nix b/pkgs/applications/graphics/imlibsetroot/default.nix index 4fdfb87f134..90f8eec5993 100644 --- a/pkgs/applications/graphics/imlibsetroot/default.nix +++ b/pkgs/applications/graphics/imlibsetroot/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A Xinerama Aware Background Changer"; - homepage = "http://robotmonkeys.net/2010/03/30/imlibsetroot/"; + homepage = http://robotmonkeys.net/2010/03/30/imlibsetroot/; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ lucas8 ]; diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index fdcd7636c02..889d710f043 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchurl, fetchpatch, pkgconfig, perl, perlXMLParser, libXft , libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2 -, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper, intltool +, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper , gsl, python2, poppler, imagemagick, libwpg, librevenge -, libvisio, libcdr, libexif, automake114x, potrace, cmake +, libvisio, libcdr, libexif, potrace, cmake }: let @@ -10,11 +10,11 @@ let in stdenv.mkDerivation rec { - name = "inkscape-0.92.1"; + name = "inkscape-0.92.2"; src = fetchurl { - url = "https://media.inkscape.org/dl/resources/file/${name}.tar_XlpI7qT.bz2"; - sha256 = "01chr3vh728dkg7l7lilwgmh5nrp784khdhjgpqjbq9dh2zhax15"; + url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2"; + sha256 = "1lyghk6yarcv9nwkh6k366p6hb7rfilqcvbyji09hki59khd0a56"; }; unpackPhase = '' @@ -26,17 +26,19 @@ stdenv.mkDerivation rec { postPatch = '' patchShebangs share/extensions patchShebangs fix-roff-punct + + # Python is used at run-time to execute scripts, e.g., those from + # the "Effects" menu. + substituteInPlace src/extension/implementation/script.cpp \ + --replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"' ''; - # Python is used at run-time to execute scripts, e.g., those from - # the "Effects" menu. - propagatedBuildInputs = [ python2Env ]; - + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig perl perlXMLParser libXft libpng zlib popt boehmgc + perl perlXMLParser libXft libpng zlib popt boehmgc libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext - makeWrapper intltool gsl poppler imagemagick libwpg librevenge - libvisio libcdr libexif automake114x potrace cmake + makeWrapper gsl poppler imagemagick libwpg librevenge + libvisio libcdr libexif potrace cmake python2Env ]; enableParallelBuilding = true; @@ -51,7 +53,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { license = "GPL"; - homepage = http://www.inkscape.org; + homepage = https://www.inkscape.org; description = "Vector graphics editor"; platforms = platforms.all; longDescription = '' diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix index 4a99d0ea4a1..2b1b1f8da8a 100644 --- a/pkgs/applications/graphics/ipe/default.nix +++ b/pkgs/applications/graphics/ipe/default.nix @@ -1,6 +1,5 @@ -{ stdenv, fetchurl, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript +{ stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript , libjpeg, qtbase -, makeQtWrapper }: stdenv.mkDerivation rec { @@ -28,14 +27,14 @@ stdenv.mkDerivation rec { LUA_PACKAGE = "lua"; buildInputs = [ - libjpeg pkgconfig zlib qtbase freetype cairo lua5 texlive ghostscript + libjpeg zlib qtbase freetype cairo lua5 texlive ghostscript ]; - nativeBuildInputs = [ makeQtWrapper ]; + nativeBuildInputs = [ makeWrapper pkgconfig ]; postFixup = '' for prog in $out/bin/*; do - wrapQtProgram "$prog" --prefix PATH : "${texlive}/bin" + wrapProgram "$prog" --prefix PATH : "${texlive}/bin" done ''; diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix index c9587b222d9..f120f8b13d4 100644 --- a/pkgs/applications/graphics/jbrout/default.nix +++ b/pkgs/applications/graphics/jbrout/default.nix @@ -34,7 +34,7 @@ in pythonPackages.buildPythonApplication rec { propagatedBuildInputs = with pythonPackages; [ pillow lxml pyGtkGlade pyexiv2 fbida ]; meta = { - homepage = "http://code.google.com/p/jbrout"; + homepage = http://manatlan.com/jbrout/; description = "Photo manager"; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/applications/graphics/kgraphviewer/default.nix b/pkgs/applications/graphics/kgraphviewer/default.nix index ea0fe51cc85..8f043816ba0 100644 --- a/pkgs/applications/graphics/kgraphviewer/default.nix +++ b/pkgs/applications/graphics/kgraphviewer/default.nix @@ -1,24 +1,38 @@ -{ stdenv, fetchurl, automoc4, cmake, gettext, perl, pkgconfig -, kdelibs4, boost, graphviz +{ stdenv, mkDerivation, fetchurl, cmake, extra-cmake-modules, pkgconfig, wrapGAppsHook +, kconfig, kcrash, kinit, kdoctools, kiconthemes, kio, kparts, kwidgetsaddons +, qtbase, qtsvg +, boost, graphviz }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "kgraphviewer-${version}"; - version = "2.1.90"; + version = "2.4.2"; src = fetchurl { - url = "mirror://kde/unstable/kgraphviewer/${version}/src/${name}.tar.xz"; - sha256 = "13zhjs57xavzrj4nrlqs35n35ihvzij7hgbszf5fhlp2a4d4rrqs"; + url = "mirror://kde/stable/kgraphviewer/${version}/${name}.tar.xz"; + sha256 = "1jc5zfgy4narwgn7rscfwz7l5pjy0jghal6yb3kd4sfadi78nhs9"; }; - buildInputs = [ kdelibs4 boost graphviz ]; - nativeBuildInputs = [ automoc4 cmake gettext perl pkgconfig ]; + buildInputs = [ + qtbase qtsvg + boost graphviz + ]; + + nativeBuildInputs = [ + cmake extra-cmake-modules pkgconfig wrapGAppsHook + kdoctools + ]; + + propagatedBuildInputs = [ + kconfig kinit kio kparts kwidgetsaddons + ]; + + enableParallelBuilding = true; meta = with stdenv.lib; { description = "A Graphviz dot graph viewer for KDE"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = [ maintainers.lethalman ]; + license = licenses.gpl2; + maintainers = with maintainers; [ lethalman ]; + platforms = platforms.linux; }; } - diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix index dcd5c28172e..98f92413a76 100644 --- a/pkgs/applications/graphics/krita/default.nix +++ b/pkgs/applications/graphics/krita/default.nix @@ -1,45 +1,38 @@ -{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, makeQtWrapper +{ mkDerivation, lib, fetchurl, fetchpatch, cmake, extra-cmake-modules , karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons , kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem , kio, kcrash , boost, libraw, fftw, eigen, exiv2, lcms2, gsl, openexr , openjpeg, opencolorio, vc, poppler_qt5, curl, ilmbase +, qtmultimedia, qtx11extras }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "krita-${version}"; - ver_min = "3.1.2"; - version = "${ver_min}.1"; + version = "3.2.1"; src = fetchurl { - url = "http://download.kde.org/stable/krita/${ver_min}/${name}.tar.gz"; - sha256 = "934ed82c3f4e55e7819b327c838ea2f307d3bf3d040722501378b01d76a3992d"; + url = "http://download.kde.org/stable/krita/${version}/${name}.tar.gz"; + sha256 = "0fafy5ggplgq2rz85sqa42vmkzs2r9dq47qfrbnn2n6pfzkcw1pg"; }; - nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ]; + nativeBuildInputs = [ cmake extra-cmake-modules ]; buildInputs = [ karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons ki18n kitemmodels kitemviews kwindowsystem kio kcrash boost libraw fftw eigen exiv2 lcms2 gsl openexr openjpeg opencolorio vc poppler_qt5 curl ilmbase + qtmultimedia qtx11extras ]; NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]; - enableParallelBuilding = true; - - postInstall = '' - for i in $out/bin/*; do - wrapQtProgram "$i" - done - ''; - - meta = with stdenv.lib; { + meta = with lib; { description = "A free an open source painting application"; - homepage = "https://krita.org/"; + homepage = https://krita.org/; maintainers = with maintainers; [ abbradar ]; platforms = platforms.linux; - licenses = licenses.gpl2; + license = licenses.gpl2; }; } diff --git a/pkgs/applications/graphics/ktikz/default.nix b/pkgs/applications/graphics/ktikz/default.nix index 5d0bbcad54f..8817071e984 100644 --- a/pkgs/applications/graphics/ktikz/default.nix +++ b/pkgs/applications/graphics/ktikz/default.nix @@ -63,7 +63,8 @@ stdenv.mkDerivation rec { qmake PREFIX="$out" ./qtikz.pro ''; - buildInputs = [ gettext qt5.full poppler_qt5 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gettext qt5.full poppler_qt5 ]; enableParallelBuilding = true; } diff --git a/pkgs/applications/graphics/mcomix/default.nix b/pkgs/applications/graphics/mcomix/default.nix index 20c01f77bbf..eea0e501cb8 100644 --- a/pkgs/applications/graphics/mcomix/default.nix +++ b/pkgs/applications/graphics/mcomix/default.nix @@ -11,9 +11,10 @@ python27Packages.buildPythonApplication rec { propagatedBuildInputs = with python27Packages; [ pygtk pillow ]; + doCheck = false; + meta = { description = "Image viewer designed to handle comic books"; - longDescription = '' MComix is an user-friendly, customizable image viewer. It is specifically designed to handle comic books, but also serves as a generic viewer. @@ -24,9 +25,10 @@ python27Packages.buildPythonApplication rec { MComix is a fork of the Comix project, and aims to add bug fixes and stability improvements after Comix development came to a halt in late 2009. ''; - homepage = http://mcomix.sourceforge.net/; license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + maintainers = with stdenv.lib.maintainers; [ fuuzetsu AndersonTorres ]; }; } +# TODO: +# - error in check phase diff --git a/pkgs/applications/graphics/meh/default.nix b/pkgs/applications/graphics/meh/default.nix index 1b5fbc2271b..ac2a194b7ca 100644 --- a/pkgs/applications/graphics/meh/default.nix +++ b/pkgs/applications/graphics/meh/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { make PREFIX=$out install ''; - outputs = [ "out" "doc" ]; + outputs = [ "out" "man" ]; buildInputs = [ libXext libX11 libjpeg libpng giflib ]; diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix index 07789fce3a9..d73697673bf 100644 --- a/pkgs/applications/graphics/meshlab/default.nix +++ b/pkgs/applications/graphics/meshlab/default.nix @@ -46,6 +46,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; linux; - broken = stdenv.isLinux && stdenv.isi686; + broken = true; }; } diff --git a/pkgs/applications/graphics/mozjpeg/default.nix b/pkgs/applications/graphics/mozjpeg/default.nix index 1b082de98bc..33785a279c7 100644 --- a/pkgs/applications/graphics/mozjpeg/default.nix +++ b/pkgs/applications/graphics/mozjpeg/default.nix @@ -1,19 +1,20 @@ { stdenv, fetchurl, file, pkgconfig, libpng, nasm }: stdenv.mkDerivation rec { - version = "3.1"; + version = "3.2"; name = "mozjpeg-${version}"; src = fetchurl { url = "https://github.com/mozilla/mozjpeg/releases/download/v${version}/mozjpeg-${version}-release-source.tar.gz"; - sha256 = "07vs0xq9di7bv3y68daig8dvxvjqrn8a5na702gj3nn58a1xivfy"; + sha256 = "0wvv5qh1jasz8apq93c3j9d5wd22j7lld9dr06p76yj4mpnc3v4a"; }; postPatch = '' sed -i -e "s!/usr/bin/file!${file}/bin/file!g" configure ''; - buildInputs = [ libpng pkgconfig nasm ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libpng nasm ]; meta = { description = "Mozilla JPEG Encoder Project"; diff --git a/pkgs/applications/graphics/mtpaint/default.nix b/pkgs/applications/graphics/mtpaint/default.nix index e8c22b37638..8a2a218d989 100644 --- a/pkgs/applications/graphics/mtpaint/default.nix +++ b/pkgs/applications/graphics/mtpaint/default.nix @@ -16,8 +16,8 @@ stdenv.mkDerivation rec { sha256 = "0bvf623g0n2ifijcxv1nw0z3wbs2vhhdky4n04ywsbjlykm44nd1"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig freetype giflib gtk2 lcms2 libjpeg libpng libtiff openjpeg gifsicle ]; @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { Due to its simplicity and lack of dependencies it runs well on GNU/Linux, Windows and older PC hardware. ''; - homepage = "http://mtpaint.sourceforge.net/"; + homepage = http://mtpaint.sourceforge.net/; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.vklquevs ]; diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix index db5e6e1a7e3..630834fc9e9 100644 --- a/pkgs/applications/graphics/mypaint/default.nix +++ b/pkgs/applications/graphics/mypaint/default.nix @@ -1,41 +1,42 @@ -{ stdenv, fetchurl, gettext, glib, gtk2, hicolor_icon_theme, json_c -, lcms2, libpng , makeWrapper, pkgconfig, python2Packages -, scons, swig -}: +{ stdenv, fetchFromGitHub, gtk3, intltool, json_c, lcms2, libpng, librsvg, + pkgconfig, python2Packages, scons, swig, wrapGAppsHook }: let - inherit (python2Packages) python pygtk numpy; + inherit (python2Packages) python pycairo pygobject3 numpy; in stdenv.mkDerivation rec { name = "mypaint-${version}"; - version = "1.1.0"; + version = "1.2.1"; - src = fetchurl { - url = "http://download.gna.org/mypaint/${name}.tar.bz2"; - sha256 = "0f7848hr65h909c0jkcx616flc0r4qh53g3kd1cgs2nr1pjmf3bq"; + src = fetchFromGitHub { + owner = "mypaint"; + repo = "mypaint"; + rev = "bcf5a28d38bbd586cc9d4cee223f849fa303864f"; + sha256 = "1zwx7n629vz1jcrqjqmw6vl6sxdf81fq6a5jzqiga8167gg8s9pf"; + fetchSubmodules = true; }; - buildInputs = [ - gettext glib gtk2 json_c lcms2 libpng makeWrapper pkgconfig pygtk - python scons swig - ]; + nativeBuildInputs = [ intltool pkgconfig scons swig wrapGAppsHook ]; - propagatedBuildInputs = [ hicolor_icon_theme numpy ]; + buildInputs = [ gtk3 json_c lcms2 libpng librsvg pycairo pygobject3 python ]; + + propagatedBuildInputs = [ numpy ]; buildPhase = "scons prefix=$out"; installPhase = '' scons prefix=$out install sed -i -e 's|/usr/bin/env python2.7|${python}/bin/python|' $out/bin/mypaint - wrapProgram $out/bin/mypaint \ - --prefix PYTHONPATH : $PYTHONPATH \ - --prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share" + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix PYTHONPATH : $PYTHONPATH) ''; meta = with stdenv.lib; { description = "A graphics application for digital painters"; - homepage = http://mypaint.intilinux.com; + homepage = http://mypaint.org/; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = [ maintainers.goibhniu ]; + maintainers = with maintainers; [ goibhniu jtojnar ]; }; } diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index 669e46c6a84..ac0060ec7f8 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -30,7 +30,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - sourceRoot = "${name}-src/ImageLounge"; + setSourceRoot = '' + sourceRoot=$(echo */ImageLounge) + ''; patches = [./fix-appdata-install.patch]; diff --git a/pkgs/applications/graphics/ocrad/default.nix b/pkgs/applications/graphics/ocrad/default.nix index 3ec25b503eb..ac67759c258 100644 --- a/pkgs/applications/graphics/ocrad/default.nix +++ b/pkgs/applications/graphics/ocrad/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, lzip, texinfo }: stdenv.mkDerivation rec { - name = "ocrad-0.25"; + name = "ocrad-0.26"; src = fetchurl { url = "mirror://gnu/ocrad/${name}.tar.lz"; - sha256 = "1m2dblgvvjs48rsglfdwq0ib9zk8h9n34xsh67ibrg0g0ffbw477"; + sha256 = "0g4fq7maybdnd1471kd05a3f5sb7spa3d26k706rk85sd5wd70y3"; }; buildInputs = [ lzip texinfo ]; diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix index 44faeea007d..b4402c7d104 100644 --- a/pkgs/applications/graphics/openimageio/default.nix +++ b/pkgs/applications/graphics/openimageio/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { name = "openimageio-${version}"; - version = "1.7.12"; + version = "1.7.17"; src = fetchFromGitHub { owner = "OpenImageIO"; repo = "oiio"; rev = "Release-${version}"; - sha256 = "1ganx4f7zis5lkxxrwc83dbgngaxww2846bsc4vrg5dhjnns6n4y"; + sha256 = "0vx2pndgyfbnziwn36aylvq4jd889dvibzhw9ajzkm378l43lly9"; }; outputs = [ "bin" "out" "dev" "doc" ]; diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix index f3b16a30460..e7a05c522ca 100644 --- a/pkgs/applications/graphics/openscad/default.nix +++ b/pkgs/applications/graphics/openscad/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { description = "3D parametric model compiler"; longDescription = '' OpenSCAD is a software for creating solid 3D CAD objects. It is free - software and available for Linux/UNIX, MS Windows and Mac OS X. + software and available for Linux/UNIX, MS Windows and macOS. Unlike most free software for creating 3D models (such as the famous application Blender) it does not focus on the artistic aspects of 3D @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies. ''; - homepage = "http://openscad.org/"; + homepage = http://openscad.org/; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; maintainers = with stdenv.lib.maintainers; diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix index 0973893bbec..730f809eef4 100644 --- a/pkgs/applications/graphics/paraview/default.nix +++ b/pkgs/applications/graphics/paraview/default.nix @@ -1,43 +1,49 @@ -{ fetchurl, stdenv, cmake, qt4 -, hdf5 -, mpich2 -, python -, libxml2 -, mesa, libXt -}: +{stdenv, fetchFromGitHub, cmake +,full, python, mesa, libXt }: stdenv.mkDerivation rec { - name = "paraview-4.0.1"; - src = fetchurl { - url = "http://paraview.org/files/v4.0/ParaView-v4.0.1-source.tgz"; - sha256 = "1qj8dq8gqpsw75sv4sdc7xm1xcpv0ilsddnrcfhha0zfhp0gq10y"; + name = "paraview-${version}"; + version = "5.4.0"; + + # fetching from GitHub instead of taking an "official" source + # tarball because of missing submodules there + src = fetchFromGitHub { + owner = "Kitware"; + repo = "ParaView"; + rev = "v${version}"; + sha256 = "0h1vkgwm10mc5mnr3djp81lxr5pi0hyj776z77hiib6xm5596q9n"; + fetchSubmodules = true; }; - # [ 5%] Generating vtkGLSLShaderLibrary.h - # ../../../bin/ProcessShader: error while loading shared libraries: libvtksys.so.pv3.10: cannot open shared object file: No such file or directory - preConfigure = '' - export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/paraview-3.98 -rpath ../../../../../../lib -rpath ../../../../../lib -rpath ../../../../lib -rpath ../../../lib -rpath ../../lib -rpath ../lib" - ''; - cmakeFlags = [ - "-DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON" - "-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON" - "-DPARAVIEW_ENABLE_PYTHON:BOOL=ON" -# use -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \ to fix make install error: http://www.cmake.org/pipermail/paraview/2011-February/020268.html - "-DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF" - "-DCMAKE_SKIP_BUILD_RPATH=ON" - "-DVTK_USE_RPATH:BOOL=ON" - "-DPARAVIEW_INSTALL_DEVELOPMENT=ON" - ]; + cmakeFlags = [ + "-DPARAVIEW_ENABLE_PYTHON=ON" + "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" + ]; - # https://bugzilla.redhat.com/show_bug.cgi?id=1138466 - NIX_CFLAGS_COMPILE = "-DGLX_GLXEXT_LEGACY"; + # During build, binaries are called that rely on freshly built + # libraries. These reside in build/lib, and are not found by + # default. + preBuild = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib + ''; enableParallelBuilding = true; - buildInputs = [ cmake qt4 hdf5 mpich2 python libxml2 mesa libXt ]; + buildInputs = [ cmake + python + mesa + libXt + + # theoretically the following should be fine, but there is an error + # due to missing libqminimal when not using qt5.full + + # qtbase qtx11extras qttools + full + ]; + meta = { - homepage = "http://www.paraview.org/"; + homepage = http://www.paraview.org/; description = "3D Data analysis and visualization application"; license = stdenv.lib.licenses.free; maintainers = with stdenv.lib.maintainers; [viric guibert]; diff --git a/pkgs/applications/graphics/pbrt/default.nix b/pkgs/applications/graphics/pbrt/default.nix index 894667597d8..1c582df50de 100644 --- a/pkgs/applications/graphics/pbrt/default.nix +++ b/pkgs/applications/graphics/pbrt/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { buildInputs = [ git flex bison cmake zlib ]; meta = with stdenv.lib; { - homepage = "http://pbrt.org"; + homepage = http://pbrt.org; description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'"; platforms = platforms.linux ; license = licenses.bsd2; diff --git a/pkgs/applications/graphics/pencil/default.nix b/pkgs/applications/graphics/pencil/default.nix index 5b1f79a6c4f..f7175f9d2b8 100644 --- a/pkgs/applications/graphics/pencil/default.nix +++ b/pkgs/applications/graphics/pencil/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "GUI prototyping/mockup tool"; - homepage = http://github.com/prikhi/pencil; + homepage = https://github.com/prikhi/pencil; license = licenses.gpl2; # Commercial license is also available maintainers = with maintainers; [ bjornfor prikhi ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix index 69bc36dea61..0d1adcff6e8 100644 --- a/pkgs/applications/graphics/photivo/default.nix +++ b/pkgs/applications/graphics/photivo/default.nix @@ -18,6 +18,7 @@ stdenv.mkDerivation rec { name = "lensfun-0.3.patch"; sha256 = "0ys45x4r4bjjlx0zpd5d56rgjz7k8gxili4r4k8zx3zfka4a3zwv"; }) + ./gcc6.patch ]; postPatch = '' # kinda icky diff --git a/pkgs/applications/graphics/photivo/gcc6.patch b/pkgs/applications/graphics/photivo/gcc6.patch new file mode 100644 index 00000000000..e2eb795fc8e --- /dev/null +++ b/pkgs/applications/graphics/photivo/gcc6.patch @@ -0,0 +1,13 @@ +diff --git c/Sources/ptImage.cpp i/Sources/ptImage.cpp +index 9c95093..623c157 100755 +--- c/Sources/ptImage.cpp ++++ i/Sources/ptImage.cpp +@@ -5291,7 +5291,7 @@ ptImage* ptImage::Box(const uint16_t MaxRadius, float* Mask) { + NewRow = NewRow < 0? -NewRow : NewRow > Height1? Height1_2-NewRow : NewRow ; + NewRow *= m_Width; + for(j = -IntRadius; j <= IntRadius; j++) { +- if (Dist[abs(i)][abs(j)] < Radius) { ++ if (Dist[int16_t(abs(i))][int16_t(abs(j))] < Radius) { + NewCol = Col+j; + NewCol = NewCol < 0? -NewCol : NewCol > Width1? Width1_2-NewCol : NewCol ; + diff --git a/pkgs/applications/graphics/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix index f9b24581929..a3c8d805b23 100644 --- a/pkgs/applications/graphics/photoqt/default.nix +++ b/pkgs/applications/graphics/photoqt/default.nix @@ -1,32 +1,28 @@ -{ stdenv, fetchurl, cmake, makeQtWrapper, exiv2, graphicsmagick -, qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools +{ stdenv, fetchurl, cmake, exiv2, graphicsmagick, libraw +, qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools, qtgraphicaleffects }: -let - version = "1.3"; -in stdenv.mkDerivation rec { name = "photoqt-${version}"; + version = "1.5.1"; + src = fetchurl { url = "http://photoqt.org/pkgs/photoqt-${version}.tar.gz"; - sha256 = "0j2kvxfb5pd9abciv161nkcsyam6n8kfqs8ymwj2mxiqflwbmfl1"; + sha256 = "17kkpzkmzfnigs26jjyd75iy58qffjsclif81cmviq73lzmqy0b1"; }; + nativeBuildInputs = [ cmake ]; buildInputs = [ - cmake makeQtWrapper qtbase qtquickcontrols qttools exiv2 graphicsmagick - qtmultimedia qtdeclarative + qtbase qtquickcontrols qttools exiv2 graphicsmagick + qtmultimedia qtdeclarative libraw qtgraphicaleffects ]; preConfigure = '' export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick" ''; - postInstall = '' - wrapQtProgram $out/bin/photoqt - ''; - meta = { - homepage = "http://photoqt.org/"; + homepage = http://photoqt.org/; description = "Simple, yet powerful and good looking image viewer"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix index 4782376d1e0..8ce9d407aad 100644 --- a/pkgs/applications/graphics/phototonic/default.nix +++ b/pkgs/applications/graphics/phototonic/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, qtbase, qmakeHook, exiv2 }: +{ stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }: stdenv.mkDerivation rec { name = "phototonic-${version}"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { }; buildInputs = [ qtbase exiv2 ]; - nativeBuildInputs = [ qmakeHook ]; + nativeBuildInputs = [ qmake ]; preConfigure = '' sed -i 's;/usr;$$PREFIX/;g' phototonic.pro diff --git a/pkgs/applications/graphics/potrace/default.nix b/pkgs/applications/graphics/potrace/default.nix index 82fa4d5ee95..132136da658 100644 --- a/pkgs/applications/graphics/potrace/default.nix +++ b/pkgs/applications/graphics/potrace/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "potrace-${version}"; - version = "1.14"; + version = "1.15"; src = fetchurl { url = "http://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz"; - sha256 = "0znr9i0ljb818qiwm22zw63g11a4v08gc5xkh0wbdp6g259vcwnv"; + sha256 = "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9"; }; configureFlags = [ "--with-libpotrace" ]; diff --git a/pkgs/applications/graphics/pqiv/default.nix b/pkgs/applications/graphics/pqiv/default.nix index 2023d9486bd..202bbb5b13f 100644 --- a/pkgs/applications/graphics/pqiv/default.nix +++ b/pkgs/applications/graphics/pqiv/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation (rec { name = "pqiv-${version}"; - version = "2.8.3"; + version = "2.9"; src = fetchFromGitHub { owner = "phillipberndt"; repo = "pqiv"; rev = version; - sha256 = "0fhmqa1q1y5y0ivrgx9xv864zqvd5dk4fiqi4bgi1ybdfx7vv2fy"; + sha256 = "1xncf6aq52zpxpmz3ikmlkinz7y3nmbpgfxjb7q40sqs00n0mfsd"; }; nativeBuildInputs = [ pkgconfig ]; @@ -21,6 +21,6 @@ stdenv.mkDerivation (rec { homepage = http://www.pberndt.com/Programme/Linux/pqiv; license = licenses.gpl3; maintainers = [ maintainers.ndowens ]; - platforms = platforms.unix; + platforms = platforms.linux; }; }) diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix index a66e9163142..12ff5c77240 100644 --- a/pkgs/applications/graphics/processing/default.nix +++ b/pkgs/applications/graphics/processing/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A language and IDE for electronic arts"; - homepage = http://processing.org; + homepage = https://processing.org; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/applications/graphics/qiv/default.nix b/pkgs/applications/graphics/qiv/default.nix index 9d147a635f3..f1a58d4e21b 100644 --- a/pkgs/applications/graphics/qiv/default.nix +++ b/pkgs/applications/graphics/qiv/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation (rec { sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7"; }; - buildInputs = [ pkgconfig gtk2 imlib2 file lcms2 libexif ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 imlib2 file lcms2 libexif ]; preBuild='' substituteInPlace Makefile --replace /usr/local "$out" diff --git a/pkgs/applications/graphics/rapcad/default.nix b/pkgs/applications/graphics/rapcad/default.nix index b7672a39d0d..451eaae79b2 100644 --- a/pkgs/applications/graphics/rapcad/default.nix +++ b/pkgs/applications/graphics/rapcad/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, fetchurl, cgal, boost, gmp, mpfr, flex, bison, dxflib, readline -, qtbase, qmakeHook, mesa_glu +, qtbase, qmake, mesa_glu }: stdenv.mkDerivation rec { @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ qmakeHook ]; + nativeBuildInputs = [ qmake ]; buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline mesa_glu ]; meta = with stdenv.lib; { diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix index 97d04b03622..91a34a505f2 100644 --- a/pkgs/applications/graphics/rawtherapee/default.nix +++ b/pkgs/applications/graphics/rawtherapee/default.nix @@ -1,27 +1,29 @@ { stdenv, fetchFromGitHub, pkgconfig, cmake, pixman, libpthreadstubs, gtkmm3, libXau , libXdmcp, lcms2, libiptcdata, libcanberra_gtk3, fftw, expat, pcre, libsigcxx, wrapGAppsHook +, lensfun }: stdenv.mkDerivation rec { - version = "5.0-r1"; + version = "5.3"; name = "rawtherapee-" + version; src = fetchFromGitHub { owner = "Beep6581"; repo = "RawTherapee"; - rev = version + "-gtk3"; - sha256 = "06v3ir5562yg4zk9z8kc8a7sw7da88193sizjlk74gh5d3smgr4q"; + rev = version; + sha256 = "1r6sx9zl1wkykgfx6k26268xadair6hzl15v5hmiri9sdhrn33q7"; }; - buildInputs = [ - pkgconfig cmake pixman libpthreadstubs gtkmm3 libXau libXdmcp - lcms2 libiptcdata libcanberra_gtk3 fftw expat pcre libsigcxx - ]; + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; - nativeBuildInputs = [ wrapGAppsHook ]; + buildInputs = [ + cmake pixman libpthreadstubs gtkmm3 libXau libXdmcp + lcms2 libiptcdata libcanberra_gtk3 fftw expat pcre libsigcxx lensfun + ]; cmakeFlags = [ "-DPROC_TARGET_NUMBER=2" + "-DCACHE_NAME_SUFFIX=\"\"" ]; CMAKE_CXX_FLAGS = "-std=c++11 -Wno-deprecated-declarations -Wno-unused-result"; diff --git a/pkgs/applications/graphics/rawtherapee/dev.nix b/pkgs/applications/graphics/rawtherapee/dev.nix index 71e41faaaef..fb73feb4a09 100644 --- a/pkgs/applications/graphics/rawtherapee/dev.nix +++ b/pkgs/applications/graphics/rawtherapee/dev.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "1nwb6b1qrpdyigwig7bvr42lf7na1ngm0q2cislcvb2v1nmk6nlz"; }; - buildInputs = [ pkgconfig cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp lcms2 libiptcdata libcanberra_gtk2 fftw expat pcre libsigcxx ]; NIX_CFLAGS_COMPILE = "-std=gnu++11 -Wno-deprecated-declarations -Wno-unused-result"; diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix index be4457c932f..d69f9a676c1 100644 --- a/pkgs/applications/graphics/renderdoc/default.nix +++ b/pkgs/applications/graphics/renderdoc/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, cmake, qtbase, qtx11extras -, pkgconfig, xorg, makeQtWrapper, vulkan-loader +{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig +, qtbase, qtx11extras, vulkan-loader, xorg }: stdenv.mkDerivation rec { @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { buildInputs = [ qtbase xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader ]; - nativeBuildInputs = [ cmake makeQtWrapper pkgconfig ]; + nativeBuildInputs = [ cmake makeWrapper pkgconfig ]; cmakeFlags = [ "-DBUILD_VERSION_HASH=${src.rev}-distro-nix" @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { mkdir $out/bin/.bin mv $out/bin/qrenderdoc $out/bin/.bin/qrenderdoc ln -s $out/bin/.bin/qrenderdoc $out/bin/qrenderdoc - wrapQtProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib + wrapProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib mv $out/bin/renderdoccmd $out/bin/.bin/renderdoccmd ln -s $out/bin/.bin/renderdoccmd $out/bin/renderdoccmd wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix index 7037e944f3f..42d129e5388 100644 --- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix +++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix @@ -10,17 +10,17 @@ let udevRules = callPackage ./udev_rules_type1.nix {}; in stdenv.mkDerivation rec { - name = "brscan4-0.4.4-2"; + name = "brscan4-0.4.4-4"; src = if stdenv.system == "i686-linux" then fetchurl { url = "http://download.brother.com/welcome/dlf006646/${name}.i386.deb"; - sha256 = "1rd6qmg49lvack8rg9kkqs3vxfvvqf2x45h93pkrhk8a4aj5c8ll"; + sha256 = "13mhjbzf9nvpdzrc2s98684r7likg76zxs1wlz2h8w59fsqgx4k2"; } else if stdenv.system == "x86_64-linux" then fetchurl { url = "http://download.brother.com/welcome/dlf006645/${name}.amd64.deb"; - sha256 = "1r3cq1k2a2bghibkckmk00x7y59ic31gv7jcsw7380szf1j3la59"; + sha256 = "0xy5px96y1saq9l80vwvfn6anr2q42qlxdhm6ci2a0diwib5q9fd"; } else throw "${name} is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)"; diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix index a3ca7fdd55d..20d5629b83a 100644 --- a/pkgs/applications/graphics/sane/backends/default.nix +++ b/pkgs/applications/graphics/sane/backends/default.nix @@ -1,13 +1,11 @@ { callPackage, fetchurl, ... } @ args: callPackage ./generic.nix (args // rec { - version = "1.0.25"; + version = "1.0.27"; src = fetchurl { - sha256 = "0b3fvhrxl4l82bf3v0j47ypjv6a0k5lqbgknrq1agpmjca6vmmx4"; + sha256 = "1j9nbqspaj0rlgalafb5z6r606k0i22kz0rcpd744p176yzlfdr9"; urls = [ - "http://pkgs.fedoraproject.org/repo/pkgs/sane-backends/sane-backends-${version}.tar.gz/f9ed5405b3c12f07c6ca51ee60225fe7/sane-backends-${version}.tar.gz" - "https://alioth.debian.org/frs/download.php/file/4146/sane-backends-${version}.tar.gz" + "https://alioth.debian.org/frs/download.php/latestfile/176/sane-backends-${version}.tar.gz" ]; - curlOpts = "--insecure"; }; }) diff --git a/pkgs/applications/graphics/sane/backends/generic.nix b/pkgs/applications/graphics/sane/backends/generic.nix index 4bd80c01c93..3ef23142b2e 100644 --- a/pkgs/applications/graphics/sane/backends/generic.nix +++ b/pkgs/applications/graphics/sane/backends/generic.nix @@ -20,12 +20,13 @@ stdenv.mkDerivation { outputs = [ "out" "doc" "man" ]; configureFlags = [] - ++ stdenv.lib.optional (avahi != null) "--enable-avahi" + ++ stdenv.lib.optional (avahi != null) "--enable-avahi" ++ stdenv.lib.optional (libusb1 != null) "--enable-libusb_1_0" ; buildInputs = [ avahi libusb1 libv4l net_snmp ]; nativeBuildInputs = [ gettext pkgconfig ]; + enableParallelBuilding = true; postInstall = let @@ -67,7 +68,7 @@ stdenv.mkDerivation { video- and still-cameras, frame-grabbers, etc. For a list of supported scanners, see http://www.sane-project.org/sane-backends.html. ''; - homepage = "http://www.sane-project.org/"; + homepage = http://www.sane-project.org/; license = licenses.gpl2Plus; maintainers = with maintainers; [ nckx peti ]; diff --git a/pkgs/applications/graphics/sane/frontends.nix b/pkgs/applications/graphics/sane/frontends.nix index bd19ef3c43b..f6994db81e4 100644 --- a/pkgs/applications/graphics/sane/frontends.nix +++ b/pkgs/applications/graphics/sane/frontends.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb ? null}: +{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb ? null }: stdenv.mkDerivation rec { - name = "sane-frontends-1.0.14"; + name = "sane-frontends-${version}"; + version = "1.0.14"; src = fetchurl { - url = "https://alioth.debian.org/frs/download.php/file/1140/${name}.tar.gz"; + url = "https://alioth.debian.org/frs/download.php/latestfile/175/${name}.tar.gz"; sha256 = "1ad4zr7rcxpda8yzvfkq1rfjgx9nl6lan5a628wvpdbh3fn9v0z7"; }; @@ -12,15 +13,17 @@ stdenv.mkDerivation rec { sed -e '/SANE_CAP_ALWAYS_SETTABLE/d' -i src/gtkglue.c ''; - buildInputs = [sane-backends libX11 gtk2 pkgconfig] ++ - (if libusb != null then [libusb] else []); + buildInputs = [ sane-backends libX11 gtk2 ] + ++ stdenv.lib.optional (libusb != null) libusb; + nativeBuildInputs = [ pkgconfig ]; - meta = { - homepage = "http://www.sane-project.org/"; + enableParallelBuilding = true; + + meta = with stdenv.lib; { description = "Scanner Access Now Easy"; - license = stdenv.lib.licenses.gpl2Plus; - - maintainers = [ stdenv.lib.maintainers.peti ]; - platforms = stdenv.lib.platforms.linux; + homepage = http://www.sane-project.org/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ peti ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/graphics/sane/xsane.nix b/pkgs/applications/graphics/sane/xsane.nix index de07a4f1a89..ad02e1a8023 100644 --- a/pkgs/applications/graphics/sane/xsane.nix +++ b/pkgs/applications/graphics/sane/xsane.nix @@ -18,7 +18,8 @@ stdenv.mkDerivation rec { chmod a+rX -R . ''; - buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 pkgconfig ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ] ++ (if libusb != null then [libusb] else []) ++ stdenv.lib.optional gimpSupport gimp_2_8; diff --git a/pkgs/applications/graphics/screencloud/default.nix b/pkgs/applications/graphics/screencloud/default.nix index 6f2b0e34cbb..cffe485711f 100644 --- a/pkgs/applications/graphics/screencloud/default.nix +++ b/pkgs/applications/graphics/screencloud/default.nix @@ -43,7 +43,9 @@ stdenv.mkDerivation rec { "-DCONSUMER_SECRET_SCREENCLOUD=${consumerSecret}" ]; - sourceRoot = "screencloud-v${version}-src/screencloud"; + setSourceRoot = '' + sourceRoot=$(echo */screencloud) + ''; preConfigure = '' # This needs to be set in preConfigure instead of cmakeFlags in order to diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix index 0c77857e66b..b0a6f7caf88 100644 --- a/pkgs/applications/graphics/shotwell/default.nix +++ b/pkgs/applications/graphics/shotwell/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { version = "${major}.${minor}"; - major = "0.26"; - minor = "0"; + major = "0.27"; + minor = "1"; name = "shotwell-${version}"; src = fetchurl { url = "mirror://gnome/sources/shotwell/${major}/${name}.tar.xz"; - sha256 = "090hvw9qcfs3irh05aji7pqh50j4v6xpwmsbl3r11svik7ag8p9h"; + sha256 = "1jav7qv0s1v6wvd7x2ri85hjqnbswq883pnd228qhd6bhjbryp89"; }; NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include"; @@ -24,11 +24,13 @@ stdenv.mkDerivation rec { patchShebangs . ''; + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala_0_28 sqlite webkitgtk - pkgconfig gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee + gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee which udev libgudev gnome3.gexiv2 hicolor_icon_theme libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg - wrapGAppsHook gnome_doc_utils gnome3.rest gnome3.gcr + gnome_doc_utils gnome3.rest gnome3.gcr gnome3.defaultIconTheme itstool libgdata ]; meta = with stdenv.lib; { diff --git a/pkgs/applications/graphics/shutter/default.nix b/pkgs/applications/graphics/shutter/default.nix index 3d4e8c592ab..a8b4973203d 100644 --- a/pkgs/applications/graphics/shutter/default.nix +++ b/pkgs/applications/graphics/shutter/default.nix @@ -11,21 +11,13 @@ let ]; in stdenv.mkDerivation rec { - name = "shutter-0.93.1"; + name = "shutter-0.94"; src = fetchurl { - url = "http://shutter-project.org/wp-content/uploads/releases/tars/${name}.tar.gz"; - sha256 = "09cn3scwy98wqxkrjhnmxhpfnnynlbb41856yn5m3zwzqrxiyvak"; + url = "https://launchpad.net/shutter/0.9x/0.94/+download/shutter-0.94.tar.gz"; + sha256 = "943152cdf9e1b2096d38e3da9622d8bf97956a08eda747c3e7fcc564a3f0f40d"; }; - patches = [ - (fetchpatch { - url = "http://svnweb.mageia.org/packages/cauldron/shutter/current/SOURCES/CVE-2015-0854.patch?revision=880308&view=co"; - name = "CVE-2015-0854.patch"; - sha256 = "14r18sxz3ylf39cn9b85snjhjxdk6ngq4vnpljwghw2q5430nb12"; - }) - ]; - buildInputs = [ perl makeWrapper gdk_pixbuf librsvg ] ++ perlModules; installPhase = '' diff --git a/pkgs/applications/graphics/simple-scan/default.nix b/pkgs/applications/graphics/simple-scan/default.nix deleted file mode 100644 index 8a24eab2200..00000000000 --- a/pkgs/applications/graphics/simple-scan/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool -, libusb1, libxml2, pkgconfig, sane-backends, vala_0_32, wrapGAppsHook -, gnome3 }: - -stdenv.mkDerivation rec { - name = "simple-scan-${version}"; - version = "${major_version}.0.1"; - major_version = "3.22"; - - src = fetchurl { - url = "https://launchpad.net/simple-scan/${major_version}/${version}/+download/${name}.tar.xz"; - sha256 = "0l1b3llkdlqq0bcjx1cadba67l2zb4zfykdaprpjbjbr6gkbc1f5"; - }; - - buildInputs = [ cairo colord glib gnome3.defaultIconTheme gusb gtk3 libusb1 libxml2 sane-backends vala_0_32 ]; - nativeBuildInputs = [ intltool itstool pkgconfig wrapGAppsHook ]; - - configureFlags = [ "--disable-packagekit" ]; - - patchPhase = '' - sed -i -e 's#Icon=scanner#Icon=simple-scan#g' ./data/simple-scan.desktop.in - ''; - - preBuild = '' - # Clean up stale .c files referencing packagekit headers as of 3.20.0: - make clean - ''; - - postInstall = '' - mkdir -p $out/share/icons - mv $out/share/simple-scan/icons/* $out/share/icons/ - ''; - - enableParallelBuilding = true; - - doCheck = true; - - meta = with stdenv.lib; { - description = "Simple scanning utility"; - longDescription = '' - A really easy way to scan both documents and photos. You can crop out the - bad parts of a photo and rotate it if it is the wrong way round. You can - print your scans, export them to pdf, or save them in a range of image - formats. Basically a frontend for SANE - which is the same backend as - XSANE uses. This means that all existing scanners will work and the - interface is well tested. - ''; - homepage = https://launchpad.net/simple-scan; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ nckx ]; - }; -} diff --git a/pkgs/applications/graphics/smartdeblur/default.nix b/pkgs/applications/graphics/smartdeblur/default.nix index 083fde35902..55c856c1912 100644 --- a/pkgs/applications/graphics/smartdeblur/default.nix +++ b/pkgs/applications/graphics/smartdeblur/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { cmakeFlags = "-DUSE_SYSTEM_FFTW=ON"; meta = { - homepage = "https://github.com/Y-Vladimir/SmartDeblur"; + homepage = https://github.com/Y-Vladimir/SmartDeblur; description = "Tool for restoring blurry and defocused images"; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [ viric ]; diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix index ab5a81d6add..43d6229ab2b 100644 --- a/pkgs/applications/graphics/solvespace/default.nix +++ b/pkgs/applications/graphics/solvespace/default.nix @@ -1,38 +1,47 @@ -{ stdenv, fetchgit, autoreconfHook, fltk13 -, libjpeg, libpng, mesa, pkgconfig }: - -stdenv.mkDerivation { - name = "solvespace-2.0"; +{ stdenv, fetchgit, cmake, pkgconfig, zlib, libpng, cairo, freetype +, json_c, fontconfig, gtkmm3, pangomm, glew, mesa_glu, xlibs, pcre +}: +stdenv.mkDerivation rec { + name = "solvespace-2.3-20170808"; + rev = "16540b1b2c540a4b44500ac02aaa4493bccfba7e"; src = fetchgit { - url = "https://github.com/jwesthues/solvespace.git"; - sha256 = "0m6zlx1kiqxkm6szdsnywwr6spnb7xjg6vqsq30nrr44cx37w861"; - rev = "e587d0e"; + url = https://github.com/solvespace/solvespace; + inherit rev; + sha256 = "1z10i21xf3yagd984lp1hwasnsizx2s3faq3wdzzjngrikr2zn70"; + fetchSubmodules = true; }; - # Fixup build after glibc-2.25. - postPatch = '' - sed 's/\/CHARWIDTH/g' \ - -i src/{fltk/fltkmain.cpp,glhelper.cpp,textwin.cpp,toolbar.cpp,ui.h} + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + cmake zlib libpng cairo freetype + json_c fontconfig gtkmm3 pangomm glew mesa_glu + xlibs.libpthreadstubs xlibs.libXdmcp pcre + ]; + enableParallelBuilding = true; + + preConfigure = '' + patch CMakeLists.txt < - #include - --#ifndef WIN32 -- #include -- #include --#endif -- - #include "xournal.h" - #include "xo-interface.h" - #include "xo-support.h" -@@ -1275,50 +1270,8 @@ GList *attempt_load_gv_bg(char *filename - - struct Background *attempt_screenshot_bg(void) - { --#ifndef WIN32 -- struct Background *bg; -- GdkPixbuf *pix; -- XEvent x_event; -- GdkWindow *window; -- GdkColormap *cmap; -- int x,y,w,h; -- Window x_root, x_win; -- -- x_root = gdk_x11_get_default_root_xwindow(); -- -- if (!XGrabButton(GDK_DISPLAY(), AnyButton, AnyModifier, x_root, -- False, ButtonReleaseMask, GrabModeAsync, GrabModeSync, None, None)) -- return NULL; -- -- XWindowEvent (GDK_DISPLAY(), x_root, ButtonReleaseMask, &x_event); -- XUngrabButton(GDK_DISPLAY(), AnyButton, AnyModifier, x_root); -- -- x_win = x_event.xbutton.subwindow; -- if (x_win == None) x_win = x_root; -- -- window = gdk_window_foreign_new_for_display(gdk_display_get_default(), x_win); -- -- gdk_window_get_geometry(window, &x, &y, &w, &h, NULL); -- cmap = gdk_drawable_get_colormap(window); -- if (cmap == NULL) cmap = gdk_colormap_get_system(); -- -- pix = gdk_pixbuf_get_from_drawable(NULL, window, -- cmap, 0, 0, 0, 0, w, h); -- -- if (pix == NULL) return NULL; -- -- bg = g_new(struct Background, 1); -- bg->type = BG_PIXMAP; -- bg->canvas_item = NULL; -- bg->pixbuf = pix; -- bg->pixbuf_scale = DEFAULT_ZOOM; -- bg->filename = new_refstring(NULL); -- bg->file_domain = DOMAIN_ATTACH; -- return bg; --#else - // not implemented under WIN32 - return FALSE; --#endif - } - - /************** pdf annotation ***************/ -diff -rup xournal-0.4.8-orig/src/xo-misc.c xournal-0.4.8/src/xo-misc.c ---- xournal-0.4.8-orig/src/xo-misc.c 2014-06-28 15:17:44.000000000 +0200 -+++ xournal-0.4.8/src/xo-misc.c 2016-12-25 03:05:50.000000000 +0100 -@@ -2288,9 +2288,7 @@ void hide_unimplemented(void) - } - - /* screenshot feature doesn't work yet in Win32 */ --#ifdef WIN32 - gtk_widget_hide(GET_COMPONENT("journalScreenshot")); --#endif - } - - // toggle fullscreen mode diff --git a/pkgs/applications/graphics/xzgv/default.nix b/pkgs/applications/graphics/xzgv/default.nix index 99931442945..a15ffee3d4a 100644 --- a/pkgs/applications/graphics/xzgv/default.nix +++ b/pkgs/applications/graphics/xzgv/default.nix @@ -1,22 +1,23 @@ -{ stdenv, fetchurl, gtk2, pkgconfig, texinfo }: +{ stdenv, fetchurl, gtk2, libexif, pkgconfig, texinfo }: stdenv.mkDerivation rec { name = "xzgv-${version}"; - version = "0.9.1"; + version = "0.9.2"; src = fetchurl { url = "mirror://sourceforge/xzgv/xzgv-${version}.tar.gz"; - sha256 = "1rh432wnvzs434knzbda0fslhfx0gngryrrnqkfm6gwd2g5mxcph"; + sha256 = "17l1xr9v07ggwga3vn0z1i4lnwjrr20rr8z1kjbw71aaijxl18i5"; }; - buildInputs = [ gtk2 pkgconfig texinfo ]; - patches = [ ./fix-linker-paths.patch ]; + nativeBuildInputs = [ pkgconfig texinfo ]; + buildInputs = [ gtk2 libexif ]; postPatch = '' substituteInPlace config.mk \ --replace /usr/local $out - substituteInPlace config.mk \ - --replace "CFLAGS=-O2 -Wall" "CFLAGS=-Wall" substituteInPlace Makefile \ --replace "all: src man" "all: src man info" ''; + preInstall = '' + mkdir -p $out/share/{app-install/desktop,applications,info,pixmaps} + ''; meta = with stdenv.lib; { homepage = http://sourceforge.net/projects/xzgv/; description = "Picture viewer for X with a thumbnail-based selector"; diff --git a/pkgs/applications/graphics/xzgv/fix-linker-paths.patch b/pkgs/applications/graphics/xzgv/fix-linker-paths.patch deleted file mode 100644 index c5b1ae0879b..00000000000 --- a/pkgs/applications/graphics/xzgv/fix-linker-paths.patch +++ /dev/null @@ -1,25 +0,0 @@ -taken from http://sourceforge.net/p/xzgv/code/53/tree//trunk/xzgv/src/Makefile?diff=514dada434309d2ec11f5eff:52 ---- a/src/Makefile -+++ b/src/Makefile -@@ -9,8 +9,10 @@ - # This gets definitions for CC, CFLAGS, BINDIR etc. - include ../config.mk - --CFLAGS+=`pkg-config --cflags gtk+-2.0` `pkg-config --cflags gdk-pixbuf-2.0` --LDFLAGS+=`pkg-config --libs gtk+-2.0` `pkg-config --libs gdk-pixbuf-2.0` -+CFLAGS+=`pkg-config --cflags gtk+-2.0` `pkg-config --cflags gdk-pixbuf-2.0` \ -+ `pkg-config --cflags x11` -+LDFLAGS+=`pkg-config --libs gtk+-2.0` `pkg-config --libs gdk-pixbuf-2.0` \ -+ `pkg-config --libs x11` -lm - - all: xzgv - -@@ -23,7 +25,7 @@ - backend.o - - xzgv: $(OBJS) -- $(CC) $(LDFLAGS) -o xzgv $(OBJS) -+ $(CC) -o xzgv $(OBJS) $(LDFLAGS) - - installdirs: - /bin/sh ../mkinstalldirs $(BINDIR) diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix index 9af46f5cb35..dcb7c512dde 100644 --- a/pkgs/applications/graphics/yed/default.nix +++ b/pkgs/applications/graphics/yed/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "yEd-${version}"; - version = "3.17"; + version = "3.17.1"; src = requireFile { name = "${name}.zip"; url = "https://www.yworks.com/en/products/yfiles/yed/"; - sha256 = "1wk58cql90y3i5l7jlxqfjjgf26i0zrv5cn0p9npgagaw6aiw2za"; + sha256 = "0fk1gai7yghfmfvx1rfzdnpwihbq6hqzncyk6zkpqdrf6zz576nl"; }; nativeBuildInputs = [ unzip makeWrapper ]; @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { license = licenses.unfree; - homepage = "http://www.yworks.com/en/products/yfiles/yed/"; + homepage = http://www.yworks.com/en/products/yfiles/yed/; description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams"; platforms = jre.meta.platforms; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/graphics/zgv/default.nix b/pkgs/applications/graphics/zgv/default.nix index e06b76e35b1..1af16536836 100644 --- a/pkgs/applications/graphics/zgv/default.nix +++ b/pkgs/applications/graphics/zgv/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1fk4i9x0cpnpn3llam0zy2pkmhlr2hy3iaxhxg07v9sizd4dircj"; }; - buildInputs = [ SDL SDL_image pkgconfig libjpeg libpng libtiff ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ SDL SDL_image libjpeg libpng libtiff ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/inferno/default.nix b/pkgs/applications/inferno/default.nix index b1574ea6963..3f3c2a32e68 100644 --- a/pkgs/applications/inferno/default.nix +++ b/pkgs/applications/inferno/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { meta = { description = "A compact distributed operating system for building cross-platform distributed systems"; - homepage = "http://inferno-os.org/"; + homepage = http://inferno-os.org/; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ doublec kovirobi ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/kde/akonadi-calendar.nix b/pkgs/applications/kde/akonadi-calendar.nix new file mode 100644 index 00000000000..ce6b6f75f93 --- /dev/null +++ b/pkgs/applications/kde/akonadi-calendar.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-contacts, kcalcore, kcalutils, kcontacts, + kidentitymanagement, kio, kmailtransport, +}: + +mkDerivation { + name = "akonadi-calendar"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + akonadi akonadi-contacts kcalcore kcalutils kcontacts kidentitymanagement + kio kmailtransport + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix index 830c9e6899e..b09058b60be 100644 --- a/pkgs/applications/kde/akonadi-contacts.nix +++ b/pkgs/applications/kde/akonadi-contacts.nix @@ -1,19 +1,25 @@ { - kdeApp, lib, + mkDerivation, lib, kdepimTeam, extra-cmake-modules, - akonadi-mime, grantlee, kcontacts, kio, kitemmodels, kmime, qtwebengine, - akonadi + qtwebengine, + grantlee, + kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison, + akonadi, akonadi-mime, kcontacts, kmime, }: -kdeApp { +mkDerivation { name = "akonadi-contacts"; meta = { license = with lib.licenses; [ gpl2 lgpl21 ]; - maintainers = [ lib.maintainers.ttuegel ]; + maintainers = kdepimTeam; }; nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ - akonadi-mime grantlee kcontacts kio kitemmodels kmime qtwebengine + qtwebengine + grantlee + kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison + akonadi-mime kcontacts kmime ]; propagatedBuildInputs = [ akonadi ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/akonadi-mime.nix b/pkgs/applications/kde/akonadi-mime.nix index ba4b4b50242..52a17f5cbeb 100644 --- a/pkgs/applications/kde/akonadi-mime.nix +++ b/pkgs/applications/kde/akonadi-mime.nix @@ -1,15 +1,16 @@ { - kdeApp, lib, - extra-cmake-modules, - akonadi, kdbusaddons, kio, kitemmodels, kmime + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, shared_mime_info, + akonadi, kdbusaddons, ki18n, kio, kitemmodels, kmime }: -kdeApp { +mkDerivation { name = "akonadi-mime"; meta = { license = with lib.licenses; [ gpl2 lgpl21 ]; - maintainers = [ lib.maintainers.ttuegel ]; + maintainers = kdepimTeam; }; - nativeBuildInputs = [ extra-cmake-modules ]; - buildInputs = [ akonadi kdbusaddons kio kitemmodels kmime ]; + nativeBuildInputs = [ extra-cmake-modules shared_mime_info ]; + buildInputs = [ akonadi kdbusaddons ki18n kio kitemmodels kmime ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/akonadi-notes.nix b/pkgs/applications/kde/akonadi-notes.nix new file mode 100644 index 00000000000..72c4d799239 --- /dev/null +++ b/pkgs/applications/kde/akonadi-notes.nix @@ -0,0 +1,18 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, kcompletion, ki18n, kitemmodels, kmime, kxmlgui +}: + +mkDerivation { + name = "akonadi-notes"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi kcompletion ki18n kitemmodels kmime kxmlgui + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/akonadi-search.nix b/pkgs/applications/kde/akonadi-search.nix new file mode 100644 index 00000000000..617c086ad9c --- /dev/null +++ b/pkgs/applications/kde/akonadi-search.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, kcalcore, kcmutils, kcontacts, kcoreaddons, kmime, + krunner, qtbase, xapian +}: + +mkDerivation { + name = "akonadi-search"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kcmutils krunner xapian ]; + propagatedBuildInputs = [ + akonadi akonadi-mime kcalcore kcontacts kcoreaddons kmime qtbase + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/akonadi.nix b/pkgs/applications/kde/akonadi.nix deleted file mode 100644 index 284ed60a9cb..00000000000 --- a/pkgs/applications/kde/akonadi.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - kdeApp, lib, - extra-cmake-modules, - kcompletion, kconfigwidgets, kdbusaddons, kdesignerplugin, kiconthemes, - kio, - boost, kitemmodels -}: - -kdeApp { - name = "akonadi"; - meta = { - license = [ lib.licenses.lgpl21 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules ]; - buildInputs = [ - kcompletion kconfigwidgets kdbusaddons kdesignerplugin kiconthemes kio - ]; - propagatedBuildInputs = [ boost kitemmodels ]; -} diff --git a/pkgs/applications/kde/akonadi/akonadi-paths.patch b/pkgs/applications/kde/akonadi/akonadi-paths.patch new file mode 100644 index 00000000000..91fd934b1ec --- /dev/null +++ b/pkgs/applications/kde/akonadi/akonadi-paths.patch @@ -0,0 +1,191 @@ +Index: akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp +=================================================================== +--- akonadi-17.04.0.orig/src/server/storage/dbconfigmysql.cpp ++++ akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp +@@ -63,7 +63,6 @@ bool DbConfigMysql::init(QSettings &sett + // determine default settings depending on the driver + QString defaultHostName; + QString defaultOptions; +- QString defaultServerPath; + QString defaultCleanShutdownCommand; + + #ifndef Q_OS_WIN +@@ -71,25 +70,8 @@ bool DbConfigMysql::init(QSettings &sett + #endif + + const bool defaultInternalServer = true; +-#ifdef MYSQLD_EXECUTABLE +- if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) { +- defaultServerPath = QStringLiteral(MYSQLD_EXECUTABLE); +- } +-#endif +- const QStringList mysqldSearchPath = QStringList() +- << QStringLiteral("/usr/bin") +- << QStringLiteral("/usr/sbin") +- << QStringLiteral("/usr/local/sbin") +- << QStringLiteral("/usr/local/libexec") +- << QStringLiteral("/usr/libexec") +- << QStringLiteral("/opt/mysql/libexec") +- << QStringLiteral("/opt/local/lib/mysql5/bin") +- << QStringLiteral("/opt/mysql/sbin"); +- if (defaultServerPath.isEmpty()) { +- defaultServerPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqld"), mysqldSearchPath); +- } + +- const QString mysqladminPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqladmin"), mysqldSearchPath); ++ const QString mysqladminPath = QLatin1String(NIXPKGS_MYSQL_MYSQLADMIN); + if (!mysqladminPath.isEmpty()) { + #ifndef Q_OS_WIN + defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/mysql.socket shutdown") +@@ -99,10 +81,10 @@ bool DbConfigMysql::init(QSettings &sett + #endif + } + +- mMysqlInstallDbPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysql_install_db"), mysqldSearchPath); ++ mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB); + qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath; + +- mMysqlCheckPath = XdgBaseDirs::findExecutableFile(QStringLiteral("mysqlcheck"), mysqldSearchPath); ++ mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK); + qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath; + + mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool(); +@@ -119,7 +101,7 @@ bool DbConfigMysql::init(QSettings &sett + mUserName = settings.value(QStringLiteral("User")).toString(); + mPassword = settings.value(QStringLiteral("Password")).toString(); + mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString(); +- mMysqldPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString(); ++ mMysqldPath = QLatin1String(NIXPKGS_MYSQL_MYSQLD); + mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString(); + settings.endGroup(); + +@@ -129,9 +111,6 @@ bool DbConfigMysql::init(QSettings &sett + // intentionally not namespaced as we are the only one in this db instance when using internal mode + mDatabaseName = QStringLiteral("akonadi"); + } +- if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) { +- mMysqldPath = defaultServerPath; +- } + + qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath; + +@@ -140,9 +119,6 @@ bool DbConfigMysql::init(QSettings &sett + settings.setValue(QStringLiteral("Name"), mDatabaseName); + settings.setValue(QStringLiteral("Host"), mHostName); + settings.setValue(QStringLiteral("Options"), mConnectionOptions); +- if (!mMysqldPath.isEmpty()) { +- settings.setValue(QStringLiteral("ServerPath"), mMysqldPath); +- } + settings.setValue(QStringLiteral("StartServer"), mInternalServer); + settings.endGroup(); + settings.sync(); +@@ -196,7 +172,7 @@ bool DbConfigMysql::startInternalServer( + #endif + + // generate config file +- const QString globalConfig = XdgBaseDirs::findResourceFile("config", QStringLiteral("akonadi/mysql-global.conf")); ++ const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf"); + const QString localConfig = XdgBaseDirs::findResourceFile("config", QStringLiteral("akonadi/mysql-local.conf")); + const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf"); + if (globalConfig.isEmpty()) { +Index: akonadi-17.04.0/src/server/storage/dbconfigpostgresql.cpp +=================================================================== +--- akonadi-17.04.0.orig/src/server/storage/dbconfigpostgresql.cpp ++++ akonadi-17.04.0/src/server/storage/dbconfigpostgresql.cpp +@@ -58,7 +58,6 @@ bool DbConfigPostgresql::init(QSettings + // determine default settings depending on the driver + QString defaultHostName; + QString defaultOptions; +- QString defaultServerPath; + QString defaultInitDbPath; + QString defaultPgData; + +@@ -70,35 +69,7 @@ bool DbConfigPostgresql::init(QSettings + + mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool(); + if (mInternalServer) { +- QStringList postgresSearchPath; +- +-#ifdef POSTGRES_PATH +- const QString dir(QStringLiteral(POSTGRES_PATH)); +- if (QDir(dir).exists()) { +- postgresSearchPath << QStringLiteral(POSTGRES_PATH); +- } +-#endif +- postgresSearchPath << QStringLiteral("/usr/sbin") +- << QStringLiteral("/usr/local/sbin"); +- // Locale all versions in /usr/lib/postgresql (i.e. /usr/lib/postgresql/X.Y) in reversed +- // sorted order, so we search from the newest one to the oldest. +- QStringList postgresVersionedSearchPaths; +- QDir versionedDir(QStringLiteral("/usr/lib/postgresql")); +- if (versionedDir.exists()) { +- const auto versionedDirs = versionedDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); +- for (const auto &path : versionedDirs) { +- // Don't break once PostgreSQL 10 is released, but something more future-proof will be needed +- if (path.fileName().startsWith(QLatin1String("10."))) { +- postgresVersionedSearchPaths.prepend(path.absoluteFilePath() + QStringLiteral("/bin")); +- } else { +- postgresVersionedSearchPaths.append(path.absoluteFilePath() + QStringLiteral("/bin")); +- } +- } +- } +- postgresSearchPath.append(postgresVersionedSearchPaths); +- +- defaultServerPath = XdgBaseDirs::findExecutableFile(QStringLiteral("pg_ctl"), postgresSearchPath); +- defaultInitDbPath = XdgBaseDirs::findExecutableFile(QStringLiteral("initdb"), postgresSearchPath); ++ defaultInitDbPath = QLatin1String(NIXPKGS_POSTGRES_INITDB); + defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc"))); + defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data")); + } +@@ -118,10 +89,7 @@ bool DbConfigPostgresql::init(QSettings + mUserName = settings.value(QStringLiteral("User")).toString(); + mPassword = settings.value(QStringLiteral("Password")).toString(); + mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString(); +- mServerPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString(); +- if (mInternalServer && mServerPath.isEmpty()) { +- mServerPath = defaultServerPath; +- } ++ mServerPath = QLatin1String(NIXPKGS_POSTGRES_PG_CTL); + qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath; + mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString(); + if (mInternalServer && mInitDbPath.isEmpty()) { +@@ -142,7 +110,6 @@ bool DbConfigPostgresql::init(QSettings + settings.setValue(QStringLiteral("Port"), mHostPort); + } + settings.setValue(QStringLiteral("Options"), mConnectionOptions); +- settings.setValue(QStringLiteral("ServerPath"), mServerPath); + settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath); + settings.setValue(QStringLiteral("StartServer"), mInternalServer); + settings.endGroup(); +Index: akonadi-17.04.0/src/akonadicontrol/agentprocessinstance.cpp +=================================================================== +--- akonadi-17.04.0.orig/src/akonadicontrol/agentprocessinstance.cpp ++++ akonadi-17.04.0/src/akonadicontrol/agentprocessinstance.cpp +@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A + } else { + Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher); + const QStringList arguments = QStringList() << executable << identifier(); +- const QString agentLauncherExec = XdgBaseDirs::findExecutableFile(QStringLiteral("akonadi_agent_launcher")); ++ const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher"); + mController->start(agentLauncherExec, arguments); + } + return true; +Index: akonadi-17.04.0/src/akonadicontrol/agentmanager.cpp +=================================================================== +--- akonadi-17.04.0.orig/src/akonadicontrol/agentmanager.cpp ++++ akonadi-17.04.0/src/akonadicontrol/agentmanager.cpp +@@ -102,12 +102,12 @@ AgentManager::AgentManager(bool verbose, + mStorageController = new Akonadi::ProcessControl; + mStorageController->setShutdownTimeout(15 * 1000); // the server needs more time for shutdown if we are using an internal mysqld + connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure); +- mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); ++ mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); + + if (mAgentServerEnabled) { + mAgentServer = new Akonadi::ProcessControl; + connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure); +- mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); ++ mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); + } + + #ifndef QT_NO_DEBUG diff --git a/pkgs/applications/kde/akonadi/akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/akonadi-timestamps.patch new file mode 100644 index 00000000000..25a835f5ba2 --- /dev/null +++ b/pkgs/applications/kde/akonadi/akonadi-timestamps.patch @@ -0,0 +1,14 @@ +Index: akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp +=================================================================== +--- akonadi-17.04.0.orig/src/server/storage/dbconfigmysql.cpp ++++ akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp +@@ -229,8 +229,7 @@ bool DbConfigMysql::startInternalServer( + bool confUpdate = false; + QFile actualFile(actualConfig); + // update conf only if either global (or local) is newer than actual +- if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) || +- (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) { ++ if (true) { + QFile globalFile(globalConfig); + QFile localFile(localConfig); + if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) { diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix new file mode 100644 index 00000000000..bb7dac1b62a --- /dev/null +++ b/pkgs/applications/kde/akonadi/default.nix @@ -0,0 +1,33 @@ +{ + mkDerivation, copyPathsToStore, lib, kdepimTeam, + extra-cmake-modules, shared_mime_info, + boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin, + ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools, +}: + +mkDerivation { + name = "akonadi"; + meta = { + license = [ lib.licenses.lgpl21 ]; + maintainers = kdepimTeam; + }; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules shared_mime_info ]; + buildInputs = [ + kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin ki18n + kiconthemes kio kwindowsystem qttools + ]; + propagatedBuildInputs = [ boost kitemmodels ]; + outputs = [ "out" "dev" ]; + NIX_CFLAGS_COMPILE = [ + ''-DNIXPKGS_MYSQL_MYSQLD="${lib.getBin mysql}/bin/mysqld"'' + ''-DNIXPKGS_MYSQL_MYSQLADMIN="${lib.getBin mysql}/bin/mysqladmin"'' + ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB="${lib.getBin mysql}/bin/mysql_install_db"'' + ''-DNIXPKGS_MYSQL_MYSQLCHECK="${lib.getBin mysql}/bin/mysqlcheck"'' + ''-DNIXPKGS_POSTGRES_PG_CTL=""'' + ''-DNIXPKGS_POSTGRES_INITDB=""'' + ]; + preConfigure = '' + NIX_CFLAGS_COMPILE+=" -DNIX_OUT=\"$out\"" + ''; +} diff --git a/pkgs/applications/kde/akonadi/series b/pkgs/applications/kde/akonadi/series new file mode 100644 index 00000000000..9e067f0a000 --- /dev/null +++ b/pkgs/applications/kde/akonadi/series @@ -0,0 +1,2 @@ +akonadi-paths.patch +akonadi-timestamps.patch diff --git a/pkgs/applications/kde/akonadiconsole.nix b/pkgs/applications/kde/akonadiconsole.nix new file mode 100644 index 00000000000..3d7bf26c794 --- /dev/null +++ b/pkgs/applications/kde/akonadiconsole.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-contacts, calendarsupport, kcalcore, kcompletion, + kconfigwidgets, kcontacts, kdbusaddons, kitemmodels, kpimtextedit, libkdepim, + ktextwidgets, kxmlgui, messagelib, qtbase, +}: + +mkDerivation { + name = "akonadiconsole"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-contacts calendarsupport kcalcore kcompletion kconfigwidgets + kcontacts kdbusaddons kitemmodels kpimtextedit ktextwidgets kxmlgui + messagelib qtbase libkdepim + ]; +} diff --git a/pkgs/applications/kde/akregator.nix b/pkgs/applications/kde/akregator.nix new file mode 100644 index 00000000000..98d53bc8083 --- /dev/null +++ b/pkgs/applications/kde/akregator.nix @@ -0,0 +1,30 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + qtwebengine, + grantlee, + kcmutils, kcrash, kiconthemes, knotifyconfig, kparts, ktexteditor, + kwindowsystem, + akonadi, akonadi-mime, grantleetheme, kontactinterface, libkdepim, libkleo, + messagelib, syndication +}: + +mkDerivation { + name = "akregator"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + qtwebengine + + grantlee + + kcmutils kcrash kiconthemes knotifyconfig kparts ktexteditor kwindowsystem + + akonadi akonadi-mime grantleetheme kontactinterface libkdepim libkleo + messagelib syndication + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix index e1e25b2acf2..fb631414838 100644 --- a/pkgs/applications/kde/ark/default.nix +++ b/pkgs/applications/kde/ark/default.nix @@ -1,47 +1,37 @@ { - kdeApp, lib, config, kdeWrapper, + mkDerivation, lib, config, makeWrapper, - extra-cmake-modules, kdoctools, makeWrapper, + extra-cmake-modules, kdoctools, - karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, khtml, kio, - kservice, kpty, kwidgetsaddons, libarchive, + karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, kitemmodels, + khtml, kio, kparts, kpty, kservice, kwidgetsaddons, libarchive, # Archive tools - p7zip, unzipNLS, zip, + p7zip, unzip, zip, # Unfree tools unfreeEnableUnrar ? false, unrar, }: -let - unwrapped = - kdeApp { - name = "ark"; - nativeBuildInputs = [ - extra-cmake-modules kdoctools makeWrapper - ]; - propagatedBuildInputs = [ - khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice - kpty kwidgetsaddons libarchive - ]; - postInstall = - let - PATH = - lib.makeBinPath - ([ p7zip unzipNLS zip ] ++ lib.optional unfreeEnableUnrar unrar); - in '' - wrapProgram "$out/bin/ark" \ - --prefix PATH : "${PATH}" - ''; - meta = { - license = with lib.licenses; - [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree; - maintainers = [ lib.maintainers.ttuegel ]; - }; - }; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/ark" ]; +mkDerivation { + name = "ark"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ]; + propagatedBuildInputs = [ + karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio kitemmodels + kparts kpty kservice kwidgetsaddons libarchive + ]; + outputs = [ "out" "dev" ]; + postFixup = + let + PATH = + lib.makeBinPath + ([ p7zip unzip zip ] ++ lib.optional unfreeEnableUnrar unrar); + in '' + wrapProgram "$out/bin/ark" --prefix PATH : "${PATH}" + ''; + meta = { + license = with lib.licenses; + [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree; + maintainers = [ lib.maintainers.ttuegel ]; + }; } diff --git a/pkgs/applications/kde/baloo-widgets.nix b/pkgs/applications/kde/baloo-widgets.nix index bb680305709..3479b6600fc 100644 --- a/pkgs/applications/kde/baloo-widgets.nix +++ b/pkgs/applications/kde/baloo-widgets.nix @@ -1,10 +1,10 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, kdoctools, baloo, kconfig, kdelibs4support, kfilemetadata, ki18n, kio, kservice }: -kdeApp { +mkDerivation { name = "baloo-widgets"; meta = { license = [ lib.licenses.lgpl21 ]; @@ -14,4 +14,5 @@ kdeApp { propagatedBuildInputs = [ baloo kconfig kdelibs4support kfilemetadata ki18n kio kservice ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/build-support/application.nix b/pkgs/applications/kde/build-support/application.nix deleted file mode 100644 index 92fdb439330..00000000000 --- a/pkgs/applications/kde/build-support/application.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ kdeDerivation, lib, debug, srcs }: - -args: - -let - inherit (args) name; - sname = args.sname or name; - inherit (srcs."${sname}") src version; -in -kdeDerivation (args // { - name = "${name}-${version}"; - inherit src; - - cmakeFlags = - (args.cmakeFlags or []) - ++ [ "-DBUILD_TESTING=OFF" ] - ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug"; - - meta = { - platforms = lib.platforms.linux; - homepage = "http://www.kde.org"; - } // (args.meta or {}); -}) diff --git a/pkgs/applications/kde/calendarsupport.nix b/pkgs/applications/kde/calendarsupport.nix new file mode 100644 index 00000000000..485397ec4aa --- /dev/null +++ b/pkgs/applications/kde/calendarsupport.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-calendar, akonadi-mime, kcalutils, kdepim-apps-libs, + kholidays, kidentitymanagement, kmime, pimcommon, qttools, +}: + +mkDerivation { + name = "calendarsupport"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-mime kcalutils kdepim-apps-libs kholidays pimcommon qttools + ]; + propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix index 827cb34e22e..54a834cba00 100644 --- a/pkgs/applications/kde/default.nix +++ b/pkgs/applications/kde/default.nix @@ -18,7 +18,7 @@ still shows most of the available features is in `./gwenview.nix`. # Updates 1. Update the URL in `./fetch.sh`. -2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/kde-5/applications` +2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde` from the top of the Nixpkgs tree. 3. Use `nox-review wip` to check that everything builds. 4. Commit the changes and open a pull request. @@ -27,68 +27,132 @@ still shows most of the available features is in `./gwenview.nix`. { stdenv, lib, libsForQt5, fetchurl, recurseIntoAttrs, - kdeDerivation, plasma5, - attica, phonon, - debug ? false, + plasma5, attica, phonon, }: let mirror = "mirror://kde"; srcs = import ./srcs.nix { inherit fetchurl mirror; }; -in -let + mkDerivation = args: + let + inherit (args) name; + sname = args.sname or name; + inherit (srcs."${sname}") src version; + mkDerivation = + libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {}; + in + mkDerivation (args // { + name = "${name}-${version}"; + inherit src; + + outputs = args.outputs or [ "out" ]; + + meta = { + platforms = lib.platforms.linux; + homepage = "http://www.kde.org"; + } // (args.meta or {}); + }); packages = self: with self; let callPackage = self.newScope { - kdeApp = import ./build-support/application.nix { - inherit lib kdeDerivation; - inherit debug srcs; - }; + inherit mkDerivation; + + # Team of maintainers assigned to the KDE PIM suite + kdepimTeam = with lib.maintainers; [ ttuegel vandenoever ]; }; in { kdelibs = callPackage ./kdelibs { inherit attica phonon; }; - akonadi = callPackage ./akonadi.nix {}; + akonadi = callPackage ./akonadi {}; + akonadi-calendar = callPackage ./akonadi-calendar.nix {}; akonadi-contacts = callPackage ./akonadi-contacts.nix {}; akonadi-mime = callPackage ./akonadi-mime.nix {}; - ark = callPackage ./ark/default.nix {}; + akonadi-notes = callPackage ./akonadi-notes.nix {}; + akonadi-search = callPackage ./akonadi-search.nix {}; + akonadiconsole = callPackage ./akonadiconsole.nix {}; + akregator = callPackage ./akregator.nix {}; + ark = callPackage ./ark {}; baloo-widgets = callPackage ./baloo-widgets.nix {}; + calendarsupport = callPackage ./calendarsupport.nix {}; dolphin = callPackage ./dolphin.nix {}; dolphin-plugins = callPackage ./dolphin-plugins.nix {}; + eventviews = callPackage ./eventviews.nix {}; ffmpegthumbs = callPackage ./ffmpegthumbs.nix { }; filelight = callPackage ./filelight.nix {}; + grantleetheme = callPackage ./grantleetheme {}; gwenview = callPackage ./gwenview.nix {}; + incidenceeditor = callPackage ./incidenceeditor.nix {}; + k3b = callPackage ./k3b.nix {}; + kaddressbook = callPackage ./kaddressbook.nix {}; + kalarmcal = callPackage ./kalarmcal.nix {}; kate = callPackage ./kate.nix {}; - kdenlive = callPackage ./kdenlive.nix {}; - kcalc = callPackage ./kcalc.nix {}; kcachegrind = callPackage ./kcachegrind.nix {}; + kcalc = callPackage ./kcalc.nix {}; + kcalcore = callPackage ./kcalcore.nix {}; + kcalutils = callPackage ./kcalutils.nix {}; kcolorchooser = callPackage ./kcolorchooser.nix {}; kcontacts = callPackage ./kcontacts.nix {}; + kdav = callPackage ./kdav.nix {}; kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {}; kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {}; kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {}; + kdenlive = callPackage ./kdenlive.nix {}; + kdepim-runtime = callPackage ./kdepim-runtime.nix {}; + kdepim-apps-libs = callPackage ./kdepim-apps-libs {}; kdf = callPackage ./kdf.nix {}; + keditbookmarks = callPackage ./keditbookmarks.nix {}; kgpg = callPackage ./kgpg.nix {}; khelpcenter = callPackage ./khelpcenter.nix {}; + kholidays = callPackage ./kholidays.nix {}; + kidentitymanagement = callPackage ./kidentitymanagement.nix {}; kig = callPackage ./kig.nix {}; + kimap = callPackage ./kimap.nix {}; kio-extras = callPackage ./kio-extras.nix {}; + kldap = callPackage ./kldap.nix {}; + kleopatra = callPackage ./kleopatra.nix {}; + kmail = callPackage ./kmail.nix {}; + kmail-account-wizard = callPackage ./kmail-account-wizard.nix {}; + kmailtransport = callPackage ./kmailtransport.nix {}; + kmbox = callPackage ./kmbox.nix {}; kmime = callPackage ./kmime.nix {}; kmix = callPackage ./kmix.nix {}; kolourpaint = callPackage ./kolourpaint.nix {}; kompare = callPackage ./kompare.nix {}; konsole = callPackage ./konsole.nix {}; + kontact = callPackage ./kontact.nix {}; + kontactinterface = callPackage ./kontactinterface.nix {}; + korganizer = callPackage ./korganizer.nix {}; + kpimtextedit = callPackage ./kpimtextedit.nix {}; + kqtquickcharts = callPackage ./kqtquickcharts.nix {}; + krdc = callPackage ./krdc.nix {}; krfb = callPackage ./krfb.nix {}; + ktnef = callPackage ./ktnef.nix {}; kwalletmanager = callPackage ./kwalletmanager.nix {}; + libgravatar = callPackage ./libgravatar.nix {}; + libkcddb = callPackage ./libkcddb.nix {}; libkdcraw = callPackage ./libkdcraw.nix {}; + libkdepim = callPackage ./libkdepim.nix {}; libkexiv2 = callPackage ./libkexiv2.nix {}; libkipi = callPackage ./libkipi.nix {}; + libkleo = callPackage ./libkleo.nix {}; libkomparediff2 = callPackage ./libkomparediff2.nix {}; + libksane = callPackage ./libksane.nix {}; + libksieve = callPackage ./libksieve.nix {}; + mailcommon = callPackage ./mailcommon.nix {}; + mailimporter = callPackage ./mailimporter.nix {}; marble = callPackage ./marble.nix {}; + mbox-importer = callPackage ./mbox-importer.nix {}; + messagelib = callPackage ./messagelib.nix {}; + minuet = callPackage ./minuet.nix {}; okteta = callPackage ./okteta.nix {}; okular = callPackage ./okular.nix {}; + pimcommon = callPackage ./pimcommon.nix {}; + pim-data-exporter = callPackage ./pim-data-exporter.nix {}; + pim-sieve-editor = callPackage ./pim-sieve-editor.nix {}; print-manager = callPackage ./print-manager.nix {}; spectacle = callPackage ./spectacle.nix {}; + syndication = callPackage ./syndication.nix {}; l10n = recurseIntoAttrs (import ./l10n.nix { inherit callPackage lib recurseIntoAttrs; }); }; diff --git a/pkgs/applications/kde/dolphin-plugins.nix b/pkgs/applications/kde/dolphin-plugins.nix index 7f436c7a55a..5580952f40a 100644 --- a/pkgs/applications/kde/dolphin-plugins.nix +++ b/pkgs/applications/kde/dolphin-plugins.nix @@ -1,10 +1,10 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, kdoctools, dolphin, kdelibs4support, ki18n, kio, kxmlgui }: -kdeApp { +mkDerivation { name = "dolphin-plugins"; meta = { license = [ lib.licenses.gpl2 ]; @@ -12,6 +12,7 @@ kdeApp { }; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; propagatedBuildInputs = [ - dolphin.unwrapped kdelibs4support ki18n kio kxmlgui + dolphin kdelibs4support ki18n kio kxmlgui ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix index 6515c230c28..2570e37bf2c 100644 --- a/pkgs/applications/kde/dolphin.nix +++ b/pkgs/applications/kde/dolphin.nix @@ -1,32 +1,24 @@ { - kdeApp, lib, kdeWrapper, - extra-cmake-modules, kdoctools, makeQtWrapper, + mkDerivation, lib, + extra-cmake-modules, kdoctools, baloo, baloo-widgets, dolphin-plugins, kactivities, kbookmarks, kcmutils, kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons, kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications, konsole, kparts, ktexteditor, kwindowsystem, phonon, solid }: -let - unwrapped = - kdeApp { - name = "dolphin"; - meta = { - license = with lib.licenses; [ gpl2 fdl12 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ]; - propagatedBuildInputs = [ - baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig - kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes - kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem - phonon solid - ]; - }; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/dolphin" ]; - paths = [ dolphin-plugins konsole.unwrapped ]; +mkDerivation { + name = "dolphin"; + meta = { + license = with lib.licenses; [ gpl2 fdl12 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig + kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes + kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem + phonon solid + ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/eventviews.nix b/pkgs/applications/kde/eventviews.nix new file mode 100644 index 00000000000..cc1e83f6581 --- /dev/null +++ b/pkgs/applications/kde/eventviews.nix @@ -0,0 +1,18 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, calendarsupport, kcalutils, kdiagram, libkdepim, qtbase, qttools, +}: + +mkDerivation { + name = "eventviews"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi calendarsupport kcalutils kdiagram libkdepim qtbase qttools + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh index c31b8a86583..b4f190de136 100644 --- a/pkgs/applications/kde/fetch.sh +++ b/pkgs/applications/kde/fetch.sh @@ -1 +1 @@ -WGET_ARGS=( http://download.kde.org/stable/applications/16.12.3/ -A '*.tar.xz' ) +WGET_ARGS=( https://download.kde.org/stable/applications/17.08.2/ -A '*.tar.xz' ) diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix index 5dde6d8a64e..aa03425f36a 100644 --- a/pkgs/applications/kde/ffmpegthumbs.nix +++ b/pkgs/applications/kde/ffmpegthumbs.nix @@ -1,15 +1,15 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, ffmpeg, kio }: -kdeApp { +mkDerivation { name = "ffmpegthumbs"; meta = { license = with lib.licenses; [ gpl2 bsd3 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules ]; - propagatedBuildInputs = [ ffmpeg kio ]; + buildInputs = [ ffmpeg kio ]; } diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix index 71ab51320ab..a3be5be7f0a 100644 --- a/pkgs/applications/kde/filelight.nix +++ b/pkgs/applications/kde/filelight.nix @@ -1,24 +1,18 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, kio, kparts, kxmlgui, qtscript, solid }: -let - unwrapped = - kdeApp { - name = "filelight"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ fridh vcunat ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kio kparts kxmlgui qtscript solid - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/filelight" ]; +mkDerivation { + name = "filelight"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ fridh vcunat ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + kio kparts kxmlgui qtscript solid + ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/grantleetheme/default.nix b/pkgs/applications/kde/grantleetheme/default.nix new file mode 100644 index 00000000000..5035685c64f --- /dev/null +++ b/pkgs/applications/kde/grantleetheme/default.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, copyPathsToStore, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + grantlee5, ki18n, kiconthemes, knewstuff, kservice, kxmlgui, qtbase, +}: + +mkDerivation { + name = "grantleetheme"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + output = [ "out" "dev" ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + grantlee5 ki18n kiconthemes knewstuff kservice kxmlgui qtbase + ]; + propagatedBuildInputs = [ grantlee5 kiconthemes knewstuff ]; +} diff --git a/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch b/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch new file mode 100644 index 00000000000..6275bb84c17 --- /dev/null +++ b/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch @@ -0,0 +1,155 @@ +Index: grantleetheme-17.04.0/src/grantleetheme_p.h +=================================================================== +--- grantleetheme-17.04.0.orig/src/grantleetheme_p.h ++++ grantleetheme-17.04.0/src/grantleetheme_p.h +@@ -47,7 +47,7 @@ public: + QString description; + QString name; + QString dirName; +- QString absolutePath; ++ QStringList absolutePaths; + QString author; + QString email; + +Index: grantleetheme-17.04.0/src/grantleetheme.cpp +=================================================================== +--- grantleetheme-17.04.0.orig/src/grantleetheme.cpp ++++ grantleetheme-17.04.0/src/grantleetheme.cpp +@@ -45,7 +45,7 @@ ThemePrivate::ThemePrivate(const ThemePr + , description(other.description) + , name(other.name) + , dirName(other.dirName) +- , absolutePath(other.absolutePath) ++ , absolutePaths(other.absolutePaths) + , author(other.author) + , email(other.email) + , loader(other.loader) +@@ -63,12 +63,15 @@ void ThemePrivate::setupEngine() + + void ThemePrivate::setupLoader() + { +- // Get the parent dir with themes, we set the theme directory separately +- QDir dir(absolutePath); +- dir.cdUp(); ++ QStringList templateDirs; ++ for (const QString& path : absolutePaths) { ++ QDir dir(path); ++ dir.cdUp(); ++ templateDirs << dir.absolutePath(); ++ } + + loader = QSharedPointer::create(); +- loader->setTemplateDirs({ dir.absolutePath() }); ++ loader->setTemplateDirs(templateDirs); + loader->setTheme(dirName); + + if (!sEngine) { +@@ -122,7 +123,7 @@ Theme::Theme(const QString &themePath, c + KConfigGroup group(&config, QStringLiteral("Desktop Entry")); + if (group.isValid()) { + d->dirName = dirName; +- d->absolutePath = themePath; ++ d->absolutePaths = QStringList(themePath); + d->name = group.readEntry("Name", QString()); + d->description = group.readEntry("Description", QString()); + d->themeFileName = group.readEntry("FileName", QString()); +@@ -141,7 +142,7 @@ Theme::~Theme() + + bool Theme::operator==(const Theme &other) const + { +- return isValid() && other.isValid() && d->absolutePath == other.absolutePath(); ++ return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths(); + } + + Theme &Theme::operator=(const Theme &other) +@@ -185,7 +186,12 @@ QString Theme::dirName() const + + QString Theme::absolutePath() const + { +- return d->absolutePath; ++ return d->absolutePaths.first(); ++} ++ ++QStringList Theme::absolutePaths() const ++{ ++ return d->absolutePaths; + } + + QString Theme::author() const +@@ -224,6 +230,13 @@ QString Theme::render(const QString &tem + return result; + } + ++void Theme::addThemeDir(const QString& path) ++{ ++ QDir dir(path); ++ dir.cdUp(); ++ d->absolutePaths << dir.absolutePath(); ++} ++ + void Theme::addPluginPath(const QString &path) + { + if (!ThemePrivate::sEngine) { +Index: grantleetheme-17.04.0/src/grantleetheme.h +=================================================================== +--- grantleetheme-17.04.0.orig/src/grantleetheme.h ++++ grantleetheme-17.04.0/src/grantleetheme.h +@@ -50,11 +50,14 @@ public: + QStringList displayExtraVariables() const; + QString dirName() const; + QString absolutePath() const; ++ QStringList absolutePaths() const; + QString author() const; + QString authorEmail() const; + + QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray()); + ++ void addThemeDir(const QString&); ++ + static void addPluginPath(const QString &path); + + private: +Index: grantleetheme-17.04.0/src/grantleethememanager.cpp +=================================================================== +--- grantleetheme-17.04.0.orig/src/grantleethememanager.cpp ++++ grantleetheme-17.04.0/src/grantleethememanager.cpp +@@ -142,25 +142,18 @@ public: + + for (const QString &directory : qAsConst(themesDirectories)) { + QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot); +- QStringList alreadyLoadedThemeName; + while (dirIt.hasNext()) { + dirIt.next(); + const QString dirName = dirIt.fileName(); + GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); + if (theme.isValid()) { + QString themeName = theme.name(); +- if (alreadyLoadedThemeName.contains(themeName)) { +- int i = 2; +- const QString originalName(theme.name()); +- while (alreadyLoadedThemeName.contains(themeName)) { +- themeName = originalName + QStringLiteral(" (%1)").arg(i); +- ++i; +- } +- theme.d->name = themeName; ++ QMap::iterator i = themes.find(dirName); ++ if (i != themes.end()) { ++ i.value().addThemeDir(dirIt.filePath()); ++ } else { ++ themes.insert(dirName, theme); + } +- alreadyLoadedThemeName << themeName; +- themes.insert(dirName, theme); +- //qDebug()<<" theme.name()"<addDir(directory); +@@ -374,7 +367,7 @@ QString ThemeManager::pathFromThemes(con + GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); + if (theme.isValid()) { + if (dirName == themeName) { +- return theme.absolutePath(); ++ return theme.absolutePaths().first(); + } + } + } diff --git a/pkgs/applications/kde/grantleetheme/series b/pkgs/applications/kde/grantleetheme/series new file mode 100644 index 00000000000..9095599ea56 --- /dev/null +++ b/pkgs/applications/kde/grantleetheme/series @@ -0,0 +1 @@ +grantlee-merge-theme-dirs.patch diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix index 0fa06ed0fbe..3d03d1dea3e 100644 --- a/pkgs/applications/kde/gwenview.nix +++ b/pkgs/applications/kde/gwenview.nix @@ -1,27 +1,21 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - baloo, exiv2, kactivities, kdelibs4support, kio, kipi-plugins, lcms2, - libkdcraw, libkipi, phonon, qtimageformats, qtsvg, qtx11extras + exiv2, lcms2, + baloo, kactivities, kdelibs4support, kio, kipi-plugins, libkdcraw, libkipi, + phonon, qtimageformats, qtsvg, qtx11extras, kinit }: -let - unwrapped = - kdeApp { - name = "gwenview"; - meta = { - license = with lib.licenses; [ gpl2 fdl12 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - baloo kactivities kdelibs4support kio exiv2 lcms2 libkdcraw - libkipi phonon qtimageformats qtsvg qtx11extras - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/gwenview" ]; - paths = [ kipi-plugins ]; +mkDerivation { + name = "gwenview"; + meta = { + license = with lib.licenses; [ gpl2 fdl12 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + baloo exiv2 kactivities kdelibs4support kio libkdcraw lcms2 libkipi phonon + qtimageformats qtsvg qtx11extras + ]; + propagatedUserEnvPkgs = [ kipi-plugins libkipi (lib.getBin kinit) ]; } diff --git a/pkgs/applications/kde/incidenceeditor.nix b/pkgs/applications/kde/incidenceeditor.nix new file mode 100644 index 00000000000..8224b98253b --- /dev/null +++ b/pkgs/applications/kde/incidenceeditor.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs, + kdiagram, kldap, kmime, qtbase, +}: + +mkDerivation { + name = "incidenceeditor"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram + kldap kmime qtbase + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix new file mode 100644 index 00000000000..b032de84879 --- /dev/null +++ b/pkgs/applications/kde/k3b.nix @@ -0,0 +1,42 @@ +{ mkDerivation, lib +, extra-cmake-modules, kdoctools, makeWrapper, shared_mime_info +, qtwebkit +, libkcddb, karchive, kcmutils, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui +, flac, lame, libmad, libmpcdec, libvorbis +, libsamplerate, libsndfile, taglib +, cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager +, ffmpeg, libmusicbrainz3, normalize, sox, transcode, kinit +}: + +mkDerivation { + name = "k3b"; + meta = with lib; { + license = with licenses; [ gpl2Plus ]; + maintainers = with maintainers; [ sander phreedom ]; + platforms = platforms.linux; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ]; + propagatedBuildInputs = [ + # qt + qtwebkit + # kde + libkcddb karchive kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui + # formats + flac lame libmad libmpcdec libvorbis + # sound utilities + libsamplerate libsndfile taglib + # cd/dvd + cdparanoia libdvdcss libdvdread + # others + ffmpeg libmusicbrainz3 shared_mime_info + ]; + propagatedUserEnvPkgs = [ (lib.getBin kinit) ]; + postFixup = + let k3bPath = lib.makeBinPath [ + cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode + vcdimager + ]; + in '' + wrapProgram "$out/bin/k3b" --prefix PATH : "${k3bPath}" + ''; +} diff --git a/pkgs/applications/kde/kaddressbook.nix b/pkgs/applications/kde/kaddressbook.nix new file mode 100644 index 00000000000..b4b0450e78b --- /dev/null +++ b/pkgs/applications/kde/kaddressbook.nix @@ -0,0 +1,22 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion, + kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts, + kpimtextedit, kxmlgui, libkdepim, libkleo, mailcommon, pimcommon, prison, + qgpgme, qtbase, +}: + +mkDerivation { + name = "kaddressbook"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash + kdbusaddons kdepim-apps-libs ki18n kontactinterface kparts kpimtextedit + kxmlgui libkdepim libkleo mailcommon pimcommon prison qgpgme qtbase + ]; +} diff --git a/pkgs/applications/kde/kalarmcal.nix b/pkgs/applications/kde/kalarmcal.nix new file mode 100644 index 00000000000..f2fb6f4d8bb --- /dev/null +++ b/pkgs/applications/kde/kalarmcal.nix @@ -0,0 +1,19 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, kcalcore, kdelibs4support, kholidays, kidentitymanagement, + kpimtextedit, +}: + +mkDerivation { + name = "kalarmcal"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + akonadi kcalcore kdelibs4support kholidays kidentitymanagement kpimtextedit + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix index cd320afd8d3..e6b4f6b6bdd 100644 --- a/pkgs/applications/kde/kate.nix +++ b/pkgs/applications/kde/kate.nix @@ -1,5 +1,5 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, kactivities, kconfig, kcrash, kdbusaddons, kguiaddons, kiconthemes, ki18n, kinit, kio, kitemmodels, kjobwidgets, knewstuff, knotifications, konsole, @@ -7,26 +7,19 @@ plasma-framework, qtscript, threadweaver }: -let - unwrapped = - kdeApp { - name = "kate"; - meta = { - license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kactivities ki18n kio ktexteditor kwindowsystem plasma-framework - qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts - kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver - knewstuff libgit2 - ]; - }; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/kate" "bin/kwrite" ]; - paths = [ konsole.unwrapped ]; +mkDerivation { + name = "kate"; + meta = { + license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ libgit2 ]; + propagatedBuildInputs = [ + kactivities ki18n kio ktexteditor kwindowsystem plasma-framework + qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts + kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver + knewstuff + ]; + propagatedUserEnvPkgs = [ konsole ]; } diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix index 2f270d24224..91faaef623a 100644 --- a/pkgs/applications/kde/kcachegrind.nix +++ b/pkgs/applications/kde/kcachegrind.nix @@ -1,27 +1,15 @@ { - kdeApp, lib, kdeWrapper, - cmake, automoc4, - kdelibs, perl, python, php + mkDerivation, lib, + extra-cmake-modules, kdoctools, + karchive, ki18n, kio, perl, python, php, qttools, }: -kdeWrapper { - unwrapped = kdeApp { - name = "kcachegrind"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ orivej ]; - }; - nativeBuildInputs = [ cmake automoc4 ]; - buildInputs = [ kdelibs perl python php ]; - enableParallelBuilding = true; +mkDerivation { + name = "kcachegrind"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ orivej ]; }; - - targets = [ - "bin/kcachegrind" - "bin/dprof2calltree" # perl - "bin/hotshot2calltree" # python - "bin/memprof2calltree" # perl - "bin/op2calltree" # perl - "bin/pprof2calltree" # php - ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ karchive ki18n kio perl python php qttools ]; } diff --git a/pkgs/applications/kde/kcalc.nix b/pkgs/applications/kde/kcalc.nix index 8ec7591460e..2d902c220af 100644 --- a/pkgs/applications/kde/kcalc.nix +++ b/pkgs/applications/kde/kcalc.nix @@ -1,24 +1,18 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kconfig, kconfigwidgets, kguiaddons, kinit, knotifications, gmp + gmp, kconfig, kconfigwidgets, kguiaddons, ki18n, kinit, knotifications, + kxmlgui, }: -let - unwrapped = - kdeApp { - name = "kcalc"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = [ lib.maintainers.fridh ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - gmp kconfig kconfigwidgets kguiaddons kinit knotifications - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kcalc" ]; +mkDerivation { + name = "kcalc"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = [ lib.maintainers.fridh ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + gmp kconfig kconfigwidgets kguiaddons ki18n kinit knotifications kxmlgui + ]; } diff --git a/pkgs/applications/kde/kcalcore.nix b/pkgs/applications/kde/kcalcore.nix new file mode 100644 index 00000000000..4ac9c9b925a --- /dev/null +++ b/pkgs/applications/kde/kcalcore.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kdelibs4support, libical +}: + +mkDerivation { + name = "kcalcore"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ kdelibs4support libical ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kcalutils.nix b/pkgs/applications/kde/kcalutils.nix new file mode 100644 index 00000000000..3f6821e08ea --- /dev/null +++ b/pkgs/applications/kde/kcalutils.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + grantlee5, kcalcore, kconfig, kontactinterface, kcoreaddons, kdelibs4support, + kidentitymanagement, kpimtextedit, +}: + +mkDerivation { + name = "kcalutils"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + grantlee5 kcalcore kconfig kontactinterface kcoreaddons kdelibs4support + kidentitymanagement kpimtextedit + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kcolorchooser.nix b/pkgs/applications/kde/kcolorchooser.nix index c1266009b68..45b32fbe832 100644 --- a/pkgs/applications/kde/kcolorchooser.nix +++ b/pkgs/applications/kde/kcolorchooser.nix @@ -1,21 +1,15 @@ { - kdeApp, lib, kdeWrapper, - extra-cmake-modules, ki18n, kwidgetsaddons, kxmlgui + mkDerivation, lib, + extra-cmake-modules, + ki18n, kwidgetsaddons, kxmlgui }: -let - unwrapped = - kdeApp { - name = "kcolorchooser"; - meta = { - license = with lib.licenses; [ mit ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules ]; - propagatedBuildInputs = [ ki18n kwidgetsaddons kxmlgui ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kcolorchooser" ]; +mkDerivation { + name = "kcolorchooser"; + meta = { + license = with lib.licenses; [ mit ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ ki18n kwidgetsaddons kxmlgui ]; } diff --git a/pkgs/applications/kde/kcontacts.nix b/pkgs/applications/kde/kcontacts.nix index 5143df60ef4..12b3198a26b 100644 --- a/pkgs/applications/kde/kcontacts.nix +++ b/pkgs/applications/kde/kcontacts.nix @@ -1,15 +1,16 @@ { - kdeApp, lib, - extra-cmake-modules, ki18n, - kcoreaddons, kconfig, kcodecs + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, + kcoreaddons, kconfig, kcodecs, ki18n, qtbase, }: -kdeApp { +mkDerivation { name = "kcontacts"; meta = { license = [ lib.licenses.lgpl21 ]; - maintainers = [ lib.maintainers.ttuegel ]; + maintainers = kdepimTeam; }; - nativeBuildInputs = [ extra-cmake-modules ki18n ]; - buildInputs = [ kcoreaddons kconfig kcodecs ]; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kcoreaddons kconfig kcodecs ki18n qtbase ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/kdav.nix b/pkgs/applications/kde/kdav.nix new file mode 100644 index 00000000000..800c92511de --- /dev/null +++ b/pkgs/applications/kde/kdav.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kcoreaddons, kio, qtxmlpatterns, +}: + +mkDerivation { + name = "kdav"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kcoreaddons kio qtxmlpatterns ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kde-locale-4.nix b/pkgs/applications/kde/kde-locale-4.nix index e83794c60d8..daf0a55b19e 100644 --- a/pkgs/applications/kde/kde-locale-4.nix +++ b/pkgs/applications/kde/kde-locale-4.nix @@ -1,8 +1,8 @@ name: args: -{ kdeApp, automoc4, cmake, gettext, kdelibs, perl }: +{ mkDerivation, automoc4, cmake, gettext, kdelibs, perl }: -kdeApp (args // { +mkDerivation (args // { sname = "kde-l10n-${name}"; name = "kde-l10n-${name}-qt4"; diff --git a/pkgs/applications/kde/kde-locale-5.nix b/pkgs/applications/kde/kde-locale-5.nix deleted file mode 100644 index 772ebe37e44..00000000000 --- a/pkgs/applications/kde/kde-locale-5.nix +++ /dev/null @@ -1,24 +0,0 @@ -name: args: - -{ kdeApp, cmake, extra-cmake-modules, gettext, kdoctools }: - -kdeApp (args // { - sname = "kde-l10n-${name}"; - name = "kde-l10n-${name}-qt5"; - - outputs = [ "out" ]; - - nativeBuildInputs = - [ cmake extra-cmake-modules gettext kdoctools ] - ++ (args.nativeBuildInputs or []); - - preConfigure = '' - sed -e 's/add_subdirectory(4)//' -i CMakeLists.txt - ${args.preConfigure or ""} - ''; - - preFixup = '' - propagatedBuildInputs= - propagatedNativeBuildInputs= - ''; -}) diff --git a/pkgs/applications/kde/kdegraphics-mobipocket.nix b/pkgs/applications/kde/kdegraphics-mobipocket.nix index e50c92f8884..e5f5b88ec44 100644 --- a/pkgs/applications/kde/kdegraphics-mobipocket.nix +++ b/pkgs/applications/kde/kdegraphics-mobipocket.nix @@ -1,10 +1,10 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, kio }: -kdeApp { +mkDerivation { name = "kdegraphics-mobipocket"; meta = { license = [ lib.licenses.gpl2Plus ]; @@ -12,4 +12,5 @@ kdeApp { }; nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ kio ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/pkgs/applications/kde/kdegraphics-thumbnailers.nix index 5aa974a9c96..2e43e946d7f 100644 --- a/pkgs/applications/kde/kdegraphics-thumbnailers.nix +++ b/pkgs/applications/kde/kdegraphics-thumbnailers.nix @@ -1,14 +1,14 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, kio, libkexiv2, libkdcraw }: -kdeApp { +mkDerivation { name = "kdegraphics-thumbnailers"; meta = { license = [ lib.licenses.lgpl21 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules ]; - propagatedBuildInputs = [ kio libkexiv2 libkdcraw ]; + buildInputs = [ kio libkexiv2 libkdcraw ]; } diff --git a/pkgs/applications/kde/kdelibs/default.nix b/pkgs/applications/kde/kdelibs/default.nix index 8adcd4d1b47..31e578e228a 100644 --- a/pkgs/applications/kde/kdelibs/default.nix +++ b/pkgs/applications/kde/kdelibs/default.nix @@ -1,12 +1,12 @@ { - kdeApp, lib, + mkDerivation, lib, automoc4, bison, cmake, flex, libxslt, perl, pkgconfig, shared_mime_info, attica, attr, avahi, docbook_xml_dtd_42, docbook_xsl, giflib, ilmbase, libdbusmenu_qt, libjpeg, libxml2, phonon, polkit_qt4, qca2, qt4, shared_desktop_ontologies, soprano, strigi, udev, xz, pcre, fetchpatch }: -kdeApp { +mkDerivation { name = "kdelibs"; outputs = [ "out" "dev" ]; @@ -42,8 +42,8 @@ kdeApp { meta = { platforms = lib.platforms.linux; - homepage = "http://www.kde.org"; - licenses = with lib.licenses; [ gpl2 fdl12 lgpl21 ]; + homepage = http://www.kde.org; + license = with lib.licenses; [ gpl2 fdl12 lgpl21 ]; maintainers = [ lib.maintainers.ttuegel ]; }; } diff --git a/pkgs/applications/kde/kdenetwork-filesharing.nix b/pkgs/applications/kde/kdenetwork-filesharing.nix index 20f81563c3b..d251eb74f27 100644 --- a/pkgs/applications/kde/kdenetwork-filesharing.nix +++ b/pkgs/applications/kde/kdenetwork-filesharing.nix @@ -1,15 +1,15 @@ { - kdeApp, lib, + mkDerivation, lib, extra-cmake-modules, kdoctools, kcoreaddons, ki18n, kio, kwidgetsaddons, samba }: -kdeApp { +mkDerivation { name = "kdenetwork-filesharing"; meta = { license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ]; + buildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ]; } diff --git a/pkgs/applications/kde/kdenlive-cmake-concurrent-module.patch b/pkgs/applications/kde/kdenlive-cmake-concurrent-module.patch new file mode 100644 index 00000000000..ea2af2b0950 --- /dev/null +++ b/pkgs/applications/kde/kdenlive-cmake-concurrent-module.patch @@ -0,0 +1,12 @@ +diff -Naur kdenlive-17.04.1-upstream/CMakeLists.txt kdenlive-17.04.1/CMakeLists.txt +--- kdenlive-17.04.1-upstream/CMakeLists.txt 2017-06-10 00:06:44.773146595 -0400 ++++ kdenlive-17.04.1/CMakeLists.txt 2017-06-10 00:07:35.766596566 -0400 +@@ -79,7 +79,7 @@ + check_include_files(malloc.h HAVE_MALLOC_H) + check_include_files(pthread.h HAVE_PTHREAD_H) + +-find_package(Qt5 REQUIRED COMPONENTS Core DBus Widgets Script Svg Quick ) ++find_package(Qt5 REQUIRED COMPONENTS Core Concurrent DBus Widgets Script Svg Quick ) + find_package(Qt5 OPTIONAL_COMPONENTS WebKitWidgets QUIET) + + find_package(KF5 5.23.0 OPTIONAL_COMPONENTS XmlGui QUIET) diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix index 3c18772f039..854e346e290 100644 --- a/pkgs/applications/kde/kdenlive.nix +++ b/pkgs/applications/kde/kdenlive.nix @@ -1,5 +1,4 @@ -{ kdeApp -, kdeWrapper +{ mkDerivation , lib , extra-cmake-modules , kdoctools @@ -31,21 +30,24 @@ , qtquickcontrols }: -let -unwrapped = kdeApp { +mkDerivation { name = "kdenlive"; + patches = [ + ./kdenlive-cmake-concurrent-module.patch + ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ - qtscript kconfig kcrash + kdbusaddons + kfilemetadata kguiaddons + ki18n kiconthemes kinit - kdbusaddons knotifications knewstuff karchive @@ -53,30 +55,19 @@ unwrapped = kdeApp { kplotting ktextwidgets mlt + phonon-backend-gstreamer + qtquickcontrols + qtscript shared_mime_info libv4l ffmpeg ]; - propagatedBuildInputs = [ - kactivities - ki18n - kio - kio-extras - kwindowsystem - kfilemetadata - plasma-framework - phonon-backend-gstreamer - qtquickcontrols - ]; - enableParallelBuilding = true; + postPatch = + # Module Qt5::Concurrent must be included in `find_package` before it is used. + '' + sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|' + ''; meta = { license = with lib.licenses; [ gpl2Plus ]; }; -}; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/kdenlive" ]; - paths = [ kinit ]; } diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix new file mode 100644 index 00000000000..6189e8706db --- /dev/null +++ b/pkgs/applications/kde/kdepim-apps-libs/default.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, copyPathsToStore, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets, + kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison, +}: + +mkDerivation { + name = "kdepim-apps-libs"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets + kcontacts ki18n kiconthemes kio libkleo pimcommon prison + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch b/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch new file mode 100644 index 00000000000..02c369cc4ee --- /dev/null +++ b/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch @@ -0,0 +1,62 @@ +Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp +=================================================================== +--- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp ++++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp +@@ -50,9 +50,9 @@ public: + mTemplateLoader.clear(); + } + +- void changeGrantleePath(const QString &path) ++ void changeGrantleePath(const QStringList &paths) + { +- mTemplateLoader->setTemplateDirs(QStringList() << path); ++ mTemplateLoader->setTemplateDirs(paths); + mEngine->addTemplateLoader(mTemplateLoader); + + mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contactgroup.html")); +@@ -86,12 +86,12 @@ GrantleeContactGroupFormatter::~Grantlee + + void GrantleeContactGroupFormatter::setAbsoluteThemePath(const QString &path) + { +- d->changeGrantleePath(path); ++ d->changeGrantleePath(QStringList(path)); + } + + void GrantleeContactGroupFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme) + { +- d->changeGrantleePath(theme.absolutePath()); ++ d->changeGrantleePath(theme.absolutePaths()); + } + + inline static void setHashField(QVariantHash &hash, const QString &name, const QString &value) +Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp +=================================================================== +--- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp ++++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp +@@ -74,9 +74,9 @@ public: + mTemplateLoader.clear(); + } + +- void changeGrantleePath(const QString &path) ++ void changeGrantleePath(const QStringList &paths) + { +- mTemplateLoader->setTemplateDirs(QStringList() << path); ++ mTemplateLoader->setTemplateDirs(paths); + mEngine->addTemplateLoader(mTemplateLoader); + + mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contact.html")); +@@ -112,12 +112,12 @@ GrantleeContactFormatter::~GrantleeConta + + void GrantleeContactFormatter::setAbsoluteThemePath(const QString &path) + { +- d->changeGrantleePath(path); ++ d->changeGrantleePath(QStringList(path)); + } + + void GrantleeContactFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme) + { +- d->changeGrantleePath(theme.absolutePath()); ++ d->changeGrantleePath(theme.absolutePaths()); + } + + void GrantleeContactFormatter::setForceDisableQRCode(bool b) diff --git a/pkgs/applications/kde/kdepim-apps-libs/series b/pkgs/applications/kde/kdepim-apps-libs/series new file mode 100644 index 00000000000..1e8a52b55e9 --- /dev/null +++ b/pkgs/applications/kde/kdepim-apps-libs/series @@ -0,0 +1 @@ +kdepim-apps-libs-grantlee-merge-theme-dirs.patch diff --git a/pkgs/applications/kde/kdepim-runtime.nix b/pkgs/applications/kde/kdepim-runtime.nix new file mode 100644 index 00000000000..0fde861a023 --- /dev/null +++ b/pkgs/applications/kde/kdepim-runtime.nix @@ -0,0 +1,26 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + shared_mime_info, + akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes, + kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement, + kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig, + pimcommon, qtwebengine, +}: + +mkDerivation { + name = "kdepim-runtime"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools shared_mime_info ]; + buildInputs = [ + akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes + kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap + kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine + pimcommon + ]; + # Attempts to build some files before dependencies have been generated + enableParallelBuilding = false; +} diff --git a/pkgs/applications/kde/kdf.nix b/pkgs/applications/kde/kdf.nix index 97e74eb2e12..eef94fd5eb2 100644 --- a/pkgs/applications/kde/kdf.nix +++ b/pkgs/applications/kde/kdf.nix @@ -1,24 +1,15 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kcmutils + kcmutils, ki18n, kiconthemes, kio, knotifications, kxmlgui, }: -let - unwrapped = - kdeApp { - name = "kdf"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = [ lib.maintainers.peterhoeg ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kcmutils - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kdf" ]; +mkDerivation { + name = "kdf"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = [ lib.maintainers.peterhoeg ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kcmutils ki18n kiconthemes kio knotifications kxmlgui ]; } diff --git a/pkgs/applications/kde/keditbookmarks.nix b/pkgs/applications/kde/keditbookmarks.nix new file mode 100644 index 00000000000..57741c03ad5 --- /dev/null +++ b/pkgs/applications/kde/keditbookmarks.nix @@ -0,0 +1,17 @@ +{ + mkDerivation, lib, + extra-cmake-modules, kdoctools, + kio, kparts, kwindowsystem +}: + +mkDerivation { + name = "keditbookmarks"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kio kparts kwindowsystem ]; + meta = with lib; { + homepage = http://www.kde.org; + license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix index c4428598229..33813f376a5 100644 --- a/pkgs/applications/kde/kgpg.nix +++ b/pkgs/applications/kde/kgpg.nix @@ -1,19 +1,22 @@ { - kdeApp, lib, - extra-cmake-modules, kdoctools, ki18n, - akonadi-contacts, gpgme, karchive, kcodecs, kcontacts, kcoreaddons, kcrash, - kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice, - ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem + mkDerivation, lib, + extra-cmake-modules, kdoctools, ki18n, makeWrapper, + akonadi-contacts, gnupg1, karchive, kcodecs, kcontacts, kcoreaddons, + kcrash, kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice, + ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem, qgpgme, }: -kdeApp { +mkDerivation { name = "kgpg"; - nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ]; buildInputs = [ - akonadi-contacts gpgme karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons - kiconthemes kjobwidgets kio knotifications kservice ktextwidgets kxmlgui - kwidgetsaddons kwindowsystem + akonadi-contacts gnupg1 karchive kcodecs kcontacts kcoreaddons kcrash + kdbusaddons ki18n kiconthemes kjobwidgets kio knotifications kservice + ktextwidgets kxmlgui kwidgetsaddons kwindowsystem qgpgme ]; + postFixup = '' + wrapProgram "$out/bin/kgpg" --prefix PATH : "${lib.makeBinPath [ gnupg1 ]}" + ''; meta = { license = [ lib.licenses.gpl2 ]; maintainers = [ lib.maintainers.ttuegel ]; diff --git a/pkgs/applications/kde/khelpcenter.nix b/pkgs/applications/kde/khelpcenter.nix index 0579faa72a0..69b629bbeb9 100644 --- a/pkgs/applications/kde/khelpcenter.nix +++ b/pkgs/applications/kde/khelpcenter.nix @@ -1,22 +1,15 @@ { - kdeApp, kdeWrapper, + mkDerivation, extra-cmake-modules, kdoctools, - grantlee, kconfig, kcoreaddons, kdbusaddons, ki18n, kinit, kcmutils, - kdelibs4support, khtml, kservice, xapian + grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, kdelibs4support, ki18n, + kinit, khtml, kservice, xapian }: -let - unwrapped = - kdeApp { - name = "khelpcenter"; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - buildInputs = [ - grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons - kinit kcmutils kservice xapian - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/khelpcenter" ]; +mkDerivation { + name = "khelpcenter"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + grantlee kcmutils kconfig kcoreaddons kdbusaddons kdelibs4support khtml + ki18n kinit kservice xapian + ]; } diff --git a/pkgs/applications/kde/kholidays.nix b/pkgs/applications/kde/kholidays.nix new file mode 100644 index 00000000000..352bec09492 --- /dev/null +++ b/pkgs/applications/kde/kholidays.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + qtbase, qtdeclarative, qttools, +}: + +mkDerivation { + name = "kholidays"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ qtbase qtdeclarative qttools ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kidentitymanagement.nix b/pkgs/applications/kde/kidentitymanagement.nix new file mode 100644 index 00000000000..92fcc238779 --- /dev/null +++ b/pkgs/applications/kde/kidentitymanagement.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kcompletion, kcoreaddons, kemoticons, kiconthemes, kio, kpimtextedit, + ktextwidgets, kxmlgui +}: + +mkDerivation { + name = "kidentitymanagement"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kcompletion kemoticons kiconthemes kio ktextwidgets kxmlgui + ]; + propagatedBuildInputs = [ kcoreaddons kpimtextedit ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kig.nix b/pkgs/applications/kde/kig.nix index 9f38079316f..7b858907795 100644 --- a/pkgs/applications/kde/kig.nix +++ b/pkgs/applications/kde/kig.nix @@ -1,26 +1,19 @@ { - kdeApp, lib, kdeWrapper - , extra-cmake-modules, kdoctools, kparts - , qtsvg, qtxmlpatterns, ktexteditor, boost + mkDerivation, lib, + extra-cmake-modules, kdoctools, + boost, karchive, kcrash, kiconthemes, kparts, ktexteditor, qtsvg, + qtxmlpatterns, }: -let - unwrapped = - kdeApp { - name = "kig"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ raskin ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - buildInputs = [ - kparts qtsvg qtxmlpatterns ktexteditor boost - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kig" ]; +mkDerivation { + name = "kig"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ raskin ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + boost karchive kcrash kiconthemes kparts ktexteditor qtsvg qtxmlpatterns + ]; } - diff --git a/pkgs/applications/kde/kimap.nix b/pkgs/applications/kde/kimap.nix new file mode 100644 index 00000000000..9e42c571058 --- /dev/null +++ b/pkgs/applications/kde/kimap.nix @@ -0,0 +1,17 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + cyrus_sasl, kcoreaddons, ki18n, kio, kmime +}: + +mkDerivation { + name = "kimap"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ ki18n kio ]; + propagatedBuildInputs = [ cyrus_sasl kcoreaddons kmime ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kio-extras.nix b/pkgs/applications/kde/kio-extras.nix index 77f795167fc..a78da6f48ca 100644 --- a/pkgs/applications/kde/kio-extras.nix +++ b/pkgs/applications/kde/kio-extras.nix @@ -1,19 +1,19 @@ { - kdeApp, lib, extra-cmake-modules, kdoctools, shared_mime_info, + mkDerivation, lib, extra-cmake-modules, kdoctools, shared_mime_info, exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kguiaddons, kdnssd, kiconthemes, ki18n, kio, khtml, kdelibs4support, kpty, libmtp, libssh, openexr, ilmbase, openslp, phonon, qtsvg, samba, solid }: -kdeApp { +mkDerivation { name = "kio-extras"; meta = { license = with lib.licenses; [ gpl2 lgpl21 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules kdoctools shared_mime_info ]; - propagatedBuildInputs = [ + buildInputs = [ exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons kdbusaddons kguiaddons kdnssd kiconthemes ki18n kio khtml kdelibs4support kpty libmtp libssh openexr openslp phonon qtsvg samba solid diff --git a/pkgs/applications/kde/kldap.nix b/pkgs/applications/kde/kldap.nix new file mode 100644 index 00000000000..14a8aea5e67 --- /dev/null +++ b/pkgs/applications/kde/kldap.nix @@ -0,0 +1,17 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + cyrus_sasl, ki18n, kio, kmbox, openldap +}: + +mkDerivation { + name = "kldap"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ ki18n kio kmbox ]; + propagatedBuildInputs = [ cyrus_sasl openldap ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kleopatra.nix b/pkgs/applications/kde/kleopatra.nix new file mode 100644 index 00000000000..a19fef9c9ed --- /dev/null +++ b/pkgs/applications/kde/kleopatra.nix @@ -0,0 +1,19 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + boost, gpgme, kcmutils, kdbusaddons, kiconthemes, kitemmodels, kmime, + knotifications, kwindowsystem, kxmlgui, libkleo +}: + +mkDerivation { + name = "kleopatra"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + boost gpgme kcmutils kdbusaddons kiconthemes kitemmodels kmime + knotifications kwindowsystem kxmlgui libkleo + ]; +} diff --git a/pkgs/applications/kde/kmail-account-wizard.nix b/pkgs/applications/kde/kmail-account-wizard.nix new file mode 100644 index 00000000000..9f3d5e2ea01 --- /dev/null +++ b/pkgs/applications/kde/kmail-account-wizard.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, shared_mime_info, + akonadi, kcmutils, kcrash, kdbusaddons, kidentitymanagement, kldap, + kmailtransport, knewstuff, knotifications, knotifyconfig, kparts, kross, ktexteditor, + kwallet, libkdepim, libkleo, pimcommon, qttools, +}: + +mkDerivation { + name = "kmail-account-wizard"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools shared_mime_info ]; + buildInputs = [ + akonadi kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport + knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim + libkleo pimcommon qttools + ]; +} diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix new file mode 100644 index 00000000000..acb200c5970 --- /dev/null +++ b/pkgs/applications/kde/kmail.nix @@ -0,0 +1,29 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig, + kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim, + kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap, + kmail-account-wizard, kmailtransport, knotifications, knotifyconfig, + kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet, + kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon, + messagelib, pim-sieve-editor, qtscript, qtwebengine, +}: + +mkDerivation { + name = "kmail"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig + kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n + kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim + knotifications knotifyconfig kontactinterface kparts kpty kservice + ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar + libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine + ]; + propagatedUserEnvPkgs = [ kdepim-runtime kwallet ]; +} diff --git a/pkgs/applications/kde/kmailtransport.nix b/pkgs/applications/kde/kmailtransport.nix new file mode 100644 index 00000000000..19ce2ba94f3 --- /dev/null +++ b/pkgs/applications/kde/kmailtransport.nix @@ -0,0 +1,17 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, cyrus_sasl, kcmutils, ki18n, kio, kmime, kwallet, +}: + +mkDerivation { + name = "kmailtransport"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ akonadi kcmutils ki18n kio ]; + propagatedBuildInputs = [ akonadi-mime cyrus_sasl kmime kwallet ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kmbox.nix b/pkgs/applications/kde/kmbox.nix new file mode 100644 index 00000000000..4b6b72a3734 --- /dev/null +++ b/pkgs/applications/kde/kmbox.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kmime, qtbase, +}: + +mkDerivation { + name = "kmbox"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kmime qtbase ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kmime.nix b/pkgs/applications/kde/kmime.nix index c17b3fdcd8e..b18a3f7fdc1 100644 --- a/pkgs/applications/kde/kmime.nix +++ b/pkgs/applications/kde/kmime.nix @@ -1,15 +1,16 @@ { - kdeApp, lib, + mkDerivation, lib, kdepimTeam, extra-cmake-modules, ki18n, - kcodecs + kcodecs, qtbase, }: -kdeApp { +mkDerivation { name = "kmime"; meta = { license = [ lib.licenses.lgpl21 ]; - maintainers = [ lib.maintainers.ttuegel ]; + maintainers = kdepimTeam; }; nativeBuildInputs = [ extra-cmake-modules ki18n ]; - buildInputs = [ kcodecs ]; + buildInputs = [ kcodecs qtbase ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/kmix.nix b/pkgs/applications/kde/kmix.nix index 6ab653cfce0..8010c57d927 100644 --- a/pkgs/applications/kde/kmix.nix +++ b/pkgs/applications/kde/kmix.nix @@ -1,30 +1,20 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, kglobalaccel, kxmlgui, kcoreaddons, kdelibs4support, plasma-framework, libpulseaudio, alsaLib, libcanberra_kde }: -let - unwrapped = - kdeApp { - name = "kmix"; - meta = { - license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; - maintainers = [ lib.maintainers.rongcuid ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - buildInputs = [ libpulseaudio alsaLib libcanberra_kde ]; - propagatedBuildInputs = [ - kglobalaccel kxmlgui kcoreaddons kdelibs4support - plasma-framework - ]; - cmakeFlags = [ - "-DKMIX_KF5_BUILD=1" - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kmix" ]; +mkDerivation { + name = "kmix"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = [ lib.maintainers.rongcuid ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + alsaLib kglobalaccel kxmlgui kcoreaddons kdelibs4support + libcanberra_kde libpulseaudio plasma-framework + ]; + cmakeFlags = [ "-DKMIX_KF5_BUILD=1" ]; } diff --git a/pkgs/applications/kde/kolourpaint.nix b/pkgs/applications/kde/kolourpaint.nix index 75d5b6fca65..4501324a871 100644 --- a/pkgs/applications/kde/kolourpaint.nix +++ b/pkgs/applications/kde/kolourpaint.nix @@ -1,28 +1,17 @@ { lib -, kdeApp -, kdeWrapper +, mkDerivation , extra-cmake-modules , kdoctools , kdelibs4support , libkexiv2 }: -let - unwrapped = - kdeApp { - name = "kolourpaint"; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kdelibs4support - libkexiv2 - ]; - - meta = { - maintainers = [ lib.maintainers.fridh ]; - license = with lib.licenses; [ gpl2 ]; - }; - }; -in kdeWrapper { - inherit unwrapped; - targets = ["bin/kolourpaint"]; -} \ No newline at end of file +mkDerivation { + name = "kolourpaint"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kdelibs4support libkexiv2 ]; + meta = { + maintainers = [ lib.maintainers.fridh ]; + license = with lib.licenses; [ gpl2 ]; + }; +} diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix index 660090dc84a..bbaad3a02f8 100644 --- a/pkgs/applications/kde/kompare.nix +++ b/pkgs/applications/kde/kompare.nix @@ -1,21 +1,15 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kparts, ktexteditor, kwidgetsaddons, libkomparediff2 + kiconthemes, kparts, ktexteditor, kwidgetsaddons, libkomparediff2 }: -let - unwrapped = - kdeApp { - name = "kompare"; - meta = { license = with lib.licenses; [ gpl2 ]; }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kparts ktexteditor kwidgetsaddons libkomparediff2 - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/kompare" ]; +mkDerivation { + name = "kompare"; + meta = { license = with lib.licenses; [ gpl2 ]; }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2 + ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix index 15b6373bdb0..5269941fa11 100644 --- a/pkgs/applications/kde/konsole.nix +++ b/pkgs/applications/kde/konsole.nix @@ -1,5 +1,5 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons, ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications, @@ -7,24 +7,17 @@ kwindowsystem, kxmlgui, qtscript }: -let - unwrapped = - kdeApp { - name = "konsole"; - meta = { - license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion - kconfig kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio - knotifications knotifyconfig kparts kpty kservice ktextwidgets - kwidgetsaddons kxmlgui - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/konsole" ]; +mkDerivation { + name = "konsole"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons kdelibs4support + kguiaddons ki18n kiconthemes kinit kio knotifications knotifyconfig kparts kpty + kservice ktextwidgets kwidgetsaddons kwindowsystem kxmlgui qtscript + ]; + propagatedUserEnvPkgs = [ (lib.getBin kinit) ]; } diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix new file mode 100644 index 00000000000..bb44762e65c --- /dev/null +++ b/pkgs/applications/kde/kontact.nix @@ -0,0 +1,23 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + qtwebengine, + kcmutils, kcrash, kdbusaddons, kwindowsystem, + akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit, + mailcommon, libkdepim +}: + +mkDerivation { + name = "kontact"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + qtwebengine + kcmutils kcrash kdbusaddons kwindowsystem + akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit + mailcommon libkdepim + ]; +} diff --git a/pkgs/applications/kde/kontactinterface.nix b/pkgs/applications/kde/kontactinterface.nix new file mode 100644 index 00000000000..f2df628f301 --- /dev/null +++ b/pkgs/applications/kde/kontactinterface.nix @@ -0,0 +1,17 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kiconthemes, kparts, kwindowsystem, kxmlgui +}: + +mkDerivation { + name = "kontactinterface"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kiconthemes kparts kwindowsystem kxmlgui + ]; +} diff --git a/pkgs/applications/kde/korganizer.nix b/pkgs/applications/kde/korganizer.nix new file mode 100644 index 00000000000..2f37a1bac0f --- /dev/null +++ b/pkgs/applications/kde/korganizer.nix @@ -0,0 +1,29 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + qtbase, qttools, + phonon, + knewstuff, + akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search, + calendarsupport, eventviews, incidenceeditor, kcalutils, kdepim-apps-libs, + kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface, + kpimtextedit, pimcommon, +}: + +mkDerivation { + name = "korganizer"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + qtbase qttools + phonon + knewstuff + akonadi-calendar akonadi-contacts akonadi-notes akonadi-search + calendarsupport eventviews incidenceeditor kcalutils kdepim-apps-libs + kholidays kidentitymanagement kldap kmailtransport kontactinterface + kpimtextedit pimcommon + ]; +} diff --git a/pkgs/applications/kde/kpimtextedit.nix b/pkgs/applications/kde/kpimtextedit.nix new file mode 100644 index 00000000000..17c960d1762 --- /dev/null +++ b/pkgs/applications/kde/kpimtextedit.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + grantlee5, kcodecs, kconfigwidgets, kemoticons, ki18n, kiconthemes, kio, + kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools, +}: + +mkDerivation { + name = "kpimtextedit"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + grantlee5 kcodecs kconfigwidgets kemoticons ki18n kiconthemes kio kdesignerplugin + sonnet syntax-highlighting qttools + ]; + propagatedBuildInputs = [ ktextwidgets ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kqtquickcharts.nix b/pkgs/applications/kde/kqtquickcharts.nix new file mode 100644 index 00000000000..2b3dc5313d9 --- /dev/null +++ b/pkgs/applications/kde/kqtquickcharts.nix @@ -0,0 +1,15 @@ +{ + mkDerivation, lib, + extra-cmake-modules, + qtbase, qtdeclarative, +}: + +mkDerivation { + name = "kqtquickcharts"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = [ lib.maintainers.ttuegel ]; + }; + nativeBuildInputs = [ extra-cmake-modules ]; + propagatedBuildInputs = [ qtbase qtdeclarative ]; +} diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix new file mode 100644 index 00000000000..87204c1fe9f --- /dev/null +++ b/pkgs/applications/kde/krdc.nix @@ -0,0 +1,25 @@ +{ + mkDerivation, lib, + extra-cmake-modules, kdoctools, makeWrapper, + kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons, + libvncserver, freerdp +}: + +mkDerivation { + name = "krdc"; + nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ]; + buildInputs = [ + kcmutils kcompletion kconfig kdnssd knotifyconfig kwallet kwidgetsaddons + freerdp libvncserver + ]; + postFixup = '' + wrapProgram $out/bin/krdc \ + --prefix PATH : ${lib.makeBinPath [ freerdp ]} + ''; + meta = with lib; { + homepage = http://www.kde.org; + license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix index ef5530be6fa..d6de2521533 100644 --- a/pkgs/applications/kde/krfb.nix +++ b/pkgs/applications/kde/krfb.nix @@ -1,22 +1,16 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kdelibs4support, kdnssd, libvncserver, libXtst + kdelibs4support, kdnssd, libvncserver, libXtst, qtx11extras }: -let - unwrapped = - kdeApp { - name = "krfb"; - meta = { - license = with lib.licenses; [ gpl2 fdl12 ]; - maintainers = with lib.maintainers; [ jerith666 ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ kdelibs4support kdnssd libvncserver libXtst ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/krfb" ]; +mkDerivation { + name = "krfb"; + meta = { + license = with lib.licenses; [ gpl2 fdl12 ]; + maintainers = with lib.maintainers; [ jerith666 ]; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ libvncserver libXtst qtx11extras ]; + propagatedBuildInputs = [ kdelibs4support kdnssd ]; } diff --git a/pkgs/applications/kde/ktnef.nix b/pkgs/applications/kde/ktnef.nix new file mode 100644 index 00000000000..b5a3834869d --- /dev/null +++ b/pkgs/applications/kde/ktnef.nix @@ -0,0 +1,18 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kcalcore, kcalutils, kcontacts, kdelibs4support +}: + +mkDerivation { + name = "ktnef"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + kcalcore kcalutils kcontacts kdelibs4support + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix index afa870d90a5..e39e7e5157d 100644 --- a/pkgs/applications/kde/kwalletmanager.nix +++ b/pkgs/applications/kde/kwalletmanager.nix @@ -1,6 +1,5 @@ { lib -, kdeApp -, kdeWrapper +, mkDerivation , extra-cmake-modules , kdoctools , kauth @@ -9,28 +8,19 @@ , kcoreaddons , kdbusaddons , kdelibs4support +, kwallet , kxmlgui }: -let - unwrapped = kdeApp { - name = "kwalletmanager"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ fridh ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kauth - kcmutils - kconfigwidgets - kcoreaddons - kdbusaddons - kdelibs4support - kxmlgui - ]; +mkDerivation { + name = "kwalletmanager"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ fridh ]; }; -in kdeWrapper { - inherit unwrapped; - targets = ["bin/kwalletmanager5"]; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support + kwallet kxmlgui + ]; } diff --git a/pkgs/applications/kde/l10n.nix b/pkgs/applications/kde/l10n.nix index 87e7a82ce46..10a8472d5a9 100644 --- a/pkgs/applications/kde/l10n.nix +++ b/pkgs/applications/kde/l10n.nix @@ -3,194 +3,147 @@ let kdeLocale4 = import ./kde-locale-4.nix; - kdeLocale5 = import ./kde-locale-5.nix; in lib.mapAttrs (name: attr: recurseIntoAttrs attr) { ar = { qt4 = callPackage (kdeLocale4 "ar" {}) {}; - qt5 = callPackage (kdeLocale5 "ar" {}) {}; }; bg = { qt4 = callPackage (kdeLocale4 "bg" {}) {}; - qt5 = callPackage (kdeLocale5 "bg" {}) {}; }; bs = { qt4 = callPackage (kdeLocale4 "bs" {}) {}; - qt5 = callPackage (kdeLocale5 "bs" {}) {}; }; ca = { qt4 = callPackage (kdeLocale4 "ca" {}) {}; - qt5 = callPackage (kdeLocale5 "ca" {}) {}; }; ca_valencia = { qt4 = callPackage (kdeLocale4 "ca_valencia" {}) {}; - qt5 = callPackage (kdeLocale5 "ca_valencia" {}) {}; }; cs = { qt4 = callPackage (kdeLocale4 "cs" {}) {}; - qt5 = callPackage (kdeLocale5 "cs" {}) {}; }; da = { qt4 = callPackage (kdeLocale4 "da" {}) {}; - qt5 = callPackage (kdeLocale5 "da" {}) {}; }; de = { qt4 = callPackage (kdeLocale4 "de" {}) {}; - qt5 = callPackage (kdeLocale5 "de" {}) {}; }; el = { qt4 = callPackage (kdeLocale4 "el" {}) {}; - qt5 = callPackage (kdeLocale5 "el" {}) {}; }; en_GB = { qt4 = callPackage (kdeLocale4 "en_GB" {}) {}; - qt5 = callPackage (kdeLocale5 "en_GB" {}) {}; }; eo = { qt4 = callPackage (kdeLocale4 "eo" {}) {}; - qt5 = callPackage (kdeLocale5 "eo" {}) {}; }; es = { qt4 = callPackage (kdeLocale4 "es" {}) {}; - qt5 = callPackage (kdeLocale5 "es" {}) {}; }; et = { qt4 = callPackage (kdeLocale4 "et" {}) {}; - qt5 = callPackage (kdeLocale5 "et" {}) {}; }; eu = { qt4 = callPackage (kdeLocale4 "eu" {}) {}; - qt5 = callPackage (kdeLocale5 "eu" {}) {}; }; fa = { qt4 = callPackage (kdeLocale4 "fa" {}) {}; - qt5 = callPackage (kdeLocale5 "fa" {}) {}; }; fi = { qt4 = callPackage (kdeLocale4 "fi" {}) {}; - qt5 = callPackage (kdeLocale5 "fi" {}) {}; }; fr = { qt4 = callPackage (kdeLocale4 "fr" {}) {}; - qt5 = callPackage (kdeLocale5 "fr" {}) {}; }; ga = { qt4 = callPackage (kdeLocale4 "ga" {}) {}; - qt5 = callPackage (kdeLocale5 "ga" {}) {}; }; gl = { qt4 = callPackage (kdeLocale4 "gl" {}) {}; - qt5 = callPackage (kdeLocale5 "gl" {}) {}; }; he = { qt4 = callPackage (kdeLocale4 "he" {}) {}; - qt5 = callPackage (kdeLocale5 "he" {}) {}; }; hi = { qt4 = callPackage (kdeLocale4 "hi" {}) {}; - qt5 = callPackage (kdeLocale5 "hi" {}) {}; }; hr = { qt4 = callPackage (kdeLocale4 "hr" {}) {}; - qt5 = callPackage (kdeLocale5 "hr" {}) {}; }; hu = { qt4 = callPackage (kdeLocale4 "hu" {}) {}; - qt5 = callPackage (kdeLocale5 "hu" {}) {}; }; ia = { qt4 = callPackage (kdeLocale4 "ia" {}) {}; - qt5 = callPackage (kdeLocale5 "ia" {}) {}; }; id = { qt4 = callPackage (kdeLocale4 "id" {}) {}; - qt5 = callPackage (kdeLocale5 "id" {}) {}; }; is = { qt4 = callPackage (kdeLocale4 "is" {}) {}; - qt5 = callPackage (kdeLocale5 "is" {}) {}; }; it = { qt4 = callPackage (kdeLocale4 "it" {}) {}; - qt5 = callPackage (kdeLocale5 "it" {}) {}; }; ja = { qt4 = callPackage (kdeLocale4 "ja" {}) {}; - qt5 = callPackage (kdeLocale5 "ja" {}) {}; }; kk = { qt4 = callPackage (kdeLocale4 "kk" {}) {}; - qt5 = callPackage (kdeLocale5 "kk" {}) {}; }; km = { qt4 = callPackage (kdeLocale4 "km" {}) {}; - qt5 = callPackage (kdeLocale5 "km" {}) {}; }; ko = { qt4 = callPackage (kdeLocale4 "ko" {}) {}; - qt5 = callPackage (kdeLocale5 "ko" {}) {}; }; lt = { qt4 = callPackage (kdeLocale4 "lt" {}) {}; - qt5 = callPackage (kdeLocale5 "lt" {}) {}; }; lv = { qt4 = callPackage (kdeLocale4 "lv" {}) {}; - qt5 = callPackage (kdeLocale5 "lv" {}) {}; }; mr = { qt4 = callPackage (kdeLocale4 "mr" {}) {}; - qt5 = callPackage (kdeLocale5 "mr" {}) {}; }; nb = { qt4 = callPackage (kdeLocale4 "nb" {}) {}; - qt5 = callPackage (kdeLocale5 "nb" {}) {}; }; nds = { qt4 = callPackage (kdeLocale4 "nds" {}) {}; - qt5 = callPackage (kdeLocale5 "nds" {}) {}; }; nl = { qt4 = callPackage (kdeLocale4 "nl" {}) {}; - qt5 = callPackage (kdeLocale5 "nl" {}) {}; }; nn = { qt4 = callPackage (kdeLocale4 "nn" {}) {}; - qt5 = callPackage (kdeLocale5 "nn" {}) {}; }; pa = { qt4 = callPackage (kdeLocale4 "pa" {}) {}; - qt5 = callPackage (kdeLocale5 "pa" {}) {}; }; pl = { qt4 = callPackage (kdeLocale4 "pl" {}) {}; - qt5 = callPackage (kdeLocale5 "pl" {}) {}; }; pt = { qt4 = callPackage (kdeLocale4 "pt" {}) {}; - qt5 = callPackage (kdeLocale5 "pt" {}) {}; }; pt_BR = { qt4 = callPackage (kdeLocale4 "pt_BR" {}) {}; - qt5 = callPackage (kdeLocale5 "pt_BR" {}) {}; }; ro = { qt4 = callPackage (kdeLocale4 "ro" {}) {}; - qt5 = callPackage (kdeLocale5 "ro" {}) {}; }; ru = { qt4 = callPackage (kdeLocale4 "ru" {}) {}; - qt5 = callPackage (kdeLocale5 "ru" {}) {}; }; sk = { qt4 = callPackage (kdeLocale4 "sk" {}) {}; - qt5 = callPackage (kdeLocale5 "sk" {}) {}; }; sl = { qt4 = callPackage (kdeLocale4 "sl" {}) {}; - qt5 = callPackage (kdeLocale5 "sl" {}) {}; }; sr = { qt4 = callPackage (kdeLocale4 "sr" { @@ -203,39 +156,26 @@ lib.mapAttrs (name: attr: recurseIntoAttrs attr) { 4/sr/sr@ijekavianlatin/scripts/ts-pmap-compile.py ''; }) {}; - qt5 = callPackage (kdeLocale5 "sr" { - preConfigure = '' - patchShebangs 5/sr/cmake_modules/resolve-sr-hybrid - sed -e 's/add_subdirectory(kdesdk)//' -i 5/sr/data/CMakeLists.txt - ''; - }) {}; }; sv = { qt4 = callPackage (kdeLocale4 "sv" {}) {}; - qt5 = callPackage (kdeLocale5 "sv" {}) {}; }; tr = { qt4 = callPackage (kdeLocale4 "tr" {}) {}; - qt5 = callPackage (kdeLocale5 "tr" {}) {}; }; ug = { qt4 = callPackage (kdeLocale4 "ug" {}) {}; - qt5 = callPackage (kdeLocale5 "ug" {}) {}; }; uk = { qt4 = callPackage (kdeLocale4 "uk" {}) {}; - qt5 = callPackage (kdeLocale5 "uk" {}) {}; }; wa = { qt4 = callPackage (kdeLocale4 "wa" {}) {}; - qt5 = callPackage (kdeLocale5 "wa" {}) {}; }; zh_CN = { qt4 = callPackage (kdeLocale4 "zh_CN" {}) {}; - qt5 = callPackage (kdeLocale5 "zh_CN" {}) {}; }; zh_TW = { qt4 = callPackage (kdeLocale4 "zh_TW" {}) {}; - qt5 = callPackage (kdeLocale5 "zh_TW" {}) {}; }; } diff --git a/pkgs/applications/kde/libgravatar.nix b/pkgs/applications/kde/libgravatar.nix new file mode 100644 index 00000000000..69a1b9e99cb --- /dev/null +++ b/pkgs/applications/kde/libgravatar.nix @@ -0,0 +1,18 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kconfig, kio, ktextwidgets, kwidgetsaddons, pimcommon +}: + +mkDerivation { + name = "libgravatar"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + kconfig kio ktextwidgets kwidgetsaddons pimcommon + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/libkcddb.nix b/pkgs/applications/kde/libkcddb.nix new file mode 100644 index 00000000000..edd9732d051 --- /dev/null +++ b/pkgs/applications/kde/libkcddb.nix @@ -0,0 +1,17 @@ +{ mkDerivation, lib, extra-cmake-modules, qtbase, kdoctools +, kcodecs, ki18n, kio, kwidgetsaddons +, libmusicbrainz5 }: + +mkDerivation { + name = "libkcddb"; + meta = with lib; { + license = with licenses; [ gpl2 lgpl21 bsd3 ]; + maintainers = with maintainers; [ peterhoeg ]; + }; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtbase kdoctools ]; + propagatedBuildInputs = [ + kcodecs ki18n kio kwidgetsaddons + libmusicbrainz5 + ]; +} diff --git a/pkgs/applications/kde/libkdcraw.nix b/pkgs/applications/kde/libkdcraw.nix index 179e9f414dc..70e3cb0e195 100644 --- a/pkgs/applications/kde/libkdcraw.nix +++ b/pkgs/applications/kde/libkdcraw.nix @@ -1,6 +1,6 @@ -{ kdeApp, lib, extra-cmake-modules, libraw, qtbase }: +{ mkDerivation, lib, extra-cmake-modules, libraw, qtbase }: -kdeApp { +mkDerivation { name = "libkdcraw"; meta = { license = with lib.licenses; [ gpl2 lgpl21 bsd3 ]; @@ -9,4 +9,5 @@ kdeApp { nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ qtbase ]; propagatedBuildInputs = [ libraw ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/libkdepim.nix b/pkgs/applications/kde/libkdepim.nix new file mode 100644 index 00000000000..92716e40a34 --- /dev/null +++ b/pkgs/applications/kde/libkdepim.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-contacts, akonadi-search, kcmutils, kcodecs, kcompletion, + kconfigwidgets, kcontacts, ki18n, kiconthemes, kio, kitemviews, kjobwidgets, + kldap, kwallet, +}: + +mkDerivation { + name = "libkdepim"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-contacts akonadi-search kcmutils kcodecs kcompletion + kconfigwidgets kcontacts ki18n kiconthemes kio kitemviews kjobwidgets kldap + kwallet + ]; +} diff --git a/pkgs/applications/kde/libkexiv2.nix b/pkgs/applications/kde/libkexiv2.nix index 0991c5df5ab..8c8d244d6f6 100644 --- a/pkgs/applications/kde/libkexiv2.nix +++ b/pkgs/applications/kde/libkexiv2.nix @@ -1,6 +1,6 @@ -{ kdeApp, lib, exiv2, extra-cmake-modules, qtbase }: +{ mkDerivation, lib, exiv2, extra-cmake-modules, qtbase }: -kdeApp { +mkDerivation { name = "libkexiv2"; meta = { license = with lib.licenses; [ gpl2 lgpl21 bsd3 ]; @@ -9,4 +9,5 @@ kdeApp { nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ qtbase ]; propagatedBuildInputs = [ exiv2 ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/libkipi.nix b/pkgs/applications/kde/libkipi.nix index 32eeb171ff8..c70d8407fc7 100644 --- a/pkgs/applications/kde/libkipi.nix +++ b/pkgs/applications/kde/libkipi.nix @@ -1,11 +1,12 @@ -{ kdeApp, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }: +{ mkDerivation, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }: -kdeApp { +mkDerivation { name = "libkipi"; meta = { license = with lib.licenses; [ gpl2 lgpl21 bsd3 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules ]; - propagatedBuildInputs = [ kconfig ki18n kservice kxmlgui ]; + buildInputs = [ kconfig ki18n kservice kxmlgui ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/libkleo.nix b/pkgs/applications/kde/libkleo.nix new file mode 100644 index 00000000000..0958a0e605f --- /dev/null +++ b/pkgs/applications/kde/libkleo.nix @@ -0,0 +1,21 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + boost, qgpgme, kcodecs, kcompletion, kconfig, kcoreaddons, ki18n, kitemmodels, + kpimtextedit, kwidgetsaddons, kwindowsystem +}: + +mkDerivation { + name = "libkleo"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + boost kcodecs kcompletion kconfig kcoreaddons ki18n kitemmodels + kpimtextedit kwidgetsaddons kwindowsystem + ]; + propagatedBuildInputs = [ qgpgme ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/libkomparediff2.nix b/pkgs/applications/kde/libkomparediff2.nix index aacc89a0efe..52aa2b10e24 100644 --- a/pkgs/applications/kde/libkomparediff2.nix +++ b/pkgs/applications/kde/libkomparediff2.nix @@ -1,6 +1,6 @@ -{ kdeApp, lib, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }: +{ mkDerivation, lib, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }: -kdeApp { +mkDerivation { name = "libkomparediff2"; nativeBuildInputs = [ extra-cmake-modules ]; propagatedBuildInputs = [ kcodecs ki18n kxmlgui kio ]; diff --git a/pkgs/applications/kde/libksane.nix b/pkgs/applications/kde/libksane.nix new file mode 100644 index 00000000000..f92f21de7fb --- /dev/null +++ b/pkgs/applications/kde/libksane.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, + extra-cmake-modules, qtbase, + ki18n, ktextwidgets, kwallet, kwidgetsaddons, + sane-backends +}: + +mkDerivation { + name = "libksane"; + meta = with lib; { + license = licenses.gpl2; + maintainers = with maintainers; [ pshendry ]; + }; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ qtbase ki18n ktextwidgets kwallet kwidgetsaddons sane-backends ]; +} diff --git a/pkgs/applications/kde/libksieve.nix b/pkgs/applications/kde/libksieve.nix new file mode 100644 index 00000000000..dd33f759c31 --- /dev/null +++ b/pkgs/applications/kde/libksieve.nix @@ -0,0 +1,23 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, karchive, kcompletion, kiconthemes, kidentitymanagement, kio, + kmailtransport, knewstuff, kwindowsystem, kxmlgui, libkdepim, pimcommon, + qtwebengine, syntax-highlighting, +}: + +mkDerivation { + name = "libksieve"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + outputs = [ "out" "dev" ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi karchive kcompletion kiconthemes kidentitymanagement kio + kmailtransport knewstuff kwindowsystem kxmlgui libkdepim pimcommon + qtwebengine + ]; + propagatedBuildInputs = [ syntax-highlighting ]; +} diff --git a/pkgs/applications/kde/mailcommon.nix b/pkgs/applications/kde/mailcommon.nix new file mode 100644 index 00000000000..44edea8f55e --- /dev/null +++ b/pkgs/applications/kde/mailcommon.nix @@ -0,0 +1,22 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, karchive, kcodecs, kcompletion, kconfigwidgets, + kdbusaddons, kdesignerplugin, kiconthemes, kio, kitemmodels, kldap, + kmailtransport, kwindowsystem, mailimporter, messagelib, phonon, libkdepim +}: + +mkDerivation { + name = "mailcommon"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-mime karchive kcodecs kcompletion kconfigwidgets kdbusaddons + kdesignerplugin kiconthemes kio kitemmodels kldap kmailtransport + kwindowsystem mailimporter messagelib phonon libkdepim + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/mailimporter.nix b/pkgs/applications/kde/mailimporter.nix new file mode 100644 index 00000000000..f002ff0f340 --- /dev/null +++ b/pkgs/applications/kde/mailimporter.nix @@ -0,0 +1,19 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, karchive, kcompletion, kconfig, kcoreaddons, ki18n, + kmime, kxmlgui, libkdepim +}: + +mkDerivation { + name = "mailimporter"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-mime karchive kcompletion kconfig kcoreaddons ki18n kmime + kxmlgui libkdepim + ]; +} diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix index c151396f247..1217c29032b 100644 --- a/pkgs/applications/kde/marble.nix +++ b/pkgs/applications/kde/marble.nix @@ -1,25 +1,16 @@ -{ kdeApp, lib, kdeWrapper -, extra-cmake-modules, qtscript, qtsvg, qtquickcontrols -, gpsd +{ mkDerivation, lib +, extra-cmake-modules, kdoctools +, qtscript, qtsvg, qtquickcontrols, qtwebkit +, krunner, shared_mime_info, kparts, knewstuff +, gpsd, perl }: -let - unwrapped = - kdeApp { - name = "marble"; - meta.license = with lib.licenses; [ lgpl21 gpl3 ]; - - nativeBuildInputs = [ extra-cmake-modules ]; - propagatedBuildInputs = [ - qtscript qtsvg qtquickcontrols - gpsd - ]; - - enableParallelBuilding = true; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/marble-qt" ]; - paths = [ unwrapped ]; +mkDerivation { + name = "marble"; + meta.license = with lib.licenses; [ lgpl21 gpl3 ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools perl ]; + propagatedBuildInputs = [ + qtscript qtsvg qtquickcontrols qtwebkit shared_mime_info krunner kparts + knewstuff gpsd + ]; } diff --git a/pkgs/applications/kde/mbox-importer.nix b/pkgs/applications/kde/mbox-importer.nix new file mode 100644 index 00000000000..aa637d440bd --- /dev/null +++ b/pkgs/applications/kde/mbox-importer.nix @@ -0,0 +1,20 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-search, kconfig, kservice, kio, mailcommon, mailimporter, messagelib +}: + +mkDerivation { + name = "mbox-importer"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi akonadi-search kconfig kservice kio mailcommon mailimporter messagelib + ]; + preHook = '' + set -x + ''; +} diff --git a/pkgs/applications/kde/messagelib.nix b/pkgs/applications/kde/messagelib.nix new file mode 100644 index 00000000000..f12158a1f71 --- /dev/null +++ b/pkgs/applications/kde/messagelib.nix @@ -0,0 +1,29 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-mime, akonadi-notes, akonadi-search, gpgme, grantlee5, + grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts, + kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap, + kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo, + pimcommon, qtwebengine, qtwebkit, syntax-highlighting +}: + +mkDerivation { + name = "messagelib"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi-notes akonadi-search gpgme grantlee5 grantleetheme karchive kcodecs + kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap + kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qtwebkit + syntax-highlighting + ]; + propagatedBuildInputs = [ + akonadi akonadi-mime kcontacts kidentitymanagement kmime libkleo pimcommon + qtwebengine + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/minuet.nix b/pkgs/applications/kde/minuet.nix new file mode 100644 index 00000000000..fd628a7aacf --- /dev/null +++ b/pkgs/applications/kde/minuet.nix @@ -0,0 +1,22 @@ +{ mkDerivation +, lib, extra-cmake-modules +, drumstick, fluidsynth +, kcoreaddons, kcrash, kdoctools +, qtquickcontrols2, qtsvg, qttools +}: + +mkDerivation { + name = "minuet"; + meta = with lib; { + license = with licenses; [ lgpl21 gpl3 ]; + maintainers = with maintainers; [ peterhoeg ]; + }; + + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ + drumstick fluidsynth + kcoreaddons kcrash + qtquickcontrols2 qtsvg qttools + ]; + enableParallelBuilding = true; +} diff --git a/pkgs/applications/kde/okteta.nix b/pkgs/applications/kde/okteta.nix index 59520e28532..422968be35a 100644 --- a/pkgs/applications/kde/okteta.nix +++ b/pkgs/applications/kde/okteta.nix @@ -1,26 +1,21 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kconfig, kinit, - kcmutils, kconfigwidgets, knewstuff, kparts, qca-qt5 + qtscript, kconfig, kinit, karchive, kcrash, + kcmutils, kconfigwidgets, knewstuff, kparts, qca-qt5, + shared_mime_info }: -let - unwrapped = - kdeApp { - name = "okteta"; - meta = { - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ peterhoeg ]; - }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kconfig kinit - kcmutils kconfigwidgets knewstuff kparts qca-qt5 - ]; - }; - -in kdeWrapper { - inherit unwrapped; - targets = [ "bin/okteta" ]; +mkDerivation { + name = "okteta"; + meta = { + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ peterhoeg ]; + }; + nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ]; + buildInputs = [ shared_mime_info ]; + propagatedBuildInputs = [ + kconfig kinit kcmutils kconfigwidgets knewstuff kparts qca-qt5 + karchive kcrash + ]; } diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix index f5b3e38ca7c..64511aabf7c 100644 --- a/pkgs/applications/kde/okular.nix +++ b/pkgs/applications/kde/okular.nix @@ -1,31 +1,25 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, djvulibre, ebook_tools, kactivities, karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet, kwindowsystem, libkexiv2, - libspectre, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver + libspectre, phonon, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver }: -let - unwrapped = kdeApp { - name = "okular"; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig - kconfigwidgets kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes - kjs khtml kio kparts kpty kwallet kwindowsystem libkexiv2 libspectre poppler - qca-qt5 qtdeclarative qtsvg threadweaver - ]; - meta = { - platforms = lib.platforms.linux; - homepage = "http://www.kde.org"; - license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; - maintainers = [ lib.maintainers.ttuegel ]; - }; +mkDerivation { + name = "okular"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig kconfigwidgets + kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes kjs khtml kio + kparts kpty kwallet kwindowsystem libkexiv2 libspectre phonon poppler + qca-qt5 qtdeclarative qtsvg threadweaver + ]; + meta = { + platforms = lib.platforms.linux; + homepage = http://www.kde.org; + license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; + maintainers = [ lib.maintainers.ttuegel ]; }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/okular" ]; } diff --git a/pkgs/applications/kde/pim-data-exporter.nix b/pkgs/applications/kde/pim-data-exporter.nix new file mode 100644 index 00000000000..10123944e3a --- /dev/null +++ b/pkgs/applications/kde/pim-data-exporter.nix @@ -0,0 +1,22 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, kcmutils, kcrash, kdbusaddons, kidentitymanagement, kldap, + kmailtransport, knewstuff, knotifications, knotifyconfig, kparts, kross, ktexteditor, + kwallet, libkdepim, libkleo, pimcommon, qttools, + karchive, mailcommon, messagelib, pim-data-exporter +}: + +mkDerivation { + name = "pim-data-exporter"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport + knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim + libkleo pimcommon qttools karchive mailcommon messagelib + ]; +} diff --git a/pkgs/applications/kde/pim-sieve-editor.nix b/pkgs/applications/kde/pim-sieve-editor.nix new file mode 100644 index 00000000000..c83df2e0e49 --- /dev/null +++ b/pkgs/applications/kde/pim-sieve-editor.nix @@ -0,0 +1,19 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kdbusaddons, kcrash, kbookmarks, kiconthemes, kio, kpimtextedit, + kmailtransport, pimcommon, libksieve +}: + +mkDerivation { + name = "pim-sieve-editor"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kdbusaddons kcrash kbookmarks kiconthemes kio kpimtextedit kmailtransport + pimcommon libksieve + ]; +} diff --git a/pkgs/applications/kde/pimcommon.nix b/pkgs/applications/kde/pimcommon.nix new file mode 100644 index 00000000000..02e9a47274b --- /dev/null +++ b/pkgs/applications/kde/pimcommon.nix @@ -0,0 +1,26 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + akonadi, akonadi-contacts, akonadi-mime, grantlee, karchive, kcodecs, + kcompletion, kconfig, kconfigwidgets, kcontacts, kdbusaddons, kdesignerplugin, + kiconthemes, kimap, kio, kitemmodels, kjobwidgets, knewstuff, kpimtextedit, + kwallet, kwindowsystem, libkdepim, qtwebengine +}: + +mkDerivation { + name = "pimcommon"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + akonadi-mime grantlee karchive kcodecs kcompletion kconfigwidgets + kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kpimtextedit + kwallet kwindowsystem libkdepim qtwebengine + ]; + propagatedBuildInputs = [ + akonadi akonadi-contacts kconfig kcontacts kimap + ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix index 0a3d311eb27..8ace4562cbd 100644 --- a/pkgs/applications/kde/print-manager.nix +++ b/pkgs/applications/kde/print-manager.nix @@ -1,20 +1,23 @@ { - kdeApp, lib, extra-cmake-modules, - cups, kconfig, kconfigwidgets, kdbusaddons, kiconthemes, ki18n, kcmutils, kio, + mkDerivation, lib, + extra-cmake-modules, + cups, ki18n, + kconfig, kconfigwidgets, kdbusaddons, kiconthemes, kcmutils, kio, knotifications, kwidgetsaddons, kwindowsystem, kitemviews, plasma-framework, qtdeclarative }: -kdeApp { +mkDerivation { name = "print-manager"; meta = { license = [ lib.licenses.gpl2 ]; maintainers = [ lib.maintainers.ttuegel ]; }; nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ cups ki18n ]; propagatedBuildInputs = [ - cups kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications - kwidgetsaddons kitemviews ki18n kio kwindowsystem plasma-framework - qtdeclarative + kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications + kwidgetsaddons kitemviews kio kwindowsystem plasma-framework qtdeclarative ]; + outputs = [ "out" "dev" ]; } diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix index 30abfc23e83..6deec6aaabb 100644 --- a/pkgs/applications/kde/spectacle.nix +++ b/pkgs/applications/kde/spectacle.nix @@ -1,25 +1,19 @@ { - kdeApp, lib, kdeWrapper, + mkDerivation, lib, extra-cmake-modules, kdoctools, - kconfig, kcoreaddons, kdbusaddons, kdeclarative, ki18n, kio, kipi-plugins, + ki18n, xcb-util-cursor, + kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins, knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi, - xcb-util-cursor + qtx11extras }: -let - unwrapped = - kdeApp { - name = "spectacle"; - meta = with lib; { maintainers = with maintainers; [ ttuegel ]; }; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ - kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications - kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor - ]; - }; -in -kdeWrapper { - inherit unwrapped; - targets = [ "bin/spectacle" ]; - paths = [ kipi-plugins ]; +mkDerivation { + name = "spectacle"; + meta = with lib; { maintainers = with maintainers; [ ttuegel ]; }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications + kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor + ]; + propagatedUserEnvPkgs = [ kipi-plugins libkipi ]; } diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix index 445c5783b8e..5e3c5b18b77 100644 --- a/pkgs/applications/kde/srcs.nix +++ b/pkgs/applications/kde/srcs.nix @@ -3,2227 +3,2235 @@ { akonadi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-16.12.3.tar.xz"; - sha256 = "00sbchj3yjbqdjckrciv2c7j9i7kc5yqvyvbmjlxacbkq80a4j7w"; - name = "akonadi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-17.08.2.tar.xz"; + sha256 = "1cd9ca3vifg6xsqsm8s9mzdkiavx7divwwjxk2vhb7pj8zxrnl45"; + name = "akonadi-17.08.2.tar.xz"; }; }; akonadi-calendar = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-calendar-16.12.3.tar.xz"; - sha256 = "0kv636a8x75fcagw8hjnrwnxzvqnnm42hfw68ywfics0pn0pl50g"; - name = "akonadi-calendar-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-calendar-17.08.2.tar.xz"; + sha256 = "0a26li0m4swvr74vw10vwqg6m33wb74zsrjxym5g8j16y87sw660"; + name = "akonadi-calendar-17.08.2.tar.xz"; }; }; akonadi-calendar-tools = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-calendar-tools-16.12.3.tar.xz"; - sha256 = "157kmcl77pj32ysbwr1xw365p5pgk69w5j8397axly6dmdl71x47"; - name = "akonadi-calendar-tools-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-calendar-tools-17.08.2.tar.xz"; + sha256 = "1y9iidqh1ssxp6mjzd4zjzsma3rvm2z1hfqjbs6sm2r1r3x3560q"; + name = "akonadi-calendar-tools-17.08.2.tar.xz"; }; }; akonadiconsole = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadiconsole-16.12.3.tar.xz"; - sha256 = "195amn610y5ydg665ag45xb0l1wyplbdlrwagzc7yvswp12rlcv3"; - name = "akonadiconsole-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadiconsole-17.08.2.tar.xz"; + sha256 = "19bxs8ds9klyqv7xhvnh3wy5ndll6qlhfvnw5cv10yf03ahf1lhb"; + name = "akonadiconsole-17.08.2.tar.xz"; }; }; akonadi-contacts = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-contacts-16.12.3.tar.xz"; - sha256 = "1205g4z5rz02j8swrmhncm06d8m727z63d526djygz5svz15sd2l"; - name = "akonadi-contacts-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-contacts-17.08.2.tar.xz"; + sha256 = "0b2zm7a1zbsxgb23cz78alhs2x364jaz8qcq8nl49qp7ydp44wn1"; + name = "akonadi-contacts-17.08.2.tar.xz"; }; }; akonadi-import-wizard = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-import-wizard-16.12.3.tar.xz"; - sha256 = "0dnpiqcmphm2x76f21acrwhg7ah5ih0hnhxdy1d6pm3ng2p1irfq"; - name = "akonadi-import-wizard-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-import-wizard-17.08.2.tar.xz"; + sha256 = "1ynyjmzw8zg72hkxls0rw3p7hsvgm7y41mii28fc18qdx8qcj8vw"; + name = "akonadi-import-wizard-17.08.2.tar.xz"; }; }; akonadi-mime = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-mime-16.12.3.tar.xz"; - sha256 = "1xay3rlygdhf9lp356wjb92wnmxdpaxgm3prxnfxcdg5ql6xcg07"; - name = "akonadi-mime-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-mime-17.08.2.tar.xz"; + sha256 = "1pnxmljgsmdkv2rhg7ml6qy1q2j2gx4cswkakbga8fr2cds5fmjc"; + name = "akonadi-mime-17.08.2.tar.xz"; }; }; akonadi-notes = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-notes-16.12.3.tar.xz"; - sha256 = "0405nkz9ri9qlclgvwycvdx1gsms2pm1fn6xhvyrj2v4s8brb3r7"; - name = "akonadi-notes-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-notes-17.08.2.tar.xz"; + sha256 = "1n9rrlczsgax0hddsqx4x8h9w49ki56lpa72y2fi2hd0hqv7bdf1"; + name = "akonadi-notes-17.08.2.tar.xz"; }; }; akonadi-search = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akonadi-search-16.12.3.tar.xz"; - sha256 = "0wf22rmfz471iw6zxl7yz279fkks2pj5jfw4bs5185kr3xw2q7zp"; - name = "akonadi-search-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akonadi-search-17.08.2.tar.xz"; + sha256 = "0h8pcwv4svywf8sh698g6f3x15prcmz4nyxr92ab3x14k5na26v2"; + name = "akonadi-search-17.08.2.tar.xz"; }; }; akregator = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/akregator-16.12.3.tar.xz"; - sha256 = "1v6jg35ha6wrjgwfvrvy1qwl1700dmk40d0fwy1irkpdlgg79128"; - name = "akregator-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/akregator-17.08.2.tar.xz"; + sha256 = "0ij4zxkwiai01cyzdai68c56j86r7b6nkijhmzhgvhv2mj9gi5bg"; + name = "akregator-17.08.2.tar.xz"; }; }; analitza = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/analitza-16.12.3.tar.xz"; - sha256 = "0ap3sf8bw9f58pzw3zy6w60apd4ccc47zs3v61x4kp1g81rn265w"; - name = "analitza-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/analitza-17.08.2.tar.xz"; + sha256 = "02rmgyl9sh4d3kf4412p1zgcmcmcb66drqf73fxf6cdb5addbzk3"; + name = "analitza-17.08.2.tar.xz"; }; }; ark = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ark-16.12.3.tar.xz"; - sha256 = "0q1bxrsb03pwsvxqlbnzfmahlj300l336pdrm82vin89m294ird0"; - name = "ark-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ark-17.08.2.tar.xz"; + sha256 = "1my3y6zsfw54c4kcbsl93ixig9b07cprgq47712v47niyqnihk92"; + name = "ark-17.08.2.tar.xz"; }; }; artikulate = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/artikulate-16.12.3.tar.xz"; - sha256 = "113k6c0yrir61j258gn9n6k7fifa6g9g8wxf3zq18jy3liwdl97s"; - name = "artikulate-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/artikulate-17.08.2.tar.xz"; + sha256 = "0hw10djgnx8wsrs307j9hsh9famaaljdpr20dmf2ng3594hppxw1"; + name = "artikulate-17.08.2.tar.xz"; }; }; audiocd-kio = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/audiocd-kio-16.12.3.tar.xz"; - sha256 = "0bmmi2rxx368nss8ciwj32dspc1ailc0shm06ynmhw3slrplnx1y"; - name = "audiocd-kio-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/audiocd-kio-17.08.2.tar.xz"; + sha256 = "0ivnl5aq553whgwnw6282vvj065hms34v1q1hl8l12k08rb8l2jl"; + name = "audiocd-kio-17.08.2.tar.xz"; }; }; baloo-widgets = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/baloo-widgets-16.12.3.tar.xz"; - sha256 = "0h75zhdiylyjifdk9ikw9gpwla3p87knndc2svkci90ga7ynggvl"; - name = "baloo-widgets-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/baloo-widgets-17.08.2.tar.xz"; + sha256 = "1qw0clwkcki6hg1hxxzb6h4nh6db7zw3ncl4hyf5550q973i2gl1"; + name = "baloo-widgets-17.08.2.tar.xz"; }; }; blinken = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/blinken-16.12.3.tar.xz"; - sha256 = "1z50ack1iqh194vn487nhdkrbn1camswy4a3g2ayxv3qfgmxdcga"; - name = "blinken-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/blinken-17.08.2.tar.xz"; + sha256 = "1qs6nbxqrp0lmwf0z30i0r8h32r1a6a18k6sk78ja52vqkr7872h"; + name = "blinken-17.08.2.tar.xz"; }; }; blogilo = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/blogilo-16.12.3.tar.xz"; - sha256 = "14yl52m8x7b8bj2b7pkhabwg7rrmmhnkjq4z7mrxbnsndqmsi10f"; - name = "blogilo-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/blogilo-17.08.2.tar.xz"; + sha256 = "0ai91d5ydmw3yfv997hlrvky88v4aqcg7hacd3mizl23clqij4c9"; + name = "blogilo-17.08.2.tar.xz"; }; }; bomber = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/bomber-16.12.3.tar.xz"; - sha256 = "1h4s6amjzazr3ywcqw8d14a0fi1arzxka0g6i9ii85s904k23r41"; - name = "bomber-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/bomber-17.08.2.tar.xz"; + sha256 = "1z6w6hh2f1k8skx87j11i6p34lcnh2c99gv2lvpd37z9gxbf0sjw"; + name = "bomber-17.08.2.tar.xz"; }; }; bovo = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/bovo-16.12.3.tar.xz"; - sha256 = "1pr67gf47xmw21sv1im7k0dz18bhjfpbkhd7j5gaifj66h65sfy6"; - name = "bovo-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/bovo-17.08.2.tar.xz"; + sha256 = "0vz9pfslj9f2g51yvdw8hasn92n0rn0gy4rd2f0xcfk2ifq2bwd1"; + name = "bovo-17.08.2.tar.xz"; }; }; calendarsupport = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/calendarsupport-16.12.3.tar.xz"; - sha256 = "0r30z2wzyms7m7s8y0livsfy5pj82g988bs6amaj2571hz55d8y0"; - name = "calendarsupport-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/calendarsupport-17.08.2.tar.xz"; + sha256 = "0zrazkcdm2m9rxdbgwcmidlxwnj1v4lnchf0d21i267dnck87m8x"; + name = "calendarsupport-17.08.2.tar.xz"; }; }; cantor = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/cantor-16.12.3.tar.xz"; - sha256 = "1nzg9sfnv8afpa84x51whbw1qh8gfwqnkr5zyai7817kkc97g1l8"; - name = "cantor-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/cantor-17.08.2.tar.xz"; + sha256 = "14hn1980z8wsr446r94scd3wdy83myy4wklxl24bynxpwiwxzv99"; + name = "cantor-17.08.2.tar.xz"; }; }; cervisia = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/cervisia-16.12.3.tar.xz"; - sha256 = "14r55ngvz4rci1h3iqdwbfcyxmm2b04c5smkv9x0bqxq4zz2yfvk"; - name = "cervisia-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/cervisia-17.08.2.tar.xz"; + sha256 = "0h56dfy27nf14dqz20f7chjzyhsdricxdrxxkw839r593k25fipd"; + name = "cervisia-17.08.2.tar.xz"; }; }; dolphin = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/dolphin-16.12.3.tar.xz"; - sha256 = "0y35ljbjib4pvyngdgbq1yx3rfmy94crpa7v1zzwfav94lm3kwb2"; - name = "dolphin-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/dolphin-17.08.2.tar.xz"; + sha256 = "1m3v7z0k47r3fzl4w4nsldslw0z6sy1zn3mn3ssc03jhgqnj3grs"; + name = "dolphin-17.08.2.tar.xz"; }; }; dolphin-plugins = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/dolphin-plugins-16.12.3.tar.xz"; - sha256 = "18azlmzw33praz4z6lamamj79gyxbbdgz7lp1cimxyddhmacc2x9"; - name = "dolphin-plugins-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/dolphin-plugins-17.08.2.tar.xz"; + sha256 = "12mp7qf8aharyk8hqr8igwqnxraxy3nmad99mxkyny6wlkha459l"; + name = "dolphin-plugins-17.08.2.tar.xz"; }; }; dragon = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/dragon-16.12.3.tar.xz"; - sha256 = "1652cl6sa9d71c685xpwqv5hgz3spxg2hynwcnn8xybn5hv9ar4r"; - name = "dragon-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/dragon-17.08.2.tar.xz"; + sha256 = "0h9h2axwjqqvqla6mfml3bvk7gp36kij7swl96gsn7sy4ch0ydbz"; + name = "dragon-17.08.2.tar.xz"; }; }; eventviews = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/eventviews-16.12.3.tar.xz"; - sha256 = "0z8jznvw2nhszrlll7458gb4r0585ivkbq9dqplkw2mdrv7vxz5c"; - name = "eventviews-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/eventviews-17.08.2.tar.xz"; + sha256 = "0gd7jmwidh9fngjbn8m6jhymzxv8qdxv3ksnawcamjxxd2k951c1"; + name = "eventviews-17.08.2.tar.xz"; }; }; ffmpegthumbs = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ffmpegthumbs-16.12.3.tar.xz"; - sha256 = "1scyyd85rs21rv3ghcxv7pw3aa2nl703gi4dpikbsd7wjmxixzq9"; - name = "ffmpegthumbs-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ffmpegthumbs-17.08.2.tar.xz"; + sha256 = "0bycdr60jnr0a121fr9alvma5zbkqm6wj45h81jvggdvmnrg7inh"; + name = "ffmpegthumbs-17.08.2.tar.xz"; }; }; filelight = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/filelight-16.12.3.tar.xz"; - sha256 = "13gcx1w9zq3i9fy32m3ypjyqcd9vrkqyr0j4cbqfvhpzv2chk3is"; - name = "filelight-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/filelight-17.08.2.tar.xz"; + sha256 = "0q7cn7hbmwg6km96yc3m1yd64nsnav8q9yjiri2k3p6v6if1042h"; + name = "filelight-17.08.2.tar.xz"; }; }; granatier = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/granatier-16.12.3.tar.xz"; - sha256 = "17vpz6jz2vvpvsrhvllglacrwg0sxy15aqnm8n6d73sk9zlv9n76"; - name = "granatier-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/granatier-17.08.2.tar.xz"; + sha256 = "17ymbyzkgkwcinf65hzy3ny1zzg6p88bcg6kix1pbdmhmw4nhhj0"; + name = "granatier-17.08.2.tar.xz"; }; }; grantlee-editor = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/grantlee-editor-16.12.3.tar.xz"; - sha256 = "007q6cb5f3vzw6dwm2y2b5m3dhb5mws5b6083ssm8rydycyi9pzi"; - name = "grantlee-editor-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/grantlee-editor-17.08.2.tar.xz"; + sha256 = "1385wcf2y3jjj9csp6p7iqyrlv0wxq32dkhdf33y80j29xnrckzp"; + name = "grantlee-editor-17.08.2.tar.xz"; }; }; grantleetheme = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/grantleetheme-16.12.3.tar.xz"; - sha256 = "19mka62p75qnv6r9ib70y25jjj3bpziz0xqihfkb6jvafrgy8p8k"; - name = "grantleetheme-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/grantleetheme-17.08.2.tar.xz"; + sha256 = "1i1x8d7hkhzqbn4c1q0snni8x2dw1hlxkc0zw8hfyfppc9a1x5ha"; + name = "grantleetheme-17.08.2.tar.xz"; }; }; gwenview = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/gwenview-16.12.3.tar.xz"; - sha256 = "069fblw9g9h6r9gy05nj2n93jpnsx610jncwl6403q01rwlbrgbr"; - name = "gwenview-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/gwenview-17.08.2.tar.xz"; + sha256 = "0kw48xwinvyix23m1h4ark91w6nygr0a9kisdj3ighw29dqbqryx"; + name = "gwenview-17.08.2.tar.xz"; }; }; incidenceeditor = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/incidenceeditor-16.12.3.tar.xz"; - sha256 = "11jplw3fngnyvpjkhqwv1gzzwxxcm4v93h09f68hs015apncjvpp"; - name = "incidenceeditor-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/incidenceeditor-17.08.2.tar.xz"; + sha256 = "1jdwk67pxk9dwraq187wg58y0sgxwr5d18506fykrs7gv68p8dsl"; + name = "incidenceeditor-17.08.2.tar.xz"; }; }; jovie = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/jovie-16.12.3.tar.xz"; - sha256 = "190c4g587x4wxbfksf0mszq5qv1pzny6bkd3w2pwwsj222bl0fxa"; - name = "jovie-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/jovie-17.08.2.tar.xz"; + sha256 = "0wh0wk653fzlaxkxjbsm305wqmvdy88vw7qr81mh9ziyfj4qpm7p"; + name = "jovie-17.08.2.tar.xz"; }; }; juk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/juk-16.12.3.tar.xz"; - sha256 = "1ssgia5sknam2hnjflzglv0khxbwyyvzm4w1wmxw04rbjzs4gi4h"; - name = "juk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/juk-17.08.2.tar.xz"; + sha256 = "0i1zh8asbzjg7s6qq26fwc1g5g9ivnppba0xnhz5c3y0nmz0g3i1"; + name = "juk-17.08.2.tar.xz"; + }; + }; + k3b = { + version = "17.08.2"; + src = fetchurl { + url = "${mirror}/stable/applications/17.08.2/src/k3b-17.08.2.tar.xz"; + sha256 = "1n7fw4zhsjc5bxxva420m8k0lmbx4whq8ay1ckianarjc8jm5dwx"; + name = "k3b-17.08.2.tar.xz"; }; }; kaccessible = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kaccessible-16.12.3.tar.xz"; - sha256 = "162a4pw61b3rhq5mf7zdhgyyhbrxhr9fjw7bidicw7aljiy2cwb9"; - name = "kaccessible-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kaccessible-17.08.2.tar.xz"; + sha256 = "1phfz8n6gs9g216qhwmjhcrr0qpfk2q7bxxx68f86zzfv6b4fhjd"; + name = "kaccessible-17.08.2.tar.xz"; }; }; kaccounts-integration = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kaccounts-integration-16.12.3.tar.xz"; - sha256 = "0w8h33sysf590xyg4bvf2a2z39kzc0wn6mxv31mrf68b6ks7b9h2"; - name = "kaccounts-integration-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kaccounts-integration-17.08.2.tar.xz"; + sha256 = "0v4ikcapq0vdfhj0v5c202yfbg1b82jbl74rpcw7lap7xjdxshgi"; + name = "kaccounts-integration-17.08.2.tar.xz"; }; }; kaccounts-providers = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kaccounts-providers-16.12.3.tar.xz"; - sha256 = "0iqqwfjadsf7nhrqvpzypazipris4ljhf6daprxwxqa2bfigr5j2"; - name = "kaccounts-providers-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kaccounts-providers-17.08.2.tar.xz"; + sha256 = "1ir4s03ccf8mw56z2f293q4pb2rnh8rp0bs05nq93jjsxap3ssxn"; + name = "kaccounts-providers-17.08.2.tar.xz"; }; }; kaddressbook = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kaddressbook-16.12.3.tar.xz"; - sha256 = "1a86asy0pw8ivyg7aaw2mais4xbplabp5aljzcyb2rykij6482rh"; - name = "kaddressbook-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kaddressbook-17.08.2.tar.xz"; + sha256 = "0smihkmhi10c0khid3ziiwvbrlk3ihw7f1a2mf1pc62gmagf6iva"; + name = "kaddressbook-17.08.2.tar.xz"; }; }; kajongg = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kajongg-16.12.3.tar.xz"; - sha256 = "0xwwkl2npls0aq4435xlcvssm8pmfhramjgxv70mnjapr0dlpk5c"; - name = "kajongg-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kajongg-17.08.2.tar.xz"; + sha256 = "0607606yisch8s0ffv67fhpn8b5chi0y9h4giasc2s8m67zzjsvz"; + name = "kajongg-17.08.2.tar.xz"; }; }; kalarm = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kalarm-16.12.3.tar.xz"; - sha256 = "1n3h252cvqib1bx4ryq3xgj2mkqr38wvhiyj2vkkll4pf5lphpqz"; - name = "kalarm-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kalarm-17.08.2.tar.xz"; + sha256 = "17sh27h6c1p0h1r6rfpqmh1pfd7clnwslhnj4rfxhvh95svdqgam"; + name = "kalarm-17.08.2.tar.xz"; }; }; kalarmcal = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kalarmcal-16.12.3.tar.xz"; - sha256 = "064sihcsbdi1w6viv5gq6sw2m8r7x3nn1hl2aji1109pf5913vbr"; - name = "kalarmcal-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kalarmcal-17.08.2.tar.xz"; + sha256 = "00bfr9xsyg3r8nmvsana2n9m8ynhw1wcvx7dw3pazxf3f1sn5qvc"; + name = "kalarmcal-17.08.2.tar.xz"; }; }; kalgebra = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kalgebra-16.12.3.tar.xz"; - sha256 = "0qhini5gm41dlyham4zzqgz6r11s2rfwwphb81xvwp1bgn8q2rqb"; - name = "kalgebra-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kalgebra-17.08.2.tar.xz"; + sha256 = "0f7zz9xxqckrkzmfga4ap117wix2ib4lpjq75blk43951qpnwwcw"; + name = "kalgebra-17.08.2.tar.xz"; }; }; kalzium = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kalzium-16.12.3.tar.xz"; - sha256 = "0rlfjqfb1vpr0cdcx429nvrbkr7kc1m4ps3z3pphkajq4vlrql8i"; - name = "kalzium-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kalzium-17.08.2.tar.xz"; + sha256 = "1b27rx0ws6bikqa9gdr8d4mfqwsgcin5nl2m7svzdz27mb463iwc"; + name = "kalzium-17.08.2.tar.xz"; }; }; kamera = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kamera-16.12.3.tar.xz"; - sha256 = "04p19qv5ssf5wlpfqzhqsi8281pzcdjkd0jy177f9r7qgqq4lkgr"; - name = "kamera-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kamera-17.08.2.tar.xz"; + sha256 = "19id26637w39b6dlsvhllnnpvcphh20mvva1394pw386s2irdrca"; + name = "kamera-17.08.2.tar.xz"; }; }; kanagram = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kanagram-16.12.3.tar.xz"; - sha256 = "183hkxxwf7h335gmfvi2lppsyhpv80lvlg1fg4whq79f1d2lrw47"; - name = "kanagram-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kanagram-17.08.2.tar.xz"; + sha256 = "1zs1ww5w9sd9qzapl2shmfarhxsqpm8cifpw17vknwcp1w4qjwpj"; + name = "kanagram-17.08.2.tar.xz"; }; }; kapman = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kapman-16.12.3.tar.xz"; - sha256 = "1if3dzn1qy2pr42zcmzpq7f38spkxh492gl12vndckzah67cmz4g"; - name = "kapman-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kapman-17.08.2.tar.xz"; + sha256 = "0wl6zhm7cyb4ii475nh7pjz1pprccimpvdx5yxph4n99wri4xjd9"; + name = "kapman-17.08.2.tar.xz"; }; }; kapptemplate = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kapptemplate-16.12.3.tar.xz"; - sha256 = "036npdxyh9rx0aaiwvdjqrb39f8bqglqbl3iddb1vh7w9p1h158n"; - name = "kapptemplate-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kapptemplate-17.08.2.tar.xz"; + sha256 = "0b92kamyvw81bxvxly16kd1kcyn8l48cvk4hp0kqfxv5drr0y2sp"; + name = "kapptemplate-17.08.2.tar.xz"; }; }; kate = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kate-16.12.3.tar.xz"; - sha256 = "1fbrdlf64bdj71g692fkk7fiym0nm9vvbki2q105carrhl4w9s0r"; - name = "kate-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kate-17.08.2.tar.xz"; + sha256 = "1m4dh9v1y8a3398wd3qv2qcz1lqjnji62cswnw8ch4hxmns6lib2"; + name = "kate-17.08.2.tar.xz"; }; }; katomic = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/katomic-16.12.3.tar.xz"; - sha256 = "14dnfjww1fzgz3nbg45ck5yqbxdyvp0la9qs4n5cjy1ym52k5pjm"; - name = "katomic-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/katomic-17.08.2.tar.xz"; + sha256 = "1l8nvsm6mfsb1bvwhj77qicq010vmif8y046d2mc5sgw6xhg6xw5"; + name = "katomic-17.08.2.tar.xz"; }; }; kblackbox = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kblackbox-16.12.3.tar.xz"; - sha256 = "0i359pq65swrzsb7vdk0m00vjrj2xgvbgxin8ly2cijqlmfd3iv8"; - name = "kblackbox-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kblackbox-17.08.2.tar.xz"; + sha256 = "0i5zy6zm8w4i5hljmv1qyhrr5iv7m5qr854f6j0iyvam33f68gdh"; + name = "kblackbox-17.08.2.tar.xz"; }; }; kblocks = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kblocks-16.12.3.tar.xz"; - sha256 = "09kdbwya4xl84vzayhz286lmfb6a0mmp9i40hzldfl59as4d67kw"; - name = "kblocks-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kblocks-17.08.2.tar.xz"; + sha256 = "1qh2lcg9293icya06jwa01vri8y1m99jir7d0zxpwlm6rndrkca5"; + name = "kblocks-17.08.2.tar.xz"; }; }; kblog = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kblog-16.12.3.tar.xz"; - sha256 = "0q1qswg7dgy0jvk9kaz6cps6sfddsmv0lp5r3nhk751l497bbl3x"; - name = "kblog-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kblog-17.08.2.tar.xz"; + sha256 = "1095qs877zjip4899fisgyssp1n3j8rxpxkd7dc6ms4b82xnrz19"; + name = "kblog-17.08.2.tar.xz"; }; }; kbounce = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kbounce-16.12.3.tar.xz"; - sha256 = "0cwvsbw0a60a2csxqvpkm3znbcd1whsl80v63ljyc3gyik7wxil0"; - name = "kbounce-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kbounce-17.08.2.tar.xz"; + sha256 = "0bkmk26spmlq607ycmyc5sfzi7rknim0d39fdvmn915xy7dps2l1"; + name = "kbounce-17.08.2.tar.xz"; }; }; kbreakout = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kbreakout-16.12.3.tar.xz"; - sha256 = "0zszxxw7r7ggxhc47pngsi7bl57mnhbzkb0bhvy5rcyamgi90v39"; - name = "kbreakout-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kbreakout-17.08.2.tar.xz"; + sha256 = "02c4ldyxd6hcffivp1n8k5q42dibwpcf4xdp856zkaf9hk40ssjz"; + name = "kbreakout-17.08.2.tar.xz"; }; }; kbruch = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kbruch-16.12.3.tar.xz"; - sha256 = "12zmp9ix8q9mf3a4xpbsr0y9h4g1srwx48604x1phdwwdhgx0gsj"; - name = "kbruch-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kbruch-17.08.2.tar.xz"; + sha256 = "0v8c63mxpd10nnbxiyfghbbjm97q37w9z08dzlys996nychmw0ba"; + name = "kbruch-17.08.2.tar.xz"; }; }; kcachegrind = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcachegrind-16.12.3.tar.xz"; - sha256 = "109y94nz96izzsjjdpj9c6g344rcr86srp5w0433mssbyvym4x7q"; - name = "kcachegrind-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcachegrind-17.08.2.tar.xz"; + sha256 = "04dh0a33z7i1nf07bhc05gm1jr4wvv4a86l9avk6dgja0pag6j30"; + name = "kcachegrind-17.08.2.tar.xz"; }; }; kcalc = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcalc-16.12.3.tar.xz"; - sha256 = "06kfz1d5i01h31v277y04pqnx08yv0050rlb6phv72cx6div4mgp"; - name = "kcalc-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcalc-17.08.2.tar.xz"; + sha256 = "1k1l3qj4mdm8b0qbjp09hk4zd0y9qwzp062a0r428mvvcmrvpylw"; + name = "kcalc-17.08.2.tar.xz"; }; }; kcalcore = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcalcore-16.12.3.tar.xz"; - sha256 = "09i43vs6jpjmmk52df6pzclh0jn8shn3wfnaivw2wlirwa60d901"; - name = "kcalcore-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcalcore-17.08.2.tar.xz"; + sha256 = "1j3vr2ycwsgahngwhvkv747b5rr062sx6xi35bj9anmkhpbs9kwi"; + name = "kcalcore-17.08.2.tar.xz"; }; }; kcalutils = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcalutils-16.12.3.tar.xz"; - sha256 = "0449029fa1w496fmb81csb5amk801n11ish450drqw34lp9qla4n"; - name = "kcalutils-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcalutils-17.08.2.tar.xz"; + sha256 = "02f5vr0l41kv6g92jj9g8yz5y422qvlgd3jbx3gmsagxxyvl5gss"; + name = "kcalutils-17.08.2.tar.xz"; }; }; kcharselect = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcharselect-16.12.3.tar.xz"; - sha256 = "1iwqqds9fy970ykgq1xbpbrzpdacy1h4bw87h1jingi42z1jkw2n"; - name = "kcharselect-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcharselect-17.08.2.tar.xz"; + sha256 = "1nmsn0kibd318dnka96lisplcggrvcgsivrqk322mw9wg6xhg5i9"; + name = "kcharselect-17.08.2.tar.xz"; }; }; kcolorchooser = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcolorchooser-16.12.3.tar.xz"; - sha256 = "13nkvxl3z2l3m6zs057ipxgqfgsw7gma1rs66maqhzl30k3hrcyb"; - name = "kcolorchooser-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcolorchooser-17.08.2.tar.xz"; + sha256 = "0v8x3y2gxp8cm3m1dh8rjpxjnypfvrxm41vrqsz9p8lcs616zg6w"; + name = "kcolorchooser-17.08.2.tar.xz"; }; }; kcontacts = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcontacts-16.12.3.tar.xz"; - sha256 = "1479g32c9532pjgmfpy38vycii1sxk1nzv27z7wbgpxch6735szx"; - name = "kcontacts-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcontacts-17.08.2.tar.xz"; + sha256 = "1agwvi3lnmdz9fhqg6i029jpcwys4zsk2k5rpzjdqaf7bvccb9cl"; + name = "kcontacts-17.08.2.tar.xz"; }; }; kcron = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kcron-16.12.3.tar.xz"; - sha256 = "0whxc9h7qn0fwcca9sq6qy0j4hfb8xlkdypnb6gspl687ws799xz"; - name = "kcron-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kcron-17.08.2.tar.xz"; + sha256 = "1diqgcnlbq9x6w3sj4lk1i3kbi4g5w4j1knkc4qqjz3a6kfaqk60"; + name = "kcron-17.08.2.tar.xz"; + }; + }; + kdav = { + version = "17.08.2"; + src = fetchurl { + url = "${mirror}/stable/applications/17.08.2/src/kdav-17.08.2.tar.xz"; + sha256 = "0cyh8qnzcnb7qnyjbyy73bj78kqjq853aaz7fskg2f3bk2bq5fkf"; + name = "kdav-17.08.2.tar.xz"; }; }; kdebugsettings = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdebugsettings-16.12.3.tar.xz"; - sha256 = "0mkhklv4dynz23w8w9yh5qspdlfp3hi6fyiijyfwj358rqgbf3p5"; - name = "kdebugsettings-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdebugsettings-17.08.2.tar.xz"; + sha256 = "0i62w45flirca09bkwxkyyr4zhvzi4rxq7l6xh4liinl1n9kdf7w"; + name = "kdebugsettings-17.08.2.tar.xz"; }; }; kde-dev-scripts = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-dev-scripts-16.12.3.tar.xz"; - sha256 = "0kiddn0wg90p98zgnpq3x2hcfw8xczn98nyd21zbkzz357v14pya"; - name = "kde-dev-scripts-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-dev-scripts-17.08.2.tar.xz"; + sha256 = "1prk2j5y8rcz3xkhw2fnfhsky9jnk25akdg2whvz4zpvfvxn5jcw"; + name = "kde-dev-scripts-17.08.2.tar.xz"; }; }; kde-dev-utils = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-dev-utils-16.12.3.tar.xz"; - sha256 = "0svbl7yd5vz285gaymxy5mz0ll6fviamrbd6fjhj7rc4qx1gjgin"; - name = "kde-dev-utils-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-dev-utils-17.08.2.tar.xz"; + sha256 = "0zzf1w6avjwzyr8p73jqidzzfgx7gpiksmgnfqm4nf91snfg7pp4"; + name = "kde-dev-utils-17.08.2.tar.xz"; }; }; kdeedu-data = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdeedu-data-16.12.3.tar.xz"; - sha256 = "0vqzamp5fc2d0i9qn6986f3a1s1fdbrlzrsnimpdfcas5xngbv5m"; - name = "kdeedu-data-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdeedu-data-17.08.2.tar.xz"; + sha256 = "17jh5m5h64z6gkwblpq7jdsa4653bakz1mgy6qlyjlh8nljlf6wk"; + name = "kdeedu-data-17.08.2.tar.xz"; }; }; kdegraphics-mobipocket = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdegraphics-mobipocket-16.12.3.tar.xz"; - sha256 = "06zqny8idaw7s85h7iprbwdp7y1qspfp7yh5klwav12p72nn54w2"; - name = "kdegraphics-mobipocket-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdegraphics-mobipocket-17.08.2.tar.xz"; + sha256 = "008qp18m720759wj1bjm1z2nig1vafjcz8wifjgqdn3drn35qqvg"; + name = "kdegraphics-mobipocket-17.08.2.tar.xz"; }; }; kdegraphics-thumbnailers = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdegraphics-thumbnailers-16.12.3.tar.xz"; - sha256 = "01q2czzqq240cbp9yg7mji2q15kmiwn1aqs6iii00i56yy2mwaxq"; - name = "kdegraphics-thumbnailers-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdegraphics-thumbnailers-17.08.2.tar.xz"; + sha256 = "11qf9dnqzw634iilmbfi9sy20w228y72w2aasjw7kg1l7y4y3y07"; + name = "kdegraphics-thumbnailers-17.08.2.tar.xz"; }; }; kde-l10n-ar = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ar-16.12.3.tar.xz"; - sha256 = "1a6in9zq0a4a1v7mijm7gdrprkb5djp4qzyrbrwwlyzpk0sjs153"; - name = "kde-l10n-ar-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ar-17.08.2.tar.xz"; + sha256 = "1m5qi2qw4ndqzshg7bbi3mkvxpk0dj453bngm7qzmp9bgwpbgk3b"; + name = "kde-l10n-ar-17.08.2.tar.xz"; }; }; kde-l10n-ast = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ast-16.12.3.tar.xz"; - sha256 = "05di4xbm8viam0lz6gsyl8zip01dan5bb3h1ib7n7ri4rd49gb13"; - name = "kde-l10n-ast-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ast-17.08.2.tar.xz"; + sha256 = "1y2qahv1d40k16s9xjckc51szzm8n2nhdy5bjqpakxv3iqy2yqvz"; + name = "kde-l10n-ast-17.08.2.tar.xz"; }; }; kde-l10n-bg = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-bg-16.12.3.tar.xz"; - sha256 = "1clqz50ri2zpsaqvlwq01jc44d2w4abpwaqd37jcvcpjg836kj32"; - name = "kde-l10n-bg-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-bg-17.08.2.tar.xz"; + sha256 = "0h0ls4k1jyj8w2qh688nv43p6xxad3amh4gslg4xxk30scl58pay"; + name = "kde-l10n-bg-17.08.2.tar.xz"; }; }; kde-l10n-bs = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-bs-16.12.3.tar.xz"; - sha256 = "1lfpq4lixamh08vmmj8ai8pzdybs1anlg8vfb6lnxj3dpplxxjdv"; - name = "kde-l10n-bs-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-bs-17.08.2.tar.xz"; + sha256 = "1n2hw8835hf87d4sihnbryh702h6vh2z65s15lsrk5l760jdvyg7"; + name = "kde-l10n-bs-17.08.2.tar.xz"; }; }; kde-l10n-ca = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ca-16.12.3.tar.xz"; - sha256 = "1h3d7gdpixiqn4gyk1z9lj5k4bhf4719w1rcfzcajrpwrmvdfvms"; - name = "kde-l10n-ca-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ca-17.08.2.tar.xz"; + sha256 = "18g4vs2r63p25a0i8ggyv3gi7df54z1hv140lg44k5g4pffbzv0z"; + name = "kde-l10n-ca-17.08.2.tar.xz"; }; }; kde-l10n-ca_valencia = { - version = "ca_valencia-16.12.3"; + version = "ca_valencia-17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ca@valencia-16.12.3.tar.xz"; - sha256 = "00g1124n84lq380srykcr4yigqr5w9xivssj27jf1ak40vyanln0"; - name = "kde-l10n-ca_valencia-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ca@valencia-17.08.2.tar.xz"; + sha256 = "0p7ykdkfxkqm6fa8y95j3jsmqlnkxfsigi457h8yhvikjvlym9an"; + name = "kde-l10n-ca_valencia-17.08.2.tar.xz"; }; }; kde-l10n-cs = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-cs-16.12.3.tar.xz"; - sha256 = "0nvl0lbg1pw1r73ggycfqjvlga6lg7gyin4bigyjcq41k9y6xf91"; - name = "kde-l10n-cs-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-cs-17.08.2.tar.xz"; + sha256 = "13qxxh1rxv25i53r6744hyr7n7nhvhnxwb425caq0z8cl0y727xi"; + name = "kde-l10n-cs-17.08.2.tar.xz"; }; }; kde-l10n-da = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-da-16.12.3.tar.xz"; - sha256 = "1bsv0z0q5fqgn2jkgazm3aazi6s9crz23acwx9p2w7fc7h98bqpq"; - name = "kde-l10n-da-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-da-17.08.2.tar.xz"; + sha256 = "1nqfmq3scmka10fqvd4q62klrsly0zxk5maqp914r2kq9a4761sr"; + name = "kde-l10n-da-17.08.2.tar.xz"; }; }; kde-l10n-de = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-de-16.12.3.tar.xz"; - sha256 = "0ym6f1n86rvbwdk0xlx2ajfv4l70kw3qir8z82d2jf5dhgz9h2k6"; - name = "kde-l10n-de-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-de-17.08.2.tar.xz"; + sha256 = "0q0sqzsd9qig05qapa6psizcayfcr68jkz07wv1z0lsij6hbv81w"; + name = "kde-l10n-de-17.08.2.tar.xz"; }; }; kde-l10n-el = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-el-16.12.3.tar.xz"; - sha256 = "1dd51kh52rq9y3r2iz985ib2bpi109vf2xv2abkm8ddsfmb1mq6c"; - name = "kde-l10n-el-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-el-17.08.2.tar.xz"; + sha256 = "1g07qwgc5mm3x6diab934cfl9acl0baa5x1d1139c84x65d5iisx"; + name = "kde-l10n-el-17.08.2.tar.xz"; }; }; kde-l10n-en_GB = { - version = "en_GB-16.12.3"; + version = "en_GB-17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-en_GB-16.12.3.tar.xz"; - sha256 = "0yc6fk5ak0442gv1gxwwz2zz13s9d1ihlfkvl8aqi6zky5b6c91n"; - name = "kde-l10n-en_GB-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-en_GB-17.08.2.tar.xz"; + sha256 = "03v7q53ng095rsc5h13d7ysakcr3ansvq259xw8ksqwnp3yzgivf"; + name = "kde-l10n-en_GB-17.08.2.tar.xz"; }; }; kde-l10n-eo = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-eo-16.12.3.tar.xz"; - sha256 = "0p43p1as9s2x4145k59li39fvg77c38mjnlb16zhb5bg5c0r1401"; - name = "kde-l10n-eo-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-eo-17.08.2.tar.xz"; + sha256 = "1w79dmbja6aga6z8wz5pisd9r6g5gdcbqyzf8nlj2yjvijdv19h5"; + name = "kde-l10n-eo-17.08.2.tar.xz"; }; }; kde-l10n-es = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-es-16.12.3.tar.xz"; - sha256 = "194svk1axicbijy4ywsrn1q27pzrm3g139i63388qh3lzv8654p1"; - name = "kde-l10n-es-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-es-17.08.2.tar.xz"; + sha256 = "0j2y55iql56wwzfmfm5c0c3f64lqr74hqzqf5bcckhh6svjiwb9m"; + name = "kde-l10n-es-17.08.2.tar.xz"; }; }; kde-l10n-et = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-et-16.12.3.tar.xz"; - sha256 = "1q0mrc517jr5hicklhzvs6vw5vwgvb2gj3fi93a9iqxbw1a794pk"; - name = "kde-l10n-et-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-et-17.08.2.tar.xz"; + sha256 = "0d7c3ij74iskf9hbfjjl48jfpgihlg8fjabcak34bklcf1h8qrl9"; + name = "kde-l10n-et-17.08.2.tar.xz"; }; }; kde-l10n-eu = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-eu-16.12.3.tar.xz"; - sha256 = "0dgwklynwwksdm0dxk8dm53y0v92kfin6vgwpn2scc97fns16r08"; - name = "kde-l10n-eu-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-eu-17.08.2.tar.xz"; + sha256 = "164851achb1p4yaw4x6sq83ibl6gj4iqh4771nc847rywgmq48dh"; + name = "kde-l10n-eu-17.08.2.tar.xz"; }; }; kde-l10n-fa = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-fa-16.12.3.tar.xz"; - sha256 = "1ywipqg2dv3dapp3m7sfhap4izhabb4srk3gpl2kd2wx0abnwmdb"; - name = "kde-l10n-fa-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-fa-17.08.2.tar.xz"; + sha256 = "030wwv8527yhn6k6jmjb790d05gz493dnhr759zv1yg0r1r14lsi"; + name = "kde-l10n-fa-17.08.2.tar.xz"; }; }; kde-l10n-fi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-fi-16.12.3.tar.xz"; - sha256 = "11grklvacq70mq4fj0772v8xqmp1b1pl7gff8gvy692rva5qhv29"; - name = "kde-l10n-fi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-fi-17.08.2.tar.xz"; + sha256 = "1rvpkdssy346aijdb183j6fnpg7wqac2svg19rjnz40rg1sbqs5g"; + name = "kde-l10n-fi-17.08.2.tar.xz"; }; }; kde-l10n-fr = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-fr-16.12.3.tar.xz"; - sha256 = "0qx849ilp1597nxrx6cmgnmm202all14y8pcyd19gp70wdra8wcm"; - name = "kde-l10n-fr-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-fr-17.08.2.tar.xz"; + sha256 = "0i9525dvns41gvgdi3q760fivhjq8c81hsx6rmnp5gxwj2bp8nb9"; + name = "kde-l10n-fr-17.08.2.tar.xz"; }; }; kde-l10n-ga = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ga-16.12.3.tar.xz"; - sha256 = "06w92m84bxqs06gyi45x1jmzh99ip7vnnzjq7ixx7ny9k6m0as1m"; - name = "kde-l10n-ga-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ga-17.08.2.tar.xz"; + sha256 = "0a7ym789nqjngx0sjirxb19q0wzbh250kwsrjad5nw810syk2k8d"; + name = "kde-l10n-ga-17.08.2.tar.xz"; }; }; kde-l10n-gl = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-gl-16.12.3.tar.xz"; - sha256 = "1k6jydmqbmxfkimxqn8qhd136zdjz4z7d5mk0n80607n91y7n3kv"; - name = "kde-l10n-gl-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-gl-17.08.2.tar.xz"; + sha256 = "1n0f4hs3qkraxc05ga2z4mzr425n5386f5wrd9crsw0pmsm24nm6"; + name = "kde-l10n-gl-17.08.2.tar.xz"; }; }; kde-l10n-he = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-he-16.12.3.tar.xz"; - sha256 = "1ry1wd9ng5xwpi402p1rqbsrb0ma7bgkmx53yygzc5mpszarga6y"; - name = "kde-l10n-he-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-he-17.08.2.tar.xz"; + sha256 = "1bk8ms9jspyphxki8fl2i8fy4b2xsx3bi55fhpah9r10fb3prccx"; + name = "kde-l10n-he-17.08.2.tar.xz"; }; }; kde-l10n-hi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-hi-16.12.3.tar.xz"; - sha256 = "1qwjiarqi8c3b15nc2nqrxvb6pcrb232qcx6nz0f9day2d0zxdwk"; - name = "kde-l10n-hi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-hi-17.08.2.tar.xz"; + sha256 = "1wfjj9xdnyq94h5g3054mvwn7vd9v1n1myxclxfqszbym1lp9f6h"; + name = "kde-l10n-hi-17.08.2.tar.xz"; }; }; kde-l10n-hr = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-hr-16.12.3.tar.xz"; - sha256 = "0y3pvdy1pkhraahsfkwhkar6004ll19gd6rhhhzgaw0irmw1yxp1"; - name = "kde-l10n-hr-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-hr-17.08.2.tar.xz"; + sha256 = "070cbkpvvpxhi2kvmf97wazxn2x7jvrzwadfxwp8r6h1bxgpiq5f"; + name = "kde-l10n-hr-17.08.2.tar.xz"; }; }; kde-l10n-hu = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-hu-16.12.3.tar.xz"; - sha256 = "001pl0l0cj4f2j7c6fjv9jv4wnkk2zb428y8szqm78zg85ms9wpz"; - name = "kde-l10n-hu-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-hu-17.08.2.tar.xz"; + sha256 = "1g77mh1av10h24hkqim86ik23nqxj6an4r4swzxl3ncibdx1x02f"; + name = "kde-l10n-hu-17.08.2.tar.xz"; }; }; kde-l10n-ia = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ia-16.12.3.tar.xz"; - sha256 = "09p9r6xzirr6cwcjdg10db62g3d4z0ksl6caf45rz0i2k5zn4r6r"; - name = "kde-l10n-ia-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ia-17.08.2.tar.xz"; + sha256 = "1d83558mvki39sffhrha6z3dgs1giwpbk27yi759fbc4k07w28pv"; + name = "kde-l10n-ia-17.08.2.tar.xz"; }; }; kde-l10n-id = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-id-16.12.3.tar.xz"; - sha256 = "1kanlr401ljaaqijhdvv52lvrn90m9b0l6i2jly8mdnnnwp896ra"; - name = "kde-l10n-id-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-id-17.08.2.tar.xz"; + sha256 = "0c1pfxc25izgrikbmp2afmi1j5i9gp9g3hkxn8c1znmwi4a0jp9n"; + name = "kde-l10n-id-17.08.2.tar.xz"; }; }; kde-l10n-is = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-is-16.12.3.tar.xz"; - sha256 = "10a9sxjnv9xb9wy04b9pfwpj4xg22x0ami37jhwggpskl9sj736v"; - name = "kde-l10n-is-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-is-17.08.2.tar.xz"; + sha256 = "1jdh25rs37438acxkpb6bmwwyl4z310jv2k4dxcb3f7ml4szkg4k"; + name = "kde-l10n-is-17.08.2.tar.xz"; }; }; kde-l10n-it = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-it-16.12.3.tar.xz"; - sha256 = "0f771kli3zw6dgwdxgk19kiy6gwv9yj3f2cgiyxaiak8yawa9ary"; - name = "kde-l10n-it-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-it-17.08.2.tar.xz"; + sha256 = "015wj5xhi3mni6mcc2xv16vn18rmimfzi971jgg8xjd9z7z53fd7"; + name = "kde-l10n-it-17.08.2.tar.xz"; }; }; kde-l10n-ja = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ja-16.12.3.tar.xz"; - sha256 = "1p0arv340i34gdlkdbjw234c9a4jqy8z417f0p19pn6ic3i5i6yv"; - name = "kde-l10n-ja-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ja-17.08.2.tar.xz"; + sha256 = "0vvvq1zfhj3c5xidrvfh372x4azxic3c8lhy43rn4wjalcmhyzi0"; + name = "kde-l10n-ja-17.08.2.tar.xz"; }; }; kde-l10n-kk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-kk-16.12.3.tar.xz"; - sha256 = "1ik3abczhxkm2b8i22akz12q5lm7rsc7i4qdz6ml1sn4kd0949i5"; - name = "kde-l10n-kk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-kk-17.08.2.tar.xz"; + sha256 = "14vhxnchnlmz8ljh21vdrdirygkgkhmqpnnlmrz9pmqay7r8bzpk"; + name = "kde-l10n-kk-17.08.2.tar.xz"; }; }; kde-l10n-km = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-km-16.12.3.tar.xz"; - sha256 = "1lwpfkv87i6km9pxrm78cqnnb1jnysaij0lmgvz2d0bs6dldaxrs"; - name = "kde-l10n-km-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-km-17.08.2.tar.xz"; + sha256 = "0q82bvy359szsfa423rb3b65wbgnmvyk839blr9pzjp3gvhxiza2"; + name = "kde-l10n-km-17.08.2.tar.xz"; }; }; kde-l10n-ko = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ko-16.12.3.tar.xz"; - sha256 = "0c0hkprngxyxj2sf05s5i0y04i5f4vgqis1mgq500l03q0x16b4y"; - name = "kde-l10n-ko-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ko-17.08.2.tar.xz"; + sha256 = "1v4bjws17mz022n3r49z7rz1pdmqa4dsffj7pm60ixi6p5y3gvk2"; + name = "kde-l10n-ko-17.08.2.tar.xz"; }; }; kde-l10n-lt = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-lt-16.12.3.tar.xz"; - sha256 = "04d2l2qisbpzxppxchfrxnijc8706pq3s9pgmyyy6c0v26gsgz77"; - name = "kde-l10n-lt-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-lt-17.08.2.tar.xz"; + sha256 = "0f09kkaghydq4b0fs59vz4h8q8j84qnqaqqaljc3vq05ih3849n5"; + name = "kde-l10n-lt-17.08.2.tar.xz"; }; }; kde-l10n-lv = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-lv-16.12.3.tar.xz"; - sha256 = "1af13p7ri4x3dhwlv30gf7za7dgsr1kx3khzlgdg4hcgi2s4aq12"; - name = "kde-l10n-lv-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-lv-17.08.2.tar.xz"; + sha256 = "0aw8lpdh6y126gbwkfm408lz84kwd44wi3ryi5ascxadklmgcydw"; + name = "kde-l10n-lv-17.08.2.tar.xz"; }; }; kde-l10n-mr = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-mr-16.12.3.tar.xz"; - sha256 = "16g8ln11x9qpda4wgzwvvij77bdpsdd6vsh7ysik8fc87km4qkax"; - name = "kde-l10n-mr-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-mr-17.08.2.tar.xz"; + sha256 = "10670r4fmvd1030rnlyl1s1ixiy380jg84h3ayv3m270rydpwn4c"; + name = "kde-l10n-mr-17.08.2.tar.xz"; }; }; kde-l10n-nb = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-nb-16.12.3.tar.xz"; - sha256 = "091wm8z6ibw8by220j89xdf0vpk7dp341hph2dhz17ykdzck3cdf"; - name = "kde-l10n-nb-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-nb-17.08.2.tar.xz"; + sha256 = "0cajcnk3clz175y2vhihpj33lcq5qmd0mgcl0srz5n28978v85wk"; + name = "kde-l10n-nb-17.08.2.tar.xz"; }; }; kde-l10n-nds = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-nds-16.12.3.tar.xz"; - sha256 = "052nw25rd3vq0fkixcwmn1iwaxnfwcg7iarf78c276w6vzrbvvcc"; - name = "kde-l10n-nds-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-nds-17.08.2.tar.xz"; + sha256 = "0r5zpc48sywkqb227kf963p01w1x7r828pr0dsy711h5wwwbnj93"; + name = "kde-l10n-nds-17.08.2.tar.xz"; }; }; kde-l10n-nl = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-nl-16.12.3.tar.xz"; - sha256 = "0axlpjq70142blccsfqbh7zs7l8k31mkc30lr79d03975dp2ivzi"; - name = "kde-l10n-nl-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-nl-17.08.2.tar.xz"; + sha256 = "02hz160xsacsbimwqva7f5fp2zk7nnngj349v0vhyx85fk2s5hd7"; + name = "kde-l10n-nl-17.08.2.tar.xz"; }; }; kde-l10n-nn = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-nn-16.12.3.tar.xz"; - sha256 = "0ql8pvj47kwvdaj2gsjlc4rxb7mpl9nv4fraavffinv4xzrh0v18"; - name = "kde-l10n-nn-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-nn-17.08.2.tar.xz"; + sha256 = "005779r53bfzxrir56nxly5c38bzcjs20y690m3g7y4kfvlyas0d"; + name = "kde-l10n-nn-17.08.2.tar.xz"; }; }; kde-l10n-pa = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-pa-16.12.3.tar.xz"; - sha256 = "0r2snb5bkvha8yj692g1y8xwdwcnav06w3qliz1v7jiyb6hv8ncm"; - name = "kde-l10n-pa-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-pa-17.08.2.tar.xz"; + sha256 = "0475yxyzs6m35hbhk6y68s86sfvwb838ji4ycjwg5164ml6p9x7f"; + name = "kde-l10n-pa-17.08.2.tar.xz"; }; }; kde-l10n-pl = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-pl-16.12.3.tar.xz"; - sha256 = "1bp8br37wfn3xlxl4hzr45sv41w2i562rgjcj25ngn27y7cqvwq5"; - name = "kde-l10n-pl-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-pl-17.08.2.tar.xz"; + sha256 = "13v729a2cpp1spk8zlvynf41naifks5skacgdxx7pnz3z5nq34ih"; + name = "kde-l10n-pl-17.08.2.tar.xz"; }; }; kde-l10n-pt = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-pt-16.12.3.tar.xz"; - sha256 = "1f3ray689q3w4yr20j0bj8vvwyb1qzi608ip0p6n4nzjkq3ycqh6"; - name = "kde-l10n-pt-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-pt-17.08.2.tar.xz"; + sha256 = "13v7ahpp9yz197qggq6lwgyln2z4cszk4g46jc9c4qg1wq954cch"; + name = "kde-l10n-pt-17.08.2.tar.xz"; }; }; kde-l10n-pt_BR = { - version = "pt_BR-16.12.3"; + version = "pt_BR-17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-pt_BR-16.12.3.tar.xz"; - sha256 = "06h0dp54n8brv7kcfdbxy3yxk6c5b1ncbd9fzmflr8bpivifj66s"; - name = "kde-l10n-pt_BR-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-pt_BR-17.08.2.tar.xz"; + sha256 = "19qd7cm96hjbh4bwgy9r00i7fdzrsivjss00vd502s2620wxj8mh"; + name = "kde-l10n-pt_BR-17.08.2.tar.xz"; }; }; kde-l10n-ro = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ro-16.12.3.tar.xz"; - sha256 = "17kbkh50jf8zb9p3kl2malddvq08ybg881x1w5gmw514k3d3hwxh"; - name = "kde-l10n-ro-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ro-17.08.2.tar.xz"; + sha256 = "15jyjdvksqvhr7hkkfkb2mp7rkkidq7r15iibphi04d7nf5rgh7h"; + name = "kde-l10n-ro-17.08.2.tar.xz"; }; }; kde-l10n-ru = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ru-16.12.3.tar.xz"; - sha256 = "12ghgwy84i6nmlgi8wmvhxn7d9mvanhyd6pqyd302r5x0zxd8rza"; - name = "kde-l10n-ru-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ru-17.08.2.tar.xz"; + sha256 = "1vk54wih1bv85ixl4zv229hi7yvfnljndlfaslzfq2ff0r3j5iyf"; + name = "kde-l10n-ru-17.08.2.tar.xz"; }; }; kde-l10n-sk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-sk-16.12.3.tar.xz"; - sha256 = "0hc1cm2npsw2w9mx09kn9jxvaqpjhv6snhwdi2mybpbs9qmgnzcn"; - name = "kde-l10n-sk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-sk-17.08.2.tar.xz"; + sha256 = "0n4j3cp9zh2r2jyy2mksm5qx1xxkb847q8vlx896q26cbzc2sl5k"; + name = "kde-l10n-sk-17.08.2.tar.xz"; }; }; kde-l10n-sl = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-sl-16.12.3.tar.xz"; - sha256 = "02d0fg40pvlr6wnxg425n3fpqpizvdppznyp8nnxbzb9ia583aw0"; - name = "kde-l10n-sl-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-sl-17.08.2.tar.xz"; + sha256 = "05dpfmqcdclkkdk58q3dz9h4m5gyfdp0a47pj3wlp8gagn6lrll1"; + name = "kde-l10n-sl-17.08.2.tar.xz"; }; }; kde-l10n-sr = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-sr-16.12.3.tar.xz"; - sha256 = "1yq44dykajcz4n10zrad85lji30phr9cm5dnmx4s08404qwh68cz"; - name = "kde-l10n-sr-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-sr-17.08.2.tar.xz"; + sha256 = "1yavz6rfymg9ggb8xa7wrhr774482i7l7f110mbxb0hpp0rb37l4"; + name = "kde-l10n-sr-17.08.2.tar.xz"; }; }; kde-l10n-sv = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-sv-16.12.3.tar.xz"; - sha256 = "1q8ags96jwjrihi8ai8139c3s9nfy7v7lss9ci3xl786hyggdlrb"; - name = "kde-l10n-sv-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-sv-17.08.2.tar.xz"; + sha256 = "1hznlqyr93zbhp11s4q6x8ad0rscikqdxmgaw9i8h1wjiy926psy"; + name = "kde-l10n-sv-17.08.2.tar.xz"; }; }; kde-l10n-tr = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-tr-16.12.3.tar.xz"; - sha256 = "1l24d0abhhlbam0wfz52495nvjy1blfid9h31233hkykb782gi0n"; - name = "kde-l10n-tr-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-tr-17.08.2.tar.xz"; + sha256 = "1mmi73sfrzqhwwj2pb7p1bklm0cgprs8mg73k7v1nvzxfj5mm3xl"; + name = "kde-l10n-tr-17.08.2.tar.xz"; }; }; kde-l10n-ug = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-ug-16.12.3.tar.xz"; - sha256 = "0sb4136wjyg9g1fvhcgqv97wpv82ia37aknd8xcvjnp5n2jl80nn"; - name = "kde-l10n-ug-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-ug-17.08.2.tar.xz"; + sha256 = "0b4qzcp08y6hv7184sxl305rl92y38h68ljs7kbmszggy33fw0xq"; + name = "kde-l10n-ug-17.08.2.tar.xz"; }; }; kde-l10n-uk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-uk-16.12.3.tar.xz"; - sha256 = "073pqvxbpibwd1bv0vh4rijgkhg061g2gaaaqnckaakw677g2bmz"; - name = "kde-l10n-uk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-uk-17.08.2.tar.xz"; + sha256 = "1jvrkc765s0dmbbh6yrfwp0nq3zr8kirp88ddnxv1jn4xk1wj60c"; + name = "kde-l10n-uk-17.08.2.tar.xz"; }; }; kde-l10n-wa = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-wa-16.12.3.tar.xz"; - sha256 = "14qms294pz7hf4ramhscif9n6jfk5ixfwww558ypi0lwnzc17mrf"; - name = "kde-l10n-wa-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-wa-17.08.2.tar.xz"; + sha256 = "1jnca594pbvhm6bpqkpaibpn3bh1ady1px1cjqljm3v2173gqgsh"; + name = "kde-l10n-wa-17.08.2.tar.xz"; }; }; kde-l10n-zh_CN = { - version = "zh_CN-16.12.3"; + version = "zh_CN-17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-zh_CN-16.12.3.tar.xz"; - sha256 = "01q92gc13wjpd2gzvn1sipgl5xs86mwq8y0583glsx7s2wfp3g41"; - name = "kde-l10n-zh_CN-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-zh_CN-17.08.2.tar.xz"; + sha256 = "1szwwhd5jsafbnma968crz7x3l6r56qyx253119c0v7hribh2lh0"; + name = "kde-l10n-zh_CN-17.08.2.tar.xz"; }; }; kde-l10n-zh_TW = { - version = "zh_TW-16.12.3"; + version = "zh_TW-17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-l10n/kde-l10n-zh_TW-16.12.3.tar.xz"; - sha256 = "0a9xnxlbr5469k1ij7hc8wa5p38r3yqq1d9fxmmpqyj111v63g3h"; - name = "kde-l10n-zh_TW-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-l10n/kde-l10n-zh_TW-17.08.2.tar.xz"; + sha256 = "1v4qlh63l02689mjbxq3q6ljpij1ryr0z51lmymab65bk7vxh2mw"; + name = "kde-l10n-zh_TW-17.08.2.tar.xz"; }; }; kdelibs = { - version = "4.14.30"; + version = "4.14.37"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdelibs-4.14.30.tar.xz"; - sha256 = "0v8r70d55c4jhfhnh8lj41584qggc2lb4f6jwm4yl9qc6bpw77x3"; - name = "kdelibs-4.14.30.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdelibs-4.14.37.tar.xz"; + sha256 = "0c74yg01r802j5jwl270w9sfkkhsn2fz26xhk5w44a1gycdlm7jf"; + name = "kdelibs-4.14.37.tar.xz"; }; }; kdenetwork-filesharing = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdenetwork-filesharing-16.12.3.tar.xz"; - sha256 = "0345wq7ayahfd2jlpgfs18c7nrdp9gn9yxig2x75pspqmb5pgxh7"; - name = "kdenetwork-filesharing-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdenetwork-filesharing-17.08.2.tar.xz"; + sha256 = "0pz2zblg8hly141xkcrqs6hnv76zq5isbvyzdad6sjngjn4spcyc"; + name = "kdenetwork-filesharing-17.08.2.tar.xz"; }; }; kdenlive = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdenlive-16.12.3.tar.xz"; - sha256 = "1z7afrx00yaracf6cv9p8r14gqampabya8li6ws1ihzdgfamlkd0"; - name = "kdenlive-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdenlive-17.08.2.tar.xz"; + sha256 = "0a0qadvxy9b2drpj2k163wfg73020qfclkl47krqgrn2mdvibr92"; + name = "kdenlive-17.08.2.tar.xz"; }; }; kdepim-addons = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdepim-addons-16.12.3.tar.xz"; - sha256 = "1hqm7vi7fy7s17djayq9q7l3dxdnzk2ii78mjdg90aac9cxdxgmm"; - name = "kdepim-addons-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdepim-addons-17.08.2.tar.xz"; + sha256 = "036zs71aqr749n2cjv61y1xhgg16lsh07lx1kdqcqwyi8qgk7c1m"; + name = "kdepim-addons-17.08.2.tar.xz"; }; }; kdepim-apps-libs = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdepim-apps-libs-16.12.3.tar.xz"; - sha256 = "1q4ksp377piqxbs843nxafzssz80ayjii90iz86r2z2rd3lyrjzw"; - name = "kdepim-apps-libs-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdepim-apps-libs-17.08.2.tar.xz"; + sha256 = "14m7qxvpfdq53amigysqj4y26j8y8c45j7k4j9gv90amlh716ss1"; + name = "kdepim-apps-libs-17.08.2.tar.xz"; }; }; kdepim-runtime = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdepim-runtime-16.12.3.tar.xz"; - sha256 = "0j5c3y8bqnffcrx4g7ilq7id46h11d1hiw81l7x4mg1p0zw07bg1"; - name = "kdepim-runtime-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdepim-runtime-17.08.2.tar.xz"; + sha256 = "0yvrgi8rgwpvzkhzc5zdqyhqxs0czfqqc4dsgprg27a06lb7i3lz"; + name = "kdepim-runtime-17.08.2.tar.xz"; }; }; kde-runtime = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kde-runtime-16.12.3.tar.xz"; - sha256 = "1sqp827l30adiqrp12djx3xk6mlz2lb46hmxnbnzv52mv2whcr3y"; - name = "kde-runtime-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kde-runtime-17.08.2.tar.xz"; + sha256 = "00bjnbpx2lbjl7nz9z118yanwqmgjmy0nvq4bgxz7i4b68aw17xb"; + name = "kde-runtime-17.08.2.tar.xz"; }; }; kdesdk-kioslaves = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdesdk-kioslaves-16.12.3.tar.xz"; - sha256 = "17zqp43a1266616h3g6yccjmfgwni6lr8lz4rrvfda275vvwbshj"; - name = "kdesdk-kioslaves-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdesdk-kioslaves-17.08.2.tar.xz"; + sha256 = "0h1bv0dbi3a8b1q5dj999k28llckgxsf8055fw5fsbx6q2h0rq23"; + name = "kdesdk-kioslaves-17.08.2.tar.xz"; }; }; kdesdk-thumbnailers = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdesdk-thumbnailers-16.12.3.tar.xz"; - sha256 = "0p2s6pyq16jmjv29r8n9ygvsh1dxgz9zk90mk138cxxhbx9nks9h"; - name = "kdesdk-thumbnailers-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdesdk-thumbnailers-17.08.2.tar.xz"; + sha256 = "0z20hc8ssw439sdc8w2fzkaihzcag8sflymizwgf6x8c7awi4y2v"; + name = "kdesdk-thumbnailers-17.08.2.tar.xz"; }; }; kdf = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdf-16.12.3.tar.xz"; - sha256 = "1502ib1hlc5xxsphspxwj8jvjm7qig0zdwckvm3nmh7hf4474sc5"; - name = "kdf-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdf-17.08.2.tar.xz"; + sha256 = "0pfw8br46475h2v34nc0pnz94icrlivc3xcaxrf3w6x0wypmnhxs"; + name = "kdf-17.08.2.tar.xz"; }; }; kdialog = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdialog-16.12.3.tar.xz"; - sha256 = "161barz5x9jrdk2p5hqc2vk1rqfwn8nlhdmc1vjqnhvww786ghmh"; - name = "kdialog-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdialog-17.08.2.tar.xz"; + sha256 = "03lb5h8lbravayx5fddbzb6xgi9dabcyqpld3h32ykw4v26wlb1v"; + name = "kdialog-17.08.2.tar.xz"; }; }; kdiamond = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kdiamond-16.12.3.tar.xz"; - sha256 = "0qdh9ngrz5ph0kly27c58sxhwamqm3wq566337yhdqjizzcin4pf"; - name = "kdiamond-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kdiamond-17.08.2.tar.xz"; + sha256 = "1fkldch162m4awk6j7xx61lh8h9i5cb9x38gndz4imvwmyvfqijn"; + name = "kdiamond-17.08.2.tar.xz"; }; }; keditbookmarks = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/keditbookmarks-16.12.3.tar.xz"; - sha256 = "0dn3jb5lsjj2c6pbrbn4cik68fqqk99ljl45vbal9cc27lmrfa2n"; - name = "keditbookmarks-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/keditbookmarks-17.08.2.tar.xz"; + sha256 = "0dfyp8macmqhczk7b60dc15wqw8wzpbp6wlm6cdibdw7hlia9hfl"; + name = "keditbookmarks-17.08.2.tar.xz"; }; }; kfilereplace = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kfilereplace-16.12.3.tar.xz"; - sha256 = "0gym9bmkyjwg97khy6xxiaidjp6wi98fzmk7wa97wbdqc0qvswja"; - name = "kfilereplace-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kfilereplace-17.08.2.tar.xz"; + sha256 = "02iwzcn5lm1riv1pg9d5s20q60f569qpx1wdbz1181r6806fsi37"; + name = "kfilereplace-17.08.2.tar.xz"; }; }; kfind = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kfind-16.12.3.tar.xz"; - sha256 = "1d7rn3xri4dgv97s6jw3n4cbsg73zyrbcm3ligxgj37ziggrhgsj"; - name = "kfind-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kfind-17.08.2.tar.xz"; + sha256 = "06c3ba95h6lzfwlj4svwlrijbv0d8c5siljiradiam65zai2bfpd"; + name = "kfind-17.08.2.tar.xz"; }; }; kfloppy = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kfloppy-16.12.3.tar.xz"; - sha256 = "07mgrpjqd2kdz5gmg8ylmvdb4mis328b7qlchszdx0l1z30kqkzp"; - name = "kfloppy-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kfloppy-17.08.2.tar.xz"; + sha256 = "0icvsbxcxxg8lyzvzbga34an968gzwpd23zssbfy8flym95ci890"; + name = "kfloppy-17.08.2.tar.xz"; }; }; kfourinline = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kfourinline-16.12.3.tar.xz"; - sha256 = "087c00sggx5i1g8i2rjvvwlys15bisgx9fm2nl8f30h2ba3im4sg"; - name = "kfourinline-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kfourinline-17.08.2.tar.xz"; + sha256 = "1d4bfl81v4v512ixi1vbfbvz8vbmn1acfxjazlhk8xjjj0ky3yb2"; + name = "kfourinline-17.08.2.tar.xz"; }; }; kgeography = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kgeography-16.12.3.tar.xz"; - sha256 = "1rnk00nj29zimpw36vhm0yrwlmpmxwv9wzxnhr7n2jq5qhbqsp5g"; - name = "kgeography-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kgeography-17.08.2.tar.xz"; + sha256 = "16fgkp16bhpcibf8q0ivp9zsw8ws44icg34c3r8p5fbggfnkzqk6"; + name = "kgeography-17.08.2.tar.xz"; }; }; kget = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kget-16.12.3.tar.xz"; - sha256 = "0h8nklsl6gddwzgjig5cwp463s96ffn5688zjlsyx4hphnvbj8kb"; - name = "kget-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kget-17.08.2.tar.xz"; + sha256 = "1n6ky1bvr24hj3d6s1lfmyybr73q9p59w80fpzbx5v8c8l2g40w0"; + name = "kget-17.08.2.tar.xz"; }; }; kgoldrunner = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kgoldrunner-16.12.3.tar.xz"; - sha256 = "028kz5x8a3jb3zp3vfxajmszrqk859hdln9175pp6zj78b278xz4"; - name = "kgoldrunner-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kgoldrunner-17.08.2.tar.xz"; + sha256 = "085ydmcmaiahzq32gasc5ihbxg25glpc9alqzhd4flzvqf646xmx"; + name = "kgoldrunner-17.08.2.tar.xz"; }; }; kgpg = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kgpg-16.12.3.tar.xz"; - sha256 = "0abh15j2p0vinskd8f1yvjkyi1a70k0wf1sdldrfdwpdgq1pqsxw"; - name = "kgpg-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kgpg-17.08.2.tar.xz"; + sha256 = "1nrz2p6h13wi4vk4mrpcjkksrr6brj1aap4mf1rpj0g1mhrhwqly"; + name = "kgpg-17.08.2.tar.xz"; }; }; khangman = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/khangman-16.12.3.tar.xz"; - sha256 = "03ffigr9a6n3aj1a7lxcw9wgf1pafdjwqjnwnny2ric5vn6lpq1z"; - name = "khangman-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/khangman-17.08.2.tar.xz"; + sha256 = "17qmsixr4ic86imdrw0z9lyjhnw00ycnxyyrzb736cw7s4jnnick"; + name = "khangman-17.08.2.tar.xz"; }; }; khelpcenter = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/khelpcenter-16.12.3.tar.xz"; - sha256 = "100xcjjjbszhbwgydbylk9m9lrxikjyazmhaq2rvv2mfzsbijjm7"; - name = "khelpcenter-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/khelpcenter-17.08.2.tar.xz"; + sha256 = "0n4rdw606rhc3fs7kqg28dh8ay7q3ihiaraay8by3bk5dqby8r8k"; + name = "khelpcenter-17.08.2.tar.xz"; }; }; kholidays = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kholidays-16.12.3.tar.xz"; - sha256 = "09iwkqpnmn3h7yfin4y9izb2sdk6hrm8rfq106cnz7j8i31q93ad"; - name = "kholidays-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kholidays-17.08.2.tar.xz"; + sha256 = "03acmrw577lbs5h8az4wiw0dlmxmjiqak8pvm7w0ssmd2mrkggl2"; + name = "kholidays-17.08.2.tar.xz"; }; }; kidentitymanagement = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kidentitymanagement-16.12.3.tar.xz"; - sha256 = "1b23cwdhc7rv260kmn4akff3jfa21hk49p0kp8p0mf6nw6qahbvp"; - name = "kidentitymanagement-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kidentitymanagement-17.08.2.tar.xz"; + sha256 = "1ylv4qcsry9m8zjddgpxb93yfmzbf0aikvf4m7j040272z2as6q9"; + name = "kidentitymanagement-17.08.2.tar.xz"; }; }; kig = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kig-16.12.3.tar.xz"; - sha256 = "0fnlgxwcnspaqzv4y40xm0kq3xwwd4r5abh7ssbd6iqsbzgm6ghw"; - name = "kig-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kig-17.08.2.tar.xz"; + sha256 = "19jm98rlfvzsqip8vdi8gf1hynfkizjn61j4p1srgaciffx5l8zb"; + name = "kig-17.08.2.tar.xz"; }; }; kigo = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kigo-16.12.3.tar.xz"; - sha256 = "08rdz91jzz79884xhg87cwy57q1jk2414shyxxy9r0pb4wdcdbhn"; - name = "kigo-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kigo-17.08.2.tar.xz"; + sha256 = "04qlqghgnnyqcvc1f3s4l9as4pma1g09jdgy48jwxlbg1h60m48z"; + name = "kigo-17.08.2.tar.xz"; }; }; killbots = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/killbots-16.12.3.tar.xz"; - sha256 = "0lwniwm8cbnwpqhfis38x5qvkz53626v9bn00amml57zj8x3hjnd"; - name = "killbots-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/killbots-17.08.2.tar.xz"; + sha256 = "1xpigas92xn911jm0zrq47hpnxxr4lb9bvv9f5b6i7k9z8p9m8zl"; + name = "killbots-17.08.2.tar.xz"; }; }; kimagemapeditor = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kimagemapeditor-16.12.3.tar.xz"; - sha256 = "0362zcj6by3kydr5v3sr7l6k9kkyfcy16879f93d1qqkjfi11cic"; - name = "kimagemapeditor-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kimagemapeditor-17.08.2.tar.xz"; + sha256 = "13z3z4pjgky4bh5js79rnsbzcxj0ksh4wdqx3fgmjs5mzbaka5gg"; + name = "kimagemapeditor-17.08.2.tar.xz"; }; }; kimap = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kimap-16.12.3.tar.xz"; - sha256 = "1jlva17hy500jpb5mg6m3vrcy6mqikcy8m1pgy68d2ip0m93rb5f"; - name = "kimap-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kimap-17.08.2.tar.xz"; + sha256 = "0klpqy092hfqrvmm4nx3blwjnkybhg9zji500ckid90kv547ffmb"; + name = "kimap-17.08.2.tar.xz"; }; }; kio-extras = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kio-extras-16.12.3.tar.xz"; - sha256 = "1mfpllrmc88khlpg3yd4sghs8igg8dh0x568jw46vv90qgdb9xss"; - name = "kio-extras-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kio-extras-17.08.2.tar.xz"; + sha256 = "1pblk8vi2gcvyjw71pwihpd9n4qlhcksfs3py8mcll1pz2ijbz6n"; + name = "kio-extras-17.08.2.tar.xz"; }; }; kiriki = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kiriki-16.12.3.tar.xz"; - sha256 = "142p2zv1826iclaa2zrfyzfdwnflh3sq2xymca4di5anrmcwmm2m"; - name = "kiriki-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kiriki-17.08.2.tar.xz"; + sha256 = "1w83ggi02ibhgsmyw5s9cnjjqgx0zwbakf42l1dif9882svg38h7"; + name = "kiriki-17.08.2.tar.xz"; }; }; kiten = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kiten-16.12.3.tar.xz"; - sha256 = "0skwgv3v79p5z1livjbdsg7i18ky8vc49z53dmgsgbziqvs0s2y4"; - name = "kiten-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kiten-17.08.2.tar.xz"; + sha256 = "0rdkwv4njdpv1air697gwlzx843ddqwa7kl15i012307jfgkbkj4"; + name = "kiten-17.08.2.tar.xz"; }; }; kjumpingcube = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kjumpingcube-16.12.3.tar.xz"; - sha256 = "1fii1arzpsdhnnb5yladhpsb0g6icald5si0fwnl47wg3gshaqiz"; - name = "kjumpingcube-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kjumpingcube-17.08.2.tar.xz"; + sha256 = "0q4y35ffq48yc2h843vv970rg4h8miy5pbsxkkrflwljcarwxv65"; + name = "kjumpingcube-17.08.2.tar.xz"; }; }; kldap = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kldap-16.12.3.tar.xz"; - sha256 = "0a7pm9dzcvyyznqs4apwdl6dpg87qhxcr3a06grjwxhqvfdl52na"; - name = "kldap-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kldap-17.08.2.tar.xz"; + sha256 = "1p0ydrhji8cb4fmciyazy44d2nz6mhcl1brqn4ridv98hqa2ybpc"; + name = "kldap-17.08.2.tar.xz"; }; }; kleopatra = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kleopatra-16.12.3.tar.xz"; - sha256 = "1ja26gzdj8h5f8w1061scl40p6ahba3ci4hp91n2vp3rrz9m96wa"; - name = "kleopatra-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kleopatra-17.08.2.tar.xz"; + sha256 = "0g5qg0kg1d0cza3689ppvj4hdhqdsxjcn8hc9cfpsapz28is8yk4"; + name = "kleopatra-17.08.2.tar.xz"; }; }; klettres = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/klettres-16.12.3.tar.xz"; - sha256 = "0m3k3zyrw7rwm6ad75c86bap80v2y5k938mdhqjaciglqc9pk83h"; - name = "klettres-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/klettres-17.08.2.tar.xz"; + sha256 = "1n1z4nj3rqiyqz0ysr6fvhygayvxfyljg3z6f0y6f70n9r5n999m"; + name = "klettres-17.08.2.tar.xz"; }; }; klickety = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/klickety-16.12.3.tar.xz"; - sha256 = "0mim86wxcljs192q9y6a6i326sic350jd89m1vx3p78dwpj35q42"; - name = "klickety-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/klickety-17.08.2.tar.xz"; + sha256 = "1haqc96jivnb93vhzmd9kp446p32gmkpf5zys5ix20r6lbsywgd9"; + name = "klickety-17.08.2.tar.xz"; }; }; klines = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/klines-16.12.3.tar.xz"; - sha256 = "03ran5hyl8p9vfi82m2pkzng9hn5ipx1plgq9bz25c53z5fg63di"; - name = "klines-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/klines-17.08.2.tar.xz"; + sha256 = "1v5gqyyc6vl3s44w9v34q0g27fxf85kkk9i188j48q0kiblbxq8d"; + name = "klines-17.08.2.tar.xz"; }; }; klinkstatus = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/klinkstatus-16.12.3.tar.xz"; - sha256 = "0kmjh0398k6fpz6lgz6d5rb79xl6wpgd4j56zacpha9046cfnmsk"; - name = "klinkstatus-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/klinkstatus-17.08.2.tar.xz"; + sha256 = "1nfflb850mr1cd065lwryx6rd47w5bamg7sznvrhzjzqzrq6sm0x"; + name = "klinkstatus-17.08.2.tar.xz"; }; }; kmag = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmag-16.12.3.tar.xz"; - sha256 = "1llv9vd1557h4lz2sdd1wjlqb9wzrk9jxn4731iac2b5wdwpihii"; - name = "kmag-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmag-17.08.2.tar.xz"; + sha256 = "16i4cysa77dmxvkhpvhja4v315nnj1i5m9pd8a62j32gkrq54cpr"; + name = "kmag-17.08.2.tar.xz"; }; }; kmahjongg = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmahjongg-16.12.3.tar.xz"; - sha256 = "0xy3w5kxn69l0dagly5qd9dqzkpikflmrjbv1b45psafdmj3125r"; - name = "kmahjongg-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmahjongg-17.08.2.tar.xz"; + sha256 = "06f0wrjnlqgsh4n5kf7by5calrg2p0chm0c5b6wf4k311wb1cy65"; + name = "kmahjongg-17.08.2.tar.xz"; }; }; kmail = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmail-16.12.3.tar.xz"; - sha256 = "1kyhc952k78yg2wa9cgxvqa6qrrgc08dly7fin7as8cxfh49i0b0"; - name = "kmail-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmail-17.08.2.tar.xz"; + sha256 = "0fxxys8fxal6f4grbnl5niwf80kg62zymlbsp3hk7iihis6zqq59"; + name = "kmail-17.08.2.tar.xz"; }; }; kmail-account-wizard = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmail-account-wizard-16.12.3.tar.xz"; - sha256 = "0w94v2c38sl0qnyr38yzlfj6pxixaziw5kb4fkawv26c18fi42pl"; - name = "kmail-account-wizard-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmail-account-wizard-17.08.2.tar.xz"; + sha256 = "1qf78p18pfyl7axm447q8zcrji53h6mvahampkqgmsybp35c7fd7"; + name = "kmail-account-wizard-17.08.2.tar.xz"; }; }; kmailtransport = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmailtransport-16.12.3.tar.xz"; - sha256 = "1dkw7niymhnf0jncflvqyldw28c9j0q6j598flb5ksds0n30iasy"; - name = "kmailtransport-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmailtransport-17.08.2.tar.xz"; + sha256 = "0gzvvszwaqpckig8293m734gbyzx5v8sl9k9n1hi1cnwblsnn7aj"; + name = "kmailtransport-17.08.2.tar.xz"; }; }; kmbox = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmbox-16.12.3.tar.xz"; - sha256 = "0khvf4kqf9i425fjczl1miqsz0pxbyryxy32bf9knr3k5kmwbn24"; - name = "kmbox-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmbox-17.08.2.tar.xz"; + sha256 = "01ip8j5yj09gzzgynjqnxxxyv5d69rnnvq8mgwnpm6cxyh7lc8pv"; + name = "kmbox-17.08.2.tar.xz"; }; }; kmime = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmime-16.12.3.tar.xz"; - sha256 = "0gzbh0g075ml5x0qy4zd1cg1qygdsnssl5ahk9pcgc0fik4p9j20"; - name = "kmime-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmime-17.08.2.tar.xz"; + sha256 = "1ai3czsl60rf0sqqbmvr34nz5q2dz7i5y818rrar52r7fdn93wba"; + name = "kmime-17.08.2.tar.xz"; }; }; kmines = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmines-16.12.3.tar.xz"; - sha256 = "0dz6yx7y0jpxhmyjrfyf6rrkiayn4mpyr4n1iszs11gac1bqppvn"; - name = "kmines-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmines-17.08.2.tar.xz"; + sha256 = "0k563bsd0yczcm4h5wvq2f5i029ah9wwv2f0qjwyrbzqxcl50xi0"; + name = "kmines-17.08.2.tar.xz"; }; }; kmix = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmix-16.12.3.tar.xz"; - sha256 = "1mq4kna3z62269m43qy42knq4byrvirk0mk5yp56n51im1bmdyj4"; - name = "kmix-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmix-17.08.2.tar.xz"; + sha256 = "06rqnlrl2l91inllzn8jksg74sldjyghjg06vv49ly6jqyc04aqh"; + name = "kmix-17.08.2.tar.xz"; }; }; kmousetool = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmousetool-16.12.3.tar.xz"; - sha256 = "1678sjj96f22sn60ccyj6hqi2vghkf4facnx8l15x4xx05yq1vgg"; - name = "kmousetool-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmousetool-17.08.2.tar.xz"; + sha256 = "1y568g0s88h0i67j9x083nqj7nyfsn4vyb149j97fm7d4iifbm2s"; + name = "kmousetool-17.08.2.tar.xz"; }; }; kmouth = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmouth-16.12.3.tar.xz"; - sha256 = "1afvjds1kfb8zvv3ma8c6svan6zlbd1w9a164vxwp7gl3ycjyj52"; - name = "kmouth-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmouth-17.08.2.tar.xz"; + sha256 = "0qbbqb0wb3pzz7xv6jvghm2fmgxkvwmyiyjc9m1yzbmrdzqj1rig"; + name = "kmouth-17.08.2.tar.xz"; }; }; kmplot = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kmplot-16.12.3.tar.xz"; - sha256 = "02vh4diqs4688p2xlia437jywx89yhpaf8ipprdq92q034glybyz"; - name = "kmplot-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kmplot-17.08.2.tar.xz"; + sha256 = "1ccnlbgzvx2b1sdzrvzpmnnk4g8r7rvpczm1xjyk62r7mdbffp97"; + name = "kmplot-17.08.2.tar.xz"; }; }; knavalbattle = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/knavalbattle-16.12.3.tar.xz"; - sha256 = "0164z9h1689bz600p17p8fq552g8pq73l81nj4f5csklhnsiykkg"; - name = "knavalbattle-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/knavalbattle-17.08.2.tar.xz"; + sha256 = "1b0s28ybl1p62issc3rvl41zhn94y0y9aflpqkjfg6592zjc304g"; + name = "knavalbattle-17.08.2.tar.xz"; }; }; knetwalk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/knetwalk-16.12.3.tar.xz"; - sha256 = "1mavc0rn41y3vgzf0ikwvk3kh4fszylh7h4briw9k0kqx2cxh5vk"; - name = "knetwalk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/knetwalk-17.08.2.tar.xz"; + sha256 = "0b9zqa3xgwkcfrnyxd026vd47hpf9i7j5xmx1b756rqm9yr531r5"; + name = "knetwalk-17.08.2.tar.xz"; }; }; knotes = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/knotes-16.12.3.tar.xz"; - sha256 = "1yyx98zn7a3hbiyr16fcbylbm5v8lyg22v8gwf7xpnbx5jb4hpb8"; - name = "knotes-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/knotes-17.08.2.tar.xz"; + sha256 = "02i25f43dwmlwx1yhhws0zvrvqf92zhw8868hbfxz0y1lq04navx"; + name = "knotes-17.08.2.tar.xz"; }; }; kolf = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kolf-16.12.3.tar.xz"; - sha256 = "136iyf8clr2r8qkjcm0nqcq0sjr5xry9gbxjhz128lc0nywsxpd5"; - name = "kolf-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kolf-17.08.2.tar.xz"; + sha256 = "1m0dn1v68y7vsranlv690hx3dyffzkjmnqzbvyaad72kldq0qw0l"; + name = "kolf-17.08.2.tar.xz"; }; }; kollision = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kollision-16.12.3.tar.xz"; - sha256 = "0kwnqqm9gs6ac7ags9x82ykmp3vccp3kdd3js26a1kz1zkip32il"; - name = "kollision-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kollision-17.08.2.tar.xz"; + sha256 = "01z6yfr882hh00bga3iwcyiwxzyigxc2ddd6r8a3s6h7cpi4ik1x"; + name = "kollision-17.08.2.tar.xz"; }; }; kolourpaint = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kolourpaint-16.12.3.tar.xz"; - sha256 = "1yg3xnbbzvhcgb7i92bya41gq4z0135njcc77848khndpgkxvczb"; - name = "kolourpaint-16.12.3.tar.xz"; - }; - }; - kommander = { - version = "16.12.3"; - src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kommander-16.12.3.tar.xz"; - sha256 = "1wlks0alw82ra3g63d8k8nj9sq899hjv1r2kshk7c4vdk7arn1fg"; - name = "kommander-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kolourpaint-17.08.2.tar.xz"; + sha256 = "15bfzw03dh40m51fh1zwbrzqb5g2qjryznaaymjmzamgx08ldm4n"; + name = "kolourpaint-17.08.2.tar.xz"; }; }; kompare = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kompare-16.12.3.tar.xz"; - sha256 = "18z6424xidpx5kmbjiasvhagh2b1a9pxizc0dsvba47v9xcavsaw"; - name = "kompare-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kompare-17.08.2.tar.xz"; + sha256 = "1l2rdv8sddhf2z0vnn591aarzq5nqbhi58cnnpdwb5px99kasnyv"; + name = "kompare-17.08.2.tar.xz"; }; }; konqueror = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/konqueror-16.12.3.tar.xz"; - sha256 = "1pwv2mj9xrn6aymhkqmwd89d5i3v2jixp07dz0by62rcpfhm89p5"; - name = "konqueror-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/konqueror-17.08.2.tar.xz"; + sha256 = "1c0fpbjba9bq515v3vbzj80jclx8kcy9khzvgaxasdmd9d01yvid"; + name = "konqueror-17.08.2.tar.xz"; }; }; konquest = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/konquest-16.12.3.tar.xz"; - sha256 = "1fhz9pwi2dmmcjg10vp36m8d759zikg6nqpjdp41dg95lkyf5vkf"; - name = "konquest-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/konquest-17.08.2.tar.xz"; + sha256 = "15mmavbkndzzfa3zzsqxh53wi2489dqr8iw25iaj3pcbjzkn75rd"; + name = "konquest-17.08.2.tar.xz"; }; }; konsole = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/konsole-16.12.3.tar.xz"; - sha256 = "10k7ryvsssbskpxk04iqx2mrp2a91291r8nzvg1780lrhql5rdj7"; - name = "konsole-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/konsole-17.08.2.tar.xz"; + sha256 = "0a7ks2an76jwkapy9rjhf29q9h4z212yf9bvx5757lj5qn5pwxq2"; + name = "konsole-17.08.2.tar.xz"; }; }; kontact = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kontact-16.12.3.tar.xz"; - sha256 = "0wj4w9ak6dm330s393hjb79w16gs5kij5gz9swf3pxwg21xbd4ps"; - name = "kontact-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kontact-17.08.2.tar.xz"; + sha256 = "19hkppf2jwky73v73j4c2ppah7va4yrsv40ivw50k51s68s60b4a"; + name = "kontact-17.08.2.tar.xz"; }; }; kontactinterface = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kontactinterface-16.12.3.tar.xz"; - sha256 = "0n5hvx3xp01krwwd2szgh1s6nn5spfns1ivc36i1gdbhkf871k98"; - name = "kontactinterface-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kontactinterface-17.08.2.tar.xz"; + sha256 = "1gws8vl7s8jyqqbb37yw6gn85sqpfra8jzmin53j4wj4s8rdir5y"; + name = "kontactinterface-17.08.2.tar.xz"; }; }; kopete = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kopete-16.12.3.tar.xz"; - sha256 = "1dkn4d13knf0lcj4241fmjcj51ypg9frzsf0pl02mr08rd2rxgk1"; - name = "kopete-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kopete-17.08.2.tar.xz"; + sha256 = "01km2qsf12z8sbsbg8d4ng9izaphlsfqhr29dqryf1kqrwcv6amb"; + name = "kopete-17.08.2.tar.xz"; }; }; korganizer = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/korganizer-16.12.3.tar.xz"; - sha256 = "1724l321gzjwha8yhrans4lhzs39fs98xi7wbd5msfflzyg3l6ga"; - name = "korganizer-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/korganizer-17.08.2.tar.xz"; + sha256 = "1anmc4bfd8pdf22vprw3x82fi2f19wh7xy5xwf144kqhwbyqk7ch"; + name = "korganizer-17.08.2.tar.xz"; }; }; kpat = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kpat-16.12.3.tar.xz"; - sha256 = "04qvv7q7rlsiyff2isy18h2fbz2lnljal5spq5qg9zl6v8hx6qzm"; - name = "kpat-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kpat-17.08.2.tar.xz"; + sha256 = "09ck09ywhl2ywlv90ipgxs45xiwcc3sxvfmgviqxvky513kkx7mn"; + name = "kpat-17.08.2.tar.xz"; }; }; kpimtextedit = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kpimtextedit-16.12.3.tar.xz"; - sha256 = "06iz9l8z708kdivzibqkgdrbvw7kfd2lr2grf3v9l6gfl3qs1kbw"; - name = "kpimtextedit-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kpimtextedit-17.08.2.tar.xz"; + sha256 = "15w338kwdrkag08zyg8dzkwfg25zh67bbwsfxa6ra40hdj1azz8p"; + name = "kpimtextedit-17.08.2.tar.xz"; }; }; kppp = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kppp-16.12.3.tar.xz"; - sha256 = "0lqv95zfzcik8k95a39s6whjsnq6g15amnxlzy898liyxkr499bc"; - name = "kppp-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kppp-17.08.2.tar.xz"; + sha256 = "016rgayrxccmvn7pw40x12dv3qi781m2rbcbz8lkprdglzzavfrz"; + name = "kppp-17.08.2.tar.xz"; }; }; kqtquickcharts = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kqtquickcharts-16.12.3.tar.xz"; - sha256 = "1xzn9vxiqam8pk4zj8qcq55v9g52d9qkddbdv25pml8s0yhlsgqf"; - name = "kqtquickcharts-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kqtquickcharts-17.08.2.tar.xz"; + sha256 = "186rqlwjpa43z9qi8m2xkyc739plq7cmvn6jkzgl4k21pkfbgx9f"; + name = "kqtquickcharts-17.08.2.tar.xz"; }; }; krdc = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/krdc-16.12.3.tar.xz"; - sha256 = "0visx3371ym78n9aqkln2akvvf0rphyxg5hxvc2981pgpdry20zq"; - name = "krdc-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/krdc-17.08.2.tar.xz"; + sha256 = "1yv8z3hhhwrcy58lkaifnqkq38p9gs9sc6dhd3i6fpn1bci1j72a"; + name = "krdc-17.08.2.tar.xz"; }; }; kremotecontrol = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kremotecontrol-16.12.3.tar.xz"; - sha256 = "0xcs8gvb7ack0xqdp99x04lyv6hbqgxa5nq44pxl7czzc0la5nbk"; - name = "kremotecontrol-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kremotecontrol-17.08.2.tar.xz"; + sha256 = "0f31zbf7yc59jvdm7ivb0g7wwh5mmdk26kyjqw8dg46hg29k1p79"; + name = "kremotecontrol-17.08.2.tar.xz"; }; }; kreversi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kreversi-16.12.3.tar.xz"; - sha256 = "1qi6y263c8qp0bv9vmjk4rxq55mc0v1kn56yvivc5sfg9p4bqs9b"; - name = "kreversi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kreversi-17.08.2.tar.xz"; + sha256 = "1zrhaxnkjirkwjmbqjpagx6jijqdvb8khfhv7pwxij2q5ia9k7d8"; + name = "kreversi-17.08.2.tar.xz"; }; }; krfb = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/krfb-16.12.3.tar.xz"; - sha256 = "1ijz0zdlkxb9mldgd5a5k7aa2ikmmg023mafmxrjwymsig7ya4hv"; - name = "krfb-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/krfb-17.08.2.tar.xz"; + sha256 = "1554ziphhwck62cyfq60nwiivxb9vvc7l03iz5ncwj1apgmrj9m8"; + name = "krfb-17.08.2.tar.xz"; }; }; kross-interpreters = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kross-interpreters-16.12.3.tar.xz"; - sha256 = "0z1n42imbhsx0qmx479sklnihwvbd5l5pigbpbpm80rgwda2ib57"; - name = "kross-interpreters-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kross-interpreters-17.08.2.tar.xz"; + sha256 = "0g5p25s1r1i60dlgsh9kwpq851cxhmprj6z00b91z6hj46v2zzx8"; + name = "kross-interpreters-17.08.2.tar.xz"; }; }; kruler = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kruler-16.12.3.tar.xz"; - sha256 = "08w7pb7wyaqnhwvqczxzbrbnm8930wzkl8y4lpimp5mqzb94i8qx"; - name = "kruler-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kruler-17.08.2.tar.xz"; + sha256 = "0c1sdb3nihpi3p82s49g9k86ivnr499b3jdzrqh6hfcr6dbhi8x6"; + name = "kruler-17.08.2.tar.xz"; }; }; ksaneplugin = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksaneplugin-16.12.3.tar.xz"; - sha256 = "1z0ziapcjmi7fqfnb0zsbjgd1q05np1s7smj1k8cd8c6f169yrld"; - name = "ksaneplugin-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksaneplugin-17.08.2.tar.xz"; + sha256 = "0zp898jb1vc5zliidhn5v4lqlqmmpn33fxarm5br9ks4zpqzam0y"; + name = "ksaneplugin-17.08.2.tar.xz"; }; }; kscd = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kscd-16.12.3.tar.xz"; - sha256 = "1mpba78m4hs8541n4ydz7vswq1chi0fmmlfw2kqnrzarcandyga0"; - name = "kscd-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kscd-17.08.2.tar.xz"; + sha256 = "1p79dwp0gwdffhz5dhdpcyc8hrzs0ks8kxzhrrxksazc25wh3l8y"; + name = "kscd-17.08.2.tar.xz"; }; }; kshisen = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kshisen-16.12.3.tar.xz"; - sha256 = "17szjblrp172rvyl98x5a0g9yg29b85bmwkzk7pqnjbn387kgy9r"; - name = "kshisen-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kshisen-17.08.2.tar.xz"; + sha256 = "1kbyhxc5kp7s3if6lb39wjx1yxrwzkavf5vrlm0xynwzr560n6ar"; + name = "kshisen-17.08.2.tar.xz"; }; }; ksirk = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksirk-16.12.3.tar.xz"; - sha256 = "1akfskyfhffh71w2hknw9vvap2a2sq0irmkxij9xcdmlvpfwnkn5"; - name = "ksirk-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksirk-17.08.2.tar.xz"; + sha256 = "0q19yvghp6fgdpjgs9qc3rxqm4ahf5h2dbnw32v3c1hv095dfvi0"; + name = "ksirk-17.08.2.tar.xz"; }; }; ksnakeduel = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksnakeduel-16.12.3.tar.xz"; - sha256 = "1797kac3prchq5254dby41k04i8i7hgf2a9cb8s71n7hrsj62dyn"; - name = "ksnakeduel-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksnakeduel-17.08.2.tar.xz"; + sha256 = "1gbsf3fmkpl438wq7xpvmyanm6p7knnyxvbvbd0my288xb4l3xf5"; + name = "ksnakeduel-17.08.2.tar.xz"; }; }; kspaceduel = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kspaceduel-16.12.3.tar.xz"; - sha256 = "0ipx1sxhv207nlw7rcp7155l76z39x7j1b5y3qwxcgd7s69wb82k"; - name = "kspaceduel-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kspaceduel-17.08.2.tar.xz"; + sha256 = "13pbg1pwl25qlyb9kha08gnpbx6njclld8zlasvpym2c4db5cxx2"; + name = "kspaceduel-17.08.2.tar.xz"; }; }; ksquares = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksquares-16.12.3.tar.xz"; - sha256 = "0abd19hf1rvlzkxc4kvdljs5yk39pay81n3n9n0w6qyr764r4qn9"; - name = "ksquares-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksquares-17.08.2.tar.xz"; + sha256 = "1l2pgm3rj3cl7jgc1q7rjbv3kmi6zm4jh29r1q7zhfsiwin0sfz5"; + name = "ksquares-17.08.2.tar.xz"; }; }; kstars = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kstars-16.12.3.tar.xz"; - sha256 = "0lcrn7r1nw85c0w6dg03mwf5lnsahmww60y6vwzfh2r53nbm9c1y"; - name = "kstars-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kstars-17.08.2.tar.xz"; + sha256 = "1l1bjqwhvzw5czlfjg4zqk48bva9xlrn53grlbl2yywzvmn5jhgy"; + name = "kstars-17.08.2.tar.xz"; }; }; ksudoku = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksudoku-16.12.3.tar.xz"; - sha256 = "00hi8x09fj5ahj0ah9rsci2dscrdl8x9mrlcacjrwgwm503y95gk"; - name = "ksudoku-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksudoku-17.08.2.tar.xz"; + sha256 = "0hb4901gx81ra8mcrcsqbdhjqxfd1s5sxal4xhg72yd80qsg1da1"; + name = "ksudoku-17.08.2.tar.xz"; }; }; ksystemlog = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ksystemlog-16.12.3.tar.xz"; - sha256 = "0xd6pp02k84a1r6gy10x0br33g4awpbhx45j7n69l1s96szj4aki"; - name = "ksystemlog-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ksystemlog-17.08.2.tar.xz"; + sha256 = "16fiprkbkpnnc17qkgsd4w8givk6ny3kflb8pc87f2zs2vw6dfad"; + name = "ksystemlog-17.08.2.tar.xz"; }; }; kteatime = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kteatime-16.12.3.tar.xz"; - sha256 = "0wqzw9sa4zkgkwndvyas47x5wc4gcya3pmdcvg7wf7wl8j5k7vdy"; - name = "kteatime-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kteatime-17.08.2.tar.xz"; + sha256 = "1cxxcaqzpjp6n8afrg1rw61grvmmla36r979761p3w0hwpgdrln3"; + name = "kteatime-17.08.2.tar.xz"; }; }; ktimer = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktimer-16.12.3.tar.xz"; - sha256 = "0hpskwa8g88fz39b0y7sjl574s82d6smla1bhs8mdjlabv0sln6z"; - name = "ktimer-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktimer-17.08.2.tar.xz"; + sha256 = "0vi9lrjazw8vq811qgcd7wyfkd2n60drszii8gx7w9jq8f0hkvfp"; + name = "ktimer-17.08.2.tar.xz"; }; }; ktnef = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktnef-16.12.3.tar.xz"; - sha256 = "0v38h7bwjwab1656w3c2h1by5925f616idnvflgp123v1cs6jy1n"; - name = "ktnef-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktnef-17.08.2.tar.xz"; + sha256 = "012c1xsqj1ilq7w0shh22nmvkh1l56sn3ycg6xsigchk203im17d"; + name = "ktnef-17.08.2.tar.xz"; }; }; ktouch = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktouch-16.12.3.tar.xz"; - sha256 = "17gkvzczfgmip18y3jbjisz4z8m5hwbgkqn4qynabp6dqihwhzgg"; - name = "ktouch-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktouch-17.08.2.tar.xz"; + sha256 = "0zrqmhag522ri8d56hlrrdmgfh6ywswahs7mss61dbyig5bpfy4g"; + name = "ktouch-17.08.2.tar.xz"; }; }; ktp-accounts-kcm = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-accounts-kcm-16.12.3.tar.xz"; - sha256 = "0pr191i9fmz66wlv8krmy1pba7igd1qwa0akb4kdzkm4bx3z8wq3"; - name = "ktp-accounts-kcm-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-accounts-kcm-17.08.2.tar.xz"; + sha256 = "0nkji06d23y7qa505r3971r83w8pnf1jrz5l3k9di1s0x93cd2lm"; + name = "ktp-accounts-kcm-17.08.2.tar.xz"; }; }; ktp-approver = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-approver-16.12.3.tar.xz"; - sha256 = "08aj2j9bjdyigl4cx65v5fjsdayid07mx0mq72iy6l17d8z4b39a"; - name = "ktp-approver-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-approver-17.08.2.tar.xz"; + sha256 = "07mismz8srzwy7bkfh1gqzrxbj40xavnahhf8dhbskqn4sw8j50q"; + name = "ktp-approver-17.08.2.tar.xz"; }; }; ktp-auth-handler = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-auth-handler-16.12.3.tar.xz"; - sha256 = "08ryqkba9zngjabsp1b9w13psp0n97qhjd31id007hc6r6s1nxxx"; - name = "ktp-auth-handler-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-auth-handler-17.08.2.tar.xz"; + sha256 = "0ncbmvld2v6wz9zknrj699pixxjlk7kk22xj9q0q6ay3cdiivcf2"; + name = "ktp-auth-handler-17.08.2.tar.xz"; }; }; ktp-call-ui = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-call-ui-16.12.3.tar.xz"; - sha256 = "1aq0s4v972kskjnq720364y971iyr0m6pj42fw5rpkl7j8vfg1rd"; - name = "ktp-call-ui-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-call-ui-17.08.2.tar.xz"; + sha256 = "12k5qar1v0faqqsmzvqb8932hndk8kzhc5dkib1kccq7g068br2v"; + name = "ktp-call-ui-17.08.2.tar.xz"; }; }; ktp-common-internals = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-common-internals-16.12.3.tar.xz"; - sha256 = "0g3vmds5f7wmffp9rv915bll8ky7qf3lz172ymc6q9i1xvghp215"; - name = "ktp-common-internals-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-common-internals-17.08.2.tar.xz"; + sha256 = "1423sd43xyjzs0fbpvs6nsd1rgfd8ffgmpzbyal1s2f3rb4hfk8h"; + name = "ktp-common-internals-17.08.2.tar.xz"; }; }; ktp-contact-list = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-contact-list-16.12.3.tar.xz"; - sha256 = "05asblclq6sjd3d9faaj2ya37srf4lhg8jx705aw13wd5d6pk75w"; - name = "ktp-contact-list-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-contact-list-17.08.2.tar.xz"; + sha256 = "1g07v4am7m3qyq2b8bidxdgz2iwilzsq5nigzxag44nx3kc5n269"; + name = "ktp-contact-list-17.08.2.tar.xz"; }; }; ktp-contact-runner = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-contact-runner-16.12.3.tar.xz"; - sha256 = "1lcx9smfv2dqrwsbdd4srcq7dqap8bclz788p6jjn04xi6wcbbiq"; - name = "ktp-contact-runner-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-contact-runner-17.08.2.tar.xz"; + sha256 = "145mbfpbzsrpqpk260jq44yiawj02fw27rr70b8j8az6jffjd1i2"; + name = "ktp-contact-runner-17.08.2.tar.xz"; }; }; ktp-desktop-applets = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-desktop-applets-16.12.3.tar.xz"; - sha256 = "1pd8vzwmxcsw6pq80r9casi07wwisr70l5ffm231v9d73k4fw7kv"; - name = "ktp-desktop-applets-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-desktop-applets-17.08.2.tar.xz"; + sha256 = "0kj2k78pcyswykqlh0clvh475f1c62910bxhnk03533fxrgdib3v"; + name = "ktp-desktop-applets-17.08.2.tar.xz"; }; }; ktp-filetransfer-handler = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-filetransfer-handler-16.12.3.tar.xz"; - sha256 = "0ddmrpnh6myl7m3drh3cxx9pp06al98g8mppnysmgswgkwafg6cq"; - name = "ktp-filetransfer-handler-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-filetransfer-handler-17.08.2.tar.xz"; + sha256 = "10v0j46fdbmgciznwrxvb6wn037535w4sinvhn7r2myhf7vsvpah"; + name = "ktp-filetransfer-handler-17.08.2.tar.xz"; }; }; ktp-kded-module = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-kded-module-16.12.3.tar.xz"; - sha256 = "06zw8padspbn8ydcbs69v3ggmfpqrb3axxd2v1sgg4p4kdp0jyml"; - name = "ktp-kded-module-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-kded-module-17.08.2.tar.xz"; + sha256 = "03p75jdh0q3709rcc5m2iv75rjphjsbgr40kaphakv57xk5wdhqv"; + name = "ktp-kded-module-17.08.2.tar.xz"; }; }; ktp-send-file = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-send-file-16.12.3.tar.xz"; - sha256 = "1m7cj3q4lzj8qj2cla6wm1crpjid77b3f3yywri167f1zd4p51z6"; - name = "ktp-send-file-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-send-file-17.08.2.tar.xz"; + sha256 = "15pyjxhcg7hl0p3bq11w3mrn10i3q0man6rqp7w6vqlq19bjndl3"; + name = "ktp-send-file-17.08.2.tar.xz"; }; }; ktp-text-ui = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktp-text-ui-16.12.3.tar.xz"; - sha256 = "0ssxr35vcqjppnppyjxwzrkzvb5sx45fpnvbzsv9md5rnlf2xh1k"; - name = "ktp-text-ui-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktp-text-ui-17.08.2.tar.xz"; + sha256 = "1my2k34adf95alppq4n69apin72bnl8n84mj7b61pndjiixh4q7b"; + name = "ktp-text-ui-17.08.2.tar.xz"; }; }; ktuberling = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/ktuberling-16.12.3.tar.xz"; - sha256 = "1vn35bn0x5ykd9j78q5apg1i14v546jrqq1yn2q178d9qmx79pgv"; - name = "ktuberling-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/ktuberling-17.08.2.tar.xz"; + sha256 = "02vwy4zbzj80a9233107xgqa52r3pi4hgnvi6cpbdq9cmvcxw7fq"; + name = "ktuberling-17.08.2.tar.xz"; }; }; kturtle = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kturtle-16.12.3.tar.xz"; - sha256 = "1mpdwb6999nar16mpha30cf4qzmpbsdha44aw77gn301v215rwj3"; - name = "kturtle-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kturtle-17.08.2.tar.xz"; + sha256 = "0vx7im20yk1172cb5g7z7mkhbsbx78ad9azs5d23rsv9fpzwikc2"; + name = "kturtle-17.08.2.tar.xz"; }; }; kubrick = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kubrick-16.12.3.tar.xz"; - sha256 = "1bwr8xi4d58k94h7lpl02iqf87nxhpls33ca654kzy353awqbp7f"; - name = "kubrick-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kubrick-17.08.2.tar.xz"; + sha256 = "0f9smvasgnjswx6jvhw4b7q58k47y1mv48vzygdx61zz1jyxjr8n"; + name = "kubrick-17.08.2.tar.xz"; }; }; kwalletmanager = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kwalletmanager-16.12.3.tar.xz"; - sha256 = "07miaqr0yaqb0lkssb1jfg35cvr9svn16nhvb1zffvbf9fdlim47"; - name = "kwalletmanager-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kwalletmanager-17.08.2.tar.xz"; + sha256 = "1a2q58wjb816fb0wfr4d7i790jxxwbfw9fpk1g8lkfk3kbvdgsnj"; + name = "kwalletmanager-17.08.2.tar.xz"; }; }; kwave = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kwave-16.12.3.tar.xz"; - sha256 = "1s5zwhck204m5rkrpmbghzid3dpzhqbwsilb5pfh4128d04fx9ad"; - name = "kwave-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kwave-17.08.2.tar.xz"; + sha256 = "1szn09swm8072x2mhy9q1szjm32pgg8agga1r2chf3jxc5iah2h3"; + name = "kwave-17.08.2.tar.xz"; }; }; kwordquiz = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/kwordquiz-16.12.3.tar.xz"; - sha256 = "1r8q2d6j7bq8jdr4cl9maapadzg7yp0zldjxkcqg08ldwsrrsnqj"; - name = "kwordquiz-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/kwordquiz-17.08.2.tar.xz"; + sha256 = "0i7jl7rb4bxkifvpf6dsscbvwsay9a5jvvbkkajcwfr1v5r2w969"; + name = "kwordquiz-17.08.2.tar.xz"; }; }; libgravatar = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libgravatar-16.12.3.tar.xz"; - sha256 = "0m726ixss72rz3gwgn7q5s34xwbghi877y7gxa1ilcrk9rhyxv2f"; - name = "libgravatar-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libgravatar-17.08.2.tar.xz"; + sha256 = "0zsxijykxxa4lg939wzv0vxh8jr6smmdd0zip8bimvdc4x2k6dv1"; + name = "libgravatar-17.08.2.tar.xz"; }; }; libkcddb = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkcddb-16.12.3.tar.xz"; - sha256 = "0iaascv9a5g8681mjc6b7f2fd8fdi9p3dx8l9lapkpzcygy1fwpc"; - name = "libkcddb-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkcddb-17.08.2.tar.xz"; + sha256 = "0hlk2302cnpk896fmaq7p5ph7baxi3dz673qpy8f9hlcbj5k4j35"; + name = "libkcddb-17.08.2.tar.xz"; }; }; libkcompactdisc = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkcompactdisc-16.12.3.tar.xz"; - sha256 = "021yws9854w6fwwfw31b87rpz92ach5xyq427968m3mc3c430d4l"; - name = "libkcompactdisc-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkcompactdisc-17.08.2.tar.xz"; + sha256 = "0fimkf94xd7v2cv2ixs38x4bpsrrfk4n36i7qbpakrvnw60q0rk4"; + name = "libkcompactdisc-17.08.2.tar.xz"; }; }; libkdcraw = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkdcraw-16.12.3.tar.xz"; - sha256 = "03ag6vzdj5n7zbb8yb9k84ckm1zwp2i9qqrsfn2mmmhypwknpg4w"; - name = "libkdcraw-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkdcraw-17.08.2.tar.xz"; + sha256 = "140wq3h13gz3sv4d67i1pnrlzghy22zxf7ads0wia0iq85s7247m"; + name = "libkdcraw-17.08.2.tar.xz"; }; }; libkdegames = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkdegames-16.12.3.tar.xz"; - sha256 = "0w7q7x04imwrdfj5zwgv0y49k4wi7a6ghqipyc5qmrwfg9ya85b3"; - name = "libkdegames-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkdegames-17.08.2.tar.xz"; + sha256 = "1131q3i7a4xz5rmcp820hjqp9bmv2wdbq6afp01572lbn9dryvir"; + name = "libkdegames-17.08.2.tar.xz"; }; }; libkdepim = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkdepim-16.12.3.tar.xz"; - sha256 = "07afpxhvxpf50h10vg6vla543n4rvy1grldjj4aygwh1fgl5snm0"; - name = "libkdepim-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkdepim-17.08.2.tar.xz"; + sha256 = "04n4gj2rfafkb1k2c9yq9zshmy70ag415gmc24y7js82s20jh7y8"; + name = "libkdepim-17.08.2.tar.xz"; }; }; libkeduvocdocument = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkeduvocdocument-16.12.3.tar.xz"; - sha256 = "05s79q269m5s78zjwxljxvprrqvpalf6h38n90m589vks82ahxx0"; - name = "libkeduvocdocument-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkeduvocdocument-17.08.2.tar.xz"; + sha256 = "0scj7l554zqxax4i2lg8qbw11ansrl2hp422b8348lzmcdcndsyp"; + name = "libkeduvocdocument-17.08.2.tar.xz"; }; }; libkexiv2 = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkexiv2-16.12.3.tar.xz"; - sha256 = "02fr10prqmpaqqlcj8hf5h4b3vhhiwkfsbpzlag64n5764x1hl3f"; - name = "libkexiv2-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkexiv2-17.08.2.tar.xz"; + sha256 = "0251w8y36d7k9wnm52ycbz4yr0310bkr7msnfs6828npfzynmy6i"; + name = "libkexiv2-17.08.2.tar.xz"; }; }; libkface = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkface-16.12.3.tar.xz"; - sha256 = "068xixlw0hfhi3c9nxik2y6xyci1ilwwfq4sjm1paqfszp0f4rq8"; - name = "libkface-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkface-17.08.2.tar.xz"; + sha256 = "1x9vg4dadgcxawprqxzv6glnl9b2b5qxvq7rvnr2vi4a5p0j3kkf"; + name = "libkface-17.08.2.tar.xz"; + }; + }; + libkgapi = { + version = "17.08.2"; + src = fetchurl { + url = "${mirror}/stable/applications/17.08.2/src/libkgapi-17.08.2.tar.xz"; + sha256 = "1rpixzydg9421gblywyj8798d786yw9qfm7dnkn7dkzbm44pfrl4"; + name = "libkgapi-17.08.2.tar.xz"; }; }; libkgeomap = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkgeomap-16.12.3.tar.xz"; - sha256 = "1zz2w7cbabyrvzvw2ph38mxw7khyhjzg86na2lcywla7japlbsd9"; - name = "libkgeomap-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkgeomap-17.08.2.tar.xz"; + sha256 = "1s0bhv4f97241k98ss1laki04z7gcx47apps06gl0px3xgmzfyk7"; + name = "libkgeomap-17.08.2.tar.xz"; }; }; libkipi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkipi-16.12.3.tar.xz"; - sha256 = "0f1m0v0cm11dqwm3n9w1mwz25sj3bggx19fi0jj4ij7zqicpykz6"; - name = "libkipi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkipi-17.08.2.tar.xz"; + sha256 = "1hgmiazsy80hxfgc0y01wg1nzz33q8l0iw6g1sl8cxkgb06hkw93"; + name = "libkipi-17.08.2.tar.xz"; }; }; libkleo = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkleo-16.12.3.tar.xz"; - sha256 = "0rzp2bxqij9fkdsghskd2f05vgcybdc9l7wdrjqhhcngi8qxl0nn"; - name = "libkleo-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkleo-17.08.2.tar.xz"; + sha256 = "0qk4mf2sgji2pc3jjd0bxan7d40f7qkg9c3sgbrxvcy3jg3vdly5"; + name = "libkleo-17.08.2.tar.xz"; }; }; libkmahjongg = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkmahjongg-16.12.3.tar.xz"; - sha256 = "0fhz7jp4wcvjcicyiwc4qq4vviwagfjdy6n5bhv7bmlccq4xfk5x"; - name = "libkmahjongg-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkmahjongg-17.08.2.tar.xz"; + sha256 = "1jibrvwy0147lwx09n19k1nj2vnssqwyc3slx6b0z3l23apa7vdw"; + name = "libkmahjongg-17.08.2.tar.xz"; }; }; libkomparediff2 = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libkomparediff2-16.12.3.tar.xz"; - sha256 = "1hm2d6217qwxsq6nyyh7iv573zkkmcn68x188zav48kmydj45l9i"; - name = "libkomparediff2-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libkomparediff2-17.08.2.tar.xz"; + sha256 = "0xc00yh2v7dhnsr70ndiql6rid8yjqdh968qbmpc5jlhhk00ws80"; + name = "libkomparediff2-17.08.2.tar.xz"; }; }; libksane = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libksane-16.12.3.tar.xz"; - sha256 = "0406jdzs193scmb8rkx2fqcr2a0svz53sf1av9qi2nq9dnil9hcq"; - name = "libksane-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libksane-17.08.2.tar.xz"; + sha256 = "0ilysa21wadnv4kcyi4g268l8mzyab7m31wq8plc1hxbi1wjb72l"; + name = "libksane-17.08.2.tar.xz"; }; }; libksieve = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/libksieve-16.12.3.tar.xz"; - sha256 = "1riqsfl3x4vpwqv7398gj86hnwfzqwfj7d69wsxk3r02jp3xd9i2"; - name = "libksieve-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/libksieve-17.08.2.tar.xz"; + sha256 = "0ypa7inmndq9k08gbcliwvx5x2q7z9dwx236wvq0zww0sjgnbdyx"; + name = "libksieve-17.08.2.tar.xz"; }; }; lokalize = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/lokalize-16.12.3.tar.xz"; - sha256 = "17ikk89680jjzv95gnrzah4bi3xnyp5mi64prhblhw7kz6vlf8x0"; - name = "lokalize-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/lokalize-17.08.2.tar.xz"; + sha256 = "024awg6xhncgzvg88n57waxcw9i5k1cmp3f16l4ic93wrk8ga8c9"; + name = "lokalize-17.08.2.tar.xz"; }; }; lskat = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/lskat-16.12.3.tar.xz"; - sha256 = "02mqb4c650ydy9qp3qg1avrj0m0a8yxmg0zw6hcv5pvckgfpcxki"; - name = "lskat-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/lskat-17.08.2.tar.xz"; + sha256 = "1lc99vik1bi474wwjr9pkfd9xhxs2rw6rcb72a3bq4ks83m3kmf0"; + name = "lskat-17.08.2.tar.xz"; }; }; mailcommon = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/mailcommon-16.12.3.tar.xz"; - sha256 = "1sx7dgy9jad6vqp1dljg9m40x57zz6xy9d2f1lgab5ibs1lrjhq5"; - name = "mailcommon-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/mailcommon-17.08.2.tar.xz"; + sha256 = "1g9dr7ilw65zpjvr12hkambk691zynv9xgg9kcya1krmh50hdi53"; + name = "mailcommon-17.08.2.tar.xz"; }; }; mailimporter = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/mailimporter-16.12.3.tar.xz"; - sha256 = "08yj4i6jy08hk62mxw299sh2n5pknzxanmzr96n6lf8g1jcf2l21"; - name = "mailimporter-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/mailimporter-17.08.2.tar.xz"; + sha256 = "1xy07wlvvg5rs9534llsd6amaxk2sylx8lfzr22s17fcpr0rl71s"; + name = "mailimporter-17.08.2.tar.xz"; }; }; marble = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/marble-16.12.3.tar.xz"; - sha256 = "08dykrmiq1jk9yv83sjj6s3gps56bw0hxjbvb90bzd1g0kh0c82j"; - name = "marble-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/marble-17.08.2.tar.xz"; + sha256 = "1yvhmmfgflsknlx0ffpj82clkd4py6kalf9dcf04f3lfw0k559fm"; + name = "marble-17.08.2.tar.xz"; }; }; mbox-importer = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/mbox-importer-16.12.3.tar.xz"; - sha256 = "04sxijnyr13yjqkd1wm14bxm3k7r17dv24mfb3kbf804s7g8hvq7"; - name = "mbox-importer-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/mbox-importer-17.08.2.tar.xz"; + sha256 = "1g8zvg4xxpnic1qf020zcyy6bijz4a094xzdxyx64lq7wp1bi269"; + name = "mbox-importer-17.08.2.tar.xz"; }; }; messagelib = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/messagelib-16.12.3.tar.xz"; - sha256 = "1s5r5w231lzy3csljd5qil54ibm9mjs7c9hbw1whqmn4kd0vaz15"; - name = "messagelib-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/messagelib-17.08.2.tar.xz"; + sha256 = "0wb371cb7glwvwhmk76r5ziq821b87d8cq9fy4pgxlj1wvsny2km"; + name = "messagelib-17.08.2.tar.xz"; }; }; minuet = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/minuet-16.12.3.tar.xz"; - sha256 = "15c0mw8qj7r6192h39lvsmiy3pqlfqzari4qjg2x44j5gq02ab3c"; - name = "minuet-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/minuet-17.08.2.tar.xz"; + sha256 = "1x9h3k8dpn40119s1vxpnkj78glx0hajfg9wh7jnm70phasn1jci"; + name = "minuet-17.08.2.tar.xz"; }; }; okteta = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/okteta-16.12.3.tar.xz"; - sha256 = "14wmacbxc5kc3y5y5lsdxgsswi1jdvlxsd0xqcims50xjpb8znpd"; - name = "okteta-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/okteta-17.08.2.tar.xz"; + sha256 = "1f1gpyyd1xcdii34hjhflqaxfnk3clnin2ihb6fpkbz5fz2020bq"; + name = "okteta-17.08.2.tar.xz"; }; }; okular = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/okular-16.12.3.tar.xz"; - sha256 = "1gilr9nviv51pcnmqdfw7834knvyfd11ggdjvinxvbpz61832niv"; - name = "okular-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/okular-17.08.2.tar.xz"; + sha256 = "0mkyqg5n870zc2ryxgwyrf9n57gn5jfj9wvlwc405h5q8zf5fvy5"; + name = "okular-17.08.2.tar.xz"; }; }; palapeli = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/palapeli-16.12.3.tar.xz"; - sha256 = "13s9ybj8a1f39z66syj88vx8rygdbb969b1d5r01msav3lk8ar3j"; - name = "palapeli-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/palapeli-17.08.2.tar.xz"; + sha256 = "1smp7an5b059hp5d8bjwq65d11zkfbfcr1kkapbljamg1ydd4y21"; + name = "palapeli-17.08.2.tar.xz"; }; }; parley = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/parley-16.12.3.tar.xz"; - sha256 = "0vmbn8188brp4bysyzmkgsa8nnn9zdqb7q6x3mi1xg7ralzfjw71"; - name = "parley-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/parley-17.08.2.tar.xz"; + sha256 = "15m4vsmk9s4dh5rv7x2vdcy8kbi334nms79aj8yvx01nlipv7m79"; + name = "parley-17.08.2.tar.xz"; }; }; picmi = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/picmi-16.12.3.tar.xz"; - sha256 = "0v44n05b6v46qmfrgq6b0q8bifnz5ax1f6sjrg6940q99kp2cxx4"; - name = "picmi-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/picmi-17.08.2.tar.xz"; + sha256 = "01fqrd9za748m6gxbq3i3yvvmz2qkf3kln14wwl69hc29b6ikk0k"; + name = "picmi-17.08.2.tar.xz"; }; }; pimcommon = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/pimcommon-16.12.3.tar.xz"; - sha256 = "179ig6rwxil1ssm7k2cy7ny3vf2dbhsjn39c0ic70r03q3lzbhll"; - name = "pimcommon-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/pimcommon-17.08.2.tar.xz"; + sha256 = "01jh4c55yk4wmi3i7f81hgs0bgqxpm8fccvg51z2k05swdm7x10b"; + name = "pimcommon-17.08.2.tar.xz"; }; }; pim-data-exporter = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/pim-data-exporter-16.12.3.tar.xz"; - sha256 = "14xvh2gn3vc3i94fv96xbv7gxnwj8xxg3zkgfdlayajp3sz7c3yw"; - name = "pim-data-exporter-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/pim-data-exporter-17.08.2.tar.xz"; + sha256 = "1xnv07lvhbb12qp0jcrd39l54gsgnifdn1ibzxh7fnbdrv3iqxqv"; + name = "pim-data-exporter-17.08.2.tar.xz"; }; }; pim-sieve-editor = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/pim-sieve-editor-16.12.3.tar.xz"; - sha256 = "03gnq2hlvw92gg8rf2bwrvf83nrgcvy6xanvwn3vcrqjfg55vb1k"; - name = "pim-sieve-editor-16.12.3.tar.xz"; - }; - }; - pim-storage-service-manager = { - version = "16.12.3"; - src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/pim-storage-service-manager-16.12.3.tar.xz"; - sha256 = "0ii1f5gv430i8h2c4xdy35rz7w9py53xans8zwgpj6ir6x6gfkb0"; - name = "pim-storage-service-manager-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/pim-sieve-editor-17.08.2.tar.xz"; + sha256 = "0fnm055sx18ripf5vhpiqi628vkvvgyhaw4xw7hz6hbmv8f3qsma"; + name = "pim-sieve-editor-17.08.2.tar.xz"; }; }; poxml = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/poxml-16.12.3.tar.xz"; - sha256 = "1cpc49hnslc2iabgnvda7967mmrdzykjydi8py67ycr9k1gx6pm5"; - name = "poxml-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/poxml-17.08.2.tar.xz"; + sha256 = "1hkw1m3w5v12c8vm9wdksrb9q92lki3m97949h91zmdr7lc3s3sd"; + name = "poxml-17.08.2.tar.xz"; }; }; print-manager = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/print-manager-16.12.3.tar.xz"; - sha256 = "1mjzqq7yhm1s4jbr6nhy1i1lm27134j6g7b04mmzk3hbgd8lkr99"; - name = "print-manager-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/print-manager-17.08.2.tar.xz"; + sha256 = "1gcr265bzj3knhqflyj12zza3cd94vgny8bxqqk7xbs2mii0pjsd"; + name = "print-manager-17.08.2.tar.xz"; }; }; rocs = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/rocs-16.12.3.tar.xz"; - sha256 = "17iz9ql988mj1vsvywd8w5w7qmbncxal71maf3rldadwmadkvzbl"; - name = "rocs-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/rocs-17.08.2.tar.xz"; + sha256 = "0y0d64fdy22kx0bpbh9wkpxg8zqg24y02ww32h3p52zxyxcx7zf1"; + name = "rocs-17.08.2.tar.xz"; }; }; signon-kwallet-extension = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/signon-kwallet-extension-16.12.3.tar.xz"; - sha256 = "0fnqdcin471hlw694vb6z9ybgw31778rhnryc7zps40kjwfdxhcc"; - name = "signon-kwallet-extension-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/signon-kwallet-extension-17.08.2.tar.xz"; + sha256 = "1fnhzbd5akvr9cmwfpxv7dy9bd8z7lcqzpyh9m84gdw1ppgzqypp"; + name = "signon-kwallet-extension-17.08.2.tar.xz"; }; }; spectacle = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/spectacle-16.12.3.tar.xz"; - sha256 = "1fca71a59sgicq9zi8d0im0xpg7iz93s96h3clxxc6p493vsjkx6"; - name = "spectacle-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/spectacle-17.08.2.tar.xz"; + sha256 = "1wv8ld3s69v00gvlk6r49v86z5l2xy243ily917v8c1imzvz6xhj"; + name = "spectacle-17.08.2.tar.xz"; }; }; step = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/step-16.12.3.tar.xz"; - sha256 = "0pyvhlfrklc2xxylb0nlnpqx5xi0pp4zyb3xbzj87wmvcw7v5n6r"; - name = "step-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/step-17.08.2.tar.xz"; + sha256 = "0llag76b39vf20rbm8zgvs4hh3pynb85a2gbbgxb3v4kvg9nj9zk"; + name = "step-17.08.2.tar.xz"; }; }; svgpart = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/svgpart-16.12.3.tar.xz"; - sha256 = "0frzqp504dzqwqs9lh544xxa8i6sqi6qj533mqbzkqbjx310ka3w"; - name = "svgpart-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/svgpart-17.08.2.tar.xz"; + sha256 = "10xmbck1kwp0hhg5k8v9ay2bh36xvvpz1mnixydmsyrc0x9n2zh4"; + name = "svgpart-17.08.2.tar.xz"; }; }; sweeper = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/sweeper-16.12.3.tar.xz"; - sha256 = "1vf4840l233gji4sjkg9gz2pr98kin5sz37kj645z75vikwmk3al"; - name = "sweeper-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/sweeper-17.08.2.tar.xz"; + sha256 = "1sr1fw4ny09ch0hmgn4npd6hfvgc52xfwmys1kid7hi8lwrsn7g5"; + name = "sweeper-17.08.2.tar.xz"; }; }; syndication = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/syndication-16.12.3.tar.xz"; - sha256 = "11qa0jya3fjvhwsq98aag92ha20y7x758fvc4xi3800rbj8nlc58"; - name = "syndication-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/syndication-17.08.2.tar.xz"; + sha256 = "165fcw486qxlq5lmab7qa9bc7pkc3jfc4xqx1m5k4rgwapfk0sv9"; + name = "syndication-17.08.2.tar.xz"; }; }; umbrello = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/umbrello-16.12.3.tar.xz"; - sha256 = "1a4jhfmh2p1vsx8702ham550blkjj42ibwigcink6s9cadwk90cl"; - name = "umbrello-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/umbrello-17.08.2.tar.xz"; + sha256 = "0prwsw8qwcgia98kjvh9xbv3cdnh24fqk2zl59diighw11q2dnsk"; + name = "umbrello-17.08.2.tar.xz"; }; }; zeroconf-ioslave = { - version = "16.12.3"; + version = "17.08.2"; src = fetchurl { - url = "${mirror}/stable/applications/16.12.3/src/zeroconf-ioslave-16.12.3.tar.xz"; - sha256 = "0p7kfx7bg3yvd44vg608s2znzfahkihan67zgyf3gmjllbzvp55b"; - name = "zeroconf-ioslave-16.12.3.tar.xz"; + url = "${mirror}/stable/applications/17.08.2/src/zeroconf-ioslave-17.08.2.tar.xz"; + sha256 = "0bki5dz2n8psja4mfj65hshaz7qdniyx7r72kv8xn8xk0vj292x3"; + name = "zeroconf-ioslave-17.08.2.tar.xz"; }; }; } diff --git a/pkgs/applications/kde/syndication.nix b/pkgs/applications/kde/syndication.nix new file mode 100644 index 00000000000..42782d449d5 --- /dev/null +++ b/pkgs/applications/kde/syndication.nix @@ -0,0 +1,16 @@ +{ + mkDerivation, lib, kdepimTeam, + extra-cmake-modules, kdoctools, + kio +}: + +mkDerivation { + name = "syndication"; + meta = { + license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; + maintainers = kdepimTeam; + }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ kio ]; + outputs = [ "out" "dev" ]; +} diff --git a/pkgs/applications/misc/abook/default.nix b/pkgs/applications/misc/abook/default.nix index 2c4bc0f2128..f87bd4c11ec 100644 --- a/pkgs/applications/misc/abook/default.nix +++ b/pkgs/applications/misc/abook/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, ncurses, readline }: +{ stdenv, fetchurl, fetchpatch, pkgconfig, ncurses, readline, autoreconfHook }: stdenv.mkDerivation rec { - name = "abook-0.6.0pre2"; + name = "abook-0.6.1"; src = fetchurl { url = "http://abook.sourceforge.net/devel/${name}.tar.gz"; - sha256 = "11fkyq9bqw7s6jf38yglk8bsx0ar2wik0fq0ds0rdp8985849m2r"; + sha256 = "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh"; }; patches = [ @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ ncurses readline ]; meta = { - homepage = "http://abook.sourceforge.net/"; + homepage = http://abook.sourceforge.net/; description = "Text-based addressbook program designed to use with mutt mail client"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix new file mode 100644 index 00000000000..067cb675571 --- /dev/null +++ b/pkgs/applications/misc/alacritty/default.nix @@ -0,0 +1,77 @@ +{ stdenv, + fetchgit, + rustPlatform, + cmake, + makeWrapper, + expat, + pkgconfig, + freetype, + fontconfig, + libX11, + gperf, + libXcursor, + libXxf86vm, + libXi, + xclip }: + +with rustPlatform; + +let + rpathLibs = [ + expat + freetype + fontconfig + libX11 + libXcursor + libXxf86vm + libXi + ]; +in + +buildRustPackage rec { + name = "alacritty-unstable-${version}"; + version = "2017-10-22"; + + # At the moment we cannot handle git dependencies in buildRustPackage. + # This fork only replaces rust-fontconfig/libfontconfig with a git submodules. + src = fetchgit { + url = https://github.com/Mic92/alacritty.git; + rev = "rev-${version}"; + sha256 = "02wvwi72hnqmy12n0b248wzhajni9ipyayz6vnn3ryhnrccrrp7j"; + fetchSubmodules = true; + }; + + cargoSha256 = "14bmm1f7hqh8i4mpb6ljh7szrm4g6mplzpq9zbgjrgxnc01w3s0i"; + + buildInputs = [ + cmake + makeWrapper + pkgconfig + ] ++ rpathLibs; + + postPatch = '' + substituteInPlace copypasta/src/x11.rs \ + --replace Command::new\(\"xclip\"\) Command::new\(\"${xclip}/bin/xclip\"\) + ''; + + installPhase = '' + runHook preInstall + + install -D target/release/alacritty $out/bin/alacritty + patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty + + install -D Alacritty.desktop $out/share/applications/alacritty.desktop + + runHook postInstall + ''; + + dontPatchELF = true; + + meta = with stdenv.lib; { + description = "GPU-accelerated terminal emulator"; + homepage = https://github.com/jwilm/alacritty; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ mic92 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/albert/default.nix b/pkgs/applications/misc/albert/default.nix index 4a42c55c249..dd4858cfe2a 100644 --- a/pkgs/applications/misc/albert/default.nix +++ b/pkgs/applications/misc/albert/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchFromGitHub, qtbase, qtsvg, qtx11extras, makeQtWrapper, muparser, cmake }: +{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase, qtsvg, qtx11extras, muparser, cmake }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "albert-${version}"; - version = "0.10.2"; + version = "0.12.0"; src = fetchFromGitHub { owner = "albertlauncher"; repo = "albert"; rev = "v${version}"; - sha256 = "0plb8c7js91bpf7qgq1snhry8x4zixyy34lq42nhsglab2kaq4ns"; + sha256 = "120l7hli2l4qj2s126nawc4dsy4qvwvb0svc42hijry4l8imdhkq"; }; - nativeBuildInputs = [ cmake makeQtWrapper ]; + nativeBuildInputs = [ cmake makeWrapper ]; buildInputs = [ qtbase qtsvg qtx11extras muparser ]; @@ -19,14 +19,24 @@ stdenv.mkDerivation rec { postPatch = '' sed -i "/QStringList dirs = {/a \"$out/lib\"," \ - src/lib/albert/src/pluginsystem/extensionmanager.cpp + src/lib/albert/src/albert/extensionmanager.cpp ''; - fixupPhase = '' - wrapQtProgram $out/bin/albert + preBuild = '' + mkdir -p "$out/" + ln -s "$PWD/lib" "$out/lib" ''; - meta = with stdenv.lib; { + postBuild = '' + rm "$out/lib" + ''; + + postInstall = '' + wrapProgram $out/bin/albert \ + --prefix XDG_DATA_DIRS : $out/share + ''; + + meta = with lib; { homepage = https://albertlauncher.github.io/; description = "Desktop agnostic launcher"; license = licenses.gpl3Plus; diff --git a/pkgs/applications/misc/antfs-cli/default.nix b/pkgs/applications/misc/antfs-cli/default.nix index 556c1db3c83..30b8a435f90 100644 --- a/pkgs/applications/misc/antfs-cli/default.nix +++ b/pkgs/applications/misc/antfs-cli/default.nix @@ -4,7 +4,7 @@ pythonPackages.buildPythonApplication rec { name = "antfs-cli-unstable-2017-02-11"; meta = with stdenv.lib; { - homepage = "https://github.com/Tigge/antfs-cli"; + homepage = https://github.com/Tigge/antfs-cli; description = "Extracts FIT files from ANT-FS based sport watches"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/misc/apvlv/default.nix b/pkgs/applications/misc/apvlv/default.nix index 977f5e94e5d..f1d84a91972 100644 --- a/pkgs/applications/misc/apvlv/default.nix +++ b/pkgs/applications/misc/apvlv/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, pcre, libxkbcommon, epoxy -, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence +, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -15,8 +15,13 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler"; + nativeBuildInputs = [ + pkgconfig + wrapGAppsHook + ]; + buildInputs = [ - pkgconfig cmake + cmake poppler pcre libxkbcommon epoxy freetype gtk3 libpthreadstubs libXdmcp libxshmfence # otherwise warnings in compilation @@ -41,10 +46,11 @@ stdenv.mkDerivation rec { # displays pdfStartup.pdf as default pdf entry mkdir -p $out/share/doc/apvlv/ cp ../Startup.pdf $out/share/doc/apvlv/Startup.pdf + cp ../main_menubar.glade $out/share/doc/apvlv/main_menubar.glade ''; meta = with stdenv.lib; { - homepage = "http://naihe2010.github.io/apvlv/"; + homepage = http://naihe2010.github.io/apvlv/; description = "PDF viewer with Vim-like behaviour"; longDescription = '' apvlv is a PDF/DJVU/UMD/TXT Viewer Under Linux/WIN32 diff --git a/pkgs/applications/misc/artha/default.nix b/pkgs/applications/misc/artha/default.nix index 3294d18e70b..cfd4d6b32de 100644 --- a/pkgs/applications/misc/artha/default.nix +++ b/pkgs/applications/misc/artha/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "0qr4ihl7ma3cq82xi1fpzvf74mm9vsg0j035xvmcp3r6rmw2fycx"; }; - buildInputs = [ dbus_glib gtk2 pkgconfig wordnet ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ dbus_glib gtk2 wordnet ]; meta = with stdenv.lib; { description = "An offline thesaurus based on WordNet"; diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix index 6cc6cc5d9b9..c803eb37ad6 100644 --- a/pkgs/applications/misc/avrdudess/default.nix +++ b/pkgs/applications/misc/avrdudess/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, mono, avrgcclibc, avrdude, gtk2, xdg_utils }: +{ stdenv, fetchurl, unzip, mono, avrbinutils, avrgcc, avrdude, gtk2, xdg_utils }: stdenv.mkDerivation rec { name = "avrdudess-2.2.20140102"; @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [gtk2 mono]}" # We need PATH from user env for xdg-open to find its tools, which # typically depend on the currently running desktop environment. - export PATH="${stdenv.lib.makeBinPath [ avrgcclibc avrdude xdg_utils ]}:\$PATH" + export PATH="${stdenv.lib.makeBinPath [ avrgcc avrbinutils avrdude xdg_utils ]}:\$PATH" # avrdudess must have its resource files in its current working directory cd $out/avrdudess && exec ${mono}/bin/mono "$out/avrdudess/avrdudess.exe" "\$@" diff --git a/pkgs/applications/misc/bashSnippets/default.nix b/pkgs/applications/misc/bashSnippets/default.nix new file mode 100644 index 00000000000..acd5ae7dd73 --- /dev/null +++ b/pkgs/applications/misc/bashSnippets/default.nix @@ -0,0 +1,48 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper +, curl, netcat, python, bind, iproute, bc, gitMinimal }: +let + version = "1.17.3"; + deps = lib.makeBinPath [ + curl + python + bind.dnsutils + iproute + bc + gitMinimal + ]; +in +stdenv.mkDerivation { + name = "bashSnippets-${version}"; + + src = fetchFromGitHub { + owner = "alexanderepstein"; + repo = "Bash-Snippets"; + rev = "v${version}"; + sha256 = "1xdjk8bjh7l6h7gdqrra1dh4wdq89wmd0jsirsvqa3bmcsb2wz1r"; + }; + + buildInputs = [ makeWrapper ]; + + patchPhase = '' + patchShebangs install.sh + substituteInPlace install.sh --replace /usr/local "$out" + ''; + + dontBuild = true; + + installPhase = '' + mkdir -p "$out"/bin "$out"/share/man/man1 + ./install.sh all + for file in "$out"/bin/*; do + wrapProgram "$file" --prefix PATH : "${deps}" + done + ''; + + meta = with lib; { + description = "A collection of small bash scripts for heavy terminal users"; + homepage = https://github.com/alexanderepstein/Bash-Snippets; + license = licenses.mit; + maintainers = with maintainers; [ infinisil ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/bb/default.nix b/pkgs/applications/misc/bb/default.nix new file mode 100644 index 00000000000..71196e91991 --- /dev/null +++ b/pkgs/applications/misc/bb/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, aalib, ncurses, xorg, libmikmod }: + +stdenv.mkDerivation rec { + name = "bb-${version}"; + version = "1.3rc1"; + + src = fetchurl { + url = "mirror://sourceforge/aa-project/bb/${version}/${name}.tar.gz"; + sha256 = "1i411glxh7g4pfg4gw826lpwngi89yrbmxac8jmnsfvrfb48hgbr"; + }; + + buildInputs = [ + aalib ncurses libmikmod + xorg.libXau xorg.libXdmcp xorg.libX11 + ]; + + meta = with stdenv.lib; { + homepage = http://aa-project.sourceforge.net/bb; + description = "AA-lib demo"; + license = licenses.gpl2; + maintainers = maintainers.rnhmjoj; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/bitcoinarmory/default.nix b/pkgs/applications/misc/bitcoinarmory/default.nix new file mode 100644 index 00000000000..a9d32d4b252 --- /dev/null +++ b/pkgs/applications/misc/bitcoinarmory/default.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchFromGitHub, pythonPackages +, pkgconfig, autoreconfHook, rsync +, swig, qt4, fcgi +, bitcoin, procps, utillinux +}: +let + + version = "0.96.1"; + sitePackages = pythonPackages.python.sitePackages; + inherit (pythonPackages) buildPythonApplication pyqt4 psutil twisted; + +in buildPythonApplication { + + name = "bitcoinarmory-${version}"; + + src = fetchFromGitHub { + owner = "goatpig"; + repo = "BitcoinArmory"; + rev = "v${version}"; + #sha256 = "023c7q1glhrkn4djz3pf28ckd1na52lsagv4iyfgchqvw7qm7yx2"; + sha256 = "0pjk5qx16n3kvs9py62666qkwp2awkgd87by4karbj7vk6p1l14h"; fetchSubmodules = true; + }; + + format = "other"; + + # FIXME bitcoind doesn't die on shutdown. Need some sort of patch to fix that. + #patches = [ ./shutdown-fix.patch ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + autoreconfHook + swig + qt4 + fcgi + rsync # used by silly install script (TODO patch upstream) + ]; + + propagatedBuildInputs = [ + pyqt4 + psutil + twisted + ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + makeWrapperArgs = [ + "--prefix PATH : ${bitcoin}/bin" # for `bitcoind` + "--prefix PATH : ${procps}/bin" # for `free` + "--prefix PATH : ${utillinux}/bin" # for `whereis` + "--suffix LD_LIBRARY_PATH : $out/lib" # for python bindings built as .so files + "--run cd\\ $out/lib/armory" # so that GUI resources can be loaded + ]; + + # auditTmpdir runs during fixupPhase, so patchelf before that + preFixup = '' + newRpath=$(patchelf --print-rpath $out/bin/ArmoryDB | sed -r 's|(.*)(/tmp/nix-build-.*libfcgi/.libs:?)(.*)|\1\3|') + patchelf --set-rpath $out/lib:$newRpath $out/bin/ArmoryDB + ''; + + # fixupPhase of mkPythonDerivation wraps $out/bin/*, so this needs to come after + postFixup = '' + wrapPythonProgramsIn $out/lib/armory "$out $pythonPath" + ln -sf $out/lib/armory/ArmoryQt.py $out/bin/armory + ''; + + meta = { + description = "Bitcoin wallet with cold storage and multi-signature support"; + longDescription = '' + Armory is the most secure and full featured solution available for users + and institutions to generate and store Bitcoin private keys. This means + users never have to trust the Armory team and can use it with the Glacier + Protocol. Satoshi would be proud! + + Users are empowered with multiple encrypted Bitcoin wallets and permanent + one-time ‘paper backups’. Armory pioneered cold storage and distributed + multi-signature. Bitcoin cold storage is a system for securely storing + Bitcoins on a completely air-gapped offline computer. + + Maintainer's note: The original authors at https://bitcoinarmory.com/ + discontinued development. I elected instead to package GitHub user + @goatpig's fork, as it's the most active, at time of this writing. + ''; + homepage = https://github.com/goatpig/BitcoinArmory; + license = stdenv.lib.licenses.agpl3Plus; + maintainers = with stdenv.lib.maintainers; [ elitak ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + +} diff --git a/pkgs/applications/misc/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix index e67480fb3c7..196db45d905 100644 --- a/pkgs/applications/misc/bleachbit/default.nix +++ b/pkgs/applications/misc/bleachbit/default.nix @@ -25,7 +25,7 @@ pythonPackages.buildPythonApplication rec { propagatedBuildInputs = with pythonPackages; [ pygtk ]; meta = { - homepage = "http://bleachbit.sourceforge.net"; + homepage = http://bleachbit.sourceforge.net; description = "A program to clean your computer"; longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy."; license = stdenv.lib.licenses.gpl3; diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 335d0031b32..b348f253b35 100644 --- a/pkgs/applications/misc/blender/default.nix +++ b/pkgs/applications/misc/blender/default.nix @@ -11,11 +11,11 @@ with lib; stdenv.mkDerivation rec { - name = "blender-2.78c"; + name = "blender-2.79"; src = fetchurl { url = "http://download.blender.org/source/${name}.tar.gz"; - sha256 = "0f6k3m9yd5yhn7fq9srgzwh2gachlxm03bdrvn2r7xq00grqzab4"; + sha256 = "16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9"; }; buildInputs = @@ -57,19 +57,22 @@ stdenv.mkDerivation rec { ++ optional jackaudioSupport "-DWITH_JACK=ON" ++ optionals cudaSupport [ "-DWITH_CYCLES_CUDA_BINARIES=ON" - # Disable the sm_20 architecture to work around a segfault in - # ptxas, as suggested on #blendercoders. - "-DCYCLES_CUDA_BINARIES_ARCH=sm_21;sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61" + # Disable architectures before sm_30 to support new CUDA toolkits. + "-DCYCLES_CUDA_BINARIES_ARCH=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61" ] ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON"; NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}m"; + # Since some dependencies are built with gcc 6, we need gcc 6's + # libstdc++ in our RPATH. Sigh. + NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib"; + enableParallelBuilding = true; meta = with stdenv.lib; { description = "3D Creation/Animation/Publishing System"; - homepage = http://www.blender.org; + homepage = https://www.blender.org; # They comment two licenses: GPLv2 and Blender License, but they # say: "We've decided to cancel the BL offering for an indefinite period." license = licenses.gpl2Plus; diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix index 1ee68b55aa7..8aa191c0f3c 100644 --- a/pkgs/applications/misc/buku/default.nix +++ b/pkgs/applications/misc/buku/default.nix @@ -1,31 +1,49 @@ -{ stdenv, pythonPackages, fetchFromGitHub, -}: +{ stdenv, python3, fetchFromGitHub }: -with pythonPackages; buildPythonApplication rec { - version = "2.9"; +with python3.pkgs; buildPythonApplication rec { + version = "3.4"; name = "buku-${version}"; src = fetchFromGitHub { owner = "jarun"; repo = "buku"; rev = "v${version}"; - sha256 = "0ylq0j5w8jvzys4bj9m08bfr1sgf8h2b4fiax6hs6lcwn2882jbr"; + sha256 = "0v0wvsxw78g6yl606if25k1adghr5764chwy1kl7dsxvchqwvmg0"; }; + nativeBuildInputs = [ + pytestcov + pytest-catchlog + hypothesis + pytest + pylint + flake8 + ]; + propagatedBuildInputs = [ cryptography beautifulsoup4 - requests2 + requests urllib3 ]; - phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + preCheck = '' + # Fixes two tests for wrong encoding + export PYTHONIOENCODING=utf-8 + + # Disables a test which requires internet + substituteInPlace tests/test_bukuDb.py \ + --replace "@pytest.mark.slowtest" "@unittest.skip('skipping')" + ''; installPhase = '' make install PREFIX=$out - ''; - doCheck = false; + mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d + cp auto-completion/zsh/* $out/share/zsh/site-functions + cp auto-completion/bash/* $out/share/bash-completion/completions + cp auto-completion/fish/* $out/share/fish/vendor_completions.d + ''; meta = with stdenv.lib; { description = "Private cmdline bookmark manager"; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 8d34a126daa..ab106f6dcd9 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -1,33 +1,27 @@ { stdenv, fetchurl, fetchpatch, poppler_utils, pkgconfig, libpng -, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmakeHook, icu, sqlite +, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmake, icu, sqlite , makeWrapper, unrarSupport ? false, chmlib, python2Packages, xz, libusb1, libmtp -, xdg_utils, makeDesktopItem +, xdg_utils, makeDesktopItem, wrapGAppsHook }: stdenv.mkDerivation rec { - version = "2.83.0"; + version = "3.10.0"; name = "calibre-${version}"; src = fetchurl { url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz"; - sha256 = "1ar6hkcl50lhgwccss759201cqgnwasqmhw9japgnz04fj66w5ln"; + sha256 = "01vb5xjis9ldva7rg1f720lwys5frkj00z8x7cajqwxliilhvais"; }; patches = [ # Patches from Debian that: # - disable plugin installation (very insecure) - # - disables loading of web bug for privacy # - switches the version update from enabled to disabled by default (fetchpatch { name = "disable_plugins.patch"; url = "http://bazaar.launchpad.net/~calibre-packagers/calibre/debian/download/head:/disable_plugins.py-20111220183043-dcl08ccfagjxt1dv-1/disable_plugins.py"; sha256 = "19spdx52dhbrfn9lm084yl3cfwm6f90imd51k97sf7flmpl569pk"; }) - (fetchpatch { - name = "links_privacy.patch"; - url = "http://bazaar.launchpad.net/~calibre-packagers/calibre/debian/download/head:/linksprivacy.patch-20160417214308-6hvive72pc0r4awc-1/links-privacy.patch"; - sha256 = "0f6pq2b7q56pxrq2j8yqd7bksc623q2zgq29qcli30f13vga1w60"; - }) (fetchpatch { name = "no_updates_dialog.patch"; url = "http://bazaar.launchpad.net/~calibre-packagers/calibre/debian/download/head:/no_updates_dialog.pa-20081231120426-rzzufl0zo66t3mtc-16/no_updates_dialog.patch"; @@ -42,26 +36,29 @@ stdenv.mkDerivation rec { # Remove unneeded files and libs rm -rf resources/calibre-portable.* \ - src/{chardet,cherrypy,html5lib,odf,routes} + src/odf ''; dontUseQmakeConfigure = true; enableParallelBuilding = true; - nativeBuildInputs = [ makeWrapper pkgconfig qmakeHook ]; + nativeBuildInputs = [ makeWrapper pkgconfig qmake ]; buildInputs = [ poppler_utils libpng imagemagick libjpeg - fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils + fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils wrapGAppsHook ] ++ (with python2Packages; [ - apsw beautifulsoup cssselect cssutils dateutil lxml mechanize netifaces pillow + apsw cssselect cssutils dateutil html5-parser lxml mechanize netifaces pillow python pyqt5 sip + regex msgpack # the following are distributed with calibre, but we use upstream instead - chardet cherrypy html5lib_0_9999999 odfpy routes + odfpy ]); installPhase = '' + runHook preInstall + export HOME=$TMPDIR/fakehome export POPPLER_INC_DIR=${poppler_utils.dev}/include/poppler export POPPLER_LIB_DIR=${poppler_utils.out}/lib @@ -92,6 +89,11 @@ stdenv.mkDerivation rec { for entry in $out/share/applications/*.desktop; do substituteAllInPlace $entry done + + mkdir -p $out/share + cp -a man-pages $out/share/man + + runHook postInstall ''; calibreDesktopItem = makeDesktopItem { diff --git a/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch b/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch index 71cc688f7da..45e27984ed5 100644 --- a/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch +++ b/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch @@ -1,34 +1,12 @@ -diff --git a/setup/extensions.json b/setup/extensions.json -index 1f6d1fb..1273904 100644 ---- a/setup/extensions.json -+++ b/setup/extensions.json -@@ -211,16 +211,5 @@ - "sources": "calibre/devices/mtp/unix/devices.c calibre/devices/mtp/unix/libmtp.c", - "headers": "calibre/devices/mtp/unix/devices.h calibre/devices/mtp/unix/upstream/music-players.h calibre/devices/mtp/unix/upstream/device-flags.h", - "libraries": "mtp" -- }, -- { -- "name": "unrar", -- "sources": "unrar/rar.cpp unrar/strlist.cpp unrar/strfn.cpp unrar/pathfn.cpp unrar/savepos.cpp unrar/smallfn.cpp unrar/global.cpp unrar/file.cpp unrar/filefn.cpp unrar/filcreat.cpp unrar/archive.cpp unrar/arcread.cpp unrar/unicode.cpp unrar/system.cpp unrar/isnt.cpp unrar/crypt.cpp unrar/crc.cpp unrar/rawread.cpp unrar/encname.cpp unrar/resource.cpp unrar/match.cpp unrar/timefn.cpp unrar/rdwrfn.cpp unrar/consio.cpp unrar/options.cpp unrar/ulinks.cpp unrar/errhnd.cpp unrar/rarvm.cpp unrar/secpassword.cpp unrar/rijndael.cpp unrar/getbits.cpp unrar/sha1.cpp unrar/extinfo.cpp unrar/extract.cpp unrar/volume.cpp unrar/list.cpp unrar/find.cpp unrar/unpack.cpp unrar/cmddata.cpp unrar/filestr.cpp unrar/scantree.cpp calibre/utils/unrar.cpp", -- "inc_dirs": "unrar", -- "defines": "SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE", -- "windows_defines": "SILENT RARDLL UNRAR", -- "haiku_defines": "LITTLE_ENDIAN SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _BSD_SOURCE", -- "haiku_libraries": "bsd", -- "optimize_level": 2, -- "windows_libraries": "User32 Advapi32 kernel32 Shell32" - } - ] diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py index 938ab24..1e095f8 100644 --- a/src/calibre/ebooks/metadata/archive.py +++ b/src/calibre/ebooks/metadata/archive.py -@@ -44,7 +44,7 @@ class ArchiveExtract(FileTypePlugin): - description = _('Extract common e-book formats from archives ' - '(zip/rar) files. Also try to autodetect if they are actually ' - 'cbz/cbr files.') +@@ -44,7 +44,7 @@ + description = _('Extract common e-book formats from archive files ' + '(ZIP/RAR). Also try to autodetect if they are actually ' + 'CBZ/CBR files.') - file_types = set(['zip', 'rar']) + file_types = set(['zip']) supported_platforms = ['windows', 'osx', 'linux'] on_import = True - diff --git a/pkgs/applications/misc/camlistore/default.nix b/pkgs/applications/misc/camlistore/default.nix index 23bd89b4f05..d90e8a6dba6 100644 --- a/pkgs/applications/misc/camlistore/default.nix +++ b/pkgs/applications/misc/camlistore/default.nix @@ -1,26 +1,28 @@ -{ stdenv, lib, go, fetchgit, git }: +{ stdenv, lib, go, fetchgit, git, buildGoPackage }: -stdenv.mkDerivation rec { - version = "0.9"; +buildGoPackage rec { name = "camlistore-${version}"; + version = "0.9"; src = fetchgit { url = "https://github.com/camlistore/camlistore"; - rev = "7b78c50007780643798adf3fee4c84f3a10154c9"; - sha256 = "1vc4ca2rn8da0z0viv3vv2p8z211zdvq83jh2x2izdckdz204n17"; + rev = "refs/tags/${version}"; + sha256 = "1ypplr939ny9drsdngapa029fgak0wic8sbna588m79cbl17psya"; leaveDotGit = true; }; - buildInputs = [ go git ]; + buildInputs = [ git ]; + goPackagePath = ""; buildPhase = '' + cd go/src/camlistore go run make.go - rm bin/README ''; installPhase = '' - mkdir -p $out/bin - cp bin/* $out/bin + mkdir -p $bin/bin + rm bin/README + cp bin/* $bin/bin ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/cataract/build.nix b/pkgs/applications/misc/cataract/build.nix index 587a20b2704..e48b32a783d 100644 --- a/pkgs/applications/misc/cataract/build.nix +++ b/pkgs/applications/misc/cataract/build.nix @@ -19,7 +19,8 @@ stdenv.mkDerivation rec { inherit sha256 rev; }; - buildInputs = [ autoreconfHook glib pkgconfig libxml2 exiv2 imagemagick ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ glib libxml2 exiv2 imagemagick ]; installPhase = '' mkdir $out/{bin,share} -p @@ -27,7 +28,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://cgg.bzatek.net/"; + homepage = http://cgg.bzatek.net/; description = "a simple static web photo gallery, designed to be clean and easily usable"; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/cbatticon/default.nix b/pkgs/applications/misc/cbatticon/default.nix index efe2b2863ac..0c71b3ffb0a 100644 --- a/pkgs/applications/misc/cbatticon/default.nix +++ b/pkgs/applications/misc/cbatticon/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "cbatticon-${version}"; - version = "1.6.5"; + version = "1.6.7"; src = fetchFromGitHub { owner = "valr"; repo = "cbatticon"; rev = version; - sha256 = "1j7gbmmygvbrawqn1bbaf47lb600lylslzqbvfwlhifmi7qnm6ca"; + sha256 = "0rm1rpq81cxjwd4f11c3ivg5hwsd08qm47vdn16yr1cmm2cw4r2d"; }; makeFlags = "PREFIX=$(out)"; diff --git a/pkgs/applications/misc/cdrtools/default.nix b/pkgs/applications/misc/cdrtools/default.nix index be6989b7e33..a46565eb76b 100644 --- a/pkgs/applications/misc/cdrtools/default.nix +++ b/pkgs/applications/misc/cdrtools/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { makeFlags = [ "INS_BASE=/" "INS_RBASE=/" "DESTDIR=$(out)" ]; meta = with stdenv.lib; { - homepage = http://sourceforge.net/projects/cdrtools/; + homepage = https://sourceforge.net/projects/cdrtools/; description = "Highly portable CD/DVD/BluRay command line recording software"; license = with licenses; [ gpl2 lgpl2 cddl ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/cgminer/default.nix b/pkgs/applications/misc/cgminer/default.nix index 8f2d7c4f17f..acd38d74dca 100644 --- a/pkgs/applications/misc/cgminer/default.nix +++ b/pkgs/applications/misc/cgminer/default.nix @@ -11,8 +11,9 @@ stdenv.mkDerivation rec { sha256 = "1xfzx91dpwjj1vmhas3v9ybs0p2i74lrhinijmpav15acfggm9fq"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - autoconf automake pkgconfig libtool curl ncurses amdappsdk amdadlsdk + autoconf automake libtool curl ncurses amdappsdk amdadlsdk xorg.libX11 xorg.libXext xorg.libXinerama jansson ]; configureScript = "./autogen.sh"; @@ -39,7 +40,7 @@ stdenv.mkDerivation rec { monitoring, (over)clocking and fanspeed support for bitcoin and derivative coins. Do not use on multiple block chains at the same time! ''; - homepage = "https://github.com/ckolivas/cgminer"; + homepage = https://github.com/ckolivas/cgminer; license = licenses.gpl3; maintainers = [ maintainers.offline ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix index e1ed03c428d..a46485c5ef7 100644 --- a/pkgs/applications/misc/cheat/default.nix +++ b/pkgs/applications/misc/cheat/default.nix @@ -1,22 +1,24 @@ -{ python3Packages, fetchurl, lib }: +{ stdenv, python3Packages, fetchurl }: -python3Packages.buildPythonApplication rec { - version = "2.2.0"; - name = "cheat-${version}"; +with python3Packages; +buildPythonApplication rec { + name = "${pname}-${version}"; + pname = "cheat"; + version = "2.2.1"; propagatedBuildInputs = with python3Packages; [ docopt pygments ]; - src = fetchurl { - url = "mirror://pypi/c/cheat/${name}.tar.gz"; - sha256 = "16pg1bgyfjvzpm2rbi411ckf3gljg9v1vzd5qhp23g69ch6yr138"; + src = fetchPypi { + inherit pname version; + sha256 = "0w4k1h02p2gjv5wcr1c7r0ynb7v50qajx4hpyxz0ndh96f6x30pl"; }; # no tests available doCheck = false; - meta = { + meta = with stdenv.lib; { description = "cheat allows you to create and view interactive cheatsheets on the command-line"; - maintainers = with lib.maintainers; [ mic92 ]; - license = with lib.licenses; [gpl3 mit]; - homepage = "https://github.com/chrisallenlane/cheat"; + maintainers = with maintainers; [ mic92 ]; + license = with licenses; [gpl3 mit]; + homepage = https://github.com/chrisallenlane/cheat; }; } diff --git a/pkgs/applications/misc/chirp/default.nix b/pkgs/applications/misc/chirp/default.nix index 67d37489feb..673ecdc8549 100644 --- a/pkgs/applications/misc/chirp/default.nix +++ b/pkgs/applications/misc/chirp/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "chirp-daily-${version}"; - version = "20170311"; + version = "20170714"; src = fetchurl { url = "http://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${name}.tar.gz"; - sha256 = "0mvj650vm3bfk94b174gl99fj4jigrx38f1iciz1cp3gn8hcrcpj"; + sha256 = "1pglsmc0pf50w7df4vv30z5hmdxy4aqjl3qrv8kfiax7rld21gcy"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/cli-visualizer/default.nix b/pkgs/applications/misc/cli-visualizer/default.nix index cdde212275d..8b24df1bee9 100644 --- a/pkgs/applications/misc/cli-visualizer/default.nix +++ b/pkgs/applications/misc/cli-visualizer/default.nix @@ -1,31 +1,33 @@ -{ stdenv, fetchFromGitHub, fftw, ncurses, libpulseaudio }: +{ stdenv, fetchFromGitHub, fftw, ncurses5, libpulseaudio, makeWrapper }: stdenv.mkDerivation rec { - version = "1.5"; + version = "1.6"; name = "cli-visualizer-${version}"; src = fetchFromGitHub { owner = "dpayne"; repo = "cli-visualizer"; rev = version; - sha256 = "18qv4ya64qmczq94dnynrnzn7pwhmzbn14r05qcvbbwv7r8gclzs"; + sha256 = "0mirp8bk398di5xyq95iprmdyvplfghxqmrfj7jdnpy554vx7ppc"; }; postPatch = '' sed '1i#include ' -i src/Transformer/SpectrumCircleTransformer.cpp ''; - buildInputs = [ fftw ncurses libpulseaudio ]; + buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ]; buildFlags = [ "ENABLE_PULSE=1" ]; installPhase = '' mkdir -p $out/bin cp build/vis $out/bin/vis + # See https://github.com/dpayne/cli-visualizer/issues/62#issuecomment-330738075 + wrapProgram $out/bin/vis --set TERM rxvt-256color ''; meta = { - homepage = "https://github.com/dpayne/cli-visualizer"; + homepage = https://github.com/dpayne/cli-visualizer; description = "CLI based audio visualizer"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/clipit/default.nix b/pkgs/applications/misc/clipit/default.nix index 06ebaa7c12d..d9ea487a83b 100644 --- a/pkgs/applications/misc/clipit/default.nix +++ b/pkgs/applications/misc/clipit/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva"; }; - buildInputs = [ intltool pkgconfig gtk2 xdotool hicolor_icon_theme ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool gtk2 xdotool hicolor_icon_theme ]; meta = with stdenv.lib; { description = "Lightweight GTK+ Clipboard Manager"; diff --git a/pkgs/applications/misc/cmatrix/default.nix b/pkgs/applications/misc/cmatrix/default.nix index c7a76ef00a6..28f14cc1435 100644 --- a/pkgs/applications/misc/cmatrix/default.nix +++ b/pkgs/applications/misc/cmatrix/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "0k06fw2n8nzp1pcdynhajp5prba03gfgsbj91bknyjr5xb5fd9hz"; }; - buildInputs = [ pkgconfig ncurses ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses ]; meta = { description = "Simulates the falling characters theme from The Matrix movie"; diff --git a/pkgs/applications/misc/confclerk/default.nix b/pkgs/applications/misc/confclerk/default.nix index 08f654cdec4..de18a211c45 100644 --- a/pkgs/applications/misc/confclerk/default.nix +++ b/pkgs/applications/misc/confclerk/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { meta = { description = "Offline conference schedule viewer"; - homepage = "http://www.toastfreeware.priv.at/confclerk"; + homepage = http://www.toastfreeware.priv.at/confclerk; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ ehmry ]; inherit (qt4.meta) platforms; diff --git a/pkgs/applications/misc/cool-retro-term/default.nix b/pkgs/applications/misc/cool-retro-term/default.nix index 9ff27c74709..985a418e158 100644 --- a/pkgs/applications/misc/cool-retro-term/default.nix +++ b/pkgs/applications/misc/cool-retro-term/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchgit, makeQtWrapper, qtbase, qtquick1, qmltermwidget, -qtquickcontrols, qtgraphicaleffects, qmakeHook }: +{ stdenv, fetchgit, qtbase, qtquick1, qmltermwidget, +qtquickcontrols, qtgraphicaleffects, qmake }: stdenv.mkDerivation rec { version = "1.0.0"; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { ''; buildInputs = [ qtbase qtquick1 qmltermwidget qtquickcontrols qtgraphicaleffects ]; - nativeBuildInputs = [ makeQtWrapper qmakeHook ]; + nativeBuildInputs = [ qmake ]; installFlags = [ "INSTALL_ROOT=$(out)" ]; @@ -25,8 +25,6 @@ stdenv.mkDerivation rec { mv $out/usr/share $out/share mv $out/usr/bin $out/bin rmdir $out/usr - - wrapQtProgram $out/bin/cool-retro-term ''; enableParallelBuilding = true; @@ -38,7 +36,7 @@ stdenv.mkDerivation rec { feel of the old cathode tube screens. It has been designed to be eye-candy, customizable, and reasonably lightweight. ''; - homepage = "https://github.com/Swordifish90/cool-retro-term"; + homepage = https://github.com/Swordifish90/cool-retro-term; license = with stdenv.lib.licenses; [ gpl2 gpl3 ]; platforms = stdenv.lib.platforms.linux; maintainers = with stdenv.lib.maintainers; [ skeidel ]; diff --git a/pkgs/applications/misc/copyq/cmake-modules.patch b/pkgs/applications/misc/copyq/cmake-modules.patch new file mode 100644 index 00000000000..f21105763de --- /dev/null +++ b/pkgs/applications/misc/copyq/cmake-modules.patch @@ -0,0 +1,12 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index d910299e..69888477 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -99,6 +99,7 @@ endif() + + # Qt modules + if (WITH_QT5) ++ find_package(Qt5 REQUIRED COMPONENTS Network Svg Xml Script) + qt5_use_modules(copyq Widgets Network Svg Xml Script ${copyq_Qt5_Modules}) + else() + set(QT_USE_QTNETWORK TRUE) diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix index 7461f6853f4..4fd30c547b5 100644 --- a/pkgs/applications/misc/copyq/default.nix +++ b/pkgs/applications/misc/copyq/default.nix @@ -1,19 +1,27 @@ -{ stdenv, fetchFromGitHub, cmake, qt4, libXfixes, libXtst}: +{ stdenv, fetchFromGitHub, cmake, qt5, libXfixes, libXtst, git +, webkitSupport ? true +}: stdenv.mkDerivation rec { name = "CopyQ-${version}"; - version = "2.9.0"; + version = "3.0.3"; src = fetchFromGitHub { owner = "hluk"; repo = "CopyQ"; rev = "v${version}"; - sha256 = "1gnqsfh50w3qcnbghkpjr5qs42fgl6643lmg4mg4wam8a852s64f"; + sha256 = "0wpxqrg4mn8xjsrwsmlhh731s2kr6afnzpqif1way0gi7fqr73jl"; }; + patches = [ + ./cmake-modules.patch + ]; + nativeBuildInputs = [ cmake ]; - - buildInputs = [ qt4 libXfixes libXtst ]; + + buildInputs = [ + git qt5.full libXfixes libXtst + ] ++ stdenv.lib.optional webkitSupport qt5.qtwebkit; meta = with stdenv.lib; { homepage = https://hluk.github.io/CopyQ; diff --git a/pkgs/applications/misc/cortex/default.nix b/pkgs/applications/misc/cortex/default.nix deleted file mode 100644 index 42565ae7fa8..00000000000 --- a/pkgs/applications/misc/cortex/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchgit, python3 }: - -stdenv.mkDerivation { - name = "cortex-2015-08-23"; - - src = fetchgit { - url = "https://github.com/gglucas/cortex"; - rev = "ff10ff860479fe2f50590c0f8fcfc6dc34446639"; - sha256 = "0pa2kkkcnmf56d5d5kknv0gfahddym75xripd4kgszaj6hsib3zg"; - }; - - buildInputs = [ stdenv python3 ]; - - prePatch = '' - substituteInPlace cortex --replace "/usr/bin/env python3" "${python3}/bin/python3" - ''; - - installPhase = '' - mkdir -p $out/bin - cp cortex $out/bin/ - chmod +x $out/bin/cortex - ''; - - meta = with stdenv.lib; { - homepage = "http://cortex.glacicle.org"; - description = "An ncurses reddit browser and monitor"; - license = licenses.mit; - maintainers = with maintainers; [ matthiasbeyer ]; - platforms = with platforms; unix; - }; - -} diff --git a/pkgs/applications/misc/ctodo/default.nix b/pkgs/applications/misc/ctodo/default.nix index 6b22f3b27ee..0123e0c38d7 100644 --- a/pkgs/applications/misc/ctodo/default.nix +++ b/pkgs/applications/misc/ctodo/default.nix @@ -1,24 +1,22 @@ -{ stdenv, cmake, fetchurl, ncurses }: +{ stdenv, cmake, fetchurl, ncurses, readline }: -let - version = "1.2"; -in -stdenv.mkDerivation { +stdenv.mkDerivation rec { name = "ctodo-${version}"; + version = "1.3"; src = fetchurl { url = "https://github.com/Acolarh/ctodo/archive/v${version}.tar.gz"; - sha256 = "0kjd84q8aw238z09yz9n1p732fh08vijaf8bk1xqlx544cgyfcjm"; + sha256 = "1k3raigcgpwa0h8zkv5x9rycnn2iqkb9qim4q9ydqy9wbv3m32jb"; }; - buildInputs = [ stdenv cmake ncurses ]; + buildInputs = [ stdenv cmake ncurses readline ]; configurePhase = '' cmake -DCMAKE_INSTALL_PREFIX=$out . ''; meta = { - homepage = "http://ctodo.apakoh.dk/"; + homepage = http://ctodo.apakoh.dk/; description = "A simple ncurses-based task list manager"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix index ff18796e39d..1012f187497 100644 --- a/pkgs/applications/misc/cura/default.nix +++ b/pkgs/applications/misc/cura/default.nix @@ -1,21 +1,21 @@ -{ stdenv, lib, fetchFromGitHub, cmake, python3, qtbase, makeQtWrapper, curaengine }: +{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols, curaengine }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "cura-${version}"; - version = "2.4.0"; + version = "3.0.3"; src = fetchFromGitHub { owner = "Ultimaker"; repo = "Cura"; rev = version; - sha256 = "04iglmjg9rzmlfrll6g7bcckkla327938xh8qmbdfrh215aivdlp"; + sha256 = "0ks8bb3mif6kyvb01ddhpn1c2l31s8fxivi70kmpm743sqv4kjaa"; }; - buildInputs = [ qtbase ]; - propagatedBuildInputs = with python3.pkgs; [ uranium zeroconf pyserial ]; - nativeBuildInputs = [ cmake python3.pkgs.wrapPython makeQtWrapper ]; + buildInputs = [ qtbase qtquickcontrols ]; + propagatedBuildInputs = with python3.pkgs; [ uranium zeroconf pyserial numpy-stl ]; + nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; - cmakeFlags = [ "-DCMAKE_MODULE_PATH=${python3.pkgs.uranium}/share/cmake-${cmake.majorVersion}/Modules" ]; + cmakeFlags = [ "-DURANIUM_DIR=${python3.pkgs.uranium.src}" ]; postPatch = '' sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt @@ -24,11 +24,9 @@ stdenv.mkDerivation rec { postFixup = '' wrapPythonPrograms - mv $out/bin/cura $out/bin/.cura-noqtpath - makeQtWrapper $out/bin/.cura-noqtpath $out/bin/cura ''; - meta = with stdenv.lib; { + meta = with lib; { description = "3D printer / slicing GUI built on top of the Uranium framework"; homepage = "https://github.com/Ultimaker/Cura"; license = licenses.agpl3; diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix index 08df0cc3e90..575889ad2c6 100644 --- a/pkgs/applications/misc/curaengine/default.nix +++ b/pkgs/applications/misc/curaengine/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "curaengine-${version}"; - version = "2.4.0"; + version = "3.0.3"; src = fetchFromGitHub { owner = "Ultimaker"; repo = "CuraEngine"; rev = version; - sha256 = "1n587cqm310kzb2zbc31199x7ybgxzjq91hslb1zcb8qg8qqmixm"; + sha256 = "0x1ss3hppw6062rmmxh0dpnm5cg6r2mp01k0nxyw5riiljj59ydy"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/misc/deepin-terminal/default.nix b/pkgs/applications/misc/deepin-terminal/default.nix new file mode 100644 index 00000000000..0ee52b740f2 --- /dev/null +++ b/pkgs/applications/misc/deepin-terminal/default.nix @@ -0,0 +1,30 @@ +{ stdenv, unzip, fetchFromGitHub, pkgconfig, gtk3, vala, cmake, vte, gee, wnck, gettext, libsecret, json_glib }: + +stdenv.mkDerivation rec { + name = "deepin-terminal-${version}"; + version = "2.3.3"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = "deepin-terminal"; + rev = version; + sha256 = "0qam34g1rannv8kvw1zbps763a9ii9vbrkxyxxdk737hlpxdzg8h"; + }; + + patchPhase = '' + substituteInPlace project_path.c --replace __FILE__ \"$out/share/deepin-terminal/\" + ''; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ unzip gtk3 vala cmake vte gee wnck gettext libsecret json_glib ]; + + meta = { + description = "The default terminal emulation for Deepin"; + longDescription = '' + Deepin terminal, it sharpens your focus in the world of command line! + It is an advanced terminal emulator with workspace, multiple windows, remote management, quake mode and other features. + ''; + homepage = https://github.com/linuxdeepin/deepin-terminal/; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix index 907c9d612b8..53344595f78 100644 --- a/pkgs/applications/misc/dfilemanager/default.nix +++ b/pkgs/applications/misc/dfilemanager/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { cmakeFlags = "-DQT5BUILD=true"; meta = { - homepage = "http://dfilemanager.sourceforge.net/"; + homepage = http://dfilemanager.sourceforge.net/; description = "File manager written in Qt/C++"; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/direwolf/default.nix b/pkgs/applications/misc/direwolf/default.nix index d4c8b1ada6c..f1e33ea5357 100644 --- a/pkgs/applications/misc/direwolf/default.nix +++ b/pkgs/applications/misc/direwolf/default.nix @@ -6,35 +6,36 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "direwolf-${version}"; - version = "1.3"; + version = "1.4"; src = fetchFromGitHub { owner = "wb2osz"; repo = "direwolf"; rev = version; - sha256 = "1x6vvl3fy70ic5pqvqsyr0bkqwim8m9jaqnm5ls8z8i66rwq23fg"; + sha256 = "033sffjs2dz48077hc58jr4lxxs8md1fyfh4lig6ib7pyigiv1y0"; }; buildInputs = [ espeak perl python ] ++ (optional stdenv.isLinux alsaLib); - patchPhase = '' - substituteInPlace Makefile.* \ - --replace /usr/share $out/share + postPatch = '' + for i in Makefile.*; do + substituteInPlace "$i" \ + --replace /usr/share $out/share + done - substituteInPlace dwespeak.sh \ - --replace espeak ${espeak}/bin/espeak - ''; + substituteInPlace dwespeak.sh \ + --replace espeak ${espeak}/bin/espeak + ''; - installPhase = '' - mkdir -p $out/bin - make INSTALLDIR=$out install - ''; + preInstall = '' + mkdir -p $out/bin + ''; + installFlags = [ "INSTALLDIR=$(out)" ]; meta = { description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway"; - # On the page: This page will be disappearing on October 8, 2015. homepage = https://github.com/wb2osz/direwolf/; license = licenses.gpl2; platforms = platforms.unix; diff --git a/pkgs/applications/misc/dmensamenu/default.nix b/pkgs/applications/misc/dmensamenu/default.nix new file mode 100644 index 00000000000..0c9fa5ea2d2 --- /dev/null +++ b/pkgs/applications/misc/dmensamenu/default.nix @@ -0,0 +1,25 @@ +{ stdenv, buildPythonApplication, fetchFromGitHub, requests, dmenu }: + +buildPythonApplication rec { + name = "dmensamenu-${version}"; + version = "1.0.0"; + + propagatedBuildInputs = [ + requests + dmenu + ]; + + src = fetchFromGitHub { + owner = "dotlambda"; + repo = "dmensamenu"; + rev = "v${version}"; + sha256 = "05wbpmgjpm0ik9pcydj7r9w7i7bfpcij24bc4jljdwl9ilw62ixp"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/dotlambda/dmensamenu; + description = "Print German canteen menus using dmenu and OpenMensa"; + license = licenses.mit; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/applications/misc/dmenu/default.nix b/pkgs/applications/misc/dmenu/default.nix index 1dc9fe5e202..8ef4f3ae897 100644 --- a/pkgs/applications/misc/dmenu/default.nix +++ b/pkgs/applications/misc/dmenu/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }: stdenv.mkDerivation rec { - name = "dmenu-4.6"; + name = "dmenu-4.7"; src = fetchurl { url = "http://dl.suckless.org/tools/${name}.tar.gz"; - sha256 = "1cwnvamqqlgczvd5dv5rsgqbhv8kp0ddjnhmavb3q732i8028yja"; + sha256 = "1fgph549i0yw62x02jhfc8qmqk2rnzcnm46bxq6jig1cvkw3amm7"; }; buildInputs = [ libX11 libXinerama zlib libXft ]; diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix index 9a13da67745..340e8f16164 100644 --- a/pkgs/applications/misc/dmenu/wayland.nix +++ b/pkgs/applications/misc/dmenu/wayland.nix @@ -6,12 +6,12 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "dmenu-wayland-${version}"; - version = "git-2014-11-02"; - rev = "6e08b77428cc3c406ed2e90d4cae6c41df76341e"; + version = "git-2017-04-07"; + rev = "f385d9d18813071b4b4257bf8d4d572daeda0e70"; src = fetchurl { url = "https://github.com/michaelforney/dmenu/archive/${rev}.tar.gz"; - sha256 = "d0f73e442baf44a93a3b9d41a72e9cfa14f54af6049c90549f516722e3f88019"; + sha256 = "0y1jvh2815c005ns0bsjxsmz82smw22n6jsfg2g03a1pacakp6ys"; }; buildInputs = [ swc wld wayland libxkbcommon pixman fontconfig ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; preConfigure = [ - ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g; s@/usr/share/swc@$(echo "$nativeBuildInputs" | grep -o '[^ ]*-swc-[^ ]*')/share/swc@g" config.mk'' + ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g; s@/usr/share/swc@${swc}/share/swc@g" config.mk'' ]; meta = { diff --git a/pkgs/applications/misc/dockbarx/default.nix b/pkgs/applications/misc/dockbarx/default.nix new file mode 100644 index 00000000000..cfe76701ceb --- /dev/null +++ b/pkgs/applications/misc/dockbarx/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, pythonPackages, gnome2, keybinder }: + +pythonPackages.buildPythonApplication rec { + ver = "0.92"; + name = "dockbarx-${ver}"; + + src = fetchFromGitHub { + owner = "M7S"; + repo = "dockbarx"; + rev = ver; + sha256 = "17n7jc3bk3f2i0i1ddpp05bakifc8y5xppads7ihpkj3qw9g35vl"; + }; + + postPatch = '' + substituteInPlace setup.py --replace /usr/ "" + substituteInPlace setup.py --replace '"/", "usr", "share",' '"share",' + substituteInPlace dockbarx/applets.py --replace /usr/share/ $out/share/ + substituteInPlace dockbarx/dockbar.py --replace /usr/share/ $out/share/ + substituteInPlace dockbarx/iconfactory.py --replace /usr/share/ $out/share/ + substituteInPlace dockbarx/theme.py --replace /usr/share/ $out/share/ + substituteInPlace dockx_applets/battery_status.py --replace /usr/share/ $out/share/ + substituteInPlace dockx_applets/namebar.py --replace /usr/share/ $out/share/ + substituteInPlace dockx_applets/namebar_window_buttons.py --replace /usr/share/ $out/share/ + substituteInPlace dockx_applets/volume-control.py --replace /usr/share/ $out/share/ + ''; + + propagatedBuildInputs = (with pythonPackages; [ pygtk pyxdg dbus-python pillow xlib ]) + ++ (with gnome2; [ gnome_python gnome_python_desktop ]) + ++ [ keybinder ]; + + meta = with stdenv.lib; { + homepage = https://launchpad.net/dockbar/; + description = "DockBarX is a lightweight taskbar / panel replacement for Linux which works as a stand-alone dock"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.volth ]; + }; +} diff --git a/pkgs/applications/misc/doomseeker/default.nix b/pkgs/applications/misc/doomseeker/default.nix index 61b0357bb9d..1393af67bf8 100644 --- a/pkgs/applications/misc/doomseeker/default.nix +++ b/pkgs/applications/misc/doomseeker/default.nix @@ -1,11 +1,11 @@ { stdenv, cmake, fetchurl, pkgconfig, qt4, zlib, bzip2 }: stdenv.mkDerivation rec { - name = "doomseeker-1.0"; + name = "doomseeker-1.1"; src = fetchurl { url = "http://doomseeker.drdteam.org/files/${name}_src.tar.bz2"; - sha256 = "172ybxg720r64hp6aah0hqvxklqv1cf8v7kwx0ng5ap0h20jydbw"; + sha256 = "0nmq8s842z30ngzikrmfx0xpnk4klxdv37y26chs002rnj010r7h"; }; buildInputs = [ qt4 zlib bzip2 ]; diff --git a/pkgs/applications/misc/dotfiles/default.nix b/pkgs/applications/misc/dotfiles/default.nix new file mode 100644 index 00000000000..1d3c405b703 --- /dev/null +++ b/pkgs/applications/misc/dotfiles/default.nix @@ -0,0 +1,24 @@ +{ stdenv, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + pname = "dotfiles"; + name = "${pname}-${version}"; + version = "0.6.4"; + + src = pythonPackages.fetchPypi { + inherit version pname; + sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv"; + }; + + # No tests in archive + doCheck = false; + + checkInputs = with pythonPackages; [ pytest ]; + propagatedBuildInputs = with pythonPackages; [ click ]; + + meta = with stdenv.lib; { + description = "Easily manage your dotfiles"; + homepage = https://github.com/jbernard/dotfiles; + license = licenses.isc; + }; +} diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix index 221bd3c4bf5..919ad10fa70 100644 --- a/pkgs/applications/misc/dunst/default.nix +++ b/pkgs/applications/misc/dunst/default.nix @@ -1,32 +1,25 @@ { stdenv, fetchFromGitHub, fetchpatch -, pkgconfig, which, perl -, cairo, dbus, freetype, gdk_pixbuf, glib, libX11, libXScrnSaver -, libXext, libXinerama, libnotify, libxdg_basedir, pango, xproto -, librsvg +, pkgconfig, which, perl, gtk2, xrandr +, cairo, dbus, gdk_pixbuf, glib, libX11, libXScrnSaver +, libXinerama, libnotify, libxdg_basedir, pango, xproto, librsvg }: stdenv.mkDerivation rec { name = "dunst-${version}"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { - owner = "knopwob"; + owner = "dunst-project"; repo = "dunst"; rev = "v${version}"; - sha256 = "102s0rkcdz22hnacsi3dhm7kj3lsw9gnikmh3a7wk862nkvvwjmk"; + sha256 = "0jncnb4z4hg92ws08bkf52jswsd4vqlzyznwbynhh2jh6q0sl18b"; }; - patches = [(fetchpatch { - name = "add-svg-support.patch"; - url = "https://github.com/knopwob/dunst/commit/63b11141185d1d07a6d12212257a543e182d250a.patch"; - sha256 = "0giiaj5zjim7xqcav5ij5gn4x6nnchkllwcx0ln16j0p3vbi4y4x"; - })]; - nativeBuildInputs = [ perl pkgconfig which ]; buildInputs = [ - cairo dbus freetype gdk_pixbuf glib libX11 libXScrnSaver libXext - libXinerama libnotify libxdg_basedir pango xproto librsvg + cairo dbus gdk_pixbuf glib libX11 libXScrnSaver + libXinerama libnotify libxdg_basedir pango xproto librsvg gtk2 xrandr ]; outputs = [ "out" "man" ]; diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index 95cae316a71..d83eb1ed86a 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1a2hzyck95g740qg4p4wd4fjwsmlknh75i9sbx5r5v9pyr4i3m4f"; }; - buildInputs = [ perl libX11 libjpeg libpng libtiff pkgconfig + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ perl libX11 libjpeg libpng libtiff librsvg glib gtk2 libXxf86vm libXext poppler xineLib ]; # The program tries to dlopen both Xxf86vm and Xext, so we use the @@ -32,11 +33,11 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = "http://eaglemode.sourceforge.net"; + homepage = http://eaglemode.sourceforge.net; description = "Zoomable User Interface"; license = licenses.gpl3; maintainers = with maintainers; [ viric ]; platforms = platforms.linux; - hydraPlatforms = []; + broken = true; }; } diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix new file mode 100644 index 00000000000..a45ab59ace8 --- /dev/null +++ b/pkgs/applications/misc/electron-cash/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, python2Packages }: + +python2Packages.buildPythonApplication rec { + version = "2.9.3"; + name = "electron-cash-${version}"; + + src = fetchFromGitHub { + owner = "fyookball"; + repo = "electrum"; + rev = version; + sha256 = "1r39b5ag5fipzgr84pzb53cfm8a4dy53257608754dwr1gfpma3v"; + }; + + propagatedBuildInputs = with python2Packages; [ + dns + ecdsa + jsonrpclib + pbkdf2 + pyaes + pycrypto + pyqt4 + pysocks + qrcode + requests + tlslite + + # plugins + keepkey + trezor + ]; + + preBuild = '' + sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py + pyrcc4 icons.qrc -o gui/qt/icons_rc.py + # Recording the creation timestamps introduces indeterminism to the build + sed -i '/Created: .*/d' gui/qt/icons_rc.py + ''; + + postInstall = '' + # Despite setting usr_share above, these files are installed under + # $out/nix ... + mv $out/lib/python2.7/site-packages/nix/store"/"*/share $out + rm -rf $out/lib/python2.7/site-packages/nix + + substituteInPlace $out/share/applications/electron.desktop \ + --replace "Exec=electrum %u" "Exec=$out/bin/electrum %u" + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/electrum help >/dev/null + ''; + + meta = with stdenv.lib; { + description = "A lightweight Bitcoin wallet"; + longDescription = '' + An easy-to-use Bitcoin client featuring wallets generated from + mnemonic seeds (in addition to other, more advanced, wallet options) + and the ability to perform transactions without downloading a copy + of the blockchain. + ''; + homepage = https://www.electroncash.org/; + maintainers = with maintainers; [ lassulus ]; + license = licenses.mit; + }; +} diff --git a/pkgs/applications/misc/electrum-dash/default.nix b/pkgs/applications/misc/electrum-dash/default.nix index 917d32e74af..e7a5a1be197 100644 --- a/pkgs/applications/misc/electrum-dash/default.nix +++ b/pkgs/applications/misc/electrum-dash/default.nix @@ -13,7 +13,7 @@ python2Packages.buildPythonApplication rec { dns ecdsa pbkdf2 - protobuf3_0 + protobuf pyasn1 pyasn1-modules pycrypto diff --git a/pkgs/applications/misc/electrum-ltc/default.nix b/pkgs/applications/misc/electrum-ltc/default.nix new file mode 100644 index 00000000000..bb41f8665e5 --- /dev/null +++ b/pkgs/applications/misc/electrum-ltc/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, fetchurl +, python2Packages +}: + +python2Packages.buildPythonApplication rec { + name = "electrum-ltc-${version}"; + version = "2.6.4.2"; + + src = fetchurl { + url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz"; + sha256 = "0sqcyk6n6kgaiinnwh6mzbbn4whk3ga59r5bw5rqmnnfqk1xdnb4"; + }; + + propagatedBuildInputs = with python2Packages; [ + pyqt4 + slowaes + ecdsa + pbkdf2 + requests + qrcode + ltc_scrypt + protobuf + dns + jsonrpclib + ]; + + preBuild = '' + sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py + pyrcc4 icons.qrc -o gui/qt/icons_rc.py + # Recording the creation timestamps introduces indeterminism to the build + sed -i '/Created: .*/d' gui/qt/icons_rc.py + ''; + + checkPhase = '' + $out/bin/electrum-ltc help >/dev/null + ''; + + meta = with stdenv.lib; { + description = "Litecoin thin client"; + longDescription = '' + Electrum-LTC is a simple, but powerful Litecoin wallet. A twelve-word + security passphrase (or “seed”) leaves intruders stranded and your peace + of mind intact. Keep it on paper, or in your head... and never worry + about losing your litecoins to theft or hardware failure. No waiting, no + lengthy blockchain downloads and no syncing to the network. + ''; + homepage = https://electrum-ltc.org/; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ asymmetric ]; + }; +} + diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index a2d39f2d486..abe8d0dde84 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -2,19 +2,20 @@ python2Packages.buildPythonApplication rec { name = "electrum-${version}"; - version = "2.8.2"; + version = "2.9.3"; src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "01xphbi7lx64s9380zjfakz5h8blqmxp0ryqlll7px66qpmjn5fq"; + sha256 = "0d0fzb653g7b8ka3x90nl21md4g3n1fv11czdxpdq3s9yr6js6f2"; }; propagatedBuildInputs = with python2Packages; [ dns ecdsa jsonrpclib + matplotlib pbkdf2 - protobuf3_0 + protobuf pyaes pycrypto pyqt4 @@ -30,7 +31,6 @@ python2Packages.buildPythonApplication rec { # TODO plugins # amodem # btchip - # matplotlib ]; preBuild = '' diff --git a/pkgs/applications/misc/ephemeralpg/default.nix b/pkgs/applications/misc/ephemeralpg/default.nix new file mode 100644 index 00000000000..65df422599c --- /dev/null +++ b/pkgs/applications/misc/ephemeralpg/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, postgresql, makeWrapper }: +stdenv.mkDerivation rec { + name = "ephemeralpg-${version}"; + version = "2.2"; + src = fetchurl { + url = "http://ephemeralpg.org/code/${name}.tar.gz"; + sha256 = "1v48bcmc23zzqbha80p3spxd5l347qnjzs4z44wl80i2s8fdzlyz"; + }; + buildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out + PREFIX=$out make install + wrapProgram $out/bin/pg_tmp --prefix PATH : ${postgresql}/bin + ''; + meta = { + description = ''Run tests on an isolated, temporary PostgreSQL database.''; + license = stdenv.lib.licenses.isc; + homepage = http://ephemeralpg.org/; + }; +} diff --git a/pkgs/applications/misc/et/default.nix b/pkgs/applications/misc/et/default.nix new file mode 100644 index 00000000000..40631b0a0db --- /dev/null +++ b/pkgs/applications/misc/et/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, pkgconfig, libnotify, gdk_pixbuf }: + +stdenv.mkDerivation rec { + name = "et-${version}"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "geistesk"; + repo = "et"; + rev = "${version}"; + sha256 = "1d2hq6p1y2ynk0a3l35lwbm1fcl9kg7rpjcin8bx4xcdpbw42y94"; + }; + + buildInputs = [ libnotify gdk_pixbuf ]; + nativeBuildInputs = [ pkgconfig ]; + + installPhase = '' + mkdir -p $out/bin + cp et $out/bin + cp et-status.sh $out/bin/et-status + ''; + + meta = with stdenv.lib; { + description = "Minimal libnotify-based (egg) timer"; + homepage = https://github.com/geistesk/et; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ geistesk ]; + }; +} diff --git a/pkgs/applications/misc/eterm/default.nix b/pkgs/applications/misc/eterm/default.nix index 386601f39bb..98b47990314 100644 --- a/pkgs/applications/misc/eterm/default.nix +++ b/pkgs/applications/misc/eterm/default.nix @@ -12,12 +12,13 @@ stdenv.mkDerivation rec { sha256 = "0g71szjklkiczxwzbjjfm59y6v9w4hp8mg7cy99z1g7qcjm0gfbj"; }; - buildInputs = [ libX11 libXext libXaw pkgconfig imlib2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libX11 libXext libXaw imlib2 ]; propagatedBuildInputs = [ libast ]; meta = with stdenv.lib; { description = "Terminal emulator"; - homepage = "http://www.eterm.org"; + homepage = http://www.eterm.org; license = licenses.bsd2; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix index 10605b8b18d..73911bab6f6 100644 --- a/pkgs/applications/misc/evtest/default.nix +++ b/pkgs/applications/misc/evtest/default.nix @@ -3,7 +3,8 @@ stdenv.mkDerivation rec { name = "evtest-1.33"; - buildInputs = [ autoreconfHook pkgconfig libxml2 ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ libxml2 ]; src = fetchgit { url = "git://anongit.freedesktop.org/evtest"; diff --git a/pkgs/applications/misc/far2l/add-nix-syntax-highlighting.patch b/pkgs/applications/misc/far2l/add-nix-syntax-highlighting.patch new file mode 100644 index 00000000000..68a16b196fa --- /dev/null +++ b/pkgs/applications/misc/far2l/add-nix-syntax-highlighting.patch @@ -0,0 +1,157 @@ +diff --git a/colorer/configs/base/hrc/nix.hrc b/colorer/configs/base/hrc/nix.hrc +new file mode 100644 +index 0000000..1bd9bb5 +--- /dev/null ++++ b/colorer/configs/base/hrc/nix.hrc +@@ -0,0 +1,132 @@ ++ ++ ++ ++ ++ ++ ++ ++ Nix ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/colorer/configs/base/hrc/proto.hrc b/colorer/configs/base/hrc/proto.hrc +index 11e493b..2a67263 100644 +--- a/colorer/configs/base/hrc/proto.hrc ++++ b/colorer/configs/base/hrc/proto.hrc +@@ -156,6 +156,14 @@ + + /\.(w?lua)$/i + ++ ++ ++ /\.(nix)$/i ++ ++ ++ ++ ++ + + + /\.(rb|rbw|ruby|rake)$/i diff --git a/pkgs/applications/misc/far2l/default.nix b/pkgs/applications/misc/far2l/default.nix index de22e08c705..7bd876f1d4a 100644 --- a/pkgs/applications/misc/far2l/default.nix +++ b/pkgs/applications/misc/far2l/default.nix @@ -1,30 +1,36 @@ { stdenv, fetchFromGitHub, makeWrapper, cmake, pkgconfig, wxGTK30, glib, pcre, m4, bash, - xdg_utils, xterm, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz }: + xdg_utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick, darwin }: +with stdenv.lib; stdenv.mkDerivation rec { - rev = "c2f2b89db31b1c3cb9bed53267873f4cd7bc996d"; - build = "2017-03-18-${builtins.substring 0 10 rev}"; + rev = "1ecd3a37c7b866a4599c547ea332541de2a2af26"; + build = "unstable-2017-09-30.git${builtins.substring 0 7 rev}"; name = "far2l-2.1.${build}"; src = fetchFromGitHub { owner = "elfmz"; repo = "far2l"; rev = rev; - sha256 = "1172ajg4n8g4ag14b6nb9lclwh2r6v7ccndmvhnj066w35ixnqgb"; + sha256 = "0mavg9z1n81b1hbkj320m36r8lpw28j07rl1d2hpg69y768yyq05"; }; - nativeBuildInputs = [ cmake pkgconfig m4 makeWrapper ]; + nativeBuildInputs = [ cmake pkgconfig m4 makeWrapper imagemagick ]; - buildInputs = [ wxGTK30 glib pcre ]; + buildInputs = [ wxGTK30 glib pcre ] + ++ optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa; - postPatch = '' - echo 'echo ${build}' > far2l/bootstrap/scripts/vbuild.sh + patches = [ ./add-nix-syntax-highlighting.patch ]; - substituteInPlace far2l/bootstrap/open.sh \ + postPatch = optionalString stdenv.isLinux '' + substituteInPlace far2l/bootstrap/open.sh \ --replace 'gvfs-trash' '${gvfs}/bin/gvfs-trash' + '' + optionalString stdenv.isDarwin '' + substituteInPlace far2l/CMakeLists.txt \ + --replace "-framework System" -lSystem + '' + '' + echo 'echo ${build}' > far2l/bootstrap/scripts/vbuild.sh substituteInPlace far2l/bootstrap/open.sh \ - --replace 'xdg-open' '${xdg_utils}/bin/xdg-open' \ - --replace 'xterm' '${xterm}/bin/xterm' + --replace 'xdg-open' '${xdg_utils}/bin/xdg-open' substituteInPlace far2l/vtcompletor.cpp \ --replace '"/bin/bash"' '"${bash}/bin/bash"' substituteInPlace multiarc/src/formats/zip/zip.cpp \ @@ -41,21 +47,29 @@ stdenv.mkDerivation rec { ''; installPhase = '' - mkdir -p $out/{bin,share} - rm install/{far2l_askpass,far2l_sudoapp} - mv install/far2l $out/bin/far2l - mv install $out/share/far2l - ln -s -r $out/bin/far2l $out/share/far2l/far2l_askpass - ln -s -r $out/bin/far2l $out/share/far2l/far2l_sudoapp + mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/scalable/apps + cp -dpR install $out/share/far2l + mv $out/share/far2l/far2l $out/bin/ + ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_askpass + ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_sudoapp + + sed "s,/usr/bin/,$out/bin/," ../far2l/DE/far2l.desktop > $out/share/applications/far2l.desktop + + cp ../far2l/DE/icons/hicolor/1024x1024/apps/far2l.svg $out/share/icons/hicolor/scalable/apps/ + convert -size 128x128 ../far2l/DE/icons/far2l.svg $out/share/icons/far2l.png + for size in 16x16 24x24 32x32 48x48 64x64 72x72 96x96 128x128 192x192 256x256 512x512 1024x1024; do + mkdir -p $out/share/icons/hicolor/$size/apps + convert -size $size ../far2l/DE/icons/hicolor/$size/apps/far2l.svg $out/share/icons/hicolor/$size/apps/far2l.png + done ''; stripDebugList = "bin share"; enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = { description = "An orthodox file manager"; - homepage = http://github.com/elfmz/far2l; + homepage = https://github.com/elfmz/far2l; license = licenses.gpl2; maintainers = [ maintainers.volth ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/fbreader/default.nix b/pkgs/applications/misc/fbreader/default.nix index 2b193ef42cd..80f76bc27c8 100644 --- a/pkgs/applications/misc/fbreader/default.nix +++ b/pkgs/applications/misc/fbreader/default.nix @@ -9,18 +9,21 @@ stdenv.mkDerivation { sha256 = "1sdq3vvwkq4bkyrvh0p884d66gaddz8hlab3m798ji9ixbak2z1x"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig bzip2 curl expat fribidi libunibreak + bzip2 curl expat fribidi libunibreak qt4 sqlite zlib ]; makeFlags = "INSTALLDIR=$(out)"; + NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ]; # since gcc-6 + patchPhase = '' # don't try to use ccache substituteInPlace makefiles/arch/desktop.mk \ --replace "CCACHE = " "# CCACHE = " - + substituteInPlace fbreader/desktop/Makefile \ --replace "/usr/share" "$out/share" ''; diff --git a/pkgs/applications/misc/fehlstart/default.nix b/pkgs/applications/misc/fehlstart/default.nix index 548679e4b47..db78f2ec920 100644 --- a/pkgs/applications/misc/fehlstart/default.nix +++ b/pkgs/applications/misc/fehlstart/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation { }; patches = [ ./use-nix-profiles.patch ]; - buildInputs = [ pkgconfig gtk2 keybinder ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 keybinder ]; preConfigure = '' export PREFIX=$out diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix index 88475dd761e..5cd8f572ad4 100644 --- a/pkgs/applications/misc/fetchmail/default.nix +++ b/pkgs/applications/misc/fetchmail/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { configureFlags = "--with-ssl=${openssl.dev}"; meta = { - homepage = "http://www.fetchmail.info/"; + homepage = http://www.fetchmail.info/; description = "A full-featured remote-mail retrieval and forwarding utility"; longDescription = '' A full-featured, robust, well-documented remote-mail retrieval and diff --git a/pkgs/applications/misc/finalterm/default.nix b/pkgs/applications/misc/finalterm/default.nix index 053cdd05991..add46f8871d 100644 --- a/pkgs/applications/misc/finalterm/default.nix +++ b/pkgs/applications/misc/finalterm/default.nix @@ -42,12 +42,12 @@ stdenv.mkDerivation { postFixup = '' wrapProgram "$out/bin/finalterm" \ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ - --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" \ + --prefix GIO_EXTRA_MODULES : "${getLib gnome3.dconf}/lib/gio/modules" \ --prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share:${gnome3.gtk.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" ''; meta = { - homepage = "http://finalterm.org"; + homepage = http://finalterm.org; description = "A new breed of terminal emulator"; longDescription = '' Final Term is a new breed of terminal emulator. diff --git a/pkgs/applications/misc/flamerobin/default.nix b/pkgs/applications/misc/flamerobin/default.nix index 23d0d682176..f70042884a8 100644 --- a/pkgs/applications/misc/flamerobin/default.nix +++ b/pkgs/applications/misc/flamerobin/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Database administration tool for Firebird RDBMS"; - homepage = "https://github.com/mariuz/flamerobin"; + homepage = https://github.com/mariuz/flamerobin; license = licenses.bsdOriginal; maintainers = with maintainers; [ uralbash ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/fme/default.nix b/pkgs/applications/misc/fme/default.nix index 30169588501..4e786bfb36f 100644 --- a/pkgs/applications/misc/fme/default.nix +++ b/pkgs/applications/misc/fme/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec{ sha256 = "d1c81a6a38c0faad02943ad65d6d0314bd205c6de841669a2efe43e4c503e63d"; }; - buildInputs = [ pkgconfig autoconf automake gettext fluxbox bc gtkmm2 glibmm libglademm libsigcxx ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake gettext fluxbox bc gtkmm2 glibmm libglademm libsigcxx ]; preConfigure = '' ./autogen.sh diff --git a/pkgs/applications/misc/gammu/default.nix b/pkgs/applications/misc/gammu/default.nix index 950ce210c06..939b38ca29f 100644 --- a/pkgs/applications/misc/gammu/default.nix +++ b/pkgs/applications/misc/gammu/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = "http://wammu.eu/gammu/"; + homepage = https://wammu.eu/gammu/; description = "Command line utility and library to control mobile phones"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/applications/misc/garmin-plugin/default.nix b/pkgs/applications/misc/garmin-plugin/default.nix index db954a25463..b97b079ab66 100644 --- a/pkgs/applications/misc/garmin-plugin/default.nix +++ b/pkgs/applications/misc/garmin-plugin/default.nix @@ -6,7 +6,8 @@ stdenv.mkDerivation { sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0"; }; sourceRoot = "GarminPlugin-0.3.26/src"; - buildInputs = [ garmintools libusb libgcrypt pkgconfig tinyxml zlib ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ garmintools libusb libgcrypt tinyxml zlib ]; configureFlags = [ "--with-libgcrypt-prefix=${libgcrypt.dev}" "--with-garmintools-incdir=${garmintools}/include" diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix index 860068c5667..b6bb3c2fd83 100644 --- a/pkgs/applications/misc/girara/default.nix +++ b/pkgs/applications/misc/girara/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses +{ stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses, libiconv, libintlOrEmpty , withBuildColors ? true }: @@ -18,7 +18,11 @@ stdenv.mkDerivation rec { --replace 'ifdef TPUT_AVAILABLE' 'ifneq ($(TPUT_AVAILABLE), 0)' ''; - buildInputs = [ pkgconfig gtk gettext ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk gettext libintlOrEmpty ] + ++ stdenv.lib.optional stdenv.isDarwin libiconv; + + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; makeFlags = [ "PREFIX=$(out)" @@ -28,14 +32,14 @@ stdenv.mkDerivation rec { ]; meta = with stdenv.lib; { - homepage = http://pwmt.org/projects/girara/; + homepage = https://pwmt.org/projects/girara/; description = "User interface library"; longDescription = '' girara is a library that implements a GTK+ based VIM-like user interface that focuses on simplicity and minimalism. ''; license = licenses.zlib; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; maintainers = [ maintainers.garbas ]; }; } diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/applications/misc/gkrellm/default.nix index 8654e7f3a26..b9cbf8064a0 100644 --- a/pkgs/applications/misc/gkrellm/default.nix +++ b/pkgs/applications/misc/gkrellm/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, gettext, pkgconfig, glib, gtk2, libX11, libSM, libICE +{ fetchurl, stdenv, gettext, pkgconfig, glib, gtk2, libX11, libSM, libICE, which , IOKit ? null }: with stdenv.lib; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig which ]; buildInputs = [gettext glib gtk2 libX11 libSM libICE] ++ optionals stdenv.isDarwin [ IOKit ]; @@ -20,23 +20,23 @@ stdenv.mkDerivation rec { # Makefiles are patched to fix references to `/usr/X11R6' and to add # `-lX11' to make sure libX11's store path is in the RPATH. patchPhase = '' - echo "patching makefiles..." - for i in Makefile src/Makefile server/Makefile - do - sed -i "$i" -e "s|/usr/X11R6|${libX11.dev}|g ; s|-lICE|-lX11 -lICE|g" - done ''; + echo "patching makefiles..." + for i in Makefile src/Makefile server/Makefile + do + sed -i "$i" -e "s|/usr/X11R6|${libX11.dev}|g ; s|-lICE|-lX11 -lICE|g" + done + ''; - installPhase = '' - make DESTDIR=$out install - ''; + makeFlags = [ "STRIP=-s" ]; + installFlags = [ "DESTDIR=$(out)" ]; - meta = { + meta = { description = "Themeable process stack of system monitors"; - longDescription = - '' GKrellM is a single process stack of system monitors which supports - applying themes to match its appearance to your window manager, Gtk, - or any other theme. - ''; + longDescription = '' + GKrellM is a single process stack of system monitors which + supports applying themes to match its appearance to your window + manager, Gtk, or any other theme. + ''; homepage = http://gkrellm.srcbox.net; license = licenses.gpl3Plus; diff --git a/pkgs/applications/misc/gksu/default.nix b/pkgs/applications/misc/gksu/default.nix index 0b6ebe06b88..509a54881cc 100644 --- a/pkgs/applications/misc/gksu/default.nix +++ b/pkgs/applications/misc/gksu/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { programs that need to ask a user's password to run another program as another user. ''; - homepage = "http://www.nongnu.org/gksu/"; + homepage = http://www.nongnu.org/gksu/; license = stdenv.lib.licenses.gpl2; maintainers = [ stdenv.lib.maintainers.romildo ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/gmrun/default.nix b/pkgs/applications/misc/gmrun/default.nix index 6c712db01a5..053da375ab1 100644 --- a/pkgs/applications/misc/gmrun/default.nix +++ b/pkgs/applications/misc/gmrun/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p"; }; - buildInputs = [ glib gtk2 pkgconfig popt ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib gtk2 popt ]; doCheck = true; @@ -31,7 +32,7 @@ stdenv.mkDerivation rec { Also, supports CTRL-R / CTRL-S / "!" for searching through history. Running commands in a terminal with CTRL-Enter. URL handlers. ''; - homepage = "http://sourceforge.net/projects/gmrun/"; + homepage = https://sourceforge.net/projects/gmrun/; license = "GPL"; maintainers = []; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/gmtp/default.nix b/pkgs/applications/misc/gmtp/default.nix index a86cf268801..dfe61b57b43 100644 --- a/pkgs/applications/misc/gmtp/default.nix +++ b/pkgs/applications/misc/gmtp/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "A simple MP3 and Media player client for UNIX and UNIX like systems."; - homepage = "https://gmtp.sourceforge.io"; + homepage = https://gmtp.sourceforge.io; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.pbogdan ]; license = stdenv.lib.licenses.bsd3; diff --git a/pkgs/applications/misc/gnome15/default.nix b/pkgs/applications/misc/gnome15/default.nix index c4f8be88bb5..e2cf8245ce6 100644 --- a/pkgs/applications/misc/gnome15/default.nix +++ b/pkgs/applications/misc/gnome15/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A set of tools for configuring the Logitech G15 keyboard"; license = licenses.gpl3; - homepage = "https://gnome15.org/"; + homepage = https://gnome15.org/; platforms = platforms.linux; maintainers = with maintainers; [ abbradar ]; }; diff --git a/pkgs/applications/misc/gnss-sdr/default.nix b/pkgs/applications/misc/gnss-sdr/default.nix new file mode 100644 index 00000000000..68b49492791 --- /dev/null +++ b/pkgs/applications/misc/gnss-sdr/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchFromGitHub +, armadillo +, boost +, cmake +, glog +, gmock +, openssl +, google-gflags +, gnuradio +, orc +, pkgconfig +, pythonPackages +, uhd +}: + +stdenv.mkDerivation rec { + name = "gnss-sdr-${version}"; + version = "0.0.9"; + + src = fetchFromGitHub { + owner = "gnss-sdr"; + repo = "gnss-sdr"; + rev = "v${version}"; + sha256 = "0gis932ly3vk7d5qvznffp54pkmbw3m6v60mxjfdj5dd3r7vf975"; + }; + + buildInputs = [ + armadillo + boost.dev + cmake + glog + gmock + openssl.dev + google-gflags + gnuradio + orc + pkgconfig + pythonPackages.Mako + + # UHD support is optional, but gnuradio is built with it, so there's + # nothing to be gained by leaving it out. + uhd + ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-DGFlags_ROOT_DIR=${google-gflags}/lib" + "-DGLOG_INCLUDE_DIR=${glog}/include" + + # gnss-sdr doesn't truly depend on BLAS or LAPACK, as long as + # armadillo is built using both, so skip checking for them. + "-DBLAS=YES" + "-DLAPACK=YES" + + # Similarly, it doesn't actually use gfortran despite checking for + # its presence. + "-DGFORTRAN=YES" + ]; + + meta = with stdenv.lib; { + description = "An open source Global Navigation Satellite Systems software-defined receiver"; + homepage = http://gnss-sdr.org/; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/gnuradio-ais/default.nix b/pkgs/applications/misc/gnuradio-ais/default.nix index eda95bc0c5e..a67a8a44fce 100644 --- a/pkgs/applications/misc/gnuradio-ais/default.nix +++ b/pkgs/applications/misc/gnuradio-ais/default.nix @@ -16,8 +16,9 @@ stdenv.mkDerivation rec { sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig boost gnuradio makeWrapper cppunit gnuradio-osmosdr + cmake boost gnuradio makeWrapper cppunit gnuradio-osmosdr ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/misc/gnuradio-gsm/default.nix b/pkgs/applications/misc/gnuradio-gsm/default.nix index a47925cab90..bbdc74510ea 100644 --- a/pkgs/applications/misc/gnuradio-gsm/default.nix +++ b/pkgs/applications/misc/gnuradio-gsm/default.nix @@ -16,8 +16,9 @@ stdenv.mkDerivation rec { sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig boost gnuradio makeWrapper cppunit libosmocore gnuradio-osmosdr + cmake boost gnuradio makeWrapper cppunit libosmocore gnuradio-osmosdr ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/misc/gnuradio-nacl/default.nix b/pkgs/applications/misc/gnuradio-nacl/default.nix index 6298e083617..cd3630c842c 100644 --- a/pkgs/applications/misc/gnuradio-nacl/default.nix +++ b/pkgs/applications/misc/gnuradio-nacl/default.nix @@ -16,8 +16,9 @@ stdenv.mkDerivation rec { sha256 = "0q28lgkndcw9921hm6cw5ilxd83n65hjajwl78j50mh6yc3bim35"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig boost gnuradio uhd makeWrapper libsodium cppunit + cmake boost gnuradio uhd makeWrapper libsodium cppunit ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/misc/gnuradio-osmosdr/default.nix b/pkgs/applications/misc/gnuradio-osmosdr/default.nix index 5fc6eb2c274..e2d3e808476 100644 --- a/pkgs/applications/misc/gnuradio-osmosdr/default.nix +++ b/pkgs/applications/misc/gnuradio-osmosdr/default.nix @@ -15,8 +15,9 @@ stdenv.mkDerivation rec { sha256 = "0vyzr4fhkblf2v3d7m0ch5hws4c493jw3ydl4y6b2dfbfzchhsz8"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig boost gnuradio rtl-sdr uhd makeWrapper hackrf + cmake boost gnuradio rtl-sdr uhd makeWrapper hackrf ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/misc/gnuradio-rds/default.nix b/pkgs/applications/misc/gnuradio-rds/default.nix index 5e729a75557..3d09441a7f0 100644 --- a/pkgs/applications/misc/gnuradio-rds/default.nix +++ b/pkgs/applications/misc/gnuradio-rds/default.nix @@ -15,8 +15,9 @@ stdenv.mkDerivation rec { sha256 = "008284ya464q4h4fd0zvcn6g7bym231p8fl3kdxncz9ks4zsbsxs"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig boost gnuradio makeWrapper + cmake boost gnuradio makeWrapper ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix index 497ac298d28..0156122ec79 100644 --- a/pkgs/applications/misc/gnuradio/default.nix +++ b/pkgs/applications/misc/gnuradio/default.nix @@ -23,15 +23,16 @@ stdenv.mkDerivation rec { name = "gnuradio-${version}"; - version = "3.7.10.1"; + version = "3.7.11"; src = fetchurl { - url = "http://gnuradio.org/releases/gnuradio/${name}.tar.gz"; - sha256 = "0ds9mcw8hgm03f82jvp3j4mm02ha6zvsl77lp13jzqmbqifbdmv3"; + url = "https://gnuradio.org/releases/gnuradio/${name}.tar.gz"; + sha256 = "1m2jf8lafr6pr2dlm40nbvr6az8gwjfkzpbs4fxzv3l5hcqvmnc7"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig git boost cppunit fftw python swig2 orc lxml qt4 + cmake git boost cppunit fftw python swig2 orc lxml qt4 qwt alsaLib SDL libusb1 uhd gsl makeWrapper ]; @@ -41,8 +42,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postPatch = '' + substituteInPlace \ + gr-fec/include/gnuradio/fec/polar_decoder_common.h \ + --replace BOOST_CONSTEXPR_OR_CONST const + ''; + preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable -std=c++11" ''; # - Ensure we get an interactive backend for matplotlib. If not the gr_plot_* @@ -53,7 +60,7 @@ stdenv.mkDerivation rec { postInstall = '' printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc" - for file in "$out"/bin/* "$out"/share/gnuradio/examples/*/*.py; do + for file in $(find $out/bin $out/share/gnuradio/examples -type f -executable); do wrapProgram "$file" \ --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ --set MATPLOTLIBRC "$out/share/gnuradio" @@ -71,7 +78,7 @@ stdenv.mkDerivation rec { environments to support both wireless communications research and real-world radio systems. ''; - homepage = http://www.gnuradio.org; + homepage = https://www.gnuradio.org; license = licenses.gpl3; platforms = platforms.linux; maintainers = with maintainers; [ bjornfor fpletz ]; diff --git a/pkgs/applications/misc/gnuradio/wrapper.nix b/pkgs/applications/misc/gnuradio/wrapper.nix index cc8dbde273b..db2b453913f 100644 --- a/pkgs/applications/misc/gnuradio/wrapper.nix +++ b/pkgs/applications/misc/gnuradio/wrapper.nix @@ -11,10 +11,10 @@ stdenv.mkDerivation { mkdir -p $out/bin ln -s "${gnuradio}"/bin/* $out/bin/ - for file in "$out"/bin/*; do + for file in $(find $out/bin -type f -executable); do wrapProgram "$file" \ --prefix PYTHONPATH : ${stdenv.lib.concatStringsSep ":" - (map (path: "$(toPythonPath ${path})") extraPackages)} \ + (map (path: "$(toPythonPath ${path})") extraPackages)} \ --prefix GRC_BLOCKS_PATH : ${makeSearchPath "share/gnuradio/grc/blocks" extraPackages} done diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix index d6da900656c..358d9dff44a 100644 --- a/pkgs/applications/misc/golden-cheetah/default.nix +++ b/pkgs/applications/misc/golden-cheetah/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl , qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia, qttools, qtconnectivity -, yacc, flex, zlib, config, qmakeHook, makeQtWrapper +, yacc, flex, zlib, config, qmake, makeWrapper }: stdenv.mkDerivation rec { name = "golden-cheetah-${version}"; @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { url = "https://github.com/GoldenCheetah/GoldenCheetah/archive/V${version}.tar.gz"; sha256 = "0fiz2pj155cd357kph50lc6rjyzwp045glfv4y68qls9j7m9ayaf"; }; - qtInputs = [ - qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools yacc flex zlib + buildInputs = [ + qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools zlib qtconnectivity ]; - nativeBuildInputs = [ makeQtWrapper qmakeHook ] ++ qtInputs; + nativeBuildInputs = [ flex makeWrapper qmake yacc ]; preConfigure = '' cp src/gcconfig.pri.in src/gcconfig.pri cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin cp src/GoldenCheetah $out/bin - wrapQtProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib" + wrapProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib" runHook postInstall ''; diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix index be36eeceb6b..f552a74f4c1 100644 --- a/pkgs/applications/misc/goldendict/default.nix +++ b/pkgs/applications/misc/goldendict/default.nix @@ -1,16 +1,18 @@ { stdenv, fetchurl, pkgconfig, libXtst, libvorbis, hunspell , libao, ffmpeg, libeb, lzo, xz, libtiff -, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmakeHook }: +, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }: stdenv.mkDerivation rec { + name = "goldendict-1.5.0.rc2"; src = fetchurl { url = "https://github.com/goldendict/goldendict/archive/1.5.0-RC2.tar.gz"; sha256 = "1pizz39l61rbps0wby75fkvzyrah805257j33siqybwhsfiy1kmw"; }; + nativeBuildInputs = [ pkgconfig qmake ]; buildInputs = [ - pkgconfig qtbase qtsvg qtwebkit qtx11extras qttools libXtst libvorbis hunspell libao ffmpeg libeb - lzo xz libtiff qmakeHook + qtbase qtsvg qtwebkit qtx11extras qttools + libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff ]; qmakeFlags = [ "CONFIG+=zim_support" ]; diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock index 074a0c6fa43..7315c0a8d72 100644 --- a/pkgs/applications/misc/gollum/Gemfile.lock +++ b/pkgs/applications/misc/gollum/Gemfile.lock @@ -2,48 +2,53 @@ GEM remote: https://rubygems.org/ specs: charlock_holmes (0.7.3) - diff-lcs (1.2.5) - github-markup (1.3.3) - gitlab-grit (2.7.3) + diff-lcs (1.3) + gemojione (3.3.0) + json + github-markup (1.6.1) + gitlab-grit (2.8.1) charlock_holmes (~> 0.6) diff-lcs (~> 1.1) - mime-types (~> 1.15) + mime-types (>= 1.16, < 3) posix-spawn (~> 0.3) - gollum (4.0.1) - gollum-lib (~> 4.0, >= 4.0.1) - kramdown (~> 1.8.0) + gollum (4.1.2) + gemojione (~> 3.2) + gollum-lib (>= 4.2.7) + kramdown (~> 1.9.0) mustache (>= 0.99.5, < 1.0.0) sinatra (~> 1.4, >= 1.4.4) - useragent (~> 0.14.0) - gollum-grit_adapter (1.0.0) + useragent (~> 0.16.2) + gollum-grit_adapter (1.0.1) gitlab-grit (~> 2.7, >= 2.7.1) - gollum-lib (4.1.0) - github-markup (~> 1.3.3) + gollum-lib (4.2.7) + gemojione (~> 3.2) + github-markup (~> 1.6) gollum-grit_adapter (~> 1.0) - nokogiri (~> 1.6.4) - rouge (~> 1.9) - sanitize (~> 2.1.0) - stringex (~> 2.5.1) - kramdown (1.8.0) - mime-types (1.25.1) - mini_portile2 (2.0.0) + nokogiri (>= 1.6.1, < 2.0) + rouge (~> 2.1) + sanitize (~> 2.1) + stringex (~> 2.6) + json (2.1.0) + kramdown (1.9.0) + mime-types (2.99.3) + mini_portile2 (2.2.0) mustache (0.99.8) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - posix-spawn (0.3.11) - rack (1.6.4) + nokogiri (1.8.0) + mini_portile2 (~> 2.2.0) + posix-spawn (0.3.13) + rack (1.6.8) rack-protection (1.5.3) rack - rouge (1.10.1) + rouge (2.1.1) sanitize (2.1.0) nokogiri (>= 1.4.4) - sinatra (1.4.7) + sinatra (1.4.8) rack (~> 1.5) rack-protection (~> 1.4) tilt (>= 1.3, < 3) - stringex (2.5.2) - tilt (2.0.2) - useragent (0.14.0) + stringex (2.7.1) + tilt (2.0.8) + useragent (0.16.8) PLATFORMS ruby @@ -52,4 +57,4 @@ DEPENDENCIES gollum BUNDLED WITH - 1.10.6 + 1.15.3 diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix index 1f3cc9e27c0..4ad32c5fd7f 100644 --- a/pkgs/applications/misc/gollum/default.nix +++ b/pkgs/applications/misc/gollum/default.nix @@ -1,16 +1,32 @@ -{ stdenv, lib, bundlerEnv, ruby_2_2, icu, zlib }: +{ stdenv, bundlerEnv, ruby, makeWrapper +, git }: -bundlerEnv rec { - name = "gollum-${version}"; - version = "4.0.1"; +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "gollum"; + version = (import ./gemset.nix).gollum.version; - ruby = ruby_2_2; - gemdir = ./.; + nativeBuildInputs = [ makeWrapper ]; - meta = with lib; { + env = bundlerEnv { + name = "${name}-gems"; + inherit pname ruby; + gemdir = ./.; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/bin + makeWrapper ${env}/bin/gollum $out/bin/gollum \ + --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]} + ''; + + meta = with stdenv.lib; { description = "A simple, Git-powered wiki"; + homepage = https://github.com/gollum/gollum; license = licenses.mit; - maintainers = with maintainers; [ jgillich ]; + maintainers = with maintainers; [ jgillich primeos ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix index f0c71fa455c..cff774d7daa 100644 --- a/pkgs/applications/misc/gollum/gemset.nix +++ b/pkgs/applications/misc/gollum/gemset.nix @@ -1,170 +1,195 @@ { - useragent = { - version = "0.14.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "124r3mgkw1zjymsqq9r25zh1vwjrjgiji5fm620z53lpmmryj22j"; - }; - }; - tilt = { - version = "2.0.2"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0lkd40xfdqkp333vdfhrfjmi2y7k2hjs4azawfb62mrkfp7ivj84"; - }; - }; - stringex = { - version = "2.5.2"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17"; - }; - }; - sinatra = { - version = "1.4.7"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp"; - }; - }; - sanitize = { - version = "2.1.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; - }; - }; - rouge = { - version = "1.10.1"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; - }; - }; - rack-protection = { - version = "1.5.3"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; - }; - }; - rack = { - version = "1.6.4"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"; - }; - }; - posix-spawn = { - version = "0.3.11"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr"; - }; - }; - nokogiri = { - version = "1.6.7.2"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv"; - }; - }; - mustache = { - version = "0.99.8"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2"; - }; - }; - mini_portile2 = { - version = "2.0.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l"; - }; - }; - mime-types = { - version = "1.25.1"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8"; - }; - }; - kramdown = { - version = "1.8.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0ryqq055h5n10c1cfba6pxsssa907l2hkw29anp0d41ryh47ca2l"; - }; - }; - gollum-lib = { - version = "4.1.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm"; - }; - }; - gollum-grit_adapter = { - version = "1.0.0"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7"; - }; - }; - gollum = { - version = "4.0.1"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "02pgx083sns75zgnqx94p5h5bpr7cfiw5mys4ayb4k33hcjm6ydg"; - }; - }; - gitlab-grit = { - version = "2.7.3"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b"; - }; - }; - github-markup = { - version = "1.3.3"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq"; - }; - }; - diff-lcs = { - version = "1.2.5"; - source = { - type = "gem"; - remotes = ["https://rubygems.org"]; - sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"; - }; - }; charlock_holmes = { - version = "0.7.3"; source = { - type = "gem"; remotes = ["https://rubygems.org"]; sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7"; + type = "gem"; }; + version = "0.7.3"; + }; + diff-lcs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + gemojione = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; + }; + version = "3.3.0"; + }; + github-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nyb9ck2c9z5qi86n7r52w0m126qpnvc93yh35cn8bwsnkjqx0iq"; + type = "gem"; + }; + version = "1.6.1"; + }; + gitlab-grit = { + dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lf1cr6pzqrbnxiiwym6q74b1a2ihdi91dynajk8hi1p093hl66n"; + type = "gem"; + }; + version = "2.8.1"; + }; + gollum = { + dependencies = ["gemojione" "gollum-lib" "kramdown" "mustache" "sinatra" "useragent"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "051pm2f50daiqcqy87aq4809x4c95iwwml6ca4wgvvmj5zkk6k5a"; + type = "gem"; + }; + version = "4.1.2"; + }; + gollum-grit_adapter = { + dependencies = ["gitlab-grit"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b"; + type = "gem"; + }; + version = "1.0.1"; + }; + gollum-lib = { + dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1filwvjfj5q2m6w4q274ai36d6f0mrsv2l2khhk4bv1q6pqby2fq"; + type = "gem"; + }; + version = "4.2.7"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; + type = "gem"; + }; + version = "2.1.0"; + }; + kramdown = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0"; + type = "gem"; + }; + version = "1.9.0"; + }; + mime-types = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03j98xr0qw2p2jkclpmk7pm29yvmmh0073d8d43ajmr0h3w7i5l9"; + type = "gem"; + }; + version = "2.99.3"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm"; + type = "gem"; + }; + version = "2.2.0"; + }; + mustache = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2"; + type = "gem"; + }; + version = "0.99.8"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn"; + type = "gem"; + }; + version = "1.8.0"; + }; + posix-spawn = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw"; + type = "gem"; + }; + version = "0.3.13"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19m7aixb2ri7p1n0iqaqx8ldi97xdhvbxijbyrrcdcl6fv5prqza"; + type = "gem"; + }; + version = "1.6.8"; + }; + rack-protection = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; + type = "gem"; + }; + version = "1.5.3"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wn6rq5qjmcwh9ixkljazv6gmg746rgbgs6av5qnk0mxim5qw11p"; + type = "gem"; + }; + version = "2.1.1"; + }; + sanitize = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; + type = "gem"; + }; + version = "2.1.0"; + }; + sinatra = { + dependencies = ["rack" "rack-protection" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq"; + type = "gem"; + }; + version = "1.4.8"; + }; + stringex = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zc93v00av643lc6njl09wwki7h5yqayhh1din8zqfylw814l1dv"; + type = "gem"; + }; + version = "2.7.1"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; + }; + version = "2.0.8"; + }; + useragent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1139cjqyv1hk1qcw89k81ajjkqyakqgbcyvmfrsmjqi8yn9kgqhq"; + type = "gem"; + }; + version = "0.16.8"; }; } \ No newline at end of file diff --git a/pkgs/applications/misc/googler/default.nix b/pkgs/applications/misc/googler/default.nix new file mode 100644 index 00000000000..026457fb857 --- /dev/null +++ b/pkgs/applications/misc/googler/default.nix @@ -0,0 +1,25 @@ +{stdenv, fetchFromGitHub, python}: + +stdenv.mkDerivation rec { + version = "3.3"; + name = "googler-${version}"; + + src = fetchFromGitHub { + owner = "jarun"; + repo = "googler"; + rev = "v${version}"; + sha256 = "0gkzgcf0qss7fskgswryk835vivlv1f99ym1pbxy3vv9wcwx6a43"; + }; + + propagatedBuildInputs = [ python ]; + + makeFlags = "PREFIX=$(out)"; + + meta = with stdenv.lib; { + homepage = https://github.com/jarun/googler; + description = "Google Search, Google Site Search, Google News from the terminal"; + license = licenses.gpl3; + maintainers = with maintainers; [ koral ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/misc/gpg-mdp/default.nix b/pkgs/applications/misc/gpg-mdp/default.nix index fe58fa92d07..4143f6fde55 100644 --- a/pkgs/applications/misc/gpg-mdp/default.nix +++ b/pkgs/applications/misc/gpg-mdp/default.nix @@ -19,11 +19,11 @@ in stdenv.mkDerivation { --replace "alias echo=/bin/echo" "" substituteInPlace ./src/config.c \ - --replace "/usr/bin/gpg" "${gnupg}/bin/gpg2" \ + --replace "/usr/bin/gpg" "${gnupg}/bin/gpg" \ --replace "/usr/bin/vi" "vi" substituteInPlace ./mdp.1 \ - --replace "/usr/bin/gpg" "${gnupg}/bin/gpg2" + --replace "/usr/bin/gpg" "${gnupg}/bin/gpg" ''; # we add symlinks to the binary and man page with the name 'gpg-mdp', in case # the completely unrelated program also named 'mdp' is already installed. diff --git a/pkgs/applications/misc/gphoto2/gphotofs.nix b/pkgs/applications/misc/gphoto2/gphotofs.nix index 230e0ff7414..6fa11667cf3 100644 --- a/pkgs/applications/misc/gphoto2/gphotofs.nix +++ b/pkgs/applications/misc/gphoto2/gphotofs.nix @@ -8,8 +8,9 @@ stdenv.mkDerivation rec { sha256 = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - libgphoto2 fuse pkgconfig glib libtool + libgphoto2 fuse glib libtool ]; meta = { diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix index ace89cd8a21..0911fbace44 100644 --- a/pkgs/applications/misc/gpsbabel/default.nix +++ b/pkgs/applications/misc/gpsbabel/default.nix @@ -1,14 +1,14 @@ -{ lib, stdenv, fetchurl, fetchpatch, zlib, qt4, which, IOKit }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase }: stdenv.mkDerivation rec { name = "gpsbabel-${version}"; - version = "1.5.3"; + version = "1.5.4"; - src = fetchurl { - # gpgbabel.org makes it hard to get the source tarball automatically, so - # get it from elsewhere. - url = "mirror://debian/pool/main/g/gpsbabel/gpsbabel_${version}.orig.tar.gz"; - sha256 = "0l6c8911f7i5bbdzah9irhqf127ib0b7lv53rb8r9z8g439mznq1"; + src = fetchFromGitHub { + owner = "gpsbabel"; + repo = "gpsbabel"; + rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}"; + sha256 = "0v6wpp14zkfbarmksf9dn3wmpj1araxd7xi5xp7gpl7kafb9aiwi"; }; patches = [ @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { }) ]; - buildInputs = [ zlib qt4 which ] + buildInputs = [ zlib qtbase which ] ++ lib.optionals stdenv.isDarwin [ IOKit ]; /* FIXME: Building the documentation, with "make doc", requires this: @@ -46,7 +46,9 @@ stdenv.mkDerivation rec { # The raymarine and gtm tests fail on i686 despite -ffloat-store. + lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;" # The gtm, kml and tomtom asc tests fail on darwin, see PR #23572. - + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test"; + + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test testo.d/classic-2.test" + # The arc-project test fails on aarch64. + + lib.optionalString stdenv.isAarch64 "rm -v testo.d/arc-project.test"; meta = with stdenv.lib; { description = "Convert, upload and download data from GPS and Map programs"; diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix index 07fcf31ed26..a51ec8c1b04 100644 --- a/pkgs/applications/misc/gpsprune/default.nix +++ b/pkgs/applications/misc/gpsprune/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Application for viewing, editing and converting GPS coordinate data"; - homepage = http://activityworkshop.net/software/gpsprune/; + homepage = https://activityworkshop.net/software/gpsprune/; license = licenses.gpl2Plus; maintainers = [ maintainers.rycee ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/gpx-viewer/default.nix b/pkgs/applications/misc/gpx-viewer/default.nix new file mode 100644 index 00000000000..a7485c4ee68 --- /dev/null +++ b/pkgs/applications/misc/gpx-viewer/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, shared_mime_info, desktop_file_utils, wrapGAppsHook }: + +stdenv.mkDerivation rec { + name = "gpx-viewer-${version}"; + version = "0.4.0"; + + src = fetchurl { + url = "https://launchpad.net/gpx-viewer/trunk/${version}/+download/${name}.tar.gz"; + sha256 = "956acfaf870ac436300cd9953dece630df7fd7dff8e4ae2577a6002884466f80"; + }; + + patches = fetchurl { + url = "https://code.launchpad.net/~chkr/gpx-viewer/gtk3-bugfix/+merge/260766/+preview-diff/628965/+files/preview.diff"; + sha256 = "1yl7jk7skkcx10nny5zdixswcymjd9s9c1zhm1i5y3aqhchvmfs7"; + }; + patchFlags = [ "-p0" ]; + + nativeBuildInputs = [ + intltool pkgconfig + shared_mime_info # For update-mime-database + desktop_file_utils # For update-desktop-database + wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system + ]; + buildInputs = with gnome3; [ gdl libchamplain defaultIconTheme ]; + + meta = with stdenv.lib; { + homepage = https://blog.sarine.nl/tag/gpxviewer/; + description = "Simple tool to visualize tracks and waypoints stored in a gpx file"; + platforms = with platforms; linux; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix index 5b977d13796..00735624ad9 100644 --- a/pkgs/applications/misc/gpxsee/default.nix +++ b/pkgs/applications/misc/gpxsee/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchFromGitHub, qmakeHook, qtbase, qttools, makeQtWrapper }: +{ stdenv, fetchFromGitHub, qmake, qtbase, qttools }: stdenv.mkDerivation rec { name = "gpxsee-${version}"; - version = "4.3"; + version = "4.14"; src = fetchFromGitHub { owner = "tumic0"; repo = "GPXSee"; rev = version; - sha256 = "15f686frxlrmdvh5cc837kx62g0ihqj4vb87i8433g7l5vqkv3lf"; + sha256 = "0yv3hcs5b8a88mp24h8r2sn69phwrahdff5pp74lz24270il3jgb"; }; - nativeBuildInputs = [ qmakeHook qttools makeQtWrapper ]; + nativeBuildInputs = [ qmake qttools ]; preConfigure = '' substituteInPlace src/config.h --replace /usr/share/gpxsee $out/share/gpxsee @@ -20,7 +20,6 @@ stdenv.mkDerivation rec { preFixup = '' install -Dm755 GPXSee $out/bin/GPXSee - wrapQtProgram $out/bin/GPXSee mkdir -p $out/share/gpxsee cp pkg/maps.txt $out/share/gpxsee diff --git a/pkgs/applications/misc/gqrx/default.nix b/pkgs/applications/misc/gqrx/default.nix index 3fda4d8881a..27bda1e2092 100644 --- a/pkgs/applications/misc/gqrx/default.nix +++ b/pkgs/applications/misc/gqrx/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, qt4, qmake4Hook, gnuradio, boost, gnuradio-osmosdr +{ stdenv, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gnuradio-osmosdr # drivers (optional): , rtl-sdr, hackrf , pulseaudioSupport ? true, libpulseaudio @@ -8,29 +8,25 @@ assert pulseaudioSupport -> libpulseaudio != null; stdenv.mkDerivation rec { name = "gqrx-${version}"; - version = "2.5.3"; + version = "2.8"; src = fetchFromGitHub { owner = "csete"; repo = "gqrx"; rev = "v${version}"; - sha256 = "02pavd1kc0gsnrl18bfa01r2f3j4j05zly4a8zwss9yrsgf8432x"; + sha256 = "0niy4c05886mhbfmix93j2bnj4kzdh9bvrmymawl6z28glyz5d3c"; }; - nativeBuildInputs = [ qmake4Hook ]; - + nativeBuildInputs = [ cmake ]; buildInputs = [ - qt4 gnuradio boost gnuradio-osmosdr rtl-sdr hackrf + qtbase qtsvg gnuradio boost gnuradio-osmosdr rtl-sdr hackrf ] ++ stdenv.lib.optionals pulseaudioSupport [ libpulseaudio ]; enableParallelBuilding = true; postInstall = '' - mkdir -p "$out/share/applications" - mkdir -p "$out/share/icons" - - cp gqrx.desktop "$out/share/applications/" - cp resources/icons/gqrx.svg "$out/share/icons/" + install -vD $src/gqrx.desktop -t "$out/share/applications/" + install -vD $src/resources/icons/gqrx.svg -t "$out/share/icons/" ''; meta = with stdenv.lib; { @@ -45,7 +41,7 @@ stdenv.mkDerivation rec { # Some of the code comes from the Cutesdr project, with a BSD license, but # it's currently unknown which version of the BSD license that is. license = licenses.gpl3Plus; - platforms = platforms.linux; # should work on Darwin / OS X too + platforms = platforms.linux; # should work on Darwin / macOS too maintainers = with maintainers; [ bjornfor the-kenny fpletz ]; }; } diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix index 4dcb5be8a21..8b66b23df01 100644 --- a/pkgs/applications/misc/gramps/default.nix +++ b/pkgs/applications/misc/gramps/default.nix @@ -1,23 +1,31 @@ -{ stdenv, fetchurl, gtk3, pythonPackages, intltool, - pango, gsettings_desktop_schemas }: +{ stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, + pango, gsettings_desktop_schemas, +# Optional packages: + enableOSM ? true, osm-gps-map + }: let inherit (pythonPackages) python buildPythonApplication; in buildPythonApplication rec { - version = "4.1.1"; + version = "4.2.6"; name = "gramps-${version}"; - buildInputs = [ intltool gtk3 ]; + buildInputs = [ intltool gtk3 ] + # Map support + ++ stdenv.lib.optional enableOSM osm-gps-map + ; # Currently broken doCheck = false; - src = fetchurl { - url = "mirror://sourceforge/gramps/Stable/${version}/${name}.tar.gz"; - sha256 = "0jdps7yx2mlma1hdj64wssvnqd824xdvw0bmn2dnal5fn3h7h060"; + src = fetchFromGitHub { + owner = "gramps-project"; + repo = "gramps"; + rev = "v${version}"; + sha256 = "0k0bx6msc2kvkg0nwa9v2mp3qy7lmnxjd97n6a1zdzlq8yzw29f1"; }; - pythonPath = with pythonPackages; [ pygobject3 pycairo ] ++ [ pango ]; + pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ] ++ [ pango ]; # Same installPhase as in buildPythonApplication but without --old-and-unmanageble # install flag. diff --git a/pkgs/applications/misc/green-pdfviewer/default.nix b/pkgs/applications/misc/green-pdfviewer/default.nix index 623cb12f932..00421a2e033 100644 --- a/pkgs/applications/misc/green-pdfviewer/default.nix +++ b/pkgs/applications/misc/green-pdfviewer/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "0d0lv33flhgsxhc77kfp2avdz5gvml04r8l1j95yjz2rr096lzlj"; }; - buildInputs = [ poppler pkgconfig gdk_pixbuf SDL gtk2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ poppler gdk_pixbuf SDL gtk2 ]; patches = [ ./gdk-libs.patch diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix index 5db5b25947e..cb407fca66c 100644 --- a/pkgs/applications/misc/grip/default.nix +++ b/pkgs/applications/misc/grip/default.nix @@ -9,14 +9,15 @@ stdenv.mkDerivation rec { sha256 = "1zb6zpq7qmn6bflbgfwisyg3vrjr23yi1c1kqvwndl1f0shr8qyl"; }; - buildInputs = [ gtk2 glib pkgconfig libgnome libgnomeui vte curl cdparanoia + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia libid3tag ncurses libtool ]; hardeningDisable = [ "format" ]; meta = { description = "GTK+-based audio CD player/ripper"; - homepage = "http://nostatic.org/grip"; + homepage = http://nostatic.org/grip; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ marcweber peti ]; diff --git a/pkgs/applications/misc/gsimplecal/default.nix b/pkgs/applications/misc/gsimplecal/default.nix index 9115fe026da..7f3b3a8d6dc 100644 --- a/pkgs/applications/misc/gsimplecal/default.nix +++ b/pkgs/applications/misc/gsimplecal/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ pkgconfig automake autoconf gtk3 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ automake autoconf gtk3 ]; preConfigure = "./autogen.sh"; diff --git a/pkgs/applications/misc/gtk2fontsel/default.nix b/pkgs/applications/misc/gtk2fontsel/default.nix index ea3f4b8f2b9..347d76860ef 100644 --- a/pkgs/applications/misc/gtk2fontsel/default.nix +++ b/pkgs/applications/misc/gtk2fontsel/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "0s2sj19n8ys92q9832hkn36ld91bb4qavicc6nygkry6qdpkkmjw"; }; - buildInputs = [ stdenv pkgconfig gtk ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ stdenv gtk ]; preferLocalBuild = true; diff --git a/pkgs/applications/misc/gummi/default.nix b/pkgs/applications/misc/gummi/default.nix new file mode 100644 index 00000000000..5fdb8985bbb --- /dev/null +++ b/pkgs/applications/misc/gummi/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, pkgs, makeWrapper +, glib, gnome2, gnome3, gtk2-x11, gtkspell2, poppler +, pkgconfig, intltool, autoreconfHook, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + version = "0.6.6"; + name = "gummi-${version}"; + + src = pkgs.fetchFromGitHub { + owner = "alexandervdm"; + repo = "gummi"; + rev = "${version}"; + sha256 = "1vw8rhv8qj82l6l22kpysgm9mxilnki2kjmvxsnajbqcagr6s7cn"; + }; + + nativeBuildInputs = [ + pkgconfig intltool autoreconfHook makeWrapper wrapGAppsHook + ]; + buildInputs = [ + glib gnome2.gtksourceview gnome2.pango gtk2-x11 gtkspell2 poppler + gnome3.defaultIconTheme + ]; + + preConfigure = '' + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${pkgs.gnome2.gtksourceview}/share") + ''; + + postInstall = '' + install -Dpm644 COPYING $out/share/licenses/$name/COPYING + ''; + + meta = { + homepage = http://gummi.midnightcoding.org/; + description = "Simple LaTex editor for GTK users"; + license = stdenv.lib.licenses.mit; + maintainers = with stdenv.lib.maintainers; [ flokli ]; + platforms = with stdenv.lib.platforms; linux; + inherit version; + }; +} diff --git a/pkgs/applications/misc/gxmessage/default.nix b/pkgs/applications/misc/gxmessage/default.nix index 08ae34f9705..a61d532f1f8 100644 --- a/pkgs/applications/misc/gxmessage/default.nix +++ b/pkgs/applications/misc/gxmessage/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "db4e1655fc58f31e5770a17dfca4e6c89028ad8b2c8e043febc87a0beedeef05"; }; - buildInputs = [ intltool gnome3.gtk pkgconfig texinfo ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool gnome3.gtk texinfo ]; meta = { description = "A GTK enabled dropin replacement for xmessage"; homepage = "http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage"; diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix index 1132f6b12f9..f581b302c3f 100644 --- a/pkgs/applications/misc/gxneur/default.nix +++ b/pkgs/applications/misc/gxneur/default.nix @@ -8,8 +8,9 @@ stdenv.mkDerivation { sha256 = "f093428a479158247a7ff8424f0aec9af9f7b1d05b191cf30b7c534965a6839f"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - xorg.libX11 pkgconfig glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur_0_13 + xorg.libX11 glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur_0_13 libglade GConf pcre ]; diff --git a/pkgs/applications/misc/hackrf/default.nix b/pkgs/applications/misc/hackrf/default.nix index e92cd4cdacc..6186ed6f8f4 100644 --- a/pkgs/applications/misc/hackrf/default.nix +++ b/pkgs/applications/misc/hackrf/default.nix @@ -1,23 +1,26 @@ -{ stdenv, fetchgit, cmake, pkgconfig, libusb }: +{ stdenv, fetchgit, cmake, pkgconfig, libusb, fftwSinglePrec }: stdenv.mkDerivation rec { name = "hackrf-${version}"; - version = "2015.07.2"; + version = "2017.02.1"; src = fetchgit { url = "git://github.com/mossmann/hackrf"; rev = "refs/tags/v${version}"; - sha256 = "1mn11yz6hbkmvrbxj5vnp78m5dsny96821a9ffpvbdcwx3s2p23m"; + sha256 = "16hd61icvzaciv7s9jpgm9c8q6m4mwvj97gxrb20sc65p5gjb7hv"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake pkgconfig libusb + cmake libusb fftwSinglePrec ]; - + + cmakeFlags = [ "-DUDEV_RULES_GROUP=plugdev" "-DUDEV_RULES_PATH=lib/udev/rules.d" ]; + preConfigure = '' - cd host + cd host ''; - + meta = with stdenv.lib; { description = "An open source SDR platform"; homepage = http://greatscottgadgets.com/hackrf/; diff --git a/pkgs/applications/misc/hamster-time-tracker/default.nix b/pkgs/applications/misc/hamster-time-tracker/default.nix index b8bd514c9ff..51a14fb20d0 100644 --- a/pkgs/applications/misc/hamster-time-tracker/default.nix +++ b/pkgs/applications/misc/hamster-time-tracker/default.nix @@ -31,6 +31,10 @@ pythonPackages.buildPythonApplication rec { python waf build ''; + postFixup = '' + wrapPythonProgramsIn $out/lib/hamster-time-tracker "$out $pythonPath" + ''; + installPhase = '' python waf install ''; diff --git a/pkgs/applications/misc/haxor-news/default.nix b/pkgs/applications/misc/haxor-news/default.nix index e925885f05f..dc771fc2d5e 100644 --- a/pkgs/applications/misc/haxor-news/default.nix +++ b/pkgs/applications/misc/haxor-news/default.nix @@ -1,25 +1,25 @@ { stdenv, fetchurl, pythonPackages }: pythonPackages.buildPythonApplication rec { - version = "0.4.1"; + version = "0.4.2"; name = "haxor-news-${version}"; src = fetchurl { url = "https://github.com/donnemartin/haxor-news/archive/${version}.tar.gz"; - sha256 = "0d3an7by33hjl8zg48y7ig6r258ghgbdkpp1psa9jr6n2nk2w9mr"; + sha256 = "0543k5ys044f2a1q8k36djnnq2h2dffnwbkva9snjjy30nlwwdgs"; }; propagatedBuildInputs = with pythonPackages; [ click colorama - requests2 + requests pygments - prompt_toolkit_52 + prompt_toolkit six ]; meta = with stdenv.lib; { - homepage = "https://github.com/donnemartin/haxor-news"; + homepage = https://github.com/donnemartin/haxor-news; description = "Browse Hacker News like a haxor"; license = licenses.asl20; maintainers = with maintainers; [ matthiasbeyer ]; diff --git a/pkgs/applications/misc/houdini/default.nix b/pkgs/applications/misc/houdini/default.nix new file mode 100644 index 00000000000..0b679617243 --- /dev/null +++ b/pkgs/applications/misc/houdini/default.nix @@ -0,0 +1,14 @@ +{ zsh, stdenv, callPackage, buildFHSUserEnv, undaemonize }: + +let + houdini-runtime = callPackage ./runtime.nix { }; +in buildFHSUserEnv rec { + name = "houdini-${houdini-runtime.version}"; + + extraBuildCommands = '' + mkdir -p $out/usr/lib/sesi + ''; + + runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini"; +} + diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix new file mode 100644 index 00000000000..b3ce98895e6 --- /dev/null +++ b/pkgs/applications/misc/houdini/runtime.nix @@ -0,0 +1,86 @@ +{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, mesa_glu, alsaLib, dbus, xkeyboardconfig, bc }: + +let + ld_library_path = builtins.concatStringsSep ":" [ + "${stdenv.cc.cc.lib}/lib64" + "/run/opengl-driver/lib" + (stdenv.lib.makeLibraryPath [ + mesa_glu + xorg.libXmu + xorg.libXi + xorg.libXext + xorg.libX11 + xorg.libXrender + xorg.libXcursor + xorg.libXfixes + xorg.libXrender + xorg.libXcomposite + xorg.libXdamage + xorg.libXtst + alsaLib + fontconfig + libSM + libICE + zlib + libpng + dbus + ]) + ]; + license_dir = "~/.config/houdini"; +in +stdenv.mkDerivation rec { + version = "16.0.671"; + name = "houdini-runtime-${version}"; + src = requireFile rec { + name = "houdini-${version}-linux_x86_64_gcc4.8.tar.gz"; + sha256 = "1d3c1a1128szlgaf3ilw5y20plz5azwp37v0ljawgm80y64hq15r"; + message = '' + This nix expression requires that ${name} is already part of the store. + Download it from https://sidefx.com and add it to the nix store with: + + nix-prefetch-url + + This can't be done automatically because you need to create an account on + their website and agree to their license terms before you can download + it. That's what you get for using proprietary software. + ''; + }; + + buildInputs = [ bc ]; + installPhase = '' + patchShebangs houdini.install + mkdir -p $out + sed -i "s|/usr/lib/sesi|${license_dir}|g" houdini.install + ./houdini.install --install-houdini \ + --no-install-menus \ + --no-install-bin-symlink \ + --auto-install \ + --no-root-check \ + --accept-EULA \ + $out + echo -e "localValidatorDir = ${license_dir}\nlicensingMode = localValidator" > $out/houdini/Licensing.opt + sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd_safe + sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd.startup + echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/bin/app_init.sh + echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/bin/app_init.sh + echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/houdini/sbin/app_init.sh + echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh + ''; + postFixup = '' + INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)" + for BIN in $(find $out/bin -type f -executable); do + if patchelf $BIN 2>/dev/null ; then + echo "Patching ELF $BIN" + patchelf --set-interpreter "$INTERPRETER" "$BIN" + fi + done + ''; + meta = { + description = "3D animation application software"; + homepage = https://sidefx.com; + license = stdenv.lib.licenses.unfree; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.canndrew ]; + }; +} + diff --git a/pkgs/applications/misc/hstr/default.nix b/pkgs/applications/misc/hstr/default.nix index 78f3c2f391b..3c4f409d18f 100644 --- a/pkgs/applications/misc/hstr/default.nix +++ b/pkgs/applications/misc/hstr/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, readline, ncurses }: let - version = "1.22"; + version = "1.23"; in stdenv.mkDerivation rec { @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/dvorka/hstr/releases/download/${version}/hh-${version}-src.tgz"; - sha256 = "09rh510x8qc5jbpnfzazbv9wc3bqmf5asydcl2wijpqm5bi21iqp"; + sha256 = "1hnira256p7sdilx34mnkji7gi2jcl98zz4izqxsqmnzj8ghhzkv"; }; buildInputs = [ readline ncurses ]; meta = { - homepage = "https://github.com/dvorka/hstr"; + homepage = https://github.com/dvorka/hstr; description = "Shell history suggest box - easily view, navigate, search and use your command history"; license = stdenv.lib.licenses.asl20; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix index 57b844de97b..0dfc725b9ea 100644 --- a/pkgs/applications/misc/hugo/default.nix +++ b/pkgs/applications/misc/hugo/default.nix @@ -2,15 +2,15 @@ buildGoPackage rec { name = "hugo-${version}"; - version = "0.20.2"; + version = "0.29"; - goPackagePath = "github.com/spf13/hugo"; + goPackagePath = "github.com/gohugoio/hugo"; src = fetchFromGitHub { - owner = "spf13"; + owner = "gohugoio"; repo = "hugo"; rev = "v${version}"; - sha256 = "1dvd9kiqp87cbf027kvyqb282pxs8qm16r1dk74l5drranfvkszy"; + sha256 = "1vklws05534ig9rj55cqnxpqfsvns64kfdg6zjyrcpz7l0z07a33"; }; goDeps = ./deps.nix; diff --git a/pkgs/applications/misc/hugo/deps.nix b/pkgs/applications/misc/hugo/deps.nix index e2e2d093dde..35faf6b5704 100644 --- a/pkgs/applications/misc/hugo/deps.nix +++ b/pkgs/applications/misc/hugo/deps.nix @@ -4,8 +4,8 @@ fetch = { type = "git"; url = "https://github.com/BurntSushi/toml"; - rev = "99064174e013895bbd9b025c31100bd1d9b590ca"; - sha256 = "058qrar8rvw3wb0ci1mf1axnqq2729cvv9zmdr4ms2nn9s97yiz9"; + rev = "a368813c5e648fee92e5f6c30e3944ff9d5e8895"; + sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"; }; } { @@ -13,8 +13,8 @@ fetch = { type = "git"; url = "https://github.com/PuerkitoBio/purell"; - rev = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4"; - sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91"; + rev = "b938d81255b5473c57635324295cb0fe398c7a58"; + sha256 = "0d44lrg04g9nibhdlagwq9n8g5ka1784pm0jzyl6cfpq8nc1ppj8"; }; } { @@ -22,8 +22,17 @@ fetch = { type = "git"; url = "https://github.com/PuerkitoBio/urlesc"; - rev = "5bd2802263f21d8788851d5305584c82a5c75d7e"; - sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp"; + rev = "bbf7a2afc14f93e1e0a5c06df524fbd75e5031e5"; + sha256 = "13r896yy71i6jj1cwv2pjp53wjfxkg7bh884fggv6y79ly0qr63j"; + }; + } + { + goPackagePath = "github.com/alecthomas/chroma"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/chroma"; + rev = "b0295f66bdb7c61d54906003d7649185794e21b4"; + sha256 = "1hnvv13nphbzr9xm21fys7lgm0kd6qlbk58vc8fi802lxzsfmdis"; }; } { @@ -31,17 +40,8 @@ fetch = { type = "git"; url = "https://github.com/bep/gitmap"; - rev = "dcb907b39a0690430d435eb8f63cd8811961231f"; - sha256 = "0bw4spyiidrvd8rls9g57mwxykfmv57qi9mcnjadbqrpv92br856"; - }; - } - { - goPackagePath = "github.com/bep/inflect"; - fetch = { - type = "git"; - url = "https://github.com/bep/inflect"; - rev = "b896c45f5af983b1f416bdf3bb89c4f1f0926f69"; - sha256 = "0drv6in94n7lmap4ajvgqlvdcbpn8alinfdzywzpihvzbx21b3h3"; + rev = "de8030ebafb76c6e84d50ee6d143382637c00598"; + sha256 = "0adkv2ghi0zd104akksa9wjzj7s849wpa1rij03mycgxp4si9ami"; }; } { @@ -49,8 +49,8 @@ fetch = { type = "git"; url = "https://github.com/chaseadamsio/goorgeous"; - rev = "42b0ec184e93fc9fd2c0402f099a4939aba68407"; - sha256 = "00mlv64q34d0vdq7p88hlsck4lsnk2pnxghx1jzy99r7wvs34am3"; + rev = "098da33fde5f9220736531b3cb26a2dec86a8367"; + sha256 = "1cwag5vzgrzy22rvcp12whzgqbgrmdmaxar0fl4nwqxdhy90s67k"; }; } { @@ -58,8 +58,17 @@ fetch = { type = "git"; url = "https://github.com/cpuguy83/go-md2man"; - rev = "a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa"; - sha256 = "1rm3zjrmfpzy0l3qp02xmd5pqzl77pdql9pbxhl0k1qw2vfzrjv6"; + rev = "23709d0847197db6021a51fdb193e66e9222d4e7"; + sha256 = "1a87v4cnd5y5whcdkjcqjpg1s5pxqhrspdxrsk2af49zsw9fsj9f"; + }; + } + { + goPackagePath = "github.com/danwakefield/fnmatch"; + fetch = { + type = "git"; + url = "https://github.com/danwakefield/fnmatch"; + rev = "cbb64ac3d964b81592e64f957ad53df015803288"; + sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"; }; } { @@ -71,13 +80,22 @@ sha256 = "09sdijfx5d05z4cd5k6lhl7k3kbpdf2amzlngv15h5v0fff9qw4s"; }; } + { + goPackagePath = "github.com/dlclark/regexp2"; + fetch = { + type = "git"; + url = "https://github.com/dlclark/regexp2"; + rev = "487489b64fb796de2e55f4e8a4ad1e145f80e957"; + sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5"; + }; + } { goPackagePath = "github.com/eknkc/amber"; fetch = { type = "git"; url = "https://github.com/eknkc/amber"; - rev = "9be5e8aae85904f63d505e0c00e5e0881d44ef4d"; - sha256 = "1hmsqxwajgpmg1svzjqxf4n81qy7qs6m39cjv69jkhz9lpwc305j"; + rev = "b8bd8b03e4f747e33f092617225e9fa8076c0448"; + sha256 = "0qp5y9zhr6hi9ck33p7cnwla7d7p8vi4hj9llhg3bn1a69g21y0a"; }; } { @@ -85,8 +103,8 @@ fetch = { type = "git"; url = "https://github.com/fortytw2/leaktest"; - rev = "0db74e8cd5adacfcc982838c6e185789e4b44e14"; - sha256 = "11s04f1pliqw185ai1dbpqn5rahc3yzv2fp5zdanjvql4168499m"; + rev = "3b724c3d7b8729a35bf4e577f71653aec6e53513"; + sha256 = "0dmf7dp6b86nbfaq0s1mpjzd8q7jwrxvyxc0r6dhx3qx4dhddwpz"; }; } { @@ -103,8 +121,26 @@ fetch = { type = "git"; url = "https://github.com/gorilla/websocket"; - rev = "adf16b31781325cbd41085c5be901d95b4d1f33d"; - sha256 = "0f93k3igbqqwsl734lxnkbfajc4lcyzg4szg15vb26qn939b5ccx"; + rev = "a69d9f6de432e2c6b296a947d8a5ee88f68522cf"; + sha256 = "01y3ni7xzazsdzq2xqyjr69q9m4w1668zkrcbf58yp3q99jvckhi"; + }; + } + { + goPackagePath = "github.com/hashicorp/go-immutable-radix"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-immutable-radix"; + rev = "8aac2701530899b64bdea735a1de8da899815220"; + sha256 = "032w4pk4gd5lwwgnvhh52xnrgyp7lgmlxsfs47gnxkgkya1x7lw6"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "0a025b7e63adc15a622f29b0b2c4c3848243bbf6"; + sha256 = "1iq7lbpsz7ks052mpznmkf8s4k43p51z4dik2n9ivrxk666q2wxi"; }; } { @@ -112,8 +148,8 @@ fetch = { type = "git"; url = "https://github.com/hashicorp/hcl"; - rev = "80e628d796135357b3d2e33a985c666b9f35eee1"; - sha256 = "0l85a7ir60hycb3mqsxmrz18f1kax03k55afsahr8xf46pjp5pyb"; + rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca"; + sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb"; }; } { @@ -125,22 +161,22 @@ sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; }; } + { + goPackagePath = "github.com/jdkato/prose"; + fetch = { + type = "git"; + url = "https://github.com/jdkato/prose"; + rev = "c24611cae00c16858e611ef77226dd2f7502759f"; + sha256 = "0xdrjwbcnwiwbqyrxfknb9bskrsrbnqp0nza44bycwaj23by9bs1"; + }; + } { goPackagePath = "github.com/kardianos/osext"; fetch = { type = "git"; url = "https://github.com/kardianos/osext"; - rev = "9b883c5eb462dd5cb1b0a7a104fe86bc6b9bd391"; - sha256 = "0cyhbgsxwdfnwy57pdfivvjfy951gxbg9qlsjbwm6vs3gfws07mr"; - }; - } - { - goPackagePath = "github.com/kr/fs"; - fetch = { - type = "git"; - url = "https://github.com/kr/fs"; - rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b"; - sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly"; + rev = "ae77be60afb1dcacde03767a8c37337fad28ac14"; + sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"; }; } { @@ -148,8 +184,8 @@ fetch = { type = "git"; url = "https://github.com/kyokomi/emoji"; - rev = "7e06b236c489543f53868841f188a294e3383eab"; - sha256 = "1q2j0k5a8qqka1syc9zwmf1cvm6k628kf2g1nmghp2kdr7q1xmyb"; + rev = "ddd4753eac3f6480ca86b16cc6c98d26a0935d17"; + sha256 = "16vnpj8zxg3gg9ljwmvrlmdf4dqbxjagi8mldpq1cr481r35dsqh"; }; } { @@ -157,8 +193,17 @@ fetch = { type = "git"; url = "https://github.com/magiconair/properties"; - rev = "9c47895dc1ce54302908ab8a43385d1f5df2c11c"; - sha256 = "0497bacr3gc7352gcwb07wyw7vb9m04xfd82mw0hpnzzw3kfnav3"; + rev = "be5ece7dd465ab0765a9682137865547526d1dfb"; + sha256 = "0spk58x9b0hj29cw6wy6rlvc6s9xk4r0gmlxgsc194pkzqcg1my8"; + }; + } + { + goPackagePath = "github.com/markbates/inflect"; + fetch = { + type = "git"; + url = "https://github.com/markbates/inflect"; + rev = "6cacb66d100482ef7cc366289ccb156020e57e76"; + sha256 = "1cglvw75qagnz6bnaxpkfyq9j4j0vw377a8ywa9i1vskxlssj1b2"; }; } { @@ -166,8 +211,8 @@ fetch = { type = "git"; url = "https://github.com/miekg/mmark"; - rev = "2d4f1dd6f87cad351b9323bbaa6f6c586f0c4bee"; - sha256 = "1ak54nvmryx73g16q6qaac9x0klhbxxmk1j6zlnfvvibnkj2pa90"; + rev = "fd2f6c1403b37925bd7fe13af05853b8ae58ee5f"; + sha256 = "0q2zrwa2vwk7a0zhmi000zpqrc01zssrj9c5n3573rg68fksg77m"; }; } { @@ -175,8 +220,8 @@ fetch = { type = "git"; url = "https://github.com/mitchellh/mapstructure"; - rev = "bfdb1a85537d60bc7e954e600c250219ea497417"; - sha256 = "141kkh801jyp1r6hba14krydqg1iivp13j12is70j0g05z9fbji8"; + rev = "d0303fe809921458f417bcf828397a65db30a7e4"; + sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8"; }; } { @@ -184,17 +229,8 @@ fetch = { type = "git"; url = "https://github.com/nicksnyder/go-i18n"; - rev = "4df9b06c0c1ffd8538a3cfa9d888f8f52985b302"; - sha256 = "1cbbvq9l822p7vrscvaah3zybsj5yxcsq9fgvgsg062njbb0x41f"; - }; - } - { - goPackagePath = "github.com/pelletier/go-buffruneio"; - fetch = { - type = "git"; - url = "https://github.com/pelletier/go-buffruneio"; - rev = "c37440a7cf42ac63b919c752ca73a85067e05992"; - sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2"; + rev = "3e70a1a463008cea6726380c908b1a6a8bdf7b24"; + sha256 = "0fxjgmwn9927wckl2xx8byv64cxgc0yxdwpfzval5n3wm5l5ij1i"; }; } { @@ -202,26 +238,8 @@ fetch = { type = "git"; url = "https://github.com/pelletier/go-toml"; - rev = "fee7787d3f811af92276f5ff10107092e95b7a1d"; - sha256 = "0srx5hr35f9qzn5dnqqa0msyjknwn7vcq0jmlkvfxgaq0ygd6s3r"; - }; - } - { - goPackagePath = "github.com/pkg/errors"; - fetch = { - type = "git"; - url = "https://github.com/pkg/errors"; - rev = "248dadf4e9068a0b3e79f02ed0a610d935de5302"; - sha256 = "03l80r0i9bxl0vz363w62k4a8apzglgbrz6viwym3044sxkl1qks"; - }; - } - { - goPackagePath = "github.com/pkg/sftp"; - fetch = { - type = "git"; - url = "https://github.com/pkg/sftp"; - rev = "4d0e916071f68db74f8a73926335f809396d6b42"; - sha256 = "0l4n4ld0lx53s0hgz5rhk8gn7kr51adsr0cs6wlqm296xlcfp52h"; + rev = "69d355db5304c0f7f809a2edc054553e7142f016"; + sha256 = "1ay861x1bqcs629rqb3nq4f347y80phmgm8w7w8kjfdlgpy1v9dm"; }; } { @@ -229,8 +247,8 @@ fetch = { type = "git"; url = "https://github.com/russross/blackfriday"; - rev = "5f33e7b7878355cd2b7e6b8eefc48a5472c69f70"; - sha256 = "0d7faqxrxvh8hwc1r8gbasgmr8x5blxvzciwspir2yafjfbqy87k"; + rev = "4048872b16cc0fc2c5fd9eacf0ed2c2fedaa0c8c"; + sha256 = "17zg26ia43c8axrxp5q2bxh1asiqfhin4ah7h5d8ibil6pv7xbx4"; }; } { @@ -238,8 +256,8 @@ fetch = { type = "git"; url = "https://github.com/shurcooL/sanitized_anchor_name"; - rev = "1dba4b3954bc059efc3991ec364f9f9a35f597d2"; - sha256 = "0pwap8lp79pldd95a1qi3xhlsa17m8zddpgc5jzvk6d1cjpsm6qg"; + rev = "541ff5ee47f1dddf6a5281af78307d921524bcb5"; + sha256 = "1fslblamqkd0yrvl1kbq95hnnji78bq9m33nnxiqs7y9w32zylv5"; }; } { @@ -256,8 +274,8 @@ fetch = { type = "git"; url = "https://github.com/spf13/cast"; - rev = "ce135a4ebeee6cfe9a26c93ee0d37825f26113c7"; - sha256 = "1a2ahiyynn1kdjznqvzjfm5g5bc098gfw857bw9qikhdljvsnjiy"; + rev = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4"; + sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050"; }; } { @@ -265,8 +283,8 @@ fetch = { type = "git"; url = "https://github.com/spf13/cobra"; - rev = "7be4beda01ec05d0b93d80b3facd2b6f44080d94"; - sha256 = "0jd2ya8kn763z16c3q5jl1x6raw2f3xq3vbaf4ppiy70zqzscmyg"; + rev = "34594c771f2c18301dc152640ad40ece28795373"; + sha256 = "0cgyba80gbw4vq2zp1chjz5zil3rapv65y7883f7va2ygcy57s38"; }; } { @@ -283,8 +301,8 @@ fetch = { type = "git"; url = "https://github.com/spf13/jwalterweatherman"; - rev = "fa7ca7e836cf3a8bb4ebf799f472c12d7e903d66"; - sha256 = "0404b7bzx7cq1b2bgdb3gs7gjzm4vvg1hl2y9mcm4m6vz56vbcz8"; + rev = "0efa5202c04663c757d84f90f5219c1250baf94f"; + sha256 = "1sfd72zvw9lrzfc8haswhqf93bzm20q4yhbynm6n5fnnc56zn4gs"; }; } { @@ -301,8 +319,8 @@ fetch = { type = "git"; url = "https://github.com/spf13/pflag"; - rev = "9ff6c6923cfffbcd502984b8e0c80539a94968b7"; - sha256 = "0mfrxzyl8x7araa126lh8l3sihbbgfbzgkrg3v3cx7y4n3wrsqvn"; + rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66"; + sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2"; }; } { @@ -310,8 +328,8 @@ fetch = { type = "git"; url = "https://github.com/spf13/viper"; - rev = "7538d73b4eb9511d85a9f1dfef202eeb8ac260f4"; - sha256 = "0i4q715bjp018zw1b52zgx79j4s7s8l26dyrw8cslshibkx0frnl"; + rev = "25b30aa063fc18e48662b86996252eabdcf2f0c7"; + sha256 = "1a1xxsn39sgiyhz3pd9v5qhi7d5p4z4cml0mcdgm65n3f8vgkdv3"; }; } { @@ -319,8 +337,8 @@ fetch = { type = "git"; url = "https://github.com/stretchr/testify"; - rev = "4d4bfba8f1d1027c4fdbe371823030df51419987"; - sha256 = "1d3yz1d2s88byjzmn60jbi1m9s552f7ghzbzik97fbph37i8yjhp"; + rev = "05e8a0eda380579888eb53c394909df027f06991"; + sha256 = "03l83nrgpbyc2hxxfi928gayj16fsclbr88dja6r9kikq19a6yhv"; }; } { @@ -333,12 +351,12 @@ }; } { - goPackagePath = "golang.org/x/crypto"; + goPackagePath = "golang.org/x/image"; fetch = { type = "git"; - url = "https://go.googlesource.com/crypto"; - rev = "453249f01cfeb54c3d549ddb75ff152ca243f9d8"; - sha256 = "0akybbzgi3v507a39bgnkk79rfhj8gflr7538g5a0177z5i9ygwa"; + url = "https://go.googlesource.com/image"; + rev = "426cfd8eeb6e08ab1932954e09e3c2cb2bc6e36d"; + sha256 = "0zbqvkn7amq9bnq38pxjqyn1xggphrisaw98x7diw3i0a5phk93r"; }; } { @@ -346,8 +364,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/net"; - rev = "906cda9512f77671ab44f8c8563b13a8e707b230"; - sha256 = "0aa33n5a2zzrm2pnjyc3xkdmf8hq2qpafgdp8v6fxfb0swqjl2n3"; + rev = "f5079bd7f6f74e23c4d65efa0f4ce14cbd6a3c0f"; + sha256 = "0sck2mq4bwyh5iv51jpbywzwhc47ci1q5yd7pqr68xnsz7b3b55k"; }; } { @@ -355,8 +373,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/sys"; - rev = "075e574b89e4c2d22f2286a7e2b919519c6f3547"; - sha256 = "1p38siwqcbd592lphaqpigl7scshkfy67k6jcwscbcsl6akw51km"; + rev = "35ef4487ce0a1ea5d4b616ffe71e34febe723695"; + sha256 = "1gxxj4vcsds5aiphv39d3x5jgyfscwxylf10hxgsmzs5m7jzr47n"; }; } { @@ -364,8 +382,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/text"; - rev = "0ad425fe45e885577bef05dc1c50f72e33188b16"; - sha256 = "1jz0i8iagfd703flx5z006kisjixpm8iy4hiwywgbh31wypsxxyl"; + rev = "836efe42bb4aa16aaa17b9c155d8813d336ed720"; + sha256 = "11s7bjk0karl1lx8v4n6dvdnsh702x4f2qlmnqac2qdz8hdswmi1"; }; } { @@ -373,8 +391,8 @@ fetch = { type = "git"; url = "https://gopkg.in/yaml.v2"; - rev = "a3f3340b5840cee44f372bddb5880fcbc419b46a"; - sha256 = "1djb53a8ikwgkfpf8namgf4d8pq1mq6q9q2c7q0z8x4dxf3whxj7"; + rev = "25c4ec802a7d637f88d584ab26798e94ad14c13b"; + sha256 = "053mknsl3xhjscmd552005xnwbfcg0z2iphvbvj3wi0w3pvmlw44"; }; } ] diff --git a/pkgs/applications/misc/hyper/default.nix b/pkgs/applications/misc/hyper/default.nix index 287efc89812..9349c07a62e 100644 --- a/pkgs/applications/misc/hyper/default.nix +++ b/pkgs/applications/misc/hyper/default.nix @@ -1,21 +1,22 @@ { stdenv, lib, fetchurl, dpkg, gtk2, atk, glib, pango, gdk_pixbuf, cairo , freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr , libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver +, libxcb , GConf, nss, nspr, alsaLib, cups, expat, libudev, libpulseaudio }: let libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus - libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes + libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb libXrender libX11 libXtst libXScrnSaver GConf nss nspr alsaLib cups expat libudev libpulseaudio ]; in stdenv.mkDerivation rec { - version = "1.3.1"; + version = "1.4.8"; name = "hyper-${version}"; src = fetchurl { - url = "https://github.com/zeit/hyper/releases/download/${version}/hyper_${version}.deb"; - sha256 = "1i1rnq10a9kid8lggrd1gp9g08v98la8idnyk4kx4vn0svqy7nvl"; + url = "https://github.com/zeit/hyper/releases/download/${version}/hyper_${version}_amd64.deb"; + sha256 = "0v31z3p5h3qr8likifbq9kk08fpfyf8g1hrz6f6v90z4b2yhkf51"; }; buildInputs = [ dpkg ]; unpackPhase = '' @@ -36,6 +37,6 @@ stdenv.mkDerivation rec { homepage = https://hyper.is/; maintainers = with maintainers; [ puffnfresh ]; license = licenses.mit; - platforms = [ "i686-linux" "x86_64-linux" ]; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix index bce5b6cf589..6e4fc206588 100644 --- a/pkgs/applications/misc/ikiwiki/default.nix +++ b/pkgs/applications/misc/ikiwiki/default.nix @@ -82,10 +82,10 @@ stdenv.mkDerivation { meta = { description = "Wiki compiler, storing pages and history in a RCS"; - homepage = "http://ikiwiki.info/"; + homepage = http://ikiwiki.info/; license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.peti ]; + broken = true; # https://ikiwiki.info/bugs/imagemagick_6.9.8_test_suite_failure/ }; } diff --git a/pkgs/applications/misc/inspectrum/default.nix b/pkgs/applications/misc/inspectrum/default.nix index 6ec968ecc94..e2232c4b2ec 100644 --- a/pkgs/applications/misc/inspectrum/default.nix +++ b/pkgs/applications/misc/inspectrum/default.nix @@ -10,18 +10,17 @@ }: stdenv.mkDerivation rec { - name = "inspectrum-${version}"; - version = "20170218"; + name = "inspectrum-unstable-2017-05-31"; src = fetchFromGitHub { owner = "miek"; repo = "inspectrum"; - rev = "d8d1969a4cceeee0ebfd2f39e791fddd5155d4de"; - sha256 = "05sarfin9wqkvgwn3fil1r4bay03cwzzhjwbdjslibc5chdrr2cn"; + rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7"; + sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig cmake qt5.qtbase fftwFloat diff --git a/pkgs/applications/misc/ipmicfg/default.nix b/pkgs/applications/misc/ipmicfg/default.nix new file mode 100644 index 00000000000..af67db3f654 --- /dev/null +++ b/pkgs/applications/misc/ipmicfg/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchzip }: + +stdenv.mkDerivation rec { + name = "ipmicfg-${version}"; + version = "1.27.0"; + buildVersion = "170620"; + + src = fetchzip { + url = "ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip"; + sha256 = "0jr2vih4hzymb62mbqyykwcrjhbhazf6wr1g0cq8ji586i3z3vw5"; + }; + + installPhase = '' + mkdir -p "$out/bin" "$out/opt/ipmicfg" + cp Linux/64bit/* "$out/opt/ipmicfg" + + patchelf "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" + + ln -s "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" "$out/bin/ipmicfg" + ''; + + dontPatchShebangs = true; # There are no scripts and it complains about null bytes. + + meta = with stdenv.lib; { + description = "Supermicro IPMI configuration tool"; + homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ sorki ]; + }; +} diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix index 0afcbca4979..f9078475994 100644 --- a/pkgs/applications/misc/ipmiview/default.nix +++ b/pkgs/applications/misc/ipmiview/default.nix @@ -4,12 +4,13 @@ assert stdenv.isLinux; stdenv.mkDerivation rec { name = "IPMIView-${version}"; - version = "20151223"; + version = "2.13.0"; + buildVersion = "170504"; src = fetchurl { - url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_V2.11.0_bundleJRE_Linux_x64_${version}.tar.gz"; - sha256 = "1rv9j0id7i2ipm25n60bpfdm1gj44xg2aj8rnx4s6id3ln90q121"; - }; + url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz"; + sha256 = "1hfw5g6lxg3vqg0nc3g2sv2h6bn8za35bxxms0ri0sgb9v3xg1y6"; + }; buildInputs = [ patchelf makeWrapper ]; @@ -23,12 +24,12 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin cp -R . $out/ - echo "$out/jre/bin/java -jar $out/IPMIView20.jar" > $out/bin/IPMIView - chmod +x $out/bin/IPMIView + makeWrapper $out/jre/bin/java $out/bin/IPMIView \ + --prefix PATH : "$out/jre/bin" \ + --add-flags "-jar $out/IPMIView20.jar" ''; meta = with stdenv.lib; { license = licenses.unfree; }; } - diff --git a/pkgs/applications/misc/jbidwatcher/default.nix b/pkgs/applications/misc/jbidwatcher/default.nix index d26ad94648a..ed8573b8850 100644 --- a/pkgs/applications/misc/jbidwatcher/default.nix +++ b/pkgs/applications/misc/jbidwatcher/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "jbidwatcher"; - version = "2.5.2"; + version = "2.5.6"; name = "${pname}-${version}"; src = fetchurl { url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar"; - sha256 = "07w75ryn8inm5i1829gabr8lifbycz40ynzsyaw22yzqk5if1n9l"; + sha256 = "1cw59wh72w1zzibs8x64dma3jc4hry64wjksqs52nc3vpnf0fzfr"; }; buildInputs = [ java ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://www.jbidwatcher.com/"; + homepage = http://www.jbidwatcher.com/; description = "Monitor and snipe Ebay auctions"; license = "LGPL"; diff --git a/pkgs/applications/misc/jekyll/Gemfile b/pkgs/applications/misc/jekyll/Gemfile index 4074421fca3..97ebb9705bd 100644 --- a/pkgs/applications/misc/jekyll/Gemfile +++ b/pkgs/applications/misc/jekyll/Gemfile @@ -1,5 +1,7 @@ source 'https://rubygems.org' gem 'jekyll' +gem 'jekyll-feed' gem 'jekyll-paginate' gem 'rdiscount' gem 'RedCloth' +gem 'minima' diff --git a/pkgs/applications/misc/jekyll/Gemfile.lock b/pkgs/applications/misc/jekyll/Gemfile.lock index c2d82181be2..da4be83382f 100644 --- a/pkgs/applications/misc/jekyll/Gemfile.lock +++ b/pkgs/applications/misc/jekyll/Gemfile.lock @@ -1,36 +1,48 @@ GEM remote: https://rubygems.org/ specs: - RedCloth (4.2.9) - colorator (0.1) - ffi (1.9.10) - jekyll (3.0.1) - colorator (~> 0.1) + RedCloth (4.3.2) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) + colorator (1.1.0) + ffi (1.9.18) + forwardable-extended (2.6.0) + jekyll (3.4.1) + addressable (~> 2.4) + colorator (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) kramdown (~> 1.3) liquid (~> 3.0) mercenary (~> 0.3.3) + pathutil (~> 0.9) rouge (~> 1.7) safe_yaml (~> 1.0) - jekyll-sass-converter (1.4.0) - sass (~> 3.4) - jekyll-watch (1.3.0) - listen (~> 3.0) + jekyll-feed (0.9.1) + jekyll (~> 3.3) jekyll-paginate (1.1.0) - kramdown (1.9.0) + jekyll-sass-converter (1.5.0) + sass (~> 3.4) + jekyll-watch (1.5.0) + listen (~> 3.0, < 3.1) + kramdown (1.13.2) liquid (3.0.6) - listen (3.0.5) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - mercenary (0.3.5) - rb-fsevent (0.9.7) - rb-inotify (0.9.5) + listen (3.0.8) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + mercenary (0.3.6) + minima (2.1.0) + jekyll (~> 3.3) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + rb-fsevent (0.9.8) + rb-inotify (0.9.8) ffi (>= 0.5.0) - rdiscount (2.1.8) - rouge (1.10.1) + rdiscount (2.2.0.1) + rouge (1.11.1) safe_yaml (1.0.4) - sass (3.4.20) + sass (3.4.23) PLATFORMS ruby @@ -38,7 +50,10 @@ PLATFORMS DEPENDENCIES RedCloth jekyll + jekyll-feed + jekyll-paginate + minima rdiscount BUNDLED WITH - 1.10.6 + 1.14.4 diff --git a/pkgs/applications/misc/jekyll/default.nix b/pkgs/applications/misc/jekyll/default.nix index b06a28513b8..f3661030a2b 100644 --- a/pkgs/applications/misc/jekyll/default.nix +++ b/pkgs/applications/misc/jekyll/default.nix @@ -1,11 +1,13 @@ -{ stdenv, lib, bundlerEnv, ruby_2_2, curl }: +{ stdenv, lib, bundlerEnv, ruby }: bundlerEnv rec { name = "jekyll-${version}"; - version = "3.0.1"; - ruby = ruby_2_2; - gemdir = ./.; + version = (import gemset).jekyll.version; + inherit ruby; + gemfile = ./Gemfile; + lockfile = ./Gemfile.lock; + gemset = ./gemset.nix; meta = with lib; { description = "Simple, blog aware, static site generator"; diff --git a/pkgs/applications/misc/jekyll/gemset.nix b/pkgs/applications/misc/jekyll/gemset.nix index a5c72d09385..5b1a35209ae 100644 --- a/pkgs/applications/misc/jekyll/gemset.nix +++ b/pkgs/applications/misc/jekyll/gemset.nix @@ -1,145 +1,183 @@ { - "RedCloth" = { - version = "4.2.9"; + addressable = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw"; type = "gem"; - sha256 = "06pahxyrckhgb7alsxwhhlx1ib2xsx33793finj01jk8i054bkxl"; }; + version = "2.5.0"; }; - "colorator" = { - version = "0.1"; + colorator = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; type = "gem"; - sha256 = "09zp15hyd9wlbgf1kmrf4rnry8cpvh1h9fj7afarlqcy4hrfdpvs"; }; - }; - "ffi" = { - version = "1.9.10"; - source = { - type = "gem"; - sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj"; - }; - }; - "jekyll" = { - version = "3.0.1"; - source = { - type = "gem"; - sha256 = "107svn6r7pvkg9wwfi4r44d2rqppysjf9zf09h7z1ajsy8k2s65a"; - }; - dependencies = [ - "colorator" - "jekyll-sass-converter" - "jekyll-watch" - "jekyll-paginate" - "kramdown" - "liquid" - "mercenary" - "rouge" - "safe_yaml" - ]; - }; - "jekyll-sass-converter" = { - version = "1.4.0"; - source = { - type = "gem"; - sha256 = "095757w0pg6qh3wlfg1j1mw4fsz7s89ia4zai5f2rhx9yxsvk1d8"; - }; - dependencies = [ - "sass" - ]; - }; - "jekyll-watch" = { - version = "1.3.0"; - source = { - type = "gem"; - sha256 = "1mqwvrd2hm6ah5zsxqsv2xdp31wl94pl8ybb1q324j79z8pvyarg"; - }; - dependencies = [ - "listen" - ]; - }; - "jekyll-paginate" = { version = "1.1.0"; + }; + ffi = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"; type = "gem"; + }; + version = "1.9.18"; + }; + forwardable-extended = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + jekyll = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qbnjx7bpshbcam6p9ss2g6gpd3gxz6h4w9yszphj3ip335yhawb"; + type = "gem"; + }; + version = "3.4.1"; + }; + jekyll-feed = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dj62gy1jskkn703mi5h0bkg1psbpkdm2qqdw3bhjfid9358qvay"; + type = "gem"; + }; + version = "0.9.1"; + }; + jekyll-paginate = { + source = { sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; - }; - }; - "kramdown" = { - version = "1.9.0"; - source = { type = "gem"; - sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0"; }; + version = "1.1.0"; }; - "liquid" = { - version = "3.0.6"; + jekyll-sass-converter = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01m921763yfgx1gc33k5ixqz623f4c4azgnpqhgsc2q61fyfk3q1"; type = "gem"; + }; + version = "1.5.0"; + }; + jekyll-watch = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02rg3wi95w2l0bg1igl5k6pza723vn2b2gj975gycz1cpmhdjn6z"; + type = "gem"; + }; + version = "1.5.0"; + }; + kramdown = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1isiqc40q44zg57bd6cfnw1a2l0s2j5skw2awn2cz3gcm7wsf49d"; + type = "gem"; + }; + version = "1.13.2"; + }; + liquid = { + source = { sha256 = "033png37ym4jrjz5bi7zb4ic4yxacwvnllm1xxmrnr4swgyyygc2"; - }; - }; - "listen" = { - version = "3.0.5"; - source = { type = "gem"; - sha256 = "182wd2pkf690ll19lx6zbk01a3rqkk5lwsyin6kwydl7lqxj5z3g"; }; - dependencies = [ - "rb-fsevent" - "rb-inotify" - ]; + version = "3.0.6"; }; - "mercenary" = { - version = "0.3.5"; + listen = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"; type = "gem"; - sha256 = "0ls7z086v4xl02g4ia5jhl9s76d22crgmplpmj0c383liwbqi9pb"; }; + version = "3.0.8"; }; - "rb-fsevent" = { - version = "0.9.7"; + mercenary = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; type = "gem"; - sha256 = "1xlkflgxngwkd4nyybccgd1japrba4v3kwnp00alikj404clqx4v"; }; + version = "0.3.6"; }; - "rb-inotify" = { - version = "0.9.5"; + minima = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s7ks9fqfvqx7qicnkrg76wavg9mjas52f7iyhr89lz9mqiy7p39"; type = "gem"; - sha256 = "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"; }; - dependencies = [ - "ffi" - ]; + version = "2.1.0"; }; - "rdiscount" = { - version = "2.1.8"; + pathutil = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f444wx6vjd30lkkb2zn1k5a6g33lidrpyy7lmgy66n1gsiipzn7"; type = "gem"; - sha256 = "0vcyy90r6wfg0b0y5wqp3d25bdyqjbwjhkm1xy9jkz9a7j72n70v"; }; + version = "0.14.0"; }; - "rouge" = { - version = "1.10.1"; + public_suffix = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; type = "gem"; - sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; }; + version = "2.0.5"; }; - "safe_yaml" = { - version = "1.0.4"; + rb-fsevent = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdiasp9zlr306yld19szapi6kdjk38rpv1hih9x0ry40x6mb63n"; type = "gem"; + }; + version = "0.9.8"; + }; + rb-inotify = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bq14f3md5nm00kgxgf0r9lcbn0vgbwljgajif0slxcwv622fjg9"; + type = "gem"; + }; + version = "0.9.8"; + }; + rdiscount = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3"; + type = "gem"; + }; + version = "2.2.0.1"; + }; + RedCloth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; + type = "gem"; + }; + version = "4.3.2"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13amckbdknnc5491ag28y8pqbyfpbzx5n4rlmadxhd3wkrhp92c8"; + type = "gem"; + }; + version = "1.11.1"; + }; + safe_yaml = { + source = { sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; - }; - }; - "sass" = { - version = "3.4.20"; - source = { type = "gem"; - sha256 = "04rpdcp258arh2wgdk9shbqnzd6cbbbpi3wpi9a0wby8awgpxmyf"; }; + version = "1.0.4"; }; -} + sass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0da4mn3n60cm1ss1pw1rrpa7fxagglxiwcgvz1asf1qgf4mvcwyr"; + type = "gem"; + }; + version = "3.4.23"; + }; +} \ No newline at end of file diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix index 8e5c5d6206c..d8b1253ac27 100644 --- a/pkgs/applications/misc/jigdo/default.nix +++ b/pkgs/applications/misc/jigdo/default.nix @@ -9,10 +9,13 @@ stdenv.mkDerivation { sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv"; }; - patches = fetchurl { - url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-3.diff.gz; - sha256 = "0cp4jz3sg9g86vprh90pmwpcfla79f0dr50w14yh01k0yaq70fs8"; - }; + patches = [ + (fetchurl { + url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz; + sha256 = "03zsh57fijciiv23lf55k6fbfhhzm866xjhx83x54v5s1g2h6m8y"; + }) + ./sizewidth.patch + ]; buildInputs = [ db gtk2 bzip2 ]; diff --git a/pkgs/applications/misc/jigdo/sizewidth.patch b/pkgs/applications/misc/jigdo/sizewidth.patch new file mode 100644 index 00000000000..17b1749fcf7 --- /dev/null +++ b/pkgs/applications/misc/jigdo/sizewidth.patch @@ -0,0 +1,40 @@ +diff --git i/src/mkimage.cc w/src/mkimage.cc +index 02e65b1..b263796 100755 +--- i/src/mkimage.cc ++++ w/src/mkimage.cc +@@ -285,27 +285,27 @@ bostream& JigdoDescVec::put(bostream& file, MD5Sum* md) const { + //______________________________________________________________________ + + namespace { +- const int SIZE_WIDTH = 12; ++ const int MKIMAGE_SIZE_WIDTH = 12; + } + + ostream& JigdoDesc::ImageInfo::put(ostream& s) const { +- s << "image-info " << setw(SIZE_WIDTH) << size() << " " ++ s << "image-info " << setw(MKIMAGE_SIZE_WIDTH) << size() << " " + << md5() << ' ' << blockLength() << '\n'; + return s; + } + ostream& JigdoDesc::UnmatchedData::put(ostream& s) const { +- s << "in-template " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << '\n'; ++ s << "in-template " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << '\n'; + return s; + } + ostream& JigdoDesc::MatchedFile::put(ostream& s) const { +- s << "need-file " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; ++ s << "need-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; + return s; + } + ostream& JigdoDesc::WrittenFile::put(ostream& s) const { +- s << "have-file " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; ++ s << "have-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; + return s; + } + diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix index 753d27b3376..46263f7d83b 100644 --- a/pkgs/applications/misc/josm/default.nix +++ b/pkgs/applications/misc/josm/default.nix @@ -1,17 +1,15 @@ -{ fetchurl, stdenv, makeDesktopItem, unzip, bash, jre8 }: +{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, bash, jre8 }: stdenv.mkDerivation rec { name = "josm-${version}"; - version = "11826"; + version = "13053"; src = fetchurl { url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; - sha256 = "0x59n6klkxkaqcqgbkscdynyp0grfxdil2fxmg710yp8vkzg0zk2"; + sha256 = "0czsmx0gsml3vqzx6940jw2xpmh16idypydw0d4147k4fi9gzyz6"; }; - phases = [ "installPhase" ]; - - buildInputs = [ jre8 ]; + buildInputs = [ jre8 makeWrapper ]; desktopItem = makeDesktopItem { name = "josm"; @@ -23,14 +21,12 @@ stdenv.mkDerivation rec { categories = "Education;Geoscience;Maps;"; }; - installPhase = '' + buildCommand = '' mkdir -p $out/bin $out/share/java cp -v $src $out/share/java/josm.jar - cat > $out/bin/josm <= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0) +@@ -80,7 +85,7 @@ if(MUPDF_FOUND) + include_directories(SYSTEM ${MUPDF_INCLUDEDIR}) + message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}") + set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} +- -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype ++ + ) + endif(MUPDF_FOUND) +@@ -91,9 +96,25 @@ if(DJVU_FOUND) + set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${DJVU_LDFLAGS}) + endif(DJVU_FOUND) +-# HAVE_GOCR_LIB +-# HAVE_LEPTONICA_LIB +-# HAVE_TESSERACT_LIB ++find_library(GOCR_LIB NAMES Pgm2asc) ++if(GOCR_LIB) ++ set(HAVE_GOCR_LIB 1) ++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GOCR_LIB}) ++endif(GOCR_LIB) ++ ++pkg_check_modules(LEPTONICA lept) ++if(LEPTONICA_FOUND) ++ set(HAVE_LEPTONICA_LIB 1) ++ include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR}) ++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS}) ++endif(LEPTONICA_FOUND) ++ ++pkg_check_modules(TESSERACT tesseract) ++if(TESSERACT_FOUND) ++ set(HAVE_TESSERACT_LIB 1) ++ include_directories(SYSTEM ${TESSERACT_INCLUDEDIR}) ++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS}) ++endif(TESSERACT_FOUND) --void sort(float *x,int n) -+void willus_sort(float *x,int n) + # ---- Describe project - { - int top,n1; -diff -aur k2pdfopt_v2.21/willuslib/ocrjocr.c k2pdfopt_v2.21.new/willuslib/ocrjocr.c ---- k2pdfopt_v2.21/willuslib/ocrjocr.c 2012-11-12 13:09:42.000000000 -0300 -+++ k2pdfopt_v2.21.new/willuslib/ocrjocr.c 2014-07-26 11:36:46.699837185 -0300 +diff --git a/willuslib/CMakeLists.txt b/willuslib/CMakeLists.txt +index 463bbc9..8043db5 100644 +--- a/willuslib/CMakeLists.txt ++++ b/willuslib/CMakeLists.txt +@@ -6,7 +6,7 @@ include_directories(..) + set(WILLUSLIB_SRC + ansi.c array.c bmp.c bmpdjvu.c bmpmupdf.c dtcompress.c filelist.c + fontdata.c fontrender.c gslpolyfit.c linux.c math.c mem.c ocr.c +- ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c ++ ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c + token.c wfile.c wgs.c wgui.c willusversion.c win.c winbmp.c + wincomdlg.c winmbox.c winshell.c wmupdf.c wmupdfinfo.c wpdf.c wsys.c + wzfile.c wleptonica.c +diff --git a/willuslib/ocrgocr.c b/willuslib/ocrgocr.c +index 6027e9a..fbe10f0 100644 +--- a/willuslib/ocrgocr.c ++++ b/willuslib/ocrgocr.c @@ -29,6 +29,8 @@ #ifdef HAVE_GOCR_LIB #include -+job_t *JOB; ++job_t *OCR_JOB; + /* ** bmp8 must be grayscale ** (x1,y1) and (x2,y2) from top left of bitmap -@@ -66,6 +68,7 @@ +@@ -63,6 +65,7 @@ void gocr_single_word_from_bmp8(char *text,int maxlen,WILLUSBITMAP *bmp8, h=y2-y1+1; dh=h+bw*2; job=&_job; -+ JOB=job; ++ OCR_JOB=job; job_init(job); job_init_image(job); // willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10); -diff -aur k2pdfopt_v2.21/willuslib/string.c k2pdfopt_v2.21.new/willuslib/string.c ---- k2pdfopt_v2.21/willuslib/string.c 2014-02-03 00:37:44.000000000 -0300 -+++ k2pdfopt_v2.21.new/willuslib/string.c 2014-07-26 11:37:01.766506277 -0300 -@@ -81,7 +81,7 @@ - ** Returns NULL if EOF, otherwise returns pointer to the string. - ** - */ --char *get_line(char *buf,int max,FILE *f) -+char *willus_get_line(char *buf,int max,FILE *f) - - { - int i; -diff -aur k2pdfopt_v2.21/willuslib/willus.h k2pdfopt_v2.21.new/willuslib/willus.h ---- k2pdfopt_v2.21/willuslib/willus.h 2014-07-25 15:03:51.000000000 -0300 -+++ k2pdfopt_v2.21.new/willuslib/willus.h 2014-07-26 11:37:56.316506038 -0300 -@@ -214,9 +214,6 @@ - ** CMAKE handles the defines, not this source - ** (Mod from Dirk Thierbach, 31-Dec-2013) - */ --#ifdef USE_CMAKE --#include "config.h" --#else /* USE_CMAKE */ - - #ifndef HAVE_Z_LIB - #define HAVE_Z_LIB -@@ -268,7 +265,6 @@ - #undef HAVE_GSL_LIB - #endif - --#endif /* USE_CMAKE */ - /* - ** Consistency check - */ -@@ -533,7 +529,7 @@ - int *n,FILE *err); - int readxyz_ex (char *filename,double **x,double **y,double **z, - int *n,FILE *err,int ignore_after_semicolon); --void sort (float *x,int n); -+void willus_sort (float *x,int n); - void sortd (double *x,int n); - void sorti (int *x,int n); - void sortxy (float *x,float *y,int n); -@@ -602,7 +598,7 @@ - /* string.c */ - void clean_line (char *buf); - void clean_line_end(char *buf); --char *get_line (char *buf,int max,FILE *f); -+char *willus_get_line (char *buf,int max,FILE *f); - char *get_line_cf (char *buf,int max,FILE *f); - int mem_get_line_cf(char *buf,int maxlen,char *cptr,long *cindex,long csize); - int in_string (char *buffer,char *pattern); diff --git a/pkgs/applications/misc/k2pdfopt/tesseract.patch b/pkgs/applications/misc/k2pdfopt/tesseract.patch index 5cb6e0fe317..4827daa1a90 100644 --- a/pkgs/applications/misc/k2pdfopt/tesseract.patch +++ b/pkgs/applications/misc/k2pdfopt/tesseract.patch @@ -1,12 +1,13 @@ -diff -aur tesseract-ocr/api/Makefile.am tesseract-ocr.new/api/Makefile.am ---- tesseract-ocr/api/Makefile.am 2012-10-09 14:18:39.000000000 -0300 -+++ tesseract-ocr.new/api/Makefile.am 2014-03-20 18:43:13.926030341 -0300 -@@ -36,7 +36,7 @@ +diff --git a/api/Makefile.am b/api/Makefile.am +index d8c1e54..46ead13 100644 +--- a/api/Makefile.am ++++ b/api/Makefile.am +@@ -42,7 +42,7 @@ libtesseract_api_la_CPPFLAGS = $(AM_CPPFLAGS) if VISIBILITY libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS endif --libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp -+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp tesscapi.cpp +-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp ++libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp tesscapi.cpp lib_LTLIBRARIES += libtesseract.la libtesseract_la_LDFLAGS = diff --git a/pkgs/applications/misc/k3b/default.nix b/pkgs/applications/misc/k3b/default.nix deleted file mode 100644 index 072685b8194..00000000000 --- a/pkgs/applications/misc/k3b/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv, lib, fetchurl, makeWrapper, automoc4, cmake, perl, pkgconfig -, shared_mime_info, libvorbis, taglib, flac, libsamplerate -, libdvdread, lame, libsndfile, libmad, gettext , transcode, cdrdao -, dvdplusrwtools, vcdimager, cdparanoia, kdelibs4, libdvdcss, ffmpeg -, libkcddb, phonon -}: - -let - # at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format, - # eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild, - # vcdxminfo, and vcdxrip - binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager ]; - -in stdenv.mkDerivation rec { - name = "k3b-${version}"; - version = "2.0.3a"; - - src = fetchurl { - url = "http://download.kde.org/stable/k3b/${name}.tar.xz"; - sha256 = "10f07465g9860chfnvrp9w3m686g6j9f446xgnnx7h82d1sb42rd"; - }; - - nativeBuildInputs = [ automoc4 cmake gettext perl pkgconfig ]; - - buildInputs = [ - shared_mime_info libvorbis taglib flac libsamplerate libdvdread - lame libsndfile libmad stdenv.cc.libc kdelibs4 - phonon libkcddb makeWrapper cdparanoia - libdvdcss ffmpeg - ]; - - enableParallelBuilding = true; - - NIX_CFLAGS_LINK = [ "-lcdda_interface" "-lcdda_paranoia" "-ldvdcss" ]; - - postInstall = '' - wrapProgram $out/bin/k3b \ - --prefix PATH ":" "${binPath}" - ''; - - meta = with stdenv.lib; { - description = "CD/DVD Burning Application for KDE"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.sander maintainers.phreedom ]; - platforms = with stdenv.lib.platforms; linux; - }; -} diff --git a/pkgs/applications/misc/k3b/wrapper.nix b/pkgs/applications/misc/k3b/wrapper.nix deleted file mode 100644 index 486d3fb7ddf..00000000000 --- a/pkgs/applications/misc/k3b/wrapper.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, symlinkJoin, k3b-original, cdrtools, makeWrapper }: - -let - binPath = lib.makeBinPath [ cdrtools ]; -in symlinkJoin { - name = "k3b-${k3b-original.version}"; - - paths = [ k3b-original ]; - buildInputs = [ makeWrapper ]; - - postBuild = '' - wrapProgram $out/bin/k3b \ - --prefix PATH ':' ${binPath} - ''; -} diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix index ba1a266a42f..7995c8875b8 100644 --- a/pkgs/applications/misc/kanboard/default.nix +++ b/pkgs/applications/misc/kanboard/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "kanboard-${version}"; - version = "1.0.40"; + version = "1.0.48"; src = fetchzip { - url = "https://kanboard.net/kanboard-1.0.40.zip"; - sha256 = "1phn3rvngch636g00rhicl0225qk6gdmxqjflkrdchv299zysswd"; + url = "https://github.com/kanboard/kanboard/releases/download/v${version}/${name}.zip"; + sha256 = "0ipyijlfcnfqlz9n20wcnaf9pw404a675x404pm9h2n4ld8x6m5v"; }; dontBuild = true; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Kanban project management software"; - homepage = "https://kanboard.net"; + homepage = https://kanboard.net; license = licenses.mit; maintainers = with maintainers; [ fpletz ]; }; diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix index 22c9cfc7e98..a95dd6adbce 100644 --- a/pkgs/applications/misc/kdeconnect/default.nix +++ b/pkgs/applications/misc/kdeconnect/default.nix @@ -2,53 +2,43 @@ , lib , fetchurl , extra-cmake-modules -, makeQtWrapper , kcmutils , kconfigwidgets , kdbusaddons +, kdoctools , kiconthemes , ki18n , knotifications , qca-qt5 , libfakekey , libXtst +, qtx11extras }: stdenv.mkDerivation rec { - name = "kdeconnect-${version}"; - version = "1.0.3"; + pname = "kdeconnect"; + version = "1.2"; + name = "${pname}-${version}"; src = fetchurl { - url = "http://download.kde.org/stable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz"; - sha256 = "0b40402adw7cqz19fh8zw70f6l7b5p400mw668n3wic4favn27r2"; + url = "mirror://kde/stable/${pname}/${version}/src/${pname}-kde-${version}.tar.xz"; + sha256 = "0w3rdldnr6md70r4ch255vk712d37vy63ml7ly2fhr4cfnk2i1ay"; }; buildInputs = [ - kcmutils - kconfigwidgets - kdbusaddons - qca-qt5 - ki18n - kiconthemes - knotifications - libfakekey - libXtst + libfakekey libXtst + ki18n kiconthemes kcmutils kconfigwidgets kdbusaddons knotifications + qca-qt5 qtx11extras ]; - nativeBuildInputs = [ - extra-cmake-modules - makeQtWrapper - ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - postInstall = '' - wrapQtProgram "$out/bin/kdeconnect-cli" - ''; + enableParallelBuilding = true; - meta = { + meta = with lib; { description = "KDE Connect provides several features to integrate your phone and your computer"; - license = with lib.licenses; [ gpl2 ]; - maintainers = with lib.maintainers; [ fridh ]; - homepage = https://community.kde.org/KDEConnect; + homepage = https://community.kde.org/KDEConnect; + license = with licenses; [ gpl2 ]; + maintainers = with maintainers; [ fridh ]; }; - } diff --git a/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix b/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix index 5e43486b075..e64632d529b 100644 --- a/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix +++ b/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix @@ -1,14 +1,17 @@ { stdenv, buildEnv, fetchFromGitHub, mono }: let - version = "1.8.4.1"; + version = "1.8.4.2"; drv = stdenv.mkDerivation { name = "keepasshttp-${version}"; src = fetchFromGitHub { owner = "pfn"; repo = "keepasshttp"; - rev = "${version}"; - sha256 = "1074yv0pmzdwfwkx9fh7n2igdqwsyxypv55khkyng6synbv2p2fd"; + #rev = "${version}"; + # for 1.8.4.2 the tag is at the wrong commit (they fixed stuff + # afterwards and didn't move the tag), hence reference by commitid + rev = "c2c4eb5388a02169400cba7a67be325caabdcc37"; + sha256 = "0bkzxggbqx7sql3sp46bqham6r457in0vrgh3ai3lw2jrw79pwmh"; }; meta = { diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix index 57f6cfc4c4b..49e4711550d 100644 --- a/pkgs/applications/misc/keepass/default.nix +++ b/pkgs/applications/misc/keepass/default.nix @@ -8,11 +8,11 @@ # plugin derivations in the Nix store and nowhere else. with builtins; buildDotnetPackage rec { baseName = "keepass"; - version = "2.35"; + version = "2.37"; src = fetchurl { url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip"; - sha256 = "1pv3x1lr2kymjpm6z26fqx997jivzy0diqsysq4diygj38wdkajz"; + sha256 = "1wfbpfjng1blzkbjnxsdnny544297bm9869ianbr6l0hrvcgv3qx"; }; sourceRoot = "."; @@ -98,7 +98,7 @@ with builtins; buildDotnetPackage rec { meta = { description = "GUI password manager with strong cryptography"; homepage = http://www.keepass.info/; - maintainers = with stdenv.lib.maintainers; [ amorsillo obadz jraygauthier ]; + maintainers = with stdenv.lib.maintainers; [ amorsillo obadz joncojonathan jraygauthier ]; platforms = with stdenv.lib.platforms; all; license = stdenv.lib.licenses.gpl2; }; diff --git a/pkgs/applications/misc/keepassx/2.0.nix b/pkgs/applications/misc/keepassx/2.0.nix index 030b1d326e1..f6814119b5a 100644 --- a/pkgs/applications/misc/keepassx/2.0.nix +++ b/pkgs/applications/misc/keepassx/2.0.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = { description = "Qt password manager compatible with its Win32 and Pocket PC versions"; - homepage = http://www.keepassx.org/; + homepage = https://www.keepassx.org/; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ qknight jgeerds ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix index e103f62fd3c..0444b1d96d2 100644 --- a/pkgs/applications/misc/keepassx/community.nix +++ b/pkgs/applications/misc/keepassx/community.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, - cmake, libgcrypt, zlib, libmicrohttpd, libXtst, qtbase, qttools, libgpgerror +{ stdenv, fetchFromGitHub, fetchpatch, + cmake, libgcrypt, zlib, libmicrohttpd, libXtst, qtbase, qttools, libgpgerror, glibcLocales, libyubikey, yubikey-personalization, libXi, qtx11extras , withKeePassHTTP ? true }: @@ -7,18 +7,28 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "keepassx-community-${version}"; - version = "2.1.4"; + version = "2.2.2"; src = fetchFromGitHub { owner = "keepassxreboot"; repo = "keepassxc"; rev = "${version}"; - sha256 = "1znnw2xpv58x0rbpmm4y662377mbmcilhf8mhhjsz8vhahms33a8"; + sha256 = "01pqpa3vzk2q1vrj2lqayr7a3nzpnj176yhnqbrwlm3s9rga4wzn"; }; - cmakeFlags = optional (withKeePassHTTP) [ "-DWITH_XC_HTTP=ON" ]; + cmakeFlags = [ + "-DWITH_GUI_TESTS=ON" + "-DWITH_XC_AUTOTYPE=ON" + "-DWITH_XC_YUBIKEY=ON" + ] ++ (optional withKeePassHTTP "-DWITH_XC_HTTP=ON"); - buildInputs = [ cmake libgcrypt zlib qtbase qttools libXtst libmicrohttpd libgpgerror ]; + doCheck = true; + checkPhase = '' + export LC_ALL="en_US.UTF-8" + make test ARGS+="-E testgui --output-on-failure" + ''; + + buildInputs = [ cmake libgcrypt zlib qtbase qttools libXtst libmicrohttpd libgpgerror glibcLocales libyubikey yubikey-personalization libXi qtx11extras ]; meta = { description = "Fork of the keepassX password-manager with additional http-interface to allow browser-integration an use with plugins such as PasslFox (https://github.com/pfn/passifox). See also keepassX2."; diff --git a/pkgs/applications/misc/keepassx/default.nix b/pkgs/applications/misc/keepassx/default.nix index d0bddbc1610..ed706b138cc 100644 --- a/pkgs/applications/misc/keepassx/default.nix +++ b/pkgs/applications/misc/keepassx/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = { description = "Qt password manager compatible with its Win32 and Pocket PC versions"; - homepage = http://www.keepassx.org/; + homepage = https://www.keepassx.org/; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [ qknight jgeerds ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix index 8d7eeffad31..91e583e2af4 100644 --- a/pkgs/applications/misc/khal/default.nix +++ b/pkgs/applications/misc/khal/default.nix @@ -1,14 +1,15 @@ -{ stdenv, fetchurl, pkgs, python3Packages }: +{ stdenv, pkgs, python3Packages }: with python3Packages; buildPythonApplication rec { - version = "0.9.2"; - name = "khal-${version}"; + name = "${pname}-${version}"; + pname = "khal"; + version = "0.9.8"; - src = fetchurl { - url = "mirror://pypi/k/khal/khal-${version}.tar.gz"; - sha256 = "1ryh5c7408w8gpql5s9mkxkvz1ngnds3xm43p7r96ynx8prr9swp"; + src = fetchPypi { + inherit pname version; + sha256 = "1blx3gxnv7sj302biqphfw7i6ilzl2xlmvzp130n3113scg9w17y"; }; LC_ALL = "en_US.UTF-8"; diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix new file mode 100644 index 00000000000..e1afac735d8 --- /dev/null +++ b/pkgs/applications/misc/kitty/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, pkgs, python3Packages, glfw, libunistring, glew, fontconfig, zlib, pkgconfig, ncurses, imagemagick, makeWrapper }: + +with python3Packages; +buildPythonApplication rec { + version = "0.4.2"; + name = "kitty-${version}"; + format = "other"; + + src = fetchFromGitHub { + owner = "kovidgoyal"; + repo = "kitty"; + rev = "v${version}"; + sha256 = "058676r2b83mjggbfc701v3vlviaslf7qciz8sm8lcda82k01wfp"; + }; + + buildInputs = [ glew fontconfig glfw ncurses libunistring ]; + + nativeBuildInputs = [ pkgconfig ]; + + buildPhase = '' + python3 setup.py linux-package + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -r linux-package/{bin,share,lib} $out + wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick ]}" + runHook postInstall + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/kovidgoyal/kitty; + description = "A modern, hackable, featureful, OpenGL based terminal emulator"; + license = licenses.gpl3; + maintainers = with maintainers; [ tex ]; + }; +} diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix index b0590fdc38f..8479c4e16ac 100644 --- a/pkgs/applications/misc/kiwix/default.nix +++ b/pkgs/applications/misc/kiwix/default.nix @@ -29,10 +29,6 @@ let then { tar = xulrunner64_tar; sdk = xulrunnersdk64_tar; } else { tar = xulrunner32_tar; sdk = xulrunnersdk32_tar; }; - ctpp2_ = ctpp2.override { inherit stdenv; }; - xapian_ = xapian.override { inherit stdenv; }; - zimlib_ = zimlib.override { inherit stdenv; }; - pugixml = stdenv.mkDerivation rec { version = "1.2"; name = "pugixml-${version}"; @@ -66,9 +62,10 @@ stdenv.mkDerivation rec { sha256 = "0577phhy2na59cpcqjgldvksp0jwczyg0l6c9ghnr19i375l7yqc"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - zip pkgconfig python zlib xapian_ which icu libmicrohttpd - lzma zimlib_ ctpp2_ aria2 wget bc libuuid makeWrapper pugixml + zip python zlib xapian which icu libmicrohttpd + lzma zimlib ctpp2 aria2 wget bc libuuid makeWrapper pugixml ]; postUnpack = '' diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix index 1137d6c07f6..e686ec94a4a 100644 --- a/pkgs/applications/misc/krename/default.nix +++ b/pkgs/applications/misc/krename/default.nix @@ -1,35 +1,31 @@ { - kdeDerivation, kdeWrapper, fetchFromGitHub, lib, - extra-cmake-modules, kdoctools, kconfig, kinit, kjsembed, - taglib, exiv2, podofo + mkDerivation, fetchFromGitHub, lib, + extra-cmake-modules, kdoctools, wrapGAppsHook, + kconfig, kinit, kjsembed, taglib, exiv2, podofo, + kcrash }: let pname = "krename"; - version = "20161228"; - unwrapped = kdeDerivation rec { - name = "${pname}-${version}"; + version = "20170610"; +in mkDerivation rec { + name = "${pname}-${version}"; - src = fetchFromGitHub { - owner = "KDE"; - repo = "krename"; - rev = "4e55c2bef50898eb4a6485ce068379b166121895"; - sha256 = "09yz3sxy2l6radfybkj2f7224ggf315vnvyksk0aq8f03gan6cbp"; - }; - - meta = with lib; { - homepage = http://www.krename.net; - description = "A powerful batch renamer for KDE"; - inherit (kconfig.meta) platforms; - maintainers = with maintainers; [ peterhoeg ]; - }; - - buildInputs = [ taglib exiv2 podofo ]; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ kconfig kinit kjsembed ]; + src = fetchFromGitHub { + owner = "KDE"; + repo = "krename"; + rev = "18000edfec52de0b417d575e14eb078b4bd7b2f3"; + sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j"; }; -in kdeWrapper { - inherit unwrapped; - targets = [ "bin/krename" ]; + meta = with lib; { + homepage = http://www.krename.net; + description = "A powerful batch renamer for KDE"; + inherit (kconfig.meta) platforms; + maintainers = with maintainers; [ peterhoeg ]; + }; + + buildInputs = [ taglib exiv2 podofo ]; + nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; + propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ]; } diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix index ed74eae46f3..bcf351ff46a 100644 --- a/pkgs/applications/misc/krusader/default.nix +++ b/pkgs/applications/misc/krusader/default.nix @@ -1,21 +1,27 @@ -{ stdenv, fetchurl, automoc4, cmake, gettext, perl, pkgconfig -, kdelibs4, kde_baseapps +{ + mkDerivation, fetchurl, lib, + extra-cmake-modules, kdoctools, wrapGAppsHook, + karchive, kconfig, kcrash, kguiaddons, kinit, kparts, kwindowsystem }: -stdenv.mkDerivation rec { - name = "krusader-2.4.0-beta1"; +let + pname = "krusader"; + version = "2.6.0"; +in mkDerivation rec { + name = "krusader-${version}"; + src = fetchurl { - url = "mirror://sourceforge/krusader/${name}.tar.bz2"; - sha256 = "1q1m4cjzz2m41pdpxnwrsiczc7990785b700lv64midjjgjnr7j6"; + url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz"; + sha256 = "0f9skfvp0hdml8qq6v22z9293ndijd8kwbpdj7wpvgd6mlya8qbh"; }; - buildInputs = [ kdelibs4 kde_baseapps ]; - nativeBuildInputs = [ automoc4 cmake gettext perl pkgconfig ]; - NIX_CFLAGS_COMPILE = "-fpermissive"; # fix build with newer gcc versions - meta = { + + meta = with lib; { description = "Norton/Total Commander clone for KDE"; - license = "GPL"; + license = licenses.gpl2; homepage = http://www.krusader.org; - maintainers = with stdenv.lib.maintainers; [ sander ]; - inherit (kdelibs4.meta) platforms; + maintainers = with maintainers; [ sander ]; }; + + nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; + propagatedBuildInputs = [ karchive kconfig kcrash kguiaddons kinit kparts kwindowsystem ]; } diff --git a/pkgs/applications/misc/kupfer/default.nix b/pkgs/applications/misc/kupfer/default.nix new file mode 100644 index 00000000000..f3bb825cbf7 --- /dev/null +++ b/pkgs/applications/misc/kupfer/default.nix @@ -0,0 +1,66 @@ +{ stdenv +, makeWrapper +, fetchurl +, intltool +, python3Packages +, gtk3 +, dbus +, libwnck3 +, keybinder3 +, hicolor_icon_theme +, wrapGAppsHook +}: + +with python3Packages; + +buildPythonApplication rec { + name = "kupfer-${version}"; + version = "319"; + + src = fetchurl { + url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.xz"; + sha256 = "0c9xjx13r8ckfr4az116bhxsd3pk78v04c3lz6lqhraak0rp4d92"; + }; + + nativeBuildInputs = [ wrapGAppsHook intltool ]; + buildInputs = [ hicolor_icon_theme docutils libwnck3 keybinder3 ]; + propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ]; + + configurePhase = '' + runHook preConfigure + python ./waf configure --prefix=$prefix + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + python ./waf + runHook postBuild + ''; + + installPhase = let + pythonPath = (stdenv.lib.concatMapStringsSep ":" + (m: "${m}/lib/${python.libPrefix}/site-packages") + propagatedBuildInputs); + in '' + runHook preInstall + python ./waf install + + gappsWrapperArgs+=( + "--prefix" "PYTHONPATH" : "${pythonPath}" + "--set" "PYTHONNOUSERSITE" "1" + ) + + runHook postInstall + ''; + + doCheck = false; # no tests + + meta = with stdenv.lib; { + description = "A smart, quick launcher"; + homepage = "https://kupferlauncher.github.io/"; + license = licenses.gpl3; + maintainers = with maintainers; [ cobbal ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix index cdde0beb827..2695ac1ef7d 100644 --- a/pkgs/applications/misc/latte-dock/default.nix +++ b/pkgs/applications/misc/latte-dock/default.nix @@ -1,33 +1,28 @@ -{ stdenv, lib, cmake, xorg, plasma-framework, fetchFromGitHub, kdeWrapper }: +{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub +, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash }: -let version = "0.6.0"; +let version = "0.7.1"; in - unwrapped = stdenv.mkDerivation { - name = "latte-dock-${version}"; +mkDerivation { + name = "latte-dock-${version}"; - src = fetchFromGitHub { - owner = "psifidotos"; - repo = "Latte-Dock"; - rev = "v${version}"; - sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv"; - }; + src = fetchFromGitHub { + owner = "psifidotos"; + repo = "Latte-Dock"; + rev = "v${version}"; + sha256 = "0vdmsjj1qqlzz26mznb56znv5x7akbvw65ybbzakclp4q1xrsrm2"; + }; - buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ]; + buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ]; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem + qtx11extras kcrash ]; - enableParallelBuilding = true; - - meta = with stdenv.lib; { - description = "Dock-style app launcher based on Plasma frameworks"; - homepage = https://github.com/psifidotos/Latte-Dock; - license = licenses.gpl2; - platforms = platforms.unix; - maintainers = [ maintainers.benley ]; - }; - }; - -in kdeWrapper { - inherit unwrapped; - targets = [ "bin/latte-dock" ]; + meta = with lib; { + description = "Dock-style app launcher based on Plasma frameworks"; + homepage = https://github.com/psifidotos/Latte-Dock; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.benley ]; + }; } diff --git a/pkgs/applications/misc/lenmus/default.nix b/pkgs/applications/misc/lenmus/default.nix index b537c378a71..9018a592642 100644 --- a/pkgs/applications/misc/lenmus/default.nix +++ b/pkgs/applications/misc/lenmus/default.nix @@ -1,4 +1,4 @@ -{ stdenv, pkgconfig, fetchFromGitHub +{ stdenv, pkgconfig, fetchFromGitHub, fetchpatch , cmake, boost , portmidi, sqlite , freetype, libpng, pngpp, zlib @@ -16,14 +16,21 @@ stdenv.mkDerivation rec { sha256 = "1n639xr1qxx6rhqs0c6sjxp3bv8cwkmw1vfk1cji7514gj2a9v3p"; }; - cmakeFlags = [ - "-DCMAKE_INSALL_PREFIX=$out" - ]; - enableParallelBuilding = true; + patches = [ + (fetchpatch { + url = "https://github.com/lenmus/lenmus/commit/421760d84694a0e6e72d0e9b1d4fd30a7e129c6f.patch"; + sha256 = "1z1wwh0pcr8w1zlr8swx99si9y2kxx5bmavgwvy6bvdhxgm58yqs"; + }) + (fetchpatch { + url = "https://github.com/lenmus/lenmus/commit/6613d20d4051effc782203c9c6d92962a3f66b5f.patch"; + sha256 = "01vvzzpamv90jpqbbq1f2m2b4gb9xab9z70am8i41d90nqvg6agn"; + }) + ]; + + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig cmake boost portmidi sqlite freetype libpng pngpp zlib @@ -37,7 +44,7 @@ stdenv.mkDerivation rec { It allows you to focus on specific skills and exercises, on both theory and aural training. The different activities can be customized to meet your needs ''; - homepage = "http://www.lenmus.org/"; + homepage = http://www.lenmus.org/; license = licenses.gpl3Plus; maintainers = with maintainers; [ ramkromberg ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/libosmocore/default.nix b/pkgs/applications/misc/libosmocore/default.nix index 7a0eadf74e5..47bcbb6fce9 100644 --- a/pkgs/applications/misc/libosmocore/default.nix +++ b/pkgs/applications/misc/libosmocore/default.nix @@ -12,8 +12,9 @@ stdenv.mkDerivation rec { sha256 = "08mcpy9ljwb1i3l4cmlwn024q2psk5gg9f0ylgh99hy1ffx0n7am"; }; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ - autoreconfHook pcsclite pkgconfig + pcsclite ]; preConfigure = '' diff --git a/pkgs/applications/misc/lighthouse/default.nix b/pkgs/applications/misc/lighthouse/default.nix index f6bfe61e5aa..7b5b40d65a3 100644 --- a/pkgs/applications/misc/lighthouse/default.nix +++ b/pkgs/applications/misc/lighthouse/default.nix @@ -13,8 +13,9 @@ stdenv.mkDerivation rec { sha256 = "0v6ylm49f1b44zwq1y1gqxp2csyqblplr24ajllc2q3r0sc9m1ys"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig libX11 libxcb cairo gtk2 pango python27 python3 + libX11 libxcb cairo gtk2 pango python27 python3 ]; makeFlags = [ "PREFIX=\${out}" ]; diff --git a/pkgs/applications/misc/lilyterm/default.nix b/pkgs/applications/misc/lilyterm/default.nix index 2fa4ba9ae64..3729978dddb 100644 --- a/pkgs/applications/misc/lilyterm/default.nix +++ b/pkgs/applications/misc/lilyterm/default.nix @@ -35,7 +35,8 @@ stdenv.mkDerivation rec { inherit (stuff) src version; - buildInputs = [ pkgconfig autoconf automake intltool gettext gtk vte ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake intltool gettext gtk vte ]; preConfigure = "sh autogen.sh"; diff --git a/pkgs/applications/misc/ltwheelconf/default.nix b/pkgs/applications/misc/ltwheelconf/default.nix index 5450f5f2fc8..4972aa28e58 100644 --- a/pkgs/applications/misc/ltwheelconf/default.nix +++ b/pkgs/applications/misc/ltwheelconf/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "1fsz7k73yln987gcx1jvb5irxfbp1x2c457a60a8yap27nkp5y2w"; }; - buildInputs = [ libusb1 pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libusb1 ]; installPhase = '' mkdir -p $out/bin diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix index 0da6e8eb34a..0c08929417e 100644 --- a/pkgs/applications/misc/lyx/default.nix +++ b/pkgs/applications/misc/lyx/default.nix @@ -3,17 +3,18 @@ }: stdenv.mkDerivation rec { - version = "2.2.2"; + version = "2.2.3"; name = "lyx-${version}"; src = fetchurl { url = "ftp://ftp.lyx.org/pub/lyx/stable/2.2.x/${name}.tar.xz"; - sha256 = "0s2mma8fkj5mi8qzc0j67589mbj854bypx2s3y59y1n429s3sp58"; + sha256 = "0mrbr24xbdg25gd7w8g76gpmy0a10nrnz0mz47mdjwi441yfpjjg"; }; # LaTeX is used from $PATH, as people often want to have it with extra pkgs + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig qtbase qtsvg python file/*for libmagic*/ bc + qtbase qtsvg python file/*for libmagic*/ bc hunspell makeWrapper # enchant ]; @@ -41,7 +42,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "WYSIWYM frontend for LaTeX, DocBook"; - homepage = "http://www.lyx.org"; + homepage = http://www.lyx.org; license = licenses.gpl2Plus; maintainers = [ maintainers.vcunat ]; platforms = platforms.linux; diff --git a/pkgs/applications/misc/madonctl/default.nix b/pkgs/applications/misc/madonctl/default.nix new file mode 100644 index 00000000000..af8d00b59bf --- /dev/null +++ b/pkgs/applications/misc/madonctl/default.nix @@ -0,0 +1,31 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx }: + +buildGoPackage rec { + name = "madonctl-${version}"; + version = "1.1.0"; + + goPackagePath = "github.com/McKael/madonctl"; + + src = fetchFromGitHub { + owner = "McKael"; + repo = "madonctl"; + rev = "v${version}"; + sha256 = "1dnc1xaafhwhhf5afhb0wc2wbqq0s1r7qzj5k0xzc58my541gadc"; + }; + + # How to update: + # go get -u github.com/McKael/madonctl + # cd $GOPATH/src/github.com/McKael/madonctl + # git checkout v + # go2nix save + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "CLI for the Mastodon social network API"; + homepage = https://github.com/McKael/madonctl; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ matthiasbeyer ]; + }; +} diff --git a/pkgs/applications/misc/madonctl/deps.nix b/pkgs/applications/misc/madonctl/deps.nix new file mode 100644 index 00000000000..9f94bb09ce4 --- /dev/null +++ b/pkgs/applications/misc/madonctl/deps.nix @@ -0,0 +1,228 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.0 +[ + { + goPackagePath = "github.com/McKael/madon"; + fetch = { + type = "git"; + url = "https://github.com/McKael/madon"; + rev = "e580cd41ac42bbb0b2ea5b3843b3f1f854db357c"; + sha256 = "0jvvfkf3wlzisvcq54xv3jxncx178ks5wxd6cx8k8215437b3hra"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "4da3e2cfbabc9f751898f250b49f2439785783a1"; + sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"; + sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "a91eba7f97777409bc2c443f5534d41dd20c5720"; + sha256 = "13cg6wwkk2ddqbm0nh9fpx4mq7f6qym12ch4lvs53n028ycdgw87"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca"; + sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "7cafcd837844e784b526369c9bce262804aebc60"; + sha256 = "0br693pf6vdr1sfvzdz6zxq7hjpdgci0il4wj0v636r8lyy21vsx"; + }; + } + { + goPackagePath = "github.com/m0t0k1ch1/gomif"; + fetch = { + type = "git"; + url = "https://github.com/m0t0k1ch1/gomif"; + rev = "f5864f63e1ed5a138f015cc2cb71a2e99c148d21"; + sha256 = "0djg8chax1g0m02xz84ic19758jzv5m50b7vpwjkpjk3181j5z9k"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "51463bfca2576e06c62a8504b5c0f06d61312647"; + sha256 = "0d7hr78y8gg2mrm5z4jjgm2w3awkznz383b7wvyzk3l33jw6i288"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "fc9e8d8ef48496124e79ae0df75490096eccf6fe"; + sha256 = "1r5f9gkavkb1w6sr0qs5kj16706xirl3qnlq3hqpszkw9w27x65a"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "cc8532a8e9a55ea36402aa21efdf403a60d34096"; + sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86"; + }; + } + { + goPackagePath = "github.com/pelletier/go-buffruneio"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-buffruneio"; + rev = "c37440a7cf42ac63b919c752ca73a85067e05992"; + sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "5c26a6ff6fd178719e15decac1c8196da0d7d6d1"; + sha256 = "0f4l7mq0nb2p2vjfjqx251s6jzkl646n1vw45chykwvv1sbad8nq"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "c605e284fe17294bda444b34710735b29d1a9d90"; + sha256 = "1izjk4msnc6wn1mclg0ypa6i31zfwb1r3032k8q4jfbd57hp0bz6"; + }; + } + { + goPackagePath = "github.com/sendgrid/rest"; + fetch = { + type = "git"; + url = "https://github.com/sendgrid/rest"; + rev = "14de1ac72d9ae5c3c0d7c02164c52ebd3b951a4e"; + sha256 = "0wrggvgnqdmhscim52hvhg77jhksprxp52sc4ipd69kasd32b5dm"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "9be650865eab0c12963d8753212f4f9c66cdcf12"; + sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4"; + sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "ca5710c94eabe15aa1f74490b8e5976dc652e8c6"; + sha256 = "1z5fxh9akwn95av6ra8p6804nhyxjc63m0s6abxi3l424n30b08i"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "8f07c835e5cc1450c082fe3a439cf87b0cbb2d99"; + sha256 = "1dhl6kdbyczhnsgiyc8mcb7kmxd9garx8gy3q2gx5mmv96xxzxx7"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66"; + sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/spf13/viper"; + rev = "0967fc9aceab2ce9da34061253ac10fb99bba5b2"; + sha256 = "016syis0rvccp2indjqi1vnz3wk7c9dhkvkgam0j79sb019kl80f"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "513929065c19401a1c7b76ecd942f9f86a0c061b"; + sha256 = "19ziin0k3n45nccjbk094f61hr198wzqnas93cmcxdja8f8fz27q"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "f047394b6d14284165300fd82dad67edb3a4d7f6"; + sha256 = "1l1a2iz1nmfmzzbjj1h8066prag4jvjqh13iv1jdlh05fgv6769i"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "a2e06a18b0d52d8cb2010e04b372a1965d8e3439"; + sha256 = "0m0r2w2qk8jkdk21h52n66g4yqckmzpx3mph73cilkhvdfgwfd21"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "19e51611da83d6be54ddafce4a4af510cb3e9ea4"; + sha256 = "09pcfzx7nrma0gjv93jx57c28farf8m1qm4x07vk5505wlcgvvfl"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b"; + sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl"; + }; + } +] diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix index 361ced02b7e..8a752bbaf86 100644 --- a/pkgs/applications/misc/makeself/default.nix +++ b/pkgs/applications/misc/makeself/default.nix @@ -1,12 +1,14 @@ -{ stdenv, fetchgit }: +{ stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { - name = "makeself-2.2.0"; + version = "2.3.1"; + name = "makeself-${version}"; - src = fetchgit { - url = "https://github.com/megastep/makeself.git"; - rev = "b836b9281ae99abe1865608b065551da56c80719"; - sha256 = "f7c97f0f8ad8128f2f1b54383319f2cc44cbb05b60ced222784debdf326f23ad"; + src = fetchFromGitHub { + owner = "megastep"; + repo = "makeself"; + rev = "release-${version}"; + sha256 = "01r7vb9vyb99s3g5cw0c04s1ahcingynk3ki17wknlk2asjrbc4p"; }; patchPhase = '' diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix index 5206feb215c..f627a3cda22 100644 --- a/pkgs/applications/misc/mdp/default.nix +++ b/pkgs/applications/misc/mdp/default.nix @@ -1,14 +1,14 @@ { stdenv, fetchFromGitHub, ncurses }: stdenv.mkDerivation rec { - version = "1.0.9"; + version = "1.0.10"; name = "mdp-${version}"; src = fetchFromGitHub { owner = "visit1985"; repo = "mdp"; rev = version; - sha256 = "183flp52zfady4f8f3vgapr5f5k6cvanmj2hw293v6pw71qnafmd"; + sha256 = "1swp1hqryai84c8dpzsvjpgg5rz2vnn2vrp0dhwy8r0qgpmby2nn"; }; makeFlags = [ "PREFIX=$(out)" ]; diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix index e60d1619685..fc702f249de 100644 --- a/pkgs/applications/misc/mediainfo-gui/default.nix +++ b/pkgs/applications/misc/mediainfo-gui/default.nix @@ -2,11 +2,11 @@ , desktop_file_utils, libSM, imagemagick }: stdenv.mkDerivation rec { - version = "0.7.91"; + version = "0.7.99"; name = "mediainfo-gui-${version}"; src = fetchurl { - url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; - sha256 = "15jrph9hjza4c87m739s7c9v27gji94ha7rpchb8li0rcdvy40dm"; + url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; + sha256 = "127d6wsrq3wg3ibbb28m26wrm54qbkv8h8xycanvml6ys4zqsc6a"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files. ''; - homepage = http://mediaarea.net/; + homepage = https://mediaarea.net/; license = licenses.bsd2; platforms = platforms.linux; maintainers = [ maintainers.devhell ]; diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix index 0ddee228e9d..84fef1b3983 100644 --- a/pkgs/applications/misc/mediainfo/default.nix +++ b/pkgs/applications/misc/mediainfo/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }: stdenv.mkDerivation rec { - version = "0.7.91"; + version = "0.7.99"; name = "mediainfo-${version}"; src = fetchurl { - url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; - sha256 = "15jrph9hjza4c87m739s7c9v27gji94ha7rpchb8li0rcdvy40dm"; + url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; + sha256 = "127d6wsrq3wg3ibbb28m26wrm54qbkv8h8xycanvml6ys4zqsc6a"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files. ''; - homepage = http://mediaarea.net/; + homepage = https://mediaarea.net/; license = licenses.bsd2; platforms = platforms.unix; maintainers = [ maintainers.devhell ]; diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix index a1744f7a2c0..d1befec3408 100644 --- a/pkgs/applications/misc/merkaartor/default.nix +++ b/pkgs/applications/misc/merkaartor/default.nix @@ -1,25 +1,27 @@ -{ stdenv, fetchFromGitHub, qt4, qmake4Hook, boost, proj, gdal, sqlite, pkgconfig }: +{ stdenv, fetchFromGitHub, qmake, pkgconfig, boost, gdal, proj +, qtbase, qtsvg, qtwebkit }: stdenv.mkDerivation rec { name = "merkaartor-${version}"; - version = "0.18.2"; + version = "0.18.3"; src = fetchFromGitHub { owner = "openstreetmap"; repo = "merkaartor"; rev = version; - sha256 = "1a8kzrc9w0b2a2zgw9dbbi15jy9ynv6nf2sg3k4dbh7f1s2ajx9l"; + sha256 = "0ls3q8m1hxiwyrypy6qca8wczhl4969ncl0sszfdwfv70rzxjk88"; }; - buildInputs = [ qt4 boost proj gdal sqlite ]; + nativeBuildInputs = [ qmake pkgconfig ]; - nativeBuildInputs = [ qmake4Hook pkgconfig ]; + buildInputs = [ boost gdal proj qtbase qtsvg qtwebkit ]; - meta = { - description = "An openstreetmap editor"; - homepage = http://merkaartor.org/; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - inherit (qt4.meta) platforms; + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "OpenStreetMap editor"; + homepage = http://merkaartor.be/; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ viric ]; }; } diff --git a/pkgs/applications/misc/metar/default.nix b/pkgs/applications/misc/metar/default.nix new file mode 100644 index 00000000000..ca4f91533ec --- /dev/null +++ b/pkgs/applications/misc/metar/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchgit, curl }: + +stdenv.mkDerivation { + name = "metar-20161013.1"; + + src = fetchgit { + url = "https://github.com/keesL/metar.git"; + rev = "20e9ca69faea330f6c2493b6829131c24cb55147"; + sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj"; + }; + + buildInputs = [ curl ]; + + meta = with stdenv.lib; { + homepage = https://github.com/keesL/metar; + license = licenses.gpl2; + maintainers = [ maintainers.zalakain ]; + description = "Downloads weather reports and optionally decodes them"; + longDescription = '' + METAR reports are meteorogical weather reports for aviation. Metar is a small + program which downloads weather reports for user-specified stations and + optionally decodes them into a human-readable format. + + Currently, metar supports decoding date/time, wind, visibility, cloud layers, + temperature, air pressure and weather phenomena, such as rain, fog, etc. Also, + more work in the area of clouds need to be done, as support for Cumulus or + Cumulunimbus is not yet decoded. + ''; + }; +} diff --git a/pkgs/applications/misc/milu/default.nix b/pkgs/applications/misc/milu/default.nix index b8ccbe77cf5..d8d1cff6040 100644 --- a/pkgs/applications/misc/milu/default.nix +++ b/pkgs/applications/misc/milu/default.nix @@ -24,8 +24,8 @@ stdenv.mkDerivation rec { cp bin/milu $out/bin ''; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig glib unzip clang @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = { description = "Higher Order Mutation Testing Tool for C and C++ programs"; - homepage = http://github.com/yuejia/Milu; + homepage = https://github.com/yuejia/Milu; license = stdenv.lib.licenses.bsd2; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.vrthra ]; diff --git a/pkgs/applications/misc/monero/default.nix b/pkgs/applications/misc/monero/default.nix index 8b3e0a7cb4e..0c83e206bb3 100644 --- a/pkgs/applications/misc/monero/default.nix +++ b/pkgs/applications/misc/monero/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromGitHub, cmake, boost, miniupnpc, openssl, pkgconfig, unbound }: let - version = "0.10.2.1"; + version = "0.11.0.0"; in stdenv.mkDerivation { name = "monero-${version}"; @@ -10,7 +10,7 @@ stdenv.mkDerivation { owner = "monero-project"; repo = "monero"; rev = "v${version}"; - sha256 = "0jr57lih3smdg4abglfyfhxp69akiyqy889gcpdplwl05vfnhand"; + sha256 = "041xxk9gznfpgn8f07m7sddr74cwm1sdyf9i85k10ndja87xc6y4"; }; nativeBuildInputs = [ cmake pkgconfig ]; @@ -30,7 +30,6 @@ stdenv.mkDerivation { bin/monerod \ bin/monero-blockchain-export \ bin/monero-blockchain-import \ - bin/monero-utils-deserialize \ bin/monero-wallet-cli \ bin/monero-wallet-rpc ''; diff --git a/pkgs/applications/misc/moonlight-embedded/default.nix b/pkgs/applications/misc/moonlight-embedded/default.nix index 391440f8622..c95f935b855 100644 --- a/pkgs/applications/misc/moonlight-embedded/default.nix +++ b/pkgs/applications/misc/moonlight-embedded/default.nix @@ -6,16 +6,16 @@ stdenv.mkDerivation rec { name = "moonlight-embedded-${version}"; - version = "2.2.3"; + version = "2.4.2"; # fetchgit used to ensure submodules are available src = fetchgit { url = "git://github.com/irtimmer/moonlight-embedded"; rev = "refs/tags/v${version}"; - sha256 = "0m1114dsz44rvq402b4v5ib2cwj2vbasir0l8vi0q5iymwmsvxj4"; + sha256 = "0khdbwfclvpjgyk5ar1fs4j66zsjikaj422wlvrvqhyzi1v5arpr"; }; - outputs = [ "out" "doc" ]; + outputs = [ "out" "man" ]; nativeBuildInputs = [ cmake perl ]; buildInputs = [ diff --git a/pkgs/applications/misc/mqtt-bench/default.nix b/pkgs/applications/misc/mqtt-bench/default.nix new file mode 100644 index 00000000000..eea166d8df7 --- /dev/null +++ b/pkgs/applications/misc/mqtt-bench/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }: + +buildGoPackage rec { + name = "mqtt-bench-${version}"; + version = "0.3.0"; + rev = "v${version}"; + + goPackagePath = "github.com/takanorig/mqtt-bench"; + + src = fetchFromGitHub { + inherit rev; + owner = "takanorig"; + repo = "mqtt-bench"; + sha256 = "03b9ak2j303iwq6abd7j10f2cs2ianwnbflwmyx9g96i7zd74f5m"; + }; + + patches = [ + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/takanorig/mqtt-bench/pull/13.patch"; + name = "mqtt-paho-changes.patch"; + sha256 = "17c8ajrp5dmbsasj6njxrlhy0x08b65fignzm3yccqbhb4ijcvha"; + }) + ]; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "Mosquitto benchmark tool"; + homepage = https://github.com/takanorig/mqtt-bench; + maintainers = with maintainers; [ disassembler ]; + }; +} diff --git a/pkgs/applications/misc/mqtt-bench/deps.nix b/pkgs/applications/misc/mqtt-bench/deps.nix new file mode 100644 index 00000000000..d93d3c46814 --- /dev/null +++ b/pkgs/applications/misc/mqtt-bench/deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/eclipse/paho.mqtt.golang"; + fetch = { + type = "git"; + url = "https://github.com/eclipse/paho.mqtt.golang"; + rev = "65f43bda5f7edbbf6b7533d3a5a13b2c67cf3545"; + sha256 = "1ad136xf78br599ya43j45f8dycjip1k0hkplayy1slg8ckwrhdr"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "8351a756f30f1297fe94bbf4b767ec589c6ea6d0"; + sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1"; + }; + } +] diff --git a/pkgs/applications/misc/multimon-ng/default.nix b/pkgs/applications/misc/multimon-ng/default.nix index 8e39c258333..24a8b0c46a6 100644 --- a/pkgs/applications/misc/multimon-ng/default.nix +++ b/pkgs/applications/misc/multimon-ng/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation { AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE CW ''; - homepage = "https://github.com/EliasOenal/multimon-ng"; + homepage = https://github.com/EliasOenal/multimon-ng; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ the-kenny ]; diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix index a4687c385c6..b50d99466f8 100644 --- a/pkgs/applications/misc/mupdf/default.nix +++ b/pkgs/applications/misc/mupdf/default.nix @@ -1,49 +1,76 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig -, zlib, freetype, libjpeg, jbig2dec, openjpeg -, libX11, libXcursor, libXrandr, libXinerama, libXext, harfbuzz, mesa }: +{ stdenv, lib, fetchurl, fetchpatch, pkgconfig +, freetype, harfbuzz, openjpeg, jbig2dec, libjpeg +, enableX11 ? true, libX11, libXext +, enableCurl ? true, curl, openssl +}: stdenv.mkDerivation rec { - version = "1.10a"; + version = "1.11"; name = "mupdf-${version}"; src = fetchurl { url = "http://mupdf.com/downloads/archive/${name}-source.tar.gz"; - sha256 = "0dm8wcs8i29aibzkqkrn8kcnk4q0kd1v66pg48h5c3qqp4v1zk5a"; + sha256 = "02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510"; }; patches = [ # Compatibility with new openjpeg (fetchpatch { - name = "mupdf-1.9a-openjpeg-2.1.1.patch"; - url = "https://git.archlinux.org/svntogit/community.git/plain/mupdf/trunk/0001-mupdf-openjpeg.patch?id=5a28ad0a8999a9234aa7848096041992cc988099"; - sha256 = "1i24qr4xagyapx4bijjfksj4g3bxz8vs5c2mn61nkm29c63knp75"; + name = "mupdf-1.11-openjpeg-2.1.1.patch"; + url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/0001-mupdf-openjpeg.patch?h=packages/mupdf&id=3d997e7ff2ac20c44856ede22760ba6fbca81a5c"; + sha256 = "1vr12kpzmmfr8pp3scwfhrm5laqwd58xm6vx971c4y8bxy60b2ig"; }) (fetchurl { - name = "CVE-2017-5896.patch"; - url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=2c4e5867ee699b1081527bc6c6ea0e99a35a5c27"; - sha256 = "14k7x47ifx82sds1c06ibzbmcparfg80719jhgwjk6w1vkh4r693"; + name = "mupdf-1.11-CVE-2017-6060.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=blobdiff_plain;f=platform/x11/jstest_main.c;h=f158d9628ed0c0a84e37fe128277679e8334422a;hp=13c3a0a3ba3ff4aae29f6882d23740833c1d842f;hb=06a012a42c9884e3cd653e7826cff1ddec04eb6e;hpb=34e18d127a02146e3415b33c4b67389ce1ddb614"; + sha256 = "163bllvjrbm0gvjb25lv7b6sih4zr4g4lap3h0cbq8dvpjxx0jfc"; + }) + + (fetchpatch { + name = "mupdf-1.11-shared_libs-1.patch"; + url = "https://ftp.osuosl.org/pub/blfs/conglomeration/mupdf/mupdf-1.11-shared_libs-1.patch"; + sha256 = "127x8jhyj3i9cn3mxw9mm5barw2yk43rvmghg54bhn4rjalx857j"; + }) + + (fetchurl { + name = "mupdf-1.11-CVE-2017-14685.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=ab1a420613dec93c686acbee2c165274e922f82a"; + sha256 = "120xapwj0af333n3a32ypxk0jmjv2ia476jg8pzsfqk9a5qqkx46"; + }) + + (fetchurl { + name = "mupdf-1.11-CVE-2017-14686.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1"; + sha256 = "0pkn7mfqhmnsyia4rh4mw4q435bzvlc22crqa1bxpaa0gcyky51c"; + }) + + (fetchurl { + name = "mupdf-1.11-CVE-2017-14687.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=2b16dbd8f73269cb15ca61ece75cf8d2d196ed28"; + sha256 = "01v41cwrdnz3k32fcadk2gk4knqrm3mavzp6pxhn19nwgmqkshjd"; + }) + + (fetchurl { + name = "mupdf-1.11-CVE-2017-15587.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=82df2631d7d0446b206ea6b434ea609b6c28b0e8"; + sha256 = "04kfww7y0wazg6372g44fa2k5kiiigq4616ihkvmp18rz86903n9"; }) ]; makeFlags = [ "prefix=$(out)" ]; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ zlib libX11 libXcursor libXext harfbuzz mesa libXrandr libXinerama freetype libjpeg jbig2dec openjpeg ]; - outputs = [ "bin" "dev" "out" "doc" ]; + buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg ] + ++ lib.optionals enableX11 [ libX11 libXext ] + ++ lib.optionals enableCurl [ curl openssl ]; + outputs = [ "bin" "dev" "out" "man" "doc" ]; preConfigure = '' # Don't remove mujs because upstream version is incompatible - rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,jpeg,openjpeg,zlib} + rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib} ''; postInstall = '' - for i in $out/lib/*.a; do - so="''${i%.a}.so" - gcc -shared -o $so.${version} -Wl,--whole-archive $i -Wl,--no-whole-archive - ln -s $so.${version} $so - rm $i - done - mkdir -p "$out/lib/pkgconfig" cat >"$out/lib/pkgconfig/mupdf.pc" <=[^"]*,werkzeug,g' \ -e 's,psutil>=[^"]*,psutil,g' \ -e 's,requests>=[^"]*,requests,g' \ + -e 's,future>=[^"]*,future,g' \ + -e 's,pyserial>=[^"]*,pyserial,g' \ + -e 's,semantic_version>=[^"]*,semantic_version,g' \ setup.py ''; checkPhase = "nosetests"; meta = with stdenv.lib; { - homepage = "http://octoprint.org/"; + homepage = http://octoprint.org/; description = "The snappy web interface for your 3D printer"; license = licenses.agpl3; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/misc/octoprint/m33-fio-one-library.patch b/pkgs/applications/misc/octoprint/m33-fio-one-library.patch index 87b00f3ab70..24c9c4a80f5 100644 --- a/pkgs/applications/misc/octoprint/m33-fio-one-library.patch +++ b/pkgs/applications/misc/octoprint/m33-fio-one-library.patch @@ -1,18 +1,18 @@ -From 0defcf6ec155899c414f66524b7df629f59327f0 Mon Sep 17 00:00:00 2001 +From 314bcebfcd1759981ce12255be29d8ae68cd400b Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 23 Nov 2016 00:40:48 +0300 Subject: [PATCH] Build and use one version of preprocessor library --- - octoprint_m33fio/__init__.py | 67 ++---------------------------------------- - shared library source/Makefile | 62 +++----------------------------------- - 2 files changed, 6 insertions(+), 123 deletions(-) + octoprint_m33fio/__init__.py | 73 ++---------------------------------------- + shared library source/Makefile | 62 +++-------------------------------- + 2 files changed, 6 insertions(+), 129 deletions(-) diff --git a/octoprint_m33fio/__init__.py b/octoprint_m33fio/__init__.py -index 4b43c59..d1259e4 100755 +index 054870a..4d5ecc1 100755 --- a/octoprint_m33fio/__init__.py +++ b/octoprint_m33fio/__init__.py -@@ -1062,71 +1062,8 @@ class M33FioPlugin( +@@ -1189,78 +1189,9 @@ class M33FioPlugin( # Check if using shared library or checking if it is usable if self._settings.get_boolean(["UseSharedLibrary"]) or isUsable : @@ -54,7 +54,9 @@ index 4b43c59..d1259e4 100755 - - # Otherwise check if running on Windows and using an i386 or x86-64 device - elif platform.uname()[0].startswith("Windows") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) : -- ++ # Set shared library ++ self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/libpreprocessor.so") + - # Check if Python is running as 32-bit - if platform.architecture()[0].startswith("32") : - @@ -81,11 +83,16 @@ index 4b43c59..d1259e4 100755 - - # Set shared library - self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_x86-64.dylib") -+ # Set shared library -+ self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/libpreprocessor.so") - +- +- # Otherwise check if running FreeBSD +- elif platform.uname()[0].startswith("FreeBSD") : +- +- # TODO: Compile FreeBSD shared library pre-processors +- pass +- # Check if shared library was set if self.sharedLibrary : + diff --git a/shared library source/Makefile b/shared library source/Makefile index 792b4f4..4c74f5c 100755 --- a/shared library source/Makefile @@ -164,5 +171,5 @@ index 792b4f4..4c74f5c 100755 clean: rm -f ../octoprint_m33fio/static/libraries/$(PROG) -- -2.11.0 +2.14.1 diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix index 8bc4a22bc92..0a1d26012a8 100644 --- a/pkgs/applications/misc/octoprint/plugins.nix +++ b/pkgs/applications/misc/octoprint/plugins.nix @@ -12,22 +12,17 @@ let m33-fio = buildPlugin rec { name = "M33-Fio-${version}"; - version = "1.17"; + version = "1.21"; src = fetchFromGitHub { owner = "donovan6000"; repo = "M33-Fio"; rev = "V${version}"; - sha256 = "19r860hqax09a79s9bl181ab7jsgx0pa8fvnr62lbgkwhis7m8mh"; + sha256 = "1la3611kkqn8yiwjn6cizc45ri8pnk6ckld1na4nk6mqk88jvjq7"; }; patches = [ ./m33-fio-one-library.patch - # Fix incompatibility with new OctoPrint - (fetchpatch { - url = "https://github.com/foosel/M33-Fio/commit/bdf2422dee3fb8e53b33f087f734956c3b209d72.patch"; - sha256 = "0jm415sx6d3m0z4gfhbnxlasg08zf3f3mslaj4amn9wbvsik9s5d"; - }) ]; postPatch = '' @@ -39,7 +34,7 @@ let ''; meta = with stdenv.lib; { - homepage = "https://github.com/donovan6000/M33-Fio"; + homepage = https://github.com/donovan6000/M33-Fio; description = "OctoPrint plugin for the Micro 3D printer"; platforms = platforms.all; license = licenses.gpl3; @@ -59,7 +54,7 @@ let }; meta = with stdenv.lib; { - homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus"; + homepage = https://github.com/MoonshineSG/OctoPrint-TitleStatus; description = "Show printers status in window title"; platforms = platforms.all; license = licenses.agpl3; @@ -69,17 +64,17 @@ let stlviewer = buildPlugin rec { name = "OctoPrint-STLViewer-${version}"; - version = "0.3.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "jneilliii"; repo = "OctoPrint-STLViewer"; rev = "v${version}"; - sha256 = "1a6sa8pw9ay7x27pfwr3nzb22x3jaw0c9vwyz4mrj76zkiw6svfi"; + sha256 = "1f64s37g2d79g76v0vjnjrc2jp2gwrsnfgx7w3n0hkf1lz1pjkm0"; }; meta = with stdenv.lib; { - homepage = "https://github.com/jneilliii/Octoprint-STLViewer"; + homepage = https://github.com/jneilliii/Octoprint-STLViewer; description = "A simple stl viewer tab for OctoPrint"; platforms = platforms.all; license = licenses.agpl3; diff --git a/pkgs/applications/misc/ola/default.nix b/pkgs/applications/misc/ola/default.nix new file mode 100644 index 00000000000..9db6042e60f --- /dev/null +++ b/pkgs/applications/misc/ola/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, bison, flex, pkgconfig +, libuuid, cppunit, protobuf3_1, zlib, avahi, libmicrohttpd +, perl, python3, python3Packages +}: + +stdenv.mkDerivation rec { + name = "ola-${version}"; + version = "0.10.5"; + + src = fetchFromGitHub { + owner = "OpenLightingProject"; + repo = "ola"; + rev = version; + sha256 = "1296iiq8fxbvv8sghpj3nambfmixps48dd77af0gpwf7hmjjm8al"; + }; + + nativeBuildInputs = [ autoreconfHook bison flex pkgconfig perl ]; + buildInputs = [ libuuid cppunit protobuf3_1 zlib avahi libmicrohttpd python3 ]; + propagatedBuildInputs = [ python3Packages.protobuf3_1 python3Packages.numpy ]; + + configureFlags = [ "--enable-python-libs" ]; + + meta = with stdenv.lib; { + description = "A framework for controlling entertainment lighting equipment."; + maintainers = [ maintainers.globin ]; + licenses = with licenses; [ lgpl21 gpl2Plus ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/openbox-menu/default.nix b/pkgs/applications/misc/openbox-menu/default.nix index 1985b644884..8ff9a2f44d5 100644 --- a/pkgs/applications/misc/openbox-menu/default.nix +++ b/pkgs/applications/misc/openbox-menu/default.nix @@ -9,14 +9,15 @@ stdenv.mkDerivation rec { sha256 = "1hi4b6mq97y6ajq4hhsikbkk23aha7ikaahm92djw48mgj2f1w8l"; }; - buildInputs = [ pkgconfig glib gtk2 menu-cache ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib gtk2 menu-cache ]; patches = [ ./with-svg.patch ]; installPhase = "make install prefix=$out"; meta = { - homepage = "http://fabrice.thiroux.free.fr/openbox-menu_en.html"; + homepage = http://fabrice.thiroux.free.fr/openbox-menu_en.html; description = "Dynamic XDG menu generator for Openbox"; longDescription = '' Openbox-menu is a pipemenu for Openbox window manager. It provides a diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix index 36218b6d507..4aebd3bb2a9 100644 --- a/pkgs/applications/misc/openbrf/default.nix +++ b/pkgs/applications/misc/openbrf/default.nix @@ -1,18 +1,20 @@ -{ stdenv, fetchFromGitHub, qt4, qmake4Hook, vcg, glew }: +{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, mesa }: + stdenv.mkDerivation { - name = "openbrf-2016-01-09"; + name = "openbrf-unstable-2016-01-09"; src = fetchFromGitHub { owner = "cfcohen"; repo = "openbrf"; - rev = "c18d7431e1d499cee11586f4a035fb5fdc0d3330"; - sha256 = "0laikpz0ljz7l5fgapwj09ygizmvj1iywnpfgfd0i14j46s134xb"; + rev = "4bdc66e38def5e5184f5379c84a7558b7484c70a"; + sha256 = "16254cnr60ihcn7bki7wl1qm6gkvzb99cn66md1pnb7za8nvzf4j"; }; - buildInputs = [ qt4 qmake4Hook vcg glew ]; + buildInputs = [ qtbase vcg glew ]; enableParallelBuilding = true; + nativeBuildInputs = [ qmake ]; qmakeFlags = [ "openBrf.pro" ]; @@ -21,12 +23,23 @@ stdenv.mkDerivation { ''; installPhase = '' - install -Dm755 openBrf $out/bin/openBrf + install -Dm755 openBrf $out/share/openBrf/openBrf + install -Dm644 carry_positions.txt $out/share/openBrf/carry_positions.txt + install -Dm644 reference.brf $out/share/openBrf/reference.brf + + patchelf \ + --set-rpath "${stdenv.lib.makeLibraryPath [ qtbase glew stdenv.cc.cc mesa ]}" \ + $out/share/openBrf/openBrf + + mkdir -p "$out/bin" + ln -s "$out/share/openBrf/openBrf" "$out/bin/openBrf" ''; + dontPatchELF = true; + meta = with stdenv.lib; { description = "A tool to edit resource files (BRF)"; - homepage = "https://github.com/cfcohen/openbrf"; + homepage = https://github.com/cfcohen/openbrf; maintainers = with stdenv.lib.maintainers; [ abbradar ]; license = licenses.free; platforms = platforms.linux; diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix index 696232c9f8d..3420d6365b4 100644 --- a/pkgs/applications/misc/opencpn/default.nix +++ b/pkgs/applications/misc/opencpn/default.nix @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { sha256 = "1m6fp9lf9ki9444h0dq6bj0vr7d0pcxkbjv3j2v76p0ksk2l8kw3"; }; - buildInputs = [ pkgconfig cmake gtk2 wxGTK30 libpulseaudio curl gettext + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake gtk2 wxGTK30 libpulseaudio curl gettext glib portaudio ]; cmakeFlags = [ @@ -27,6 +28,6 @@ stdenv.mkDerivation rec { maintainers = [ stdenv.lib.maintainers.kragniz ]; platforms = stdenv.lib.platforms.all; license = stdenv.lib.licenses.gpl2; - homepage = "http://opencpn.org/"; + homepage = https://opencpn.org/; }; } diff --git a/pkgs/applications/misc/osmctools/default.nix b/pkgs/applications/misc/osmctools/default.nix index 5a9ffc13007..e70be8201b3 100644 --- a/pkgs/applications/misc/osmctools/default.nix +++ b/pkgs/applications/misc/osmctools/default.nix @@ -37,10 +37,10 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Command line tools for transforming Open Street Map files"; - homepage = '' - http://wiki.openstreetmap.org/wiki/Osmconvert + homepage = [ + https://wiki.openstreetmap.org/wiki/Osmconvert https://wiki.openstreetmap.org/wiki/Osmfilter - ''; + ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/pcmanfm/default.nix b/pkgs/applications/misc/pcmanfm/default.nix index aceeae87d08..148dd427fbc 100644 --- a/pkgs/applications/misc/pcmanfm/default.nix +++ b/pkgs/applications/misc/pcmanfm/default.nix @@ -1,5 +1,11 @@ -{ stdenv, fetchurl, glib, gtk2, intltool, libfm, libX11, pango, pkgconfig }: +{ stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkgconfig +, wrapGAppsHook, gnome3, withGtk3 ? true, gtk2, gtk3 }: +let + libfm' = libfm.override { inherit withGtk3; }; + gtk = if withGtk3 then gtk3 else gtk2; + inherit (stdenv.lib) optional; +in stdenv.mkDerivation rec { name = "pcmanfm-1.2.5"; src = fetchurl { @@ -7,10 +13,13 @@ stdenv.mkDerivation rec { sha256 = "0rxdh0dfzc84l85c54blq42gczygq8adhr3l9hqzy1dp530cm1hc"; }; - buildInputs = [ glib gtk2 intltool libfm libX11 pango pkgconfig ]; + buildInputs = [ glib gtk libfm' libX11 pango gnome3.defaultIconTheme ]; + nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool ]; + + configureFlags = optional withGtk3 "--with-gtk=3"; meta = with stdenv.lib; { - homepage = "http://blog.lxde.org/?cat=28/"; + homepage = http://blog.lxde.org/?cat=28/; license = licenses.gpl2Plus; description = "File manager with GTK+ interface"; maintainers = [ maintainers.ttuegel ]; diff --git a/pkgs/applications/misc/pcmanx-gtk2/default.nix b/pkgs/applications/misc/pcmanx-gtk2/default.nix index 87c4df3446e..060d4899f4c 100644 --- a/pkgs/applications/misc/pcmanx-gtk2/default.nix +++ b/pkgs/applications/misc/pcmanx-gtk2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gtk2, libXft, intltool, automake115x, autoconf, libtool, pkgconfig }: +{ stdenv, fetchurl, gtk2, libXft, intltool, automake, autoconf, libtool, pkgconfig }: stdenv.mkDerivation { name = "pcmanx-gtk2-1.3"; @@ -7,17 +7,18 @@ stdenv.mkDerivation { sha256 = "2e5c59f6b568036f2ad6ac67ca2a41dfeeafa185451e507f9fb987d4ed9c4302"; }; - buildInputs = [ gtk2 libXft intltool automake115x autoconf libtool pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 libXft intltool automake autoconf libtool ]; preConfigure = '' ./autogen.sh ''; meta = with stdenv.lib; { - homepage = "http://pcman.ptt.cc"; + homepage = http://pcman.ptt.cc; license = licenses.gpl2; description = "Telnet BBS browser with GTK+ interface"; - maintainers = [ maintainers.mingchuan ]; + maintainers = [ maintainers.sifmelcara ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/pdfmod/default.nix b/pkgs/applications/misc/pdfmod/default.nix index 919935a41ee..691f3188b08 100644 --- a/pkgs/applications/misc/pdfmod/default.nix +++ b/pkgs/applications/misc/pdfmod/default.nix @@ -18,8 +18,9 @@ stdenv.mkDerivation rec { sha256 = "0fpz9ifr6476lqhd5rkb94dm68vlrwdq5w1aaxzgyjgdax9hxx81"; }) ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig gnome_doc_utils intltool mono gtk-sharp-2_0 gnome-sharp + gnome_doc_utils intltool mono gtk-sharp-2_0 gnome-sharp hyena which makeWrapper wrapGAppsHook ]; @@ -39,7 +40,7 @@ stdenv.mkDerivation rec { dontStrip = true; meta = with stdenv.lib; { - homepage = "https://wiki.gnome.org/Apps/PdfMod"; + homepage = https://wiki.gnome.org/Apps/PdfMod; description = "A simple application for modifying PDF documents"; platforms = platforms.all; maintainers = with maintainers; [ obadz ]; diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix index 3c42e8d8fcc..8e0fc613721 100644 --- a/pkgs/applications/misc/pdfpc/default.nix +++ b/pkgs/applications/misc/pdfpc/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { name = "${product}-${version}"; product = "pdfpc"; - version = "4.0.6"; + version = "4.0.7"; src = fetchFromGitHub { repo = "pdfpc"; owner = "pdfpc"; rev = "v${version}"; - sha256 = "05cfx45i0xnwvclrbwlmqsjj2sk1galk62dc0mrkhr6293mbp1mx"; + sha256 = "00qfmmk8h762p53z46g976z7j4fbxyi16w5axzsv1ymvdq95ds8c"; }; nativeBuildInputs = [ cmake pkgconfig vala ]; diff --git a/pkgs/applications/misc/pell/default.nix b/pkgs/applications/misc/pell/default.nix index f79d71ca250..ad2ab147340 100644 --- a/pkgs/applications/misc/pell/default.nix +++ b/pkgs/applications/misc/pell/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { pname = "pell"; - version = "0.0.1"; + version = "0.0.2"; name = "${pname}-${version}"; src = fetchFromGitHub { owner = "ebzzry"; repo = pname; - rev = "3f95341eb9439c7a6be1f3c6366c0552ab8208f0"; - sha256 = "183aj3ys080g2kahl8x8rkhzlsb6h5ls9xm1v2kasfbn1pi5i6nn"; + rev = "ec14de0a9b666433954184167bf3b82cf21193f8"; + sha256 = "0r2gbb4l9rr5x99m62zicknsp1gf9fr124xpyd8ak9izr5hvskn9"; }; installPhase = '' @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = https://github.com/ebzzry/pell; - description = "A simple periodic host monitor using ping"; + description = "A simple host availability monitor"; license = licenses.mit; maintainers = [ maintainers.ebzzry ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/pgadmin/default.nix b/pkgs/applications/misc/pgadmin/default.nix index fba7b6371f6..889f516f00b 100644 --- a/pkgs/applications/misc/pgadmin/default.nix +++ b/pkgs/applications/misc/pgadmin/default.nix @@ -1,32 +1,58 @@ -{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl, zlib }: +{ stdenv, fetchurl, fetchpatch, postgresql, wxGTK, libxml2, libxslt, openssl, zlib, makeDesktopItem }: stdenv.mkDerivation rec { name = "pgadmin3-${version}"; - version = "1.22.1"; + version = "1.22.2"; src = fetchurl { - url = "http://ftp.postgresql.org/pub/pgadmin3/release/v${version}/src/pgadmin3-${version}.tar.gz"; - sha256 = "0gkqpj8cg6jd6yhssrij1cbh960rg9fkjbdzcpryi6axwv0ag7ki"; + url = "http://ftp.postgresql.org/pub/pgadmin/pgadmin3/v${version}/src/pgadmin3-${version}.tar.gz"; + sha256 = "1b24b356h8z188nci30xrb57l7kxjqjnh6dq9ws638phsgiv0s4v"; }; enableParallelBuilding = true; buildInputs = [ postgresql wxGTK openssl zlib ]; + patches = [ + (fetchpatch { + sha256 = "09hp7s3zjz80rpx2j3xyznwswwfxzi70z7c05dzrdk74mqjjpkfk"; + name = "843344.patch"; + url = "https://sources.debian.net/data/main/p/pgadmin3/1.22.2-1/debian/patches/843344"; + }) + ]; + preConfigure = '' substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell" ''; configureFlags = [ + "--with-pgsql=${postgresql}" "--with-libxml2=${libxml2.dev}" "--with-libxslt=${libxslt.dev}" ]; - meta = with stdenv.lib; { + meta = with stdenv.lib; { description = "PostgreSQL administration GUI tool"; - homepage = http://www.pgadmin.org; + homepage = https://www.pgadmin.org; license = licenses.gpl2; maintainers = with maintainers; [ domenkozar wmertens ]; platforms = platforms.unix; }; + + postFixup = let + desktopItem = makeDesktopItem { + name = "pgAdmin"; + desktopName = "pgAdmin III"; + genericName = "SQL Administration"; + exec = "pgadmin3"; + icon = "pgAdmin3"; + type = "Application"; + categories = "Application;Development;"; + mimeType = "text/html"; + }; + in '' + mkdir -p $out/share/pixmaps; + cp pgadmin/include/images/pgAdmin3.png $out/share/pixmaps/; + cp -rv ${desktopItem}/share/applications $out/share/ + ''; } diff --git a/pkgs/applications/misc/pgmanage/default.nix b/pkgs/applications/misc/pgmanage/default.nix new file mode 100644 index 00000000000..fd66ce8fc31 --- /dev/null +++ b/pkgs/applications/misc/pgmanage/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, runCommand, postgresql, openssl } : + +stdenv.mkDerivation rec { + name = "pgmanage-${version}"; + version = "10.0.2"; + + src = fetchFromGitHub { + owner = "pgManage"; + repo = "pgManage"; + rev = "v${version}"; + sha256 = "0g9kvhs9b6kc1s7j90fqv71amiy9v0w5p906yfvl0j7pf3ayq35a"; + }; + + buildInputs = [ postgresql openssl ]; + + meta = with stdenv.lib; { + description = "A fast replacement for PGAdmin"; + longDescription = '' + At the heart of Postage is a modern, fast, event-based C-binary, built in + the style of NGINX and Node.js. This heart makes Postage as fast as any + PostgreSQL interface can hope to be. + ''; + homepage = https://github.com/pgManage/pgManage; + license = licenses.postgresql; + maintainers = [ maintainers.basvandijk ]; + }; +} diff --git a/pkgs/applications/misc/phwmon/default.nix b/pkgs/applications/misc/phwmon/default.nix index e5dd22bfbb1..0cee74522ab 100644 --- a/pkgs/applications/misc/phwmon/default.nix +++ b/pkgs/applications/misc/phwmon/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "phwmon-${version}"; - version = "2016-03-13"; + version = "2017-04-10"; src = fetchFromGitLab { owner = "o9000"; repo = "phwmon"; - rev = "90247ceaff915ad1040352c5cc9195e4153472d4"; - sha256 = "1gkjfmd8rai7bl1j7jz9drmzlw72n7mczl0akv39ya4l6k8plzvv"; + rev = "b162e53dccc4adf8f11f49408d05fd85d9c6c909"; + sha256 = "1hqmsq66y8bqkpvszw84jyk8haxq3cjnz105hlkmp7786vfmkisq"; }; nativeBuildInputs = [ pythonPackages.wrapPython ]; diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix index 86dbfc0c5fe..6d0a348b1f7 100644 --- a/pkgs/applications/misc/pinfo/default.nix +++ b/pkgs/applications/misc/pinfo/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation { sha256 = "0p8wyrpz9npjcbx6c973jspm4c3xz4zxx939nngbq49xqah8088j"; }; - buildInputs = [ autoreconfHook gettext texinfo ncurses readline ]; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ gettext texinfo ncurses readline ]; configureFlags = [ "--with-curses=${ncurses.dev}" "--with-readline=${readline.dev}" ]; diff --git a/pkgs/applications/misc/pitz/default.nix b/pkgs/applications/misc/pitz/default.nix deleted file mode 100644 index dcb36082231..00000000000 --- a/pkgs/applications/misc/pitz/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, fetchurl, buildPythonApplication, tempita, jinja2, pyyaml, clepy, mock -, nose, decorator, docutils -}: - -# TODO: pitz has a pitz-shell utility that depends on ipython, but it just -# errors out and dies (it probably depends on an old ipython version): -# -# from IPython.Shell import IPShellEmbed -# ImportError: No module named Shell -# -# pitz-shell is not the primary interface, so it is not critical to have it -# working. Concider fixing pitz upstream. - -buildPythonApplication rec { - name = "pitz-1.2.4"; - namePrefix = ""; - - src = fetchurl { - url = "mirror://pypi/p/pitz/${name}.tar.gz"; - sha256 = "1k7f3h4acllzqy3mjqnjd4w5jskp03s79b7dx3c85vlmd7824smr"; - }; - - # propagatedBuildInputs is needed for pitz to find its dependencies at - # runtime. If we use buildInputs it would just build, not run. - propagatedBuildInputs = [ tempita jinja2 pyyaml clepy mock nose decorator docutils ]; - - meta = with stdenv.lib; { - description = "Distributed bugtracker"; - license = licenses.bsd3; - homepage = http://pitz.tplus1.com/; - platforms = platforms.linux; - maintainers = [ maintainers.bjornfor ]; - }; -} diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix index b604905320b..3f39a356312 100644 --- a/pkgs/applications/misc/playonlinux/default.nix +++ b/pkgs/applications/misc/playonlinux/default.nix @@ -24,7 +24,7 @@ assert stdenv.isLinux; let - version = "4.2.10"; + version = "4.2.12"; binpath = stdenv.lib.makeBinPath [ cabextract @@ -57,7 +57,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; - sha256 = "0ws94hgxajaww450q8ivrp28ypv39mashs29ak41faxf29cr097m"; + sha256 = "03k8v9dknc5hfrfzqw1nkpifz7wkixv3mvjl1vnp4fx8rj2xrjrq"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/pmenu/default.nix b/pkgs/applications/misc/pmenu/default.nix index da59f7f1886..2472b05a2e0 100644 --- a/pkgs/applications/misc/pmenu/default.nix +++ b/pkgs/applications/misc/pmenu/default.nix @@ -1,29 +1,25 @@ -{ stdenv, fetchFromGitLab, python2Packages, gnome2 }: +{ stdenv, fetchFromGitLab, python2Packages, gnome3 }: stdenv.mkDerivation rec { name = "pmenu-${version}"; - version = "2016-05-13"; + version = "2017-04-10"; src = fetchFromGitLab { owner = "o9000"; repo = "pmenu"; - rev = "90b722de345cff56f8ec0908a0e8a7d733c0c671"; - sha256 = "15bkvadr7ab44mc8gkdqs3w14cm498mwf72w5rjm2rdh55357jjh"; + rev = "87fec9ddf594f1046d03348de2bafcfa6e94cfd1"; + sha256 = "0ynhml46bi5k52v7fw2pjpcac9dswkmlvh6gynvnyqjp4p153fl4"; }; nativeBuildInputs = [ python2Packages.wrapPython ]; - buildInputs = [ python2Packages.pygtk gnome2.gnome_menus ]; + buildInputs = [ python2Packages.pygtk gnome3.gnome-menus ]; pythonPath = [ python2Packages.pygtk ]; - - patchPhase = '' - substituteInPlace install.sh --replace "/usr/local" "$out" - ''; installPhase = '' mkdir -p $out/bin $out/share/applications - ./install.sh + ./install.sh $out ''; postFixup = '' diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix index 026a1289fb6..e88a4974074 100644 --- a/pkgs/applications/misc/polybar/default.nix +++ b/pkgs/applications/misc/polybar/default.nix @@ -1,6 +1,6 @@ { cairo, cmake, fetchgit, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig , python2 , stdenv, xcbproto, xcbutil, xcbutilimage, xcbutilrenderutil -, xcbutilwm, xcbutilxrm +, xcbutilwm, xcbutilxrm, fetchpatch # optional packages-- override the variables ending in 'Support' to enable or # disable modules @@ -32,13 +32,21 @@ stdenv.mkDerivation rec { description = "A fast and easy-to-use tool for creatin status bars."; longDescription = '' Polybar aims to help users build beautiful and highly customizable - status bars for their desktop environment, without the need of + status bars for their desktop environment, without the need of having a black belt in shell scripting. - ''; + ''; license = licenses.mit; maintainers = [ maintainers.afldcr ]; platforms = platforms.unix; }; + # This patch should be removed with next stable release. + patches = [ + (fetchpatch { + name = "polybar-remove-curlbuild.patch"; + url = "https://github.com/jaagr/polybar/commit/d35abc7620c8f06618b4708d9a969dfa2f309e96.patch"; + sha256 = "14xr65vsjvd51hzg9linj09w0nnixgn26dh9lqxy25bxachcyzxy"; + }) + ]; buildInputs = [ cairo libXdmcp libpthreadstubs libxcb pcre python2 xcbproto xcbutil diff --git a/pkgs/applications/misc/posterazor/default.nix b/pkgs/applications/misc/posterazor/default.nix index b6d46cf9ed1..1347840ee67 100644 --- a/pkgs/applications/misc/posterazor/default.nix +++ b/pkgs/applications/misc/posterazor/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - buildInputs = [ cmake unzip pkgconfig libXpm fltk13 freeimage ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake unzip libXpm fltk13 freeimage ]; unpackPhase = '' unzip $src -d posterazor @@ -28,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://posterazor.sourceforge.net/"; + homepage = http://posterazor.sourceforge.net/; description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster"; maintainers = [ stdenv.lib.maintainers.madjar ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix index bc6b4e16a37..ecc4c341a68 100644 --- a/pkgs/applications/misc/pytrainer/default.nix +++ b/pkgs/applications/misc/pytrainer/default.nix @@ -1,38 +1,45 @@ -{ stdenv, fetchurl, pythonPackages, sqlite, gpsbabel }: +{ stdenv, fetchFromGitHub, perl, python2Packages, sqlite, gpsbabel +, withWebKit ? false }: let # Pytrainer needs a matplotlib with GTK backend. Also ensure we are # using the pygtk with glade support as needed by pytrainer. - matplotlibGtk = pythonPackages.matplotlib.override { + matplotlibGtk = python2Packages.matplotlib.override { enableGtk2 = true; - pygtk = pythonPackages.pyGtkGlade; + pygtk = python2Packages.pyGtkGlade; }; in -pythonPackages.buildPythonApplication rec { +python2Packages.buildPythonApplication rec { name = "pytrainer-${version}"; - version = "1.10.0"; + version = "1.11.0"; - src = fetchurl { - url = "https://github.com/pytrainer/pytrainer/archive/v${version}.tar.gz"; - sha256 = "0l42p630qhymgrcvxgry8chrpzcp6nr3d1vd7vhifh2npfq9l09y"; + src = fetchFromGitHub { + owner = "pytrainer"; + repo = "pytrainer"; + rev = "v${version}"; + sha256 = "1x4f1ydjql0aisvxs5kyi9lx35b4q3768dx42fyzq1nxdwzaqyvy"; }; namePrefix = ""; - # The existing use of pywebkitgtk shows raw HTML text instead of - # map. This patch solves the problems by showing the file from a - # string, which allows setting an explicit MIME type. - patches = [ ./pytrainer-webkit.patch ]; + patches = [ + # The test fails in the UTC timezone and C locale. + ./fix-test-tz.patch - propagatedBuildInputs = with pythonPackages; [ - dateutil lxml matplotlibGtk pyGtkGlade pywebkitgtk - sqlalchemy_migrate + # The existing use of pywebkitgtk shows raw HTML text instead of + # map. This patch solves the problems by showing the file from a + # string, which allows setting an explicit MIME type. + ./pytrainer-webkit.patch ]; - buildInputs = [ gpsbabel sqlite ]; + propagatedBuildInputs = with python2Packages; [ + dateutil lxml matplotlibGtk pyGtkGlade sqlalchemy_migrate + ] ++ stdenv.lib.optional withWebKit [ pywebkitgtk ]; + + buildInputs = [ perl gpsbabel sqlite ]; # This package contains no binaries to patch or strip. dontPatchELF = true; diff --git a/pkgs/applications/misc/pytrainer/fix-test-tz.patch b/pkgs/applications/misc/pytrainer/fix-test-tz.patch new file mode 100644 index 00000000000..359e28c41c3 --- /dev/null +++ b/pkgs/applications/misc/pytrainer/fix-test-tz.patch @@ -0,0 +1,33 @@ +diff -Nurp pytrainer-v1.11.0-a/pytrainer/test/core/test_activity.py pytrainer-v1.11.0-b/pytrainer/test/core/test_activity.py +--- pytrainer-v1.11.0-a/pytrainer/test/core/test_activity.py 1980-01-02 00:00:00.000000000 +0100 ++++ pytrainer-v1.11.0-b/pytrainer/test/core/test_activity.py 2017-09-30 18:56:43.127016847 +0200 +@@ -69,7 +69,7 @@ class ActivityTest(unittest.TestCase): + self.assertEquals(self.activity.time, self.activity.duration) + + def test_activity_starttime(self): +- self.assertEquals(self.activity.starttime, '12:58:23 PM') ++ self.assertEquals(self.activity.starttime, '12:58:23') + + def test_activity_time_tuple(self): + self.assertEquals(self.activity.time_tuple, (2, 3, 46)) +diff -Nurp pytrainer-v1.11.0-a/pytrainer/test/imports/test_garmintcxv2.py pytrainer-v1.11.0-b/pytrainer/test/imports/test_garmintcxv2.py +--- pytrainer-v1.11.0-a/pytrainer/test/imports/test_garmintcxv2.py 1980-01-02 00:00:00.000000000 +0100 ++++ pytrainer-v1.11.0-b/pytrainer/test/imports/test_garmintcxv2.py 2017-09-30 18:55:45.078128980 +0200 +@@ -23,7 +23,7 @@ class GarminTCXv2Test(unittest.TestCase) + self.fail() + + def test_workout_summary(self): +- summary = [(0, False, '2012-10-14T12:02:42', '10.12', '00:39:51', 'Running')] ++ summary = [(0, False, '2012-10-14T10:02:42', '10.12', '00:39:51', 'Running')] + try: + current_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.dirname(os.path.dirname(os.path.dirname(current_path))) + "/" +diff -Nurp pytrainer-v1.11.0-a/pytrainer/test/lib/test_date.py pytrainer-v1.11.0-b/pytrainer/test/lib/test_date.py +--- pytrainer-v1.11.0-a/pytrainer/test/lib/test_date.py 1980-01-02 00:00:00.000000000 +0100 ++++ pytrainer-v1.11.0-b/pytrainer/test/lib/test_date.py 2017-09-30 18:56:23.448720166 +0200 +@@ -45,4 +45,4 @@ class DateFunctionTest(unittest.TestCase + def test_getDateTime(self): + utctime, localtime = getDateTime('Tue Nov 24 17:29:05 UTC 2015') + self.assertEqual(datetime.datetime(2015, 11, 24, 17, 29, 5, tzinfo=tzutc()), utctime) +- self.assertEqual(datetime.datetime(2015, 11, 24, 19, 29, 5, tzinfo=tzlocal()), localtime) ++ self.assertEqual(datetime.datetime(2015, 11, 24, 17, 29, 5, tzinfo=tzlocal()), localtime) diff --git a/pkgs/applications/misc/qdirstat/default.nix b/pkgs/applications/misc/qdirstat/default.nix new file mode 100644 index 00000000000..cbbac11424e --- /dev/null +++ b/pkgs/applications/misc/qdirstat/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchFromGitHub, qmake +, coreutils, xdg_utils, bash +, perl, makeWrapper, perlPackages }: + +let + version = "1.4"; +in stdenv.mkDerivation rec { + name = "qdirstat-${version}"; + + src = fetchFromGitHub { + owner = "shundhammer"; + repo = "qdirstat"; + rev = "${version}"; + sha256 = "1ppasbr0mq301q6n3rm0bsmprs7vgkcjmmc0gbgqpgw84nmp9fqh"; + }; + + nativeBuildInputs = [ qmake makeWrapper ]; + + buildInputs = [ perl ]; + + preBuild = '' + substituteInPlace scripts/scripts.pro \ + --replace /bin/true ${coreutils}/bin/true \ + --replace /usr/bin $out/bin + substituteInPlace src/src.pro \ + --replace /usr/bin $out/bin \ + --replace /usr/share $out/share + for i in doc/doc.pro doc/stats/stats.pro + do + substituteInPlace $i \ + --replace /usr/share $out/share + done + + for i in src/MainWindow.cpp src/FileSizeStatsWindow.cpp + do + substituteInPlace $i \ + --replace /usr/bin/xdg-open ${xdg_utils}/bin/xdg-open + done + for i in src/Cleanup.cpp src/cleanup-config-page.ui + do + substituteInPlace $i \ + --replace /bin/bash ${bash}/bin/bash \ + --replace /bin/sh ${bash}/bin/sh + done + substituteInPlace src/StdCleanup.cpp \ + --replace /bin/bash ${bash}/bin/bash + ''; + + postInstall = '' + wrapProgram $out/bin/qdirstat-cache-writer \ + --set PERL5LIB "${stdenv.lib.makePerlPath [ perlPackages.URI ]}" + ''; + + meta = with stdenv.lib; { + description = "Graphical disk usage analyzer"; + homepage = src.meta.homepage; + license = licenses.gpl2; + maintainers = with maintainers; [ gnidorah ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix new file mode 100644 index 00000000000..60a8cf2c6cd --- /dev/null +++ b/pkgs/applications/misc/qlcplus/default.nix @@ -0,0 +1,38 @@ +{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, udev +, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb +, libsndfile, libmad +}: + +mkDerivation rec { + name = "qlcplus-${version}"; + version = "4.11.0"; + + src = fetchFromGitHub { + owner = "mcallegari"; + repo = "qlcplus"; + rev = "QLC+_${version}"; + sha256 = "0a45ww341yjx9k54j5s8b5wj83rgbwxkdvgy0v5jbbdf9m78ifrg"; + }; + + nativeBuildInputs = [ qmake pkgconfig ]; + buildInputs = [ + udev qtmultimedia qtscript alsaLib ola libftdi1 libusb libsndfile libmad + ]; + + qmakeFlags = [ "INSTALLROOT=$(out)" ]; + + postPatch = '' + patchShebangs . + sed -i -e '/unix:!macx:INSTALLROOT += \/usr/d' \ + -e "s@\$\$LIBSDIR/qt4/plugins@''${qtPluginPrefix}@" \ + -e "s@/etc/udev/rules.d@''${out}/lib/udev@" \ + variables.pri + ''; + + meta = with stdenv.lib; { + description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc."; + maintainers = [ maintainers.globin ]; + license = licenses.asl20; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/qmapshack/default.nix b/pkgs/applications/misc/qmapshack/default.nix new file mode 100644 index 00000000000..7330dfa4f19 --- /dev/null +++ b/pkgs/applications/misc/qmapshack/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromBitbucket, cmake, qtscript, qtwebkit, gdal, proj, routino, quazip }: + +stdenv.mkDerivation rec { + name = "qmapshack-${version}"; + version = "1.9.1"; + + src = fetchFromBitbucket { + owner = "maproom"; + repo = "qmapshack"; + rev = "V%20${version}"; + sha256 = "1yswdq1s9jjhwb3wfiy3kkiiaqzagw28vjqvl13jxcnmq7y763sr"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtscript qtwebkit gdal proj routino quazip ]; + + cmakeFlags = [ + "-DROUTINO_XML_PATH=${routino}/share/routino" + "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip" + "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://bitbucket.org/maproom/qmapshack/wiki/Home; + description = "Plan your next outdoor trip"; + license = licenses.gpl3; + maintainter = with maintainers; [ dotlambda ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/misc/qpdfview/default.nix b/pkgs/applications/misc/qpdfview/default.nix index 1a3f1399fe7..e3e7ff950b0 100644 --- a/pkgs/applications/misc/qpdfview/default.nix +++ b/pkgs/applications/misc/qpdfview/default.nix @@ -10,13 +10,14 @@ let url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz"; sha256 = "0zysjhr58nnmx7ba01q3zvgidkgcqxjdj4ld3gx5fc7wzvl1dm7s"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - qt4 poppler_qt4 pkgconfig djvulibre libspectre cups file ghostscript + qt4 poppler_qt4 djvulibre libspectre cups file ghostscript ]; in stdenv.mkDerivation { inherit (s) name version; - inherit buildInputs; + inherit nativeBuildInputs buildInputs; src = fetchurl { inherit (s) url sha256; }; @@ -33,7 +34,7 @@ stdenv.mkDerivation { license = stdenv.lib.licenses.gpl2; maintainers = [stdenv.lib.maintainers.raskin]; platforms = stdenv.lib.platforms.linux; - homepage = "https://launchpad.net/qpdfview"; + homepage = https://launchpad.net/qpdfview; updateWalker = true; }; } diff --git a/pkgs/applications/misc/qsyncthingtray/default.nix b/pkgs/applications/misc/qsyncthingtray/default.nix index 4f95879d5eb..f283c250b5b 100644 --- a/pkgs/applications/misc/qsyncthingtray/default.nix +++ b/pkgs/applications/misc/qsyncthingtray/default.nix @@ -1,23 +1,22 @@ -{ stdenv, lib, fetchFromGitHub, procps ? null +{ mkDerivation, stdenv, lib, fetchFromGitHub, procps ? null , qtbase, qtwebengine, qtwebkit -, cmake, makeQtWrapper +, cmake , syncthing, syncthing-inotify ? null , preferQWebView ? false }: -stdenv.mkDerivation rec { - version = "0.5.7"; +mkDerivation rec { + version = "0.5.8"; name = "qsyncthingtray-${version}"; src = fetchFromGitHub { owner = "sieren"; repo = "QSyncthingTray"; rev = "${version}"; - sha256 = "0crrdpdmlc4ahkvp5znzc4zhfwsdih655q1kfjf0g231mmynxhvq"; + sha256 = "1n9g4j7qznvg9zl6x163pi9f7wsc3x6q76i33psnm7x2v1i22x5w"; }; buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit; - nativeBuildInputs = [ cmake makeQtWrapper ]; - enableParallelBuilding = true; + nativeBuildInputs = [ cmake ]; cmakeFlags = lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1"; @@ -36,22 +35,27 @@ stdenv.mkDerivation rec { ''; installPhase = let qst = "qsyncthingtray"; in '' + runHook preInstall + mkdir -p $out/bin install -m755 QSyncthingTray $out/bin/${qst} ln -s $out/bin/${qst} $out/bin/QSyncthingTray + + runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = https://github.com/sieren/QSyncthingTray/; description = "A Traybar Application for Syncthing written in C++"; longDescription = '' A cross-platform status bar for Syncthing. - Currently supports OS X, Windows and Linux. + Currently supports macOS, Windows and Linux. Written in C++ with Qt. ''; license = licenses.lgpl3; maintainers = with maintainers; [ zraexy peterhoeg ]; platforms = platforms.all; + # 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8 broken = builtins.compareVersions qtbase.version "5.7.0" >= 0; }; } diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix index 4cdb6591465..d300e411c94 100644 --- a/pkgs/applications/misc/qtpass/default.nix +++ b/pkgs/applications/misc/qtpass/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, git, gnupg, makeQtWrapper, pass, qtbase, qtsvg, qttools, qmakeHook }: +{ stdenv, fetchFromGitHub, git, gnupg, pass, qtbase, qtsvg, qttools, qmake, makeWrapper }: stdenv.mkDerivation rec { name = "qtpass-${version}"; @@ -13,10 +13,10 @@ stdenv.mkDerivation rec { buildInputs = [ git gnupg pass qtbase qtsvg qttools ]; - nativeBuildInputs = [ makeQtWrapper qmakeHook ]; + nativeBuildInputs = [ makeWrapper qmake ]; preConfigure = '' - qmakeFlags="$qmakeFlags CONFIG+=release DESTDIR=$out" + qmakeFlags="$qmakeFlags DESTDIR=$out" ''; installPhase = '' @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { ''; postInstall = '' - wrapQtProgram $out/bin/qtpass \ + wrapProgram $out/bin/qtpass \ --suffix PATH : ${git}/bin \ --suffix PATH : ${gnupg}/bin \ --suffix PATH : ${pass}/bin diff --git a/pkgs/applications/misc/quicksynergy/default.nix b/pkgs/applications/misc/quicksynergy/default.nix index bed1d1fc97c..f7722053401 100644 --- a/pkgs/applications/misc/quicksynergy/default.nix +++ b/pkgs/applications/misc/quicksynergy/default.nix @@ -7,8 +7,9 @@ stdenv.mkDerivation rec { url = "mirror://sourceforge/project/quicksynergy/Linux/${version}/quicksynergy-${version}.tar.gz"; sha256 = "1pi8503bg8q1psw50y6d780i33nnvfjqiy9vnr3v52pdcfip8pix"; }; + + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig gtk2 synergy ]; diff --git a/pkgs/applications/misc/ranger/default.nix b/pkgs/applications/misc/ranger/default.nix index 1371646be27..f3198085b9a 100644 --- a/pkgs/applications/misc/ranger/default.nix +++ b/pkgs/applications/misc/ranger/default.nix @@ -1,11 +1,16 @@ -{ stdenv, fetchurl, pythonPackages, w3m, file, less }: +{ stdenv, fetchurl, pythonPackages, file, less +, imagePreviewSupport ? true, w3m ? null}: + +with stdenv.lib; + +assert imagePreviewSupport -> w3m != null; pythonPackages.buildPythonApplication rec { name = "ranger-1.8.1"; meta = { description = "File manager with minimalistic curses interface"; - homepage = "http://ranger.nongnu.org/"; + homepage = http://ranger.nongnu.org/; license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.unix; }; @@ -23,14 +28,26 @@ pythonPackages.buildPythonApplication rec { ''; preConfigure = '' - substituteInPlace ranger/ext/img_display.py \ - --replace /usr/lib/w3m ${w3m}/libexec/w3m + substituteInPlace ranger/data/scope.sh \ + --replace "/bin/echo" "echo" + substituteInPlace ranger/__init__.py \ --replace "DEFAULT_PAGER = 'less'" "DEFAULT_PAGER = '${stdenv.lib.getBin less}/bin/less'" for i in ranger/config/rc.conf doc/config/rc.conf ; do substituteInPlace $i --replace /usr/share $out/share done + + # give file previews out of the box + substituteInPlace ranger/config/rc.conf \ + --replace "set preview_script ~/.config/ranger/scope.sh" "set preview_script $out/share/doc/ranger/config/scope.sh" + '' + optionalString imagePreviewSupport '' + substituteInPlace ranger/ext/img_display.py \ + --replace /usr/lib/w3m ${w3m}/libexec/w3m + + # give image previews out of the box when building with w3m + substituteInPlace ranger/config/rc.conf \ + --replace "set preview_images false" "set preview_images true" \ ''; } diff --git a/pkgs/applications/misc/redis-desktop-manager/default.nix b/pkgs/applications/misc/redis-desktop-manager/default.nix index 9d333da01cb..59d22b967b5 100644 --- a/pkgs/applications/misc/redis-desktop-manager/default.nix +++ b/pkgs/applications/misc/redis-desktop-manager/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchgit, pkgconfig , libssh2 , qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols , qtsvg, qttools, qtquick1 -, makeQtWrapper, qmakeHook +, qmake }: let @@ -24,10 +24,9 @@ stdenv.mkDerivation rec { sha256 = "0a7xa39qp1q32zkypw32mm3wi8wbhxhvrm6l3xsa3k1jzih7hzxr"; }; - nativeBuildInputs = [ makeQtWrapper qmakeHook ]; - + nativeBuildInputs = [ pkgconfig qmake ]; buildInputs = [ - pkgconfig libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats + libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats qtquick1 qtquickcontrols qtsvg qttools ]; @@ -68,12 +67,11 @@ EOF mkdir -p $out/bin instdir="$srcdir/bin/linux/release" cp $instdir/rdm $out/bin - wrapQtProgram $out/bin/rdm ''; meta = with lib; { description = "Cross-platform open source Redis DB management tool"; - homepage = "http://redisdesktop.com/"; + homepage = http://redisdesktop.com/; license = licenses.lgpl21; platforms = platforms.linux; maintainers = with maintainers; [ cstrahan ]; diff --git a/pkgs/applications/misc/redshift-plasma-applet/default.nix b/pkgs/applications/misc/redshift-plasma-applet/default.nix index fe09f7ff16e..03b8d709fce 100644 --- a/pkgs/applications/misc/redshift-plasma-applet/default.nix +++ b/pkgs/applications/misc/redshift-plasma-applet/default.nix @@ -1,6 +1,6 @@ -{ stdenv, cmake, plasma-framework, redshift, fetchFromGitHub, }: +{ stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }: -let version = "1.0.17"; in +let version = "1.0.18"; in stdenv.mkDerivation { name = "redshift-plasma-applet-${version}"; @@ -9,7 +9,7 @@ stdenv.mkDerivation { owner = "kotelnik"; repo = "plasma-applet-redshift-control"; rev = "v${version}"; - sha256 = "1lp1rb7i6c18lrgqxsglbvyvzh71qbm591abrbhw675ii0ca9hgj"; + sha256 = "122nnbafa596rxdxlfshxk45lzch8c9342bzj7kzrsjkjg0xr9pq"; }; patchPhase = '' @@ -24,17 +24,21 @@ stdenv.mkDerivation { "'${redshift}/bin/redshift -V'" ''; - buildInputs = [ + nativeBuildInputs = [ cmake - plasma-framework + extra-cmake-modules ]; + buildInputs = [ + plasma-framework + kwindowsystem + ]; meta = with stdenv.lib; { description = "KDE Plasma 5 widget for controlling Redshift"; homepage = https://github.com/kotelnik/plasma-applet-redshift-control; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [ benley ]; + maintainers = with maintainers; [ benley zraexy ]; }; } diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix index 03d058783b2..8b93dd51406 100644 --- a/pkgs/applications/misc/rescuetime/default.nix +++ b/pkgs/applications/misc/rescuetime/default.nix @@ -9,14 +9,14 @@ let } else fetchurl { name = "rescuetime-installer.deb"; url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb"; - sha256 = "161f71kvcrilv9qxldwn8xsqs2g9c2f2g9wb5brbfc0lqbbc8n89"; + sha256 = "1xjwaqz0gs12ndgw7c2f1nkvj0nqcl0bxhd54pwk0dwrx9pn9avz"; }; in stdenv.mkDerivation { # https://www.rescuetime.com/updates/linux_release_notes.html - name = "rescuetime-2.9.11.1285"; + name = "rescuetime-2.9.11.1300"; inherit src; buildInputs = [ dpkg makeWrapper ]; unpackPhase = '' diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix new file mode 100644 index 00000000000..fc7ff484239 --- /dev/null +++ b/pkgs/applications/misc/robo3t/default.nix @@ -0,0 +1,77 @@ +{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, + freetype, xkeyboard_config, makeDesktopItem, makeWrapper }: + +stdenv.mkDerivation rec { + name = "robo3t-${version}"; + version = "1.1.1"; + + src = fetchurl { + url = "https://download.robomongo.org/1.1.1/linux/robo3t-${version}-linux-x86_64-c93c6b0.tar.gz"; + sha256 = "140cn80vg7c8vpdjasqi4b3kyqj4n033lcm3ikz5674x3jr7r5zs"; + }; + + icon = fetchurl { + url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png"; + sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2"; + }; + + desktopItem = makeDesktopItem { + name = "robo3t"; + exec = "robo3t"; + icon = icon; + comment = "Query GUI for mongodb"; + desktopName = "Robo3T"; + genericName = "MongoDB management tool"; + categories = "Development;IDE;mongodb;"; + }; + + nativeBuildInputs = [makeWrapper]; + + ldLibraryPath = stdenv.lib.makeLibraryPath [ + stdenv.cc.cc + zlib + glib + xorg.libXi + xorg.libxcb + xorg.libXrender + xorg.libX11 + xorg.libSM + xorg.libICE + xorg.libXext + dbus + fontconfig + freetype + ]; + + installPhase = '' + BASEDIR=$out/lib/robo3t + + mkdir -p $BASEDIR/bin + cp bin/* $BASEDIR/bin + + mkdir -p $BASEDIR/lib + cp -r lib/* $BASEDIR/lib + + mkdir -p $out/share/applications + cp $desktopItem/share/applications/* $out/share/applications + + mkdir -p $out/share/icons + cp ${icon} $out/share/icons/robomongo.png + + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robo3t + + mkdir $out/bin + + makeWrapper $BASEDIR/bin/robo3t $out/bin/robo3t \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb + ''; + + meta = { + homepage = https://robomongo.org/; + description = "Query GUI for mongodb"; + platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64; + license = stdenv.lib.licenses.gpl3; + maintainers = [ stdenv.lib.maintainers.eperuffo ]; + }; +} diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix index 1516e827c5e..76593eba5fc 100644 --- a/pkgs/applications/misc/robomongo/default.nix +++ b/pkgs/applications/misc/robomongo/default.nix @@ -1,7 +1,32 @@ { stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, freetype, xkeyboard_config, makeDesktopItem, makeWrapper }: -let +stdenv.mkDerivation rec { + name = "robomongo-${version}"; + version = "0.9.0"; + + src = fetchurl { + url = "https://download.robomongo.org/${version}/linux/robomongo-${version}-linux-x86_64-0786489.tar.gz"; + sha256 = "1q8ahdz3afcw002p8dl2pybzkq4srk6bnikrz216yx1gswivdcad"; + }; + + icon = fetchurl { + url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png"; + sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2"; + }; + + desktopItem = makeDesktopItem { + name = "robomongo"; + exec = "robomongo"; + icon = icon; + comment = "Query GUI for mongodb"; + desktopName = "Robomongo"; + genericName = "MongoDB management tool"; + categories = "Development;IDE;mongodb;"; + }; + + nativeBuildInputs = [makeWrapper]; + ldLibraryPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc zlib @@ -18,56 +43,35 @@ let freetype ]; - icon = fetchurl { - url = "https://github.com/Studio3T/robomongo/raw/v0.9.0/trash/install/linux/robomongo.png"; - sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2"; + installPhase = '' + BASEDIR=$out/lib/robomongo + + mkdir -p $BASEDIR/bin + cp bin/* $BASEDIR/bin + + mkdir -p $BASEDIR/lib + cp -r lib/* $BASEDIR/lib + + mkdir -p $out/share/applications + cp $desktopItem/share/applications/* $out/share/applications + + mkdir -p $out/share/icons + cp ${icon} $out/share/icons/robomongo.png + + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robomongo + + mkdir $out/bin + + makeWrapper $BASEDIR/bin/robomongo $out/bin/robomongo \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb + ''; + + meta = { + homepage = https://robomongo.org/; + description = "Query GUI for mongodb"; + platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64; + license = stdenv.lib.licenses.gpl3; + maintainers = [ stdenv.lib.maintainers.eperuffo ]; }; -in - stdenv.mkDerivation { - name = "robomongo-0.9.0"; - - src = fetchurl { - url = "https://download.robomongo.org/0.9.0/linux/robomongo-0.9.0-linux-x86_64-0786489.tar.gz"; - sha256 = "1q8ahdz3afcw002p8dl2pybzkq4srk6bnikrz216yx1gswivdcad"; - }; - - desktopItem = makeDesktopItem { - name = "robomongo"; - exec = "robomongo"; - icon = icon; - comment = "Query GUI for mongodb"; - desktopName = "Robomongo"; - genericName = "MongoDB management tool"; - categories = "Development;IDE;mongodb;"; - }; - - buildInputs = [makeWrapper]; - - installPhase = '' - mkdir -p $out/bin - cp bin/* $out/bin - - mkdir -p $out/lib - cp -r lib/* $out/lib - - mkdir -p $out/share/applications - cp $desktopItem/share/applications/* $out/share/applications - - mkdir -p $out/share/icons - cp ${icon} $out/share/icons/robomongo.png - - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/robomongo - - wrapProgram $out/bin/robomongo \ - --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ - --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb - ''; - - meta = { - homepage = "https://robomongo.org/"; - description = "Query GUI for mongodb"; - platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64; - license = stdenv.lib.licenses.gpl3; - maintainers = [ stdenv.lib.maintainers.eperuffo ]; - }; - } +} diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix index 3c4cf27308b..bdf14c03bcc 100644 --- a/pkgs/applications/misc/rofi/default.nix +++ b/pkgs/applications/misc/rofi/default.nix @@ -1,14 +1,15 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig, libxkbcommon, pango, which, git , cairo, glib, libxcb, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification +, bison, flex, librsvg, check }: stdenv.mkDerivation rec { - version = "1.3.1"; + version = "1.4.2"; name = "rofi-${version}"; src = fetchurl { url = "https://github.com/DaveDavenport/rofi/releases/download/${version}/${name}.tar.gz"; - sha256 = "09i3vd8k6zqphrm382fglsmxc4q6dg00xddzl96kakszgvdd4qfs"; + sha256 = "0ys7grazqz5hw3nx2393df54ykcd5gw0zn66kik5fvzijpg3qfcx"; }; preConfigure = '' @@ -17,7 +18,8 @@ stdenv.mkDerivation rec { sed -i 's/~root/~nobody/g' test/helper-expand.c ''; - buildInputs = [ autoreconfHook pkgconfig libxkbcommon pango cairo git + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which ]; doCheck = true; diff --git a/pkgs/applications/misc/rtl-sdr/default.nix b/pkgs/applications/misc/rtl-sdr/default.nix index fb6e9e86e59..652dd9d5e65 100644 --- a/pkgs/applications/misc/rtl-sdr/default.nix +++ b/pkgs/applications/misc/rtl-sdr/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "1dh52xcvxkjb3mj80wlm20grz8cqf5wipx2ksi91ascz12b5pym6"; }; - buildInputs = [ cmake pkgconfig libusb1 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake libusb1 ]; # TODO: get these fixes upstream: # * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to diff --git a/pkgs/applications/misc/rtv/default.nix b/pkgs/applications/misc/rtv/default.nix index 20f8df8da48..02af4c28d59 100644 --- a/pkgs/applications/misc/rtv/default.nix +++ b/pkgs/applications/misc/rtv/default.nix @@ -1,28 +1,50 @@ -{ stdenv, fetchFromGitHub, pkgs, lib, python, pythonPackages }: +{ stdenv, fetchFromGitHub, pkgs, pythonPackages }: -pythonPackages.buildPythonApplication rec { - version = "1.14.1"; +with pythonPackages; +buildPythonApplication rec { + version = "1.19.0"; name = "rtv-${version}"; src = fetchFromGitHub { owner = "michael-lazar"; repo = "rtv"; rev = "v${version}"; - sha256 = "03106sdsvj4zjjaqqg7qvm3n959plvy08a6n28ir1yf67kwzsx8a"; + sha256 = "19rnw9cac06ns10vqn2cj0v61ycrj9g1ysa3hncamwxxibmkycp7"; }; - propagatedBuildInputs = with pythonPackages; [ - beautifulsoup4 - mailcap-fix - tornado - requests2 - six - praw - kitchen - praw - ] ++ lib.optional (!pythonPackages.isPy3k) futures; + # Tests try to access network + doCheck = false; - meta = with lib; { + checkPhase = '' + py.test + ''; + + buildInputs = [ + coverage + coveralls + docopt + mock + pylint + pytest + vcrpy + ]; + + propagatedBuildInputs = [ + backports_functools_lru_cache + beautifulsoup4 + configparser + contextlib2 + decorator + kitchen + mailcap-fix + mccabe + requests + six + tornado + pyyaml + ]; + + meta = with stdenv.lib; { homepage = https://github.com/michael-lazar/rtv; description = "Browse Reddit from your Terminal"; license = licenses.mit; diff --git a/pkgs/applications/misc/rxvt/default.nix b/pkgs/applications/misc/rxvt/default.nix index e8914b75b8a..8e63cdb6d16 100644 --- a/pkgs/applications/misc/rxvt/default.nix +++ b/pkgs/applications/misc/rxvt/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "0jfl71gz3k7zh3kxdb8lxi06kajjnx7bq1rxjgk680l209jxask1"; }; - buildInputs = [ pkgconfig libtool libX11 libXt libXpm ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libtool libX11 libXt libXpm ]; configurePhase = '' LIBTOOL=${libtool}/bin/libtool ./configure --prefix=$out --enable-everything --enable-smart-resize --enable-256-color diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix new file mode 100644 index 00000000000..f872e800836 --- /dev/null +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "urxvt-autocomplete-all-the-things-${version}"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "Vifon"; + repo = "autocomplete-ALL-the-things"; + rev = version; + sha256 = "06xd59c6gd9rglwq4km93n2p078k7v4x300lqrg1f32vvnjvs7sr"; + }; + + installPhase = '' + mkdir -p $out/lib/urxvt/perl + cp autocomplete-ALL-the-things $out/lib/urxvt/perl + ''; + + meta = with stdenv.lib; { + description = "urxvt plugin allowing user to easily complete arbitrary text"; + homepage = "https://github.com/Vifon/autocomplete-ALL-the-things"; + license = licenses.gpl3; + maintainers = with maintainers; [ nickhu ]; + platforms = with platforms; unix; + }; +} + diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix index f81709b9739..4f4319af6cb 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Change the urxvt font size on the fly"; - homepage = "https://github.com/majutsushi/urxvt-font-size"; + homepage = https://github.com/majutsushi/urxvt-font-size; license = licenses.mit; maintainers = with maintainers; [ cstrahan ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix index 0c95acd7205..13e005014f1 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Perl extensions for the rxvt-unicode terminal emulator"; - homepage = "https://github.com/effigies/urxvt-perl"; + homepage = https://github.com/effigies/urxvt-perl; license = licenses.gpl3; maintainers = with maintainers; [ cstrahan ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix index 82c4f310352..544789e865b 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Perl extensions for the rxvt-unicode terminal emulator"; - homepage = "https://github.com/muennich/urxvt-perls"; + homepage = https://github.com/muennich/urxvt-perls; license = licenses.gpl2; maintainers = with maintainers; [ abbradar ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix index 194bb8397fb..68be8b738de 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Tabbed plugin for rxvt-unicode with many enhancements (mina86's fork)"; - homepage = "https://github.com/mina86/urxvt-tabbedex"; + homepage = https://github.com/mina86/urxvt-tabbedex; maintainers = with maintainers; [ abbradar ]; platforms = with platforms; unix; }; diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix index 8b9ffb2c8c8..f4a41a89e1c 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "urxvt plugin that allows to switch color themes during runtime"; - homepage = "https://github.com/felixr/urxvt-theme-switch"; + homepage = https://github.com/felixr/urxvt-theme-switch; license = "CCBYNC"; maintainers = with maintainers; [ garbas ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix index 000828ddb7f..2f2c2055803 100644 --- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix +++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Pass mouse wheel commands to secondary screens (screen, less, nano, etc)"; - homepage = "https://aur.archlinux.org/packages/urxvt-vtwheel"; + homepage = https://aur.archlinux.org/packages/urxvt-vtwheel; license = licenses.mit; maintainers = with maintainers; [ danbst ]; platforms = with platforms; unix; diff --git a/pkgs/applications/misc/rxvt_unicode/default.nix b/pkgs/applications/misc/rxvt_unicode/default.nix index f3939d3b6eb..281f2176833 100644 --- a/pkgs/applications/misc/rxvt_unicode/default.nix +++ b/pkgs/applications/misc/rxvt_unicode/default.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation (rec { meta = with stdenv.lib; { inherit description; - homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html"; + homepage = http://software.schmorp.de/pkg/rxvt-unicode.html; downloadPage = "http://dist.schmorp.de/rxvt-unicode/Attic/"; maintainers = [ maintainers.mornfall ]; platforms = platforms.unix; diff --git a/pkgs/applications/misc/sakura/default.nix b/pkgs/applications/misc/sakura/default.nix index 66e40befe7c..17798bb01e2 100644 --- a/pkgs/applications/misc/sakura/default.nix +++ b/pkgs/applications/misc/sakura/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "sakura-${version}"; - version = "3.3.4"; + version = "3.4.0"; src = fetchurl { url = "http://launchpad.net/sakura/trunk/${version}/+download/${name}.tar.bz2"; - sha256 = "1fnkrkzf2ysav1ljgi4y4w8kvbwiwgmg1462xhizlla8jqa749r7"; + sha256 = "1vj07xnkalb8q6ippf4bmv5cf4266p1j9m80sxb6hncx0h8paj04"; }; nativeBuildInputs = [ cmake perl pkgconfig ]; diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix index 6d9e1c9fcf2..c093a751603 100644 --- a/pkgs/applications/misc/sc-im/default.nix +++ b/pkgs/applications/misc/sc-im/default.nix @@ -1,17 +1,18 @@ { stdenv, fetchFromGitHub, yacc, ncurses, libxml2, libzip, libxls, pkgconfig }: stdenv.mkDerivation rec { - version = "0.5.0"; + version = "0.6.0"; name = "sc-im-${version}"; src = fetchFromGitHub { owner = "andmarti1424"; repo = "sc-im"; rev = "v${version}"; - sha256 = "1vdn9p9srvdksxznrn65pfigwrd7brlq8bac3pjfqsvf8gjnzq61"; + sha256 = "02ak3b0vv72mv38cwvy7qp0y6hgrzcgahkv1apgks3drpnz5w1sj"; }; - buildInputs = [ yacc ncurses libxml2 libzip libxls pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ yacc ncurses libxml2 libzip libxls ]; buildPhase = '' cd src @@ -30,7 +31,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = "https://github.com/andmarti1424/sc-im"; + homepage = https://github.com/andmarti1424/sc-im; description = "SC-IM - Spreadsheet Calculator Improvised - SC fork"; license = licenses.bsdOriginal; maintainers = [ maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix index f808ec611a3..a538e53276b 100644 --- a/pkgs/applications/misc/sdcv/default.nix +++ b/pkgs/applications/misc/sdcv/default.nix @@ -22,7 +22,8 @@ stdenv.mkDerivation rec { then [ ./sdcv.cpp.patch-darwin ./utils.hpp.patch ] else [ ./sdcv.cpp.patch ] ); - buildInputs = [ pkgconfig glib gettext ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ glib gettext ]; preBuild = '' sed -i 's/guint32 page_size/size_t page_size/' src/lib/lib.cpp diff --git a/pkgs/applications/misc/sent/default.nix b/pkgs/applications/misc/sent/default.nix index c6430af5560..24e76500a6a 100644 --- a/pkgs/applications/misc/sent/default.nix +++ b/pkgs/applications/misc/sent/default.nix @@ -1,15 +1,18 @@ -{ stdenv, fetchurl, libpng, libX11, libXft +{ stdenv, fetchurl, farbfeld, libX11, libXft , patches ? [] }: stdenv.mkDerivation rec { - name = "sent-0.2"; + name = "sent-1"; src = fetchurl { - url = "http://dl.suckless.org/tools/${name}.tar.gz"; - sha256 = "0xhh752hwaa26k4q6wvrb9jnpbnylss2aw6z11j7l9rav7wn3fak"; + url = "https://dl.suckless.org/tools/${name}.tar.gz"; + sha256 = "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv"; }; - buildInputs = [ libpng libX11 libXft ]; + buildInputs = [ farbfeld libX11 libXft ]; + + # unpacking doesn't create a directory + sourceRoot = "."; inherit patches; @@ -17,8 +20,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A simple plaintext presentation tool"; - homepage = http://tools.suckless.org/sent/; - license = licenses.mit; + homepage = https://tools.suckless.org/sent/; + license = licenses.isc; platforms = platforms.linux; maintainers = with maintainers; [ pSub ]; }; diff --git a/pkgs/applications/misc/sequelpro/default.nix b/pkgs/applications/misc/sequelpro/default.nix index 4908769bef6..fc63745ebb8 100644 --- a/pkgs/applications/misc/sequelpro/default.nix +++ b/pkgs/applications/misc/sequelpro/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "MySQL database management for Mac OS X"; + description = "MySQL database management for macOS"; homepage = http://www.sequelpro.com/; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.darwin; diff --git a/pkgs/applications/misc/slade/default.nix b/pkgs/applications/misc/slade/default.nix index 3bb97463e5d..712b5a7e750 100644 --- a/pkgs/applications/misc/slade/default.nix +++ b/pkgs/applications/misc/slade/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Doom editor"; - homepage = "http://slade.mancubus.net/"; + homepage = http://slade.mancubus.net/; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/misc/slic3r/default.nix b/pkgs/applications/misc/slic3r/default.nix index 64bcb0e1921..8624cc9dda5 100644 --- a/pkgs/applications/misc/slic3r/default.nix +++ b/pkgs/applications/misc/slic3r/default.nix @@ -12,6 +12,10 @@ stdenv.mkDerivation rec { sha256 = "1z8h11k29b7z49z5k8ikyfiijyycy1q3krlzi8hfd0vdybvymw21"; }; + patches = [ + ./gcc6.patch + ]; + buildInputs = with perlPackages; [ perl makeWrapper which EncodeLocale MathClipper ExtUtilsXSpp threads MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo @@ -31,6 +35,7 @@ stdenv.mkDerivation rec { buildPhase = '' export SLIC3R_NO_AUTO=true + export LD=$CXX export PERL5LIB="./xs/blib/arch/:./xs/blib/lib:$PERL5LIB" substituteInPlace Build.PL \ diff --git a/pkgs/applications/misc/slic3r/gcc6.patch b/pkgs/applications/misc/slic3r/gcc6.patch new file mode 100644 index 00000000000..f382a252f0d --- /dev/null +++ b/pkgs/applications/misc/slic3r/gcc6.patch @@ -0,0 +1,40 @@ +diff --git i/xs/src/libslic3r/Config.hpp w/xs/src/libslic3r/Config.hpp +index 49e999b..d9b65d8 100644 +--- i/xs/src/libslic3r/Config.hpp ++++ w/xs/src/libslic3r/Config.hpp +@@ -65,7 +65,7 @@ class ConfigOptionFloat : public ConfigOption + + bool deserialize(std::string str) { + std::istringstream iss(str); +- return iss >> this->value; ++ return bool(iss >> this->value); + }; + }; + +@@ -124,7 +124,7 @@ class ConfigOptionInt : public ConfigOption + + bool deserialize(std::string str) { + std::istringstream iss(str); +- return iss >> this->value; ++ return bool(iss >> this->value); + }; + }; + +@@ -249,7 +249,7 @@ class ConfigOptionPercent : public ConfigOption + bool deserialize(std::string str) { + // don't try to parse the trailing % since it's optional + std::istringstream iss(str); +- return iss >> this->value; ++ return bool(iss >> this->value); + }; + }; + +@@ -279,7 +279,7 @@ class ConfigOptionFloatOrPercent : public ConfigOption + bool deserialize(std::string str) { + this->percent = str.find_first_of("%") != std::string::npos; + std::istringstream iss(str); +- return iss >> this->value; ++ return bool(iss >> this->value); + }; + }; + diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix index f4e1eef2836..5fffa6681cb 100644 --- a/pkgs/applications/misc/spacefm/default.nix +++ b/pkgs/applications/misc/spacefm/default.nix @@ -26,8 +26,9 @@ stdenv.mkDerivation rec { ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf ''; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig + gtk3 udev desktop_file_utils shared_mime_info intltool wrapGAppsHook ffmpegthumbnailer jmtpfs lsof udisks ] ++ (if ifuseSupport then [ ifuse ] else []); # Introduced because ifuse doesn't build due to CVEs in libplist diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix index 704262da5bf..f44ed8a1a3e 100644 --- a/pkgs/applications/misc/st/default.nix +++ b/pkgs/applications/misc/st/default.nix @@ -1,9 +1,9 @@ { stdenv, fetchurl, pkgconfig, writeText, libX11, ncurses, libXext, libXft -, fontconfig, conf ? null, patches ? []}: +, fontconfig, conf ? null, patches ? [], extraLibs ? []}: with stdenv.lib; -let patches' = if isNull patches then [] else patches; +let patches' = if patches == null then [] else patches; in stdenv.mkDerivation rec { name = "st-0.7"; @@ -17,7 +17,8 @@ in stdenv.mkDerivation rec { configFile = optionalString (conf!=null) (writeText "config.def.h" conf); preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h"; - buildInputs = [ pkgconfig libX11 ncurses libXext libXft fontconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libX11 ncurses libXext libXft fontconfig ] ++ extraLibs; installPhase = '' TERMINFO=$out/share/terminfo make install PREFIX=$out @@ -25,7 +26,7 @@ in stdenv.mkDerivation rec { meta = { homepage = http://st.suckless.org/; - license = stdenv.lib.licenses.mit; + license = licenses.mit; maintainers = with maintainers; [viric andsild]; platforms = platforms.linux; }; diff --git a/pkgs/applications/misc/st/wayland.nix b/pkgs/applications/misc/st/wayland.nix index 4d9f0ef3f8d..69794b1cffb 100644 --- a/pkgs/applications/misc/st/wayland.nix +++ b/pkgs/applications/misc/st/wayland.nix @@ -19,7 +19,8 @@ stdenv.mkDerivation rec { configFile = optionalString (conf!=null) (writeText "config.def.h" conf); preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h"; - buildInputs = [ pkgconfig ncurses wayland wld libxkbcommon fontconfig pixman ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses wayland wld libxkbcommon fontconfig pixman ]; NIX_LDFLAGS = "-lfontconfig"; @@ -29,7 +30,7 @@ stdenv.mkDerivation rec { meta = { homepage = http://st.suckless.org/; - license = stdenv.lib.licenses.mit; + license = licenses.mit; maintainers = with maintainers; [ ]; platforms = with platforms; linux; }; diff --git a/pkgs/applications/misc/st/xst.nix b/pkgs/applications/misc/st/xst.nix new file mode 100644 index 00000000000..877990861fd --- /dev/null +++ b/pkgs/applications/misc/st/xst.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, pkgconfig, libX11, ncurses, libXext, libXft, fontconfig }: + +with stdenv.lib; + +let + version = "0.7.1"; + name = "xst-${version}"; +in stdenv.mkDerivation { + inherit name; + + src = fetchFromGitHub { + owner = "neeasade"; + repo = "xst"; + rev = "v${version}"; + sha256 = "1fh4y2w0icaij99kihl3w8j5d5b38d72afp17c81pi57f43ss6pc"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libX11 ncurses libXext libXft fontconfig ]; + + installPhase = '' + TERMINFO=$out/share/terminfo make install PREFIX=$out + ''; + + meta = { + homepage = https://github.com/neeasade/xst; + description = "Simple terminal fork that can load config from Xresources"; + license = licenses.mit; + maintainers = maintainers.vyp; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/stag/default.nix b/pkgs/applications/misc/stag/default.nix index 0fe94b07450..ebb50e685da 100644 --- a/pkgs/applications/misc/stag/default.nix +++ b/pkgs/applications/misc/stag/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "https://github.com/seenaburns/stag"; + homepage = https://github.com/seenaburns/stag; description = "Terminal streaming bar graph passed through stdin"; license = stdenv.lib.licenses.bsdOriginal; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix index fa160c51fe2..8be792c673c 100644 --- a/pkgs/applications/misc/stog/default.nix +++ b/pkgs/applications/misc/stog/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "XML documents and web site compiler"; - homepage = "https://zoggy.github.io/stog/"; + homepage = https://zoggy.github.io/stog/; license = licenses.lgpl3; platforms = ocaml.meta.platforms or []; maintainers = with maintainers; [ regnat ]; diff --git a/pkgs/applications/misc/stupidterm/default.nix b/pkgs/applications/misc/stupidterm/default.nix new file mode 100644 index 00000000000..5701997fd29 --- /dev/null +++ b/pkgs/applications/misc/stupidterm/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk }: + +stdenv.mkDerivation rec { + name = "stupidterm-2017-03-15"; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ vte gtk ]; + + src = fetchFromGitHub { + owner = "esmil"; + repo = "stupidterm"; + rev = "752316a783f52317ffd9f05d32e208dbcafc5ba6"; + sha256 = "1d8fyhr9sgpxgkwzkyiws0kvhmqfwwyycvcr1qf2wjldiax222lv"; + }; + + makeFlags = "PKGCONFIG=${pkgconfig}/bin/pkg-config binary=stupidterm"; + + installPhase = '' + mkdir -p $out/bin $out/share/applications $out/share/stupidterm + cp stupidterm $out/bin + substituteAll ${./stupidterm.desktop} $out/share/applications/stupidterm.desktop + substituteAll stupidterm.ini $out/share/stupidterm/stupidterm.ini + ''; + + meta = with stdenv.lib; { + description = "Simple wrapper around the VTE terminal emulator widget for GTK+"; + longDescription = '' + Simple wrapper around the VTE terminal emulator widget for GTK+ + ''; + homepage = https://github.com/esmil/stupidterm; + license = licenses.lgpl3Plus; + maintainers = [ maintainers.etu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/stupidterm/stupidterm.desktop b/pkgs/applications/misc/stupidterm/stupidterm.desktop new file mode 100644 index 00000000000..c26d4606018 --- /dev/null +++ b/pkgs/applications/misc/stupidterm/stupidterm.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=20170315 +Name=stupidterm +Comment=VTE based terminal emulator +Exec=stupidterm +Icon=utilities-terminal +Terminal=false +Type=Application +Categories=System;TerminalEmulator; diff --git a/pkgs/applications/misc/styx/default.nix b/pkgs/applications/misc/styx/default.nix index 8e3b0e747ae..2cdf047a10f 100644 --- a/pkgs/applications/misc/styx/default.nix +++ b/pkgs/applications/misc/styx/default.nix @@ -4,22 +4,22 @@ stdenv.mkDerivation rec { name = "styx-${version}"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "styx-static"; repo = "styx"; rev = "v${version}"; - sha256 = "1dl6zmic8bv17f3ib8by66c2fj7izlnv9dh2cfa2m0ipkxk930vk"; + sha256 = "044zpj92w96csaddf1qnnc2w2w9iq4b7rzlqqsqnd1s0a87lm1qd"; }; - setSourceRoot = "cd styx-*/src; export sourceRoot=`pwd`"; - server = "${caddy.bin}/bin/caddy"; linkcheck = "${linkchecker}/bin/linkchecker"; nativeBuildInputs = [ asciidoctor ]; + outputs = [ "out" "lib" "themes" ]; + propagatedBuildInputs = [ file lessc @@ -30,39 +30,42 @@ stdenv.mkDerivation rec { (python27.withPackages (ps: [ ps.parsimonious ])) ]; - outputs = [ "out" "lib" ]; - installPhase = '' mkdir $out - install -D -m 777 styx.sh $out/bin/styx + install -D -m 777 src/styx.sh $out/bin/styx - mkdir -p $out/share/styx - cp -r scaffold $out/share/styx - cp -r nix $out/share/styx + mkdir -p $out/share/styx-src + cp -r ./* $out/share/styx-src mkdir -p $out/share/doc/styx - asciidoctor doc/index.adoc -o $out/share/doc/styx/index.html - asciidoctor doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html - asciidoctor doc/library.adoc -o $out/share/doc/styx/library.html - cp -r doc/highlight $out/share/doc/styx/ - cp -r doc/imgs $out/share/doc/styx/ - cp -r tools $out/share + asciidoctor src/doc/index.adoc -o $out/share/doc/styx/index.html + asciidoctor src/doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html + asciidoctor src/doc/library.adoc -o $out/share/doc/styx/library.html + cp -r src/doc/highlight $out/share/doc/styx/ + cp -r src/doc/imgs $out/share/doc/styx/ substituteAllInPlace $out/bin/styx substituteAllInPlace $out/share/doc/styx/index.html substituteAllInPlace $out/share/doc/styx/styx-themes.html substituteAllInPlace $out/share/doc/styx/library.html + mkdir -p $out/share/styx/scaffold + cp -r src/scaffold $out/share/styx + cp -r src/tools $out/share/styx + mkdir $lib - cp -r lib/* $lib + cp -r src/lib/* $lib + + mkdir $themes + cp -r themes/* $themes ''; meta = with stdenv.lib; { - description = "Nix based static site generator"; - maintainers = with maintainers; [ ericsagnes ]; - homepage = https://styx-static.github.io/styx-site/; + description = "Nix based static site generator"; + maintainers = with maintainers; [ ericsagnes ]; + homepage = https://styx-static.github.io/styx-site/; downloadPage = https://github.com/styx-static/styx/; - platforms = platforms.all; - license = licenses.mit; + platforms = platforms.all; + license = licenses.mit; }; } diff --git a/pkgs/applications/misc/styx/themes.nix b/pkgs/applications/misc/styx/themes.nix deleted file mode 100644 index e0bea3b23b6..00000000000 --- a/pkgs/applications/misc/styx/themes.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ fetchFromGitHub, stdenv }: - -let - - mkThemeDrv = args: stdenv.mkDerivation { - name = "styx-theme-${args.themeName}-${args.version}"; - - src = fetchFromGitHub ({ - owner = "styx-static"; - repo = "styx-theme-${args.themeName}"; - } // args.src); - - installPhase = '' - mkdir $out - cp -r * $out/ - ''; - - preferLocalBuild = true; - - meta = with stdenv.lib; { - maintainer = with maintainers; [ ericsagnes ]; - description = "${args.themeName} theme for styx"; - platforms = platforms.all; - } // args.meta; - }; - -in -{ - agency = mkThemeDrv rec { - themeName = "agency"; - version = "0.6.0"; - src = { - rev = "v${version}"; - sha256 = "1i9bajzgmxd3ffvgic6wwnqijsgkfr2mfdijkgw9yf3bxcdq5cb6"; - }; - meta = { - license = stdenv.lib.licenses.asl20; - longDescription = '' - Agency Theme is a one page portfolio for companies and freelancers. - This theme features several content sections, a responsive portfolio - grid with hover effects, full page portfolio item modals, a timeline, - and a contact form. - ''; - }; - }; - - generic-templates = mkThemeDrv rec { - themeName = "generic-templates"; - version = "0.6.0"; - src = { - rev = "v${version}"; - sha256 = "0wr2687pffczn0sns1xvqxr2gpf5v9j64zbj6q9f7km6bq0zpiiy"; - }; - meta = { - license = stdenv.lib.licenses.mit; - }; - }; - - hyde = mkThemeDrv rec { - themeName = "hyde"; - version = "0.6.0"; - src = { - rev = "v${version}"; - sha256 = "0yca76p297ymxd049fkcpw8bca5b9yvv36707z31jbijriy50zxb"; - }; - meta = { - license = stdenv.lib.licenses.mit; - longDescription = '' - Port of the Jekyll Hyde theme to styx; Hyde is a brazen two-column - Styx theme that pairs a prominent sidebar with uncomplicated content. - ''; - }; - }; - - orbit = mkThemeDrv rec { - themeName = "orbit"; - version = "0.6.0"; - src = { - rev = "v${version}"; - sha256 = "0qdx1r7dcycr5hzl9ix70pl4xf0426ghpi1lgh61zdpdhcch0xfi"; - }; - meta = { - license = stdenv.lib.licenses.cc-by-30; - longDescription = '' - Orbit is a free resume/CV template designed for developers. - ''; - }; - }; - - showcase = mkThemeDrv rec { - themeName = "showcase"; - version = "0.6.0"; - src = { - rev = "v${version}"; - sha256 = "1jfhw49yag8l1zr69l01y1p4p88waig3xv3b6c3mfxc8jrchp7pb"; - }; - meta = { - license = stdenv.lib.licenses.mit; - longDescription = '' - Theme that show most of styx functionalities with a basic design. - ''; - }; - }; -} diff --git a/pkgs/applications/misc/super_user_spark/default.nix b/pkgs/applications/misc/super_user_spark/default.nix index dd1218282d8..8102375479b 100644 --- a/pkgs/applications/misc/super_user_spark/default.nix +++ b/pkgs/applications/misc/super_user_spark/default.nix @@ -27,6 +27,6 @@ mkDerivation { jailbreak = true; description = "Configure your dotfile deployment with a DSL"; license = stdenv.lib.licenses.mit; - homepage = "https://github.com/NorfairKing/super-user-spark"; + homepage = https://github.com/NorfairKing/super-user-spark; maintainers = [ stdenv.lib.maintainers.badi ]; } diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix index 62e66e4ad38..009eb488d7b 100644 --- a/pkgs/applications/misc/sweethome3d/default.nix +++ b/pkgs/applications/misc/sweethome3d/default.nix @@ -61,7 +61,7 @@ let dontStrip = true; meta = { - homepage = "http://www.sweethome3d.com/index.jsp"; + homepage = http://www.sweethome3d.com/index.jsp; inherit description; inherit license; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix index 7dbf1e8f2a3..37623caa1d4 100644 --- a/pkgs/applications/misc/sweethome3d/editors.nix +++ b/pkgs/applications/misc/sweethome3d/editors.nix @@ -50,7 +50,7 @@ let dontStrip = true; meta = { - homepage = "http://www.sweethome3d.com/index.jsp"; + homepage = http://www.sweethome3d.com/index.jsp; inherit description; inherit license; maintainers = [ stdenv.lib.maintainers.edwtjo ]; diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix index e7d2a595684..2533014c560 100644 --- a/pkgs/applications/misc/synapse/default.nix +++ b/pkgs/applications/misc/synapse/default.nix @@ -12,8 +12,9 @@ stdenv.mkDerivation rec { sha256 = "846d8a5130580bb47c754bb7f20dc76311e589c00a18b02370a5d78b52409220"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - intltool pkgconfig glib libnotify gtk3 libgee keybinder3 json_glib zeitgeist + intltool glib libnotify gtk3 libgee keybinder3 json_glib zeitgeist vala_0_23 hicolor_icon_theme ]; diff --git a/pkgs/applications/misc/syncthing-tray/default.nix b/pkgs/applications/misc/syncthing-tray/default.nix new file mode 100644 index 00000000000..f16a0d29c40 --- /dev/null +++ b/pkgs/applications/misc/syncthing-tray/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, buildGoPackage, pkgconfig, libappindicator-gtk3 }: + +buildGoPackage rec { + name = "syncthing-tray-${version}"; + version = "0.7"; + + goPackagePath = "github.com/alex2108/syncthing-tray"; + + src = fetchFromGitHub { + owner = "alex2108"; + repo = "syncthing-tray"; + rev = "v${version}"; + sha256 = "0869kinnsfzb8ydd0sv9fgqsi1sy5rhqg4whfdnrv82xjc71xyw3"; + }; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libappindicator-gtk3 ]; + + meta = with stdenv.lib; { + description = "Simple application tray for syncthing"; + homepage = https://github.com/alex2108/syncthing-tray; + license = licenses.mit; + maintainers = with maintainers; [ nickhu ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/syncthing-tray/deps.nix b/pkgs/applications/misc/syncthing-tray/deps.nix new file mode 100644 index 00000000000..1103146ed1b --- /dev/null +++ b/pkgs/applications/misc/syncthing-tray/deps.nix @@ -0,0 +1,93 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/alex2108/systray"; + fetch = { + type = "git"; + url = "https://github.com/alex2108/systray"; + rev = "40e874866be2dc2c57ab031bcbde27a76b90721a"; + sha256 = "1bxnb6skb9ss0lwlwswql07ardkhm28nxglvlsxkdlmzv1dcwy1q"; + }; + } + { + goPackagePath = "github.com/getlantern/context"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/context"; + rev = "624d99b1798d7c5375ea1d3ca4c5b04d58f7c775"; + sha256 = "09yf9x6478a5z01hybr98zwa8ax3fx7l6wwsvdkxp3fdg9dqm13b"; + }; + } + { + goPackagePath = "github.com/getlantern/errors"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/errors"; + rev = "99fa440517e8f3d1e4cd8d6dbed6b41f4c1ed3d6"; + sha256 = "08rl32l5ks67hcgjxik62nd5g558mv4101kmz1ak7d3vfgg3m6i3"; + }; + } + { + goPackagePath = "github.com/getlantern/golog"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/golog"; + rev = "cca714f7feb5df8e455f409b549d384441ac4578"; + sha256 = "0gnf30n38zkx356cqc6jdv1kbzy59ddqhqndwrxsm2n2zc3b5p7q"; + }; + } + { + goPackagePath = "github.com/getlantern/hex"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/hex"; + rev = "083fba3033ad473db3dd31c9bb368473d37581a7"; + sha256 = "18q6rypmcqmcwlfzrrdcz08nff0a289saplvd9y3ifnfcqdw3j77"; + }; + } + { + goPackagePath = "github.com/getlantern/hidden"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/hidden"; + rev = "d52a649ab33af200943bb599898dbdcfdbc94cb7"; + sha256 = "0133qmp4sjq8da5di3459vc5g5nqbpqra0f558zd95js3fdmkmsi"; + }; + } + { + goPackagePath = "github.com/getlantern/ops"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/ops"; + rev = "b70875f5d689a9438bca72aefd7142a2af889b18"; + sha256 = "0cfa2bbkykbzbskmgd2an34him72z6f3y88ag1v5ffpb0d6bnar7"; + }; + } + { + goPackagePath = "github.com/getlantern/stack"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/stack"; + rev = "02f928aad224fbccd50d66edd776fc9d1e9f2f2b"; + sha256 = "0ddl5r4iw3c7p4drh4d8phl7d0ssdddsnd3xjm1lzgxylqq6r568"; + }; + } + { + goPackagePath = "github.com/oxtoacart/bpool"; + fetch = { + type = "git"; + url = "https://github.com/oxtoacart/bpool"; + rev = "4e1c5567d7c2dd59fa4c7c83d34c2f3528b025d6"; + sha256 = "01kk6dhkz96yhp3p5v2rjwq8mbrwrdsn6glqw7jp4h7g5za7yi95"; + }; + } + { + goPackagePath = "github.com/toqueteos/webbrowser"; + fetch = { + type = "git"; + url = "https://github.com/toqueteos/webbrowser"; + rev = "e2ebfdc6cb1a3fdc4fc4dbd20a0cae0c2e406792"; + sha256 = "0sgjnxrq0jgipkij8b6xiy4am9bv9zziqxxdhw15rdjc5piyk3a2"; + }; + } +] diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix index a56b49752e3..3ecc772feaa 100644 --- a/pkgs/applications/misc/synergy/default.nix +++ b/pkgs/applications/misc/synergy/default.nix @@ -1,22 +1,30 @@ -{ stdenv, fetchFromGitHub, cmake, xlibsWrapper, libX11, libXi, libXtst, libXrandr +{ stdenv, fetchFromGitHub, fetchpatch, cmake, xlibsWrapper, libX11, libXi, libXtst, libXrandr , xinput, curl, openssl, unzip }: with stdenv.lib; stdenv.mkDerivation rec { name = "synergy-${version}"; - version = "1.7.6"; + version = "1.8.8"; src = fetchFromGitHub { owner = "symless"; repo = "synergy"; rev = "v${version}-stable"; - sha256 = "1bjksvdr74mc3xh11z4fd6qlhgklny51q5r6gqg1bhnvn9dzyrxw"; + sha256 = "0ksgr9hkf09h54572p7k7b9zkfhcdb2g2d5x7ixxn028y8i3jyp3"; + }; + + patches = [ ./openssl-1.1.patch ]; + + patch_gcc6 = fetchpatch { + url = https://raw.githubusercontent.com/gentoo/gentoo/20e2bff3697ebf5f291e9907b34aae3074a36b53/dev-cpp/gmock/files/gmock-1.7.0-gcc6.patch; + sha256 = "0j3f381x1lf8qci9pfv6mliggl8qs2w05v5lw3rs3gn7aibg174d"; }; postPatch = '' ${unzip}/bin/unzip -d ext/gmock-1.6.0 ext/gmock-1.6.0.zip ${unzip}/bin/unzip -d ext/gtest-1.6.0 ext/gtest-1.6.0.zip + patch -d ext/gmock-1.6.0 -p1 -i ${patch_gcc6} '' # We have XRRNotifyEvent (libXrandr), but with the upstream CMakeLists.txt # it's not able to find it (it's trying to search the store path of libX11 @@ -52,9 +60,10 @@ stdenv.mkDerivation rec { meta = { description = "Share one mouse and keyboard between multiple computers"; - homepage = "http://synergy-project.org/"; + homepage = http://synergy-project.org/; license = licenses.gpl2; maintainers = [ maintainers.aszlig ]; platforms = platforms.all; + broken = stdenv.isDarwin; }; } diff --git a/pkgs/applications/misc/synergy/openssl-1.1.patch b/pkgs/applications/misc/synergy/openssl-1.1.patch new file mode 100644 index 00000000000..56dc6112844 --- /dev/null +++ b/pkgs/applications/misc/synergy/openssl-1.1.patch @@ -0,0 +1,18 @@ +--- a/src/lib/net/SecureSocket.cpp 2017-07-22 19:33:22.442645291 +0200 ++++ b/src/lib/net/SecureSocket.cpp 2017-07-22 19:36:25.632595581 +0200 +@@ -805,9 +805,14 @@ + showCipherStackDesc(sStack); + } + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + // m_ssl->m_ssl->session->ciphers is not forward compatable, In future release +- // of OpenSSL, it's not visible, need to use SSL_get_client_ciphers() instead ++ // of OpenSSL, it's not visible + STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers; ++#else ++ // Use SSL_get_client_ciphers() for newer versions ++ STACK_OF(SSL_CIPHER) * cStack = SSL_get_client_ciphers(m_ssl->m_ssl); ++#endif + if (cStack == NULL) { + LOG((CLOG_DEBUG1 "remote cipher list not available")); + } diff --git a/pkgs/applications/misc/tangogps/default.nix b/pkgs/applications/misc/tangogps/default.nix index 584b8f6a296..bde30d9041a 100644 --- a/pkgs/applications/misc/tangogps/default.nix +++ b/pkgs/applications/misc/tangogps/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "15q2kkrv4mfsivfdzjgpxr7s2amw7d501q2ayjl3ff4vmvfn5516"; }; - buildInputs = [ pkgconfig gettext gtk2 gconf curl libexif sqlite libxml2 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gettext gtk2 gconf curl libexif sqlite libxml2 ]; # bogus includes fail with newer library version postPatch = '' diff --git a/pkgs/applications/misc/taskjuggler/2.x/default.nix b/pkgs/applications/misc/taskjuggler/2.x/default.nix index 2a199843cb3..2b0573f2d2d 100644 --- a/pkgs/applications/misc/taskjuggler/2.x/default.nix +++ b/pkgs/applications/misc/taskjuggler/2.x/default.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { "kde_locale=\${out}/share/locale"; meta = { - homepage = "http://www.taskjuggler.org"; + homepage = http://www.taskjuggler.org; license = stdenv.lib.licenses.gpl2; description = "Project management tool"; longDescription = '' diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix index ae0b46d056f..1b3ca7dfc03 100644 --- a/pkgs/applications/misc/tasknc/default.nix +++ b/pkgs/applications/misc/tasknc/default.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { buildInputs = [ taskwarrior perl ncurses ]; meta = { - homepage = "https://github.com/mjheagle8/tasknc"; + homepage = https://github.com/mjheagle8/tasknc; description = "A ncurses wrapper around taskwarrior"; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; platforms = stdenv.lib.platforms.linux; # Cannot test others diff --git a/pkgs/applications/misc/tasksh/default.nix b/pkgs/applications/misc/tasksh/default.nix index 333ed411941..11bc7620368 100644 --- a/pkgs/applications/misc/tasksh/default.nix +++ b/pkgs/applications/misc/tasksh/default.nix @@ -1,16 +1,17 @@ -{ stdenv, fetchurl, cmake, libuuid, gnutls }: +{ stdenv, fetchurl, cmake, libuuid, gnutls, readline }: stdenv.mkDerivation rec { name = "tasksh-${version}"; - version = "1.1.0"; + version = "1.2.0"; enableParallelBuilding = true; src = fetchurl { url = "http://taskwarrior.org/download/${name}.tar.gz"; - sha256 = "0900nzfgvhcc106pl68d0v0qszvdc34yi59mw70b34b2gmkwdxzf"; + sha256 = "1z8zw8lld62fjafjvy248dncjk0i4fwygw0ahzjdvyyppx4zjhkf"; }; + buildInputs = [ readline ]; nativeBuildInputs = [ cmake ]; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix index e4938b928da..74ef55ee8cc 100644 --- a/pkgs/applications/misc/taskwarrior/default.nix +++ b/pkgs/applications/misc/taskwarrior/default.nix @@ -16,8 +16,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake libuuid gnutls ]; postInstall = '' - mkdir -p "$out/etc/bash_completion.d" - ln -s "../../share/doc/task/scripts/bash/task.sh" "$out/etc/bash_completion.d/" + mkdir -p "$out/share/bash-completion/completions" + ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/" + mkdir -p "$out/share/fish/vendor_completions.d" + ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/share/fish/vendor_completions.d/" ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/termdown/default.nix b/pkgs/applications/misc/termdown/default.nix new file mode 100644 index 00000000000..631fc08e95e --- /dev/null +++ b/pkgs/applications/misc/termdown/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, buildPythonApplication, +click, pyfiglet, dateutil}: + +with stdenv.lib; + +buildPythonApplication rec { + + name = "termdown-${version}"; + version = "1.11.0"; + + src = fetchFromGitHub { + rev = "d1e3504e02ad49013595112cb03fbf175822e58d"; + sha256 = "1i6fxymg52q95n0cbm4imdxh6yvpj3q57yf7w9z5d9pr35cf1iq5"; + repo = "termdown"; + owner = "trehn"; + }; + + propagatedBuildInputs = [ dateutil click pyfiglet ]; + + meta = with stdenv.lib; { + description = "Starts a countdown to or from TIMESPEC"; + longDescription = "Countdown timer and stopwatch in your terminal"; + homepage = https://github.com/trehn/termdown; + license = licenses.gpl3; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/terminal-notifier/default.nix b/pkgs/applications/misc/terminal-notifier/default.nix index d9046c55e12..c838eca5065 100644 --- a/pkgs/applications/misc/terminal-notifier/default.nix +++ b/pkgs/applications/misc/terminal-notifier/default.nix @@ -3,11 +3,12 @@ stdenv.mkDerivation rec { name = "terminal-notifier-${version}"; - version = "1.5.0"; + version = "2.0.0"; src = fetchzip { url = "https://github.com/alloy/terminal-notifier/releases/download/${version}/terminal-notifier-${version}.zip"; - sha256 = "09x7vl0kddivqq3pyrk6sg1f0sv5l7nj0bmblq222zk3b09bgg8p"; + sha256 = "0gi54v92hi1fkryxlz3k5s5d8h0s66cc57ds0vbm1m1qk3z4xhb0"; + stripRoot = false; }; dontBuild = true; @@ -17,6 +18,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin cp -r terminal-notifier.app $out/Applications cat >$out/bin/terminal-notifier < (strBuf.Ptr())); + #else +- static const char LanguageXml[] = ++ static byte LanguageXml[] = + { + # include "Common/Language.xml.h" + , 0 + }; + +- return string (LanguageXml); ++ return string ((const char*) LanguageXml); + #endif + } + +@@ -64,13 +64,13 @@ + strBuf.CopyFrom (res); + return string (reinterpret_cast (strBuf.Ptr())); + #else +- static const char License[] = ++ static byte License[] = + { + # include "License.txt.h" + , 0 + }; + +- return string (License); ++ return string ((const char*) License); + #endif + } + +--- Main/Forms/PreferencesDialog.cpp 2016-05-16 17:14:47.704707908 +0200 ++++ Main/Forms/PreferencesDialog.cpp 2016-05-16 17:15:56.927964437 +0200 +@@ -414,11 +414,11 @@ + libExtension = wxDynamicLibrary::CanonicalizeName (L"x"); + + #ifdef TC_MACOSX +- extensions.push_back (make_pair (L"dylib", LangString["DLL_FILES"])); ++ extensions.push_back (make_pair (L"dylib", static_cast(LangString["DLL_FILES"].wc_str()))); + #endif + if (!libExtension.empty()) + { +- extensions.push_back (make_pair (libExtension.Mid (libExtension.find (L'.') + 1), LangString["DLL_FILES"])); ++ extensions.push_back (make_pair (static_cast(libExtension.Mid (libExtension.find (L'.') + 1).wc_str()), static_cast(LangString["DLL_FILES"].wc_str()))); + extensions.push_back (make_pair (L"*", L"")); + } + +--- Main/GraphicUserInterface.cpp 2016-05-16 17:16:38.724591342 +0200 ++++ Main/GraphicUserInterface.cpp 2016-05-16 17:17:09.854562653 +0200 +@@ -1445,7 +1445,7 @@ + FilePath GraphicUserInterface::SelectVolumeFile (wxWindow *parent, bool saveMode, const DirectoryPath &directory) const + { + list < pair > extensions; +- extensions.push_back (make_pair (L"tc", LangString["TC_VOLUMES"])); ++ extensions.push_back (make_pair (L"tc", static_cast(LangString["TC_VOLUMES"].wc_str()))); + + FilePathList selFiles = Gui->SelectFiles (parent, LangString[saveMode ? "OPEN_NEW_VOLUME" : "OPEN_VOL_TITLE"], saveMode, false, extensions, directory); + diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix index c38b97b0e98..297f3d0b599 100644 --- a/pkgs/applications/misc/twmn/default.nix +++ b/pkgs/applications/misc/twmn/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, qmakeHook, pkgconfig, boost }: +{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, qmake, pkgconfig, boost }: stdenv.mkDerivation rec { name = "twmn-git-2014-09-23"; @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1a68gka9gyxyzhc9rn8df59rzcdwkjw90cxp1kk0rdfp6svhxhsa"; }; - buildInputs = [ qtbase qtx11extras pkgconfig boost qmakeHook ]; + nativeBuildInputs = [ pkgconfig qmake ]; + buildInputs = [ qtbase qtx11extras boost ]; postPatch = '' sed -i s/-Werror// twmnd/twmnd.pro @@ -26,7 +27,7 @@ stdenv.mkDerivation rec { meta = { description = "A notification system for tiling window managers"; - homepage = "https://github.com/sboli/twmn"; + homepage = https://github.com/sboli/twmn; platforms = with stdenv.lib.platforms; linux; maintainers = [ stdenv.lib.maintainers.matejc ]; }; diff --git a/pkgs/applications/misc/tzupdate/default.nix b/pkgs/applications/misc/tzupdate/default.nix new file mode 100644 index 00000000000..7eb0f2d41b5 --- /dev/null +++ b/pkgs/applications/misc/tzupdate/default.nix @@ -0,0 +1,24 @@ +{ stdenv, python }: + +let + inherit (python.pkgs) buildPythonApplication fetchPypi requests; +in +buildPythonApplication rec { + name = "${pname}-${version}"; + pname = "tzupdate"; + version = "1.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1wj2r1wirnn5kllaasdldimvp3cc3w7w890iqrjksz5wwjbnj8pk"; + }; + + propagatedBuildInputs = [ requests ]; + + meta = with stdenv.lib; { + description = "Update timezone information based on geoip."; + homepage = https://github.com/cdown/tzupdate; + maintainers = [ maintainers.michaelpj ]; + license = licenses.unlicense; + }; +} diff --git a/pkgs/applications/misc/udevil/default.nix b/pkgs/applications/misc/udevil/default.nix index 8ce683ec908..3cc4fcc1517 100644 --- a/pkgs/applications/misc/udevil/default.nix +++ b/pkgs/applications/misc/udevil/default.nix @@ -5,10 +5,12 @@ stdenv.mkDerivation { url = https://github.com/IgnorantGuru/udevil/archive/0.4.4.tar.gz; sha256 = "0z1bhaayambrcn7bgnrqk445k50ifabmw8q4i9qj49nnbcvxhbxd"; }; - buildInputs = [ intltool glib pkgconfig udev ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ intltool glib udev ]; configurePhase = '' - substituteInPlace src/Makefile.am --replace "-o root -g root" "" substituteInPlace src/Makefile.in --replace "-o root -g root" "" + # do not set setuid bit in nix store + substituteInPlace src/Makefile.in --replace 4755 0755 ./configure \ --prefix=$out \ --with-mount-prog=${utillinux}/bin/mount \ @@ -17,10 +19,6 @@ stdenv.mkDerivation { --with-setfacl-prog=${acl.bin}/bin/setfacl \ --sysconfdir=$prefix/etc ''; - preConfigure = '' - cat src/Makefile.am - exit 2 - ''; patches = [ ./device-info-sys-stat.patch ]; meta = { description = "A command line Linux program which mounts and unmounts removable devices without a password, shows device info, and monitors device changes"; diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix index 6a326dba39c..bcf43514f45 100644 --- a/pkgs/applications/misc/udiskie/default.nix +++ b/pkgs/applications/misc/udiskie/default.nix @@ -4,13 +4,13 @@ pythonPackages.buildPythonApplication rec { name = "udiskie-${version}"; - version = "1.5.1"; + version = "1.7.2"; src = fetchFromGitHub { owner = "coldfix"; repo = "udiskie"; rev = version; - sha256 = "01x5fvllb262x6r3547l23z7p6hr7ddz034bkhmj2cqmf83sxwxd"; + sha256 = "1p732gi6lhwcqxvsa0pknb6jmhy3kgv3yzz7xzmdzhy47m312965"; }; buildInputs = [ diff --git a/pkgs/applications/misc/urh/default.nix b/pkgs/applications/misc/urh/default.nix index e12b95754ed..faf373092d5 100644 --- a/pkgs/applications/misc/urh/default.nix +++ b/pkgs/applications/misc/urh/default.nix @@ -2,13 +2,13 @@ python3Packages.buildPythonApplication rec { name = "urh-${version}"; - version = "1.5.5"; + version = "1.7.1"; src = fetchFromGitHub { owner = "jopohl"; repo = "urh"; rev = "v${version}"; - sha256 = "1f7hz2zs2dx3v6hpdyz7wyyq1xf641jhpljyhvmjr4zg5m035isa"; + sha256 = "00l1zs3qw89z1hlylprzrpf6nf7h22h0nw43h97gv775vaqqgczv"; }; buildInputs = [ hackrf rtl-sdr ]; @@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec { inherit (src.meta) homepage; description = "Universal Radio Hacker: investigate wireless protocols like a boss"; license = licenses.asl20; - platform = platforms.all; + platforms = platforms.all; maintainers = with maintainers; [ fpletz ]; }; } diff --git a/pkgs/applications/misc/urlscan/default.nix b/pkgs/applications/misc/urlscan/default.nix index dc9cb3189d5..7c4def95210 100644 --- a/pkgs/applications/misc/urlscan/default.nix +++ b/pkgs/applications/misc/urlscan/default.nix @@ -1,25 +1,21 @@ -{ stdenv, buildPythonPackage, fetchFromGitHub, urwid, pythonOlder }: +{ stdenv, python3Packages, fetchFromGitHub }: -buildPythonPackage rec { +python3Packages.buildPythonApplication rec { name = "urlscan-${version}"; - version = "0.8.3"; + version = "0.8.6"; src = fetchFromGitHub { owner = "firecat53"; repo = "urlscan"; rev = version; - # (equivalent but less nice(?): rev = "00333f6d03bf3151c9884ec778715fc605f58cc5") - sha256 = "0l40anfznam4d3q0q0jp2wwfrvfypz9ppbpjyzjdrhb3r2nizb0y"; + sha256 = "1v26fni64n0lbv37m35plh2bsrvhpb4ibgmg2mv05qfc3df721s5"; }; - propagatedBuildInputs = [ urwid ]; - - # FIXME doesn't work with 2.7; others than 2.7 and 3.5 were not tested (yet) - disabled = !pythonOlder "3.5"; + propagatedBuildInputs = [ python3Packages.urwid ]; meta = with stdenv.lib; { description = "Mutt and terminal url selector (similar to urlview)"; license = licenses.gpl2; - maintainers = [ maintainers.dpaetzel ]; + maintainers = with maintainers; [ dpaetzel jfrankenau ]; }; } diff --git a/pkgs/applications/misc/urlview/default.nix b/pkgs/applications/misc/urlview/default.nix index f0a48cfb8d4..0a651906cd8 100644 --- a/pkgs/applications/misc/urlview/default.nix +++ b/pkgs/applications/misc/urlview/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, automake111x, autoreconfHook }: +{ stdenv, fetchurl, ncurses, autoreconfHook }: stdenv.mkDerivation rec { version = "0.9"; @@ -13,7 +13,8 @@ stdenv.mkDerivation rec { sha256 = "746ff540ccf601645f500ee7743f443caf987d6380e61e5249fc15f7a455ed42"; }; - buildInputs = [ ncurses automake111x autoreconfHook ]; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ ncurses ]; preAutoreconf = '' touch NEWS diff --git a/pkgs/applications/misc/valauncher/default.nix b/pkgs/applications/misc/valauncher/default.nix index 7d35f1f64a8..f780e5469d0 100644 --- a/pkgs/applications/misc/valauncher/default.nix +++ b/pkgs/applications/misc/valauncher/default.nix @@ -1,17 +1,18 @@ -{ stdenv, fetchFromGitHub, cmake, gtk3, vala_0_26, pkgconfig, gnome3 }: +{ stdenv, fetchFromGitHub, cmake, gtk3, vala, pkgconfig, gnome3 }: stdenv.mkDerivation rec { - version = "1.2"; + version = "1.3.1"; name = "valauncher-${version}"; src = fetchFromGitHub { owner = "Mic92"; repo = "valauncher"; rev = "v${version}"; - sha256 = "1d1gfmzmr5ra2rnjc6rbz31mf3hk7q04lh4i1hljgk7fh90dacb6"; + sha256 = "18969v870737jg1q0l3d05pb9mxsrcpdi0mnyz94rwkspszvxxqi"; }; - buildInputs = [ cmake gtk3 vala_0_26 pkgconfig gnome3.libgee ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ cmake gtk3 vala gnome3.libgee ]; meta = with stdenv.lib; { description = "A fast dmenu-like gtk3 application launcher"; diff --git a/pkgs/applications/misc/vanitygen/default.nix b/pkgs/applications/misc/vanitygen/default.nix deleted file mode 100644 index 6be2dc394cc..00000000000 --- a/pkgs/applications/misc/vanitygen/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ fetchgit, stdenv, openssl, pcre }: - -stdenv.mkDerivation rec { - version = "0.21"; - name = "vanitygen-${version}"; - - src = fetchgit { - url = "https://github.com/samr7/vanitygen"; - rev = "refs/tags/${version}"; - sha256 = "1vzfv74hhiyrrpvjca8paydx1ashgbgn5plzrx4swyzxy1xkamah"; - }; - - buildInputs = [ openssl pcre ]; - - installPhase = '' - mkdir -p $out/bin - cp vanitygen $out/bin - cp keyconv $out/bin/vanitygen-keyconv - ''; - - meta = { - description = "Bitcoin vanity address generator"; - longDescription= '' - Vanitygen can search for exact prefixes or regular expression - matches, so you can generate Bitcoin addresses that starts - with the needed mnemonic. - - Vanitygen can generate regular bitcoin addresses, namecoin - addresses, and testnet addresses. - - When searching for exact prefixes, vanitygen will ensure that - the prefix is possible, will provide a difficulty estimate, - and will run about 30% faster. - ''; - homepage = "https://github.com/samr7/vanitygen"; - license = stdenv.lib.licenses.agpl3; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix index a3fa8924df7..86924d9b3ca 100644 --- a/pkgs/applications/misc/veracrypt/default.nix +++ b/pkgs/applications/misc/veracrypt/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, pkgconfig, nasm, fuse, wxGTK30, devicemapper, makeself, +{ fetchurl, stdenv, pkgconfig, yasm, fuse, wxGTK30, devicemapper, makeself, wxGUI ? true }: @@ -6,21 +6,20 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "veracrypt-${version}"; - version = "1.19"; + version = "1.21"; src = fetchurl { - url = "https://launchpad.net/veracrypt/trunk/${version}/+download/VeraCrypt_${version}_Source.tar.gz"; - sha256 = "111xs1zmic82lpn5spn0ca33q0g4za04a2k4cvjwdb7k3vcicq6v"; + url = "https://launchpad.net/veracrypt/trunk/${version}/+download/VeraCrypt_${version}_Source.tar.bz2"; + sha256 = "0n036znmwnv70wy8r2j3b55bx2z3cch5fr83vnwjvzyyp0j7swa4"; }; - # The source archive appears to be compressed twice ... unpackPhase = '' - gzip -dc $src | tar xz - cd Vera*/src + tar xjf $src + cd src ''; - nativeBuildInputs = [ makeself nasm pkgconfig ]; + nativeBuildInputs = [ makeself yasm pkgconfig ]; buildInputs = [ fuse devicemapper ] ++ optional wxGUI wxGTK30; makeFlags = optionalString (!wxGUI) "NOGUI=1"; diff --git a/pkgs/applications/misc/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix index 00e1d10df10..ffeca99cf9c 100644 --- a/pkgs/applications/misc/vifm/default.nix +++ b/pkgs/applications/misc/vifm/default.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { name = "vifm-${version}"; - version = "0.8.2"; + version = "0.9"; src = fetchurl { - url = "mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2"; - sha256 = "07r15kq7kjl3a41sd11ncpsii866xxps4f90zh3lv8jqcrv6silb"; + url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2"; + sha256 = "1zd72vcgir3g9rhs2iyca13qf5fc0b1f22y20f5gy92c3sfwj45b"; }; nativeBuildInputs = [ pkgconfig ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { platforms = platforms.linux; license = licenses.gpl2; downloadPage = "http://vifm.info/downloads.shtml"; - homepage = "http://vifm.info/"; + homepage = http://vifm.info/; inherit version; updateWalker = true; }; diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix index 1e7c7f654b5..7f4adeb2be8 100644 --- a/pkgs/applications/misc/viking/default.nix +++ b/pkgs/applications/misc/viking/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "09kq0sxs2czps0d6xzgkkp41746v44ip63m72qvfs7rsrnqj7qnz"; }; - buildInputs = [ makeWrapper pkgconfig intltool gettext gtk2 expat curl gpsd bc file gnome_doc_utils + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome_doc_utils libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite ]; diff --git a/pkgs/applications/misc/volnoti/default.nix b/pkgs/applications/misc/volnoti/default.nix index 836deb656a2..27b2a8f7134 100644 --- a/pkgs/applications/misc/volnoti/default.nix +++ b/pkgs/applications/misc/volnoti/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Lightweight volume notification for Linux"; - homepage = "https://github.com/davidbrazdil/volnoti"; + homepage = https://github.com/davidbrazdil/volnoti; license = licenses.gpl3; platforms = platforms.linux; maintainers = [ maintainers.gilligan ]; diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix index 8e1514583a2..e06242f7a02 100644 --- a/pkgs/applications/misc/vym/default.nix +++ b/pkgs/applications/misc/vym/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - buildInputs = [ pkgconfig qt4 qmake4Hook ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ qt4 qmake4Hook ]; meta = with stdenv.lib; { description = "A mind-mapping software"; diff --git a/pkgs/applications/misc/weather/default.nix b/pkgs/applications/misc/weather/default.nix index a184d31233c..90fa0166154 100644 --- a/pkgs/applications/misc/weather/default.nix +++ b/pkgs/applications/misc/weather/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://fungi.yuggoth.org/weather"; + homepage = http://fungi.yuggoth.org/weather; description = "Quick access to current weather conditions and forecasts"; license = stdenv.lib.licenses.isc; maintainers = [ stdenv.lib.maintainers.matthiasbeyer ]; diff --git a/pkgs/applications/misc/wikicurses/default.nix b/pkgs/applications/misc/wikicurses/default.nix index 2b11ccf5837..84f7d4fd291 100644 --- a/pkgs/applications/misc/wikicurses/default.nix +++ b/pkgs/applications/misc/wikicurses/default.nix @@ -23,7 +23,7 @@ pythonPackages.buildPythonApplication rec { meta = { description = "A simple curses interface for MediaWiki sites such as Wikipedia"; - homepage = "https://github.com/ids1024/wikicurses/"; + homepage = https://github.com/ids1024/wikicurses/; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/with-shell/default.nix b/pkgs/applications/misc/with-shell/default.nix index d3b5541ac4d..6a5f7c17b20 100644 --- a/pkgs/applications/misc/with-shell/default.nix +++ b/pkgs/applications/misc/with-shell/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { cp with $out/bin/with ''; meta = { - homepage = "https://github.com/mchav/With"; + homepage = https://github.com/mchav/With; description = "Command prefixing for continuous workflow using a single tool"; license = stdenv.lib.licenses.asl20; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/wmname/default.nix b/pkgs/applications/misc/wmname/default.nix index 0861391294b..dfd3c487713 100644 --- a/pkgs/applications/misc/wmname/default.nix +++ b/pkgs/applications/misc/wmname/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { description = "Prints or set the window manager name property of the root window"; - homepage = "http://tools.suckless.org/wmname"; + homepage = http://tools.suckless.org/wmname; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.unix; }; diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix index 2f98bc66e9b..b93295850bc 100644 --- a/pkgs/applications/misc/wordnet/default.nix +++ b/pkgs/applications/misc/wordnet/default.nix @@ -1,7 +1,7 @@ {stdenv, fetchurl, tcl, tk, xlibsWrapper, makeWrapper}: -let version = "3.0"; in -stdenv.mkDerivation { +stdenv.mkDerivation rec { + version = "3.0"; name = "wordnet-${version}"; src = fetchurl { url = "http://wordnetcode.princeton.edu/${version}/WordNet-${version}.tar.bz2"; @@ -42,6 +42,6 @@ stdenv.mkDerivation { homepage = http://wordnet.princeton.edu/; maintainers = [ ]; - platforms = stdenv.lib.platforms.gnu; # arbitrary choice + platforms = with stdenv.lib.platforms; linux ++ darwin; }; } diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix index 00e42fdbba9..0d38f1b93e7 100644 --- a/pkgs/applications/misc/worker/default.nix +++ b/pkgs/applications/misc/worker/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A two-pane file manager with advanced file manipulation features"; - homepage = "http://www.boomerangsworld.de/cms/worker/index.html"; + homepage = http://www.boomerangsworld.de/cms/worker/index.html; license = licenses.gpl2; maintainers = [ maintainers.ndowens ]; }; diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix index 9b27e8fc794..c677f7371fc 100644 --- a/pkgs/applications/misc/xastir/default.nix +++ b/pkgs/applications/misc/xastir/default.nix @@ -4,11 +4,9 @@ , perl, proj, rastermagick, shapelib }: -let +stdenv.mkDerivation rec { + name = "xastir-${version}"; version = "208"; -in -stdenv.mkDerivation { - name = "xastir-"+version; src = fetchFromGitHub { owner = "Xastir"; @@ -17,15 +15,16 @@ stdenv.mkDerivation { sha256 = "1mm22vn3hws7dmg9wpaj4s0zkzb77i3aqa2ay3q6kqjkdhv25brl"; }; - buildInputs = - [ autoreconfHook - curl db gdal libgeotiff - libXpm libXt motif pcre - perl proj rastermagick shapelib - ]; + buildInputs = [ + autoreconfHook + curl db gdal libgeotiff + libXpm libXt motif pcre + perl proj rastermagick shapelib + ]; - configureFlags = - [ "--with-motif-includes=${motif}/include" ]; + configureFlags = [ "--with-motif-includes=${motif}/include" ]; + + postPatch = "patchShebangs ."; meta = with stdenv.lib; { description = "Graphical APRS client"; diff --git a/pkgs/applications/misc/xautoclick/default.nix b/pkgs/applications/misc/xautoclick/default.nix index 32daf108c1c..bb18da4d4ad 100644 --- a/pkgs/applications/misc/xautoclick/default.nix +++ b/pkgs/applications/misc/xautoclick/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { url = "mirror://sourceforge/project/xautoclick/xautoclick/xautoclick-0.31/xautoclick-0.31.tar.gz"; sha256 = "0h522f12a7v2b89411xm51iwixmjp2mp90rnizjgiakx9ajnmqnm"; }; - buildInputs = [ xorg.libX11 xorg.libXtst xorg.xinput xorg.libXi xorg.libXext pkgconfig ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ xorg.libX11 xorg.libXtst xorg.xinput xorg.libXi xorg.libXext ] ++ stdenv.lib.optionals gtkSupport [ gtk2 ] ++ stdenv.lib.optionals qtSupport [ qt4 ]; patchPhase = '' diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix index 60af439e94b..2d2c2e2bff2 100644 --- a/pkgs/applications/misc/xca/default.nix +++ b/pkgs/applications/misc/xca/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchurl, pkgconfig, which, makeQtWrapper, - libtool, openssl, qtbase, qttools }: +{ mkDerivation, lib, fetchurl, pkgconfig, which +, libtool, openssl, qtbase, qttools }: -with stdenv.lib; +with lib; -stdenv.mkDerivation rec { +mkDerivation rec { name = "xca-${version}"; version = "1.3.2"; @@ -12,31 +12,20 @@ stdenv.mkDerivation rec { sha256 = "1r2w9gpahjv221j963bd4vn0gj4cxmb9j42f3cd9qdn890hizw84"; }; - enableParallelBuilding = false; + enableParallelBuilding = true; buildInputs = [ libtool openssl qtbase qttools ]; - nativeBuildInputs = [ makeQtWrapper pkgconfig which ]; + nativeBuildInputs = [ pkgconfig which ]; configureFlags = [ "CXXFLAGS=-std=c++11" ]; - preBuild = '' - substituteInPlace Local.mak \ - --replace ${qtbase}/bin/moc ${qtbase.dev}/bin/moc \ - --replace ${qtbase}/bin/uic ${qtbase.dev}/bin/uic - ''; - - postInstall = '' - wrapQtProgram "$out/bin/xca" - wrapQtProgram "$out/bin/xca_db_stat" - ''; - - meta = with stdenv.lib; { + meta = with lib; { description = "Interface for managing asymetric keys like RSA or DSA"; homepage = http://xca.sourceforge.net/; platforms = platforms.all; license = licenses.bsd3; maintainers = with maintainers; [ offline peterhoeg ]; - broken = builtins.compareVersions qtbase.version "5.7.0" >= 0; + broken = builtins.compareVersions qtbase.version "5.7.0" == 0; }; } diff --git a/pkgs/applications/misc/xfe/default.nix b/pkgs/applications/misc/xfe/default.nix index b372cd5b2dd..bf1fdbb9a8a 100644 --- a/pkgs/applications/misc/xfe/default.nix +++ b/pkgs/applications/misc/xfe/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1g9a0bpny2m7ixgxpqjh0wvh2x6d0lpj6682zn5dfqwan4j2xfsd"; }; - buildInputs = [ fox pkgconfig gettext xlibsWrapper gcc intltool file libpng ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ fox gettext xlibsWrapper gcc intltool file libpng ]; preConfigure = '' sed -i s,/usr/share/xfe,$out/share/xfe, src/xfedefs.h @@ -23,7 +24,7 @@ stdenv.mkDerivation rec { It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov. Xfe aims to be the filemanager of choice for all the Unix addicts! ''; - homepage = "http://sourceforge.net/projects/xfe/"; + homepage = http://sourceforge.net/projects/xfe/; license = stdenv.lib.licenses.gpl2; maintainers = []; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix index 15d054c2be2..7d22a160574 100644 --- a/pkgs/applications/misc/xfontsel/default.nix +++ b/pkgs/applications/misc/xfontsel/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "1grir464hy52a71r3mpm9mzvkf7nwr3vk0b1vc27pd3gp588a38p"; }; - buildInputs = [libX11 makeWrapper pkgconfig libXaw]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [libX11 makeWrapper libXaw]; # Without this, it gets Xmu as a dependency, but without rpath entry NIX_LDFLAGS = "-lXmu"; diff --git a/pkgs/applications/misc/xiphos/default.nix b/pkgs/applications/misc/xiphos/default.nix index a9f786a2a08..54d61a047a7 100644 --- a/pkgs/applications/misc/xiphos/default.nix +++ b/pkgs/applications/misc/xiphos/default.nix @@ -1,27 +1,30 @@ -{stdenv, fetchurl, pkgconfig +{stdenv, fetchFromGitHub, pkgconfig , python , intltool , docbook2x, docbook_xml_dtd_412, libxslt , sword, clucene_core, biblesync , gnome_doc_utils , libgsf, gconf -, gtkhtml, libgtkhtml, libglade, scrollkeeper +, gtkhtml, libglade, scrollkeeper , webkitgtk -, dbus_glib, enchant, isocodes, libuuid +, dbus_glib, enchant, isocodes, libuuid, icu }: stdenv.mkDerivation rec { name = "xiphos-${version}"; - version = "4.0.3-20150806"; + version = "4.0.6"; - src = fetchurl { - url = "mirror://sourceforge/project/gnomesword/Xiphos/4.0.3/${name}.tar.gz"; - sha256 = "1xkvhpasdlda2rp0874znz158z4rjh1hpynwy13d96kjxq4npiqv"; + src = fetchFromGitHub { + owner = "crosswire"; + repo = "xiphos"; + rev = "${version}"; + sha256 = "02xyy6rxxxaqbjbhdp813f0vp1jpfzqscjdbdc0qcd4yvi3baj5f"; }; - buildInputs = [ pkgconfig python intltool docbook2x docbook_xml_dtd_412 libxslt - sword clucene_core biblesync gnome_doc_utils libgsf gconf gtkhtml libgtkhtml - libglade scrollkeeper webkitgtk dbus_glib enchant isocodes libuuid ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ python intltool docbook2x docbook_xml_dtd_412 libxslt + sword clucene_core biblesync gnome_doc_utils libgsf gconf gtkhtml + libglade scrollkeeper webkitgtk dbus_glib enchant isocodes libuuid icu ]; prePatch = '' patchShebangs .; @@ -33,7 +36,7 @@ stdenv.mkDerivation rec { ''; configurePhase = '' - python waf configure --prefix=$out + python waf configure --prefix=$out --enable-webkit2 ''; buildPhase = '' diff --git a/pkgs/applications/misc/xpad/default.nix b/pkgs/applications/misc/xpad/default.nix new file mode 100644 index 00000000000..01df5d32ab1 --- /dev/null +++ b/pkgs/applications/misc/xpad/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl +, autoreconfHook, pkgconfig, wrapGAppsHook +, glib, intltool, gtk3, gtksourceview }: + +stdenv.mkDerivation rec { + name = "xpad-${version}"; + version = "5.0.0"; + + src = fetchurl { + url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2"; + sha256 = "02yikxg6z9bwla09ka001ppjlpbv5kbza3za9asazm5aiz376mkb"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ]; + + buildInputs = [ glib intltool gtk3 gtksourceview ]; + + autoreconfPhase = '' + ./autogen.sh + ''; + + meta = with stdenv.lib; { + description = "A sticky note application for jotting down things to remember"; + homepage = https://launchpad.net/xpad; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ michalrus ]; + }; +} diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix index 739f1f0a975..ef031c4b9f4 100644 --- a/pkgs/applications/misc/xpdf/default.nix +++ b/pkgs/applications/misc/xpdf/default.nix @@ -1,24 +1,28 @@ { enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false -, stdenv, fetchurl, zlib, libpng, xlibsWrapper ? null, motif ? null, freetype ? null, t1lib ? null -, base14Fonts ? null +, stdenv, fetchurl, zlib, libpng, freetype ? null, t1lib ? null +, cmake, qtbase ? null }: -assert enableGUI -> xlibsWrapper != null && motif != null && freetype != null; +assert enableGUI -> qtbase != null && freetype != null; assert enablePDFtoPPM -> freetype != null; assert useT1Lib -> t1lib != null; assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities stdenv.mkDerivation { - name = "xpdf-3.04"; + name = "xpdf-4.00"; - src = fetchurl { - url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.04.tar.gz; - sha256 = "1rbp54mr3z2x3a3a1qmz8byzygzi223vckfam9ib5g1sfds0qf8i"; + src = fetchurl { + url = http://www.xpdfreader.com/dl/xpdf-4.00.tar.gz; + sha256 = "1mhn89738vjva14xr5gblc2zrdgzmpqbbjdflqdmpqv647294ggz"; }; + nativeBuildInputs = [ cmake ]; + + cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON"]; + buildInputs = [ zlib libpng ] ++ - stdenv.lib.optionals enableGUI [xlibsWrapper motif] ++ + stdenv.lib.optional enableGUI qtbase ++ stdenv.lib.optional useT1Lib t1lib ++ stdenv.lib.optional enablePDFtoPPM freetype; @@ -27,16 +31,8 @@ stdenv.mkDerivation { hardeningDisable = [ "format" ]; - configureFlags = "--enable-a4-paper"; - - postInstall = stdenv.lib.optionalString (base14Fonts != null) '' - substituteInPlace $out/etc/xpdfrc \ - --replace /usr/local/share/ghostscript/fonts ${base14Fonts} \ - --replace '#fontFile' fontFile - ''; - meta = { - homepage = "http://www.foolabs.com/xpdf/"; + homepage = http://www.foolabs.com/xpdf/; description = "Viewer for Portable Document Format (PDF) files"; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/applications/misc/xrq/default.nix b/pkgs/applications/misc/xrq/default.nix index c0c5616db79..fe65004b32a 100644 --- a/pkgs/applications/misc/xrq/default.nix +++ b/pkgs/applications/misc/xrq/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { make PREFIX=$out install ''; - outputs = [ "out" "doc" ]; + outputs = [ "out" "man" ]; buildInputs = [ libX11 ]; diff --git a/pkgs/applications/misc/xsw/default.nix b/pkgs/applications/misc/xsw/default.nix index b3a57e1cef2..3e8acff00f8 100644 --- a/pkgs/applications/misc/xsw/default.nix +++ b/pkgs/applications/misc/xsw/default.nix @@ -14,9 +14,9 @@ in stdenv.mkDerivation rec { sha256 = "092vp61ngd2vscsvyisi7dv6qrk5m1i81gg19hyfl5qvjq5p0p8g"; }; - nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_gfx flex bison ]; + nativeBuildInputs = [ pkgconfig flex bison ]; - buildInputs = [ pkgconfig ]; + buildInputs = [ SDL SDL_image SDL_ttf SDL_gfx ]; NIX_CFLAGS_COMPILE = makeSDLFlags [ SDL SDL_image SDL_ttf SDL_gfx ]; diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix index d01dc120735..9e64557838e 100644 --- a/pkgs/applications/misc/xterm/default.nix +++ b/pkgs/applications/misc/xterm/default.nix @@ -3,11 +3,11 @@ }: stdenv.mkDerivation rec { - name = "xterm-327"; + name = "xterm-330"; src = fetchurl { - url = "ftp://invisible-island.net/xterm/${name}.tgz"; - sha256 = "02qmfr1y24y5vq6kddksw84b8gxalc96n9wwaj7i8hmk6mn2zyv6"; + url = "http://invisible-mirror.net/archives/xterm/${name}.tgz"; + sha256 = "1psnfmqd23v9gxj8a98nzrgvymrk0p1whwqi92gy15bbkzrgkvks"; }; buildInputs = @@ -49,6 +49,9 @@ stdenv.mkDerivation rec { for bin in $out/bin/*; do wrapProgram $bin --set XAPPLRESDIR $out/lib/X11/app-defaults/ done + + install -D -t $out/share/applications xterm.desktop + install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm ''; meta = { diff --git a/pkgs/applications/misc/xtermcontrol/default.nix b/pkgs/applications/misc/xtermcontrol/default.nix new file mode 100644 index 00000000000..eae5240129a --- /dev/null +++ b/pkgs/applications/misc/xtermcontrol/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + version = "3.3"; + name = "xtermcontrol-${version}"; + + src = fetchurl { + url = "http://thrysoee.dk/xtermcontrol/xtermcontrol-${version}.tar.gz"; + sha256 = "1v2c1cnx43apmspga7icssh5ndbhzy5h82y6vm8fda40flq9mxj5"; + }; + + meta = { + description = "Enables dynamic control of xterm properties"; + longDescription = '' + Enables dynamic control of xterm properties. + It makes it easy to change colors, title, font and geometry of a running xterm, as well as to report the current settings of these properties. + Window manipulations de-/iconify, raise/lower, maximize/restore and reset are also supported. + To complete the feature set; xtermcontrol lets advanced users issue any xterm control sequence of their choosing. + ''; + homepage = http://thrysoee.dk/xtermcontrol; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.unix; + maintainers = [ stdenv.lib.maintainers.derchris ]; + }; +} diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix index c4e7fb23b89..90e2723a906 100644 --- a/pkgs/applications/misc/xxkb/default.nix +++ b/pkgs/applications/misc/xxkb/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { meta = { description = "A keyboard layout indicator and switcher"; - homepage = "http://xxkb.sourceforge.net/"; + homepage = http://xxkb.sourceforge.net/; license = stdenv.lib.licenses.artistic2; maintainers = with stdenv.lib.maintainers; [ rasendubi ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/applications/misc/yakuake/default.nix b/pkgs/applications/misc/yakuake/default.nix index 0d9f3834c61..8db48a7b3e6 100644 --- a/pkgs/applications/misc/yakuake/default.nix +++ b/pkgs/applications/misc/yakuake/default.nix @@ -1,8 +1,8 @@ -{ kdeDerivation +{ mkDerivation , lib , fetchurl , kdoctools -, kdeWrapper +, wrapGAppsHook , extra-cmake-modules , karchive , kcrash @@ -15,18 +15,18 @@ , konsole , kparts , kwindowsystem +, qtx11extras }: let - unwrapped = let - pname = "yakuake"; - version = "3.0.2"; - in kdeDerivation rec { - name = "${pname}-${version}"; + pname = "yakuake"; + version = "3.0.3"; +in mkDerivation rec { + name = "${pname}-${version}"; src = fetchurl { url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz"; - sha256 = "0vcdji1k8d3pz7k6lkw8ighkj94zff2l2cf9v1avf83f4hjyfhg5"; + sha256 = "ef51aa3325916d352fde17870cf706397e41105103e4c9289cc4032a1b8609a7"; }; buildInputs = [ @@ -40,24 +40,31 @@ let knotifyconfig kparts kwindowsystem + qtx11extras ]; - nativeBuildInputs = [ - extra-cmake-modules kdoctools - ]; + propagatedBuildInputs = [ + karchive + kcrash + kdbusaddons + ki18n + kiconthemes + knewstuff + knotifications + knotifyconfig + kparts + kwindowsystem + ]; - meta = { - homepage = https://yakuake.kde.org; - description = "Quad-style terminal emulator for KDE"; - maintainers = with lib.maintainers; [ fridh ]; - }; + propagatedUserEnvPkgs = [ konsole ]; + + nativeBuildInputs = [ + extra-cmake-modules kdoctools wrapGAppsHook + ]; + + meta = { + homepage = https://yakuake.kde.org; + description = "Quad-style terminal emulator for KDE"; + maintainers = with lib.maintainers; [ fridh ]; }; - - -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/yakuake" ]; - paths = [ konsole.unwrapped ]; } diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix index dd3903cde27..bd891ff8493 100644 --- a/pkgs/applications/misc/yate/default.nix +++ b/pkgs/applications/misc/yate/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { }; # TODO zaptel ? postgres ? - buildInputs = [ qt4 openssl autoconf automake pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ qt4 openssl autoconf automake ]; # /dev/null is used when linking which is a impure path for the wrapper preConfigure = diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix index a646cd10b6d..8a460f89016 100644 --- a/pkgs/applications/misc/zathura/core/default.nix +++ b/pkgs/applications/misc/zathura/core/default.nix @@ -19,8 +19,9 @@ stdenv.mkDerivation rec { icon = ./icon.xpm; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig file gtk girara + file gtk girara gettext makeWrapper sqlite glib ] ++ optional synctexSupport texlive.bin.core; diff --git a/pkgs/applications/misc/zathura/djvu/default.nix b/pkgs/applications/misc/zathura/djvu/default.nix index 2e644453dcb..34508da0e37 100644 --- a/pkgs/applications/misc/zathura/djvu/default.nix +++ b/pkgs/applications/misc/zathura/djvu/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "03cw54d2fipvbrnbqy0xccqkx6s77dyhyymx479aj5ryy4513dq8"; }; - buildInputs = [ pkgconfig djvulibre gettext zathura_core gtk girara ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ djvulibre gettext zathura_core gtk girara ]; patches = [ ./gtkflags.patch ]; diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix index 23a654b4d51..c9472f35667 100644 --- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix +++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "06zqn8z6a0hfsx3s1kzqvqzb73afgcl6z5r062sxv7kv570fvffr"; }; - buildInputs = [ pkgconfig zathura_core gtk girara openssl mupdf libjpeg jbig2dec openjpeg ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ zathura_core gtk girara openssl mupdf libjpeg jbig2dec openjpeg ]; makeFlags = [ "PREFIX=$(out)" "PLUGINDIR=$(out)/lib" ]; diff --git a/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/pkgs/applications/misc/zathura/pdf-poppler/default.nix index 4912489d6b3..2dda88f409b 100644 --- a/pkgs/applications/misc/zathura/pdf-poppler/default.nix +++ b/pkgs/applications/misc/zathura/pdf-poppler/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1maqiv7yv8d8hymlffa688c5z71v85kbzmx2j88i8z349xx0rsyi"; }; - buildInputs = [ pkgconfig poppler zathura_core girara ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ poppler zathura_core girara ]; makeFlags = [ "PREFIX=$(out)" "PLUGINDIR=$(out)/lib" ]; diff --git a/pkgs/applications/misc/zathura/ps/default.nix b/pkgs/applications/misc/zathura/ps/default.nix index 89d8d5badb0..a415cde3c7e 100644 --- a/pkgs/applications/misc/zathura/ps/default.nix +++ b/pkgs/applications/misc/zathura/ps/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "18wsfy8pqficdgj8wy2aws7j4fy8z78157rhqk17mj5f295zgvm9"; }; - buildInputs = [ pkgconfig libspectre gettext zathura_core gtk girara ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libspectre gettext zathura_core gtk girara ]; patches = [ ./gtkflags.patch ]; diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 75f2dcda6a6..54fee5847e1 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -47,7 +47,7 @@ mkChromiumDerivation (base: rec { meta = { description = "An open source web browser from Google"; homepage = http://www.chromium.org/; - maintainers = with maintainers; [ chaoflow ]; + maintainers = with maintainers; [ chaoflow bendlas ]; license = licenses.bsd3; platforms = platforms.linux; hydraPlatforms = if channel == "stable" then ["x86_64-linux"] else []; diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index dac821a4898..42d606ae224 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,9 +1,9 @@ -{ stdenv, ninja, which +{ stdenv, ninja, which, nodejs, fetchurl, gnutar # default dependencies , bzip2, flac, speex, libopus , libevent, expat, libjpeg, snappy -, libpng, libxml2, libxslt, libcap +, libpng, libcap , xdg_utils, yasm, minizip, libwebp , libusb1, pciutils, nss, re2, zlib, libvpx @@ -14,6 +14,7 @@ , glib, gtk2, gtk3, dbus_glib , libXScrnSaver, libXcursor, libXtst, mesa , protobuf, speechd, libXdamage, cups +, ffmpeg, harfbuzz, harfbuzz-icu, libxslt, libxml2 # optional dependencies , libgcrypt ? null # gnomeSupport || cupsSupport @@ -36,6 +37,8 @@ buildFun: with stdenv.lib; +# see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html + let # The additional attributes for creating derivations based on the chromium # source tree. @@ -57,7 +60,13 @@ let in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs)); gnSystemLibraries = [ - "flac" "libwebp" "libxml" "libxslt" "snappy" "yasm" + "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng" "zlib" + # "libjpeg" # fails with multiple undefined references to chromium_jpeg_* + # "re2" # fails with linker errors + # "ffmpeg" # https://crbug.com/731766 + ] ++ optionals (versionRange "62" "63") [ + "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source ]; opusWithCustomModes = libopus.override { @@ -67,9 +76,13 @@ let defaultDependencies = [ bzip2 flac speex opusWithCustomModes libevent expat libjpeg snappy - libpng libxml2 libxslt libcap + libpng libcap xdg_utils yasm minizip libwebp libusb1 re2 zlib + ffmpeg libxslt libxml2 + ] ++ optionals (versionRange "62" "63") [ + harfbuzz-icu # in versions over 63 harfbuzz and freetype are being built together + # so we can't build with one from system and other from source ]; # build paths and release info @@ -78,6 +91,20 @@ let buildPath = "out/${buildType}"; libExecPath = "$out/libexec/${packageName}"; + freetype_source = fetchurl { + url = http://anduin.linuxfromscratch.org/BLFS/other/chromium-freetype.tar.xz; + sha256 = "1vhslc4xg0d6wzlsi99zpah2xzjziglccrxn55k7qna634wyxg77"; + }; + + versionRange = min-version: upto-version: + let inherit (upstream-info) version; + result = versionAtLeast version min-version && versionOlder version upto-version; + stable-version = (import ./upstream-info.nix).stable.version; + in if versionAtLeast stable-version upto-version + then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it." + result + else result; + base = rec { name = "${packageName}-${version}"; inherit (upstream-info) version; @@ -87,25 +114,40 @@ let nativeBuildInputs = [ ninja which python2Packages.python perl pkgconfig - python2Packages.ply python2Packages.jinja2 + python2Packages.ply python2Packages.jinja2 nodejs + gnutar ]; buildInputs = defaultDependencies ++ [ nspr nss systemd utillinux alsaLib bison gperf kerberos - glib gtk2 dbus_glib + glib gtk2 gtk3 dbus_glib libXScrnSaver libXcursor libXtst mesa pciutils protobuf speechd libXdamage ] ++ optional gnomeKeyringSupport libgnome_keyring3 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals cupsSupport [ libgcrypt cups ] - ++ optional pulseSupport libpulseaudio - ++ optional (versionAtLeast version "56.0.0.0") gtk3; + ++ optional pulseSupport libpulseaudio; patches = [ ./patches/nix_plugin_paths_52.patch - ] ++ optional (versionOlder version "57.0") ./patches/glibc-2.24.patch + # To enable ChromeCast, go to chrome://flags and set "Load Media Router Component Extension" to Enabled + # Fixes Chromecast: https://bugs.chromium.org/p/chromium/issues/detail?id=734325 + ./patches/fix_network_api_crash.patch + ] # As major versions are added, you can trawl the gentoo and arch repos at + # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/ + # https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium + # for updated patches and hints about build flags + ++ optionals (versionRange "62" "63") [ + ./patches/chromium-gn-bootstrap-r17.patch + ./patches/chromium-gcc5-r3.patch + ./patches/chromium-glibc2.26-r1.patch + ] + ++ optionals (versionAtLeast version "63") [ + ./patches/chromium-gcc5-r4.patch + ./patches/constexpr-fix.patch + ] ++ optional enableWideVine ./patches/widevine.patch; postPatch = '' @@ -129,10 +171,29 @@ let :l; n; bl }' gpu/config/gpu_control_list.cc + # Allow to put extensions into the system-path. + sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc + patchShebangs . - '' + optionalString (versionAtLeast version "52.0.0.0") '' - sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \ - third_party/pdfium/xfa/fxbarcode/utils.h + # use our own nodejs + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s $(which node) third_party/node/linux/node-linux-x64/bin/node + + # use patched freetype + # FIXME https://bugs.chromium.org/p/pdfium/issues/detail?id=733 + # FIXME http://savannah.nongnu.org/bugs/?51156 + tar -xJf ${freetype_source} + + # remove unused third-party + for lib in ${toString gnSystemLibraries}; do + find -type f -path "*third_party/$lib/*" \ + \! -path "*third_party/$lib/chromium/*" \ + \! -path "*third_party/$lib/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -path "*base/third_party/libevent/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done ''; gnFlags = mkGnFlags ({ @@ -150,9 +211,14 @@ let enable_hotwording = enableHotwording; enable_widevine = enableWideVine; use_cups = cupsSupport; - } // { + treat_warnings_as_errors = false; is_clang = false; + clang_use_chrome_plugins = false; + remove_webcore_debug_symbols = true; + use_gtk3 = true; + enable_swiftshader = false; + fieldtrial_testing_like_official_build = true; # Google API keys, see: # http://www.chromium.org/developers/how-tos/api-keys @@ -188,9 +254,14 @@ let ''; buildPhase = let + # Build paralelism: on Hydra the build was frequently running into memory + # exhaustion, and even other users might be running into similar issues. + # -j is halved to avoid memory problems, and -l is slightly increased + # so that the build gets slight preference before others + # (it will often be on "critical path" and at risk of timing out) buildCommand = target: '' ninja -C "${buildPath}" \ - -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ + -j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \ "${target}" '' + optionalString (target == "mksnapshot" || target == "chrome") '' paxmark m "${buildPath}/${target}" diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index cfc8951eef1..7aa02e2c574 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,4 +1,5 @@ { newScope, stdenv, makeWrapper, makeDesktopItem, ed +, glib, gtk3, gnome3, gsettings_desktop_schemas # package customization , channel ? "stable" @@ -62,10 +63,23 @@ let sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; -in stdenv.mkDerivation { - name = "chromium${suffix}-${chromium.browser.version}"; + version = chromium.browser.version; - buildInputs = [ makeWrapper ed ]; + inherit (stdenv.lib) versionAtLeast; + +in stdenv.mkDerivation { + name = "chromium${suffix}-${version}"; + inherit version; + + buildInputs = [ + makeWrapper ed + + # needed for GSETTINGS_SCHEMAS_PATH + gsettings_desktop_schemas glib gtk3 + + # needed for XDG_ICON_DIRS + gnome3.defaultIconTheme + ]; outputs = ["out" "sandbox"]; @@ -92,6 +106,8 @@ in stdenv.mkDerivation { # libredirect causes chromium to deadlock on startup export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')" + export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS + . w EOF @@ -107,7 +123,7 @@ in stdenv.mkDerivation { cp -v "${desktopItem}/share/applications/"* "$out/share/applications" ''; - inherit (chromium.browser) meta packageName version; + inherit (chromium.browser) meta packageName; passthru = { inherit (chromium) upstream-info browser; diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r3.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r3.patch new file mode 100644 index 00000000000..7605df6b145 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r3.patch @@ -0,0 +1,98 @@ +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include ++#include + #include + #include + +--- a/gpu/ipc/common/mailbox_struct_traits.h ++++ b/gpu/ipc/common/mailbox_struct_traits.h +@@ -15,7 +15,7 @@ namespace mojo { + template <> + struct StructTraits { + static base::span name(const gpu::Mailbox& mailbox) { +- return mailbox.name; ++ return base::make_span(mailbox.name); + } + static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out); + }; +--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h ++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h +@@ -134,7 +134,7 @@ struct StructTraits { + static base::span matrix(const cc::FilterOperation& operation) { + if (operation.type() != cc::FilterOperation::COLOR_MATRIX) + return base::span(); +- return operation.matrix(); ++ return base::make_span(operation.matrix()); + } + + static base::span shape( +--- a/services/viz/public/cpp/compositing/quads_struct_traits.h ++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h +@@ -284,7 +284,7 @@ + + static base::span vertex_opacity(const cc::DrawQuad& input) { + const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); +- return quad->vertex_opacity; ++ return base::make_span(quad->vertex_opacity); + } + + static bool y_flipped(const cc::DrawQuad& input) { +--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp ++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp +@@ -480,7 +480,7 @@ WebString AccessControlErrorString( + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r4.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r4.patch new file mode 100644 index 00000000000..cb978d58a06 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-gcc5-r4.patch @@ -0,0 +1,98 @@ +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include ++#include + #include + #include + +--- a/gpu/ipc/common/mailbox_struct_traits.h ++++ b/gpu/ipc/common/mailbox_struct_traits.h +@@ -15,7 +15,7 @@ namespace mojo { + template <> + struct StructTraits { + static base::span name(const gpu::Mailbox& mailbox) { +- return mailbox.name; ++ return base::make_span(mailbox.name); + } + static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out); + }; +--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h ++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h +@@ -134,7 +134,7 @@ struct StructTraits { + static base::span matrix(const cc::FilterOperation& operation) { + if (operation.type() != cc::FilterOperation::COLOR_MATRIX) + return base::span(); +- return operation.matrix(); ++ return base::make_span(operation.matrix()); + } + + static base::span shape( +--- a/services/viz/public/cpp/compositing/quads_struct_traits.h ++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h +@@ -303,7 +303,7 @@ struct StructTraits { + static base::span vertex_opacity(const viz::DrawQuad& input) { + const viz::TextureDrawQuad* quad = + viz::TextureDrawQuad::MaterialCast(&input); +- return quad->vertex_opacity; ++ return base::make_span(quad->vertex_opacity); + } + + static bool y_flipped(const viz::DrawQuad& input) { +--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp ++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp +@@ -480,7 +480,7 @@ WebString AccessControlErrorString( + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-glibc2.26-r1.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-glibc2.26-r1.patch new file mode 100644 index 00000000000..ec37a2816d5 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-glibc2.26-r1.patch @@ -0,0 +1,220 @@ +diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +index c80724d..052ce37 100644 +--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc ++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +@@ -36,19 +36,19 @@ namespace google_breakpad { + + // Minidump defines register structures which are different from the raw + // structures which we get from the kernel. These are platform specific +-// functions to juggle the ucontext and user structures into minidump format. ++// functions to juggle the ucontext_t and user structures into minidump format. + + #if defined(__i386__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_ESP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_EIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__x86_64) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RSP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__ARM_EABI__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + out->context_flags = MD_CONTEXT_ARM_FULL; + + out->iregs[0] = uc->uc_mcontext.arm_r0; +@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { + + #elif defined(__aarch64__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs) { + out->context_flags = MD_CONTEXT_ARM64_FULL; + +@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__mips__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + #if _MIPS_SIM == _ABI64 + out->context_flags = MD_CONTEXT_MIPS64_FULL; + #elif _MIPS_SIM == _ABIO32 +diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +index b6e77b4..2de80b7 100644 +--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h ++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +@@ -39,23 +39,23 @@ + + namespace google_breakpad { + +-// Wraps platform-dependent implementations of accessors to ucontext structs. ++// Wraps platform-dependent implementations of accessors to ucontext_t structs. + struct UContextReader { +- static uintptr_t GetStackPointer(const struct ucontext* uc); ++ static uintptr_t GetStackPointer(const ucontext_t* uc); + +- static uintptr_t GetInstructionPointer(const struct ucontext* uc); ++ static uintptr_t GetInstructionPointer(const ucontext_t* uc); + +- // Juggle a arch-specific ucontext into a minidump format ++ // Juggle a arch-specific ucontext_t into a minidump format + // out: the minidump structure + // info: the collection of register structures. + #if defined(__i386__) || defined(__x86_64) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp); + #elif defined(__aarch64__) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs); + #else +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc); ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); + #endif + }; + +diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc +index 586d84e..05936d2 100644 +--- a/breakpad/src/client/linux/handler/exception_handler.cc ++++ b/breakpad/src/client/linux/handler/exception_handler.cc +@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + // Fill in all the holes in the struct to make Valgrind happy. + memset(&g_crash_context_, 0, sizeof(g_crash_context_)); + memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); +- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); ++ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); + #if defined(__aarch64__) +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + struct fpsimd_context* fp_ptr = + (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; + if (fp_ptr->head.magic == FPSIMD_MAGIC) { +@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + } + #elif !defined(__ARM_EABI__) && !defined(__mips__) + // FP state is not part of user ABI on ARM Linux. +- // In case of MIPS Linux FP state is already part of struct ucontext ++ // In case of MIPS Linux FP state is already part of ucontext_t + // and 'float_state' is not a member of CrashContext. +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + if (uc_ptr->uc_mcontext.fpregs) { + memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, + sizeof(g_crash_context_.float_state)); +@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { + // ExceptionHandler::HandleSignal(). + siginfo.si_code = SI_USER; + siginfo.si_pid = getpid(); +- struct ucontext context; ++ ucontext_t context; + getcontext(&context); + return HandleSignal(sig, &siginfo, &context); + } +diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h +index daba57e..25598a2 100644 +--- a/breakpad/src/client/linux/handler/exception_handler.h ++++ b/breakpad/src/client/linux/handler/exception_handler.h +@@ -191,11 +191,11 @@ class ExceptionHandler { + struct CrashContext { + siginfo_t siginfo; + pid_t tid; // the crashing thread. +- struct ucontext context; ++ ucontext_t context; + #if !defined(__ARM_EABI__) && !defined(__mips__) + // #ifdef this out because FP state is not part of user ABI for Linux ARM. + // In case of MIPS Linux FP state is already part of struct +- // ucontext so 'float_state' is not required. ++ // ucontext_t so 'float_state' is not required. + fpstate_t float_state; + #endif + }; +diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc +index 3764eec..80ad5c4 100644 +--- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc ++++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc +@@ -593,7 +593,7 @@ class MicrodumpWriter { + + void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } + +- const struct ucontext* const ucontext_; ++ const ucontext_t* const ucontext_; + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; + #endif +diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc +index d11ba6e..c716143 100644 +--- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc ++++ b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc +@@ -1323,7 +1323,7 @@ class MinidumpWriter { + const int fd_; // File descriptor where the minidum should be written. + const char* path_; // Path to the file where the minidum should be written. + +- const struct ucontext* const ucontext_; // also from the signal handler ++ const ucontext_t* const ucontext_; // also from the signal handler + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; // ditto + #endif diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-gn-bootstrap-r17.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-gn-bootstrap-r17.patch new file mode 100644 index 00000000000..6cfd08d58c2 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-gn-bootstrap-r17.patch @@ -0,0 +1,68 @@ +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options): + + write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h', + { ++ 'ENABLE_LOCATION_SOURCE': 'false', + 'ENABLE_PROFILING': 'false', + 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false' + }) +@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options): + + write_gn_ninja(os.path.join(tempdir, 'build.ninja'), + root_gen_dir, options) +- cmd = ['ninja', '-C', tempdir] ++ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err'] + if options.verbose: + cmd.append('-v') + +@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/metrics/bucket_ranges.cc', + 'base/metrics/field_trial.cc', + 'base/metrics/field_trial_param_associator.cc', ++ 'base/metrics/field_trial_params.cc', + 'base/metrics/histogram.cc', + 'base/metrics/histogram_base.cc', + 'base/metrics/histogram_functions.cc', +@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/task_scheduler/scheduler_lock_impl.cc', + 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc', + 'base/task_scheduler/scheduler_worker.cc', ++ 'base/task_scheduler/scheduler_worker_pool.cc', + 'base/task_scheduler/scheduler_worker_pool_impl.cc', + 'base/task_scheduler/scheduler_worker_pool_params.cc', + 'base/task_scheduler/scheduler_worker_stack.cc', +@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/third_party/icu/icu_utf.cc', + 'base/third_party/nspr/prtime.cc', + 'base/threading/post_task_and_reply_impl.cc', ++ 'base/threading/scoped_blocking_call.cc', + 'base/threading/sequence_local_storage_map.cc', + 'base/threading/sequenced_task_runner_handle.cc', + 'base/threading/sequenced_worker_pool.cc', +@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/unguessable_token.cc', + 'base/value_iterators.cc', + 'base/values.cc', +- 'base/value_iterators.cc', + 'base/vlog.cc', + ]) + +@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options): + static_libraries['base']['sources'].extend([ + 'base/memory/shared_memory_handle_posix.cc', + 'base/memory/shared_memory_posix.cc', +- 'base/memory/shared_memory_tracker.cc', + 'base/nix/xdg_util.cc', + 'base/process/internal_linux.cc', + 'base/process/memory_linux.cc', +@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options): + cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args] + check_call(cmd) + +- cmd = ['ninja', '-C', build_dir] ++ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err'] + if options.verbose: + cmd.append('-v') + cmd.append('gn') diff --git a/pkgs/applications/networking/browsers/chromium/patches/constexpr-fix.patch b/pkgs/applications/networking/browsers/chromium/patches/constexpr-fix.patch new file mode 100644 index 00000000000..9f187752ea6 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/constexpr-fix.patch @@ -0,0 +1,98 @@ +From aab2cc3a20af9ebe9ddb8dfd15089f131f95817f Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Fri, 20 Oct 2017 14:06:42 +0200 +Subject: [PATCH] Fix the build of base/numerics with GCC + +Initialize the uninitialized variables where the build is failing. + +BUG=776705 + +Change-Id: I5782e18086a752b3676f8738930bf0553f3f97ad +--- + base/numerics/checked_math_impl.h | 6 +++--- + base/numerics/clamped_math_impl.h | 10 +++++----- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/base/numerics/checked_math_impl.h b/base/numerics/checked_math_impl.h +index 2926b37b5e..e083389ebf 100644 +--- a/base/numerics/checked_math_impl.h ++++ b/base/numerics/checked_math_impl.h +@@ -67,7 +67,7 @@ struct CheckedAddOp::value) { + presult = static_cast(x) + static_cast(y); +@@ -127,7 +127,7 @@ struct CheckedSubOp::value) { + presult = static_cast(x) - static_cast(y); +@@ -183,7 +183,7 @@ struct CheckedMulOp::is_supported) { + // The fast op may be available with the promoted type. +diff --git a/base/numerics/clamped_math_impl.h b/base/numerics/clamped_math_impl.h +index 7b5e4346f2..303a7e945a 100644 +--- a/base/numerics/clamped_math_impl.h ++++ b/base/numerics/clamped_math_impl.h +@@ -87,7 +87,7 @@ struct ClampedAddOp(IsValueNegative(y)); +- V result; ++ V result = {}; + return BASE_NUMERICS_LIKELY((CheckedAddOp::Do(x, y, &result))) + ? result + : saturated; +@@ -114,7 +114,7 @@ struct ClampedSubOp(!IsValueNegative(y)); +- V result; ++ V result = {}; + return BASE_NUMERICS_LIKELY((CheckedSubOp::Do(x, y, &result))) + ? result + : saturated; +@@ -136,7 +136,7 @@ struct ClampedMulOp::is_supported) + return ClampedMulFastOp::template Do(x, y); + +- V result; ++ V result = {}; + const V saturated = + CommonMaxOrMin(IsValueNegative(x) ^ IsValueNegative(y)); + return BASE_NUMERICS_LIKELY((CheckedMulOp::Do(x, y, &result))) +@@ -156,7 +156,7 @@ struct ClampedDivOp::type; + template + static constexpr V Do(T x, U y) { +- V result; ++ V result = {}; + if (BASE_NUMERICS_LIKELY((CheckedDivOp::Do(x, y, &result)))) + return result; + // Saturation goes to max, min, or NaN (if x is zero). +@@ -176,7 +176,7 @@ struct ClampedModOp::type; + template + static constexpr V Do(T x, U y) { +- V result; ++ V result = {}; + return BASE_NUMERICS_LIKELY((CheckedModOp::Do(x, y, &result))) + ? result + : x; +-- +2.14.2 + diff --git a/pkgs/applications/networking/browsers/chromium/patches/fix_network_api_crash.patch b/pkgs/applications/networking/browsers/chromium/patches/fix_network_api_crash.patch new file mode 100644 index 00000000000..093598465c4 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/fix_network_api_crash.patch @@ -0,0 +1,77 @@ +Index: extensions/browser/api/networking_private/networking_private_linux.cc +=================================================================== +--- a/extensions/browser/api/networking_private/networking_private_linux.cc.orig 2016-05-05 03:01:50.000000000 +0200 ++++ b/extensions/browser/api/networking_private/networking_private_linux.cc 2016-05-10 16:16:42.431052917 +0200 +@@ -215,12 +215,14 @@ void NetworkingPrivateLinux::GetState( + std::unique_ptr network_properties( + new base::DictionaryValue); + ++ std::string* erp = error.get(); ++ base::DictionaryValue* npp = network_properties.get(); + // Runs GetCachedNetworkProperties on |dbus_thread|. + dbus_thread_.task_runner()->PostTaskAndReply( + FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetCachedNetworkProperties, + base::Unretained(this), guid, +- base::Unretained(network_properties.get()), +- base::Unretained(error.get())), ++ base::Unretained(npp), ++ base::Unretained(erp)), + base::Bind(&GetCachedNetworkPropertiesCallback, base::Passed(&error), + base::Passed(&network_properties), success_callback, + failure_callback)); +@@ -301,11 +303,12 @@ void NetworkingPrivateLinux::GetNetworks + + // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the + // results back to OnAccessPointsFound where the callback is fired. ++ NetworkMap* nmp = network_map.get(); + dbus_thread_.task_runner()->PostTaskAndReply( + FROM_HERE, + base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints, + base::Unretained(this), configured_only, visible_only, limit, +- base::Unretained(network_map.get())), ++ base::Unretained(nmp)), + base::Bind(&NetworkingPrivateLinux::OnAccessPointsFound, + base::Unretained(this), base::Passed(&network_map), + success_callback, failure_callback)); +@@ -321,11 +324,12 @@ bool NetworkingPrivateLinux::GetNetworks + // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the + // results back to SendNetworkListChangedEvent to fire the event. No + // callbacks are used in this case. ++ NetworkMap* nmp = network_map.get(); + dbus_thread_.task_runner()->PostTaskAndReply( + FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints, + base::Unretained(this), false /* configured_only */, + false /* visible_only */, 0 /* limit */, +- base::Unretained(network_map.get())), ++ base::Unretained(nmp)), + base::Bind(&NetworkingPrivateLinux::OnAccessPointsFoundViaScan, + base::Unretained(this), base::Passed(&network_map))); + +@@ -506,11 +510,12 @@ void NetworkingPrivateLinux::StartConnec + + std::unique_ptr error(new std::string); + ++ std::string* erp = error.get(); + // Runs ConnectToNetwork on |dbus_thread|. + dbus_thread_.task_runner()->PostTaskAndReply( + FROM_HERE, + base::Bind(&NetworkingPrivateLinux::ConnectToNetwork, +- base::Unretained(this), guid, base::Unretained(error.get())), ++ base::Unretained(this), guid, base::Unretained(erp)), + base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error), + success_callback, failure_callback)); + } +@@ -524,11 +529,12 @@ void NetworkingPrivateLinux::StartDiscon + + std::unique_ptr error(new std::string); + ++ std::string* erp = error.get(); + // Runs DisconnectFromNetwork on |dbus_thread|. + dbus_thread_.task_runner()->PostTaskAndReply( + FROM_HERE, + base::Bind(&NetworkingPrivateLinux::DisconnectFromNetwork, +- base::Unretained(this), guid, base::Unretained(error.get())), ++ base::Unretained(this), guid, base::Unretained(erp)), + base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error), + success_callback, failure_callback)); + } diff --git a/pkgs/applications/networking/browsers/chromium/patches/glibc-2.24.patch b/pkgs/applications/networking/browsers/chromium/patches/glibc-2.24.patch deleted file mode 100644 index 10a04b7ec8d..00000000000 --- a/pkgs/applications/networking/browsers/chromium/patches/glibc-2.24.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- old/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-03 21:02:37.000000000 +0200 -+++ new/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-14 10:59:51.395354850 +0200 -@@ -41,6 +41,11 @@ - #include - #include - -+#if OS(LINUX) && defined(MADV_FREE) -+// Added in Linux 4.5, but we don't want to depend on 4.5 at runtime -+#undef MADV_FREE -+#endif -+ - #ifndef MADV_FREE - #define MADV_FREE MADV_DONTNEED - #endif diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index 581a45da3d8..639425477c9 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -94,12 +94,12 @@ let flash = stdenv.mkDerivation rec { name = "flashplayer-ppapi-${version}"; - version = "25.0.0.148"; + version = "27.0.0.183"; src = fetchzip { url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/" + "${version}/flash_player_ppapi_linux.x86_64.tar.gz"; - sha256 = "1888n0mbzhbvi95kq19fzw310p7nr9h3g5d3nyzq5fnvj0lcfxsf"; + sha256 = "012fhsjfp71vaarjhi3dd4qpb41n4510zmid38hl2hsjz7qrj5aj"; stripRoot = false; }; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index 2800a3ed5d2..0cf6df0e5cc 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "1q9iqmq5amzfw03jiw18g1w285b6x2qckn8gc60r5m3xx1hbivv2"; - sha256bin64 = "1ddhhcydcwwc2pkwm4c8rlr60968zy5vda410g4bwx0v5q7p22q9"; - version = "58.0.3029.68"; + sha256 = "1ljpr7xkbg6hznpq9kph5xvrc6dwnp7y9ydirjawqvyhcmy6b8zj"; + sha256bin64 = "1ca9p82k7a9h416vwldzy84ww5psv3kbvh5xdys3j3cwaxxa0b4q"; + version = "63.0.3239.18"; }; dev = { - sha256 = "0zvnj9n2p057fxx7n4d1qc0nw34qhlsvrx20fwigq96blamckvd8"; - sha256bin64 = "1s1r3h7x49bp64lzzphm4jcg7g68l0x7mr3airj3hqii58dvndm0"; - version = "59.0.3067.0"; + sha256 = "1ljpr7xkbg6hznpq9kph5xvrc6dwnp7y9ydirjawqvyhcmy6b8zj"; + sha256bin64 = "1hq3qz7b5nmnck5sfbaa8d25khv88ylnq10dhbp76ahz4ixn9f7k"; + version = "63.0.3239.18"; }; stable = { - sha256 = "1xwchazqqx0cs9rd15r80kw6p918zp9libx34qlcj8p5lxq1f0bh"; - sha256bin64 = "0ggn5rljch36sx0i37qzp6ldcy3ibdj0z9217lqzjq3r7ixsfqja"; - version = "57.0.2987.133"; + sha256 = "0k4hvmhaspw3f2scjjcam9dwnkrrzzibnx9sq5b1p56bgd2zxka9"; + sha256bin64 = "0c4g2h1kcpksx0whf784hs7w62xbgsvq42fvzs0lfjgs11s8fm0x"; + version = "62.0.3202.75"; }; } diff --git a/pkgs/applications/networking/browsers/dillo/default.nix b/pkgs/applications/networking/browsers/dillo/default.nix index a54e5e0c370..b056bdedb41 100644 --- a/pkgs/applications/networking/browsers/dillo/default.nix +++ b/pkgs/applications/networking/browsers/dillo/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { configureFlags = "--enable-ssl"; meta = with stdenv.lib; { - homepage = http://www.dillo.org/; + homepage = https://www.dillo.org/; description = "A fast graphical web browser with a small footprint"; longDescription = '' Dillo is a small, fast web browser, tailored for older machines. diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix index 60935b9605f..137b463a1e1 100644 --- a/pkgs/applications/networking/browsers/dwb/default.nix +++ b/pkgs/applications/networking/browsers/dwb/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkitgtk2, gtk2, gnutls +{ stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkitgtk24x-gtk2, gtk2, gnutls , json_c, m4, glib_networking, gsettings_desktop_schemas, dconf }: stdenv.mkDerivation { @@ -10,15 +10,16 @@ stdenv.mkDerivation { sha256 = "1wg7pslcx7z4fw595a3nbnygxy2bwfj0h377i48mxhddvl3wzzbq"; }; - buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup - webkitgtk2 gtk2 gnutls json_c m4 ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper gsettings_desktop_schemas libsoup + webkitgtk24x-gtk2 gtk2 gnutls json_c m4 ]; # There are Xlib and gtk warnings therefore I have set Wno-error makeFlags = ''PREFIX=$(out) GTK=2 CPPFLAGS="-Wno-error"''; preFixup='' wrapProgram "$out/bin/dwb" \ - --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules:${dconf}/lib/gio/modules" \ + --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules:${stdenv.lib.getLib dconf}/lib/gio/modules" \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share" wrapProgram "$out/bin/dwbem" \ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix index cc34318edf3..b60454c4a42 100644 --- a/pkgs/applications/networking/browsers/elinks/default.nix +++ b/pkgs/applications/networking/browsers/elinks/default.nix @@ -1,7 +1,10 @@ -{ stdenv, fetchurl, perl, ncurses, xlibsWrapper, bzip2, zlib, openssl -, spidermonkey_1_8_5, gpm -, enableGuile ? false, guile ? null # Incompatible licenses, LGPLv3 - GPLv2 -, enablePython ? false, python ? null +{ stdenv, fetchurl, ncurses, xlibsWrapper, bzip2, zlib, openssl +, gpm +, # Incompatible licenses, LGPLv3 - GPLv2 + enableGuile ? false, guile ? null +, enablePython ? false, python ? null +, enablePerl ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null +, enableSpidermonkey ? (stdenv.hostPlatform == stdenv.buildPlatform), spidermonkey_1_8_5 ? null }: assert enableGuile -> guile != null; @@ -17,28 +20,26 @@ stdenv.mkDerivation rec { patches = [ ./gc-init.patch ]; - buildInputs = [ perl ncurses xlibsWrapper bzip2 zlib openssl spidermonkey_1_8_5 gpm ] + buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey_1_8_5 gpm ] ++ stdenv.lib.optional enableGuile guile - ++ stdenv.lib.optional enablePython python; + ++ stdenv.lib.optional enablePython python + ++ stdenv.lib.optional enablePerl perl + ; - configureFlags = - '' - --enable-finger --enable-html-highlight - --with-perl --enable-gopher --enable-cgi --enable-bittorrent - --with-spidermonkey=${spidermonkey_1_8_5} - --enable-nntp --with-openssl=${openssl.dev} - '' + stdenv.lib.optionalString enableGuile " --with-guile" - + stdenv.lib.optionalString enablePython " --with-python"; - - crossAttrs = { - propagatedBuildInputs = [ ncurses.crossDrv zlib.crossDrv openssl.crossDrv ]; - configureFlags = '' - --enable-finger --enable-html-highlight - --enable-gopher --enable-cgi --enable-bittorrent --enable-nntp - --with-openssl=${openssl.crossDrv} - --with-bzip2=${bzip2.crossDrv} - ''; - }; + configureFlags = [ + "--enable-finger" + "--enable-html-highlight" + "--enable-gopher" + "--enable-cgi" + "--enable-bittorrent" + "--enable-nntp" + "--with-openssl=${openssl.dev}" + "--with-bzip2=${bzip2.dev}" + ] ++ stdenv.lib.optional enableGuile "--with-guile" + ++ stdenv.lib.optional enablePython "--with-python" + ++ stdenv.lib.optional enablePerl "--with-perl" + ++ stdenv.lib.optional enableSpidermonkey "--with-spidermonkey=${spidermonkey_1_8_5}" + ; meta = { description = "Full-featured text-mode web browser"; diff --git a/pkgs/applications/networking/browsers/falkon/default.nix b/pkgs/applications/networking/browsers/falkon/default.nix new file mode 100644 index 00000000000..9356794bb5d --- /dev/null +++ b/pkgs/applications/networking/browsers/falkon/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig, qmake +, libpthreadstubs, libxcb, libXdmcp, qtsvg, qttools, qtwebengine, qtx11extras, kwallet, openssl }: + +stdenv.mkDerivation rec { + # Last qupvilla release is 2.1.2 so we add the .1 although it isn't actually a + # release but it is basically 2.1.2 with the falkon name + name = "falkon-${version}.1"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "KDE"; + repo = "falkon"; + rev = "eecaf2e9d6b572a7f7d2e6dc324e3d79b61c31db"; + sha256 = "01r5aw10jd0qz7xvad0cqzjbnsj7vwblh54wbq4x1m6xbkp6xcgy"; + }; + + preConfigure = '' + export NONBLOCK_JS_DIALOGS=true + export KDE_INTEGRATION=true + export GNOME_INTEGRATION=false + export FALKON_PREFIX=$out + ''; + + dontUseCmakeConfigure = true; + + buildInputs = [ + libpthreadstubs libxcb libXdmcp + kwallet + qtsvg qtwebengine qtx11extras + ]; + + nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qmake qttools ]; + + # on 2.1.2: RCC: Error in 'autoscroll.qrc': Cannot find file 'locale/ar_SA.qm' + enableParallelBuilding = false; + + meta = with stdenv.lib; { + description = "QtWebEngine based cross-platform web browser"; + homepage = https://community.kde.org/Incubator/Projects/Falkon; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + broken = true; + }; +} diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix index fec1665f8b7..23316dc3aeb 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -1,925 +1,955 @@ { - version = "51.0b8"; + version = "57.0b13"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ach/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ach/firefox-57.0b13.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha512 = "c251fe3e50d7bb85a46e86afb9d041b161061e6718cbfe6114172a098f35eedaa2f221a3f7bcdb2ebe210a5ebb5cc33fb50b1dd04da5256cb32646678d722b28"; + sha512 = "051daa6d23e8d9559135f89a871372ae69ebb46c143265f72d85a55c5edbdc927fd2be25869815cce3ecb4bc5a4245f6bd3cfec2317e727c632437f377552793"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/af/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/af/firefox-57.0b13.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha512 = "ff8af74fdf27e72169193a81e62b99ce831bc466e50ef2d843dda03894fe3cc764ba69021c839ee09ab48b7b3a6140f1ed01c045efb01f75342bcbc333158a49"; + sha512 = "b9b936333fc86f3ebf34dfc05d5277a6a2552b427fa26a1e29c9fed93fbcd76c533c3543b3356ac61da808eb5154d83d40888c19a37003dce88c4da64fdec7f6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/an/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/an/firefox-57.0b13.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha512 = "20b5965b70cc773eb2226608fef18efdc24fe22f2feea43f39fe9d09afcb89db15caa8149a908bbca3f26e8d6b4f3651d164fb97f2dd2ee67e33b8e43635871e"; + sha512 = "ed028a38d5360890f57617f8e0d9e02c578f7e786e78de8f2b8a3b96d0915d3369dc398da71d387761f56f6371d3047c63f0d39131e7dc7cdaa9cd6c8dd22abc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ar/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ar/firefox-57.0b13.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha512 = "b1816f401757634f618e1d9929c2a341adfdfad42bcefa8673c7d8c511c46267054352558f3a83d399c68e7f80faa1c2cea519ac24618479828c37b4067f8e78"; + sha512 = "ede95e488ee234430c3694a14c75ab116a29b91d9a1ec4b0676f687ce5a175122758815dbec69e2aaab0ab8ac91181fd4e0fdac545dddc0b1e3b4e7c81ccb648"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/as/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/as/firefox-57.0b13.tar.bz2"; locale = "as"; arch = "linux-x86_64"; - sha512 = "049a8f3782a34d8432204ef6119a2909ca4e6eba83f760c8f35f1be86595483e47823088e508a1389d68ee366e14431686db7edc44d1fd5934f887aaed85bc4d"; + sha512 = "9e27132b8b1d0665cc88951ff24b316142bede88677dfbf6bd43ab147db8dd2b7ec44e830d152a2af48805e2a2de1b8858f4ceb0e8ff96d65c7cb769c0463d92"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ast/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ast/firefox-57.0b13.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha512 = "b2c48f6009e01924e75d7671a819b4af51b87a3a08576812bc7f89b2273d047a3ca914147b519dcc50f1deb21acebeeebb05fc306fbbe016f12e3fbaa885bf16"; + sha512 = "4e458e8dc02a226e40314bbce9771330a378536c7176e5f2e9ccfd0f0998d61ce33b234228226156abcd87aac88c01c740ccd7b0590863f6f1da44bea3b43af6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/az/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/az/firefox-57.0b13.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha512 = "315e47d4e4d6d985f4390d8a40cb736ec871ecb30ab76db9235bb040eac9b73c3a1e709d783db2363c97f6ca91e3281c4c88e10c4d9fc62131fd8c105d7269ee"; + sha512 = "90a283a92da98ebc422f78deb01793888f9df97bdbb17f5e0f9045ac5f61eb2e4ae9ae706026f043535c2399fa476509af9d358093a92cdc344883e40bc4ed03"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/bg/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/be/firefox-57.0b13.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha512 = "b16136b9d37ab3a563b9c90be7520430a89c204bab6d9e616939ce88f4d56c395a7670911361f746b9ac62e802e4b791b60ea1e77335c56fe80a0bd27c00fb14"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/bg/firefox-57.0b13.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha512 = "b31bf59b6546741ab005c5ca11115f1557923f467e801f16049e83881deb8a8f6b775b425a8fc2a608b51170fa00a4b464c9e60e306267fb50b2144b23948613"; + sha512 = "7ad46009c3101e05b0285862f61067e68c50a202c4889efd138438721487ad21ae68228b9fa82162730fe41be297206831d5b4f8587c3243397427192f4351ca"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/bn-BD/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/bn-BD/firefox-57.0b13.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; - sha512 = "5683955a4d1e678d9893554d9cc534a61f2cb0242e2ac068424eba238f1ce89e58692cdb35e43d58cdd71c0c0683a5d61920089ffd100416e6a2448ce43f2004"; + sha512 = "24650ce5b04485512f7af58b0c0428f9aa442d28d614a2dfc2e427e33b35e442d0310ce3212a0750bbc0e5ab79aab848218c140edc49b7be456fc2f7f33b01a3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/bn-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/bn-IN/firefox-57.0b13.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; - sha512 = "0220a226f53b7a99d123a1e72a6db88e726748c9d3e0ed46a51ab36b2ba5213dbf2cdef55b8a8892c97ee656905f01920563e344a412142993c719f15cb0bc43"; + sha512 = "9c48ad3e4081edf3c1b973f161fb9741f2f37a125ba5e63599698100c26f529c727fcb828696ac3b1f54fa299502cb4c537f15be6c696eaf51452c1cd0eac61f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/br/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/br/firefox-57.0b13.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha512 = "046d7c42a294fe636cbdbd13da8fccb879595ebda6353ed91981ecae39f670f1650f33b1ce0d3705158a437a22a718d5d381bbc37583702253941abe25ebc477"; + sha512 = "022d5dc1a4e4906375ca2b425d86636ba6cb91b5bc60459938e9e77341c886c4aa7285f4b52e7be221149519bd3bf72d1b4540a7c62cc347e2beac9de3d6c953"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/bs/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/bs/firefox-57.0b13.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha512 = "a2e0df77bdb46f501e2760df79589ebec8e1bfb85e07ddee1d89c797a34781efd57e1790127d6cb38199bbe01680e5b04208f2c06b22a9bc684c87042f825267"; + sha512 = "9e4e388f43404eb98e68349ae95bf40631fbf33670d4a9200f60d9ab25f8dc2501d4fe1aaf6f95d9ade80d790b1ba53b78ead54f2cac45d7a2c2d85e505a1455"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ca/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ca/firefox-57.0b13.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha512 = "e8a4a37a55a882ce638e51ad5d4a08ac815fb5cd556d0e8db3982501ee2f9c0ec141132ffb0eebbdae47be78f74dec7fba730638c8ebe38ce82ecdcfb570adb6"; + sha512 = "3c7e6f9c11ddf88900af2eccf8a22524f6cf74e5ac27464f8b4ad19849ac30220bc6eac03d79e22c349eba9e170ec379071b258d6bc80e9178dd1ddfe0aec965"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/cak/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/cak/firefox-57.0b13.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha512 = "aefda93ce59fdf238c2b957e45463c6f75e511a4331596bafaa4e8a99139f17ad2facc22befcf2fbe105651e9b003447bb62c3c2c6ffe4681816baa400f68a6f"; + sha512 = "e5f9e7bf7145f2b33a0c59de6c576f82bb857ebe85335f218cd03ba005816c3e8e8fff03d5b6534885d796ea523696423c70035e62bb6a32bae4e4b7c1d79c71"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/cs/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/cs/firefox-57.0b13.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha512 = "9eeeab75b2963959db947165f46443f686760f655dedae4de3d174a340c88830fbfcc0fd1df23740e6abe6d7f4552f06630c93f28246ff907fe6eebc1437d943"; + sha512 = "7e527e7bd04cd6107ec92d27f0705ebcf8da8117c84e61e13c2026dadd2ac3a888c9e3bb86f51026f19b10d06365bb41d48bc4fcbb08d09a88b3bb01e9637967"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/cy/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/cy/firefox-57.0b13.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha512 = "659ea6606bb307893448b0352c175761e6bae90246ce157eb2cb9373b923ffede18eb8526330391396f9998fdade7db135a54f8aa14c4f52daeb9cddc44f344e"; + sha512 = "287df6655c9793da325681baa13fc4c0b9a5975f0b13be38d8875838a762b2f435839ef5893c6b6a3439c225994fc64060f69edf349d2a9d4fd2d225e95fd1c7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/da/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/da/firefox-57.0b13.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha512 = "22647561d07e92d82be5bcd2c5f2e7a08d6491ea582464f64a8ba686496b0267eab6c07db49ae189f996b8cac9d0c4c7789c3230003d05dbc5fa8319acabc4fb"; + sha512 = "8d03dae91a9cfe20091a2222eeb0bd41f3b3541c5ef6520a17a32187974daf8584e1d69017cfb99d2d18224ffb287f586bdf1ed678981a6b6a3d16ba9ba4a2e2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/de/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/de/firefox-57.0b13.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha512 = "313446d8dd7764b98eba2284d71d8abb47568577f312718f02a73bdbee4938477ed407d3d638fee4dfacbb43d4125806c882e0c96cda43c9fc5b09e7fc6656d3"; + sha512 = "ef084c0d0efcb77cdef1ffc0cb994ae6c6a9484c36282c7d9914b2d3e8599c8f2e9623cfef1e890a7d4c4feb6fba1c091937877ae8ea1d654a9bc824b5c8bf12"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/dsb/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/dsb/firefox-57.0b13.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha512 = "4e0bec424f15dec37ed21a46c79f9672d380f9d59e3109afd4debbda2cfe58bf8b17f75d905babcbf7bce5cb8f7f3312bd938ad945e163d3e11be42b9dee2fca"; + sha512 = "e08b193db4230efae96862a6a9b62200c42b03667c3d5a905938375391d99eca37716cbea561341ae76547be0b5ee94475f9ca9faec64fc178be92236a4ac91b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/el/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/el/firefox-57.0b13.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha512 = "c10b58b13a85bc1cee23ed23ab8f62dc79247d025ead6efbc4165895568c6d369574fed7cd2d294bbbdec56e7673928ffa4db77720d871011b7757aa90789e18"; + sha512 = "db49f80f7c08322307dc5cd225d2dc10a3179ce4ce25723264679c1c78454fe1c701ebf218a34704946a1e7d042349d0fedfae5b70b1c68b5100ad7cd4ae4900"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/en-GB/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/en-GB/firefox-57.0b13.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha512 = "1cfe32620ca3a3fc5cce03ba13c6acb174567f99879fac86705e10d0036eea35c912064827676fe5dd0ba3da5bbc624795c3f7bde7546f15246b1acc1cbfbcda"; + sha512 = "b2cc8bc706e89390b500e6e8e3bd548417af1b0500aec7ed1c0ad79245941e20343cbcce80b03a2c885c7134c069e9f3d459739e6ea2a62c217a9f4ddb8851a7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/en-US/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/en-US/firefox-57.0b13.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "c8504535fc15bad6fdcf5aeb11a54ef26ef56d14076ac6fe06cfb530c1952118b957fc3cc6ea2c046af3a5ca90dc87655ae67d7baf66e46064382ba529045362"; + sha512 = "621828144f0421ac2a3d5af1cf62a337d23409d26032d4c2518e99b0d04caebe1efc67c50f2b692612facfd5927cb0b51d9acceeecf9fc4c2129e6a899c9ddb9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/en-ZA/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/en-ZA/firefox-57.0b13.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; - sha512 = "80b40ea103d5691cff9df8373231acb151e6bda0526d27d59bf226f24e8287eae335b1224429b61676c8c9f3021ba77a31cfd3bfc68948d6553978fc570ac6f0"; + sha512 = "4dc4822fbc6d3027b9ba0b93b126e5223675c69c9e36c22e85681ca02c97fcfb9f9ef7dfa281dabec32b93ef8cb619ccb74ca18a3ebaf55f64c5547f5cb97c08"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/eo/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/eo/firefox-57.0b13.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha512 = "a9809ec0e031e7e127441c11003bc81d8dc701e3acc45f137e7e68bbf1ebdcb5cf40267e9f8e7431e62506678cac04f732e73978ad566cd51597a1cb45eb0ac7"; + sha512 = "8eafe225337ad597afdb9a90caef3a252f9f467b6d0988f63d92ea35f5d284431c1ad1a29350d9cdd83f5108649d4cf05de50706025f8b2e2db55955bbc8f964"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/es-AR/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/es-AR/firefox-57.0b13.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha512 = "18851295d00c2204b75c8e3d2d07a12ecdb9456d8ce41606178054b64ea5b7e9ebd3832db76412d2d5a26941494936c811084216525c56e4f017063734d7ca44"; + sha512 = "f9837bc84534f1d35aac94c0775fee981b9c7e5031bdd2c78b5609406a73cefa5797282aaf122e2eb772fae7baa0dc0714413c1b6d7255145fef540c31b89183"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/es-CL/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/es-CL/firefox-57.0b13.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha512 = "9a7dabef38bb5f0909f033950f4e0424fc2c0119f4bbc0de85bf76f29413b2984e0d56522f900055cd9e79916397791f0597229a19d2d6fe0f8850c09f9bf3f2"; + sha512 = "e7fd613944dfdeafeee8877b77cb78844b1bfd1d5469dcfdbd90b6a0ea08c98f4fd9423dd18ae1333b90b5717f800a446f8d237de34a8131cf89db602b72a846"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/es-ES/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/es-ES/firefox-57.0b13.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha512 = "52b87c75267dc27aa9acb9a49ce9e59bf989f76827c078acb8d9166f60f0d86f6a0e937aba324e8e9e9ab5e0c721f75f0330199e16540809d0e8e9c068826406"; + sha512 = "b571a99b0e11c8b4fc202cc720f2f0850b54978bb98ca9a6fff2cfdb6c853c74ccb8f9b49cb14649cefeca5768ee408e6ab8028bf005be0def9c519ca8d14108"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/es-MX/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/es-MX/firefox-57.0b13.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha512 = "e57f22ee791acab3792cce3f52823d5fdcced5befb2808cc717d0da4a876a517d52b2e22f4558c33ecbbff01a799d70e2e67ead9140630a0111d73ffa5e54de9"; + sha512 = "fa46b9751f8548ea3724867a2d41cf9aa62a7416fa06ab63a4f59e24c45a5bddb84f982049d1cdb4d0ef3318aef46fb25f494cfc3be203165ba125234c9619ec"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/et/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/et/firefox-57.0b13.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha512 = "572a6f67b10f1a4981d7f0f131bfb9900a20a094f34cb3eee717d7694e3c1b2a949dbe262a10b6ed22cdc97c3a99ef885a4f34d15268c6aacdc7cd28ceb16f8a"; + sha512 = "21b6cb415d45f53f8c5bd63a463be60ed05f55604d55dcfd0587fe023653d4736f1945f1f5d96bd97718b8ef492fb2901fe883ed522db4d9edc805af0c118013"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/eu/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/eu/firefox-57.0b13.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha512 = "8ce7450a27a26954701585a2d55616d98658295c122071641209274a2555e0bd45e57e17be715cd69e00187169501f7c8fdf419a3e1626c4a1e5636f36be26b9"; + sha512 = "9e341110f6c2d52182faa95f032090b2904d734efb7f4472f87ba77b6604287ebe21c7b1502f71e107e285578cb6c0da6dd95b45fd27bc28a16c14735725d22b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/fa/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/fa/firefox-57.0b13.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha512 = "f42a0effb6ff4210707371f6693e2bb25119f7535581c488760c237a3019e58fa270543f6981348f609c776bee54e76a220c449b7169d7032b2817ea1255eacf"; + sha512 = "15085dcd3803767b4161fb6b3e55af4c29dfc573ff2ed24dad02eaf001e657e3ec8466e827df472cbb89a442e33641ad422f11b7d663f1944a0f5d2fb94bb305"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ff/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ff/firefox-57.0b13.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha512 = "7718bb71ff031975bae785130c86c1fe007698177b04d55008a5175074f9ba33841e3939f80dd76034680d7409ba281162540757b4365c03e10fdc21317b3df4"; + sha512 = "ccb9d489fb9211c9cabe344c65ba165f0aaa4e1217e4c60860c96e7d938532d1602a4c6d885ab5c934c744957a060cdcfa4203c8d93bdefb4f25bf938a4cc1a6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/fi/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/fi/firefox-57.0b13.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha512 = "9f5cb2d9ad20d788d715eae64406abc5fdf9229125f8a88f44de574c836af2943a7844ddbd96eb6770a5e011c5e239009aaf022ae6c0a14fc1c01dd2a9283b1f"; + sha512 = "306668c5cd48f4c0c81e2a160a6703c43ab93d79cec7c9b754425faac9441edd5cddc1bd67d743e577a5c7aa2db39dfb2b5a290e983713c8de780e6596a720d1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/fr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/fr/firefox-57.0b13.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha512 = "d9098b1b61bdfa82db7acc0f24fdd8e248f9fc0ae1c044829a27c45ed99c933fe7e8eded84cce9d454dd544b0645b2e871a00f3677868aa4efc00bd82dbeaf5b"; + sha512 = "099fcd14b1cc7429c7cc4330aa7a397c32acd28006732d272a89c2a6f5c7b1a0a0529734e24fad308c26fdef6418aac2d1b386d7e7dec8ea19a12490cfe53e50"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/fy-NL/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/fy-NL/firefox-57.0b13.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha512 = "146b24d3670822394130e270b851beb3a4017818004ad5d6699b8424ca5d4dda16788668addb7f42b21980a6dd39a2c3546bc36d5bf2298b831fa83e957beefb"; + sha512 = "688f6d9ccb1a130181e154ed75ffa71069348f82bc20ac649e5aabf69b31a65ba022b3a28d2149a63941bb6287dc8e14946e2f7d9d5ce8f89432c2a32f5095a9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ga-IE/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ga-IE/firefox-57.0b13.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha512 = "b1b38c876e9226abe24cc4379ae8a0d489db7f91f332560f922b3998d0c564f42730ab568277f4159bce95c1024634f20c918b97e84fa7915e4b841f9d0b760d"; + sha512 = "fdebffe1190222cd5b3955e54aa49286166366d910f1b4471ee36372abb7d515b22a48fbf2799abed4943b2a3203c983d0906cac6b5652f507c58778e8d98ff4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/gd/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/gd/firefox-57.0b13.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha512 = "e3b3191298f2a08ff52314aaf9ff9689e8ea83128f43010fa90ad8a24caf340e24223c8f5109fec2286a68c699bcfa98fbdca0c10f62956dfd768a473e0a77a6"; + sha512 = "5a957ebc86c7e305afb0e0f9e91f2c73b52b7ed2b65ca8c372cbc0666a86e809494e7deaf5ac4caaedd60400e8a82dd9e3773ec3aee04daebffc7c91a2586b08"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/gl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/gl/firefox-57.0b13.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha512 = "024747e36d569e323964b9e0c3a3922563c94c5679774a9cfade272d8378dfed987c291bc55554b0e0273938a3cf65f48b5924549f6962dfffb51caeb053b64c"; + sha512 = "024ae0ddc5fe5590ef8ed4153e298b5a05dba17fd5a4d6ec78777969841cbd284908d7c19c36f6290efbc5ce1248c3f24c0cf4418f524166c1407199a6b5de90"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/gn/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/gn/firefox-57.0b13.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha512 = "e0487d5ac3730b09315f1b5b486fdd8359c78ed7a741ead18ab7d4951f9e079b80c1066a54f2b86988bcc8edab62971f0cc99e7d7cbaa97122d90e4fdc08298f"; + sha512 = "e6b36e68cb07c4563b350e4af1fe511ddd69ec05fe027809f5561a788b2fcd95c88bc8eb8d67618bb1769f10d11a75898374a433185de49e09554eb948b2aab3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/gu-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/gu-IN/firefox-57.0b13.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha512 = "e9ceb5eea20eb9881c87e47700dddca0060628c28f7a8bee4df1be45d7b0f9f7ced122e7bd1b16468853512f759691072a455c13ab98e642c94f2f8794ca6b3c"; + sha512 = "c8e3f732c6e91893f07821a2cd9d18e3c5effe7551434cc311455366faa5891afdd25b6d83b5e4c314f3d4f5c01e499c5d4823b332a120bc07c979dae8f171fb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/he/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/he/firefox-57.0b13.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha512 = "68ef5903758f59df5e3bad14903734d470ee19cf7e3f34f112ff5be5d11b28e19cbb55331552a7437ba3bfea1d03d527690d0efecf0ca9e824c12fd2c5992269"; + sha512 = "a7192f190a83f5d3d1f300a072eea4396397fe02623daf9bfcd6a73ad2b8e89884723d9596f0be2d3da655fd937469f08d65e39037e3b7168edd28c8c23c10d6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/hi-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/hi-IN/firefox-57.0b13.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha512 = "c0bb9bab0b5ff7571af336febf1ecb07427400ef72d6a49fed3958a48fdb63a5cc8174b4365fbbecc11d4f7b646ef32d2204241d2c17290dda4b99bb971a1dc7"; + sha512 = "30a355f58c9419472ede2713101721509a8c86c6c363693c256553cd64800572cf0eb000c8b2bcdfa788ea8876cbf6b7e8a86282ae1726eff4bde93dc8b33a1f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/hr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/hr/firefox-57.0b13.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha512 = "16e07aaaf4bcbe83dbe40ab688e4f40d02792e3793afa1fdbc90be6d7cce87ca3c8ebce27585eb24e899348f6bfcf3b471c73a0f09d0007c62e224710bbdf538"; + sha512 = "fff70e068a744e89e28ede72398d60b83decbc908c6776b23d8e532b4630a9526411a62572882a596241a7b6b6550766f3ccf99a5d044d7fc14afa52772ee270"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/hsb/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/hsb/firefox-57.0b13.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha512 = "6968bcc314f05af065a7a8dff0723579c760d979db7186e0c6dd7a1ddd5c5135673ff940ec471b57f2eee550e5c357342115a2799f1dd48c2120d3404c5e0510"; + sha512 = "aec6950ed6cd9b357bdb63e5edbcab7b42e76a72e44ec370380d2b5717db585da8060620eba7290880020b1e6325f134f001163f2ce7719c50b83e6a5a2fbc91"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/hu/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/hu/firefox-57.0b13.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha512 = "498823b2075e70459b71b60560ce7e458a8619e249fce237d91cdfa2a3992e279223586d82af35c2804eddb05544602f06925c8d24c76f9dc8aa37f8c5fa40b6"; + sha512 = "912b23344f96d37bdf66775ad933ac769e19818ccd178a6ad97b815228670c053111dd623fb98de382e2c2d414414fd9fc276f4aee5a00a439dfe235452fb16a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/hy-AM/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/hy-AM/firefox-57.0b13.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha512 = "3b86b1efc5b958b999303de303df07967d4a51f5b8853663bf3e07c19762cc273cb26c073d8bfafb873f09399e6299472a210148d6dca2494580f727fcb7ce35"; + sha512 = "04b2e8ae9de10cdc2aff751c5954f190ec749fea27ab265343b73d762e6e9ef6d96a7136cd9354988ac791ba7bf32661b5658fb490f1d80907505923bd7a70d2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/id/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/id/firefox-57.0b13.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha512 = "27a7574ff31cb8bafec7d2882b19d944829ff1508810118dc4053c602313c7f5ead2dc6328c14313c8b687fb5bc369be0aa5bef78193251ade7461f178ed466b"; + sha512 = "834087d98921683d0ae7216b6264c7dd7b77568b59e4739a7464f065328d3efa8256f03e9343177673ef5257db142466e3803936ec30a8f6902999a71c0ad163"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/is/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/is/firefox-57.0b13.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha512 = "d990e47ddbfda4c4a22a1c9f60b0aee13cad35de496c50c13d6f33fb6624e948a0c94a1f883a8f6ab94f0310fd3d3db1554b502c4faed8e05844c06f84d7bc23"; + sha512 = "2a8f3b35f7c1f8adc40504c3460139ae7959ca9657f899fab9e73eaeff5d983996a33d284d058599406d4d46ca941cd9969a7e6152650f6ecf6165329bf2f350"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/it/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/it/firefox-57.0b13.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha512 = "faedb800d78be5cda15858df073099767d521bbd71915733cb8558deb2fe3a6e90a203ae946795ce6f55ad7a6d35fa0acd016c3466286548e3d198a499d24bd9"; + sha512 = "6b04fbe6ad821a68d7bb968836d047fa08308a571fef1d5ef82d4719841a7b517362f706f4251d4d60fb084c06af9ebc671a8c131e5a403a21ad9190d84c5789"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ja/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ja/firefox-57.0b13.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha512 = "3063eb49a6076153cabf57d7006c6e41306c652573a4d037ccba721fc4069b9fe7a3ec1f65ac8b8f596a4b7493209b8b46f9338f4eb3141793caaa47dbf7e821"; + sha512 = "9dfae62887b03ab6a963547c1f4c4332bbc4469bce62318fbdc439130c65677e9e0328942b49b37d251aee45b56f474aa5e1ef487244ec61561217f1e7f2bcc4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ka/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ka/firefox-57.0b13.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha512 = "24defb6af2daaeb42c850d876feff49504e3e93ef2e1a4c3d1b85a8a86c4e8cedbfdb86693bf7bf7e4bd2e096f6ad53ea877b6c1505842b731ff2cfe7a75c134"; + sha512 = "8f1ae26d22d02bd3a1aa21cbcd750e6003f13fdd1aadc85114485cccf59f300b962a729016c3dd1611b8f32333422318ca806b7dac1a790c11749c909908840e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/kab/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/kab/firefox-57.0b13.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha512 = "0c41c51f725e02e1fae284723547911cac5958352bf36f2382a8f293001d086e2667722e06fe7aa3ddfcdb24f60e6307b9f050eb15d4d58b7a9e0ef9e7a89b37"; + sha512 = "28a00d36928bb60a2c65eb9e3866b8ec1fbe76973fcdcad78a6f00aa601e4990c1ea96c37984171577400dd511937011957e51e4996fa64db0600c0c3cadb810"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/kk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/kk/firefox-57.0b13.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha512 = "82cc8c6063359fa1a28d84a56500a0aea2fe7735dc695e0bb5c57445284e0d4a4b0cb76cd78e399023af83fbc00bfd20f0b17098a264aa6a230d925b5453112a"; + sha512 = "76361b378b4b2bd2a1e31caa344491868188155caa57317f46c9f89b9a77df5ea65f2d4f8ddd2e8cc574e602fc163c4d671de932938ffbb64a1e68a7fb51bd51"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/km/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/km/firefox-57.0b13.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha512 = "a2a4d80aa6e9096cc8d11c101128e712079f3b6d3da9da3a9268e6e433274ebac4b0adb07da1fc63f57673dacf16ba91efce38bdfa3db9c4b4d1454fa4ecfb63"; + sha512 = "abd176c702ab4f1e829e23a4fc4bedba45724ad119d84cd18a6d7d2c8487aed690702709312f5806f2fbe82076215e55e3e4de3cc8cb56b33079d4ab7e2921c1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/kn/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/kn/firefox-57.0b13.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha512 = "5c202454bc5e221f14aa1ddcb04df9d489e1c036538a747315848b238ab8a8e569fa35b27e906bbbfa00b4502bb0f6a64d317744d5d3e82b430f2c0f28ee3d60"; + sha512 = "62056efe59a3acb2fdd04eaa343372b7b2e1f974485ca7f122d6cd9d7d67159f2a4361aa01c68cd11a93cc56d807068842b735b74e596b5d218c952f5e318658"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ko/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ko/firefox-57.0b13.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha512 = "88f96e25f721e005acd51512e5f5323eadaaeb0fed0bc5c0e919661109e8800c3b940ba131fc788a82a8e6a35be37f9c7111c189b2e9d1ed4ba1a5a3503748ad"; + sha512 = "d1772efaaa2e2f42bb01d5ac39187accf59a235327d5d159866c5b80d7d54a867aa496d63fbf23737d52b976f0be8c35bf5f6045f0d69eb5d5af5e67b6202eef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/lij/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/lij/firefox-57.0b13.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha512 = "9b5bd55794df871bb7a622ded9bfe3b85d2edcff1a1a4bf5237f17dba98e3af53f70de48636c0bbcba68c5c19fac08873607094492d03bcfbd7550cbae9e4178"; + sha512 = "a45f3f8181906382f3df68abfba8682fb43db58fd7b6846eb3b64eb67e6d57971cb83ed6c74785e19807be06dbfcb7b003c67b800292cffcbb1b42c812bb034e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/lt/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/lt/firefox-57.0b13.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha512 = "be075ac4bda511c2bd81e726003f4ee680f35022e84365fccae090305c45dcc586162428dad944bd59b7e3c1f836e8b07a2a78e5a28d0eabb6aa44877398650c"; + sha512 = "101d43ee97cb635073ea9bea836ac0aaec514fb5b4eb9b821df0f48d527b89745907f557a96339c19ebd152639d9a4bd745396bcc97c94e69579b177f9c1d7ce"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/lv/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/lv/firefox-57.0b13.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha512 = "0bd623b3203c1403ca187a3b25abe0e438ddda0c6f5d4f947c0643ae3f492c649cf830002f7211853050b15e179a482677898ef0d93d32c5afe34ad6e7040cff"; + sha512 = "74afad1dea785fefa379c7eee2efd0f38673a632b9232102a02e8fa7591f89b0c58447362205b23638b54fbdfce90a813c111344ab4569f57b21bf3e3894b4c8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/mai/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/mai/firefox-57.0b13.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; - sha512 = "b406ea5ddf4169961cb11104186a809ca7c8a69b124e85e796703326a37ee18473e4f0b430d5da2dfbbc38f7ec370951a5dd0c73be4f9bf48da771bb603bf38d"; + sha512 = "4b87cc59533c6b9d3f131ba533314f5c622efba35084a8ca6b67c4c63b55833a8a3ad9a72ac1371dea86e39691a6670a3d38952120ef8e3af712a72fbf69caa4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/mk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/mk/firefox-57.0b13.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha512 = "ae182c6ffd7fcb3acd396e8d9f4b2baa65942d78498acf7a0f3efff69cce62812c2e60c937611c29116a45c5799625891f39e25ff499b7d3e4f453f790d8e8ce"; + sha512 = "dd85e3305ef45f319211492163215f2f4140091d33422cf9bd01540493b13c9fb923a0c64aacb2639682a79cf6163fbb6e559aa29fd6dbe28f22c7cc0a1398ca"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ml/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ml/firefox-57.0b13.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; - sha512 = "9dfe1593bdbedb6262e7cf50857036a624a3ae13bfcc853dd91fd800d74f831665d8c89832b5727a9bd2bae3b4123104dbaaae1bdd39918f2c06be2fdf0a5c0e"; + sha512 = "19487b16d24a71463b1227a450648ad0f7a0dc08b6a0ba69b99d87387bb2c011f7139031eb09127bcef5c5e28be90b8bed4de449af4b2180e900cef4c7e26218"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/mr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/mr/firefox-57.0b13.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha512 = "2744d4fb88f2713b956efdb6d56fa1ef7e003013cb9a526ab2f9e8cfeb915fa3651978a3d863cc3c4dd62a447bb8cdde402483701b38cb206b99eff5fe5272c8"; + sha512 = "7a71d953b192d2453698318f7fcfec7e4a1a08f893094891b446add05a0a570df3db76a1054c296d723855e4190dc2b2cf84c953fa97486a8bcdeeaaed707bf9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ms/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ms/firefox-57.0b13.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha512 = "4a313418db320dff4f91f817cba054fb65b5e97a434a6150d4f3373bb788b18bc02b194fc8349e5f41e1b8ebee94f0874431759fe79ed32fe7f5645f25c4e297"; + sha512 = "8970064b77ede1f1b52a974bfc7bf543a203943a3aad2f42952669e48e1ddb092ac47d41704364802129501a5e0106e5158d6650a4ae7a84ff07916ff61af07c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/nb-NO/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/my/firefox-57.0b13.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "3681f7a89ff3f099c5a387c9bc32880e3935a68edaf004d97ce492a271491e40b06d28e9afe732163f94d0f882a777ce8655ec0d9aa61b5a3be53792661857dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/nb-NO/firefox-57.0b13.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha512 = "41085294ea372990b058e61942de5f2c972511bb22a1719e92275e4258d6c0c0a71ada6ab21475c1b32021fddf5b149f1dccb469a948050d901b2ddfb91886f2"; + sha512 = "10d807437bb0f40095486c6495be4460bd9f10747243576503faa78b3212b71a893b4dcc1bdbeac2cef0ffceda288687033d05db9e76576e6ed049ebcd0a547c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/nl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/nl/firefox-57.0b13.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha512 = "45ed2265c4d6a66142bfe117794bd950e56821d377a5437c9d0cb8405e7605de617cad3e92ec6aa71129117690591fc95ba5c4d9e662fafa408c3e018845e40e"; + sha512 = "31fb0e57141696f5ee310fff881e811e23c9c1d182c898cb8be142db54ac268dcfcb8a0e865ff5759984ced5e0cc9b87f64b6b27f5ae82c04b3011c7460694a0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/nn-NO/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/nn-NO/firefox-57.0b13.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha512 = "1c981c33bea1ecea733db9c278d92ef42809a4dcc0ce8f9064e08b303a56970099b4f3591103fe262a777c4ded9948d9cedcca6d2046512851544c8da774a250"; + sha512 = "386d209088359eddfe3d68eb2466b491139e9f372a424e8509e531ebed8901fc098eaedfb11a2d606f22a940a2520b2da7ae9c6ad8a1e6dc24e5b4efce39b63c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/or/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/or/firefox-57.0b13.tar.bz2"; locale = "or"; arch = "linux-x86_64"; - sha512 = "3c67ad9f3ae800cd2e0665f35cbe92f17337c5f2568b057b9c9baa7aa8c91ba4f5b1e7718f288a2cc982ecfa43241e992e35c798e833fa56c636f8c7296d5a55"; + sha512 = "8bc59e0d4ac62b1409616512ba15ff15bce172e27f161407bfd11668399692a53d362e0198b6c0b137d979609b6b534ed63e1875747111af0faed895133f4b4e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/pa-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/pa-IN/firefox-57.0b13.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha512 = "9778843430f504faae4f8e138490a92c14f5f0f1c47c642f7f1f81c90a37c4cdf0660ad5b134429d6a86f61bbbed0f285a41ba315b9c318799a90f3208cc4a3e"; + sha512 = "b25496c3795ec349989b6fac8cbf055974dbee73287e9550b9266ef475a979f7589c8b318a9c05f4c324e69333b943382f2ebfedd0cc8c8b6d77f823537cef0c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/pl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/pl/firefox-57.0b13.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha512 = "336a3afddebd687f62753f0bfd6b7e57884cbcb4c536de2d2a85e9ab22a696bda55795d5511ce299d34eac20abe91032450ddac97fd2be9c4b8db6b4b0fe6c6e"; + sha512 = "762e795c44733f161b2849a7057afd2b47021312324565c39d51a3b06634761518284eac7d34927c7e650c1e43179cb88b80396ca91592603ce737988c197533"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/pt-BR/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/pt-BR/firefox-57.0b13.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha512 = "1908080393d171ea86a05277a4a0d67c0c054fdbc60c5a9ba76fdc92071e45ffa57750bca8b1f56c65a4a45d296399c1cf3e9c0db8593ae57e7b8b53a6969171"; + sha512 = "a278133a771f43cf8fd48ca4fc06e324ef3d9187518ba1405c371004b94e608c3cff839dbda184b6c23c6818f8cc55b192bc9118f19e8fbafd6af0b2f0d6b611"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/pt-PT/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/pt-PT/firefox-57.0b13.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha512 = "eaec79b2cf363f613cefb2cbbeb3a5b607ab608d7e82ac21aaf4b591475a85374f49f34c912b569ae3fb8224f19b93d753298ef8f6db820fdb84a70b306b16d2"; + sha512 = "f56e9591b8eb311484d814723a9d7eeb66914cae8d9b74cbe12f8824eba898f5fdf072e3cf0384deef3087826225bddc31c9a92e11906a05f6505524a6e9c7e4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/rm/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/rm/firefox-57.0b13.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha512 = "f6fa58d42c155552546b7500d6a0081b3c02c3cd300c0744e4a964b97970f1a87e9754e126de346880447b6af9853a91f157ef5285a2db1a8fd677c46cd0f347"; + sha512 = "b0021b2b2c26aff1ef7bc043b64ba39e4152ed3ecb981cb8876d4c15af9e157b30cf9cf92481f76a4071f9407312a8a02a20cfe7223a4f20ad9cea46ffad3343"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ro/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ro/firefox-57.0b13.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha512 = "876be7fb744a6887890671e00d84387c71e5c77ece611646e721eda3659654760094e39544a2bd3b6e80b075e7d24acfe1d7e86dcb4003efd867b2e7b81e3366"; + sha512 = "dca26a56abe6f6000e755a5df7d62245bea47964ef47bd0c5ad0283eb6b04c235e225e66bb54c979460188ef9a1c870d9d53b2c185e6dee2a37a36880cfca6e2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ru/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ru/firefox-57.0b13.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha512 = "52f58ee2af336e18640b1edeb54f2c632104a1cd40952509b512af5dc838deda531e850e0b56d605bfad046af34db1158dbd69bb25380b80a178f32083d148dd"; + sha512 = "26eb37a11bd7b484617d29432c67eb62c84f4a7aa1575234d284e39a23edf1f679532f818f7f4c64273d70bb400e52f327498ccc8226304e0e859fc7daa38dec"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/si/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/si/firefox-57.0b13.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha512 = "0b36230b9d214793cbd75f282f537e73e28ed37efc9f17e4aa0f5dbb3bdaee5b5569708d99f4cff772767e074a2b85a7079e48acf7aa31e955e6ae6658a779d6"; + sha512 = "a7eba6aa32b73a64b7b21447d7ebbfc25ac21c9cc353d06fa9eb1e6b5e43f2673f125abdc662e8296a8254c96e97e8684a8408d712bb201eb1b9ee494aebcc23"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/sk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/sk/firefox-57.0b13.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha512 = "6595aa0a2601005b0488e8ad02f0f5a8b96c4419beaf9a88660e111bb6e932cc98dfa16e511e0af2622360635e2139a8007bea5fd61708f4558576ad54da17dc"; + sha512 = "da4a7e40f4063f11434616a1130640b663d1c73aeac6a8638a281174df890f0dec105fd8e5e0200dadf8898bce7adccfca5b059f35773abf4c642ea1d25ffbf6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/sl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/sl/firefox-57.0b13.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha512 = "56fd9bb355c5dfc680a7a91a1686285a32e147b1b0a72787106fca5244277238948ce9635f97b7c3ccd59d7999c794d4224bf4172384bcf2a02e0aa9d4716633"; + sha512 = "6d00fcd3f71520a5924772f0b04f091a3abaea2b481bc2f2eca793330a8a9600a7eab38c7b1a9bc575cfa40c74fad56c6f3847ec8edbfed3364a8b7522e23c1c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/son/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/son/firefox-57.0b13.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha512 = "6475248c31a1d5199d6a4dcba9c98eb3a0c4bdd57ef37c5fb611ec68807658ff9de9056c0a5ad9e016e55d8ccc3ba7987948b2b2f47d6c3061e3f4d13051cf27"; + sha512 = "0484c6de79a605e94192369aad55850b6897ecdc44912204fac58a23ecbedb8991ea3f670c3794d1cb1f311578db41ec518ae030e16e5266b2d802120bf151b1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/sq/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/sq/firefox-57.0b13.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha512 = "41b602396bf33e36974c97ec25f120ee7452df5d26caed74a10835f0fa7a9302aa87d0fe09fafc2e6670d8ce859a8757a7e7c70657b29a7154b1501e478510a5"; + sha512 = "c5704bbea312df025d1e439563b358ae5115c0e91b82755c8a895194a04a5ca349da96aac99db11627912c5440a9e675c8bcc14456fb14bd4461c373781c2151"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/sr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/sr/firefox-57.0b13.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha512 = "dbc7df70483246003f27acd833c881b3ae6ddaa9e93c7e612334923e63a1a4bcf35c082d355d67425fcb72123039ee4b33a5ce5f75909ea6cc3990d76dc21c41"; + sha512 = "27a3bff0a5ddbcd0905fc9ba69ea733d6a6c14da78d1bac0448b6804b8cfa8668890f2a1e617b17e1a642b59795c11b82d1ac4192863f23dc82adbafe2078714"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/sv-SE/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/sv-SE/firefox-57.0b13.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha512 = "082f21155e8c68f8e1f786a3bfc3f832637813bda06881f1b6ebe8a1be85bfeff03100d4a9f311ea8bd6ec802e55bbb674eddcd9551db6a26ae32a6a97535bd4"; + sha512 = "e762be3b52075b4050719634f9e68ae86faf55295803535c046b2abf05ad6f695a0695311705b2293f79c1c8ce69d69b39609f27be6d0af9b625c0d9368449a0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/ta/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ta/firefox-57.0b13.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha512 = "51bf00c2014222e0d1b30d83a483882930d87d5f281d6b33712616769060dd4b1c5ffa92d30e0e61effe2392490dee43e1d49cd6e28c28bd3b94ef005b87846d"; + sha512 = "cc0570a17d2325faadc7b1ae313241935588dcb1de8d6a1224a583fec6511a34d2a7ac786bce894f1a4b8b0b92d2d4392d8b4f7d0a0db9d31378191cf1ac8dc2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/te/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/te/firefox-57.0b13.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha512 = "83a879a6d9b96963e3370068961559cd530695cfd7db200fb8bff7d79ed01de0357e211454f9735b667a1c65ad7338da913646709d9c212704f2dad0486b3d24"; + sha512 = "3f6c7e8612cd483e209c95ff594ebcb0fcab2b03d3687c6a2cd8832bf512b85257e0ee5af2aa1426c6b3471c6d00910447cee91d5b45d5a5aefed0beeaad781b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/th/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/th/firefox-57.0b13.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha512 = "d49d76980c091d354638a2c887cef68e762ddcf9d2a7c1ef74d1d735791949928a6fafa270711a0f776e51410b35c9b396015288ceb5992969af88dd3dea990b"; + sha512 = "2576defc0da691c1a3a58387cef996e031683de1d0a1a0f928692b5982b61e53cf01953d473539e8afb5173d674d9e1ce82fa785307525a65e9af062924ff0c0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/tr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/tr/firefox-57.0b13.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha512 = "642a6be0577f16c0c4ede21a82cf6c3866011c3b663f7ce7c15961eec7f01133fca8bebd46dc2cb9b91116ab7cb1060f04e9b4e208eaf6a1ddb3e64219a2d5c0"; + sha512 = "bf5b69d5d47c21bcf32ed5e9277d59d09cbdefc73f750b957feaf0f8aceb184425ea6d87e731aeee01bdd74ac42243eab0d781261d63db26bb57ffc3f530bb8b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/uk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/uk/firefox-57.0b13.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha512 = "bd72d88ff7f82b195f6ce44ab8d9b7541e0564ae7b6cc6bb9676a38a9bb2a2e23561f07006749de5598da1c6aadc1e90d0ad2a5eb1be0f998b4d36534a075afb"; + sha512 = "eeae9bc7f51c8827c07bc140883c672455088aa9cbb5c4473399f612847ded8e95f61b6c0a295c598c2a943e641812fa75173f26cb46922fd0d962af7ebf9d53"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/uz/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/ur/firefox-57.0b13.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "36d2c5bcad4aadb2aa381e2a8f0d69256268d337088639a031af86fe4958529e0f32cf11c5703c39999dd247023134ea80201c351963639160875547e4728b00"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/uz/firefox-57.0b13.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha512 = "242b5367c7e78f0c753ebf4f8a4b1d1fd42e236f7417a3dc441a9e72c071fbb9488b226214cc14991f5d12c514e53b35de3c903ddbe5fd4aad31e53f1a6516cb"; + sha512 = "a245b8eeb1cf93dd51e85425c129e0a88c3b9d312bbd502a5125f603259f3ee97eef76489a5f9939f09d3bf1b134deb3391689a54d607bca125138761378602a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/vi/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/vi/firefox-57.0b13.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha512 = "d2cf85b0592b3116de4848665c5726f40d3ee2e7b92c808a7a41f0760041fb5aee1d61b626d9fc427a8b0bbf697828ed86741a1d319e27694b51dde630afff8d"; + sha512 = "b1e2fde3c1d08870153a83e921231aa2fb34238b450aa6ce7b79b180b5902ae7bbb2a2dc689a119cd0d8b3d9f9907223c08894634810c48b629d74c2521683e4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/xh/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/xh/firefox-57.0b13.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha512 = "c865f0b18d427aa364f512b0e5cf02c126f156bffc4db2ab50f32fe9d28a949644fc672fae9a651a28ce6119191b6b0cbf7dfef3e102266b790fd0290d3ecdcf"; + sha512 = "36345b203efe934147e96548c25ac4cfa21b7eb4cd0a849c7e35ed8e99d36687ac3ac5657a42fad30113192b364b6577dbcf47b854244f02659cb89ac4553519"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/zh-CN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/zh-CN/firefox-57.0b13.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha512 = "20fb7a5ed74e3badb56038ef16064b1fb92c6bf274341db0aed52427e313558846f34372cd019730ba0593439e6fb127241ec02906a76b5a7139c7ac45960783"; + sha512 = "b5a8464db5ffe2eba9e33de952e4a44077f0af332ceefe562805a5f285a42c5bdeedf4ccb3bb4598b9eca7875ed1f2144a2b54b652250c8a5dd98b0a76535243"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-x86_64/zh-TW/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-x86_64/zh-TW/firefox-57.0b13.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha512 = "955bc613dfe9a968bd298b6cf038bf7db615ce456de31da656fb54c7f3e8126391154b49b1948a95871ddec04d03a51b543b9248498b661a998d40249f6e8bd0"; + sha512 = "5967f8d5d89ea780dc7475ed50709a7b269f08eaae74c200df97e2b914e01466af1e3cf58fda4eb44f417e384dea03906d7855d612df3dcca7aeec58040ad30a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ach/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ach/firefox-57.0b13.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha512 = "cbceeff2ef8fa20f18ae5106a6cec638bb064c7b32fdd9bca83776bd58f3a579babd2a6e933e0cee9d0ff2e553358e136ea478b629317a1892f62c4c52f47e22"; + sha512 = "d32fbe4ed3824f2ece3987ceec2ab408032eb5d352a035b2db3c279a5c368a125ec234e3ab24728d4251838a2b60c13d3db3028cf48e3d2b2ed4c5b54ea47238"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/af/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/af/firefox-57.0b13.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha512 = "76c6eff9a98743a64d387f3a58830b7583510444fff7bcec5daac6fbe56f068925491fb2c8114302f862ddee3d4bce7df4a1dfd1057a918f584de4774da7ebc5"; + sha512 = "fc5222c5df35584fbb18099913f8389f2c8b2f25b41f0e753d3e5f5ec78b5294fe5c88da0ac477e0363f31d7af96ec121b89325a0765cacec0e7ae3e03762d09"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/an/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/an/firefox-57.0b13.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha512 = "6152904cf2cb33e6fe63b3c573bfabed1915b538d028be9fcf7ad3c169c98899becee772bb803a2b6830457a0d93bbacd49e8c0b962fd1898e8225463387e092"; + sha512 = "e97bd96f4d22d6893d4f89bb9e2b53eac8a68d30b46352cf296ff36ee02d60d3982c02c84c97c803b0216f86d3c7998101f91745b109e29d8c7d0c61e324a8a6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ar/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ar/firefox-57.0b13.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha512 = "a83ab8633fa7658669daf271db339ed5812d0a85a9eaf313165671f11ae6d50ac92cdd8414945dc6b374a8a46b68df241812e8c8396e9256521ab81949969b6a"; + sha512 = "55741f17e8698e02731b431c8b20a2d702255e37171f027ed779243056aaca35fd863a80109679c5fb920d0a2026bdc3db6759f1b3fdfaacf237e4b20bc7e9cc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/as/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/as/firefox-57.0b13.tar.bz2"; locale = "as"; arch = "linux-i686"; - sha512 = "2a76a7eb0b3015eced2a4a83965d314753e44232bc333cccdacc8a0c207b5113aeb7b97fa972dfdaf6e79eda03d8e18f4d8daa6ae3f8059d75e1245ff5618173"; + sha512 = "0e14c33b6f328cf931a7f9c42d5fe1d7fbcb8736381232c69920a45111410da3d09c1f5667e7206628d70a7caf1404c304bf9f4ec8a5ccc3342103b3ebcf3757"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ast/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ast/firefox-57.0b13.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha512 = "91d8801a2fffaadee3635643a813d588650b318d9e074ce3284f97795408a9d513ccdc573fb083e523959470095ffabb8023f250e7b3abf7f94853f126ff42d7"; + sha512 = "a2d51ee57a7cef66d862c593bb1e52311593a21ae0a25d2b9c14a64065906de26770c61665dbb0d55930241302940d697c982e050750fc04a5c89ae1ca1b419e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/az/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/az/firefox-57.0b13.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha512 = "abdaf4dcaf3ed2813b389fb91adee89f796d30152374110bab10b6aa1b328a406cf9e572b2d41b5ad9827928f8d5249c9d6abaea5b0698ff2840f66ffb71b656"; + sha512 = "b9fa717fe7d861152d2117f1d69a7ae264f18c7e1bcd4e71df7404277db6376a93021e070edf73fffe1b00b3f7031d8c555df645efe63571d8831922d0212d05"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/bg/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/be/firefox-57.0b13.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha512 = "670dc2d6d9d35947d181dfa1c11bb84cc65aebd268cdea059997fef685619757d3d7c6025a12d00fc5364f258a64fe1b08a69357a2d31fff7bfbd0ca07cdbd4f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/bg/firefox-57.0b13.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha512 = "65a76933c06f7d8bb71ab24e28f6e755090f8eef8cb7ac741d37c8532d20aa35eb119dcc0f7e28a97dec34a3720b79f869f8adda079b49dd270227bdc081d1ae"; + sha512 = "99deb263d7111123582ef53bbb1919497a6ce6c73cc160b4e26f5adc22f46e383208ae25acb5b4bf6dbac4d9a4f801ce70e170b0e6e5c9a03593eb2db8edb601"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/bn-BD/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/bn-BD/firefox-57.0b13.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; - sha512 = "e6cb0cf7469a125da031b2e9bb4d2dfa90df169e6a61f03d482e44e9beb19744a038eb1922ac31812732d0e72419211894bd5029e16091741aaf45c00e72c14b"; + sha512 = "34132da469314d9fe9295b835ec2b8b79816611eda646c04f7e064bbee5cfb2cc42f92e14a2eac60239c44205be4f3239eefbd1cad6700520ca3fd4bcc1d127a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/bn-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/bn-IN/firefox-57.0b13.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; - sha512 = "4018dd322a92660780cd4e9ef9c8631593c34717d2d1ccee1a340e34c8465ea7a5fb196f39292c3f502f7458bd4790971a443cd9c16f28e1112417c8eed35bed"; + sha512 = "9cd206c11d28b866004174532a253ad49c06f2c6cf9b2004b15bb14bf597e776cadfebec4b3935a323b98dcfd3590bf5a3b289a9f7952a8a438a7e90884cc0af"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/br/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/br/firefox-57.0b13.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha512 = "31f75272fa7a747031697505505f8362589f46986f840fc8325fb95c0009356d4fbeccd33e20e923c49df91d7af40c948ebdbf35e6d2d48b734055e33b1a19de"; + sha512 = "f30fe67e71b5c3c0e3f352653395094a31cbc52574a9dfbf5d5ccafcca528ca0a5b164cc75d5dc7d248eab74f0470cf8547fced782c979fb1e9ba4e177ca2b6b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/bs/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/bs/firefox-57.0b13.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha512 = "888c6b2e2d79071710d580da39e33dbfa4392b9995bdfbe16a7c4377f54e7b9c81cdd4864fdd05d2f376e1d6650dcfb5dc94fe67e3bbbca55471ce2f62cc4589"; + sha512 = "b2a546259e46cb58d44a61fa78e53632fdf0708921d80f329924180eb1a01dbcafe1372c8818280c0b40aafc7d4e6fa59d3f34b7e6a514f2adb1796d4274c093"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ca/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ca/firefox-57.0b13.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha512 = "87971a8c4bcf96a67fc370778274e2c35356b6239db4104740c16b281a45d45b03e4c8627c14f1c6f3ac5702784134c743f07998f3db2b2a8d4a2e6cf9c0b97b"; + sha512 = "0f256326b5338228098ec31b8182e2d5d85418c9ace5fae1ef5cde37704d2f333172e4db7497f36157fa530148585dc70c0bc1b677b9888ebf0ae850b4aba2af"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/cak/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/cak/firefox-57.0b13.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha512 = "047e10a19ac8fae5474820ae26429711efff76e84d9f58b0f4b8a36d7f5c45fad6c46402448c454c32b3466de3618e2b2a392bd186361466f7e87717fcda4108"; + sha512 = "effb3d74d649b7adacdfbbd568b561f55ef277a9b7ffebbc27cad5ea0533a73918effa9997b9565d33635d8bb39658900f251cd071799fb15adffbd8022b4515"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/cs/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/cs/firefox-57.0b13.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha512 = "7d7b4583e3c6c4e906cde2cea8cb7bda2ce4cd007640b3e681608651e6f414675b7039c1ff13678947d617607cef407382feefd44ec1fe1534b9abb0b1dd0d7e"; + sha512 = "494dc250f77d7933006121720aa6526534c7b90c17dcbdee6bad4e0a6f5224de661d3744862d5ce519a9ae4f36095af76d9b86d873d4db97991b1d27ff5ded8b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/cy/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/cy/firefox-57.0b13.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha512 = "768429d9772d8e39d4230fac01c4bc6fbe20c7c2efd326e78cdcdf74382e3a38bee9bda90a1d97b61035cb35b5be8f337fd80d15d4f185a6a668f68afd3b67af"; + sha512 = "910254333d2f47f4d2162cab76f84f2b9f1808d559d1eab0d1ac0c1673406869b3092eabe7f4107758dede9394b383ae98ccacfba768772d550630f34efe5c62"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/da/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/da/firefox-57.0b13.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha512 = "a6e435be5ac73d683ade3dc29bd6d5e0c4ebea30f8521036650981b510d4df014891f8eb65a5a6a39855fcf5e45d1b393617d7c16071812952c635725bf206ee"; + sha512 = "f9fff4a380c84543212c610aed98fb0fdc4a0d2693bd87c3dc3188d7eda73615d028c7ff7c15db12425855105a1b5230a7f62d2eae84a893f07a4b8cdd47538c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/de/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/de/firefox-57.0b13.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha512 = "7ea17df3c926546f1eb7ec0880f7b0b63cc8201044b444280b31d2646999ad36ac10ce74e19794ba7c1a026f860c79e83ce6ead339865fe31a021bccd85f04b9"; + sha512 = "2e772ae4b2f5246c96e30811a322bceac788325c40463470152b495492e60e3084e0ce55473aab56c9be584992b6761e364902352616e70050b4b0e9467b1a79"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/dsb/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/dsb/firefox-57.0b13.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha512 = "0e75929ba5879fbbc269d1fe8e18627ba54c5f74edd3179360998c9aefbf21d1f3c3cb0860990e7b1b0a5f5037ce9a4779c3edb64912f4f13c80501e579cfa3b"; + sha512 = "8c6b05440d039b4ea3666b718f8cb59f91804ac2899e9d2e0a32a7622f800126e3b3bf9360a8e830cb70408cd7e4bc18f4eeb639dab403718ca6226576d262db"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/el/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/el/firefox-57.0b13.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha512 = "b682e47f225a270ab421b3642f7c28085d9f2f1de1e68867ba09e69fed3d9b5908909be46bfaac6e9d0d1243eaad3cfe2bbeeeae6a5b9696b0ffb901a98db50b"; + sha512 = "9589eb08e3d128e1c22b639945790aea4ce2524eb3c16d581c615f18b3f1247240085fb3b6d9cf3b283029060a86c0747def43c3d89a1548d907edd50d0867e3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/en-GB/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/en-GB/firefox-57.0b13.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha512 = "aeac6a542c1a4f91ee6bf01d4c916f8da4628b36550d80a166dc46c5c9b1a010b5201c87613e4d59640bdf9d2f9d029d0112bf8b62c7707e99b928c4ec18babe"; + sha512 = "b1848e886919f8698fb8ab7272e49fad3ae1f5d98ce92b3b82c6117f79df56a8ee6bc2ea2cdc8987701b9a0fb4c2b1e1a58a9faceddb0366372a40139a1c7664"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/en-US/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/en-US/firefox-57.0b13.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha512 = "1315208cd55f48ee05fcfc98c92891307442dc0bb34bb636e14a88701a1fef2229a62a0e8eb00e8028f460518c95c1369a198666cf67c4b09a0e69c2b76c75b9"; + sha512 = "327081605198481bb18bcc45a88c4388ec9091c6c10bc6a27ae58e133470651d50edb106f95499de4e38d7ce78eff68bf38f430371e4c490962e2cdd3ea55635"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/en-ZA/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/en-ZA/firefox-57.0b13.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; - sha512 = "891b4a076239132976a4cc51a3a374fe244b6a9119f76303253d6ec9d62b8230ac9c04b657bc741b13ca291a9b75a7b38a4aa25471e4faa6f34f06000a7f2fb8"; + sha512 = "bb1432ab9e9f2e11fc2270501f25e3181aed4a782fb0337ea676e75c4db487a48bb1e3e44f0ea703c84c4dbe8d5c4e9a102c8cd1d45ff673bef7a5b884dfe707"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/eo/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/eo/firefox-57.0b13.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha512 = "f805e9bb3d2241a366026354433670c2792c16c74ab2f5d3691081f682639b23c4e6d1e91e5e81719601c571e74270d8b5bc4f24e7babfc77ee435c6a2125ba2"; + sha512 = "8ff8c209c3aeacff538d2f265f8a6eb7621d27df237c33b9265d9246674d61f7905369fb2b7636920cdacaeb3d44be11dfc136de940658309f3285e62179f8ee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/es-AR/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/es-AR/firefox-57.0b13.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha512 = "df78b4626f41afaba10331cc8921dc8f196aa2c8669366ae286a75e8850a647e7288964a8a323c742926d7661aa122072dcad592654dead9f57b8c008b61f7e6"; + sha512 = "4eea00d279524be9a682ae46cf602572e0e1469d1dc10e37b1b0a58868386930ddecfe0dc43f0d185ed9bedb29fb85eefaf87d83ffd00ce51db04d37e5fa78ce"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/es-CL/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/es-CL/firefox-57.0b13.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha512 = "71a340f8b004f3907eb763bcd817338be19955ef447241a6a680381823591324df9b9771425255693b49513a8f4475fa1ed8558e5a510bcd370bd225469a5f69"; + sha512 = "c130ca1390f9859ec6d276f77889cd804a38e32551c898a17158b1b7b629f7f72a39afafbde38029438c465e3a0ca82cc80dd73905d84c0aabad8ebb35f2512c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/es-ES/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/es-ES/firefox-57.0b13.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha512 = "a34dc5ceef8875bd5d15c61ed9ada2f62b52cbe42636675cfb6a3df694a0fcbbb3b0dd61c3a0ed5b18e7ec427dfbf58887b91a0ada596dca04b3d2cd066123a9"; + sha512 = "6b515f16a2555f56c1cd8d4487efe2d4ba8107f3122b0dd81df9168768808d08314565a0a7bcfbbf4451d2a4e84559e84fcc730caa1641e801c6daae0ad517ef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/es-MX/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/es-MX/firefox-57.0b13.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha512 = "a178599eb6454eb9a463fea5704b49c720cd2f9df033bd6f271322c75a5f2f52e82661c82f9ff9097af28ba617e2393979b28209758df3710ecdf72d0304c5f9"; + sha512 = "a3fa5b35773656152eb16efb6486d8e33ca29e0094de24e389e94a6e7fea761569c3ad48984f8bad255c8ee97f54bb5521444993f0a8ba7a3c922da66c1295f9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/et/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/et/firefox-57.0b13.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha512 = "20e3af6d1f7fb7f154e366ee5e031889f3f24e04691a3d2915f4405f33e7220dae91e6e635ae98451048c254b7a08900851f013e7979c013f84b643635ecfebd"; + sha512 = "7a0a165105f5b1ff3f997fd400bc8d5a1bf976c1f4910d4c91be9827a5094dcbc03e8426e644766b4b255dacf861e88cb3c2b75131a9fbd89e2c0eca69718b36"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/eu/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/eu/firefox-57.0b13.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha512 = "d13833a0eeb5b4c37baf6d1f85adcb3502b67219aef6ac5b5d25914fae90cf78284830acba0e8d6c76d8ceef7fbe3332d673be125325b9bf53f24d4b070e6998"; + sha512 = "7cd08c560ae83926226cc69a10691918b7c89cc10282cedcc57955b362546554e76b36af217a3187b11abe8472838f4cfb1a32095bb537b43f33920b37b5965a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/fa/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/fa/firefox-57.0b13.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha512 = "fc4a1d2c1e635de2094a8fdf3b082c0407bb937f089ae33c0f429e0c0bb41a7c0cc3158fdd1d01e81cbd01213b452301e2ba83a9dce1810c8d7c8adb035ba903"; + sha512 = "02b19d0f74413a92c998be3540f5f8d25ae2857e1eb9b4171083bdf392e5dc5ab0c6b58de54e75f221f731806fb8a6df070146564a3b294acaef76fcc8e633b5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ff/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ff/firefox-57.0b13.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha512 = "1e4626d053e7abf236fc795f59e7dfd8053048fa1d0d8f4585efe7ea872a99511f9053e9bd6a1ae1af22cb3ff399d16d33c1b45a7b3c6557bda49062d1c672cf"; + sha512 = "df7485cad8f46fd93ac6a013e5f362a19b1b603240ce50044169ffa4a4267102910c1d6bbce9a5d3675911acaf64dcf0ee3638090c0236ab664e9af5b4b567a8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/fi/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/fi/firefox-57.0b13.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha512 = "dd8ea8dea6f76f3c5dee63abdc187f69e949e0b6b11126d4219b38d1314ba6ac77cc789e0923fe9efb26167200187cb236a783f7aadde64f20798d44839236ef"; + sha512 = "26971b0778b87e3b0a617197356626bc3120b2214b406e01f5fe865430abfeb6dff471496548883e3e2355d32b1630fc85f501eb9934a9b6fd23270d47df5984"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/fr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/fr/firefox-57.0b13.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha512 = "9124a3c541879fa6f886555c93b1e07f431eef0d0b864cf414d2bf5d3cd749e30c65db4fb85a16072260f656598066cb8957d667aebf07f9067646e11fa09ad1"; + sha512 = "324c4cb614a8c50d9d7eabe6e2e3aa420398db7074a7d043c4a44c5785a640988c9d531aab92f51adfaebcbcb1e274f825024b09e302334241a16c622ed97f7f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/fy-NL/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/fy-NL/firefox-57.0b13.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha512 = "2ff6aed7c4b172b5dd801d180a7b7e945a4f39b8b8001e673bfb16b868a2079a2c741ea1a0b44c6588468546e883c6057fc4787eac64ca9b10860b7d538fd72f"; + sha512 = "e5d8d67c5c549240264b7a02ff6c5f54295f04a26553a5a19d3b58f94bd3531c04d5402084fd6f40d63f9aebe2df7d8b50415d8575774f71df5a180e50d39728"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ga-IE/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ga-IE/firefox-57.0b13.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha512 = "163994a889e92bc84999e0c827f7ed0d162b43b1046a0391a851bd826730ce1199fa54a0e5dd549b3f30e197a8535ac5b4e1cb99f7f7a8706f7ecdd5bc125cff"; + sha512 = "01c0998e8a32e6da0127680d17e71c173c21eaab66603ee6fee0ddf8698a16501d290b1ef9d375d4cf678606cb4a73c679434e22b309a592523d11ebcdfd9fab"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/gd/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/gd/firefox-57.0b13.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha512 = "324c856b4f0505bf5481ee57a2549594739dcec8b2a57ff32156c724adc001dfaaa2202b0b66a30565061f4ad8719bebb382ac5961c960f4991e9ab6488f2195"; + sha512 = "88eb2f45c0242400d62310e0efd492b27b6439750d01f0f567dcfa48398c0b2572c842c6155e370b0400b40c2dd88b7f2696daa4e42d0dd5440b4175a409517c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/gl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/gl/firefox-57.0b13.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha512 = "1b055c927c318d09ade13b64e50cb6ed03e10676535c9171ff3867200e8c79bd175b08b89377a4ef86f92f91977cd8a6cbeb48ac8beaf6576707d14743299227"; + sha512 = "d8c9f478d1859240b411ba6a819153d6d260216aa3bd4acdd043b0bd6e65630f02fe4b7f8dd549aef81190ac8358620487d5f2fb796797d220df70b3a597cbbb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/gn/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/gn/firefox-57.0b13.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha512 = "7ef12effe16f92e87d98c71cde4f3f7303674b124a41d174e57a9a4bbca0c6cd33cf8f39bbf72fc693355b5a054fc8c6ef15228751eef52a1599b280c9a17801"; + sha512 = "572a00d95247c758bc81b0cb61c2fa659ee5412ee3ee948640549d6e737fd0ef622ac4e16715fcb269980461bea32ccbd2249448ae8b340ef26c322f5c504090"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/gu-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/gu-IN/firefox-57.0b13.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha512 = "6437e9fc0e171f48c335fc7c6b7ba327dd9419dcd293449ecabef1a6a6546dc70c38099abdd42e5f087290a256362170fec02ca53ee33e8883f4c654c9382e29"; + sha512 = "34a4760f8748b6e6cd1856f5e99f04e320dbcd1cc3021e185abcd23c12e881e2eba31ef9253bda6677c767d5e7fe5aa0dc22f1145852dc58a7e24278a0c6dda2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/he/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/he/firefox-57.0b13.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha512 = "ed8e6b961458652c273e443a29f4640b230044ca03d6da22a374704c800bbf8df4f7e984e9d3ec936153263cf29ee066c4fb6578ffdecf9955b7f65f10c26828"; + sha512 = "57a0b28a0f68d88298d25c62efa70898aa911c11f0733798739f40e546288856306e062033d24abb80964345c0f0224e2c5f3a15b01d89c4ed3584b1e931d91f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/hi-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/hi-IN/firefox-57.0b13.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha512 = "091595a3b68c6951357f1a8e417a8ebed56c41fc1548c8aabe846980c4e3a769795fc0fc7e4cb1af47be2f4bf77b691269018d8ac2052f5acc5111b752fbafb0"; + sha512 = "dc1db5ed5ca72c48729ef8d2a25cf608072fa7112e02b001943242ec027157e197828e85697561febc15740f52f9ecc6d666d5c83201ec8101a24ff66e8eb4dd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/hr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/hr/firefox-57.0b13.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha512 = "4dd4646bedeffd0219e1577e61f4e17f5c2b67b78cd8f8001d033dd7d4f906d0ac8d3e6d5500fa8a4aa049be0f7aeed967909d6cfa13b97fd1b9f93ac7d7b687"; + sha512 = "5488074d04fb6f592abde28e1ddd8e2d949a8744849f51192fbe0441a551b358ef8cf1cb78f69b5340c07b266d11783e2e722ad5574f255186c6bdf9762aed7f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/hsb/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/hsb/firefox-57.0b13.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha512 = "8cc10487146e89e1728529271b6a9e3e6ce6260d495ad0a013c5489da06425ff9adb88bb521ce8bb90c0ac5e21ba126147d23cefe716b2708bf084d39d70c800"; + sha512 = "4bffd78e28363aca1d2b63e56ed44703bbbcb701b4d6e1c353f36939b86c3d7045b5104d7f3da920a8a6cd3b69d021b5d19f9727c5fddb8a86c594d15fae80e4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/hu/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/hu/firefox-57.0b13.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha512 = "5c15c474ce885c88d863f1f22e73d300e0defeaf61009b939ea6c2e62f16a6fb3693a3dafdf264e83c618263153d3dd81bfcacbe5c9f701a28530d17b38d8189"; + sha512 = "6a5ee323244358ed68c96de80f9ce1741217cb002e33a8c93e8386773ab27f11b7bb58747daa4138e5b91b2bb4543e1dbfd14b90731cf5bf357376f4dbdd3a44"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/hy-AM/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/hy-AM/firefox-57.0b13.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha512 = "fdd30dbeeb08a07822de29eb0e6ccb9df895675546054c75b4bfb0cf1f427488cfad9e2a1f541894cf366ddd1bb03e8eb4a75c318a1f80b2cc967a5b4ded8b39"; + sha512 = "28e0cfb93884fd78cc2f126f8c08714545c2550ae40de29e0dc1f3186fdc437592c6365eaa92135dcd1983009be7a5021001d2a7e703bfe6bc81f695ae662619"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/id/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/id/firefox-57.0b13.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha512 = "54734428db8860a7ae9c1543c341a5dd53f6e966f290a176e69f4fa66c2a4bcdd25075c5ec5f311adc033abb85e525b2b7426e113743632ebed07abaf31dba4c"; + sha512 = "00136a82e957274eb9316778ff0f9aae66df21d6ecc64f67757816104aaf5cd6d83c0d9c0224214cd2d1c5a68c7bab75d439cb049035ed2a071255a415b337b3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/is/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/is/firefox-57.0b13.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha512 = "6ee38f9506403f3cb57c6b7f971c599ea1a2e77cbd5424bae209390a20b322f0b527ea4a0be93bac8976cadb5080d22e262d6797b4e9257aec232e768909c235"; + sha512 = "6f22f0efac6858498c755fdcb848553a0e40bb80bc8dd6717d986e84ee5bb8cf7c608592eaeb6653f6454147cf73bfe57b5e62b581c2217b8546fd27fa9e5c79"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/it/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/it/firefox-57.0b13.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha512 = "71a1d593554466db36e09aed429d07ac9ed563af33959c899319e96e7d757e8dfe912a8d18b52cc198a0c4a1c45226406bb56996bc199b67f79c6a3aaea7f6b9"; + sha512 = "6321ade81a09236ab3b3ddd024b3e5ad6404fd712ff6f23f72901018157f9a845c492ecccd1148cedc1911365c70c286a7d947cfc4afa534b274080e7bc6909a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ja/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ja/firefox-57.0b13.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha512 = "7d38e749f69ee99bcb546291b09a0a2b51b969bd4fcea50dc4f386cb951ab8a025c2ae8746c9e1d6398024d7904b63497421fc16f4f061babd0efafd17ea52af"; + sha512 = "b652eb0aa3dfd71dd4d72e45fbf2713fed947b866f1fdf172a473d80cf3005706558a32d7a04b38766517f6ff571166ac5fdc1c8a5b89cacdeb91f9ebe98674f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ka/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ka/firefox-57.0b13.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha512 = "813069de2be9e1b299bbead6e2078d86d3a382bf6d502c5f96a9c10c9571f4dc79127b450760d994e8fe41b3afd966fc70cea60e798432c7b8aa900d3d715bb6"; + sha512 = "38ca6189c55363040db09d55d6b6d525eb91aa4858a660fed3b400ebe5e4cbe723efd9735b77705a1caf811ad0f0a9a117701ce8414ef6109157357193c1a655"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/kab/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/kab/firefox-57.0b13.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha512 = "e1c562cf189a60b15c94fdd681007b4a64fe3e275900c3c78d492854fa28eb61ff30ab65ce7d3537170f28d51ad543e1b306b94d1ef6280b0b03b466fae9edf3"; + sha512 = "bf581810fd19d073fb80dd3ea93b6b856614e4821d095800faacc3c17d63c53d7d65aed4b168a3cdcc29a155073af78d26f5967f29102ec4b1e29325c3686b67"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/kk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/kk/firefox-57.0b13.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha512 = "be54a4085ecccf9d2dbb8894872d73d3d261a8a75c755fbb91ac4c1d8bd3ab696b95a25c87f0d509ab250b53470b20aad3255d128296928c591d45b2786c1cf3"; + sha512 = "aabff3d68e37a9b41f9345d8968608082c24e50e859a693d4642a52e534c5b8b7a5233469a1930fc54ecaf7b15aca486ad66b8cf3100fa62e474b4ff261b37cb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/km/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/km/firefox-57.0b13.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha512 = "6369eb361d1ee31d33b9780072c1c49926fc4314168e5883ca71cf864765d7758d51db55f5ccda231e24ed4b65d2665b5fde7a3fcb1524a04e7057490e8b2308"; + sha512 = "e5bb4825d777bc6001d7d95140d03ac6c44c96eb602141be48c36ac82863dfd5bcfb25b529d61f80b8a939e692bf833886fbbc48c45ecc7e024952ddc5dee570"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/kn/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/kn/firefox-57.0b13.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha512 = "671165858cedd7f4ba9173cabe9532f08de780c967f6af085e73e3ac97f156b39000b3b672bb690cc40691d3b9b6b9d20c08883a1f2a1da689a71093096642a1"; + sha512 = "1f5f4d4fe4b729ae2f08432a5d074354121c876c4cb0e7344e37b8d02e2aad38a0b16547d2987418acb98ecda10805dfd012448332c8f8e5d1f772cbf21554eb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ko/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ko/firefox-57.0b13.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha512 = "04cd3b277dc483cddcf6fbb79687b3ec170d33b0eee46717d645358df0f224c86f36723442e4d28e4460e663b3357f3d3c7a7aa1ec594013a8d91d030e08313a"; + sha512 = "19ef2c157469a3225c7ffb875e66f41a9d2828635b26f6dfa0062cb92c0841c53f2eecf77ba9b043e3e2f448b8a08de55c7f74fc6fdd3f7b4554d13ecfa746bb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/lij/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/lij/firefox-57.0b13.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha512 = "e62b1481001d5d63b65e07b527dbfc29b435f659db7237b411105711a601d9117d62f71dd93849b5ebb8dd0dd4e5981ffe9f318aff2e74485580471f672d5b6c"; + sha512 = "4e5e6103793dd20efb49bb85dac4dbd208c0d164e69c5856bf9fba96350c3682d894af857d239e23f3c3e802f7300b5b915486421414fb6f9b8af86ee50e247e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/lt/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/lt/firefox-57.0b13.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha512 = "f7cb9819f955f7b32439a7ffaf0cb57351bc25be579646d00f945f04152f64c9174bb49c99ec49b2d5c053634c73872a5b4a9615fd66744d0b5c650c9bbc67d9"; + sha512 = "d01f311ee9f36aec032a5c4eca34a86ebcb54960fd29b03af00f2b289c2b4a38e232242d1e48847e2385e7ccabcc1c928ecb1e57f9001d181c350762d59ecc72"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/lv/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/lv/firefox-57.0b13.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha512 = "e7cfab908f9ea12c77ff0a76d2283e205c9b3751eb16a5dc06171e2cc3315193c6010faca943341e1a6496b48b3d90520308c53d85677cc18014fb8560f7714a"; + sha512 = "d23ce47ecf7c790f38a9bd605150f403776b4e469be590a57b9de624fc10bfac2a3572470ff496899c2bd6ebd1799e9f4687b4e77e4714ab8228c26998760b21"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/mai/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/mai/firefox-57.0b13.tar.bz2"; locale = "mai"; arch = "linux-i686"; - sha512 = "6088910c06e1310097d09c6bd582e20928de56fddec03d7338faa9b9651900919315c15cffc601a0e4878ef7c8821d40d5e4d7e6998786b1cd50f21ca0e2dfc6"; + sha512 = "7d8baaa2d79f6e50afe9b915d461a4ca25ba777dbb0497d2fe0b1ed92eb30061061b3a29514351841f86366b91da0979b5bf270e290c477397f3201f1b517398"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/mk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/mk/firefox-57.0b13.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha512 = "d4ab8618c7945843cd0c9234ffa68dc61adfc3759a99bd174f66456038614497e3b389b0af452b3958c12e9b2755ddbed33e098c9e4c07110daf0bc5c4b874cb"; + sha512 = "b1f35402ed051ba91294dbacb52aa451efd48300fe982d638d206c75c3b0f7871fede1d7467ac8d6ea4308c4967b0334873d72c4c731c69f343b92d56fa7bbd1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ml/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ml/firefox-57.0b13.tar.bz2"; locale = "ml"; arch = "linux-i686"; - sha512 = "05d3de5e0565316ccad5ad407299f6c31071d48edf1ec44492e61b8764040f22a6b23230b74f256554f313575084c9d79504d3ef85451c9f73c12edd663c57a4"; + sha512 = "32ea1f66ab87b299de4256cc25c6a67c0754e9fc8569f9c9693aee850c034bce1e77cfa6f8115015f085f74bddee99a7cf487cff09277f011dc51f9deb07b97c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/mr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/mr/firefox-57.0b13.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha512 = "1ba2e3529f379c8e77941ce42a0100cef1f2daab31d8b1a0b23bed898ce0bdc4cb3a873aae71c1c3f5789f35edf7ffd88e11902154a3aa4f3117ba1ba782b0c6"; + sha512 = "3cf3fc88a84de5dce220f89928f05b8f8b1d8ecef2f83d01a880f07d5a935886fc30341eafd941f31213301773f463fb4f4681cfb5e8311665f61c8f28a5c0d7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ms/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ms/firefox-57.0b13.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha512 = "7fe116ab0d79e7de3faeeebcdaedebbfba94ce6320b563ad79de7f3d5459cc113a1f10b6b2fb3c3b074d4a027f0cff9106e078c2945a62e5f3b828459c1e8d83"; + sha512 = "a3b9dca6a332f939e6ac7b51956f34e893e1ab5e62e9c8e3afceeb6233d7d378b44fdd9f6dc46eecd73aa738df46534956545293604faccefc34591a7ee6e12c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/nb-NO/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/my/firefox-57.0b13.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha512 = "9daa4560c3c4424bfbce4f23bc414979dcc96359af3cb7c29f2a9c262aac81d96493cbf9f938b8b25ed0720801d0f87a11a7e5cfa83ba78e86e2fa0d2495fc45"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/nb-NO/firefox-57.0b13.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha512 = "9625821a4ce710ba5f1b5f7416086d4e33c67037e40dc0ad9a5d57049b4fd5bef9fd1b1c4c02cf6910465c641242a5ab9e596c962f5f4ace66b07cf4f0f85405"; + sha512 = "d5ab3676fbc7c3d3bea1af43bff89c3290af5846eefb7bc51d6f946c8c2c7968332de918d5fb11c475e873e7e1a032213e75a00407092e51baa5f0d0a64fcf9e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/nl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/nl/firefox-57.0b13.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha512 = "5ff420c38ec644f622aed733c599a505498bde48f2a573492d647745d7f7c5cee44b009eaccb8de458af813260bd19f9baa7f9f1e2dd946cde48f09510a885cf"; + sha512 = "6f1e8bb355f6ca1e8ced4b9b69de26d8cec4adcf2957a7422b98421fba4c3d7c3fe91596fc9ea06e15137f8bdff27153b9d068b7707c7f56b5357a7aa2ec6ffd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/nn-NO/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/nn-NO/firefox-57.0b13.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha512 = "12ccce434da504753b38449959c97952767fa5af7aa2b0f58777f8775e4dac94d55d67e8d575f68e55e084bc65cdae101ad92b4654bcf345782bbe914d01f655"; + sha512 = "b9c27a5c824efc48e85fba2823d9288990fcec545fac3b1ef6c4617a624ad685b01d96d23ad8bd5eb1e7787849afc630560e08cb7fc617cf2e25c9cb9f2c1ffc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/or/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/or/firefox-57.0b13.tar.bz2"; locale = "or"; arch = "linux-i686"; - sha512 = "3b456b222d39b5a69761da7cd33504fc64ee76d5d8e6e4ca26be158f562bad27a3322604a6542195aed1181f578a650b05200b1ba75d5d8a05e400014bf25660"; + sha512 = "50c0e9956bb17f6df5d342e0f43a4439510e80d4001f504d566d2856e885aeef2b54b57761943771f8a4ba6648209080290fbd6d556934e14565bee023c257ea"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/pa-IN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/pa-IN/firefox-57.0b13.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha512 = "3472c5eb75dd40b68995bfed8542546a9f35e04ca8a7fe17465a99a94846ea696d1cfedcca2d59a47082de6d2261f1701950be3295f063e69846cc90d531f5e0"; + sha512 = "e01f2c4a9cb3f7e6adfcc3e58a5fb5485ab41ae01e302c93404e7b5a7bb1b30f351e364846853a2c6ac0ecddacc03806fea945338c050928c6e8eb6dd0a80600"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/pl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/pl/firefox-57.0b13.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha512 = "0a883e16dc997c748a6d76e32455473ffea6612dcb88446f331e43f9d247f01ae93e49827b1e222a2990e54e201c58aed2150e800080fa47b222daaa69154bd9"; + sha512 = "1bfbc1b9a401e0d9b912f5c91f1eb22b0b968d8bc75ddafa28390071431d17c4251b2624673aa068f59a451b7a9bab165690b5c87ba1dc952242287980c63dc8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/pt-BR/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/pt-BR/firefox-57.0b13.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha512 = "34e6870557e30a75838bcac1e268796f670b8f5dc4e49cdbcc6e34cab5f8c3e4996cc73149d13a5178ebadd1f052ac5c2eaecbaaf0d3f4245080e71f8b86c856"; + sha512 = "75b83b22962b42160d5956db90e55f23c2f12335569f908b1ad1acce48704e9012b4d2c8b3575854e7a36ba9dee49f4b96391a4b6958fe80545501dd91609084"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/pt-PT/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/pt-PT/firefox-57.0b13.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha512 = "932291baa2091d12d9832483d14a6e05568fa8d1d1c41f42d066c5efc13d7e511afcb953945334b9e7a573776bd2263c9e38a64f73cb44f4f8a32509e5fe5119"; + sha512 = "4d9eca88e092531b87d8ddabda513f9a42a762f7af2511dbec25eb88fe791fa94bac3b08c7521227ddec2b049a4a55cd7d862144696702073bc13906b1f39f83"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/rm/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/rm/firefox-57.0b13.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha512 = "7258b1c4a865d593e820220f5b48bfd1a8b9c4a7bdeac9b15208f5060ca501e03b72914b2b53b65164d2db606b092252f0abd6fd83f781ef0f330d4bb487dbb5"; + sha512 = "44b3eaa4cde855738c221e7c1a3acc80d862f5159c13d946d67e47b382dfb4a5a6d360be961a03f605aae3e1c89e2a8a0d16f586646cdd1a3dec13f777b32577"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ro/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ro/firefox-57.0b13.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha512 = "5fedc4a3dee59bcd804eee04ba07ee4b862e6ea8198d1a5c3383cf36667e2f15ef728f21138868b84c15f59c7b11760fb5fe293e8545840d1e5c98945f404eb7"; + sha512 = "a9dc8a1b4f0b236f2660be71df78c41e055b0547d8ce9bc258798fd4483fe888040d2c04a0ab0bab4c95a712d22370d957513b5ed08f1e332803d7067bc37aee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ru/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ru/firefox-57.0b13.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha512 = "8e6a4f786d5db808ac5c63d4abbe4a53b941845a48fe2fb8dfbefb46e01e1053d591aa8bda63ee83785ef3cdc481593c86c804e4683455a2e27fe594b96a650b"; + sha512 = "d2c42dee48f21e847de67efe353088ee949fc0af99ef510f5b76128933fd5432b2e0cced59ce0a0157e396b92beb645d78d758823582cc5dbb63718bf85d9b20"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/si/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/si/firefox-57.0b13.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha512 = "39c0c3487242a54287af42c9457ebe8882112954dec168630b8914896e3900e9799691bb88147927328c4c5f4b2078bf68e623e09ca2f62a4b7efb4e625bb283"; + sha512 = "57be5923936b02cce924fa05994a6a887906104175e305043ea5a51e90cd35cc48c190ddbe2d060d64965b32c65296967dfc53a1e700d7defa078d02907069ef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/sk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/sk/firefox-57.0b13.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha512 = "e87215632b5f0264a04fefd631def717c3f6bdfe31817dbe855d7c6195b4f340af043bf613fa9f89ca4af4893cc6effb876eb51555a089880970315f7ad15e2f"; + sha512 = "12a74e9df967e6a058fbf53baa842bf199190dcc3e5c81eb49da29267760034ea41abdd5b1610f4e06cb30e462cde4c74430d58ab7efe7ed755d19919550827c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/sl/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/sl/firefox-57.0b13.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha512 = "7cb036e5926b2ce9a03b27f37359b640f824f32a918ad8e9959683114755949ad7d2069f02e0206c2d67633ec9763ea612ec3e3e44dc5e881d4e275d1767cf30"; + sha512 = "9053a6dd752ee19f8dc49a2bc41c1d91b6a0f77bca71cbdbbe46b645388320a12be4db14714c62c2306b1bab78059826a8fecdf0897ec52ce0fa8e743e25b83c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/son/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/son/firefox-57.0b13.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha512 = "e74ea45d6b5dab67229472ab524abc805c5e1c91b7ba627d95f0fb5eb1310aacfcd73a4a5fbfe8d7d5546aba9d254297494b34efe81aecc7e261cce23b9e0de1"; + sha512 = "b8f6bbe404306f17ae982238d573302165c366beff14917e64dda7c07b6a2f4e1f9b2042a97b3cbfab02f5e7fb860287cbaa30536494506ded1ee51818d3093a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/sq/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/sq/firefox-57.0b13.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha512 = "8321933b4eec21e9297e446d62f63b4a7c69eef3952d99aa32828b76776c34efc9cc174ded4637c586a383558eebd2ce43a63dcb7608ea0a2568c03fa363e0aa"; + sha512 = "6dd4c84f38d7c1d0ebff77737fec3ec669532fa9be785414a9f125cbf184c88185bfd4541818d696b93237d4acb0654d7c6f38e9a0ab7ea35a10369ccde1bcb8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/sr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/sr/firefox-57.0b13.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha512 = "a81dcf72785936754c04fe2e549795f612af671e360a653860dec811a65ad8e19cb6cba5fb205ee5925f364e49a358d459c354e26b23746a2e5deba41374115a"; + sha512 = "984be4970c5224077e6e97c3137df1d62ccebb7fe78e3506ce4ae78e17d7961653feb276712735293d2ebf22a8ce8b0b91b28edc80b2413fea24dbf059eb1ad6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/sv-SE/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/sv-SE/firefox-57.0b13.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha512 = "1835da3f930b9daa37dc14785feb0d145aa9640278a4119b2a8f6168bb5bb385187914a625fcf3d88c3822ea62f338c2376c08831a2c4d8203a4b6c0bacb2d7a"; + sha512 = "d0fd4b307598fd42d76414f4f097d0ea3e2243ab8de536870be23687eb6ea64f226a54b3fee176451bcd9e1305c6aa4c60daeb72b3341102f670d4905f4efe27"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/ta/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ta/firefox-57.0b13.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha512 = "0a7f219eece161bb3ae9ef280457e94470d1929770123a9197c08eb320ca2119aac66cd7fc5181e4c0c1359514d0338d306db1322435abea70538f9c55d5d7a2"; + sha512 = "6b59fe4cde16c02c5b4867d48e6af4814794bf4a4f3b41e24cfb6e85d1e81f31446193c831b2ce50f30114260fda5e0a20ebe15fa23e1b962f07d66394f5d654"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/te/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/te/firefox-57.0b13.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha512 = "10a412a83c75b8a7d4adc800c858d9f0adbbf7b2c08cf8a3d5dc494ecf38cf8a83cd3a462eda7eabdec73e194264b698f40a705458fb0916829b783c511fd3aa"; + sha512 = "a65e6b4d28f91764aadde1dd954d1e888a5bb24f356deba73c68fcc98d8be669a8f5147233af89881dbf20e40ba987326d15d5fcb857598e6718fdac4c5a59ce"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/th/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/th/firefox-57.0b13.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha512 = "d5bd9c86174be82336f711d50dc75e6f252a468083354c0a1dff99f4c72469a1a789144ffab2beba65d3e43a2e8812955176f426b560bb000607bb683eed81ac"; + sha512 = "bc6d32c9054072fe931b703aec3c2a6a60d25dccd6e853eca5e716903a4694618e4cae79c9aafa52a2bd34133b6314b5eeecb92e56082c84dc10c47dd46be085"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/tr/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/tr/firefox-57.0b13.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha512 = "7ec4d2419a1afd9b23351ed896c92ba7812f4aac083e72242d21e0608c32dd5ac157c8d08a89991fd051f6fa0cc56507739b49cc94731a4aa83219d9c76cfc85"; + sha512 = "31e923c48adbb9e2b87ab6d5bf9ceb951426ad8c523b8def49900875d2a66220c2800ca25ddd4fc0f8a007ca4c95f7a69311228b34c5a8429bb26ce9b0f43871"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/uk/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/uk/firefox-57.0b13.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha512 = "eaebff23162685126416f9974ca6d4d20a8dfa320818c76716e695c6d9984e4591620185fc5bb4ea97c2ab0d042864525f9704d7c3e0fd222db3eb60fbbc63cd"; + sha512 = "5036b3bf40bbfb13eb99aec17d90e9a7a60bb39eab1bcd21fa62b1d12b47f4b9eca7980c762f67ff5406ddcb20777a6553fcb02e611b276f1cdd483c8b67c162"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/uz/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/ur/firefox-57.0b13.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha512 = "3605b5370f7158ffa54f5c5def6806885cc609b385b363e5a5c6442ff9262fd666e35b3f2256ad68b8f03a9e95282f3792ab83f49f0efb1e422b6dde56a85713"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/uz/firefox-57.0b13.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha512 = "5cc21748974536c0f2e73dbd486e2bba1e5d44b4c198d94a6a4d8c3c0be925e89264a7201031903e1c4a41e4bd2c9fb558117ace9acb8f52051224c35b3558ec"; + sha512 = "a15e00c34a831eb8b251f60a9e17f7cdb65ed097fe0182a576c5809ecd208938d38c99a711750f0fb7835565adfefb15acbabe3b66c2f03eff36bf05527b47d4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/vi/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/vi/firefox-57.0b13.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha512 = "42ad1640ffd4c1f35addf69156992f87e1cf5925c8e5d5a1ee49a34835d28117918d3c7cc7087e258726f83e16e3e8fae14f6b8530d308b29606105c8a2f337d"; + sha512 = "fa4e9de86197c3a95cd0d048e16de89bafd9d4733d3f2c96d221aa5c3839b980ab92efde0d18347251edf718f8d37a3fb8c5afcbaf254f697e320420cb91cc96"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/xh/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/xh/firefox-57.0b13.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha512 = "14f18ee698bf639d4e51c13f58257af6a4a87e912e14dce51b2052351005f66df501e5b28408079d6d6221e2419da55675d298859c65b6c40b94108a7406f5c2"; + sha512 = "19b4a96abda10b29ab9aada2d9ba70e259ba0a3082796def317e1869f27b6326fe03f9d909f6753f494caef08f0f24e41f5b8be16c5c84ccaf06cf354b926cf5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/zh-CN/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/zh-CN/firefox-57.0b13.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha512 = "66ee019ea1694d8e16e16a39799fa0bf1b6fca66a39ed5435865c7d3fd9ebd93496d20c37d750a1e70006e11672ae1a603ea81781146a10086604dbe39c3f2d4"; + sha512 = "dd7e4c7bf1af9975f043bcc2be140b6c667f6dd74c2acc5d31963f6963fa5e0d7dc672fcfaca7ebfe99fd14cbd78725d24dc9c490c9ed1e211bd9e154e51c311"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/51.0b8/linux-i686/zh-TW/firefox-51.0b8.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/57.0b13/linux-i686/zh-TW/firefox-57.0b13.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha512 = "2575b4111e6061f941237392f23254eabbe7bf7c29a5113fcd61780238fb22f5b9d8ca9df0243f29d40b69f65ab5fa59d8ed83fdaff96ebab0b0e648f9adc0ad"; + sha512 = "82b442aeb21b5b0fa7d48519ef5a1d3a6b57f2e013cc4e7a18b050cdd6632ec69e8383e58d0608515397a460a2bf339e03f3e11f780698d5b8e3cd4f3aa8f5fc"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 5bd275ba31d..31bc01ea14a 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, config, makeWrapper +{ stdenv, fetchurl, config, wrapGAppsHook , alsaLib , atk , cairo @@ -16,6 +16,7 @@ , gstreamer , gtk2 , gtk3 +, kerberos , libX11 , libXScrnSaver , libxcb @@ -37,7 +38,8 @@ , libheimdal , libpulseaudio , systemd -, generated ? import ./sources.nix +, channel +, generated , writeScript , xidel , coreutils @@ -68,7 +70,7 @@ let source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources; - name = "firefox-bin-unwrapped-${version}"; + name = "firefox-${channel}-bin-unwrapped-${version}"; in @@ -77,7 +79,7 @@ stdenv.mkDerivation { src = fetchurl { inherit (source) url sha512; }; - phases = "unpackPhase installPhase"; + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc @@ -99,6 +101,7 @@ stdenv.mkDerivation { gstreamer gtk2 gtk3 + kerberos libX11 libXScrnSaver libXcomposite @@ -124,11 +127,19 @@ stdenv.mkDerivation { stdenv.cc.cc ]; - buildInputs = [ makeWrapper gtk3 defaultIconTheme ]; + inherit gtk3; + + buildInputs = [ wrapGAppsHook gtk3 defaultIconTheme ]; # "strip" after "patchelf" may break binaries. # See: https://github.com/NixOS/patchelf/issues/10 - dontStrip = 1; + dontStrip = true; + dontPatchELF = true; + + patchPhase = '' + sed -i -e '/^pref("app.update.channel",/d' defaults/pref/channel-prefs.js + echo 'pref("app.update.channel", "non-existing-channel")' >> defaults/pref/channel-prefs.js + ''; installPhase = '' @@ -155,27 +166,17 @@ stdenv.mkDerivation { # wrapFirefox expects "$out/lib" instead of "$out/usr/lib" ln -s "$out/usr/lib" "$out/lib" - # Create a desktop item. - mkdir -p $out/share/applications - cat > $out/share/applications/firefox.desktop <ga + ''; + + configureFlags = [ + "--enable-application=browser" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + "--with-system-libevent" + "--with-system-libvpx" + "--with-system-png" # needs APNG support + "--with-system-icu" + "--enable-system-ffi" + "--enable-system-hunspell" + "--enable-system-pixman" + "--enable-system-sqlite" + #"--enable-system-cairo" + "--enable-startup-notification" + #"--enable-content-sandbox" # TODO: probably enable after 54 + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-updater" + "--enable-jemalloc" + "--disable-maintenance-service" + "--disable-gconf" + "--enable-default-toolkit=cairo-gtk${if gtk3Support then "3" else "2"}" + ] + ++ lib.optionals (stdenv.lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [ + # on i686-linux: --with-libclang-path is not available in this configuration + "--with-libclang-path=${llvmPackages.clang-unwrapped}/lib" + "--with-clang-path=${llvmPackages.clang}/bin/clang" + ] + + # TorBrowser patches these + ++ lib.optionals (!isTorBrowserLike) [ + "--with-system-nss" + "--with-system-nspr" + ] + + # and wants these + ++ lib.optionals isTorBrowserLike [ + "--with-tor-browser-version=${version}" + "--enable-signmar" + "--enable-verify-mar" + + # We opt out of TorBrowser's nspr because that patch is useless on + # anything but Windows and produces zero fingerprinting + # possibilities on other platforms. + # Lets save some space instead. + "--with-system-nspr" + ] + + ++ flag alsaSupport "alsa" + ++ flag pulseaudioSupport "pulseaudio" + ++ flag ffmpegSupport "ffmpeg" + ++ flag gssSupport "negotiateauth" + ++ lib.optional (!ffmpegSupport) "--disable-gstreamer" + ++ flag webrtcSupport "webrtc" + ++ flag geolocationSupport "mozril-geoloc" + ++ lib.optional googleAPISupport "--with-google-api-keyfile=ga" + ++ flag crashreporterSupport "crashreporter" + ++ flag safeBrowsingSupport "safe-browsing" + ++ lib.optional drmSupport "--enable-eme=widevine" + + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] + else [ "--disable-debug" "--enable-release" + "--enable-optimize" + "--enable-strip" ]) + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ extraConfigureFlags; + + preBuild = lib.optionalString (enableOfficialBranding && isTorBrowserLike) '' + buildFlagsArray=("MOZ_APP_DISPLAYNAME=Tor Browser") + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ] + ++ extraMakeFlags; + + enableParallelBuilding = true; + + preInstall = '' + # The following is needed for startup cache creation on grsecurity kernels. + paxmark m dist/bin/xpcshell + ''; + + postInstall = '' + # For grsecurity kernels + paxmark m $out/lib/firefox-[0-9]*/{firefox,firefox-bin,plugin-container} + + # Remove SDK cruft. FIXME: move to a separate output? + rm -rf $out/share/idl $out/include $out/lib/firefox-devel-* + + # Needed to find Mozilla runtime + gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") + ''; + + postFixup = '' + # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712. + patchelf --set-rpath "${lib.getLib libnotify + }/lib:$(patchelf --print-rpath "$out"/lib/firefox-*/libxul.so)" \ + "$out"/lib/firefox-*/libxul.so + ''; + + doInstallCheck = true; + installCheckPhase = '' + # Some basic testing + "$out/bin/firefox" --version + ''; + + passthru = { + browserName = "firefox"; + inherit version updateScript; + isFirefox3Like = true; + inherit isTorBrowserLike; + gtk = gtk2; + inherit nspr; + inherit ffmpegSupport; + inherit gssSupport; + } // lib.optionalAttrs gtk3Support { inherit gtk3; }; + +} // overrides) diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix deleted file mode 100644 index 3193490b639..00000000000 --- a/pkgs/applications/networking/browsers/firefox/default.nix +++ /dev/null @@ -1,175 +0,0 @@ -{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, libIDL -, libjpeg, zlib, dbus, dbus_glib, bzip2, xorg -, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify -, yasm, mesa, sqlite, unzip, makeWrapper -, hunspell, libevent, libstartup_notification, libvpx -, cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc, libpulseaudio -, autoconf213, which, cargo, rustc -, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl -, enableGTK3 ? false, gtk3, wrapGAppsHook -, debugBuild ? false -, # If you want the resulting program to call itself "Firefox" instead - # of "Nightly" or whatever, enable this option. However, those - # binaries may not be distributed without permission from the - # Mozilla Foundation, see - # http://www.mozilla.org/foundation/trademarks/. - enableOfficialBranding ? false -}: - -assert stdenv.cc ? libc && stdenv.cc.libc != null; - -let - -common = { pname, version, sha512, updateScript }: stdenv.mkDerivation rec { - name = "${pname}-unwrapped-${version}"; - - src = fetchurl { - url = - let ext = if lib.versionAtLeast version "41.0" then "xz" else "bz2"; - in "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.${ext}"; - inherit sha512; - }; - - # this patch should no longer be needed in 53 - # from https://bugzilla.mozilla.org/show_bug.cgi?id=1013882 - patches = lib.optional debugBuild ./fix-debug.patch; - - buildInputs = - [ gtk2 zip libIDL libjpeg zlib bzip2 - dbus dbus_glib pango freetype fontconfig xorg.libXi - xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file - alsaLib nspr nss libnotify xorg.pixman yasm mesa - xorg.libXScrnSaver xorg.scrnsaverproto - xorg.libXext xorg.xextproto sqlite unzip - hunspell libevent libstartup_notification libvpx /* cairo */ - icu libpng jemalloc - libpulseaudio # only headers are needed - ] - ++ lib.optional enableGTK3 gtk3 - ++ lib.optionals (!passthru.ffmpegSupport) [ gstreamer gst-plugins-base ]; - - nativeBuildInputs = - [ autoconf213 which gnused pkgconfig perl python cargo rustc ] - ++ lib.optional enableGTK3 wrapGAppsHook; - - configureFlags = - [ "--enable-application=browser" - "--with-system-jpeg" - "--with-system-zlib" - "--with-system-bz2" - "--with-system-nspr" - "--with-system-nss" - "--with-system-libevent" - "--with-system-libvpx" - "--with-system-png" # needs APNG support - "--with-system-icu" - "--enable-alsa" - "--enable-system-ffi" - "--enable-system-hunspell" - "--enable-system-pixman" - "--enable-system-sqlite" - #"--enable-system-cairo" - "--enable-startup-notification" - "--enable-content-sandbox" # available since 26.0, but not much info available - "--disable-crashreporter" - "--disable-tests" - "--disable-necko-wifi" # maybe we want to enable this at some point - "--disable-updater" - "--enable-jemalloc" - "--disable-gconf" - "--enable-default-toolkit=cairo-gtk${if enableGTK3 then "3" else "2"}" - "--with-google-api-keyfile=ga" - ] - ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] - else [ "--disable-debug" "--enable-release" - "--enable-optimize" - "--enable-strip" ]) - ++ lib.optional enableOfficialBranding "--enable-official-branding"; - - enableParallelBuilding = true; - - preConfigure = - '' - configureScript="$(realpath ./configure)" - mkdir ../objdir - cd ../objdir - - # Google API key used by Chromium and Firefox. - # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, - # please get your own set of keys. - echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" >ga - ''; - - preInstall = - '' - # The following is needed for startup cache creation on grsecurity kernels. - paxmark m ../objdir/dist/bin/xpcshell - ''; - - postInstall = - '' - # For grsecurity kernels - paxmark m $out/lib/firefox-[0-9]*/{firefox,firefox-bin,plugin-container} - - # Remove SDK cruft. FIXME: move to a separate output? - rm -rf $out/share/idl $out/include $out/lib/firefox-devel-* - - # Needed to find Mozilla runtime - gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") - ''; - - postFixup = - # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712. - '' - patchelf --set-rpath "${lib.getLib libnotify - }/lib:$(patchelf --print-rpath "$out"/lib/firefox-*/libxul.so)" \ - "$out"/lib/firefox-*/libxul.so - ''; - - doInstallCheck = true; - installCheckPhase = - '' - # Some basic testing - "$out/bin/firefox" --version - ''; - - meta = { - description = "A web browser" + lib.optionalString (pname == "firefox-esr") " (Extended Support Release)"; - homepage = http://www.mozilla.com/en-US/firefox/; - maintainers = with lib.maintainers; [ eelco ]; - platforms = lib.platforms.linux; - }; - - passthru = { - inherit nspr version updateScript; - gtk = gtk2; - isFirefox3Like = true; - browserName = "firefox"; - ffmpegSupport = lib.versionAtLeast version "46.0"; - }; -}; - -in { - - firefox-unwrapped = common { - pname = "firefox"; - version = "53.0"; - sha512 = "36ec810bab58e3d99478455a38427a5efbc74d6dd7d4bb93b700fd7429b9b89250efd0abe4609091483991802090c6373c8434dfc9ba64c79a778e51fd2a2886"; - updateScript = import ./update.nix { - attrPath = "firefox-unwrapped"; - inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl; - }; - }; - - firefox-esr-unwrapped = common { - pname = "firefox-esr"; - version = "52.1.0esr"; - sha512 = "ba833904654eda347f83df77e04c8e81572772e8555f187b796ecc30e498b93fb729b6f60935731d9584169adc9d61329155364fddf635cbd11abebe4a600247"; - updateScript = import ./update.nix { - attrPath = "firefox-esr-unwrapped"; - versionSuffix = "esr"; - inherit writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl; - }; - }; - -} diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch new file mode 100644 index 00000000000..83f9a1329be --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch @@ -0,0 +1,25 @@ +diff -ru -x '*~' firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp firefox-55.0.3/docshell/base/nsAboutRedirector.cpp +--- firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200 ++++ firefox-55.0.3/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200 +@@ -40,10 +40,6 @@ + nsIAboutModule::ALLOW_SCRIPT + }, + { +- "buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT +- }, +- { + "checkerboard", "chrome://global/content/aboutCheckerboard.xhtml", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT +diff -ru -x '*~' firefox-55.0.3-orig/toolkit/content/jar.mn firefox-55.0.3/toolkit/content/jar.mn +--- firefox-55.0.3-orig/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200 ++++ firefox-55.0.3/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200 +@@ -40,7 +40,6 @@ + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/contentAreaUtils.js + #ifndef MOZ_FENNEC + content/global/customizeToolbar.css diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix new file mode 100644 index 00000000000..a1d5df5029c --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/packages.nix @@ -0,0 +1,135 @@ +{ lib, callPackage, stdenv, overrideCC, gcc5, fetchurl, fetchFromGitHub, fetchpatch }: + +let common = opts: callPackage (import ./common.nix opts); in + +rec { + + firefox = common rec { + pname = "firefox"; + version = "56.0.2"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; + sha512 = "35f81e8163a254b7e134fc073acbcff63aa1025b9c6392377650a8f2d0a5f0c77211adb0ae3d8ac85f036bb387246934b8847f14a03fceb7fcbc5b3cf94c9392"; + }; + + patches = + [ ./no-buildconfig.patch ] + ++ lib.optional stdenv.isi686 (fetchpatch { + url = "https://hg.mozilla.org/mozilla-central/raw-rev/15517c5a5d37"; + sha256 = "1ba487p3hk4w2w7qqfxgv1y57vp86b8g3xhav2j20qd3j3phbbn7"; + }); + + meta = { + description = "A web browser built from Firefox source tree"; + homepage = http://www.mozilla.com/en-US/firefox/; + maintainers = with lib.maintainers; [ eelco ]; + platforms = lib.platforms.linux; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-unwrapped"; + }; + } {}; + + firefox-esr = common rec { + pname = "firefox-esr"; + version = "52.4.1esr"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; + sha512 = "d80c7219548391d8a47b6e404662ea41e6acfa264a67d69365e76dd8943077e388ab24b030850919f8fc6681c11486bdbaaf170d441c861f4a12cedbe08955ab"; + }; + + meta = firefox.meta // { + description = "A web browser built from Firefox Extended Support Release source tree"; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-esr-unwrapped"; + versionSuffix = "esr"; + }; + } {}; + +} // (let + + commonAttrs = { + overrides = { + unpackPhase = '' + # fetchFromGitHub produces ro sources, root dir gets a name that + # is too long for shebangs. fixing + cp -a $src tor-browser + chmod -R +w tor-browser + cd tor-browser + + # set times for xpi archives + find . -exec touch -d'2010-01-01 00:00' {} \; + ''; + }; + + meta = { + description = "A web browser built from TorBrowser source tree"; + longDescription = '' + This is a version of TorBrowser with bundle-related patches + reverted. + + I.e. it's a variant of Firefox with less fingerprinting and + some isolation features you can't get with any extensions. + + Or, alternatively, a variant of TorBrowser that works like any + other UNIX program and doesn't expect you to run it from a + bundle. + + It will use your default Firefox profile if you're not careful + even! Be careful! + + It will clash with firefox binary if you install both. But its + not a problem since you should run browsers in separate + users/VMs anyway. + + Create new profile by starting it as + + $ firefox -ProfileManager + + and then configure it to use your tor instance. + ''; + homepage = https://www.torproject.org/projects/torbrowser.html; + platforms = lib.platforms.linux; + }; + }; + +in rec { + + tor-browser-6-5 = common (rec { + pname = "tor-browser"; + version = "6.5.2"; + isTorBrowserLike = true; + extraConfigureFlags = [ "--disable-loop" ]; + + # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb + src = fetchFromGitHub { + owner = "SLNOS"; + repo = "tor-browser"; + # branch "tor-browser-45.8.0esr-6.5-2" + rev = "e4140ea01b9906934f0347e95f860cec207ea824"; + sha256 = "0a1qk3a9a3xxrl56bp4zbknbchv5x17k1w5kgcf4j3vklcv6av60"; + }; + } // commonAttrs) { + stdenv = overrideCC stdenv gcc5; + ffmpegSupport = false; + gssSupport = false; + }; + + tor-browser-7-0 = common (rec { + pname = "tor-browser"; + version = "7.0.1"; + isTorBrowserLike = true; + + # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb + src = fetchFromGitHub { + owner = "SLNOS"; + repo = "tor-browser"; + rev = "tor-browser-52.3.0esr-7.0-1-slnos"; + sha256 = "0szbf8gjbl4dnrb4igy4mq5858i1y6ki4skhdw63iqqdd8w9v4yv"; + }; + } // commonAttrs) {}; + + tor-browser = tor-browser-7-0; + +}) diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index f2ca9eaa622..7a7d1368cb2 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -8,6 +8,8 @@ , google_talk_plugin, fribid, gnome3/*.gnome_shell*/ , esteidfirefoxplugin , vlc_npapi +, libudev +, kerberos }: ## configurability of the wrapper itself @@ -24,6 +26,7 @@ let cfg = stdenv.lib.attrByPath [ browserName ] {} config; enableAdobeFlash = cfg.enableAdobeFlash or false; ffmpegSupport = browser.ffmpegSupport or false; + gssSupport = browser.gssSupport or false; jre = cfg.jre or false; icedtea = cfg.icedtea or false; @@ -45,8 +48,9 @@ let ++ lib.optional (cfg.enableVLC or false) vlc_npapi ); libs = (if ffmpegSupport then [ ffmpeg ] else with gst_all; [ gstreamer gst-plugins-base ]) + ++ lib.optional gssSupport kerberos ++ lib.optionals (cfg.enableQuakeLive or false) - (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) + (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib libudev ]) ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash ++ lib.optional (config.pulseaudio or false) libpulseaudio; gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ]; @@ -74,7 +78,9 @@ in stdenv.mkDerivation { ]; }; - buildInputs = [makeWrapper] ++ lib.optionals (!ffmpegSupport) gst-plugins; + buildInputs = [makeWrapper] + ++ lib.optional (!ffmpegSupport) gst-plugins + ++ lib.optional (browser ? gtk3) browser.gtk3; buildCommand = '' if [ ! -x "${browser}/bin/${browserName}" ] @@ -92,7 +98,13 @@ in stdenv.mkDerivation { --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ --suffix PATH ':' "$out/bin" \ --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ - ${lib.optionalString (!ffmpegSupport) ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"''} + ${lib.optionalString (!ffmpegSupport) + ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"'' + + lib.optionalString (browser ? gtk3) + ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : '${gnome3.defaultIconTheme}/share' + '' + } if [ -e "${browser}/share/icons" ]; then mkdir -p "$out/share" @@ -120,6 +132,8 @@ in stdenv.mkDerivation { passthru = { unwrapped = browser; }; + disallowedRequisites = [ stdenv.cc ]; + meta = browser.meta // { description = browser.meta.description diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index 32d3a8e1540..9a4d90701b2 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -4,7 +4,7 @@ , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb , alsaLib, libXdamage, libXtst, libXrandr, expat, cups -, dbus_libs, gtk2, gtk3, gdk_pixbuf, gcc +, dbus_libs, gtk2, gtk3, gdk_pixbuf, gcc-unwrapped # command line arguments which are always set e.g "--disable-gpu" , commandLineArgs ? "" @@ -31,6 +31,9 @@ # Only needed for getting information about upstream binaries , chromium + +, gsettings_desktop_schemas +, gnome2, gnome3 }: with stdenv.lib; @@ -42,19 +45,21 @@ let withCustomModes = true; }; + gtk = if (versionAtLeast version "59.0.0.0") then gtk3 else gtk2; + gnome = if (versionAtLeast version "59.0.0.0") then gnome3 else gnome2; + deps = [ - stdenv.cc.cc glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb alsaLib libXdamage libXtst libXrandr expat cups - dbus_libs gdk_pixbuf gcc + dbus_libs gdk_pixbuf gcc-unwrapped.lib systemd libexif liberation_ttf curl utillinux xdg_utils wget flac harfbuzz icu libpng opusWithCustomModes snappy speechd bzip2 libcap ] ++ optional pulseSupport libpulseaudio - ++ (if (versionAtLeast version "59.0.0.0") then [gtk3] else [gtk2]); + ++ [ gtk ]; suffix = if channel != "stable" then "-" + channel else ""; @@ -65,7 +70,15 @@ in stdenv.mkDerivation rec { src = binary; - buildInputs = [ patchelf ]; + buildInputs = [ + patchelf + + # needed for GSETTINGS_SCHEMAS_PATH + gsettings_desktop_schemas glib gtk + + # needed for XDG_ICON_DIRS + gnome.defaultIconTheme + ]; unpackPhase = '' ar x $src @@ -110,6 +123,7 @@ in stdenv.mkDerivation rec { #!${bash}/bin/sh export LD_LIBRARY_PATH=$rpath\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} export PATH=$binpath\''${PATH:+:\$PATH} + export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS $out/share/google/$appname/google-$appname ${commandLineArgs} "\$@" EOF chmod +x $exe diff --git a/pkgs/applications/networking/browsers/jumanji/default.nix b/pkgs/applications/networking/browsers/jumanji/default.nix index b1d77afa8f1..e013f54a39e 100644 --- a/pkgs/applications/networking/browsers/jumanji/default.nix +++ b/pkgs/applications/networking/browsers/jumanji/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "1dsbyz489fx7dp07i29q1rjkl7nhrfscc8ks8an2rdyhx3457asg"; }; - buildInputs = [ girara pkgconfig gtk webkitgtk makeWrapper gsettings_desktop_schemas ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ girara gtk webkitgtk makeWrapper gsettings_desktop_schemas ]; makeFlags = [ "PREFIX=$(out)" ]; @@ -23,7 +24,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Minimal web browser"; - homepage = http://pwmt.org/projects/jumanji/; + homepage = https://pwmt.org/projects/jumanji/; platforms = platforms.all; maintainers = [ maintainers.koral ]; }; diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix index f504c3c2b33..f097d748d48 100644 --- a/pkgs/applications/networking/browsers/links2/default.nix +++ b/pkgs/applications/networking/browsers/links2/default.nix @@ -30,12 +30,6 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional enableFB "--with-fb" ++ stdenv.lib.optional enableDirectFB "--with-directfb"; - crossAttrs = { - preConfigure = '' - export CC=$crossConfig-gcc - ''; - }; - meta = with stdenv.lib; { homepage = http://links.twibright.com/; description = "A small browser with some graphics support"; diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix index fb4b33ef71a..0f6c4ed36d4 100644 --- a/pkgs/applications/networking/browsers/lynx/default.nix +++ b/pkgs/applications/networking/browsers/lynx/default.nix @@ -1,30 +1,44 @@ -{ stdenv, fetchurl, ncurses, gzip +{ stdenv, buildPackages +, fetchurl, pkgconfig, ncurses, gzip , sslSupport ? true, openssl ? null +, buildPlatform, hostPlatform +, nukeReferences }: assert sslSupport -> openssl != null; stdenv.mkDerivation rec { name = "lynx-${version}"; - version = "2.8.9dev.11"; + version = "2.8.9dev.16"; src = fetchurl { url = "http://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2"; - sha256 = "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a"; + sha256 = "1j0vx871ghkm7fgrafnvd2ml3ywcl8d3gyhq02fhfb851c88lc84"; }; - configureFlags = [] - ++ stdenv.lib.optionals sslSupport [ "--with-ssl=${openssl.dev}" ]; + enableParallelBuilding = true; - buildInputs = [ ncurses gzip ]; + hardeningEnable = [ "pie" ]; - crossAttrs = { - configureFlags = configureFlags ++ [ "--enable-widec" ]; - }; + configureFlags = [ "--enable-widec" ] ++ stdenv.lib.optional sslSupport "--with-ssl"; + + nativeBuildInputs = stdenv.lib.optional sslSupport pkgconfig + ++ stdenv.lib.optional (hostPlatform != buildPlatform) buildPackages.stdenv.cc + ++ [ nukeReferences ]; + + buildInputs = [ ncurses gzip ] ++ stdenv.lib.optional sslSupport openssl.dev; + + # cfg_defs.h captures lots of references to build-only dependencies, derived + # from config.cache. + postConfigure = '' + make cfg_defs.h + nuke-refs cfg_defs.h + ''; meta = with stdenv.lib; { - homepage = http://lynx.isc.org/; description = "A text-mode web browser"; + homepage = http://lynx.invisible-island.net/; + license = licenses.gpl2Plus; platforms = platforms.unix; }; } diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix index 1d287f4100c..ce9ac961c92 100644 --- a/pkgs/applications/networking/browsers/midori/default.nix +++ b/pkgs/applications/networking/browsers/midori/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Lightweight WebKitGTK+ web browser"; - homepage = "http://midori-browser.org"; + homepage = http://midori-browser.org; license = with licenses; [ lgpl21Plus ]; platforms = with platforms; linux; maintainers = with maintainers; [ raskin ramkromberg ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix index c33bff60e01..fa98f2a9e78 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix @@ -24,8 +24,6 @@ stdenv.mkDerivation rec { sha256 = "1fgjgzss0ghk734xpfidazyknfdn11pmyw77pc3wigl83dvx4nb2"; }; - phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; - unpackPhase = "${dpkg}/bin/dpkg-deb -x $src ."; installPhase = diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix index 039d8bbe406..48d06d644dd 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { cd src ''; - buildInputs = [ gtk2 openssl pcsclite pkgconfig opensc ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gtk2 openssl pcsclite opensc ]; buildPhase = '' sed -i "s|opensc-pkcs11.so|${opensc}/lib/pkcs11/opensc-pkcs11.so|" Makefile @@ -37,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Firefox ID card signing plugin"; - homepage = "http://www.id.ee/"; + homepage = http://www.id.ee/; license = licenses.lgpl2; platforms = platforms.linux; maintainers = [ maintainers.jagajaga ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix index bf0b91544ad..8e24a3fb619 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix @@ -73,25 +73,25 @@ let in stdenv.mkDerivation rec { name = "flashplayer-${version}"; - version = "25.0.0.148"; + version = "27.0.0.183"; src = fetchurl { url = if debug then - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_npapi_linux_debug.${arch}.tar.gz" + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/27/flash_player_npapi_linux_debug.${arch}.tar.gz" else "https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz"; sha256 = if debug then if arch == "x86_64" then - "1jxxnbd357ndw8b64lw4pwkg9j0shy0ns7xw0f36awimq7bclr8d" + "1qn9hm9c303jihksfc8sb5yjpcasj711s66lhqlqmj5hd0r8bzya" else - "1k0zyy4mz307r7ph4pnmyqaa0fdw2f52apala6dbrys0wdl05yfg" + "19d0d4fn2p2wvh27gshybgc4xpjp0ibgm2gg8g0jzrvbc3cqdz0j" else if arch == "x86_64" then - "0n77a2z0928vd4bjgx69igzxvn8l9wrfh79j6knygdpnsbr3pybj" + "0df8lbbvr226k9z6p2jwxandjb6yy0bqz5kaz79hpj0dwkiqwax1" else - "1cb1h37av4icfhl4vjngsa3nfcrcdvzliwxdg22rshimlkfgr7vx"; + "0vs63rlra5ccm24j908zrcxhffjlmvjr6pb2bb7a4fmnfjrk4idf"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix index 4d65a7e9a62..cf00f303e99 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix @@ -55,19 +55,19 @@ let in stdenv.mkDerivation rec { name = "flashplayer-standalone-${version}"; - version = "25.0.0.148"; + version = "27.0.0.183"; src = fetchurl { url = if debug then - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux_debug.x86_64.tar.gz" + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/27/flash_player_sa_linux_debug.x86_64.tar.gz" else - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/25/flash_player_sa_linux.x86_64.tar.gz"; + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/27/flash_player_sa_linux.x86_64.tar.gz"; sha256 = if debug then - "1pkzpip8d3m92kyzap00xxq40yilgmaqnc47nak3i7gnbic8fa2r" + "0vf28qdhb1ly5w3hhy3n20r4nyvwsxj5csb969s0r328nf1xaflj" else - "0xxsbxnkf9xnljy6sn61jqx9xd1w0lm5mbw4ca7xk5rkc84ik91z"; + "0jqbnbpdrmxh2jnai0bv4c8jzsvqmcnhsp1hzaygsvp0ri4vncs8"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix index 81a05b36016..30bae8792c2 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649"; }; - buildInputs = [ pkgconfig openssl libX11 gtk2 glib gettext intltool ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl libX11 gtk2 glib gettext intltool ]; patches = [ ./translation-xgettext-to-intltool.patch ./plugin-linkfix.patch diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix index 07e152e91db..a5bfda9f26c 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix @@ -17,7 +17,8 @@ stdenv.mkDerivation rec { '' else ""); - buildInputs = [ pkgconfig browser (browser.gtk) libXpm gettext ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ browser (browser.gtk) libXpm gettext ]; installPhase = '' mkdir -p $out/lib/mozilla/plugins diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix index 85012f8f709..008c3596483 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix @@ -24,13 +24,14 @@ stdenv.mkDerivation rec { export configureFlags="$configureFlags --target-cpu=$(uname -m)" ''; - buildInputs = [which pkgconfig file glib gtk2 gtk3 curl libXt]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [which file glib gtk2 gtk3 curl libXt]; preferLocalBuild = true; meta = { description = ''A wrapper to run browser plugins out-of-process''; - homepage = "http://nspluginwrapper.org/"; + homepage = http://nspluginwrapper.org/; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.raskin ]; diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index 2863ee876e7..52a2ce9164c 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -12,7 +12,7 @@ , gdk_pixbuf , glib , gnome2 -, gtk2 +, gtk3 , libX11 , libxcb , libXScrnSaver @@ -37,7 +37,7 @@ let mirror = https://get.geo.opera.com/pub/opera/desktop; - version = "44.0.2510.857"; + version = "46.0.2597.39"; rpath = stdenv.lib.makeLibraryPath [ @@ -55,7 +55,7 @@ let gdk_pixbuf.out glib.out gnome2.GConf.out - gtk2.out + gtk3.out libX11.out libXScrnSaver.out libXcomposite.out @@ -88,17 +88,18 @@ in stdenv.mkDerivation { name = "opera-${version}"; src = - if stdenv.system == "i686-linux" then - fetchurl { - url = "${mirror}/${version}/linux/opera-stable_${version}_i386.deb"; - sha256 = "1589phaxbzmsr70afzqkrlm4fy4nwf2c0gn4rbv2ah2bq62bcp36"; - } - else if stdenv.system == "x86_64-linux" then + #if stdenv.system == "i686-linux" then + # fetchurl { + # url = "${mirror}/${version}/linux/opera-stable_${version}_i386.deb"; + # sha256 = "..."; + # } + #else + if stdenv.system == "x86_64-linux" then fetchurl { url = "${mirror}/${version}/linux/opera-stable_${version}_amd64.deb"; - sha256 = "1fah9pm42ljdcdqgxjikb03c8393smhh3g2rbkhrvmjwknba05ym"; + sha256 = "1ladvqilm5rr222wjybvribnyii2l0p8jbsd10xr06wps63g1kia"; } - else throw "Opera is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)"; + else throw "Opera is not supported on ${stdenv.system} (only x86_64 linux is supported)"; unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc ."; diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix index bd334356df5..d5e6e47e928 100644 --- a/pkgs/applications/networking/browsers/palemoon/default.nix +++ b/pkgs/applications/networking/browsers/palemoon/default.nix @@ -10,14 +10,14 @@ stdenv.mkDerivation rec { name = "palemoon-${version}"; - version = "27.2.1"; + version = "27.5.0"; src = fetchFromGitHub { name = "palemoon-src"; owner = "MoonchildProductions"; repo = "Pale-Moon"; rev = version + "_Release"; - sha256 = "1yyipxd5lmavf4aca4vrcnp7hb8zkn4sv2zp6n2cm6w4pxlza0g4"; + sha256 = "0m4fgwxn6hs8r240i6acaajx76cvqy1b7cqmdsxd33qpjrrj1h9d"; }; desktopItem = makeDesktopItem { diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix index eb26811cfb8..da3c826adcd 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/default.nix +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -1,11 +1,14 @@ -{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeQtWrapper, wrapGAppsHook -, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, cssutils, glib_networking +{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeWrapper, wrapGAppsHook +, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, pyopengl, cssutils, glib_networking , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt , gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav -, qtwebkit-plugins -, withWebEngineDefault ? false +, qtwebkit-plugins ? null +, attrs +, withWebEngineDefault ? true }: +assert (! withWebEngineDefault) -> qtwebkit-plugins != null; + let pdfjs = stdenv.mkDerivation rec { name = "pdfjs-${version}"; @@ -26,29 +29,30 @@ let in buildPythonApplication rec { name = "qutebrowser-${version}"; - version = "0.10.1"; + version = "1.0.2"; namePrefix = ""; src = fetchurl { url = "https://github.com/The-Compiler/qutebrowser/releases/download/v${version}/${name}.tar.gz"; - sha256 = "57f4915f0f2b1509f3aa1cb9c47117fdaad35b4c895e9223c4eb0a6e8af51917"; + sha256 = "093nmvl9x3ykrpmvnmx98g9npg4wmq0mmf7qzgbzmg93dnyq2cpk"; }; # Needs tox doCheck = false; buildInputs = [ - qtbase qtwebkit-plugins + qtbase gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav glib_networking - ]; + ] + ++ lib.optional (! withWebEngineDefault) qtwebkit-plugins; nativeBuildInputs = [ - makeQtWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt + makeWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt ]; propagatedBuildInputs = [ - pyyaml pyqt5 jinja2 pygments pypeg2 cssutils + pyyaml pyqt5 jinja2 pygments pypeg2 cssutils pyopengl attrs ]; postPatch = '' @@ -62,7 +66,7 @@ in buildPythonApplication rec { postInstall = '' install -Dm644 doc/qutebrowser.1 "$out/share/man/man1/qutebrowser.1" - install -Dm644 qutebrowser.desktop \ + install -Dm644 misc/qutebrowser.desktop \ "$out/share/applications/qutebrowser.desktop" for i in 16 24 32 48 64 128 256 512; do install -Dm644 "icons/qutebrowser-''${i}x''${i}.png" \ @@ -73,16 +77,12 @@ in buildPythonApplication rec { install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/* ''; - postFixup = '' - mv $out/bin/qutebrowser $out/bin/.qutebrowser-noqtpath - makeQtWrapper $out/bin/.qutebrowser-noqtpath $out/bin/qutebrowser \ - ${lib.optionalString withWebEngineDefault ''--add-flags "--backend webengine"''} - - sed -i 's/\.qutebrowser-wrapped/qutebrowser/g' $out/bin/..qutebrowser-wrapped-wrapped + postFixup = lib.optionalString (! withWebEngineDefault) '' + wrapProgram $out/bin/qutebrowser --add-flags "--backend webkit" ''; meta = { - homepage = "https://github.com/The-Compiler/qutebrowser"; + homepage = https://github.com/The-Compiler/qutebrowser; description = "Keyboard-focused browser with a minimal GUI"; license = stdenv.lib.licenses.gpl3Plus; maintainers = [ stdenv.lib.maintainers.jagajaga ]; diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix new file mode 100644 index 00000000000..4464d490bc8 --- /dev/null +++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -0,0 +1,410 @@ +{ stdenv +, fetchurl +, makeDesktopItem + +# Common run-time dependencies +, zlib + +# libxul run-time dependencies +, atk +, cairo +, dbus +, dbus_glib +, fontconfig +, freetype +, gdk_pixbuf +, glib +, gtk2 +, libxcb +, libX11 +, libXext +, libXrender +, libXt +, pango + +, audioSupport ? mediaSupport +, pulseaudioSupport ? false +, libpulseaudio +, apulse + +# Media support (implies audio support) +, mediaSupport ? false +, gstreamer +, gst-plugins-base +, gst-plugins-good +, gst-ffmpeg +, gmp +, ffmpeg + +# Pluggable transport dependencies +, python27 + +# Wrapper runtime +, coreutils +, glibcLocales +, hicolor_icon_theme +, shared_mime_info + +# Whether to disable multiprocess support to work around crashing tabs +# TODO: fix the underlying problem instead of this terrible work-around +, disableContentSandbox ? true + +# Extra preferences +, extraPrefs ? "" +}: + +with stdenv.lib; + +let + libPath = makeLibraryPath libPkgs; + + libPkgs = [ + atk + cairo + dbus + dbus_glib + fontconfig + freetype + gdk_pixbuf + glib + gtk2 + libxcb + libX11 + libXext + libXrender + libXt + pango + stdenv.cc.cc + stdenv.cc.libc + zlib + ] + ++ optionals pulseaudioSupport [ libpulseaudio ] + ++ optionals mediaSupport [ + gstreamer + gst-plugins-base + gmp + ffmpeg + ]; + + gstPluginsPath = concatMapStringsSep ":" (x: + "${x}/lib/gstreamer-0.10") [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-ffmpeg + ]; + + # Library search path for the fte transport + fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; + + # Upstream source + version = "7.0.8"; + + lang = "en-US"; + + srcs = { + "x86_64-linux" = fetchurl { + urls = [ + "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz" + "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz" + ]; + sha256 = "0bi4l4ma40ifsajvjpwv6ixphijqvb7yrci2jcyykh3j41ndfjf2"; + }; + + "i686-linux" = fetchurl { + urls = [ + "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz" + "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz" + ]; + sha256 = "182q1gb8jnk92wxr7m977yxcksa8d3zg90qbsja1raym2vhqaf73"; + }; + }; +in + +stdenv.mkDerivation rec { + name = "tor-browser-bundle-bin-${version}"; + inherit version; + + src = srcs."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}"); + + preferLocalBuild = true; + allowSubstitutes = false; + + desktopItem = makeDesktopItem { + name = "torbrowser"; + exec = "tor-browser"; + icon = "torbrowser"; + desktopName = "Tor Browser"; + genericName = "Web Browser"; + comment = meta.description; + categories = "Network;WebBrowser;Security;"; + }; + + buildCommand = '' + # For convenience ... + TBB_IN_STORE=$out/share/tor-browser + interp=$(< $NIX_CC/nix-support/dynamic-linker) + + # Unpack & enter + mkdir -p "$TBB_IN_STORE" + tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2 + pushd "$TBB_IN_STORE" + + # Set ELF interpreter + for exe in firefox TorBrowser/Tor/tor ; do + patchelf --set-interpreter "$interp" "$exe" + done + + # The final libPath. Note, we could split this into firefoxLibPath + # and torLibPath for accuracy, but this is more convenient ... + libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor + + # apulse uses a non-standard library path. For now special-case it. + ${optionalString (audioSupport && !pulseaudioSupport) '' + libPath=${apulse}/lib/apulse:$libPath + ''} + + # Fixup paths to pluggable transports. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g" + + # Fixup obfs transport. Work around patchelf failing to set + # interpreter for pre-compiled Go binaries by invoking the interpreter + # directly. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s|\(ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" \ + + # Fixup fte transport + # + # Note: the script adds its dirname to search path automatically + sed -i TorBrowser/Tor/PluggableTransports/fteproxy.bin \ + -e "s,/usr/bin/env python,${python27.interpreter}," + + patchelf --set-rpath "${fteLibPath}" TorBrowser/Tor/PluggableTransports/fte/cDFA.so + + # Prepare for autoconfig. + # + # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment + cat >defaults/pref/autoconfig.js <mozilla.cfg <fonts,$TBB_IN_STORE/fonts," + + # Move default extension overrides into distribution dir, to avoid + # having to synchronize between local state and store. + mv TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js defaults/pref/torbrowser.js + + # Preload extensions by moving into the runtime instead of storing under the + # user's profile directory. + mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \ + "$TBB_IN_STORE/browser/extensions" + + # Hard-code paths to geoip data files. TBB resolves the geoip files + # relative to torrc-defaults_path but if we do not hard-code them + # here, these paths end up being written to the torrc in the user's + # state dir. + cat >>TorBrowser/Data/Tor/torrc-defaults < "$out/bin/tor-browser" << EOF + #! ${stdenv.shell} + set -o errexit -o nounset + + PATH=${makeBinPath [ coreutils ]} + export LC_ALL=C + export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive + + # Enter local state directory. + REAL_HOME=\$HOME + TBB_HOME=\''${TBB_HOME:-''${XDG_DATA_HOME:-\$REAL_HOME/.local/share}/tor-browser} + HOME=\$TBB_HOME + + mkdir -p "\$HOME" + cd "\$HOME" + + # Initialize empty TBB local state directory hierarchy. We + # intentionally mirror the layout that TBB would see if executed from + # the unpacked bundle dir. + mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" + + # Initialize the Tor data directory. + mkdir -p "\$HOME/TorBrowser/Data/Tor" + + # TBB will fail if ownership is too permissive + chmod 0700 "\$HOME/TorBrowser/Data/Tor" + + # Initialize the browser profile state. Note that the only data + # copied from the Store payload is the initial bookmark file, which is + # never updated once created. All other files under user's profile + # dir are generated by TBB. + mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" + cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \ + "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html" + + # Clear out some files that tend to capture store references but are + # easily generated by firefox at startup. + rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json} + + ${optionalString pulseaudioSupport '' + # Figure out some envvars for pulseaudio + : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}" + : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}" + : "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}" + : "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}" + ''} + + # Font cache files capture store paths; clear them out on the off + # chance that TBB would continue using old font files. + rm -rf "\$HOME/.cache/fontconfig" + + # Lift-off + # + # XAUTHORITY and DISPLAY are required for TBB to work at all. + # + # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launch; to + # prevent that, set it to an empty/invalid value prior to running + # tor-browser. + # + # PULSE_SERVER is necessary for audio playback. + # + # Setting FONTCONFIG_FILE is required to make fontconfig read the TBB + # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 + # indicates the system fonts.conf being used instead. + # + # XDG_DATA_DIRS is set to prevent searching system dirs (looking for .desktop & icons) + exec env -i \ + TZ=":" \ + TZDIR="\''${TZDIR:-}" \ + LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \ + \ + TMPDIR="\''${TMPDIR:-/tmp}" \ + HOME="\$HOME" \ + XAUTHORITY="\$XAUTHORITY" \ + DISPLAY="\$DISPLAY" \ + DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \ + \ + XDG_DATA_HOME="\$HOME/.local/share" \ + XDG_DATA_DIRS="$WRAPPER_XDG_DATA_DIRS" \ + \ + PULSE_SERVER="\''${PULSE_SERVER:-}" \ + PULSE_COOKIE="\''${PULSE_COOKIE:-}" \ + \ + APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \ + \ + TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \ + TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \ + TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \ + \ + GST_PLUGIN_SYSTEM_PATH="${optionalString mediaSupport gstPluginsPath}" \ + GST_REGISTRY="/dev/null" \ + GST_REGISTRY_UPDATE="no" \ + \ + FONTCONFIG_FILE="$FONTCONFIG_FILE" \ + \ + LD_LIBRARY_PATH="$libPath" \ + \ + "$TBB_IN_STORE/firefox" \ + --class "Tor Browser" \ + -no-remote \ + -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ + "\''${@}" + EOF + chmod +x $out/bin/tor-browser + + # Easier access to docs + mkdir -p $out/share/doc + ln -s $TBB_IN_STORE/TorBrowser/Docs $out/share/doc/tor-browser + + # Install .desktop item + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + sed -i $out/share/applications/torbrowser.desktop \ + -e "s,Exec=.*,Exec=$out/bin/tor-browser," \ + -e "s,Icon=.*,Icon=$out/share/pixmaps/torbrowser.png," + + # Install icons + mkdir -p $out/share/pixmaps + cp browser/icons/mozicon128.png $out/share/pixmaps/torbrowser.png + + # Check installed apps + echo "Checking bundled Tor ..." + LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null + + echo "Checking tor-browser wrapper ..." + DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ + $out/bin/tor-browser --version >/dev/null + ''; + + meta = with stdenv.lib; { + description = "Tor Browser Bundle"; + homepage = https://www.torproject.org/; + platforms = attrNames srcs; + maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm ]; + hydraPlatforms = []; + # MPL2.0+, GPL+, &c. While it's not entirely clear whether + # the compound is "libre" in a strict sense (some components place certain + # restrictions on redistribution), it's free enough for our purposes. + license = licenses.free; + }; +} diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix new file mode 100644 index 00000000000..508ab6ec432 --- /dev/null +++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix @@ -0,0 +1,348 @@ +{ stdenv +, fetchgit +, fetchurl +, symlinkJoin + +, tor +, tor-browser-unwrapped + +# Wrapper runtime +, coreutils +, hicolor_icon_theme +, shared_mime_info +, noto-fonts +, noto-fonts-emoji + +# Audio support +, audioSupport ? mediaSupport +, apulse + +# Media support (implies audio support) +, mediaSupport ? false +, gstreamer +, gst-plugins-base +, gst-plugins-good +, gst-ffmpeg +, gmp +, ffmpeg + +# Extensions, common +, zip + +# HTTPS Everywhere +, git +, libxml2 # xmllint +, python27 +, python27Packages +, rsync + +# Pluggable transports +, obfsproxy + +# Customization +, extraPrefs ? "" +, extraExtensions ? [ ] +}: + +with stdenv.lib; + +let + tor-browser-build_src = fetchgit { + url = "https://git.torproject.org/builders/tor-browser-build.git"; + rev = "refs/tags/tbb-7.5a5-build5"; + sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9"; + }; + + firefoxExtensions = import ./extensions.nix { + inherit stdenv fetchurl fetchgit zip + git libxml2 python27 python27Packages rsync; + }; + + bundledExtensions = with firefoxExtensions; [ + https-everywhere + noscript + torbutton + tor-launcher + ] ++ extraExtensions; + + fontsEnv = symlinkJoin { + name = "tor-browser-fonts"; + paths = [ noto-fonts noto-fonts-emoji ]; + }; + + fontsDir = "${fontsEnv}/share/fonts"; + + gstPluginsPath = concatMapStringsSep ":" (x: + "${x}/lib/gstreamer-0.10") [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-ffmpeg + ]; + + gstLibPath = makeLibraryPath [ + gstreamer + gst-plugins-base + gmp + ffmpeg + ]; +in +stdenv.mkDerivation rec { + name = "tor-browser-bundle-${version}"; + version = tor-browser-unwrapped.version; + + buildInputs = [ tor-browser-unwrapped tor ]; + + unpackPhase = ":"; + + buildPhase = ":"; + + # The following creates a customized firefox distribution. For + # simplicity, we copy the entire base firefox runtime, to work around + # firefox's annoying insistence on resolving the installation directory + # relative to the real firefox executable. A little tacky and + # inefficient but it works. + installPhase = '' + TBBUILD=${tor-browser-build_src}/projects/tor-browser + TBDATA_PATH=TorBrowser-Data + + self=$out/lib/tor-browser + mkdir -p $self && cd $self + + TBDATA_IN_STORE=$self/$TBDATA_PATH + + cp -dR ${tor-browser-unwrapped}/lib"/"*"/"* . + chmod -R +w . + + # Prepare for autoconfig + cat >defaults/pref/autoconfig.js <mozilla.cfg <> $TBDATA_PATH/torrc-defaults + cat \ + $bundleData/$bundlePlatform/Data/Browser/profile.default/preferences/extension-overrides.js \ + $bundleData/PTConfigs/bridge_prefs.js \ + >> defaults/pref/extension-overrides.js + + # Configure geoip + # + # tor-launcher insists on resolving geoip data relative to torrc-defaults + # (and passes them directly on the tor command-line). + # + # Write the paths into torrc-defaults anyway, otherwise they'll be + # captured in the runtime torrc. + ln -s -t $TBDATA_PATH ${tor.geoip}/share/tor/geoip{,6} + cat >>$TBDATA_PATH/torrc-defaults <>$TBDATA_PATH/torrc-defaults <fonts,${fontsDir}," \ + > $TBDATA_PATH/fonts.conf + + # Generate a suitable wrapper + wrapper_PATH=${makeBinPath [ coreutils ]} + wrapper_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [ + hicolor_icon_theme + shared_mime_info + ]} + + ${optionalString audioSupport '' + # apulse uses a non-standard library path ... + wrapper_LD_LIBRARY_PATH=${apulse}/lib/apulse''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + + ${optionalString mediaSupport '' + wrapper_LD_LIBRARY_PATH=${gstLibPath}''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + + mkdir -p $out/bin + cat >$out/bin/tor-browser <&2 + exit 1 + fi + + mkdir -p "\$TBB_HOME" + + HOME=\$TBB_HOME + cd "\$HOME" + + # Re-init XDG basedir envvars + XDG_CACHE_HOME=\$HOME/.cache + XDG_CONFIG_HOME=\$HOME/.config + XDG_DATA_HOME=\$HOME/.local/share + + # Initialize empty TBB runtime state directory hierarchy. Mirror the + # layout used by the official TBB, to avoid the hassle of working + # against the assumptions made by tor-launcher & co. + mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" + + # Initialize the Tor data directory. + mkdir -p "\$HOME/TorBrowser/Data/Tor" + + # TBB fails if ownership is too permissive + chmod 0700 "\$HOME/TorBrowser/Data/Tor" + + # Initialize the browser profile state. Expect TBB to generate all data. + mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" + + # Files that capture store paths; re-generated by firefox at startup + rm -rf "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json,startupCache} + + # Clear out fontconfig caches + rm -f "\$HOME/.cache/fontconfig/"*.cache-* + + # Lift-off! + # + # TZ is set to avoid stat()ing /etc/localtime over and over ... + # + # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launching a new + # dbus instance; to prevent using the session bus, set the envvar to + # an empty/invalid value prior to running tor-browser. + # + # FONTCONFIG_FILE is required to make fontconfig read the TBB + # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 + # indicates the system fonts.conf being used instead. + # + # HOME, TMPDIR, XDG_*_HOME are set as a form of soft confinement; + # ideally, tor-browser should not write to any path outside TBB_HOME + # and should run even under strict confinement to TBB_HOME. + # + # XDG_DATA_DIRS is set to prevent searching system directories for + # mime and icon data. + # + # PULSE_{SERVER,COOKIE} is necessary for audio playback w/pulseaudio + # + # APULSE_PLAYBACK_DEVICE is for audio playback w/o pulseaudio (no capture yet) + # + # GST_PLUGIN_SYSTEM_PATH is for HD video playback + # + # GST_REGISTRY is set to devnull to minimize disk writes + # + # TOR_* is for using an external tor instance + # + # Parameters lacking a default value below are *required* (enforced by + # -o nounset). + exec env -i \ + LD_LIBRARY_PATH=$wrapper_LD_LIBRARY_PATH \ + \ + TZ=":" \ + \ + DISPLAY="\$DISPLAY" \ + XAUTHORITY="\$XAUTHORITY" \ + DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \ + \ + HOME="\$HOME" \ + TMPDIR="\$XDG_CACHE_HOME/tmp" \ + XDG_CONFIG_HOME="\$XDG_CONFIG_HOME" \ + XDG_DATA_HOME="\$XDG_DATA_HOME" \ + XDG_CACHE_HOME="\$XDG_CACHE_HOME" \ + XDG_RUNTIME_DIR="\$HOME/run" \ + \ + XDG_DATA_DIRS="$wrapper_XDG_DATA_DIRS" \ + \ + FONTCONFIG_FILE="$TBDATA_IN_STORE/fonts.conf" \ + \ + APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \ + \ + GST_PLUGIN_SYSTEM_PATH="${optionalString mediaSupport gstPluginsPath}" \ + GST_REGISTRY="/dev/null" \ + GST_REGISTRY_UPDATE="no" \ + \ + TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \ + TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \ + TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \ + \ + $self/firefox \ + -no-remote \ + -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ + "\$@" + EOF + chmod +x $out/bin/tor-browser + + echo "Syntax checking wrapper ..." + bash -n $out/bin/tor-browser + + echo "Checking wrapper ..." + DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ + $out/bin/tor-browser -version >/dev/null + ''; + + meta = with stdenv.lib; { + description = "An unofficial version of the tor browser bundle, built from source"; + homepage = https://torproject.org/; + license = licenses.unfreeRedistributable; # TODO: check this + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + maintainers = with maintainers; [ joachifm ]; + }; +} diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix new file mode 100644 index 00000000000..86c2f53b9ad --- /dev/null +++ b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix @@ -0,0 +1,111 @@ +{ stdenv +, fetchgit +, fetchurl + +# common +, zip + +# HTTPS Everywhere +, git +, libxml2 # xmllint +, python27 +, python27Packages +, rsync +}: + +{ + https-everywhere = stdenv.mkDerivation rec { + name = "https-everywhere-${version}"; + version = "2017.10.4"; + + extid = "https-everywhere-eff@eff.org"; + + src = fetchgit { + url = "https://git.torproject.org/https-everywhere.git"; + rev = "refs/tags/${version}"; + sha256 = "1g7971xygnhagnb25xjdf6mli6091ai9igx42d0ww88g8i0cqfzj"; + fetchSubmodules = true; # for translations, TODO: remove + }; + + nativeBuildInputs = [ + git + libxml2 # xmllint + python27 + python27Packages.lxml + rsync + zip + ]; + + buildPhase = '' + $shell ./makexpi.sh ${version} --no-recurse + ''; + + installPhase = '' + install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi" + ''; + }; + + noscript = stdenv.mkDerivation rec { + name = "noscript-${version}"; + version = "5.1.2"; + + extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + + src = fetchurl { + url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi"; + sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42"; + }; + + unpackPhase = ":"; + + installPhase = '' + install -m 444 -D $src "$out/$extid.xpi" + ''; + }; + + torbutton = stdenv.mkDerivation rec { + name = "torbutton-${version}"; + version = "1.9.8.1"; + + extid = "torbutton@torproject.org"; + + src = fetchgit { + url = "https://git.torproject.org/torbutton.git"; + rev = "refs/tags/${version}"; + sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l"; + }; + + nativeBuildInputs = [ zip ]; + + buildPhase = '' + $shell ./makexpi.sh + ''; + + installPhase = '' + install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi" + ''; + }; + + tor-launcher = stdenv.mkDerivation rec { + name = "tor-launcher-${version}"; + version = "0.2.13"; + + extid = "tor-launcher@torproject.org"; + + src = fetchgit { + url = "https://git.torproject.org/tor-launcher.git"; + rev = "refs/tags/${version}"; + sha256 = "1f98v88y2clwvjiw77kxqc9cacp5h0489a540nc2wmsx7vnskrq0"; + }; + + nativeBuildInputs = [ zip ]; + + buildPhase = '' + make package + ''; + + installPhase = '' + install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi" + ''; + }; +} diff --git a/pkgs/applications/networking/browsers/torbrowser/default.nix b/pkgs/applications/networking/browsers/torbrowser/default.nix deleted file mode 100644 index 9bf8a184e72..00000000000 --- a/pkgs/applications/networking/browsers/torbrowser/default.nix +++ /dev/null @@ -1,329 +0,0 @@ -{ stdenv -, fetchurl -, makeDesktopItem - -# Common run-time dependencies -, zlib - -# libxul run-time dependencies -, alsaLib -, atk -, cairo -, dbus -, dbus_glib -, fontconfig -, freetype -, gdk_pixbuf -, glib -, gtk2 -, libX11 -, libXext -, libXrender -, libXt -, pango - -# Pulseaudio support -, pulseaudioSupport ? mediaSupport -, libpulseaudio - -# Media support (implies pulseaudio support) -, mediaSupport ? false -, gstreamer -, gst-plugins-base -, gst-plugins-good -, gst-ffmpeg -, gmp -, ffmpeg - -# Pluggable transport dependencies -, python27 -}: - -with stdenv.lib; - -let - libPath = makeLibraryPath ([ - alsaLib - atk - cairo - dbus - dbus_glib - fontconfig - freetype - gdk_pixbuf - glib - gtk2 - libX11 - libXext - libXrender - libXt - pango - stdenv.cc.cc - zlib - ] - ++ optionals pulseaudioSupport [ libpulseaudio ] - ++ optionals mediaSupport [ - gstreamer - gst-plugins-base - gmp - ffmpeg - ]); - - gstPluginsPath = concatMapStringsSep ":" (x: - "${x}/lib/gstreamer-0.10") [ - gstreamer - gst-plugins-base - gst-plugins-good - gst-ffmpeg - ]; - - # Library search path for the fte transport - fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; - - # Upstream source - version = "6.5.2"; - - lang = "en-US"; - - srcs = { - "x86_64-linux" = fetchurl { - url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; - sha256 = "0jn98arczlgjigpmql1qg5b7izabv4zy4mji6vvcg3b8g1ma108r"; - }; - - "i686-linux" = fetchurl { - url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; - sha256 = "0micxgkbys0py4bj6csbc8xz4gq0x5v2zirgi38krnm5x5riqj3w"; - }; - }; -in - -stdenv.mkDerivation rec { - name = "tor-browser-${version}"; - inherit version; - - src = srcs."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}"); - - preferLocalBuild = true; - - desktopItem = makeDesktopItem { - name = "torbrowser"; - exec = "tor-browser"; - icon = "torbrowser"; - desktopName = "Tor Browser"; - genericName = "Web Browser"; - comment = meta.description; - categories = "Network;WebBrowser;Security;"; - }; - - buildCommand = '' - # For convenience ... - TBB_IN_STORE=$out/share/tor-browser - interp=$(< $NIX_CC/nix-support/dynamic-linker) - - # Unpack & enter - mkdir -p "$TBB_IN_STORE" - tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2 - pushd "$TBB_IN_STORE" - - # Set ELF interpreter - for exe in firefox TorBrowser/Tor/tor ; do - patchelf --set-interpreter "$interp" "$exe" - done - - # The final libPath. Note, we could split this into firefoxLibPath - # and torLibPath for accuracy, but this is more convenient ... - libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor - - # Fixup paths to pluggable transports. - sed -i TorBrowser/Data/Tor/torrc-defaults \ - -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g" - - # Fixup obfs transport. Work around patchelf failing to set - # interpreter for pre-compiled Go binaries by invoking the interpreter - # directly. - sed -i TorBrowser/Data/Tor/torrc-defaults \ - -e "s|\(ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" \ - - # Fixup fte transport - # - # Note: the script adds its dirname to search path automatically - sed -i TorBrowser/Tor/PluggableTransports/fteproxy.bin \ - -e "s,/usr/bin/env python,${python27.interpreter}," - - patchelf --set-rpath "${fteLibPath}" TorBrowser/Tor/PluggableTransports/fte/cDFA.so - - # Prepare for autoconfig. - # - # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment - cat >defaults/pref/autoconfig.js <mozilla.cfg <fonts,$TBB_IN_STORE/fonts," - - # Move default extension overrides into distribution dir, to avoid - # having to synchronize between local state and store. - mv TorBrowser/Data/Browser/profile.default/preferences/extension-overrides.js defaults/pref/torbrowser.js - - # Hard-code paths to geoip data files. TBB resolves the geoip files - # relative to torrc-defaults_path but if we do not hard-code them - # here, these paths end up being written to the torrc in the user's - # state dir. - cat >>TorBrowser/Data/Tor/torrc-defaults < "$out/bin/tor-browser" << EOF - #! ${stdenv.shell} - set -o errexit -o nounset - - # Enter local state directory. - REAL_HOME=\$HOME - TBB_HOME=\''${TBB_HOME:-''${XDG_DATA_HOME:-\$REAL_HOME/.local/share}/tor-browser} - HOME=\$TBB_HOME - - mkdir -p "\$HOME" - cd "\$HOME" - - # Initialize empty TBB local state directory hierarchy. We - # intentionally mirror the layout that TBB would see if executed from - # the unpacked bundle dir. - mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" - - # Initialize the Tor data directory. - mkdir -p "\$HOME/TorBrowser/Data/Tor" - - # Initialize the browser profile state. Note that the only data - # copied from the Store payload is the initial bookmark file, which is - # never updated once created. All other files under user's profile - # dir are generated by TBB. - mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" - cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \ - "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html" - - # Clear out some files that tend to capture store references but are - # easily generated by firefox at startup. - rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json} - - # Ensure that we're always using the up-to-date extensions. - ln -snf "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions" \ - "\$HOME/TorBrowser/Data/Browser/profile.default/extensions" - - ${optionalString pulseaudioSupport '' - # Figure out some envvars for pulseaudio - : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}" - : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}" - : "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}" - : "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}" - ''} - - # Font cache files capture store paths; clear them out on the off - # chance that TBB would continue using old font files. - rm -rf "\$HOME/.cache/fontconfig" - - # Lift-off - # - # XAUTHORITY and DISPLAY are required for TBB to work at all. - # - # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launch; to - # prevent that, set it to an empty/invalid value prior to running - # tor-browser. - # - # PULSE_SERVER is necessary for audio playback. - # - # Setting FONTCONFIG_FILE is required to make fontconfig read the TBB - # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 - # indicates the system fonts.conf being used instead. - exec env -i \ - HOME="\$HOME" \ - XAUTHORITY="\$XAUTHORITY" \ - DISPLAY="\$DISPLAY" \ - DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \ - \ - PULSE_SERVER="\''${PULSE_SERVER:-}" \ - PULSE_COOKIE="\''${PULSE_COOKIE:-}" \ - \ - GST_PLUGIN_SYSTEM_PATH="${optionalString mediaSupport gstPluginsPath}" \ - GST_REGISTRY="/dev/null" \ - GST_REGISTRY_UPDATE="no" \ - \ - FONTCONFIG_FILE="$FONTCONFIG_FILE" \ - \ - LD_LIBRARY_PATH="$libPath" \ - \ - "$TBB_IN_STORE/firefox" \ - --class "Tor Browser" \ - -no-remote \ - -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ - "\''${@}" - EOF - chmod +x $out/bin/tor-browser - - # Easier access to docs - mkdir -p $out/share/doc - ln -s $TBB_IN_STORE/TorBrowser/Docs $out/share/doc/tor-browser - - # Install .desktop item - mkdir -p $out/share/applications - cp $desktopItem/share/applications"/"* $out/share/applications - sed -i $out/share/applications/torbrowser.desktop \ - -e "s,Exec=.*,Exec=$out/bin/tor-browser," - - # Install icons - mkdir -p $out/share/pixmaps - cp browser/icons/mozicon128.png $out/share/pixmaps/torbrowser.png - - # Check installed apps - echo "Checking bundled Tor ..." - LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null - - echo "Checking tor-browser wrapper ..." - DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ - $out/bin/tor-browser --version >/dev/null - ''; - - meta = with stdenv.lib; { - description = "Tor Browser Bundle"; - homepage = https://www.torproject.org/; - platforms = attrNames srcs; - maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm ]; - hydraPlatforms = []; - # MPL2.0+, GPL+, &c. While it's not entirely clear whether - # the compound is "libre" in a strict sense (some components place certain - # restrictions on redistribution), it's free enough for our purposes. - license = licenses.free; - }; -} diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix index 55dfb05cb3e..c654723f4c2 100644 --- a/pkgs/applications/networking/browsers/vimb/default.nix +++ b/pkgs/applications/networking/browsers/vimb/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "0d9rankzgmnx5423pyfkbxy0qxw3ck2vrdjdnlhddy15wkk87i9f"; }; - buildInputs = [ makeWrapper gtk2 libsoup pkgconfig webkit gsettings_desktop_schemas ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper gtk2 libsoup webkit gsettings_desktop_schemas ]; makeFlags = [ "PREFIX=$(out)" ]; @@ -29,7 +30,7 @@ stdenv.mkDerivation rec { editor and also easily configurable during runtime. Vimb is mostly keyboard driven and does not detract you from your daily work. ''; - homepage = "http://fanglingsu.github.io/vimb/"; + homepage = http://fanglingsu.github.io/vimb/; license = stdenv.lib.licenses.gpl3; maintainers = [ stdenv.lib.maintainers.rickynils ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix index c98910cb08c..abb7013d106 100644 --- a/pkgs/applications/networking/browsers/vimprobable2/default.nix +++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "13jdximksh9r3cgd2f8vms0pbsn3x0gxvyqdqiw16xp5fmdx5kzr"; }; - buildInputs = [ makeWrapper gtk2 libsoup libX11 perl pkgconfig webkit gsettings_desktop_schemas ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ makeWrapper gtk2 libsoup libX11 perl webkit gsettings_desktop_schemas ]; hardeningDisable = [ "format" ]; @@ -34,7 +35,7 @@ stdenv.mkDerivation rec { featureset might be considered "minimalistic", but not as minimalistic as being completely featureless. ''; - homepage = "http://sourceforge.net/apps/trac/vimprobable"; + homepage = http://sourceforge.net/apps/trac/vimprobable; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.aforemny ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/applications/networking/browsers/vivaldi/chromium-gcc-r1.patch b/pkgs/applications/networking/browsers/vivaldi/chromium-gcc-r1.patch new file mode 100644 index 00000000000..036d57b601d --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/chromium-gcc-r1.patch @@ -0,0 +1,14 @@ +diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h +index 99f230ce7e9a..de2415d402f5 100644 +--- a/base/numerics/safe_math_shared_impl.h ++++ b/base/numerics/safe_math_shared_impl.h +@@ -21,8 +21,7 @@ + #if !defined(__native_client__) && \ + ((defined(__clang__) && \ + ((__clang_major__ > 3) || \ +- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \ +- (defined(__GNUC__) && __GNUC__ >= 5)) ++ (__clang_major__ == 3 && __clang_minor__ >= 4)))) + #include "base/numerics/safe_math_clang_gcc_impl.h" + #define BASE_HAS_OPTIMIZED_SAFE_MATH (1) + #else \ No newline at end of file diff --git a/pkgs/applications/networking/browsers/vivaldi/chromium-gcc5-r1.patch b/pkgs/applications/networking/browsers/vivaldi/chromium-gcc5-r1.patch new file mode 100644 index 00000000000..8d2886fbfa9 --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/chromium-gcc5-r1.patch @@ -0,0 +1,66 @@ +--- a/chrome/browser/devtools/devtools_file_system_indexer.cc ++++ b/chrome/browser/devtools/devtools_file_system_indexer.cc +@@ -34,7 +34,6 @@ using base::TimeDelta; + using base::TimeTicks; + using content::BrowserThread; + using std::map; +-using std::set; + using std::string; + using std::vector; + +@@ -191,7 +190,7 @@ vector Index::Search(const string& query) { + if (trigram != kUndefinedTrigram) + trigrams.push_back(trigram); + } +- set file_ids; ++ std::set file_ids; + bool first = true; + vector::const_iterator it = trigrams.begin(); + for (; it != trigrams.end(); ++it) { +@@ -203,7 +202,7 @@ vector Index::Search(const string& query) { + first = false; + continue; + } +- set intersection = base::STLSetIntersection >( ++ std::set intersection = base::STLSetIntersection >( + file_ids, index_[trigram]); + file_ids.swap(intersection); + } +diff --git a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +index 94bb9161ec85..e40c6387f72e 100644 +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include ++#include + #include + #include + \ No newline at end of file diff --git a/pkgs/applications/networking/browsers/vivaldi/chromium-gn-bootstrap-r14.patch b/pkgs/applications/networking/browsers/vivaldi/chromium-gn-bootstrap-r14.patch new file mode 100644 index 00000000000..62426715366 --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/chromium-gn-bootstrap-r14.patch @@ -0,0 +1,27 @@ +commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685 +Author: Pawel Hajdan, Jr +Date: Wed Jul 26 21:51:54 2017 +0000 + + wip + +diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py +index 1390560f8e37..ff2ae57c46b0 100755 +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/metrics/histogram_base.cc', + 'base/metrics/histogram_functions.cc', + 'base/metrics/histogram_samples.cc', ++ 'base/metrics/histogram_snapshot_manager.cc', + 'base/metrics/metrics_hashes.cc', + 'base/metrics/persistent_histogram_allocator.cc', + 'base/metrics/persistent_memory_allocator.cc', +@@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/trace_event/heap_profiler_allocation_context_tracker.cc', + 'base/trace_event/heap_profiler_allocation_register.cc', + 'base/trace_event/heap_profiler_event_filter.cc', +- 'base/trace_event/heap_profiler_event_writer.cc', ++ 'base/trace_event/heap_profiler_heap_dump_writer.cc', + 'base/trace_event/heap_profiler_serialization_state.cc', + 'base/trace_event/heap_profiler_stack_frame_deduplicator.cc', + 'base/trace_event/heap_profiler_type_name_deduplicator.cc', \ No newline at end of file diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index ed07225dd8d..410e8866360 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -4,31 +4,20 @@ , freetype, fontconfig, libXft, libXrender, libxcb, expat, libXau, libXdmcp , libuuid, xz , gstreamer, gst-plugins-base, libxml2 -, glib, gtk2, pango, gdk_pixbuf, cairo, atk, gnome3 +, glib, gtk3, pango, gdk_pixbuf, cairo, atk, gnome3 , nss, nspr -, patchelf +, patchelf, makeWrapper +, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null }: -let - version = "1.8"; - build = "770.56-1"; - fullVersion = "stable_${version}.${build}"; - - info = if stdenv.is64bit then { - arch = "amd64"; - sha256 = "1f9cwr41rl0mqwg3xn2nfb5xnr0h0vc4wiz8367bd67zf4an61d2"; - } else { - arch = "i386"; - sha256 = "1240w3gqn5rbvkb0v1g66syrc92r1vzk82fkmvy92qsnx0d5z7nn "; - }; - -in stdenv.mkDerivation rec { - product = "vivaldi"; - name = "${product}-${version}"; +stdenv.mkDerivation rec { + name = "${product}-${version}"; + product = "vivaldi"; + version = "1.12.955.38-1"; src = fetchurl { - inherit (info) sha256; - url = "https://downloads.vivaldi.com/stable/${product}-${fullVersion}_${info.arch}.deb"; + url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb"; + sha256 = "1bq1ss6vkpr6rw5n0sw9zipxx19vficvxys1lra9symcxk1b4gqw"; }; unpackPhase = '' @@ -36,14 +25,15 @@ in stdenv.mkDerivation rec { tar -xvf data.tar.xz ''; - buildInputs = - [ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb - libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr - atk alsaLib dbus_libs cups gtk2 gdk_pixbuf libexif ffmpeg systemd - freetype fontconfig libXrender libuuid expat glib nss nspr - gstreamer libxml2 gst-plugins-base pango cairo gnome3.gconf - patchelf - ]; + nativeBuildInputs = [ patchelf makeWrapper ]; + + buildInputs = [ + stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb + libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr + atk alsaLib dbus_libs cups gtk3 gdk_pixbuf libexif ffmpeg systemd + freetype fontconfig libXrender libuuid expat glib nss nspr + gstreamer libxml2 gst-plugins-base pango cairo gnome3.gconf + ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs; libPath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.is64bit) @@ -56,6 +46,10 @@ in stdenv.mkDerivation rec { --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath "${libPath}" \ opt/vivaldi/vivaldi-bin + '' + stdenv.lib.optionalString proprietaryCodecs '' + sed -i '/^VIVALDI_FFMPEG_FOUND/ a \ + checkffmpeg "${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so"' opt/vivaldi/vivaldi + '' + '' echo "Finished patching Vivaldi binaries" ''; @@ -78,6 +72,8 @@ in stdenv.mkDerivation rec { "$out"/opt/vivaldi/product_logo_''${d}.png \ "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png done + wrapProgram "$out/bin/vivaldi" \ + --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ ''; meta = with stdenv.lib; { @@ -85,6 +81,6 @@ in stdenv.mkDerivation rec { homepage = "https://vivaldi.com"; license = licenses.unfree; maintainers = with maintainers; [ otwieracz nequissimus ]; - platforms = platforms.linux; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix new file mode 100644 index 00000000000..542bcbc41b0 --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, fetchpatch +, dbus_glib, gtk2, gtk3, libexif, libpulseaudio, libXScrnSaver, ninja, nss +, pciutils, pkgconfig, python2, xdg_utils +}: + +stdenv.mkDerivation rec { + name = "${product}-${version}"; + product = "vivaldi-ffmpeg-codecs"; + version = "61.0.3163.91"; + + src = fetchurl { + url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; + sha512 = "3f07vwbxllrwy3agqxa6ndcix23vai18i178zscmk0y68flhzffyjdvrwlg7dzlwgiqypj2cyl21qb4qmcay2ilgw9vnr9fql2x0w7p"; + }; + + buildInputs = [ ]; + + nativeBuildInputs = [ + dbus_glib gtk2 gtk3 libexif libpulseaudio libXScrnSaver ninja nss pciutils pkgconfig + python2 xdg_utils + ]; + + patches = [ + ./chromium-gn-bootstrap-r14.patch + ./chromium-gcc-r1.patch + ./chromium-gcc5-r1.patch + ]; + + configurePhase = '' + runHook preConfigure + + local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false use_cups=false use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false is_clang=false is_component_build=true is_debug=false symbol_level=0" + python tools/gn/bootstrap/bootstrap.py -v -s --no-clean --gn-gen-args "$args" + out/Release/gn gen out/Release -v --args="$args" + + runHook postConfigure + ''; + + buildPhase = '' + ninja -C out/Release -v libffmpeg.so + ''; + + dontStrip = true; + + installPhase = '' + mkdir -p "$out/lib" + cp out/Release/libffmpeg.so "$out/lib/libffmpeg.so" + ''; + + meta = with stdenv.lib; { + description = "Additional support for proprietary codecs for Vivaldi"; + homepage = "https://ffmpeg.org/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ lluchs ]; + platforms = [ "x86_64-linux" ]; + broken = true; + }; +} diff --git a/pkgs/applications/networking/browsers/vivaldi/update.sh b/pkgs/applications/networking/browsers/vivaldi/update.sh new file mode 100755 index 00000000000..6ef6206c4f4 --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/update.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p libarchive curl common-updater-scripts + +set -eu -o pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" +root=../../../../.. +export NIXPKGS_ALLOW_UNFREE=1 + +version() { + (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"') +} + +vivaldi_version_old=$(version vivaldi) +vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-[0-9]+)_amd64\.deb.*/\1/p') + +if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then + echo "nothing to do, vivaldi $vivaldi_version is current" + exit +fi + +# Download vivaldi and save hash and file path. +url="https://downloads.vivaldi.com/stable/vivaldi-stable_${vivaldi_version}_amd64.deb" +mapfile -t prefetch < <(nix-prefetch-url --print-path "$url") +hash=${prefetch[0]} +path=${prefetch[1]} + +echo "vivaldi: $vivaldi_version_old -> $vivaldi_version" +(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash") + +# Check vivaldi-ffmpeg-codecs version. +chromium_version_old=$(version vivaldi-ffmpeg-codecs) +chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep -A2 -i '^chrome\/' | grep '^[0-9]\+\.[0-9]\+\.[1-9][0-9]\+\.[0-9]\+') + +if [[ "$chromium_version" != "$chromium_version_old" ]]; then + echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version" + (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version") +fi diff --git a/pkgs/applications/networking/browsers/w3m/cygwin.patch b/pkgs/applications/networking/browsers/w3m/cygwin.patch deleted file mode 100644 index 767cc289b5f..00000000000 --- a/pkgs/applications/networking/browsers/w3m/cygwin.patch +++ /dev/null @@ -1,1710 +0,0 @@ -diff -ur w3m-0.5.3/config.guess new/w3m-0.5.3/config.guess ---- w3m-0.5.3/config.guess 2004-08-04 13:32:27.000000000 -0400 -+++ w3m-0.5.3/config.guess 2013-04-28 18:43:59.480227700 -0400 -@@ -1,13 +1,14 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012, 2013 Free Software Foundation, Inc. - --timestamp='2004-03-12' -+timestamp='2012-12-29' - - # This file 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 -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but -@@ -16,24 +17,22 @@ - # 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-1307, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- --# Originally written by Per Bothner . --# Please send patches to . Submit a context --# diff and a properly formatted ChangeLog entry. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). -+# -+# Originally written by Per Bothner. - # --# This script attempts to guess a canonical system name similar to --# config.sub. If it succeeds, it prints the system name on stdout, and --# exits with 0. Otherwise, it exits with 1. -+# You can get the latest version of this script from: -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - # --# The plan is that this can be called by configure scripts if you --# don't specify an explicit build system type. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -53,8 +52,9 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, -+2012, 2013 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -66,11 +66,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -104,7 +104,7 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -@@ -123,7 +123,7 @@ - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) -@@ -141,7 +141,7 @@ - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or -- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward -@@ -158,6 +158,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -166,7 +167,7 @@ - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -- | grep __ELF__ >/dev/null -+ | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? -@@ -176,7 +177,7 @@ - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release -@@ -196,71 +197,34 @@ - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amd64:OpenBSD:*:*) -- echo x86_64-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- cats:OpenBSD:*:*) -- echo arm-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pegasos:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; - macppc:MirBSD:*:*) -- echo powerppc-unknown-mirbsd${UNAME_RELEASE} -- exit 0 ;; -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on -@@ -306,40 +270,46 @@ - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -- Alpha*:OpenVMS:*:*) -- echo alpha-hp-vms -- exit 0 ;; -+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. -+ exitcode=$? -+ trap '' 0 -+ exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; - *:OS400:*:*) -- echo powerpc-ibm-os400 -- exit 0 ;; -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm*:riscos:*:*|arm*:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -347,32 +317,51 @@ - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -+ exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; -+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) -+ echo i386-pc-auroraux${UNAME_RELEASE} -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) -@@ -381,10 +370,10 @@ - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -@@ -396,10 +385,10 @@ - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor -@@ -409,41 +398,41 @@ - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ echo m68k-atari-mint${UNAME_RELEASE} -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ echo m68k-atari-mint${UNAME_RELEASE} -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -- echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ echo m68k-milan-mint${UNAME_RELEASE} -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -- echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ echo m68k-hades-mint${UNAME_RELEASE} -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -- echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ echo m68k-unknown-mint${UNAME_RELEASE} -+ exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -467,35 +456,36 @@ - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) -- # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ # DG/UX returns AViiON for all architectures -+ UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -@@ -508,29 +498,29 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` -@@ -538,7 +528,7 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build -@@ -553,15 +543,19 @@ - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -574,28 +568,28 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in -@@ -604,52 +598,52 @@ - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -- case "${sc_cpu_version}" in -- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -- 532) # CPU_PA_RISC2_0 -- case "${sc_kernel_bits}" in -- 32) HP_ARCH="hppa2.0n" ;; -- 64) HP_ARCH="hppa2.0w" ;; -+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ case "${sc_cpu_version}" in -+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -+ 532) # CPU_PA_RISC2_0 -+ case "${sc_kernel_bits}" in -+ 32) HP_ARCH="hppa2.0n" ;; -+ 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 -- esac ;; -- esac -+ esac ;; -+ esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -+ sed 's/^ //' << EOF >$dummy.c - -- #define _HPUX_SOURCE -- #include -- #include -- -- int main () -- { -- #if defined(_SC_KERNEL_BITS) -- long bits = sysconf(_SC_KERNEL_BITS); -- #endif -- long cpu = sysconf (_SC_CPU_VERSION); -- -- switch (cpu) -- { -- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -- case CPU_PA_RISC2_0: -- #if defined(_SC_KERNEL_BITS) -- switch (bits) -- { -- case 64: puts ("hppa2.0w"); break; -- case 32: puts ("hppa2.0n"); break; -- default: puts ("hppa2.0"); break; -- } break; -- #else /* !defined(_SC_KERNEL_BITS) */ -- puts ("hppa2.0"); break; -- #endif -- default: puts ("hppa1.0"); break; -- } -- exit (0); -- } -+ #define _HPUX_SOURCE -+ #include -+ #include -+ -+ int main () -+ { -+ #if defined(_SC_KERNEL_BITS) -+ long bits = sysconf(_SC_KERNEL_BITS); -+ #endif -+ long cpu = sysconf (_SC_CPU_VERSION); -+ -+ switch (cpu) -+ { -+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -+ case CPU_PA_RISC2_0: -+ #if defined(_SC_KERNEL_BITS) -+ switch (bits) -+ { -+ case 64: puts ("hppa2.0w"); break; -+ case 32: puts ("hppa2.0n"); break; -+ default: puts ("hppa2.0"); break; -+ } break; -+ #else /* !defined(_SC_KERNEL_BITS) */ -+ puts ("hppa2.0"); break; -+ #endif -+ default: puts ("hppa1.0"); break; -+ } -+ exit (0); -+ } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa -@@ -657,9 +651,19 @@ - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else -@@ -667,11 +671,11 @@ - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -699,224 +703,269 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using -- # FreeBSD's kernel, but not the complete OS. -- case ${LIBC} in gnu) kernel_only='k' ;; esac -- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ UNAME_PROCESSOR=`/usr/bin/uname -p` -+ case ${UNAME_PROCESSOR} in -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; -+ exit ;; -+ i*:MSYS*:*) -+ echo ${UNAME_MACHINE}-pc-msys -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:[34]*) -- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -- exit 0 ;; -+ exit ;; -+ *:Interix*:*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ authenticamd | genuineintel | EM64T) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; -+ 8664:Windows_NT:*) -+ echo x86_64-pc-mks -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -- exit 0 ;; -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; -+ aarch64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ aarch64_be:Linux:*:*) -+ UNAME_MACHINE=aarch64_be -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ alpha:Linux:*:*) -+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ EV5) UNAME_MACHINE=alphaev5 ;; -+ EV56) UNAME_MACHINE=alphaev56 ;; -+ PCA56) UNAME_MACHINE=alphapca56 ;; -+ PCA57) UNAME_MACHINE=alphapca56 ;; -+ EV6) UNAME_MACHINE=alphaev6 ;; -+ EV67) UNAME_MACHINE=alphaev67 ;; -+ EV68*) UNAME_MACHINE=alphaev68 ;; -+ esac -+ objdump --private-headers /bin/sh | grep -q ld.so.1 -+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_PCS_VFP -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ fi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -- exit 0 ;; -- ia64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -- m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo ${UNAME_MACHINE}-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -- m68*:Linux:*:*) -+ exit ;; -+ hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -- mips:Linux:*:*) -+ exit ;; -+ i*86:Linux:*:*) -+ LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -- #undef CPU -- #undef mips -- #undef mipsel -- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mipsel -- #else -- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips -- #else -- CPU= -- #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -- ;; -- mips64:Linux:*:*) -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit ;; -+ ia64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ m68*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU -- #undef mips64 -- #undef mips64el -+ #undef ${UNAME_MACHINE} -+ #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mips64el -+ CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips64 -+ CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -- ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -- exit 0 ;; -- ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -- exit 0 ;; -- alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -- EV5) UNAME_MACHINE=alphaev5 ;; -- EV56) UNAME_MACHINE=alphaev56 ;; -- PCA56) UNAME_MACHINE=alphapca56 ;; -- PCA57) UNAME_MACHINE=alphapca56 ;; -- EV6) UNAME_MACHINE=alphaev6 ;; -- EV67) UNAME_MACHINE=alphaev67 ;; -- EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ or32:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; -+ parisc64:Linux:*:* | hppa64:Linux:*:*) -+ echo hppa64-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -924,115 +973,71 @@ - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -- parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ ppc64:Linux:*:*) -+ echo powerpc64-unknown-linux-gnu -+ exit ;; -+ ppc:Linux:*:*) -+ echo powerpc-unknown-linux-gnu -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ tile*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) -- echo x86_64-unknown-linux-gnu -- exit 0 ;; -- i*86:Linux:*:*) -- # The BFD linker knows what the default object file format is, so -- # first see if it will tell us. cd to the root directory to prevent -- # problems with other programs or directories called `ld' in the path. -- # Set LC_ALL=C to ensure ld outputs messages in English. -- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -- | sed -ne '/supported targets:/!d -- s/[ ][ ]*/ /g -- s/.*supported targets: *// -- s/ .*// -- p'` -- case "$ld_supported_targets" in -- elf32-i386) -- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -- ;; -- a.out-i386-linux) -- echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -- "") -- # Either a pre-BFD a.out linker (linux-gnuoldld) or -- # one that does not give us useful --help. -- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -- esac -- # Determine whether the default compiler is a.out or elf -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #ifdef __ELF__ -- # ifdef __GLIBC__ -- # if __GLIBC__ >= 2 -- LIBC=gnu -- # else -- LIBC=gnulibc1 -- # endif -- # else -- LIBC=gnulibc1 -- # endif -- #else -- #ifdef __INTEL_COMPILER -- LIBC=gnu -- #else -- LIBC=gnuaout -- #endif -- #endif -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -- ;; -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) -- # Unixware is an offshoot of SVR4, but it has its own version -- # number series starting with 2... -- # I am not positive that other SVR4 systems won't match this, -+ # Unixware is an offshoot of SVR4, but it has its own version -+ # number series starting with 2... -+ # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. -- # Use sysv4.2uw... so that sysv4* matches it. -+ # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -- i*86:syllable:*:*) -+ exit ;; -+ i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable -- exit 0 ;; -- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) -+ exit ;; -+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -@@ -1040,15 +1045,16 @@ - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) -+ exit ;; -+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` -@@ -1140,68 +1159,97 @@ - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -- # says -- echo i586-unisys-sysv4 -- exit 0 ;; -+ exit ;; -+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -+ # says -+ echo i586-unisys-sysv4 -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then -- echo mips-nec-sysv${UNAME_RELEASE} -+ echo mips-nec-sysv${UNAME_RELEASE} - else -- echo mips-unknown-sysv${UNAME_RELEASE} -+ echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ i386) -+ eval $set_cc_for_build -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ UNAME_PROCESSOR="x86_64" -+ fi -+ fi ;; -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then -@@ -1209,22 +1257,28 @@ - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -+ exit ;; -+ NEO-?:NONSTOP_KERNEL:*:*) -+ echo neo-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSE-*:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 -@@ -1235,36 +1289,55 @@ - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; - SEI:*:*:SEIUX) -- echo mips-sei-seiux${UNAME_RELEASE} -- exit 0 ;; -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -- exit 0 ;; -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx -+ exit ;; - esac - --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- - eval $set_cc_for_build - cat >$dummy.c < - printf ("m68k-sony-newsos%s\n", - #ifdef NEWSOS4 -- "4" -+ "4" - #else -- "" -+ "" - #endif -- ); exit (0); -+ ); exit (0); - #endif - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix"); exit (0); -+ printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) -@@ -1380,11 +1453,12 @@ - } - EOF - --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - -@@ -1393,22 +1467,22 @@ - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - -@@ -1419,7 +1493,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- ftp://ftp.gnu.org/pub/gnu/config/ -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+and -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -diff -ur w3m-0.5.3/main.c new/w3m-0.5.3/main.c ---- w3m-0.5.3/main.c 2011-01-04 04:42:19.000000000 -0500 -+++ w3m-0.5.3/main.c 2013-04-28 18:42:08.408034100 -0400 -@@ -789,7 +789,8 @@ - } - - #ifdef USE_BINMODE_STREAM -- setmode(fileno(stdout), O_BINARY); -+ /* Seems to only be needed for old versions of Cygwin */ -+ /***setmode(fileno(stdout), O_BINARY);***/ - #endif - if (!w3m_dump && !w3m_backend) { - fmInit(); diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix index 637041379db..f65e2fe1851 100644 --- a/pkgs/applications/networking/browsers/w3m/default.nix +++ b/pkgs/applications/networking/browsers/w3m/default.nix @@ -38,10 +38,10 @@ stdenv.mkDerivation rec { url = "https://aur.archlinux.org/cgit/aur.git/plain/https.patch?h=w3m-mouse&id=5b5f0fbb59f674575e87dd368fed834641c35f03"; sha256 = "08skvaha1hjyapsh8zw5dgfy433mw2hk7qy9yy9avn8rjqj7kjxk"; }) - ] ++ optional (graphicsSupport && !x11Support) [ ./no-x11.patch ] - ++ optional stdenv.isCygwin ./cygwin.patch; + ] ++ optional (graphicsSupport && !x11Support) [ ./no-x11.patch ]; - buildInputs = [ pkgconfig ncurses boehmgc gettext zlib ] + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ncurses boehmgc gettext zlib ] ++ optional sslSupport openssl ++ optional mouseSupport gpm-ncurses ++ optional graphicsSupport imlib2 diff --git a/pkgs/applications/networking/c14/default.nix b/pkgs/applications/networking/c14/default.nix index 188ccdd71d4..33a1e8a5c08 100644 --- a/pkgs/applications/networking/c14/default.nix +++ b/pkgs/applications/networking/c14/default.nix @@ -1,22 +1,24 @@ { stdenv, buildGoPackage, fetchFromGitHub }: buildGoPackage rec { - name = "c14-cli-2016-09-09"; + name = "c14-cli-unstable-${version}"; + version = "2017-05-15"; + rev = "97f437ef5133f73edd551c883db3076c76cb1f6b"; + goPackagePath = "github.com/online-net/c14-cli"; - subPackages = [ "cmd/c14" ]; src = fetchFromGitHub { owner = "online-net"; repo = "c14-cli"; - rev = "e7c7c3cb214fd06df63530a4e861210e7a0a1b6c"; - sha256 = "1k53lii2c04j8cy1bnyfvckl9fglprxp75cmbg15lrp9iic2w22a"; + inherit rev; + sha256 = "1b44bh0zhh6rhw4d3nprnnxhjgaskl9kzp2cvwwyli5svhjxrfdj"; }; goDeps = ./deps.nix; meta = with stdenv.lib; { description = "C14 is designed for data archiving & long-term backups."; - homepage = "https://www.online.net/en/c14"; + homepage = https://www.online.net/en/c14; license = licenses.mit; maintainers = with maintainers; [ apeyroux ]; }; diff --git a/pkgs/applications/networking/c14/deps.nix b/pkgs/applications/networking/c14/deps.nix index 60b6b738438..fe51488c706 100644 --- a/pkgs/applications/networking/c14/deps.nix +++ b/pkgs/applications/networking/c14/deps.nix @@ -1,65 +1 @@ -[ - { - goPackagePath = "github.com/davecgh/go-spew"; - fetch = { - type = "git"; - url = "https://github.com/davecgh/go-spew"; - rev = "6d212800a42e8ab5c146b8ace3490ee17e5225f9"; - sha256 = "01i0n1s4j7khb7n6mz2wymniz37q0vbzkgfv7rbi6p9hpg227q93"; - }; - } - { - goPackagePath = "github.com/fatih/color"; - fetch = { - type = "git"; - url = "https://github.com/fatih/color"; - rev = "87d4004f2ab62d0d255e0a38f1680aa534549fe3"; - sha256 = "0d51avdl4z38f7jd8qmzrzyh4gxkcjpxd0vvma9zfqhmqy15jqhb"; - }; - } - { - goPackagePath = "github.com/mattn/go-colorable"; - fetch = { - type = "git"; - url = "https://github.com/mattn/go-colorable"; - rev = "ed8eb9e318d7a84ce5915b495b7d35e0cfe7b5a8"; - sha256 = "034fhyqmiqmn0v9gdbdmm0ca5d0pki2q1ch1rd34p9kh9574mjyq"; - }; - } - { - goPackagePath = "github.com/mattn/go-isatty"; - fetch = { - type = "git"; - url = "https://github.com/mattn/go-isatty"; - rev = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8"; - sha256 = "17lf13ndnai9a6dlmykqkdyzf1z04q7kffs0l7kvd78wpv3l6rm5"; - }; - } - { - goPackagePath = "github.com/online-net/c14-cli"; - fetch = { - type = "git"; - url = "https://github.com/online-net/c14-cli"; - rev = "e7c7c3cb214fd06df63530a4e861210e7a0a1b6c"; - sha256 = "1k53lii2c04j8cy1bnyfvckl9fglprxp75cmbg15lrp9iic2w22a"; - }; - } - { - goPackagePath = "github.com/pmezard/go-difflib"; - fetch = { - type = "git"; - url = "https://github.com/pmezard/go-difflib"; - rev = "792786c7400a136282c1664665ae0a8db921c6c2"; - sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; - }; - } - { - goPackagePath = "github.com/stretchr/testify"; - fetch = { - type = "git"; - url = "https://github.com/stretchr/testify"; - rev = "d77da356e56a7428ad25149ca77381849a6a5232"; - sha256 = "11id286pkzyswxcx2xz6185fzh0nz6yzkk055dd6z02gvinl6pqa"; - }; - } -] +[] diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix index bdff04cb073..a7205f1bc7a 100644 --- a/pkgs/applications/networking/cluster/cni/default.nix +++ b/pkgs/applications/networking/cluster/cni/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "cni-${version}"; - version = "0.3.0"; + version = "0.5.2"; src = fetchFromGitHub { owner = "containernetworking"; repo = "cni"; rev = "v${version}"; - sha256 = "1nvixvf5slnsdrfpfs2km64x680wf83jbyp7il12bcim37q2az7m"; + sha256 = "0n2sc5xf1h0i54am80kj7imrvawddn0kxvgi65w0194dpmyrg5al"; }; buildInputs = [ go ]; @@ -16,8 +16,8 @@ stdenv.mkDerivation rec { outputs = ["out" "plugins"]; buildPhase = '' - patchShebangs build - ./build + patchShebangs build.sh + ./build.sh ''; installPhase = '' diff --git a/pkgs/applications/networking/cluster/docker-machine/default.nix b/pkgs/applications/networking/cluster/docker-machine/default.nix index b2d70b1f767..95ad83cb3b1 100644 --- a/pkgs/applications/networking/cluster/docker-machine/default.nix +++ b/pkgs/applications/networking/cluster/docker-machine/default.nix @@ -3,7 +3,7 @@ buildGoPackage rec { name = "machine-${version}"; - version = "0.10.0"; + version = "0.12.2"; goPackagePath = "github.com/docker/machine"; @@ -11,7 +11,7 @@ buildGoPackage rec { rev = "v${version}"; owner = "docker"; repo = "machine"; - sha256 = "1ik0jbp8zqzmg8w1fnf82gdlwrvw4nl40lmins7h8y0q6psrp6gc"; + sha256 = "0ikgjb6x6h7f43vjabxnqgrrlq516zsz7vj945hca1w919jpdwhf"; }; postInstall = '' diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/pkgs/applications/networking/cluster/docker-machine/kvm.nix index a73ec99cb9f..5d47302960f 100644 --- a/pkgs/applications/networking/cluster/docker-machine/kvm.nix +++ b/pkgs/applications/networking/cluster/docker-machine/kvm.nix @@ -15,7 +15,8 @@ buildGoPackage rec { sha256 = "1p7s340wlcjvna3xa2x13nsnixfhbn5b7dhf9cqvxds2slizlm3p"; }; - buildInputs = [ libvirt pkgconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libvirt ]; meta = with stdenv.lib; { homepage = https://github.com/dhiltgen/docker-machine-kvm; diff --git a/pkgs/applications/networking/cluster/habitat/chroot-env.nix b/pkgs/applications/networking/cluster/habitat/chroot-env.nix deleted file mode 100644 index 7d6b3749904..00000000000 --- a/pkgs/applications/networking/cluster/habitat/chroot-env.nix +++ /dev/null @@ -1,9 +0,0 @@ -# TODO: Drop once https://github.com/habitat-sh/habitat/issues/994 -# is resolved. -{ habitat, libsodium, libarchive, openssl, buildFHSUserEnv }: - -buildFHSUserEnv { - name = "habitat-sh"; - targetPkgs = pkgs: [ habitat libsodium libarchive openssl ]; - runScript = "bash"; -} diff --git a/pkgs/applications/networking/cluster/habitat/default.nix b/pkgs/applications/networking/cluster/habitat/default.nix index da82dac0019..1656e5a09a6 100644 --- a/pkgs/applications/networking/cluster/habitat/default.nix +++ b/pkgs/applications/networking/cluster/habitat/default.nix @@ -5,28 +5,36 @@ with rustPlatform; buildRustPackage rec { name = "habitat-${version}"; - version = "0.8.0"; + version = "0.30.2"; src = fetchFromGitHub { owner = "habitat-sh"; repo = "habitat"; rev = version; - sha256 = "1h9wv2v4hcv79jkkjf8j96lzxni9d51755zfflfr5s3ayaip7rzj"; + sha256 = "0pqrm85pd9hqn5fwqjbyyrrfh4k7q9mi9qy9hm8yigk5l8mw44y1"; }; - sourceRoot = "habitat-${version}-src/components/hab"; - - depsSha256 = "1612jaw3zdrgrb56r755bb18l8szdmf1wi7p9lpv3d2gklqcb7l1"; + cargoSha256 = "1ahfm5agvabqqqgjsyjb95xxbc7mng1mdyclcakwp1m1qdkxx9p0"; buildInputs = [ libsodium libarchive openssl ]; nativeBuildInputs = [ pkgconfig ]; + cargoBuildFlags = ["--package hab"]; + + checkPhase = '' + runHook preCheck + echo "Running cargo test" + cargo test --package hab + runHook postCheck + ''; + meta = with lib; { description = "An application automation framework"; homepage = https://www.habitat.sh; license = licenses.asl20; maintainers = [ maintainers.rushmorem ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; + broken = true; # mark temporary as broken due git dependencies }; } diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix index 55ebb580f52..9af4cf3f0ed 100644 --- a/pkgs/applications/networking/cluster/hadoop/default.nix +++ b/pkgs/applications/networking/cluster/hadoop/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://hadoop.apache.org/"; + homepage = http://hadoop.apache.org/; description = "Framework for distributed processing of large data sets across clusters of computers"; license = stdenv.lib.licenses.asl20; diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix index 31ed8946529..6767a0bd724 100644 --- a/pkgs/applications/networking/cluster/helm/default.nix +++ b/pkgs/applications/networking/cluster/helm/default.nix @@ -4,17 +4,17 @@ let then "linux-amd64" else "darwin-amd64"; checksum = if stdenv.isLinux - then "fa434644d1afd92637369a033fd65b717d8dfa910127d335e8a82c8fad74cc35" - else "64420d467e03ceb666a4f22b89e08b93c06f76f5917fe539860b04cd5e5e515f"; -in -stdenv.mkDerivation rec { + then "1i22givr52kgr76dd2azcg9avgh70wiw5dcpmmyychms2ynxi42y" + else "0phhy3si86ilc6051zfgn8jnniy5lygf1r2gysjpcyfbrc5pw3hj"; pname = "helm"; - version = "2.2.3"; + version = "2.6.1"; +in +stdenv.mkDerivation { name = "${pname}-${version}"; src = fetchurl { url = "https://kubernetes-helm.storage.googleapis.com/helm-v${version}-${arch}.tar.gz"; - sha256 = "${checksum}"; + sha256 = checksum; }; preferLocalBuild = true; @@ -33,6 +33,10 @@ stdenv.mkDerivation rec { tar -xvzf $src cp ${arch}/helm $out/bin/${pname} chmod +x $out/bin/${pname} + mkdir -p $out/share/bash-completion/completions + mkdir -p $out/share/zsh/site-functions + $out/bin/helm completion bash > $out/share/bash-completion/completions/helm + $out/bin/helm completion zsh > $out/share/zsh/site-functions/_helm ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/networking/cluster/kanif/default.nix b/pkgs/applications/networking/cluster/kanif/default.nix index bac0cc37af3..5b543854473 100644 --- a/pkgs/applications/networking/cluster/kanif/default.nix +++ b/pkgs/applications/networking/cluster/kanif/default.nix @@ -4,8 +4,6 @@ stdenv.mkDerivation rec { version = "1.2.2"; name = "kanif-${version}"; - propagateBuildInputs = [ perl taktuk ]; - src = fetchurl { url = "http://gforge.inria.fr/frs/download.php/26773/${name}.tar.gz"; sha256 = "3f0c549428dfe88457c1db293cfac2a22b203f872904c3abf372651ac12e5879"; diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix index ea25fa6ccb5..ff7cb245ae2 100644 --- a/pkgs/applications/networking/cluster/kops/default.nix +++ b/pkgs/applications/networking/cluster/kops/default.nix @@ -2,31 +2,44 @@ buildGoPackage rec { name = "kops-${version}"; - version = "1.4.0"; - rev = "v${version}"; + version = "1.7.1"; goPackagePath = "k8s.io/kops"; src = fetchFromGitHub { - inherit rev; + rev = version; owner = "kubernetes"; repo = "kops"; - sha256 = "1jwgn7l8c639j5annwymqjdw5mcajwn58y21042jy5lhgdh8pdf5"; + sha256 = "0wii6w6hs9hjz3vvgqwa5ilwdi8a3qknmqsg3izazmgmnhl712wd"; }; buildInputs = [go-bindata]; subPackages = ["cmd/kops"]; + buildFlagsArray = '' + -ldflags= + -X k8s.io/kops.Version=${version} + -X k8s.io/kops.GitVersion=${version} + ''; + preBuild = '' (cd go/src/k8s.io/kops - go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...) + go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/... + go-bindata -o federation/model/bindata.go -pkg model -prefix federation/model federation/model/...) + ''; + + postInstall = '' + mkdir -p $bin/share/bash-completion/completions + mkdir -p $bin/share/zsh/site-functions + $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops + $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops ''; meta = with stdenv.lib; { description = "Easiest way to get a production Kubernetes up and running"; homepage = https://github.com/kubernetes/kops; license = licenses.asl20; - maintainers = with maintainers; [offline]; + maintainers = with maintainers; [offline zimbatm]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix new file mode 100644 index 00000000000..7f17bd57c19 --- /dev/null +++ b/pkgs/applications/networking/cluster/kubecfg/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchFromGitHub, ... }: + +let version = "0.5.0"; in + +buildGoPackage { + name = "kubecfg-${version}"; + + src = fetchFromGitHub { + owner = "ksonnet"; + repo = "kubecfg"; + rev = "v${version}"; + sha256 = "1s8w133p8qkj3dr73jimajm9ddp678lw9k9symj8rjw5p35igr93"; + }; + + goPackagePath = "github.com/ksonnet/kubecfg"; + + meta = { + description = "A tool for managing Kubernetes resources as code"; + homepage = https://github.com/ksonnet/kubecfg; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ benley ]; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix index 69fe6a1730a..e8686ade590 100644 --- a/pkgs/applications/networking/cluster/kubernetes/default.nix +++ b/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -8,9 +8,9 @@ "cmd/kube-controller-manager" "cmd/kube-proxy" "plugin/cmd/kube-scheduler" - "cmd/kube-dns" "federation/cmd/federation-apiserver" "federation/cmd/federation-controller-manager" + "test/e2e/e2e.test" ] }: @@ -18,13 +18,13 @@ with lib; stdenv.mkDerivation rec { name = "kubernetes-${version}"; - version = "1.5.6"; + version = "1.7.9"; src = fetchFromGitHub { owner = "kubernetes"; repo = "kubernetes"; rev = "v${version}"; - sha256 = "0mkg4vgz9szgq1k5ignkdr5gmg703xlq8zsrr422a1qfqb8zp15w"; + sha256 = "0lxagvv8mysw6n0vp5vsccl87b628dgsjrf298dx2dqx7wn7zjgi"; }; buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; @@ -55,6 +55,10 @@ stdenv.mkDerivation rec { cp build/pause/pause "$pause/bin/pause" cp -R docs/man/man1 "$man/share/man" + cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons + patchShebangs $out/bin/kube-addons + wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl" + $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl ''; diff --git a/pkgs/applications/networking/cluster/marathon/default.nix b/pkgs/applications/networking/cluster/marathon/default.nix index 914ca259675..49cac6d5063 100644 --- a/pkgs/applications/networking/cluster/marathon/default.nix +++ b/pkgs/applications/networking/cluster/marathon/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "marathon-${version}"; - version = "1.4.1"; + version = "1.4.2"; src = fetchurl { url = "https://downloads.mesosphere.com/marathon/v${version}/marathon-${version}.tgz"; - sha256 = "1wpzsvvmk19qrwzwj7k12rngry1qriiqnjzq2q2pbpv5w0zb1fz5"; + sha256 = "6eab65a95c87a989e922aca2b49ba872b50a94e46a8fd4831d1ab41f319d6932"; }; buildInputs = [ makeWrapper jdk mesos ]; @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { homepage = https://mesosphere.github.io/marathon; description = "Cluster-wide init and control system for services in cgroups or Docker containers"; license = licenses.asl20; - maintainers = with maintainers; [ rushmorem kamilchm kevincox pradeepchhetri ]; + maintainers = with maintainers; [ kamilchm kevincox pradeepchhetri ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix index 651d00e5710..116e7432690 100644 --- a/pkgs/applications/networking/cluster/mesos/default.nix +++ b/pkgs/applications/networking/cluster/mesos/default.nix @@ -1,14 +1,13 @@ -{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf -, automake115x, libtool, unzip, gnutar, jdk, maven, python, wrapPython +{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh +, unzip, gnutar, jdk, python, wrapPython , setuptools, boto, pythonProtobuf, apr, subversion, gzip, systemd , leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent -, ethtool, coreutils, which, iptables -, bash +, ethtool, coreutils, which, iptables, maven +, bash, autoreconfHook }: let mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; }; - soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so"; # `tar -z` requires gzip on $PATH, so wrap tar. # At some point, we should try to patch mesos so we add gzip to the PATH when # tar is invoked. I think that only needs to be done here: @@ -22,7 +21,7 @@ let }); in stdenv.mkDerivation rec { - version = "1.1.0"; + version = "1.4.0"; name = "mesos-${version}"; enableParallelBuilding = true; @@ -30,7 +29,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "mirror://apache/mesos/${version}/${name}.tar.gz"; - sha256 = "1hdjd4syyp88l0bnh88bhzvn9466ad2ysfp9pq3kwj3qzwg5jv8g"; + sha256 = "0c08kd226nrjwm2z2drpq4vi97h9r8b1xkdvkgh1114fxg7cyvys"; }; patches = [ @@ -41,11 +40,13 @@ in stdenv.mkDerivation rec { # see https://github.com/cstrahan/mesos/tree/nixos-${version} ./nixos.patch ]; - + nativeBuildInputs = [ + autoreconfHook + ]; buildInputs = [ - makeWrapper autoconf automake115x libtool curl sasl jdk maven + makeWrapper curl sasl jdk python wrapPython boto setuptools leveldb - subversion apr glog openssl libevent + subversion apr glog openssl libevent maven ] ++ lib.optionals stdenv.isLinux [ libnl ]; @@ -53,10 +54,6 @@ in stdenv.mkDerivation rec { propagatedBuildInputs = [ pythonProtobuf ]; - - # note that we *must* statically link libprotobuf. - # if we dynamically link the lib, we get these errors: - # https://github.com/NixOS/nixpkgs/pull/19064#issuecomment-255082684 preConfigure = '' # https://issues.apache.org/jira/browse/MESOS-6616 configureFlagsArray+=( @@ -67,13 +64,12 @@ in stdenv.mkDerivation rec { # instead of sed 1i'#include ' -i src/linux/fs.cpp sed 1i'#include ' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp - substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \ --subst-var-by chown ${coreutils}/bin/chown substituteInPlace 3rdparty/stout/Makefile.am \ --replace "-lprotobuf" \ - "${pythonProtobuf.protobuf.lib}/lib/libprotobuf.a" + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \ --subst-var-by sh ${bash}/bin/bash @@ -101,7 +97,7 @@ in stdenv.mkDerivation rec { substituteInPlace src/python/native_common/ext_modules.py.in \ --replace "-lprotobuf" \ - "${pythonProtobuf.protobuf.lib}/lib/libprotobuf.a" + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \ --subst-var-by cp ${coreutils}/bin/cp \ @@ -126,7 +122,7 @@ in stdenv.mkDerivation rec { substituteInPlace src/Makefile.am \ --subst-var-by mavenRepo ${mavenRepo} \ --replace "-lprotobuf" \ - "${pythonProtobuf.protobuf.lib}/lib/libprotobuf.a" + "${pythonProtobuf.protobuf}/lib/libprotobuf.a" '' + lib.optionalString stdenv.isLinux '' @@ -180,7 +176,7 @@ in stdenv.mkDerivation rec { "--enable-libevent" "--with-libevent=${libevent.dev}" "--with-protobuf=${pythonProtobuf.protobuf}" - "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar" + "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar" ] ++ lib.optionals stdenv.isLinux [ "--with-network-isolator" "--with-nl=${libnl.dev}" @@ -193,7 +189,7 @@ in stdenv.mkDerivation rec { mkdir -p $out/share/java cp src/java/target/mesos-*.jar $out/share/java - MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos.${soext} + MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary} mkdir -p $out/nix-support touch $out/nix-support/setup-hook @@ -247,7 +243,7 @@ in stdenv.mkDerivation rec { homepage = "http://mesos.apache.org"; license = licenses.asl20; description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks"; - maintainers = with maintainers; [ cstrahan kevincox offline rushmorem ]; + maintainers = with maintainers; [ cstrahan kevincox offline ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh index f4a4588dbe4..cf7318ecb27 100644 --- a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh +++ b/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh @@ -1127,10 +1127,12 @@ fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1 fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1 -fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.pom -fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.pom.sha1 -fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar -fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar.sha1 +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1 +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar +fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1 +fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom +fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1 fetchArtifact com/google/google/1/google-1.pom fetchArtifact com/google/google/1/google-1.pom.sha1 fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom diff --git a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/pkgs/applications/networking/cluster/mesos/mesos-deps.nix index 1edb4a755d8..642c660edb6 100644 --- a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix +++ b/pkgs/applications/networking/cluster/mesos/mesos-deps.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation { outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "066ikswavq3l37x1s3pfdncyj77pvpa0kj14ax5dqb9njmsg0s11"; + outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly"; buildInputs = [ curl ]; diff --git a/pkgs/applications/networking/cluster/mesos/nixos.patch b/pkgs/applications/networking/cluster/mesos/nixos.patch index 78e374b8d6b..a6fea024b08 100644 --- a/pkgs/applications/networking/cluster/mesos/nixos.patch +++ b/pkgs/applications/networking/cluster/mesos/nixos.patch @@ -1,20 +1,7 @@ -diff --git a/3rdparty/stout/include/stout/os/posix/chown.hpp b/3rdparty/stout/include/stout/os/posix/chown.hpp -index c82e2e574..15d332107 100644 ---- a/3rdparty/stout/include/stout/os/posix/chown.hpp -+++ b/3rdparty/stout/include/stout/os/posix/chown.hpp -@@ -34,7 +34,7 @@ inline Try chown( - // TODO(bmahler): Consider walking the file tree instead. We would need - // to be careful to not miss dotfiles. - std::string command = -- "chown -R " + stringify(uid) + ':' + stringify(gid) + " '" + path + "'"; -+ "@chown@ -R " + stringify(uid) + ':' + stringify(gid) + " '" + path + "'"; - - int status = os::system(command); - if (status != 0) { -diff --git a/3rdparty/stout/include/stout/os/posix/fork.hpp b/3rdparty/stout/include/stout/os/posix/fork.hpp -index a29967dcb..290b98b50 100644 ---- a/3rdparty/stout/include/stout/os/posix/fork.hpp -+++ b/3rdparty/stout/include/stout/os/posix/fork.hpp +diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp +index a29967d..290b98b 100644 +--- i/3rdparty/stout/include/stout/os/posix/fork.hpp ++++ w/3rdparty/stout/include/stout/os/posix/fork.hpp @@ -369,7 +369,7 @@ private: if (exec.isSome()) { // Execute the command (via '/bin/sh -c command'). @@ -24,11 +11,11 @@ index a29967dcb..290b98b50 100644 EXIT(EXIT_FAILURE) << "Failed to execute '" << command << "': " << os::strerror(errno); } else if (wait.isSome()) { -diff --git a/3rdparty/stout/include/stout/posix/os.hpp b/3rdparty/stout/include/stout/posix/os.hpp -index c37e64db6..d3d87b7f0 100644 ---- a/3rdparty/stout/include/stout/posix/os.hpp -+++ b/3rdparty/stout/include/stout/posix/os.hpp -@@ -375,7 +375,7 @@ inline Option getenv(const std::string& key) +diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp +index 8511dfd..1e7be01 100644 +--- i/3rdparty/stout/include/stout/posix/os.hpp ++++ w/3rdparty/stout/include/stout/posix/os.hpp +@@ -366,7 +366,7 @@ inline Try> pids(Option group, Option session) inline Try tar(const std::string& path, const std::string& archive) { Try tarOut = @@ -37,11 +24,11 @@ index c37e64db6..d3d87b7f0 100644 if (tarOut.isError()) { return Error("Failed to archive " + path + ": " + tarOut.error()); -diff --git a/src/Makefile.am b/src/Makefile.am -index 3bcc0f2df..e5cbc57e8 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1545,7 +1545,7 @@ if HAS_JAVA +diff --git i/src/Makefile.am w/src/Makefile.am +index 68fff14..c572f92 100644 +--- i/src/Makefile.am ++++ w/src/Makefile.am +@@ -1775,7 +1775,7 @@ if HAS_JAVA $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom @echo "Building mesos-$(PACKAGE_VERSION).jar ..." @@ -50,10 +37,10 @@ index 3bcc0f2df..e5cbc57e8 100644 # Convenience library for JNI bindings. # TODO(Charles Reiss): We really should be building the Java library -diff --git a/src/cli/mesos-scp b/src/cli/mesos-scp -index a71ab0708..1043d1b3c 100755 ---- a/src/cli/mesos-scp -+++ b/src/cli/mesos-scp +diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp +index a71ab07..1043d1b 100755 +--- i/src/cli/mesos-scp ++++ w/src/cli/mesos-scp @@ -19,7 +19,8 @@ if sys.version_info < (2,6,0): @@ -64,11 +51,11 @@ index a71ab0708..1043d1b3c 100755 try: process = subprocess.Popen( cmd, -diff --git a/src/common/command_utils.cpp b/src/common/command_utils.cpp -index 09e805140..90bf65896 100644 ---- a/src/common/command_utils.cpp -+++ b/src/common/command_utils.cpp -@@ -140,7 +140,7 @@ Future tar( +diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp +index c50be76..388cc53 100644 +--- i/src/common/command_utils.cpp ++++ w/src/common/command_utils.cpp +@@ -142,7 +142,7 @@ Future tar( argv.emplace_back(input); @@ -77,7 +64,7 @@ index 09e805140..90bf65896 100644 .then([]() { return Nothing(); }); } -@@ -162,7 +162,7 @@ Future untar( +@@ -164,7 +164,7 @@ Future untar( argv.emplace_back(directory.get()); } @@ -86,7 +73,7 @@ index 09e805140..90bf65896 100644 .then([]() { return Nothing(); }); } -@@ -170,7 +170,7 @@ Future untar( +@@ -172,7 +172,7 @@ Future untar( Future sha512(const Path& input) { #ifdef __linux__ @@ -95,7 +82,7 @@ index 09e805140..90bf65896 100644 vector argv = { cmd, input // Input file to compute shasum. -@@ -206,7 +206,7 @@ Future gzip(const Path& input) +@@ -208,7 +208,7 @@ Future gzip(const Path& input) input }; @@ -104,7 +91,7 @@ index 09e805140..90bf65896 100644 .then([]() { return Nothing(); }); } -@@ -219,7 +219,7 @@ Future decompress(const Path& input) +@@ -221,7 +221,7 @@ Future decompress(const Path& input) input }; @@ -113,41 +100,45 @@ index 09e805140..90bf65896 100644 .then([]() { return Nothing(); }); } -diff --git a/src/launcher/fetcher.cpp b/src/launcher/fetcher.cpp -index 4456c2813..e22c8fc03 100644 ---- a/src/launcher/fetcher.cpp -+++ b/src/launcher/fetcher.cpp -@@ -68,13 +68,13 @@ static Try extract( +diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp +index 42980f5..3aebeed 100644 +--- i/src/launcher/fetcher.cpp ++++ w/src/launcher/fetcher.cpp +@@ -80,17 +80,17 @@ static Try extract( strings::endsWith(sourcePath, ".tar.bz2") || strings::endsWith(sourcePath, ".txz") || strings::endsWith(sourcePath, ".tar.xz")) { -- command = "tar -C '" + destinationDirectory + "' -xf"; -+ command = "@tar@ -C '" + destinationDirectory + "' -xf"; +- command = {"tar", "-C", destinationDirectory, "-xf", sourcePath}; ++ command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath}; } else if (strings::endsWith(sourcePath, ".gz")) { string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3); string filename = Path(pathWithoutExtension).basename(); -- command = "gzip -dc > '" + destinationDirectory + "/" + filename + "' <"; -+ command = "@gzip@ -dc > '" + destinationDirectory + "/" + filename + "' <"; + string destinationPath = path::join(destinationDirectory, filename); + +- command = {"gunzip", "-d", "-c"}; ++ command = {"@gunzip@", "-d", "-c"}; + in = Subprocess::PATH(sourcePath); + out = Subprocess::PATH(destinationPath); } else if (strings::endsWith(sourcePath, ".zip")) { -- command = "unzip -o -d '" + destinationDirectory + "'"; -+ command = "@unzip@ -o -d '" + destinationDirectory + "'"; +- command = {"unzip", "-o", "-d", destinationDirectory, sourcePath}; ++ command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath}; } else { return false; } -@@ -162,7 +162,7 @@ static Try copyFile( +@@ -193,7 +193,7 @@ static Try copyFile( const string& sourcePath, const string& destinationPath) { -- const string command = "cp '" + sourcePath + "' '" + destinationPath + "'"; -+ const string command = "@cp@ '" + sourcePath + "' '" + destinationPath + "'"; +- int status = os::spawn("cp", {"cp", sourcePath, destinationPath}); ++ int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath}); - LOG(INFO) << "Copying resource with command:" << command; - -diff --git a/src/linux/perf.cpp b/src/linux/perf.cpp -index aa31982eb..8b5331b17 100644 ---- a/src/linux/perf.cpp -+++ b/src/linux/perf.cpp -@@ -127,7 +127,7 @@ private: + if (status == -1) { + return ErrnoError("Failed to copy '" + sourcePath + "'"); +diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp +index b301e25..356a2cf 100644 +--- i/src/linux/perf.cpp ++++ w/src/linux/perf.cpp +@@ -128,7 +128,7 @@ private: // NOTE: The supervisor childhook places perf in its own process group // and will kill the perf process when the parent dies. Try _perf = subprocess( @@ -156,19 +147,10 @@ index aa31982eb..8b5331b17 100644 argv, Subprocess::PIPE(), Subprocess::PIPE(), -@@ -319,7 +319,7 @@ bool valid(const set& events) - ostringstream command; - - // Log everything to stderr which is then redirected to /dev/null. -- command << "perf stat --log-fd 2"; -+ command << "@perf@ stat --log-fd 2"; - foreach (const string& event, events) { - command << " --event " << event; - } -diff --git a/src/linux/systemd.cpp b/src/linux/systemd.cpp -index 6318f48fc..394d88d47 100644 ---- a/src/linux/systemd.cpp -+++ b/src/linux/systemd.cpp +diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp +index 6318f48..394d88d 100644 +--- i/src/linux/systemd.cpp ++++ w/src/linux/systemd.cpp @@ -196,13 +196,21 @@ bool exists() // This is static as the init system should not change while we are running. static const bool exists = []() -> bool { @@ -209,10 +191,10 @@ index 6318f48fc..394d88d47 100644 Try daemonReload = os::shell("systemctl daemon-reload"); if (daemonReload.isError()) { return Error("Failed to reload systemd daemon: " + daemonReload.error()); -diff --git a/src/python/cli/src/mesos/cli.py b/src/python/cli/src/mesos/cli.py -index f342992e0..354abf443 100644 ---- a/src/python/cli/src/mesos/cli.py -+++ b/src/python/cli/src/mesos/cli.py +diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py +index 4a9b558..c08a8b9 100644 +--- i/src/python/cli/src/mesos/cli.py ++++ w/src/python/cli/src/mesos/cli.py @@ -40,7 +40,7 @@ def resolve(master): import subprocess @@ -222,10 +204,10 @@ index f342992e0..354abf443 100644 stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, -diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp -index af9f3736b..f8554d414 100644 ---- a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp -+++ b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp +diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp +index 5b630c1..d63ad69 100644 +--- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp ++++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp @@ -499,7 +499,7 @@ Future> DockerVolumeIsolatorProcess::_prepare( // unsafe arbitrary commands). CommandInfo* command = launchInfo.add_pre_exec_commands(); @@ -235,11 +217,11 @@ index af9f3736b..f8554d414 100644 command->add_arguments("mount"); command->add_arguments("-n"); command->add_arguments("--rbind"); -diff --git a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp -index df16b8fee..4a17475bd 100644 ---- a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp -+++ b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp -@@ -159,9 +159,9 @@ Try LinuxFilesystemIsolatorProcess::create(const Flags& flags) +diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp +index d7fe9a8..1361a4e 100644 +--- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp ++++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp +@@ -154,9 +154,9 @@ Try LinuxFilesystemIsolatorProcess::create(const Flags& flags) // here because 'create' will only be invoked during // initialization. Try mount = os::shell( @@ -252,7 +234,7 @@ index df16b8fee..4a17475bd 100644 workDir->c_str(), workDir->c_str(), workDir->c_str(), -@@ -180,8 +180,8 @@ Try LinuxFilesystemIsolatorProcess::create(const Flags& flags) +@@ -175,8 +175,8 @@ Try LinuxFilesystemIsolatorProcess::create(const Flags& flags) LOG(INFO) << "Making '" << workDir.get() << "' a shared mount"; Try mount = os::shell( @@ -263,7 +245,7 @@ index df16b8fee..4a17475bd 100644 workDir->c_str(), workDir->c_str()); -@@ -404,7 +404,7 @@ Try> LinuxFilesystemIsolatorProcess::getPreExecCommands( +@@ -422,7 +422,7 @@ Try> LinuxFilesystemIsolatorProcess::getPreExecCommands( CommandInfo command; command.set_shell(false); @@ -272,7 +254,7 @@ index df16b8fee..4a17475bd 100644 command.add_arguments("mount"); command.add_arguments("-n"); command.add_arguments("--rbind"); -@@ -569,7 +569,7 @@ Try> LinuxFilesystemIsolatorProcess::getPreExecCommands( +@@ -610,7 +610,7 @@ Try> LinuxFilesystemIsolatorProcess::getPreExecCommands( // TODO(jieyu): Consider the mode in the volume. CommandInfo command; command.set_shell(false); @@ -281,11 +263,11 @@ index df16b8fee..4a17475bd 100644 command.add_arguments("mount"); command.add_arguments("-n"); command.add_arguments("--rbind"); -diff --git a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp -index a1283e5ee..a918427bf 100644 ---- a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp -+++ b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp -@@ -207,7 +207,7 @@ Future> SharedFilesystemIsolatorProcess::prepare( +diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp +index 927d95b..576dc63 100644 +--- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp ++++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp +@@ -208,7 +208,7 @@ Future> SharedFilesystemIsolatorProcess::prepare( } launchInfo.add_pre_exec_commands()->set_value( @@ -294,11 +276,11 @@ index a1283e5ee..a918427bf 100644 } return launchInfo; -diff --git a/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp b/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp -index e3756c920..cfe458b59 100644 ---- a/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp -+++ b/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp -@@ -355,7 +355,7 @@ Future> NvidiaGpuIsolatorProcess::_prepare( +diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp +index 25636b5..33ec315 100644 +--- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp ++++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp +@@ -401,7 +401,7 @@ Future> NvidiaGpuIsolatorProcess::_prepare( } launchInfo.add_pre_exec_commands()->set_value( @@ -307,11 +289,11 @@ index e3756c920..cfe458b59 100644 volume.HOST_PATH() + " " + target); } -diff --git a/src/slave/containerizer/mesos/isolators/gpu/volume.cpp b/src/slave/containerizer/mesos/isolators/gpu/volume.cpp -index 478752f37..ab527f0cd 100644 ---- a/src/slave/containerizer/mesos/isolators/gpu/volume.cpp -+++ b/src/slave/containerizer/mesos/isolators/gpu/volume.cpp -@@ -281,7 +281,7 @@ Try NvidiaVolume::create() +diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp +index 536a3c7..e2819dd 100644 +--- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp ++++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp +@@ -274,7 +274,7 @@ Try NvidiaVolume::create() string path = path::join(hostPath, "bin", binary); if (!os::exists(path)) { @@ -320,7 +302,7 @@ index 478752f37..ab527f0cd 100644 Try which = os::shell(command); if (which.isSome()) { -@@ -295,7 +295,7 @@ Try NvidiaVolume::create() +@@ -288,7 +288,7 @@ Try NvidiaVolume::create() : "No such file or directory")); } @@ -329,7 +311,7 @@ index 478752f37..ab527f0cd 100644 Try cp = os::shell(command); if (cp.isError()) { return Error("Failed to os::shell '" + command + "': " + cp.error()); -@@ -367,7 +367,7 @@ Try NvidiaVolume::create() +@@ -360,7 +360,7 @@ Try NvidiaVolume::create() Path(realpath.get()).basename()); if (!os::exists(libraryPath)) { @@ -338,11 +320,11 @@ index 478752f37..ab527f0cd 100644 Try cp = os::shell(command); if (cp.isError()) { return Error("Failed to os::shell '" + command + "':" -diff --git a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp -index 0d9ec57d9..a177e4476 100644 ---- a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp -+++ b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp -@@ -94,7 +94,7 @@ Future> NamespacesPidIsolatorProcess::prepare( +diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp +index 42bc2e1..2f9066e 100644 +--- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp ++++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp +@@ -131,7 +131,7 @@ Future> NamespacesPidIsolatorProcess::prepare( // // TOOD(jieyu): Consider unmount the existing /proc. launchInfo.add_pre_exec_commands()->set_value( @@ -351,11 +333,11 @@ index 0d9ec57d9..a177e4476 100644 return launchInfo; } -diff --git a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp -index c87e6715a..6601cd1b3 100644 ---- a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp -+++ b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp -@@ -262,9 +262,9 @@ Try NetworkCniIsolatorProcess::create(const Flags& flags) +diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp +index fc68f04..267b040 100644 +--- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp +@@ -205,9 +205,9 @@ Try NetworkCniIsolatorProcess::create(const Flags& flags) // here because 'create' will only be invoked during // initialization. Try mount = os::shell( @@ -368,7 +350,7 @@ index c87e6715a..6601cd1b3 100644 rootDir->c_str(), rootDir->c_str(), rootDir->c_str(), -@@ -284,8 +284,8 @@ Try NetworkCniIsolatorProcess::create(const Flags& flags) +@@ -227,8 +227,8 @@ Try NetworkCniIsolatorProcess::create(const Flags& flags) LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount"; Try mount = os::shell( @@ -379,11 +361,11 @@ index c87e6715a..6601cd1b3 100644 rootDir->c_str(), rootDir->c_str()); -diff --git a/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp b/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp -index b470f0c82..6110a43ee 100644 ---- a/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp -+++ b/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp -@@ -303,7 +303,7 @@ Try PortMapper::addPortMapping( +diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp +index 43cf3e4..94bad8b 100644 +--- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp +@@ -301,7 +301,7 @@ Try PortMapper::addPortMapping( # Check if the `chain` exists in the iptable. If it does not # exist go ahead and install the chain in the iptables NAT # table. @@ -392,7 +374,7 @@ index b470f0c82..6110a43ee 100644 if [ $? -ne 0 ]; then # NOTE: When we create the chain, there is a possibility of a # race due to which a container launch can fail. This can -@@ -317,25 +317,25 @@ Try PortMapper::addPortMapping( +@@ -315,25 +315,25 @@ Try PortMapper::addPortMapping( # since it can happen only when the chain is created the first # time and two commands for creation of the chain are executed # simultaneously. @@ -422,7 +404,7 @@ index b470f0c82..6110a43ee 100644 chain, chain, chain, -@@ -362,7 +362,7 @@ Try PortMapper::delPortMapping() +@@ -360,7 +360,7 @@ Try PortMapper::delPortMapping() # The iptables command searches for the DNAT rules with tag # "container_id: ", and if it exists goes ahead # and deletes it. @@ -431,11 +413,11 @@ index b470f0c82..6110a43ee 100644 chain, getIptablesRuleTag()).get(); -diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp -index 20fb6ab35..46c160977 100644 ---- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp -+++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp -@@ -1393,19 +1393,19 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) +diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +index 57d4ccd..68c9577 100644 +--- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp ++++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +@@ -1394,19 +1394,19 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) // Check the availability of a few Linux commands that we will use. // We use the blocking os::shell here because 'create' will only be // invoked during initialization. @@ -458,7 +440,7 @@ index 20fb6ab35..46c160977 100644 if (checkCommandIp.isError()) { return Error("Check command 'ip' failed: " + checkCommandIp.error()); } -@@ -1925,9 +1925,9 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) +@@ -1940,9 +1940,9 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) // visible. It's OK to use the blocking os::shell here because // 'create' will only be invoked during initialization. Try mount = os::shell( @@ -471,7 +453,7 @@ index 20fb6ab35..46c160977 100644 bindMountRoot->c_str(), bindMountRoot->c_str(), bindMountRoot->c_str(), -@@ -1944,8 +1944,8 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) +@@ -1959,8 +1959,8 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) // shared mount yet (possibly due to slave crash while preparing // the work directory mount). It's safe to re-do the following. Try mount = os::shell( @@ -482,7 +464,7 @@ index 20fb6ab35..46c160977 100644 bindMountRoot->c_str(), bindMountRoot->c_str()); -@@ -1964,8 +1964,8 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) +@@ -1979,8 +1979,8 @@ Try PortMappingIsolatorProcess::create(const Flags& flags) // so that they are in different peer groups. if (entry.shared() == bindMountEntry->shared()) { Try mount = os::shell( @@ -493,7 +475,7 @@ index 20fb6ab35..46c160977 100644 bindMountRoot->c_str(), bindMountRoot->c_str()); -@@ -3911,6 +3911,8 @@ Try PortMappingIsolatorProcess::removeHostIPFilters( +@@ -3927,6 +3927,8 @@ Try PortMappingIsolatorProcess::removeHostIPFilters( // TODO(jieyu): Use the Subcommand abstraction to remove most of the // logic here. Completely remove this function once we can assume a // newer kernel where 'setns' works for mount namespaces. @@ -502,7 +484,7 @@ index 20fb6ab35..46c160977 100644 string PortMappingIsolatorProcess::scripts(Info* info) { ostringstream script; -@@ -3921,7 +3923,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave // mount so that changes in the container will not be propagated to // the host. @@ -511,7 +493,7 @@ index 20fb6ab35..46c160977 100644 // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be // forwarded anyway. -@@ -3929,7 +3931,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n"; // Configure lo and eth0. @@ -520,7 +502,7 @@ index 20fb6ab35..46c160977 100644 << " mtu " << hostEth0MTU << " up\n"; // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel -@@ -3938,12 +3940,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) // when we receive a packet with a bad checksum. Disabling rx // checksum offloading ensures the TCP layer will checksum and drop // it. @@ -537,7 +519,7 @@ index 20fb6ab35..46c160977 100644 // Restrict the ephemeral ports that can be used by the container. script << "echo " << info->ephemeralPorts.lower() << " " -@@ -3972,19 +3974,19 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info) } // Set up filters on lo and eth0. @@ -561,7 +543,7 @@ index 20fb6ab35..46c160977 100644 << " protocol ip" << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32" << " flowid ffff:0" -@@ -3995,7 +3997,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) foreach (const PortRange& range, getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) { // Local traffic inside a container will not be redirected to eth0. @@ -570,7 +552,7 @@ index 20fb6ab35..46c160977 100644 << " protocol ip" << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32" << " flowid ffff:0" -@@ -4004,7 +4006,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info) // Traffic going to host loopback IP and ports assigned to this // container will be redirected to lo. @@ -579,7 +561,7 @@ index 20fb6ab35..46c160977 100644 << " protocol ip" << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32" << " flowid ffff:0" -@@ -4016,14 +4018,14 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info) } // Do not forward the ICMP packet if the destination IP is self. @@ -596,8 +578,8 @@ index 20fb6ab35..46c160977 100644 << " protocol ip" << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32" << " flowid ffff:0" -@@ -4032,9 +4034,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) - << net::IPNetwork::LOOPBACK_V4().address() << "\n"; +@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) + << net::IP::Network::LOOPBACK_V4().address() << "\n"; // Display the filters created on eth0 and lo. - script << "tc filter show dev " << eth0 @@ -608,7 +590,7 @@ index 20fb6ab35..46c160977 100644 << " parent " << ingress::HANDLE << "\n"; // If throughput limit for container egress traffic exists, use HTB -@@ -4046,9 +4048,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info) // throughput. TBF requires other parameters such as 'burst' that // HTB already has default values for. if (egressRateLimitPerContainer.isSome()) { @@ -620,7 +602,7 @@ index 20fb6ab35..46c160977 100644 << CONTAINER_TX_HTB_HANDLE << " classid " << CONTAINER_TX_HTB_CLASS_ID << " htb rate " << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n"; -@@ -4059,12 +4061,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) +@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info) // fq_codel, which has a larger buffer and better control on // buffer bloat. // TODO(cwang): Verity that fq_codel qdisc is available. @@ -636,24 +618,24 @@ index 20fb6ab35..46c160977 100644 } return script.str(); -diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.cpp b/src/slave/containerizer/mesos/isolators/posix/disk.cpp -index db0583386..542586370 100644 ---- a/src/slave/containerizer/mesos/isolators/posix/disk.cpp -+++ b/src/slave/containerizer/mesos/isolators/posix/disk.cpp -@@ -540,7 +540,7 @@ private: +diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp +index eb23025..db268ea 100644 +--- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp ++++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp +@@ -572,7 +572,7 @@ private: // NOTE: The supervisor childhook will watch the parent process and kill // the 'du' process in case that the parent die. Try s = subprocess( - "du", + "@du@", command, - Subprocess::PATH("/dev/null"), + Subprocess::PATH(os::DEV_NULL), Subprocess::PIPE(), -diff --git a/src/slave/containerizer/mesos/isolators/volume/image.cpp b/src/slave/containerizer/mesos/isolators/volume/image.cpp -index 210e67ad0..60b3a15e4 100644 ---- a/src/slave/containerizer/mesos/isolators/volume/image.cpp -+++ b/src/slave/containerizer/mesos/isolators/volume/image.cpp -@@ -214,7 +214,7 @@ Future> VolumeImageIsolatorProcess::_prepare( +diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp +index 35966aa..b62fc86 100644 +--- i/src/slave/containerizer/mesos/isolators/volume/image.cpp ++++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp +@@ -231,7 +231,7 @@ Future> VolumeImageIsolatorProcess::_prepare( CommandInfo* command = launchInfo.add_pre_exec_commands(); command->set_shell(false); @@ -662,11 +644,11 @@ index 210e67ad0..60b3a15e4 100644 command->add_arguments("mount"); command->add_arguments("-n"); command->add_arguments("--rbind"); -diff --git a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp -index 7b976d292..474dcd486 100644 ---- a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp -+++ b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp -@@ -240,7 +240,7 @@ Future> VolumeSandboxPathIsolatorProcess::prepare( +diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp +index b321b86..8ed3e78 100644 +--- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp ++++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp +@@ -265,7 +265,7 @@ Future> VolumeSandboxPathIsolatorProcess::prepare( CommandInfo* command = launchInfo.add_pre_exec_commands(); command->set_shell(false); @@ -675,58 +657,60 @@ index 7b976d292..474dcd486 100644 command->add_arguments("mount"); command->add_arguments("-n"); command->add_arguments("--rbind"); -diff --git a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp -index 9c5354e5f..a73a9692e 100644 ---- a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp -+++ b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp -@@ -147,7 +147,7 @@ Future CopyBackendProcess::_provision( +diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp +index 69faa03..01a3ed6 100644 +--- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp ++++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp +@@ -266,7 +266,7 @@ Future CopyBackendProcess::_provision( #endif // __APPLE__ || __FreeBSD__ Try s = subprocess( - "cp", + "@cp@", args, - Subprocess::PATH("/dev/null"), - Subprocess::PATH("/dev/null"), -@@ -180,7 +180,7 @@ Future CopyBackendProcess::destroy(const string& rootfs) + Subprocess::PATH(os::DEV_NULL), + Subprocess::PATH(os::DEV_NULL), +@@ -313,7 +313,7 @@ Future CopyBackendProcess::destroy(const string& rootfs) vector argv{"rm", "-rf", rootfs}; Try s = subprocess( - "rm", + "@rm@", argv, - Subprocess::PATH("/dev/null"), + Subprocess::PATH(os::DEV_NULL), Subprocess::FD(STDOUT_FILENO), -diff --git a/src/uri/fetchers/copy.cpp b/src/uri/fetchers/copy.cpp -index 2cfef5ab0..8a62f7699 100644 ---- a/src/uri/fetchers/copy.cpp -+++ b/src/uri/fetchers/copy.cpp -@@ -97,7 +97,7 @@ Future CopyFetcherPlugin::fetch( - const vector argv = {"cp", "-a", uri.path(), directory}; +diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp +index 17f69be..831b08a 100644 +--- i/src/uri/fetchers/copy.cpp ++++ w/src/uri/fetchers/copy.cpp +@@ -97,8 +97,8 @@ Future CopyFetcherPlugin::fetch( + VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'"; - Try s = subprocess( -- "cp", -+ "@cp@", - argv, - Subprocess::PATH("/dev/null"), - Subprocess::PIPE(), -diff --git a/src/uri/fetchers/curl.cpp b/src/uri/fetchers/curl.cpp -index 7b746d619..12bbb04df 100644 ---- a/src/uri/fetchers/curl.cpp -+++ b/src/uri/fetchers/curl.cpp -@@ -107,7 +107,7 @@ Future CurlFetcherPlugin::fetch( + #ifndef __WINDOWS__ +- const char* copyCommand = "cp"; +- const vector argv = {"cp", "-a", uri.path(), directory}; ++ const char* copyCommand = "@cp@"; ++ const vector argv = {"@cp@", "-a", uri.path(), directory}; + #else // __WINDOWS__ + const char* copyCommand = os::Shell::name; + const vector argv = +diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp +index f34daf2..6a50341 100644 +--- i/src/uri/fetchers/curl.cpp ++++ w/src/uri/fetchers/curl.cpp +@@ -109,7 +109,7 @@ Future CurlFetcherPlugin::fetch( }; Try s = subprocess( - "curl", + "@curl@", argv, - Subprocess::PATH("/dev/null"), + Subprocess::PATH(os::DEV_NULL), Subprocess::PIPE(), -diff --git a/src/uri/fetchers/docker.cpp b/src/uri/fetchers/docker.cpp -index 3f38dddfb..fd991ee74 100644 ---- a/src/uri/fetchers/docker.cpp -+++ b/src/uri/fetchers/docker.cpp +diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp +index 91db13b..82a7fc4 100644 +--- i/src/uri/fetchers/docker.cpp ++++ w/src/uri/fetchers/docker.cpp @@ -114,7 +114,7 @@ static Future curl( // TODO(jieyu): Kill the process if discard is called. @@ -734,14 +718,14 @@ index 3f38dddfb..fd991ee74 100644 - "curl", + "@curl@", argv, - Subprocess::PATH("/dev/null"), + Subprocess::PATH(os::DEV_NULL), Subprocess::PIPE(), -@@ -213,7 +213,7 @@ static Future download( +@@ -229,7 +229,7 @@ static Future download( // TODO(jieyu): Kill the process if discard is called. Try s = subprocess( - "curl", + "@curl@", argv, - Subprocess::PATH("/dev/null"), + Subprocess::PATH(os::DEV_NULL), Subprocess::PIPE(), diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix index 9d17443ac88..00ee3a3771e 100644 --- a/pkgs/applications/networking/cluster/minikube/default.nix +++ b/pkgs/applications/networking/cluster/minikube/default.nix @@ -1,4 +1,5 @@ -{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, go-bindata, kubernetes, libvirt, qemu, docker-machine-kvm, makeWrapper }: +{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, go-bindata, kubernetes, libvirt, qemu, docker-machine-kvm, + gpgme, makeWrapper }: let binPath = [ kubernetes ] @@ -14,15 +15,15 @@ let # instead, we download localkube ourselves and shove it into the minikube binary. The versions URL that minikube uses is # currently https://storage.googleapis.com/minikube/k8s_releases.json - localkube-version = "1.6.0"; + localkube-version = "1.8.0"; localkube-binary = fetchurl { url = "https://storage.googleapis.com/minikube/k8sReleases/v${localkube-version}/localkube-linux-amd64"; - sha256 = "0zx0c9fwairvga1g1112l5g5pspm2m9wxb42qgfxfgyidywvirha"; + sha256 = "09mv1g9i0d14brvvp2wxgmfqvgp0na5dbm4z76a660q1fxszvgqc"; }; in buildGoPackage rec { pname = "minikube"; name = "${pname}-${version}"; - version = "0.18.0"; + version = "0.23.0"; goPackagePath = "k8s.io/minikube"; @@ -30,12 +31,12 @@ in buildGoPackage rec { owner = "kubernetes"; repo = "minikube"; rev = "v${version}"; - sha256 = "0r8184xfsw7vvvmzhc18si582q41cnzka4ry151hwy56gmp2jyiw"; + sha256 = "1f7kjn26y7knmab5avj8spb40ny1y0jix5j5p0dqfjvg9climl0h"; }; # kubernetes is here only to shut up a loud warning when generating the completions below. minikube checks very eagerly # that kubectl is on the $PATH, even if it doesn't use it at all to generate the completions - buildInputs = [ go-bindata makeWrapper kubernetes ]; + buildInputs = [ go-bindata makeWrapper kubernetes gpgme ]; subPackages = [ "cmd/minikube" ]; preBuild = '' diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix index 1d39534bc16..e39bc59709e 100644 --- a/pkgs/applications/networking/cluster/nomad/default.nix +++ b/pkgs/applications/networking/cluster/nomad/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "nomad-${version}"; - version = "0.5.5"; + version = "0.6.2"; rev = "v${version}"; goPackagePath = "github.com/hashicorp/nomad"; @@ -12,7 +12,7 @@ buildGoPackage rec { owner = "hashicorp"; repo = "nomad"; inherit rev; - sha256 = "17xq88ymm77b6y27l4v49i9hm6yjyrk61rdb2v7nvn8fa4bn6b65"; + sha256 = "12bxqn7yldri5cwyxybd1lwg4c66mxd7g9syf54va5788c0hj8ij"; }; meta = with stdenv.lib; { diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix index 403457bb4a6..fdc97733c77 100644 --- a/pkgs/applications/networking/cluster/openshift/default.nix +++ b/pkgs/applications/networking/cluster/openshift/default.nix @@ -1,13 +1,12 @@ -{ stdenv, fetchFromGitHub, go, which }: +{ stdenv, fetchFromGitHub, which, buildGoPackage, utillinux, coreutils }: let - version = "1.3.2"; + version = "3.6.0"; ver = stdenv.lib.elemAt (stdenv.lib.splitString "." version); versionMajor = ver 0; versionMinor = ver 1; versionPatch = ver 2; -in -stdenv.mkDerivation rec { +in buildGoPackage rec { name = "openshift-origin-${version}"; inherit version; @@ -15,37 +14,47 @@ stdenv.mkDerivation rec { owner = "openshift"; repo = "origin"; rev = "v${version}"; - sha256 = "0zw8zb9c6icigcq6y47ppnjnqyghk2kril07bapbddvgnvbbfp6m"; + sha256 = "08bdqvsjl6c7dmllyz8n4akb7gyn91znvbph5cgmmk1bhskycy1r"; }; - buildInputs = [ go which ]; + buildInputs = [ which ]; + goPackagePath = null; patchPhase = '' patchShebangs ./hack + substituteInPlace pkg/bootstrap/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt findmnt' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/findmnt' + + substituteInPlace pkg/bootstrap/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mount' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount' + + substituteInPlace pkg/bootstrap/docker/host/host.go \ + --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mkdir' \ + 'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount' ''; buildPhase = '' - export GOPATH=$(pwd) + cd go/src/origin-v${version}-src # Openshift build require this variables to be set # unless there is a .git folder which is not the case with fetchFromGitHub - export OS_GIT_VERSION=${version} + export OS_GIT_VERSION=v${version} export OS_GIT_MAJOR=${versionMajor} export OS_GIT_MINOR=${versionMinor} make build ''; installPhase = '' - export GOOS=$(go env GOOS) - export GOARCH=$(go env GOARCH) - mkdir -p "$out/bin" - mv _output/local/bin/$GOOS/$GOARCH/* "$out/bin/" + mkdir -p "$bin/bin" + cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$bin/bin/" ''; meta = with stdenv.lib; { description = "Build, deploy, and manage your applications with Docker and Kubernetes"; license = licenses.asl20; homepage = http://www.openshift.org; - maintainers = with maintainers; [offline bachp]; + maintainers = with maintainers; [offline bachp moretea]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix index a0df23e6f62..c276c2e752f 100644 --- a/pkgs/applications/networking/cluster/pachyderm/default.nix +++ b/pkgs/applications/networking/cluster/pachyderm/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "pachyderm-${version}"; - version = "1.3.0"; + version = "1.4.6"; rev = "v${version}"; goPackagePath = "github.com/pachyderm/pachyderm"; @@ -12,7 +12,7 @@ buildGoPackage rec { inherit rev; owner = "pachyderm"; repo = "pachyderm"; - sha256 = "0y25xh6h7p8hg0bzrjlschmz62r6dwh5mrvbnni1hb1pm0w9jb6g"; + sha256 = "1fivihn9s04lmzdiwg0f05qm708fb14xy81pbc31wxdyjw28m8ns"; }; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/pig/default.nix b/pkgs/applications/networking/cluster/pig/default.nix index c99643beb90..49c57b47028 100644 --- a/pkgs/applications/networking/cluster/pig/default.nix +++ b/pkgs/applications/networking/cluster/pig/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - homepage = "http://pig.apache.org/"; + homepage = http://pig.apache.org/; description = "High-level language for Apache Hadoop"; license = licenses.asl20; diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix new file mode 100644 index 00000000000..dd4a36807ea --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix @@ -0,0 +1,28 @@ +{ stdenv, buildGoPackage, fetchFromGitHub}: + +buildGoPackage rec { + name = "terraform-inventory-${version}"; + version = "0.7-pre"; + rev = "v${version}"; + + goPackagePath = "github.com/adammck/terraform-inventory"; + + subPackages = [ "./" ]; + + src = fetchFromGitHub { + inherit rev; + owner = "adammck"; + repo = "terraform-inventory"; + sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + homepage = https://github.com/adammck/terraform-inventory; + description = "Terraform state to ansible inventory adapter"; + platforms = platforms.all; + license = licenses.mit; + maintainers = with maintainers; [ htr ]; + }; +} diff --git a/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/pkgs/applications/networking/cluster/terraform-inventory/deps.nix new file mode 100644 index 00000000000..9f7b5e317fe --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform-inventory/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "github.com/adammck/venv"; + fetch = { + type = "git"; + url = "https://github.com/adammck/venv"; + rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306"; + sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8"; + }; + } + { + goPackagePath = "github.com/blang/vfs"; + fetch = { + type = "git"; + url = "https://github.com/blang/vfs"; + rev = "c14afcac17253ce7418da751ec6b1988790cdc8f"; + sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b"; + }; + } +] diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 76984fed340..e6e3585a4d1 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildGoPackage, fetchpatch, fetchFromGitHub }: +{ stdenv, lib, buildEnv, buildGoPackage, fetchpatch, fetchFromGitHub, makeWrapper }: let goPackagePath = "github.com/hashicorp/terraform"; @@ -38,26 +38,62 @@ let }; } // attrs'); + pluggable = terraform: + let + withPlugins = plugins: + let + actualPlugins = plugins terraform.plugins; + + passthru = { + withPlugins = newplugins: withPlugins (x: newplugins x ++ actualPlugins); + + # Ouch + overrideDerivation = f: (pluggable (terraform.overrideDerivation f)).withPlugins plugins; + overrideAttrs = f: (pluggable (terraform.overrideAttrs f)).withPlugins plugins; + override = x: (pluggable (terraform.override x)).withPlugins plugins; + }; + in + # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading + # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform. + if actualPlugins == [] + then terraform.overrideAttrs (orig: { passthru = orig.passthru // passthru; }) + else stdenv.mkDerivation { + name = "${terraform.name}-with-plugins"; + buildInputs = [ makeWrapper ]; + + buildCommand = '' + mkdir -p $out/bin/ + makeWrapper "${terraform.bin}/bin/terraform" "$out/bin/terraform" \ + --set NIX_TERRAFORM_PLUGIN_DIR "${buildEnv { name = "tf-plugin-env"; paths = actualPlugins; }}/bin" + ''; + + inherit passthru; + }; + in withPlugins (_: []); + + plugins = import ./providers { inherit stdenv lib buildGoPackage fetchFromGitHub; }; in { terraform_0_8_5 = generic { version = "0.8.5"; sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09"; }; - terraform_0_8_8 = generic { + terraform_0_8 = generic { version = "0.8.8"; sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb"; }; - terraform_0_9_3 = generic { - version = "0.9.3"; - sha256 = "00z72lwv0cprz1jjy0cr8dicl00zwc1zwsxzjssqnq0187sswkxw"; - - postPatch = '' - rm builtin/providers/dns/data_dns_cname_record_set_test.go - rm builtin/providers/vsphere/resource_vsphere_file_test.go - ''; - - doCheck = true; + terraform_0_9 = generic { + version = "0.9.11"; + sha256 = "045zcpd4g9c52ynhgh3213p422ahds63mzhmd2iwcmj88g8i1w6x"; + # checks are failing again + doCheck = false; }; + + terraform_0_10 = pluggable (generic { + version = "0.10.7"; + sha256 = "0gjvrra255m973nzi7rpqp5dn5npnd79cnv8vjcs7wmkdj1hli0l"; + patches = [ ./provider-path.patch ]; + passthru = { inherit plugins; }; + }); } diff --git a/pkgs/applications/networking/cluster/terraform/provider-path.patch b/pkgs/applications/networking/cluster/terraform/provider-path.patch new file mode 100644 index 00000000000..39a69e4a389 --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform/provider-path.patch @@ -0,0 +1,16 @@ +diff --git a/command/init.go b/command/init.go +index 403ca245b..05d98329a 100644 +--- a/command/init.go ++++ b/command/init.go +@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int { + return 1 + } + ++ val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR") ++ if ok { ++ flagPluginPath = append(flagPluginPath, val) ++ } ++ + if len(flagPluginPath) > 0 { + c.pluginPath = flagPluginPath + c.getPlugins = false diff --git a/pkgs/applications/networking/cluster/terraform/providers/data.nix b/pkgs/applications/networking/cluster/terraform/providers/data.nix new file mode 100644 index 00000000000..d29bd964860 --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform/providers/data.nix @@ -0,0 +1,486 @@ +# Generated with ./update-all +{ + alicloud = + { + owner = "terraform-providers"; + repo = "terraform-provider-alicloud"; + version = "0.1.0"; + sha256 = "199zrpmi1hqy80nrvdhh5pn7vlcvpjcsf0hpwgzb1r9vnydpz7cj"; + }; + archive = + { + owner = "terraform-providers"; + repo = "terraform-provider-archive"; + version = "1.0.0"; + sha256 = "0z85fpd70m2w59vxp82d8ipylaazf6l890rkjca4dm14rkq352zn"; + }; + arukas = + { + owner = "terraform-providers"; + repo = "terraform-provider-arukas"; + version = "0.1.0"; + sha256 = "1msfr0rlzjfds02h35p99d1f541a1fzndjcpgijb41yx74h2v5dl"; + }; + atlas = + { + owner = "terraform-providers"; + repo = "terraform-provider-atlas"; + version = "0.1.1"; + sha256 = "0k73vv14vnjl5qm33w54s5zzi0mmk1kn2zs3qkfq71aqi9ml7d14"; + }; + aws = + { + owner = "terraform-providers"; + repo = "terraform-provider-aws"; + version = "1.0.0"; + sha256 = "1x3ldlx2iryxwfaws8ng9n0k06p7n8xqc6sjyxw73jdasxbh8wgi"; + }; + azure = + { + owner = "terraform-providers"; + repo = "terraform-provider-azure"; + version = "0.1.1"; + sha256 = "11myqq3wnxvpysjycvwg7b14ll8d9vkn06xb3r26kmc42fkl5xv1"; + }; + azurerm = + { + owner = "terraform-providers"; + repo = "terraform-provider-azurerm"; + version = "0.2.2"; + sha256 = "1jdkj1zylrlcd2qkfkl81i0ybdpmvbvvsk0f4ahafiqp550srf2d"; + }; + bitbucket = + { + owner = "terraform-providers"; + repo = "terraform-provider-bitbucket"; + version = "0.1.0"; + sha256 = "0c5aiq0p425h7c600wg5h3601l40airwz6cs724lc72fycbb4s43"; + }; + chef = + { + owner = "terraform-providers"; + repo = "terraform-provider-chef"; + version = "0.1.0"; + sha256 = "17fppyhxi0rd5v8khw2psdn2hdv5j79hxhinwkzrq5s4iccqk5dw"; + }; + circonus = + { + owner = "terraform-providers"; + repo = "terraform-provider-circonus"; + version = "0.1.0"; + sha256 = "0v05g91yg2zh4wczp8mi3hmvwb35z0y9044bwy67nm1l624xlj64"; + }; + clc = + { + owner = "terraform-providers"; + repo = "terraform-provider-clc"; + version = "0.1.0"; + sha256 = "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf"; + }; + cloudflare = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudflare"; + version = "0.1.0"; + sha256 = "073j0kqkccj7yrqz6j4vx722vmy6mmvmgidamkjnhhjcwm6g1jbq"; + }; + cloudstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-cloudstack"; + version = "0.1.1"; + sha256 = "09iqxpc5a6938qj1js2y9s4dcgk7hw69xga56ixpbbknms2yrhnb"; + }; + cobbler = + { + owner = "terraform-providers"; + repo = "terraform-provider-cobbler"; + version = "0.1.0"; + sha256 = "1867aqlz1v7scybaia9yakaxw76lh6y2whhajv5pqy1ng58rcgiz"; + }; + consul = + { + owner = "terraform-providers"; + repo = "terraform-provider-consul"; + version = "1.0.0"; + sha256 = "1008lrvdqn3kk8gwvq094nwknh00b429jmwi0hq4brick7vyvbvz"; + }; + datadog = + { + owner = "terraform-providers"; + repo = "terraform-provider-datadog"; + version = "0.1.1"; + sha256 = "0nyqybi3fl9qlhpx2n0vjz7kn3bqhf4wy93zhq3j3853zxpcjpzc"; + }; + digitalocean = + { + owner = "terraform-providers"; + repo = "terraform-provider-digitalocean"; + version = "0.1.2"; + sha256 = "0wn2bx9zk0fqvrn7a76rffin7f1b70p66h5bs9073szhr3zph7hg"; + }; + dme = + { + owner = "terraform-providers"; + repo = "terraform-provider-dme"; + version = "0.1.0"; + sha256 = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv"; + }; + dns = + { + owner = "terraform-providers"; + repo = "terraform-provider-dns"; + version = "1.0.0"; + sha256 = "05ismwpmpkv9qxn6g5i29y18s1pw4yf2pyvv9ak8hj8idh4z6gz2"; + }; + dnsimple = + { + owner = "terraform-providers"; + repo = "terraform-provider-dnsimple"; + version = "0.1.0"; + sha256 = "0gkd5i69ldm5zn34p3k68aqk798g6g0d60gw7yp316l7mskvrx7h"; + }; + docker = + { + owner = "terraform-providers"; + repo = "terraform-provider-docker"; + version = "0.1.0"; + sha256 = "1nacxkyy12w4rj1bdf5ayqmmm47nwh362pcksr227rkwmsjlmg1m"; + }; + dyn = + { + owner = "terraform-providers"; + repo = "terraform-provider-dyn"; + version = "1.0.0"; + sha256 = "0ph3516syca8f1zxmz66mh6y5kd8sc74kl0n8zixcgd6rvq0dysr"; + }; + external = + { + owner = "terraform-providers"; + repo = "terraform-provider-external"; + version = "1.0.0"; + sha256 = "1sh0m8d6wp76h1b89j820yl3caji0f0wlgq3pwa5nk99h73rlndn"; + }; + fastly = + { + owner = "terraform-providers"; + repo = "terraform-provider-fastly"; + version = "0.1.2"; + sha256 = "1z7nsgqqzvily9rxr79yjv6jfx56896c9lxb8flmzwjz6b6mvnz7"; + }; + github = + { + owner = "terraform-providers"; + repo = "terraform-provider-github"; + version = "0.1.1"; + sha256 = "0f6nk9nb8h8247rz7x1w11amp0qdcmy1alr8jgd2chrjv9f8nif0"; + }; + gitlab = + { + owner = "terraform-providers"; + repo = "terraform-provider-gitlab"; + version = "0.1.0"; + sha256 = "1xjhpaq2agdshrl5jbq9ak2nxdy86iay5bw16zww2qc5ah21sdg2"; + }; + google = + { + owner = "terraform-providers"; + repo = "terraform-provider-google"; + version = "1.0.1"; + sha256 = "0l0bpcfjnzlgf3g60iyfr3axw0244w99cf04z7y3bcszk5njipri"; + }; + grafana = + { + owner = "terraform-providers"; + repo = "terraform-provider-grafana"; + version = "0.1.0"; + sha256 = "1m2anc5cyn2p3yh4zn0y6wvzb0s2fz3sfdqm9psvx53266c2c81q"; + }; + heroku = + { + owner = "terraform-providers"; + repo = "terraform-provider-heroku"; + version = "0.1.0"; + sha256 = "1f72lm95bnkhaf2accypdn7xsxcgkqri5fq5mriya4n34c61z3l6"; + }; + http = + { + owner = "terraform-providers"; + repo = "terraform-provider-http"; + version = "1.0.0"; + sha256 = "1lks997sxfydm6a9s6vfyljs3j1r7qpg1k1s5ilpg5ckv77nad6g"; + }; + icinga2 = + { + owner = "terraform-providers"; + repo = "terraform-provider-icinga2"; + version = "0.1.1"; + sha256 = "0z7lxrspm33j7bkkm2n7ac0jgyaz3y3lql3gd30p10nvpilrg07v"; + }; + ignition = + { + owner = "terraform-providers"; + repo = "terraform-provider-ignition"; + version = "1.0.0"; + sha256 = "0hr2zshrx4qfb7xdknsxsa4522kkf84rsqqbliz7ac9nsqpaarf4"; + }; + influxdb = + { + owner = "terraform-providers"; + repo = "terraform-provider-influxdb"; + version = "0.1.0"; + sha256 = "0msc6maxsiwmsg8ppdfj1397c66llhaf15nc4hmr2h6dxqkb5wl5"; + }; + kubernetes = + { + owner = "terraform-providers"; + repo = "terraform-provider-kubernetes"; + version = "1.0.0"; + sha256 = "1kh7a83f98v6b4v3zj84ddhrg2hya4nmvrw0mjc26q12g4z2d5g6"; + }; + librato = + { + owner = "terraform-providers"; + repo = "terraform-provider-librato"; + version = "0.1.0"; + sha256 = "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923"; + }; + local = + { + owner = "terraform-providers"; + repo = "terraform-provider-local"; + version = "1.0.0"; + sha256 = "1dxdpmai8f0g1gj6khgv769lhg6ssfmgqskg4c5qf1jnv8yn8mkd"; + }; + logentries = + { + owner = "terraform-providers"; + repo = "terraform-provider-logentries"; + version = "0.1.0"; + sha256 = "11fkb84gqcq59wk5kqn3h428jrc2gkl659zxmkdldad6jdll9ypa"; + }; + mailgun = + { + owner = "terraform-providers"; + repo = "terraform-provider-mailgun"; + version = "0.1.0"; + sha256 = "1hjhjfxqbr43wa248c6hc91lx5b2gdw4vl92l2i6aqp17rbc0wfj"; + }; + mysql = + { + owner = "terraform-providers"; + repo = "terraform-provider-mysql"; + version = "0.1.0"; + sha256 = "0vjr97xf15va9qypjb9318h1nxr0sd6ydcy7ijnqb8538v3581mv"; + }; + newrelic = + { + owner = "terraform-providers"; + repo = "terraform-provider-newrelic"; + version = "0.1.1"; + sha256 = "1fqgxcspkgm3ncsqbvw79h5n09agba7q80nz0mrq09x0pyk8y051"; + }; + nomad = + { + owner = "terraform-providers"; + repo = "terraform-provider-nomad"; + version = "1.0.0"; + sha256 = "01fvw7yw8dhjclipnn9h1blagbp2849ahmnqj3ysh13i0x1qbq4r"; + }; + ns1 = + { + owner = "terraform-providers"; + repo = "terraform-provider-ns1"; + version = "0.1.0"; + sha256 = "1in9ggrvxfb3maxhgiv997hndkpnqpgx1c1365lfizhp7km5ncvj"; + }; + null = + { + owner = "terraform-providers"; + repo = "terraform-provider-null"; + version = "1.0.0"; + sha256 = "12vpa09xrq8z1pjq0bwzq3889c4fl6c5kvynwqy0z1pdx21m60ha"; + }; + oneandone = + { + owner = "terraform-providers"; + repo = "terraform-provider-oneandone"; + version = "0.1.0"; + sha256 = "18bbpcprjib4d4skjdr76xjxi9091h5b3dls68y6bxkk6sh6av1i"; + }; + opc = + { + owner = "terraform-providers"; + repo = "terraform-provider-opc"; + version = "0.1.3"; + sha256 = "00h531pikjrmra2sr24lnx2z0dvycshd0qpz3wa733mkvvm47p07"; + }; + openstack = + { + owner = "terraform-providers"; + repo = "terraform-provider-openstack"; + version = "0.2.2"; + sha256 = "1027pqv1cvyvakn4kgivd720g9na38nam5bb5fjyd4d04xpq9v90"; + }; + opsgenie = + { + owner = "terraform-providers"; + repo = "terraform-provider-opsgenie"; + version = "0.1.0"; + sha256 = "0zs0cl6jl4rijcs6vv5k8k5pyf0zs52dlgqcnb1gzslh8sg5pdkm"; + }; + ovh = + { + owner = "terraform-providers"; + repo = "terraform-provider-ovh"; + version = "0.1.0"; + sha256 = "052bnfw146h9nh3cw77clwwxbmw1gvaich2yw39v4b1ca8brm5dr"; + }; + packet = + { + owner = "terraform-providers"; + repo = "terraform-provider-packet"; + version = "1.0.0"; + sha256 = "0ibz9k1yfqkfsmqmv1pl2jwzbld0l6f7zd8y80iw0v5wswclswya"; + }; + pagerduty = + { + owner = "terraform-providers"; + repo = "terraform-provider-pagerduty"; + version = "0.1.2"; + sha256 = "1dqzi53bnk4qcjhlimr13352nzb1nsij7354zapz2sgnz21v89mm"; + }; + postgresql = + { + owner = "terraform-providers"; + repo = "terraform-provider-postgresql"; + version = "0.1.0"; + sha256 = "0gg48b2zn18ynvhnabvyfvw5wif0m1a852798wahv8fbv5d1vh7j"; + }; + powerdns = + { + owner = "terraform-providers"; + repo = "terraform-provider-powerdns"; + version = "0.1.0"; + sha256 = "1k9xjx2smk6478dsrcnqk1k6r2pddpa9n8aghq5d1a5yhfsq5zzz"; + }; + profitbricks = + { + owner = "terraform-providers"; + repo = "terraform-provider-profitbricks"; + version = "0.1.2"; + sha256 = "105l0rijqmp7kmd7wygnhnj02q7y1rz0r8pj2mjzncb5pr48m3qp"; + }; + rabbitmq = + { + owner = "terraform-providers"; + repo = "terraform-provider-rabbitmq"; + version = "0.2.0"; + sha256 = "1pbib43d1iqy8xl03zqwnz77362cb9cq8awcpid714n1sz7nd4im"; + }; + rancher = + { + owner = "terraform-providers"; + repo = "terraform-provider-rancher"; + version = "1.0.0"; + sha256 = "1fs8p0l8f79b1s2g0p5zlq1has9i7w3bmv76vrm79076v7w2v0d6"; + }; + random = + { + owner = "terraform-providers"; + repo = "terraform-provider-random"; + version = "1.0.0"; + sha256 = "0im4dsnbpbc9qln92lxcrygm9d705bvlhigpx492172cq1fqnw61"; + }; + rundeck = + { + owner = "terraform-providers"; + repo = "terraform-provider-rundeck"; + version = "0.1.0"; + sha256 = "0rp8cgnp8in52g7zkl2lj42hns0g27m8f7l42lhfnv6n2vv5qxcg"; + }; + scaleway = + { + owner = "terraform-providers"; + repo = "terraform-provider-scaleway"; + version = "0.1.1"; + sha256 = "145wfcr5zjjk8vgx5xjf1hqh6h8jqxkhxbvv9x1w34i5bv809ch6"; + }; + softlayer = + { + owner = "terraform-providers"; + repo = "terraform-provider-softlayer"; + version = "0.0.1"; + sha256 = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq"; + }; + spotinst = + { + owner = "terraform-providers"; + repo = "terraform-provider-spotinst"; + version = "0.1.0"; + sha256 = "04sxdbx6qjxixrv9shnp8fxkss6pylqmphlm1l4q5c83dwk96pka"; + }; + statuscake = + { + owner = "terraform-providers"; + repo = "terraform-provider-statuscake"; + version = "0.1.0"; + sha256 = "084520cak2krwpks2ipqcjfw3k4rrzn6gqqncz8c4i6g01f1m7yg"; + }; + template = + { + owner = "terraform-providers"; + repo = "terraform-provider-template"; + version = "1.0.0"; + sha256 = "0jl6bp6gwg96sdk5j6s13vv1j9gxjpy2yva3barmzv9138i665mz"; + }; + terraform = + { + owner = "terraform-providers"; + repo = "terraform-provider-terraform"; + version = "1.0.0"; + sha256 = "0icyyi4h48yh5235p5svm4p0jzbqqm1f3846dqy37czhjfcrn3gh"; + }; + tls = + { + owner = "terraform-providers"; + repo = "terraform-provider-tls"; + version = "1.0.0"; + sha256 = "063ai5zipmkwq0nr5c25gqsr970r8aba12ynxg9x8cnay0zn9s95"; + }; + triton = + { + owner = "terraform-providers"; + repo = "terraform-provider-triton"; + version = "0.2.1"; + sha256 = "0ds2anr65xx9kdjv6x68lcxgl3js6l0m2cbx3kwx5465m01m3gxz"; + }; + ultradns = + { + owner = "terraform-providers"; + repo = "terraform-provider-ultradns"; + version = "0.1.0"; + sha256 = "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj"; + }; + vault = + { + owner = "terraform-providers"; + repo = "terraform-provider-vault"; + version = "0.1.0"; + sha256 = "1rr4gaqfr6panjjdb5xx9vbq7701zjps0l75zi526kij1pph98p1"; + }; + vcd = + { + owner = "terraform-providers"; + repo = "terraform-provider-vcd"; + version = "1.0.0"; + sha256 = "0sjqdb37lalvizf4imxwn7nmry1c76dw2fpnrfmal34gghddm91p"; + }; + vsphere = + { + owner = "terraform-providers"; + repo = "terraform-provider-vsphere"; + version = "0.4.1"; + sha256 = "0afxvjx9zb9ym0cs8j15s6nfp20rmmifjdc098wcfjmgnw6p7f01"; + }; +} diff --git a/pkgs/applications/networking/cluster/terraform/providers/default.nix b/pkgs/applications/networking/cluster/terraform/providers/default.nix new file mode 100644 index 00000000000..8d41df24d8c --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform/providers/default.nix @@ -0,0 +1,21 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub }: +let + list = import ./data.nix; + + toDrv = data: + buildGoPackage rec { + inherit (data) owner repo version sha256; + name = "${repo}-${version}"; + goPackagePath = "github.com/${owner}/${repo}"; + src = fetchFromGitHub { + inherit owner repo sha256; + rev = "v${version}"; + }; + }; + + maybeDrv = name: data: + # vsphere is currently broken + if name == "vsphere" then null + else toDrv data; +in + lib.mapAttrs maybeDrv list diff --git a/pkgs/applications/networking/cluster/terraform/providers/update-all b/pkgs/applications/networking/cluster/terraform/providers/update-all new file mode 100755 index 00000000000..d857e4f1870 --- /dev/null +++ b/pkgs/applications/networking/cluster/terraform/providers/update-all @@ -0,0 +1,100 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p bash coreutils curl jq nix +# vim: ft=sh sw=2 et +# +# This scripts scans the github terraform-providers repo for new releases, +# generates the corresponding nix code and finally generates an index of +# all the providers. +set -euo pipefail + +GET() { + local url=$1 + echo "fetching $url" >&2 + curl -#fL -u "$GITHUB_AUTH" "$url" +} + +get_org_repos() { + local org=$1 + local page=1 + GET "https://api.github.com/orgs/$org/repos?per_page=100" | jq -r '.[].name' +} + +get_repo_tags() { + local owner=$1 + local repo=$2 + GET "https://api.github.com/repos/$owner/$repo/git/refs/tags?per_page=100" | \ + jq -r '.[].ref' | \ + cut -d '/' -f 3- | \ + sort --version-sort +} + +prefetch_github() { + local owner=$1 + local repo=$2 + local rev=$3 + nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz" +} + +echo_entry() { + local owner=$1 + local repo=$2 + local version=${3:1} + local sha256=$4 + cat <:` and run this script again. +HELP + exit 1 +fi + +org=terraform-providers + +repos=$(get_org_repos "$org" | grep terraform-provider- | sort) + + +# Get all the providers with index + +cat <
data.nix +# Generated with ./update-all +{ +HEADER + +for repo in $repos; do + echo "*** $repo ***" + name=$(echo "$repo" | cut -d - -f 3-) + last_tag=$(get_repo_tags "$org" "$repo" | tail -1) + last_tag_sha256=$(prefetch_github "$org" "$repo" "$last_tag") + + { + echo " $name =" + echo_entry "$org" "$repo" "$last_tag" "$last_tag_sha256" | indent + } >> data.nix +done + +cat <