diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000000000000000000000000000000000..297b91976a88279af01adb41b9855b7bf42edb94 --- /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 14f60b936f81a0e5e90ef771b3103d25ee46c0dd..41e85bd5ac46d2c828e08e48eaeda3a8cb2746a2 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 - -See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes). + * 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 [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 5d99147051f16c2bd20f63b0563ad29c704cae2c..756a2a30f0cc61c4414476cf8be5a6fdfe991ead 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 3482ae16e2639659a775769417587b2f22a20af6..75db8e1377c45393860650f21c77beff7295c9de 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 33c7e41c1dc794c44893222001ff84e9b5b43de3..0000000000000000000000000000000000000000 --- 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 2bd784ed30a049356b5b3f642c185aba5827fdb8..e746d390e7601a31d96cdf541dc5acd84a9c6036 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 2fdad9f4058bbf00e7f436be4eca428ec52b64e9..a88d2ca323198953803097f102cc3d5e6704206c 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -17.09 +18.03 diff --git a/README.md b/README.md index 1d5fbd218e22eaacd0c3d6bfaab6689bd32b1907..64cfb25eac347d9daab49b19e99d2fbb1c3dcdaa 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 f89437af445c83e59cf6a34caaa6be293f7fc184..0776e70f14e109b95665ef21e1f9e08a9d90544f 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 56950e07ab5c445965f4eeead106c6f004e6c441..55c5ea809d354493cadf8f89e8b2ee116583c9fb 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 06a8919c2a19e25fb1d6ee398b0308661e4f21d9..77d020afa2df3a2273a913971c127a55c94f25c0 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 540a209c2ac9d4739f9e592a187bbf76b7f7ad5c..cfd51fba257e96a645f17d801857314be34a4c71 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 4e7159638cae38480d8f0ef4b10246e326fd51d7..52bdf13eba9bbb9f7f2a62f4714f23e329faf0d1 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 96a5571b42663c83adc138b1afad7af05d8dbd71..8b03221c64b12b4e3754c3e173796c97ed2c20dd 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 efb2e60cf3aac07b4272c2799fc7cd55aba1e207..1a18ed27237c23f44b4c0b67cfea573572000d5b 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. + + + Notably, buildRebar3 includes + beamDeps, while + stdenv.mkDerivation does not. BEAM dependencies added + there will be correctly handled by the system. - If your package needs to compile native code via Rebar's port - compilation mechenism. You should add compilePort = - true; to the derivation. + 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"; + { buildErlangMk, fetchHex, cowlib, ranch }: + + buildErlangMk { + name = "cowboy"; + version = "1.0.4"; + + src = fetchHex { + pkg = "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"; - }; + 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 ]; + + meta = { + description = '' + A plug for Absinthe, an experimental GraphQL toolkit + ''; + license = stdenv.lib.licenses.bsd3; + homepage = https://github.com/CargoSense/absinthe_plug; }; - beamDeps = [ plug absinthe]; + } + + + 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''; + 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; }; } @@ -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 026acb4e8fb942ed4789c3d5329dc5516f4504a2..54ea60c902129269502729a8aa49483f575c377a 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 1cab3d1e4eed33238c6afeb17672300c6f3c85e0..da3fd770ce728a6293d5656d33c0dccda150fd01 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 - - 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. +``` +-- 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. +``` 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: - - 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 - +```yaml +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 +``` 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. - -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. + 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. -3) The solution I prefer is to call stack with an appropriate - --extra-lib-dirs flag like so: + 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. - $ stack --extra-lib-dirs=/nix/store/alsvwzkiw4b7ip38l4nlfjijdvg3fvzn-zlib-1.2.8/lib build + 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 + ``` - 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 +``` + +### 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 - $ nix-build -A haskell.packages.integer-simple.ghc802.scientific +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 b127ba2faaeef2c90ef6cbe36d41cc21b21ebf5b..7bdbbbd903a0b4afb9093d4994a08b19c5acf43b 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 ``` - -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 +The other method, which is not recommended, does not create an environment and requires you to list the packages directly, ```sh -$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3" +$ 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. -This way you can use the `--run` option also to directly run a script +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" +``` +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. - -#### Python packaging on Nix +#### Packaging a library -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 - -```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. +you will want to test a Nix expression outside of the Nixpkgs tree. -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"; - - src = pkgs.fetchurl { - url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; - sha256 = "e8451af61face57b7c5d09e71c0d27b8005f001ead56e9fdf470417e5cc6d479"; + my_toolz = python35.pkgs.buildPythonPackage rec { + pname = "toolz"; + version = "0.7.4"; + name = "${pname}-${version}"; + + 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,64 +774,35 @@ The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` and Both are also exported in `nix-shell`. -## 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 -{ # ... +### Automatic tests - 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 -``` +It is recommended to test packages as part of the build process. +Source distributions (`sdist`) often include test files, but not always. -We're installing using the attribute path and assume the channels is named `nixpkgs`. -Note that I'm using the attribute path here. +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. -#### Environment defined in `/etc/nixos/configuration.nix` +#### Common issues -For the sake of completeness, here's another example how to install the environment system-wide. - -```nix -{ # ... +- 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)` - environment.systemPackages = with pkgs; [ - (python35.withPackages(ps: with ps; [ numpy ipython ])) - ]; -} -``` +## FAQ ### How to solve circular dependencies? @@ -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 b6c8f0e899e6adda59ecd90bc13420b9a935f4a9..1dbbb5341ba3827881699428ef82166623eb583a 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 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. - -
Libraries - -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. - -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. +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 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. + + +
Packaging Libraries for Nixpkgs + + +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. +
-
Applications - -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. - -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-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. +
Packaging Applications for Nixpkgs + + +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. + + + +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. + + + +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 3c6e4f5e01a48f40862665a313111403b31abeb5..6bb809192f894c6393ae2741a014e1faecd857c2 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. + + +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 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: +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 ef6ebc392b33248e8129c124e869110e0102db2f..276b5496fbb8ae6f731be68448ed9a58656cb14d 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 5442d706cb0b171af384baa4795fdfe9ecc1b608..1d6a4fe8da8d62a91450ffcb2f6994bbdcef3b29 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 b7a363c750e61f98a9b41e39087090933110f078..a2acc91e55a2edf7cd589f30b4deb9b4c987c2bf 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 4b95f3e72880ac8c27e845c3e2fdb1a2ca1b1218..cc0aef447d2d63e39c631d4a4285adf9934aec1e 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 list of overlays is determined as follows. -The set of overlays is looked for in the following places. The -first one present is considered, and all the rest are ignored: +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 0f148f5c898add538f2a35fe361e3d8054a6ccd7..4d87a3a67fe90bf7ba8b6f5a3698be8d44e514e4 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 5ed959abacec55cfea5cf0631d6fa1d23a988189..ca86e6c9519b61dda39ffd8e9cbe749281f93c8b 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 f86928bcd5d07e84bb8b530225279a78cda2ee44..0813e0968e86e175ed9cfab3dc787455cef4778c 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 0b09dffbb2d335aab4e10b84de0a114410709431..f65b2898262e88e42051847d39011f58516e41fd 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 d2946f6ca9cb0f4cbb6a0905f4a80d5b52a06cdd..19218cfe8ecb40d0827bf715511d948ac88ee514 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 4853290db542baba775c959f3d55c04dc7ab3871..483ef6fd4866abb7202c920b006a1b646fcfaaa6 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 5b3878554c5d8206ee24c8004b5f2d2b724ce6c9..646ef220ad0a3ec897d63c994193469584ca2ddf 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 e692637abf1970f83d528fd812fd7cfe775407af..3e30ec515fcbbaaab709e2965c6cf7c4f975ded2 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -5,56 +5,127 @@ */ let - # trivial, often used functions - trivial = import ./trivial.nix; - - # datatypes - attrsets = import ./attrsets.nix; - lists = import ./lists.nix; - strings = import ./strings.nix; - stringsWithDeps = import ./strings-with-deps.nix; - - # packaging - customisation = import ./customisation.nix; - maintainers = import ./maintainers.nix; - meta = import ./meta.nix; - sources = import ./sources.nix; - - # module system - modules = import ./modules.nix; - options = import ./options.nix; - types = import ./types.nix; - - # constants - licenses = import ./licenses.nix; - systems = import ./systems; - - # misc - debug = import ./debug.nix; - generators = import ./generators.nix; - misc = import ./deprecated.nix; - - # domain-specific - sandbox = import ./sandbox.nix; - fetchers = import ./fetchers.nix; - - # Eval-time filesystem handling - filesystem = import ./filesystem.nix; - -in - { inherit trivial - attrsets lists strings stringsWithDeps - customisation maintainers meta sources - modules options types - licenses systems - debug generators misc - sandbox fetchers filesystem; + callLibs = file: import file { inherit lib; }; + + lib = rec { + + # often used, or depending on very little + trivial = callLibs ./trivial.nix; + fixedPoints = callLibs ./fixed-points.nix; + + # datatypes + attrsets = callLibs ./attrsets.nix; + lists = callLibs ./lists.nix; + strings = callLibs ./strings.nix; + stringsWithDeps = callLibs ./strings-with-deps.nix; + + # packaging + customisation = callLibs ./customisation.nix; + maintainers = callLibs ./maintainers.nix; + meta = callLibs ./meta.nix; + sources = callLibs ./sources.nix; + + + # module system + modules = callLibs ./modules.nix; + options = callLibs ./options.nix; + types = callLibs ./types.nix; + + # constants + licenses = callLibs ./licenses.nix; + systems = callLibs ./systems; + + # 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 983e8d26892bf393b43db469e45ddc11aeca2e9b..2a0f5a55bf14e9adc38fb7f5b1894ba9210f9152 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 21f28c32ef7e131f0e003ec7dedad7d6085d9a79..1107353b51dd3b9996f79826341f471e7eeaa1e5 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 91b04d81c13be93e1edffee3d14eb2fd985d6e32..fc35a1a72c648cbf7f380472256425b76bccee5d 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 0000000000000000000000000000000000000000..13e053b5aa7dbffcd1db7fe576fea52efc0fa63b --- /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 4d3c920b0ae3b0fd204e8027a840f55dcde1daad..5f9da234f4474638b3fc91279a7087f3da651f26 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 000a55224ea77b9028efedb9c9d62d3b9436c252..1bb153ce4c31a884a02f7cbe8ef1cc5b1a79b531 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 fd746f4f97b1f5a9e19e610b57a2db3f6b8ede8c..8f67c6bb0ca3bece07f307c827dc45c46c2c8d23 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 + /* Map with index starting from 0 + + Example: + imap0 (i: v: "${v}-${toString i}") ["a" "b"] + => [ "a-0" "b-1" ] + */ + imap0 = f: list: genList (n: f n (elemAt list n)) (length list); - FIXME(zimbatm): why does this start to count at 1? + /* Map with index starting from 1 Example: - imap (i: v: "${v}-${toString i}") ["a" "b"] + 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 bb8ca565dfd290022205c55a0c1322999faf1e13..97411d57beaa0cdb36fca09562d71822aceb210b 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 d956969a18f921c58f6931423a704ecb48eff4ae..b1036b80c4dba960b28ad79ed761e682dc4d39be 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 2622ddf4be1f0dacd33e7aac4340dc9a3b611ef7..0cae8ec56fdf626ba9f6927395cc3bc0c662beb7 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; - - 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; + arm = filterDoubles predicates.isArm; + i686 = filterDoubles predicates.isi686; + mips = filterDoubles predicates.isMips; + x86_64 = filterDoubles predicates.isx86_64; + + 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 0000000000000000000000000000000000000000..ff2273febcb03e3299cf5926c1a66d08166247f7 --- /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 0000000000000000000000000000000000000000..a4fa9af4e0a81cfbfdc310faf07e4c7330d16912 --- /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 f6315b8ad2a9e34840adb34313a8ca19bf5a721f..d14ca04bfb9eead20fccf8638f14abf4b2cb5704 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; - - system = rec { + 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}"); + + 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 4322c8e2ff687511216304f606489b3f3b9a8faf..9ce697a1f7a97adb825b9daf11cbfe4fb13445df 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 995a743fe43f1b1208f0994bee89c7e654feda1a..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..4c4c06fe78dab537d6e25d82fe8e0eb8bc575c34 --- /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 dfa4ca2676d1f46415903e28d29d52dd1d01deb5..a6184041682f01b9aef57507fc39a5bcb49eb417 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 5eacc0defafb49aeb5d3115fd82bf024d5ce70b1..523fd3feb3b0cd5b3eed6f13bf94e789f537cd26 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 735aa55e0dce69f54b87d56294fc7096abd29984..c452c7b65bc1639e074b0579fafb3651efc69103 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 45122759bfcaf99141768617ec571f9b5a28525c..db3bd3815238cbaf718f38838b99cbb16ae29068 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. - -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 - +{ lib }: +with lib.lists; +with lib.attrsets; +with lib.options; +with lib.trivial; +with lib.strings; +let + + 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 9398331d0d6892f46c604dd793688c712e581e50..d44bda53f8d68fd5b912d653ffffed408f69aa36 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 6bbc0a45e44d8070cdab982dba04af2c693238ca..ddc3c7c4a96752f731b7661a8632b91441da1e0e 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 ebc5dc3b87ec799b589cd31faaca06092f4901f5..098a8c88cb7e26bb0e6cb9947afda75c985a069e 100755 --- a/maintainers/scripts/rebuild-amount.sh +++ b/maintainers/scripts/rebuild-amount.sh @@ -1,260 +1,115 @@ -#!/bin/sh - -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 +#!/usr/bin/env bash +set -e + +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" - -########################### -# Versionning for Dummies # -########################### - -path_init() { - if test "${pathLocations#*:}" = "$pathLocations"; then - pathLocations="$NIXPKGS:$pathLocations" - fi - pathLocations="${pathLocations}:" +MKTEMP='mktemp --tmpdir nix-rebuild-amount-XXXXXXXX' + +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 {}; + + 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" -} - -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" +# 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") + + 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 649798ec76b02344750fc2e2a0edf5a0b05e93a5..4da4f7dacfae660352a953832fecc813d975827b 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 0000000000000000000000000000000000000000..7c73510c353a65e0775f7454fcafc10487a44977 --- /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 f3f65edcec2aecd0a5cfa62130a6da7eb1078f79..94f03a2ee116ad6d930a6f36b4e86c5b90dcb924 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 258e1ea948da9c95314050e67c1b94ba74fa8881..d5d8140e076496edd7bb17b91422385d9a3bf56f 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 d1b324af3f1273fcacc91c6b8f63ebdc16fe61a5..ae3d124cd6bbe11d91920a0a79c8e13c8d161f70 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 6ff0390c0ed34e66c97c9bbebe9d83083a09b823..be1f2263149e47edc3f7dc537fe2782f0a103012 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 4a73695e094291c7b0c24a0d7cbaa55785c8f15b..fc6082ce3afd6212845585dbebcb6eed9af2be07 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 40d49f1541b387d75b28a5025ff8114f337770af..9413d71a34cf229d3e5c24c9eeb674ffb7ae275f 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}" ]; - olinkDB = runCommand "manual-olinkdb" + 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 ]; + } + '' 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 0000000000000000000000000000000000000000..d3434e1f112ee1e71df9aa50cde970d6980b83f5 --- /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 150fa1d7017e70582ff21c1c3321a0c1fb4f308f..2f963f8666f1d2a44eebfb0e94f4c996c15701d9 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 d62d0896bb7c92d061ab12d9cd0c3bd1623be6b9..be793152f9ef982bae25ccddd9c2ec4811783b94 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 8e6ac53ad480b28c376703948312209c6a6776af..7b86e518aaf1b08714506a9d8764ed77504878fd 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 01c3dbc22f165756278b0feb74ea2957783da9b6..afcb970ed700baea7b943c13e8aa2c95314bb35f 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. @@ -34,91 +34,88 @@ - Rename rl-unstable.xml -> - rl-1509.xml. + Create + an issue for tracking Zero Hydra Failures progress. ZHF is an effort + to get build failures down to zero. - git tag -a -m "Release 15.09-beta" 15.09-beta && git push --tags + git tag -a -s -m "Release 17.09-beta" 17.09-beta && git push --tags - From the master branch run git checkout -B release-15.09. + From the master branch run git checkout -B release-17.09. - Make sure channel is created at http://nixos.org/channels/. + Make sure a channel is created at http://nixos.org/channels/. - Lock the branch on github (so developers can’t force push) + Let a GitHub nixpkgs admin lock the branch on github for you. + (so developers can’t force push) - bump - system.defaultChannel attribute in - nixos/modules/misc/version.nix + + Bump the system.defaultChannel attribute in + nixos/modules/misc/version.nix + - update - versionSuffix in + + Update versionSuffix in nixos/release.nix, use - git log --format=%an|wc -l to get commit + git log --format=%an|wc -l to get the commit count - echo -n "16.03" > .version in + echo -n "18.03" > .version on master. - pick - a new name for unstable branch. - - - - - Create - an issue for tracking Zero Hydra Failures progress. ZHF is an effort - to get build failures down to zero. + + Pick a new name for the unstable branch. + - Use https://lwn.net/Vulnerabilities/ and - triage vulnerabilities in an issue. + Create a new release notes file for the upcoming release + 1, in this + case rl-1803.xml. - Create two Hydra jobsets: release-15.09 and release-15.09-small with stableBranch set to false + 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 5bdcad5ceb574302b0e935ed4e1adff306853d1e..cb363b45675bf3eda9d2416f9817135f609228ea 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 dae733060569ef2c415746eb5863b1942aa72cd7..31d51816e39b0f0760673bfe1ccd741a583774c1 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 8fe61a5fdfdfc7e0f39fd0e764bd2a7fef93849a..ee9680ced397e4dc09dafc2ab43ef0314c501f42 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 8c37643c08f5c70c439ae828272c1c36d3009567..b0674307a563d48ba44c6d065f0ecd239fa66f00 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 6be8bc780f13dec4f4ad1e60013496d9d460588f..d2b2d5b7965c323f8b88ee897a01cadf66a27cc8 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 2c28dd448016319bc7e551012c150cbd22943b62..9aa332f026da4a311882670d21bdbb1613e0189b 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 6065a86f60d890cb2bbc2c396a7f5efaea49827e..5ed56bde66592a6929eec942adf4f2db6aced49f 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 e0271485c36162c97d2c44e92a839382262d0629..6c1c46844ccbe989eacbe1b80e5c809622d5db66 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 f460e00e836e6592e1344b91249d53b30b2a317c..7279dd05827031f859905b4d59118ce6d3de240b 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 ade7d5581cedf5ef5c5d7a57324fc9dda6cb5195..893f894f42fee5c763c31f88a561f7bc30192ed5 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 28c573e6d231c4fb086df39fc8735707d1be2400..6147b9830137d3b507cffe09c8471d72decbb58b 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 5fba4c34ec82f2088eb81d35e7d8207aa1458ffb..66f7b01db72a8aa103b9f7e0635465ef3d007fd5 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 0000000000000000000000000000000000000000..17b385242f6feb409f920bbc9d6de4101c26c74f --- /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 8c5de22f30ffe67518aa3dd54736403468201588..9fa848301f604777df34fcea7e08616bf625a406 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 - - # 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 - - for ((i = 0; i < ''${#targets_[@]}; i++)); do - source="''${sources_[$i]}" - target="''${targets_[$i]}" + mount --rbind /dev $mountPoint/dev + mount --rbind /proc $mountPoint/proc + mount --rbind /sys $mountPoint/sys - if [[ "$source" =~ '*' ]]; then + # Set up core system link, GRUB, etc. + NIXOS_INSTALL_BOOTLOADER=1 chroot $mountPoint /nix/var/nix/profiles/system/bin/switch-to-configuration boot - # 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 + # TODO: figure out if I should activate, but for now I won't + # chroot $mountPoint /nix/var/nix/profiles/system/activate - 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 + # 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 - 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 23839ea487dbb2ec53a7652ef30b97aef5fb41ca..f06649e1991a53a75c6bf073a70dd7524f605eab 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 c619264eb949d9a03b6faed6c07e01f58ba549c0..a7ed5d1faa381b6b277bd6046b18030b11e96add 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 854be99552a08cc76818140e4bdacc9dcc43f772..a3354fb0e1eb80391e9e1c0fa192570057d16e8a 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 58c447c76db66f7fad2cd7727836c9cd2f8bfff1..9339ba78ff0c5ad7b17545811dbfe8ff803e7d0e 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 854ecf7eac51b4d68187e868986cfa1d24b812b1..7be0255b35acb67f08d33617baf6b771dc08bc9e 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 b4190df8335b7ff45dc9ad1f3fefc6946ed9493a..2e67edf8ee3d5846501459ccf1df81f3f8260caf 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 24ced8da531a0702a7284147bae877287e804e53..dfc0f8d1146585fb349b60b41fc4ca84681eff5e 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 fa9cfb74bd6ccede51f54883eeed09f36f804135..b6f3a5b152003cfa8ffd9f680c60ea5289ea40eb 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 49991d22a93324f35df029d6921da66fc6f23750..2942ae5905d10b044975ffabfa24ff7351f719e6 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 1bf9fdb19845131b8d14b363992dc69b18fd5495..c7654ca78c3a1c2f1712ed587a0629d93fe224d0 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 799f0793c74fa39fc0786c002af6b270b56eb927..46b22fc128540f85652803deebc33b91049dc367 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 d318b7207429a97c180085c1ca2a299b64b9cef6..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..c22e99a0a2f182ba6f91f35f59287d0310235612 --- /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 da875d6e4821f86b93bd25fe35d9862c8b361f8f..710dfdd01af5e3b344e2aa8942ede73e6bbc8d01 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 ae30a710bf6f7457d044e9092efff8856d884249..619f36cd5150e6a59f84ff01530d23290f6a022c 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 13477337bda59cee1d5945f3793c1b0bc969660b..ae3e17ac27b67dc65036b08bf1f0583af7b36ef0 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 4e5de421d8ac38299eebb6247cd42486fefc27fd..7b36d4f1cbdf6f68271c2d000ce008221d298d46 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; - - hostArray = [ "files" "mymachines" ] - ++ optionals nssmdns [ "mdns_minimal [!UNAVAIL=return]" ] + # 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" ] + ++ 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 bf66994b5022bff5edc86c3531fd7f2d05867bdf..8b9c3570476affa2e2c7dd1f5d9b0b20d31e9c63 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 152493151fd3ac030f69f3964d8dc3ff3b06209a..65f2e5d7af9925a63c7e7ea44d32b4f43ce360c2 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 e57ed2565a10702fb44d2e651928938d664b51fc..fed3fa3bc7c88b2853e606ef73639cbb7f9a0892 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 a3f7e8f722f04eae75fe54b135475c85fd4ec790..2114fb2b9d49cf1eeefea606bcd242dfaf001c75 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 3ac5f634c7a6b1d135b476504bff489cdbc9d1e5..d3212d93160519f41fae0f51877c97fbfdef03cd 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 0000000000000000000000000000000000000000..4fd6ba5ea605902cbb021d4eacba10b70122ab58 --- /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 39a45042c6ccd01dbcb521ff5ed14b4eeecce9f2..b15948f6e2e58c4da6c4953cce2b648674df78ca 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"; - }; - - environment.etc.zoneinfo.source = tzdir; + 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"; + }; }; } diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 57e4940378ba246d01c6be16e41aab5390ae5e08..a4715175cc952f06138c72f35b51b062fc75bab6 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 bc82bfd066c3685234ff79ec2eddc54b594660a5..afaa65f6ce35bb63e806c0c51bf1e2c029e72118 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 e4ac7d39053fdd16775b5ebd138586e834b18e2b..13ad238870c2991883acd256b5b7aac37ef501de 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" ]; - - serviceConfig = { - ExecStart = "${pkgs.mcelog}/bin/mcelog --daemon --foreground"; - SuccessExitStatus = [ 0 15 ]; - - ProtectHome = true; - PrivateNetwork = true; - PrivateTmp = true; + systemd = { + packages = [ pkgs.mcelog ]; + + 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 8fecdae36bf2610defd2064103aadc949179099c..c92b7a0509d035b52be86bafd4f23dad75d91f73 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 89fdce415ddae20567fd5b3682f043d1287d8b3d..0000000000000000000000000000000000000000 --- 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 f4f19d2083481f2527ee23923e6bc08b33aa586f..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 8fecdae36bf2610defd2064103aadc949179099c..0000000000000000000000000000000000000000 --- 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 0469ae3a1fb3c133f8bcaa059a58d56d7a531be3..0000000000000000000000000000000000000000 --- 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 deae6355492ca87c8f54001b1098aabca397ee4c..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..bd440de697228f9d941727b371cecf72c3a03a25 --- /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 486fe7c1cd8f2d245b710025c59a009087a67ef4..c2c36f02a1436a56d2bbbfa29508a025bd7fbb86 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 0000000000000000000000000000000000000000..1b4b1fa1954fb0cd793557f0938ddb6094365006 --- /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 2a9382f39410cdeb17097b06c5d9fced9735566b..669ac849cbad0f0ae08912acb8b636831489a23a 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 161ed9457af9e2ecc5442120f5fd32ea02696781..50c085dd7ee24a544340260b2f4cdbb406c9d5f4 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 8fecdae36bf2610defd2064103aadc949179099c..c92b7a0509d035b52be86bafd4f23dad75d91f73 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 663ff24c81f15051f4c852c8148fe16e9cfd62b3..ddb00f174d1aeea8c0900fd08e498641f24013f3 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 d421740035268fb9677cca8ddc4d234ff7414992..a039f7fdcb6e72d4e709023191962760e55c0c6b 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 - - echo "default nixos-livecd" > $out/loader/loader.conf - echo "timeout ${builtins.toString config.boot.loader.timeout}" >> $out/loader/loader.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 + + # 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 c769bc80a481744e95f110c2e87b1c9902d1facf..c94dc7d40194ae07e2c7abce6b7fdf95fbcb90f4 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 118ed20d47f568f1b118bc7de3559dc12ee34a7c..880a6bf2e1e8e64afb15fdd18421d8d107c4d5da 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 886ffd9a0923cb9563cbf3065c70fbce5a296731..eb676eae05e8998f0dff2d1803bb9f402939ff3f 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 e72c78532943683c04e6fe3ae1c8fc51fcd7be04..7e181acb93b1965690c6fdb605b2fd724793c82c 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 e1a3052ba9574c98b4e0cb61c164c792eee8cc5c..903933e2df0292e5965298f0e0af2c499bf729bc 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 a4d4f16d1d96fac2349f6af270beb8c5ecff4b8d..7b756b70e2fcb40449f229b5f5ebe34221cf71f2 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 0c9981470d7274321df4883d9776c47f5b94d166..321fb9a2030ad5ea6659235548ad2f7fcc88b311 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 29b447912e7015efefadf994cbae0fd401db1af6..7c737e84de0a826ad2440a873d5e5490544b26b6 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 e2ae2ee9fdf8d127bcc95cca7e1a34b22e8f3a1d..f994d5b4bde1120f6bc4e3659ecd874519ff27d7 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 c374330f846444779a02b9c6a32c280891d5fb32..0bd70d2d349c2c1004f6c3e66c7f6b942d621af9 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 4b5e7b3230c8dd844db55c30a3565447d8567543..9ede74a54cd72a1b364a822a0dc3bfde32955ba4 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 5ef4b7781bd06469e2e2910b41e5f5f9f96c8763..6e0b49fa9af095da04b7b455d1129629e2a5e29e 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 19002b17dace89e4e1a207d8e1f20dc5a1cd9981..f4ee94ecc0d7e427208b49e2abb4f83416e65b51 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 feecee3225be71f98d81b8b556f018af59e87125..7d9d9984cf2894ec6321cdd692a97c695516a092 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 6d9bc915ba0302f2ef3971f07e952554515d6a31..51953d1110c438d027a908897c42fc1c2786ceaa 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 6a5738e47ff35e698a90b240a95b0a803d1aedd6..7a1e751394c0ae3d42d7871c6aa9ab487bc788ef 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 b8824e6374b39a228053e2cf8d5bd72d53194386..1793c1447d602404280d6e73eb5115d779a1a5eb 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 315c33a462c6649d4c12553a50da8568d0ffb4bf..48cde2ebbc8ad60782dc4989f6f0e8ccb7071c61 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 6e99ead5862287a0d7a9b84623c7889ab01092bb..e66a2ba272a1e59876750209f2d46cf7224e58d5 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 6b4d8c737eba764efea5a91c5b46f6a4543030d3..3c7e516c497f44b3ec7c5b6d72ce77345fb1335e 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 687cd9d80d365a6568c8a86aa3ed70a2632aebcd..39b8553976ebd3095a0445c2d1851f9037fa09b6 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 e233753751889bc128209e9fe4433877adcd7212..fe9851e79a6d46446561088b0b64aceeb9a9eb8d 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 9933f8b25f5e84c1aa69d6e76ba0744c2748b21f..456538742f5174feee3dd0ccced39d1ae11ce3b9 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 a24fa75e01dbc8d9b4fa686f77d50650f53f5311..506a6ee3eaa813840eb19ebb595ec71bf525f109 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 0000000000000000000000000000000000000000..3522ab22fa8ea4320e8c1a1af747e69a467a098e --- /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 0000000000000000000000000000000000000000..a073c7e66eb8564420d7aea9edefaab9f87f6f94 --- /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 6fb926fe1d5fc07d8e40ded407e1ab4c333286fe..bbe7165c62fbdf3eac5ff63f1b6d0b7a5a7bd86e 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 a1615c920c02d8889a1b235b4a36a9492602482e..401d152941a0ac528770f6d7661acf6e210170fc 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 a99c98e166dc01bb90b78c9e1e737a42eac6b272..c8d94a47be28ccec786e4179b50e9bce58428d71 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/config.fish".text = '' - # /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically. + 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} - set fish_function_path $fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions + # clear fish_function_path so that it will be correctly set when we return to $__fish_datadir/config.fish + set -e fish_function_path + ''; - fenv source ${config.system.build.setEnvironment} > /dev/null ^&1 - fenv source /etc/fish/foreign-env/shellInit > /dev/null + environment.etc."fish/config.fish".text = '' + # /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically. - ${cfg.shellInit} + # 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} + + # 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-login + # 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 status --is-interactive + # 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 0000000000000000000000000000000000000000..addc9dcca87ede6292c4360c0f0edbbd5b902a98 --- /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 927fe68be875c4afc02278dca15e54b24e8a93f7..1fdec4c04f682e97a09922c7c339f8e800602a90 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 0000000000000000000000000000000000000000..7ef172355c1fcfd4600ea40d2a3b9c8bd6dc0108 --- /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 0000000000000000000000000000000000000000..9a6cf755f2a27a2415766f189257f86277b5a360 --- /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 79a8ddb7ce374540bf882584eb036578c312590a..720c29b1eaeef77e07b9212c31c19d156c24a8ed 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 0000000000000000000000000000000000000000..aeb7fc5084954f4eaf66724042a2ce4e79cc5843 --- /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 5f4d4dc9475e86b9c552313eb857db6e2b9fbb61..0935bf0cae71446c181c5e4fdd3bca82c3cc84dc 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 0000000000000000000000000000000000000000..2934fba96dda8a6d943440d8046745504ff1c35c --- /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 0000000000000000000000000000000000000000..fbbf2906556477b264fcd3e29f0005ec4d82a9c4 --- /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 0000000000000000000000000000000000000000..eb913477cf05aaa61aac5c478b6f1779c3169267 --- /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 1ed929ed4afa28481c5a76e009c4c2c1f22fa8d7..0000000000000000000000000000000000000000 --- 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 c0be2d8884b30e7524f5ab31cdb1239f74990e7d..49cc4906e0385cddfab1a1461df707471758800c 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 335f596ca80f0abde2a0d980b650704a3f400ec2..9077643c4440c6834d49efd59d148f732c1cb1a0 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 0000000000000000000000000000000000000000..e7cf17c2c00cb00a17c8aef6177bd656e6f2866e --- /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 a39c06c09139593533d2f703dd28171adf38ae57..615e54c326b791aa1d6d5f1f20eb76c1ca007ed5 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 0174fe544e3571bb12104066f22697c3686c6370..f30cbe427f09c85a22b6bd6bd699ca9eb5547082 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 5301ac14805da5df3051afd05b85b6df021ffea5..fb011019f7f54ff9e29750469e6f85797c8b903b 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 823806f4641b465cd91762e1fd9362233f3195a6..6130ed82ed3806370afdffc045b5f8c80f992037 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 0000000000000000000000000000000000000000..6abac244dac24a0be9f99f28d7b68d5cb071e1e5 --- /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 0458ffb6c46ce311ea20dd07bf42ed21f4b383e3..be6acb3f1f53e8b68b4c460d5673bb46f4a15fbc 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 657b059faf2e0187c23adb176d33ebd16d32b7d3..0000000000000000000000000000000000000000 --- 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 620e8f653f9923040a5eca89bd692c8256afeaa5..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..c81521ed9b085c5856e897b413856dd6fadbfb3f --- /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 5632500df2e043c3ff64fc25b0ff2f094924b638..5ded36329f33333b45e32481888c863a6e156aab 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 6f811dab8d7610b42beab6d82e2b211edd518055..9bc73bf0b85c3202492b162c2b0fec64ebba16d2 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 67a9b9a45ee3427c5b6ad13120dffcc0fd257733..cfd0595e63b72d16647db3f12d47244bfcdd45ec 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 c051b7d49e3fad05599b39cbd0b10082df9c56a1..1f64213accd46fb38361edfadf8e62575b980625 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 0000000000000000000000000000000000000000..165580b978374c4c0d5dc35cf5eff8deae365800 --- /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 0000000000000000000000000000000000000000..9ecefb32cfa8fa5713aea0a62ab0951d3b756633 --- /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 61545a5acba8699bf93b7a90e3ab4ae5337459e5..f536d56d7c63da1cefa530abe03df2d9db6f04f6 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 53786dbc6270c5e58bca6d1ae1ce91afd2f1718e..acf48d3c3d0323d36a0273321796d62356cc54fd 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 56af8fe152e02d1e1122e7bc91568174e96d75c3..5f379b392ea8b014889afbb06e1c4771b4611e9d 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 28f607861f7763480ff3d7dc418d640f08a36f72..3f533fa457dc181e8a02dfc6c9de7584feeecf0c 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 { - - 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} - ''; - + config = mkIf cfg.enable { + users.extraUsers = optionalAttrs (cfg.user == defaultUser) (singleton + { name = defaultUser; + isSystemUser = true; + createHome = false; + home = cfg.location; + group = "nogroup"; + }); + + 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 67112343c33575b7b067ab52a323241f2f08bf12..7c9dedb67ad2fa890b1a9577226775c9b3ef9bad 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 648089f90b7b4a5ff8dce772abbec05174a36acb..baf99930e3eb23c2d661826d86531ecc6fc600a2 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 f58306ab63ede3192da0d2044f2d287ac70af8ea..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..75d71fccfda4b56a4d31be726f97ef0e859a16fc --- /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 0000000000000000000000000000000000000000..077953e4d4f8b725f97334cfccae9075231f88e5 --- /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 0000000000000000000000000000000000000000..226fdadffd1a278b2a0315c84a0c0ef02b59821e --- /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 ee38a42199ee1819c63b4ae9ed3b213fc4458c1a..fb91a29a40002ca61a794523da6ce34a873d946d 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 533751734fa543c6ba07f220acf30809b64bb638..846efc8b5b9acca80d88e4a14c60771a98fd4ca2 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 e4ee4dd861effbcab7969b22ff473e2764242ff7..a97f571e89df21c9f7588835464d291844cdd0de 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 267bc16862c905847c99ad594ea825ed2f1aeaac..9c06e1d43bbe119fa7353238e07646e2ea8edc8b 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 ba90b1b1a2c09d91cae98aaca2e6b73ed3495bd7..6d5cea4f77a5cbe857bfec2b3608302289638baf 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 0000000000000000000000000000000000000000..5d0c3f7b4ab365ad65b16aa104bc655a8601649a --- /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 57f592a2e5501415dfca1508222c539209268638..43fec5ff5bb28b3aa842c318f2cb37d6643c9c06 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 4edbbf59a42c5fcd7347d685651465b789cc1fea..0dd59e4fb4442b0bc728a7cab9735b1c89c0338f 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 0000000000000000000000000000000000000000..631d7f8cba793b61376723df9d8230262d0cdc5f --- /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 dd88624f406cbbd4c288ff2a6e3d283a4a0d88f6..15b711f57b13b437b3f3cd4da4c21c46932e1f7a 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 c56564f57f3623c44d8e12d93321018dc671e7a1..78dbf0d784cfb64569878a0f3119ff4ed312d0e7 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 fcf1f123cfb5490d3bcfc501c4e017e274cbecf3..845e6d4c22ef830025c984a52b01eb2be045021d 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 0000000000000000000000000000000000000000..86733a3e5a075d642f2af75082831dd28775e941 --- /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 24ef4637ec98f0672babc21811bd976e6fb70d78..a23a0ebc7366bc9d73044796d64669475cf91415 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 0000000000000000000000000000000000000000..cd8c386b08db02cf2f9a7c0f7cb5762cabfa0049 --- /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 0e041fdbfbcf1c046162228721eb008c992e4985..c5a000d5c6a720d55c2e9e767e05fdb68b81cd2b 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 6e4c59f4bb37f123721252adac16175452121165..55ed2d9ee21b67db2bda8db7561fdfaf2f149b80 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 2db2e2fe1c3449acc099618de1e1424d9ebd9355..86a47488d8658235216594299a185e85fce54e58 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 0000000000000000000000000000000000000000..139534cdb892cdb055d45cf6beb2d83b7b699077 --- /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 88bbdadfcbddd9a44c1afa14f519ee82189a8ded..f6efb668424046f51668a971f83a82165b197103 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 a36643a1cfb3bc6af0ec815d66c9b55e3171e915..2a68af5a7dd891e993fcfe522bccae419d313cd1 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 82d04c62c70dc3b0cd3027c10c7f4b85cc9340eb..0da4aca73ecb92bbb4e0ebdc9e69e4138d2f7058 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 6acd633b62c9594f9c76c3dbbc3ddeb1fdaeefc6..d406bf6f5e391e79920b3c7c17d89c7fafe05c66 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 384cede679c6134686f1d9ef6246428d03aba591..3ac767bfa00d1c0f0a4ca5bfeab668651a0fabfc 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 e5c94cff7c84ec25dfb48e91e341db3d000eecaf..1f6ce2ae968e6fef535e785f6a6d421c304ba5c7 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 0000000000000000000000000000000000000000..5a8258775e0ae3aa0b5e1c4324f228ec6b28958a --- /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 6bbabe8d3c56e5ab4a9495fd987371f61f57f5c1..4e99d191f18c72463e6bba70c3477de2399879f4 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 45925aaca9b9483a4eb50199845bc39f4eb801bd..e9ad738269e434a89c91782585c3415129c8502d 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 ff7f484602c78552c1930327991323a5d34c6d07..7a4389038b220870e5abffd41b4b30800ed8f980 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 dcaa60103a3b3b8b6f58b5b43e9e28006075f5ca..c061f789049942c097ac5c040201deac606f636d 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 9d6395ebd74cbddd8183c64f717322ada6b142cf..dd66bac442c683a3ff6341b57fe2d7fadd438d2d 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 e7f070d08773ede8a1dbf3f60c24df4bce3e31bd..1dc8ce93a0e5c8cced153cd93bf3c7b2b4bf6f4d 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 087bd0e04098eb701c12b142a82805f37ab179d9..b0f9ff56d1b2c9abdbccab69333555c528c5490d 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 0000000000000000000000000000000000000000..fadcb19a016fc979b8e0ca0381120f1610b983bd --- /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 3b108c87edd24d6ad52bd21d8053d4d1bbfe52e7..68425822a8844231f162084b3c7100e1da998982 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 0000000000000000000000000000000000000000..e90d9e7a12b6203cdad4c9d63fdd1a9c22387568 --- /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 9fbec2457371b7a2a142e961997bc310574f922b..95825705d9d7173e27505e0b46c23e9eb623a07d 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 9f0fb11f02520cf1b37ce03b9bc112436e09aed8..a0dc0d6d089dee76a083d2a307d59c9112cfb8cb 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 0000000000000000000000000000000000000000..b595ac07bf5e7832aee150faaded5660b9baa25f --- /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 0000000000000000000000000000000000000000..d49795fe2b77c2324e2152281fac97ab01f1dc6d --- /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 c9477b9e3ab03a1ed936e7ebe2e3c2b7a18ea69b..b4abd2cd7e5ebbfa7a2bbb2632ce07dc921f4e26 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 3b25e41edb190021ef3043a89cf512419dc645d4..6057acc531a38d42cae099ac225a33bc00aee5e9 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 0000000000000000000000000000000000000000..206fb50d31a29b354d970641d0b6f22f985eba2a --- /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 4a01745eb8b6ee64f72100c470c5e04ef5fabbea..b6439b44fb5f5d66931da8f1f7143dd87ebdf501 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 0000000000000000000000000000000000000000..59cb512c115b668fc4e215f919aac595b7c14a96 --- /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 f065208ddfc15dd1fa1f4e28bd7b80046667ad6e..59a8373843a1f28ccc69872e55cf03c322855572 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 0000000000000000000000000000000000000000..ab5f4c39e8c2ae0d7bfd874c2fc2f6c156368785 --- /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 caaa87b94d61d3d978e51ad4eff50bec35e045c5..867c0ea6761c5d335f8569c4117c3522e9e4faae 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 - - mail_owner = ${user} - default_privs = nobody - - # 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 + 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; + + 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"; + + # 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}"; + + 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; + + smtp_use_tls = true; + + smtpd_tls_CAfile = cfg.sslCACert; + smtpd_tls_cert_file = cfg.sslCert; + smtpd_tls_key_file = cfg.sslKey; + + smtpd_use_tls = true; + }; - '' - + 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 + "]"} + 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. + ''; + }; - mail_spool_directory = /var/spool/mail/ + type = mkOption { + type = types.enum [ "inet" "unix" "fifo" "pass" ]; + default = "unix"; + example = "inet"; + description = "The type of the service"; + }; - setgid_group = ${setgidGroup} - '' - + optionalString (cfg.sslCert != "") '' + 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. + ''; + }; - smtp_tls_CAfile = ${cfg.sslCACert} - smtp_tls_cert_file = ${cfg.sslCert} - smtp_tls_key_file = ${cfg.sslKey} + privileged = mkOption { + type = types.bool; + example = true; + description = ""; + }; - smtp_use_tls = yes + 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. + ''; + }; - smtpd_tls_CAfile = ${cfg.sslCACert} - smtpd_tls_cert_file = ${cfg.sslCert} - smtpd_tls_key_file = ${cfg.sslKey} + 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. + ''; + }; - 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; - - 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} - ''; - - aliases = + 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 08953134b3b3ba4ac633133ffe3530bf3ddcef34..d483a8c3d67dc7945179a05a7d633cf23c7143dc 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 0000000000000000000000000000000000000000..b92104787a5602282812ac3c1de32a23d6676fc0 --- /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 40b48f70f7edf498bacf01a2378d7cbb468876e5..f1742177326afa3afbd23faf120b47f6e6c917a0 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 6746f3fec698784d4faf9fb2f57a9b766bb8bfe5..3020130ad1f699f8fc53dc9d89a0c2ba3e8520f0 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 4d78cddcb54ffd3ce30965ce0fcfc05a560a1321..c499e428af35906321206dfaa32d373b9a5a1cba 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 a920aa22ccdf684e9cef4c5ea21b291d74c2168d..6b19f780ec0cc46833011264d5f270207ecb1e52 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 9f290ed70c97b84a5a2f5fcad8576e18257fff27..e295f0f930e1a040974fdc221449194f9ec9dfee 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 427cb7c546d0555a7c068e3a0b37e1821068c47c..cb2fa6776240d6507356c95a7d3ac9e2f6eabc42 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 0000000000000000000000000000000000000000..600bd780e7b0e787ea082a6625057cd1b56d975c --- /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 0000000000000000000000000000000000000000..15f283f093c0df3522ddcef8100c008bb102a4ae --- /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 5135fac8f7dceaa62030bf698f3a74451e833bd9..760fa66e80d6cc10ac919525f8c33c2dc23a627c 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 0000000000000000000000000000000000000000..f0b44b7bedebcb4e9a7d318c3360e1f19bd91641 --- /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 ee881edb5ab01983feda916a58d8384c89c91fda..7b2b40e59232961992c223bde7d34cdaa0d56505 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 f9636f8e127863213d53df299c2ba72ed3d1e40c..4b00f50abd63d1b3432f4f39d5df8f14a7a07b12 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 5012bed0c422dbf7edbfe13d2f60b0c3e9c717f0..f395b9558b5a4a985bfea1880a95328caa85e9b5 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 ca8fc06e48355404c3caaa814d382c38f3453938..f6d326e43d948c665c64c39fbbe50b6d43a98053 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 0000000000000000000000000000000000000000..81fb024f9094d20b5ebd47a82096d35d746217dd --- /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 e467e7ee85b8ccc97f6479d7972a1525e12186b4..87a41ee70b5404a21d4fced5923bbea9dffc4e56 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 0000000000000000000000000000000000000000..6051c884465da015ba0b21dd46380f4fb129e0a1 --- /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 ae9826968b1f3a35314d6d498d9aaabdb46665ad..a3ec0ea59f8f072f253ac1049dfbef083331651b 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 bf1304ee7ac2af1f391a3550c1f96119d8084b7b..beca820d2d602054ccad9cd8f6b976b2b122c67c 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 622607f3b32d66fd98ce0c5e5a98d002d7e462cc..41cadb4a6de02d7250adc7d2965475b08c2c5c9a 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 9c0bea8d3bff9fcae5c1de475ac54d8d258d01d1..46221ace30843ca2236cafb1adb61d8798a62942 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 0000000000000000000000000000000000000000..df9f125812471fae6ac4c973863c5b9f8bc63082 --- /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 0000000000000000000000000000000000000000..897e856e2a2d6cc6e782ed4bd3316446c5f9a771 --- /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 cc5efffca448bb97e3ea44645f41ce56c21e1171..245ad9f9a6df914ffc244be660a547a5af1732cf 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 e3f1ec67cbb3fc1b1645212996959bb689570324..3997b3f0dca0ead75af5bddc89e30b8c69186a3d 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 49520f68a50a704c59e1e61feb7495c157d8ab19..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..62b344d11b06e28034a2b9500d929904d7540415 --- /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 6d96daa6c3d4258604327fbf1d0a8974f9c96564..ecde2c33bfa93a2c9c2c36c73d3a34b2291126cc 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 f8133394ffd3c991672f980dae55c6018176850f..f322ba4cbd58f4069046183df538b7d51105cdb2 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 ab9a6ce32f46bd5f334409c6e68d5ce67c73971d..ba9f52f1904b18bc4cf496d65cbc1f1f7c0cff5d 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" ]; - - postStart = mkBefore '' - until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do - sleep 1; - done - ''; - - 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"} - ''} + config = mkMerge [ + { services.cadvisor.storageDriverPasswordFile = mkIf (cfg.storageDriverPassword != "") ( + mkDefault (toString (pkgs.writeTextFile { + name = "cadvisor-storage-driver-password"; + text = cfg.storageDriverPassword; + })) + ); + } + + (mkIf cfg.enable { + systemd.services.cadvisor = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "docker.service" "influxdb.service" ]; + + 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 79a8a1ff5aed577cfe5483705495bf00d6a9f192..dfbac3446e035293910d14c2b11a225680fc62f5 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 0000000000000000000000000000000000000000..0451281974216d6d3cbacbc46533055c77ee989e --- /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 a98b0f2f0f857cc476fc755b058b3f4539aecc74..beaa2c01b2984db726a324dfde3d24adefe1f10b 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 0000000000000000000000000000000000000000..76724173171a9ead92268163ce756dbdf73e66b8 --- /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 0000000000000000000000000000000000000000..1c00f3c299e95dd286e6c3b2038b59758b0e3f94 --- /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 98931e65bb5665567aa451df6b01dfff49061b12..645dfeab0193ea34bcde5addc981282c5aa005de 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 770d56e60efb1fe80c41bc7704f76b40f07e681c..9c38956f9ba853c9095d7a723be0ff2a0539d745 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"; - - 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 - -{ + runDir = "/run/longview"; + configsDir = "${runDir}/longview.d"; + +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 0000000000000000000000000000000000000000..ba0dc4c217684513511dca049973f7f9dfe060e8 --- /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 388e4d4ac01da42e28674ab56ac3d5d365a5c5aa..ce2e1cf2d74b6c93f9381c8b2e592a9fea5fe629 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 0000000000000000000000000000000000000000..f8a5b9576a1168e8c7559d6562cf4a132c45198b --- /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 b9435c02b1de1b97cb07286a0f9a0a10b95f9a50..c12b5f35dea3f2d60210e48c422791838599893a 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 0000000000000000000000000000000000000000..4314671523cf1988d8144b3fa1bbb34250ad8d93 --- /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 0cf0b85afb570ecb0f24907558e9385c01e2dcde..bad4389ce7993c0a422aac744ad0d90a4e27bedb 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 e3059e485098dddd5de2c72ad11f959f6da2cd4a..0a56d6ae95a59b917cf83465b75ec65ebdfc823f 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 c4c4ed227b354368ce4b7970a1f94147c665dac6..29dc68f90cc942a6ee868e8f60bb6b39e9ac04a3 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 a2f2c03395159620ce8a6736d3b94f9af45bd74f..8ac9f801dcb8b5e991a62006e5b10cb1925f01ad 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 e6e04248854e42df25f9120beb37289f2b40a9ce..d4a695ef5880561e78422b2c499108f262235749 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}''; - -in + 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); + + 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 = { - description = "IPFS Daemon"; + # TODO These 3 definitions possibly be further abstracted through use of a function + # like: mutexServices "ipfs" [ "", "offline", "norouting" ] { ... shared conf here ... } - wantedBy = [ "multi-user.target" ]; + systemd.services.ipfs = recursiveUpdate baseService { + description = "IPFS Daemon"; + 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" "ipfs-norouting.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; - }; + 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 0000000000000000000000000000000000000000..7b2eea3b585019a767e29d72a8497091d348bedd --- /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 7d127145101b81500cd3966fdf3045688f93158f..1a78f9a76a331f1d531117ee383cc0648ddcacce 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 f7c58c928633b6e0606dd72946de1a3d694dd531..0946e379e796796c94809f67b09e57d69253bca6 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 2018bfa14a57627c8c1b9a9d67025ac05e92cc34..054057d52ab1ece83a1340ea214dc6de2ec8deab 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) - )); - - cfgFile = builtins.toFile "rsyncd.conf" - '' + foreach = attrs: f: + concatStringsSep "\n" (mapAttrsToList f attrs); + + 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 87c4f7a8ebcb43a3427a489d822697eb849674d5..9b9c91a4f16726b30eff6d59a3ba01f4b39764ee 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 9815a5434ee3a5eb7ee49d0a372549550f6aafe9..80b34c48f1d2fb331442dadaa6596daeb55211c0 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 8bc37f0f62c3780ef356e634122be8d2a97fc7be..4f37fc2a9e5cfed2693b83cc2615a08b65f7259c 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 ac755270951bf821693e5bfe21e7f1327b1bd525..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..ad4ac9bf45e32cab4b05bf682139428d0d4737c8 --- /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 3985f8561d35a3ca80510ccb19966368c7a5760a..9ccdacb20e91ad362901c77c7dbb4094fb308741 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 0272b6ceff20bddfdf0d322fa7df13ec337123ac..763283dfe7a22eee4f778f6222f8e47e7486e636 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 e72ea20cccee96006e5645938b0a3ce422e752ca..bd26804788f38d4d00645ac5965b8926c0f0e43f 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 2f7d006b8816ec60e7112bb9d97da4278d7d25e4..c354ec61fe236ede20e41fc612240ef428148a7c 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 - }; - preStart = '' - ${coreutils}/bin/mkdir -p ${cfg.statedir} - ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir} - ''; - }; + 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"; + }; + 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 890ff50840788de28d43df9578093b82d9855e7a..3978a1969ce91be0603fbfe389447086d34fc8de 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 = { + + users.extraUsers.cntlm = { name = "cntlm"; description = "cntlm system-wide daemon"; - home = "/var/empty"; + isSystemUser = true; }; - - 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} - ''; }; - } diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index d0683b877801bb846c01456d74076787a8fe93c0..546d270692328907ea5caf3459a913ba4b8ec739 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 166ee7732375cd235358dac6e30c2841cbd1b735..6333970cb338fbbaf39bd44d06b301cab8e14972 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 14e6932d868b3ebc4ceb668461c6126c9eaee1d3..b3c64490d97e4dcb655e9d2b95224a723cd4f672 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 28c96a9baefc53204901711856a2ee76dbeb756d..9e56545f746c4d20cf0e7a61d4eb00b350472f1d 100644 --- a/nixos/modules/services/networking/ddclient.nix +++ b/nixos/modules/services/networking/ddclient.nix @@ -1,17 +1,33 @@ { config, pkgs, lib, ... }: let - - 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"; + cfg = config.services.ddclient; + boolToStr = bool: if bool then "yes" else "no"; + + 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 cdba14be21f07c27ba59a84f71ce43c5b2c5eafd..d283c7624335692f4bfb16c3de97af431f796639 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 0000000000000000000000000000000000000000..379203cd1ab6e121d414fab8f9e950081916f49a --- /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 b64929960576a67a0ae87087644ab3a937c903fb..ee1cd36000398494ea91aeb6005223f89ea9a24f 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 077aeca457eaefc221d20b7361c9344e2a61e7ee..ed658258c7f9d27242f171dad997b398e8337207 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 85fac660d52ed81c95b59d834d99976b7786afe9..23cc92946e41fe6d601daa264b4c7dc10dcaaee4 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 fcf5aa5f175b7a15cdf7337594098431ae90ab4e..91a3e54474ac9cf7bf4f04619c85297b2a3a9f1f 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 7f4e36478325dbf1e5792dfc84eb68268a77a727..0000000000000000000000000000000000000000 --- 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 3a95b9c4ec94b61881ac50ebb495da8f1fabc28e..a9f3fd65d76b4053e5a28ef3ad1a58e64bb76ab9 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 0000000000000000000000000000000000000000..0b34f0b6b8b489fa66f5f774c45ae8e818d2e300 --- /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 243cd04c96c2e4529821c140439285457bcc8718..9bd88ca1707b2ea6bbdf840fddcc03a547f65af6 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 + # 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)) '' - # 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 + # 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 fd4545e88e2d35e2af57ef43cfdaa39f70d8f20a..bf2d0916fa36d9013d0bab192e7a79e368a61e51 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 24a3196bed461873d09292fa21896a4a0eaba55b..ca2e2a065dcf3ffb38c12980b339421ad7c253ce 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}"} - - [limits] - transittunnels = ${toString cfg.limits.transittunnels} - - [upnp] - enabled = ${boolToString cfg.upnp.enable} - name = ${cfg.upnp.name} - - [precomputation] - elgamal = ${boolToString cfg.precomputation.elgamal} - - [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 + i2pdConf = pkgs.writeText "i2pd.conf" '' + # DO NOT EDIT -- this file has been generated automatically. + loglevel = ${cfg.logLevel} + + 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}"} + + [limits] + transittunnels = ${toString cfg.limits.transittunnels} + + [upnp] + enabled = ${boolToString cfg.upnp.enable} + name = ${cfg.upnp.name} + + [precomputation] + elgamal = ${boolToString cfg.precomputation.elgamal} + + [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 0000000000000000000000000000000000000000..23787bce9911d906be057eaa9456f15f38ce80b2 --- /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 0000000000000000000000000000000000000000..7c7982ee8eacf6dde76d9576cce509c019d8b4e3 --- /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 c87e738d2a239c3a58e54901a8281b64b87a7354..280158b89f61bc9f5fbd79a16ada0b631f5a0236 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 0000000000000000000000000000000000000000..ba4e1b1542fe4c756e0af50a39c75b1712076ba7 --- /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 0000000000000000000000000000000000000000..5526e2ba23ac78a25d5fd4bf8c7633eda4ed53b9 --- /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 775564a2c4463f9a31acb6369cb0a42b58f8b9f5..0000000000000000000000000000000000000000 --- 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 3d560338e2c55ca2f23eac769feae652bbd639ac..8694d08385ca112d49e9e9abf42288c4faec5b01 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 5451500b56f689718c72b588e02e66a98063f174..81915b5a2ef8259646156e275d41ca7862133dd9 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 9df9f67cde834ab2fd670bb30ac4093112ba97d5..11f7d7e5caef7f135bf815114f7c31a44500b586 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 08ba2fdb1646686fd29e798bb3a452886c5b12ee..366bb2ed7a80348e521a3abfec3f7007d3bf416f 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; + 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; - }; + networking.firewall = mkIf config.networking.firewall.enable { + extraCommands = 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"; + 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; - }; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; - script = flushNat + setupNat; + script = flushNat + setupNat; - postStop = flushNat; - }; }; - }; + postStop = flushNat; + }; }; + }) + ]; } diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 220107a2411884479ab968733c5fb12a62036bc2..e03309c8729928cfa48d6f6c4b02c1d08774e8e1 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 481e267f6c38a1aa201846014b00c7b057c40ce3..c8b8ed547ebbe0c64e3a40fbed292c0d8b7892da 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 f9300fdabc57ff2fc1e34a1831f7e2fe9f2b79a9..391f4bdebbabbb3b466738233e94bff01f981586 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 0000000000000000000000000000000000000000..6d2b7bdbca1b57458024cc90c26335a335cf7612 --- /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 e0eef9ed96f63204e0ed72e6bf46dedf6ec41748..c7a128ae212dea77c06c512558f154686d787c2b 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 16530078b978a783840d852374a7e91069ae7eb0..9087b75c29c10568747a7c54b4d665a55cb7d014 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 0000000000000000000000000000000000000000..b220c21b604f633da0bd4c210fd7d27799209e1a --- /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 bebf4e145ca8622265eea51883d1a747da57028a..8828429a8178b53d3112749f6426d1a086906d87 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 8778b0364f9afa346d9eb9baf71a11aa92539442..3a3f64221c422291c733e6a63bb7b5182dfffdcc 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 31d11548f195eac7635a60764c6e0848be77c7ba..dc90a4bcc62075866ef9c59cf3ccd8253bb2d748 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 6cb40185274dad3d8bf74127b615b6635cfd7b6c..adb80ea2984059f5761f81375a117388677f8e4f 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 0000000000000000000000000000000000000000..184888ef05da0192320a942c7476e8e23826694c --- /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 757cce2876079a9ed05f5db7bdc5ce81d158bb9e..0000000000000000000000000000000000000000 --- 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 911836fdee4293d0050c66bb8b67d660c3b634a6..5e13402d7645f6e6a5fa2328246c16e91ad8aa4b 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 f3a04d97c98e7c4e9155ffbfaaf04ccd1bb7f0eb..545ee327d59649cf1641b3b124e91b39774b6d6f 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 a8cff638d3b2740a4fb465214bb9b0dafc1f778c..8e5f0bfc070d4f4e3d5cfdcff065a1e87edcc480 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 368d89e2e32e57ba90f6e69be6b010f3da51af9d..eb08e7f90c0de4f35403e73e86bfbbd4db78b9a9 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 c91ba91fcb4d5819eb8a05612dec9e7685d10351..908c8730ad2a81b82a64edd2925e519ed6167ca7 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 0000000000000000000000000000000000000000..bf23c6ae61921ada17440c65946818754513bbfc --- /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 1c63d800e2600da599d01d248d1905dbaca19e50..72313ab2ee1444d4c60dd259531cd6a42196ffca 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 7ce2ae38fb36e0839609ea35e4a41eab2513f86f..4c7f58d1d8bc360ba6e9ae5613a5527ba416e19c 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 0216c9771c96c94614d8c430249007b6d005b41c..77a3f6b51e801929a92b70a315b7eb86d633c6d0 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 7b1a1599e1419e3395535e075b57c432d7348d9e..6f6977b38a1d81434e6639cfc43c2bdb0669cc63 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 af4f9f41fd0409c41b433a90e62b54ef2bca91c0..ac589be57736b73f8ab9ccc291b0ad796b2ebbab 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 574f74d547a5f50c1e75972bd63433cff9a8bb31..c51dd5d946550402de2ec9304c62b293f56b4d0c 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 d377a6feeb8edb6052cfe313b7d41361cc345924..9d7d2d7991896483e6b9cc610aa1e9bc6febae82 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 2d43d12e541db8cacf74d6fc2dd3c1a3164e4115..0000000000000000000000000000000000000000 --- 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 49b5c935267b840b99a11eb12c25dd23b4ef137c..6c53a2df630663297f132b4979d0601754a1e5b3 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 e292fd9851e3fa5bac3e583d8d6c2cb52732bfd3..ef48d52e7a94b010d09cb7116c83eea1e775da92 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 0881483967c6e7a80423c4725187062ceb743bad..30224d7fc6bace7c3d30f554db3fa97503bac78f 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 0000000000000000000000000000000000000000..5908f727d5355ac1ab6e8e0c5ca7ce4269dbbe62 --- /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 0000000000000000000000000000000000000000..62308428f32667140c7e2e20ec84ea2891ac490a --- /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 0000000000000000000000000000000000000000..7f09e8893c4d0556641e6e530026f87a2c7fc2aa --- /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 10596d6431d006250c11e46dc6de3f2023dcea08..bc79d9f2a590c8853ded3e6ad5781b6ca19aa7a3 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. - ''; - }; - - isBridge = mkOption { - type = types.bool; - default = false; - 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. - - A bridge relay can't be an exit relay. - - You need to set relay.enable to true for this option to - take effect. + See + for details. - The bridge is set up with an obfuscated transport proxy. - - See https://www.torproject.org/bridges.html.en for more info. + Setting this to true requires setting + + and + + options. ''; }; - isExit = mkOption { - type = types.bool; - default = false; + role = mkOption { + type = types.enum [ "exit" "relay" "bridge" "private-bridge" ]; description = '' - An exit relay allows Tor users to access regular Internet - services. - - 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. - - You can specify which services Tor users may access via - your exit relay using exitPolicy option. + Your role in Tor network. There're several options: + + + + exit + + + An exit relay. This allows Tor users to access regular + Internet services through your public IP. + + + + Running an exit relay may expose you to abuse + complaints. See + + for more info. + + + + You can specify which services Tor users may access via + your exit relay using option. + + + + + + relay + + + Regular relay. This allows Tor users to relay onion + traffic to other Tor nodes, but not to public + Internet. + + + + 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. + + 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!). + + + + 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 = '' + 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 - man tor for more details. + 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 0000000000000000000000000000000000000000..1f2c56a9efa15c5704619fe674fc04f412d0a4f2 --- /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 0000000000000000000000000000000000000000..146afec344ab904d0c7eeacf5ad05d4859bb074a --- /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 0ef31ef8a8b9786c6596258e0e9bf30802212472..d513e44dcfbad6909abd48295947b7c922ed85b5 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 0000000000000000000000000000000000000000..281716cf1860c846902f6f75bb61d3986487b81d --- /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 2534f09b555a443c7dbbfd807a64985ed4368714..ec1e97f4125ed128cf5139f4aeaf290756e01978 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 1f319df794b5cb591ab024b066e4ce864f569f0e..dd6b585b7e2372ed6f631fceb7203d2d3bcffe03 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 051d54e932fb0336e355a7502773c411fd479174..3429397d2cc29ab1cec83b2dd701e62433748246 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 8bad42927e3f45859368e4c3d7a3510c938be8f5..88e488425bcedeb0a9647edfec4545287e08497c 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 2d9287577de83b264a15a8fe994941f1464318a4..2344b9922d0bad0f241f3b12d60de6849ee34e5b 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 b54c91d7de92c1baa054019f97d5e4e9a182b479..2a5f080463829c79baf7267ce69a8ed767ced36e 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 0ab94d95eee86ebc4eebfd527b6ca320d1786655..19b6a8d308514136123b1c6788966e8a9d191b95 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 8e6baf6a17e385b272ae106a4e506448974cf50d..0b637e3991b4871f0f2878ef7755f2b8623894ae 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 0000000000000000000000000000000000000000..a750aa66b27c5b10d5fb41df43fcf204c4c854a4 --- /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 0000000000000000000000000000000000000000..93f69bd12651473750111506406e8dae7a5acd0e --- /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 0000000000000000000000000000000000000000..a393a182d36a946340cf75ecd7d2487d37d91fcc --- /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 0000000000000000000000000000000000000000..ce86c6873dd408272e9b9efb8c653b4d1f8d6d9b --- /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 ed77e084476951d6fbee33e880f05b1cd1c05748..f9f2511f45dc70b29350beebffd5163e17139b79 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 1ed489bcb095a26a3fda198bb787d4351ebfc9ca..02695c1c43a1e619b71541eac2da5b74358a6e3a 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 c6f4bcd0f6661a43ebf6da7ce2ed937ee8f5c124..1c654667dfc72222b35c9bc8ed8ef58506e0d7a8 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 eec285f6bc44e6efaa5697389d1d026f2978ecea..d8efa24bc6d5408248f07984b732ea9b139b6a1f 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 0000000000000000000000000000000000000000..35b5edced68b66d612225a2a42281705a8968d90 --- /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 84cd0a4095d925ce6464ef5f8d3e3a5dcf1b8584..700b4469c565ab7a5c828ec7c790cff7ab488c10 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 0000000000000000000000000000000000000000..843f0d986877bf6d6a9cc57841ed091aca4eb57d --- /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 ae14aa28ae3451b4d3f733520231b51a4ece9fac..97511aac973744764dc48be6dd45902183c463d9 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 83ce0f71734139dc79ea8d8de92265f45c760d3c..4c772734a749af5e38912eba20d4d8a20f67155e 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 c0ea645b3dfeb50683ac789727caff370c2fd9fd..801601aafd9d64064f2d75c43452b5bb23386d8d 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; ''; }; + addSSL = mkOption { + type = types.bool; + default = false; + 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; - description = "Whether to enable SSL (https) support."; }; 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 26f546022035bab70cbf2f871fa81f4fe10bf870..e1f4ff5db7f2c209a0a7f6476a9ad2d0c2c85cae 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 0000000000000000000000000000000000000000..4ede4fc209670b72d9a20d940977a3fe47d73ffd --- /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 61df43ec23524da942b849e963114a6a687b9318..c3bc065d4651f10060919cdc916c701f7a52861a 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 d75d24830f8dfbb33b58270cdae2d71fecb64cb5..8701354b5285e773b1ba7ca0fc3a9e4427e3959a 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 af01f6acad18ab482d8015ab6fe1d82a6874150e..13f339e3fbf34b89a4821302a66561170cd04105 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 a1790ccd675c58a2dc25d8d5f05584db96ed8213..ecf0abb1efd2b724c5bf854a499023a339748b1b 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 ec5fbb13b323fed243bfdcba6a3ac190c953584f..5fe84cfb82ec496c3b755c9f788747d919fb15de 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 89ad2882363de930fcde80e1ddbb4e7764a430c2..fb907618d35b7141070fe18032e599f882a1502f 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 0000000000000000000000000000000000000000..ab8a0a48b4837d18097aff4d6f1e2557646f2301 --- /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 0000000000000000000000000000000000000000..d7bd2fc5eb0c3620e313d3b4a2f5dc6f946b48b5 --- /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 d981cd5328e1efc9daa09d53e99f97fe76e0ebde..685a93d952b15c8d9a634044bdc59edb3c160a0d 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 4e2c0e01ca033eeee6cb7c530ebc0b8295796e99..3fa482fb672210eaa09ad801eb83b6a11092e957 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 6c63fede857ffb09015e72f642aef116aeae8407..e83f26516f5f836f3ff1e014dcfbdd2d818be172 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."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 = [ gnome3.gnome_session ]; + 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 82b9a2fce5ab1c1b8460759ce3be1216d0fa761e..1733f2fd39b2778ccb5b391f2c8a043392469ca2 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 99c03ca81c2d74f025943e1a54f03b213ce6036d..facaea131ae5137915ed052de0c1e0ae0fcfc378 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 05b979eef47f199873023f00587d4fd106e89e7c..0c4dd1973b53467bf801823b80b1bba2e7d400ac 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 e60dd8765264592b0b42f584ea4e98a485533008..8f5ce3dccc6a3cd6b2dff64c188256928af2ec3e 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 d75c785270b38063656750cc918a534738ede050..44555cb6e2a923823fe9d21642d02c377e30800c 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 54454c736c1d7d109b8c69dc768368fb2fcc02f2..f032c5938852bbd1242f5cb412512e870bcd906f 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 eb5dfdf95849f4a34a0ada089143b18d9c38a518..30d853841ea4497f61fdce407da9dcde09300341 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 b94dfb1a26a6ae6a672fce1cfd6896bd11485362..71262431b68537c4499d400d1b071de0640e7eda 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 a22e5ac2c95aceace8fe08a8f6387438ce9d6808..5f16a680050dd4d45683daeb0dd2024c281b2b0c 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 57ad93f20174f6bfe4ef5ab45ba2d37355c7027d..f2ce089ce19aab3b285a610222ef0e3fdd0cce93 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 539a83f99068a03b95d6fa3dd215c7fb08acb643..0000000000000000000000000000000000000000 --- 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 32ef34bdad2b5aa5346128da5d8a1d0225e9dade..d12003768a675ac29fbdb29590b50410ced1d6b7 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 f9c75e80db416fea4819d07f988b48a6e52324fa..c9b0669e7ba54fd94c560580889daf3ba0428720 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 37f84f0903c37f8e96a80b2adde143b7e71f5020..ad3b65150b01d61a09d624abc792323a9a3d1b0f 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 e25a8ae22823d20db805575e47e79e5b222cb5d9..43de746ab1f168f73a54c1987472d7c75d5d9c00 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 0000000000000000000000000000000000000000..28fc92024bcb46a4fa99c59896ee760cee959758 --- /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 e1e3cbc8e4412c1787b9a3098acc70a09c6aa3d3..b95fac68f1658a1a17e204ed6e69b006800d84ab 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 8438e6dcc70292a2941cb6cba56fb59aefcfd2bc..d4fe475690ce9e92ecc7ac801f19a20a99182669 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 88e7847cf8c8fb9affe8fbe1ce02042e3151cbbf..29cc60b00324bba20e93f135ac876e02f79f060b 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 e9897cc01b6ae3824100e5f33b6680aa704c895b..67cb2264e3f37623d06e9a1a23dc360c28a25ae9 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 cf70a891c0ca33f12870cd53f040eeffe0eb430f..4db9631743e3b5a92766a9d020d59362bd8ec8f1 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 2d6bf2d58a9e72e233c897794cdf0085cf4eec3b..9056121fa7d1657a46176ae15f12f4dcf283e8d3 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 5fcac5c8c6a4665b87ddf71e2b6957c04b891c68..cc03e54ead63184ee2dd4075513b4ccfd030d91d 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 704c574b822eea1a5d42b84d7d76fca0579a18fa..3333569c36bec059ac1f6511859b96b644db5b9a 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: + 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(generation, "append-initrd-secrets") + 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 6e867b6743989390020caf9a8a411c5718e23fde..06f004fb06ecc2a9c79d0f6e94630b6f02747a56 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 f96dde153610e7c153aaa6fe9d86f7e5bb33be4b..9d2cea3ad165b8c79690d4ecdf6785cd04edd356 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 d45b1686c1ea7d49d754b7fef859d386f8eb6ac9..0938d22a45b84d7f8995d38dd09e788abbf6f553 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 a3fb733c289da9e2cb81591272b69c3e8b999938..2147d43c4f19a807830083cebe4af819bbb29284 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 c75e637124a96925a94572b39e011b102f3a0cf1..b442386914ad5b3a2b37da465aee83f2fefcd945 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 e3a3b6f88cf2c84f4869d0bc11581eedcd9b023a..d6e3e3a87d0182c051a4cd77834db356c733d69c 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 f765db275e79376f917e8632f0d4928e6971fe3d..8fa9f8b795e5d755bf17d7945858c0b484afc57d 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 9be10a8283ed0ab83d94542fd03301e33bf1008b..43a9c28bb69404491c1e3ceb418460a72d06492a 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 f798862513cbc214607d61def03d49a626d44476..dd9ba7104485854391b1ade5fe5bbe1cf2a15f91 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 fd6e58cd5b43a1bf497c54e0511e916d67e6c1ae..7d43ba07ca57fdc9c137080a87babf23bffd1ef6 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 60d4ba1301a3f33c4d0c1b1b7657d9d9d5303368..1ca4c3046f0e5b8150c0a2351f67a884929ba606 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 efda74161ff8a1dfa19377029918097220eb46d6..eed20065087fa039a41595120ffe812ad650b4dc 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 f988ec02af728565a0b701713c3454a0f3485551..3bfdf89e0cf5f9bc8a54fdf76ef8570b393304d4 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 b1a7711ddcb4d1507ab58860fb6db1e69694d6a9..da0c9408d891938f320b6d41e3b6c00bc4b217db 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 3951d617f6f1711d67a43229be29dfd3a8c29b91..b3690fad1a6a286c23c0f1df591ed973ac452755 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 0000000000000000000000000000000000000000..227707173a3df0fbf7c7a82064067808531dceb6 --- /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 0000000000000000000000000000000000000000..12a407cabbfb03dd22c463ab0e40b8ccd1130205 --- /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 cc9d0ef37d5954ccc43659089fb6154654a3638b..3a8999c242bdcbe58b9f0697cace66d21fef17fb 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 73cf18384bd48fcc7265235b9dd47a69e6275727..d3a558738f4b75ae45c01c101779b1c98c70e072 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 518fe0a97d2759cb6e907e5abbdc650b29879a64..7fee99115329fc90d7e330ba6327b6379b529164 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 3975dd5b0ffd9f69bd20ae427c1735a71c957c4f..7fb3cbc5c1bc16f756e8531114cb5968b0709f86 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 f6f104ce7a682d4370bd13c44c8ca101b3e4ac79..1f424f84c6e0124aca5d77520326584be7c5ba13 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 e9a3dca6418af84521a6ec38514f019e9024dc15..8ce7b2d2cf369bec2e9d7ded1e6d34043606aba3 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 6f57f5f5c25e922630249fbba38ea4977d13cdc4..609831506e16d346d7c67ba145a9a4c1d24924cc 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 32e69dd2bf587fc78148511857121db781c89bd8..1f8f2891e98cc11e32f90c3a998e96ea40fe5bbe 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 a463cb803aded1a18fe74b57a02f87d31ca175e9..7c2b9c05cf9a047e01165270e16c5b222b5c0b6b 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 33f84986cac6dcbf6fee6337ea561c50b0414bd6..cb756842f369520bba642b60c0d8056228c6727c 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 0000000000000000000000000000000000000000..22c82fc14f65360b9b731c7a726ced04023ccff6 --- /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 7f45f0f34f71e71248e287b22942b2feea19a938..08bbcfd9d7c22bd86cd971f9e8f0cb58737b2196 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 6adb2c1681a20572c25277f938940dc10195d815..8618a9c93dd8e5cf98301e306877c36691277e0b 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 f1101d7ea66eaf65d596ad1e080e18d4f2ac42d0..a9a2095499a731256f48fb578b0d5c3449d80ebd 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 745518f859725dba14358dcd9dd1faac5fec10dc..14826b6272f7c83cf38f7655a91002314c81258f 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 0000000000000000000000000000000000000000..8a9bda1b60c2c8002a958cf08505336bc47dff52 --- /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 5673d55b3394d083912b2cb451d47de8a304e50f..e3b3e6a5f4ab8735ef38f9cd1ce9e122f60e87d0 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 + 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 + + # 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 $AUTH_KEYS - fi - - 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." - 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 5039118d78eeeb22cdc76599c1ce30f39fdbf373..2cb932d208f0f53941dd7c7010a4372b8f5133d2 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 c0cebaddec8db4771dc010d5c3e5a896516d2aee..8aa7ad8e3911cf2c84c0d20880476a350eae4468 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 9d76b890872a160969b7236f90959f85271f48ba..b1ff0337994ee7d7a1c04abb46662c8379b77983 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 aac11ec8a1783efcbea37eb56efe920ee48532ce..c865cf451e405989ba1b6975350d763f1c939ea4 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 1933f11d1fff75a305dadc12d9a3cc85fb7907f7..3c89ca68113b741d20e3d5f4631df5f56e3455bc 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 ce1224a8f13137ff1e0f91313ab6f7a66b0ff722..68930a0e32546e73715fafd8ce202924f8e3159d 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 1f5b6bd1d80823789d997102e2809adfcfe5f339..c7656bc309c0b468a06adbac46496f4648bf1dd1 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 - - # 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 + ${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 + ''} + 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 5c1112a1c6d63279e5da0cce9e12d5046f990aba..125e6b7050bcc1f454ae675d7a6f19ded41188e7 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 95b284cb7056e45b6386f1270af843e146c8c6c9..5701d7826ca4b2dbe253c8c03d6247535011e6fb 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 0000000000000000000000000000000000000000..d7452744e17b2e0d05b66c8a744b4f31f722d177 --- /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 0000000000000000000000000000000000000000..e1dee71fddf231db8c676088e202d4260f711908 --- /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 0000000000000000000000000000000000000000..c2c0a716e0de5feac3f8e3860e9d9cde5e4b0ba8 --- /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 3ea0df65c8b5ac959c93d7333bc13c478f2c4f89..69ab4755e4447c4f8f8662d2dbefdc267c29b966 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 13a162e6c6e8faa944822ad6e60be5d07d8a076c..828846f17c899beaea168fcd731eecfcdccf4a49 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 & \ + ")); + + # 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 \ + ")); - $bbmaster->waitForUnit("network.target"); - $bbworker->waitForUnit("network.target"); + # 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")); - # 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 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 0000000000000000000000000000000000000000..c0add7eff360fc96c8200d24ec97d782d5345d9a --- /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 0000000000000000000000000000000000000000..5a2a266d4da5c1a1c8e8673fad4693f1af889bf6 --- /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 0000000000000000000000000000000000000000..a1901c5c8167c4cff2b82183b0bd36db15ada135 --- /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 0000000000000000000000000000000000000000..b5867c6f6ab180c6bf29da176886b0b79a666e7f --- /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 0000000000000000000000000000000000000000..38d25daff194c34104c9c0d5420740f54575734a --- /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 9096a5868f6cc7e6709688eb44b940d3d89da1cf..c6c8f4cdb5fb9c4590cabe87b6104b300a3a112f 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 0000000000000000000000000000000000000000..3814855ed8e70ad609a774747e7a68a51dde5a1c --- /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 0000000000000000000000000000000000000000..65ff1cac070bd9b20814ab5020e6ff86779bfc8c --- /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 0000000000000000000000000000000000000000..c6b0424e97b93870802fddfd0c0587545c7086d7 --- /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 0000000000000000000000000000000000000000..4b4e081acc5fb1f26775e90361f77aeba3e2a86e --- /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 2c9c745021af5af990d055fa613060961aafb619..4b459e93e1be613fc395a317d551a94a766d3141 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 4787d42d695acc99a26d2b194cbe67bfbb973569..492fa61484a0f82e6a6e153c614d5e302614e3b5 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 0000000000000000000000000000000000000000..16b8181498a6fb70618d5f2e5b44f0c222ec6737 --- /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 0000000000000000000000000000000000000000..a22ef224580a7852a9e82de7105ec8012864ebcf --- /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 d4a419fd0e390cbf85ad09231c973d2e4f6c6c74..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..cb33b69e7199037902081f1b737330953f2c2c73 --- /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 db58a2f5c857ceb5765e913fd5d8a82436cd34c3..a95235887e897c45e4993ad5fb92c8aa78bc043a 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 0000000000000000000000000000000000000000..6abd7a5ad30040723f97ac2f098c4554f52bb0f1 --- /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 0000000000000000000000000000000000000000..5966104939215ed6f652ef3eb0216907a9aabb38 --- /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 3ab3c1bac48ae9cf89c9af5b4f8222a5a903bca7..da9582deec1d9e4bb330c9e662b7ab2c1ab295cb 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 92d742e4f37fce3c51e6af272cb3bc2ad5b5a2d6..c6bc61545245c20d9f7afbf20c37baac0188ffe9 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 0000000000000000000000000000000000000000..07427d7f2a8935e9378cb47349d7e6a1a28b460a --- /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 0000000000000000000000000000000000000000..1350426654d70ac78f787881cc5339b959427659 --- /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 0000000000000000000000000000000000000000..2aab4ce0b49e1b348226ae2a3880b78e818f3af4 --- /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 55a0e7603882ce3361fedf18b647472424bbc0a0..c431c1a341744a3de8ae8d488583104a81138acd 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 0000000000000000000000000000000000000000..d5328720931e8b9d6a0c94278a93b8e5d7b3a5d9 --- /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 dcd25e211971b91c90ed2ce8dd8753a77639c470..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..acf2e0250819abcca0087559da3c6f4337b0b877 --- /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 0000000000000000000000000000000000000000..f108e35b98cd11dfdb16bafac094787d3495624d --- /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 0000000000000000000000000000000000000000..a801759bf582bafb0b064d91d292dd35d295a5c3 --- /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 0000000000000000000000000000000000000000..74d98dabec8d2959806a738cbfa27cc534cb8b1f --- /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 0000000000000000000000000000000000000000..d9d7ba9bb2cc5858b03b0134db38d6691c52ed3f --- /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 0000000000000000000000000000000000000000..00a5c9aba4e3cb8f8272e3e0f731ba46ce95f3c7 --- /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 0000000000000000000000000000000000000000..1966fed3a5fb944db46a64b8c85581ca16f85382 --- /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 0000000000000000000000000000000000000000..b39f4124c958a373d5ece54fed00a20f24baa268 --- /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 01f6a0358b2e63a70bf41ca2fd1dc3857df0099b..0000000000000000000000000000000000000000 --- 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 6e9af126f0327c1eaecb37d130dd884647d0ac92..34671df047c8ce228948842d9c89d6f03da8f65e 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 0000000000000000000000000000000000000000..07a292a9baa57b275a7c268e8d21c83d71028436 --- /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 0efa72823688df18c21a275a1fd317b02d100fd3..79290861cb0b48ef001e780a434baf59cb979cdf 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 0000000000000000000000000000000000000000..f5bcc460cba790a2325e4b93f8c83104ebf90894 --- /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 b20bce8edce6b89ae849343be95ae5813bcb035a..75c6d793febc35e82d60da033d5d3ecf63bcb028 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 74e20bff8d8103633631fa34db23ac1ce88f5792..a12b7645bc28e2d34cd669718086bf97142c1f26 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 6a7e628d8ef1d05ada4e2336a89fb92c1187d52c..7708775f73f3abdf0f13454262a6c0784a5c8a17 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 0000000000000000000000000000000000000000..1f19fc0867a49df04bd6c09b5f2b2f87ac48b504 --- /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 c2beb5590ef783df4c9bcc0604f35cd986d3f6cb..7f7bc0f0b4fe1f81d674f57fdcc842fe2b24b4d1 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 2cf2963ae316d59e2b9ee0d1f9ae9f629337b3bc..d186c42a2a98e2824984e828842a60e1e484f645 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 0000000000000000000000000000000000000000..110cbd5c5b402b3dcd541939fd40c7229db52d7c --- /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 f561fc8c3c4c2151d7969b57ea255ca1ecab5925..f3bd4c5915b010eedfd7b7e3c971c9338f660b7f 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 1dba5c363c09d506ca7a18b63099f944a2ea0294..f6ce3fe38ed3ea296285a04dcb18ff77f6d84e85 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 1f4f43a26669530a0f965c29955b831fcc7beb3e..0ce37b55bb7b33cb972b7ce45a34119e577a8985 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 ade097597bb832e2bdcbb5361ce9bbe613ba4e0f..374fb2d634b4b36d6d118b7f229ebb909971606b 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 0000000000000000000000000000000000000000..f694fc75ef777f3f376ac26a05f37ea836a3636d --- /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 d1102f8d407310425e6a3f5bccdc823dfc71e850..a6dfece44a92e0b14bb015070377c54a955871e2 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 82be9bc1d727438302d5093c21f80ede748acd99..1ce2b81578426cb422396e7452cafb8f5a38c9f1 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 0000000000000000000000000000000000000000..7b939d836381a403737364e1d893180276fdb4fb --- /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 0000000000000000000000000000000000000000..74ec22fd3499cffa7ea68af6525334d7a2dcf24b --- /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 cdccb11d888784f675a67a450196461967a849db..75be97a507d01e8e02fc7c780286b888bd82cfb3 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 4fb28fea3df9e90a5e1cd8ef62960c3fe32d837c..3c68c49ae82cd070eb54152d7937a95defd1ca73 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 0000000000000000000000000000000000000000..2204649a3fc4df6b21382df80e75a42e3e3023d7 --- /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 d426bbde68d2a2397750899b6700f382f2df3a60..5da5717d7f865673e0a545e76c1530b789c946f7 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 4f7cb176d96f48497b3df7d38c0e312b426957c6..c519d7dae8beba46fb1137f5c978f00646cd5624 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 0000000000000000000000000000000000000000..3ea455c393c40ae400d36ec91751d3c075f40498 --- /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 0000000000000000000000000000000000000000..c997e36cc442c822e1c4b8f97fbdf5f72d83b9f0 --- /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 0000000000000000000000000000000000000000..a113aadcd6287a97966711be6950cd8b48cf0071 --- /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 50a011e00576edffed3460f8d51bcec2dcfa0d5c..9a2145d91cfb49ec982aa6a65508eeac6fdcdffb 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 b6d0739c6bf19fd7c6e7ae07b09f46b534ac768d..9eb1e54b9093325f1e84a39d35e41d1559d7702c 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 be4ea1fd6b66ef2ed98b48d74688f0ecda9b55c5..388676198044d937b474cbed4722515ef66d102b 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 ddbe7104f1d92429b875a8e6c6902bb7366b9205..23c9ffe3a09cebd7413b2fd948139428ab333420 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 0000000000000000000000000000000000000000..8ade6fb5251f64c55f270174393055744fd9c513 --- /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 0000000000000000000000000000000000000000..0136ab18ceacb4c38a913f18ee3663f32bf1148b --- /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 0000000000000000000000000000000000000000..6ad66a24397f3ab500419ec6fe75a8dc6e05d944 --- /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 4386ebe4a91c83bff75cc953af5e4ea4fef9f82c..1a21efc323220c7163c81e4ded51470d030a3b48 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 d8df6dd8349a1dba283eef2a91a7d45f26061e01..33c2e598fca920413a466a5e4c7f2eeb06cc09a3 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 d2532e0d41e97d510b256c4322ddd22e654bcdd0..e8fb1c49828eef8e64835018445fb9b2191d76cd 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 f61a5884fd4a1deeb2e3225faf9168c62e46905f..2a8c37610dba5cc176de6a088f2dae7501b50583 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 0000000000000000000000000000000000000000..cbbfd85fe5bf77f090ff8ac7f7f08f342352d3c6 --- /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 f7cd04f1be4efa0d0892f50e812fdd2bca3eeb78..a44dbbd62ce63e1e8db93a2813780e7b7d52a25d 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 0000000000000000000000000000000000000000..679312d9a8e9b01bf2a6b5e2a2101f7bb2ce9058 --- /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 0000000000000000000000000000000000000000..0aa6755ee960303896875f3261c7e213fe743076 --- /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 3beb38e0d2dd99f3916e358b3f1ac6703c6fe801..04e68b1f12824d79277aa144bf79b340fd64e882 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"; - }; - - buildPhase = '' - export GOROOT=$(mktemp -d --suffix=-goroot) - ln -sv ${go}/share/go/* $GOROOT - ln -svf ${go}/bin $GOROOT - make all - ''; + # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 ) + hardeningDisable = [ "fortify" ]; - installPhase = '' - mkdir -p $out/bin - cp -v build/bin/* $out/bin - ''; + src = fetchFromGitHub { + owner = "ethereum"; + repo = "go-ethereum"; + rev = "v${version}"; + sha256 = "11n77zlf8qixhx26sqf33v911716msi6h0z4ng8gxhzhznrn2nrd"; + }; - 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 0000000000000000000000000000000000000000..51e5f6bcb298766ad8d9faaf4da5d8261bc8c2cb --- /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 1b2682f7d4c0142a3366c83adbcff13d4b3f1771..208a2d3915f0f9b668e3a49edd36caeb502ff0cc 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 9b19d2f29969b09e7ad7c959ce34679f78550937..ac42caa80999573c43ab6b26b96ee048fc1442ae 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 d30133fa551174e7935af256a22e27ed4f0e25df..24b891d60eb247908f8d0467b167b78faab0cc11 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 563363b8baf48c08b644828d7bb8c9446c9cb1ed..83bead0adac589e620be192d5f5fb2860d4f53ef 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 5b39333014784a27f829ca7d9a4182537b823357..0000000000000000000000000000000000000000 --- 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 7d25a26fba25ef2a8dccd5aed72c640c0fa3e79f..b1e3dc2dd93d8328bf4030a1dc906cd8aecc0be9 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 0000000000000000000000000000000000000000..b2f5cfdea067f95f192cf8c31f84ab90d2a633f5 --- /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 9942f0898a2fba2831e9c7f887bb976b1df2baa5..4a4665291d6e8864cda85478177b9ddb11165fca 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 0000000000000000000000000000000000000000..aa912f04efb5d1c0e95364f0f475752b86e60121 --- /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 0000000000000000000000000000000000000000..b89582c09e606daf42146277c26ca286e86d4b62 --- /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 0000000000000000000000000000000000000000..303b3bc171ef835bb6580468dffbe5b258bd254e --- /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 0000000000000000000000000000000000000000..be885493dcda8da161683d6c22b070fb9ca4713a --- /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 0000000000000000000000000000000000000000..a66ff128293ea130a5c9a964015e1ab5afb93504 --- /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 0000000000000000000000000000000000000000..88d432fd1637d52a3ce6afef7236e91bae9625ba --- /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 ddd34f1bfeb91407dedf16ca4f20f09d02ec43ec..ad12609429f5e4eb9e68f45c3bd25bbad9154bfb 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 a729d5cd4efc78bf0c2117f14dbb344f668d833b..a23af5b5caf88d0170cf37d401986bd20c3f13d0 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 ]; - 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' + propagatedBuildInputs = [ perl DigestSHA MusicBrainz MusicBrainzDiscID ]; - # 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" + installFlags = [ "sysconfdir=$(out)/etc" ]; - 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 9fe781f1769784fd5eb5a1dc4398a5737a799db1..7ac1025c5027a6057ea897567eb9bca4b3e11ab5 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 39946fd5c7dfe336e54cac0a91cb3c16cb0d7ef4..5a6901a94348cd47d2e3bee74b4f272d6a2d410a 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 c70a1b4aa9bcf085cd1a867080d8afeae6417af5..115df15d2a57abd8da2ecbf628c644d578be0b3e 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 3b675cd9020b5fe0dcde052b90e0f21a7b7b91f5..022e33991f989b0448b95e7358ce90bba70251ee 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 fbbb9f90f8a5316ea66e25e60ed5e5cdccd89323..bc72c3e13144e379fc66ecd9d714a1d747b73182 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 57864f863e3baaa692f49adf2f77e5beeff8f7cf..850848abcde67e874aa00aa8a43758405f9a72fe 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 3840d06dd46798a5eaaeb5080e36e5d4ea3fa840..afb3c8342731bd83a991585adca3b259208273be 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 39edf18b05659c85b438d53eeeddf63626e3ef0e..9a9095d2fc120f6273a290e3c918f0215c07cf33 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 b5897c71cd9422bd17fe85fd6c44c49af2b78abc..99d6357e9216c4f3185f6fee00ab63367f388b4e 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 6d4b18e29b00c855adf55d3065af4c34e45b0d50..8242d035e5b8e53f1b2b1bda724f4eb5a464db5c 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 663e0eb0cc8c32d1e0366e5a87e59e5f05608b16..803b0115fbdfb8592e00eeb49a8d3ba3c6a2d82d 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 92e6adbaa965b4a7911fe26f814013cb92841e64..07385e2a8b855c8118458888e766b8cb5308d207 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 e6addd6c4fdf2203bd4e1030e521419b0aaf8c11..ac13371dd930fb7eea47eeb59e92e713386a2653 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 28f21799166a1ea8f08d0c914207838204d19090..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..986e476779cb2a2d409c16ddfee8eaf0cbcda49d --- /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 0000000000000000000000000000000000000000..2076e45de5469acd8cfbb155e45261b9cb6c63d6 --- /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 0000000000000000000000000000000000000000..cf71c006046ed35f8260a103e8cf5cb3456229ad --- /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 e3cef30ccdaa87097bdc6b748598f274902df667..deaa3f98e52ea309a0885f79a2a90a442515abfb 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 ca3148f0e0a4d98013cb1d5032e8f08cd562d47f..32daf000dc5994c8a7c0a22319acc55afe18531a 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 af0d2bbd0e9cfeba267391e455c2df5bdf57efcd..c597e42eaa6dfad43a5abc0cadab9f6f10f69b96 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 3b94235889cf5d437a950e039c578c076043c6a7..42e99fa51863221f7360afb6fe6aaf7010347c4a 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 0241e38281b770e149b12e364d68db18d01c4eb3..2401a610156683655e9ca904f631ad52b34ac87a 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 e133df564d7a159c13a32f709b940f315bd8d256..15fca59deee3cff77123fd04fb23f9718ad235f9 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 3231e3e530171c4fd036153409dc93a48415c180..35fe510cbb2b5dceb3a95ab13b8b67ec8a69db84 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 = [ cmake pkgconfig ]; - nativeBuildInputs = stdenv.lib.optional withQt5 makeQtWrapper; + 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 b500429127155c5a2b58a8fb51e8fc56525b1cee..27724bc28e990277e4d03253c4c2e2209a2edc7e 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 4c17846b99df40a86c9ddb25651ef509c43eca00..0000000000000000000000000000000000000000 --- 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 2240debd0e4a68757b84de6888228d028b9619a7..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..226536a13ba7aaa8e062c0ff1bdea0183a8f7024 --- /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 d41720c90215ea59980af4670fa7e76f601e981f..344fc31d70dcc9e438d4d2569520eb1692fe1aae 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 78841da46c59c0347d9f5ccc43f96a9b8a6b4cf3..affddd90784cfe02649618d5d40d1e69aa1ae2a4 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 babbcc51e40213d48bbf7b48d255d33e0c75148e..4da2228c6c1302697e7d87e31dbef63ca46f0c1c 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 c9346248438bf12fbbc3667db2387a90416f421a..c0dd2e92178c4d6b0ef975a429b2920fa3d5f411 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 976ecb675e762a9d584b840e421a20f3336fe9d5..dc0c8eabcacfc903504e401b76fba865cb7b74f9 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 07f9e565c2a002787c2e97fd5e12e0d728cac866..1552982cf1ade3b6423dc6b0899bf7d3a0276bae 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 871621d3bb1b4f3ac7b319e7b942cfe8ac14733b..c6509b5f460ee7e3063b93afbb9e5521f0e6170d 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 d006f2c01781cc5f90f5b305c7f79fa51936fdf0..918accb4e167f6f5cb68936ee05d8d08e8988d5f 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 bb317ca7a40e7b16725dcd3115bb499019355576..740d6d8d7e0a7b8199c9cc03013ada0349504a25 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 5d4e19700d8d1d6947731b417fe699a9ead95c8a..a80cc36b216408c55c43e689920a150b69d25ebc 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 0000000000000000000000000000000000000000..3e315e2d1a75f3ecc74e8f2b11ad69cc0d5eae94 --- /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 a52301c34d7d4c99b422705716c8453bb1b0592d..c42d290c59937709ece32406c52aadb24dc44833 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 064feeb02a39c04ecb1f1e24de2fbe7da772b26c..fb62b6ea3de6b4620593720accb792eb3cd509d2 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 e9186cd3242ccd82291b71fea9f49f5dceb56141..f9c9dc2faef05fb6eba7de5fa40a9d6bd508b85e 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 a546441996ea033c99a8e48b04ccc320b6cbc1b5..3faeeb12d4c654cc5b59e37d8c42be69482c9ebe 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 cb2e15bc5b230eb0c858c0ea4a6f8b8f9a457955..889506deb76868b6b4e4d1ecccabc199e6d1e506 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 0faf4841c71b326de1dbdcb41a55043a576371d2..6b5101b50b5a2f63cbaa943f6d0b5027e9d0d8df 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 524a95bcca0690c1d289aaf0c33a8bd0ba7734e1..8d7db50fd323449daaf9fc3be3fb4ba05934b2ea 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 0000000000000000000000000000000000000000..1e0cb20bbf76622ae89549eaa5686d2c01797e34 --- /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 0000000000000000000000000000000000000000..58036ecbe50963bef5ce95fb8f46087f449d126b --- /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 b9e98281a7c662e63eb5209ae7790de537ab4c92..4875ee8b57da3fce6eb5d1d3cf8124c6cacfb1eb 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 6289688c53ceb6386c6c2ad8f6cfdf852e5b55f9..901df19ebf596ead80b79012bb6da92d681ae599 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 52e29e3da4c8ce263c6b3717c774c5017860fc0d..425b2b866a5af2a04e2d43600fab0d80de192f51 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 0000000000000000000000000000000000000000..f0863bfc50b03380a2b2c14443d471b01e9ad96d --- /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 2ee03a3f39918aa303ff6ff03e5ab3d743e3a523..545e7c5047a9f68bb77303d93c8035c0f0da1d9b 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 bb37cac5500e947c27982a81ab82c1a431b84e24..a8bf05187e3367cf5174eea6e7bb573bc1a1ed59 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 bb4df5ea1db507f7de66a5443c7e3df6fa466287..e4c6c658efd763868a6c5bbf07032419f42595e9 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 22944ffefe44ad164a53f13ed7ab3d0465b3ca1a..58d095080fe53358fef8030d9d4efbc747edfbcd 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 bdac87aaf3749bb4cd337ad9b611f8adbebc45c7..367b1db139d5485e2bc9906e59259db5f1891b02 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 073d28ef8703d36dc547456b6fd3153e70f6b1ea..28b2cd98e02c3c2e6ebc8cce0a57743e047c8bbb 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 6b4913d30dcade677cf9aaaf8563352ed64bbd38..25704d2628019da5a7e05d45dc6734eb7406a5ac 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 4f22ca62c1a8fa395bd646ab863d8fec59c1e31a..a0a79785283c0d0916d5bba75380964bc1794b2b 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 ab6dd0eee72f01ac9bcc54b33e255fa7d7a831db..50b1bcde58f3ef0e81de8607a4df6b8236c54a39 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 2b78d1a4b6dd3281dabb78e878c0e14a17b97e9f..f5887e870db6e8cb1ff6c182a7dae6c327e14c7b 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 0000000000000000000000000000000000000000..9d9af63118320c9b2fde6e65074d37d07a820c2e --- /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 5a10d1262f4a0f5e1106618a821d348cb0fc7cdf..3d074bf1e19ed88f57b7ada3002432ba3281cce4 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 0000000000000000000000000000000000000000..3a6296baaa6432d16e1b36c6bcfc0ce138fbf974 --- /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 0000000000000000000000000000000000000000..2f4bde92167b461b66fa1baadd873d2ee6fe00b2 --- /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 0000000000000000000000000000000000000000..e7a23b6f204c5b8f5a6a56c3528366578a591ec6 --- /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 7eb2e85f7bedf66afd26ec8b5228902980d42581..0000000000000000000000000000000000000000 --- 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 3f307cd32f0515f27f3e1861547f626cfe889f7e..0000000000000000000000000000000000000000 --- 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 c0a137d7de921b3ab10fc4ee131144fe624f6c47..fae8d3e4b6057624f5e64074212b7a502a6dc7d9 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 1b1bf437ce9d7e9167fb55a0dcb15b1281b710e8..7ebdce7835275610aed2ca487d9907a173ea6064 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 6073008d541dfa745f6c2726e9e8d12b5da14d73..b149aab06e10fa5c40cb653df6ba5ebd4d6d2700 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 712f309fad0c3bd35b84233e7911ad2d1e345bee..80fb6a9ef923c0dc5397d9d3b817c8c9465925ca 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 686a6b67e6aad8e0ab2ca8b7e871e013b0844c53..d68bfbf2ae4e15386cd16dd5d946c92fe86b5eeb 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 1a47b74e21c72223f49e6ec0af6e6454f07198f5..69fc4b419c0649e82939d88d0a47188bde81afb5 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 83fd2b14ed2e831e224f4018d20ad9765d018f7e..c26980e1bb263549f927658d05f94a8229e7c2c2 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 0b0df0b55e4f61d45e7af07dd06e1cb571c0d2a5..ca806aad02feae984640ad9cc2d59fb67e3cfa8f 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 ec7f7a5c32dbcaa52faabee58d2f76cf4ccf1331..f1e00e876730ff4b46b1ce4ddfdde786ee54a626 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 5f796a29035b96615381c583f4a4bce9e9b768a4..a75513ff059ee86b4f3cd6d48dbeb7aaa383537c 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 1d1925779f0d008ea21a7c61a44c207b12de0a30..d68e67d19dd4e2951ad9c21140ace698fc9f0043 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 c709483a3b21ee91a7d75cbfe97c0bd079b4bd36..060b7f703a31503aa0147f88fa4dd2875bf753f2 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 e9e3fd53e54623f243047a249a38d141fdde3def..aa78527d787e00a1eb1f0d2d67726260790beb8c 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 0000000000000000000000000000000000000000..d1a714ded9ca9c71496d79ae439e9822b51630a9 --- /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 bcec085887a59e51b96e8ac0131c6fb84d044336..99c3e48ae84dc24bddfbc8f1e81f8c0cf3661744 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 4af53389ffdfecdff66cfec3a3c59185b209841c..77946fc41ccc3d4b77883e3924dd00d3bd42dbdc 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 0cacd772493978caf40b5a50b380bc3e4f663cd3..6aaf14a5763a86dccb35f4cb5519100820dea856 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 1b31eed0699abaae3d045ca788dac55cb562807a..3a0da876acfce8e06b68256a1ba39de62cd5ba11 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 1b68caccf4ec33a428bb93e33af6904e5202fe91..a60b3db2fb86aa3e8e8f916c7076bed0a1d8fa70 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 ea182d73a5bae80e76aa4e74e2a6a02d3a6ab7d0..01b450ab7dd0632939af2ebf0eebf019d2e6089f 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 0e4e1a5a8a38b715b2893451b1226f8e4507b608..fff16649333933c46e52ec4f016938897bc9e350 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 47b65ff2b5a34ff24487b148cdc2d71cf616f0a7..65df1b89430e713b8472d74beb73e2db693d4012 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 ba1d88373fffe4ece3462eafe5344f51f587527e..a8e33c23dc0d7e6ab084f6340dba0d2aa7750802 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 5bd8068cd4cb41eea8eea78c501d0ae1f190e48d..dcefbb06436fe8fd5482852eb10ceb5c42622692 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 32a4f255abeef870ddea80bf0ef90e19d633a2a4..d3821c51fbc6a6aaa45a76918666e18f99a932c7 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 05e2b335f820c41974b44aed3de00e1682c2b591..e526e40a1e36f1293581c455cf0993cc50621648 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 9d3cdc2eea38c35c19da28579fbf78d5da489c45..c7d0caec8bf5ab4b855b30f2400bc6c82cb127d1 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 e412f31f3168fd8da83cb2ae6aa8a7c633ab610b..f4245b0a51e342eb19bf35d5ed79e9a535f51c96 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 f22ccd08a8e87690479eabb9ed2c80d80e8c3e2c..6a71971c5fdffaad88006aec2230428aadf0c88d 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 025d216910eae1e56428a7db17c57e59ab921253..2e293ee4552dc1ce0db0ade056335d81b3efcd4e 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 d7cdfcf0d0810d8550bc30b675feebf4d0bae0fa..6d353344b07fb25b6c54857b18aa5bd44faad3d4 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 3c48f6ad828f02c2c9a2a2ac558d725144862261..9684e5bf8e433829cba3768a8373ef79a8ed1da2 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 850e7abaef000ad052c81f2965239106ec5ca612..b792ec3428e74fbb0ddd0b5c798f94a25fedc80f 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 0000000000000000000000000000000000000000..caeba5eb1acbcdf618ee6922436f0713602eefab --- /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 0000000000000000000000000000000000000000..b09db88bbcb0fce5989822516ab71992f43d4ddd --- /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 0000000000000000000000000000000000000000..7aebc43dabbb5de73d6b76c5910248eb08892840 --- /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 045c400a17fd435c05400fa974192ed8a58069f2..999883dc26c3ddc7a1269e3ed70a6f950c0fd21e 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 7dae614a8f780b2ed10628f7581fb94fd7ec15a0..7de8f6941c2b8fbc2b186ea3b315c9267389b478 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 5f1d2bfa93d50465577ed57dd5c1a30e2062475f..6700f21fc8cca9f0ee957ae7540ec45cd8fe6d5a 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 0fa9022f67bc5f3d38b6910ebc0cb6805d28c532..f2922e7eecf9931613cc36c39ab5164e7cecbfe7 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 f37585d3decb051092ea3c09d8660cc4f3c57f76..73352b65092144d7342cc04b188829a76f6c992b 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 9004a46115eedfc72510a11bf68b86bd5d5f09de..1e0b46826cf0190f171b9e3bd3f85bf47c19970c 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 b68c44278ee1e600c6457e181a40deda00ebfd73..ee0ebf234ce5a82c9acccbdc18bd13aac798abd2 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 463bd64495d50605a519feb0b548d62a8a30f0ad..9d6f2fc9c8f9b53674dc5732cd9e696d4ce81e48 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 31185c0d0c2804f4cb7ce264fda968f7ad843bb7..ef0bb75b2ec008f500d41a090068de9b11b49605 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; - - NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; + buildInputs = [ glib ncurses mpd_clientlib ]; + nativeBuildInputs = [ meson ninja pkgconfig gettext ]; - 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 8dc15195a458555080277c3e332982ebdb15e105..4452ab23cd5ee53ebb43f3cf05911155c5a27c7a 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 f4e5998c037546c8725c635769614f998239409c..3b429290f7c8c487828767fac054ae952bc3f596 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 fff3582f7dfbe91c2f1b3e98c887d659db90b004..6b50ee1426ce52ff003860dd562d30cdf25ebb9a 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 a13009407eb9fef36c36de57414bea29e545ce16..5d13aa7daf42a0b2092510feecb5bfad162129a3 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 cee86f456859f080c3eed13b64a4c6871828d149..658ba1700f2628ba923dfca863a1454f9a37e505 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 0000000000000000000000000000000000000000..820ff385c107f627d3d7a6f2ee67da28b6768dc6 --- /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 7cce08e733d8ada59b0919275e70427105063f78..f21c171ef6096c3cececf286c525e358e0154f90 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 f218767c55efa03146312357cb57edcce9bc7159..69db9d74ee3449f061fd04cb47b25626b651838f 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 7cd244c9ea4f52cd58d656261a50cb919d591a3d..8b7c2121bd791336e45b13635b1a7050ea7fb97e 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 87f79583c3b0370f6f379bce063e31f5aa585ead..8e591487111b9b81a226ab30a0e81f9650dcddc0 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 886a77bb714a7d1c33b50a524e518669211c66ef..66f68c066c8891a82146cbe22260174902c3a1e4 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 0000000000000000000000000000000000000000..16d5eb69cb97929fea0e283df403be4a131674a3 --- /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 556582c34f7918b67d5437c47672438c18a5ee3c..5529998803cfd0f1fcbe153d382a246a03b772d7 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 ced5262f5d2583458b712672059046a5fbeeb29e..5cfbb7bf5a483ac13ea14ead7eea8a5244b0db71 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 52f2a0ff924c85a2b42076bad4094a2a4a06021d..2bb2960afbf10ac5f9b84aed0cba488a95a309c4 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 764ee629dbf6636a988d676a07163a0527cf1116..e7aace763a1b77e9e926c4926cfdb6d188ebc1e4 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 c140e1a46e551377d7bae8fbe14d7961b3d788b9..00f58750408b38093afd2b978d9217b4f86118a2 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 857f77bbdaf3f4eddfbecff8ce96a18af94add7c..c5a977d741a7a4918c98bffc9b6b34329e2317c7 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 89f1682592aad5070d5beb520348a036564df96f..132e4a0fca289486afa6081253e73e31d67d0e25 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 badac0887a1a011b0070ffdb9a540e1da9a2f60d..1e76e769937bba3164a251c99614bdf9c25757d8 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 b28f66aaad708b775ce450213f6f9e68255ca6e0..77c82f1737c60e2b2304c555b1e9bc03b860be26 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 692938884b63324c3e680d6ec2f869a74b06fb01..1211570f9bc53bcb5cc5a4927f1256654c4906c8 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 fa582d852157b3a3fc2cbe7204449345410938d6..2e6d61b693decbb7e63b569aa93817264eeb6087 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 0000000000000000000000000000000000000000..4bc9371dd17b36f81b7e41b7e67591bc51e272a0 --- /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 91e8f1be6ecec8fa2d26dbede2e57a975a7536c6..d02c551be8afb478fb482fde6002e1268d698c27 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 e8bea3ec71c05b27acd67b603c945604e7d4acad..534fd2f0edb12f5c6b064ec7db6b2453d49254b7 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 40ff47b9ee1863fee30ebf1fdf915aa94333e25a..3ebdce2b4820fb8292874bc5b9e98c59a977f818 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 00d7559cd58caa2d58a5599f1df219c94bff31d2..5966d4253f51a6d64c251c5fe1d787554fd7a093 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 10f06e16cf4c8157a57b418913f799181003f520..1eb366d6bbd9530ee6982ea18632c8d4a4b07bbd 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 1a448c74b4779b8cd35d03a0776fea3176ba86d9..2b2fd161ede325e0dd4cefb4d7b29eb16eab8cae 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 eafa0980b4b2ab209d773d15ceefe7bf9901f569..ebeef301e103494569d52a502b0394aa84046b75 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 2a534047ae38e6cd804249de60c7fbbe3f025f81..0eaa9bde14f68ddff3704b88a2f88bf80cac72fc 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 d429d5452345c7fac0b713c1db3e1b40e7eafdb1..a60c3bef0daacf767c2565cb7df23f9bef54977d 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 da76d7f16db17710d8e05a6efa21fa8c7b89e1c1..1932ec3d93bc0ec35b0658f7c1f1c408e50b32f7 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 2acafb0be636044208dc8ecd40fabc9a654f9992..e91c08c30b77f3559cf0d071f797ba9b79f293eb 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 3c7be51554d8d5234348e64ee623609b25c6bf37..d1c48ce44ed8338ae812d67414ea4dbf18c4f5a7 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 7b045a41cba1ee90036f809b4fa61c360584a7f1..0000000000000000000000000000000000000000 --- 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 d48f1eb851b78e0fcb7ff0db65bed6676d672faa..bdb9911d36508083fbcf10e92763837c10b1f45d 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 e4d9541673a69ce55f4194b3dda6181c58d5166e..bf4d96c6fc4ecacc2158855e96d93ca08cfe0752 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 ef28180cc3b20b368800cddd7ab6cc080faa048e..cf0b5db81f620989e619e925a2ac6828b9d3f341 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 02a97dde4e2478e0009661ebae5595a02e5847ba..cbcdc0ecccd77815ce17b074a2a5007f966bb79d 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 c6609814ea0bd4e309493dfa1d91518b1f8603a0..7daae31a468b20475fbae6bce5136819e1a97e3f 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 83848671a3e5d86fbb2ef95bb5195b6ecce222d8..86eefc395569001f5b81761c51718b26159654fc 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 32aac686043c9b42fcf6cd230e86fc4785720fd0..8af7888f74bb30234932b01a3e8dbde7e7d22d95 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 765f0e9e5a79d4cad34bccc79ee56be35f942c63..249bbe0d8fb7036118823bbc605aa22acc08a92d 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 fa2b54d0e8a1446a63e25f79b5c74de61a46edc1..19386b47794263d2915097885ae4f4111a13856a 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 2df1e1e3b3b5141e945a215cdb47263414f4fcec..0fb1b77e708147522b4dbaa5a244595fc8117b8f 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 d7072e961635a5892778f3f01abc784836544295..5e26b6c1cdb8ff13474412fe7e4a44d0a898ead0 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 faa895e2e309e5baaccaa868fe734a7d305ac130..26ea4614920393bf68557c5fe958a0982cd699c3 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 c7932a132d75bffec56bef38e62a27fdad6d95e2..2f5a4ebb43f2eea3f48041d62ab67637b1cf3505 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 55e95c0fc15660e5e4c886b17bbe32ec6cf2ebdf..8837566b13d09f9d551f2d01a2e95ee4ed42e831 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 ca9f514eace19f3fd2e23b5d5b7aa00bcccee1c9..364949b2241650d76e3559a7796c663beb8c4eea 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 0a07e97270c41697584fccda419cb1f503dac42f..de39c8ecc1cb6fdd1a200731523627fd82ba7c08 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 25292a4408f91f8c48d40bdb70277fcaa93a8d23..37ccbb1425ff966bdf95accfa265cb26a64438fc 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 1f85f4423548446be38e18870ad1532f1351c80b..6b9af119859eff111265b9a2922a6ee7a0eed20f 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 a0fcfe811024b1a99ddd15d4fa26acd859b3a10d..0c151697e8979e602344930d5e2a075b1bdca95d 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 10b5bc0c117de672d45ec6817a6aa0116615aca2..9aa24738c37924563ddd3235fbcf3db9bdd95852 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 1008d3e8e983cd0c63340041166c4399a76508de..ca6d6240688aa82637c9b62266a3a264d558893c 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 54d07e71f42a1917d4359fcf74bda20b5d48a135..c3e8efae7fe9d589b7f3be0720dadd73a45005d2 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 ef10bfed9b66d8aa62c96a9056e8693be078a0e8..2b79718809ff239680abbcec18aed0881f8a01b1 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 ecb7d9bceec61d065d515873c3ebd10be8cf8de7..f81aad4e2af188fcf9a5c0fbd9907761aa41aac9 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 ec803f2a9c5203527d57cc7c8dfb5ef8643853ee..52b9a57c00b27ff02d792d78fb63cbf359230358 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 1a125de0a8726efdb2367d7dca659aca48d23b8e..e840c6eeda0a0bf110bdb18e734455fd450953de 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 0000000000000000000000000000000000000000..c330aeb0092c2d3681d5f34273bfdb7bce06596d --- /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 0000000000000000000000000000000000000000..1cc57e6a54a2d65ec1b779fbbf2d27dc05037f05 --- /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 235d4d16a405ec8f3e1d454adba485d697234208..9dd7eb2a29941330ed7b186c0c712af5f6c44787 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 191ec84f87bfc701b88a098ee9d8bd6d176805ff..452cb38f126a8b686493d2248808e4998403b8c9 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 836df2de292d095541d689ca4cf4b9a9c731ef44..0000000000000000000000000000000000000000 --- 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 f675febafb5663a117674121d0778bbb43532b09..86a963bdac48c314d71041ed9c60c25e102ff6bd 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; - - unpackPhase = "true"; - configurePhase = "runHook preConfigure; runHook postConfigure"; - buildPhase = "runHook preBuild; runHook postBuild"; - - installPhase = '' - runHook preInstall + src = fetchFromGitHub { + owner = "sddm"; + repo = "sddm"; + rev = "v${version}"; + sha256 = "1j0rc8nk8bz7sxa0bc6lx9v7r3zlcfyicngfjqb894ni9k71kzsb"; + }; - 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 + patches = [ ./sddm-ignore-config-mtime.patch ]; - for pkg in $propagated; do - addToSearchPath RUNTIME_XDG_DATA_DIRS "$pkg/share" - addToSearchPath RUNTIME_XDG_CONFIG_DIRS "$pkg/etc/xdg" - done + postPatch = + # Module Qt5::Test must be included in `find_package` before it is used. + '' + sed -i CMakeLists.txt -e '/find_package(Qt5/ s|)| Test)|' + ''; - mkdir -p "$out/bin" - makeQtWrapper "$unwrapped/bin/sddm" "$out/bin/sddm" + nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ]; + + buildInputs = [ + libxcb libpthreadstubs libXdmcp libXau pam qtbase qtdeclarative systemd + ]; + + 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/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system" + ''; - 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 + 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 - - runHook postInstall ''; - inherit (unwrapped) meta; + 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 0000000000000000000000000000000000000000..aac09dfe876b52649d8beebe27810227c5677589 --- /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 fca84199e5112fd52cdc20ff784cd7b7914bc0b2..c75a8976b3fa0eb600495f2b3290a6e4680a7a49 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 0000000000000000000000000000000000000000..f2f5f1549930757913f4b0a6d4053a9c069bec6d --- /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 a46b52436a379a6322b2eb1eea59c47af31f3be6..214b435429ae4add0978ed94c58125c0c106b3ab 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 0000000000000000000000000000000000000000..360d373f0707b03051c3b486a2fa1ecb87c077f2 --- /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 28b6b2b85ad4de75a973e3736a2d74ef36d3aead..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..6f8440f7b1fe9f1211063740f14471a01e510955 --- /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 15230a7a0000e7699bdf76d9bf0fec17e9d35a38..39be7f534060bff83628b98bbde0fce39ec4fd80 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 }: +# Unfree version is not redistributable: +# https://dev.aseprite.org/2016/09/01/new-source-code-license/ +# Consider supporting the developer: https://aseprite.org/#buy + stdenv.mkDerivation rec { - name = "aseprite-0.9.5"; + name = "aseprite-${version}"; + version = if unfree then "1.2.2" else "1.1.7"; - src = fetchurl { - url = "http://aseprite.googlecode.com/files/${name}.tar.xz"; - sha256 = "0m7i6ybj2bym4w9rybacnnaaq2jjn76vlpbp932xcclakl6kdq41"; + 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 ]; - 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 + postPatch = '' + sed -i src/config.h -e "s-\\(#define VERSION\\) .*-\\1 \"$version\"-" ''; - 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 + 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" + ]; + + 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 ''; - NIX_LDFLAGS = "-lX11"; + enableParallelBuilding = true; - 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 0000000000000000000000000000000000000000..391d098625c55caf5c1a232d0e644e92253c13e0 --- /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 e9546c16d62b8beddae0567cae6a845ae0fd833d..6ab881f227535b34845abca05e668013a79d78b5 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 60bece1fafc4a2d4f3a2996ebbc9d09926d169f0..6a5bc3e7b0f8ee8e516c2a7f6d35bdc9bee9a24d 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 8ef855e48c8d2fa39088942bd489c62da62fc4dd..5ef29081cf0122e0bf3fe419497828ea562bfd7d 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 fddd9e4920b39255faf67d9e7e9a4bffbcb21ea6..0aeaee2155a78326be257b1d54198194e2b5b6a2 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 ec56667a4ba6f9f22333b47f67aa8b9e8bf2f367..9d5848f02637769433610ec271b8987808474fdc 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 556bf83fab72f4aca31ca97814b5b452aacbf90a..44116fbac0c1d96028eee080816345827f8f874c 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 ed96e689283326918bf04f374460f3f81409b52f..0ab11b5bf2043fbc15ebaf2542a57e36d8115b5b 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 56ba5ba9710b4437587f59e2f7eb4e8a34066ee2..673b590f56eb8322c47131225f8e1003ec7f8d48 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 34472bf863771ec132891fe58c8775b6acb0cc8f..f0c4ca87aa23e0518860fc4a4e1505ad988223d1 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 9849b65c8c5291586dcfebe4de8bfe45aa0048c1..9585f3278211d1f9a260e4bf6f571965f53a6e83 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 b4fb8d1937dfc574929c3a6d56233f4c78ce07b6..634c654d58fcc15e46ec7daec3765368a355aa57 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 84a52d169a3b35670b8cffe9da362c5fbeaa33e8..463d7fc7e159d1b9ff0c54b359af2ad48cdb1228 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 a2c73907115cf728d0918655e613052859472ae9..ce335a5d4827b8735aeaf1519c9afa6602753702 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 0000000000000000000000000000000000000000..39e7d1abf386c61fd3e4e8ae9f6ecb29bde7f8b4 --- /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 c1291126a1e915f05aa42a75655d4f7f5ca225ad..ce5522571339f6de792fad241578c9c1db985a5a 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 df34a47a6b3c57d73e39d6914492807d91a10344..6f998300290a6e0bc340b378a7714df371d3ad7d 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 d70b9955c9821befd568e039c0c166a0996e8d7d..f0d120dd8030ab293fa26c3a11ef8737621ce726 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 e90d6cf210d7f024c462642e5523077e7891ac42..05ddfbf6c16d9a8db90f3102647d9648ce8a3dac 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 082301e254b80a70ab49ab3eb58438bed1425383..3db74fa9d4f4f054d09ab671459844a1ca08e519 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 { + 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/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 = "20170201.347"; - src = fetchsvn { - url = "https://beta.visl.sdu.dk/svn/visl/tools/vislcg3/trunk/emacs"; - rev = "12128"; - sha256 = "0lv9lsh1dnsmida4hhj04ysq48v4m12nj9yq621xn3i6s2qz7s1k"; + version = "20170911.610"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "cg"; + rev = "f5d74973d2cf19fd31db485ee6bfaaebcf96af2d"; + sha256 = "0bmydpv3slv5fvy1admgsm1qlkfp4sdsd0caik48dn7bnghifggz"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/cg"; - sha256 = "0xj4yqjg0r9m9cvwgs60lsid6qm1fi8lmb068dj6xaga11n70si5"; + 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 = "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/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 = "20170315.709"; - src = fetchsvn { - url = "https://svn.osdn.jp/svnroot/dic-lookup-w3m/"; - rev = "96"; - sha256 = "17g0bl94qmzalh3m6r6q10q06864d1h1nx5i7fddsamakmg89ziw"; + version = "20170803.354"; + src = fetchFromGitHub { + owner = "emacsorphanage"; + repo = "dic-lookup-w3m"; + rev = "79aca5eb9c78e67cb85a386060d48113caad5ec3"; + sha256 = "18l2s37bnnzbgw22mivgw5isxck2y0n3nk7735r4ir5y5wqx88mr"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/dic-lookup-w3m"; - sha256 = "1siqrarpyqjh1h350dsyca993fy6qin4apgyjm4vpp6awip8xfp0"; + 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"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/face-remap+"; - sha256 = "0vq6xjrv3qic89pxzi6mx1s08k4ba27g8wqm1ap4fxh3l14wkg0y"; - name = "face-remap-plus"; - }; - 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"; + 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/faces+"; - sha256 = "0k3m434f3d3061pvir0dnykmv6r9jswl7pzybzja3afiy591hh92"; - name = "faces-plus"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/2370fdf6421dc518337e04bd2453a5f74e2df2b2/recipes/face-explorer"; + sha256 = "1jfidkkizgwhkkrgvrmq5vrx5ir4zjw4zzc2alw9gkjn1ddq22q7"; + name = "face-explorer"; }; 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"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/frame-cmds"; - sha256 = "0xwzp6sgcb5ap76hpzm8g4kl08a8cgq7i2x9w64njyfink7frwc0"; - name = "frame-cmds"; - }; - packageRequires = [ frame-fns ]; - 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"; + 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-fns"; - sha256 = "1wq8wva9q1hdzkvjk582a3fgig0lpqz9ch1p2jd6p29kb1i15f5p"; - name = "frame-fns"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/1e83da89eeee834cc14c0b128d55ef3634f76fd0/recipes/frame-mode"; + sha256 = "0ch58x07fnsx3v3r9cvcmqrqws121m8achjilhqk988hkg7y47c8"; + name = "frame-mode"; }; - packageRequires = []; + packageRequires = [ emacs s ]; 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"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/help-fns+"; - sha256 = "10vz7w79k3barlcs3ph3pc7914xdhcygagdk2wj3bq0wmwxa1lia"; - name = "help-fns-plus"; - }; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#/help-fns+"; - 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"; + 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-mode+"; - sha256 = "1pmb845bxa5kazjpdxm12rm2wcshmv2cmisigs3kyva1pmi1shra"; - name = "help-mode-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-mode+"; + homepage = "https://melpa.org/#/helpful"; 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"; + 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+"; - sha256 = "1jx0wa4md1mvdsvjyx2yvi4hhm5w061qqcafsrw4axsz7gjpd4yi"; - name = "help-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+"; + 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"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/misc-cmds"; - sha256 = "0bylb84icddgznmim18fwq1mhh3qz8yh8ch6lpadf9p3h420qgcl"; - name = "misc-cmds"; - }; - packageRequires = []; - 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"; + 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/c2cbbe5a718ec961982a7f65de8f6ec1c9513696/recipes/misc-fns"; - sha256 = "1spjbkcac33lyfsgkd6z186a3432x9nw3akmx194gaap2863xcam"; - name = "misc-fns"; + 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-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,42 +55809,45 @@ license = lib.licenses.free; }; }) {}; - point-stack = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + point-pos = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "point-stack"; - version = "20141225.2110"; + pname = "point-pos"; + version = "20170421.932"; src = fetchFromGitHub { - owner = "dgutov"; - repo = "point-stack"; - rev = "86b37666882398f4db93f3aba0ebb7b7965032cd"; - sha256 = "0nqv63yy0qpxhblzmkyvla90p9a7729fqxvhkfld9jxfqpgv1xyp"; + owner = "alezost"; + repo = "point-pos.el"; + rev = "442bccb40791832cbc2d6f5c8f53be745aea2b73"; + sha256 = "1p56h8ipgrd5433pc641xccdnsni51l58ll0hv2rp9aqjg9nlgcr"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/bb3c9e6b3c583f098f75462b4d48cd137a1bcb76/recipes/point-stack"; - sha256 = "0201gka1izqgxyivan60jbg9x1mmsw5dscxacasg97ffsciwbfr9"; - name = "point-stack"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/23a1e835155fba51f595c10c46487a4c269f43ff/recipes/point-pos"; + sha256 = "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync"; + name = "point-pos"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/point-stack"; + homepage = "https://melpa.org/#/point-pos"; 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"; + point-stack = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + melpaBuild { + pname = "point-stack"; + version = "20170808.958"; + src = fetchFromGitHub { + owner = "dgutov"; + repo = "point-stack"; + rev = "76e17311e3a810314c7d31ac46dc55450ff30fa2"; + sha256 = "1sp3djnyg3f5ci43m4pi0f6clblrz5lrnzc415r87csbavqqgv2z"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/ce31bd8f9a1ad4f3252f8cd4ef15984495df18bd/recipes/point-undo"; - sha256 = "0by7ifj1lf0w9pp7v1j9liqjs40k8kk9yjnznxchq172816zbg3k"; - name = "point-undo"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/bb3c9e6b3c583f098f75462b4d48cd137a1bcb76/recipes/point-stack"; + sha256 = "0201gka1izqgxyivan60jbg9x1mmsw5dscxacasg97ffsciwbfr9"; + name = "point-stack"; }; packageRequires = []; meta = { - homepage = "https://melpa.org/#/point-undo"; + homepage = "https://melpa.org/#/point-stack"; license = lib.licenses.free; }; }) {}; @@ -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"; - }; - 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"; + owner = "itome"; + repo = "smart-backspace"; + rev = "a10ec44ff325ec8c4c98b1a6e44e89e60a9aa4ac"; + sha256 = "0p19qikalmvs9y1lws08mxvh2k8s219mpm3nyi9aqq62ryyfwf1n"; }; 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,42 +68945,45 @@ 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 = "tide"; - version = "20170412.541"; + pname = "tickscript-mode"; + version = "20171101.108"; src = fetchFromGitHub { - owner = "ananthakumaran"; - repo = "tide"; - rev = "9b6599246679d7d09c97b44d3d4375d4e895f061"; - sha256 = "0j5n9wn596ayqyzymr0p20mx8cxp5pzz6362nicr13s0rn7bz4rv"; + owner = "msherry"; + repo = "tickscript-mode"; + rev = "45ce0b4f8f18ffa00a4fd2ab3823118f69b94653"; + sha256 = "0w6gh6nb81c5jp4px6xx5d3wmwgkh6irzwgk42g0mkhjifzm83ip"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/a21e063011ebbb03ac70bdcf0a379f9e383bdfab/recipes/tide"; - sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1"; - name = "tide"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode"; + sha256 = "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54"; + name = "tickscript-mode"; }; - packageRequires = [ cl-lib dash flycheck typescript-mode ]; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/tide"; + homepage = "https://melpa.org/#/tickscript-mode"; 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"; + tide = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, s, typescript-mode }: + melpaBuild { + pname = "tide"; + version = "20171009.1142"; + src = fetchFromGitHub { + owner = "ananthakumaran"; + repo = "tide"; + rev = "d4a86487475b08adcbc1974c3362ce247d65a381"; + sha256 = "1f0l8s50ihhl4w00q5f101g9bfn9zssh4ippbchfdz4ialisyk2y"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/bf079dbd04675ecd5f511b940d7cc5f80ccc94c4/recipes/tidy"; - sha256 = "09xb2k3k99hp3m725f31s6hlaxgl4fsaa1dylahxvdfddhbh290m"; - name = "tidy"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/a21e063011ebbb03ac70bdcf0a379f9e383bdfab/recipes/tide"; + sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1"; + name = "tide"; }; - packageRequires = []; + packageRequires = [ cl-lib dash flycheck s typescript-mode ]; meta = { - homepage = "https://melpa.org/#/tidy"; + homepage = "https://melpa.org/#/tide"; license = lib.licenses.free; }; }) {}; @@ -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"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/80c7b1e01eb23f2f9b71fbeeea7d54ac36bae992/recipes/zonokai-theme"; - sha256 = "1hrpgh03mp7yynqamgzkw7fa70c5pmyjfmfblkfhspnsif8j4v29"; - name = "zonokai-theme"; - }; - packageRequires = []; - 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"; + owner = "cyrus-and"; + repo = "zoom"; + rev = "d92ea444df6f6bb6cae92242f3269582d1b8ab40"; + sha256 = "08riz3dd19c1dixm3c6j5dkkwjpgcib05pxq611w8z0mgsn0hsc5"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/8b528544841995045fb1f8344aaaa38946bb3915/recipes/zoom-frm"; - sha256 = "111lr29zhj8w8j7dbzl58iisqxjhccxpw4spfxx08zxh4623g5mk"; - name = "zoom-frm"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom"; + sha256 = "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls"; + name = "zoom"; }; - packageRequires = [ frame-cmds frame-fns ]; + packageRequires = [ emacs ]; 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 818d1058ec873ff0daac1f9a5ccf81f0a1de6cb1..51b9facd111df1a66ecd967a686927f3de5eed4a 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,108 +4085,66 @@ license = lib.licenses.free; }; }) {}; - checkbox = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: + chatwork = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "checkbox"; - version = "0.2.1"; - src = fetchFromGitHub { - owner = "camdez"; - repo = "checkbox.el"; - rev = "2afc2011fa35ccfa0ce9ef46cb1896911fa340d1"; - sha256 = "09ypxhfad3v1pz0xhw4xgxvfj7ad2kb3ff9zy1mnw7fzsa7gw6nj"; - }; - recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/81c4a9d10238836865716f5ea45f8e0e625a87c6/recipes/checkbox"; - sha256 = "17gw6w1m6bs3sfx8nqa8nzdq26m8w85a0fca5qw3bmd18bcmknqa"; - name = "checkbox"; - }; - packageRequires = [ cl-lib emacs ]; - meta = { - homepage = "https://melpa.org/#/checkbox"; - 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"; + pname = "chatwork"; + version = "0.3"; src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim"; - rev = "ed2ccea3d827084b3c80afbd5d7b9345f31243d1"; - sha256 = "03nvmrwvkadab9yp74d5msfxd01xjj1jhqxymisj6jnhgv421yi0"; + owner = "ataka"; + repo = "chatwork"; + rev = "fea231d479f06bf40dbfcf45de143eecc9ed744c"; + sha256 = "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/157a264533124ba05c161aa93a32c7209f002fba/recipes/chinese-pyim"; - sha256 = "0zdx5zhgj1ly89pl48vigjzd8g74fxnxcd9bxrqykcn7y5qvim8l"; - name = "chinese-pyim"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/77ae72e62b8771e890525c063522e7091ca8f674/recipes/chatwork"; + sha256 = "0p71swcpfqbx2zmp5nh57f0m30cn68g3019005wa5x4fg7dx746p"; + name = "chatwork"; }; - packageRequires = [ async chinese-pyim-basedict cl-lib popup pos-tip ]; + packageRequires = []; meta = { - homepage = "https://melpa.org/#/chinese-pyim"; + homepage = "https://melpa.org/#/chatwork"; license = lib.licenses.free; }; }) {}; - chinese-pyim-basedict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + cheat-sh = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "chinese-pyim-basedict"; - version = "0.1"; + pname = "cheat-sh"; + version = "1.7"; src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-basedict"; - rev = "f13b6d20629a0b691ead626cca249b227622fa83"; - sha256 = "1ddld5jkhqarm31p6qjdvdha36k6yqaz3jzg3lyzd0nkavcmdq57"; + owner = "davep"; + repo = "cheat-sh.el"; + rev = "6409bb66241255cc9a0362f2acdcb0b34344f9f2"; + sha256 = "1nmsja1s45fs93v2vbalfralixvzp88rgv47vf9p80i7x6w2149m"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/e2315ffe7d13928eddaf217a5f67a3e0dd5e62a1/recipes/chinese-pyim-basedict"; - sha256 = "1qmr71lnpn06mcbb6gfr3dh78pav0sk9mld956cvnkg82vg7nmpv"; - name = "chinese-pyim-basedict"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/ebac62fb3828d81e30145b9948d60e781e20eda2/recipes/cheat-sh"; + sha256 = "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80"; + name = "cheat-sh"; }; - packageRequires = []; + packageRequires = [ emacs ]; meta = { - homepage = "https://melpa.org/#/chinese-pyim-basedict"; + homepage = "https://melpa.org/#/cheat-sh"; license = lib.licenses.free; }; }) {}; - chinese-pyim-greatdict = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: + checkbox = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: melpaBuild { - pname = "chinese-pyim-greatdict"; - version = "0.1"; + pname = "checkbox"; + version = "0.2.1"; src = fetchFromGitHub { - owner = "tumashu"; - repo = "chinese-pyim-greatdict"; - rev = "11cf5145710349e9d928eb9197bebb426025fd58"; - sha256 = "1pza690b31ynyj31f1gp7y2d29ri3swcblpzd2pcpj3ynmnbsy3f"; + owner = "camdez"; + repo = "checkbox.el"; + rev = "2afc2011fa35ccfa0ce9ef46cb1896911fa340d1"; + sha256 = "09ypxhfad3v1pz0xhw4xgxvfj7ad2kb3ff9zy1mnw7fzsa7gw6nj"; }; recipeFile = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/03234f7a1abe7423c5a9bcb4c100957c8eece351/recipes/chinese-pyim-greatdict"; - sha256 = "1xqr2fcsb45khavqx06ry2sm8db790zlggk61civbdyafvlz8ikc"; - name = "chinese-pyim-greatdict"; + url = "https://raw.githubusercontent.com/milkypostman/melpa/81c4a9d10238836865716f5ea45f8e0e625a87c6/recipes/checkbox"; + sha256 = "17gw6w1m6bs3sfx8nqa8nzdq26m8w85a0fca5qw3bmd18bcmknqa"; + name = "checkbox"; }; - packageRequires = []; + packageRequires = [ cl-lib emacs ]; meta = { - homepage = "https://melpa.org/#/chinese-pyim-greatdict"; + homepage = "https://melpa.org/#/checkbox"; license = lib.licenses.free; }; }) {}; @@ -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 0e3d3fea328016bd97aa4970381ac8374e3eb5ea..a6108093933d30041a9d5818044f34155a41a25c 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 237b1ac14834a62bef39e7a906b22b467041881b..b01c526aa8e4b213bf4def82f77c314bcdd03546 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 5d44173729db0aa129e05372d198c7437421619e..fd580ae9270c8d54898ef081ec5f690cc2bfd3fe 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"; - - src = fetchgit { - url = "https://github.com/ProofGeneral/PG.git"; - rev = "62ec846fcaaef8f3ae94302cbef2972f88a0804f"; - sha256 = "0vln1bc884qynbl5yci0dkr6ckz3p46q4jrhxgylcx4w0jkhizhm"; + name = "ProofGeneral-unstable-${version}"; + version = "2017-05-06"; + + 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 f830b16da98159ded8db16d1586329e0fbbbf43a..0031ffee4d4d8ab82950d74ce3781452709c19a2 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 092026aca88a2edc9272ba52e1b8c31fc2f5b59e..835cf8081afa6519ec37f432cc5ea1b495d9666a 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 ed3ac0e3da05d6bd81837330eebddbe4294795e8..0a44deb8ced8466cbc34197d29d7227342877d46 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 0000000000000000000000000000000000000000..f80efeeef706b1779ca4f07dbcc9e865d750190a --- /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 79c75e7682051548a5ef512d7b15b0b1f63384f0..af3298a5883ea3abdb800c0fd7d021358c0689df 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 34729783cce4c2d7525d0aa36f71cecdcb295935..70c723b40dae4ac3e0300ebaf68beb70100b3841 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 9334b7820faa59b18ee9f85a49de57d0a65fc0fd..bd00045bca91b7764e266e302d65d965e9e5281c 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 eedb674b472cfb1b9ec840d95976cd0485c306a8..10816e0a283fef44bb2c51e120905c54d7d8a045 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 89235514bb82707c8f36d0d16adba77fb70d94df..b2cf9c6d68dc12afc032e8e6463a477183e20655 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 32998700c23e12c9936321b3aba23632e183b53b..de1e5e4c64bce4710a987fb7fc62559b476e94ed 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 c74e47a5243de90be13d9d2c2ed5a83cf12f7898..dce02b5689064ef92352df6fe2586166c99e207f 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 17bb9739b9b717d8e63eafff463db17cd2460b70..5c0f2ee18e1f73c15eca2de8ef6e737b42105246 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 24282b9ac8e082ffeefa6b2955cae0f62fca96e9..4671df77554f5befc584aa949bd5adea65df4d25 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 4455c70d71a8036dd14f42bcc2f305081b4a3666..112eebfaf6f61f48c3e5dfaf318155f8bb9c7940 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 26b4d3833f3162883c59adad39525073d6474673..41ad3164d6a6718227c5a6851b9526f2fb7ffd8d 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"; - 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"; + 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 = "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 0000000000000000000000000000000000000000..a0479fc911250c1baf5868210864511e53547b85 --- /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 0000000000000000000000000000000000000000..14fdcce1c8e583cf9476d8526bf61abf0fd45918 --- /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 c8aae34e6c48e7793e96f7e312f6fa3948feeb99..fac18c0b12943b78925888bb597ed2bbd2eb51f7 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 facd1206a00ef2a319ce4692e3bd0216292635e8..1a164ec08de973a39e31abe1db9616d22730e77e 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 f2b4fc32fe4c312719d83931e41a328c091f7b9f..78881b21018ccb244e0cf830ac8daf7cc71aab99 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 a5914c92e8f910f446b15748c9c7b027f7f98406..259c319c70ff4f6cbacaed2c479c26a33dfc3954 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 055816a798d34f9960aaad0c729d060ac678393f..dd3fb542da7c404ca4de4396b4541a2ed96eb45b 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 81f9ddd96d29f26837b588e89b3ce027501b3a88..b05bbd053c1fae16c7d3ce311b9a3f3c8ebc51e6 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 b8bfd40c079ba2ea3ec26a763ba7c710d4ed3286..f4bdee830e199ffc79f6de19385c00878d58a292 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 0000000000000000000000000000000000000000..a1506eb9d6ccf3e0299992aa097dd79f4c4aaf72 --- /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 44c61d16ec8db7d25d7267837b89f6d892c7f492..53ea9741c03ca831b79c35ef779a08cee5adf10b 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 bfc3b7c79fafdc0ae46dc197054a44a6d57035b9..441c157a34980bdd155f67d335a9129b409908f7 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 3f2058af1336c0c5da176b9ee09f4c9cc374d88e..dafd4e6f1204fbc6fa793b57cbfbfb32b51678d7 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 487d9c842b8ccef5cca93e511fd19f1bd1d36427..cf4ea9df544e64219a31c46ad97d8934a94c3574 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 26f2a3b69411cd00d596411e029b072e65514da6..48f7b29f407fc7cc236ef2796caf5aa8bdb13da3 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 88100b2e8f87f0058998b2d55a2e2df46f90cbdd..327edca0ed24947bcc1027142e1cc42acd915159 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 c3ed45a784815cf66bd9632d1dc14c61083b8441..fbb9c63a1cff2844cb6c116318e71a8e4c75bd07 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 b553e09ed5e2c8256e2c6151652a6970c9f4b874..6d1bba8c4d5dd3d4d46df014e5be7cbad3152918 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 c9d86561fe26df63f8f1268db4fa8c98fd89ad40..0bcbad58b3a2eeb70f5d05efc4216bc5feef1fc9 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 5fef166e663f54552f2601e1528d31a3d6a72b0c..a5049e4236b3c51f620e3997578535a06e8b0fba 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 a1ec84a5475c75589b9a619bf2a82807cd1c0b40..24cb6a246977748da6e80597045d02dea2188b61 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 d02a08a0a5977eb7dac76979ead6b718610141fb..61b28e02949ebcb588c3cdca3586721bd47c2268 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 0b8ecda62302365f7074f10b0a2e7bc3e0797107..1ec24325460ae109f8bac3036aa737a3a9d3d1c5 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 a9f236a57ae7b755d29ba114c6d17eed5c2259ec..a6d624d4b1ec282d71ab26ed605db728f54eed22 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 a3f58012e534bf39406a8bb6d8decce4346a96d0..1c5730838ff1f3d805aed104308a8abe4fb9a969 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 eb6e1baccb597487a2cebb89e12a2ffa3798b07d..76c8e4ae0e44365b65650a05631e3e51ff0ee55f 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 d1fa03c54796f5b7a1c6de6e1589513bc7e833c7..db74a58da43ee41fe6969788d61e69841b2a3da0 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 0000000000000000000000000000000000000000..fe90250d415276a90530d3bb23b6ffc3282fcbb3 --- /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 be518b9336a84bc234fa3c52034b65632387c0f0..d1c0ab274f061d006bb108d0f189979c70ee9914 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 eb0be39e7c16f98cad99388928d00cfe4d0fbb5c..e55bcb48787fc1416cf0fb0d4072561a6baf4ddb 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 0000000000000000000000000000000000000000..0733bd796656ca1c54f47342067d75ffb3de72f4 --- /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 876bd145b725f8eb1ba2a32231b473a3717673ee..273ef33250fc0e496a3cd926da28841d6c10d4d7 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 97bf0d5c237174a761e7473330f604b5fbfb430c..becb5ccc29a188a2644100f8b793f96fa6018390 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 1d661014c772a9fe51653b7302ae541822f56fb1..1b1751e9b1d8a1accd0377914c3394bbe2b01d86 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 3f588fdde585dd8fd13a555a0849a03169e3e041..0f81b0bdd640085626a1939de1fbc77d9a31dca8 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 8c9a725ddd665e2500f6bf388c0cbc41f7f83662..2f110749277cc43a04f0eea36b53079885365647 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 a688170b8ad44de0fe8a04c13956661568cf6ce7..144fb5428a51ed4a012a133a9a964158bbf828d1 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 5e98b3c9a78566c639b2eea3791ae86c39e56d40..c23bf360daf3f4cf99eb3c548fb72e59ad95400c 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 291c7b1b412dfc70e13b29a1d6e3e2a94ac9657f..eef1746ff380b39750f9b9b62fd3c8edac755970 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 0000000000000000000000000000000000000000..c54c8a4277f1ecc584eaaccf330586ac132055d9 --- /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 3d710296219c54a668d2bdd599e5c6cedca29795..23bcdae5fb21b22258154a66fcf899f4c06453fd 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 de423987c02bdc536f4b4c00f1c852a11b2eafec..ad294480e60b7707cfaefd31f529dba3f9294c2b 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 58971b3199bfa26e8aa8df2683d73020deabf36c..7213b22c949b89561e2c846249d59d14e47472ee 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 790997e328b4bad861470f0ffd66a77b735ce54d..3382bb3e56d7d8d3f0d897a96fd218c874af9e2e 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 d7dbaeb1fc21ee918de9471cc6ea0bf45b339d77..a008835f59fff35f1aef8ff089a4fca2b0050521 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 83f725622d7af2a35fc1286f29b30a4c1dbdcc68..4d229450a4a72e7b0c29439e84ec3f4dba47be52 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 2ee7f3bb160f267b182c8516e138b92b0a7273f6..f2046f0d912afba4607ad016169010d52e75066d 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 58a88e89681699f87b7ffb719b6f51f453b72d17..35e4fb989b3f73fbf0981e910238472663122a13 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 332bb8794e713ff425b62181036e4c02a2cc7cd3..f0b4a991f74ae42a60607fa241ea75db724970b3 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 dc974aed05717e1f79d28b16436de35c4d959e78..2d42a479999ba65a10d53952dcfe70bbdadd2864 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 2bba73fae1a7b187f7f4e6f10c244500dd6847f8..990fee8cc37c94f85036264c2abff1a1da2a1ca5 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 a9b2eb1163af7736834c7163af8470a4bdd61e7d..9b1dd4c25aeb576c71e779ec5798df19fcb20cb1 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 0000000000000000000000000000000000000000..72d367d8fea212f3017379c89b2dd028efbe6092 --- /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 0000000000000000000000000000000000000000..31ee0ff0d07bb6da0e6345c89bece3edd8cb5f4e --- /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 0000000000000000000000000000000000000000..7af7c8986f2fdbaeeca1197ebc7f2df57e7a1e42 --- /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 b89e18ed148c163c987eb44b61534a70f523c4e8..f190b421b0566588832d991c2f1ece550dc07e71 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; + }; + + 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}"; - setSourceRoot = "sourceRoot=$(echo */Sources)"; + inherit src; - buildInputs = [ qtbase qmakeHook makeWrapper ]; + buildInputs = [ qtbase qtscript qtdeclarative ]; - enableParallelBuilding = true; + nativeBuildInputs = [ qmake makeWrapper ]; - installPhase = - '' - d=$out/libexec/AwesomeBump - mkdir -p $d $out/bin - cp AwesomeBump $d/ - cp -prd ../Bin/Configs ../Bin/Core $d/ + preBuild = '' + ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG + ''; - # AwesomeBump expects to find Core and Configs in its current - # directory. - makeWrapper $d/AwesomeBump $out/bin/AwesomeBump \ + 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 a254993a016b6df17dbfd91055f54b3896b47609..74631e88ebfb611b14e66b0453c73a42ef39c851 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 68ab287f1a652aed47f778f98ae0f4b1a86278ac..8c1db9c039e72606f2f5978677df22f64f3a50db 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 8d8e36a8bc892065e7f7569c3ccfb152cb081a08..73362588a57eb9fb1fd7d3563ca6613d14b27113 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 149a2b2b1aca80a860adc6cb10c6296036e9f8b4..0000000000000000000000000000000000000000 --- 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 f117910169235c8c522d1f4e8d8de9fcc787741f..a62940ff7038528420fa1215ff92f182fd92412c 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 0000000000000000000000000000000000000000..80d2b2903678edd499dc6a4312cab04b5560c6b5 --- /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 0000000000000000000000000000000000000000..17334c5b366c4da003b08d648ccac25dbddc8ea8 --- /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 4aeb7a4a567e84a0ab4f7714490f4aa649fd1ede..3386d75e81e19b4625ac7f7b08b232d1881ba709 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 310f81961cbe5bc0b4645e3c5c647d93a8b988f5..097062a8258a7dc62a04c8a1fa9ba1aeb3f7d6bb 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 5f0605bbf87c8a7a3f7b0f195594685a365cf868..2943b5ef94c0e705fa4ffaa927c180e8b1c53f39 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 035a275618cf517ce9812cbcc42248cc202af182..f68162de4e3ebeadfebdd8524c05873675426b54 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 ced6a5f7258a216b92d616caa385f59bf909335a..8ca093b90c3eac984f853810e076d8a600657ba6 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 c58d9e0bda13c3dc9ca58bd8096d5106b4cff28f..80f893e7c3c96597f01e6f98a2ce87e7ffdce62b 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 6d82db4bac1ac4b0ebfca5a599ced170adebc859..e6d8a06a5193020b32d3f57717f7ec1be07761ae 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 b9cf229e8c8671c9cc389580fb2dab203cbb5c2f..3747b802e2316c0e057f378e8bcf0cdd8c6d7200 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 0000000000000000000000000000000000000000..afad1e6c3af07cdaf7fa6fa97a116917be7c3712 --- /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 9149e19819ffa88ce19c674d6aa8f269282ebe98..1e8f0e209c06f24cfe9c2b72987031ee7b405517 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 8c430435dd7a4a78372ec5148aad979cba72c98c..ff87b70a0c1eb36603ae9e7b97b65580ec2b7f1e 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 20a9648e83952d8202e880578318240aa028935a..6b145ca09ee60a32af56d66eb48c86a7b98f95ae 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 ec343c9023861fc623b42b87e71810c8df1a7b43..f57689fd3fa9ef64dfc7bc100a466b31f9a51eec 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 6c892f1bfd4e3f5f9d63e49fae59b26bd29f6d7e..92e6084ce673a506b2275bcce9cdb98d9a6b15ab 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 0a1059c6a47c99a3a168c5542292779ed3abaa36..6fe37d605ae1239ea7414b4b66cbc61e14c98654 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 7e11c9dea3a70fddb612a7d2afcac75e355c0892..86867cd1cca739eae0b26200205cc3edf6ca0341 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 801e9c5f502b077ca97a0af34da78bedc8f12553..a892f98ac4753e34eff96d199803d580a4d8dd4d 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 ee9df683c0a2d20e7947ecea26b2191807b13965..fd17ef69c99227fbf2f28c385d339550e2cc3d50 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 dd375143277aab9dfbd59e44a36583642553c6de..0000000000000000000000000000000000000000 --- 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 0858dfba8b40be6caec21285e47a85e622dfa8af..c8c9ac8f26efa79572627a05df46f2bde019a2b7 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 93894d0c6cb8d4bb4dc91cea8cbe811c4cbd3923..d9e0f42e53e385050d2fcefd6ddadb00c2ff6d88 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 0000000000000000000000000000000000000000..061dc2b69a61a8b60bae1db177fc2ad8fe4953b1 --- /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 29e43a93c985543b5e6d64dacc1945cee114c243..9acd8357cb714243b45ced6d6a815bdd98b55715 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 0000000000000000000000000000000000000000..673361c734e1302632767708152e63980bc1bb3e --- /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 4fdfb87f134ce4b7c60541e8bb4056a4afde3990..90f8eec5993a801f0ffaadaab6cf738b7f924e3f 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 fdcd7636c02e0e1c71cb0b91e3dc757763917d9d..889d710f043fa09c0810cd2148a63e5d4776f635 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. - propagatedBuildInputs = [ python2Env ]; + # 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"' + ''; + 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 4a99d0ea4a17ba9da730ec85bdd605f2b6582a05..2b1b1f8da8a687f47d36a3ef90fe830769d2535f 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 c9587b222d90322d6bc2a11de6670a84be3d3c33..f120f8b13d40516c75fd6ea53cdd1c877cce3ca9 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 ea0fe51cc85a3fe5fc76d7ccbb0af6706897cfda..8f043816ba06d6087ae93ab34a230a3a96702aa1 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 dcd5c28172e418abb433cebf9319a27eb7ecb507..98f92413a767370a95c2fc39674ac7fd0f35ee3c 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 5d0bbcad54fd41a18c7b6f2a212c2eba79e5e18c..8817071e9843100d9a803fe961edfae317767443 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 20c01f77bbf8c26e55e63ae4d05809839d0865fb..eea0e501cb8e495f2241aef10ca7db97bffb1fc5 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 1b5fbc2271b57899ed828733ee04fc0498868a47..ac2a194b7ca4a92d893f39102f885d737e23e7db 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 07789fce3a92bd67769f5494434f250ace7df8cc..d73697673bfe2a840b735c49b050b3a2bf45f271 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 1b082de98bc7c1d9413f5b57ab8cf3099a0183a3..33785a279c7b4aad0ccc934f821ecbcf8a7d7eb4 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 e8c22b37638c93f94d6c3656d0ed745033b63b59..8a2a218d9891c2149efe2ef39fe5e594b9ac5132 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 db5e6e1a7e37cf0a458737ebba5e29e83a4f888d..630834fc9e99976504c3328441a0291902d29bcd 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 669e46c6a8423d9a313a3d23de9b51fe85669e52..ac0060ec7f8e5916d411bef285a3dadefdbd8292 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 3ec25b503ebfcfef5c448eccc11db9eb28a0d753..ac67759c258cdeb89f31ca0ab73dfc505fded1f0 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 44faeea007d6bab44c5f3aadaa02b23e2ff020e4..b4402c7d1043382ccc3c461be895213537828933 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 f3b16a3046081217529246a5faaf46bf739ec1ec..e7a05c522ca2e9d724dcc8ac1a45077ad6772313 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 0973893bbec815c559f002cc10690232f32b5cc2..730f809eef404bf183b7080dbd7eb36bde08133f 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_ENABLE_PYTHON=ON" + "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" + ]; + + # 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 ''; - 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" - ]; - - # https://bugzilla.redhat.com/show_bug.cgi?id=1138466 - NIX_CFLAGS_COMPILE = "-DGLX_GLXEXT_LEGACY"; 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 894667597d850e4735516a1e64955878cdf43e70..1c582df50dead922b05b9ef508c17e50b298fb45 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 5b1f79a6c4fd66c83e1eaa8095a0c331dd5a939c..f7175f9d2b87063dfa57df40d050b373858406b2 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 69bc36dea61c0af7ded2e7f9b8e81f2b56015f10..0d1adcff6e8345f825a99fbe00556f87a224d53f 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 0000000000000000000000000000000000000000..e2eb795fc8e2c144b91efda94927c364284b9eff --- /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 f9b24581929a2cc9a5750dbcf4ed3d6af33a8624..a3c8d805b234836b82fa0cac066d38d60fc5a6be 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 4782376d1e0b67cb26fb7fc0241b50d4e67a2ff5..8ce9d407aade71e877be33a2d442a7c7968d01b3 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 82fa4d5ee95bad365e2bc5b59e42a171bdd18aac..132136da658b761f9c11dda2ce5fbfe81bbf6cb4 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 2023d9486bd85a5a5d60873343f1930097f01f3d..202bbb5b13f4d371aca77fc3ab1b29d963bf6250 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 a66e91631422df12a09bff4cf1f90eb66019f059..12ff5c77240244deef96e52120518c125ffc8e9e 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 9d147a635f3b9101e41504b81d91cc52ac96f7e1..f1a58d4e21b8ef5e39825b448322ec355b6c6a15 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 b7672a39d0df178389f59497a5b9cb85b5ed74c9..451eaae79b2e4ee648324c5ebc07cf0844bc85c3 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 97d04b0362287d09f8a6acdf498b9834d8f1eed9..91a34a505f2fb26c17f6bd0bb7e9e182761bbbd5 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"; }; + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + buildInputs = [ - pkgconfig cmake pixman libpthreadstubs gtkmm3 libXau libXdmcp - lcms2 libiptcdata libcanberra_gtk3 fftw expat pcre libsigcxx + cmake pixman libpthreadstubs gtkmm3 libXau libXdmcp + lcms2 libiptcdata libcanberra_gtk3 fftw expat pcre libsigcxx lensfun ]; - nativeBuildInputs = [ wrapGAppsHook ]; - 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 71e41faaaef56e2e4024fbf1875de4d192c6f1ef..fb73feb4a09971b9784e1c1b88ad60218c70e081 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 be4457c932fa31cc639210f82eac95ab314ff27c..d69f9a676c1b100c9d8049d670c9824fa2f762d0 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 7037e944f3f94dcec7df34abdcb8d4cccd87cdc8..42d129e53887992d5189b56136bf37cbdbf88626 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 a3ca7fdd55df66edba899c7ec0a5469d2675fc1e..20d5629b83a90f1d819156f5c2f9a059a93b73cf 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 4bd80c01c93b687a5ba5b2af9eaf5ef4a47c5523..3ef23142b2ed5ef49c4ef0bd536a6b4f00ee89b5 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 bd19ef3c43b1293ba048e832c726a3d808efefd3..f6994db81e4b01940e777ce0c3ba8b329460265d 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/"; - description = "Scanner Access Now Easy"; - license = stdenv.lib.licenses.gpl2Plus; + enableParallelBuilding = true; - maintainers = [ stdenv.lib.maintainers.peti ]; - platforms = stdenv.lib.platforms.linux; + meta = with stdenv.lib; { + description = "Scanner Access Now Easy"; + 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 de07a4f1a896c90f71bfd953a78e6bb6a7cd340d..ad02e1a80231a71d07573da2cf3760148fb4ecf0 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 6f2b0e34cbb34b00c1eabc2fcca4a7fdfee93720..cffe485711f639640e925d83bdf37accd9b87cb1 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 0c77857e66b6e20209ad50d28bcb01cda51f8f9d..b0a6f7caf8852e3219205af0457e7da2c1083a93 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 3d4e8c592abb0cdb19f7b965c56e87aa6cd87e62..a8b4973203d1897e19448e99ba33ccbff658a486 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 8a24eab2200703e4b8b057a2b6698192ed83d548..0000000000000000000000000000000000000000 --- 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 083fde359029a607ae152d02c6dee6cd1b68c1ca..55c856c19127086e90dcce724f678ba88aa18178 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 ab5a81d6add6cffa756c1222ea7eb668d98745b3..43d6229ab2bc90c57334dd593b4d58aaf01602c2 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} - ''; - - # e587d0e fails with undefined reference errors if make is called - # twice. Ugly workaround: Build while installing. - dontBuild = true; - enableParallelBuilding = false; - + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - autoreconfHook - fltk13 - libjpeg - libpng - mesa - pkgconfig + 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 9993144294527703a91fea71602bbd5798e4e7b7..a15ffee3d4a8201fdcc91163a61d8da33a5dfd32 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 c5b1ae0879b5bb3fac4590850e0c3ea98398ba3b..0000000000000000000000000000000000000000 --- 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 9af46f5cb3581aa97483cf5e10a0d395b17d7886..dcb7c512ddef508c59d646faca87860e8f44b0df 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 e06b76e35b12379b39ae785ce168148f43e37581..1af165368363bc380d3768b2aa8c5de8a2f5489d 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 b1574ea6963b26596ec296043ceaf767ea19f971..3f3c2a32e68edb165923bfe24684449dc9033c2e 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 0000000000000000000000000000000000000000..ce6b6f75f93cff25e058e2c8840daeb0d8e9093b --- /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 830c9e6899ea5ee987c2c6e616c6b680e8c12f90..b09058b60be95fee3ce695267575917b9609fd00 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 ba4b4b50242cd717ef53605115f8be37660612b1..52a17f5cbeb94ff13fddb321f32770fd6f4a49d2 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 0000000000000000000000000000000000000000..72c4d799239cfe8648c263f2dc72deed5ac431b9 --- /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 0000000000000000000000000000000000000000..617c086ad9c9afdf0a9a4b568f5741d857c13268 --- /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 284ed60a9cbd24b45e46cf6648f587627286de74..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..91fd934b1eccad8f880ac6a4648d37c06ea42df7 --- /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 0000000000000000000000000000000000000000..25a835f5ba24365b22c368d531fc403a24276a98 --- /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 0000000000000000000000000000000000000000..bb7dac1b62a0662d3091c7290df74f3a93be31a5 --- /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 0000000000000000000000000000000000000000..9e067f0a0008d16cd26362a6dcfc36e263dbec62 --- /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 0000000000000000000000000000000000000000..3d7bf26c794e3778f1e6fd0dd36c365fa60ca347 --- /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 0000000000000000000000000000000000000000..98d53bc808385ef71293ae42a41b3837dc3caffb --- /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 e1e25b2acf2489ab4b60afb457228833a884dd26..fb631414838cd36005c2e72df63b48131825e4a1 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 bb6803057096bb37148731e13ddd01f7e29ed2e2..3479b6600fc9671caacebe17b07189788e8c41ad 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 92fdb439330da3624818ed0db16231c041a1b3ef..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..485397ec4aac3f46067327d163b74f70c4ac6885 --- /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 827cb34e22e579e1c108b033b42a5c9a063e7e1e..54a834cba002a0d2e7d33c142c8f727b82387078 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 7f436c7a55a9cd97e588a15b99793939a8051811..5580952f40a0e0fc4dd277b67ba32f28034aab5f 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 6515c230c284891dff2ce7af324e47cd530dec99..2570e37bf2c9a50b9cc21e7621a2790f305f4d7a 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 0000000000000000000000000000000000000000..cc1e83f6581d6d580bb0d778ac5b8302caa7576d --- /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 c31b8a865839732b7267ca9539eaa0a3d1a39e0d..b4f190de136c19a11e4de8fac6b2e03e91533e87 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 5dde6d8a64ea02bc45148e32db3475824b754971..aa03425f36a0ab1d3db87863c1fcab7ca74f0ad4 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 71ab51320ab1f8141822fe341f03b9cc4cf1ac3b..a3be5be7f0a2932187f37b99fb8a33129b0a964b 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 0000000000000000000000000000000000000000..5035685c64fb5e773311c012ff674b37592c2475 --- /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 0000000000000000000000000000000000000000..6275bb84c17b08ba15460d127ec53a3ad9451d23 --- /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 0000000000000000000000000000000000000000..9095599ea56b13b08bb275d874efacd713951661 --- /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 0fa06ed0fbe2b32006a542f3db2d8bba50e7d749..3d03d1dea3e72c0a28a8f5c373282fe47bb16a4e 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 0000000000000000000000000000000000000000..8224b98253b663911a9d015ae0d329bbc032c916 --- /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 0000000000000000000000000000000000000000..b032de8487943c09e21869b9634f1c8e35db615f --- /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 0000000000000000000000000000000000000000..b4b0450e78bf00a224dfba0ed715279a98292ec3 --- /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 0000000000000000000000000000000000000000..f2fb6f4d8bbd1877883bec410cfed44bd795ba4d --- /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 cd320afd8d3bc442d5e697d96b679f04a13f0cfc..e6b4f6b6bdd435968b602d3e3cd982a358d4283d 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 2f270d24224f840c3e799ea550a740fd4a360c85..91faaef623a44990d203c4b513a470164ff1f520 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 8ec7591460e76b0beb2ce1dd2bf529a4b8b3ca03..2d902c220afcc2cf02942c79af40ff0273e80191 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 0000000000000000000000000000000000000000..4ac9c9b925afeac52b6a29593e25a91cd33dd979 --- /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 0000000000000000000000000000000000000000..3f6821e08eaec9b090ebebfe9497a9f5830e55b2 --- /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 c1266009b686cde0ce880c61508d14f242a90bde..45b32fbe832c693692420991b8314151776eaafe 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 5143df60ef4410aeeeeb56b406816c88c5395e8f..12b3198a26b2906c6898409e0b5fafcf63ce424b 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 0000000000000000000000000000000000000000..800c92511de218024c0b7f7bc10ab83801262d3e --- /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 e83794c60d818f946c77434b011671eb9abd7e11..daf0a55b19e5f135c450f6b9437fc71e83c1fd65 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 772ebe37e44f18a603aa9cebc7ccd950b102a3f2..0000000000000000000000000000000000000000 --- 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 e50c92f888488b9f16fb1a8bfd6cc2e0de539dff..e5f5b88ec440f183b7311041054c0ae9a2219192 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 5aa974a9c9609c17fafb3850a9d02df5b32f7f0c..2e43e946d7ff0ff16baf76d271eb08cbba28d14b 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 8adcd4d1b472dad2f34bac69a54a9ceb5a55af39..31e578e228a981554d74f7c9d8f426e4930132c3 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 20f81563c3b4fecd17098e79fb8c04359ebc7944..d251eb74f274a341c256072d887a89b70218b87c 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 0000000000000000000000000000000000000000..ea2af2b09509f6b591eb6f571f29320b7c9c8203 --- /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 3c18772f03925b086df266ef6d6cc93b94d81ea7..854e346e2909e1b39e0d689ca3644136cad3cfca 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 0000000000000000000000000000000000000000..6189e8706db0ae767aeeb0dcad4528d9b3548927 --- /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 0000000000000000000000000000000000000000..02c369cc4ee84089e187f3f5027b1b1ebafd8e7f --- /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 0000000000000000000000000000000000000000..1e8a52b55e964bf07c71d207418883b0ff3b81e4 --- /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 0000000000000000000000000000000000000000..0fde861a023783a9bdb113e3a9fc208eeccd50c3 --- /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 97e74eb2e12575a746d9d09a7246ca1b1425025d..eef94fd5eb2406b1c357c2f00a1d6ddea2b8bb0d 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 0000000000000000000000000000000000000000..57741c03ad54773ad7c2232b5b6ab192823558f6 --- /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 c442859822932248aea1f7a6e69979b675e435b7..33813f376a54991a6ec062d7535cb8ce1c01e2b2 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 0579faa72a018cdae9c440cb4986fa92d8bc5aa7..69b629bbeb90f676f757b2b17aa624dfa05a5cbd 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 0000000000000000000000000000000000000000..352bec094922cb2274d1a939d32305513fe874ea --- /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 0000000000000000000000000000000000000000..92fcc238779781d09f2543b22c3771879385f589 --- /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 9f38079316fae9fed412a762dbcd7e818427215a..7b858907795211c4223e080a24e1acca4effcdbe 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 0000000000000000000000000000000000000000..9e42c5710583faeee4d01c1b66cd34d53a03aa8c --- /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 77f795167fc0ba47b53315e127fcce7fdf02bde4..a78da6f48ca2d9a958534ba19ce2a0cdc432dcbd 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 0000000000000000000000000000000000000000..14a8aea5e67ae0468a25cc57fc84be40ede15bf6 --- /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 0000000000000000000000000000000000000000..a19fef9c9edb7fdd5eaca93b6229d08a0179821e --- /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 0000000000000000000000000000000000000000..9f3d5e2ea0190870dafc898982caf5ddb6c615e4 --- /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 0000000000000000000000000000000000000000..acb200c59708c80df5b717464a161f16e200f6dc --- /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 0000000000000000000000000000000000000000..19ce2ba94f30ac8c0db2e6c45dd9360431ed3070 --- /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 0000000000000000000000000000000000000000..4b6b72a373442582b56394613f789dcc3ae0e8cc --- /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 c17b3fdcd8e994ec010f8f8e951c24b8e04cf672..b18a3f7fdc1e4c35e4f6f896e86c401632fb8763 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 6ab653cfce06e48bf560ecc9d5fb13c8cdaa0729..8010c57d9278345125e5027fd718ef925b46a857 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 75d5b6fca65924f5a2c152dd93976b113d6ffa8f..4501324a87178830ed0562ba83d040cd196ef625 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 660090dc84aeffa568c8baa04832442015889e04..bbaad3a02f83b0d41acaa0fb7fb07f6775086584 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 15b6373bdb0233667bc64a53540fdaf10777dbe9..5269941fa113b506bb08b1c9dad7a9d0efc4283b 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 0000000000000000000000000000000000000000..bb44762e65c5e8c5620ceb751ad0fef3ab64f6b6 --- /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 0000000000000000000000000000000000000000..f2df628f3018733848c8ab8a0293b24dc3bbbf1c --- /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 0000000000000000000000000000000000000000..2f37a1bac0fd7e5079c4e08aeaf114dde424857e --- /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 0000000000000000000000000000000000000000..17c960d176268fdb903445c5a5e87a8e0d65778e --- /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 0000000000000000000000000000000000000000..2b3dc5313d9a8c83e4873b80e75de57f040775a8 --- /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 0000000000000000000000000000000000000000..87204c1fe9fc244c1f72b7c23bb886c14d25c0ab --- /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 ef5530be6fa661b2290f70cd502a3e198e6ea155..d6de2521533958d56b5813c16a7c6f0f05c037ec 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 0000000000000000000000000000000000000000..b5a3834869db326f74f011e38ae5c7afd9356c12 --- /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 afa870d90a5446278d737abb4e66bc8b06320015..e39e7e5157d2ab11f19d6bac9037a78b43ab931d 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 87e7a82ce466551dc0b348722a7eecd16b581e00..10a8472d5a9ed4c6208984d387c3f78cf9a99771 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 0000000000000000000000000000000000000000..69a1b9e99cbbffb0c8591a70560dda2e3646e844 --- /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 0000000000000000000000000000000000000000..edd9732d051bca1f0f4d9b3d4275d78c1e0e5f18 --- /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 179e9f414dc32e836af957e7f44fbee463ea0301..70e3cb0e1956587a2c8bbfd5ee254a362abb5f1b 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 0000000000000000000000000000000000000000..92716e40a34f3788053d3e5fc8d568eaec612c64 --- /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 0991c5df5ab4923930f25fe4c4d8ca063cdc8f2a..8c8d244d6f6e63c53d9e7cbf74cf182370b40456 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 32eeb171ff891d527e68b14f22fac7187f6d0242..c70d8407fc74f52397f043af9a7fa4da704e17a6 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 0000000000000000000000000000000000000000..0958a0e605f7d946bb97c32b927ab9116308c1ec --- /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 aacc89a0efe3e2348d49761d9539f54ef6e60e53..52aa2b10e2414ca79ffe2bab0b1733aec0067183 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 0000000000000000000000000000000000000000..f92f21de7fb8a94948753bdb3b346824a8d8ac35 --- /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 0000000000000000000000000000000000000000..dd33f759c31350b6e35a359dede137f1c95fa3da --- /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 0000000000000000000000000000000000000000..44edea8f55e90bcc21f43f9c360aefcebeb2dbd4 --- /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 0000000000000000000000000000000000000000..f002ff0f3403203e6a19a6f31408857a75e078f3 --- /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 c151396f247673fe0a199df39650ce2ef180180a..1217c29032b40f6162c8bc983eb4de89c935ffa7 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 0000000000000000000000000000000000000000..aa637d440bd9df01f9c034cd1cacfdf154dec794 --- /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 0000000000000000000000000000000000000000..f12158a1f71e57d6776a8b8abae1b35f0dbe0b0f --- /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 0000000000000000000000000000000000000000..fd628a7aacfd48880e6fd31e1ca723c383999ad7 --- /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 59520e285327f172fc2b05be0f37d532d577c728..422968be35a53fd749212701ad800876169f5f47 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 f5b3e38ca7c735249aea1e1f494055d467af05cd..64511aabf7c0998f1be1a4ae25b17f8b1594a72d 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 0000000000000000000000000000000000000000..10123944e3a6929a040203803c67b997eb81263b --- /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 0000000000000000000000000000000000000000..c83df2e0e49885f8cd42748acbd61e65832df453 --- /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 0000000000000000000000000000000000000000..02e9a47274b4e3656288371034920b66ecf73c05 --- /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 0a3d311eb27ab95a89c3894f6e60d9f33d5ecf1d..8ace4562cbd7123106845314b44e7b6861b0e5f7 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 30abfc23e834fcf37a8321e783e8014b38bf6778..6deec6aaabb4ad4e49bd4266e92ffd12557a1f91 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 445c5783b8ee7bcba126502f28374e9ff9ccef8f..5e3c5b18b77d4c33f0e62650007ac4e7efd65891 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/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/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/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/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/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/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"; - 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"; + version = "17.08.2"; 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 0000000000000000000000000000000000000000..42782d449d586da62f923fb4cec9c3f5faf461db --- /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 2c4bc0f21284e62d95f0714a4aa7a86271838d2b..f87bd4c11ec47235833699e418fac78c76f78682 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 0000000000000000000000000000000000000000..067cb675571ac518a667dca09c09047acd59de99 --- /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 4a42c55c2493b92a68cdc8f3a7f48c65e5c83476..dd4858cfe2add606a5d979e1618d61f86740fe41 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 556c1db3c8365f8c181cbe2270f0204d890c1c26..30b8a435f90684e4922f5d124ab4944d16e312d4 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 977f5e94e5d933e2d9d8a98be5ec6b54f56bd44a..f1d84a91972436639685a7f56eb81d0e21a91081 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 3294d18e70b86ac35f96d4e21f6cf90a4c9faf8a..cfd4d6b32de35c5e13c144e0eabc76e4ee5126fe 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 6cc6cc5d9b935c5c801b346237f80ef9aab16579..c803eb37ad6f655c2ec3084c5bc914de8cb44f22 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 0000000000000000000000000000000000000000..acd5ae7dd73d4f55d45122d5f542f22d817d8ca7 --- /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 0000000000000000000000000000000000000000..71196e919915c639d4b6902d11941c5c7188c14c --- /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 0000000000000000000000000000000000000000..a9d32d4b2522d15650b28ba215c11fa9ce4a67bb --- /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 e67480fb3c7a11d5740724b88b87ea87e397527f..196db45d9057ea4a9cd26e4e9b75e172d051214e 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 335d0031b32c9c42e5bd2d52ddc09c8d2852e3ad..b348f253b3503e29c8b47eb9d602c1ce76171374 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 1ee68b55aa731b9a68d9a6639d705dcd69712b92..8aa191c0f3c25f78871ec89bc30031432733510e 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 8d34a126daafefce28ef8e3070d0e3ce17d81442..ab106f6dcd9367622f7b1cc4120b23e273fba560 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 71cc688f7da036ef20617579c55c9e517bcb8d05..45e27984ed598fa8885dde0999992d9cf42b2f36 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 23bd89b4f057dd967684136a84c382e50e4d0150..d90e8a6dba667734a6b3d9ab287554ec9c2290be 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 587a20b2704ee716e396e28b1d7b54b7c8267a8e..e48b32a783d729a62a811b404cccda50ffa9dc95 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 efe2b2863acee2c4c0db447442f877ac1aef866d..0c71b3ffb0addb9ae2416950e963c9d0a098855b 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 be6989b7e33acc72a26ab8b1bedb5cb594eb6b63..a46565eb76ba75a1e0d24e5b14474f5054a6242e 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 8f2d7c4f17f2625e221e4e6bff6bee4994958bd6..acd38d74dca4a4c2ed7fe2b303bd1b2399d3154e 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 e1ed03c428de32c823af407c2ee2578e1e2b1a21..a46485c5ef732f5972a2ca01f0eb930c4161bff9 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 67d37489feb0787a4346f17ed952364a8d6739e0..673ecdc85496e0a28dceb0b748ee425e0fddab08 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 cdde212275d7bf94c2f416621d6cebef4c8abc8a..8b24df1bee92775b0c21591e7ba5a5c54e209f50 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 06ebaa7c12dd9301bad4e690755d1c71ff2a8f2b..d9ea487a83bb6974caf3269ce028162848f9256c 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 c7a76ef00a6a7595ad4a2148af1a02f33759bc10..28f14cc1435f3284bbfe6c03d9d9c4957ea385ef 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 08f654cdec4f4cfb468bd1f81bbf676b073e6d3a..de18a211c45002091b10fb82c93a1c3570ca3ccd 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 9ff27c7470918eeda59741823f88f33f5cdef832..985a418e158260d8e0a36501e1b5d43deff4bd53 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 0000000000000000000000000000000000000000..f21105763de923150fe2d3da7c89213a9bf9c39a --- /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 7461f6853f47f5734d0b855945ba8ad120767692..4fd30c547b5c235349dec6ad6f3e0699d7d00242 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 42565ae7fa8cae2aa32421bead344cb4b4960498..0000000000000000000000000000000000000000 --- 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 6b22f3b27ee8ccf60d494050b9aa67ccbd68a65c..0123e0c38d74a6f493deedc137cbf73b6f0899fd 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 ff18796e39d605b4589d1693fe3dc37ee4a1316a..1012f187497ac19b82032b06ea6fd5fd60d0c4ea 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 08df0cc3e903b00269f118b49a70a1486a5eb8be..575889ad2c6f031df75c7cff9ecb25e148f7e28b 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 0000000000000000000000000000000000000000..0ee52b740f2476c68aa6d922e9120bbdbeb6bc3b --- /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 907c9d612b85e181c950d70e4e971fdea6a40999..53344595f7831827cf7d171132df7da6b9963b09 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 d4c8b1ada6c359ec1446acc15a3d4cef7371f3bd..f1e33ea53571faee25764af26e714374f37f2fe3 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 0000000000000000000000000000000000000000..0c9fa5ea2d27969874385f61e7b1c663b2a604ee --- /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 1dc9fe5e2026ee592f376afd8410da504bbe4a4a..8ef4f3ae8974b504209ac7534d2e67bd51539559 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 9a13da677456d80a8844171710ae5b290907f013..340e8f161647bee40aedf579cf6a6b584abcc76f 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 0000000000000000000000000000000000000000..cfe76701cebbd37cbac81d56e6944151a023dda4 --- /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 61b0357bb9d0a9cb3ab662db2bebdc2665bb1585..1393af67bf8c539f0225493cf6fe9660d7de03fb 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 0000000000000000000000000000000000000000..1d3c405b7038e953088437ac8a53130ed50ffb37 --- /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 221bd3c4bf5e31618b71b5c13a8abafc585f4ea5..919ad10fa706f48c22d919ebaba20c29896abf04 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 95cae316a7119ab3ef1447f31a36c9ddebe058e0..d83eb1ed86a746c727b822c9e095443c69cb1d46 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 0000000000000000000000000000000000000000..a45ab59ace8e29d19e5bb6fcbfe98a592193dbb4 --- /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 917d32e74afdef4e9adb1c74dc331a3558bb95e3..e7a5a1be1979b52b3edc5cb994ad5cceefcec7cc 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 0000000000000000000000000000000000000000..bb41f8665e57886cd1ddcf55c842073b363a6be7 --- /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 a2d39f2d486b94982802df2b530b58ab91cb8af5..abe8d0dde84b081594ccc5ed957c4a769f8fc53d 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 0000000000000000000000000000000000000000..65df422599ca1a11d7b6bb926988373b1863846c --- /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 0000000000000000000000000000000000000000..40631b0a0dbf6fcedc96ec1b70d959de4d64c476 --- /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 386601f39bbc352c60e1c0fa51406e4aca14e11c..98b47990314db386f0e568da641d4dbbe0df0b46 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 10605b8b18dabe99506b45dd53d6b1b828534c35..73911bab6f66bccc2058b24471ba5dfc3a51dc72 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 0000000000000000000000000000000000000000..68a16b196fa31e914f55270c5fd198ed05d7fcb1 --- /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 de22e08c705e6a3cb989304cc1907fe9cfcea87b..7bd876f1d4aa0312f675e41d9d096af52be6a107 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 2b193ef42cd23576e8c1e48f50d792c78c0f35d4..80f76bc27c89509186bc3b922da2e2af62ca24e3 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 548679e4b47c403c7a552d50d47f59ce7061b060..db78f2ec92043c3df91f1a927fb7b1ecf87d9231 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 88475dd761e1ed23f1929f0c5636387195e43ee0..5cd8f572ad48860192cc5268deccf0f505ba8c8e 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 053cdd0599163b8fce38cad067f38645e1db97df..add46f8871d571f19c006b71e08d7db4e0a8329c 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 23d0d682176bb536208e38adc7d1f044bf67696e..f70042884a8afe307988c2fbc1cfdd69b785f317 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 301695885016b15d7dc2b82b38861d3fbcdc03d7..4e786bfb36f858d6cb14744c24feab8fd009ca86 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 950ce210c06305285a42d769a3e29f667cdc060c..939b38ca29f76bed62306427042b651105ce9e13 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 db954a254630ca76c6b9da8e6e7556abcf4a1f75..b97b079ab663d84ca95deb77529a545b12e3b696 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 860068c5667aa6e786e2cdf8de4fd4d5e2536e24..b6bb3c2fd83d40a99d3fdd4d836b1e73107e8908 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 8654e7f3a26173b61f20641660743f4043cf9824..b9cbf8064a0758fb8a5dcabec374640215486bba 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 0b6ebe06b88acb9383ec3869e0e40e53cb4548e0..509a54881cce7c9b8685f286865b81751f024a22 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 6c712db01a5a4ebb56b7700bdd86b1d404e16df1..053da375ab152a82301d2e1cf3a2182796947d31 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 a86cf268801d9142ef9f3f15f10e0e4e6d9c3957..dfe61b57b43ddde280d96b67a70792e84619b71f 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 c4f8be88bb51537d1e45131c35ea230dfc4fbe65..e2cf8245ce67f688e0590102c457a766c54f6d8f 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 0000000000000000000000000000000000000000..68b49492791557f9ca2a35449ac827bec2464cdd --- /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 eda95bc0c5e78521275883f6a61f916f8ff90ab7..a67a8a44fcedbc85d4d730e55de52b85d635a135 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 a47925cab90dc2e01849d7602534f132b28291d9..bbdc74510eaa8c1c95e00c87e0d381b9421617ff 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 6298e083617f7443e5cb1e1441405fa92cc60e75..cd3630c842c30c253b789e93d071738d3cba6ef8 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 5fc6eb2c2744aa08ee53c42164c1a2e6d0138ffb..e2d3e808476e75ebe823a03bb7ed5911c0873581 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 5e729a75557ed8b51574b9cd1cd3992c5e9aaebd..3d09441a7f0359d188641c620d0943156a7aed82 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 497ac298d281bd14c31f8ba5144dee429b0d7243..0156122ec79a54b98fb7439d3ef0d7c43d84953f 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 cc8dbde273b665cb95abb3b41d3df3be6541fed3..db2b453913f44f28f02668fb2d102d63918c6eb7 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 d6da900656cc23d05def2cd4a2dbaeedbbe0d8e0..358d9dff44a6b6fc8f9c0b895401208a83960e34 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 be36eeceb6b69372dbfc1b9591109b20c0ab4921..f552a74f4c11798b51f6f0827b34f507b7b324f5 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 074a0c6fa43b01bd8935e58da06175e1dfb02641..7315c0a8d724bf91a36a287339aa815a97267cd7 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 1f3cc9e27c0c3885f8f7d38e05c60000df733d7d..4ad32c5fd7f58d520a615e897e42bae157acb632 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 f0c71fa455cfb0562af2770705986d693400307d..cff774d7daa07b1d6a4eebdfd1989c035be4bd2b 100644 --- a/pkgs/applications/misc/gollum/gemset.nix +++ b/pkgs/applications/misc/gollum/gemset.nix @@ -1,170 +1,195 @@ { - useragent = { - version = "0.14.0"; + charlock_holmes = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "124r3mgkw1zjymsqq9r25zh1vwjrjgiji5fm620z53lpmmryj22j"; + sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7"; + type = "gem"; }; + version = "0.7.3"; }; - tilt = { - version = "2.0.2"; + diff-lcs = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0lkd40xfdqkp333vdfhrfjmi2y7k2hjs4azawfb62mrkfp7ivj84"; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; }; + version = "1.3"; }; - stringex = { - version = "2.5.2"; + gemojione = { + dependencies = ["json"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17"; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; }; + version = "3.3.0"; }; - sinatra = { - version = "1.4.7"; + github-markup = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp"; + sha256 = "1nyb9ck2c9z5qi86n7r52w0m126qpnvc93yh35cn8bwsnkjqx0iq"; + type = "gem"; }; + version = "1.6.1"; }; - sanitize = { - version = "2.1.0"; + gitlab-grit = { + dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; + sha256 = "0lf1cr6pzqrbnxiiwym6q74b1a2ihdi91dynajk8hi1p093hl66n"; + type = "gem"; }; + version = "2.8.1"; }; - rouge = { - version = "1.10.1"; + gollum = { + dependencies = ["gemojione" "gollum-lib" "kramdown" "mustache" "sinatra" "useragent"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; + sha256 = "051pm2f50daiqcqy87aq4809x4c95iwwml6ca4wgvvmj5zkk6k5a"; + type = "gem"; }; + version = "4.1.2"; }; - rack-protection = { - version = "1.5.3"; + gollum-grit_adapter = { + dependencies = ["gitlab-grit"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; + sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b"; + type = "gem"; }; + version = "1.0.1"; }; - rack = { - version = "1.6.4"; + gollum-lib = { + dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"; + sha256 = "1filwvjfj5q2m6w4q274ai36d6f0mrsv2l2khhk4bv1q6pqby2fq"; + type = "gem"; }; + version = "4.2.7"; }; - posix-spawn = { - version = "0.3.11"; + json = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; type = "gem"; + }; + version = "2.1.0"; + }; + kramdown = { + source = { remotes = ["https://rubygems.org"]; - sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr"; + sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0"; + type = "gem"; }; + version = "1.9.0"; }; - nokogiri = { - version = "1.6.7.2"; + mime-types = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "03j98xr0qw2p2jkclpmk7pm29yvmmh0073d8d43ajmr0h3w7i5l9"; type = "gem"; + }; + version = "2.99.3"; + }; + mini_portile2 = { + source = { remotes = ["https://rubygems.org"]; - sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv"; + sha256 = "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm"; + type = "gem"; }; + version = "2.2.0"; }; mustache = { - version = "0.99.8"; source = { - type = "gem"; remotes = ["https://rubygems.org"]; sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2"; + type = "gem"; }; + version = "0.99.8"; }; - mini_portile2 = { - version = "2.0.0"; + nokogiri = { + dependencies = ["mini_portile2"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l"; + sha256 = "1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn"; + type = "gem"; }; + version = "1.8.0"; }; - mime-types = { - version = "1.25.1"; + posix-spawn = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8"; + sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw"; + type = "gem"; }; + version = "0.3.13"; }; - kramdown = { - version = "1.8.0"; + rack = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0ryqq055h5n10c1cfba6pxsssa907l2hkw29anp0d41ryh47ca2l"; + sha256 = "19m7aixb2ri7p1n0iqaqx8ldi97xdhvbxijbyrrcdcl6fv5prqza"; + type = "gem"; }; + version = "1.6.8"; }; - gollum-lib = { - version = "4.1.0"; + rack-protection = { + dependencies = ["rack"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm"; + sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; + type = "gem"; }; + version = "1.5.3"; }; - gollum-grit_adapter = { - version = "1.0.0"; + rouge = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7"; + sha256 = "1wn6rq5qjmcwh9ixkljazv6gmg746rgbgs6av5qnk0mxim5qw11p"; + type = "gem"; }; + version = "2.1.1"; }; - gollum = { - version = "4.0.1"; + sanitize = { + dependencies = ["nokogiri"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "02pgx083sns75zgnqx94p5h5bpr7cfiw5mys4ayb4k33hcjm6ydg"; + sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; + type = "gem"; }; + version = "2.1.0"; }; - gitlab-grit = { - version = "2.7.3"; + sinatra = { + dependencies = ["rack" "rack-protection" "tilt"]; source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b"; + sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq"; + type = "gem"; }; + version = "1.4.8"; }; - github-markup = { - version = "1.3.3"; + stringex = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq"; + sha256 = "1zc93v00av643lc6njl09wwki7h5yqayhh1din8zqfylw814l1dv"; + type = "gem"; }; + version = "2.7.1"; }; - diff-lcs = { - version = "1.2.5"; + tilt = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; }; + version = "2.0.8"; }; - charlock_holmes = { - version = "0.7.3"; + useragent = { source = { - type = "gem"; remotes = ["https://rubygems.org"]; - sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7"; + 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 0000000000000000000000000000000000000000..026457fb8571ae8a051a560d27ba2e3c82cfa76c --- /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 fe58fa92d07b133072fbff9d91c5d5b8132fdf95..4143f6fde55937c8f9411bc41b9a5b210a4c8746 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 230e0ff74142f9d3a0b958f07bb2dafd045c3c13..6fa11667cf333eaa1fb390eee752eabecf5d4067 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 ace89cd8a21b8ae54696222146d1a71b8de2dec5..0911fbace44974f2172239ca194b6176ef47c178 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 07fcf31ed263e9d7c22a4ea565c884501a388389..a51ec8c1b044f0cf60542d9a4d0806faf0b4c67d 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 0000000000000000000000000000000000000000..a7485c4ee6815ca17bb9aa196a2d5331fc52b38f --- /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 5b977d13796a2af6fa02e52afe190638e917be80..00735624ad96732458b497573d4a80b52b447417 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 3fda4d8881aff0625b302bbdbbf7dbb2fc522290..27bda1e209285761fe23c05e2e2e0e27b42225e2 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 4dcb5be8a21d11413ee0d9b62a5b4661c9fc8d73..8b66b23df01a3993692b264f17fe21551dde7e73 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 623cb12f9323bbb3c6ecd4f32b56e4882bfced10..00421a2e03341a9e70cd74f94f9c8a21ea44bf2f 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 5db5b25947e618ff6b057200f2222fb790df7e70..cb407fca66cbc0f1190b26412844e6bf34750adc 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 9115fe026daae7a5479181c0f88213b9c2c5d5e9..7f3b3a8d6dc547c92418be09a00ec7c8aff49bb2 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 ea3f4b8f2b92b9efc12b52da85da383572890cd8..347d76860ef111f72bad89bf543182b81be6d440 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 0000000000000000000000000000000000000000..5fdb8985bbbbd39916c355fb783c356e8e76677f --- /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 08ae34f97055485be397f6d0e9bf7b9cd369d209..a61d532f1f8e18080ad9c05234c3328c048ff90c 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 1132f6b12f9b1f91d3e63e43d4630504a39f2807..f581b302c3f4213308acca3e9ff4c148f1a375ce 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 e92cd4cdaccdb42522a3159c5d9b23550550df9f..6186ed6f8f4125be0970b393d07c174c4bfbcd15 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 b8bd514c9ff3bca13a0bc2b828938c2b301f9f0f..51a14fb20d0b0f86b8ae528ce11937d69210609a 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 e925885f05f2c0e75c2704173c656f802dffa562..dc771fc2d5e4135b6cc2b4fd7b14b1355a6878c0 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 0000000000000000000000000000000000000000..0b679617243dd3bb372e9bd366bec0a978f5fafa --- /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 0000000000000000000000000000000000000000..b3ce98895e6f9911091341e08057c004f71a2ffe --- /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 78f3c2f391b9221066a519c82a2d4a67b4d9b925..3c4f409d18f18a3c52a7923ace1147b0da4da036 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 57b844de97b8e98cf532c8374534e99a4a49ec3d..0dfc725b9ea67ac58d618227c550011975adf1f7 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 e2e2d093ddedcbc49efb0f6e8bf7a34c1c3f870d..35faf6b5704774b27eeb1d20ffefdbf6caa4b95e 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,26 +22,26 @@ fetch = { type = "git"; url = "https://github.com/PuerkitoBio/urlesc"; - rev = "5bd2802263f21d8788851d5305584c82a5c75d7e"; - sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp"; + rev = "bbf7a2afc14f93e1e0a5c06df524fbd75e5031e5"; + sha256 = "13r896yy71i6jj1cwv2pjp53wjfxkg7bh884fggv6y79ly0qr63j"; }; } { - goPackagePath = "github.com/bep/gitmap"; + goPackagePath = "github.com/alecthomas/chroma"; fetch = { type = "git"; - url = "https://github.com/bep/gitmap"; - rev = "dcb907b39a0690430d435eb8f63cd8811961231f"; - sha256 = "0bw4spyiidrvd8rls9g57mwxykfmv57qi9mcnjadbqrpv92br856"; + url = "https://github.com/alecthomas/chroma"; + rev = "b0295f66bdb7c61d54906003d7649185794e21b4"; + sha256 = "1hnvv13nphbzr9xm21fys7lgm0kd6qlbk58vc8fi802lxzsfmdis"; }; } { - goPackagePath = "github.com/bep/inflect"; + goPackagePath = "github.com/bep/gitmap"; fetch = { type = "git"; - url = "https://github.com/bep/inflect"; - rev = "b896c45f5af983b1f416bdf3bb89c4f1f0926f69"; - sha256 = "0drv6in94n7lmap4ajvgqlvdcbpn8alinfdzywzpihvzbx21b3h3"; + url = "https://github.com/bep/gitmap"; + 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"; }; } { @@ -126,21 +162,21 @@ }; } { - goPackagePath = "github.com/kardianos/osext"; + goPackagePath = "github.com/jdkato/prose"; fetch = { type = "git"; - url = "https://github.com/kardianos/osext"; - rev = "9b883c5eb462dd5cb1b0a7a104fe86bc6b9bd391"; - sha256 = "0cyhbgsxwdfnwy57pdfivvjfy951gxbg9qlsjbwm6vs3gfws07mr"; + url = "https://github.com/jdkato/prose"; + rev = "c24611cae00c16858e611ef77226dd2f7502759f"; + sha256 = "0xdrjwbcnwiwbqyrxfknb9bskrsrbnqp0nza44bycwaj23by9bs1"; }; } { - goPackagePath = "github.com/kr/fs"; + goPackagePath = "github.com/kardianos/osext"; fetch = { type = "git"; - url = "https://github.com/kr/fs"; - rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b"; - sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly"; + url = "https://github.com/kardianos/osext"; + 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 287efc898122f95be9dc243f08161d0b8052e063..9349c07a62e9614f065fce38136057f9c6b59045 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 bce5b6cf58977eb1ff696836da1760c7e0e86e00..6e4fc2065885987534cb0c3106962c5d0f646530 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 6ec968ecc94d8607ace453166c50f74801fb88d1..e2232c4b2ec824b0289d65cd50c0d8121840306b 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 0000000000000000000000000000000000000000..af67db3f654a194b6a410994b6e8e1206415b7ff --- /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 0afcbca4979f57eb49ae1a42ce59cb875f481e5f..f907847599410a82497a2b8659c80493fe2cd338 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 d26ad94648aafbe4127a19e08fce5a814e3e5547..ed8573b885079e7c5e770fcf5901e98defe7bda2 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 4074421fca3eb476b4e34dc4f047b0bae32bafad..97ebb9705bd683ea4916e85ee26b5e1423c1ac95 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 c2d82181be2d4fbcc9a95cb23958f59141da0e50..da4be83382fb3c503ad223810268d230d482e7a7 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 b06a28513b820dd009d5a064562ab3aaf6840892..f3661030a2ba90fc79cb6a4cd165e1ab2ef9bded 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 a5c72d0938508c8ba938c6c1b725858f270cd1c9..5b1a35209aebb3aa5ffcf5d9e7b5e4a3437e1647 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"; }; + version = "1.1.0"; }; - "ffi" = { - version = "1.9.10"; + ffi = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"; type = "gem"; - sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj"; }; + version = "1.9.18"; }; - "jekyll" = { - version = "3.0.1"; + forwardable-extended = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; type = "gem"; - sha256 = "107svn6r7pvkg9wwfi4r44d2rqppysjf9zf09h7z1ajsy8k2s65a"; }; - dependencies = [ - "colorator" - "jekyll-sass-converter" - "jekyll-watch" - "jekyll-paginate" - "kramdown" - "liquid" - "mercenary" - "rouge" - "safe_yaml" - ]; + version = "2.6.0"; }; - "jekyll-sass-converter" = { - version = "1.4.0"; + jekyll = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qbnjx7bpshbcam6p9ss2g6gpd3gxz6h4w9yszphj3ip335yhawb"; type = "gem"; - sha256 = "095757w0pg6qh3wlfg1j1mw4fsz7s89ia4zai5f2rhx9yxsvk1d8"; }; - dependencies = [ - "sass" - ]; + version = "3.4.1"; }; - "jekyll-watch" = { - version = "1.3.0"; + jekyll-feed = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dj62gy1jskkn703mi5h0bkg1psbpkdm2qqdw3bhjfid9358qvay"; type = "gem"; - sha256 = "1mqwvrd2hm6ah5zsxqsv2xdp31wl94pl8ybb1q324j79z8pvyarg"; }; - dependencies = [ - "listen" - ]; + version = "0.9.1"; }; - "jekyll-paginate" = { + jekyll-paginate = { + source = { + sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; + type = "gem"; + }; version = "1.1.0"; + }; + jekyll-sass-converter = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01m921763yfgx1gc33k5ixqz623f4c4azgnpqhgsc2q61fyfk3q1"; type = "gem"; - sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; }; + version = "1.5.0"; }; - "kramdown" = { - version = "1.9.0"; + jekyll-watch = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "02rg3wi95w2l0bg1igl5k6pza723vn2b2gj975gycz1cpmhdjn6z"; type = "gem"; - sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0"; }; + version = "1.5.0"; }; - "liquid" = { - version = "3.0.6"; + kramdown = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1isiqc40q44zg57bd6cfnw1a2l0s2j5skw2awn2cz3gcm7wsf49d"; type = "gem"; + }; + version = "1.13.2"; + }; + liquid = { + source = { sha256 = "033png37ym4jrjz5bi7zb4ic4yxacwvnllm1xxmrnr4swgyyygc2"; + type = "gem"; }; + version = "3.0.6"; }; - "listen" = { - version = "3.0.5"; + listen = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"; type = "gem"; - sha256 = "182wd2pkf690ll19lx6zbk01a3rqkk5lwsyin6kwydl7lqxj5z3g"; }; - dependencies = [ - "rb-fsevent" - "rb-inotify" - ]; + version = "3.0.8"; }; - "mercenary" = { - version = "0.3.5"; + mercenary = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; type = "gem"; - sha256 = "0ls7z086v4xl02g4ia5jhl9s76d22crgmplpmj0c383liwbqi9pb"; }; + version = "0.3.6"; }; - "rb-fsevent" = { - version = "0.9.7"; + minima = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s7ks9fqfvqx7qicnkrg76wavg9mjas52f7iyhr89lz9mqiy7p39"; type = "gem"; - sha256 = "1xlkflgxngwkd4nyybccgd1japrba4v3kwnp00alikj404clqx4v"; }; + version = "2.1.0"; }; - "rb-inotify" = { - version = "0.9.5"; + pathutil = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f444wx6vjd30lkkb2zn1k5a6g33lidrpyy7lmgy66n1gsiipzn7"; type = "gem"; - sha256 = "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"; }; - dependencies = [ - "ffi" - ]; + version = "0.14.0"; }; - "rdiscount" = { - version = "2.1.8"; + public_suffix = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; type = "gem"; - sha256 = "0vcyy90r6wfg0b0y5wqp3d25bdyqjbwjhkm1xy9jkz9a7j72n70v"; }; + version = "2.0.5"; }; - "rouge" = { - version = "1.10.1"; + rb-fsevent = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdiasp9zlr306yld19szapi6kdjk38rpv1hih9x0ry40x6mb63n"; type = "gem"; - sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; }; + version = "0.9.8"; }; - "safe_yaml" = { - version = "1.0.4"; + 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"; + type = "gem"; }; + version = "1.0.4"; }; - "sass" = { - version = "3.4.20"; + sass = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0da4mn3n60cm1ss1pw1rrpa7fxagglxiwcgvz1asf1qgf4mvcwyr"; type = "gem"; - sha256 = "04rpdcp258arh2wgdk9shbqnzd6cbbbpi3wpi9a0wby8awgpxmyf"; }; + 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 8e5c5d6206c9ec9f925a8a04809da9f0f0e5d423..d8b1253ac2763ec84d4e07f451b07fe7f15d0fd0 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 0000000000000000000000000000000000000000..17b1749fcf777d6722bf51a279bdf9666443c203 --- /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 753d27b33767b30faeb13c101a1345485ee6ecb0..46263f7d83b8717e54030baa2bb9a04e395469a6 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) --void sort(float *x,int n) -+void willus_sort(float *x,int n) +-# 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) - { - 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 + # ---- Describe project + +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 5cb6e0fe3176b1a4f07673481870bf5ee5208da8..4827daa1a9054d26d63cd7acecd46c819511014f 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 072685b81944258279b2bee7f1719e6e224bc566..0000000000000000000000000000000000000000 --- 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 486d3fb7ddf7f6307ccaf7b5a3b9817c9e6a5a92..0000000000000000000000000000000000000000 --- 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 ba1a266a42f5841073ae6de1cc4e23a84cbfc1c0..7995c8875b829e565fb5757ccdb712b20e5ce64f 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 22c9cfc7e986a6acf9402ed52db0481fed4998c4..a95dd6adbce632bc154f804b6fb0d672a7044d95 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 5e43486b075226b809b85632b50e6565fcf1e525..e64632d529b1b65b13f5727ba16d8288b865afbe 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 57f6cfc4c4b4ee47bd0839dc79d9c3c49dcc9560..49e4711550dae870f609d5f05260d7d43e508228 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 030b1d326e1df51495ac924411dd00c36d1aab13..f6814119b5a71598bb58a0ebef6447899d52317b 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 e103f62fd3c9153156bd0ff9e37c725e2d2a12fa..0444b1d96d2cbc31abc3b56d9b2ef7630e3b9941 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 d0bddbc16102f6b6845a31da73e0fb7e582edfae..ed706b138cc572556c36927aa47ba386151c060e 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 8d7eeffad3104bad8169297602b3559a76706e06..91e583e2af4e41bd3c3d25637bfba12b7e04dbcf 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 0000000000000000000000000000000000000000..e1afac735d8e29f905009419c67c113bd112ad56 --- /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 b0590fdc38f7a66a0006ede28f6b5f58771bab04..8479c4e16ace59b96b74ff6a96b3e1eec86e50fe 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 1137d6c07f6afb61a3aad8318e984f52c3976f45..e686ec94a4a34b317ca385ded9ede4c5ea3e294b 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 ]; - }; + src = fetchFromGitHub { + owner = "KDE"; + repo = "krename"; + rev = "18000edfec52de0b417d575e14eb078b4bd7b2f3"; + sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j"; + }; - buildInputs = [ taglib exiv2 podofo ]; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - propagatedBuildInputs = [ kconfig kinit kjsembed ]; + meta = with lib; { + homepage = http://www.krename.net; + description = "A powerful batch renamer for KDE"; + inherit (kconfig.meta) platforms; + maintainers = with maintainers; [ peterhoeg ]; }; -in kdeWrapper { - inherit unwrapped; - targets = [ "bin/krename" ]; + 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 ed74eae46f3a52bf6a6fa9f1ee4385ebec039f85..bcf351ff46ae9b415f0ae1981ed46d0ffe368640 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 0000000000000000000000000000000000000000..f3bb825cbf7430466b169122989e662849d4cc38 --- /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 cdde0beb8270f3aed92fcc234cdb0d840390ca58..2695ac1ef7d51d3977d675fbf1af4c39d3b6bd3d 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 b537c378a71f963c1e0b29a70808edd48cd48358..9018a5926424d929b5db7e9fc1c48632b3c49e1a 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 7a0eadf74e5aa0180707ee50231aff4c0d7c4f36..47bcbb6fce915566ca8597f641392f0d4f426ff6 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 f6bfe61e5aa2f91d6e2ffdc673a77da0c2371555..7b5b40d65a363494ba1a19ea4b089da5f217be4b 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 2fa4ba9ae644753fdd15facaa89130ab2a7c20f9..3729978dddb0007d9fa0923ccf59abda6650a579 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 5450f5f2fc84dc51fbebf2590b0afc2e6bfc59c0..4972aa28e5892eb7b5eb7912612ddd055b8726b5 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 0da6e8eb34ae6f12f978cf0bd04654a943b5b103..0c08929417e64bfcd65dcce1a980aaa29b459016 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 0000000000000000000000000000000000000000..af8d00b59bfb3d4659091bf1c348e26c401d7679 --- /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 0000000000000000000000000000000000000000..9f94bb09ce4ec269dbc7bdae00e1d41a332adcc3 --- /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 361ced02b7edb707a08852056355d7fc62f55eab..8a752bbaf86ec15cf65b054c45f4fcf574d16f61 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 5206feb215c98411acda062b4455e03a136bfae9..f627a3cda22f6f7b2b675785dfc2805ca178e1f5 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 e60d1619685a5e1558a408f06e3bacac50003ad6..fc702f249de427d06532f28d3bae76f76ec03194 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 0ddee228e9d00d187b5a0200eb6bf7207620eabb..84fef1b3983249975444d61c16f709e901da76bc 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 a1744f7a2c033d16583ca90340af197ce37142b3..d1befec34082d22cc749103765a6b2eaba649070 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 0000000000000000000000000000000000000000..ca4f91533ecfabbc9517294cc9028acefeb95afe --- /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 b8ccbe77cf5bf9cfabc80b39303f2af8a3a5bd95..d8d1cff6040b261c14ab76c8f9ba9aa9c674d914 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 8b3e0a7cb4e8726761fb862ac7c4a6a453cfb8fe..0c83e206bb33c0257daa5f1102091562e8f6931e 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 391440f86229b572dfa616c7f2899d6246be1942..c95f935b8555230f1f2854c003433914428b7b03 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 0000000000000000000000000000000000000000..eea166d8df7596f7a2b69fb918e4e98222fb726b --- /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 0000000000000000000000000000000000000000..d93d3c46814587b24a7ec627de5182077bddc0ae --- /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 8e39c258333acab4db033c76285e88c68da2d7e4..24a8b0c46a647ffe66176e787dea23e72cd04f59 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 a4687c385c655404c52a4ec04ab8ad9b279b650c..b50d99466f89d772bef359702567776972afa5b0 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 87b00f3ab705d19978192c4e7afe85bf3b7f1081..24c9c4a80f5d115b920c5ea5b1aa16bec6699d54 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 8bc4a22bc9231f43c7a0f39001d13fb6faac6436..0a1d26012a8020afbe901c1d666116060507b813 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 0000000000000000000000000000000000000000..9db6042e60f6df699f214d69ff442baae3c16518 --- /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 1985b6448846ee31455e7845240f2b28fa4b36a4..8ff9a2f44d55a018f77f1cf53c837638902f3836 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 36218b6d5079610f3649019d8dba654340dbe457..4aebd3bb2a96b3fb1f29b4db1b999ddee85f6401 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 696232c9f8d6f92fb09cab2ea23e8b8b572d8af1..3420d6365b4bc46b0a0d2f6a16d6b1514b61a747 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 5a9ffc13007f9406098a33a8624d78f9bf8e7146..e70be8201b348b8ffc401456db666f5b3bd685c9 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 aceeae87d085c50d8adcd9f1801c5d524152d21f..148dd427fbc7c2d5d2a65d5d1a6b8532e2b31849 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 87c4df3446edf1e6f0f8d2040292da5b30df12e3..060d4899f4c73b6c16db7cca9fc43be67351e1ec 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 919935a41ee57fdd80ad53f2bf44a6666ac0df91..691f3188b08c59ff92f13a90d168eab1bebdc814 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 3c42e8d8fcc0ce3d7edce80f8e0fb7ebe3f37f30..8e0fc6137210ef98014299bc9da9ec0441646cfa 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 f79d71ca250588d289a31b0a7260b47914c71b1b..ad2ab147340ea3c8d64b9cab04520b1efb2c7ad5 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 fba7b6371f67725d8067eb4cc037f0a4574b5584..889f516f00b7a399b5025a1d06baa4e5936acab6 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 0000000000000000000000000000000000000000..fd66ce8fc31cf644bc35d12fb936809fed5b7559 --- /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 e5dd22bfbb1f2d3e4376bbb24d5d2838913d1d58..0cee74522ab291576fcb43b68879640d65db2b2e 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 86dbfc0c5fe13ac5a935b8a93ea30f16b2ef83b5..6d0a348b1f76e9ce1a1d8f8b3955d1d23e5c4ec2 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 dcb36082231f77318488cecbab3e60ed209bdec7..0000000000000000000000000000000000000000 --- 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 b604905320b2acbf6b79ba21ea2e62982698d67d..3f39a356312eb76675b427e02ae413e0071117ff 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 da59f7f1886707211fff8f33c9eae87e8facdec4..2472b05a2e0b730cbf8150f334bdf9165646df18 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 026a1289fb6191e4431673458c6738104249e877..e88a49740745bce341d09ab0117b050105249c61 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 b6d46cf9ed13f36a18c49413cc669e5b4bc53891..1347840ee674cedcb21ca25ce4ae5a5c21bd8a02 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 bc6b4e16a37850d715751d3076c9085995b60aea..ecc4c341a686707b2c9688b5d315b52680e6b540 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 0000000000000000000000000000000000000000..359e28c41c34f4ec9d1e15238f6a264e6c618aa1 --- /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 0000000000000000000000000000000000000000..cbbac11424eca1a0a324637a34b1d08093297f7f --- /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 0000000000000000000000000000000000000000..60a8cf2c6cd17fda2c2bb96f6e34f017547a98e8 --- /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 0000000000000000000000000000000000000000..7330dfa4f1998080395821d1403582d38dad8996 --- /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 1a3f1399fe76ea8d5198f2876d154062232c883b..e3e7ff950b0c82c9c53e595b8df8a8cf01afd7da 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 4f95879d5eb20df43ff30432c2d0688a2be2adb7..f283c250b5bd20ba4f2b6e84bfc0157d37851c4c 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 4cdb6591465eb7feea88f8960ab731c35fe7963a..d300e411c94266f81312ee488800455c28ff07af 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 bed1d1fc97c495fabffad5a138e3d8c7d64da417..f77220534014da6e39e4a4b5b5ecdfb29c81784d 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 1371646be273bdfd4c8fe176452863ed25dc450c..f3198085b9abc6da73113b95fc0f76a1473c3c2e 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 9d333da01cb6530b6462c730ad07353d5517fe4d..59d22b967b57db77fea780ac749c42ee5fdfd3f0 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 fe09f7ff16eaed757c0853b1cba3e5d31417d073..03b8d709fce2d11575a1e19277bee6c7a9d19c81 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 03d058783b23bde5d5ac9101d91989f4d3eb446b..8b93dd51406b3087dad5cfd2c3d69a8cfb449a9c 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 0000000000000000000000000000000000000000..fc7ff48423948be9e51600c895220e1689712374 --- /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 1516e827c5e132a31e7e6732e90530d960514c5c..76593eba5fc4e3314e7f98e9b6343af67da48ee5 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"; - }; -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"; - }; + installPhase = '' + BASEDIR=$out/lib/robomongo - desktopItem = makeDesktopItem { - name = "robomongo"; - exec = "robomongo"; - icon = icon; - comment = "Query GUI for mongodb"; - desktopName = "Robomongo"; - genericName = "MongoDB management tool"; - categories = "Development;IDE;mongodb;"; - }; + mkdir -p $BASEDIR/bin + cp bin/* $BASEDIR/bin - buildInputs = [makeWrapper]; + mkdir -p $BASEDIR/lib + cp -r lib/* $BASEDIR/lib - installPhase = '' - mkdir -p $out/bin - cp bin/* $out/bin + mkdir -p $out/share/applications + cp $desktopItem/share/applications/* $out/share/applications - mkdir -p $out/lib - cp -r lib/* $out/lib + mkdir -p $out/share/icons + cp ${icon} $out/share/icons/robomongo.png - mkdir -p $out/share/applications - cp $desktopItem/share/applications/* $out/share/applications + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robomongo - mkdir -p $out/share/icons - cp ${icon} $out/share/icons/robomongo.png + mkdir $out/bin - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/robomongo + makeWrapper $BASEDIR/bin/robomongo $out/bin/robomongo \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb + ''; - 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 ]; - }; - } + 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 3c4cf27308bbb6a8b9b543bbf54b3ad01e55dea9..bdf14c03bcc2feb29ee120e836215b28120abe56 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 fb6e9e86e5995e3fdf8e554d4bc32cab44d11bb4..652dd9d5e650696ca9b907398437a7ddc09885e1 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 20f8df8da482d4fd93cacd7cb4959e8f7c8230fc..02af4c28d593b1324846ca8ea52994444ef3ee60 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; [ + # Tests try to access network + doCheck = false; + + checkPhase = '' + py.test + ''; + + buildInputs = [ + coverage + coveralls + docopt + mock + pylint + pytest + vcrpy + ]; + + propagatedBuildInputs = [ + backports_functools_lru_cache beautifulsoup4 + configparser + contextlib2 + decorator + kitchen mailcap-fix - tornado - requests2 + mccabe + requests six - praw - kitchen - praw - ] ++ lib.optional (!pythonPackages.isPy3k) futures; + tornado + pyyaml + ]; - meta = with lib; { + 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 e8914b75b8a5b210ca7ba290a62be4f3cb59a500..8e63cdb6d16cb16c640ea17052700610d8b645d1 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 0000000000000000000000000000000000000000..f872e80083632db397e709ece71d15ed31209dfa --- /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 f81709b973900bae3cf7b51b85f40ecca30177b5..4f4319af6cbdc653a6e6298185fbfda31e3ebfaf 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 0c95acd72057fb1a1115b850da813c3400a07fe5..13e005014f105301dcecfc5ff11dad1b0d1ef1b2 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 82c4f310352d0e2899446bc72d2765eaebb42c08..544789e865b5e5e4dc1236fcdb7a2e15dca4807b 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 194bb8397fb5ab49deaac7ca6e13dcd602091dcd..68be8b738de6dd81feff9ddf0004737e3545258e 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 8b9ffb2c8c8a0adb0caf885fc9eddfd7ff973232..f4a41a89e1c46fef40782e4221909550939b1f59 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 000828ddb7fd8789a5cadb24cff9f49b821b8fef..2f2c20558031d2d4640b1814e7a538958d5eb64c 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 f3939d3b6ebaf77991987f81725b567a447abfca..281f2176833a14a235cd5ce2db4f480d59ea2187 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 66e40befe7c03f835565748e1392ab1f6cc877f4..17798bb01e2d24637ab177fd960be02d9ebe09c0 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 6d9e1c9fcf23ca53afd49711b85ee785f2fa5259..c093a75160315c9ad2e0639f347314f16214ea7a 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 f808ec611a33c642c512cdeb84b950b2c6853996..a538e53276bdd6b38460ba142411938e6c71f289 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 c6430af55608d10d5d07bde98fdda23bf95a738b..24e76500a6a5c9daee93d0fe1d31d5d20ed14e84 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 4908769bef6e2849ad6e7a4a6880b58c003e35ba..fc63745ebb848e2467f92c10ef7f67f81ec65209 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 3bb97463e5dae8e16b0bf278fac47425c1962beb..712b5a7e750f9b736183d17ae6051e1717da735e 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 64bcb0e192108faafc419f31cdae473ee593c7e9..8624cc9dda589ad4c46ca9e29f81c83f2380b850 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 0000000000000000000000000000000000000000..f382a252f0d0794952a7362fb41c677742ee42a1 --- /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 f4e1eef283633f80c9adadc57bebb07ea4e5f763..5fffa6681cb213cd8a7c92124afcf5525941a97d 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 704262da5bf57a73e25f4895cf217a749cafa2bc..f44ed8a1a3ef462e5714f43eb35c50483972fb4e 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 4d9f0ef3f8d5b834ae853f6036fd346b222cedc7..69794b1cffbdff52b8fe319c98b31b7a752a36b5 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 0000000000000000000000000000000000000000..877990861fd7997fb0cd35dba25cf783358aa172 --- /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 0fe94b07450cd37427d3b2ce6c05f1f227f2f4ac..ebb50e685da73204880923186124134e64cb10d7 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 fa160c51fe232c05e00e261a8646b41d8e508d68..8be792c673c02e4ee49cdd2aaff2818bf5d1f0ec 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 0000000000000000000000000000000000000000..5701997fd299ec8580e9028d31e97c53c40a950e --- /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 0000000000000000000000000000000000000000..c26d46060183f1cee61b8e38356f933f6f4e1361 --- /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 8e3b0e747ae18765f3afe6d0f2ee918b66a93538..2cdf047a10fc7236db97779e5579c0429262b8ba 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 e0bea3b23b6b20f14ac6e83cb6c835b2c7e4c024..0000000000000000000000000000000000000000 --- 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 dd1218282d85fc2f5ae33580889f286be4788f9c..8102375479be562f03553747452472d26ab5e09c 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 62e66e4ad38e782d06a9faf1b26fc2031c9c8fad..009eb488d7b4e77bf27e0c0082a480317ea6c896 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 7dbf1e8f2a317903dcbd4f3e0bd4a0a97ad1e39c..37623caa1d4e1a3fb3706c9b66753a56afe1303d 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 e7d2a595684b6e851acc78e64e788c8015bcdd18..2533014c56079990663fd1bc386eafaf22864b0e 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 0000000000000000000000000000000000000000..f16a0d29c40d915d2ffbdfc91fae4792dc1555c4 --- /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 0000000000000000000000000000000000000000..1103146ed1b7ed084c9560c41d7daf7dd47f4b62 --- /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 a56b49752e3a06db7371dc8798a03fef7aba3c74..3ecc772feaa32c189cff45a4fce5f06824173895 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 0000000000000000000000000000000000000000..56dc6112844ed4ea2411af4aabccaa8b4b8de1c9 --- /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 584b8f6a2966207219e40f2f7ca50c894b1f1ec6..bde30d9041aebcb99b3e7f04974c9bd384c2971a 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 2a199843cb3b9d6c19fe961ffd5287264c8f2f4a..2b0573f2d2d1a54e3130588ea5190476cdbeb739 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 ae0b46d056fe05e1272c8428d8fbdeb0c27cabff..1b3ca7dfc03c0b8c509b954313b3cb7c69553b72 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 333ed411941b199331417285c74e9d9880bcfeac..11bc7620368901672fc1b3de0de1ec8725eb3f65 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 e4938b928dabacec7839929ae1d352cd488ddc6f..74ef55ee8cc8d9bdc5bf806c27d7b0b1ad28fa38 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 0000000000000000000000000000000000000000..631fc08e95eeb8ac6b720976db4bc7614df66f7b --- /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 d9046c55e12ad7e26b677513f34e37d965d0efeb..c838eca50659eb33ca829cce0e6d2719eab621fd 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 c38b97b0e9806405215a7834077cd35e37379d42..297f3d0b5991c7549f2c1df2387dff4757daabd6 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 0000000000000000000000000000000000000000..7eb0f2d41b55160d82faf78013eda56a0cb4f4e5 --- /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 8ce683ec9088e5398b8d0792da06ad92c032a509..3cc4fcc1517b5583b8ee52a742f5da9ffac48aad 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 6a326dba39c60379a3b03a3413b7c151c22d5f7b..bcf43514f45e54fff1d467befc95a8a7f5e3ec18 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 e12b95754edf9ca7c35bd34d2826ef868d27f1af..faf373092d5711c07a2e3ac093c1b8847872493c 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 dc9cb3189d5bfa995e0a631c322bf9b6ad4c0c35..7c4def952104a979400b4b7aae348d5482c6776d 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 f0a48cfb8d4a4f54b38dd80ef0233c704bdbcee9..0a651906cd8ffe861d14f6bce29329d8cb035cf9 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 7d35f1f64a8ea26bcb5e369fdf064999ac15066e..f780e5469d0279d4c04b6462177db60cf6270230 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 6be2dc394cc45cf47d5b8f56133b5c9f5617f3c7..0000000000000000000000000000000000000000 --- 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 a3fa8924df7448892bad5d53b344788597f45404..86924d9b3ca9f25faee618250b41f10f0d2dd1d1 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 00e1d10df10ee1395595d1bcbea0bb0610b36f7c..ffeca99cf9cb5b8191e15ec5df01704ed7cd3b15 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 1e7c7f654b5f96211c3ee590256b54fc5aadbeb8..7f4adeb2be87b483492cbc89e87dd7a51b3df194 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 836deb656a294973efa270f2f31c0334478d7be7..27b2a8f7134fcf63c41abdb477f621a4a0143708 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 8e1514583a253a56f16a40a5711323de6f238206..e06242f7a02406261d0e6566d62dabfd9ce08cd2 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 a184d31233c4583e19e46744128718481ced3057..90fa016615430919ff03eab4f9c5ccfa918f7949 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 2b11ccf58379305ef95bbe5ea5ad6237c4d0b38b..84f7d4fd29131456854b8c803f44bcd10f99e368 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 d3b5541ac4dbf0d3559804ee9f8d51cb72911d84..6a5f7c17b208182aebb824200c567fcb95582f86 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 0861391294b4b1e511ad44b7623f6a52d2f3a53a..dfd3c487713b14417a29ea7a94d95b1d33dcac50 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 2f98bc66e9b342ad4eae9eab80a3397c30025b7d..b93295850bcd6ebc4141f7ef044c8d5d18af4ea6 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 00e42fdbba98a8dbf5528fc6caeeed1e512d747e..0d38f1b93e7364c65d92e18d10aa1c5463f2d6a2 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 9b27e8fc7947753015d57c18178803595d4179fb..c677f7371fcaf75e846b76fec46afe81be84bfef 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 32daf108c1ca27efa0c4a76ef1334f9237b8ccd1..bb18da4d4ada3897b520a079b97eb873f326dc4b 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 60af439e94bbc8159aad2c7baab791ee33555c35..2d2c2e2bff25784bef54cb39489e0cc57700ff52 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 b372cd5b2dd22dae75e49da255658146ad9772dc..bf1fdbb9a8a8d566d67470dbe8f6cea6e8d462b8 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 15d054c2be2afbbbf2b23899c3eb69d7da6c0dcd..7d22a160574095c0947d78fa19445fb9a8ec82fe 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 a9f786a2a084cb9ebd1034bf5830ffa23618e75c..54d61a047a78b90d82f2e5a4927da46cbe3f4831 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 0000000000000000000000000000000000000000..01df5d32ab1a8096e72af5666acad958a2805871 --- /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 739f1f0a97549d7d64d3790bae99cd9233f82c7f..ef031c4b9f4de558cd51ad08287123c20db86a4d 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 c0c5616db79ab3dbbfed9264a7fd2fa2a2fc9b77..fe65004b32ae360f05f97f91af4fc32170990732 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 b3a57e1cef21b79944a8d5bb2798e14acc6096be..3e8acff00f893d70375d1214cc453e553b7d2cfe 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 d01dc12073509228e659443be404a80d6f20817e..9e64557838eb7dfdd26cac4356d36ecb449e122c 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 0000000000000000000000000000000000000000..eae5240129a51600ec104842d340651abe3bfc3b --- /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 c4e7fb23b8993b4a37e1454440eb33e2a6d77522..90e2723a9067ee6caa388dc6c1655145cb391d42 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 0d9f3834c615ef33ad7b25d1ee57a9b0a96dbc19..8db48a7b3e61fbf0ed89428137e8d32bf2a31c0c 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 + ]; -in -kdeWrapper -{ - inherit unwrapped; - targets = [ "bin/yakuake" ]; - paths = [ konsole.unwrapped ]; + meta = { + homepage = https://yakuake.kde.org; + description = "Quad-style terminal emulator for KDE"; + maintainers = with lib.maintainers; [ fridh ]; + }; } diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix index dd3903cde27100e7ff8e817de7d6b720701f2333..bd891ff8493f7c4220faffa542cced38e35ea600 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 a646cd10b6dfc4eefe5bb7704da5e9dd9ed3e855..8a460f890167132183a9c29e162b19cb126aaed1 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 2e644453dcb985a85569ec7aeb8be842b96752c1..34508da0e371c89f38b757657bd41b635db710aa 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 23a654b4d51047b0d1456f3613c9114042c77ac9..c9472f35667270eb898257c1bc0658d8a462aae4 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 4912489d6b358e50a5ff63bb9d0f585445ac2c0d..2dda88f409b50992d72be81d181ad357d2a5cb3e 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 89d8d5badb0a032f482c6be4732cbb288ed7388e..a415cde3c7ee9ea1e894c6f53c1a87bc0d8f1144 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 75f2dcda6a62d33ad09cfb83379f90071d5e227a..54fee5847e18f8b0e6d49c80a77f26676c3a9b2b 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 dac821a4898f56ce72f01f306bb591387e91eade..42d606ae2248c39d99eacd06e0a9a1e4e500e95a 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 cfc8951eef10007503082dd03f185d89c2e45c62..7aa02e2c57452cccf8546f115ac19bd6841ab89c 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; + version = chromium.browser.version; + + inherit (stdenv.lib) versionAtLeast; + in stdenv.mkDerivation { - name = "chromium${suffix}-${chromium.browser.version}"; + name = "chromium${suffix}-${version}"; + inherit version; + + buildInputs = [ + makeWrapper ed - 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 0000000000000000000000000000000000000000..7605df6b145afcd08fd342186ce794eaaf8c5906 --- /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 0000000000000000000000000000000000000000..cb978d58a060bb7302a13a9c66c63e2f5690400a --- /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 0000000000000000000000000000000000000000..ec37a2816d5194553f4aae0184fa502ea12530e6 --- /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 0000000000000000000000000000000000000000..6cfd08d58c237c5bc4f2a20f426a3d45bbf32302 --- /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 0000000000000000000000000000000000000000..9f187752ea675096bae8b5f52892f0682010f52c --- /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 0000000000000000000000000000000000000000..093598465c47e6c64e6aaa19e1abf460747e937f --- /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 10a04b7ec8dc3ea47347ca6ece7aba825fceb5dd..0000000000000000000000000000000000000000 --- 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 581a45da3d8c62429e0b734c2f880e7e13b0e7dc..639425477c9e16077ef268f2cc18b0e7ea7057f4 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 2800a3ed5d21ec1d744fd4fab4bd5d851bb6c201..0cf6df0e5cc6d20a25bc6fd651d7e0c48820dbd0 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 a54e5e0c37011272db6929ac4c5cb56d486b651c..b056bdedb41e358c4d9968538c2e60e23fe7d7a7 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 60935b9605fe2198b53b2b7e5612f1f3202de623..137b463a1e1d54cf4ae15245b05b9897ddbfd4f0 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 cc34318edf3cd49d5770900e1a64be13a37fbfd4..b60454c4a42dec7c1e1261327f2b70e4f1ea75d3 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; - - 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} - ''; - }; + ++ stdenv.lib.optional enablePython python + ++ stdenv.lib.optional enablePerl perl + ; + + 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 0000000000000000000000000000000000000000..9356794bb5d69f63d4e2ae83436bc0eba53189ff --- /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 fec1665f8b7c1f50db3be86e796f9676b2b31e20..23316dc3aeb2d7e5ddcde76d96869c4eabecc7ab 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/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/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/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/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/51.0b8/linux-x86_64/uz/firefox-51.0b8.tar.bz2"; + { 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/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/51.0b8/linux-i686/nb-NO/firefox-51.0b8.tar.bz2"; + { 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/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/51.0b8/linux-i686/uz/firefox-51.0b8.tar.bz2"; + { 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 5bd275ba31d53ca274edbf032c1432e0ce3eb00c..31bc01ea14ad5a7b9b79f8629aefbd906d4eab34 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 3193490b639f96d84b6dd8ddb1dbf8294bec06d8..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..83f9a1329bea2f8524f258346368564e3854a990 --- /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 0000000000000000000000000000000000000000..a1d5df5029c1b3ae3c16b76e606ca10dd1fbbbdd --- /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 f2ca9eaa622bbb132086e589ce8b91528d6ef012..7a7d1368cb230e5060509b1627de0c4f2e55aad6 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 32d3a8e1540ff6a4d9fd77414f10143193b67acc..9a4d90701b28ff0b01a6c6f60fdffee0d6cebcd3 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 b1d77afa8f1fce3459c0855086006f3406141a17..e013f54a39ea73edf27b6f68395d5d813c855694 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 f504c3c2b33305c450e950a1b306a99a3c7adfa2..f097d748d48c161e1ec87159f700eacb332787e2 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 fb4b33ef71ab4c27e93b66ad8042e50a5696b818..0f6c4ed36d40ad12f54d0cd9fbebd06025a76dd7 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 1d287f4100c2f8a15c9826d390babbd9aae5b7ca..ce9ac961c92a8f97e29b55bcb87bb6834e854d47 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 c33bff60e01e200715dd46cd0b3573e6a99b7c9c..fa98f2a9e7857ecd1b67fdd7a023bcfa4f4d4503 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 039d8bbe4060d3ff82ce237a1edd7dcccd9576fd..48d06d644dda85b06eeaacd2ec03605165f73cfa 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 bf0b91544ad0e77a6363e9e67ec6085f0c1fb146..8e24a3fb619ad305fc8e01c54b1db2b37b8c9743 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 4d65a7e9a629744cb004669b1355f606afd7a807..cf00f303e99383ea634301dde597d6cb03b2ef60 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 81a05b36016291b6bbd0ef3b9aeada2bddbdfd15..30bae8792c2e053a0914a4b7dbed9ab8e17cebfc 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 07e152e91dbc63c1bca6245ba5a8241ccf7e3b5e..a5bfda9f26c97ecc6b275d6c594b82461e9cf531 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 85012f8f7091f832589839e0f3f845094e4e3b63..008c359648322826e709ead570417f195966cf8f 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 2863ee876e7a81b9ea7acbd8b5891528b695244c..52a2ce9164c98a8c95fa5b5f0691f45d2f3a2c81 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 bd334356df5c9e98ffde11459197959ebada7dfb..d5e6e47e92856630d7b88379c810adef724bf9e3 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 eb26811cfb819696fcaf2a2053fc7a09b77400ba..da3c826adcd7f58a92a8d99b5b8ca6969930c460 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 0000000000000000000000000000000000000000..4464d490bc828e7ae80f9a62768cb2c78cb8690c --- /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 0000000000000000000000000000000000000000..508ab6ec432eec58030343d0ee23b374d932f970 --- /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 0000000000000000000000000000000000000000..86c2f53b9adde7e3cb2698b0725a157ac1665c48 --- /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 9bf8a184e72ad497b392b59ded7d1ef688967778..0000000000000000000000000000000000000000 --- 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 55dfb05cb3ea66c9ab3c87c03f8c520b76b2768d..c654723f4c2c0fecd7a05af378aa7ef76922dd98 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 c98910cb08c2fd8b0bd67a2c5eeac2eb8ef43f4f..abb7013d1062668587e2481089aae6d0c9bbeb0c 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 0000000000000000000000000000000000000000..036d57b601daa45fcd401771017fceca8c43d8a2 --- /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 0000000000000000000000000000000000000000..8d2886fbfa944a3004d7740be9fc60d896fd9798 --- /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 0000000000000000000000000000000000000000..6242671536695b2dd0f114d62c1f5d78676e93cc --- /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 ed07225dd8df5c33293af51d3de9c54a9713a45b..410e886636083c7567c4d7855d90683cd1199546 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 0000000000000000000000000000000000000000..542bcbc41b0d7b9e1ab46f43966b54aff92f26d9 --- /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 0000000000000000000000000000000000000000..6ef6206c4f4a9672641f2579dfb6af897cf2e9f9 --- /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 767cc289b5f626eeb0b862911c781303b65c6ca4..0000000000000000000000000000000000000000 --- 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 637041379dbd1b70a65288422c0ef54f2519f90c..f65e2fe1851b3802a0ce1c4b6240b5510e1de96d 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 188ccdd71d4e3e02b3edb2fee47cb7ab918ed690..33a1e8a5c08e28334b29dcc89ad3b38f28c6aac5 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 60b6b7384387f284c2f51f9edfc6419ae414c8a0..fe51488c7066f6687ef680d6bfaa4f7768ef205c 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 bdff04cb0738d226301ff3a1a8ffb2018e17a6db..a7205f1bc7af8030b98fc40d2907c68aea812ead 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 b2d70b1f767c8baeca9c76cd54cb24a6f7fecfe3..95ad83cb3b17a98e61eda9ea2f92887f76b438ae 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 a73ec99cb9fb94daf37eeec5e815b8ae6abc3222..5d47302960f76770a0427938adb8aa98cf50d064 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 7d6b3749904bc660dd155c57eee4dbda83166ab0..0000000000000000000000000000000000000000 --- 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 da82dac001916a96d8427863b0e4072b2666e404..1656e5a09a6b69d549df256179a704beb33a4400 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 55ebb580f52b3eb223347c0b5e932c6b94a4b8c3..9af4cf3f0ed65cdf0c9989c90cb45047a147c9fa 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 31ed8946529c20f7a0a10fba3e525ed91ebb1e32..6767a0bd724064e648a9a96e753e4b410e0dd510 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 bac0cc37af337ca51da1d7ce44f87bd80a4a418c..5b543854473dda84e01fc6af982e539139bfc9d9 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 ea25fa6ccb5713f571e9e643b159803ec0e062bf..ff7cb245ae2a083aaa1ae63690a5854aa1fb0ea4 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 0000000000000000000000000000000000000000..7f17bd57c19469c56a58f146449ccbecff6a7912 --- /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 69fe6a1730aacb172bd78954b7b5ce4bab7a6612..e8686ade59008e88a01189e59fe35bf25d1a8d18 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 914ca259675c783f4a415db9d0ec77e13665f57a..49cac6d50635e2df67e4b650d1259742100a3da3 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 651d00e57108d3a4974024df72265afeff3c4535..116e74326908bf9e83e09cc120daa6baf380dba7 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 f4a4588dbe41798a6129a2b697e8170e1321d346..cf7318ecb27398f348f911580559ec9f06b041e2 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 1edb4a755d8912c171b4421a6cadfe333a0163b2..642c660edb69e4385a7968f5322626210397693d 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 78e374b8d6bcd9eb67ca50e877bdf33ae5676b21..a6fea024b087e775589f2133a9eb47d102e05f39 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 + "'"; - - 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: +- int status = os::spawn("cp", {"cp", sourcePath, destinationPath}); ++ int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath}); + + 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}; - - 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( +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 << "'"; + + #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 9d17443ac889a0973357a386ee66156504b7c339..00ee3a3771eb47af2a91a9906ef4dfcbfe965f26 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 1d39534bc16c4e20c6cab01722d4705718b946e5..e39bc59709e5c211da3ff33f95e5e740a82e2306 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 403457bb4a61ad2825b7260cf26335760b17a546..fdc97733c77326ad1978cc8f1d668141b666e8e7 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 a0df23e6f62338be0f319e8020c65ba9ba51716d..c276c2e752fd5d535b34833fe2894af270a6a073 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 c99643beb90d5495553bc4b49f06961eb398ea8a..49c57b470289ff990c1ebef648b1cb2cf71fdcd9 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 0000000000000000000000000000000000000000..dd4a36807ea15d8a84323c6a7921c2e6f306ea4c --- /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 0000000000000000000000000000000000000000..9f7b5e317fe3c3b7e514a37b591634253491e2d2 --- /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 76984fed340461e433cfa8c8f40ab6417b38da78..e6e3585a4d13b7316f14675dd064133aeef2ab0a 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 0000000000000000000000000000000000000000..39a69e4a389fae3315790fddd93fff2eacf24384 --- /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 0000000000000000000000000000000000000000..d29bd964860976fc7c6e2de9e45396cfb2559168 --- /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 0000000000000000000000000000000000000000..8d41df24d8cecb343c4c5085cd81b27c79012c46 --- /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 0000000000000000000000000000000000000000..d857e4f187003d340287c9ff41e9cc58a748cbfa --- /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 <