Merge remote-tracking branch 'upstream/master' into HEAD

This commit is contained in:
Frederik Rietdijk 2017-09-02 11:10:52 +02:00
commit d0dab8a330
341 changed files with 9615 additions and 5193 deletions

View file

@ -23,7 +23,7 @@ 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
* firefox: 54.0.1 -> 55.0
* nixos/hydra: add bazBaz option
Dual baz behavior is needed to do foo.

View file

@ -1 +1 @@
17.09
18.03

View file

@ -254,7 +254,7 @@ bound to the variable name <varname>e2fsprogs</varname> in
dash) — e.g., <literal>"hello-0.3.1rc2"</literal>.</para></listitem>
<listitem><para>If a package is not a release but a commit from a repository, then
the version part of the name <emphasis>must</emphasis> be the date of that
the version part of the name <emphasis>must</emphasis> be the date of that
(fetched) commit. The date must be in <literal>"YYYY-MM-DD"</literal> format.
Also append <literal>"unstable"</literal> to the name - e.g.,
<literal>"pkgname-unstable-2014-09-23"</literal>.</para></listitem>
@ -365,7 +365,7 @@ splitting up an existing category.</para>
<varlistentry>
<term>If its a (set of) <emphasis>tool(s)</emphasis>:</term>
<listitem>
<para>(A tool is a relatively small program, especially one intented
<para>(A tool is a relatively small program, especially one intended
to be used non-interactively.)</para>
<variablelist>
<varlistentry>
@ -456,7 +456,7 @@ splitting up an existing category.</para>
<varlistentry>
<term>If its a <emphasis>window manager</emphasis>:</term>
<listitem>
<para><filename>applications/window-managers</filename> (e.g. <filename>awesome</filename>, <filename>compiz</filename>, <filename>stumpwm</filename>)</para>
<para><filename>applications/window-managers</filename> (e.g. <filename>awesome</filename>, <filename>stumpwm</filename>)</para>
</listitem>
</varlistentry>
<varlistentry>
@ -608,7 +608,7 @@ evaluate correctly.</para>
</section>
<section xml:id="sec-sources"><title>Fetching Sources</title>
<para>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 <literal>fetchurl</literal>. Note that you should also
prefer protocols which have a corresponding proxy environment variable.
@ -661,9 +661,9 @@ src = fetchFromGitHub {
</section>
<section xml:id="sec-patches"><title>Patches</title>
<para>Only patches that are unique to <literal>nixpkgs</literal> should be
<para>Only patches that are unique to <literal>nixpkgs</literal> should be
included in <literal>nixpkgs</literal> source.</para>
<para>Patches available online should be retrieved using
<para>Patches available online should be retrieved using
<literal>fetchpatch</literal>.</para>
<para>
<programlisting>

View file

@ -867,6 +867,62 @@ use the following to get the `scientific` package build with `integer-simple`:
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.
#### buildStrictly
Applying `haskell.lib.buildStrictly` to a Haskell package enables the `-Wall`
and `-Werror` GHC options 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 <nixpkgs> {}; in pkgs.haskell.lib.checkUnusedPackages {} pkgs.haskellPackages.scientific'
these derivations will be built:
/nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv
...
detected package components
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- library
- testsuite(s): test-scientific
- benchmark(s): bench-scientific*
(component names suffixed with '*' are not configured to be built)
library
~~~~~~~
The following package dependencies seem redundant:
- ghc-prim-0.5.0.0
testsuite(test-scientific)
~~~~~~~~~~~~~~~~~~~~~~~~~~
no redundant packages dependencies found
builder for /nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv failed with exit code 1
error: build of /nix/store/3lc51cxj2j57y3zfpq5i69qbzjpvyci1-scientific-0.3.5.1.drv failed
```
As you can see, `packunused` finds out that although the testsuite component has
no redundant dependencies the library component of `scientific-0.3.5.1` depends
on `ghc-prim` which is unused in the library.
## Other resources
- The Youtube video [Nix Loves Haskell](https://www.youtube.com/watch?v=BsBhi_r-OeE)

View file

@ -590,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

View file

@ -17,7 +17,7 @@ into the `environment.systemPackages` or bring them into scope with
`nix-shell -p rustStable.rustc -p rustStable.cargo`.
There are also `rustBeta` and `rustNightly` package sets available.
These are not updated very regulary. For daily builds use either rustup from
These are not updated very regularly. For daily builds use either rustup from
nixpkgs or use the [Rust nightlies overlay](#using-the-rust-nightlies-overlay).
## Packaging Rust applications

View file

@ -78,7 +78,7 @@ Additional information.
<listitem>
<para>
<command>firefox: 3.0 -> 3.1.1</command>
<command>firefox: 54.0.1 -> 55.0</command>
</para>
</listitem>
@ -223,6 +223,133 @@ Additional information.
</itemizedlist>
</section>
<section>
<title>Pull Request Template</title>
<para>
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.
</para>
<para>When a PR is created, it will be pre-populated with some checkboxes detailed below:
</para>
<section>
<title>Tested using sandboxing</title>
<para>
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
<function>fetch*</function> 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 <link
xlink:href="https://nixos.org/nix/manual/#description-45">build-use-sandbox</link>
in Nix manual for details.
</para>
<para>
Sandboxing is not enabled by default in Nix due to a small performance
hit on each build. In pull requests for <link
xlink:href="https://github.com/NixOS/nixpkgs/">nixpkgs</link> people
are asked to test builds with sandboxing enabled (see <literal>Tested
using sandboxing</literal> in the pull request template) because
in<link
xlink:href="https://nixos.org/hydra/">https://nixos.org/hydra/</link>
sandboxing is also used.
</para>
<para>
Depending if you use NixOS or other platforms you can use one of the
following methods to enable sandboxing <emphasis role="bold">before</emphasis> building the package:
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Globally enable sandboxing on NixOS</emphasis>:
add the following to
<filename>configuration.nix</filename>
<screen>nix.useSandbox = true;</screen>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Globally enable sandboxing on non-NixOS platforms</emphasis>:
add the following to: <filename>/etc/nix/nix.conf</filename>
<screen>build-use-sandbox = true</screen>
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section>
<title>Built on platform(s)</title>
<para>
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.
</para>
</section>
<section>
<title>Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)</title>
<para>
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 <link
xlink:href="https://nixos.org/nixos/manual/index.html#sec-nixos-tests">section
in the NixOS manual</link>.
</para>
</section>
<section>
<title>Tested compilation of all pkgs that depend on this change using <command>nox-review</command></title>
<para>
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 <command>nox-review</command>
utility can look for and build all dependencies either based on
uncommited changes with the <literal>wip</literal> option or specifying a
github pull request number.
</para>
<para>
review uncommitted changes:
<screen>nix-shell -p nox --run nox-review wip</screen>
</para>
<para>
review changes from pull request number 12345:
<screen>nix-shell -p nox --run nox-review pr 12345</screen>
</para>
</section>
<section>
<title>Tested execution of all binary files (usually in <filename>./result/bin/</filename>)</title>
<para>
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
<filename>./result/bin</filename> and running any files in there, or at a
minimum, the main executable for the package. For example, if you make a change
to <package>texlive</package>, you probably would only check the binaries
associated with the change you made rather than testing all of them.
</para>
</section>
<section>
<title>Meets nixpkgs contribution standards</title>
<para>
The last checkbox is fits <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md">CONTRIBUTING.md</link>.
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.
</para>
</section>
</section>
<section>
<title>Hotfixing pull requests</title>

View file

@ -547,6 +547,7 @@
smironov = "Sergey Mironov <grrwlf@gmail.com>";
snyh = "Xia Bin <snyh@snyh.org>";
solson = "Scott Olson <scott@solson.me>";
sorpaas = "Wei Tang <hi@that.world>";
spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
spencerjanssen = "Spencer Janssen <spencerjanssen@gmail.com>";
spinus = "Tomasz Czyż <tomasz.czyz@gmail.com>";

View file

@ -17,6 +17,8 @@ rec {
(type == "directory" && (baseName == ".git" || baseName == ".svn" || baseName == "CVS" || baseName == ".hg")) ||
# Filter out backup files.
lib.hasSuffix "~" baseName ||
builtins.match "^.*\.sw[a-z]$" baseName != null ||
# Filter out generates files.
lib.hasSuffix ".o" baseName ||
lib.hasSuffix ".so" baseName ||

View file

@ -70,6 +70,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);

View file

@ -10,7 +10,7 @@
<title>Release process</title>
<para>
Going through an example of releasing NixOS 15.09:
Going through an example of releasing NixOS 17.09:
</para>
<section xml:id="one-month-before-the-beta">
@ -18,13 +18,13 @@
<itemizedlist spacing="compact">
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
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.
</para>
</listitem>
</itemizedlist>
@ -32,64 +32,6 @@
<section xml:id="at-beta-release-time">
<title>At beta release time</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Rename <literal>rl-unstable.xml</literal> -&gt;
<literal>rl-1509.xml</literal>.
</para>
</listitem>
<listitem>
<para>
<literal>git tag -a -m &quot;Release 15.09-beta&quot; 15.09-beta &amp;&amp; git push --tags</literal>
</para>
</listitem>
<listitem>
<para>
From the master branch run <literal>git checkout -B release-15.09</literal>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18">
Make sure channel is created at http://nixos.org/channels/.
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/settings/branches">
Lock the branch on github (so developers cant force push)
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">bump
<literal>system.defaultChannel</literal> attribute in
<literal>nixos/modules/misc/version.nix</literal></link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">update
<literal>versionSuffix</literal> in
<literal>nixos/release.nix</literal></link>, use
<literal>git log --format=%an|wc -l</literal> to get commit
count
</para>
</listitem>
<listitem>
<para>
<literal>echo -n &quot;16.03&quot; &gt; .version</literal> in
master.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">pick
a new name for unstable branch.</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create
@ -99,26 +41,81 @@
</listitem>
<listitem>
<para>
Use https://lwn.net/Vulnerabilities/ and
<link xlink:href="https://github.com/NixOS/nixpkgs/search?utf8=%E2%9C%93&amp;q=vulnerabilities&amp;type=Issues">triage vulnerabilities in an issue</link>.
<literal>git tag -a -s -m &quot;Release 17.09-beta&quot; 17.09-beta &amp;&amp; git push --tags</literal>
</para>
</listitem>
<listitem>
<para>
Create two Hydra jobsets: release-15.09 and release-15.09-small with <literal>stableBranch</literal> set to false
From the master branch run <literal>git checkout -B release-17.09</literal>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18">
Make sure a channel is created at http://nixos.org/channels/.
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/settings/branches">
Let a GitHub nixpkgs admin lock the branch on github for you.
(so developers cant force push)
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">
Bump the <literal>system.defaultChannel</literal> attribute in
<literal>nixos/modules/misc/version.nix</literal>
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">
Update <literal>versionSuffix</literal> in
<literal>nixos/release.nix</literal></link>, use
<literal>git log --format=%an|wc -l</literal> to get the commit
count
</para>
</listitem>
<listitem>
<para>
<literal>echo -n &quot;18.03&quot; &gt; .version</literal> on
master.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">
Pick a new name for the unstable branch.
</link>
</para>
</listitem>
<listitem>
<para>
Create a new release notes file for the upcoming release + 1, in this
case <literal>rl-1803.xml</literal>.
</para>
</listitem>
<listitem>
<para>
Create two Hydra jobsets: release-17.09 and release-17.09-small with <literal>stableBranch</literal> set to false.
</para>
</listitem>
<listitem>
<para>
Edit changelog at
<literal>nixos/doc/manual/release-notes/rl-1509.xml</literal>
<literal>nixos/doc/manual/release-notes/rl-1709.xml</literal>
(double check desktop versions are noted)
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Get all new NixOS modules
<literal>git diff release-14.12..release-15.09 nixos/modules/module-list.nix|grep ^+</literal>
<literal>git diff release-17.03..release-17.09 nixos/modules/module-list.nix|grep ^+</literal>
</para>
</listitem>
<listitem>
@ -130,9 +127,25 @@
</listitem>
</itemizedlist>
</section>
<section xml:id="during-beta">
<title>During Beta</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Monitor the master branch for bugfixes and minor updates
and cherry-pick them to the release branch.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="before-the-final-release">
<title>Before the final release</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Re-check that the release notes are complete.
</para>
</listitem>
<listitem>
<para>
Release Nix (currently only Eelco Dolstra can do that).

View file

@ -106,6 +106,9 @@ rmdir /var/lib/ipfs/.ipfs
<para>
The <literal>mysql</literal> default <literal>dataDir</literal> has changed from <literal>/var/mysql</literal> to <literal>/var/lib/mysql</literal>.
</para>
<para>
Radicale's default package has changed from 1.x to 2.x. Instructions to migrate can be found <link xlink:href="http://radicale.org/1to2/"> here </link>. It is also possible to use the newer version by setting the <literal>package</literal> to <literal>radicale2</literal>, which is done automatically when <literal>stateVersion</literal> is 17.09 or higher.
</para>
</listitem>
<listitem>
<para>
@ -167,6 +170,20 @@ rmdir /var/lib/ipfs/.ipfs
Refer to the description of the options for more details.
</para>
</listitem>
<listitem>
<para>
The <literal>compiz</literal> window manager and package was
removed. The system support had been broken for several years.
</para>
</listitem>
<listitem>
<para>
Touchpad support should now be enabled through
<literal>libinput</literal> as <literal>synaptics</literal> is
now deprecated. See the option
<literal>services.xserver.libinput.enable</literal>.
</para>
</listitem>
</itemizedlist>
<para>Other notable improvements:</para>

View file

@ -0,0 +1,46 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-18.03">
<title>Release 18.03 (“Impala”, 2018/03/??)</title>
<para>In addition to numerous new and upgraded packages, this release
has the following highlights: </para>
<itemizedlist>
<listitem>
<para>
</para>
</listitem>
</itemizedlist>
<para>The following new services were added since the last release:</para>
<itemizedlist>
<listitem>
<para></para>
</listitem>
</itemizedlist>
<para>When upgrading from a previous release, please be aware of the
following incompatible changes:</para>
<itemizedlist>
<listitem>
<para>
</para>
</listitem>
</itemizedlist>
<para>Other notable improvements:</para>
<itemizedlist>
<listitem>
<para>
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -45,19 +45,7 @@ let
raw = "img";
};
# Copied from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/cd-dvd/channel.nix
# TODO: factor out more cleanly
# 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;
channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
mkdir -p $out

View file

@ -34,6 +34,7 @@ with lib;
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; };
};
};

View file

@ -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

View file

@ -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 ];

View file

@ -1,5 +1,5 @@
{
x86_64-linux = "/nix/store/avwiw7hb1qckag864sc6ixfxr8qmf94w-nix-1.11.13";
i686-linux = "/nix/store/8wv3ms0afw95hzsz4lxzv0nj4w3614z9-nix-1.11.13";
x86_64-darwin = "/nix/store/z21lvakv1l7lhasmv5fvaz8mlzxia8k9-nix-1.11.13";
x86_64-linux = "/nix/store/xrqssm90gsrnqdn79rpfcs6dwx8597d2-nix-1.11.14";
i686-linux = "/nix/store/3vjphivqs2iy6m9yb3bd80nd3518510k-nix-1.11.14";
x86_64-darwin = "/nix/store/4j9jacx8mjd4jlj53wvymyhxq7dqyj5d-nix-1.11.14";
}

View file

@ -605,6 +605,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 +618,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

View file

@ -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

View file

@ -226,6 +226,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
@ -550,7 +551,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
@ -631,7 +631,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
@ -681,6 +680,7 @@
./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/exfat.nix

View file

@ -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 ];

View file

@ -169,12 +169,12 @@ in
"source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
}
${zshAliases}
${cfge.interactiveShellInit}
${cfg.interactiveShellInit}
${zshAliases}
${cfg.promptInit}
# Read system-wide modifications.

View file

@ -27,7 +27,13 @@ in
noDestroy = mkOption {
type = types.bool;
default = false;
description = "Does all changes to the filesystem except destroy";
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.";
};
};
};
@ -44,7 +50,7 @@ in
path = with pkgs; [ zfs mbuffer openssh ];
serviceConfig = {
ExecStart = "${pkgs.znapzend}/bin/znapzend --logto=${cfg.logTo} --loglevel=${cfg.logLevel} ${optionalString cfg.noDestroy "--nodestroy"}";
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";
};

View file

@ -96,10 +96,21 @@ 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" ]
++ optional hasDocker "docker.service";

View file

@ -108,10 +108,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"; }
];
};
@ -247,6 +250,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}" ]
@ -256,6 +261,7 @@ in
then
cat ${database.schema}/mysql-databases/*.sql
fi
''}
) | ${mysql}/bin/mysql -u root -N
fi
'') cfg.initialDatabases}

View file

@ -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" ];
};
};
}

View file

@ -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}";
};
};

View file

@ -1,15 +1,19 @@
{ config, lib, pkgs, ... }:
with lib;
let
inherit (pkgs) ipfs runCommand makeWrapper;
cfg = config.services.ipfs;
ipfsFlags = ''${if cfg.autoMigrate then "--migrate" else ""} ${if cfg.enableGC then "--enable-gc" else ""} ${toString cfg.extraFlags}'';
ipfsFlags = toString ([
#(optionalString cfg.autoMount "--mount")
(optionalString cfg.autoMigrate "--migrate")
(optionalString cfg.enableGC "--enable-gc")
(optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false")
(optionalString (cfg.defaultMode == "offline") "--offline")
(optionalString (cfg.defaultMode == "norouting") "--routing=none")
] ++ cfg.extraFlags);
# Before Version 17.09, ipfs would always use "/var/lib/ipfs/.ipfs" as it's dataDir
defaultDataDir = if versionAtLeast config.system.stateVersion "17.09" then
"/var/lib/ipfs" else
"/var/lib/ipfs/.ipfs";
@ -17,11 +21,48 @@ let
# 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}
makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" \
--set IPFS_PATH ${cfg.dataDir} \
--prefix PATH : /run/wrappers/bin
'';
in
{
commonEnv = {
environment.IPFS_PATH = cfg.dataDir;
path = [ wrapped ];
serviceConfig.User = cfg.user;
serviceConfig.Group = cfg.group;
};
baseService = recursiveUpdate commonEnv {
wants = [ "ipfs-init.service" ];
preStart = ''
ipfs --local config Addresses.API ${cfg.apiAddress}
ipfs --local config Addresses.Gateway ${cfg.gatewayAddress}
'' + optionalString false/*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 <<EOF
${builtins.toJSON value}
EOF
ipfs --local config --json "${concatStringsSep "." path}" "$value"
'')
cfg.extraConfig)
);
serviceConfig = {
ExecStart = "${wrapped}/bin/ipfs daemon ${ipfsFlags}";
Restart = "on-failure";
RestartSec = 1;
} // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
};
in {
###### interface
@ -63,6 +104,24 @@ in
'';
};
#autoMount = mkOption {
# type = types.bool;
# default = false;
# description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
#};
ipfsMountDir = mkOption {
type = types.str;
default = "/ipfs";
description = "Where to mount the IPFS namespace to";
};
ipnsMountDir = mkOption {
type = types.str;
default = "/ipns";
description = "Where to mount the IPNS namespace to";
};
gatewayAddress = mkOption {
type = types.str;
default = "/ip4/127.0.0.1/tcp/8080";
@ -91,11 +150,41 @@ in
'';
};
extraConfig = mkOption {
type = types.attrs;
description = toString [
"Attrset of daemon configuration to set using `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 {
type = types.listOf types.str;
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 = 256*1024;
};
};
};
@ -115,108 +204,56 @@ 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" ];
environment.IPFS_PATH = cfg.dataDir;
path = [ pkgs.ipfs pkgs.su pkgs.bash ];
preStart = ''
install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}
'' + optionalString false/*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 = ''
script = ''
if [[ ! -f ${cfg.dataDir}/config ]]; then
${ipfs}/bin/ipfs init ${optionalString cfg.emptyRepo "-e"}
ipfs init ${optionalString cfg.emptyRepo "-e"}
fi
${ipfs}/bin/ipfs --local config Addresses.API ${cfg.apiAddress}
${ipfs}/bin/ipfs --local config Addresses.Gateway ${cfg.gatewayAddress}
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
Type = "oneshot";
RemainAfterExit = true;
PermissionsStartOnly = true;
};
};
systemd.services.ipfs = {
# TODO These 3 definitions possibly be further abstracted through use of a function
# like: mutexServices "ipfs" [ "", "offline", "norouting" ] { ... shared conf here ... }
systemd.services.ipfs = recursiveUpdate baseService {
description = "IPFS Daemon";
wantedBy = mkIf (cfg.defaultMode == "online") [ "multi-user.target" ];
after = [ "network.target" "local-fs.target" "ipfs-init.service" ];
conflicts = [ "ipfs-offline.service" "ipfs-norouting.service"];
wants = [ "ipfs-init.service" ];
environment.IPFS_PATH = cfg.dataDir;
path = [ pkgs.ipfs ];
serviceConfig = {
ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags}";
User = cfg.user;
Group = cfg.group;
Restart = "on-failure";
RestartSec = 1;
};
};
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"];
wants = [ "ipfs-init.service" ];
environment.IPFS_PATH = cfg.dataDir;
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 = {
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"];
wants = [ "ipfs-init.service" ];
environment.IPFS_PATH = cfg.dataDir;
path = [ pkgs.ipfs ];
serviceConfig = {
ExecStart = "${ipfs}/bin/ipfs daemon ${ipfsFlags} --routing=none";
User = cfg.user;
Group = cfg.group;
Restart = "on-failure";
RestartSec = 1;
};
};
};

View file

@ -130,7 +130,8 @@ in {
default = { inherit networkmanager modemmanager wpa_supplicant
networkmanager_openvpn networkmanager_vpnc
networkmanager_openconnect networkmanager_fortisslvpn
networkmanager_pptp networkmanager_l2tp; };
networkmanager_pptp networkmanager_l2tp
networkmanager_iodine; };
internal = true;
};
@ -255,6 +256,9 @@ 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";
@ -278,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;

View file

@ -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 "17.09" config.system.stateVersion 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
<literal>system.stateVersion &lt; 17.09</literal> and version 2.x
otherwise.
'';
};
@ -27,13 +45,13 @@ in
default = "";
description = ''
Radicale configuration, this will set the service
configuration file
configuration file.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.radicale ];
environment.systemPackages = [ cfg.package ];
users.extraUsers = singleton
{ name = "radicale";
@ -52,11 +70,13 @@ 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 = "${cfg.package}/bin/radicale -C ${confFile} -f";
User = "radicale";
Group = "radicale";
};
};
};
meta.maintainers = with lib.maintainers; [ aneeshusa ];
meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
}

View file

@ -122,7 +122,7 @@ in
fi
'';
restartTriggers = [ config.environment.etc.localtime.source ];
restartTriggers = [ config.time.timeZone ];
serviceConfig.ExecStart = "${cronNixosPkg}/bin/cron -n";
};

View file

@ -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 ];
};
}

View file

@ -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";
@ -58,12 +58,12 @@ in {
description = "Deluge BitTorrent WebUI";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.pythonPackages.deluge ];
serviceConfig.ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluge --ui web";
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";

View file

@ -79,16 +79,6 @@
You can safely ignore this, unless you need a plugin that needs JavaScript tracker access.
</para>
</listitem>
<listitem>
<para>
Sending mail from piwik, e.g. for the password reset function, might not work out of the box:
There's a problem with using <command>sendmail</command> from <literal>php-fpm</literal> that is
being investigated at <link xlink:href="https://github.com/NixOS/nixpkgs/issues/26611" />.
If you have (or don't have) this problem as well, please report it. You can enable SMTP as method
to send mail in piwik's <quote>General Settings</quote> > <quote>Mail Server Settings</quote> instead.
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -24,14 +24,17 @@ in {
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.str;
example = "nginx";
type = types.nullOr types.str;
default = null;
example = "lighttpd";
description = ''
Name of the owner of the ${phpSocket} fastcgi socket for piwik.
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.
'';
@ -57,47 +60,43 @@ in {
};
nginx = mkOption {
# TODO: for maximum flexibility, it would be nice to use nginx's vhost_options module
# but this only makes sense if we can somehow specify defaults suitable for piwik.
# But users can always copy the piwik nginx config to their configuration.nix and customize it.
type = types.nullOr (types.submodule {
options = {
virtualHost = mkOption {
type = types.str;
default = "piwik.${config.networking.hostName}";
example = "piwik.$\{config.networking.hostName\}";
description = ''
Name of the nginx virtualhost to use and set up.
'';
};
enableSSL = mkOption {
type = types.bool;
default = true;
description = "Whether to enable https.";
};
forceSSL = mkOption {
type = types.bool;
default = true;
description = "Whether to always redirect to https.";
};
enableACME = mkOption {
type = types.bool;
default = true;
description = "Whether to ask Let's Encrypt to sign a certificate for this vhost.";
};
};
});
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 = { virtualHost = "stats.$\{config.networking.hostName\}"; };
example = {
serverName = "stats.$\{config.networking.hostName\}";
enableACME = false;
};
description = ''
The options to use to configure an nginx virtualHost.
If null (the default), no nginx virtualHost will be configured.
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;
@ -153,10 +152,16 @@ in {
serviceConfig.UMask = "0007";
};
services.phpfpm.poolConfigs = {
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 = ${cfg.webServerUser}
listen.owner = ${socketOwner}
listen.group = root
listen.mode = 0600
user = ${user}
@ -170,12 +175,15 @@ in {
# References:
# https://fralef.me/piwik-hardening-with-nginx-and-php-fpm.html
# https://github.com/perusio/piwik-nginx
${cfg.nginx.virtualHost} = {
root = "${pkgs.piwik}/share";
enableSSL = cfg.nginx.enableSSL;
enableACME = cfg.nginx.enableACME;
forceSSL = cfg.nginx.forceSSL;
"${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";
};
@ -208,7 +216,7 @@ in {
locations."= /piwik.js".extraConfig = ''
expires 1M;
'';
};
}];
};
};

View file

@ -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;
@ -41,6 +59,7 @@ let
${optionalString (cfg.resolver.addresses != []) ''
resolver ${toString cfg.resolver.addresses} ${optionalString (cfg.resolver.valid != "") "valid=${cfg.resolver.valid}"};
''}
${upstreamConfig}
${optionalString (cfg.recommendedOptimisation) ''
# optimisation
@ -74,21 +93,19 @@ let
''}
${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"};
@ -130,22 +147,23 @@ let
vhosts = concatStringsSep "\n" (mapAttrsToList (vhostName: vhost:
let
ssl = with vhost; addSSL || onlySSL || enableSSL;
onlySSL = vhost.onlySSL || vhost.enableSSL;
hasSSL = onlySSL || vhost.addSSL || vhost.forceSSL;
defaultListen = with vhost;
if listen != [] then listen
else if onlySSL || enableSSL then
singleton { addr = "0.0.0.0"; port = 443; ssl = true; }
++ optional enableIPv6 { addr = "[::]"; port = 443; ssl = true; }
else singleton { addr = "0.0.0.0"; port = 80; ssl = false; }
++ optional enableIPv6 { addr = "[::]"; port = 80; ssl = false; }
++ optional addSSL { addr = "0.0.0.0"; port = 443; ssl = true; }
++ optional (enableIPv6 && addSSL) { addr = "[::]"; port = 443; ssl = true; };
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 defaultListen
else filter (x: x.ssl) defaultListen;
if vhost.forceSSL
then filter (x: x.ssl) defaultListen
else defaultListen;
listenString = { addr, port, ssl, ... }:
"listen ${addr}:${toString port} "
@ -155,9 +173,6 @@ let
redirectListen = filter (x: !x.ssl) defaultListen;
redirectListenString = { addr, ... }:
"listen ${addr}:80 ${optionalString vhost.default "default_server"};";
acmeLocation = ''
location /.well-known/acme-challenge {
${optionalString (vhost.acmeFallbackHost != null) "try_files $uri @acme-fallback;"}
@ -175,7 +190,7 @@ let
in ''
${optionalString vhost.forceSSL ''
server {
${concatMapStringsSep "\n" redirectListenString redirectListen}
${concatMapStringsSep "\n" listenString redirectListen}
server_name ${vhost.serverName} ${concatStringsSep " " vhost.serverAliases};
${optionalString vhost.enableACME acmeLocation}
@ -191,9 +206,9 @@ let
${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};
''}
@ -208,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
@ -405,6 +432,16 @@ 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 = {
@ -431,6 +468,35 @@ in
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 config lib;
@ -478,18 +544,15 @@ in
}
{
assertion = all (conf: with conf; !(addSSL && (onlySSL || enableSSL))) (attrValues virtualHosts);
assertion = all (conf: with conf;
!(addSSL && (onlySSL || enableSSL)) &&
!(forceSSL && (onlySSL || enableSSL)) &&
!(addSSL && forceSSL)
) (attrValues virtualHosts);
message = ''
Options services.nginx.service.virtualHosts.<name>.addSSL and
services.nginx.virtualHosts.<name>.onlySSL are mutually esclusive
'';
}
{
assertion = all (conf: with conf; forceSSL -> addSSL) (attrValues virtualHosts);
message = ''
Option services.nginx.virtualHosts.<name>.forceSSL requires
services.nginx.virtualHosts.<name>.addSSL set to true.
Options services.nginx.service.virtualHosts.<name>.addSSL,
services.nginx.virtualHosts.<name>.onlySSL and services.nginx.virtualHosts.<name>.forceSSL
are mutually exclusive.
'';
}
];

View file

@ -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.
'';
};

View file

@ -96,8 +96,9 @@ with lib;
default = false;
description = ''
Whether to add a separate nginx server block that permanently redirects (301)
all plain HTTP traffic to HTTPS. This option needs <literal>addSSL</literal>
to be set to true.
all plain HTTP traffic to HTTPS. This will set defaults for
<literal>listen</literal> to listen on all interfaces on the respective default
ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
'';
};

View file

@ -20,6 +20,7 @@ in
imports = [
./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
./mate.nix
];
options = {

View file

@ -186,7 +186,8 @@ in {
networking.networkmanager.basePackages =
{ inherit (pkgs) networkmanager modemmanager wpa_supplicant;
inherit (gnome3) networkmanager_openvpn networkmanager_vpnc
networkmanager_openconnect networkmanager_fortisslvpn networkmanager_pptp
networkmanager_openconnect networkmanager_fortisslvpn
networkmanager_pptp networkmanager_iodine
networkmanager_l2tp; };
# Needed for themes and backgrounds

View file

@ -0,0 +1,82 @@
{ 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.hicolor_icon_theme
pkgs.mate.mate-icon-theme
] ++
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;
environment.pathsToLink = [ "/share" ];
};
}

View file

@ -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 {

View file

@ -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 <option>--indirect-rendering</option> 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" ];
};
}

View file

@ -11,7 +11,6 @@ in
./2bwm.nix
./afterstep.nix
./bspwm.nix
./compiz.nix
./dwm.nix
./exwm.nix
./fluxbox.nix

View file

@ -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]*$//;

View file

@ -121,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";

View file

@ -221,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

View file

@ -294,7 +294,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}" ]; };

View file

@ -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
'';
};
}

View file

@ -71,7 +71,7 @@ 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);
networkLocalCommands = {
after = [ "network-setup.service" ];

View file

@ -298,6 +298,7 @@ in rec {
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 {};

View file

@ -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");
'';
})

View file

@ -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 =

View file

@ -11,27 +11,47 @@ 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";
# not yet. See #28621
#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=\"<id>\"");
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)\" ]");
# not yet. See #28621
# $getter->mustSucceed("[ -n \"$(cat /ipfs/$ipfsHash | grep fnord)\" ]");
'';
})

View file

@ -1,80 +1,39 @@
let
port = 5232;
radicaleOverlay = self: super: {
radicale = super.radicale.overrideAttrs (oldAttrs: {
propagatedBuildInputs = with self.pythonPackages;
(oldAttrs.propagatedBuildInputs or []) ++ [
passlib
];
});
};
common = { config, pkgs, ...}: {
user = "someuser";
password = "some_password";
port = builtins.toString 5232;
in
import ./make-test.nix ({ pkgs, lib, ... }: {
name = "radicale";
meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
machine = {
services.radicale = {
enable = true;
config = let home = config.users.extraUsers.radicale.home; in ''
[server]
hosts = 127.0.0.1:${builtins.toString port}
daemon = False
[encoding]
[well-known]
config = ''
[auth]
type = htpasswd
htpasswd_filename = /etc/radicale/htpasswd
htpasswd_encryption = bcrypt
[git]
[rights]
[storage]
type = filesystem
filesystem_folder = ${home}/collections
filesystem_folder = /tmp/collections
[logging]
[headers]
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 = with pkgs; let
py = python.withPackages(ps: with ps; [ passlib ]);
in runCommand "htpasswd" {} ''
${py}/bin/python -c "
from passlib.apache import HtpasswdFile
ht = HtpasswdFile(
'$out',
new=True,
default_scheme='bcrypt'
)
ht.set_password('someuser', 'really_secret_password')
ht.save()
"
environment.etc."radicale/htpasswd".source = pkgs.runCommand "htpasswd" {} ''
${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password}
'';
};
in import ./make-test.nix ({ lib, ... }: {
name = "radicale";
meta.maintainers = with lib.maintainers; [ aneeshusa ];
# Test radicale with bcrypt-based htpasswd authentication
nodes = {
py2 = { config, pkgs, ... }@args: (common args) // {
nixpkgs.overlays = [
radicaleOverlay
];
};
py3 = { config, pkgs, ... }@args: (common args) // {
nixpkgs.overlays = [
(self: super: {
python = self.python3;
pythonPackages = self.python3.pkgs;
})
radicaleOverlay
];
};
};
# This tests whether the web interface is accessible to an authenticated user
testScript = ''
for my $machine ($py2, $py3) {
$machine->waitForUnit('radicale.service');
$machine->waitForOpenPort(${builtins.toString port});
$machine->succeed('curl -s http://someuser:really_secret_password@127.0.0.1:${builtins.toString port}/someuser/calendar.ics/');
}
$machine->waitForUnit('radicale.service');
$machine->waitForOpenPort(${port});
$machine->succeed('curl --fail http://${user}:${password}@localhost:${port}/.web/');
'';
})

View file

@ -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;
};
}

View file

@ -14,6 +14,9 @@ rec {
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; };
@ -23,8 +26,8 @@ rec {
go-ethereum = callPackage ./go-ethereum.nix { };
go-ethereum-classic = callPackage ./go-ethereum-classic { };
hivemind = callPackage ./hivemind.nix { withGui = true; };
hivemindd = callPackage ./hivemind.nix { withGui = false; };
hivemind = callPackage ./hivemind.nix { withGui = true; boost = pkgs.boost162; };
hivemindd = callPackage ./hivemind.nix { withGui = false; boost = pkgs.boost162; };
litecoin = callPackage ./litecoin.nix { withGui = true; };
litecoind = callPackage ./litecoin.nix { withGui = false; };

View file

@ -2,16 +2,15 @@
buildGoPackage rec {
name = "go-ethereum-classic-${version}";
version = "3.5.0";
rev = "402c1700fbefb9512e444b32fe12c2d674638ddb";
version = "3.5.86";
goPackagePath = "github.com/ethereumproject/go-ethereum";
subPackages = [ "cmd/evm" "cmd/geth" ];
src = fetchgit {
inherit rev;
rev = "v${version}";
url = "https://github.com/ethereumproject/go-ethereum";
sha256 = "15wji12wqcrgsb1glwwz4jv7rsas71bbxh7750iv2phn7jivm0fi";
sha256 = "1k59hl3qvx4422zqlp259566fnxq5bs67jhm0v6a1zfr1k8iqzwh";
};
goDeps = ./deps.nix;
@ -20,5 +19,6 @@ buildGoPackage rec {
description = "Golang implementation of Ethereum Classic";
homepage = https://github.com/ethereumproject/go-ethereum;
license = with lib.licenses; [ lgpl3 gpl3 ];
maintainers = with lib.maintainers; [ sorpaas ];
};
}

View file

@ -1,23 +1,24 @@
{ aeson, ansi-wl-pprint, base, base16-bytestring
, base64-bytestring, binary, brick, bytestring, containers
, cryptonite, data-dword, deepseq, directory, filepath, ghci-pretty
, here, HUnit, lens, lens-aeson, memory, mtl, optparse-generic
, process, QuickCheck, quickcheck-text, readline, rosezipper
, stdenv, tasty, tasty-hunit, tasty-quickcheck, temporary, text
, text-format, unordered-containers, vector, vty
, mkDerivation, fetchFromGitHub, lib
, ncurses, zlib, bzip2, solc
{ mkDerivation, abstract-par, aeson, ansi-wl-pprint, 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
, unordered-containers, vector, vty
, fetchFromGitHub, lib, makeWrapper
, ncurses, zlib, bzip2, solc, coreutils
}:
lib.overrideDerivation (mkDerivation rec {
pname = "hsevm";
version = "0.3.2";
version = "0.6.4";
src = fetchFromGitHub {
owner = "dapphub";
repo = "hsevm";
rev = "v${version}";
sha256 = "1c6zpphs03yfvyfbv1cjf04qh5q2miq7rpd7kx2cil77msi8hxw4";
sha256 = "01b67k9cam4gvsi07q3vx527m1w6p6xll64k1nl27bc8ik6jh8l9";
};
isLibrary = false;
@ -26,15 +27,16 @@ lib.overrideDerivation (mkDerivation rec {
postInstall = ''
rm -rf $out/{lib,share}
wrapProgram $out/bin/hsevm --add-flags '+RTS -N$((`${coreutils}/bin/nproc` - 1)) -RTS'
'';
extraLibraries = [
aeson ansi-wl-pprint base base16-bytestring base64-bytestring
binary brick bytestring containers cryptonite data-dword deepseq
directory filepath ghci-pretty lens lens-aeson memory mtl
optparse-generic process QuickCheck quickcheck-text readline
rosezipper temporary text text-format unordered-containers vector
vty
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
];
executableHaskellDepends = [
readline zlib bzip2
@ -50,4 +52,5 @@ lib.overrideDerivation (mkDerivation rec {
maintainers = [stdenv.lib.maintainers.dbrock];
}) (attrs: {
buildInputs = attrs.buildInputs ++ [solc];
nativeBuildInputs = attrs.nativeBuildInputs ++ [makeWrapper];
})

View file

@ -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 ];

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
};
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

View file

@ -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 ];

View file

@ -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 ''

View file

@ -20,9 +20,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 = ''

View file

@ -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};

View file

@ -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)

View file

@ -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" ];

View file

@ -7,6 +7,8 @@ stdenv.mkDerivation rec {
sha256 = "18f5v7g66mgarhs476frvayhch7fy4nyjf2xivixc061ipn0m82j";
};
patches = [ ./no_error.patch ];
buildInputs = [
pkgconfig
scons
@ -31,5 +33,3 @@ stdenv.mkDerivation rec {
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -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'] )

View file

@ -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 ];

View file

@ -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";

View file

@ -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,7 +13,17 @@ stdenv.mkDerivation rec {
sha256 = "0vb71w1yq0xwwsclrn2jj9bk8w4n14rfv5c0aw46c11mp8xz7f71";
};
patches = [ ./sqlite.patch ]; # from: https://bugs.gentoo.org/show_bug.cgi?id=622776
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

View file

@ -1,13 +0,0 @@
diff -urN old/src/library/trackcollection.h mixxx-2.0.0/src/library/trackcollection.h
--- old/src/library/trackcollection.h 2017-07-30 00:04:48.511029517 -0400
+++ mixxx-2.0.0/src/library/trackcollection.h 2017-07-30 00:05:03.378699826 -0400
@@ -34,8 +34,7 @@
#include "library/dao/libraryhashdao.h"
#ifdef __SQLITE3__
-typedef struct sqlite3_context sqlite3_context;
-typedef struct Mem sqlite3_value;
+#include <sqlite3.h>
#endif
class TrackInfoObject;

View file

@ -2,12 +2,12 @@
pythonPackages.buildPythonApplication rec {
name = "mopidy-iris-${version}";
version = "3.2.0";
version = "3.3.3";
src = pythonPackages.fetchPypi {
inherit version;
pname = "Mopidy-Iris";
sha256 = "cb97cb14b2d6836f3c28c5fd0ada44b4a33f2e74380f44bd5d03beffa5f67b30";
sha256 = "1lfqkmjvdmc2pb3xx9z21ay095b2bk5cvdwharxqqx8fjq6n27hq";
};
propagatedBuildInputs = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "atom-${version}";
version = "1.19.3";
version = "1.19.4";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0cms0zgxlzrm0sdqm97qdvrmvjcdcrbqi3bw66xabgx365pkry7z";
sha256 = "13k98ghz943yd5lqsbsvp1qy79lhgi3vww97qhqcbmmh15n0gsb0";
name = "${name}.deb";
};

View file

@ -1530,10 +1530,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20170821";
version = "20170828";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20170821.tar";
sha256 = "13214dfm6ixypsl0mj1wrdcs42w1qn5ig8m5sb6ih697i2kbxkgg";
url = "https://elpa.gnu.org/packages/org-20170828.tar";
sha256 = "0frjwgjyy7rwb7si57h6nd1p35a4gcd1dc0aka19kn8r59hbi08p";
};
packageRequires = [];
meta = {
@ -2321,10 +2321,10 @@
yasnippet = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "yasnippet";
version = "0.12.1";
version = "0.12.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/yasnippet-0.12.1.tar";
sha256 = "01q1hn3w8w63s7cvr9bq6l5n4nyirnk8qfba60ajp3j6ndi2964n";
url = "https://elpa.gnu.org/packages/yasnippet-0.12.2.tar";
sha256 = "03cilldgq7fpzk9ix2a8q1ppilxp5gvyrym7krifvrg1g2rs1qv9";
};
packageRequires = [ cl-lib ];
meta = {

File diff suppressed because it is too large Load diff

View file

@ -548,12 +548,12 @@
ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "ac-php";
version = "1.7.9";
version = "1.8";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "e0aaae30e4e5f18390e5d00953db02c1f03c44f6";
sha256 = "1mrk37w88b4843jbghr9i79rbwbzwk8b1wljvzmm6x0q7ldlxmsm";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php";
@ -569,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.9";
version = "1.8";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "e0aaae30e4e5f18390e5d00953db02c1f03c44f6";
sha256 = "1mrk37w88b4843jbghr9i79rbwbzwk8b1wljvzmm6x0q7ldlxmsm";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
@ -611,12 +611,12 @@
ac-rtags = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }:
melpaBuild {
pname = "ac-rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ac-rtags";
@ -692,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;
@ -1692,14 +1692,14 @@
pname = "apache-mode";
version = "2.1";
src = fetchFromGitHub {
owner = "zonuexe";
owner = "emacs-php";
repo = "apache-mode";
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 = [];
@ -3166,12 +3166,12 @@
buffer-manage = callPackage ({ choice-program, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "buffer-manage";
version = "0.2";
version = "0.4";
src = fetchFromGitHub {
owner = "plandes";
repo = "buffer-manage";
rev = "1110217973afa1329c47a1f7e6962aad36a90134";
sha256 = "0hb75npk1d9bdqpgdrin8vvfn64arhgq0h69xgvhwcdlm7xjg1bf";
rev = "aa743807f92d457f3a8904a2504a575f22951850";
sha256 = "19xjzx1fcms3cighb7qr79zd4vrlnpvzi1yrgxb6z2jvcgkb7b44";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/28f8f376df810e6ebebba9fb2c93eabbe3526cc9/recipes/buffer-manage";
@ -3355,12 +3355,12 @@
buttercup = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "buttercup";
version = "1.7";
version = "1.8";
src = fetchFromGitHub {
owner = "jorgenschaefer";
repo = "emacs-buttercup";
rev = "d8dc80da12cc1e71fcf54b0f4deb8d229bc97beb";
sha256 = "0zsf2qk41i1ay6h85d1ppj5qnzdrb9n09bzj9s9hk7ysag1rlqj1";
rev = "e6f97d0ee4da1d061c2ff5f3e3984a30956a9fbc";
sha256 = "1qizbnychsjv42h9r33l1jm0rylvkgddcwgwxxcckfkj6r75k9p5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d4b187cb5b3cc5b546bfa6b94b6792e6363242d1/recipes/buttercup";
@ -3751,6 +3751,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";
@ -4024,48 +4043,6 @@
license = lib.licenses.free;
};
}) {};
chinese-fonts-setup = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "chinese-fonts-setup";
version = "0.1";
src = fetchFromGitHub {
owner = "tumashu";
repo = "cnfonts";
rev = "6f4423664e55d5470c4f239d04b88da5d6acb34d";
sha256 = "0d9xx43ijxrp95j5bnxcsnfwn032ypy2c1lypak15772nk6i7s1w";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0d5787ffeeee68ffa41f3e777071815084e0ed7a/recipes/chinese-fonts-setup";
sha256 = "0fqj721zk57641wxnmk82wsj08ycnzj61z9i34x58d7c0k3424w1";
name = "chinese-fonts-setup";
};
packageRequires = [ cl-lib ];
meta = {
homepage = "https://melpa.org/#/chinese-fonts-setup";
license = lib.licenses.free;
};
}) {};
chinese-pyim = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, pyim }:
melpaBuild {
pname = "chinese-pyim";
version = "1.6.1";
src = fetchFromGitHub {
owner = "tumashu";
repo = "pyim";
rev = "f4dacfbac11d6d58f1fcbf766691e03b6983a9f6";
sha256 = "0dy0y159fqcip805l86gmjbsgbcvj3hm5rfsc6slinmxsrl4nl9l";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/151a0af91a58e27f724854d85d5dd9668229fe8d/recipes/chinese-pyim";
sha256 = "0chh4vnb2gh6ckf01w7xd1kw4454p1vkzmy17dvm0c7269rya9mn";
name = "chinese-pyim";
};
packageRequires = [ pyim ];
meta = {
homepage = "https://melpa.org/#/chinese-pyim";
license = lib.licenses.free;
};
}) {};
chinese-word-at-point = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "chinese-word-at-point";
@ -4279,12 +4256,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";
@ -5215,12 +5192,12 @@
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "company-php";
version = "1.7.9";
version = "1.8";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "e0aaae30e4e5f18390e5d00953db02c1f03c44f6";
sha256 = "1mrk37w88b4843jbghr9i79rbwbzwk8b1wljvzmm6x0q7ldlxmsm";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php";
@ -5284,12 +5261,12 @@
company-rtags = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, rtags }:
melpaBuild {
pname = "company-rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/company-rtags";
@ -5475,14 +5452,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 ];
@ -5622,14 +5599,14 @@
pname = "copy-file-on-save";
version = "0.0.1";
src = fetchFromGitHub {
owner = "zonuexe";
owner = "emacs-php";
repo = "emacs-auto-deployment";
rev = "7b8e13cd3dcc12b247089a4530e08fd0ab3bc487";
sha256 = "0nx9qlp1jl7hmwf19ifac8r0955vkdkscf0nmm92hdqbj83jdmv9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f99184ba41e9ab40b2fcff584421bbd933bffc72/recipes/copy-file-on-save";
sha256 = "07hm6ml9j9qwxbv9kv8w8i2x9js7fyrw3p7m219vpncka80qf6k3";
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 ];
@ -6187,12 +6164,12 @@
cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cython-mode";
version = "0.26";
version = "0.26.1";
src = fetchFromGitHub {
owner = "cython";
repo = "cython";
rev = "62f04f6766386893f5da6bee23d4de1e92a4148d";
sha256 = "0rw22qa67ifrw7kd58wjs2bnrjzkpr75k1rbhdgba526mm4s0q0x";
rev = "39c71d912af541229d24da17987d65e65731d2bf";
sha256 = "02alpsgmm0csp9yfa4bhsf8yyhf0q9rc44yrss0020qg8n92xs06";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode";
@ -7601,12 +7578,12 @@
dtrt-indent = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "dtrt-indent";
version = "0.2.1";
version = "0.3";
src = fetchFromGitHub {
owner = "jscheid";
repo = "dtrt-indent";
rev = "a54871bedadabede505b3913ee1039f5ab36cad2";
sha256 = "0ylch7q8lh2r10qzrb41bnrpnznvj5fjszazmxfcvj6ss8yrxjzi";
rev = "69d0c5e143453708dbf0ebec4e368bc26fff683c";
sha256 = "154m53hhzjawmrg2vlqjcg9npgq1igw9f0fz6gh7vscmbxl5dnjq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/61bcbcfa6c0f38a1d87f5b6913b8be6c50ef2994/recipes/dtrt-indent";
@ -7852,12 +7829,12 @@
easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "easy-hugo";
version = "1.5.7";
version = "1.7.7";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-hugo";
rev = "55bac7a4ede3e14ac38a8dc4249df0a0d3ee6c1c";
sha256 = "0j0vi3c6r8jqn4ijmg9xy55yccmjf3mza9ps8iz2s1d8qv8f2y3s";
rev = "108cc2347507ff8c92b10a817de0850e9eb99ab2";
sha256 = "1fcq6693cjl0lx67gwsk53lm20zznq9cc9widb3rzpwifns4x8ac";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo";
@ -9846,12 +9823,12 @@
erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erlang";
version = "20.0.2";
version = "20.0.4";
src = fetchFromGitHub {
owner = "erlang";
repo = "otp";
rev = "6ede2da826335960037299d9f3b0e66d072ea5a0";
sha256 = "1zxfyd711l13n6xhspa8l0k4l7hb8aq1q1j2b2yrzw9k1hx2lfyj";
rev = "a230f26086b3db9097f06d4bb91fb3b2e9379c77";
sha256 = "1g26vf7ab18r9knxa2ykn3j6vrhhiyqbg6jf3gfjxw2c94z51a9m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang";
@ -10013,12 +9990,12 @@
esh-help = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "esh-help";
version = "1.0.0";
version = "1.0.1";
src = fetchFromGitHub {
owner = "tom-tan";
repo = "esh-help";
rev = "03bf6fc7ef9ac46304e37524fdaf7ebfee317695";
sha256 = "049nvd63jns3fawimwx9l7cbqw2gw84f8f9swpwd0a8z449mlj2m";
rev = "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6";
sha256 = "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ab94c66d1ed7cfdbc437ee239984ba70408fd28a/recipes/esh-help";
@ -10706,12 +10683,12 @@
evil-nerd-commenter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "evil-nerd-commenter";
version = "3.0.2";
version = "3.0.3";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "evil-nerd-commenter";
rev = "cac2f7945fc90f43d1282dfe4aca24ded9f7cd03";
sha256 = "1zjnscnj0zrxpdjikxwg4fw7m6yb39060cmn24xzs0hmnmbxnw9m";
rev = "0a46b911200c75c4737bfdb2b71f10a9a8254969";
sha256 = "03v53zhm33fz6aib03j00bwkfqh2j45ziz7nwynynxm50j32axkg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a3e1ff69e7cc95a5b5d628524ad836833f4ee736/recipes/evil-nerd-commenter";
@ -11503,12 +11480,12 @@
fill-column-indicator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fill-column-indicator";
version = "1.87";
version = "1.88";
src = fetchFromGitHub {
owner = "alpaker";
repo = "Fill-Column-Indicator";
rev = "0e755319451dd9c6c99c2a2ef82c890ba93343b6";
sha256 = "0gbqspqn4y7f2fwqq8210b6k5q22c0zr7b4ws8qgz9swav8g3vrq";
rev = "0c6f8f692854712a0c86d57c331b1bd9e6269b4d";
sha256 = "0l64r4id13lzrmnidq20hzjx0yip16lj47k3ajk01ycgqs4jpmzs";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4ea0c00a7784621fcca0391a9c8ea85e9dd43852/recipes/fill-column-indicator";
@ -11566,12 +11543,12 @@
find-file-in-project = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "find-file-in-project";
version = "5.4.0";
version = "5.4.1";
src = fetchFromGitHub {
owner = "technomancy";
repo = "find-file-in-project";
rev = "2d3e8d095e0c36f927142e80c4330977be698568";
sha256 = "1phj6a6ydc8hzv1f1881anyccg1jkd8dh6g229ln476i5y6wqs5j";
rev = "cb61762e50e85894febbbc82eeafa85d67707218";
sha256 = "0zzjr7z2iayibqvl8rrbpmdbar6i8b6zda65az8ybrwzbsz8zhnb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cae2ac3513e371a256be0f1a7468e38e686c2487/recipes/find-file-in-project";
@ -12434,12 +12411,12 @@
flycheck-rtags = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, rtags }:
melpaBuild {
pname = "flycheck-rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/flycheck-rtags";
@ -15106,15 +15083,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";
@ -15134,8 +15132,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";
@ -15474,6 +15472,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.1";
src = fetchFromGitHub {
owner = "fredcamps";
repo = "green-is-the-new-black-emacs";
rev = "2b1011836fc04940d542e9a783b99670a08b308b";
sha256 = "16v7l4ynj4p1hq243rqckfgppmj8cvm0lyybjjqaqblqjd1ki90d";
};
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";
@ -15913,6 +15932,27 @@
license = lib.licenses.free;
};
}) {};
harvest = callPackage ({ fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, s, swiper }:
melpaBuild {
pname = "harvest";
version = "0.3.8";
src = fetchFromGitHub {
owner = "kostajh";
repo = "harvest.el";
rev = "69041907bdca68d3ab6802e08ec698c3448f28a1";
sha256 = "0rqxi668wra1mfzq4fqscjghis5gqnwpazgidgix13brybaxydx4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c97d3f653057eab35c612109792884334be556fe/recipes/harvest";
sha256 = "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c";
name = "harvest";
};
packageRequires = [ hydra s swiper ];
meta = {
homepage = "https://melpa.org/#/harvest";
license = lib.licenses.free;
};
}) {};
haskell-emacs = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "haskell-emacs";
@ -16062,12 +16102,12 @@
hasky-stack = callPackage ({ emacs, f, fetchFromGitHub, fetchurl, lib, magit-popup, melpaBuild }:
melpaBuild {
pname = "hasky-stack";
version = "0.2.0";
version = "0.4.0";
src = fetchFromGitHub {
owner = "hasky-mode";
repo = "hasky-stack";
rev = "e256e50fce9a65cad1754d863d9ed969b159cefe";
sha256 = "12rf51l5dg4c5jkn0rsyr47wfsw9qnmzl0hmsa8j04fm8nr978x7";
rev = "2379f43b589115bd3960a11c26fa0a7d12316db7";
sha256 = "1vkmm3mf4zcf1wrkwln7ik4i17dqx7a9lb8j2j0l217hn7h3mk5s";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3faf544872478c3bccf2fe7dc51d406031e4d80/recipes/hasky-stack";
@ -17448,12 +17488,12 @@
helm-rtags = callPackage ({ fetchFromGitHub, fetchurl, helm, lib, melpaBuild, rtags }:
melpaBuild {
pname = "helm-rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/helm-rtags";
@ -17697,6 +17737,27 @@
license = lib.licenses.free;
};
}) {};
helpful = callPackage ({ dash, elisp-refs, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "helpful";
version = "0.1";
src = fetchFromGitHub {
owner = "Wilfred";
repo = "helpful";
rev = "a5d8bc41e43177953d8ba3972a83755ddd4e1073";
sha256 = "0sr31df42cbrhzqxjvx1fcbafwq30jslqf715scrzyiziddf83zq";
};
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";
@ -18348,6 +18409,27 @@
license = lib.licenses.free;
};
}) {};
hy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "hy-mode";
version = "1.0";
src = fetchFromGitHub {
owner = "hylang";
repo = "hy-mode";
rev = "c09b4e3cd8700966cb2120d5a4e62ebfb0b488b5";
sha256 = "054b1h621f6nfzz9nslyi1shs206my8s6zzv29k835by864bc0sq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fc9ab5cf16b61bb27559cd8ec5cf665a5aab2154/recipes/hy-mode";
sha256 = "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m";
name = "hy-mode";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/hy-mode";
license = lib.licenses.free;
};
}) {};
hyai = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "hyai";
@ -19317,12 +19399,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";
@ -19694,12 +19776,12 @@
ivy-rtags = callPackage ({ fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, rtags }:
melpaBuild {
pname = "ivy-rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/ivy-rtags";
@ -19715,12 +19797,12 @@
ivy-youtube = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild, request }:
melpaBuild {
pname = "ivy-youtube";
version = "0.3.0";
version = "0.3.1";
src = fetchFromGitHub {
owner = "squiter";
repo = "ivy-youtube";
rev = "c80bbab9d499d96bee3eb9a6d9be74ad254ec86d";
sha256 = "0n2v1w2801yxc71xd0vwma7y4nzs2qgnwbmkkx3xiq4n049sqd8l";
rev = "9a9d584124bd9905b5a8a7e29cdafa3224770c9d";
sha256 = "0fircdxhfb9s6qmzic2hizhlwfkszw3was83nw09zf0zhab3vllh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/ivy-youtube";
@ -21779,14 +21861,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 ];
@ -22589,12 +22671,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";
@ -24898,8 +24980,8 @@
src = fetchFromGitHub {
owner = "OmniSharp";
repo = "omnisharp-emacs";
rev = "46b2c3d16b83ce6e7e318d69ae74e1d7c4106549";
sha256 = "0g2zap8yyv31lkpmdnripg1q03xdb7sm3jzq7j17sgqak2a223xp";
rev = "8aa56979fe85211b1e12c42e91b68a4ebee5176e";
sha256 = "15bsmi5cm208iq8rw87gvkkqja2shldbc4287x1qxny3cplcvwqi";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp";
@ -25301,22 +25383,22 @@
license = lib.licenses.free;
};
}) {};
org-edit-latex = callPackage ({ auctex, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
org-edit-latex = callPackage ({ auctex, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-edit-latex";
version = "0.8.0";
version = "0.8.2";
src = fetchFromGitHub {
owner = "et2010";
repo = "org-edit-latex";
rev = "323d0b39d0284cef730b706dce7c0e58ed35530f";
sha256 = "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842";
rev = "83e03b6bef7746bc0a90c0a52ee8c18c4e87ada9";
sha256 = "1y9ycmsnwwc804zlsz20ad210plp0xgzjq69rpvry5gg17wp3nv8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/org-edit-latex";
sha256 = "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry";
name = "org-edit-latex";
};
packageRequires = [ auctex emacs org ];
packageRequires = [ auctex emacs ];
meta = {
homepage = "https://melpa.org/#/org-edit-latex";
license = lib.licenses.free;
@ -25531,6 +25613,27 @@
license = lib.licenses.free;
};
}) {};
org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-mru-clock";
version = "0.1.1";
src = fetchFromGitHub {
owner = "unhammer";
repo = "org-mru-clock";
rev = "096a7c514ab8487ec63def6281cf4dce24e3a626";
sha256 = "1hmyqvi1dj5yrlish8kw4sdh3yy0b0w33smw4cbjagp4rs29p3fp";
};
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";
@ -27515,14 +27618,14 @@
pname = "phan";
version = "0.0.2";
src = fetchFromGitHub {
owner = "zonuexe";
owner = "emacs-php";
repo = "phan.el";
rev = "4e3528f490e77d3aa6d81729b30b569434ef679f";
sha256 = "1aif1hshwpzi353k2gcpwk9s76jlmz3s5dyf357qfv14b5ddhw6l";
};
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 ];
@ -28562,14 +28665,14 @@
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 ];
@ -28730,14 +28833,14 @@
pname = "psysh";
version = "0.0.4";
src = fetchFromGitHub {
owner = "zonuexe";
owner = "emacs-php";
repo = "psysh.el";
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 = [ emacs f s ];
@ -30347,14 +30450,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 = [];
@ -30450,12 +30553,12 @@
rtags = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "rtags";
version = "2.12";
version = "2.14";
src = fetchFromGitHub {
owner = "Andersbakken";
repo = "rtags";
rev = "db1244c1c14514324474f362c857112e89bbf0c6";
sha256 = "1fcrlxk9z11vbarznfcpfyqzvj6v3ydbn5z6vbdmgf9cxb52kfma";
rev = "15ef9a8bab847773d6e247005be929422fc9c285";
sha256 = "0yq3c4ich0sffzd571drb7k4vs0bvblx6qcrb6zry75d9npggsyg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3dea16daf0d72188c8b4043534f0833fe9b04e07/recipes/rtags";
@ -31037,11 +31140,11 @@
secretaria = callPackage ({ alert, emacs, f, fetchgit, fetchurl, lib, melpaBuild, org, s }:
melpaBuild {
pname = "secretaria";
version = "0.2.5";
version = "0.2.7";
src = fetchgit {
url = "https://bitbucket.org/shackra/secretaria.el";
rev = "7bd1cf591528b18a153e15a260d7817b72c900f2";
sha256 = "0n9mj2g59yiqbg81rk0gglbgpvfs550r4y26n8nf5pyxpxfllv5s";
rev = "1cd32d957864be1ba5c44a3f505f662832169a28";
sha256 = "1xvwzmcfwfxsm9chbjnqjsipmv5pqpzk5d0ybw3rcdc47nag3jdg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7b4c9ccbf2eeaa290f3b9d1e5eaaeb5b5547b365/recipes/secretaria";
@ -31939,12 +32042,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";
@ -32023,12 +32126,12 @@
slstats = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "slstats";
version = "1.9";
version = "1.10";
src = fetchFromGitHub {
owner = "davep";
repo = "slstats.el";
rev = "3c22a8e5cf022d4eca840fefe7960d7ae6dcf167";
sha256 = "0ay7319ijqqcan1ijycrz4006r1a50wpnss37rrbiq23nkzjmks4";
rev = "e9696066abf3f2b7b818a57c062530dfd9377033";
sha256 = "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fe7c8c241cc6920bbedb6711db63ea28ed633327/recipes/slstats";
@ -32377,6 +32480,27 @@
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 ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "snoopy";
@ -32611,12 +32735,12 @@
spaceline-all-the-icons = callPackage ({ all-the-icons, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, memoize, spaceline }:
melpaBuild {
pname = "spaceline-all-the-icons";
version = "1.3.5";
version = "1.4.0";
src = fetchFromGitHub {
owner = "domtronn";
repo = "spaceline-all-the-icons.el";
rev = "255e89303bb706b42057504e72caeb2764f3d413";
sha256 = "0y3gv664crng4vibbh0pfh9w0ys9m5gny2b1mrqb7ma6xa78xiv2";
rev = "7eafe2d7a81f8d10e03498bdcc3bec0ea50f905d";
sha256 = "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d039e057c1d441592da8f54e6d524b395b030375/recipes/spaceline-all-the-icons";
@ -34498,12 +34622,12 @@
transmission = callPackage ({ emacs, fetchFromGitHub, fetchurl, let-alist, lib, melpaBuild }:
melpaBuild {
pname = "transmission";
version = "0.11";
version = "0.11.1";
src = fetchFromGitHub {
owner = "holomorph";
repo = "transmission";
rev = "541f73c779e72eb6ebcc6814a75771e91679875a";
sha256 = "1rjxn5pfryxbxsgfmmzidcs83azvzvzq0nnphbxmlxybp97wzimx";
rev = "d465378a59e2eb91372564a56e60a9ab00e48f9c";
sha256 = "0al0xz59lrqj97fxmyxiphblg1bvbzahc6srd8klg7s0378ybblw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ed7e414687c0bd82b140a1bd8044084d094d18f/recipes/transmission";
@ -35932,12 +36056,12 @@
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";
@ -36376,8 +36500,8 @@
version = "0.9.2";
src = fetchhg {
url = "https://bitbucket.com/ArneBab/wisp";
rev = "e5a20c81c0bd";
sha256 = "13pb956f1yidwjh4imi01dghzs2wgd6r7n5bzhvpszvx4x1nw4z9";
rev = "7ce954278aef";
sha256 = "116cspnc4lhf6gk73yr9sy7013jp88vq5zayghzgnkbdlaw6zmz3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";
@ -37065,12 +37189,12 @@
yasnippet = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "yasnippet";
version = "0.12.1";
version = "0.12.2";
src = fetchFromGitHub {
owner = "joaotavora";
repo = "yasnippet";
rev = "0463c75b636fe02273c2b8ca85f36b56a206c5c5";
sha256 = "1l8h681x5v78k6wkcmhb5kdw9mc13kcmq3aiqg0r9dn493ifj1v1";
rev = "89eb7ab64d67e96646576dc0d551e8c23d50438a";
sha256 = "1wr0d14yl3440hkdr436zxl9pk7nqhl76n9m3b3ia4lp6z5aj4jc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5d1927dc3351d3522de1baccdc4ce200ba52bd6e/recipes/yasnippet";

View file

@ -1,10 +1,10 @@
{ callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20170821";
version = "20170828";
src = fetchurl {
url = "http://orgmode.org/elpa/org-20170821.tar";
sha256 = "0pfqm8r1hgk1mf57rwp1h46gc5dwsyfkgnpw01a8y5w35dcsvz4j";
url = "http://orgmode.org/elpa/org-20170828.tar";
sha256 = "0zvszxw9dm1j3jf1fblvfc74kmiv3zmjydlkkj7q4vd0p4gnfvky";
};
packageRequires = [];
meta = {
@ -14,10 +14,10 @@
}) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib";
version = "20170821";
version = "20170828";
src = fetchurl {
url = "http://orgmode.org/elpa/org-plus-contrib-20170821.tar";
sha256 = "0m5zym1b4kr7q3ps41rhz92krbjmk9m220hc0rdym95gyjfzw62i";
url = "http://orgmode.org/elpa/org-plus-contrib-20170828.tar";
sha256 = "0r3n7ilf4aqsg9hl057qkl70s9bd9w5884ddigbiahv88hldvv4y";
};
packageRequires = [];
meta = {

View file

@ -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 ];

View file

@ -9,7 +9,7 @@
let
pname = "kdevelop";
version = "5.1.1";
version = "5.1.2";
in
mkDerivation rec {
@ -17,7 +17,7 @@ mkDerivation rec {
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
sha256 = "0a01a4ffb2f01802cf4945521a3149a8f82c21fa8a97935991f1854b7db5d754";
sha256 = "af54e807847d145fe5f3eb55962ed0d22e6363c2bc6c32167e51ca4823c00ac7";
};
nativeBuildInputs = [

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch, cmake, gettext, pkgconfig, extra-cmake-modules
{ 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
@ -6,7 +6,7 @@
let
pname = "kdevplatform";
version = "5.1.1";
version = "5.1.2";
in
stdenv.mkDerivation rec {
@ -14,17 +14,9 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://kde/stable/kdevelop/${version}/src/${name}.tar.xz";
sha256 = "3159440512b1373c1a4b35f401ba1f81217de9578372b45137af141eeda6e726";
sha256 = "e622ddad552a678baaf1166d5cbdc5fd1192d2324300c52ef2d25f1c6778664a";
};
patches = [
(fetchpatch {
name = "kdevplatform-project-selection.patch";
url = "https://cgit.kde.org/kdevplatform.git/patch/?id=da4c0fdfcf21dc2a8f48a2b1402213a32effd47a";
sha256 = "16ws8l6dciy2civjnsaj03ml2bzvg4a9g7gd4iyx4hprw65zrcxm";
})
];
nativeBuildInputs = [ cmake gettext pkgconfig extra-cmake-modules ];
buildInputs = [

View file

@ -20,11 +20,11 @@ let
in stdenv.mkDerivation rec {
name = "nano-${version}";
version = "2.8.6";
version = "2.8.7";
src = fetchurl {
url = "mirror://gnu/nano/${name}.tar.xz";
sha256 = "0xjpm2ka56x5ycrgjh06v110na13xlbm42bs8qibk7g578m9cils";
sha256 = "0nhns59smd43mad2w6lnaxqnj4h6ifnlivi6cwydg646jm31gqzv";
};
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;

View file

@ -1,24 +1,30 @@
{ stdenv, fetchurl, makeDesktopItem, cmake, boost163, zlib, openssl,
{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost163, zlib, openssl,
R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
}:
let
version = "1.1.216";
version = "1.1.351";
ginVer = "1.5";
gwtVer = "2.7.0";
in
stdenv.mkDerivation rec {
name = "RStudio-${version}";
buildInputs = [ cmake boost163 zlib openssl R qt5.full qt5.qtwebkit libuuid unzip ant jdk makeWrapper pandoc ];
buildInputs = [ cmake boost163 zlib openssl R qt5.full qt5.qtwebkit qt5.qtwebchannel libuuid unzip ant jdk makeWrapper pandoc ];
src = fetchurl {
url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz";
sha256 = "07lp2ybvj7ippdrp7fv7j54dp0mm6k19j1vqdvjdk95acg3xgcjf";
sha256 = "0dpzmkq7jkdndidmmgdcr849q33ypmzkqwx22fraaqcy7w4f0pcn";
};
# 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;
@ -115,7 +121,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.changlinli ];
maintainers = with maintainers; [ ehmry changlinli ciil ];
platforms = platforms.linux;
};
}

View file

@ -58,6 +58,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

View file

@ -5,7 +5,7 @@
}:
stdenv.mkDerivation rec {
name = "qgis-2.18.10";
name = "qgis-2.18.12";
buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://qgis.org/downloads/${name}.tar.bz2";
sha256 = "1vrzxhnpzd75iia4xmhbxy90x0wlvj2w4210f0r8203hd2m4sxdj";
sha256 = "0fh256j2d2kh9hjx6q1zdzxfqsgifg9dvgk214sv6zxzhsn0kxvs";
};
cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";

View file

@ -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;
};
}

View file

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "kgraphviewer-${version}";
version = "2.1.90";
version = "2.2.0";
src = fetchurl {
url = "mirror://kde/unstable/kgraphviewer/${version}/src/${name}.tar.xz";
sha256 = "13zhjs57xavzrj4nrlqs35n35ihvzij7hgbszf5fhlp2a4d4rrqs";
url = "mirror://kde/stable/kgraphviewer/${version}/src/${name}.tar.xz";
sha256 = "1vs5x539mx26xqdljwzkh2bj7s3ydw4cb1wm9nlhgs18siw4gjl5";
};
buildInputs = [ kdelibs4 boost graphviz ];

View file

@ -1,21 +1,20 @@
{ stdenv, fetchurl, cmake, 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 = [
qtbase qtquickcontrols qttools exiv2 graphicsmagick
qtmultimedia qtdeclarative
qtmultimedia qtdeclarative libraw qtgraphicaleffects
];
preConfigure = ''

View file

@ -29,16 +29,16 @@ let
in
buildRustPackage rec {
name = "alacritty-unstable-2017-07-25";
name = "alacritty-unstable-2017-08-28";
src = fetchFromGitHub {
owner = "jwilm";
repo = "alacritty";
rev = "49c73f6d55e5a681a0e0f836cd3e9fe6af30788f";
sha256 = "0h5hrb2g0fpc6xn94hmvxjj21cqbj4vgqkznvd64jl84qbyh1xjl";
rev = "c4ece6dde3c9dcf825a44aa775535a65c0c376a6";
sha256 = "1n1ncz45h0zgprsm2wkj11i9wwpg3kba4wv5mcs1xx793aq16x82";
};
depsSha256 = "1pbb0swgpsbd6x3avxz6fv3q31dg801li47jibz721a4n9c0rssx";
depsSha256 = "19lrj4i6vzmf22r6xg99zcwvzjpiar8pqin1m2nvv78xzxx5yvgb";
buildInputs = [
cmake

View file

@ -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;

View file

@ -2,11 +2,11 @@
python2Packages.buildPythonApplication rec {
name = "electrum-${version}";
version = "2.9.0";
version = "2.9.3";
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "1lida5phq0c1lxnk75d9jsps0vw4zy7saaxhv0q4kv76rk2b3fhv";
sha256 = "0d0fzb653g7b8ka3x90nl21md4g3n1fv11czdxpdq3s9yr6js6f2";
};
propagatedBuildInputs = with python2Packages; [

View file

@ -84,8 +84,8 @@ stdenv.mkDerivation {
description = "Wiki compiler, storing pages and history in a RCS";
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/
};
}

View file

@ -0,0 +1,32 @@
{ stdenv
, python
}:
with python.pkgs;
buildPythonApplication rec {
pname = "jrnl";
version = "1.9.8";
name = "${pname}-${version}";
disabled = isPy3k;
src = fetchPypi {
inherit pname version;
sha256 = "d254c9c8f24dcf985b98a1d5311337c7f416e6305107eec34c567f58c95b06f4";
};
propagatedBuildInputs = [
pytz six tzlocal keyring argparse dateutil_1_5
parsedatetime pycrypto
];
# No tests in archive
doCheck = false;
meta = with stdenv.lib; {
homepage = http://maebert.github.io/jrnl/;
description = "A simple command line journal application that stores your journal in a plain text file";
license = licenses.mit;
maintainers = with maintainers; [ zalakain ];
};
}

View file

@ -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}";
@ -67,8 +63,8 @@ stdenv.mkDerivation rec {
};
buildInputs = [
zip pkgconfig python zlib xapian_ which icu libmicrohttpd
lzma zimlib_ ctpp2_ aria2 wget bc libuuid makeWrapper pugixml
zip pkgconfig python zlib xapian which icu libmicrohttpd
lzma zimlib ctpp2 aria2 wget bc libuuid makeWrapper pugixml
];
postUnpack = ''

View file

@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
sha256 = "1bxd828nrawmym6d8awh1vrni8dsbwh1k5am1lrq5ihp5c3kw9ka";
};
buildInputs = [ cmake pkgconfig glibc gnome_keyring gtk gtk.dev gtkmm pcre swig python sudo
buildInputs = [ cmake pkgconfig gnome_keyring gtk gtk.dev gtkmm pcre swig python sudo
paramiko mysql libxml2 libctemplate libmysqlconnectorcpp vsqlite tinyxml gdal libiodbc file
libpthreadstubs libXdmcp libuuid libzip libgnome_keyring libgnome_keyring.dev jre autoconf
automake libtool boost glibmm glibmm.dev libsigcxx pangomm libX11 pexpect pycrypto openssl

View file

@ -1,4 +1,4 @@
{ stdenv, cmake, extra-cmake-modules, plasma-framework, redshift, fetchFromGitHub, }:
{ stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }:
let version = "1.0.18"; in
@ -29,7 +29,10 @@ stdenv.mkDerivation {
extra-cmake-modules
];
buildInputs = [ plasma-framework ];
buildInputs = [
plasma-framework
kwindowsystem
];
meta = with stdenv.lib; {
description = "KDE Plasma 5 widget for controlling Redshift";

View file

@ -228,9 +228,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}"

View file

@ -1,4 +1,4 @@
{ lib, callPackage, stdenv, fetchurl, fetchFromGitHub, fetchpatch }:
{ lib, callPackage, stdenv, overrideCC, gcc5, fetchurl, fetchFromGitHub, fetchpatch }:
let common = opts: callPackage (import ./common.nix opts); in
@ -102,6 +102,7 @@ rec {
platforms = lib.platforms.linux;
};
} {
stdenv = overrideCC stdenv gcc5;
ffmpegSupport = false;
};

Some files were not shown because too many files have changed in this diff Show more