Merge remote-tracking branch 'upstream/master' into HEAD
This commit is contained in:
commit
d0dab8a330
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -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.
|
||||
|
@ -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 it’s 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 it’s 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>
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>";
|
||||
|
@ -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 ||
|
||||
|
@ -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);
|
||||
|
@ -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> ->
|
||||
<literal>rl-1509.xml</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>git tag -a -m "Release 15.09-beta" 15.09-beta && 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 can’t 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 "16.03" > .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&q=vulnerabilities&type=Issues">triage vulnerabilities in an issue</link>.
|
||||
<literal>git tag -a -s -m "Release 17.09-beta" 17.09-beta && 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 can’t 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 "18.03" > .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).
|
||||
|
@ -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>
|
||||
|
46
nixos/doc/manual/release-notes/rl-1803.xml
Normal file
46
nixos/doc/manual/release-notes/rl-1803.xml
Normal 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>
|
@ -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
|
||||
|
@ -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; };
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -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.
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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";
|
||||
|
@ -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}
|
||||
|
61
nixos/modules/services/hardware/interception-tools.nix
Normal file
61
nixos/modules/services/hardware/interception-tools.nix
Normal 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" ];
|
||||
};
|
||||
};
|
||||
}
|
@ -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}";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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 < 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 ];
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ in
|
||||
fi
|
||||
'';
|
||||
|
||||
restartTriggers = [ config.environment.etc.localtime.source ];
|
||||
restartTriggers = [ config.time.timeZone ];
|
||||
serviceConfig.ExecStart = "${cronNixosPkg}/bin/cron -n";
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
||||
}
|
@ -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";
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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;
|
||||
'';
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
82
nixos/modules/services/x11/desktop-managers/mate.nix
Normal file
82
nixos/modules/services/x11/desktop-managers/mate.nix
Normal 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" ];
|
||||
};
|
||||
|
||||
}
|
@ -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 {
|
||||
|
@ -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" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -11,7 +11,6 @@ in
|
||||
./2bwm.nix
|
||||
./afterstep.nix
|
||||
./bspwm.nix
|
||||
./compiz.nix
|
||||
./dwm.nix
|
||||
./exwm.nix
|
||||
./fluxbox.nix
|
||||
|
@ -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]*$//;
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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}" ]; };
|
||||
|
26
nixos/modules/tasks/filesystems/bcachefs.nix
Normal file
26
nixos/modules/tasks/filesystems/bcachefs.nix
Normal 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
|
||||
'';
|
||||
|
||||
};
|
||||
}
|
@ -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" ];
|
||||
|
@ -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 {};
|
||||
|
66
nixos/tests/containers-reloadable.nix
Normal file
66
nixos/tests/containers-reloadable.nix
Normal 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");
|
||||
'';
|
||||
|
||||
})
|
@ -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 =
|
||||
|
@ -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)\" ]");
|
||||
'';
|
||||
})
|
||||
|
@ -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/');
|
||||
'';
|
||||
})
|
||||
|
40
pkgs/applications/altcoins/btc1.nix
Normal file
40
pkgs/applications/altcoins/btc1.nix
Normal 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;
|
||||
};
|
||||
}
|
@ -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; };
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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];
|
||||
})
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -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 ''
|
||||
|
@ -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 = ''
|
||||
|
57
pkgs/applications/audio/espeak/espeakedit-gcc6.patch
Normal file
57
pkgs/applications/audio/espeak/espeakedit-gcc6.patch
Normal 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};
|
13
pkgs/applications/audio/espeak/gcc6.patch
Normal file
13
pkgs/applications/audio/espeak/gcc6.patch
Normal 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)
|
@ -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" ];
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
13
pkgs/applications/audio/jackmix/no_error.patch
Normal file
13
pkgs/applications/audio/jackmix/no_error.patch
Normal 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'] )
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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;
|
@ -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 = [
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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
@ -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";
|
||||
|
@ -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 = {
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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}";
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 ];
|
||||
|
@ -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 = ''
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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; [
|
||||
|
@ -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/
|
||||
};
|
||||
}
|
||||
|
32
pkgs/applications/misc/jrnl/default.nix
Normal file
32
pkgs/applications/misc/jrnl/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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 = ''
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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}"
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user