Merge branch 'master' into parnell/fetchdocker
This commit is contained in:
commit
bd9869d0f2
10
.github/CODEOWNERS
vendored
10
.github/CODEOWNERS
vendored
@ -12,17 +12,17 @@
|
||||
|
||||
# Libraries
|
||||
/lib @edolstra @nbp
|
||||
/lib/systems @edolstra @nbp @ericson2314
|
||||
/lib/systems @nbp @ericson2314
|
||||
|
||||
# Nixpkgs Internals
|
||||
/default.nix @nbp
|
||||
/pkgs/top-level/default.nix @nbp @Ericson2314
|
||||
/pkgs/top-level/impure.nix @nbp @Ericson2314
|
||||
/pkgs/top-level/stage.nix @nbp @Ericson2314
|
||||
/pkgs/stdenv @edolstra
|
||||
/pkgs/build-support/cc-wrapper @edolstra @Ericson2314
|
||||
/pkgs/build-support/bintools-wrapper @edolstra @Ericson2314
|
||||
/pkgs/build-support/setup-hooks @edolstra @Ericson2314
|
||||
/pkgs/stdenv
|
||||
/pkgs/build-support/cc-wrapper @Ericson2314 @orivej
|
||||
/pkgs/build-support/bintools-wrapper @Ericson2314 @orivej
|
||||
/pkgs/build-support/setup-hooks @Ericson2314
|
||||
|
||||
# NixOS Internals
|
||||
/nixos/default.nix @nbp
|
||||
|
@ -61,7 +61,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
@ -162,7 +162,7 @@
|
||||
<para>
|
||||
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":
|
||||
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>
|
||||
A build time dependency, however, implies a shift in platforms between the depending package and the depended-on package.
|
||||
|
@ -191,7 +191,6 @@ building Python libraries is `buildPythonPackage`. Let's see how we can build th
|
||||
toolz = buildPythonPackage rec {
|
||||
pname = "toolz";
|
||||
version = "0.7.4";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
@ -237,7 +236,6 @@ with import <nixpkgs> {};
|
||||
my_toolz = python35.pkgs.buildPythonPackage rec {
|
||||
pname = "toolz";
|
||||
version = "0.7.4";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = python35.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
@ -283,15 +281,15 @@ order to build [`datashape`](https://github.com/blaze/datashape).
|
||||
{ # ...
|
||||
|
||||
datashape = buildPythonPackage rec {
|
||||
name = "datashape-${version}";
|
||||
pname = "datashape";
|
||||
version = "0.4.7";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://pypi/D/DataShape/${name}.tar.gz";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "14b2ef766d4c9652ab813182e866f493475e65e558bed0822e38bf07bba1a278";
|
||||
};
|
||||
|
||||
buildInputs = with self; [ pytest ];
|
||||
checkInputs = with self; [ pytest ];
|
||||
propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
|
||||
|
||||
meta = {
|
||||
@ -318,10 +316,11 @@ when building the bindings and are therefore added as `buildInputs`.
|
||||
{ # ...
|
||||
|
||||
lxml = buildPythonPackage rec {
|
||||
name = "lxml-3.4.4";
|
||||
pname = "lxml";
|
||||
version = "3.4.4";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://pypi/l/lxml/${name}.tar.gz";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "16a0fa97hym9ysdk3rmqz32xdjqmy4w34ld3rm3jf5viqjx65lxk";
|
||||
};
|
||||
|
||||
@ -351,11 +350,11 @@ and `CFLAGS`.
|
||||
{ # ...
|
||||
|
||||
pyfftw = buildPythonPackage rec {
|
||||
name = "pyfftw-${version}";
|
||||
pname = "pyFFTW";
|
||||
version = "0.9.2";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://pypi/p/pyFFTW/pyFFTW-${version}.tar.gz";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f6bbb6afa93085409ab24885a1a3cdb8909f095a142f4d49e346f2bd1b789074";
|
||||
};
|
||||
|
||||
@ -440,11 +439,11 @@ We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
|
||||
{ pkgs, buildPythonPackage }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "toolz-${version}";
|
||||
pname = "toolz";
|
||||
version = "0.7.4";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
|
||||
};
|
||||
|
||||
@ -549,25 +548,31 @@ The `buildPythonPackage` function is implemented in
|
||||
|
||||
The following is an example:
|
||||
```nix
|
||||
{ # ...
|
||||
|
||||
twisted = buildPythonPackage {
|
||||
name = "twisted-8.1.0";
|
||||
buildPythonPackage rec {
|
||||
version = "3.3.1";
|
||||
pname = "pytest";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2;
|
||||
sha256 = "0q25zbr4xzknaghha72mq57kh53qw1bf8csgp63pm9sfi72qhirl";
|
||||
};
|
||||
preCheck = ''
|
||||
# don't test bash builtins
|
||||
rm testing/test_argcomplete.py
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ self.ZopeInterface ];
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "cf8436dc59d8695346fcd3ab296de46425ecab00d64096cebe79fb51ecb2eb93";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = http://twistedmatrix.com/;
|
||||
description = "Twisted, an event-driven networking engine written in Python";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
};
|
||||
checkInputs = [ hypothesis ];
|
||||
buildInputs = [ setuptools_scm ];
|
||||
propagatedBuildInputs = [ attrs py setuptools six pluggy ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
|
||||
description = "Framework for writing tests";
|
||||
};
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
The `buildPythonPackage` mainly does four things:
|
||||
@ -623,7 +628,6 @@ with import <nixpkgs> {};
|
||||
packageOverrides = self: super: {
|
||||
pandas = super.pandas.overridePythonAttrs(old: rec {
|
||||
version = "0.19.1";
|
||||
name = "pandas-${version}";
|
||||
src = super.fetchPypi {
|
||||
pname = "pandas";
|
||||
inherit version;
|
||||
|
@ -36,7 +36,7 @@ rec {
|
||||
overrideDerivation = drv: f:
|
||||
let
|
||||
newDrv = derivation (drv.drvAttrs // (f drv));
|
||||
in addPassthru newDrv (
|
||||
in lib.flip (extendDerivation true) newDrv (
|
||||
{ meta = drv.meta or {};
|
||||
passthru = if drv ? passthru then drv.passthru else {};
|
||||
}
|
||||
@ -131,8 +131,8 @@ rec {
|
||||
|
||||
|
||||
/* Add attributes to each output of a derivation without changing
|
||||
the derivation itself. */
|
||||
addPassthru = drv: passthru:
|
||||
the derivation itself and check a given condition when evaluating. */
|
||||
extendDerivation = condition: passthru: drv:
|
||||
let
|
||||
outputs = drv.outputs or [ "out" ];
|
||||
|
||||
@ -142,13 +142,23 @@ rec {
|
||||
outputToAttrListElement = outputName:
|
||||
{ name = outputName;
|
||||
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;
|
||||
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
|
||||
only those needed by hydra-eval-jobs. Also strictly evaluate the
|
||||
|
@ -87,13 +87,14 @@ let
|
||||
inherit (stringsWithDeps) textClosureList textClosureMap
|
||||
noDepEntry fullDepEntry packEntry stringAfter;
|
||||
inherit (customisation) overrideDerivation makeOverridable
|
||||
callPackageWith callPackagesWith addPassthru hydraJob makeScope;
|
||||
callPackageWith callPackagesWith extendDerivation addPassthru
|
||||
hydraJob makeScope;
|
||||
inherit (meta) addMetaAttrs dontDistribute setName updateName
|
||||
appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio
|
||||
hiPrioSet;
|
||||
inherit (sources) pathType pathIsDirectory cleanSourceFilter
|
||||
cleanSource sourceByRegex sourceFilesBySuffices
|
||||
commitIdFromGitRepo cleanSourceWith;
|
||||
commitIdFromGitRepo cleanSourceWith pathHasContext canCleanSource;
|
||||
inherit (modules) evalModules closeModules unifyModuleSyntax
|
||||
applyIfFunction unpackSubmodule packSubmodule mergeModules
|
||||
mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
|
||||
|
@ -60,6 +60,7 @@
|
||||
arobyn = "Alexei Robyn <shados@shados.net>";
|
||||
artuuge = "Artur E. Ruuge <artuuge@gmail.com>";
|
||||
ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>";
|
||||
ashgillman = "Ashley Gillman <gillmanash@gmail.com>";
|
||||
aske = "Kirill Boltaev <aske@fmap.me>";
|
||||
asppsa = "Alastair Pharo <asppsa@gmail.com>";
|
||||
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
|
||||
@ -117,6 +118,7 @@
|
||||
chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
|
||||
chattered = "Phil Scott <me@philscotted.com>";
|
||||
ChengCat = "Yucheng Zhang <yu@cheng.cat>";
|
||||
chiiruno = "Okina Matara <okinan@protonmail.com>";
|
||||
choochootrain = "Hurshal Patel <hurshal@imap.cc>";
|
||||
chpatrick = "Patrick Chilton <chpatrick@gmail.com>";
|
||||
chreekat = "Bryan Richter <b@chreekat.net>";
|
||||
@ -298,6 +300,7 @@
|
||||
ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>";
|
||||
ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>";
|
||||
izorkin = "Yurii Izorkin <Izorkin@gmail.com>";
|
||||
ixxie = "Matan Bendix Shenhav <matan@fluxcraft.net>";
|
||||
j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
|
||||
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
|
||||
jammerful = "jammerful <jammerful@gmail.com>";
|
||||
@ -383,12 +386,14 @@
|
||||
lovek323 = "Jason O'Conal <jason@oconal.id.au>";
|
||||
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
|
||||
lsix = "Lancelot SIX <lsix@lancelotsix.com>";
|
||||
lschuermann = "Leon Schuermann <leon.git@is.currently.online>";
|
||||
ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>";
|
||||
lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
|
||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||
lufia = "Kyohei Kadota <lufia@lufia.org>";
|
||||
luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
|
||||
lukego = "Luke Gorrie <luke@snabb.co>";
|
||||
luz = "Luz <luz666@daum.net>";
|
||||
lw = "Sergey Sofeychuk <lw@fmap.me>";
|
||||
lyt = "Tim Liou <wheatdoge@gmail.com>";
|
||||
m3tti = "Mathaeus Sander <mathaeus.peter.sander@gmail.com>";
|
||||
@ -440,6 +445,7 @@
|
||||
mjanczyk = "Marcin Janczyk <m@dragonvr.pl>";
|
||||
mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle";
|
||||
mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>";
|
||||
mmahut = "Marek Mahut <marek.mahut@gmail.com>";
|
||||
moaxcp = "John Mercier <moaxcp@gmail.com>";
|
||||
modulistic = "Pablo Costa <modulistic@gmail.com>";
|
||||
mog = "Matthew O'Gorman <mog-lists@rldn.net>";
|
||||
@ -480,6 +486,7 @@
|
||||
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
|
||||
NikolaMandic = "Ratko Mladic <nikola@mandic.email>";
|
||||
nixy = "Andrew R. M. <nixy@nixy.moe>";
|
||||
nmattia = "Nicolas Mattia <nicolas@nmattia.com>";
|
||||
nocoolnametom = "Tom Doggett <nocoolnametom@gmail.com>";
|
||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||
@ -505,6 +512,7 @@
|
||||
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
|
||||
panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com";
|
||||
paperdigits = "Mica Semrick <mica@silentumbrella.com>";
|
||||
paraseba = "Sebastian Galkin <paraseba@gmail.com>";
|
||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||
patternspandemic = "Brad Christensen <patternspandemic@live.com>";
|
||||
pawelpacana = "Paweł Pacana <pawel.pacana@gmail.com>";
|
||||
@ -593,6 +601,7 @@
|
||||
rzetterberg = "Richard Zetterberg <richard.zetterberg@gmail.com>";
|
||||
s1lvester = "Markus Silvester <s1lvester@bockhacker.me>";
|
||||
samdroid-apps = "Sam Parkinson <sam@sam.today>";
|
||||
samueldr = "Samuel Dionne-Riel <samuel@dionne-riel.com>";
|
||||
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
||||
sargon = "Daniel Ehlers <danielehlers@mindeye.net>";
|
||||
@ -603,6 +612,7 @@
|
||||
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
|
||||
sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
|
||||
SeanZicari = "Sean Zicari <sean.zicari@gmail.com>";
|
||||
sellout = "Greg Pfeil <greg@technomadic.org>";
|
||||
sepi = "Raffael Mancini <raffael@mancini.lu>";
|
||||
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
|
||||
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
|
||||
@ -638,6 +648,7 @@
|
||||
sternenseemann = "Lukas Epple <post@lukasepple.de>";
|
||||
stesie = "Stefan Siegl <stesie@brokenpipe.de>";
|
||||
steveej = "Stefan Junker <mail@stefanjunker.de>";
|
||||
StillerHarpo = "Florian Engel <florianengel39@gmail.com>";
|
||||
stumoss = "Stuart Moss <samoss@gmail.com>";
|
||||
SuprDewd = "Bjarki Ágúst Guðmundsson <suprdewd@gmail.com>";
|
||||
swarren83 = "Shawn Warren <shawn.w.warren@gmail.com>";
|
||||
@ -729,9 +740,11 @@
|
||||
wyvie = "Elijah Rum <elijahrum@gmail.com>";
|
||||
xaverdh = "Dominik Xaver Hörl <hoe.dom@gmx.de>";
|
||||
xnwdd = "Guillermo NWDD <nwdd+nixos@no.team>";
|
||||
xurei = "Olivier Bourdoux <olivier.bourdoux@gmail.com>";
|
||||
xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>";
|
||||
xwvvvvwx = "David Terry <davidterry@posteo.de>";
|
||||
xzfc = "Albert Safin <xzfcpw@gmail.com>";
|
||||
y0no = "Yoann Ono <y0no@y0no.fr>";
|
||||
yarr = "Dmitry V. <savraz@gmail.com>";
|
||||
yegortimoshenko = "Yegor Timoshenko <yegortimoshenko@gmail.com>";
|
||||
ylwghst = "Burim Augustin Berisa <ylwghst@onionmail.info>";
|
||||
|
@ -93,4 +93,8 @@ rec {
|
||||
else lib.head matchRef
|
||||
else throw ("Not a .git directory: " + path);
|
||||
in lib.flip readCommitFromFile "HEAD";
|
||||
|
||||
pathHasContext = builtins.hasContext or (lib.hasPrefix builtins.storeDir);
|
||||
|
||||
canCleanSource = src: src ? _isLibCleanSourceWith || !(pathHasContext (toString src));
|
||||
}
|
||||
|
@ -4,11 +4,13 @@
|
||||
# Usage $0 debian-patches.txt debian-patches.nix
|
||||
# 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
|
||||
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
|
||||
exec 1> $2
|
||||
|
@ -21,7 +21,7 @@ find . -type f | while read src; do
|
||||
# Sanitize file name
|
||||
filename=$(basename "$src" | tr '@' '_')
|
||||
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:]]*-\)\+,,')
|
||||
echo "$name,$version,$src,$filename" >>$csv
|
||||
done
|
||||
|
@ -1,9 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# --print: avoid dependency on environment
|
||||
optPrint=
|
||||
if [ "$1" == "--print" ]; then
|
||||
optPrint=true
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$#" != 1 ] && [ "$#" != 2 ]; then
|
||||
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.
|
||||
The current state of the tree will be used if the second commit is missing.
|
||||
EOF
|
||||
@ -113,3 +120,8 @@ newPkgs "${tree[1]}" "${tree[2]}" '--argstr system "x86_64-linux"' > "$newlist"
|
||||
sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \
|
||||
| sort | uniq -c
|
||||
|
||||
if [ -n "$optPrint" ]; then
|
||||
echo
|
||||
cat "$newlist"
|
||||
fi
|
||||
|
||||
|
@ -4,18 +4,18 @@
|
||||
version="5.0"
|
||||
xml:id="sec-instaling-virtualbox-guest">
|
||||
|
||||
<title>Installing in a Virtualbox guest</title>
|
||||
<title>Installing in a VirtualBox guest</title>
|
||||
<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
|
||||
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>.
|
||||
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>
|
||||
|
||||
<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>
|
||||
|
||||
<listitem><para>Base Memory Size: 768 MB or higher.</para></listitem>
|
||||
|
@ -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>
|
||||
<para>To manually configure the network on the graphical installer,
|
||||
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 <(wpa_passphrase 'SSID' 'key')</command>.</para></listitem>
|
||||
|
||||
|
||||
<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>.
|
||||
|
@ -113,7 +113,7 @@ following incompatible changes:</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<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.
|
||||
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.
|
||||
@ -131,6 +131,11 @@ following incompatible changes:</para>
|
||||
Other types dependencies should be unaffected.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
</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>
|
||||
|
||||
</section>
|
||||
|
@ -13,10 +13,16 @@
|
||||
# grafted in the file system at path `target'.
|
||||
, contents ? []
|
||||
|
||||
, # Whether the disk should be partitioned (with a single partition
|
||||
# containing the root filesystem) or contain the root filesystem
|
||||
# directly.
|
||||
partitioned ? true
|
||||
, # Type of partition table to use; either "legacy", "efi", or "none".
|
||||
# For "efi" images, the GPT partition table is used and a mandatory ESP
|
||||
# partition of reasonable size is created in addition to the root partition.
|
||||
# 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
|
||||
, installBootLoader ? true
|
||||
@ -37,6 +43,10 @@
|
||||
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;
|
||||
|
||||
let format' = format; in let
|
||||
@ -51,6 +61,27 @@ let format' = format; in let
|
||||
raw = "img";
|
||||
}.${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;
|
||||
|
||||
channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
|
||||
@ -79,20 +110,31 @@ let format' = format; in let
|
||||
targets = map (x: x.target) contents;
|
||||
|
||||
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
|
||||
diskImage=nixos.raw
|
||||
truncate -s ${toString diskSize}M $diskImage
|
||||
|
||||
${if partitioned then ''
|
||||
parted --script $diskImage -- mklabel msdos mkpart primary ext4 1M -1s
|
||||
offset=$((2048*512))
|
||||
'' else ''
|
||||
offset=0
|
||||
''}
|
||||
${partitionDiskScript}
|
||||
|
||||
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"
|
||||
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
|
||||
|
||||
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 (
|
||||
pkgs.runCommand name
|
||||
{ preVM = prepareImage;
|
||||
buildInputs = with pkgs; [ utillinux e2fsprogs ];
|
||||
buildInputs = with pkgs; [ utillinux e2fsprogs dosfstools ];
|
||||
exportReferencesGraph = [ "closure" metaClosure ];
|
||||
postVM = ''
|
||||
${if format == "raw" then ''
|
||||
@ -152,11 +194,7 @@ in pkgs.vmTools.runInLinuxVM (
|
||||
memSize = 1024;
|
||||
}
|
||||
''
|
||||
${if partitioned then ''
|
||||
rootDisk=/dev/vda1
|
||||
'' else ''
|
||||
rootDisk=/dev/vda
|
||||
''}
|
||||
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
|
||||
|
||||
# Some tools assume these exist
|
||||
ln -s vda /dev/xvda
|
||||
@ -166,6 +204,14 @@ in pkgs.vmTools.runInLinuxVM (
|
||||
mkdir $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
|
||||
mkdir -p /mnt/etc/nixos
|
||||
${optionalString (configFile != null) ''
|
||||
|
@ -46,7 +46,7 @@ in {
|
||||
inherit lib config;
|
||||
inherit (cfg) contents format name;
|
||||
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;
|
||||
configFile = pkgs.writeText "configuration.nix"
|
||||
''
|
||||
|
@ -36,7 +36,7 @@ in
|
||||
default = {};
|
||||
description = ''
|
||||
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
|
||||
strings. The latter is concatenated, interspersed with colon
|
||||
characters.
|
||||
|
@ -27,6 +27,7 @@ in
|
||||
boot.loader.grub.enable = false;
|
||||
boot.loader.generic-extlinux-compatible.enable = true;
|
||||
|
||||
boot.consoleLogLevel = lib.mkDefault 7;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# The serial ports listed here are:
|
||||
@ -42,8 +43,17 @@ in
|
||||
populateBootCommands = let
|
||||
configTxt = pkgs.writeText "config.txt" ''
|
||||
kernel=u-boot-rpi3.bin
|
||||
|
||||
# Boot in 64-bit mode.
|
||||
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
|
||||
|
||||
# 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 ''
|
||||
(cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/boot/)
|
||||
|
@ -27,6 +27,7 @@ in
|
||||
boot.loader.grub.enable = false;
|
||||
boot.loader.generic-extlinux-compatible.enable = true;
|
||||
|
||||
boot.consoleLogLevel = lib.mkDefault 7;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
# The serial ports listed here are:
|
||||
# - ttyS0: for Tegra (Jetson TK1)
|
||||
|
@ -27,6 +27,7 @@ in
|
||||
boot.loader.grub.enable = false;
|
||||
boot.loader.generic-extlinux-compatible.enable = true;
|
||||
|
||||
boot.consoleLogLevel = lib.mkDefault 7;
|
||||
boot.kernelPackages = pkgs.linuxPackages_rpi;
|
||||
|
||||
# FIXME: this probably should be in installation-device.nix
|
||||
|
@ -301,6 +301,7 @@
|
||||
pykms = 282;
|
||||
kodi = 283;
|
||||
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!
|
||||
|
||||
@ -570,6 +571,7 @@
|
||||
pykms = 282;
|
||||
kodi = 283;
|
||||
restya-board = 284;
|
||||
mighttpd2 = 285;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -200,6 +200,7 @@
|
||||
./services/desktops/dleyna-server.nix
|
||||
./services/desktops/geoclue2.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/gnome-disks.nix
|
||||
./services/desktops/gnome3/gnome-documents.nix
|
||||
@ -225,7 +226,6 @@
|
||||
./services/games/terraria.nix
|
||||
./services/hardware/acpid.nix
|
||||
./services/hardware/actkbd.nix
|
||||
./services/hardware/amd-hybrid-graphics.nix
|
||||
./services/hardware/bluetooth.nix
|
||||
./services/hardware/brltty.nix
|
||||
./services/hardware/freefall.nix
|
||||
@ -540,6 +540,7 @@
|
||||
./services/networking/ssh/lshd.nix
|
||||
./services/networking/ssh/sshd.nix
|
||||
./services/networking/strongswan.nix
|
||||
./services/networking/stunnel.nix
|
||||
./services/networking/supplicant.nix
|
||||
./services/networking/supybot.nix
|
||||
./services/networking/syncthing.nix
|
||||
@ -634,6 +635,7 @@
|
||||
./services/web-servers/lighttpd/default.nix
|
||||
./services/web-servers/lighttpd/gitweb.nix
|
||||
./services/web-servers/lighttpd/inginious.nix
|
||||
./services/web-servers/mighttpd2.nix
|
||||
./services/web-servers/minio.nix
|
||||
./services/web-servers/nginx/default.nix
|
||||
./services/web-servers/phpfpm/default.nix
|
||||
|
@ -48,6 +48,15 @@ in
|
||||
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}\""
|
||||
}
|
||||
|
||||
${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
|
||||
'';
|
||||
};
|
||||
|
@ -36,8 +36,9 @@ in
|
||||
shellAliases = mkOption {
|
||||
default = config.environment.shellAliases;
|
||||
description = ''
|
||||
Set of aliases for zsh shell. See <option>environment.shellAliases</option>
|
||||
for an option format description.
|
||||
Set of aliases for zsh shell. Overrides the default value taken from
|
||||
<option>environment.shellAliases</option>.
|
||||
See <option>environment.shellAliases</option> for an option format description.
|
||||
'';
|
||||
type = types.attrs; # types.attrsOf types.stringOrPath;
|
||||
};
|
||||
|
@ -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 {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
@ -188,7 +196,7 @@ in
|
||||
domain = if data.domain != null then data.domain else cert;
|
||||
cpath = "${cfg.directory}/${cert}";
|
||||
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 ]
|
||||
++ concatMap (p: [ "-f" p ]) data.plugins
|
||||
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)
|
||||
|
@ -8,6 +8,22 @@ let
|
||||
|
||||
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
|
||||
|
||||
{
|
||||
@ -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 {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
@ -61,10 +168,16 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
security.sudo.extraRules = [
|
||||
{ groups = [ "wheel" ];
|
||||
commands = [ { command = "ALL"; options = (if cfg.wheelNeedsPassword then [ "SETENV" ] else [ "NOPASSWD" "SETENV" ]); } ];
|
||||
}
|
||||
];
|
||||
|
||||
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.
|
||||
Defaults env_keep+=SSH_AUTH_SOCK
|
||||
@ -72,8 +185,18 @@ in
|
||||
# "root" is allowed to do anything.
|
||||
root ALL=(ALL:ALL) SETENV: ALL
|
||||
|
||||
# Users in the "wheel" group can do anything.
|
||||
%wheel ALL=(ALL:ALL) ${if cfg.wheelNeedsPassword then "" else "NOPASSWD: ALL, "}SETENV: ALL
|
||||
# extraRules
|
||||
${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}
|
||||
'';
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
13
nixos/modules/services/hardware/80-net-setup-link.rules
Normal file
13
nixos/modules/services/hardware/80-net-setup-link.rules
Normal 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"
|
@ -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"];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
@ -119,7 +119,7 @@ let
|
||||
fi
|
||||
|
||||
${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
|
||||
|
@ -5,18 +5,25 @@ with lib;
|
||||
let
|
||||
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";
|
||||
|
||||
in {
|
||||
options = {
|
||||
services.netdata = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = "Whether to enable netdata monitoring.";
|
||||
};
|
||||
enable = mkEnableOption "netdata";
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
@ -31,9 +38,9 @@ in {
|
||||
};
|
||||
|
||||
configText = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "netdata.conf configuration.";
|
||||
type = types.nullOr types.lines;
|
||||
description = "Verbatim netdata.conf, cannot be combined with config.";
|
||||
default = null;
|
||||
example = ''
|
||||
[global]
|
||||
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 {
|
||||
assertions =
|
||||
[ { assertion = cfg.config != {} -> cfg.configText == null ;
|
||||
message = "Cannot specify both config and configText";
|
||||
}
|
||||
];
|
||||
systemd.services.netdata = {
|
||||
path = with pkgs; [ gawk curl ];
|
||||
description = "Real time performance monitoring";
|
||||
after = [ "network.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) {
|
||||
name = defaultUser;
|
||||
};
|
||||
|
@ -145,6 +145,16 @@ in {
|
||||
};
|
||||
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 = {
|
||||
description = "dnscrypt-wrapper daemon";
|
||||
|
@ -12,6 +12,10 @@ let
|
||||
keyfile ${cfg.ssl.keyfile}
|
||||
'';
|
||||
|
||||
passwordConf = optionalString cfg.checkPasswords ''
|
||||
password_file ${cfg.dataDir}/passwd
|
||||
'';
|
||||
|
||||
mosquittoConf = pkgs.writeText "mosquitto.conf" ''
|
||||
pid_file /run/mosquitto/pid
|
||||
acl_file ${aclFile}
|
||||
@ -19,6 +23,7 @@ let
|
||||
allow_anonymous ${boolToString cfg.allowAnonymous}
|
||||
bind_address ${cfg.host}
|
||||
port ${toString cfg.port}
|
||||
${passwordConf}
|
||||
${listenerConf}
|
||||
${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 {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
|
@ -50,6 +50,11 @@ let
|
||||
"up ${pkgs.writeScript "openvpn-${name}-up" upScript}"}
|
||||
${optionalString (cfg.down != "" || cfg.updateResolvConf)
|
||||
"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 {
|
||||
@ -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;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
@ -17,7 +17,7 @@ let
|
||||
|
||||
search_lan = entry.searchLAN;
|
||||
use_sync_trash = entry.useSyncTrash;
|
||||
known_hosts = knownHosts;
|
||||
known_hosts = entry.knownHosts;
|
||||
}) cfg.sharedFolders;
|
||||
|
||||
configFile = pkgs.writeText "config.json" (builtins.toJSON ({
|
||||
|
@ -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 {
|
||||
type = with types; listOf (submodule {
|
||||
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 =
|
||||
{ startSession = true;
|
||||
|
221
nixos/modules/services/networking/stunnel.nix
Normal file
221
nixos/modules/services/networking/stunnel.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ let
|
||||
cfg = config.services.elasticsearch;
|
||||
|
||||
es5 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "5" >= 0;
|
||||
es6 = builtins.compareVersions (builtins.parseDrvName cfg.package.name).version "6" >= 0;
|
||||
|
||||
esConfig = ''
|
||||
network.host: ${cfg.listenAddress}
|
||||
@ -92,8 +93,6 @@ in {
|
||||
node.name: "elasticsearch"
|
||||
node.master: true
|
||||
node.data: false
|
||||
index.number_of_shards: 5
|
||||
index.number_of_replicas: 1
|
||||
'';
|
||||
};
|
||||
|
||||
@ -165,7 +164,10 @@ in {
|
||||
path = [ pkgs.inetutils ];
|
||||
environment = {
|
||||
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 = {
|
||||
ExecStart = "${cfg.package}/bin/elasticsearch ${toString cfg.extraCmdLineOptions}";
|
||||
|
132
nixos/modules/services/web-servers/mighttpd2.nix
Normal file
132
nixos/modules/services/web-servers/mighttpd2.nix
Normal 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 ];
|
||||
}
|
@ -3,9 +3,7 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
xcfg = config.services.xserver;
|
||||
pcfg = config.hardware.pulseaudio;
|
||||
cfg = xcfg.desktopManager.xfce;
|
||||
cfg = config.services.xserver.desktopManager.xfce;
|
||||
in
|
||||
|
||||
{
|
||||
@ -52,82 +50,93 @@ in
|
||||
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
|
||||
{ name = "xfce";
|
||||
bgSupport = true;
|
||||
start =
|
||||
''
|
||||
${cfg.extraSessionCommands}
|
||||
hicolor_icon_theme
|
||||
tango-icon-theme
|
||||
xfce4-icon-theme
|
||||
|
||||
# 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"
|
||||
desktop_file_utils
|
||||
shared_mime_info
|
||||
|
||||
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
|
||||
export GTK_DATA_PREFIX=${config.system.path}
|
||||
# Needed by Xfce's xinitrc script
|
||||
# TODO: replace with command -v
|
||||
which
|
||||
|
||||
${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
exo
|
||||
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;
|
||||
|
||||
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.
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -548,7 +548,7 @@ in
|
||||
knownVideoDrivers;
|
||||
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 = [
|
||||
{ assertion = config.security.polkit.enable;
|
||||
|
@ -40,6 +40,10 @@ in
|
||||
kernel documentation</link>. Otherwise, if
|
||||
<option>networking.useDHCP</option> is enabled, an IP address
|
||||
is acquired using DHCP.
|
||||
|
||||
You should add the module(s) required for your network card to
|
||||
boot.initrd.availableKernelModules. lspci -v -s <ethernet controller>
|
||||
will tell you which.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -208,10 +208,11 @@ in
|
||||
"usbhid"
|
||||
"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"
|
||||
|
||||
# Needed by the stage 2 init script.
|
||||
# x86 RTC needed by the stage 2 init script.
|
||||
"rtc_cmos"
|
||||
];
|
||||
|
||||
|
@ -212,7 +212,7 @@ in
|
||||
echo "Obtaining SSH keys..."
|
||||
mkdir -m 0700 -p /root/.ssh
|
||||
AUTH_KEYS=$(${mktemp})
|
||||
${wget} -O $AUTH_KEYS http://metadata.google.internal/computeMetadata/v1/project/attributes/sshKeys
|
||||
${wget} -O $AUTH_KEYS --header="Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/sshKeys
|
||||
if [ -s $AUTH_KEYS ]; then
|
||||
|
||||
# Read in key one by one, split in case Google decided
|
||||
|
@ -128,6 +128,7 @@ in {
|
||||
dmidecode
|
||||
dnsmasq
|
||||
ebtables
|
||||
cfg.qemuPackage # libvirtd requires qemu-img to manage disk images
|
||||
]
|
||||
++ optional vswitch.enable vswitch.package;
|
||||
|
||||
|
@ -25,7 +25,7 @@ in {
|
||||
name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}";
|
||||
|
||||
inherit pkgs lib config;
|
||||
partitioned = true;
|
||||
partitionTableType = "legacy";
|
||||
diskSize = cfg.baseImageSize;
|
||||
|
||||
postVM =
|
||||
|
@ -57,7 +57,7 @@ in rec {
|
||||
nixos.ova.x86_64-linux
|
||||
|
||||
#(all nixos.tests.containers)
|
||||
nixos.tests.chromium
|
||||
nixos.tests.chromium.x86_64-linux
|
||||
(all nixos.tests.firefox)
|
||||
(all nixos.tests.firewall)
|
||||
(all nixos.tests.gnome3)
|
||||
@ -80,7 +80,7 @@ in rec {
|
||||
(all nixos.tests.boot.uefiUsb)
|
||||
(all nixos.tests.boot-stage1)
|
||||
(all nixos.tests.hibernate)
|
||||
nixos.tests.docker
|
||||
nixos.tests.docker.x86_64-linux
|
||||
(all nixos.tests.ecryptfs)
|
||||
(all nixos.tests.env)
|
||||
(all nixos.tests.ipv6)
|
||||
|
@ -3,6 +3,7 @@
|
||||
, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
|
||||
}:
|
||||
|
||||
with import ../pkgs/top-level/release-lib.nix { inherit supportedSystems; };
|
||||
with import ../lib;
|
||||
|
||||
let
|
||||
@ -11,15 +12,15 @@ let
|
||||
versionSuffix =
|
||||
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
|
||||
|
||||
forAllSystems = genAttrs supportedSystems;
|
||||
|
||||
importTest = fn: args: system: import fn ({
|
||||
inherit system;
|
||||
} // 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
|
||||
subTests = filterAttrs (const (hasAttr "test")) attrs;
|
||||
in mapAttrs (const (t: hydraJob t.test)) subTests;
|
||||
@ -28,10 +29,7 @@ let
|
||||
${system} = test;
|
||||
}) (discover (importTest fn args system));
|
||||
|
||||
# If the test is only for a particular system, use only the specified
|
||||
# system instead of generating attributes for all available systems.
|
||||
in if args ? system then discover (import fn args)
|
||||
else foldAttrs mergeAttrs {} (map discoverForSystem supportedSystems);
|
||||
in foldAttrs mergeAttrs {} (map discoverForSystem (intersectLists systems supportedSystems));
|
||||
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
|
||||
@ -91,13 +89,13 @@ let
|
||||
|
||||
makeNetboot = config:
|
||||
let
|
||||
config_evaled = import lib/eval-config.nix config;
|
||||
build = config_evaled.config.system.build;
|
||||
kernelTarget = config_evaled.pkgs.stdenv.platform.kernelTarget;
|
||||
configEvaled = import lib/eval-config.nix config;
|
||||
build = configEvaled.config.system.build;
|
||||
kernelTarget = configEvaled.pkgs.stdenv.platform.kernelTarget;
|
||||
in
|
||||
pkgs.symlinkJoin {
|
||||
name="netboot";
|
||||
paths=[
|
||||
name = "netboot";
|
||||
paths = [
|
||||
build.netbootRamdisk
|
||||
build.kernel
|
||||
build.netbootIpxeScript
|
||||
@ -108,6 +106,7 @@ let
|
||||
echo "file initrd $out/initrd" >> $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.
|
||||
initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk);
|
||||
|
||||
netboot = {
|
||||
x86_64-linux = makeNetboot {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./modules/installer/netboot/netboot-minimal.nix
|
||||
versionModule
|
||||
];
|
||||
};
|
||||
} // (optionalAttrs (elem "aarch64-linux" supportedSystems) {
|
||||
aarch64-linux = makeNetboot {
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
./modules/installer/netboot/netboot-minimal.nix
|
||||
versionModule
|
||||
];
|
||||
};});
|
||||
netboot = forTheseSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeNetboot {
|
||||
inherit system;
|
||||
modules = [
|
||||
./modules/installer/netboot/netboot-minimal.nix
|
||||
versionModule
|
||||
];
|
||||
});
|
||||
|
||||
iso_minimal = forAllSystems (system: makeIso {
|
||||
module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
|
||||
@ -147,7 +137,7 @@ in rec {
|
||||
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;
|
||||
type = "graphical";
|
||||
inherit system;
|
||||
@ -155,7 +145,7 @@ in rec {
|
||||
|
||||
# A variant with a more recent (but possibly less stable) kernel
|
||||
# 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;
|
||||
type = "minimal-new-kernel";
|
||||
inherit system;
|
||||
@ -163,7 +153,7 @@ in rec {
|
||||
|
||||
|
||||
# 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; };
|
||||
|
||||
@ -237,8 +227,8 @@ in rec {
|
||||
tests.blivet = callTest tests/blivet.nix {};
|
||||
tests.boot = callSubTests tests/boot.nix {};
|
||||
tests.boot-stage1 = callTest tests/boot-stage1.nix {};
|
||||
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
|
||||
tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable;
|
||||
tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
|
||||
tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
|
||||
tests.cjdns = callTest tests/cjdns.nix {};
|
||||
tests.cloud-init = callTest tests/cloud-init.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-macvlans = callTest tests/containers-macvlans.nix {};
|
||||
tests.couchdb = callTest tests/couchdb.nix {};
|
||||
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; });
|
||||
tests.docker-edge = hydraJob (import tests/docker-edge.nix { system = "x86_64-linux"; });
|
||||
tests.docker = callTestOnTheseSystems ["x86_64-linux"] tests/docker.nix {};
|
||||
tests.docker-edge = callTestOnTheseSystems ["x86_64-linux"] tests/docker-edge.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.etcd = hydraJob (import tests/etcd.nix { system = "x86_64-linux"; });
|
||||
tests.ec2-nixops = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-nixops;
|
||||
tests.ec2-config = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-config;
|
||||
tests.elk = hydraJob (import tests/elk.nix { system = "x86_64-linux"; });
|
||||
tests.etcd = callTestOnTheseSystems ["x86_64-linux"] tests/etcd.nix {};
|
||||
tests.ec2-nixops = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-nixops;
|
||||
tests.ec2-config = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-config;
|
||||
tests.elk = callSubTestsOnTheseSystems ["x86_64-linux"] tests/elk.nix {};
|
||||
tests.env = callTest tests/env.nix {};
|
||||
tests.ferm = callTest tests/ferm.nix {};
|
||||
tests.firefox = callTest tests/firefox.nix {};
|
||||
tests.firewall = callTest tests/firewall.nix {};
|
||||
tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; });
|
||||
tests.fleet = callTestOnTheseSystems ["x86_64-linux"] tests/fleet.nix {};
|
||||
#tests.gitlab = callTest tests/gitlab.nix {};
|
||||
tests.gitolite = callTest tests/gitolite.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-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; };
|
||||
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.scripted = callSubTests tests/networking.nix { networkd = false; };
|
||||
# TODO: put in networking.nix after the test becomes more complete
|
||||
@ -326,7 +317,7 @@ in rec {
|
||||
tests.openssh = callTest tests/openssh.nix {};
|
||||
tests.owncloud = callTest tests/owncloud.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.php-pcre = callTest tests/php-pcre.nix {};
|
||||
tests.postgresql = callSubTests tests/postgresql.nix {};
|
||||
@ -348,12 +339,13 @@ in rec {
|
||||
tests.smokeping = callTest tests/smokeping.nix {};
|
||||
tests.snapper = callTest tests/snapper.nix {};
|
||||
tests.statsd = callTest tests/statsd.nix {};
|
||||
tests.sudo = callTest tests/sudo.nix {};
|
||||
tests.switchTest = callTest tests/switch-test.nix {};
|
||||
tests.taskserver = callTest tests/taskserver.nix {};
|
||||
tests.tomcat = callTest tests/tomcat.nix {};
|
||||
tests.udisks2 = callTest tests/udisks2.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.xfce = callTest tests/xfce.nix {};
|
||||
tests.xmonad = callTest tests/xmonad.nix {};
|
||||
|
@ -1,95 +1,107 @@
|
||||
# Test the ELK stack: Elasticsearch, Logstash and Kibana.
|
||||
|
||||
import ./make-test.nix ({ pkgs, ...} :
|
||||
{ system ? builtins.currentSystem }:
|
||||
with import ../lib/testing.nix { inherit system; };
|
||||
with pkgs.lib;
|
||||
let
|
||||
esUrl = "http://localhost:9200";
|
||||
in {
|
||||
name = "ELK";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ eelco chaoflow offline basvandijk ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
one =
|
||||
{ config, pkgs, ... }: {
|
||||
# Not giving the machine at least 2060MB results in elasticsearch failing with the following error:
|
||||
#
|
||||
# OpenJDK 64-Bit Server VM warning:
|
||||
# INFO: os::commit_memory(0x0000000085330000, 2060255232, 0)
|
||||
# failed; error='Cannot allocate memory' (errno=12)
|
||||
#
|
||||
# There is insufficient memory for the Java Runtime Environment to continue.
|
||||
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
|
||||
#
|
||||
# When setting this to 2500 I got "Kernel panic - not syncing: Out of
|
||||
# memory: compulsory panic_on_oom is enabled" so lets give it even a
|
||||
# bit more room:
|
||||
virtualisation.memorySize = 3000;
|
||||
mkElkTest = name : elk : makeTest {
|
||||
inherit name;
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ eelco chaoflow offline basvandijk ];
|
||||
};
|
||||
nodes = {
|
||||
one =
|
||||
{ config, pkgs, ... }: {
|
||||
# Not giving the machine at least 2060MB results in elasticsearch failing with the following error:
|
||||
#
|
||||
# OpenJDK 64-Bit Server VM warning:
|
||||
# INFO: os::commit_memory(0x0000000085330000, 2060255232, 0)
|
||||
# failed; error='Cannot allocate memory' (errno=12)
|
||||
#
|
||||
# There is insufficient memory for the Java Runtime Environment to continue.
|
||||
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
|
||||
#
|
||||
# When setting this to 2500 I got "Kernel panic - not syncing: Out of
|
||||
# memory: compulsory panic_on_oom is enabled" so lets give it even a
|
||||
# bit more room:
|
||||
virtualisation.memorySize = 3000;
|
||||
|
||||
# For querying JSON objects returned from elasticsearch and kibana.
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
# For querying JSON objects returned from elasticsearch and kibana.
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
|
||||
services = {
|
||||
logstash = {
|
||||
enable = true;
|
||||
package = pkgs.logstash5;
|
||||
inputConfig = ''
|
||||
exec { command => "echo -n flowers" interval => 1 type => "test" }
|
||||
exec { command => "echo -n dragons" interval => 1 type => "test" }
|
||||
'';
|
||||
filterConfig = ''
|
||||
if [message] =~ /dragons/ {
|
||||
drop {}
|
||||
}
|
||||
'';
|
||||
outputConfig = ''
|
||||
file {
|
||||
path => "/tmp/logstash.out"
|
||||
codec => line { format => "%{message}" }
|
||||
}
|
||||
elasticsearch {
|
||||
hosts => [ "${esUrl}" ]
|
||||
}
|
||||
'';
|
||||
};
|
||||
services = {
|
||||
logstash = {
|
||||
enable = true;
|
||||
package = elk.logstash;
|
||||
inputConfig = ''
|
||||
exec { command => "echo -n flowers" interval => 1 type => "test" }
|
||||
exec { command => "echo -n dragons" interval => 1 type => "test" }
|
||||
'';
|
||||
filterConfig = ''
|
||||
if [message] =~ /dragons/ {
|
||||
drop {}
|
||||
}
|
||||
'';
|
||||
outputConfig = ''
|
||||
file {
|
||||
path => "/tmp/logstash.out"
|
||||
codec => line { format => "%{message}" }
|
||||
}
|
||||
elasticsearch {
|
||||
hosts => [ "${esUrl}" ]
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
elasticsearch = {
|
||||
enable = true;
|
||||
package = pkgs.elasticsearch5;
|
||||
};
|
||||
elasticsearch = {
|
||||
enable = true;
|
||||
package = elk.elasticsearch;
|
||||
};
|
||||
|
||||
kibana = {
|
||||
enable = true;
|
||||
package = pkgs.kibana5;
|
||||
elasticsearch.url = esUrl;
|
||||
kibana = {
|
||||
enable = true;
|
||||
package = elk.kibana;
|
||||
elasticsearch.url = esUrl;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
startAll;
|
||||
testScript = ''
|
||||
startAll;
|
||||
|
||||
$one->waitForUnit("elasticsearch.service");
|
||||
$one->waitForUnit("elasticsearch.service");
|
||||
|
||||
# Continue as long as the status is not "red". The status is probably
|
||||
# "yellow" instead of "green" because we are using a single elasticsearch
|
||||
# node which elasticsearch considers risky.
|
||||
#
|
||||
# TODO: extend this test with multiple elasticsearch nodes and see if the status turns "green".
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red");
|
||||
# Continue as long as the status is not "red". The status is probably
|
||||
# "yellow" instead of "green" because we are using a single elasticsearch
|
||||
# node which elasticsearch considers risky.
|
||||
#
|
||||
# TODO: extend this test with multiple elasticsearch nodes and see if the status turns "green".
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red");
|
||||
|
||||
# Perform some simple logstash tests.
|
||||
$one->waitForUnit("logstash.service");
|
||||
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep flowers");
|
||||
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep -v dragons");
|
||||
# Perform some simple logstash tests.
|
||||
$one->waitForUnit("logstash.service");
|
||||
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep flowers");
|
||||
$one->waitUntilSucceeds("cat /tmp/logstash.out | grep -v dragons");
|
||||
|
||||
# See if kibana is healthy.
|
||||
$one->waitForUnit("kibana.service");
|
||||
$one->waitUntilSucceeds("curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green");
|
||||
# See if kibana is healthy.
|
||||
$one->waitForUnit("kibana.service");
|
||||
$one->waitUntilSucceeds("curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green");
|
||||
|
||||
# See if logstash messages arive in elasticsearch.
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"flowers\"}}}' | jq .hits.total | grep -v 0");
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"dragons\"}}}' | jq .hits.total | grep 0");
|
||||
'';
|
||||
})
|
||||
# See if logstash messages arive in elasticsearch.
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"flowers\"}}}' | jq .hits.total | grep -v 0");
|
||||
$one->waitUntilSucceeds("curl --silent --show-error '${esUrl}/_search' -H 'Content-Type: application/json' -d '{\"query\" : { \"match\" : { \"message\" : \"dragons\"}}}' | jq .hits.total | grep 0");
|
||||
'';
|
||||
};
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ let
|
||||
in makeTest {
|
||||
name = "keymap-${layout}";
|
||||
|
||||
machine.services.xserver.desktopManager.xterm.enable = false;
|
||||
machine.i18n.consoleKeyMap = mkOverride 900 layout;
|
||||
machine.services.xserver.layout = mkOverride 900 layout;
|
||||
machine.imports = [ ./common/x11.nix extraConfig ];
|
||||
|
@ -115,11 +115,6 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
$machine->succeed("nix-store -qR /run/current-system | grep nixos-");
|
||||
};
|
||||
|
||||
# Test sudo
|
||||
subtest "sudo", sub {
|
||||
$machine->succeed("su - sybil -c 'sudo true'");
|
||||
};
|
||||
|
||||
# Test sysctl
|
||||
subtest "sysctl", sub {
|
||||
$machine->waitForUnit("systemd-sysctl.service");
|
||||
|
31
nixos/tests/netdata.nix
Normal file
31
nixos/tests/netdata.nix
Normal 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
93
nixos/tests/sudo.nix
Normal 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");
|
||||
};
|
||||
'';
|
||||
})
|
@ -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 {
|
||||
|
||||
aeon = callPackage ./aeon { };
|
||||
|
||||
bitcoin = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
|
||||
bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
|
||||
bitcoin = libsForQt5.callPackage ./bitcoin.nix { boost = boost164; miniupnpc = miniupnpc_2; withGui = true; };
|
||||
bitcoind = callPackage ./bitcoin.nix { boost = boost164; miniupnpc = miniupnpc_2; withGui = false; };
|
||||
|
||||
bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { withGui = true; };
|
||||
bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; };
|
||||
@ -29,6 +29,8 @@ rec {
|
||||
dogecoin = callPackage ./dogecoin.nix { withGui = true; };
|
||||
dogecoind = callPackage ./dogecoin.nix { withGui = false; };
|
||||
|
||||
ethsign = callPackage ./ethsign { };
|
||||
|
||||
freicoin = callPackage ./freicoin.nix { boost = boost155; };
|
||||
go-ethereum = callPackage ./go-ethereum.nix {
|
||||
inherit (darwin) libobjc;
|
||||
|
59
pkgs/applications/altcoins/ethsign/default.nix
Normal file
59
pkgs/applications/altcoins/ethsign/default.nix
Normal 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];
|
||||
};
|
||||
}
|
@ -1,22 +1,24 @@
|
||||
{ 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 {
|
||||
name = "seth-${version}";
|
||||
version = "0.5.6";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dapphub";
|
||||
repo = "seth";
|
||||
rev = "v${version}";
|
||||
sha256 = "1zl70xy7njjwy4k4g84v7lpf9a2nnnbxh4mkpw7jzqfs2mr636z6";
|
||||
sha256 = "1lbr7i3rznfp3h03y7pc094r0m992lbzr926rnr0xxbyp755wvm4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
buildPhase = "true";
|
||||
makeFlags = ["prefix=$(out)"];
|
||||
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 ''
|
||||
wrapProgram "$out/bin/seth" --prefix PATH : "${path}"
|
||||
'';
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, vlc
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, vlc
|
||||
, qtbase, qtmultimedia, qtsvg, qttools
|
||||
|
||||
# Cantata doesn't build with cdparanoia enabled so we disable that
|
||||
@ -45,6 +45,15 @@ in stdenv.mkDerivation rec {
|
||||
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 ]
|
||||
++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ]
|
||||
++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cava-${version}";
|
||||
version = "0.4.2";
|
||||
version = "0.6.0";
|
||||
|
||||
buildInputs = [
|
||||
alsaLib
|
||||
@ -16,14 +16,16 @@ stdenv.mkDerivation rec {
|
||||
owner = "karlstav";
|
||||
repo = "cava";
|
||||
rev = version;
|
||||
sha256 = "1c5gl8ghmd89f6097rjd2dzrgh1z4i4v9m4vn5wkpnnm68b96yyc";
|
||||
sha256 = "01maaq5pfd4a7zilgarwr1nl7jbqyrvir6w7ikchggsckrlk23wr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
postConfigure = ''
|
||||
substituteInPlace Makefile \
|
||||
substituteInPlace Makefile.am \
|
||||
--replace "-L/usr/local/lib -Wl,-rpath /usr/local/lib" ""
|
||||
substituteInPlace configure.ac \
|
||||
--replace "/usr/share/consolefonts" "$out/share/consolefonts"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -62,6 +62,5 @@ in stdenv.mkDerivation rec {
|
||||
homepage = http://gillesdegottex.github.io/dfasma/;
|
||||
license = [ licenses.gpl3Plus reaperFork.meta.license ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -16,13 +16,14 @@ with stdenv.lib.strings;
|
||||
|
||||
let
|
||||
|
||||
version = "2.1.0";
|
||||
version = "2.5.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grame-cncm";
|
||||
repo = "faust";
|
||||
rev = "v${builtins.replaceStrings ["."] ["-"] version}";
|
||||
sha256 = "1pmiwy287g79ipz9pppnkfrdgls3l912kpkr7dfymk9wk5y5di9m";
|
||||
sha256 = "0sjhy7axa2dj1977iz6zmqvz9qzalcfnrx2fqx3xmk9hly847d6z";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -2,6 +2,7 @@
|
||||
, gtk2
|
||||
, jack2Full
|
||||
, opencv
|
||||
, libsndfile
|
||||
}:
|
||||
|
||||
faust.wrapWithBuildEnv {
|
||||
@ -18,6 +19,7 @@ faust.wrapWithBuildEnv {
|
||||
gtk2
|
||||
jack2Full
|
||||
opencv
|
||||
libsndfile
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
, jack2Full
|
||||
, opencv
|
||||
, qt4
|
||||
, libsndfile
|
||||
}:
|
||||
|
||||
faust.wrapWithBuildEnv {
|
||||
@ -17,6 +18,7 @@ faust.wrapWithBuildEnv {
|
||||
jack2Full
|
||||
opencv
|
||||
qt4
|
||||
libsndfile
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = https://xiph.org/flac/;
|
||||
description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.mornfall ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -49,6 +49,5 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://gillesdegottex.github.io/fmit/;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, python3, python3Packages, intltool
|
||||
, glibcLocales, gnome3, gtk3, wrapGAppsHook
|
||||
, ipodSupport ? false, libgpod
|
||||
, ipodSupport ? false, libgpod, gobjectIntrospection
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
@ -22,14 +22,11 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
intltool
|
||||
python3Packages.wrapPython
|
||||
wrapGAppsHook
|
||||
glibcLocales
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python3
|
||||
];
|
||||
buildInputs = [ python3 gobjectIntrospection ];
|
||||
|
||||
checkInputs = with python3Packages; [
|
||||
coverage minimock
|
||||
|
@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
|
||||
description = "A command line editor for id3v2 tags";
|
||||
homepage = http://id3v2.sourceforge.net/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
|
@ -27,6 +27,5 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -37,6 +37,5 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.ibrahimshaath.co.uk/keyfinder/;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.mornfall ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A featureful ncurses based MPD client inspired by ncmpc";
|
||||
homepage = https://ncmpcpp.rybczak.net/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ jfrankenau koral lovek323 mornfall ];
|
||||
maintainers = with maintainers; [ jfrankenau koral lovek323 ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,32 +1,26 @@
|
||||
{ stdenv, fetchurl, puredata }:
|
||||
{ stdenv, fetchFromGitHub, puredata }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cyclone-${version}";
|
||||
version = "0.1-alpha55";
|
||||
version = "0.3beta-2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/pure-data/libraries/cyclone/${name}.tar.gz";
|
||||
sha256 = "1yys9xrlz09xgnqk2gqdl8vw6xj6l9d7km2lkihidgjql0jx5b5i";
|
||||
src = fetchFromGitHub {
|
||||
owner = "porres";
|
||||
repo = "pd-cyclone";
|
||||
rev = "cyclone${version}";
|
||||
sha256 = "192jrq3bdsv626js1ymq10gwp9wwcszjs63ys6ap9ig8xdkbhr3q";
|
||||
};
|
||||
|
||||
buildInputs = [ puredata ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
makeFlags = [
|
||||
"pdincludepath=${puredata}/include/pd"
|
||||
"prefix=$(out)"
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
for file in `grep -r -l g_canvas.h`
|
||||
do
|
||||
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
|
||||
postInstall = ''
|
||||
mv "$out/lib/pd-externals/cyclone" "$out/"
|
||||
rm -rf $out/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -1,28 +1,26 @@
|
||||
{ stdenv, fetchurl, puredata }:
|
||||
{ stdenv, fetchFromGitHub, puredata }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "maxlib-${version}";
|
||||
version = "1.5.5";
|
||||
version = "1.5.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/pure-data/libraries/maxlib/${name}.tar.gz";
|
||||
sha256 = "0vxl9s815dnay5r0067rxsfh8f6jbk61f0nxrydzjydfycza7p1w";
|
||||
src = fetchFromGitHub {
|
||||
owner = "electrickery";
|
||||
repo = "pd-maxlib";
|
||||
rev = "v${version}";
|
||||
sha256 = "10w9qfgn26lj3zqjksf2r1wsjpf5xy4dx22jay9l6idy9q62mxsn";
|
||||
};
|
||||
|
||||
buildInputs = [ puredata ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
patchPhase = ''
|
||||
for i in ${puredata}/include/pd/*; do
|
||||
ln -s $i .
|
||||
done
|
||||
sed -i "s@/usr@$out@g" Makefile
|
||||
'';
|
||||
makeFlags = [ "prefix=$(out)" ];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/local/lib/pd-externals/maxlib/ $out
|
||||
mv $out/lib/pd-externals/maxlib/ $out
|
||||
rm -rf $out/local/
|
||||
rm -rf $out/lib/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -1,30 +1,40 @@
|
||||
{ stdenv, fetchurl, unzip, puredata }:
|
||||
{ stdenv, fetchurl, unzip, puredata, fftw }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
name = "timbreid-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://williambrent.conflations.com/pd/timbreID-${version}-src.zip";
|
||||
sha256 = "02rnkb0vpjxrr60c3hryv7zhyjpci2mi9dk27kjxpj5zp26gjk0p";
|
||||
sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip puredata ];
|
||||
buildInputs = [ unzip puredata fftw ];
|
||||
|
||||
unpackPhase = ''
|
||||
mkdir source
|
||||
cd source
|
||||
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 = ''
|
||||
mkdir -p $out/
|
||||
cp -r *.pd $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 = {
|
||||
description = "A collection of audio feature analysis externals for puredata";
|
||||
homepage = http://williambrent.conflations.com/pages/research.html;
|
||||
|
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.filter24.org/seq24;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ goibhniu nckx ];
|
||||
maintainers = with maintainers; [ goibhniu ];
|
||||
};
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
let
|
||||
androidStudio = stdenv.mkDerivation {
|
||||
name = "${pname}";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
|
||||
@ -48,6 +48,7 @@ let
|
||||
installPhase = ''
|
||||
cp -r . $out
|
||||
wrapProgram $out/bin/studio.sh \
|
||||
--set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
|
||||
--set PATH "${stdenv.lib.makeBinPath [
|
||||
|
||||
# Checked in studio.sh
|
||||
@ -68,7 +69,6 @@ let
|
||||
|
||||
# Runtime stuff
|
||||
git
|
||||
|
||||
]}" \
|
||||
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
|
||||
|
||||
|
@ -27,9 +27,9 @@ in rec {
|
||||
|
||||
preview = mkStudio {
|
||||
pname = "android-studio-preview";
|
||||
version = "3.1.0.6"; # "Android Studio 3.1 Canary 7"
|
||||
build = "173.4524538";
|
||||
sha256Hash = "0rj7swychriznylrr09g0rnj12rymms925xbry85ba72hj1jjf6w";
|
||||
version = "3.1.0.7"; # "Android Studio 3.1 Canary 8"
|
||||
build = "173.4529993";
|
||||
sha256Hash = "0mfkzdxbrdqlfqqx83dr9ibkpjwjf54kka9qra9j31zqcmy8rd53";
|
||||
|
||||
meta = stable.meta // {
|
||||
description = "The Official IDE for Android (preview version)";
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "atom-beta-${version}";
|
||||
version = "1.24.0-beta2";
|
||||
version = "1.24.0-beta3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
|
||||
sha256 = "1s5zfccpiyg3nqq3a93dg5sr6pk8gvwf8assq9g78l7qkryqr4ac";
|
||||
sha256 = "02nnjjwlkxafi2fbi4gz276nqkmi92kf3q414vw1k3kc8q5zvxrs";
|
||||
name = "${name}.deb";
|
||||
};
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "atom-${version}";
|
||||
version = "1.23.2";
|
||||
version = "1.23.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
|
||||
sha256 = "04shnmy80ixjrc8d57i5w23xfxw1dmxj7kbygsal9l8kxgd76k7h";
|
||||
sha256 = "0vq0pics8ajjqwqlk396dxl10k80059f9bik0j4wj2cals42bifc";
|
||||
name = "${name}.deb";
|
||||
};
|
||||
|
||||
|
@ -1,25 +1,25 @@
|
||||
{ stdenv, fetchFromGitHub, freetype, libX11, libXt, libXft
|
||||
, version ? "2016-10-08"
|
||||
, rev ? "a17c4a9c2a1af2de0a756fe16d482e0db88c0541"
|
||||
, sha256 ? "03xmfzlijz4gbmr7l0pb1gl9kmlz1ab3hr8d51innvlasy4g6xgj"
|
||||
}:
|
||||
{ stdenv, fetchFromGitHub, freetype, libX11, libXi, libXt, libXft }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit version;
|
||||
version = "2017-10-27";
|
||||
name = "deadpixi-sam-unstable-${version}";
|
||||
src = fetchFromGitHub {
|
||||
inherit sha256 rev;
|
||||
owner = "deadpixi";
|
||||
repo = "sam";
|
||||
};
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deadpixi";
|
||||
repo = "sam";
|
||||
rev = "51693780fb1457913389db6634163998f9b775b8";
|
||||
sha256 = "0nfkj93j4bgli4ixbk041nwi14rabk04kqg8krq4mj0044m1qywr";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
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)" ];
|
||||
buildInputs = [ libX11 libXt libXft ];
|
||||
buildInputs = [ libX11 libXi libXt libXft ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/applications
|
||||
@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
|
||||
description = "Updated version of the sam text editor";
|
||||
license = with licenses; lpl-102;
|
||||
maintainers = with maintainers; [ ramkromberg ];
|
||||
platforms = with platforms; linux;
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
|
@ -20,20 +20,32 @@ rec {
|
||||
|
||||
# Helper for the common case where we have separate feature and
|
||||
# plugin JARs.
|
||||
buildEclipsePlugin = { name, srcFeature, srcPlugin, ... } @ attrs:
|
||||
buildEclipsePluginBase (attrs // {
|
||||
srcs = [ srcFeature srcPlugin ];
|
||||
buildEclipsePlugin =
|
||||
{ name, srcFeature, srcPlugin ? null, srcPlugins ? [], ... } @ attrs:
|
||||
assert srcPlugin == null -> srcPlugins != [];
|
||||
assert srcPlugin != null -> srcPlugins == [];
|
||||
|
||||
buildCommand = ''
|
||||
dropinDir="$out/eclipse/dropins/${name}"
|
||||
let
|
||||
|
||||
mkdir -p $dropinDir/features
|
||||
unzip ${srcFeature} -d $dropinDir/features/
|
||||
pSrcs = if (srcPlugin != null) then [ srcPlugin ] else srcPlugins;
|
||||
|
||||
mkdir -p $dropinDir/plugins
|
||||
cp -v ${srcPlugin} $dropinDir/plugins/${name}.jar
|
||||
'';
|
||||
});
|
||||
in
|
||||
|
||||
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
|
||||
# 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 {
|
||||
name = "anyedit-${version}";
|
||||
version = "2.7.1.201709201439";
|
||||
@ -127,16 +185,16 @@ rec {
|
||||
|
||||
autodetect-encoding = buildEclipsePlugin rec {
|
||||
name = "autodetect-encoding-${version}";
|
||||
version = "1.8.4.201708052053";
|
||||
version = "1.8.5.201801191359";
|
||||
|
||||
srcFeature = fetchurl {
|
||||
url = "https://cypher256.github.io/eclipse-encoding-plugin/features/eclipse.encoding.plugin.feature_${version}.jar";
|
||||
sha256 = "1gbvib5dd75pp5mr17ckj2y66gnxjvpc067im5nsl9fyljdw867c";
|
||||
url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/features/eclipse.encoding.plugin.feature_${version}.jar";
|
||||
sha256 = "1m8ypsc1dwz0y6yhjgxsdi9813d38jllv7javgwvcd30g042a3kx";
|
||||
};
|
||||
|
||||
srcPlugin = fetchurl {
|
||||
url = "https://cypher256.github.io/eclipse-encoding-plugin/plugins/mergedoc.encoding_${version}.jar";
|
||||
sha256 = "0728zsbfs1mc4qvx2p92hkxpnknckqk0xvqlmzivsnr62b5qd5im";
|
||||
url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/plugins/mergedoc.encoding_${version}.jar";
|
||||
sha256 = "1n2rzybfcwp3ss2qi0fhd8vm38vdwav8j837lqiqlfcnvzwsk86m";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -192,12 +250,12 @@ rec {
|
||||
|
||||
checkstyle = buildEclipseUpdateSite rec {
|
||||
name = "checkstyle-${version}";
|
||||
version = "8.5.1.201712211522";
|
||||
version = "8.7.0.201801131309";
|
||||
|
||||
src = fetchzip {
|
||||
stripRoot = false;
|
||||
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.5.1/net.sf.eclipsecs-updatesite_${version}.zip";
|
||||
sha256 = "0nid4a4qib9vx34ddry7sylj20p2d47dd0vn4zqqmj5dgqx1a1ab";
|
||||
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.7.0/net.sf.eclipsecs-updatesite_${version}.zip";
|
||||
sha256 = "07fymk705x4mwq7vh2i6frsf67jql4bzrkdzhb4n74zb0g1dib60";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@ -233,7 +291,7 @@ rec {
|
||||
};
|
||||
};
|
||||
|
||||
cup = buildEclipsePluginBase rec {
|
||||
cup = buildEclipsePlugin rec {
|
||||
name = "cup-${version}";
|
||||
version = "1.1.0.201604221613";
|
||||
version_ = "1.0.0.201604221613";
|
||||
@ -243,31 +301,20 @@ rec {
|
||||
sha256 = "13nnsf0cqg02z3af6xg45rhcgiffsibxbx6h1zahjv7igvqgkyna";
|
||||
};
|
||||
|
||||
srcPlugin1 = fetchurl {
|
||||
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar";
|
||||
sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j";
|
||||
};
|
||||
srcPlugins = [
|
||||
(fetchurl {
|
||||
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar";
|
||||
sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j";
|
||||
})
|
||||
|
||||
srcPlugin2 = fetchurl {
|
||||
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar";
|
||||
sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl";
|
||||
};
|
||||
|
||||
srcs = [ srcFeature srcPlugin1 srcPlugin2 ];
|
||||
(fetchurl {
|
||||
url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar";
|
||||
sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl";
|
||||
})
|
||||
];
|
||||
|
||||
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; {
|
||||
homepage = http://www2.cs.tum.edu/projects/cup/eclipse.php;
|
||||
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 {
|
||||
name = "jdt-${version}";
|
||||
version = "4.7.2";
|
||||
|
@ -135,10 +135,10 @@
|
||||
arbitools = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "arbitools";
|
||||
version = "0.93";
|
||||
version = "0.94";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/arbitools-0.93.el";
|
||||
sha256 = "0z3lqp8dqfkams5h4sw569p48d2rvpd3d8lb4xaw0z8l49y2mvg8";
|
||||
url = "https://elpa.gnu.org/packages/arbitools-0.94.el";
|
||||
sha256 = "00iq8rr1275p48ic5mibcx657li723q8r7ax4g21w6bzwsj3gksd";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
@ -564,10 +564,10 @@
|
||||
debbugs = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, soap-client }:
|
||||
elpaBuild {
|
||||
pname = "debbugs";
|
||||
version = "0.14";
|
||||
version = "0.15";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/debbugs-0.14.tar";
|
||||
sha256 = "07wgcvg038l88gxvjr0gjpjhyk743w22x1rqghz3gkmif0g70say";
|
||||
url = "https://elpa.gnu.org/packages/debbugs-0.15.tar";
|
||||
sha256 = "1x7jw2ldgkknyxg7x9fhnqkary691icnysmi3xw0g2fjrvllzhqw";
|
||||
};
|
||||
packageRequires = [ cl-lib soap-client ];
|
||||
meta = {
|
||||
@ -768,10 +768,10 @@
|
||||
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }:
|
||||
elpaBuild {
|
||||
pname = "el-search";
|
||||
version = "1.4.0.14";
|
||||
version = "1.5.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.4.0.14.tar";
|
||||
sha256 = "1qc30dia59i2bklhivfhmsghirnpgz5mvcjdc78n0r8nizb68jfp";
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.5.1.tar";
|
||||
sha256 = "0bbq59d8x4ncrmpfq54w6rwpp604f1x834b81l7wflwxv7ni5msx";
|
||||
};
|
||||
packageRequires = [ emacs stream ];
|
||||
meta = {
|
||||
@ -931,10 +931,10 @@
|
||||
gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "gited";
|
||||
version = "0.3.3";
|
||||
version = "0.3.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/gited-0.3.3.tar";
|
||||
sha256 = "0h3ps26sy4wp1s9vpsj066fpqjqacjlprz3kb09macgsg88k2c1p";
|
||||
url = "https://elpa.gnu.org/packages/gited-0.3.4.tar";
|
||||
sha256 = "0s03p0z5dqhigl01hzin2qy53nm7b4ilvfm83d0ca683i9rb7hx1";
|
||||
};
|
||||
packageRequires = [ cl-lib emacs ];
|
||||
meta = {
|
||||
@ -1386,10 +1386,10 @@
|
||||
mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "mines";
|
||||
version = "1.2";
|
||||
version = "1.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/mines-1.2.tar";
|
||||
sha256 = "1xwnw2hyk1qz98mdnckk0i05li0gzygq12kkmrlidxnk7ngbq9vw";
|
||||
url = "https://elpa.gnu.org/packages/mines-1.5.tar";
|
||||
sha256 = "1wpkn47iza78hzj396z5c05hsimnhhhmr1cq598azd6h8c1zca7g";
|
||||
};
|
||||
packageRequires = [ cl-lib emacs ];
|
||||
meta = {
|
||||
@ -2320,10 +2320,10 @@
|
||||
}) {};
|
||||
which-key = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
|
||||
pname = "which-key";
|
||||
version = "3.0.2";
|
||||
version = "3.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/which-key-3.0.2.tar";
|
||||
sha256 = "1s7bq7vq9xsf2pz1w03l743yzaxm9gk5qgympcwlkiq90ph13vcn";
|
||||
url = "https://elpa.gnu.org/packages/which-key-3.1.0.tar";
|
||||
sha256 = "17n09i92m7qdicybxl60j81c8fn7jcx25wds0sb7j8i364psjabq";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
|
@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
homepage = http://emacs-w3m.namazu.org/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.mornfall ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1544,12 +1544,12 @@
|
||||
anti-zenburn-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "anti-zenburn-theme";
|
||||
version = "2.4";
|
||||
version = "2.5.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "m00natic";
|
||||
repo = "anti-zenburn-theme";
|
||||
rev = "53591a18aee564c6d08a5be69b4060a299903255";
|
||||
sha256 = "06cn81sksvl88l1g3cfgp1kf8xzfv00b31j2rf58f45zlbl5ckv9";
|
||||
rev = "c80cc51bb1aaf11dd53b9d08e01d61bc9b32622f";
|
||||
sha256 = "1c97d2jkh7iawgsbcg19gha9ffnxypbcfz0sgcsgf9vy4bvnc350";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/6f6f803dc99a1b1fdb5b4e79f1c9cf72b702d091/recipes/anti-zenburn-theme";
|
||||
@ -1753,12 +1753,12 @@
|
||||
apiwrap = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "apiwrap";
|
||||
version = "0.3";
|
||||
version = "0.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vermiculus";
|
||||
repo = "apiwrap.el";
|
||||
rev = "5d25972192cd34553997ba193c09eab093a2b870";
|
||||
sha256 = "1pp2gzw17k58s9akraf8p4jxbar8viym2a43rkc7agzy47qsybs0";
|
||||
rev = "7935275ee45f0359d887b8563ffd1d002f0c618e";
|
||||
sha256 = "1p6sj46135dh7fgpzrfzsp5zkmx5si5lndwc7pnk30fbz5pindsw";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/0197fd3657e65e3826375d9b6f19da3058366c91/recipes/apiwrap";
|
||||
@ -2047,12 +2047,12 @@
|
||||
auto-compile = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, packed }:
|
||||
melpaBuild {
|
||||
pname = "auto-compile";
|
||||
version = "1.4.1";
|
||||
version = "1.4.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "emacscollective";
|
||||
repo = "auto-compile";
|
||||
rev = "a31819a1b75a2320edb0f7f25d6c6faf528bf41a";
|
||||
sha256 = "17hzl03livgj49zb0knlfn6r020nvj41pjjz3acy82zwrjydsvxa";
|
||||
rev = "8d117868a0a091389d528428136e60f951e9c550";
|
||||
sha256 = "1qkw8qzhqzk16kvk1200ha10gi6ny0saqvyqm6b1ww0iw3q1ic5c";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/auto-compile";
|
||||
@ -3061,12 +3061,12 @@
|
||||
bog = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "bog";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyleam";
|
||||
repo = "bog";
|
||||
rev = "cf7817de3f37ce2404ee637a655f1a511b829585";
|
||||
sha256 = "0h166w8bg864ppwg64m0vhg649mmkclld85zcd0lmbqa9wfml5j5";
|
||||
rev = "6ed4d3edbe771e586d873b826330f3ef23aa1611";
|
||||
sha256 = "0s4jwlaq3mqyzkyg3x4nh4nx7vw825jhz7ggakay7a2cfvpa4i2j";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/19fd0bf2f8e52c79120c492a6dcabdd51b465d35/recipes/bog";
|
||||
@ -3142,6 +3142,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "boxquote";
|
||||
@ -3754,12 +3775,12 @@
|
||||
caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "caml";
|
||||
version = "4.6.0";
|
||||
version = "4.6.1pre1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ocaml";
|
||||
repo = "ocaml";
|
||||
rev = "0d68080b95016f747b7cb63dd36ccdd42d40016e";
|
||||
sha256 = "1dxg82xqjx4yh4sg2dy48ybn4czv9yq0q3zpr29sxp1grvwvrg2b";
|
||||
rev = "b50ba2e822ff3a780f9b5a323d48e40881a88fc7";
|
||||
sha256 = "10im6z3nrkn0yh8004jwk68gjl0lz7qq3dpj24q50nhhqabw9ah5";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
|
||||
@ -4751,12 +4772,12 @@
|
||||
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "cmake-mode";
|
||||
version = "3.10.1";
|
||||
version = "3.10.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kitware";
|
||||
repo = "CMake";
|
||||
rev = "166bf4c490b8f46eca057fc23c3f3c2e042e9cb3";
|
||||
sha256 = "1qgny1px7afgxi7hj12fg0zk55sy9mbk0w5sigamyzxp336nfxmz";
|
||||
rev = "c1e087a9d3af74299d7681c9f9de59e5977a1539";
|
||||
sha256 = "08qw6kq3l7dv37s5mppqxb6ys22h733k0qh2llzk2430wv5y9crk";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
|
||||
@ -6038,12 +6059,12 @@
|
||||
counsel-etags = callPackage ({ counsel, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "counsel-etags";
|
||||
version = "1.3.7";
|
||||
version = "1.3.8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "redguardtoo";
|
||||
repo = "counsel-etags";
|
||||
rev = "921fa5a062bda9a0f9226fdaa76530ad809ff7b9";
|
||||
sha256 = "1qvp3ihchfwy57sfnnkk6m591s381w57ppig9c0izlbzw3n7hi7n";
|
||||
rev = "e05fdb306eee197d63976d24bf0e16db241c6c06";
|
||||
sha256 = "1m6m2ygafy38483rd8qfq4zwmw1x7m5zpnvqdmsckiqik3s2z98n";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "csound-mode";
|
||||
version = "0.1.2";
|
||||
version = "0.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hlolli";
|
||||
repo = "csound-mode";
|
||||
rev = "877c7c9d5bdc6a2acf4ac1a10e9e24ba1bd3cc76";
|
||||
sha256 = "1vsngs42n8xp72701ppvmwyy6b90vnj39fq12yvp7x9zqf29lmq1";
|
||||
rev = "5a892e6ad72e7844e8e14c0da04fcb6bc125fe5e";
|
||||
sha256 = "1gzg2r7agllz2asp7dbxykydpnw3861whs2pfhr3fwwb39xf1pva";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c940d29de11e43b4abf2901c466c94d426a21818/recipes/csound-mode";
|
||||
@ -6476,6 +6497,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "cuda-mode";
|
||||
@ -6626,12 +6668,12 @@
|
||||
dante = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, flycheck, haskell-mode, lib, melpaBuild, s }:
|
||||
melpaBuild {
|
||||
pname = "dante";
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jyp";
|
||||
repo = "dante";
|
||||
rev = "6b260611dc08468fca9b9af132a00783dd2cf8d9";
|
||||
sha256 = "0s5wi010sn3ng9fr7fqbc11kmjqirr28wya3rnnzzb3m5gyxs8id";
|
||||
rev = "1a25bf26ee8d9878ce858cfaff84b083339056d6";
|
||||
sha256 = "0kvsx9n8qm9s2w9bz167jzcb1b3d4fgc807w1miwil9dcyar6rkk";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/5afa8226077cbda4b76f52734cf8e0b745ab88e8/recipes/dante";
|
||||
@ -6815,12 +6857,12 @@
|
||||
datetime = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "datetime";
|
||||
version = "0.3";
|
||||
version = "0.3.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "doublep";
|
||||
repo = "datetime";
|
||||
rev = "082d2c7b0e38c26a8c46af9c9956a2e100d88e71";
|
||||
sha256 = "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5";
|
||||
rev = "d99e56785d750d6c7e416955f047fe057fae54a6";
|
||||
sha256 = "0s2pmj2wpprmdx1mppbch8i1srwhfl2pzyhsmczan75wmiblpqfj";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/fff9f0748b0ef76130b24e85ed109325256f956e/recipes/datetime";
|
||||
@ -6962,12 +7004,12 @@
|
||||
deft = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "deft";
|
||||
version = "0.7";
|
||||
version = "0.8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jrblevin";
|
||||
repo = "deft";
|
||||
rev = "4001a55cf5f79cdbfa00f1405e8a4645af4acd40";
|
||||
sha256 = "157c6ck6gb59i7dikbdnaq7cwlh3nnk0vqgil4v1294s2xbpp46n";
|
||||
rev = "c4b30d780bfa732ff52d85f0311e4a045f44a7b4";
|
||||
sha256 = "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e2a0e4698d4e71ec28656594f6a83504a823490/recipes/deft";
|
||||
@ -7235,12 +7277,12 @@
|
||||
dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "dimmer";
|
||||
version = "0.2.1";
|
||||
version = "0.2.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gonewest818";
|
||||
repo = "dimmer.el";
|
||||
rev = "b0faaa6919e633229ced07ff8bd8b5c68b90243a";
|
||||
sha256 = "04k7m5kg2a32ldgxfc2jkdwbmxzyc3yv66871ywv9152db2g7iml";
|
||||
rev = "031be18db14c5c45758d64584b0f94d77e8f32da";
|
||||
sha256 = "0csj6194cjds4lzyk850jfndg38447w0dk6xza4vafwx2nd9lfvf";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer";
|
||||
@ -8690,12 +8732,12 @@
|
||||
edit-server = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "edit-server";
|
||||
version = "1.13";
|
||||
version = "1.15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "stsquad";
|
||||
repo = "emacs_chrome";
|
||||
rev = "f0db18f0d6e9885e4aef3ace8342fd6f635fadf6";
|
||||
sha256 = "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn";
|
||||
rev = "4e959de2f78268b348d2eaac4e43c846792d345f";
|
||||
sha256 = "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/d98d69008b5ca8b92fa7a6045b9d1af86f269386/recipes/edit-server";
|
||||
@ -9115,6 +9157,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "eldoc-eval";
|
||||
@ -9181,12 +9244,12 @@
|
||||
elfeed = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "elfeed";
|
||||
version = "2.2.0";
|
||||
version = "2.3.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "skeeto";
|
||||
repo = "elfeed";
|
||||
rev = "79077efc34aad25bb43cf46a28a69a308196c972";
|
||||
sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl";
|
||||
rev = "00b25d974abc4f3e61676068397758035bfdfc30";
|
||||
sha256 = "0qivqhz2mhjyqrqkfjrv8q6387cbzwvmyay2jbws5vibwbxjciwz";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "elfeed-web";
|
||||
version = "2.2.0";
|
||||
version = "2.3.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "skeeto";
|
||||
repo = "elfeed";
|
||||
rev = "79077efc34aad25bb43cf46a28a69a308196c972";
|
||||
sha256 = "1xsy7qr9k9ad5ig9vvf9bbxc5ik5xi1kpmq87q9iq3g321idcwnl";
|
||||
rev = "00b25d974abc4f3e61676068397758035bfdfc30";
|
||||
sha256 = "0qivqhz2mhjyqrqkfjrv8q6387cbzwvmyay2jbws5vibwbxjciwz";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/62459d16ee44d5fcf170c0ebc981ca2c7d4672f2/recipes/elfeed-web";
|
||||
@ -9433,12 +9496,12 @@
|
||||
elpa-mirror = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "elpa-mirror";
|
||||
version = "2.1.0";
|
||||
version = "2.1.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "redguardtoo";
|
||||
repo = "elpa-mirror";
|
||||
rev = "9cf096448b69c795b20aab89557e9add6029b13c";
|
||||
sha256 = "05la1v1p7wyrjflh8lv3pwr7ywm2rvvzhh8phr24w31jfs2kp4gf";
|
||||
rev = "83a38b5721c459d311833522903de96f874e1a4e";
|
||||
sha256 = "0j2nk1nhbihfqajkmzp3501mhv5617qhb7qbj46qz8azs8a1dvri";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/d64ce7042c45f29fb394be25ce415912182bac8b/recipes/elpa-mirror";
|
||||
@ -9545,12 +9608,12 @@
|
||||
elx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "elx";
|
||||
version = "1.1.1";
|
||||
version = "1.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "emacscollective";
|
||||
repo = "elx";
|
||||
rev = "9f5d593b65686e8da29ef79457c8f6fc061af7e5";
|
||||
sha256 = "1vs7nmsi82gv9mw1mia6ri1vmn26ldwnj8akirqgq31rfgyfj4vh";
|
||||
rev = "127fd4fca8ac6470cfda62f47bb1c29859862cfc";
|
||||
sha256 = "0j7j7wh89a34scilw11pbdb86nf515ig38pjkwyarfvj93gigc04";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/elx";
|
||||
@ -12435,12 +12498,12 @@
|
||||
fish-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "fish-mode";
|
||||
version = "0.1.2";
|
||||
version = "0.1.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "wwwjfy";
|
||||
repo = "emacs-fish";
|
||||
rev = "22aabbccd564883684f6d224b8e0a512f334be41";
|
||||
sha256 = "17djaz79spms9il71m4xdfjhm58dzswb6fpncngkgx8kxvcy9y24";
|
||||
rev = "cd0387f7f1d5c50e080091f86ca97d8a67d603a6";
|
||||
sha256 = "0q4cq1rkiz5mjxhp7p5awmw59q1yjb2sryc9i54cwhr5dwwqf95k";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/efac97c0f54a3300251020c4626056526c18b441/recipes/fish-mode";
|
||||
@ -13048,6 +13111,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "flycheck-nimsuggest";
|
||||
@ -14760,12 +14844,12 @@
|
||||
ghub-plus = callPackage ({ apiwrap, emacs, fetchFromGitHub, fetchurl, ghub, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ghub-plus";
|
||||
version = "0.2";
|
||||
version = "0.2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vermiculus";
|
||||
repo = "ghub-plus";
|
||||
rev = "e04050f81106029c342deb7adbfc67b2a888ec58";
|
||||
sha256 = "0ydd6aiy8x878jlzp88gi30yslhkcin0rbdjirj2vjs88cfvcjq6";
|
||||
rev = "8cfdaf42446a68e6aa4eb0655d43563407cb5636";
|
||||
sha256 = "0acfqf1219bnzyf64sv68fvpi4a13nc0wv8dz5a8h6r1j0ysx6qj";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "helm-org-rifle";
|
||||
version = "1.4.2";
|
||||
version = "1.5.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alphapapa";
|
||||
repo = "helm-org-rifle";
|
||||
rev = "26749ff9f34b2abddf7c47ff71b1046942e38398";
|
||||
sha256 = "1q969rlqj706wdzd3s54pqpfpqkg18bzl5srl7xkw43cfzxpcpj2";
|
||||
rev = "68f01726795ca3054cfc6327dcdb22c9c83dfdfa";
|
||||
sha256 = "0vak9phqgxz5dk1zj3i4cs94y797h77qadirsf33gl073cg95l8a";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "helpful";
|
||||
version = "0.5";
|
||||
version = "0.6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Wilfred";
|
||||
repo = "helpful";
|
||||
rev = "9fdbf5b24df28b046731db1c7a1cc90338d55dce";
|
||||
sha256 = "13kw0i4vhd8fgwgchap5qxckvhs00ifr7z68whnd3xzklx3v47bj";
|
||||
rev = "e1b660e2a48b39b0a81119c2593362dd60076757";
|
||||
sha256 = "031hglxwlq8fryi8vs11hyflcrk09qc9qja28nqby0adn20z47mc";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/889d34b654de13bd413d46071a5ff191cbf3d157/recipes/helpful";
|
||||
@ -19409,12 +19493,12 @@
|
||||
ialign = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ialign";
|
||||
version = "0.2.0";
|
||||
version = "0.4.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mkcms";
|
||||
repo = "interactive-align";
|
||||
rev = "df591e452f9a56c69fb69de961baa75751bae3d8";
|
||||
sha256 = "1k3c0wxbn6yrd75275ny66avp70qpd3glnmagsgq3x8mbyxh233d";
|
||||
rev = "1d00ab870d06b946d94e5e6d340b85a3e51fbfb1";
|
||||
sha256 = "191w5di4f0in49h60xmc5d6xaisbkv8y9f9bxzc3162c4b982qfr";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/072f1f7ce17e2972863bce10af9c52b3c6502eab/recipes/ialign";
|
||||
@ -19889,6 +19973,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "imapfilter";
|
||||
@ -20141,6 +20246,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "inf-ruby";
|
||||
@ -21569,12 +21695,12 @@
|
||||
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "kaolin-themes";
|
||||
version = "1.1.1";
|
||||
version = "1.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ogdenwebb";
|
||||
repo = "emacs-kaolin-themes";
|
||||
rev = "d4a1cbae1fc77192e5844291821709c82c9dc455";
|
||||
sha256 = "04k2yz3vrj1h0zf6cz0jd97fg8zah2j980l5ycsgyy0dk9ysink8";
|
||||
rev = "88a25b89a480f1193cc1c5502f3a5d0b68cb7227";
|
||||
sha256 = "03bbpaih29yx8s16v59mca8v6sak6294zq7d534613la28n4h6w7";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "magit-popup";
|
||||
version = "2.12.0";
|
||||
version = "2.12.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "magit-popup";
|
||||
rev = "05a836caf02eba91fa26bdf5dd6fd183fe23937d";
|
||||
sha256 = "08p57alfbkcsqkhnfjhfckqhans278ffjyhhhvgy8s7asa6as9kl";
|
||||
rev = "ab75385a1fb8c0fba0769d448b13ba8324835261";
|
||||
sha256 = "0ky4l3k3camh1paa5ap9frr9hcadj7nj40l3imiiqfcvgyl8ijp6";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/0263ca6aea7bf6eae26a637454affbda6bd106df/recipes/magit-popup";
|
||||
@ -23136,12 +23262,12 @@
|
||||
magit-rockstar = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "magit-rockstar";
|
||||
version = "1.0.6";
|
||||
version = "1.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tarsius";
|
||||
repo = "magit-rockstar";
|
||||
rev = "a65042e3445008b55190f1258ae54bd78e12174b";
|
||||
sha256 = "1wbbg9jr9kl69sbq9b9dgwvnplmdzjyanwfcncamw3lfcjfnw1bn";
|
||||
rev = "c8320472e8a50c8299140ba0943bb1fe485d294a";
|
||||
sha256 = "1xjym51z0v7ibxw059f6k3zljli6z390rmxvrywbfzkb8hqms0l1";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "no-littering";
|
||||
version = "0.5.11";
|
||||
version = "0.5.12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "emacscollective";
|
||||
repo = "no-littering";
|
||||
rev = "a4b42b185b65e78bc3bb6523e23aefb1213eb3b2";
|
||||
sha256 = "1yzcawvz3vbq6pgr0b3sk0qg24jx1fpkinwcmsdl283ib8msbc7g";
|
||||
rev = "8e321f1036770c20637a0f946b655805cd070e25";
|
||||
sha256 = "11hxf0fkka4mv1qsw0nx3ymvgcav95r2bvk1gwyj5m5cbwb4a1n9";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/57a2fb9524df3fdfdc54c403112e12bd70888b23/recipes/no-littering";
|
||||
@ -25490,11 +25616,11 @@
|
||||
}) {};
|
||||
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
|
||||
pname = "notmuch";
|
||||
version = "0.26pre2";
|
||||
version = "0.26";
|
||||
src = fetchgit {
|
||||
url = "git://git.notmuchmail.org/git/notmuch";
|
||||
rev = "4cb1eeba83416a12c616aca6469c027b8b8a303d";
|
||||
sha256 = "0brcdwblfj3nb2ca0izvhlm3x1pf0r72wsa9f2hf0ssnh9w2z40s";
|
||||
rev = "3c4e64d976eb561ac5157df1bbe5882e3e65b583";
|
||||
sha256 = "00a9ggrc63n88g7vp57c09r859pl2dbxnqgf543ks94lm0jzyz3f";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
|
||||
@ -25531,12 +25657,12 @@
|
||||
nov = callPackage ({ dash, emacs, esxml, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "nov";
|
||||
version = "0.2.1";
|
||||
version = "0.2.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "wasamasa";
|
||||
repo = "nov.el";
|
||||
rev = "19ab463864f137b43704b4f34173349c88e84d8e";
|
||||
sha256 = "00f5hhw157nwdwy26yn6l3z2hgk6xxvx5xl0hasskj1l9rg0zgh2";
|
||||
rev = "4ef20ebb587ffb0ab73c85ad5748d41af1071596";
|
||||
sha256 = "03s0qjvwk1f7y3i4wh2p5y3z4hdv00adgz8za3vphzc0q8i1kjzb";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "omnisharp";
|
||||
version = "4.1";
|
||||
version = "4.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "OmniSharp";
|
||||
repo = "omnisharp-emacs";
|
||||
rev = "95f56022edf9fcaba8402db05a6927af050b12a8";
|
||||
sha256 = "133maq29hfjaq4vilz9wvr9vjkschkpydkw2197sscv7whfzv78j";
|
||||
rev = "588b8482685adedbc56933cb13c58d9cc6a82456";
|
||||
sha256 = "1iqwxc19jvcb2gsm2aq59zblg1qjmbxgb2yl3h3aybqp968j3i00";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp";
|
||||
@ -27397,6 +27523,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "org2blog";
|
||||
@ -28310,12 +28457,12 @@
|
||||
parsebib = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "parsebib";
|
||||
version = "2.3.1";
|
||||
version = "2.3.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "joostkremers";
|
||||
repo = "parsebib";
|
||||
rev = "bc31b627c666df576aa37e21c27a2223b3cb91a3";
|
||||
sha256 = "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh";
|
||||
rev = "c8d59deb20552f9a1885297b5ae0b8f753d191a5";
|
||||
sha256 = "1b1iiiy184czp014gg1bb3jks9frmkw8hs5z2l2lnzjmfjr6jm6g";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c39633957475dcd6a033760ba20a957716cce59c/recipes/parsebib";
|
||||
@ -29040,6 +29187,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "phpcbf";
|
||||
@ -29292,6 +29460,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "play-routes-mode";
|
||||
@ -31491,12 +31680,12 @@
|
||||
req-package = callPackage ({ dash, fetchFromGitHub, fetchurl, ht, lib, log4e, melpaBuild, use-package }:
|
||||
melpaBuild {
|
||||
pname = "req-package";
|
||||
version = "1.0";
|
||||
version = "1.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "edvorg";
|
||||
repo = "req-package";
|
||||
rev = "30f76a9c52994562191c90c315002410706f6c0b";
|
||||
sha256 = "0qdr2pshfq6v75s9hx9wgvn56pd7b65vaqaa64dryr7v4yzd4r15";
|
||||
rev = "0c0ac7451149dac6bfda2adfe959d1df1c273de6";
|
||||
sha256 = "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "rg";
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dajva";
|
||||
repo = "rg.el";
|
||||
rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14";
|
||||
sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g";
|
||||
rev = "68984092d0e0725057e7b67ba32016903170f189";
|
||||
sha256 = "0qd3qh640339n1dn1isk23xhnkj0pds08yzfak4ijxyzlgl63bdq";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "treemacs";
|
||||
version = "1.15.3";
|
||||
version = "1.16.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alexander-Miller";
|
||||
repo = "treemacs";
|
||||
rev = "2dabf88d5948a04d0313b0195be397761fc22b58";
|
||||
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk";
|
||||
rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
|
||||
sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs";
|
||||
@ -36190,12 +36379,12 @@
|
||||
treemacs-evil = callPackage ({ evil, fetchFromGitHub, fetchurl, lib, melpaBuild, treemacs }:
|
||||
melpaBuild {
|
||||
pname = "treemacs-evil";
|
||||
version = "1.15.3";
|
||||
version = "1.16.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alexander-Miller";
|
||||
repo = "treemacs";
|
||||
rev = "2dabf88d5948a04d0313b0195be397761fc22b58";
|
||||
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk";
|
||||
rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
|
||||
sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-evil";
|
||||
@ -36211,12 +36400,12 @@
|
||||
treemacs-projectile = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, projectile, treemacs }:
|
||||
melpaBuild {
|
||||
pname = "treemacs-projectile";
|
||||
version = "1.15.3";
|
||||
version = "1.16.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alexander-Miller";
|
||||
repo = "treemacs";
|
||||
rev = "2dabf88d5948a04d0313b0195be397761fc22b58";
|
||||
sha256 = "0j1ampw5i3m0q69cp2nf9xr9qqxiyasjk7wmsg9nwnx7sibhfddk";
|
||||
rev = "ef7597d5e99d50efd014bfa9f01046956d0da95f";
|
||||
sha256 = "15379w0frxwl9p1xraqapn9r2wra75g8mjybj41jd1y65acjg9wg";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a680ee3b4a0ab286ac04d84b3fba7606b40c65b/recipes/treemacs-projectile";
|
||||
@ -37792,12 +37981,12 @@
|
||||
which-key = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "which-key";
|
||||
version = "3.0.2";
|
||||
version = "3.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "justbur";
|
||||
repo = "emacs-which-key";
|
||||
rev = "6d2e17c949ff7bfebfe0b0878a93d94b31585031";
|
||||
sha256 = "03szbjp6j6rjj43k3vs2jay4y7bnhhh1ymgqv8vvdnqsf88pdg88";
|
||||
rev = "7559a79e95aada65601f7413a1c3f08bfa34557b";
|
||||
sha256 = "1l9m04hypk8j5qkg7rlhsknj9hx5l3zjy97s3kv7wbcwvcx3yxhz";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/315865a3df97c0694f648633d44b8b34df1ac76d/recipes/which-key";
|
||||
@ -38089,8 +38278,8 @@
|
||||
version = "0.9.8";
|
||||
src = fetchhg {
|
||||
url = "https://bitbucket.com/ArneBab/wisp";
|
||||
rev = "52fa9101d8c4";
|
||||
sha256 = "1ijzd3xmygkkkwm0ckkmi576y93drcs63l6bsc8qz2pvjcn5k8sw";
|
||||
rev = "d04938232934";
|
||||
sha256 = "1sjadb0kh3hrdsvwywi04agrzrs21sxzh1v1km0z3x6f15nr048c";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";
|
||||
@ -38127,12 +38316,12 @@
|
||||
with-editor = callPackage ({ async, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "with-editor";
|
||||
version = "2.7.0";
|
||||
version = "2.7.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "with-editor";
|
||||
rev = "99d3278b1c79718de16dd4f57dcc8c4aa31a4051";
|
||||
sha256 = "1mcfinr1wv87hqn2787dcyn7lkgfni4xfgsji50pwj3zfgg0yqyr";
|
||||
rev = "04d59d68dab58a7cf3034c84d8ba0553b78ae30c";
|
||||
sha256 = "080f39m9nmi163arpmxw45xwadb7q7w7p385yi1jy62bzvqnk0pm";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/8c52c840dc35f3fd17ec660e113ddbb53aa99076/recipes/with-editor";
|
||||
@ -38754,6 +38943,27 @@
|
||||
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 }:
|
||||
melpaBuild {
|
||||
pname = "yard-mode";
|
||||
@ -38864,8 +39074,8 @@
|
||||
version = "1.80";
|
||||
src = fetchhg {
|
||||
url = "https://www.yatex.org/hgrepos/yatex/";
|
||||
rev = "668632d9392e";
|
||||
sha256 = "1d37yr7yqqg1gavi3406rv9rfvcm5ic365jhs6pispfx1kr77k6n";
|
||||
rev = "5bb46b7ab3de";
|
||||
sha256 = "1ap043fq9yl2n4slrjkjld9b743ac7ygj52z9af709v6sa660ahg";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";
|
||||
|
@ -164,9 +164,6 @@ self:
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
# upstream issue: missing file header
|
||||
rcirc-menu = markBroken super.rcirc-menu;
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ callPackage }: {
|
||||
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "org";
|
||||
version = "20180108";
|
||||
version = "20180122";
|
||||
src = fetchurl {
|
||||
url = "https://orgmode.org/elpa/org-20180108.tar";
|
||||
sha256 = "02rs7zi3dzps0mlyfbgiywd2smnlw0pk8ps1nqk0d5hx3n6d15yv";
|
||||
url = "https://orgmode.org/elpa/org-20180122.tar";
|
||||
sha256 = "0a3a5v5x43xknqc6m5rcgdsqlw047w1djq372akfn5wafsk8a916";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -14,10 +14,10 @@
|
||||
}) {};
|
||||
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "org-plus-contrib";
|
||||
version = "20180108";
|
||||
version = "20180122";
|
||||
src = fetchurl {
|
||||
url = "https://orgmode.org/elpa/org-plus-contrib-20180108.tar";
|
||||
sha256 = "10mhiqsrxxmhsy8dl88r456shx6ajm4w19pz259b960551r596iz";
|
||||
url = "https://orgmode.org/elpa/org-plus-contrib-20180122.tar";
|
||||
sha256 = "1ss6h03xkvgk2qm1dx4dxxxalbswjc1jl9v87q99nls8iavmqa8x";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
|
@ -234,12 +234,12 @@ in
|
||||
|
||||
clion = buildClion rec {
|
||||
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";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
|
||||
sha256 = "19pb78s5pa5ywifi1azs8gpg0a65c9n3yiqng348a7s27azkw01z"; /* updated by script */
|
||||
sha256 = "0lv0nwfgm6h67mxhh0a2154ym7wcbm1qp3k1k1i00lg0lwig1rcw"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-clion";
|
||||
update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
|
||||
@ -260,12 +260,12 @@ in
|
||||
|
||||
goland = buildGoland rec {
|
||||
name = "goland-${version}";
|
||||
version = "2017.3"; /* updated by script */
|
||||
version = "2017.3.1"; /* updated by script */
|
||||
description = "Up and Coming Go IDE";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/go/${name}.tar.gz";
|
||||
sha256 = "0l4l0lsmq1g4fwfrxhbrnfsp8nk38ml48cryvdr241zsxz43fax0"; /* updated by script */
|
||||
sha256 = "0cfjfv01ra67sr8n8ijqwd9zm2yzb1nm447kf0mr5cynr124ch0z"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-goland";
|
||||
update-channel = "goland_release";
|
||||
@ -273,12 +273,12 @@ in
|
||||
|
||||
idea-community = buildIdea rec {
|
||||
name = "idea-community-${version}";
|
||||
version = "2017.3.2";
|
||||
version = "2017.3.3"; /* updated by script */
|
||||
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
|
||||
sha256 = "70cc4f36a6517c7af980456758214414ea74c5c4f314ecf30dd2640600badd62"; /* updated by script */
|
||||
sha256 = "1wxaz25609wri2d91s9wy00gngplyjg7gzix3mzdhgysm00qizf1"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-idea-ce";
|
||||
update-channel = "IDEA_Release";
|
||||
@ -286,12 +286,12 @@ in
|
||||
|
||||
idea-ultimate = buildIdea rec {
|
||||
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";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
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";
|
||||
update-channel = "IDEA_Release";
|
||||
@ -299,12 +299,12 @@ in
|
||||
|
||||
phpstorm = buildPhpStorm rec {
|
||||
name = "phpstorm-${version}";
|
||||
version = "2017.3.2";
|
||||
version = "2017.3.3"; /* updated by script */
|
||||
description = "Professional IDE for Web and PHP developers";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||
sha256 = "1grkqvj4j33d8hmy11ipkcci20sw7jpnc5zl28a9g85f2pzvsvs0";
|
||||
sha256 = "0mk4d2c41qvfz7sqxqw7adak86pm95wvhzxrfg32y01r5i5q0av7"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-phpstorm";
|
||||
update-channel = "PS2017.3";
|
||||
@ -312,12 +312,12 @@ in
|
||||
|
||||
pycharm-community = buildPycharm rec {
|
||||
name = "pycharm-community-${version}";
|
||||
version = "2017.3.2"; /* updated by script */
|
||||
version = "2017.3.3"; /* updated by script */
|
||||
description = "PyCharm Community Edition";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "1xp4hva2wj2r3haqwmji4vpg6xm9fsx2xihslwmq89vfrbzybyq6"; /* updated by script */
|
||||
sha256 = "1j9pp8lfy62d9l3953d5mpij60s6sqyv3bcjimgy85hsrw570x3r"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm-ce";
|
||||
update-channel = "PyCharm_Release";
|
||||
@ -325,12 +325,12 @@ in
|
||||
|
||||
pycharm-professional = buildPycharm rec {
|
||||
name = "pycharm-professional-${version}";
|
||||
version = "2017.3.2"; /* updated by script */
|
||||
version = "2017.3.3"; /* updated by script */
|
||||
description = "PyCharm Professional Edition";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "0bqavq9f9pg82yh04bpzpb3a36980v2bn70j1ch6gsm3hdd75swv"; /* updated by script */
|
||||
sha256 = "180cwva49air4j7g409algrm4svvmcbapspf9als3djhazqmczgr"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm";
|
||||
update-channel = "PyCharm_Release";
|
||||
@ -351,12 +351,12 @@ in
|
||||
|
||||
ruby-mine = buildRubyMine rec {
|
||||
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";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
|
||||
sha256 = "01y89blg30y41j2h254mhf7b7d7nd3bgscinn03vpkjfg7hzr689"; /* updated by script */
|
||||
sha256 = "1dc14k7i0nfhkzi0j53hysqzxcls29j487jr9kv1aqp81k544bdy"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-rubymine";
|
||||
update-channel = "rm2017.3";
|
||||
@ -364,12 +364,12 @@ in
|
||||
|
||||
webstorm = buildWebStorm rec {
|
||||
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";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
|
||||
sha256 = "1if99qjpnf9x7d3f1anpiglg9lwc3phamfd4wbyi9yjnk3rf5qcr"; /* updated by script */
|
||||
sha256 = "1fhs13944928rqcqbv8d29qm1y0zzry4drr9gqqmj814y2vkbpnl"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-webstorm";
|
||||
update-channel = "WS_Release";
|
||||
|
@ -1,16 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, gettext, libmsgpack, libtermkey
|
||||
, libtool, libuv, luaPackages, ncurses, perl, pkgconfig
|
||||
, unibilium, makeWrapper, vimUtils, xsel, gperf, callPackage
|
||||
|
||||
, withPython ? true, pythonPackages, extraPythonPackages ? []
|
||||
, withPython3 ? true, python3Packages, extraPython3Packages ? []
|
||||
, unibilium, vimUtils, xsel, gperf, callPackage
|
||||
, withJemalloc ? true, jemalloc
|
||||
, withRuby ? true, bundlerEnv, ruby
|
||||
|
||||
, withPyGUI ? false
|
||||
, vimAlias ? false
|
||||
, viAlias ? false
|
||||
, configure ? null
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
@ -41,59 +32,20 @@ let
|
||||
description = "VT220/xterm/ECMA-48 terminal emulator library";
|
||||
homepage = http://www.leonerd.org.uk/code/libvterm/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ nckx garbas ];
|
||||
maintainers = with maintainers; [ garbas ];
|
||||
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 {
|
||||
name = "neovim-${version}";
|
||||
version = "0.2.1";
|
||||
name = "neovim-unwrapped-${version}";
|
||||
version = "0.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "neovim";
|
||||
rev = "v${version}";
|
||||
sha256 = "19ppj0i59kk70j09gap6azm0jm4y95fr5fx7n9gx377y3xjs8h03";
|
||||
sha256 = "1dxr29d0hyag7snbww5s40as90412qb61rgj7gd9rps1iccl9gv4";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -113,7 +65,6 @@ let
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
makeWrapper
|
||||
pkgconfig
|
||||
];
|
||||
|
||||
@ -140,17 +91,6 @@ let
|
||||
install_name_tool -change libjemalloc.1.dylib \
|
||||
${jemalloc}/lib/libjemalloc.1.dylib \
|
||||
$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 = {
|
||||
@ -175,24 +115,5 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
in if (vimAlias == false && viAlias == false && configure == null)
|
||||
then 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}"
|
||||
'';
|
||||
}
|
||||
in
|
||||
neovim
|
||||
|
@ -1,9 +1,9 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
msgpack (1.1.0)
|
||||
multi_json (1.12.2)
|
||||
neovim (0.6.1)
|
||||
msgpack (1.2.2)
|
||||
multi_json (1.13.1)
|
||||
neovim (0.6.2)
|
||||
msgpack (~> 1.0)
|
||||
multi_json (~> 1.0)
|
||||
|
||||
|
@ -2,26 +2,26 @@
|
||||
msgpack = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ck7w17d6b4jbb8inh1q57bghi9cjkiaxql1d3glmj1yavbpmlh7";
|
||||
sha256 = "1ai0sfdv9jnr333fsvkn7a8vqvn0iwiw83yj603a3i68ds1x6di1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
version = "1.2.2";
|
||||
};
|
||||
multi_json = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
|
||||
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.12.2";
|
||||
version = "1.13.1";
|
||||
};
|
||||
neovim = {
|
||||
dependencies = ["msgpack" "multi_json"];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1dnv2pdl8lwwy4av8bqc6kdlgxw88dmajm4fkdk6hc7qdx1sw234";
|
||||
sha256 = "15r3j9bwlpm1ry7cp6059xb0irvsvvlmw53i28z6sf2khwfj5j53";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
};
|
||||
}
|
111
pkgs/applications/editors/neovim/wrapper.nix
Normal file
111
pkgs/applications/editors/neovim/wrapper.nix
Normal 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
|
@ -1,10 +1,10 @@
|
||||
{ stdenv, fetchurl, fetchpatch, makeDesktopItem, cmake, boost, zlib, openssl
|
||||
, R, qtbase, qtwebkit, qtwebchannel, libuuid, hunspellDicts, unzip, ant, jdk
|
||||
, gnumake, makeWrapper, pandoc
|
||||
{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost
|
||||
, zlib, openssl, R, qtbase, qtwebkit, qtwebchannel, libuuid, hunspellDicts
|
||||
, unzip, ant, jdk, gnumake, makeWrapper, pandoc
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.1.383";
|
||||
version = "1.1.414";
|
||||
ginVer = "1.5";
|
||||
gwtVer = "2.7.0";
|
||||
in
|
||||
@ -15,19 +15,15 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ boost zlib openssl R qtbase qtwebkit qtwebchannel libuuid ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/rstudio/rstudio/archive/v${version}.tar.gz";
|
||||
sha256 = "06680l9amq03b4jarmzfr605bijhb79fip9rk464zab6hgwqbp3f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rstudio";
|
||||
repo = "rstudio";
|
||||
rev = "v${version}";
|
||||
sha256 = "1rr2zkv53r8swhq5d745jpp0ivxpsizzh7srf34isqpkn5pgx3v8";
|
||||
};
|
||||
|
||||
# Hack RStudio to only use the input R.
|
||||
patches = [
|
||||
./r-location.patch
|
||||
(fetchpatch {
|
||||
url = https://aur.archlinux.org/cgit/aur.git/plain/socketproxy-openssl.patch?h=rstudio-desktop-git;
|
||||
sha256 = "0ywq9rk14s5961l6hvd3cw70jsm73r16h0bsh4yp52vams7cwy9d";
|
||||
})
|
||||
];
|
||||
patches = [ ./r-location.patch ];
|
||||
postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
|
||||
|
||||
inherit ginVer;
|
||||
@ -49,14 +45,18 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
|
||||
};
|
||||
|
||||
rmarkdownSrc = fetchurl {
|
||||
url = "https://github.com/rstudio/rmarkdown/archive/95b8b1fa64f78ca99f225a67fff9817103be56.zip";
|
||||
sha256 = "12fa65qr04rwsprkmyl651mkaqcbn1znwsmcjg4qsk9n5nxg0fah";
|
||||
rmarkdownSrc = fetchFromGitHub {
|
||||
owner = "rstudio";
|
||||
repo = "rmarkdown";
|
||||
rev = "v1.8";
|
||||
sha256 = "1blqxdr1vp2z5wd52nmf8hq36sdd4s2pyms441dqj50v35f8girb";
|
||||
};
|
||||
|
||||
rsconnectSrc = fetchurl {
|
||||
url = "https://github.com/rstudio/rsconnect/archive/425f3767b3142bc6b81c9eb62c4722f1eedc9781.zip";
|
||||
sha256 = "1sgf9dj9wfk4c6n5p1jc45386pf0nj2alg2j9qx09av3can1dy9p";
|
||||
rsconnectSrc = fetchFromGitHub {
|
||||
owner = "rstudio";
|
||||
repo = "rsconnect";
|
||||
rev = "953c945779dd180c1bfe68f41c173c13ec3e222d";
|
||||
sha256 = "1yxwd9v4mvddh7m5rbljicmssw7glh1lhin7a9f01vxxa92vpj7z";
|
||||
};
|
||||
|
||||
rstudiolibclang = fetchurl {
|
||||
@ -88,8 +88,10 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
|
||||
unzip $mathJaxSrc -d dependencies/common/mathjax-26
|
||||
unzip $rmarkdownSrc -d dependencies/common/rmarkdown
|
||||
unzip $rsconnectSrc -d dependencies/common/rsconnect
|
||||
mkdir -p dependencies/common/rmarkdown
|
||||
ln -s $rmarkdownSrc dependencies/common/rmarkdown/
|
||||
mkdir -p dependencies/common/rsconnect
|
||||
ln -s $rsconnectSrc dependencies/common/rsconnect/
|
||||
mkdir -p dependencies/common/libclang/3.5
|
||||
unzip $rstudiolibclang -d dependencies/common/libclang/3.5
|
||||
mkdir -p dependencies/common/libclang/builtin-headers
|
||||
|
@ -6,10 +6,10 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "sigil-${version}";
|
||||
version = "0.9.7";
|
||||
version = "0.9.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "17m2f7pj2sx5rxrbry6wk1lvviy8fi2m270h47sisywnrhddarh7";
|
||||
sha256 = "01pvc7k54mx5c7h1qiw92d4j459psv7n9xg94qbinf8vmpvkrcbw";
|
||||
rev = version;
|
||||
repo = "Sigil";
|
||||
owner = "Sigil-Ebook";
|
||||
|
@ -25,6 +25,5 @@ stdenv.mkDerivation rec {
|
||||
gpl2Plus # all the rest
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.0.1257";
|
||||
version = "8.0.1428";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "1y4c7wn5gr7n4c2ni36kadr26aldydxlf06yj7nsmw22ywwg78ig";
|
||||
sha256 = "0pqqh7g96w8jfc5kvv2il6fcbhccwhk4k5skk52g1c1ixsblwz3y";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
|
||||
"vim_cv_toupper_broken=no"
|
||||
"--with-tlib=ncurses"
|
||||
"vim_cv_terminfo=yes"
|
||||
"vim_cv_tgetent=zero" # it does on native anyway
|
||||
"vim_cv_tty_group=tty"
|
||||
"vim_cv_tty_mode=0660"
|
||||
"vim_cv_getcwd_broken=no"
|
||||
|
@ -2,7 +2,7 @@
|
||||
makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
|
||||
|
||||
let
|
||||
version = "1.19.1";
|
||||
version = "1.19.2";
|
||||
channel = "stable";
|
||||
|
||||
plat = {
|
||||
@ -12,9 +12,9 @@ let
|
||||
}.${stdenv.system};
|
||||
|
||||
sha256 = {
|
||||
"i686-linux" = "0ypx1jrzg76f8p4yh9hi3bhsrc6w4r7rg6i2aa6q7s8ny0q9hrlx";
|
||||
"x86_64-linux" = "1934wdiy2d1fzcjxjyf60dw1g1pp3lk2wv41xgrabfy5j2xfz14r";
|
||||
"x86_64-darwin" = "1zbcddgdwvmnk1gpmgw6rz0rswhkfc72wcjdbvgghm4msfwcgvc8";
|
||||
"i686-linux" = "05qfcmwl1r43slwkb2rxh99hwpzd8c622la0ffd9p2jg4lbkgs1p";
|
||||
"x86_64-linux" = "0kjwmw68av9mnqcg1vaazm3k240y9jvbng6n7ycgzxwddzx0qlac";
|
||||
"x86_64-darwin" = "1mjmi5r9qlc6ggh3w566454ar06by15xsm6dymr8zv4sb352w70h";
|
||||
}.${stdenv.system};
|
||||
|
||||
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
|
||||
|
@ -14,8 +14,8 @@ let
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "7.0.7-19";
|
||||
sha256 = "1naib6hspmq7d4gfpsksx78gc1lq3p2v3i9pxkkdvr9p9j15c4az";
|
||||
version = "7.0.7-21";
|
||||
sha256 = "0680dbg77gcyb3g4n22z5mp7c8mg0jpkqb0g4nj7d7r78nl869rv";
|
||||
patches = [];
|
||||
};
|
||||
in
|
||||
|
@ -14,8 +14,8 @@ let
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "6.9.9-28";
|
||||
sha256 = "132kdl7jlkghfg3smdab14c29cpvrx65ibipxkmwg1nc88ycqivh";
|
||||
version = "6.9.9-33";
|
||||
sha256 = "05931wfhllrb1c2g2nwnwaf1wazn60y5f70gd11qcqp46rif7z21";
|
||||
patches = [];
|
||||
}
|
||||
# Freeze version on mingw so we don't need to port the patch too often.
|
||||
|
@ -22,6 +22,5 @@ stdenv.mkDerivation rec {
|
||||
description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
}
|
||||
|
@ -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`
|
||||
, perl, sqlite
|
||||
@ -50,11 +50,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
name = "digikam-${version}";
|
||||
version = "5.7.0";
|
||||
version = "5.8.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/digikam/${name}.tar.xz";
|
||||
sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n";
|
||||
src = fetchFromGitHub {
|
||||
owner = "KDE";
|
||||
repo = "digikam";
|
||||
rev = "v${version}";
|
||||
sha256 = "1bvidg0fn92xvw5brhb34lm7m4iy4jb5xpvnhbgh8vik2m4n41w1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
|
||||
@ -83,8 +85,7 @@ mkDerivation rec {
|
||||
qtsvg
|
||||
qtwebkit
|
||||
|
||||
# https://bugs.kde.org/show_bug.cgi?id=387960
|
||||
#kcalcore
|
||||
kcalcore
|
||||
kconfigwidgets
|
||||
kcoreaddons
|
||||
kfilemetadata
|
||||
@ -112,20 +113,6 @@ mkDerivation rec {
|
||||
--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; {
|
||||
description = "Photo Management Program";
|
||||
license = licenses.gpl2;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user