Merge branch 'master' into parnell/fetchdocker

This commit is contained in:
Parnell Springmeyer 2018-01-24 13:23:01 -06:00 committed by GitHub
commit bd9869d0f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1020 changed files with 63269 additions and 51400 deletions

10
.github/CODEOWNERS vendored
View File

@ -12,17 +12,17 @@
# Libraries # Libraries
/lib @edolstra @nbp /lib @edolstra @nbp
/lib/systems @edolstra @nbp @ericson2314 /lib/systems @nbp @ericson2314
# Nixpkgs Internals # Nixpkgs Internals
/default.nix @nbp /default.nix @nbp
/pkgs/top-level/default.nix @nbp @Ericson2314 /pkgs/top-level/default.nix @nbp @Ericson2314
/pkgs/top-level/impure.nix @nbp @Ericson2314 /pkgs/top-level/impure.nix @nbp @Ericson2314
/pkgs/top-level/stage.nix @nbp @Ericson2314 /pkgs/top-level/stage.nix @nbp @Ericson2314
/pkgs/stdenv @edolstra /pkgs/stdenv
/pkgs/build-support/cc-wrapper @edolstra @Ericson2314 /pkgs/build-support/cc-wrapper @Ericson2314 @orivej
/pkgs/build-support/bintools-wrapper @edolstra @Ericson2314 /pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
/pkgs/build-support/setup-hooks @edolstra @Ericson2314 /pkgs/build-support/setup-hooks @Ericson2314
# NixOS Internals # NixOS Internals
/nixos/default.nix @nbp /nixos/default.nix @nbp

View File

@ -61,7 +61,7 @@
<listitem> <listitem>
<para> <para>
The "target platform" attribute is, unlike the other two attributes, not actually fundamental to the process of building software. The "target platform" attribute is, unlike the other two attributes, not actually fundamental to the process of building software.
Instead, it is only relevant for compatability with building certain specific compilers and build tools. Instead, it is only relevant for compatibility with building certain specific compilers and build tools.
It can be safely ignored for all other packages. It can be safely ignored for all other packages.
</para> </para>
<para> <para>
@ -162,7 +162,7 @@
<para> <para>
A runtime dependency between 2 packages implies that between them both the host and target platforms match. A runtime dependency between 2 packages implies that between them both the host and target platforms match.
This is directly implied by the meaning of "host platform" and "runtime dependency": This is directly implied by the meaning of "host platform" and "runtime dependency":
The package dependency exists while both packages are runnign on a single host platform. The package dependency exists while both packages are running on a single host platform.
</para> </para>
<para> <para>
A build time dependency, however, implies a shift in platforms between the depending package and the depended-on package. A build time dependency, however, implies a shift in platforms between the depending package and the depended-on package.

View File

@ -191,7 +191,6 @@ building Python libraries is `buildPythonPackage`. Let's see how we can build th
toolz = buildPythonPackage rec { toolz = buildPythonPackage rec {
pname = "toolz"; pname = "toolz";
version = "0.7.4"; version = "0.7.4";
name = "${pname}-${version}";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -237,7 +236,6 @@ with import <nixpkgs> {};
my_toolz = python35.pkgs.buildPythonPackage rec { my_toolz = python35.pkgs.buildPythonPackage rec {
pname = "toolz"; pname = "toolz";
version = "0.7.4"; version = "0.7.4";
name = "${pname}-${version}";
src = python35.pkgs.fetchPypi { src = python35.pkgs.fetchPypi {
inherit pname version; inherit pname version;
@ -283,15 +281,15 @@ order to build [`datashape`](https://github.com/blaze/datashape).
{ # ... { # ...
datashape = buildPythonPackage rec { datashape = buildPythonPackage rec {
name = "datashape-${version}"; pname = "datashape";
version = "0.4.7"; version = "0.4.7";
src = pkgs.fetchurl { src = fetchPypi {
url = "mirror://pypi/D/DataShape/${name}.tar.gz"; inherit pname version;
sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278"; sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278";
}; };
buildInputs = with self; [ pytest ]; checkInputs = with self; [ pytest ];
propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ]; propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
meta = { meta = {
@ -318,10 +316,11 @@ when building the bindings and are therefore added as `buildInputs`.
{ # ... { # ...
lxml = buildPythonPackage rec { lxml = buildPythonPackage rec {
name = "lxml-3.4.4"; pname = "lxml";
version = "3.4.4";
src = pkgs.fetchurl { src = fetchPypi {
url = "mirror://pypi/l/lxml/${name}.tar.gz"; inherit pname version;
sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk"; sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk";
}; };
@ -351,11 +350,11 @@ and `CFLAGS`.
{ # ... { # ...
pyfftw = buildPythonPackage rec { pyfftw = buildPythonPackage rec {
name = "pyfftw-${version}"; pname = "pyFFTW";
version = "0.9.2"; version = "0.9.2";
src = pkgs.fetchurl { src = fetchPypi {
url = "mirror://pypi/p/pyFFTW/pyFFTW-${version}.tar.gz"; inherit pname version;
sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074"; sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074";
}; };
@ -440,11 +439,11 @@ We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
{ pkgs, buildPythonPackage }: { pkgs, buildPythonPackage }:
buildPythonPackage rec { buildPythonPackage rec {
name = "toolz-${version}"; pname = "toolz";
version = "0.7.4"; version = "0.7.4";
src = pkgs.fetchurl { src = fetchPypi {
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz"; inherit pname version;
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd"; sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
}; };
@ -549,25 +548,31 @@ The `buildPythonPackage` function is implemented in
The following is an example: The following is an example:
```nix ```nix
{ # ...
twisted = buildPythonPackage { buildPythonPackage rec {
name = "twisted-8.1.0"; version = "3.3.1";
pname = "pytest";
src = pkgs.fetchurl { preCheck = ''
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2; # don't test bash builtins
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl"; rm testing/test_argcomplete.py
}; '';
propagatedBuildInputs = [ self.ZopeInterface ]; src = fetchPypi {
inherit pname version;
sha256 = "cf8436dc59d8695346fcd3ab296de46425ecab00d64096cebe79fb51ecb2eb93";
};
meta = { checkInputs = [ hypothesis ];
homepage = http://twistedmatrix.com/; buildInputs = [ setuptools_scm ];
description = "Twisted, an event-driven networking engine written in Python"; propagatedBuildInputs = [ attrs py setuptools six pluggy ];
license = stdenv.lib.licenses.mit;
}; meta = with stdenv.lib; {
maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
description = "Framework for writing tests";
}; };
} }
``` ```
The `buildPythonPackage` mainly does four things: The `buildPythonPackage` mainly does four things:
@ -623,7 +628,6 @@ with import <nixpkgs> {};
packageOverrides = self: super: { packageOverrides = self: super: {
pandas = super.pandas.overridePythonAttrs(old: rec { pandas = super.pandas.overridePythonAttrs(old: rec {
version = "0.19.1"; version = "0.19.1";
name = "pandas-${version}";
src = super.fetchPypi { src = super.fetchPypi {
pname = "pandas"; pname = "pandas";
inherit version; inherit version;

View File

@ -36,7 +36,7 @@ rec {
overrideDerivation = drv: f: overrideDerivation = drv: f:
let let
newDrv = derivation (drv.drvAttrs // (f drv)); newDrv = derivation (drv.drvAttrs // (f drv));
in addPassthru newDrv ( in lib.flip (extendDerivation true) newDrv (
{ meta = drv.meta or {}; { meta = drv.meta or {};
passthru = if drv ? passthru then drv.passthru else {}; passthru = if drv ? passthru then drv.passthru else {};
} }
@ -131,8 +131,8 @@ rec {
/* Add attributes to each output of a derivation without changing /* Add attributes to each output of a derivation without changing
the derivation itself. */ the derivation itself and check a given condition when evaluating. */
addPassthru = drv: passthru: extendDerivation = condition: passthru: drv:
let let
outputs = drv.outputs or [ "out" ]; outputs = drv.outputs or [ "out" ];
@ -142,13 +142,23 @@ rec {
outputToAttrListElement = outputName: outputToAttrListElement = outputName:
{ name = outputName; { name = outputName;
value = commonAttrs // { value = commonAttrs // {
inherit (drv.${outputName}) outPath drvPath type outputName; inherit (drv.${outputName}) type outputName;
drvPath = assert condition; drv.${outputName}.drvPath;
outPath = assert condition; drv.${outputName}.outPath;
}; };
}; };
outputsList = map outputToAttrListElement outputs; outputsList = map outputToAttrListElement outputs;
in commonAttrs // { outputUnspecified = true; }; in commonAttrs // {
outputUnspecified = true;
drvPath = assert condition; drv.drvPath;
outPath = assert condition; drv.outPath;
};
/* Add attributes to each output of a derivation without changing
the derivation itself. */
addPassthru = lib.warn "`addPassthru` is deprecated, replace with `extendDerivation true`"
(extendDerivation true);
/* Strip a derivation of all non-essential attributes, returning /* Strip a derivation of all non-essential attributes, returning
only those needed by hydra-eval-jobs. Also strictly evaluate the only those needed by hydra-eval-jobs. Also strictly evaluate the

View File

@ -87,13 +87,14 @@ let
inherit (stringsWithDeps) textClosureList textClosureMap inherit (stringsWithDeps) textClosureList textClosureMap
noDepEntry fullDepEntry packEntry stringAfter; noDepEntry fullDepEntry packEntry stringAfter;
inherit (customisation) overrideDerivation makeOverridable inherit (customisation) overrideDerivation makeOverridable
callPackageWith callPackagesWith addPassthru hydraJob makeScope; callPackageWith callPackagesWith extendDerivation addPassthru
hydraJob makeScope;
inherit (meta) addMetaAttrs dontDistribute setName updateName inherit (meta) addMetaAttrs dontDistribute setName updateName
appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio
hiPrioSet; hiPrioSet;
inherit (sources) pathType pathIsDirectory cleanSourceFilter inherit (sources) pathType pathIsDirectory cleanSourceFilter
cleanSource sourceByRegex sourceFilesBySuffices cleanSource sourceByRegex sourceFilesBySuffices
commitIdFromGitRepo cleanSourceWith; commitIdFromGitRepo cleanSourceWith pathHasContext canCleanSource;
inherit (modules) evalModules closeModules unifyModuleSyntax inherit (modules) evalModules closeModules unifyModuleSyntax
applyIfFunction unpackSubmodule packSubmodule mergeModules applyIfFunction unpackSubmodule packSubmodule mergeModules
mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions

View File

@ -60,6 +60,7 @@
arobyn = "Alexei Robyn <shados@shados.net>"; arobyn = "Alexei Robyn <shados@shados.net>";
artuuge = "Artur E. Ruuge <artuuge@gmail.com>"; artuuge = "Artur E. Ruuge <artuuge@gmail.com>";
ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>"; ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>";
ashgillman = "Ashley Gillman <gillmanash@gmail.com>";
aske = "Kirill Boltaev <aske@fmap.me>"; aske = "Kirill Boltaev <aske@fmap.me>";
asppsa = "Alastair Pharo <asppsa@gmail.com>"; asppsa = "Alastair Pharo <asppsa@gmail.com>";
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>"; astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
@ -117,6 +118,7 @@
chaoflow = "Florian Friesdorf <flo@chaoflow.net>"; chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
chattered = "Phil Scott <me@philscotted.com>"; chattered = "Phil Scott <me@philscotted.com>";
ChengCat = "Yucheng Zhang <yu@cheng.cat>"; ChengCat = "Yucheng Zhang <yu@cheng.cat>";
chiiruno = "Okina Matara <okinan@protonmail.com>";
choochootrain = "Hurshal Patel <hurshal@imap.cc>"; choochootrain = "Hurshal Patel <hurshal@imap.cc>";
chpatrick = "Patrick Chilton <chpatrick@gmail.com>"; chpatrick = "Patrick Chilton <chpatrick@gmail.com>";
chreekat = "Bryan Richter <b@chreekat.net>"; chreekat = "Bryan Richter <b@chreekat.net>";
@ -298,6 +300,7 @@
ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>"; ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>";
ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>"; ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>";
izorkin = "Yurii Izorkin <Izorkin@gmail.com>"; izorkin = "Yurii Izorkin <Izorkin@gmail.com>";
ixxie = "Matan Bendix Shenhav <matan@fluxcraft.net>";
j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>"; j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>"; jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
jammerful = "jammerful <jammerful@gmail.com>"; jammerful = "jammerful <jammerful@gmail.com>";
@ -383,12 +386,14 @@
lovek323 = "Jason O'Conal <jason@oconal.id.au>"; lovek323 = "Jason O'Conal <jason@oconal.id.au>";
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>"; lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
lsix = "Lancelot SIX <lsix@lancelotsix.com>"; lsix = "Lancelot SIX <lsix@lancelotsix.com>";
lschuermann = "Leon Schuermann <leon.git@is.currently.online>";
ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>"; ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>";
lucas8 = "Luc Chabassier <luc.linux@mailoo.org>"; lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
ludo = "Ludovic Courtès <ludo@gnu.org>"; ludo = "Ludovic Courtès <ludo@gnu.org>";
lufia = "Kyohei Kadota <lufia@lufia.org>"; lufia = "Kyohei Kadota <lufia@lufia.org>";
luispedro = "Luis Pedro Coelho <luis@luispedro.org>"; luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
lukego = "Luke Gorrie <luke@snabb.co>"; lukego = "Luke Gorrie <luke@snabb.co>";
luz = "Luz <luz666@daum.net>";
lw = "Sergey Sofeychuk <lw@fmap.me>"; lw = "Sergey Sofeychuk <lw@fmap.me>";
lyt = "Tim Liou <wheatdoge@gmail.com>"; lyt = "Tim Liou <wheatdoge@gmail.com>";
m3tti = "Mathaeus Sander <mathaeus.peter.sander@gmail.com>"; m3tti = "Mathaeus Sander <mathaeus.peter.sander@gmail.com>";
@ -440,6 +445,7 @@
mjanczyk = "Marcin Janczyk <m@dragonvr.pl>"; mjanczyk = "Marcin Janczyk <m@dragonvr.pl>";
mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle"; mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle";
mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>"; mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>";
mmahut = "Marek Mahut <marek.mahut@gmail.com>";
moaxcp = "John Mercier <moaxcp@gmail.com>"; moaxcp = "John Mercier <moaxcp@gmail.com>";
modulistic = "Pablo Costa <modulistic@gmail.com>"; modulistic = "Pablo Costa <modulistic@gmail.com>";
mog = "Matthew O'Gorman <mog-lists@rldn.net>"; mog = "Matthew O'Gorman <mog-lists@rldn.net>";
@ -480,6 +486,7 @@
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>"; nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
NikolaMandic = "Ratko Mladic <nikola@mandic.email>"; NikolaMandic = "Ratko Mladic <nikola@mandic.email>";
nixy = "Andrew R. M. <nixy@nixy.moe>"; nixy = "Andrew R. M. <nixy@nixy.moe>";
nmattia = "Nicolas Mattia <nicolas@nmattia.com>";
nocoolnametom = "Tom Doggett <nocoolnametom@gmail.com>"; nocoolnametom = "Tom Doggett <nocoolnametom@gmail.com>";
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>"; notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>"; np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
@ -505,6 +512,7 @@
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>"; pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com"; panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com";
paperdigits = "Mica Semrick <mica@silentumbrella.com>"; paperdigits = "Mica Semrick <mica@silentumbrella.com>";
paraseba = "Sebastian Galkin <paraseba@gmail.com>";
pashev = "Igor Pashev <pashev.igor@gmail.com>"; pashev = "Igor Pashev <pashev.igor@gmail.com>";
patternspandemic = "Brad Christensen <patternspandemic@live.com>"; patternspandemic = "Brad Christensen <patternspandemic@live.com>";
pawelpacana = "Paweł Pacana <pawel.pacana@gmail.com>"; pawelpacana = "Paweł Pacana <pawel.pacana@gmail.com>";
@ -593,6 +601,7 @@
rzetterberg = "Richard Zetterberg <richard.zetterberg@gmail.com>"; rzetterberg = "Richard Zetterberg <richard.zetterberg@gmail.com>";
s1lvester = "Markus Silvester <s1lvester@bockhacker.me>"; s1lvester = "Markus Silvester <s1lvester@bockhacker.me>";
samdroid-apps = "Sam Parkinson <sam@sam.today>"; samdroid-apps = "Sam Parkinson <sam@sam.today>";
samueldr = "Samuel Dionne-Riel <samuel@dionne-riel.com>";
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>"; samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>"; sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
sargon = "Daniel Ehlers <danielehlers@mindeye.net>"; sargon = "Daniel Ehlers <danielehlers@mindeye.net>";
@ -603,6 +612,7 @@
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>"; scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
sdll = "Sasha Illarionov <sasha.delly@gmail.com>"; sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
SeanZicari = "Sean Zicari <sean.zicari@gmail.com>"; SeanZicari = "Sean Zicari <sean.zicari@gmail.com>";
sellout = "Greg Pfeil <greg@technomadic.org>";
sepi = "Raffael Mancini <raffael@mancini.lu>"; sepi = "Raffael Mancini <raffael@mancini.lu>";
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>"; seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>"; shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
@ -638,6 +648,7 @@
sternenseemann = "Lukas Epple <post@lukasepple.de>"; sternenseemann = "Lukas Epple <post@lukasepple.de>";
stesie = "Stefan Siegl <stesie@brokenpipe.de>"; stesie = "Stefan Siegl <stesie@brokenpipe.de>";
steveej = "Stefan Junker <mail@stefanjunker.de>"; steveej = "Stefan Junker <mail@stefanjunker.de>";
StillerHarpo = "Florian Engel <florianengel39@gmail.com>";
stumoss = "Stuart Moss <samoss@gmail.com>"; stumoss = "Stuart Moss <samoss@gmail.com>";
SuprDewd = "Bjarki Ágúst Guðmundsson <suprdewd@gmail.com>"; SuprDewd = "Bjarki Ágúst Guðmundsson <suprdewd@gmail.com>";
swarren83 = "Shawn Warren <shawn.w.warren@gmail.com>"; swarren83 = "Shawn Warren <shawn.w.warren@gmail.com>";
@ -729,9 +740,11 @@
wyvie = "Elijah Rum <elijahrum@gmail.com>"; wyvie = "Elijah Rum <elijahrum@gmail.com>";
xaverdh = "Dominik Xaver Hörl <hoe.dom@gmx.de>"; xaverdh = "Dominik Xaver Hörl <hoe.dom@gmx.de>";
xnwdd = "Guillermo NWDD <nwdd+nixos@no.team>"; xnwdd = "Guillermo NWDD <nwdd+nixos@no.team>";
xurei = "Olivier Bourdoux <olivier.bourdoux@gmail.com>";
xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>"; xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>";
xwvvvvwx = "David Terry <davidterry@posteo.de>"; xwvvvvwx = "David Terry <davidterry@posteo.de>";
xzfc = "Albert Safin <xzfcpw@gmail.com>"; xzfc = "Albert Safin <xzfcpw@gmail.com>";
y0no = "Yoann Ono <y0no@y0no.fr>";
yarr = "Dmitry V. <savraz@gmail.com>"; yarr = "Dmitry V. <savraz@gmail.com>";
yegortimoshenko = "Yegor Timoshenko <yegortimoshenko@gmail.com>"; yegortimoshenko = "Yegor Timoshenko <yegortimoshenko@gmail.com>";
ylwghst = "Burim Augustin Berisa <ylwghst@onionmail.info>"; ylwghst = "Burim Augustin Berisa <ylwghst@onionmail.info>";

View File

@ -93,4 +93,8 @@ rec {
else lib.head matchRef else lib.head matchRef
else throw ("Not a .git directory: " + path); else throw ("Not a .git directory: " + path);
in lib.flip readCommitFromFile "HEAD"; in lib.flip readCommitFromFile "HEAD";
pathHasContext = builtins.hasContext or (lib.hasPrefix builtins.storeDir);
canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext (toString src));
} }

View File

@ -4,11 +4,13 @@
# Usage $0 debian-patches.txt debian-patches.nix # Usage $0 debian-patches.txt debian-patches.nix
# An example input and output files can be found in applications/graphics/xara/ # An example input and output files can be found in applications/graphics/xara/
DEB_URL=http://patch-tracker.debian.org/patch/series/dl DEB_URL=https://sources.debian.org/data/main
declare -a deb_patches declare -a deb_patches
mapfile -t deb_patches < $1 mapfile -t deb_patches < $1
prefix="${DEB_URL}/${deb_patches[0]}" # First letter
deb_prefix="${deb_patches[0]:0:1}"
prefix="${DEB_URL}/${deb_prefix}/${deb_patches[0]}/debian/patches"
if [[ -n "$2" ]]; then if [[ -n "$2" ]]; then
exec 1> $2 exec 1> $2

View File

@ -21,7 +21,7 @@ find . -type f | while read src; do
# Sanitize file name # Sanitize file name
filename=$(basename "$src" | tr '@' '_') filename=$(basename "$src" | tr '@' '_')
nameVersion="${filename%.tar.*}" nameVersion="${filename%.tar.*}"
name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,') name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,')
version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
echo "$name,$version,$src,$filename" >>$csv echo "$name,$version,$src,$filename" >>$csv
done done

View File

@ -1,9 +1,16 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
# --print: avoid dependency on environment
optPrint=
if [ "$1" == "--print" ]; then
optPrint=true
shift
fi
if [ "$#" != 1 ] && [ "$#" != 2 ]; then if [ "$#" != 1 ] && [ "$#" != 2 ]; then
cat <<-EOF cat <<-EOF
Usage: $0 commit-spec [commit-spec] Usage: $0 [--print] commit-spec [commit-spec]
You need to be in a git-controlled nixpkgs tree. You need to be in a git-controlled nixpkgs tree.
The current state of the tree will be used if the second commit is missing. The current state of the tree will be used if the second commit is missing.
EOF EOF
@ -113,3 +120,8 @@ newPkgs "${tree[1]}" "${tree[2]}" '--argstr system "x86_64-linux"' > "$newlist"
sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \ sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \
| sort | uniq -c | sort | uniq -c
if [ -n "$optPrint" ]; then
echo
cat "$newlist"
fi

View File

@ -4,18 +4,18 @@
version="5.0" version="5.0"
xml:id="sec-instaling-virtualbox-guest"> xml:id="sec-instaling-virtualbox-guest">
<title>Installing in a Virtualbox guest</title> <title>Installing in a VirtualBox guest</title>
<para> <para>
Installing NixOS into a Virtualbox guest is convenient for users who want to Installing NixOS into a VirtualBox guest is convenient for users who want to
try NixOS without installing it on bare metal. If you want to use a pre-made try NixOS without installing it on bare metal. If you want to use a pre-made
Virtualbox appliance, it is available at <link VirtualBox appliance, it is available at <link
xlink:href="https://nixos.org/nixos/download.html">the downloads page</link>. xlink:href="https://nixos.org/nixos/download.html">the downloads page</link>.
If you want to set up a Virtualbox guest manually, follow these instructions: If you want to set up a VirtualBox guest manually, follow these instructions:
</para> </para>
<orderedlist> <orderedlist>
<listitem><para>Add a New Machine in Virtualbox with OS Type "Linux / Other <listitem><para>Add a New Machine in VirtualBox with OS Type "Linux / Other
Linux"</para></listitem> Linux"</para></listitem>
<listitem><para>Base Memory Size: 768 MB or higher.</para></listitem> <listitem><para>Base Memory Size: 768 MB or higher.</para></listitem>

View File

@ -45,7 +45,10 @@ for a UEFI installation is by and large the same as a BIOS installation. The dif
using <command>ifconfig</command>.</para> using <command>ifconfig</command>.</para>
<para>To manually configure the network on the graphical installer, <para>To manually configure the network on the graphical installer,
first disable network-manager with first disable network-manager with
<command>systemctl stop network-manager</command>.</para></listitem> <command>systemctl stop network-manager</command>.</para>
<para>To manually configure the wifi on the minimal installer, run
<command>wpa_supplicant -B -i interface -c &lt;(wpa_passphrase 'SSID' 'key')</command>.</para></listitem>
<listitem><para>If you would like to continue the installation from a different <listitem><para>If you would like to continue the installation from a different
machine you need to activate the SSH daemon via <literal>systemctl start sshd</literal>. machine you need to activate the SSH daemon via <literal>systemctl start sshd</literal>.

View File

@ -113,7 +113,7 @@ following incompatible changes:</para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<literal>cc-wrapper</literal>has been split in two; there is now also a <literal>bintools-wrapper</literal>. <literal>cc-wrapper</literal> has been split in two; there is now also a <literal>bintools-wrapper</literal>.
The most commonly used files in <filename>nix-support</filename> are now split between the two wrappers. The most commonly used files in <filename>nix-support</filename> are now split between the two wrappers.
Some commonly used ones, like <filename>nix-support/dynamic-linker</filename>, are duplicated for backwards compatability, even though they rightly belong only in <literal>bintools-wrapper</literal>. Some commonly used ones, like <filename>nix-support/dynamic-linker</filename>, are duplicated for backwards compatability, even though they rightly belong only in <literal>bintools-wrapper</literal>.
Other more obscure ones are just moved. Other more obscure ones are just moved.
@ -131,6 +131,11 @@ following incompatible changes:</para>
Other types dependencies should be unaffected. Other types dependencies should be unaffected.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>lib.addPassthru</literal> is removed. Use <literal>lib.extendDerivation true</literal> instead. <emphasis role="strong">TODO: actually remove it before branching 18.03 off.</emphasis>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The <literal>memcached</literal> service no longer accept dynamic socket The <literal>memcached</literal> service no longer accept dynamic socket
@ -139,6 +144,11 @@ following incompatible changes:</para>
will be accessible at <literal>/run/memcached/memcached.sock</literal>. will be accessible at <literal>/run/memcached/memcached.sock</literal>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The <varname>hardware.amdHybridGraphics.disable</varname> option was removed for lack of a maintainer. If you still need this module, you may wish to include a copy of it from an older version of nixos in your imports.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -13,10 +13,16 @@
# grafted in the file system at path `target'. # grafted in the file system at path `target'.
, contents ? [] , contents ? []
, # Whether the disk should be partitioned (with a single partition , # Type of partition table to use; either "legacy", "efi", or "none".
# containing the root filesystem) or contain the root filesystem # For "efi" images, the GPT partition table is used and a mandatory ESP
# directly. # partition of reasonable size is created in addition to the root partition.
partitioned ? true # If `installBootLoader` is true, GRUB will be installed in EFI mode.
# For "legacy", the msdos partition table is used and a single large root
# partition is created. If `installBootLoader` is true, GRUB will be
# installed in legacy mode.
# For "none", no partition table is created. Enabling `installBootLoader`
# most likely fails as GRUB will probably refuse to install.
partitionTableType ? "legacy"
# Whether to invoke switch-to-configuration boot during image creation # Whether to invoke switch-to-configuration boot during image creation
, installBootLoader ? true , installBootLoader ? true
@ -37,6 +43,10 @@
format ? "raw" format ? "raw"
}: }:
assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "none";
# We use -E offset=X below, which is only supported by e2fsprogs
assert partitionTableType != "none" -> fsType == "ext4";
with lib; with lib;
let format' = format; in let let format' = format; in let
@ -51,6 +61,27 @@ let format' = format; in let
raw = "img"; raw = "img";
}.${format}; }.${format};
rootPartition = { # switch-case
legacy = "1";
efi = "2";
}.${partitionTableType};
partitionDiskScript = { # switch-case
legacy = ''
parted --script $diskImage -- \
mklabel msdos \
mkpart primary ext4 1MiB -1
'';
efi = ''
parted --script $diskImage -- \
mklabel gpt \
mkpart ESP fat32 8MiB 256MiB \
set 1 boot on \
mkpart primary ext4 256MiB -1
'';
none = "";
}.${partitionTableType};
nixpkgs = cleanSource pkgs.path; nixpkgs = cleanSource pkgs.path;
channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} '' channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
@ -79,20 +110,31 @@ let format' = format; in let
targets = map (x: x.target) contents; targets = map (x: x.target) contents;
prepareImage = '' prepareImage = ''
export PATH=${makeSearchPathOutput "bin" "bin" prepareImageInputs} export PATH=${makeBinPath prepareImageInputs}
# Yes, mkfs.ext4 takes different units in different contexts. Fun.
sectorsToKilobytes() {
echo $(( ( "$1" * 512 ) / 1024 ))
}
sectorsToBytes() {
echo $(( "$1" * 512 ))
}
mkdir $out mkdir $out
diskImage=nixos.raw diskImage=nixos.raw
truncate -s ${toString diskSize}M $diskImage truncate -s ${toString diskSize}M $diskImage
${if partitioned then '' ${partitionDiskScript}
parted --script $diskImage -- mklabel msdos mkpart primary ext4 1M -1s
offset=$((2048*512))
'' else ''
offset=0
''}
mkfs.${fsType} -F -L nixos -E offset=$offset $diskImage ${if partitionTableType != "none" then ''
# Get start & length of the root partition in sectors to $START and $SECTORS.
eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
mkfs.${fsType} -F -L nixos $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
'' else ''
mkfs.${fsType} -F -L nixos $diskImage
''}
root="$PWD/root" root="$PWD/root"
mkdir -p $root mkdir -p $root
@ -133,12 +175,12 @@ let format' = format; in let
find $root/nix/store -mindepth 1 -maxdepth 1 -type f -o -type d | xargs chmod -R a-w find $root/nix/store -mindepth 1 -maxdepth 1 -type f -o -type d | xargs chmod -R a-w
echo "copying staging root to image..." echo "copying staging root to image..."
cptofs ${optionalString partitioned "-P 1"} -t ${fsType} -i $diskImage $root/* / cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* /
''; '';
in pkgs.vmTools.runInLinuxVM ( in pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name pkgs.runCommand name
{ preVM = prepareImage; { preVM = prepareImage;
buildInputs = with pkgs; [ utillinux e2fsprogs ]; buildInputs = with pkgs; [ utillinux e2fsprogs dosfstools ];
exportReferencesGraph = [ "closure" metaClosure ]; exportReferencesGraph = [ "closure" metaClosure ];
postVM = '' postVM = ''
${if format == "raw" then '' ${if format == "raw" then ''
@ -152,11 +194,7 @@ in pkgs.vmTools.runInLinuxVM (
memSize = 1024; memSize = 1024;
} }
'' ''
${if partitioned then '' rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
rootDisk=/dev/vda1
'' else ''
rootDisk=/dev/vda
''}
# Some tools assume these exist # Some tools assume these exist
ln -s vda /dev/xvda ln -s vda /dev/xvda
@ -166,6 +204,14 @@ in pkgs.vmTools.runInLinuxVM (
mkdir $mountPoint mkdir $mountPoint
mount $rootDisk $mountPoint mount $rootDisk $mountPoint
# Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
# '-E offset=X' option, so we can't do this outside the VM.
${optionalString (partitionTableType == "efi") ''
mkdir -p /mnt/boot
mkfs.vfat -n ESP /dev/vda1
mount /dev/vda1 /mnt/boot
''}
# Install a configuration.nix # Install a configuration.nix
mkdir -p /mnt/etc/nixos mkdir -p /mnt/etc/nixos
${optionalString (configFile != null) '' ${optionalString (configFile != null) ''

View File

@ -46,7 +46,7 @@ in {
inherit lib config; inherit lib config;
inherit (cfg) contents format name; inherit (cfg) contents format name;
pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
partitioned = config.ec2.hvm; partitionTableType = if config.ec2.hvm then "legacy" else "none";
diskSize = cfg.sizeMB; diskSize = cfg.sizeMB;
configFile = pkgs.writeText "configuration.nix" configFile = pkgs.writeText "configuration.nix"
'' ''

View File

@ -36,7 +36,7 @@ in
default = {}; default = {};
description = '' description = ''
A set of environment variables used in the global environment. A set of environment variables used in the global environment.
These variables will be set on shell initialisation. These variables will be set on shell initialisation (e.g. in /etc/profile).
The value of each variable can be either a string or a list of The value of each variable can be either a string or a list of
strings. The latter is concatenated, interspersed with colon strings. The latter is concatenated, interspersed with colon
characters. characters.

View File

@ -27,6 +27,7 @@ in
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7;
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
# The serial ports listed here are: # The serial ports listed here are:
@ -42,8 +43,17 @@ in
populateBootCommands = let populateBootCommands = let
configTxt = pkgs.writeText "config.txt" '' configTxt = pkgs.writeText "config.txt" ''
kernel=u-boot-rpi3.bin kernel=u-boot-rpi3.bin
# Boot in 64-bit mode.
arm_control=0x200 arm_control=0x200
# U-Boot used to need this to work, regardless of whether UART is actually used or not.
# TODO: check when/if this can be removed.
enable_uart=1 enable_uart=1
# Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
# when attempting to show low-voltage or overtemperature warnings.
avoid_warnings=1
''; '';
in '' in ''
(cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/boot/) (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/boot/)

View File

@ -27,6 +27,7 @@ in
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7;
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
# The serial ports listed here are: # The serial ports listed here are:
# - ttyS0: for Tegra (Jetson TK1) # - ttyS0: for Tegra (Jetson TK1)

View File

@ -27,6 +27,7 @@ in
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7;
boot.kernelPackages = pkgs.linuxPackages_rpi; boot.kernelPackages = pkgs.linuxPackages_rpi;
# FIXME: this probably should be in installation-device.nix # FIXME: this probably should be in installation-device.nix

View File

@ -301,6 +301,7 @@
pykms = 282; pykms = 282;
kodi = 283; kodi = 283;
restya-board = 284; restya-board = 284;
mighttpd2 = 285;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -570,6 +571,7 @@
pykms = 282; pykms = 282;
kodi = 283; kodi = 283;
restya-board = 284; restya-board = 284;
mighttpd2 = 285;
# When adding a gid, make sure it doesn't match an existing # When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal # uid. Users and groups with the same name should have equal

View File

@ -200,6 +200,7 @@
./services/desktops/dleyna-server.nix ./services/desktops/dleyna-server.nix
./services/desktops/geoclue2.nix ./services/desktops/geoclue2.nix
./services/desktops/gnome3/at-spi2-core.nix ./services/desktops/gnome3/at-spi2-core.nix
./services/desktops/gnome3/chrome-gnome-shell.nix
./services/desktops/gnome3/evolution-data-server.nix ./services/desktops/gnome3/evolution-data-server.nix
./services/desktops/gnome3/gnome-disks.nix ./services/desktops/gnome3/gnome-disks.nix
./services/desktops/gnome3/gnome-documents.nix ./services/desktops/gnome3/gnome-documents.nix
@ -225,7 +226,6 @@
./services/games/terraria.nix ./services/games/terraria.nix
./services/hardware/acpid.nix ./services/hardware/acpid.nix
./services/hardware/actkbd.nix ./services/hardware/actkbd.nix
./services/hardware/amd-hybrid-graphics.nix
./services/hardware/bluetooth.nix ./services/hardware/bluetooth.nix
./services/hardware/brltty.nix ./services/hardware/brltty.nix
./services/hardware/freefall.nix ./services/hardware/freefall.nix
@ -540,6 +540,7 @@
./services/networking/ssh/lshd.nix ./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix ./services/networking/ssh/sshd.nix
./services/networking/strongswan.nix ./services/networking/strongswan.nix
./services/networking/stunnel.nix
./services/networking/supplicant.nix ./services/networking/supplicant.nix
./services/networking/supybot.nix ./services/networking/supybot.nix
./services/networking/syncthing.nix ./services/networking/syncthing.nix
@ -634,6 +635,7 @@
./services/web-servers/lighttpd/default.nix ./services/web-servers/lighttpd/default.nix
./services/web-servers/lighttpd/gitweb.nix ./services/web-servers/lighttpd/gitweb.nix
./services/web-servers/lighttpd/inginious.nix ./services/web-servers/lighttpd/inginious.nix
./services/web-servers/mighttpd2.nix
./services/web-servers/minio.nix ./services/web-servers/minio.nix
./services/web-servers/nginx/default.nix ./services/web-servers/nginx/default.nix
./services/web-servers/phpfpm/default.nix ./services/web-servers/phpfpm/default.nix

View File

@ -48,6 +48,15 @@ in
Name of the theme to be used by oh-my-zsh. Name of the theme to be used by oh-my-zsh.
''; '';
}; };
cacheDir = mkOption {
default = "$HOME/.cache/oh-my-zsh";
type = types.str;
description = ''
Cache directory to be used by `oh-my-zsh`.
Without this option it would default to the read-only nix store.
'';
};
}; };
}; };
@ -74,6 +83,13 @@ in
"ZSH_THEME=\"${cfg.theme}\"" "ZSH_THEME=\"${cfg.theme}\""
} }
${optionalString (cfg.cacheDir != null) ''
if [[ ! -d "${cfg.cacheDir}" ]]; then
mkdir -p "${cfg.cacheDir}"
fi
ZSH_CACHE_DIR=${cfg.cacheDir}
''}
source $ZSH/oh-my-zsh.sh source $ZSH/oh-my-zsh.sh
''; '';
}; };

View File

@ -36,8 +36,9 @@ in
shellAliases = mkOption { shellAliases = mkOption {
default = config.environment.shellAliases; default = config.environment.shellAliases;
description = '' description = ''
Set of aliases for zsh shell. See <option>environment.shellAliases</option> Set of aliases for zsh shell. Overrides the default value taken from
for an option format description. <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
''; '';
type = types.attrs; # types.attrsOf types.stringOrPath; type = types.attrs; # types.attrsOf types.stringOrPath;
}; };

View File

@ -139,6 +139,14 @@ in
''; '';
}; };
tosHash = mkOption {
type = types.string;
default = "cc88d8d9517f490191401e7b54e9ffd12a2b9082ec7a1d4cec6101f9f1647e7b";
description = ''
SHA256 of the Terms of Services document. This changes once in a while.
'';
};
production = mkOption { production = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -188,7 +196,7 @@ in
domain = if data.domain != null then data.domain else cert; domain = if data.domain != null then data.domain else cert;
cpath = "${cfg.directory}/${cert}"; cpath = "${cfg.directory}/${cert}";
rights = if data.allowKeysForGroup then "750" else "700"; rights = if data.allowKeysForGroup then "750" else "700";
cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ] cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin "--tos_sha256" cfg.tosHash ]
++ optionals (data.email != null) [ "--email" data.email ] ++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins ++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains) ++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)

View File

@ -8,6 +8,22 @@ let
inherit (pkgs) sudo; inherit (pkgs) sudo;
toUserString = user: if (isInt user) then "#${toString user}" else "${user}";
toGroupString = group: if (isInt group) then "%#${toString group}" else "%${group}";
toCommandOptionsString = options:
"${concatStringsSep ":" options}${optionalString (length options != 0) ":"} ";
toCommandsString = commands:
concatStringsSep ", " (
map (command:
if (isString command) then
command
else
"${toCommandOptionsString command.options}${command.command}"
) commands
);
in in
{ {
@ -47,6 +63,97 @@ in
''; '';
}; };
security.sudo.extraRules = mkOption {
description = ''
Define specific rules to be in the <filename>sudoers</filename> file.
'';
default = [];
example = [
# Allow execution of any command by all users in group sudo,
# requiring a password.
{ groups = [ "sudo" ]; commands = [ "ALL" ]; }
# Allow execution of "/home/root/secret.sh" by user `backup`, `database`
# and the group with GID `1006` without a password.
{ users = [ "backup" ]; groups = [ 1006 ];
commands = [ { command = "/home/root/secret.sh"; options = [ "SETENV" "NOPASSWD" ]; } ]; }
# Allow all users of group `bar` to run two executables as user `foo`
# with arguments being pre-set.
{ groups = [ "bar" ]; runAs = "foo";
commands =
[ "/home/baz/cmd1.sh hello-sudo"
{ command = ''/home/baz/cmd2.sh ""''; options = [ "SETENV" ]; } ]; }
];
type = with types; listOf (submodule {
options = {
users = mkOption {
type = with types; listOf (either string int);
description = ''
The usernames / UIDs this rule should apply for.
'';
default = [];
};
groups = mkOption {
type = with types; listOf (either string int);
description = ''
The groups / GIDs this rule should apply for.
'';
default = [];
};
host = mkOption {
type = types.string;
default = "ALL";
description = ''
For what host this rule should apply.
'';
};
runAs = mkOption {
type = with types; string;
default = "ALL:ALL";
description = ''
Under which user/group the specified command is allowed to run.
A user can be specified using just the username: <code>"foo"</code>.
It is also possible to specify a user/group combination using <code>"foo:bar"</code>
or to only allow running as a specific group with <code>":bar"</code>.
'';
};
commands = mkOption {
description = ''
The commands for which the rule should apply.
'';
type = with types; listOf (either string (submodule {
options = {
command = mkOption {
type = with types; string;
description = ''
A command being either just a path to a binary to allow any arguments,
the full command with arguments pre-set or with <code>""</code> used as the argument,
not allowing arguments to the command at all.
'';
};
options = mkOption {
type = with types; listOf (enum [ "NOPASSWD" "PASSWD" "NOEXEC" "EXEC" "SETENV" "NOSETENV" "LOG_INPUT" "NOLOG_INPUT" "LOG_OUTPUT" "NOLOG_OUTPUT" ]);
description = ''
Options for running the command. Refer to the <a href="https://www.sudo.ws/man/1.7.10/sudoers.man.html">sudo manual</a>.
'';
default = [];
};
};
}));
};
};
});
};
security.sudo.extraConfig = mkOption { security.sudo.extraConfig = mkOption {
type = types.lines; type = types.lines;
default = ""; default = "";
@ -61,10 +168,16 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
security.sudo.extraRules = [
{ groups = [ "wheel" ];
commands = [ { command = "ALL"; options = (if cfg.wheelNeedsPassword then [ "SETENV" ] else [ "NOPASSWD" "SETENV" ]); } ];
}
];
security.sudo.configFile = security.sudo.configFile =
'' ''
# Don't edit this file. Set the NixOS options security.sudo.configFile # Don't edit this file. Set the NixOS options security.sudo.configFile
# or security.sudo.extraConfig instead. # or security.sudo.extraRules instead.
# Keep SSH_AUTH_SOCK so that pam_ssh_agent_auth.so can do its magic. # Keep SSH_AUTH_SOCK so that pam_ssh_agent_auth.so can do its magic.
Defaults env_keep+=SSH_AUTH_SOCK Defaults env_keep+=SSH_AUTH_SOCK
@ -72,8 +185,18 @@ in
# "root" is allowed to do anything. # "root" is allowed to do anything.
root ALL=(ALL:ALL) SETENV: ALL root ALL=(ALL:ALL) SETENV: ALL
# Users in the "wheel" group can do anything. # extraRules
%wheel ALL=(ALL:ALL) ${if cfg.wheelNeedsPassword then "" else "NOPASSWD: ALL, "}SETENV: ALL ${concatStringsSep "\n" (
lists.flatten (
map (
rule: if (length rule.commands != 0) then [
(map (user: "${toUserString user} ${rule.host}=(${rule.runAs}) ${toCommandsString rule.commands}") rule.users)
(map (group: "${toGroupString group} ${rule.host}=(${rule.runAs}) ${toCommandsString rule.commands}") rule.groups)
] else []
) cfg.extraRules
)
)}
${cfg.extraConfig} ${cfg.extraConfig}
''; '';

View File

@ -0,0 +1,27 @@
# Chrome GNOME Shell native host connector.
{ config, lib, pkgs, ... }:
with lib;
{
###### interface
options = {
services.gnome3.chrome-gnome-shell.enable = mkEnableOption ''
Chrome GNOME Shell native host connector, a DBus service
allowing to install GNOME Shell extensions from a web browser.
'';
};
###### implementation
config = mkIf config.services.gnome3.chrome-gnome-shell.enable {
environment.etc = {
"chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
"opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
};
environment.systemPackages = [ pkgs.chrome-gnome-shell ];
services.dbus.packages = [ pkgs.chrome-gnome-shell ];
};
}

View File

@ -0,0 +1,13 @@
# Copied from systemd 203.
ACTION=="remove", GOTO="net_name_slot_end"
SUBSYSTEM!="net", GOTO="net_name_slot_end"
NAME!="", GOTO="net_name_slot_end"
IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="net_name_slot_end"
NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
LABEL="net_name_slot_end"

View File

@ -1,46 +0,0 @@
{ config, pkgs, lib, ... }:
{
###### interface
options = {
hardware.amdHybridGraphics.disable = lib.mkOption {
default = false;
type = lib.types.bool;
description = ''
Completely disable the AMD graphics card and use the
integrated graphics processor instead.
'';
};
};
###### implementation
config = lib.mkIf config.hardware.amdHybridGraphics.disable {
systemd.services."amd-hybrid-graphics" = {
path = [ pkgs.bash ];
description = "Disable AMD Card";
after = [ "sys-kernel-debug.mount" ];
before = [ "systemd-vconsole-setup.service" "display-manager.service" ];
requires = [ "sys-kernel-debug.mount" "vgaswitcheroo.path" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "${pkgs.bash}/bin/sh -c 'echo -e \"IGD\\nOFF\" > /sys/kernel/debug/vgaswitcheroo/switch'";
ExecStop = "${pkgs.bash}/bin/sh -c 'echo ON >/sys/kernel/debug/vgaswitcheroo/switch'";
};
};
systemd.paths."vgaswitcheroo" = {
pathConfig = {
PathExists = "/sys/kernel/debug/vgaswitcheroo/switch";
Unit = "amd-hybrid-graphics.service";
};
wantedBy = ["multi-user.target"];
};
};
}

View File

@ -119,7 +119,7 @@ let
fi fi
${optionalString config.networking.usePredictableInterfaceNames '' ${optionalString config.networking.usePredictableInterfaceNames ''
cp ${udev}/lib/udev/rules.d/80-net-setup-link.rules $out/80-net-setup-link.rules cp ${./80-net-setup-link.rules} $out/80-net-setup-link.rules
''} ''}
# If auto-configuration is disabled, then remove # If auto-configuration is disabled, then remove

View File

@ -5,18 +5,25 @@ with lib;
let let
cfg = config.services.netdata; cfg = config.services.netdata;
configFile = pkgs.writeText "netdata.conf" cfg.configText; wrappedPlugins = pkgs.runCommand "wrapped-plugins" {} ''
mkdir -p $out/libexec/netdata/plugins.d
ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin
'';
localConfig = {
global = {
"plugins directory" = "${wrappedPlugins}/libexec/netdata/plugins.d ${pkgs.netdata}/libexec/netdata/plugins.d";
};
};
mkConfig = generators.toINI {} (recursiveUpdate localConfig cfg.config);
configFile = pkgs.writeText "netdata.conf" (if cfg.configText != null then cfg.configText else mkConfig);
defaultUser = "netdata"; defaultUser = "netdata";
in { in {
options = { options = {
services.netdata = { services.netdata = {
enable = mkOption { enable = mkEnableOption "netdata";
default = false;
type = types.bool;
description = "Whether to enable netdata monitoring.";
};
user = mkOption { user = mkOption {
type = types.str; type = types.str;
@ -31,9 +38,9 @@ in {
}; };
configText = mkOption { configText = mkOption {
type = types.lines; type = types.nullOr types.lines;
default = ""; description = "Verbatim netdata.conf, cannot be combined with config.";
description = "netdata.conf configuration."; default = null;
example = '' example = ''
[global] [global]
debug log = syslog debug log = syslog
@ -42,11 +49,29 @@ in {
''; '';
}; };
config = mkOption {
type = types.attrsOf types.attrs;
default = {};
description = "netdata.conf configuration as nix attributes. cannot be combined with configText.";
example = literalExample ''
global = {
"debug log" = "syslog";
"access log" = "syslog";
"error log" = "syslog";
};
'';
};
};
}; };
};
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions =
[ { assertion = cfg.config != {} -> cfg.configText == null ;
message = "Cannot specify both config and configText";
}
];
systemd.services.netdata = { systemd.services.netdata = {
path = with pkgs; [ gawk curl ];
description = "Real time performance monitoring"; description = "Real time performance monitoring";
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
@ -66,6 +91,15 @@ in {
}; };
}; };
security.wrappers."apps.plugin" = {
source = "${pkgs.netdata}/libexec/netdata/plugins.d/apps.plugin";
capabilities = "cap_dac_read_search,cap_sys_ptrace+ep";
owner = cfg.user;
group = cfg.group;
permissions = "u+rx,g+rx,o-rwx";
};
users.extraUsers = optional (cfg.user == defaultUser) { users.extraUsers = optional (cfg.user == defaultUser) {
name = defaultUser; name = defaultUser;
}; };

View File

@ -145,6 +145,16 @@ in {
}; };
users.groups.dnscrypt-wrapper = { }; users.groups.dnscrypt-wrapper = { };
security.polkit.extraConfig = ''
// Allow dnscrypt-wrapper user to restart dnscrypt-wrapper.service
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "dnscrypt-wrapper.service" &&
subject.user == "dnscrypt-wrapper") {
return polkit.Result.YES;
}
});
'';
systemd.services.dnscrypt-wrapper = { systemd.services.dnscrypt-wrapper = {
description = "dnscrypt-wrapper daemon"; description = "dnscrypt-wrapper daemon";

View File

@ -12,6 +12,10 @@ let
keyfile ${cfg.ssl.keyfile} keyfile ${cfg.ssl.keyfile}
''; '';
passwordConf = optionalString cfg.checkPasswords ''
password_file ${cfg.dataDir}/passwd
'';
mosquittoConf = pkgs.writeText "mosquitto.conf" '' mosquittoConf = pkgs.writeText "mosquitto.conf" ''
pid_file /run/mosquitto/pid pid_file /run/mosquitto/pid
acl_file ${aclFile} acl_file ${aclFile}
@ -19,6 +23,7 @@ let
allow_anonymous ${boolToString cfg.allowAnonymous} allow_anonymous ${boolToString cfg.allowAnonymous}
bind_address ${cfg.host} bind_address ${cfg.host}
port ${toString cfg.port} port ${toString cfg.port}
${passwordConf}
${listenerConf} ${listenerConf}
${cfg.extraConf} ${cfg.extraConf}
''; '';
@ -153,6 +158,15 @@ in
''; '';
}; };
checkPasswords = mkOption {
default = false;
example = true;
type = types.bool;
description = ''
Refuse connection when clients provide incorrect passwords.
'';
};
extraConf = mkOption { extraConf = mkOption {
default = ""; default = "";
type = types.lines; type = types.lines;

View File

@ -50,6 +50,11 @@ let
"up ${pkgs.writeScript "openvpn-${name}-up" upScript}"} "up ${pkgs.writeScript "openvpn-${name}-up" upScript}"}
${optionalString (cfg.down != "" || cfg.updateResolvConf) ${optionalString (cfg.down != "" || cfg.updateResolvConf)
"down ${pkgs.writeScript "openvpn-${name}-down" downScript}"} "down ${pkgs.writeScript "openvpn-${name}-down" downScript}"}
${optionalString (cfg.authUserPass != null)
"auth-user-pass ${pkgs.writeText "openvpn-credentials-${name}" ''
${cfg.authUserPass.username}
${cfg.authUserPass.password}
''}"}
''; '';
in { in {
@ -161,6 +166,29 @@ in
''; '';
}; };
authUserPass = mkOption {
default = null;
description = ''
This option can be used to store the username / password credentials
with the "auth-user-pass" authentication method.
WARNING: Using this option will put the credentials WORLD-READABLE in the Nix store!
'';
type = types.nullOr (types.submodule {
options = {
username = mkOption {
description = "The username to store inside the credentials file.";
type = types.string;
};
password = mkOption {
description = "The password to store inside the credentials file.";
type = types.string;
};
};
});
};
}; };
}); });

View File

@ -17,7 +17,7 @@ let
search_lan = entry.searchLAN; search_lan = entry.searchLAN;
use_sync_trash = entry.useSyncTrash; use_sync_trash = entry.useSyncTrash;
known_hosts = knownHosts; known_hosts = entry.knownHosts;
}) cfg.sharedFolders; }) cfg.sharedFolders;
configFile = pkgs.writeText "config.json" (builtins.toJSON ({ configFile = pkgs.writeText "config.json" (builtins.toJSON ({

View File

@ -137,6 +137,14 @@ in
''; '';
}; };
openFirewall = mkOption {
type = types.bool;
default = true;
description = ''
Whether to automatically open the specified ports in the firewall.
'';
};
listenAddresses = mkOption { listenAddresses = mkOption {
type = with types; listOf (submodule { type = with types; listOf (submodule {
options = { options = {
@ -302,7 +310,7 @@ in
}; };
networking.firewall.allowedTCPPorts = cfg.ports; networking.firewall.allowedTCPPorts = if cfg.openFirewall then cfg.ports else [];
security.pam.services.sshd = security.pam.services.sshd =
{ startSession = true; { startSession = true;

View File

@ -0,0 +1,221 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.stunnel;
yesNo = val: if val then "yes" else "no";
verifyChainPathAssert = n: c: {
assertion = c.verifyHostname == null || (c.verifyChain || c.verifyPeer);
message = "stunnel: \"${n}\" client configuration - hostname verification " +
"is not possible without either verifyChain or verifyPeer enabled";
};
serverConfig = {
options = {
accept = mkOption {
type = types.int;
description = "On which port stunnel should listen for incoming TLS connections.";
};
connect = mkOption {
type = types.int;
description = "To which port the decrypted connection should be forwarded.";
};
cert = mkOption {
type = types.path;
description = "File containing both the private and public keys.";
};
};
};
clientConfig = {
options = {
accept = mkOption {
type = types.string;
description = "IP:Port on which connections should be accepted.";
};
connect = mkOption {
type = types.string;
description = "IP:Port destination to connect to.";
};
verifyChain = mkOption {
type = types.bool;
default = true;
description = "Check if the provided certificate has a valid certificate chain (against CAPath).";
};
verifyPeer = mkOption {
type = types.bool;
default = false;
description = "Check if the provided certificate is contained in CAPath.";
};
CAPath = mkOption {
type = types.path;
default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
description = "Path to a file containing certificates to validate against.";
};
verifyHostname = mkOption {
type = with types; nullOr string;
default = null;
description = "If set, stunnel checks if the provided certificate is valid for the given hostname.";
};
};
};
in
{
###### interface
options = {
services.stunnel = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the stunnel TLS tunneling service.";
};
user = mkOption {
type = with types; nullOr string;
default = "nobody";
description = "The user under which stunnel runs.";
};
group = mkOption {
type = with types; nullOr string;
default = "nogroup";
description = "The group under which stunnel runs.";
};
logLevel = mkOption {
type = types.enum [ "emerg" "alert" "crit" "err" "warning" "notice" "info" "debug" ];
default = "info";
description = "Verbosity of stunnel output.";
};
fipsMode = mkOption {
type = types.bool;
default = false;
description = "Enable FIPS 140-2 mode required for compliance.";
};
enableInsecureSSLv3 = mkOption {
type = types.bool;
default = false;
description = "Enable support for the insecure SSLv3 protocol.";
};
servers = mkOption {
description = "Define the server configuations.";
type = with types; attrsOf (submodule serverConfig);
example = {
fancyWebserver = {
enable = true;
accept = 443;
connect = 8080;
cert = "/path/to/pem/file";
};
};
default = { };
};
clients = mkOption {
description = "Define the client configurations.";
type = with types; attrsOf (submodule clientConfig);
example = {
foobar = {
accept = "0.0.0.0:8080";
connect = "nixos.org:443";
verifyChain = false;
};
};
default = { };
};
};
};
###### implementation
config = mkIf cfg.enable {
assertions = concatLists [
(singleton {
assertion = (length (attrValues cfg.servers) != 0) || ((length (attrValues cfg.clients)) != 0);
message = "stunnel: At least one server- or client-configuration has to be present.";
})
(mapAttrsToList verifyChainPathAssert cfg.clients)
];
environment.systemPackages = [ pkgs.stunnel ];
environment.etc."stunnel.cfg".text = ''
${ if cfg.user != null then "setuid = ${cfg.user}" else "" }
${ if cfg.group != null then "setgid = ${cfg.group}" else "" }
debug = ${cfg.logLevel}
${ optionalString cfg.fipsMode "fips = yes" }
${ optionalString cfg.enableInsecureSSLv3 "options = -NO_SSLv3" }
; ----- SERVER CONFIGURATIONS -----
${ lib.concatStringsSep "\n"
(lib.mapAttrsToList
(n: v: ''
[${n}]
accept = ${toString v.accept}
connect = ${toString v.connect}
cert = ${v.cert}
'')
cfg.servers)
}
; ----- CLIENT CONFIGURATIONS -----
${ lib.concatStringsSep "\n"
(lib.mapAttrsToList
(n: v: ''
[${n}]
client = yes
accept = ${v.accept}
connect = ${v.connect}
verifyChain = ${yesNo v.verifyChain}
verifyPeer = ${yesNo v.verifyPeer}
${optionalString (v.CAPath != null) "CApath = ${v.CAPath}"}
${optionalString (v.verifyHostname != null) "checkHost = ${v.verifyHostname}"}
OCSPaia = yes
'')
cfg.clients)
}
'';
systemd.services.stunnel = {
description = "stunnel TLS tunneling service";
after = [ "network.target" ];
wants = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."stunnel.cfg".source ];
serviceConfig = {
ExecStart = "${pkgs.stunnel}/bin/stunnel ${config.environment.etc."stunnel.cfg".source}";
Type = "forking";
};
};
};
}

View File

@ -6,6 +6,7 @@ let
cfg = config.services.elasticsearch; cfg = config.services.elasticsearch;
es5 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "5" >= 0; es5 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "5" >= 0;
es6 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "6" >= 0;
esConfig = '' esConfig = ''
network.host: ${cfg.listenAddress} network.host: ${cfg.listenAddress}
@ -92,8 +93,6 @@ in {
node.name: "elasticsearch" node.name: "elasticsearch"
node.master: true node.master: true
node.data: false node.data: false
index.number_of_shards: 5
index.number_of_replicas: 1
''; '';
}; };
@ -165,7 +164,10 @@ in {
path = [ pkgs.inetutils ]; path = [ pkgs.inetutils ];
environment = { environment = {
ES_HOME = cfg.dataDir; ES_HOME = cfg.dataDir;
ES_JAVA_OPTS = toString ([ "-Des.path.conf=${configDir}" ] ++ cfg.extraJavaOptions); ES_JAVA_OPTS = toString ( optional (!es6) [ "-Des.path.conf=${configDir}" ]
++ cfg.extraJavaOptions);
} // optionalAttrs es6 {
ES_PATH_CONF = configDir;
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/elasticsearch ${toString cfg.extraCmdLineOptions}"; ExecStart = "${cfg.package}/bin/elasticsearch ${toString cfg.extraCmdLineOptions}";

View File

@ -0,0 +1,132 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mighttpd2;
configFile = pkgs.writeText "mighty-config" cfg.config;
routingFile = pkgs.writeText "mighty-routing" cfg.routing;
in {
options.services.mighttpd2 = {
enable = mkEnableOption "Mighttpd2 web server";
config = mkOption {
default = "";
example = ''
# Example configuration for Mighttpd 2
Port: 80
# IP address or "*"
Host: *
Debug_Mode: Yes # Yes or No
# If available, "nobody" is much more secure for User:.
User: root
# If available, "nobody" is much more secure for Group:.
Group: root
Pid_File: /var/run/mighty.pid
Logging: Yes # Yes or No
Log_File: /var/log/mighty # The directory must be writable by User:
Log_File_Size: 16777216 # bytes
Log_Backup_Number: 10
Index_File: index.html
Index_Cgi: index.cgi
Status_File_Dir: /usr/local/share/mighty/status
Connection_Timeout: 30 # seconds
Fd_Cache_Duration: 10 # seconds
# Server_Name: Mighttpd/3.x.y
Tls_Port: 443
Tls_Cert_File: cert.pem # should change this with an absolute path
# should change this with comma-separated absolute paths
Tls_Chain_Files: chain.pem
# Currently, Tls_Key_File must not be encrypted.
Tls_Key_File: privkey.pem # should change this with an absolute path
Service: 0 # 0 is HTTP only, 1 is HTTPS only, 2 is both
'';
type = types.lines;
description = ''
Verbatim config file to use
(see http://www.mew.org/~kazu/proj/mighttpd/en/config.html)
'';
};
routing = mkOption {
default = "";
example = ''
# Example routing for Mighttpd 2
# Domain lists
[localhost www.example.com]
# Entries are looked up in the specified order
# All paths must end with "/"
# A path to CGI scripts should be specified with "=>"
/~alice/cgi-bin/ => /home/alice/public_html/cgi-bin/
# A path to static files should be specified with "->"
/~alice/ -> /home/alice/public_html/
/cgi-bin/ => /export/cgi-bin/
# Reverse proxy rules should be specified with ">>"
# /path >> host:port/path2
# Either "host" or ":port" can be committed, but not both.
/app/cal/ >> example.net/calendar/
# Yesod app in the same server
/app/wiki/ >> 127.0.0.1:3000/
/ -> /export/www/
'';
type = types.lines;
description = ''
Verbatim routing file to use
(see http://www.mew.org/~kazu/proj/mighttpd/en/config.html)
'';
};
cores = mkOption {
default = null;
type = types.nullOr types.int;
description = ''
How many cores to use.
If null it will be determined automatically
'';
};
};
config = mkIf cfg.enable {
assertions =
[ { assertion = cfg.routing != "";
message = "You need at least one rule in mighttpd2.routing";
}
];
systemd.services.mighttpd2 = {
description = "Mighttpd2 web server";
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''
${pkgs.haskellPackages.mighttpd2}/bin/mighty \
${configFile} \
${routingFile} \
+RTS -N${optionalString (cfg.cores != null) "${cfg.cores}"}
'';
Type = "simple";
User = "mighttpd2";
Group = "mighttpd2";
Restart = "on-failure";
AmbientCapabilities = "cap_net_bind_service";
CapabilityBoundingSet = "cap_net_bind_service";
};
};
users.extraUsers.mighttpd2 = {
group = "mighttpd2";
uid = config.ids.uids.mighttpd2;
isSystemUser = true;
};
users.extraGroups.mighttpd2.gid = config.ids.gids.mighttpd2;
};
meta.maintainers = with lib.maintainers; [ fgaz ];
}

View File

@ -3,9 +3,7 @@
with lib; with lib;
let let
xcfg = config.services.xserver; cfg = config.services.xserver.desktopManager.xfce;
pcfg = config.hardware.pulseaudio;
cfg = xcfg.desktopManager.xfce;
in in
{ {
@ -52,82 +50,93 @@ in
description = "Application used by XFCE to lock the screen."; description = "Application used by XFCE to lock the screen.";
}; };
}; };
}; };
config = mkIf cfg.enable {
environment.systemPackages = with pkgs.xfce // pkgs; [
# Get GTK+ themes and gtk-update-icon-cache
gtk2.out
config = mkIf (xcfg.enable && cfg.enable) { # Supplies some abstract icons such as:
# utilities-terminal, accessories-text-editor
gnome3.defaultIconTheme
services.xserver.desktopManager.session = singleton hicolor_icon_theme
{ name = "xfce"; tango-icon-theme
bgSupport = true; xfce4-icon-theme
start =
''
${cfg.extraSessionCommands}
# Set GTK_PATH so that GTK+ can find the theme engines. desktop_file_utils
export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0" shared_mime_info
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes. # Needed by Xfce's xinitrc script
export GTK_DATA_PREFIX=${config.system.path} # TODO: replace with command -v
which
${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} & exo
waitPID=$! garcon
''; gtk-xfce-engine
}; gvfs
libxfce4ui
tumbler
xfconf
mousepad
ristretto
xfce4-appfinder
xfce4-screenshooter
xfce4-session
xfce4-settings
xfce4-terminal
(thunar.override { thunarPlugins = cfg.thunarPlugins; })
thunar-volman # TODO: drop
] ++ (if config.hardware.pulseaudio.enable
then [ xfce4-mixer-pulse xfce4-volumed-pulse ]
else [ xfce4-mixer xfce4-volumed ])
# TODO: NetworkManager doesn't belong here
++ optionals config.networking.networkmanager.enable [ networkmanagerapplet ]
++ optionals config.powerManagement.enable [ xfce4-power-manager ]
++ optionals cfg.enableXfwm [ xfwm4 ]
++ optionals (!cfg.noDesktop) [
xfce4-panel
xfce4-notifyd
xfdesktop
];
environment.pathsToLink = [
"/share/xfce4"
"/share/themes"
"/share/mime"
"/share/desktop-directories"
"/share/gtksourceview-2.0"
];
environment.variables = {
GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
GIO_EXTRA_MODULES = [ "${pkgs.xfce.gvfs}/lib/gio/modules" ];
};
services.xserver.desktopManager.session = [{
name = "xfce";
bgSupport = true;
start = ''
${cfg.extraSessionCommands}
# Set GTK_PATH so that GTK+ can find the theme engines.
export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
export GTK_DATA_PREFIX=${config.system.path}
${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} &
waitPID=$!
'';
}];
services.xserver.updateDbusEnvironment = true; services.xserver.updateDbusEnvironment = true;
environment.systemPackages =
[ pkgs.gtk2.out # To get GTK+'s themes and gtk-update-icon-cache
pkgs.hicolor_icon_theme
pkgs.tango-icon-theme
pkgs.shared_mime_info
pkgs.which # Needed by the xfce's xinitrc script.
pkgs."${cfg.screenLock}"
pkgs.xfce.exo
pkgs.xfce.gtk_xfce_engine
pkgs.xfce.mousepad
pkgs.xfce.ristretto
pkgs.xfce.terminal
(pkgs.xfce.thunar.override { thunarPlugins = cfg.thunarPlugins; })
pkgs.xfce.xfce4icontheme
pkgs.xfce.xfce4session
pkgs.xfce.xfce4settings
(if pcfg.enable then pkgs.xfce.xfce4mixer_pulse else pkgs.xfce.xfce4mixer)
(if pcfg.enable then pkgs.xfce.xfce4volumed_pulse else pkgs.xfce.xfce4volumed)
pkgs.xfce.xfce4-screenshooter
pkgs.xfce.xfconf
# This supplies some "abstract" icons such as
# "utilities-terminal" and "accessories-text-editor".
pkgs.gnome3.defaultIconTheme
pkgs.desktop_file_utils
pkgs.xfce.libxfce4ui
pkgs.xfce.garcon
pkgs.xfce.thunar_volman
pkgs.xfce.gvfs
pkgs.xfce.xfce4_appfinder
pkgs.xfce.tumbler # found via dbus
]
++ optional cfg.enableXfwm pkgs.xfce.xfwm4
++ optional config.powerManagement.enable pkgs.xfce.xfce4_power_manager
++ optional config.networking.networkmanager.enable pkgs.networkmanagerapplet
++ optionals (!cfg.noDesktop)
[ pkgs.xfce.xfce4panel
pkgs.xfce.xfdesktop
pkgs.xfce.xfce4notifyd # found via dbus
];
environment.pathsToLink =
[ "/share/xfce4" "/share/themes" "/share/mime" "/share/desktop-directories" "/share/gtksourceview-2.0" ];
environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.xfce.gvfs}/lib/gio/modules" ];
environment.variables.GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
# Enable helpful DBus services. # Enable helpful DBus services.
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
}; };
} }

View File

@ -548,7 +548,7 @@ in
knownVideoDrivers; knownVideoDrivers;
in optional (driver != null) ({ inherit name; modules = []; driverName = name; } // driver)); in optional (driver != null) ({ inherit name; modules = []; driverName = name; } // driver));
nixpkgs.config.xorg = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { abiCompat = "1.18"; }; nixpkgs.config = optionalAttrs (elem "vboxvideo" cfg.videoDrivers) { xorg.abiCompat = "1.18"; };
assertions = [ assertions = [
{ assertion = config.security.polkit.enable; { assertion = config.security.polkit.enable;

View File

@ -40,6 +40,10 @@ in
kernel documentation</link>. Otherwise, if kernel documentation</link>. Otherwise, if
<option>networking.useDHCP</option> is enabled, an IP address <option>networking.useDHCP</option> is enabled, an IP address
is acquired using DHCP. is acquired using DHCP.
You should add the module(s) required for your network card to
boot.initrd.availableKernelModules. lspci -v -s &lt;ethernet controller&gt;
will tell you which.
''; '';
}; };

View File

@ -208,10 +208,11 @@ in
"usbhid" "usbhid"
"hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" "hid_logitech_hidpp" "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" "hid_logitech_hidpp"
# Misc. keyboard stuff. ] ++ optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
# Misc. x86 keyboard stuff.
"pcips2" "atkbd" "i8042" "pcips2" "atkbd" "i8042"
# Needed by the stage 2 init script. # x86 RTC needed by the stage 2 init script.
"rtc_cmos" "rtc_cmos"
]; ];

View File

@ -212,7 +212,7 @@ in
echo "Obtaining SSH keys..." echo "Obtaining SSH keys..."
mkdir -m 0700 -p /root/.ssh mkdir -m 0700 -p /root/.ssh
AUTH_KEYS=$(${mktemp}) AUTH_KEYS=$(${mktemp})
${wget} -O $AUTH_KEYS http://metadata.google.internal/computeMetadata/v1/project/attributes/sshKeys ${wget} -O $AUTH_KEYS --header="Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/sshKeys
if [ -s $AUTH_KEYS ]; then if [ -s $AUTH_KEYS ]; then
# Read in key one by one, split in case Google decided # Read in key one by one, split in case Google decided

View File

@ -128,6 +128,7 @@ in {
dmidecode dmidecode
dnsmasq dnsmasq
ebtables ebtables
cfg.qemuPackage # libvirtd requires qemu-img to manage disk images
] ]
++ optional vswitch.enable vswitch.package; ++ optional vswitch.enable vswitch.package;

View File

@ -25,7 +25,7 @@ in {
name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}"; name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}";
inherit pkgs lib config; inherit pkgs lib config;
partitioned = true; partitionTableType = "legacy";
diskSize = cfg.baseImageSize; diskSize = cfg.baseImageSize;
postVM = postVM =

View File

@ -57,7 +57,7 @@ in rec {
nixos.ova.x86_64-linux nixos.ova.x86_64-linux
#(all nixos.tests.containers) #(all nixos.tests.containers)
nixos.tests.chromium nixos.tests.chromium.x86_64-linux
(all nixos.tests.firefox) (all nixos.tests.firefox)
(all nixos.tests.firewall) (all nixos.tests.firewall)
(all nixos.tests.gnome3) (all nixos.tests.gnome3)
@ -80,7 +80,7 @@ in rec {
(all nixos.tests.boot.uefiUsb) (all nixos.tests.boot.uefiUsb)
(all nixos.tests.boot-stage1) (all nixos.tests.boot-stage1)
(all nixos.tests.hibernate) (all nixos.tests.hibernate)
nixos.tests.docker nixos.tests.docker.x86_64-linux
(all nixos.tests.ecryptfs) (all nixos.tests.ecryptfs)
(all nixos.tests.env) (all nixos.tests.env)
(all nixos.tests.ipv6) (all nixos.tests.ipv6)

View File

@ -3,6 +3,7 @@
, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] , supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
}: }:
with import ../pkgs/top-level/release-lib.nix { inherit supportedSystems; };
with import ../lib; with import ../lib;
let let
@ -11,15 +12,15 @@ let
versionSuffix = versionSuffix =
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}"; (if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
forAllSystems = genAttrs supportedSystems;
importTest = fn: args: system: import fn ({ importTest = fn: args: system: import fn ({
inherit system; inherit system;
} // args); } // args);
callTest = fn: args: forAllSystems (system: hydraJob (importTest fn args system)); callTestOnTheseSystems = systems: fn: args: forTheseSystems systems (system: hydraJob (importTest fn args system));
callTest = callTestOnTheseSystems supportedSystems;
callSubTests = fn: args: let callSubTests = callSubTestsOnTheseSystems supportedSystems;
callSubTestsOnTheseSystems = systems: fn: args: let
discover = attrs: let discover = attrs: let
subTests = filterAttrs (const (hasAttr "test")) attrs; subTests = filterAttrs (const (hasAttr "test")) attrs;
in mapAttrs (const (t: hydraJob t.test)) subTests; in mapAttrs (const (t: hydraJob t.test)) subTests;
@ -28,10 +29,7 @@ let
${system} = test; ${system} = test;
}) (discover (importTest fn args system)); }) (discover (importTest fn args system));
# If the test is only for a particular system, use only the specified in foldAttrs mergeAttrs {} (map discoverForSystem (intersectLists systems supportedSystems));
# system instead of generating attributes for all available systems.
in if args ? system then discover (import fn args)
else foldAttrs mergeAttrs {} (map discoverForSystem supportedSystems);
pkgs = import nixpkgs { system = "x86_64-linux"; }; pkgs = import nixpkgs { system = "x86_64-linux"; };
@ -91,13 +89,13 @@ let
makeNetboot = config: makeNetboot = config:
let let
config_evaled = import lib/eval-config.nix config; configEvaled = import lib/eval-config.nix config;
build = config_evaled.config.system.build; build = configEvaled.config.system.build;
kernelTarget = config_evaled.pkgs.stdenv.platform.kernelTarget; kernelTarget = configEvaled.pkgs.stdenv.platform.kernelTarget;
in in
pkgs.symlinkJoin { pkgs.symlinkJoin {
name="netboot"; name = "netboot";
paths=[ paths = [
build.netbootRamdisk build.netbootRamdisk
build.kernel build.kernel
build.netbootIpxeScript build.netbootIpxeScript
@ -108,6 +106,7 @@ let
echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products
echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products
''; '';
preferLocalBuild = true;
}; };
@ -124,22 +123,13 @@ in rec {
# Build the initial ramdisk so Hydra can keep track of its size over time. # Build the initial ramdisk so Hydra can keep track of its size over time.
initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk); initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk);
netboot = { netboot = forTheseSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeNetboot {
x86_64-linux = makeNetboot { inherit system;
system = "x86_64-linux"; modules = [
modules = [ ./modules/installer/netboot/netboot-minimal.nix
./modules/installer/netboot/netboot-minimal.nix versionModule
versionModule ];
]; });
};
} // (optionalAttrs (elem "aarch64-linux" supportedSystems) {
aarch64-linux = makeNetboot {
system = "aarch64-linux";
modules = [
./modules/installer/netboot/netboot-minimal.nix
versionModule
];
};});
iso_minimal = forAllSystems (system: makeIso { iso_minimal = forAllSystems (system: makeIso {
module = ./modules/installer/cd-dvd/installation-cd-minimal.nix; module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
@ -147,7 +137,7 @@ in rec {
inherit system; inherit system;
}); });
iso_graphical = genAttrs [ "x86_64-linux" ] (system: makeIso { iso_graphical = forTheseSystems [ "x86_64-linux" ] (system: makeIso {
module = ./modules/installer/cd-dvd/installation-cd-graphical-kde.nix; module = ./modules/installer/cd-dvd/installation-cd-graphical-kde.nix;
type = "graphical"; type = "graphical";
inherit system; inherit system;
@ -155,7 +145,7 @@ in rec {
# A variant with a more recent (but possibly less stable) kernel # A variant with a more recent (but possibly less stable) kernel
# that might support more hardware. # that might support more hardware.
iso_minimal_new_kernel = genAttrs [ "x86_64-linux" ] (system: makeIso { iso_minimal_new_kernel = forTheseSystems [ "x86_64-linux" ] (system: makeIso {
module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix; module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix;
type = "minimal-new-kernel"; type = "minimal-new-kernel";
inherit system; inherit system;
@ -163,7 +153,7 @@ in rec {
# A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF). # A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF).
ova = genAttrs [ "x86_64-linux" ] (system: ova = forTheseSystems [ "x86_64-linux" ] (system:
with import nixpkgs { inherit system; }; with import nixpkgs { inherit system; };
@ -237,8 +227,8 @@ in rec {
tests.blivet = callTest tests/blivet.nix {}; tests.blivet = callTest tests/blivet.nix {};
tests.boot = callSubTests tests/boot.nix {}; tests.boot = callSubTests tests/boot.nix {};
tests.boot-stage1 = callTest tests/boot-stage1.nix {}; tests.boot-stage1 = callTest tests/boot-stage1.nix {};
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable; tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
tests.cjdns = callTest tests/cjdns.nix {}; tests.cjdns = callTest tests/cjdns.nix {};
tests.cloud-init = callTest tests/cloud-init.nix {}; tests.cloud-init = callTest tests/cloud-init.nix {};
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {}; tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
@ -252,20 +242,20 @@ in rec {
tests.containers-hosts = callTest tests/containers-hosts.nix {}; tests.containers-hosts = callTest tests/containers-hosts.nix {};
tests.containers-macvlans = callTest tests/containers-macvlans.nix {}; tests.containers-macvlans = callTest tests/containers-macvlans.nix {};
tests.couchdb = callTest tests/couchdb.nix {}; tests.couchdb = callTest tests/couchdb.nix {};
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; }); tests.docker = callTestOnTheseSystems ["x86_64-linux"] tests/docker.nix {};
tests.docker-edge = hydraJob (import tests/docker-edge.nix { system = "x86_64-linux"; }); tests.docker-edge = callTestOnTheseSystems ["x86_64-linux"] tests/docker-edge.nix {};
tests.dovecot = callTest tests/dovecot.nix {}; tests.dovecot = callTest tests/dovecot.nix {};
tests.dnscrypt-proxy = callTest tests/dnscrypt-proxy.nix { system = "x86_64-linux"; }; tests.dnscrypt-proxy = callTestOnTheseSystems ["x86_64-linux"] tests/dnscrypt-proxy.nix {};
tests.ecryptfs = callTest tests/ecryptfs.nix {}; tests.ecryptfs = callTest tests/ecryptfs.nix {};
tests.etcd = hydraJob (import tests/etcd.nix { system = "x86_64-linux"; }); tests.etcd = callTestOnTheseSystems ["x86_64-linux"] tests/etcd.nix {};
tests.ec2-nixops = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-nixops; tests.ec2-nixops = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-nixops;
tests.ec2-config = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-config; tests.ec2-config = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-config;
tests.elk = hydraJob (import tests/elk.nix { system = "x86_64-linux"; }); tests.elk = callSubTestsOnTheseSystems ["x86_64-linux"] tests/elk.nix {};
tests.env = callTest tests/env.nix {}; tests.env = callTest tests/env.nix {};
tests.ferm = callTest tests/ferm.nix {}; tests.ferm = callTest tests/ferm.nix {};
tests.firefox = callTest tests/firefox.nix {}; tests.firefox = callTest tests/firefox.nix {};
tests.firewall = callTest tests/firewall.nix {}; tests.firewall = callTest tests/firewall.nix {};
tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; }); tests.fleet = callTestOnTheseSystems ["x86_64-linux"] tests/fleet.nix {};
#tests.gitlab = callTest tests/gitlab.nix {}; #tests.gitlab = callTest tests/gitlab.nix {};
tests.gitolite = callTest tests/gitolite.nix {}; tests.gitolite = callTest tests/gitolite.nix {};
tests.gocd-agent = callTest tests/gocd-agent.nix {}; tests.gocd-agent = callTest tests/gocd-agent.nix {};
@ -313,6 +303,7 @@ in rec {
tests.nat.firewall = callTest tests/nat.nix { withFirewall = true; }; tests.nat.firewall = callTest tests/nat.nix { withFirewall = true; };
tests.nat.firewall-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; }; tests.nat.firewall-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; };
tests.nat.standalone = callTest tests/nat.nix { withFirewall = false; }; tests.nat.standalone = callTest tests/nat.nix { withFirewall = false; };
tests.netdata = callTest tests/netdata.nix { };
tests.networking.networkd = callSubTests tests/networking.nix { networkd = true; }; tests.networking.networkd = callSubTests tests/networking.nix { networkd = true; };
tests.networking.scripted = callSubTests tests/networking.nix { networkd = false; }; tests.networking.scripted = callSubTests tests/networking.nix { networkd = false; };
# TODO: put in networking.nix after the test becomes more complete # TODO: put in networking.nix after the test becomes more complete
@ -326,7 +317,7 @@ in rec {
tests.openssh = callTest tests/openssh.nix {}; tests.openssh = callTest tests/openssh.nix {};
tests.owncloud = callTest tests/owncloud.nix {}; tests.owncloud = callTest tests/owncloud.nix {};
tests.pam-oath-login = callTest tests/pam-oath-login.nix {}; tests.pam-oath-login = callTest tests/pam-oath-login.nix {};
#tests.panamax = hydraJob (import tests/panamax.nix { system = "x86_64-linux"; }); #tests.panamax = callTestOnTheseSystems ["x86_64-linux"] tests/panamax.nix {};
tests.peerflix = callTest tests/peerflix.nix {}; tests.peerflix = callTest tests/peerflix.nix {};
tests.php-pcre = callTest tests/php-pcre.nix {}; tests.php-pcre = callTest tests/php-pcre.nix {};
tests.postgresql = callSubTests tests/postgresql.nix {}; tests.postgresql = callSubTests tests/postgresql.nix {};
@ -348,12 +339,13 @@ in rec {
tests.smokeping = callTest tests/smokeping.nix {}; tests.smokeping = callTest tests/smokeping.nix {};
tests.snapper = callTest tests/snapper.nix {}; tests.snapper = callTest tests/snapper.nix {};
tests.statsd = callTest tests/statsd.nix {}; tests.statsd = callTest tests/statsd.nix {};
tests.sudo = callTest tests/sudo.nix {};
tests.switchTest = callTest tests/switch-test.nix {}; tests.switchTest = callTest tests/switch-test.nix {};
tests.taskserver = callTest tests/taskserver.nix {}; tests.taskserver = callTest tests/taskserver.nix {};
tests.tomcat = callTest tests/tomcat.nix {}; tests.tomcat = callTest tests/tomcat.nix {};
tests.udisks2 = callTest tests/udisks2.nix {}; tests.udisks2 = callTest tests/udisks2.nix {};
tests.vault = callTest tests/vault.nix {}; tests.vault = callTest tests/vault.nix {};
tests.virtualbox = callSubTests tests/virtualbox.nix { system = "x86_64-linux"; }; tests.virtualbox = callSubTestsOnTheseSystems ["x86_64-linux"] tests/virtualbox.nix {};
tests.wordpress = callTest tests/wordpress.nix {}; tests.wordpress = callTest tests/wordpress.nix {};
tests.xfce = callTest tests/xfce.nix {}; tests.xfce = callTest tests/xfce.nix {};
tests.xmonad = callTest tests/xmonad.nix {}; tests.xmonad = callTest tests/xmonad.nix {};

View File

@ -1,95 +1,107 @@
# Test the ELK stack: Elasticsearch, Logstash and Kibana. { system ? builtins.currentSystem }:
with import ../lib/testing.nix { inherit system; };
import ./make-test.nix ({ pkgs, ...} : with pkgs.lib;
let let
esUrl = "http://localhost:9200"; esUrl = "http://localhost:9200";
in {
name = "ELK";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow offline basvandijk ];
};
nodes = { mkElkTest = name : elk : makeTest {
one = inherit name;
{ config, pkgs, ... }: { meta = with pkgs.stdenv.lib.maintainers; {
# Not giving the machine at least 2060MB results in elasticsearch failing with the following error: maintainers = [ eelco chaoflow offline basvandijk ];
# };
# OpenJDK 64-Bit Server VM warning: nodes = {
# INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) one =
# failed; error='Cannot allocate memory' (errno=12) { config, pkgs, ... }: {
# # Not giving the machine at least 2060MB results in elasticsearch failing with the following error:
# There is insufficient memory for the Java Runtime Environment to continue. #
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory. # OpenJDK 64-Bit Server VM warning:
# # INFO: os::commit_memory(0x0000000085330000, 2060255232, 0)
# When setting this to 2500 I got "Kernel panic - not syncing: Out of # failed; error='Cannot allocate memory' (errno=12)
# memory: compulsory panic_on_oom is enabled" so lets give it even a #
# bit more room: # There is insufficient memory for the Java Runtime Environment to continue.
virtualisation.memorySize = 3000; # Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
#
# When setting this to 2500 I got "Kernel panic - not syncing: Out of
# memory: compulsory panic_on_oom is enabled" so lets give it even a
# bit more room:
virtualisation.memorySize = 3000;
# For querying JSON objects returned from elasticsearch and kibana. # For querying JSON objects returned from elasticsearch and kibana.
environment.systemPackages = [ pkgs.jq ]; environment.systemPackages = [ pkgs.jq ];
services = { services = {
logstash = { logstash = {
enable = true; enable = true;
package = pkgs.logstash5; package = elk.logstash;
inputConfig = '' inputConfig = ''
exec { command => "echo -n flowers" interval => 1 type => "test" } exec { command => "echo -n flowers" interval => 1 type => "test" }
exec { command => "echo -n dragons" interval => 1 type => "test" } exec { command => "echo -n dragons" interval => 1 type => "test" }
''; '';
filterConfig = '' filterConfig = ''
if [message] =~ /dragons/ { if [message] =~ /dragons/ {
drop {} drop {}
} }
''; '';
outputConfig = '' outputConfig = ''
file { file {
path => "/tmp/logstash.out" path => "/tmp/logstash.out"
codec => line { format => "%{message}" } codec => line { format => "%{message}" }
} }
elasticsearch { elasticsearch {
hosts => [ "${esUrl}" ] hosts => [ "${esUrl}" ]
} }
''; '';
}; };
elasticsearch = { elasticsearch = {
enable = true; enable = true;
package = pkgs.elasticsearch5; package = elk.elasticsearch;
}; };
kibana = { kibana = {
enable = true; enable = true;
package = pkgs.kibana5; package = elk.kibana;
elasticsearch.url = esUrl; elasticsearch.url = esUrl;
};
}; };
}; };
}; };
};
testScript = '' testScript = ''
startAll; startAll;
$one->waitForUnit("elasticsearch.service"); $one->waitForUnit("elasticsearch.service");
# Continue as long as the status is not "red". The status is probably # Continue as long as the status is not "red". The status is probably
# "yellow" instead of "green" because we are using a single elasticsearch # "yellow" instead of "green" because we are using a single elasticsearch
# node which elasticsearch considers risky. # node which elasticsearch considers risky.
# #
# TODO: extend this test with multiple elasticsearch nodes and see if the status turns "green". # TODO: extend this test with multiple elasticsearch nodes and see if the status turns "green".
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red"); $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red");
# Perform some simple logstash tests. # Perform some simple logstash tests.
$one->waitForUnit("logstash.service"); $one->waitForUnit("logstash.service");
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep flowers"); $one->waitUntilSucceeds("cat /tmp/logstash.out | grep flowers");
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep -v dragons"); $one->waitUntilSucceeds("cat /tmp/logstash.out | grep -v dragons");
# See if kibana is healthy. # See if kibana is healthy.
$one->waitForUnit("kibana.service"); $one->waitForUnit("kibana.service");
$one->waitUntilSucceeds("curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green"); $one->waitUntilSucceeds("curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green");
# See if logstash messages arive in elasticsearch. # See if logstash messages arive in elasticsearch.
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"flowers\"}}}' | jq .hits.total | grep -v 0"); $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"flowers\"}}}' | jq .hits.total | grep -v 0");
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"dragons\"}}}' | jq .hits.total | grep 0"); $one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"dragons\"}}}' | jq .hits.total | grep 0");
''; '';
}) };
in mapAttrs mkElkTest {
"ELK-5" = {
elasticsearch = pkgs.elasticsearch5;
logstash = pkgs.logstash5;
kibana = pkgs.kibana5;
};
"ELK-6" = {
elasticsearch = pkgs.elasticsearch6;
logstash = pkgs.logstash6;
kibana = pkgs.kibana6;
};
}

View File

@ -46,6 +46,7 @@ let
in makeTest { in makeTest {
name = "keymap-${layout}"; name = "keymap-${layout}";
machine.services.xserver.desktopManager.xterm.enable = false;
machine.i18n.consoleKeyMap = mkOverride 900 layout; machine.i18n.consoleKeyMap = mkOverride 900 layout;
machine.services.xserver.layout = mkOverride 900 layout; machine.services.xserver.layout = mkOverride 900 layout;
machine.imports = [ ./common/x11.nix extraConfig ]; machine.imports = [ ./common/x11.nix extraConfig ];

View File

@ -115,11 +115,6 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->succeed("nix-store -qR /run/current-system | grep nixos-"); $machine->succeed("nix-store -qR /run/current-system | grep nixos-");
}; };
# Test sudo
subtest "sudo", sub {
$machine->succeed("su - sybil -c 'sudo true'");
};
# Test sysctl # Test sysctl
subtest "sysctl", sub { subtest "sysctl", sub {
$machine->waitForUnit("systemd-sysctl.service"); $machine->waitForUnit("systemd-sysctl.service");

31
nixos/tests/netdata.nix Normal file
View File

@ -0,0 +1,31 @@
# This test runs netdata and checks for data via apps.plugin
import ./make-test.nix ({ pkgs, ...} : {
name = "netdata";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ cransom ];
};
nodes = {
netdata =
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [ curl jq ];
services.netdata.enable = true;
};
};
testScript = ''
startAll;
$netdata->waitForUnit("netdata.service");
# check if netdata can read disk ops for root owned processes.
# if > 0, successful. verifies both netdata working and
# apps.plugin has elevated capabilities.
my $cmd = <<'CMD';
curl -s http://localhost:19999/api/v1/data\?chart=users.pwrites | \
jq -e '[.data[range(10)][.labels | indices("root")[0]]] | add | . > 0'
CMD
$netdata->waitUntilSucceeds($cmd);
'';
})

93
nixos/tests/sudo.nix Normal file
View File

@ -0,0 +1,93 @@
# Some tests to ensure sudo is working properly.
let
password = "helloworld";
in
import ./make-test.nix ({ pkgs, ...} : {
name = "sudo";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lschuermann ];
};
machine =
{ config, lib, pkgs, ... }:
with lib;
{
users.extraGroups = { foobar = {}; barfoo = {}; baz = { gid = 1337; }; };
users.users = {
test0 = { isNormalUser = true; extraGroups = [ "wheel" ]; };
test1 = { isNormalUser = true; password = password; };
test2 = { isNormalUser = true; extraGroups = [ "foobar" ]; password = password; };
test3 = { isNormalUser = true; extraGroups = [ "barfoo" ]; };
test4 = { isNormalUser = true; extraGroups = [ "baz" ]; };
test5 = { isNormalUser = true; };
};
security.sudo = {
enable = true;
wheelNeedsPassword = false;
extraRules = [
# SUDOERS SYNTAX CHECK (Test whether the module produces a valid output;
# errors being detected by the visudo checks.
# These should not create any entries
{ users = [ "notest1" ]; commands = [ ]; }
{ commands = [ { command = "ALL"; options = [ ]; } ]; }
# Test defining commands with the options syntax, though not setting any options
{ users = [ "notest2" ]; commands = [ { command = "ALL"; options = [ ]; } ]; }
# CONFIGURATION FOR TEST CASES
{ users = [ "test1" ]; groups = [ "foobar" ]; commands = [ "ALL" ]; }
{ groups = [ "barfoo" 1337 ]; commands = [ { command = "ALL"; options = [ "NOPASSWD" "NOSETENV" ]; } ]; }
{ users = [ "test5" ]; commands = [ { command = "ALL"; options = [ "NOPASSWD" "SETENV" ]; } ]; runAs = "test1:barfoo"; }
];
};
};
testScript =
''
subtest "users in wheel group should have passwordless sudo", sub {
$machine->succeed("su - test0 -c \"sudo -u root true\"");
};
subtest "test1 user should have sudo with password", sub {
$machine->succeed("su - test1 -c \"echo ${password} | sudo -S -u root true\"");
};
subtest "test1 user should not be able to use sudo without password", sub {
$machine->fail("su - test1 -c \"sudo -n -u root true\"");
};
subtest "users in group 'foobar' should be able to use sudo with password", sub {
$machine->succeed("sudo -u test2 echo ${password} | sudo -S -u root true");
};
subtest "users in group 'barfoo' should be able to use sudo without password", sub {
$machine->succeed("sudo -u test3 sudo -n -u root true");
};
subtest "users in group 'baz' (GID 1337) should be able to use sudo without password", sub {
$machine->succeed("sudo -u test4 sudo -n -u root echo true");
};
subtest "test5 user should be able to run commands under test1", sub {
$machine->succeed("sudo -u test5 sudo -n -u test1 true");
};
subtest "test5 user should not be able to run commands under root", sub {
$machine->fail("sudo -u test5 sudo -n -u root true");
};
subtest "test5 user should be able to keep his environment", sub {
$machine->succeed("sudo -u test5 sudo -n -E -u test1 true");
};
subtest "users in group 'barfoo' should not be able to keep their environment", sub {
$machine->fail("sudo -u test3 sudo -n -E -u root true");
};
'';
})

View File

@ -1,11 +1,11 @@
{ callPackage, boost155, boost162, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }: { callPackage, boost155, boost164, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }:
rec { rec {
aeon = callPackage ./aeon { }; aeon = callPackage ./aeon { };
bitcoin = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; }; bitcoin = libsForQt5.callPackage ./bitcoin.nix { boost = boost164; miniupnpc = miniupnpc_2; withGui = true; };
bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; }; bitcoind = callPackage ./bitcoin.nix { boost = boost164; miniupnpc = miniupnpc_2; withGui = false; };
bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { withGui = true; }; bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { withGui = true; };
bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; }; bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; };
@ -29,6 +29,8 @@ rec {
dogecoin = callPackage ./dogecoin.nix { withGui = true; }; dogecoin = callPackage ./dogecoin.nix { withGui = true; };
dogecoind = callPackage ./dogecoin.nix { withGui = false; }; dogecoind = callPackage ./dogecoin.nix { withGui = false; };
ethsign = callPackage ./ethsign { };
freicoin = callPackage ./freicoin.nix { boost = boost155; }; freicoin = callPackage ./freicoin.nix { boost = boost155; };
go-ethereum = callPackage ./go-ethereum.nix { go-ethereum = callPackage ./go-ethereum.nix {
inherit (darwin) libobjc; inherit (darwin) libobjc;

View File

@ -0,0 +1,59 @@
{ stdenv, buildGoPackage, fetchFromGitHub, fetchgit, clang }:
buildGoPackage rec {
name = "ethsign-${version}";
version = "0.8.2";
goPackagePath = "github.com/dapphub/ethsign";
hardeningDisable = ["fortify"];
src = fetchFromGitHub {
owner = "dapphub";
repo = "ethsign";
rev = "v${version}";
sha256 = "1gd0bq5x49sjm83r2wivjf03dxvhdli6cvwb9b853wwcvy4inmmh";
};
extraSrcs = [
{
goPackagePath = "github.com/ethereum/go-ethereum";
src = fetchFromGitHub {
owner = "ethereum";
repo = "go-ethereum";
rev = "v1.7.3";
sha256 = "1w6rbq2qpjyf2v9mr18yiv2af1h2sgyvgrdk4bd8ixgl3qcd5b11";
};
}
{
goPackagePath = "gopkg.in/urfave/cli.v1";
src = fetchFromGitHub {
owner = "urfave";
repo = "cli";
rev = "v1.19.1";
sha256 = "1ny63c7bfwfrsp7vfkvb4i0xhq4v7yxqnwxa52y4xlfxs4r6v6fg";
};
}
{
goPackagePath = "golang.org/x/crypto";
src = fetchgit {
url = "https://go.googlesource.com/crypto";
rev = "94eea52f7b742c7cbe0b03b22f0c4c8631ece122";
sha256 = "095zyvjb0m2pz382500miqadhk7w3nis8z3j941z8cq4rdafijvi";
};
}
{
goPackagePath = "golang.org/x/sys";
src = fetchgit {
url = "https://go.googlesource.com/sys";
rev = "53aa286056ef226755cd898109dbcdaba8ac0b81";
sha256 = "1yd17ccklby099cpdcsgx6lf0lj968hsnppp16mwh9009ldf72r1";
};
}
];
meta = with stdenv.lib; {
homepage = http://github.com/dapphub/ethsign;
description = "Make raw signed Ethereum transactions";
license = [licenses.gpl3];
};
}

View File

@ -1,22 +1,24 @@
{ stdenv, makeWrapper, lib, fetchFromGitHub { stdenv, makeWrapper, lib, fetchFromGitHub
, bc, coreutils, curl, ethabi, git, gnused, jshon, perl, solc, which }: , bc, coreutils, curl, ethabi, git, gnused, jshon, perl, solc, which
, nodejs, ethsign
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "seth-${version}"; name = "seth-${version}";
version = "0.5.6"; version = "0.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dapphub"; owner = "dapphub";
repo = "seth"; repo = "seth";
rev = "v${version}"; rev = "v${version}";
sha256 = "1zl70xy7njjwy4k4g84v7lpf9a2nnnbxh4mkpw7jzqfs2mr636z6"; sha256 = "1lbr7i3rznfp3h03y7pc094r0m992lbzr926rnr0xxbyp755wvm4";
}; };
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
buildPhase = "true"; buildPhase = "true";
makeFlags = ["prefix=$(out)"]; makeFlags = ["prefix=$(out)"];
postInstall = let path = lib.makeBinPath [ postInstall = let path = lib.makeBinPath [
bc coreutils curl ethabi git gnused jshon perl solc which bc coreutils curl ethabi git gnused jshon perl solc which nodejs ethsign
]; in '' ]; in ''
wrapProgram "$out/bin/seth" --prefix PATH : "${path}" wrapProgram "$out/bin/seth" --prefix PATH : "${path}"
''; '';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, vlc { stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, vlc
, qtbase, qtmultimedia, qtsvg, qttools , qtbase, qtmultimedia, qtsvg, qttools
# Cantata doesn't build with cdparanoia enabled so we disable that # Cantata doesn't build with cdparanoia enabled so we disable that
@ -45,6 +45,15 @@ in stdenv.mkDerivation rec {
sha256 = "1b633chgfs8rya78bzzck5zijna15d1y4nmrz4dcjp862ks5y5q6"; sha256 = "1b633chgfs8rya78bzzck5zijna15d1y4nmrz4dcjp862ks5y5q6";
}; };
patches = [
# patch is needed for 2.2.0 with qt 5.10 (doesn't harm earlier versions)
(fetchpatch {
url = "https://github.com/CDrummond/cantata/commit/4da7a9128f2c5eaf23ae2a5006d300dc4f21fc6a.patch";
sha256 = "1z21ax3542z7hm628xv110lmplaspb407jzgfk16xkphww5qyphj";
name = "fix_qt_510.patch";
})
];
buildInputs = [ vlc qtbase qtmultimedia qtsvg ] buildInputs = [ vlc qtbase qtmultimedia qtsvg ]
++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ] ++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ]
++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ] ++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ]

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cava-${version}"; name = "cava-${version}";
version = "0.4.2"; version = "0.6.0";
buildInputs = [ buildInputs = [
alsaLib alsaLib
@ -16,14 +16,16 @@ stdenv.mkDerivation rec {
owner = "karlstav"; owner = "karlstav";
repo = "cava"; repo = "cava";
rev = version; rev = version;
sha256 = "1c5gl8ghmd89f6097rjd2dzrgh1z4i4v9m4vn5wkpnnm68b96yyc"; sha256 = "01maaq5pfd4a7zilgarwr1nl7jbqyrvir6w7ikchggsckrlk23wr";
}; };
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
postConfigure = '' postConfigure = ''
substituteInPlace Makefile \ substituteInPlace Makefile.am \
--replace "-L/usr/local/lib -Wl,-rpath /usr/local/lib" "" --replace "-L/usr/local/lib -Wl,-rpath /usr/local/lib" ""
substituteInPlace configure.ac \
--replace "/usr/share/consolefonts" "$out/share/consolefonts"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -62,6 +62,5 @@ in stdenv.mkDerivation rec {
homepage = http://gillesdegottex.github.io/dfasma/; homepage = http://gillesdegottex.github.io/dfasma/;
license = [ licenses.gpl3Plus reaperFork.meta.license ]; license = [ licenses.gpl3Plus reaperFork.meta.license ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -16,13 +16,14 @@ with stdenv.lib.strings;
let let
version = "2.1.0"; version = "2.5.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "grame-cncm"; owner = "grame-cncm";
repo = "faust"; repo = "faust";
rev = "v${builtins.replaceStrings ["."] ["-"] version}"; rev = "v${builtins.replaceStrings ["."] ["-"] version}";
sha256 = "1pmiwy287g79ipz9pppnkfrdgls3l912kpkr7dfymk9wk5y5di9m"; sha256 = "0sjhy7axa2dj1977iz6zmqvz9qzalcfnrx2fqx3xmk9hly847d6z";
fetchSubmodules = true;
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,6 +2,7 @@
, gtk2 , gtk2
, jack2Full , jack2Full
, opencv , opencv
, libsndfile
}: }:
faust.wrapWithBuildEnv { faust.wrapWithBuildEnv {
@ -18,6 +19,7 @@ faust.wrapWithBuildEnv {
gtk2 gtk2
jack2Full jack2Full
opencv opencv
libsndfile
]; ];
} }

View File

@ -2,6 +2,7 @@
, jack2Full , jack2Full
, opencv , opencv
, qt4 , qt4
, libsndfile
}: }:
faust.wrapWithBuildEnv { faust.wrapWithBuildEnv {
@ -17,6 +18,7 @@ faust.wrapWithBuildEnv {
jack2Full jack2Full
opencv opencv
qt4 qt4
libsndfile
]; ];
} }

View File

@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
homepage = https://xiph.org/flac/; homepage = https://xiph.org/flac/;
description = "Library and tools for encoding and decoding the FLAC lossless audio file format"; description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
platforms = platforms.all; platforms = platforms.all;
maintainers = [ maintainers.mornfall ]; maintainers = [ ];
}; };
} }

View File

@ -49,6 +49,5 @@ stdenv.mkDerivation rec {
homepage = http://gillesdegottex.github.io/fmit/; homepage = http://gillesdegottex.github.io/fmit/;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, python3, python3Packages, intltool { stdenv, fetchFromGitHub, python3, python3Packages, intltool
, glibcLocales, gnome3, gtk3, wrapGAppsHook , glibcLocales, gnome3, gtk3, wrapGAppsHook
, ipodSupport ? false, libgpod , ipodSupport ? false, libgpod, gobjectIntrospection
}: }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
@ -22,14 +22,11 @@ python3Packages.buildPythonApplication rec {
nativeBuildInputs = [ nativeBuildInputs = [
intltool intltool
python3Packages.wrapPython
wrapGAppsHook wrapGAppsHook
glibcLocales glibcLocales
]; ];
buildInputs = [ buildInputs = [ python3 gobjectIntrospection ];
python3
];
checkInputs = with python3Packages; [ checkInputs = with python3Packages; [
coverage minimock coverage minimock

View File

@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
description = "A command line editor for id3v2 tags"; description = "A command line editor for id3v2 tags";
homepage = http://id3v2.sourceforge.net/; homepage = http://id3v2.sourceforge.net/;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ nckx ];
platforms = with platforms; unix; platforms = with platforms; unix;
}; };
} }

View File

@ -27,6 +27,5 @@ stdenv.mkDerivation rec {
''; '';
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -37,6 +37,5 @@ stdenv.mkDerivation rec {
homepage = http://www.ibrahimshaath.co.uk/keyfinder/; homepage = http://www.ibrahimshaath.co.uk/keyfinder/;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.mornfall ]; maintainers = [ ];
}; };
} }

View File

@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
description = "A featureful ncurses based MPD client inspired by ncmpc"; description = "A featureful ncurses based MPD client inspired by ncmpc";
homepage = https://ncmpcpp.rybczak.net/; homepage = https://ncmpcpp.rybczak.net/;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ jfrankenau koral lovek323 mornfall ]; maintainers = with maintainers; [ jfrankenau koral lovek323 ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -1,32 +1,26 @@
{ stdenv, fetchurl, puredata }: { stdenv, fetchFromGitHub, puredata }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cyclone-${version}"; name = "cyclone-${version}";
version = "0.1-alpha55"; version = "0.3beta-2";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/project/pure-data/libraries/cyclone/${name}.tar.gz"; owner = "porres";
sha256 = "1yys9xrlz09xgnqk2gqdl8vw6xj6l9d7km2lkihidgjql0jx5b5i"; repo = "pd-cyclone";
rev = "cyclone${version}";
sha256 = "192jrq3bdsv626js1ymq10gwp9wwcszjs63ys6ap9ig8xdkbhr3q";
}; };
buildInputs = [ puredata ]; buildInputs = [ puredata ];
hardeningDisable = [ "format" ]; makeFlags = [
"pdincludepath=${puredata}/include/pd"
"prefix=$(out)"
];
patchPhase = '' postInstall = ''
for file in `grep -r -l g_canvas.h` mv "$out/lib/pd-externals/cyclone" "$out/"
do rm -rf $out/lib
sed -i 's|#include "g_canvas.h"|#include "${puredata}/include/pd/g_canvas.h"|g' $file
done
for file in `grep -r -l m_imp.h`
do
sed -i 's|#include "m_imp.h"|#include "${puredata}/include/pd/m_imp.h"|g' $file
done
'';
installPhase = ''
mkdir -p $out/cyclone
cp -r bin/* $out/cyclone
''; '';
meta = { meta = {

View File

@ -1,28 +1,26 @@
{ stdenv, fetchurl, puredata }: { stdenv, fetchFromGitHub, puredata }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "maxlib-${version}"; name = "maxlib-${version}";
version = "1.5.5"; version = "1.5.7";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/project/pure-data/libraries/maxlib/${name}.tar.gz"; owner = "electrickery";
sha256 = "0vxl9s815dnay5r0067rxsfh8f6jbk61f0nxrydzjydfycza7p1w"; repo = "pd-maxlib";
rev = "v${version}";
sha256 = "10w9qfgn26lj3zqjksf2r1wsjpf5xy4dx22jay9l6idy9q62mxsn";
}; };
buildInputs = [ puredata ]; buildInputs = [ puredata ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
patchPhase = '' makeFlags = [ "prefix=$(out)" ];
for i in ${puredata}/include/pd/*; do
ln -s $i .
done
sed -i "s@/usr@$out@g" Makefile
'';
postInstall = '' postInstall = ''
mv $out/local/lib/pd-externals/maxlib/ $out mv $out/lib/pd-externals/maxlib/ $out
rm -rf $out/local/ rm -rf $out/local/
rm -rf $out/lib/
''; '';
meta = { meta = {

View File

@ -1,30 +1,40 @@
{ stdenv, fetchurl, unzip, puredata }: { stdenv, fetchurl, unzip, puredata, fftw }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.6.0"; version = "0.7.0";
name = "timbreid-${version}"; name = "timbreid-${version}";
src = fetchurl { src = fetchurl {
url = "http://williambrent.conflations.com/pd/timbreID-${version}-src.zip"; url = "http://williambrent.conflations.com/pd/timbreID-${version}-src.zip";
sha256 = "02rnkb0vpjxrr60c3hryv7zhyjpci2mi9dk27kjxpj5zp26gjk0p"; sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
}; };
buildInputs = [ unzip puredata ]; buildInputs = [ unzip puredata fftw ];
unpackPhase = '' unpackPhase = ''
mkdir source
cd source
unzip $src unzip $src
mv timbreID-0.6.0-src/tID/* .
rm -rf timbreID-0.6.0-src/tID/
rm -rf timbreID-0.6.0-src/INSTALL.txt
''; '';
buildPhase = ''
make tIDLib.o all
'';
installPhase = '' installPhase = ''
mkdir -p $out/ mkdir -p $out/
cp -r *.pd $out/ cp -r *.pd $out/
cp -r *.pd_linux $out/ cp -r *.pd_linux $out/
cp -r *.wav $out/ cp -r audio/ $out/
cp -r data/ $out/
cp -r doc/ $out/
''; '';
postFixup = ''
mv $out/share/doc/ $out/
rm -rf $out/share/
'';
meta = { meta = {
description = "A collection of audio feature analysis externals for puredata"; description = "A collection of audio feature analysis externals for puredata";
homepage = http://williambrent.conflations.com/pages/research.html; homepage = http://williambrent.conflations.com/pages/research.html;

View File

@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
homepage = http://www.filter24.org/seq24; homepage = http://www.filter24.org/seq24;
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ goibhniu nckx ]; maintainers = with maintainers; [ goibhniu ];
}; };
} }

View File

@ -34,7 +34,7 @@
let let
androidStudio = stdenv.mkDerivation { androidStudio = stdenv.mkDerivation {
name = "${pname}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip"; url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
@ -48,6 +48,7 @@ let
installPhase = '' installPhase = ''
cp -r . $out cp -r . $out
wrapProgram $out/bin/studio.sh \ wrapProgram $out/bin/studio.sh \
--set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
--set PATH "${stdenv.lib.makeBinPath [ --set PATH "${stdenv.lib.makeBinPath [
# Checked in studio.sh # Checked in studio.sh
@ -68,7 +69,6 @@ let
# Runtime stuff # Runtime stuff
git git
]}" \ ]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [

View File

@ -27,9 +27,9 @@ in rec {
preview = mkStudio { preview = mkStudio {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.1.0.6"; # "Android Studio 3.1 Canary 7" version = "3.1.0.7"; # "Android Studio 3.1 Canary 8"
build = "173.4524538"; build = "173.4529993";
sha256Hash = "0rj7swychriznylrr09g0rnj12rymms925xbry85ba72hj1jjf6w"; sha256Hash = "0mfkzdxbrdqlfqqx83dr9ibkpjwjf54kka9qra9j31zqcmy8rd53";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atom-beta-${version}"; name = "atom-beta-${version}";
version = "1.24.0-beta2"; version = "1.24.0-beta3";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "1s5zfccpiyg3nqq3a93dg5sr6pk8gvwf8assq9g78l7qkryqr4ac"; sha256 = "02nnjjwlkxafi2fbi4gz276nqkmi92kf3q414vw1k3kc8q5zvxrs";
name = "${name}.deb"; name = "${name}.deb";
}; };

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atom-${version}"; name = "atom-${version}";
version = "1.23.2"; version = "1.23.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "04shnmy80ixjrc8d57i5w23xfxw1dmxj7kbygsal9l8kxgd76k7h"; sha256 = "0vq0pics8ajjqwqlk396dxl10k80059f9bik0j4wj2cals42bifc";
name = "${name}.deb"; name = "${name}.deb";
}; };

View File

@ -1,25 +1,25 @@
{ stdenv, fetchFromGitHub, freetype, libX11, libXt, libXft { stdenv, fetchFromGitHub, freetype, libX11, libXi, libXt, libXft }:
, version ? "2016-10-08"
, rev ? "a17c4a9c2a1af2de0a756fe16d482e0db88c0541"
, sha256 ? "03xmfzlijz4gbmr7l0pb1gl9kmlz1ab3hr8d51innvlasy4g6xgj"
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit version; version = "2017-10-27";
name = "deadpixi-sam-unstable-${version}"; name = "deadpixi-sam-unstable-${version}";
src = fetchFromGitHub {
inherit sha256 rev; src = fetchFromGitHub {
owner = "deadpixi"; owner = "deadpixi";
repo = "sam"; repo = "sam";
}; rev = "51693780fb1457913389db6634163998f9b775b8";
sha256 = "0nfkj93j4bgli4ixbk041nwi14rabk04kqg8krq4mj0044m1qywr";
};
postPatch = '' postPatch = ''
substituteInPlace config.mk.def \ substituteInPlace config.mk.def \
--replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2" --replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2" \
--replace "CC=gcc" ""
''; '';
CFLAGS = "-D_DARWIN_C_SOURCE";
makeFlags = [ "DESTDIR=$(out)" ]; makeFlags = [ "DESTDIR=$(out)" ];
buildInputs = [ libX11 libXt libXft ]; buildInputs = [ libX11 libXi libXt libXft ];
postInstall = '' postInstall = ''
mkdir -p $out/share/applications mkdir -p $out/share/applications
@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
description = "Updated version of the sam text editor"; description = "Updated version of the sam text editor";
license = with licenses; lpl-102; license = with licenses; lpl-102;
maintainers = with maintainers; [ ramkromberg ]; maintainers = with maintainers; [ ramkromberg ];
platforms = with platforms; linux; platforms = with platforms; unix;
}; };
} }

View File

@ -20,20 +20,32 @@ rec {
# Helper for the common case where we have separate feature and # Helper for the common case where we have separate feature and
# plugin JARs. # plugin JARs.
buildEclipsePlugin = { name, srcFeature, srcPlugin, ... } @ attrs: buildEclipsePlugin =
buildEclipsePluginBase (attrs // { { name, srcFeature, srcPlugin ? null, srcPlugins ? [], ... } @ attrs:
srcs = [ srcFeature srcPlugin ]; assert srcPlugin == null -> srcPlugins != [];
assert srcPlugin != null -> srcPlugins == [];
buildCommand = '' let
dropinDir="$out/eclipse/dropins/${name}"
mkdir -p $dropinDir/features pSrcs = if (srcPlugin != null) then [ srcPlugin ] else srcPlugins;
unzip ${srcFeature} -d $dropinDir/features/
mkdir -p $dropinDir/plugins in
cp -v ${srcPlugin} $dropinDir/plugins/${name}.jar
''; buildEclipsePluginBase (attrs // {
}); srcs = [ srcFeature ] ++ pSrcs;
buildCommand = ''
dropinDir="$out/eclipse/dropins/${name}"
mkdir -p $dropinDir/features
unzip ${srcFeature} -d $dropinDir/features/
mkdir -p $dropinDir/plugins
for plugin in ${toString pSrcs}; do
cp -v $plugin $dropinDir/plugins/$(stripHash $plugin)
done
'';
});
# Helper for the case where the build directory has the layout of an # Helper for the case where the build directory has the layout of an
# Eclipse update site, that is, it contains the directories # Eclipse update site, that is, it contains the directories
@ -102,6 +114,52 @@ rec {
}; };
}; };
ansi-econsole = buildEclipsePlugin rec {
name = "ansi-econsole-${version}";
version = "1.3.5.201612301822";
srcFeature = fetchurl {
url = "https://mihnita.github.io/ansi-econsole/install/features/net.mihai-nita.ansicon_${version}.jar";
sha256 = "086ylxpsrlpbvwv5mw7v6b44j63cwzgi8apg2mq058ydr5ak6hxs";
};
srcPlugin = fetchurl {
url = "https://mihnita.github.io/ansi-econsole/install/plugins/net.mihai-nita.ansicon.plugin_${version}.jar";
sha256 = "1j42l0xxzs89shqkyn91lb0gia10mifzy0i73c3n7gj7sv2ddbjq";
};
meta = with stdenv.lib; {
homepage = "https://mihai-nita.net/java/#ePluginAEC";
description = "Adds support for ANSI escape sequences in the Eclipse console";
license = licenses.asl20;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
};
antlr-runtime_4_5 = buildEclipsePluginBase rec {
name = "antlr-runtime-4.5.3";
src = fetchurl {
url = "http://www.antlr.org/download/${name}.jar";
sha256 = "0lm78i2annlczlc2cg5xvby0g1dyl0sh1y5xc2pymjlmr67a1g4k";
};
buildCommand = ''
dropinDir="$out/eclipse/dropins/"
mkdir -p $dropinDir
cp -v $src $dropinDir/${name}.jar
'';
meta = with stdenv.lib; {
description = "A powerful parser generator for processing structured text or binary files";
homepage = http://www.antlr.org/;
license = licenses.bsd3;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
};
anyedittools = buildEclipsePlugin rec { anyedittools = buildEclipsePlugin rec {
name = "anyedit-${version}"; name = "anyedit-${version}";
version = "2.7.1.201709201439"; version = "2.7.1.201709201439";
@ -127,16 +185,16 @@ rec {
autodetect-encoding = buildEclipsePlugin rec { autodetect-encoding = buildEclipsePlugin rec {
name = "autodetect-encoding-${version}"; name = "autodetect-encoding-${version}";
version = "1.8.4.201708052053"; version = "1.8.5.201801191359";
srcFeature = fetchurl { srcFeature = fetchurl {
url = "https://cypher256.github.io/eclipse-encoding-plugin/features/eclipse.encoding.plugin.feature_${version}.jar"; url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/features/eclipse.encoding.plugin.feature_${version}.jar";
sha256 = "1gbvib5dd75pp5mr17ckj2y66gnxjvpc067im5nsl9fyljdw867c"; sha256 = "1m8ypsc1dwz0y6yhjgxsdi9813d38jllv7javgwvcd30g042a3kx";
}; };
srcPlugin = fetchurl { srcPlugin = fetchurl {
url = "https://cypher256.github.io/eclipse-encoding-plugin/plugins/mergedoc.encoding_${version}.jar"; url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/plugins/mergedoc.encoding_${version}.jar";
sha256 = "0728zsbfs1mc4qvx2p92hkxpnknckqk0xvqlmzivsnr62b5qd5im"; sha256 = "1n2rzybfcwp3ss2qi0fhd8vm38vdwav8j837lqiqlfcnvzwsk86m";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -192,12 +250,12 @@ rec {
checkstyle = buildEclipseUpdateSite rec { checkstyle = buildEclipseUpdateSite rec {
name = "checkstyle-${version}"; name = "checkstyle-${version}";
version = "8.5.1.201712211522"; version = "8.7.0.201801131309";
src = fetchzip { src = fetchzip {
stripRoot = false; stripRoot = false;
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.5.1/net.sf.eclipsecs-updatesite_${version}.zip"; url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.7.0/net.sf.eclipsecs-updatesite_${version}.zip";
sha256 = "0nid4a4qib9vx34ddry7sylj20p2d47dd0vn4zqqmj5dgqx1a1ab"; sha256 = "07fymk705x4mwq7vh2i6frsf67jql4bzrkdzhb4n74zb0g1dib60";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -233,7 +291,7 @@ rec {
}; };
}; };
cup = buildEclipsePluginBase rec { cup = buildEclipsePlugin rec {
name = "cup-${version}"; name = "cup-${version}";
version = "1.1.0.201604221613"; version = "1.1.0.201604221613";
version_ = "1.0.0.201604221613"; version_ = "1.0.0.201604221613";
@ -243,31 +301,20 @@ rec {
sha256 = "13nnsf0cqg02z3af6xg45rhcgiffsibxbx6h1zahjv7igvqgkyna"; sha256 = "13nnsf0cqg02z3af6xg45rhcgiffsibxbx6h1zahjv7igvqgkyna";
}; };
srcPlugin1 = fetchurl { srcPlugins = [
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar"; (fetchurl {
sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j"; url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar";
}; sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j";
})
srcPlugin2 = fetchurl { (fetchurl {
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar"; url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar";
sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl"; sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl";
}; })
];
srcs = [ srcFeature srcPlugin1 srcPlugin2 ];
propagatedBuildInputs = [ zest ]; propagatedBuildInputs = [ zest ];
phases = [ "installPhase" ];
installPhase = ''
dropinDir="$out/eclipse/dropins/${name}"
mkdir -p $dropinDir/features
unzip ${srcFeature} -d $dropinDir/features/
mkdir -p $dropinDir/plugins
cp -v ${srcPlugin1} $dropinDir/plugins/''${srcPlugin1#*-}
cp -v ${srcPlugin2} $dropinDir/plugins/''${srcPlugin2#*-}
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www2.cs.tum.edu/projects/cup/eclipse.php; homepage = http://www2.cs.tum.edu/projects/cup/eclipse.php;
description = "IDE for developing CUP based parsers"; description = "IDE for developing CUP based parsers";
@ -360,6 +407,44 @@ rec {
}; };
}; };
jsonedit = buildEclipsePlugin rec {
name = "jsonedit-${version}";
version = "1.0.1";
srcFeature = fetchurl {
url = "https://boothen.github.io/Json-Eclipse-Plugin/features/jsonedit-feature_${version}.jar";
sha256 = "19221409wzcsrlm2fqf6mrxzb5ip1x6y5ba8anw788p7aaz1w30k";
};
srcPlugins =
let
fetch = { n, h }:
fetchurl {
url = "https://boothen.github.io/Json-Eclipse-Plugin/plugins/jsonedit-${n}_${version}.jar";
sha256 = h;
};
in
map fetch [
{ n = "core"; h = "05ipjbh9yz97zhqaqq6cja3zz44n0dn40ms13qnlgf4bxyaf0f6w"; }
{ n = "editor"; h = "1i71rh2fd5hsx6gygnafz2gjz4hlb0ckazxn0maxmnlx4p5apjql"; }
{ n = "folding"; h = "13p8vqdna23ln82w1jgchm59375f1ky0p2b1v7jih55yfhw1ymam"; }
{ n = "model"; h = "0llswhsd58f0rjb9canjncavq4z7q8zidn26yl5gradbbz580p6w"; }
{ n = "outline"; h = "1rs8g0iv2kklbl7j0p6nr26m6ii89yyr9bpi05mh21xva40pzkl5"; }
{ n = "preferences"; h = "0vs074ahhiba7if43ryf9m8xd81sqj9grppy0pzcnkkdkbk870n0"; }
{ n = "text"; h = "0nqpzjw8hhvh9jlpldpmcmg83a170wjdabgsvjq207j12jkvfiqq"; }
];
propagatedBuildInputs = [ antlr-runtime_4_5 ];
meta = with stdenv.lib; {
description = "Adds support for JSON files to Eclipse";
homepage = https://github.com/boothen/Json-Eclipse-Plugin;
license = licenses.epl10;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
};
jdt = buildEclipseUpdateSite rec { jdt = buildEclipseUpdateSite rec {
name = "jdt-${version}"; name = "jdt-${version}";
version = "4.7.2"; version = "4.7.2";

View File

@ -135,10 +135,10 @@
arbitools = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: arbitools = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "arbitools"; pname = "arbitools";
version = "0.93"; version = "0.94";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/arbitools-0.93.el"; url = "https://elpa.gnu.org/packages/arbitools-0.94.el";
sha256 = "0z3lqp8dqfkams5h4sw569p48d2rvpd3d8lb4xaw0z8l49y2mvg8"; sha256 = "00iq8rr1275p48ic5mibcx657li723q8r7ax4g21w6bzwsj3gksd";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib ];
meta = { meta = {
@ -564,10 +564,10 @@
debbugs = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, soap-client }: debbugs = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, soap-client }:
elpaBuild { elpaBuild {
pname = "debbugs"; pname = "debbugs";
version = "0.14"; version = "0.15";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/debbugs-0.14.tar"; url = "https://elpa.gnu.org/packages/debbugs-0.15.tar";
sha256 = "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say"; sha256 = "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw";
}; };
packageRequires = [ cl-lib soap-client ]; packageRequires = [ cl-lib soap-client ];
meta = { meta = {
@ -768,10 +768,10 @@
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }: el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }:
elpaBuild { elpaBuild {
pname = "el-search"; pname = "el-search";
version = "1.4.0.14"; version = "1.5.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/el-search-1.4.0.14.tar"; url = "https://elpa.gnu.org/packages/el-search-1.5.1.tar";
sha256 = "1qc30dia59i2bklhivfhmsghirnpgz5mvcjdc78n0r8nizb68jfp"; sha256 = "0bbq59d8x4ncrmpfq54w6rwpp604f1x834b81l7wflwxv7ni5msx";
}; };
packageRequires = [ emacs stream ]; packageRequires = [ emacs stream ];
meta = { meta = {
@ -931,10 +931,10 @@
gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "gited"; pname = "gited";
version = "0.3.3"; version = "0.3.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/gited-0.3.3.tar"; url = "https://elpa.gnu.org/packages/gited-0.3.4.tar";
sha256 = "0h3ps26sy4wp1s9vpsj066fpqjqacjlprz3kb09macgsg88k2c1p"; sha256 = "0s03p0z5dqhigl01hzin2qy53nm7b4ilvfm83d0ca683i9rb7hx1";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -1386,10 +1386,10 @@
mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "mines"; pname = "mines";
version = "1.2"; version = "1.5";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/mines-1.2.tar"; url = "https://elpa.gnu.org/packages/mines-1.5.tar";
sha256 = "1xwnw2hyk1qz98mdnckk0i05li0gzygq12kkmrlidxnk7ngbq9vw"; sha256 = "1wpkn47iza78hzj396z5c05hsimnhhhmr1cq598azd6h8c1zca7g";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -2320,10 +2320,10 @@
}) {}; }) {};
which-key = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild { which-key = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "which-key"; pname = "which-key";
version = "3.0.2"; version = "3.1.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/which-key-3.0.2.tar"; url = "https://elpa.gnu.org/packages/which-key-3.1.0.tar";
sha256 = "1s7bq7vq9xsf2pz1w03l743yzaxm9gk5qgympcwlkiq90ph13vcn"; sha256 = "17n09i92m7qdicybxl60j81c8fn7jcx25wds0sb7j8i364psjabq";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View File

@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
homepage = http://emacs-w3m.namazu.org/; homepage = http://emacs-w3m.namazu.org/;
maintainers = [ stdenv.lib.maintainers.mornfall ]; maintainers = [ ];
}; };
} }

File diff suppressed because it is too large Load Diff

View File

@ -1544,12 +1544,12 @@
anti-zenburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: anti-zenburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "anti-zenburn-theme"; pname = "anti-zenburn-theme";
version = "2.4"; version = "2.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "m00natic"; owner = "m00natic";
repo = "anti-zenburn-theme"; repo = "anti-zenburn-theme";
rev = "53591a18aee564c6d08a5be69b4060a299903255"; rev = "c80cc51bb1aaf11dd53b9d08e01d61bc9b32622f";
sha256 = "06cn81sksvl88l1g3cfgp1kf8xzfv00b31j2rf58f45zlbl5ckv9"; sha256 = "1c97d2jkh7iawgsbcg19gha9ffnxypbcfz0sgcsgf9vy4bvnc350";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6f6f803dc99a1b1fdb5b4e79f1c9cf72b702d091/recipes/anti-zenburn-theme"; url = "https://raw.githubusercontent.com/milkypostman/melpa/6f6f803dc99a1b1fdb5b4e79f1c9cf72b702d091/recipes/anti-zenburn-theme";
@ -1753,12 +1753,12 @@
apiwrap = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: apiwrap = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "apiwrap"; pname = "apiwrap";
version = "0.3"; version = "0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vermiculus"; owner = "vermiculus";
repo = "apiwrap.el"; repo = "apiwrap.el";
rev = "5d25972192cd34553997ba193c09eab093a2b870"; rev = "7935275ee45f0359d887b8563ffd1d002f0c618e";
sha256 = "1pp2gzw17k58s9akraf8p4jxbar8viym2a43rkc7agzy47qsybs0"; sha256 = "1p6sj46135dh7fgpzrfzsp5zkmx5si5lndwc7pnk30fbz5pindsw";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0197fd3657e65e3826375d9b6f19da3058366c91/recipes/apiwrap"; url = "https://raw.githubusercontent.com/milkypostman/melpa/0197fd3657e65e3826375d9b6f19da3058366c91/recipes/apiwrap";
@ -2047,12 +2047,12 @@
auto-compile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }: auto-compile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }:
melpaBuild { melpaBuild {
pname = "auto-compile"; pname = "auto-compile";
version = "1.4.1"; version = "1.4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacscollective"; owner = "emacscollective";
repo = "auto-compile"; repo = "auto-compile";
rev = "a31819a1b75a2320edb0f7f25d6c6faf528bf41a"; rev = "8d117868a0a091389d528428136e60f951e9c550";
sha256 = "17hzl03livgj49zb0knlfn6r020nvj41pjjz3acy82zwrjydsvxa"; sha256 = "1qkw8qzhqzk16kvk1200ha10gi6ny0saqvyqm6b1ww0iw3q1ic5c";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/auto-compile"; url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/auto-compile";
@ -3061,12 +3061,12 @@
bog = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: bog = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "bog"; pname = "bog";
version = "1.3.0"; version = "1.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kyleam"; owner = "kyleam";
repo = "bog"; repo = "bog";
rev = "cf7817de3f37ce2404ee637a655f1a511b829585"; rev = "6ed4d3edbe771e586d873b826330f3ef23aa1611";
sha256 = "0h166w8bg864ppwg64m0vhg649mmkclld85zcd0lmbqa9wfml5j5"; sha256 = "0s4jwlaq3mqyzkyg3x4nh4nx7vw825jhz7ggakay7a2cfvpa4i2j";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/19fd0bf2f8e52c79120c492a6dcabdd51b465d35/recipes/bog"; url = "https://raw.githubusercontent.com/milkypostman/melpa/19fd0bf2f8e52c79120c492a6dcabdd51b465d35/recipes/bog";
@ -3142,6 +3142,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
borg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "borg";
version = "2.0.0";
src = fetchFromGitHub {
owner = "emacscollective";
repo = "borg";
rev = "34eac585d6829e17ce59b09fe6ad5d675302c096";
sha256 = "1q7k2c7pxcywg6xjk8awg73skyw59a6w4aa9sxbsz9vdj2zn04k9";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/878ab90d444f3a1fd2c9f9068ca7b477e218f1da/recipes/borg";
sha256 = "0gn4hf7hn190gl0kg59nr6jzjnb39c0hy9b3brrsfld9hyxga9jr";
name = "borg";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/borg";
license = lib.licenses.free;
};
}) {};
boxquote = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: boxquote = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "boxquote"; pname = "boxquote";
@ -3754,12 +3775,12 @@
caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "caml"; pname = "caml";
version = "4.6.0"; version = "4.6.1pre1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ocaml"; owner = "ocaml";
repo = "ocaml"; repo = "ocaml";
rev = "0d68080b95016f747b7cb63dd36ccdd42d40016e"; rev = "b50ba2e822ff3a780f9b5a323d48e40881a88fc7";
sha256 = "1dxg82xqjx4yh4sg2dy48ybn4czv9yq0q3zpr29sxp1grvwvrg2b"; sha256 = "10im6z3nrkn0yh8004jwk68gjl0lz7qq3dpj24q50nhhqabw9ah5";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
@ -4751,12 +4772,12 @@
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "cmake-mode"; pname = "cmake-mode";
version = "3.10.1"; version = "3.10.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Kitware"; owner = "Kitware";
repo = "CMake"; repo = "CMake";
rev = "166bf4c490b8f46eca057fc23c3f3c2e042e9cb3"; rev = "c1e087a9d3af74299d7681c9f9de59e5977a1539";
sha256 = "1qgny1px7afgxi7hj12fg0zk55sy9mbk0w5sigamyzxp336nfxmz"; sha256 = "08qw6kq3l7dv37s5mppqxb6ys22h733k0qh2llzk2430wv5y9crk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
@ -6038,12 +6059,12 @@
counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "counsel-etags"; pname = "counsel-etags";
version = "1.3.7"; version = "1.3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "redguardtoo"; owner = "redguardtoo";
repo = "counsel-etags"; repo = "counsel-etags";
rev = "921fa5a062bda9a0f9226fdaa76530ad809ff7b9"; rev = "e05fdb306eee197d63976d24bf0e16db241c6c06";
sha256 = "1qvp3ihchfwy57sfnnkk6m591s381w57ppig9c0izlbzw3n7hi7n"; sha256 = "1m6m2ygafy38483rd8qfq4zwmw1x7m5zpnvqdmsckiqik3s2z98n";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags"; url = "https://raw.githubusercontent.com/milkypostman/melpa/87528349a3ab305bfe98f30c5404913272817a38/recipes/counsel-etags";
@ -6353,12 +6374,12 @@
csound-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, multi, shut-up }: csound-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, multi, shut-up }:
melpaBuild { melpaBuild {
pname = "csound-mode"; pname = "csound-mode";
version = "0.1.2"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hlolli"; owner = "hlolli";
repo = "csound-mode"; repo = "csound-mode";
rev = "877c7c9d5bdc6a2acf4ac1a10e9e24ba1bd3cc76"; rev = "5a892e6ad72e7844e8e14c0da04fcb6bc125fe5e";
sha256 = "1vsngs42n8xp72701ppvmwyy6b90vnj39fq12yvp7x9zqf29lmq1"; sha256 = "1gzg2r7agllz2asp7dbxykydpnw3861whs2pfhr3fwwb39xf1pva";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c940d29de11e43b4abf2901c466c94d426a21818/recipes/csound-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c940d29de11e43b4abf2901c466c94d426a21818/recipes/csound-mode";
@ -6476,6 +6497,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
cubicle-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cubicle-mode";
version = "1.1.2";
src = fetchFromGitHub {
owner = "cubicle-model-checker";
repo = "cubicle";
rev = "b043b0247bf9b144a5c3360e5096a4b141dd1fb6";
sha256 = "0zsfz1h68xpbgdb1ln8l081vwrgd7i01ap4rjlyrsk8j3q3ry5wz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/81c29c912b83cbb536d30ba04130b39c0e5e5969/recipes/cubicle-mode";
sha256 = "0xcmd0s6dfryl1ihfaqq0pfqc906yzzwk3d3nv8g6b6w78pv1lzv";
name = "cubicle-mode";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/cubicle-mode";
license = lib.licenses.free;
};
}) {};
cuda-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: cuda-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "cuda-mode"; pname = "cuda-mode";
@ -6626,12 +6668,12 @@
dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild, s }: dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild, s }:
melpaBuild { melpaBuild {
pname = "dante"; pname = "dante";
version = "1.3"; version = "1.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jyp"; owner = "jyp";
repo = "dante"; repo = "dante";
rev = "6b260611dc08468fca9b9af132a00783dd2cf8d9"; rev = "1a25bf26ee8d9878ce858cfaff84b083339056d6";
sha256 = "0s5wi010sn3ng9fr7fqbc11kmjqirr28wya3rnnzzb3m5gyxs8id"; sha256 = "0kvsx9n8qm9s2w9bz167jzcb1b3d4fgc807w1miwil9dcyar6rkk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante"; url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante";
@ -6815,12 +6857,12 @@
datetime = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: datetime = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "datetime"; pname = "datetime";
version = "0.3"; version = "0.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "doublep"; owner = "doublep";
repo = "datetime"; repo = "datetime";
rev = "082d2c7b0e38c26a8c46af9c9956a2e100d88e71"; rev = "d99e56785d750d6c7e416955f047fe057fae54a6";
sha256 = "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"; sha256 = "0s2pmj2wpprmdx1mppbch8i1srwhfl2pzyhsmczan75wmiblpqfj";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fff9f0748b0ef76130b24e85ed109325256f956e/recipes/datetime"; url = "https://raw.githubusercontent.com/milkypostman/melpa/fff9f0748b0ef76130b24e85ed109325256f956e/recipes/datetime";
@ -6962,12 +7004,12 @@
deft = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: deft = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "deft"; pname = "deft";
version = "0.7"; version = "0.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jrblevin"; owner = "jrblevin";
repo = "deft"; repo = "deft";
rev = "4001a55cf5f79cdbfa00f1405e8a4645af4acd40"; rev = "c4b30d780bfa732ff52d85f0311e4a045f44a7b4";
sha256 = "157c6ck6gb59i7dikbdnaq7cwlh3nnk0vqgil4v1294s2xbpp46n"; sha256 = "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/deft"; url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/deft";
@ -7235,12 +7277,12 @@
dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "dimmer"; pname = "dimmer";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gonewest818"; owner = "gonewest818";
repo = "dimmer.el"; repo = "dimmer.el";
rev = "b0faaa6919e633229ced07ff8bd8b5c68b90243a"; rev = "031be18db14c5c45758d64584b0f94d77e8f32da";
sha256 = "04k7m5kg2a32ldgxfc2jkdwbmxzyc3yv66871ywv9152db2g7iml"; sha256 = "0csj6194cjds4lzyk850jfndg38447w0dk6xza4vafwx2nd9lfvf";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer"; url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer";
@ -8690,12 +8732,12 @@
edit-server = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: edit-server = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "edit-server"; pname = "edit-server";
version = "1.13"; version = "1.15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stsquad"; owner = "stsquad";
repo = "emacs_chrome"; repo = "emacs_chrome";
rev = "f0db18f0d6e9885e4aef3ace8342fd6f635fadf6"; rev = "4e959de2f78268b348d2eaac4e43c846792d345f";
sha256 = "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"; sha256 = "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d98d69008b5ca8b92fa7a6045b9d1af86f269386/recipes/edit-server"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d98d69008b5ca8b92fa7a6045b9d1af86f269386/recipes/edit-server";
@ -9115,6 +9157,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
elcord = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "elcord";
version = "1.0.0";
src = fetchFromGitHub {
owner = "Zulu-Inuoe";
repo = "elcord";
rev = "91c665fd832ef3b79c3eb810b7a6b08979a352cd";
sha256 = "04nxyj94rmi22wfasi4lavn3lzkcpxpr5ksfqc8dfq9bllz4c9pa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/36b64d0fead049df5ebd6606943a8f769324539e/recipes/elcord";
sha256 = "044mwil9alh2v7bjj8yvx8azym2b7a5xb0c7y0r0k2vj72wiirjb";
name = "elcord";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/elcord";
license = lib.licenses.free;
};
}) {};
eldoc-eval = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: eldoc-eval = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "eldoc-eval"; pname = "eldoc-eval";
@ -9181,12 +9244,12 @@
elfeed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: elfeed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "elfeed"; pname = "elfeed";
version = "2.2.0"; version = "2.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "skeeto"; owner = "skeeto";
repo = "elfeed"; repo = "elfeed";
rev = "79077efc34aad25bb43cf46a28a69a308196c972"; rev = "00b25d974abc4f3e61676068397758035bfdfc30";
sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl"; sha256 = "0qivqhz2mhjyqrqkfjrv8q6387cbzwvmyay2jbws5vibwbxjciwz";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/407ae027fcec444622c2a822074b95996df9e6af/recipes/elfeed"; url = "https://raw.githubusercontent.com/milkypostman/melpa/407ae027fcec444622c2a822074b95996df9e6af/recipes/elfeed";
@ -9223,12 +9286,12 @@
elfeed-web = callPackage ({ elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, simple-httpd }: elfeed-web = callPackage ({ elfeed, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, simple-httpd }:
melpaBuild { melpaBuild {
pname = "elfeed-web"; pname = "elfeed-web";
version = "2.2.0"; version = "2.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "skeeto"; owner = "skeeto";
repo = "elfeed"; repo = "elfeed";
rev = "79077efc34aad25bb43cf46a28a69a308196c972"; rev = "00b25d974abc4f3e61676068397758035bfdfc30";
sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl"; sha256 = "0qivqhz2mhjyqrqkfjrv8q6387cbzwvmyay2jbws5vibwbxjciwz";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/62459d16ee44d5fcf170c0ebc981ca2c7d4672f2/recipes/elfeed-web"; url = "https://raw.githubusercontent.com/milkypostman/melpa/62459d16ee44d5fcf170c0ebc981ca2c7d4672f2/recipes/elfeed-web";
@ -9433,12 +9496,12 @@
elpa-mirror = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: elpa-mirror = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "elpa-mirror"; pname = "elpa-mirror";
version = "2.1.0"; version = "2.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "redguardtoo"; owner = "redguardtoo";
repo = "elpa-mirror"; repo = "elpa-mirror";
rev = "9cf096448b69c795b20aab89557e9add6029b13c"; rev = "83a38b5721c459d311833522903de96f874e1a4e";
sha256 = "05la1v1p7wyrjflh8lv3pwr7ywm2rvvzhh8phr24w31jfs2kp4gf"; sha256 = "0j2nk1nhbihfqajkmzp3501mhv5617qhb7qbj46qz8azs8a1dvri";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d64ce7042c45f29fb394be25ce415912182bac8b/recipes/elpa-mirror"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d64ce7042c45f29fb394be25ce415912182bac8b/recipes/elpa-mirror";
@ -9545,12 +9608,12 @@
elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "elx"; pname = "elx";
version = "1.1.1"; version = "1.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacscollective"; owner = "emacscollective";
repo = "elx"; repo = "elx";
rev = "9f5d593b65686e8da29ef79457c8f6fc061af7e5"; rev = "127fd4fca8ac6470cfda62f47bb1c29859862cfc";
sha256 = "1vs7nmsi82gv9mw1mia6ri1vmn26ldwnj8akirqgq31rfgyfj4vh"; sha256 = "0j7j7wh89a34scilw11pbdb86nf515ig38pjkwyarfvj93gigc04";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx"; url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx";
@ -12435,12 +12498,12 @@
fish-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: fish-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "fish-mode"; pname = "fish-mode";
version = "0.1.2"; version = "0.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wwwjfy"; owner = "wwwjfy";
repo = "emacs-fish"; repo = "emacs-fish";
rev = "22aabbccd564883684f6d224b8e0a512f334be41"; rev = "cd0387f7f1d5c50e080091f86ca97d8a67d603a6";
sha256 = "17djaz79spms9il71m4xdfjhm58dzswb6fpncngkgx8kxvcy9y24"; sha256 = "0q4cq1rkiz5mjxhp7p5awmw59q1yjb2sryc9i54cwhr5dwwqf95k";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/efac97c0f54a3300251020c4626056526c18b441/recipes/fish-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/efac97c0f54a3300251020c4626056526c18b441/recipes/fish-mode";
@ -13048,6 +13111,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
flycheck-mmark = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-mmark";
version = "0.1.0";
src = fetchFromGitHub {
owner = "mmark-md";
repo = "flycheck-mmark";
rev = "b73b40cb9c5cf6bc6fa501aa87a4c30b210c0c5f";
sha256 = "1w75accl67i0qwadwp7dgpxaj0i8zwckvv5isyn93vknzw5dz66x";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2fd10423ab80e32245bb494005c8f87a8987fffb/recipes/flycheck-mmark";
sha256 = "0lnw7pz40hijcpi9b92vjxvvyh9v50ww2f2r8z9pyhl9mjy2245x";
name = "flycheck-mmark";
};
packageRequires = [ emacs flycheck ];
meta = {
homepage = "https://melpa.org/#/flycheck-mmark";
license = lib.licenses.free;
};
}) {};
flycheck-nimsuggest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, nim-mode }: flycheck-nimsuggest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, nim-mode }:
melpaBuild { melpaBuild {
pname = "flycheck-nimsuggest"; pname = "flycheck-nimsuggest";
@ -14760,12 +14844,12 @@
ghub-plus = callPackage ({ apiwrap, emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }: ghub-plus = callPackage ({ apiwrap, emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ghub-plus"; pname = "ghub-plus";
version = "0.2"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vermiculus"; owner = "vermiculus";
repo = "ghub-plus"; repo = "ghub-plus";
rev = "e04050f81106029c342deb7adbfc67b2a888ec58"; rev = "8cfdaf42446a68e6aa4eb0655d43563407cb5636";
sha256 = "0ydd6aiy8x878jlzp88gi30yslhkcin0rbdjirj2vjs88cfvcjq6"; sha256 = "0acfqf1219bnzyf64sv68fvpi4a13nc0wv8dz5a8h6r1j0ysx6qj";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/03a412fd25218ff6f302734e078a699ff0234e36/recipes/ghub+"; url = "https://raw.githubusercontent.com/milkypostman/melpa/03a412fd25218ff6f302734e078a699ff0234e36/recipes/ghub+";
@ -18065,12 +18149,12 @@
helm-org-rifle = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }: helm-org-rifle = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }:
melpaBuild { melpaBuild {
pname = "helm-org-rifle"; pname = "helm-org-rifle";
version = "1.4.2"; version = "1.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "alphapapa"; owner = "alphapapa";
repo = "helm-org-rifle"; repo = "helm-org-rifle";
rev = "26749ff9f34b2abddf7c47ff71b1046942e38398"; rev = "68f01726795ca3054cfc6327dcdb22c9c83dfdfa";
sha256 = "1q969rlqj706wdzd3s54pqpfpqkg18bzl5srl7xkw43cfzxpcpj2"; sha256 = "0vak9phqgxz5dk1zj3i4cs94y797h77qadirsf33gl073cg95l8a";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615/recipes/helm-org-rifle"; url = "https://raw.githubusercontent.com/milkypostman/melpa/f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615/recipes/helm-org-rifle";
@ -18632,12 +18716,12 @@
helpful = callPackage ({ dash, dash-functional, elisp-refs, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }: helpful = callPackage ({ dash, dash-functional, elisp-refs, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, shut-up }:
melpaBuild { melpaBuild {
pname = "helpful"; pname = "helpful";
version = "0.5"; version = "0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Wilfred"; owner = "Wilfred";
repo = "helpful"; repo = "helpful";
rev = "9fdbf5b24df28b046731db1c7a1cc90338d55dce"; rev = "e1b660e2a48b39b0a81119c2593362dd60076757";
sha256 = "13kw0i4vhd8fgwgchap5qxckvhs00ifr7z68whnd3xzklx3v47bj"; sha256 = "031hglxwlq8fryi8vs11hyflcrk09qc9qja28nqby0adn20z47mc";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful"; url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful";
@ -19409,12 +19493,12 @@
ialign = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: ialign = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ialign"; pname = "ialign";
version = "0.2.0"; version = "0.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mkcms"; owner = "mkcms";
repo = "interactive-align"; repo = "interactive-align";
rev = "df591e452f9a56c69fb69de961baa75751bae3d8"; rev = "1d00ab870d06b946d94e5e6d340b85a3e51fbfb1";
sha256 = "1k3c0wxbn6yrd75275ny66avp70qpd3glnmagsgq3x8mbyxh233d"; sha256 = "191w5di4f0in49h60xmc5d6xaisbkv8y9f9bxzc3162c4b982qfr";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/072f1f7ce17e2972863bce10af9c52b3c6502eab/recipes/ialign"; url = "https://raw.githubusercontent.com/milkypostman/melpa/072f1f7ce17e2972863bce10af9c52b3c6502eab/recipes/ialign";
@ -19889,6 +19973,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
imake = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "imake";
version = "1.0.0";
src = fetchFromGitHub {
owner = "tarsius";
repo = "imake";
rev = "edd2e59f7996c35450987cf8f137ecb54777e9ca";
sha256 = "12mq1ki001jgjdfr3fx43z1xz4jrki18rb0wkb7n956dvl34w0fg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/28de8f7f5302b27c7c6600ad65a998119518be43/recipes/imake";
sha256 = "0j732fi6999n9990w4l28raw140fvqfbynyh4x65yilhw95r7c34";
name = "imake";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/imake";
license = lib.licenses.free;
};
}) {};
imapfilter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: imapfilter = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "imapfilter"; pname = "imapfilter";
@ -20141,6 +20246,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
inf-crystal = callPackage ({ crystal-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "inf-crystal";
version = "0.1.0";
src = fetchFromGitHub {
owner = "brantou";
repo = "inf-crystal.el";
rev = "71a330f2d29e2fb4f51d223cf6230b88620a80af";
sha256 = "0vija33n2j4j5inzm29qk1bjzaxjm97zn263j15258pqxwkbddv3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ff84c742eebb84577f362b2739f4bcf1434d58ac/recipes/inf-crystal";
sha256 = "09ssq7i5c2fxxbrsp3nn1f1ah1yv2nb19n5s1iqyykkk316k2q26";
name = "inf-crystal";
};
packageRequires = [ crystal-mode emacs ];
meta = {
homepage = "https://melpa.org/#/inf-crystal";
license = lib.licenses.free;
};
}) {};
inf-ruby = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: inf-ruby = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "inf-ruby"; pname = "inf-ruby";
@ -21569,12 +21695,12 @@
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "kaolin-themes"; pname = "kaolin-themes";
version = "1.1.1"; version = "1.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ogdenwebb"; owner = "ogdenwebb";
repo = "emacs-kaolin-themes"; repo = "emacs-kaolin-themes";
rev = "d4a1cbae1fc77192e5844291821709c82c9dc455"; rev = "88a25b89a480f1193cc1c5502f3a5d0b68cb7227";
sha256 = "04k2yz3vrj1h0zf6cz0jd97fg8zah2j980l5ycsgyy0dk9ysink8"; sha256 = "03bbpaih29yx8s16v59mca8v6sak6294zq7d534613la28n4h6w7";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes"; url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
@ -23115,12 +23241,12 @@
magit-popup = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: magit-popup = callPackage ({ async, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "magit-popup"; pname = "magit-popup";
version = "2.12.0"; version = "2.12.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "magit"; owner = "magit";
repo = "magit-popup"; repo = "magit-popup";
rev = "05a836caf02eba91fa26bdf5dd6fd183fe23937d"; rev = "ab75385a1fb8c0fba0769d448b13ba8324835261";
sha256 = "08p57alfbkcsqkhnfjhfckqhans278ffjyhhhvgy8s7asa6as9kl"; sha256 = "0ky4l3k3camh1paa5ap9frr9hcadj7nj40l3imiiqfcvgyl8ijp6";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0263ca6aea7bf6eae26a637454affbda6bd106df/recipes/magit-popup"; url = "https://raw.githubusercontent.com/milkypostman/melpa/0263ca6aea7bf6eae26a637454affbda6bd106df/recipes/magit-popup";
@ -23136,12 +23262,12 @@
magit-rockstar = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }: magit-rockstar = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
melpaBuild { melpaBuild {
pname = "magit-rockstar"; pname = "magit-rockstar";
version = "1.0.6"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tarsius"; owner = "tarsius";
repo = "magit-rockstar"; repo = "magit-rockstar";
rev = "a65042e3445008b55190f1258ae54bd78e12174b"; rev = "c8320472e8a50c8299140ba0943bb1fe485d294a";
sha256 = "1wbbg9jr9kl69sbq9b9dgwvnplmdzjyanwfcncamw3lfcjfnw1bn"; sha256 = "1xjym51z0v7ibxw059f6k3zljli6z390rmxvrywbfzkb8hqms0l1";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a20b539cbd38ffa546c1b56b9fac78c0b9457f6/recipes/magit-rockstar"; url = "https://raw.githubusercontent.com/milkypostman/melpa/7a20b539cbd38ffa546c1b56b9fac78c0b9457f6/recipes/magit-rockstar";
@ -25388,12 +25514,12 @@
no-littering = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: no-littering = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "no-littering"; pname = "no-littering";
version = "0.5.11"; version = "0.5.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emacscollective"; owner = "emacscollective";
repo = "no-littering"; repo = "no-littering";
rev = "a4b42b185b65e78bc3bb6523e23aefb1213eb3b2"; rev = "8e321f1036770c20637a0f946b655805cd070e25";
sha256 = "1yzcawvz3vbq6pgr0b3sk0qg24jx1fpkinwcmsdl283ib8msbc7g"; sha256 = "11hxf0fkka4mv1qsw0nx3ymvgcav95r2bvk1gwyj5m5cbwb4a1n9";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering"; url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering";
@ -25490,11 +25616,11 @@
}) {}; }) {};
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
pname = "notmuch"; pname = "notmuch";
version = "0.26pre2"; version = "0.26";
src = fetchgit { src = fetchgit {
url = "git://git.notmuchmail.org/git/notmuch"; url = "git://git.notmuchmail.org/git/notmuch";
rev = "4cb1eeba83416a12c616aca6469c027b8b8a303d"; rev = "3c4e64d976eb561ac5157df1bbe5882e3e65b583";
sha256 = "0brcdwblfj3nb2ca0izvhlm3x1pf0r72wsa9f2hf0ssnh9w2z40s"; sha256 = "00a9ggrc63n88g7vp57c09r859pl2dbxnqgf543ks94lm0jzyz3f";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch"; url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
@ -25531,12 +25657,12 @@
nov = callPackage ({ dash, emacs, esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }: nov = callPackage ({ dash, emacs, esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "nov"; pname = "nov";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wasamasa"; owner = "wasamasa";
repo = "nov.el"; repo = "nov.el";
rev = "19ab463864f137b43704b4f34173349c88e84d8e"; rev = "4ef20ebb587ffb0ab73c85ad5748d41af1071596";
sha256 = "00f5hhw157nwdwy26yn6l3z2hgk6xxvx5xl0hasskj1l9rg0zgh2"; sha256 = "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cf543955ba2d5d0074fa2a5ba176f9415f6e006d/recipes/nov"; url = "https://raw.githubusercontent.com/milkypostman/melpa/cf543955ba2d5d0074fa2a5ba176f9415f6e006d/recipes/nov";
@ -26182,12 +26308,12 @@
omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, s, shut-up }: omnisharp = callPackage ({ auto-complete, cl-lib ? null, csharp-mode, dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, popup, s, shut-up }:
melpaBuild { melpaBuild {
pname = "omnisharp"; pname = "omnisharp";
version = "4.1"; version = "4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OmniSharp"; owner = "OmniSharp";
repo = "omnisharp-emacs"; repo = "omnisharp-emacs";
rev = "95f56022edf9fcaba8402db05a6927af050b12a8"; rev = "588b8482685adedbc56933cb13c58d9cc6a82456";
sha256 = "133maq29hfjaq4vilz9wvr9vjkschkpydkw2197sscv7whfzv78j"; sha256 = "1iqwxc19jvcb2gsm2aq59zblg1qjmbxgb2yl3h3aybqp968j3i00";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp";
@ -27397,6 +27523,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
org-wild-notifier = callPackage ({ alert, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "org-wild-notifier";
version = "0.2.1";
src = fetchFromGitHub {
owner = "akhramov";
repo = "org-wild-notifier.el";
rev = "f5bf3b13c630265051904cb4c9a0613ead86847c";
sha256 = "0z2flnqimwndq8w7ahi57n7a87l5iknn3dpwirxynq4brzazzi7j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/114552a24f73f13b253e3db4885039b680f6ef33/recipes/org-wild-notifier";
sha256 = "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp";
name = "org-wild-notifier";
};
packageRequires = [ alert dash org ];
meta = {
homepage = "https://melpa.org/#/org-wild-notifier";
license = lib.licenses.free;
};
}) {};
org2blog = callPackage ({ fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, metaweblog, org, xml-rpc }: org2blog = callPackage ({ fetchFromGitHub, fetchurl, htmlize, lib, melpaBuild, metaweblog, org, xml-rpc }:
melpaBuild { melpaBuild {
pname = "org2blog"; pname = "org2blog";
@ -28310,12 +28457,12 @@
parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "parsebib"; pname = "parsebib";
version = "2.3.1"; version = "2.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "joostkremers"; owner = "joostkremers";
repo = "parsebib"; repo = "parsebib";
rev = "bc31b627c666df576aa37e21c27a2223b3cb91a3"; rev = "c8d59deb20552f9a1885297b5ae0b8f753d191a5";
sha256 = "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"; sha256 = "1b1iiiy184czp014gg1bb3jks9frmkw8hs5z2l2lnzjmfjr6jm6g";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib";
@ -29040,6 +29187,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
php-runtime = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "php-runtime";
version = "0.1.0";
src = fetchFromGitHub {
owner = "emacs-php";
repo = "php-runtime.el";
rev = "fa4312863245511462b75cb31df2f8558288f4df";
sha256 = "1glwy0cgnn0z4rnd45pqy0bmyaddhxfjlj778hz7ghy40h9kqbdn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/615c9ac208d8c20082a8ac83e49e93d99e2cbc89/recipes/php-runtime";
sha256 = "0dvnwajrjsgyqzglzpkx9vwx3f55mrag6dsbdjqc9vvpvxhmgfwb";
name = "php-runtime";
};
packageRequires = [ cl-lib emacs ];
meta = {
homepage = "https://melpa.org/#/php-runtime";
license = lib.licenses.free;
};
}) {};
phpcbf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }: phpcbf = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild { melpaBuild {
pname = "phpcbf"; pname = "phpcbf";
@ -29292,6 +29460,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
play-crystal = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, request }:
melpaBuild {
pname = "play-crystal";
version = "0.1.2";
src = fetchFromGitHub {
owner = "veelenga";
repo = "play-crystal.el";
rev = "86b54346e7c832c14f8e5654a462f6490a6b11d7";
sha256 = "0kvkr24f8r21pahm2lsvbr9bg53770wxwpdfmmjljs2zmgxf2c40";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/92715977136afa731e85e894542dc88b664b3304/recipes/play-crystal";
sha256 = "1jqf36b1mhyf4j7fs386g6isy09q7k8zwdc4rb34mhjg1a56gcnf";
name = "play-crystal";
};
packageRequires = [ dash emacs request ];
meta = {
homepage = "https://melpa.org/#/play-crystal";
license = lib.licenses.free;
};
}) {};
play-routes-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: play-routes-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "play-routes-mode"; pname = "play-routes-mode";
@ -31491,12 +31680,12 @@
req-package = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, log4e, melpaBuild, use-package }: req-package = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, log4e, melpaBuild, use-package }:
melpaBuild { melpaBuild {
pname = "req-package"; pname = "req-package";
version = "1.0"; version = "1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "edvorg"; owner = "edvorg";
repo = "req-package"; repo = "req-package";
rev = "30f76a9c52994562191c90c315002410706f6c0b"; rev = "0c0ac7451149dac6bfda2adfe959d1df1c273de6";
sha256 = "0qdr2pshfq6v75s9hx9wgvn56pd7b65vaqaa64dryr7v4yzd4r15"; sha256 = "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f58a801f0791566d0c39493a5f82ff0d15d7ab41/recipes/req-package"; url = "https://raw.githubusercontent.com/milkypostman/melpa/f58a801f0791566d0c39493a5f82ff0d15d7ab41/recipes/req-package";
@ -31680,12 +31869,12 @@
rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }: rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild { melpaBuild {
pname = "rg"; pname = "rg";
version = "1.4.0"; version = "1.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dajva"; owner = "dajva";
repo = "rg.el"; repo = "rg.el";
rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14"; rev = "68984092d0e0725057e7b67ba32016903170f189";
sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g"; sha256 = "0qd3qh640339n1dn1isk23xhnkj0pds08yzfak4ijxyzlgl63bdq";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg"; url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
@ -36169,12 +36358,12 @@
treemacs = callPackage ({ ace-window, cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, pfuture, s }: treemacs = callPackage ({ ace-window, cl-lib ? null, dash, emacs, f, fetchFromGitHub, fetchurl, hydra, lib, melpaBuild, pfuture, s }:
melpaBuild { melpaBuild {
pname = "treemacs"; pname = "treemacs";
version = "1.15.3"; version = "1.16.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Alexander-Miller"; owner = "Alexander-Miller";
repo = "treemacs"; repo = "treemacs";
rev = "2dabf88d5948a04d0313b0195be397761fc22b58"; rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk"; sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs"; url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs";
@ -36190,12 +36379,12 @@
treemacs-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild, treemacs }: treemacs-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild, treemacs }:
melpaBuild { melpaBuild {
pname = "treemacs-evil"; pname = "treemacs-evil";
version = "1.15.3"; version = "1.16.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Alexander-Miller"; owner = "Alexander-Miller";
repo = "treemacs"; repo = "treemacs";
rev = "2dabf88d5948a04d0313b0195be397761fc22b58"; rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk"; sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-evil"; url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-evil";
@ -36211,12 +36400,12 @@
treemacs-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, treemacs }: treemacs-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, treemacs }:
melpaBuild { melpaBuild {
pname = "treemacs-projectile"; pname = "treemacs-projectile";
version = "1.15.3"; version = "1.16.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Alexander-Miller"; owner = "Alexander-Miller";
repo = "treemacs"; repo = "treemacs";
rev = "2dabf88d5948a04d0313b0195be397761fc22b58"; rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk"; sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-projectile"; url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-projectile";
@ -37792,12 +37981,12 @@
which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "which-key"; pname = "which-key";
version = "3.0.2"; version = "3.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "justbur"; owner = "justbur";
repo = "emacs-which-key"; repo = "emacs-which-key";
rev = "6d2e17c949ff7bfebfe0b0878a93d94b31585031"; rev = "7559a79e95aada65601f7413a1c3f08bfa34557b";
sha256 = "03szbjp6j6rjj43k3vs2jay4y7bnhhh1ymgqv8vvdnqsf88pdg88"; sha256 = "1l9m04hypk8j5qkg7rlhsknj9hx5l3zjy97s3kv7wbcwvcx3yxhz";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key"; url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key";
@ -38089,8 +38278,8 @@
version = "0.9.8"; version = "0.9.8";
src = fetchhg { src = fetchhg {
url = "https://bitbucket.com/ArneBab/wisp"; url = "https://bitbucket.com/ArneBab/wisp";
rev = "52fa9101d8c4"; rev = "d04938232934";
sha256 = "1ijzd3xmygkkkwm0ckkmi576y93drcs63l6bsc8qz2pvjcn5k8sw"; sha256 = "1sjadb0kh3hrdsvwywi04agrzrs21sxzh1v1km0z3x6f15nr048c";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";
@ -38127,12 +38316,12 @@
with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "with-editor"; pname = "with-editor";
version = "2.7.0"; version = "2.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "magit"; owner = "magit";
repo = "with-editor"; repo = "with-editor";
rev = "99d3278b1c79718de16dd4f57dcc8c4aa31a4051"; rev = "04d59d68dab58a7cf3034c84d8ba0553b78ae30c";
sha256 = "1mcfinr1wv87hqn2787dcyn7lkgfni4xfgsji50pwj3zfgg0yqyr"; sha256 = "080f39m9nmi163arpmxw45xwadb7q7w7p385yi1jy62bzvqnk0pm";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor"; url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor";
@ -38754,6 +38943,27 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
yapfify = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "yapfify";
version = "0.0.6";
src = fetchFromGitHub {
owner = "JorisE";
repo = "yapfify";
rev = "9e63a9135bd8dbfbee55819837a3aa0d119c5e6f";
sha256 = "1bf09hah2g8x0jbrdh4fm1v01qjymiv38yvv8a5qmfpv5k93lcrc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/060c32d8e9fdc56fe702d265a935d74d76082f86/recipes/yapfify";
sha256 = "0scl8lk1c5i7jp1qj5gg8zf3zyi8lkb57ijkmvcs4czzlyv3y9bm";
name = "yapfify";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/yapfify";
license = lib.licenses.free;
};
}) {};
yard-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: yard-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "yard-mode"; pname = "yard-mode";
@ -38864,8 +39074,8 @@
version = "1.80"; version = "1.80";
src = fetchhg { src = fetchhg {
url = "https://www.yatex.org/hgrepos/yatex/"; url = "https://www.yatex.org/hgrepos/yatex/";
rev = "668632d9392e"; rev = "5bb46b7ab3de";
sha256 = "1d37yr7yqqg1gavi3406rv9rfvcm5ic365jhs6pispfx1kr77k6n"; sha256 = "1ap043fq9yl2n4slrjkjld9b743ac7ygj52z9af709v6sa660ahg";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";

View File

@ -164,9 +164,6 @@ self:
# upstream issue: missing file header # upstream issue: missing file header
qiita = markBroken super.qiita; qiita = markBroken super.qiita;
# upstream issue: missing file header
rcirc-menu = markBroken super.rcirc-menu;
# upstream issue: missing file header # upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger; speech-tagger = markBroken super.speech-tagger;

View File

@ -1,10 +1,10 @@
{ callPackage }: { { callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org"; pname = "org";
version = "20180108"; version = "20180122";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-20180108.tar"; url = "https://orgmode.org/elpa/org-20180122.tar";
sha256 = "02rs7zi3dzps0mlyfbgiywd2smnlw0pk8ps1nqk0d5hx3n6d15yv"; sha256 = "0a3a5v5x43xknqc6m5rcgdsqlw047w1djq372akfn5wafsk8a916";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -14,10 +14,10 @@
}) {}; }) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib"; pname = "org-plus-contrib";
version = "20180108"; version = "20180122";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20180108.tar"; url = "https://orgmode.org/elpa/org-plus-contrib-20180122.tar";
sha256 = "10mhiqsrxxmhsy8dl88r456shx6ajm4w19pz259b960551r596iz"; sha256 = "1ss6h03xkvgk2qm1dx4dxxxalbswjc1jl9v87q99nls8iavmqa8x";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {

View File

@ -234,12 +234,12 @@ in
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; name = "clion-${version}";
version = "2017.3.1"; /* updated by script */ version = "2017.3.2"; /* updated by script */
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
sha256 = "19pb78s5pa5ywifi1azs8gpg0a65c9n3yiqng348a7s27azkw01z"; /* updated by script */ sha256 = "0lv0nwfgm6h67mxhh0a2154ym7wcbm1qp3k1k1i00lg0lwig1rcw"; /* updated by script */
}; };
wmClass = "jetbrains-clion"; wmClass = "jetbrains-clion";
update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@ -260,12 +260,12 @@ in
goland = buildGoland rec { goland = buildGoland rec {
name = "goland-${version}"; name = "goland-${version}";
version = "2017.3"; /* updated by script */ version = "2017.3.1"; /* updated by script */
description = "Up and Coming Go IDE"; description = "Up and Coming Go IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz"; url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "0l4l0lsmq1g4fwfrxhbrnfsp8nk38ml48cryvdr241zsxz43fax0"; /* updated by script */ sha256 = "0cfjfv01ra67sr8n8ijqwd9zm2yzb1nm447kf0mr5cynr124ch0z"; /* updated by script */
}; };
wmClass = "jetbrains-goland"; wmClass = "jetbrains-goland";
update-channel = "goland_release"; update-channel = "goland_release";
@ -273,12 +273,12 @@ in
idea-community = buildIdea rec { idea-community = buildIdea rec {
name = "idea-community-${version}"; name = "idea-community-${version}";
version = "2017.3.2"; version = "2017.3.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "70cc4f36a6517c7af980456758214414ea74c5c4f314ecf30dd2640600badd62"; /* updated by script */ sha256 = "1wxaz25609wri2d91s9wy00gngplyjg7gzix3mzdhgysm00qizf1"; /* updated by script */
}; };
wmClass = "jetbrains-idea-ce"; wmClass = "jetbrains-idea-ce";
update-channel = "IDEA_Release"; update-channel = "IDEA_Release";
@ -286,12 +286,12 @@ in
idea-ultimate = buildIdea rec { idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}"; name = "idea-ultimate-${version}";
version = "2017.3.2"; /* updated by script */ version = "2017.3.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
sha256 = "0lygnhn2wbs1678g3jbd3c5yzxnjp106qx7v9kgvb1k6l9mqb3my"; /* updated by script */ sha256 = "01d5a6m927q9bnjlpz8va8bfjnj52k8q6i3im5ygj6lwadbzawyf"; /* updated by script */
}; };
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
update-channel = "IDEA_Release"; update-channel = "IDEA_Release";
@ -299,12 +299,12 @@ in
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; name = "phpstorm-${version}";
version = "2017.3.2"; version = "2017.3.3"; /* updated by script */
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "1grkqvj4j33d8hmy11ipkcci20sw7jpnc5zl28a9g85f2pzvsvs0"; sha256 = "0mk4d2c41qvfz7sqxqw7adak86pm95wvhzxrfg32y01r5i5q0av7"; /* updated by script */
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-phpstorm";
update-channel = "PS2017.3"; update-channel = "PS2017.3";
@ -312,12 +312,12 @@ in
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}"; name = "pycharm-community-${version}";
version = "2017.3.2"; /* updated by script */ version = "2017.3.3"; /* updated by script */
description = "PyCharm Community Edition"; description = "PyCharm Community Edition";
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "1xp4hva2wj2r3haqwmji4vpg6xm9fsx2xihslwmq89vfrbzybyq6"; /* updated by script */ sha256 = "1j9pp8lfy62d9l3953d5mpij60s6sqyv3bcjimgy85hsrw570x3r"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm-ce"; wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm_Release"; update-channel = "PyCharm_Release";
@ -325,12 +325,12 @@ in
pycharm-professional = buildPycharm rec { pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}"; name = "pycharm-professional-${version}";
version = "2017.3.2"; /* updated by script */ version = "2017.3.3"; /* updated by script */
description = "PyCharm Professional Edition"; description = "PyCharm Professional Edition";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0bqavq9f9pg82yh04bpzpb3a36980v2bn70j1ch6gsm3hdd75swv"; /* updated by script */ sha256 = "180cwva49air4j7g409algrm4svvmcbapspf9als3djhazqmczgr"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
update-channel = "PyCharm_Release"; update-channel = "PyCharm_Release";
@ -351,12 +351,12 @@ in
ruby-mine = buildRubyMine rec { ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}"; name = "ruby-mine-${version}";
version = "2017.3.1"; /* updated by script */ version = "2017.3.2"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE"; description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "01y89blg30y41j2h254mhf7b7d7nd3bgscinn03vpkjfg7hzr689"; /* updated by script */ sha256 = "1dc14k7i0nfhkzi0j53hysqzxcls29j487jr9kv1aqp81k544bdy"; /* updated by script */
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-rubymine";
update-channel = "rm2017.3"; update-channel = "rm2017.3";
@ -364,12 +364,12 @@ in
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
name = "webstorm-${version}"; name = "webstorm-${version}";
version = "2017.3.2"; /* updated by script */ version = "2017.3.3"; /* updated by script */
description = "Professional IDE for Web and JavaScript development"; description = "Professional IDE for Web and JavaScript development";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
sha256 = "1if99qjpnf9x7d3f1anpiglg9lwc3phamfd4wbyi9yjnk3rf5qcr"; /* updated by script */ sha256 = "1fhs13944928rqcqbv8d29qm1y0zzry4drr9gqqmj814y2vkbpnl"; /* updated by script */
}; };
wmClass = "jetbrains-webstorm"; wmClass = "jetbrains-webstorm";
update-channel = "WS_Release"; update-channel = "WS_Release";

View File

@ -1,16 +1,7 @@
{ stdenv, fetchFromGitHub, cmake, gettext, libmsgpack, libtermkey { stdenv, fetchFromGitHub, cmake, gettext, libmsgpack, libtermkey
, libtool, libuv, luaPackages, ncurses, perl, pkgconfig , libtool, libuv, luaPackages, ncurses, perl, pkgconfig
, unibilium, makeWrapper, vimUtils, xsel, gperf, callPackage , unibilium, vimUtils, xsel, gperf, callPackage
, withPython ? true, pythonPackages, extraPythonPackages ? []
, withPython3 ? true, python3Packages, extraPython3Packages ? []
, withJemalloc ? true, jemalloc , withJemalloc ? true, jemalloc
, withRuby ? true, bundlerEnv, ruby
, withPyGUI ? false
, vimAlias ? false
, viAlias ? false
, configure ? null
}: }:
with stdenv.lib; with stdenv.lib;
@ -41,59 +32,20 @@ let
description = "VT220/xterm/ECMA-48 terminal emulator library"; description = "VT220/xterm/ECMA-48 terminal emulator library";
homepage = http://www.leonerd.org.uk/code/libvterm/; homepage = http://www.leonerd.org.uk/code/libvterm/;
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ nckx garbas ]; maintainers = with maintainers; [ garbas ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
}; };
rubyEnv = bundlerEnv {
name = "neovim-ruby-env";
gemdir = ./ruby_provider;
postBuild = ''
ln -s ${ruby}/bin/* $out/bin
'';
};
rubyWrapper = ''--cmd \"let g:ruby_host_prog='$out/bin/nvim-ruby'\" '';
pluginPythonPackages = if configure == null then [] else builtins.concatLists
(map ({ pythonDependencies ? [], ...}: pythonDependencies)
(vimUtils.requiredPlugins configure));
pythonEnv = pythonPackages.python.buildEnv.override {
extraLibs = (
if withPyGUI
then [ pythonPackages.neovim_gui ]
else [ pythonPackages.neovim ]
) ++ extraPythonPackages ++ pluginPythonPackages;
ignoreCollisions = true;
};
pythonWrapper = ''--cmd \"let g:python_host_prog='$out/bin/nvim-python'\" '';
pluginPython3Packages = if configure == null then [] else builtins.concatLists
(map ({ python3Dependencies ? [], ...}: python3Dependencies)
(vimUtils.requiredPlugins configure));
python3Env = python3Packages.python.buildEnv.override {
extraLibs = [ python3Packages.neovim ] ++ extraPython3Packages ++ pluginPython3Packages;
ignoreCollisions = true;
};
python3Wrapper = ''--cmd \"let g:python3_host_prog='$out/bin/nvim-python3'\" '';
additionalFlags =
optionalString (withPython || withPython3 || withRuby)
''--add-flags "${(optionalString withPython pythonWrapper) +
(optionalString withPython3 python3Wrapper) +
(optionalString withRuby rubyWrapper)}" --unset PYTHONPATH '' +
optionalString (withRuby)
''--suffix PATH : ${rubyEnv}/bin --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath} '';
neovim = stdenv.mkDerivation rec { neovim = stdenv.mkDerivation rec {
name = "neovim-${version}"; name = "neovim-unwrapped-${version}";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "neovim"; owner = "neovim";
repo = "neovim"; repo = "neovim";
rev = "v${version}"; rev = "v${version}";
sha256 = "19ppj0i59kk70j09gap6azm0jm4y95fr5fx7n9gx377y3xjs8h03"; sha256 = "1dxr29d0hyag7snbww5s40as90412qb61rgj7gd9rps1iccl9gv4";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
@ -113,7 +65,6 @@ let
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
gettext gettext
makeWrapper
pkgconfig pkgconfig
]; ];
@ -140,17 +91,6 @@ let
install_name_tool -change libjemalloc.1.dylib \ install_name_tool -change libjemalloc.1.dylib \
${jemalloc}/lib/libjemalloc.1.dylib \ ${jemalloc}/lib/libjemalloc.1.dylib \
$out/bin/nvim $out/bin/nvim
'' + optionalString withPython ''
ln -s ${pythonEnv}/bin/python $out/bin/nvim-python
'' + optionalString withPython3 ''
ln -s ${python3Env}/bin/python3 $out/bin/nvim-python3
'' + optionalString withPython3 ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
'' + optionalString withPyGUI ''
makeWrapper "${pythonEnv}/bin/pynvim" "$out/bin/pynvim" \
--prefix PATH : "$out/bin"
'' + optionalString (withPython || withPython3 || withRuby) ''
wrapProgram $out/bin/nvim ${additionalFlags}
''; '';
meta = { meta = {
@ -175,24 +115,5 @@ let
}; };
}; };
in if (vimAlias == false && viAlias == false && configure == null) in
then neovim neovim
else stdenv.mkDerivation {
name = "neovim-${neovim.version}-configured";
inherit (neovim) version meta;
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/bin
for item in ${neovim}/bin/*; do
ln -s $item $out/bin/
done
'' + optionalString vimAlias ''
ln -s $out/bin/nvim $out/bin/vim
'' + optionalString viAlias ''
ln -s $out/bin/nvim $out/bin/vi
'' + optionalString (configure != null) ''
wrapProgram $out/bin/nvim --add-flags "-u ${vimUtils.vimrcFile configure}"
'';
}

View File

@ -1,9 +1,9 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
msgpack (1.1.0) msgpack (1.2.2)
multi_json (1.12.2) multi_json (1.13.1)
neovim (0.6.1) neovim (0.6.2)
msgpack (~> 1.0) msgpack (~> 1.0)
multi_json (~> 1.0) multi_json (~> 1.0)

View File

@ -2,26 +2,26 @@
msgpack = { msgpack = {
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0ck7w17d6b4jbb8inh1q57bghi9cjkiaxql1d3glmj1yavbpmlh7"; sha256 = "1ai0sfdv9jnr333fsvkn7a8vqvn0iwiw83yj603a3i68ds1x6di1";
type = "gem"; type = "gem";
}; };
version = "1.1.0"; version = "1.2.2";
}; };
multi_json = { multi_json = {
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"; sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
type = "gem"; type = "gem";
}; };
version = "1.12.2"; version = "1.13.1";
}; };
neovim = { neovim = {
dependencies = ["msgpack" "multi_json"]; dependencies = ["msgpack" "multi_json"];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1dnv2pdl8lwwy4av8bqc6kdlgxw88dmajm4fkdk6hc7qdx1sw234"; sha256 = "15r3j9bwlpm1ry7cp6059xb0irvsvvlmw53i28z6sf2khwfj5j53";
type = "gem"; type = "gem";
}; };
version = "0.6.1"; version = "0.6.2";
}; };
} }

View File

@ -0,0 +1,111 @@
{ stdenv, lib, makeDesktopItem, makeWrapper, lndir
, vimUtils
, neovim
, bundlerEnv, ruby
, pythonPackages
, python3Packages
}:
with stdenv.lib;
neovim:
let
wrapper = {
name ? "neovim"
, withPython ? true, extraPythonPackages ? []
, withPython3 ? true, extraPython3Packages ? []
, withRuby ? true
, withPyGUI ? false
, vimAlias ? false
, viAlias ? false
, configure ? null
}:
let
rubyEnv = bundlerEnv {
name = "neovim-ruby-env";
gemdir = ./ruby_provider;
postBuild = ''
ln -s ${ruby}/bin/* $out/bin
'';
};
pluginPythonPackages = if configure == null then [] else builtins.concatLists
(map ({ pythonDependencies ? [], ...}: pythonDependencies)
(vimUtils.requiredPlugins configure));
pythonEnv = pythonPackages.python.buildEnv.override {
extraLibs = (
if withPyGUI
then [ pythonPackages.neovim_gui ]
else [ pythonPackages.neovim ]
) ++ extraPythonPackages ++ pluginPythonPackages;
ignoreCollisions = true;
};
pluginPython3Packages = if configure == null then [] else builtins.concatLists
(map ({ python3Dependencies ? [], ...}: python3Dependencies)
(vimUtils.requiredPlugins configure));
python3Env = python3Packages.python.buildEnv.override {
extraLibs = [ python3Packages.neovim ] ++ extraPython3Packages ++ pluginPython3Packages;
ignoreCollisions = true;
};
in
stdenv.mkDerivation {
inherit name;
buildCommand = let bin="${neovim}/bin/nvim"; in ''
if [ ! -x "${bin}" ]
then
echo "cannot find executable file \`${bin}'"
exit 1
fi
makeWrapper "$(readlink -v --canonicalize-existing "${bin}")" \
"$out/bin/nvim" --add-flags " \
--cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \
--cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \
--cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \
--unset PYTHONPATH \
${optionalString withRuby '' --suffix PATH : ${rubyEnv}/bin --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
''
+ optionalString (!stdenv.isDarwin) ''
# copy and patch the original neovim.desktop file
mkdir -p $out/share/applications
substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
--replace 'TryExec=nvim' "TryExec=$out/bin/nvim" \
--replace 'Name=Neovim' 'Name=WrappedNeovim'
''
+ optionalString withPython ''
ln -s ${pythonEnv}/bin/python $out/bin/nvim-python
'' + optionalString withPython3 ''
ln -s ${python3Env}/bin/python3 $out/bin/nvim-python3
'' + optionalString withRuby ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
''
+ optionalString withPyGUI ''
makeWrapper "${pythonEnv}/bin/pynvim" "$out/bin/pynvim" \
--prefix PATH : "$out/bin"
'' + optionalString vimAlias ''
ln -s $out/bin/nvim $out/bin/vim
'' + optionalString viAlias ''
ln -s $out/bin/nvim $out/bin/vi
'' + optionalString (configure != null) ''
wrapProgram $out/bin/nvim --add-flags "-u ${vimUtils.vimrcFile configure}"
''
;
preferLocalBuild = true;
buildInputs = [makeWrapper];
passthru = { unwrapped = neovim; };
meta = neovim.meta // {
description = neovim.meta.description;
hydraPlatforms = [];
# prefer wrapper over the package
priority = (neovim.meta.priority or 0) - 1;
};
};
in
lib.makeOverridable wrapper

View File

@ -1,10 +1,10 @@
{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost, zlib, openssl { stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost
, R, qtbase, qtwebkit, qtwebchannel, libuuid, hunspellDicts, unzip, ant, jdk , zlib, openssl, R, qtbase, qtwebkit, qtwebchannel, libuuid, hunspellDicts
, gnumake, makeWrapper, pandoc , unzip, ant, jdk, gnumake, makeWrapper, pandoc
}: }:
let let
version = "1.1.383"; version = "1.1.414";
ginVer = "1.5"; ginVer = "1.5";
gwtVer = "2.7.0"; gwtVer = "2.7.0";
in in
@ -15,19 +15,15 @@ stdenv.mkDerivation rec {
buildInputs = [ boost zlib openssl R qtbase qtwebkit qtwebchannel libuuid ]; buildInputs = [ boost zlib openssl R qtbase qtwebkit qtwebchannel libuuid ];
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz"; owner = "rstudio";
sha256 = "06680l9amq03b4jarmzfr605bijhb79fip9rk464zab6hgwqbp3f"; repo = "rstudio";
rev = "v${version}";
sha256 = "1rr2zkv53r8swhq5d745jpp0ivxpsizzh7srf34isqpkn5pgx3v8";
}; };
# Hack RStudio to only use the input R. # Hack RStudio to only use the input R.
patches = [ patches = [ ./r-location.patch ];
./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}"; postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
inherit ginVer; inherit ginVer;
@ -49,14 +45,18 @@ stdenv.mkDerivation rec {
sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk"; sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
}; };
rmarkdownSrc = fetchurl { rmarkdownSrc = fetchFromGitHub {
url = "https://github.com/rstudio/rmarkdown/archive/95b8b1fa64f78ca99f225a67fff9817103be56.zip"; owner = "rstudio";
sha256 = "12fa65qr04rwsprkmyl651mkaqcbn1znwsmcjg4qsk9n5nxg0fah"; repo = "rmarkdown";
rev = "v1.8";
sha256 = "1blqxdr1vp2z5wd52nmf8hq36sdd4s2pyms441dqj50v35f8girb";
}; };
rsconnectSrc = fetchurl { rsconnectSrc = fetchFromGitHub {
url = "https://github.com/rstudio/rsconnect/archive/425f3767b3142bc6b81c9eb62c4722f1eedc9781.zip"; owner = "rstudio";
sha256 = "1sgf9dj9wfk4c6n5p1jc45386pf0nj2alg2j9qx09av3can1dy9p"; repo = "rsconnect";
rev = "953c945779dd180c1bfe68f41c173c13ec3e222d";
sha256 = "1yxwd9v4mvddh7m5rbljicmssw7glh1lhin7a9f01vxxa92vpj7z";
}; };
rstudiolibclang = fetchurl { rstudiolibclang = fetchurl {
@ -88,8 +88,10 @@ stdenv.mkDerivation rec {
done done
unzip $mathJaxSrc -d dependencies/common/mathjax-26 unzip $mathJaxSrc -d dependencies/common/mathjax-26
unzip $rmarkdownSrc -d dependencies/common/rmarkdown mkdir -p dependencies/common/rmarkdown
unzip $rsconnectSrc -d dependencies/common/rsconnect ln -s $rmarkdownSrc dependencies/common/rmarkdown/
mkdir -p dependencies/common/rsconnect
ln -s $rsconnectSrc dependencies/common/rsconnect/
mkdir -p dependencies/common/libclang/3.5 mkdir -p dependencies/common/libclang/3.5
unzip $rstudiolibclang -d dependencies/common/libclang/3.5 unzip $rstudiolibclang -d dependencies/common/libclang/3.5
mkdir -p dependencies/common/libclang/builtin-headers mkdir -p dependencies/common/libclang/builtin-headers

View File

@ -6,10 +6,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sigil-${version}"; name = "sigil-${version}";
version = "0.9.7"; version = "0.9.9";
src = fetchFromGitHub { src = fetchFromGitHub {
sha256 = "17m2f7pj2sx5rxrbry6wk1lvviy8fi2m270h47sisywnrhddarh7"; sha256 = "01pvc7k54mx5c7h1qiw92d4j459psv7n9xg94qbinf8vmpvkrcbw";
rev = version; rev = version;
repo = "Sigil"; repo = "Sigil";
owner = "Sigil-Ebook"; owner = "Sigil-Ebook";

View File

@ -25,6 +25,5 @@ stdenv.mkDerivation rec {
gpl2Plus # all the rest gpl2Plus # all the rest
]; ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.nckx ];
}; };
} }

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }: { lib, fetchFromGitHub }:
rec { rec {
version = "8.0.1257"; version = "8.0.1428";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
rev = "v${version}"; rev = "v${version}";
sha256 = "1y4c7wn5gr7n4c2ni36kadr26aldydxlf06yj7nsmw22ywwg78ig"; sha256 = "0pqqh7g96w8jfc5kvv2il6fcbhccwhk4k5skk52g1c1ixsblwz3y";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
"vim_cv_toupper_broken=no" "vim_cv_toupper_broken=no"
"--with-tlib=ncurses" "--with-tlib=ncurses"
"vim_cv_terminfo=yes" "vim_cv_terminfo=yes"
"vim_cv_tgetent=zero" # it does on native anyway
"vim_cv_tty_group=tty" "vim_cv_tty_group=tty"
"vim_cv_tty_mode=0660" "vim_cv_tty_mode=0660"
"vim_cv_getcwd_broken=no" "vim_cv_getcwd_broken=no"

View File

@ -2,7 +2,7 @@
makeWrapper, libXScrnSaver, libxkbfile, libsecret }: makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
let let
version = "1.19.1"; version = "1.19.2";
channel = "stable"; channel = "stable";
plat = { plat = {
@ -12,9 +12,9 @@ let
}.${stdenv.system}; }.${stdenv.system};
sha256 = { sha256 = {
"i686-linux" = "0ypx1jrzg76f8p4yh9hi3bhsrc6w4r7rg6i2aa6q7s8ny0q9hrlx"; "i686-linux" = "05qfcmwl1r43slwkb2rxh99hwpzd8c622la0ffd9p2jg4lbkgs1p";
"x86_64-linux" = "1934wdiy2d1fzcjxjyf60dw1g1pp3lk2wv41xgrabfy5j2xfz14r"; "x86_64-linux" = "0kjwmw68av9mnqcg1vaazm3k240y9jvbng6n7ycgzxwddzx0qlac";
"x86_64-darwin" = "1zbcddgdwvmnk1gpmgw6rz0rswhkfc72wcjdbvgghm4msfwcgvc8"; "x86_64-darwin" = "1mjmi5r9qlc6ggh3w566454ar06by15xsm6dymr8zv4sb352w70h";
}.${stdenv.system}; }.${stdenv.system};
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";

View File

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {
version = "7.0.7-19"; version = "7.0.7-21";
sha256 = "1naib6hspmq7d4gfpsksx78gc1lq3p2v3i9pxkkdvr9p9j15c4az"; sha256 = "0680dbg77gcyb3g4n22z5mp7c8mg0jpkqb0g4nj7d7r78nl869rv";
patches = []; patches = [];
}; };
in in

View File

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {
version = "6.9.9-28"; version = "6.9.9-33";
sha256 = "132kdl7jlkghfg3smdab14c29cpvrx65ibipxkmwg1nc88ycqivh"; sha256 = "05931wfhllrb1c2g2nwnwaf1wazn60y5f70gd11qcqp46rif7z21";
patches = []; patches = [];
} }
# Freeze version on mingw so we don't need to port the patch too often. # Freeze version on mingw so we don't need to port the patch too often.

View File

@ -22,6 +22,5 @@ stdenv.mkDerivation rec {
description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs"; description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs";
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nckx ];
}; };
} }

View File

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook, fetchpatch { mkDerivation, lib, fetchFromGitHub, cmake, doxygen, extra-cmake-modules, wrapGAppsHook, fetchpatch
# For `digitaglinktree` # For `digitaglinktree`
, perl, sqlite , perl, sqlite
@ -50,11 +50,13 @@
mkDerivation rec { mkDerivation rec {
name = "digikam-${version}"; name = "digikam-${version}";
version = "5.7.0"; version = "5.8.0";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://kde/stable/digikam/${name}.tar.xz"; owner = "KDE";
sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n"; repo = "digikam";
rev = "v${version}";
sha256 = "1bvidg0fn92xvw5brhb34lm7m4iy4jb5xpvnhbgh8vik2m4n41w1";
}; };
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ]; nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
@ -83,8 +85,7 @@ mkDerivation rec {
qtsvg qtsvg
qtwebkit qtwebkit
# https://bugs.kde.org/show_bug.cgi?id=387960 kcalcore
#kcalcore
kconfigwidgets kconfigwidgets
kcoreaddons kcoreaddons
kfilemetadata kfilemetadata
@ -112,20 +113,6 @@ mkDerivation rec {
--replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3" --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
''; '';
patches = [
# fix Qt-5.9.3 empty album problem
(fetchpatch {
url = "https://cgit.kde.org/digikam.git/patch/?id=855ba5b7d4bc6337234720a72ea824ddd3b32e5b";
sha256 = "0zk8p182piy6xn9v0mhwawya9ciq596vql1qc3lgnx371a97mmni";
})
];
patchFlags = "-d core -p1";
# `en make -f core/utilities/assistants/expoblending/CMakeFiles/expoblending_src.dir/build.make core/utilities/assistants/expoblending/CMakeFiles/expoblending_src.dir/manager/expoblendingthread.cpp.o`:
# digikam_version.h:37:24: fatal error: gitversion.h: No such file or directory
enableParallelBuilding = false;
meta = with lib; { meta = with lib; {
description = "Photo Management Program"; description = "Photo Management Program";
license = licenses.gpl2; license = licenses.gpl2;

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