Merge branch 'master' into python-trezor-fix-master

This commit is contained in:
Jörg Thalheim 2017-11-07 18:06:28 +00:00 committed by GitHub
commit febf9e191e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1110 changed files with 23272 additions and 31035 deletions

80
.github/CODEOWNERS vendored
View file

@ -8,47 +8,75 @@
# Mentioned users will get code review requests.
# This file
.github/CODEOWNERS @edolstra
/.github/CODEOWNERS @edolstra
# Boostraping and core infra
pkgs/stdenv/ @edolstra
pkgs/build-support/cc-wrapper/ @edolstra
/pkgs/stdenv @edolstra
/pkgs/build-support/cc-wrapper @edolstra
# Libraries
lib/ @edolstra
/lib @edolstra @nbp
# Nixpkgs Internals
/default.nix @nbp
/pkgs/top-level/default.nix @nbp
/pkgs/top-level/impure.nix @nbp
/pkgs/top-level/stage.nix @nbp
# NixOS Internals
/nixos/default.nix @nbp
/nixos/lib/from-env.nix @nbp
/nixos/lib/eval-config.nix @nbp
/nixos/doc/manual/configuration/abstractions.xml @nbp
/nixos/doc/manual/configuration/config-file.xml @nbp
/nixos/doc/manual/configuration/config-syntax.xml @nbp
/nixos/doc/manual/configuration/modularity.xml @nbp
/nixos/doc/manual/development/assertions.xml @nbp
/nixos/doc/manual/development/meta-attributes.xml @nbp
/nixos/doc/manual/development/option-declarations.xml @nbp
/nixos/doc/manual/development/option-def.xml @nbp
/nixos/doc/manual/development/option-types.xml @nbp
/nixos/doc/manual/development/replace-modules.xml @nbp
/nixos/doc/manual/development/writing-modules.xml @nbp
/nixos/doc/manual/man-nixos-option.xml @nbp
/nixos/modules/installer/tools/nixos-option.sh @nbp
# Python-related code and docs
pkgs/top-level/python-packages.nix @FRidh
pkgs/development/interpreters/python/* @FRidh
pkgs/development/python-modules/* @FRidh
doc/languages-frameworks/python.md @FRidh
/pkgs/top-level/python-packages.nix @FRidh
/pkgs/development/interpreters/python @FRidh
/pkgs/development/python-modules @FRidh
/doc/languages-frameworks/python.md @FRidh
# Haskell
pkgs/development/compilers/ghc @peti
pkgs/development/haskell-modules @peti
pkgs/development/haskell-modules/default.nix @peti
pkgs/development/haskell-modules/generic-builder.nix @peti
pkgs/development/haskell-modules/hoogle.nix @peti
/pkgs/development/compilers/ghc @peti
/pkgs/development/haskell-modules @peti
/pkgs/development/haskell-modules/default.nix @peti
/pkgs/development/haskell-modules/generic-builder.nix @peti
/pkgs/development/haskell-modules/hoogle.nix @peti
# R
pkgs/applications/science/math/R @peti
pkgs/development/r-modules @peti
/pkgs/applications/science/math/R @peti
/pkgs/development/r-modules @peti
# Ruby
/pkgs/development/interpreters/ruby @zimbatm
/pkgs/development/ruby-modules @zimbatm
# Darwin-related
/pkgs/stdenv/darwin/ @org/darwin-maintainers
/pkgs/os-specific/darwin/ @org/darwin-maintainers
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
/pkgs/os-specific/darwin @NixOS/darwin-maintainers
# Beam-related (Erlang, Elixir, LFE, etc)
pkgs/development/beam-modules/* @gleber
pkgs/development/interpreters/erlang/* @gleber
pkgs/development/interpreters/lfe/* @gleber
pkgs/development/interpreters/elixir/* @gleber
pkgs/development/tools/build-managers/rebar/* @gleber
pkgs/development/tools/build-managers/rebar3/* @gleber
pkgs/development/tools/erlang/* @gleber
/pkgs/development/beam-modules @gleber
/pkgs/development/interpreters/erlang @gleber
/pkgs/development/interpreters/lfe @gleber
/pkgs/development/interpreters/elixir @gleber
/pkgs/development/tools/build-managers/rebar @gleber
/pkgs/development/tools/build-managers/rebar3 @gleber
/pkgs/development/tools/erlang @gleber
# Jetbrains
pkgs/applications/editors/jetbrains @edwtjo
/pkgs/applications/editors/jetbrains @edwtjo
# Eclipse
pkgs/applications/editors/eclipse @rycee
/pkgs/applications/editors/eclipse @rycee

View file

@ -32,11 +32,14 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license.
The old config generation system used impure shell scripts and could break in specific circumstances (see #1234).
* `meta.description` should:
* Be capitalized
* Not start with the package name
* Not have a dot at the end
* Be capitalized.
* Not start with the package name.
* Not have a period at the end.
* `meta.license` must be set and fit the upstream license.
* If there is no upstream license, `meta.license` should default to `stdenv.lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
## Writing good commit messages

View file

@ -55,6 +55,10 @@ configuration file located at
</programlisting>
</para>
<para>Note that we are not able to test or build unfree software on Hydra
due to policy. Most unfree licenses prohibit us from either executing or
distributing the software.</para>
<section xml:id="sec-allow-broken">
<title>Installing broken packages</title>

View file

@ -165,7 +165,7 @@ run the script in the `python3` shell.
```py
#! /usr/bin/env nix-shell
#! nix-shell -i 'python3.withPackages(ps: [ps.numpy])'
#! nix-shell -i python3 -p "python3.withPackages(ps: [ps.numpy])"
import numpy

View file

@ -18,6 +18,7 @@
<xi:include href="functions.xml" />
<xi:include href="meta.xml" />
<xi:include href="languages-frameworks/index.xml" />
<xi:include href="platform-notes.xml" />
<xi:include href="package-notes.xml" />
<xi:include href="overlays.xml" />
<xi:include href="coding-conventions.xml" />

View file

@ -200,11 +200,9 @@ meta-attributes</title>
meta.platforms = stdenv.lib.platforms.linux;
</programlisting>
Attribute Set <varname>stdenv.lib.platforms</varname> in
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/platforms.nix">
<filename>nixpkgs/lib/platforms.nix</filename></link> defines various common
lists of platforms types.
</para></listitem>
Attribute Set <varname>stdenv.lib.platforms</varname> defines
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix">
various common lists</link> of platforms types.</para></listitem>
</varlistentry>
<varlistentry>

View file

@ -664,4 +664,34 @@ cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
</section>
<section xml:id="sec-weechat">
<title>Weechat</title>
<para>
Weechat can currently be configured to include your choice of plugins.
To make use of this functionality, install an expression that overrides its configuration such as
<programlisting>weechat.override {configure = {availablePlugins, ...}: {
plugins = with availablePlugins; [ python perl ];
}
}</programlisting>
</para>
<para>
The plugins currently available are <literal>python</literal>,
<literal>perl</literal>, <literal>ruby</literal>, <literal>guile</literal>,
<literal>tcl</literal> and <literal>lua</literal>.
</para>
<para>
The python plugin allows the addition of extra libraries. For instance,
the <literal>inotify.py</literal> script in weechat-scripts requires
D-Bus or libnotify, and the <literal>fish.py</literal> script requires
pycrypto. To use these scripts, use the <literal>python</literal>
plugin's <literal>withPackages</literal> attribute:
<programlisting>weechat.override {configure = {availablePlugins, ...}: {
plugins = with availablePlugins; [
(python.withPackages (ps: with ps; [ pycrypto python-dbus ]))
];
}
}
</programlisting>
</para>
</section>
</chapter>

83
doc/platform-notes.xml Normal file
View file

@ -0,0 +1,83 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-platform-nodes">
<title>Platform Notes</title>
<section xml:id="sec-darwin">
<title>Darwin (macOS)</title>
<para>Some common issues when packaging software for darwin:</para>
<itemizedlist>
<listitem>
<para>
The darwin <literal>stdenv</literal> uses clang instead of gcc.
When referring to the compiler <varname>$CC</varname> or <command>cc</command>
will work in both cases. Some builds hardcode gcc/g++ in their
build scripts, that can usually be fixed with using something
like <literal>makeFlags = [ "CC=cc" ];</literal> or by patching
the build scripts.
</para>
<programlisting>
stdenv.mkDerivation {
name = "libfoo-1.2.3";
# ...
buildPhase = ''
$CC -o hello hello.c
'';
}
</programlisting>
</listitem>
<listitem>
<para>
On darwin libraries are linked using absolute paths, libraries
are resolved by their <literal>install_name</literal> at link
time. Sometimes packages won't set this correctly causing the
library lookups to fail at runtime. This can be fixed by adding
extra linker flags or by running <command>install_name_tool -id</command>
during the <function>fixupPhase</function>.
</para>
<programlisting>
stdenv.mkDerivation {
name = "libfoo-1.2.3";
# ...
makeFlags = stdenv.lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
}
</programlisting>
</listitem>
<listitem>
<para>
Some packages assume xcode is available and use <command>xcrun</command>
to resolve build tools like <command>clang</command>, etc.
This causes errors like <code>xcode-select: error: no developer tools were found at '/Applications/Xcode.app'</code>
while the build doesn't actually depend on xcode.
</para>
<programlisting>
stdenv.mkDerivation {
name = "libfoo-1.2.3";
# ...
prePatch = ''
substituteInPlace Makefile \
--replace '/usr/bin/xcrun clang' clang
'';
}
</programlisting>
<para>
The package <literal>xcbuild</literal> can be used to build projects
that really depend on Xcode, however projects that build some kind of
graphical interface won't work without using Xcode in an impure way.
</para>
</listitem>
</itemizedlist>
</section>
</chapter>

View file

@ -698,8 +698,14 @@ nothing.</para>
<listitem><para>A list of strings passed as additional flags to
<command>make</command>. These flags are also used by the default
install and check phase. For setting make flags specific to the
build phase, use <varname>buildFlags</varname> (see
below).</para></listitem>
build phase, use <varname>buildFlags</varname> (see below).
<programlisting>
makeFlags = [ "PREFIX=$(out)" ];
</programlisting>
<note><para>The flags are quoted in bash, but environment variables can
be specified by using the make syntax.</para></note></para></listitem>
</varlistentry>
<varlistentry>

View file

@ -44,11 +44,13 @@
anderspapitto = "Anders Papitto <anderspapitto@gmail.com>";
andir = "Andreas Rammhold <andreas@rammhold.de>";
andres = "Andres Loeh <ksnixos@andres-loeh.de>";
andrestylianos = "Andre S. Ramos <andre.stylianos@gmail.com>";
andrewrk = "Andrew Kelley <superjoe30@gmail.com>";
andsild = "Anders Sildnes <andsild@gmail.com>";
aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
ankhers = "Justin Wood <justin.k.wood@gmail.com>";
antono = "Antono Vasiljev <self@antono.info>";
antonxy = "Anton Schirg <anton.schirg@posteo.de>";
apeschar = "Albert Peschar <albert@peschar.net>";
apeyroux = "Alexandre Peyroux <alex@px.io>";
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
@ -66,7 +68,7 @@
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
balajisivaraman = "Balaji Sivaraman<sivaraman.balaji@gmail.com>";
balajisivaraman = "Balaji Sivaraman <sivaraman.balaji@gmail.com>";
barrucadu = "Michael Walker <mike@barrucadu.co.uk>";
basvandijk = "Bas van Dijk <v.dijk.bas@gmail.com>";
Baughn = "Svein Ove Aas <sveina@gmail.com>";
@ -93,6 +95,7 @@
bramd = "Bram Duvigneau <bram@bramd.nl>";
bstrik = "Berno Strik <dutchman55@gmx.com>";
bzizou = "Bruno Bzeznik <Bruno@bzizou.net>";
c0bw3b = "Renaud <c0bw3b@gmail.com>";
c0dehero = "CodeHero <codehero@nerdpol.ch>";
calbrecht = "Christian Albrecht <christian.albrecht@mayflower.de>";
calrama = "Moritz Maxeiner <moritz@ucworks.org>";
@ -116,6 +119,7 @@
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
ciil = "Simon Lackerbauer <simon@lackerbauer.com>";
ckampka = "Christian Kampka <christian@kampka.net>";
ckauhaus = "Christian Kauhaus <christian@kauhaus.de>";
cko = "Christine Koppelt <christine.koppelt@gmail.com>";
cleverca22 = "Michael Bishop <cleverca22@gmail.com>";
cmcdragonkai = "Roger Qiu <roger.qiu@matrix.ai>";
@ -135,6 +139,7 @@
cryptix = "Henry Bubert <cryptix@riseup.net>";
CrystalGamma = "Jona Stubbe <nixos@crystalgamma.de>";
cstrahan = "Charles Strahan <charles@cstrahan.com>";
csingley = "Christopher Singley <csingley@gmail.com>";
cwoac = "Oliver Matthews <oliver@codersoffortune.net>";
DamienCassou = "Damien Cassou <damien@cassou.me>";
danbst = "Danylo Hlynskyi <abcz2.uprola@gmail.com>";
@ -161,6 +166,7 @@
dgonyeo = "Derek Gonyeo <derek@gonyeo.com>";
dipinhora = "Dipin Hora <dipinhora+github@gmail.com>";
disassembler = "Samuel Leathers <disasm@gmail.com>";
dizfer = "David Izquierdo <david@izquierdofernandez.com>";
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
DmitryTsygankov = "Dmitry Tsygankov <dmitry.tsygankov@gmail.com>";
dmjio = "David Johnson <djohnson.m@gmail.com>";
@ -259,6 +265,7 @@
hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
hce = "Hans-Christian Esperer <hc@hcesperer.org>";
hectorj = "Hector Jusforgues <hector.jusforgues+nixos@gmail.com>";
hedning = "Tor Hedin Brønner <torhedinbronner@gmail.com>";
heel = "Sergii Paryzhskyi <parizhskiy@gmail.com>";
henrytill = "Henry Till <henrytill@gmail.com>";
hhm = "hhm <heehooman+nixpkgs@gmail.com>";
@ -268,6 +275,7 @@
htr = "Hugo Tavares Reis <hugo@linux.com>";
iand675 = "Ian Duncan <ian@iankduncan.com>";
ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
iblech = "Ingo Blechschmidt <iblech@speicherleck.de>";
igsha = "Igor Sharonov <igor.sharonov@gmail.com>";
ikervagyok = "Balázs Lengyel <ikervagyok@gmail.com>";
infinisil = "Silvan Mosberger <infinisil@icloud.com>";
@ -322,6 +330,7 @@
KibaFox = "Kiba Fox <kiba.fox@foxypossibilities.com>";
kierdavis = "Kier Davis <kierdavis@gmail.com>";
kiloreux = "Kiloreux Emperex <kiloreux@gmail.com>";
kini = "Keshav Kini <keshav.kini@gmail.com>";
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
knedlsepp = "Josef Kemetmüller <josef.kemetmueller@gmail.com>";
konimex = "Muhammad Herdiansyah <herdiansyah@netc.eu>";
@ -439,7 +448,7 @@
nicknovitski = "Nick Novitski <nixpkgs@nicknovitski.com>";
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
NikolaMandic = "Ratko Mladic <nikola@mandic.email>";
nixy = "Andrew R. M. <andrewmiller237@gmail.com>";
nixy = "Andrew R. M. <nixy@nixy.moe>";
nocoolnametom = "Tom Doggett <nocoolnametom@gmail.com>";
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
@ -548,6 +557,7 @@
ryneeverett = "Ryne Everett <ryneeverett@gmail.com>";
rzetterberg = "Richard Zetterberg <richard.zetterberg@gmail.com>";
s1lvester = "Markus Silvester <s1lvester@bockhacker.me>";
samdroid-apps = "Sam Parkinson <sam@sam.today>";
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
sargon = "Daniel Ehlers <danielehlers@mindeye.net>";
@ -557,6 +567,7 @@
schristo = "Scott Christopher <schristopher@konputa.com>";
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
SeanZicari = "Sean Zicari <sean.zicari@gmail.com>";
sepi = "Raffael Mancini <raffael@mancini.lu>";
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
@ -580,6 +591,7 @@
snyh = "Xia Bin <snyh@snyh.org>";
solson = "Scott Olson <scott@solson.me>";
sorpaas = "Wei Tang <hi@that.world>";
sorki = "Richard Marko <srk@48.io>";
spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
spencerjanssen = "Spencer Janssen <spencerjanssen@gmail.com>";
spinus = "Tomasz Czyż <tomasz.czyz@gmail.com>";
@ -618,6 +630,7 @@
ThomasMader = "Thomas Mader <thomas.mader@gmail.com>";
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
timokau = "Timo Kaufmann <timokau@zoho.com>";
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
tnias = "Philipp Bartsch <phil@grmr.de>";
tohl = "Tomas Hlavaty <tom@logand.com>";

View file

@ -338,7 +338,7 @@ rec {
# Type-check the remaining definitions, and merge them.
mergedValue = foldl' (res: def:
if type.check def.value then res
else throw "The option value `${showOption loc}' in `${def.file}' is not a ${type.description}.")
else throw "The option value `${showOption loc}' in `${def.file}' is not of type `${type.description}'.")
(type.merge loc defsFinal) defsFinal;
isDefined = defsFinal != [];

View file

@ -2,7 +2,6 @@
rec {
pcBase = {
name = "pc";
uboot = null;
kernelHeadersBaseConfig = "defconfig";
kernelBaseConfig = "defconfig";
# Build whatever possible as a module, if not stated in the extra config.
@ -50,9 +49,6 @@ rec {
kernelTarget = "uImage";
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
#kernelDTB = true;
# XXX can be anything non-null, pkgs actually only cares if it is set or not
uboot = "pogoplug4";
};
sheevaplug = {
@ -162,9 +158,6 @@ rec {
'';
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
kernelTarget = "uImage";
uboot = "sheevaplug";
# Only for uboot = uboot :
ubootConfig = "sheevaplug_config";
kernelDTB = true; # Beyond 3.10
gcc = {
arch = "armv5te";
@ -251,7 +244,6 @@ rec {
LATENCYTOP y
'';
kernelTarget = "zImage";
uboot = null;
gcc = {
arch = "armv6";
fpu = "vfp";
@ -342,7 +334,6 @@ rec {
XEN? n
'';
kernelTarget = "zImage";
uboot = null;
};
scaleway-c1 = armv7l-hf-multiplatform // {
@ -374,7 +365,6 @@ rec {
kernelMakeFlags = [ "LOADADDR=0x10800000" ];
kernelTarget = "uImage";
kernelDTB = true;
uboot = true; #XXX: any non-null value here is needed so that mkimage is present to build kernelTarget uImage
gcc = {
cpu = "cortex-a9";
fpu = "neon";
@ -464,7 +454,6 @@ rec {
FTRACE n
'';
kernelTarget = "vmlinux";
uboot = null;
gcc = {
arch = "loongson2f";
abi = "n32";
@ -477,7 +466,6 @@ rec {
kernelAutoModules = false;
kernelExtraConfig = ""; # TBD kernel config
kernelTarget = "zImage";
uboot = null;
};
armv7l-hf-multiplatform = {
@ -489,7 +477,6 @@ rec {
kernelDTB = true;
kernelAutoModules = true;
kernelPreferBuiltin = true;
uboot = null;
kernelTarget = "zImage";
kernelExtraConfig = ''
# Fix broken sunxi-sid nvmem driver.
@ -552,7 +539,6 @@ rec {
# which our initrd builder can't currently do easily.
USB_XHCI_TEGRA m
'';
uboot = null;
kernelTarget = "Image";
gcc = {
arch = "armv8-a";

View file

@ -61,6 +61,16 @@ checkConfigError() {
checkConfigOutput "false" config.enable ./declare-enable.nix
checkConfigError 'The option .* defined in .* does not exist.' config.enable ./define-enable.nix
# Check integer types.
# unsigned
checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
checkConfigError 'The option value .* in .* is not of type.*unsigned integer.*' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
# positive
checkConfigError 'The option value .* in .* is not of type.*positive integer.*' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
# between
checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
checkConfigError 'The option value .* in .* is not of type.*between.*-21 and 43.*inclusive.*' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
# Check mkForce without submodules.
set -- config.enable ./declare-enable.nix ./define-enable.nix
checkConfigOutput "true" "$@"
@ -126,7 +136,7 @@ checkConfigOutput "true" "$@" ./define-module-check.nix
# Check coerced value.
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
checkConfigError 'The option value .* in .* is not a string or integer.' config.value ./declare-coerced-value.nix ./define-value-list.nix
checkConfigError 'The option value .* in .* is not.*string or signed integer.*' config.value ./declare-coerced-value.nix ./define-value-list.nix
cat <<EOF
====== module tests ======

View file

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.between (-21) 43;
};
};
}

View file

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.positive;
};
};
}

View file

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.unsigned;
};
};
}

View file

@ -0,0 +1,3 @@
{
value = -23;
}

View file

@ -0,0 +1,3 @@
{
value = 42;
}

View file

@ -0,0 +1,3 @@
{
value = 0;
}

View file

@ -108,11 +108,64 @@ rec {
};
int = mkOptionType rec {
name = "int";
description = "integer";
check = isInt;
merge = mergeOneOption;
};
name = "int";
description = "signed integer";
check = isInt;
merge = mergeOneOption;
};
# Specialized subdomains of int
ints =
let
betweenDesc = lowest: highest:
"${toString lowest} and ${toString highest} (both inclusive)";
between = lowest: highest: assert lowest <= highest;
addCheck int (x: x >= lowest && x <= highest) // {
name = "intBetween";
description = "integer between ${betweenDesc lowest highest}";
};
ign = lowest: highest: name: docStart:
between lowest highest // {
inherit name;
description = docStart + "; between ${betweenDesc lowest highest}";
};
unsign = bit: range: ign 0 (range - 1)
"unsignedInt${toString bit}" "${toString bit} bit unsigned integer";
sign = bit: range: ign (0 - (range / 2)) (range / 2 - 1)
"signedInt${toString bit}" "${toString bit} bit signed integer";
in rec {
/* An int with a fixed range.
*
* Example:
* (ints.between 0 100).check (-1)
* => false
* (ints.between 0 100).check (101)
* => false
* (ints.between 0 0).check 0
* => true
*/
inherit between;
unsigned = addCheck types.int (x: x >= 0) // {
name = "unsignedInt";
description = "unsigned integer, meaning >=0";
};
positive = addCheck types.int (x: x > 0) // {
name = "positiveInt";
description = "positive integer, meaning >0";
};
u8 = unsign 8 256;
u16 = unsign 16 65536;
# the biggest int a 64-bit Nix accepts is 2^63 - 1 (9223372036854775808), for a 32-bit Nix it is 2^31 - 1 (2147483647)
# the smallest int a 64-bit Nix accepts is -2^63 (-9223372036854775807), for a 32-bit Nix it is -2^31 (-2147483648)
# u32 = unsign 32 4294967296;
# u64 = unsign 64 18446744073709551616;
s8 = sign 8 256;
s16 = sign 16 65536;
# s32 = sign 32 4294967296;
};
str = mkOptionType {
name = "str";
@ -172,7 +225,7 @@ rec {
};
# drop this in the future:
list = builtins.trace "`types.list' is deprecated; use `types.listOf' instead" types.listOf;
list = builtins.trace "`types.list` is deprecated; use `types.listOf` instead" types.listOf;
listOf = elemType: mkOptionType rec {
name = "listOf";
@ -189,7 +242,7 @@ rec {
).optionalValue
) def.value
else
throw "The option value `${showOption loc}' in `${def.file}' is not a list.") defs)));
throw "The option value `${showOption loc}` in `${def.file}` is not a list.") defs)));
getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
getSubModules = elemType.getSubModules;
substSubModules = m: listOf (elemType.substSubModules m);
@ -260,7 +313,7 @@ rec {
let nrNulls = count (def: def.value == null) defs; in
if nrNulls == length defs then null
else if nrNulls != 0 then
throw "The option `${showOption loc}' is defined both null and not null, in ${showFiles (getFiles defs)}."
throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}."
else elemType.merge loc defs;
getSubOptions = elemType.getSubOptions;
getSubModules = elemType.getSubModules;
@ -288,8 +341,17 @@ rec {
}).config;
getSubOptions = prefix: (evalModules
{ modules = opts'; inherit prefix;
# FIXME: hack to get shit to evaluate.
args = { name = ""; }; }).options;
# This is a work-around due to the fact that some sub-modules,
# such as the one included in an attribute set, expects a "args"
# attribute to be given to the sub-module. As the option
# evaluation does not have any specific attribute name, we
# provide a default one for the documentation.
#
# This is mandatory as some option declaration might use the
# "name" attribute given as argument of the submodule and use it
# as the default of option declarations.
args.name = "&lt;name&gt;";
}).options;
getSubModules = opts';
substSubModules = m: submodule m;
functor = (defaultFunctor name) // {

View file

@ -18,6 +18,7 @@ import os
import re
import requests
import toolz
from concurrent.futures import ThreadPoolExecutor as pool
INDEX = "https://pypi.io/pypi"
"""url of PyPI"""
@ -235,7 +236,8 @@ def main():
packages = map(os.path.abspath, args.package)
count = list(map(_update, packages))
with pool() as p:
count = list(p.map(_update, packages))
logging.info("{} package(s) updated".format(sum(count)))

View file

@ -22,10 +22,6 @@
<listitem><para>A boolean, its values can be <literal>true</literal> or
<literal>false</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>types.int</varname></term>
<listitem><para>An integer.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>types.path</varname></term>
<listitem><para>A filesystem path, defined as anything that when coerced to
@ -39,7 +35,59 @@
</varlistentry>
</variablelist>
<para>String related types:</para>
<para>Integer-related types:</para>
<variablelist>
<varlistentry>
<term><varname>types.int</varname></term>
<listitem><para>A signed integer.</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>types.ints.{s8, s16, s32}</varname>
</term>
<listitem>
<para>Signed integers with a fixed length (8, 16 or 32 bits).
They go from
<inlineequation><mathphrase>2<superscript>n</superscript>/2</mathphrase>
</inlineequation> to <inlineequation>
<mathphrase>2<superscript>n</superscript>/21</mathphrase>
</inlineequation>
respectively (e.g. <literal>128</literal> to <literal>127</literal>
for 8 bits).
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>types.ints.unsigned</varname>
</term>
<listitem><para>An unsigned integer (that is >= 0).
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>types.ints.{u8, u16, u32}</varname>
</term>
<listitem>
<para>Unsigned integers with a fixed length (8, 16 or 32 bits).
They go from
<inlineequation><mathphrase>0</mathphrase></inlineequation> to <inlineequation>
<mathphrase>2<superscript>n</superscript>1</mathphrase>
</inlineequation>
respectively (e.g. <literal>0</literal> to <literal>255</literal>
for 8 bits).
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>types.ints.positive</varname>
</term>
<listitem><para>A positive integer (that is > 0).
</para></listitem>
</varlistentry>
</variablelist>
<para>String-related types:</para>
<variablelist>
<varlistentry>
@ -68,7 +116,7 @@
<section><title>Value Types</title>
<para>Value types are type that take a value parameter.</para>
<para>Value types are types that take a value parameter.</para>
<variablelist>
<varlistentry>
@ -84,6 +132,17 @@
<replaceable>sep</replaceable>, e.g. <literal>types.separatedString
"|"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>types.ints.between</varname>
<replaceable>lowest</replaceable>
<replaceable>highest</replaceable>
</term>
<listitem><para>An integer between <replaceable>lowest</replaceable>
and <replaceable>highest</replaceable> (both inclusive).
Useful for creating types like <literal>types.port</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>types.submodule</varname> <replaceable>o</replaceable></term>
<listitem><para>A set of sub options <replaceable>o</replaceable>.

View file

@ -16,7 +16,8 @@
hardware.</para></listitem>
<listitem><para>The NixOS manual is available on virtual console 8
(press Alt+F8 to access).</para></listitem>
(press Alt+F8 to access) or by running <command>nixos-help</command>.
</para></listitem>
<listitem><para>You get logged in as <literal>root</literal>
(with empty password).</para></listitem>
@ -139,6 +140,11 @@
the GRUB boot loader is to be installed. Without it, NixOS cannot
boot.</para>
<para>If there are other operating systems running on the machine before
installing NixOS, the
<option>boot.loader.grub.useOSProber</option> option can be set to
<literal>true</literal> to automatically add them to the grub menu.</para>
<para>Another critical option is <option>fileSystems</option>,
specifying the file systems that need to be mounted by NixOS.
However, you typically dont need to set it yourself, because

View file

@ -63,6 +63,15 @@ following incompatible changes:</para>
pass literal dollar signs through Postfix, double them.
</para>
</listitem>
<listitem>
<para>
The <literal>postage</literal> package (for web-based PostgreSQL
administration) has been renamed to <literal>pgmanage</literal>. The
corresponding module has also been renamed. To migrate please rename all
<option>services.postage</option> options to
<option>services.pgmanage</option>.
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -93,7 +93,7 @@ in
hardware.opengl.extraPackages = mkOption {
type = types.listOf types.package;
default = [];
example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]";
example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau intel-ocl ]";
description = ''
Additional packages to add to OpenGL drivers. This can be used
to add OpenCL drivers, VA-API/VDPAU drivers etc.

View file

@ -8,6 +8,7 @@ use File::Basename;
use File::Slurp;
use File::stat;
umask(0022);
sub uniq {
my %seen;

View file

@ -207,11 +207,12 @@
ripple-data-api = 186;
mediatomb = 187;
rdnssd = 188;
# ihaskell = 189; # unused
ihaskell = 189;
i2p = 190;
lambdabot = 191;
asterisk = 192;
plex = 193;
plexpy = 195;
grafana = 196;
skydns = 197;
# ripple-rest = 198; # unused, removed 2017-08-12
@ -483,7 +484,7 @@
#ripple-data-api = 186; #unused
mediatomb = 187;
#rdnssd = 188; # unused
# ihaskell = 189; # unused
ihaskell = 189;
i2p = 190;
lambdabot = 191;
asterisk = 192;

View file

@ -185,7 +185,7 @@
./services/databases/neo4j.nix
./services/databases/openldap.nix
./services/databases/opentsdb.nix
./services/databases/postage.nix
./services/databases/pgmanage.nix
./services/databases/postgresql.nix
./services/databases/redis.nix
./services/databases/riak.nix
@ -304,7 +304,7 @@
./services/misc/gogs.nix
./services/misc/gollum.nix
./services/misc/gpsd.nix
#./services/misc/ihaskell.nix
./services/misc/ihaskell.nix
./services/misc/irkerd.nix
./services/misc/jackett.nix
./services/misc/logkeys.nix
@ -328,6 +328,7 @@
./services/misc/parsoid.nix
./services/misc/phd.nix
./services/misc/plex.nix
./services/misc/plexpy.nix
./services/misc/pykms.nix
./services/misc/radarr.nix
./services/misc/redmine.nix
@ -412,6 +413,7 @@
./services/networking/asterisk.nix
./services/networking/atftpd.nix
./services/networking/avahi-daemon.nix
./services/networking/babeld.nix
./services/networking/bind.nix
./services/networking/autossh.nix
./services/networking/bird.nix

View file

@ -148,11 +148,11 @@ in
[
{
hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ];
publicKeyFile = "./pubkeys/myhost_ssh_host_dsa_key.pub";
publicKeyFile = ./pubkeys/myhost_ssh_host_dsa_key.pub;
}
{
hostNames = [ "myhost2" ];
publicKeyFile = "./pubkeys/myhost2_ssh_host_dsa_key.pub";
publicKeyFile = ./pubkeys/myhost2_ssh_host_dsa_key.pub;
}
]
'';

View file

@ -10,7 +10,7 @@ let
#! ${pkgs.stdenv.shell}
${cfg.extraSessionCommands}
PATH="${sway}/bin:$PATH"
exec ${pkgs.dbus.dbus-launch} --exit-with-session "${sway}/bin/sway"
exec ${pkgs.dbus.dbus-launch} --exit-with-session sway-setcap
'';
swayJoined = pkgs.symlinkJoin {
name = "sway-wrapped";
@ -53,7 +53,8 @@ in
config = mkIf cfg.enable {
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
security.wrappers.sway = {
source = "${swayJoined}/bin/sway";
program = "sway-setcap";
source = "${sway}/bin/sway";
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
owner = "root";
group = "sway";

View file

@ -139,6 +139,20 @@ in
'';
};
production = mkOption {
type = types.bool;
default = true;
description = ''
If set to true, use Let's Encrypt's production environment
instead of the staging environment. The main benefit of the
staging environment is to get much higher rate limits.
See
<literal>https://letsencrypt.org/docs/staging-environment</literal>
for more detail.
'';
};
certs = mkOption {
default = { };
type = with types; attrsOf (submodule certOpts);
@ -177,7 +191,9 @@ in
cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ]
++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains);
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)
++ (if cfg.production then []
else ["--server" "https://acme-staging.api.letsencrypt.org/directory"]);
acmeService = {
description = "Renew ACME Certificate for ${cert}";
after = [ "network.target" "network-online.target" ];

View file

@ -89,8 +89,5 @@ services.nginx = {
};
}
</programlisting>
<para>At the moment you still have to restart Nginx after the ACME
certs arrive.</para>
</section>
</chapter>

View file

@ -33,8 +33,8 @@ in
};
runtimePackages = mkOption {
default = [ pkgs.nix ];
defaultText = "[ pkgs.nix ]";
default = [ pkgs.bash pkgs.nix ];
defaultText = "[ pkgs.bash pkgs.nix ]";
description = "Add programs to the buildkite-agent environment";
type = types.listOf types.package;
};

View file

@ -67,7 +67,7 @@ in
type = types.nullOr types.str;
default = null;
example = literalExample "0.0.0.0";
description = "Address to bind to. The default it to bind to all addresses";
description = "Address to bind to. The default is to bind to all addresses";
};
port = mkOption {

View file

@ -3,16 +3,16 @@
with lib;
let
cfg = config.services.postage;
cfg = config.services.pgmanage;
confFile = pkgs.writeTextFile {
name = "postage.conf";
name = "pgmanage.conf";
text = ''
connection_file = ${postageConnectionsFile}
connection_file = ${pgmanageConnectionsFile}
allow_custom_connections = ${builtins.toJSON cfg.allowCustomConnections}
postage_port = ${toString cfg.port}
pgmanage_port = ${toString cfg.port}
super_only = ${builtins.toJSON cfg.superOnly}
@ -20,7 +20,7 @@ let
login_timeout = ${toString cfg.loginTimeout}
web_root = ${cfg.package}/etc/postage/web_root
web_root = ${cfg.package}/etc/pgmanage/web_root
data_root = ${cfg.dataRoot}
@ -33,24 +33,23 @@ let
'';
};
postageConnectionsFile = pkgs.writeTextFile {
name = "postage-connections.conf";
pgmanageConnectionsFile = pkgs.writeTextFile {
name = "pgmanage-connections.conf";
text = concatStringsSep "\n"
(mapAttrsToList (name : conn : "${name}: ${conn}") cfg.connections);
};
postage = "postage";
in {
pgmanage = "pgmanage";
options.services.postage = {
pgmanageOptions = {
enable = mkEnableOption "PostgreSQL Administration for the web";
package = mkOption {
type = types.package;
default = pkgs.postage;
defaultText = "pkgs.postage";
default = pkgs.pgmanage;
defaultText = "pkgs.pgmanage";
description = ''
The postage package to use.
The pgmanage package to use.
'';
};
@ -62,14 +61,14 @@ in {
"mini-server" = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
};
description = ''
Postage requires at least one PostgreSQL server be defined.
pgmanage requires at least one PostgreSQL server be defined.
</para><para>
Detailed information about PostgreSQL connection strings is available at:
<link xlink:href="http://www.postgresql.org/docs/current/static/libpq-connect.html"/>
</para><para>
Note that you should not specify your user name or password. That
information will be entered on the login screen. If you specify a
username or password, it will be removed by Postage before attempting to
username or password, it will be removed by pgmanage before attempting to
connect to a database.
'';
};
@ -78,7 +77,7 @@ in {
type = types.bool;
default = false;
description = ''
This tells Postage whether or not to allow anyone to use a custom
This tells pgmanage whether or not to allow anyone to use a custom
connection from the login screen.
'';
};
@ -87,7 +86,7 @@ in {
type = types.int;
default = 8080;
description = ''
This tells Postage what port to listen on for browser requests.
This tells pgmanage what port to listen on for browser requests.
'';
};
@ -95,7 +94,7 @@ in {
type = types.bool;
default = true;
description = ''
This tells Postage whether or not to set the listening socket to local
This tells pgmanage whether or not to set the listening socket to local
addresses only.
'';
};
@ -104,10 +103,10 @@ in {
type = types.bool;
default = true;
description = ''
This tells Postage whether or not to only allow super users to
This tells pgmanage whether or not to only allow super users to
login. The recommended value is true and will restrict users who are not
super users from logging in to any PostgreSQL instance through
Postage. Note that a connection will be made to PostgreSQL in order to
pgmanage. Note that a connection will be made to PostgreSQL in order to
test if the user is a superuser.
'';
};
@ -116,8 +115,8 @@ in {
type = types.nullOr types.str;
default = null;
description = ''
This tells Postage to only allow users in a certain PostgreSQL group to
login to Postage. Note that a connection will be made to PostgreSQL in
This tells pgmanage to only allow users in a certain PostgreSQL group to
login to pgmanage. Note that a connection will be made to PostgreSQL in
order to test if the user is a member of the login group.
'';
};
@ -133,10 +132,10 @@ in {
dataRoot = mkOption {
type = types.str;
default = "/var/lib/postage";
default = "/var/lib/pgmanage";
description = ''
This tells Postage where to put the SQL file history. All tabs are saved
to this location so that if you get disconnected from Postage you
This tells pgmanage where to put the SQL file history. All tabs are saved
to this location so that if you get disconnected from pgmanage you
don't lose your work.
'';
};
@ -156,15 +155,15 @@ in {
});
default = null;
description = ''
These options tell Postage where the TLS Certificate and Key files
These options tell pgmanage where the TLS Certificate and Key files
reside. If you use these options then you'll only be able to access
Postage through a secure TLS connection. These options are only
necessary if you wish to connect directly to Postage using a secure TLS
connection. As an alternative, you can set up Postage in a reverse proxy
pgmanage through a secure TLS connection. These options are only
necessary if you wish to connect directly to pgmanage using a secure TLS
connection. As an alternative, you can set up pgmanage in a reverse proxy
configuration. This allows your web server to terminate the secure
connection and pass on the request to Postage. You can find help to set
connection and pass on the request to pgmanage. You can find help to set
up this configuration in:
<link xlink:href="https://github.com/workflowproducts/postage/blob/master/INSTALL_NGINX.md"/>
<link xlink:href="https://github.com/pgManage/pgManage/blob/master/INSTALL_NGINX.md"/>
'';
};
@ -177,29 +176,47 @@ in {
};
};
config = mkIf cfg.enable {
systemd.services.postage = {
description = "postage - PostgreSQL Administration for the web";
wants = [ "postgresql.service" ];
after = [ "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = postage;
Group = postage;
ExecStart = "${pkgs.postage}/sbin/postage -c ${confFile}" +
optionalString cfg.localOnly " --local-only=true";
in {
options.services.pgmanage = pgmanageOptions;
# This is deprecated and should be removed for NixOS-18.03.
options.services.postage = pgmanageOptions;
config = mkMerge [
{ assertions = [
{ assertion = !config.services.postage.enable;
message =
"services.postage is deprecated in favour of pgmanage. " +
"They have the same options so just substitute postage for pgmanage." ;
}
];
}
(mkIf cfg.enable {
systemd.services.pgmanage = {
description = "pgmanage - PostgreSQL Administration for the web";
wants = [ "postgresql.service" ];
after = [ "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = pgmanage;
Group = pgmanage;
ExecStart = "${pkgs.pgmanage}/sbin/pgmanage -c ${confFile}" +
optionalString cfg.localOnly " --local-only=true";
};
};
};
users = {
users."${postage}" = {
name = postage;
group = postage;
home = cfg.dataRoot;
createHome = true;
users = {
users."${pgmanage}" = {
name = pgmanage;
group = pgmanage;
home = cfg.dataRoot;
createHome = true;
};
groups."${pgmanage}" = {
name = pgmanage;
};
};
groups."${postage}" = {
name = postage;
};
};
};
})
];
}

View file

@ -60,11 +60,11 @@ let
manpage_directory = "${pkgs.postfix}/share/man";
html_directory = "${pkgs.postfix}/share/postfix/doc/html";
shlib_directory = false;
relayhost = if cfg.lookupMX || cfg.relayHost == ""
then cfg.relayHost
else
"[${cfg.relayHost}]"
+ optionalString (cfg.relayPort != null) ":${toString cfg.relayPort}";
relayhost = if cfg.relayHost == "" then "" else
if cfg.lookupMX
then "${cfg.relayHost}:${toString cfg.relayPort}"
else "[${cfg.relayHost}]:${toString cfg.relayPort}";
mail_spool_directory = "/var/spool/mail/";
setgid_group = setgidGroup;
}
@ -461,13 +461,10 @@ in
};
relayPort = mkOption {
type = types.nullOr types.int;
default = null;
example = 587;
type = types.int;
default = 25;
description = "
Specify an optional port for outbound mail relay. (Note:
only used if an explicit <option>relayHost</option> is
defined.)
SMTP port for relay mail relay.
";
};

View file

@ -572,7 +572,7 @@ in {
rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks
mkdir -p ${cfg.statePath}/config
tr -dc A-Za-z0-9 < /dev/urandom | head -c 32 > ${cfg.statePath}/config/gitlab_shell_secret
${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/config/gitlab_shell_secret
# The uploads directory is hardcoded somewhere deep in rails. It is
# symlinked in the gitlab package to /run/gitlab/uploads to make it
@ -619,7 +619,7 @@ in {
fi
# enable required pg_trgm extension for gitlab
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql ${cfg.databaseName} -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
# Always do the db migrations just to be sure the database is up-to-date
${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production
@ -634,7 +634,7 @@ in {
# The gitlab:shell:create_hooks task seems broken for fixing links
# so we instead delete all the hooks and create them anew
rm ${cfg.statePath}/repositories/**/*.git/hooks
rm -f ${cfg.statePath}/repositories/**/*.git/hooks
${gitlab-rake}/bin/gitlab-rake gitlab:shell:create_hooks RAILS_ENV=production
# Change permissions in the last step because some of the

View file

@ -135,8 +135,9 @@ in
};
};
services.mingetty.helpLine = mkIf cfg.showManual
"\nPress <Alt-F${toString cfg.ttyNumber}> for the NixOS manual.";
services.mingetty.helpLine = "\nRun `nixos-help` "
+ lib.optionalString cfg.showManual "or press <Alt-F${toString cfg.ttyNumber}> "
+ "for the NixOS manual.";
};

View file

@ -0,0 +1,81 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.plexpy;
in
{
options = {
services.plexpy = {
enable = mkEnableOption "PlexPy Plex Monitor";
dataDir = mkOption {
type = types.str;
default = "/var/lib/plexpy";
description = "The directory where PlexPy stores its data files.";
};
configFile = mkOption {
type = types.str;
default = "/var/lib/plexpy/config.ini";
description = "The location of PlexPy's config file.";
};
port = mkOption {
type = types.int;
default = 8181;
description = "TCP port where PlexPy listens.";
};
user = mkOption {
type = types.str;
default = "plexpy";
description = "User account under which PlexPy runs.";
};
group = mkOption {
type = types.str;
default = "nogroup";
description = "Group under which PlexPy runs.";
};
package = mkOption {
type = types.package;
default = pkgs.plexpy;
defaultText = "pkgs.plexpy";
description = ''
The PlexPy package to use.
'';
};
};
};
config = mkIf cfg.enable {
systemd.services.plexpy = {
description = "PlexPy Plex Monitor";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
test -d "${cfg.dataDir}" || {
echo "Creating initial PlexPy data directory in \"${cfg.dataDir}\"."
mkdir -p "${cfg.dataDir}"
chown ${cfg.user}:${cfg.group} "${cfg.dataDir}"
}
'';
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
PermissionsStartOnly = "true";
GuessMainPID = "false";
ExecStart = "${cfg.package}/bin/plexpy --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port} --pidfile ${cfg.dataDir}/plexpy.pid --nolaunch";
Restart = "on-failure";
};
};
users.extraUsers = mkIf (cfg.user == "plexpy") {
plexpy = { group = cfg.group; uid = config.ids.uids.plexpy; };
};
};
}

View file

@ -22,8 +22,8 @@ let
);
graphiteApiConfig = pkgs.writeText "graphite-api.yaml" ''
time_zone: ${config.time.timeZone}
search_index: ${dataDir}/index
${optionalString (!isNull config.time.timeZone) ''time_zone: ${config.time.timeZone}''}
${optionalString (cfg.api.finders != []) ''finders:''}
${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders}
${optionalString (cfg.api.functions != []) ''functions:''}
@ -467,7 +467,15 @@ in {
];
})
(mkIf cfg.web.enable {
(mkIf cfg.web.enable (let
python27' = pkgs.python27.override {
packageOverrides = self: super: {
django = self.django_1_8;
django_tagging = self.django_tagging_0_4_3;
};
};
pythonPackages = python27'.pkgs;
in {
systemd.services.graphiteWeb = {
description = "Graphite Web Interface";
wantedBy = [ "multi-user.target" ];
@ -477,8 +485,8 @@ in {
PYTHONPATH = let
penv = pkgs.python.buildEnv.override {
extraLibs = [
pkgs.python27Packages.graphite_web
pkgs.python27Packages.pysqlite
pythonPackages.graphite_web
pythonPackages.pysqlite
];
};
penvPack = "${penv}/${pkgs.python.sitePackages}";
@ -516,17 +524,17 @@ in {
fi
# Only collect static files when graphite_web changes.
if ! [ "${dataDir}/current_graphite_web" -ef "${pkgs.python27Packages.graphite_web}" ]; then
if ! [ "${dataDir}/current_graphite_web" -ef "${pythonPackages.graphite_web}" ]; then
mkdir -p ${staticDir}
${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear
chown -R graphite:graphite ${staticDir}
ln -sfT "${pkgs.python27Packages.graphite_web}" "${dataDir}/current_graphite_web"
ln -sfT "${pythonPackages.graphite_web}" "${dataDir}/current_graphite_web"
fi
'';
};
environment.systemPackages = [ pkgs.python27Packages.graphite_web ];
})
environment.systemPackages = [ pythonPackages.graphite_web ];
}))
(mkIf cfg.api.enable {
systemd.services.graphiteApi = {
@ -536,7 +544,7 @@ in {
environment = {
PYTHONPATH = let
aenv = pkgs.python.buildEnv.override {
extraLibs = [ cfg.api.package pkgs.cairo ] ++ cfg.api.finders;
extraLibs = [ cfg.api.package pkgs.cairo pkgs.pythonPackages.cffi ] ++ cfg.api.finders;
};
in "${aenv}/${pkgs.python.sitePackages}";
GRAPHITE_API_CONFIG = graphiteApiConfig;

View file

@ -0,0 +1,98 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.babeld;
paramsString = params:
concatMapStringsSep "" (name: "${name} ${boolToString (getAttr name params)}")
(attrNames params);
interfaceConfig = name:
let
interface = getAttr name cfg.interfaces;
in
"interface ${name} ${paramsString interface}\n";
configFile = with cfg; pkgs.writeText "babeld.conf" (
(optionalString (cfg.interfaceDefaults != null) ''
default ${paramsString cfg.interfaceDefaults}
'')
+ (concatMapStrings interfaceConfig (attrNames cfg.interfaces))
+ extraConfig);
in
{
###### interface
options = {
services.babeld = {
enable = mkOption {
default = false;
description = ''
Whether to run the babeld network routing daemon.
'';
};
interfaceDefaults = mkOption {
default = null;
description = ''
A set describing default parameters for babeld interfaces.
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for options.
'';
type = types.nullOr (types.attrsOf types.unspecified);
example =
{
wired = true;
"split-horizon" = true;
};
};
interfaces = mkOption {
default = {};
description = ''
A set describing babeld interfaces.
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for options.
'';
type = types.attrsOf (types.attrsOf types.unspecified);
example =
{ enp0s2 =
{ wired = true;
"hello-interval" = 5;
"split-horizon" = "auto";
};
};
};
extraConfig = mkOption {
default = "";
description = ''
Options that will be copied to babeld.conf.
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details.
'';
};
};
};
###### implementation
config = mkIf config.services.babeld.enable {
systemd.services.babeld = {
description = "Babel routing daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.babeld}/bin/babeld -c ${configFile}";
};
};
}

View file

@ -158,7 +158,7 @@ in
serviceConfig = {
User = "dnschain";
Restart = "on-failure";
ExecStart = "${pkgs.dnschain}/bin/dnschain";
ExecStart = "${pkgs.nodePackages.dnschain}/bin/dnschain";
};
preStart = ''

View file

@ -28,7 +28,7 @@ in {
description = "Keybase service";
serviceConfig = {
ExecStart = ''
${pkgs.keybase}/bin/keybase -d service --auto-forked
${pkgs.keybase}/bin/keybase service --auto-forked
'';
Restart = "on-failure";
PrivateTmp = true;

View file

@ -32,6 +32,11 @@ let
ipv6.ip6-privacy=2
ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
wifi.cloned-mac-address=${cfg.wifi.macAddress}
${optionalString (cfg.wifi.powersave != null)
''wifi.powersave=${if cfg.wifi.powersave then "3" else "2"}''}
[device]
wifi.scan-rand-mac-address=${if cfg.wifi.scanRandMacAddress then "yes" else "no"}
'';
/*
@ -179,7 +184,27 @@ in {
};
ethernet.macAddress = macAddressOpt;
wifi.macAddress = macAddressOpt;
wifi = {
macAddress = macAddressOpt;
powersave = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to enable Wi-Fi power saving.
'';
};
scanRandMacAddress = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable MAC address randomization of a Wi-Fi device
during scanning.
'';
};
};
useDnsmasq = mkOption {
type = types.bool;

View file

@ -32,8 +32,10 @@ let
${caConf}
'';
strongswanConf = {setup, connections, ca, secrets}: toFile "strongswan.conf" ''
strongswanConf = {setup, connections, ca, secrets, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
charon {
${if managePlugins then "load_modular = no" else ""}
${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""}
plugins {
stroke {
secrets_file = ${ipsecSecrets secrets}
@ -112,6 +114,25 @@ in
file.
'';
};
managePlugins = mkOption {
type = types.bool;
default = false;
description = ''
If set to true, this option will disable automatic plugin loading and
then tell strongSwan to enable the plugins specified in the
<option>enabledPlugins</option> option.
'';
};
enabledPlugins = mkOption {
type = types.listOf types.str;
default = [];
description = ''
A list of additional plugins to enable if
<option>managePlugins</option> is true.
'';
};
};
config = with cfg; mkIf enable {
@ -122,7 +143,7 @@ in
wants = [ "keys.target" ];
after = [ "network-online.target" "keys.target" ];
environment = {
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets; };
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets managePlugins enabledPlugins; };
};
serviceConfig = {
ExecStart = "${pkgs.strongswan}/sbin/ipsec start --nofork";

View file

@ -8,9 +8,9 @@ let
stateDir = "/var/lib/unbound";
access = concatMapStrings (x: " access-control: ${x} allow\n") cfg.allowedAccess;
access = concatMapStringsSep "\n " (x: "access-control: ${x} allow") cfg.allowedAccess;
interfaces = concatMapStrings (x: " interface: ${x}\n") cfg.interfaces;
interfaces = concatMapStringsSep "\n " (x: "interface: ${x}") cfg.interfaces;
isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1";

View file

@ -195,6 +195,7 @@ let
description = "WireGuard Tunnel - ${name}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment.DEVICE = name;
serviceConfig = {
Type = "oneshot";

View file

@ -676,6 +676,7 @@ in
''
; Needed for PHP's mail() function.
sendmail_path = sendmail -t -i
'' + optionalString (!isNull config.time.timeZone) ''
; Apparently PHP doesn't use $TZ.
date.timezone = "${config.time.timeZone}"

View file

@ -13,6 +13,7 @@ let
define('DB_HOST', '${config.dbHost}');
define('DB_CHARSET', 'utf8');
$table_prefix = '${config.tablePrefix}';
define('AUTOMATIC_UPDATER_DISABLED', true);
${config.extraConfig}
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');

View file

@ -41,7 +41,7 @@ in
name = "lxqt";
bgSupport = true;
start = ''
exec ${pkgs.lxqt.lxqt-common}/bin/startlxqt
exec ${pkgs.lxqt.lxqt-session}/bin/startlxqt
'';
};

View file

@ -193,6 +193,11 @@ in
theme = mkDefault "breeze";
};
boot.plymouth = {
theme = mkDefault "breeze";
themePackages = mkDefault [ pkgs.breeze-plymouth ];
};
security.pam.services.kde = { allowNullPassword = true; };
# Doing these one by one seems silly, but we currently lack a better

View file

@ -125,6 +125,7 @@ in
"getty@tty1.service"
];
systemd.services."getty@tty1".enable = false;
systemd.services.display-manager.conflicts = [ "getty@tty1.service" ];
systemd.services.display-manager.serviceConfig = {
# Restart = "always"; - already defined in xserver.nix

View file

@ -97,12 +97,26 @@ in
moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
mkdir -p $out/lib/plymouth/renderers
cp ${plymouth}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
# module might come from a theme
cp ${themesEnv}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
mkdir -p $out/share/plymouth/themes
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
cp -r ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} $out/share/plymouth/themes
# copy themes into working directory for patching
mkdir themes
# use -L to copy the directories proper, not the symlinks to them
cp -r -L ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} themes
# patch out any attempted references to the theme or plymouth's themes directory
chmod -R +w themes
find themes -type f | while read file
do
sed -i "s,/nix/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
done
cp -r themes/* $out/share/plymouth/themes
cp ${cfg.logo} $out/share/plymouth/logo.png
'';

View file

@ -93,6 +93,7 @@ let
after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ];
before = [ "network.target" "shutdown.target" ];
wants = [ "network.target" ];
partOf = map (i: "network-addresses-${i.name}.service") interfaces;
conflicts = [ "shutdown.target" ];
wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target";
@ -171,8 +172,6 @@ let
"network-link-${i.name}.service"
"network.target"
];
# propagate stop and reload from network-setup
partOf = [ "network-setup.service" ];
# order before network-setup because the routes that are configured
# there may need ip addresses configured
before = [ "network-setup.service" ];

View file

@ -537,7 +537,7 @@ in
type = types.bool;
default = false;
description = ''
Wether the container is automatically started at boot-time.
Whether the container is automatically started at boot-time.
'';
};
@ -596,6 +596,8 @@ in
{ config, pkgs, ... }:
{ services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql96;
system.stateVersion = "17.03";
};
};
}

View file

@ -270,6 +270,10 @@ in rec {
tests.plasma5 = callTest tests/plasma5.nix {};
tests.keymap = callSubTests tests/keymap.nix {};
tests.initrdNetwork = callTest tests/initrd-network.nix {};
tests.kafka_0_9 = callTest tests/kafka_0_9.nix {};
tests.kafka_0_10 = callTest tests/kafka_0_10.nix {};
tests.kafka_0_11 = callTest tests/kafka_0_11.nix {};
tests.kafka_1_0 = callTest tests/kafka_1_0.nix {};
tests.kernel-copperhead = callTest tests/kernel-copperhead.nix {};
tests.kernel-latest = callTest tests/kernel-latest.nix {};
tests.kernel-lts = callTest tests/kernel-lts.nix {};
@ -306,6 +310,7 @@ in rec {
#tests.panamax = hydraJob (import tests/panamax.nix { system = "x86_64-linux"; });
tests.peerflix = callTest tests/peerflix.nix {};
tests.postgresql = callSubTests tests/postgresql.nix {};
tests.pgmanage = callTest tests/pgmanage.nix {};
tests.postgis = callTest tests/postgis.nix {};
#tests.pgjwt = callTest tests/pgjwt.nix {};
tests.printing = callTest tests/printing.nix {};
@ -329,7 +334,7 @@ in rec {
tests.wordpress = callTest tests/wordpress.nix {};
tests.xfce = callTest tests/xfce.nix {};
tests.xmonad = callTest tests/xmonad.nix {};
tests.zookeeper = callTest tests/zookeeper.nix {};
/* Build a bunch of typical closures so that Hydra can keep track of
the evolution of closure sizes. */

View file

@ -9,9 +9,57 @@ import ./make-test.nix ({ pkgs, ...} : {
nodes = {
gitlab = { config, pkgs, ... }: {
virtualisation.memorySize = 768;
services.gitlab.enable = true;
services.gitlab.databasePassword = "gitlab";
services.nginx = {
enable = true;
virtualHosts = {
"localhost" = {
locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
};
};
};
systemd.services.gitlab.serviceConfig.TimeoutStartSec = "10min";
services.gitlab = {
enable = true;
databasePassword = "dbPassword";
secrets = {
secret = "secret";
otp = "otpsecret";
db = "dbsecret";
# nix-shell -p openssl --run "openssl genrsa 2048"
jws = ''
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA13/qEio76OWUtWO0WIz9lWnsTWOU8Esv4sQHDq9PCEFsLt21
PAXrlWhLjjWcxGfsrDwnh7YErGHYL62BMSxMdFJolaknlQK/O/V8UETDe45VoHM+
Znk270RfUcfYFgiihnXUZXVmL0om9TsQSk646wCcjCY9LxtxUyKNhvT7KjgYw2aX
z34aw7M+Js3T2p1TjZPSC82GtmtKkJEKFMi5EjprLTDE7EdcUzr9Xuw+kQ+gRm9k
7FE+JQqSoprwE3Q0v2OAn3UhLMgg0gNFRnsc5l6IAshDzV+H22RPqKKlJjVjjfPY
0TQSvYLVApigHbDPH0BoCXfjFfQazbbP3OUHrwIDAQABAoIBAQCMU+tkcMQaYIV5
qLdjgkwO467QpivyXcOM8wF1eosIYTHFQvIlZ+WEoSmyLQ8shlADyBgls01Pw1c3
lNAv6RzQEmmwKzpvOh61OKH+0whIiOMRXHoh2IUBQZCgfHYlwvGyhUAN4WjtGmhM
AG4XNTQNM5S9Xpkw97nP3Qwz+YskbbkrfqtCEVy9ro+4nhbjqPsuO3adbnkva4zR
cyurRhrHgHU6LPjn5NHnHH4qw2faY2oAsL8pmpkTbO5IqWDvOcbjNfjVPgVoq26O
bbaa1qs4nmc80qQgMjRPJef535xyf3eLsSlDvpf6O8sPrJzVR1zaqEqixpQCZDac
+kRiSBrhAoGBAOwHiq0PuyJh6VzBu7ybqX6+gF/wA4Jkwzx6mbfaBgurvU1aospp
kisIonAkxSbxllZMnjbkShZEdATYKeT9o5NEhnU4YnHfc5bJZbiWOZAzYGLcY7g8
vDQ31pBItyY4pFgPbSpNlbUvUsoPVJ45RasRADDTNCzMzdjFQQXst2V9AoGBAOm7
sSpzYfFPLEAhieAkuhtbsX58Boo46djiKVfzGftfp6F9aHTOfzGORU5jrZ16mSbS
qkkC6BEFrATX2051dzzXC89fWoJYALrsffE5I3KlKXsCAWSnCP1MMxOfH+Ls61Mr
7pK/LKfvJt53mUH4jIdbmmFUDwbg18oBEH+x9PmbAoGAS/+JqXu9N67rIxDGUE6W
3tacI0f2+U9Uhe67/DTZaXyc8YFTlXU0uWKIWy+bw5RaYeM9tlL/f/f+m2i25KK+
vrZ7zNag7CWU5GJovGyykDnauTpZaYM03mN0VPT08/uc/zXIYqyknbhlIeaZynCK
fDB3LUF0NVCknz20WCIGU0kCgYEAkxY0ZXx61Dp4pFr2wwEZxQGs7uXpz64FKyEX
12r6nMATY4Lh6y/Px0W6w5vis8lk+5Ny6cNUevHQ0LNuJS+yu6ywl+1vrbrnqroM
f3LvpcPeGLSoX8jl1VDQi7aFgG6LoKly1xJLbdsH4NPutB9PgBbbTghx9GgmI88L
rPA2M6UCgYBOmkYJocNgxg6B1/n4Tb9fN1Q/XuJrFDE6NxVUoke+IIyMPRH7FC3m
VMYzu+b7zTVJjaBb1cmJemxl/xajziWDofJYPefhdbOVU7HXtmJFY0IG3pVxU1zW
3bmDj5QAtCUDpuuNa6GEIT0YR4+D/V7o3DmlZ0tVIwKJmVJoQ2f5dw==
-----END RSA PRIVATE KEY-----
'';
};
};
};
};
@ -19,6 +67,6 @@ import ./make-test.nix ({ pkgs, ...} : {
$gitlab->start();
$gitlab->waitForUnit("gitlab.service");
$gitlab->waitForUnit("gitlab-sidekiq.service");
$gitlab->waitUntilSucceeds("curl http://localhost:8080/users/sign_in");
$gitlab->waitUntilSucceeds("curl http://localhost:80/users/sign_in");
'';
})

View file

@ -4,22 +4,28 @@ import ./make-test.nix ({ pkgs, ...} :
nodes = {
one =
{ config, pkgs, ... }: {
time.timeZone = "UTC";
services.graphite = {
web = {
web.enable = true;
api = {
enable = true;
port = 8082;
};
carbon = {
enableCache = true;
};
carbon.enableCache = true;
seyren.enable = true;
pager.enable = true;
};
};
};
};
testScript = ''
startAll;
$one->waitForUnit("default.target");
$one->requireActiveUnit("graphiteWeb.service");
$one->requireActiveUnit("graphiteApi.service");
$one->requireActiveUnit("graphitePager.service");
$one->requireActiveUnit("carbonCache.service");
$one->requireActiveUnit("seyren.service");
$one->succeed("echo \"foo 1 `date +%s`\" | nc -q0 localhost 2003");
$one->waitUntilSucceeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo")
'';

View file

@ -0,0 +1,48 @@
import ./make-test.nix ({ pkgs, lib, ... } :
let
kafkaPackage = pkgs.apacheKafka_0_10;
in {
name = "kafka_0_10";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
zookeeper1 = { config, ... }: {
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
};
kafka = { config, ... }: {
services.apache-kafka = {
enable = true;
extraProperties = ''
offsets.topic.replication.factor = 1
'';
package = kafkaPackage;
zookeeper = "zookeeper1:2181";
};
networking.firewall.allowedTCPPorts = [ 9092 ];
virtualisation.memorySize = 2048;
};
};
testScript = ''
startAll;
$zookeeper1->waitForUnit("zookeeper");
$zookeeper1->waitForUnit("network.target");
$zookeeper1->waitForOpenPort(2181);
$kafka->waitForUnit("apache-kafka");
$kafka->waitForUnit("network.target");
$kafka->waitForOpenPort(9092);
$kafka->waitUntilSucceeds("${kafkaPackage}/bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --partitions 1 --replication-factor 1 --topic testtopic");
$kafka->mustSucceed("echo 'test 1' | ${kafkaPackage}/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic");
$kafka->mustSucceed("${kafkaPackage}/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --from-beginning --max-messages 1 | grep 'test 1'");
'';
})

View file

@ -0,0 +1,48 @@
import ./make-test.nix ({ pkgs, lib, ... } :
let
kafkaPackage = pkgs.apacheKafka_0_11;
in {
name = "kafka_0_11";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
zookeeper1 = { config, ... }: {
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
};
kafka = { config, ... }: {
services.apache-kafka = {
enable = true;
extraProperties = ''
offsets.topic.replication.factor = 1
'';
package = kafkaPackage;
zookeeper = "zookeeper1:2181";
};
networking.firewall.allowedTCPPorts = [ 9092 ];
virtualisation.memorySize = 2048;
};
};
testScript = ''
startAll;
$zookeeper1->waitForUnit("zookeeper");
$zookeeper1->waitForUnit("network.target");
$zookeeper1->waitForOpenPort(2181);
$kafka->waitForUnit("apache-kafka");
$kafka->waitForUnit("network.target");
$kafka->waitForOpenPort(9092);
$kafka->waitUntilSucceeds("${kafkaPackage}/bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --partitions 1 --replication-factor 1 --topic testtopic");
$kafka->mustSucceed("echo 'test 1' | ${kafkaPackage}/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic");
$kafka->mustSucceed("${kafkaPackage}/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --from-beginning --max-messages 1 | grep 'test 1'");
'';
})

48
nixos/tests/kafka_0_9.nix Normal file
View file

@ -0,0 +1,48 @@
import ./make-test.nix ({ pkgs, lib, ... } :
let
kafkaPackage = pkgs.apacheKafka_0_9;
in {
name = "kafka_0_9";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
zookeeper1 = { config, ... }: {
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
};
kafka = { config, ... }: {
services.apache-kafka = {
enable = true;
extraProperties = ''
offsets.topic.replication.factor = 1
'';
package = kafkaPackage;
zookeeper = "zookeeper1:2181";
};
networking.firewall.allowedTCPPorts = [ 9092 ];
virtualisation.memorySize = 2048;
};
};
testScript = ''
startAll;
$zookeeper1->waitForUnit("zookeeper");
$zookeeper1->waitForUnit("network.target");
$zookeeper1->waitForOpenPort(2181);
$kafka->waitForUnit("apache-kafka");
$kafka->waitForUnit("network.target");
$kafka->waitForOpenPort(9092);
$kafka->waitUntilSucceeds("${kafkaPackage}/bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --partitions 1 --replication-factor 1 --topic testtopic");
$kafka->mustSucceed("echo 'test 1' | ${kafkaPackage}/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic");
$kafka->mustSucceed("${kafkaPackage}/bin/kafka-console-consumer.sh --zookeeper zookeeper1:2181 --topic testtopic --from-beginning --max-messages 1 | grep 'test 1'");
'';
})

48
nixos/tests/kafka_1_0.nix Normal file
View file

@ -0,0 +1,48 @@
import ./make-test.nix ({ pkgs, lib, ... } :
let
kafkaPackage = pkgs.apacheKafka_1_0;
in {
name = "kafka_1_0";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
zookeeper1 = { config, ... }: {
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
};
kafka = { config, ... }: {
services.apache-kafka = {
enable = true;
extraProperties = ''
offsets.topic.replication.factor = 1
'';
package = kafkaPackage;
zookeeper = "zookeeper1:2181";
};
networking.firewall.allowedTCPPorts = [ 9092 ];
virtualisation.memorySize = 2048;
};
};
testScript = ''
startAll;
$zookeeper1->waitForUnit("zookeeper");
$zookeeper1->waitForUnit("network.target");
$zookeeper1->waitForOpenPort(2181);
$kafka->waitForUnit("apache-kafka");
$kafka->waitForUnit("network.target");
$kafka->waitForOpenPort(9092);
$kafka->waitUntilSucceeds("${kafkaPackage}/bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --partitions 1 --replication-factor 1 --topic testtopic");
$kafka->mustSucceed("echo 'test 1' | ${kafkaPackage}/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic");
$kafka->mustSucceed("${kafkaPackage}/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --from-beginning --max-messages 1 | grep 'test 1'");
'';
})

39
nixos/tests/pgmanage.nix Normal file
View file

@ -0,0 +1,39 @@
import ./make-test.nix ({ pkgs, ... } :
let
role = "test";
password = "secret";
conn = "local";
in
{
name = "pgmanage";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ basvandijk ];
};
nodes = {
one = { config, pkgs, ... }: {
services = {
postgresql = {
enable = true;
initialScript = pkgs.writeText "pg-init-script" ''
CREATE ROLE ${role} SUPERUSER LOGIN PASSWORD '${password}';
'';
};
pgmanage = {
enable = true;
connections = {
"${conn}" = "hostaddr=127.0.0.1 port=${toString config.services.postgresql.port} dbname=postgres";
};
};
};
};
};
testScript = ''
startAll;
$one->waitForUnit("default.target");
$one->requireActiveUnit("pgmanage.service");
# Test if we can log in.
$one->waitUntilSucceeds("curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail");
'';
})

28
nixos/tests/zookeeper.nix Normal file
View file

@ -0,0 +1,28 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "zookeeper";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
nodes = {
server = { pkgs, config, ... }: {
services.zookeeper = {
enable = true;
};
networking.firewall.allowedTCPPorts = [ 2181 ];
};
};
testScript = ''
startAll;
$server->waitForUnit("zookeeper");
$server->waitForUnit("network.target");
$server->waitForOpenPort(2181);
$server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 create /foo bar");
$server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 set /foo hello");
$server->waitUntilSucceeds("${pkgs.zookeeper}/bin/zkCli.sh -server localhost:2181 get /foo | grep hello");
'';
})

View file

@ -7,13 +7,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
version = "0.15.0";
version = "0.16.0";
src = fetchFromGitHub {
owner = "bitcoin-ABC";
repo = "bitcoin-abc";
rev = "v${version}";
sha256 = "1fygn6cc99iasg5g5jyps5ps873hfnn4ln4hsmcwlwiqd591qxyv";
sha256 = "0wwcgvd8zgl5qh6z1sa3kdv1lr9cwwbs9j2gaad5mqr9sfwbbxdh";
};
patches = [ ./fix-bitcoin-qt-build.patch ];

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
owner = "bitcoinunlimited";
repo = "bitcoinunlimited";
rev = "v${version}";
sha256 = "0rhk6xvzvzyfppg0pgq72nqgm2rmkiw0nhg3rwnzcvvj90nrz3da";
sha256 = "17cmyns1908s2rqs0zwr05f3541nqm2pg08n2xn97g2k3yimdg5q";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];

View file

@ -13,11 +13,11 @@ stdenv.mkDerivation rec {
owner = "dogecoin";
repo = "dogecoin";
rev = "v${version}";
sha256 = "16q3rldj04hkzzjd23h0knszqr5dgixizy4iyc129mz8wa8pbnvy";
sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [ openssl db5 openssl utillinux
buildInputs = [ openssl db5 openssl utillinux
protobuf boost zlib miniupnpc ]
++ optionals withGui [ qt4 qrencode ];

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3
, libmowgli, libmcs, dbus_glib, libxml2, xorg, gnome3, alsaLib
, libmowgli, dbus_glib, libxml2, xorg, gnome3, alsaLib
, libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis
, libcdio082, libcddb, flac, ffmpeg, mpg123, libcue, libmms, libbs2b
, libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gettext glib gtk3 libmowgli libmcs dbus_glib libxml2
gettext glib gtk3 libmowgli dbus_glib libxml2
xorg.libXcomposite gnome3.defaultIconTheme alsaLib libjack2
libpulseaudio fluidsynth libmad libogg libvorbis libcdio082
libcddb flac ffmpeg mpg123 libcue libmms libbs2b libsndfile

View file

@ -3,7 +3,7 @@
gettext, pkgconfig,
qtbase,
alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk_pixbuf, lame, libbs2b,
libcddb, libcdio082, libcue, libjack2, libmad, libmcs, libmms, libmodplug,
libcddb, libcdio082, libcue, libjack2, libmad, libmms, libmodplug,
libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
wavpack
@ -39,7 +39,7 @@ mkDerivation {
# Plugin dependencies
alsaLib curl faad2 ffmpeg flac fluidsynth gdk_pixbuf lame libbs2b libcddb
libcdio082 libcue libjack2 libmad libmcs libmms libmodplug libmowgli
libcdio082 libcue libjack2 libmad libmms libmodplug libmowgli
libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
];

View file

@ -7,12 +7,12 @@
with stdenv.lib;
stdenv.mkDerivation rec {
version = "2.1.3";
version = "2.2.0";
name = "audacity-${version}";
src = fetchurl {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
sha256 = "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b";
sha256 = "09xpr4bjnainz1xmc35v3qg3dadjr9wv8bmn1p4y91aqyihnhjry";
};
patches = [
(fetchpatch {

View file

@ -0,0 +1,23 @@
From 184c64718ee68b2738647f4a106b260c47f00437 Mon Sep 17 00:00:00 2001
From: Sam Parkinson <sam@sam.today>
Date: Thu, 26 Oct 2017 14:50:13 +1100
Subject: [PATCH] Remove post-install script that hardcodes paths
---
meson.build | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 25f3e1a..18b43bd 100644
--- a/meson.build
+++ b/meson.build
@@ -21,4 +21,5 @@ subdir('src')
# subdir('tests')
# TODO: unit tests
-meson.add_install_script('meson_post_install.sh')
+# This does not work for nixos; it hard-codes paths
+# meson.add_install_script('meson_post_install.sh')
--
2.14.2

View file

@ -0,0 +1,72 @@
{ stdenv, fetchFromGitHub, pkgconfig
, gcc
, python3
, gsettings_desktop_schemas
, desktop_file_utils
, glib
, gtk3
, intltool
, libsoup
, json_glib
, wrapGAppsHook
, meson
, ninja
, vala
, sqlite
, gst_all_1
, gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
}:
let
version = "6.0.2";
in stdenv.mkDerivation rec {
name = "gradio-${version}";
src = fetchFromGitHub {
owner = "haecker-felix";
repo = "gradio";
rev = "v${version}";
sha256 = "05hg26yr7splgpkl8wjxcsdks9sm1is3hcnp7f5mjnp2ch0nn57s";
};
nativeBuildInputs = [
pkgconfig
meson
ninja
vala
python3
];
buildInputs = [
sqlite
glib
intltool
libsoup
json_glib
gtk3
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
wrapGAppsHook
desktop_file_utils
gsettings_desktop_schemas
] ++ gst_plugins;
enableParallelBuilding = true;
postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
'';
patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ];
meta = with stdenv.lib; {
homepage = https://github.com/haecker-felix/gradio;
description = "A GTK3 app for finding and listening to internet radio stations";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.samdroid-apps ];
};
}

View file

@ -0,0 +1,26 @@
{ stdenv, fetchFromGitHub, pythonPackages }:
with pythonPackages; buildPythonApplication rec {
pname = "greg";
version = "0.4.7";
name = pname + "-" + version;
disabled = !isPy3k;
src = fetchFromGitHub {
owner = "manolomartinez";
repo = pname;
rev = "v" + version;
sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v";
};
buildInputs = with pythonPackages; [ feedparser ];
propagatedBuildInputs = buildInputs;
meta = with stdenv.lib; {
homepage = "https://github.com/manolomartinez/greg";
description = "A command-line podcast aggregator";
license = licenses.gpl3;
maintainers = with maintainers; [ edwtjo ];
};
}

View file

@ -1,69 +0,0 @@
{ stdenv, fetchFromGitHub, makeWrapper, callPackage, libgroove, python, utillinux, nodejs }:
with stdenv.lib;
let
nodePackages = callPackage (import ../../../top-level/node-packages.nix) {
inherit nodejs;
neededNatives = [ libgroove python utillinux ];
self = nodePackages;
generated = ./package.nix;
};
in nodePackages.buildNodePackage rec {
version = "1.5.1";
name = "groovebasin-${version}";
src = fetchFromGitHub {
owner = "andrewrk";
repo = "groovebasin";
rev = "${version}";
sha256 = "1g7v0qhvgzpb050hf45pibp68qd67hnnry5npw58f4dvaxdd8yhd";
};
deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));
buildInputs = [ makeWrapper ];
postInstall = ''
mkdir -p "$out/lib/node_modules/groovebasin/public"
stylus -o "$out/lib/node_modules/groovebasin/public/" -c --include-css "$out/lib/node_modules/groovebasin/src/client/styles"
browserify-lite "$out/lib/node_modules/groovebasin/src/client/app.js" --outfile "$out/lib/node_modules/groovebasin/public/app.js"
wrapProgram "$out/bin/groovebasin" --set NODE_PATH "$out/lib/node_modules/groovebasin/node_modules/"
'';
passthru.names = ["groovebasin"];
meta = {
description = "Music player server with a web-based user interface";
homepage = http://groovebasin.com/;
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.andrewrk ];
longDescription = ''
Groove Basin runs on a server optionally connected to speakers. Guests can
control the music player by connecting with a laptop, tablet, or smart phone.
Further, users can stream their music libraries remotely.
Groove Basin comes with a fast, responsive web interface that supports keyboard
shortcuts and drag drop. It also provides the ability to upload songs,
download songs, and import songs by URL, including YouTube URLs.
Groove Basin supports Dynamic Mode which automatically queues random songs,
favoring songs that have not been queued recently.
Groove Basin automatically performs ReplayGain scanning on every song using
the EBU R128 loudness standard, and automatically switches between track
and album mode.
Groove Basin supports the MPD protocol, which means it is compatible with MPD
clients. There is also a more powerful Groove Basin protocol which you can
use if the MPD protocol does not meet your needs.
Groove Basin supports Last.fm scrobbling.
'';
# groovebasin was built with nodejs 0.10 which reached end of LTS
# in October 216, it doesn't built with nodejs 4.x
broken = true;
};
}

File diff suppressed because it is too large Load diff

View file

@ -2,12 +2,12 @@
pythonPackages.buildPythonApplication rec {
name = "mopidy-iris-${version}";
version = "3.4.9";
version = "3.6.1";
src = pythonPackages.fetchPypi {
inherit version;
pname = "Mopidy-Iris";
sha256 = "0acr8ss5d0jgcy1qsjb12h0n6kr6qdp9zrbbk9vv3m3s6kcm8vgb";
sha256 = "1mfi3qx7pvfq4rz0py39lnbzv7sq703b6k6mypzhj1gdzbisfn46";
};
propagatedBuildInputs = [

View file

@ -1,4 +1,8 @@
{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib}:
{stdenv, fetchurl, libao, libmad, libid3tag, zlib, alsaLib
# Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
# If null, it will use the libao system default.
, defaultAudio ? null
}:
stdenv.mkDerivation rec {
name = "mpg321-${version}";
@ -11,9 +15,10 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
configureFlags = [
("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no"))
];
configureFlags =
[ ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) ]
++ (stdenv.lib.optional (defaultAudio != null)
"--with-default-audio=${defaultAudio}");
buildInputs = [libao libid3tag libmad zlib]
++ stdenv.lib.optional stdenv.isLinux alsaLib;

View file

@ -1,11 +1,7 @@
{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
, mpd_clientlib, gettext }:
let
rpath = stdenv.lib.makeLibraryPath [
glib ncurses mpd_clientlib
];
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "ncmpc-${version}";
version = "0.28";
@ -19,12 +15,6 @@ in stdenv.mkDerivation rec {
buildInputs = [ glib ncurses mpd_clientlib ];
nativeBuildInputs = [ meson ninja pkgconfig gettext ];
postFixup = ''
for elf in "$out"/bin/*; do
patchelf --set-rpath '${rpath}':"$out/lib" "$elf"
done
'';
meta = with stdenv.lib; {
description = "Curses-based interface for MPD (music player daemon)";
homepage = http://www.musicpd.org/clients/ncmpc/;

View file

@ -1,20 +1,19 @@
{ stdenv, fetchFromGitHub, python2Packages, makeWrapper, chromaprint }:
let
pname = "puddletag";
in python2Packages.buildPythonApplication rec {
name = "${pname}-${version}";
python2Packages.buildPythonApplication rec {
name = "puddletag-${version}";
version = "1.2.0";
src = fetchFromGitHub {
owner = "keithgg";
repo = pname;
rev = "v${version}";
owner = "keithgg";
repo = "puddletag";
rev = "v${version}";
sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz";
};
sourceRoot = "${pname}-v${version}-src/source";
setSourceRoot = ''
sourceRoot=$(echo */source)
'';
disabled = python2Packages.isPy3k; # work to support python 3 has not begun
@ -29,17 +28,21 @@ in python2Packages.buildPythonApplication rec {
dontStrip = true; # we are not generating any binaries
installPhase = ''
runHook preInstall
siteDir=$(toPythonPath $out)
mkdir -p $siteDir
PYTHONPATH=$PYTHONPATH:$siteDir
${python2Packages.python.interpreter} setup.py install --prefix $out
runHook postInstall
'';
meta = with stdenv.lib; {
homepage = https://puddletag.net;
homepage = https://puddletag.net;
description = "An audio tag editor similar to the Windows program, Mp3tag";
license = licenses.gpl3;
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
};
}

View file

@ -1,64 +1,44 @@
{ stdenv, fetchurl, python2Packages, intltool
, gst-python, withGstPlugins ? false, gst-plugins-base ? null
, gst-plugins-good ? null, gst-plugins-ugly ? null, gst-plugins-bad ? null }:
{ stdenv, fetchurl, python2Packages, wrapGAppsHook, gettext, intltool, libsoup, gnome3,
tag ? "",
gst_all_1, withGstPlugins ? true,
xineBackend ? false, xineLib,
withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
webkitgtk ? null,
keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }:
assert withGstPlugins -> gst-plugins-base != null
|| gst-plugins-good != null
|| gst-plugins-ugly != null
|| gst-plugins-bad != null;
let
version = "2.6.3";
inherit (python2Packages) buildPythonApplication python mutagen pygtk pygobject2 dbus-python;
in buildPythonApplication {
# call the package quodlibet and just quodlibet
name = "quodlibet${stdenv.lib.optionalString (!withGstPlugins) "-without-gst-plugins"}-${version}";
let optionals = stdenv.lib.optionals; in
python2Packages.buildPythonApplication rec {
name = "quodlibet${tag}-${version}";
version = "3.9.1";
# XXX, tests fail
doCheck = false;
srcs = [
(fetchurl {
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-${version}.tar.gz";
sha256 = "0ilasi4b0ay8r6v6ba209wsm80fq2nmzigzc5kvphrk71jwypx6z";
})
(fetchurl {
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-plugins-${version}.tar.gz";
sha256 = "1rv08rhdjad8sjhplqsspcf4vkazgkxyshsqmbfbrrk5kvv57ybc";
})
];
src = fetchurl {
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
sha256 = "d2b42df5d439213973dc97149fddc779a6c90cec389c24baf1c0bdcc39ffe591";
};
preConfigure = ''
# TODO: for now don't a apply gdist overrides, will be needed for shipping icons, gtk, etc
sed -i /distclass/d setup.py
'';
nativeBuildInputs = [ wrapGAppsHook gettext intltool ];
# ++ (with python2Packages; [ pytest pyflakes pycodestyle polib ]); # test deps
sourceRoot = "quodlibet-${version}";
buildInputs = [ gnome3.defaultIconTheme libsoup webkitgtk keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi ]
++ (if xineBackend then [ xineLib ] else with gst_all_1;
[ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]);
postUnpack = ''
# the patch searches for plugins in directory ../plugins
# so link the appropriate directory there
ln -sf quodlibet-plugins-${version} plugins
'';
propagatedBuildInputs = with python2Packages;
[ pygobject3 pycairo mutagen pygtk gst-python feedparser faulthandler futures ]
++ optionals withDbusPython [ dbus-python ]
++ optionals withPyInotify [ pyinotify ]
++ optionals withMusicBrainzNgs [ musicbrainzngs ]
++ optionals stdenv.isDarwin [ pyobjc ]
++ optionals withPahoMqtt [ paho-mqtt ];
patches = [ ./quodlibet-package-plugins.patch ];
buildInputs = stdenv.lib.optionals withGstPlugins [
gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad
];
propagatedBuildInputs = [
mutagen pygtk pygobject2 dbus-python gst-python intltool
];
postInstall = stdenv.lib.optionalString withGstPlugins ''
# Wrap quodlibet so it finds the GStreamer plug-ins
wrapProgram "$out/bin/quodlibet" --prefix \
GST_PLUGIN_SYSTEM_PATH ":" "$GST_PLUGIN_SYSTEM_PATH" \
'';
makeWrapperArgs = optionals (kakasi != null) [ "--prefix PATH : ${kakasi}/bin" ];
meta = {
description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
license = stdenv.lib.licenses.gpl2;
longDescription = ''
Quod Libet is a GTK+-based audio player written in Python, using
@ -74,7 +54,7 @@ in buildPythonApplication {
& internet radio, and all major audio formats.
'';
maintainers = [ stdenv.lib.maintainers.coroa ];
maintainers = with stdenv.lib.maintainers; [ coroa sauyon ];
homepage = https://quodlibet.readthedocs.io/en/latest/;
};
}

View file

@ -1,18 +0,0 @@
diff -Naur quodlibet-2.5.orig/setup.py quodlibet-2.5.new/setup.py
--- quodlibet-2.5.orig/setup.py 2012-12-19 08:47:41.000000000 +0000
+++ quodlibet-2.5.new/setup.py 2013-04-22 19:27:07.152631051 +0000
@@ -337,5 +338,14 @@
}
}
})
+ else:
+ from os.path import join
+
+ data_files = []
+ for type in ["playorder", "songsmenu", "editing", "events", "gstreamer"]:
+ data_files.append((join('quodlibet', 'plugins', type),
+ glob.glob(join('..', 'plugins', type, '*.py'))))
+ setup_kwargs.update({ 'data_files': data_files });
+
setup(**setup_kwargs)

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "zam-plugins-${version}";
version = "3.8";
version = "3.9";
src = fetchgit {
url = "https://github.com/zamaudio/zam-plugins.git";
deepClone = true;
rev = "830ab2e9dd1db8cf56d12c71057157e5d8e9fd74";
sha256 = "1hyly5inis59cvh0r7lyi203h8v5jh84ca9jpaljm53cvw6d93px";
rev = "4976cf204074c1dfaf344821e83e8d896b35107d";
sha256 = "1xgwl51sf2hgc5ikcnycyxaw9vy82lrcswn07b6av6i67qclm8f8";
};
nativeBuildInputs = [ pkgconfig ];

View file

@ -7,15 +7,15 @@
with stdenv.lib;
let
ver_branch = "1.22";
version = "1.22.0";
ver_branch = "1.24";
version = "1.24.0";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "0a5bvfl2h7r873al6q7c819h0kg564k9fh51rl6489z6lyvazfg4";
sha256 = "18j33bm54i8k7ncxcs69zqi4105s62n58jrydqn3ikrb71s9nl6d";
};
nativeBuildInputs = [ pkgconfig intltool ];

View file

@ -1,4 +1,4 @@
{ stdenv, callPackage, fetchurl, makeFontsConf }:
{ stdenv, callPackage, fetchurl, makeFontsConf }:
let
mkStudio = opts: callPackage (import ./common.nix opts) {
fontsConf = makeFontsConf {
@ -6,11 +6,11 @@ let
};
};
in rec {
stable = mkStudio rec {
stable = mkStudio {
pname = "android-studio";
version = "2.3.3.0";
build = "162.4069837";
sha256Hash = "0zzis9m2xp44xwkj0zvcqw5rh3iyd3finyi5nqhgira1fkacz0qk";
version = "3.0.0.18"; # "Android Studio 3.0"
build = "171.4408382";
sha256Hash = "18npm7ckdybj6vc2vndr0wd50da19m9z2j7wld2mdidnl5ggk4br";
meta = with stdenv.lib; {
description = "The Official IDE for Android (stable version)";
@ -25,16 +25,16 @@ in rec {
};
};
preview = mkStudio rec {
preview = mkStudio {
pname = "android-studio-preview";
version = "3.0.0.17"; # "Android Studio 3.0 RC 2"
build = "171.4402976";
sha256Hash = "18f5cq1dcmyjxaq520kqjac332bpp35pis02yplh6gzp65i4bvvf";
version = "3.1.0.0"; # "Android Studio 3.1 Canary 1"
build = "171.4415322";
sha256Hash = "08xgwv6mg2zxys9dqjfz66h60g640ni3snyb89ij0fkmd28rbxgj";
meta = stable.meta // {
description = "The Official IDE for Android (preview version)";
homepage = https://developer.android.com/studio/preview/index.html;
maintainers = with stdenv.lib.maintainers; [ primeos tomsmeets ];
maintainers = with stdenv.lib.maintainers; [ primeos ];
};
};
}

View file

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

View file

@ -106,16 +106,16 @@ rec {
anyedittools = buildEclipsePlugin rec {
name = "anyedit-${version}";
version = "2.7.0.201705171641";
version = "2.7.1.201709201439";
srcFeature = fetchurl {
url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
sha256 = "07k029nw5ibxpjc0siy06ihylbqrxllf59yz8c544gra8lc079c9";
sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh";
};
srcPlugin = fetchurl {
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.0/de.loskutov.anyedit.AnyEditTools_${version}.jar";
sha256 = "0wbm8zfjh7gxrw5sy9m3siddiazh5czgxp7zyzxwzkdqyqzqs70h";
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar";
sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q";
};
meta = with stdenv.lib; {
@ -394,7 +394,7 @@ rec {
sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp";
extraPostFetch =
''
mv "$out/${repo}-${rev}/releases/local-repo"/* "$out/"
mv "$out/${repo}-${rev}/releases/local-repo/"* "$out/"
'';
};
@ -424,6 +424,29 @@ rec {
};
};
spotbugs = buildEclipsePlugin rec {
name = "spotbugs-${version}";
version = "3.1.0.r201710241414-11c9895";
srcFeature = fetchurl {
url = "https://spotbugs.github.io/eclipse/features/com.github.spotbugs.plugin.eclipse_${version}.jar";
sha256 = "084dj2bid5issh28j32hi5w9vx5xs829h7d5lbz5hqj1fyn9h6bs";
};
srcPlugin = fetchurl {
url = "https://spotbugs.github.io/eclipse/plugins/com.github.spotbugs.plugin.eclipse_${version}.jar";
sha256 = "1mqpl3gx06f54w13jm01qd8fbniab3x989mi3lysx078vrp23jas";
};
meta = with stdenv.lib; {
homepage = https://spotbugs.github.io/;
description = "Plugin that uses static analysis to look for bugs in Java code";
license = licenses.lgpl21;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
};
testng = buildEclipsePlugin rec {
name = "testng-${version}";
version = "6.9.13.201609291640";

View file

@ -95,10 +95,10 @@
ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "ahungry-theme";
version = "1.6.0";
version = "1.8.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ahungry-theme-1.6.0.tar";
sha256 = "1b0x7g753gn7mym8286b937zmxv50jgdish2h6wc05w1g1lygwsz";
url = "https://elpa.gnu.org/packages/ahungry-theme-1.8.0.tar";
sha256 = "14dhnrlbjzrxk5ligf0z2im5bgnxpjqqzqcrmqg5355xrgpbpb7v";
};
packageRequires = [ emacs ];
meta = {
@ -700,10 +700,10 @@
ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild {
pname = "ebdb";
version = "0.3.4";
version = "0.4.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ebdb-0.3.4.tar";
sha256 = "1jj7s0646wqg9ykmpi52cc6m6m0gk2inqc2h6h7cr7gr4v7n2l00";
url = "https://elpa.gnu.org/packages/ebdb-0.4.1.tar";
sha256 = "0gv1q1xkhjab0l77c92znn6x0dfdbnj6hc48axmrx6a7zwbm3g2r";
};
packageRequires = [ cl-lib emacs seq ];
meta = {
@ -945,10 +945,10 @@
gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "gnorb";
version = "1.3.0";
version = "1.3.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gnorb-1.3.0.tar";
sha256 = "0c256473llp7ahl1wbm6m236cj2lhp9ms1clmxpsfv51ds27ljqv";
url = "https://elpa.gnu.org/packages/gnorb-1.3.1.tar";
sha256 = "1g6xldkc6l6zlzd1slqizbbd5b9k4pbr66nrf5svidgiy7mlifw5";
};
packageRequires = [ cl-lib ];
meta = {
@ -1556,10 +1556,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20171016";
version = "20171030";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20171016.tar";
sha256 = "1196kv83p953nd9c5gxkn8ndw2kmm2kfw34dldap6m89khqflz5a";
url = "https://elpa.gnu.org/packages/org-20171030.tar";
sha256 = "1lszws6b5s4r7w871cyigs433dflf6w0y33fj6rzrq8240d5092i";
};
packageRequires = [];
meta = {

View file

@ -0,0 +1,20 @@
{ stdenv, fetchgit, emacs }:
stdenv.mkDerivation {
name = "gn-mode-2017-09-21";
src = fetchgit {
url = "https://chromium.googlesource.com/chromium/src/tools/gn";
rev = "34f2780efb3fe14fe361ec161ad58440de5a6b36";
sha256 = "10cisqz3l6ny3471yi7y1z8v622lpl65zh0liqr6absvmy63g866";
};
buildInputs = [ emacs ];
buildPhase = ''
emacs --batch -f batch-byte-compile misc/emacs/gn-mode.el
'';
installPhase = ''
mkdir -p $out/share/emacs/site-lisp/
cp misc/emacs/gn-mode.el* $out/share/emacs/site-lisp/
'';
}

View file

@ -2,27 +2,28 @@
let
modules = [
{ name = "icicles.el"; sha256 = "175g8w620vy73pp3zyasfjspgljk6g0lki71kdnvw5z88w3s9d1n"; }
{ name = "icicles-chg.el"; sha256 = "1bx5xdhirvnrjqk4pk0sjp9bpj1syymsjnckklsw04gv6y0x8zik"; }
{ name = "icicles-cmd1.el"; sha256 = "1ff0mndin9zxrswwwq3a7b1s879rr6gy8rzxanr7kxg1ppciafad"; }
{ name = "icicles-cmd2.el"; sha256 = "1a44l86jacp9nsy4z260azz6y672drjw3w5a0jsc8w26fgsrnx1k"; }
{ name = "icicles-doc1.el"; sha256 = "0s3r4z3y06hd1nxp18wd0b8b88z2a7ryy0j8sx5fzibbmp58ars1"; }
{ name = "icicles-doc2.el"; sha256 = "0c10jg91qxyrg1zwiyi4m57dbw3yf43jdrpi4nnby3pkzh6i37ic"; }
{ name = "icicles-face.el"; sha256 = "0n0vcbhwgd2lyj7anq1zpwja28xry018qxbm8sprxkh6y3vlw8d2"; }
{ name = "icicles-fn.el"; sha256 = "1i10593a7hp465bxd86h7h7gwrdyqxx0d13in53z4jnab8icp3d4"; }
{ name = "icicles-mac.el"; sha256 = "1piq0jk8nz0hz9wwci7dkxnfxscdpygjzpj5zg3310vs22l7rrsz"; }
{ name = "icicles-mcmd.el"; sha256 = "0c4325yp84i46605nlxmjm6n0f4fh69shsihvd0wb9ryg0a8qa65"; }
{ name = "icicles-mode.el"; sha256 = "069wx5clqpsq2c9aavgd9xihvlad3g00iwwrc3cpl47v64dvlipq"; }
{ name = "icicles-opt.el"; sha256 = "16487l3361ca8l6il2c0z892843sc5l9v4gr7lx5fxbmrlsswvvn"; }
{ name = "icicles-var.el"; sha256 = "1a9cwxpi10x44fngxa7qnrg8hqfvdjb8s8k47gnn1rbh63blkkry"; }
{ name = "icicles.el"; sha256 = "10w1lghh9jqxxm5cszi2qyk24vnvazfywmyyz1v7zf6cyiwbndrz"; }
{ name = "icicles-chg.el"; sha256 = "020yg4hv120mcy7qvn76j85q6hl7mfcfv66w55c6izc9lbrvvnv8"; }
{ name = "icicles-cmd1.el"; sha256 = "1715x1vkiax93890gfjbzslxsn4swsv37spvyx7chy4s1mym9kfw"; }
{ name = "icicles-cmd2.el"; sha256 = "187k0gmn34fn6w1dw9hjf4i788y01vk47z7ac11ar4bddwh97ddx"; }
{ name = "icicles-doc1.el"; sha256 = "1bw5dkymn2xdrfrp80am0gqi0szs0xihny4qmgzgx6hfbng351qh"; }
{ name = "icicles-doc2.el"; sha256 = "0zd94m1a8mwwbrbcrahxxx8q34w8cg5lna4yww4m1gliyklww86s"; }
{ name = "icicles-face.el"; sha256 = "1mlz8dq7bgzp2cf5j37i25yw90ry657d2m8r93rdj67h7l4wyxhj"; }
{ name = "icicles-fn.el"; sha256 = "1cdghvgsr0b7pdq4lmnfm6kwwcqbk4wqf168kf2sjajbpa24ix96"; }
{ name = "icicles-mac.el"; sha256 = "1w5sgzbp8hyjzrmqd8bwivszaayzh8dkyqa0d751adiwjfs9sq9m"; }
{ name = "icicles-mcmd.el"; sha256 = "1lf2galn3g52hfz61avlr4ifyn5b42dfbmyq78cpzlq7hzc928v2"; }
{ name = "icicles-mode.el"; sha256 = "0gci04j6vx0vqsh4skarznklam1xibj7pjvy67kaip8b6a4zx9ip"; }
{ name = "icicles-opt.el"; sha256 = "17g35ancml0mvywagzhjrgmlr4rhm1wgb5wg3fsqhhldib9qlz56"; }
{ name = "icicles-var.el"; sha256 = "0ydixg41h09yncp8g2nv8zsyv8avg1hj2f3mgrmd2kf0n27bw2nv"; }
];
forAll = f: map f modules;
in
stdenv.mkDerivation {
name = "icicles-2014-11-06";
stdenv.mkDerivation rec {
version = "2017-10-28";
name = "icicles-${version}";
srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs-en/download/${name}"; inherit sha256; });
srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs/download/${name}"; inherit sha256; });
buildInputs = [ emacs ];
@ -30,11 +31,13 @@ stdenv.mkDerivation {
buildPhase = "emacs --batch -L . -f batch-byte-compile *.el";
installPhase = "mkdir -p $out/share/emacs/site-lisp; cp *.el *.elc $out/share/emacs/site-lisp/";
installPhase = "mkdir -p $out/share/emacs/site-lisp/emacswiki/${name}/; cp *.el *.elc $out/share/emacs/site-lisp/emacswiki/${name}/";
meta = {
homepage = http://www.emacswiki.org/emacs/Icicles;
description = "Enhance Emacs minibuffer input with cycling and powerful completion";
license = stdenv.lib.licenses.gpl2Plus;
platforms = emacs.meta.platforms;
maintainers = with stdenv.lib.maintainers; [ scolobb ];
};
}

File diff suppressed because it is too large Load diff

View file

@ -548,12 +548,12 @@
ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "ac-php";
version = "1.8";
version = "1.8.1";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php";
@ -569,12 +569,12 @@
ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }:
melpaBuild {
pname = "ac-php-core";
version = "1.8";
version = "1.8.1";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
@ -989,12 +989,12 @@
aes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "aes";
version = "0.8";
version = "0.9";
src = fetchFromGitHub {
owner = "Sauermann";
repo = "emacs-aes";
rev = "d78796facc034b09f379cda5f27090f3139305ec";
sha256 = "1y9bw2vkl952pha2dsi18swyr94mihgwlcg5m8hg4d5bfg2fzcb2";
rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af";
sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/33ca3106852f82624b36c7e3f03f5c0c620f304f/recipes/aes";
@ -1073,12 +1073,12 @@
ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ahungry-theme";
version = "1.6.0";
version = "1.8.0";
src = fetchFromGitHub {
owner = "ahungry";
repo = "color-theme-ahungry";
rev = "2b06d75096d6a1c06682b70e229f2c932e9eac2c";
sha256 = "1jxss4gnlg2vkgf10v1kj1c7isbh7vh040iqrzjkrhclf4qiag5d";
rev = "32ce7765c95559f6a0552cdaeedb6eb97bb7a476";
sha256 = "0c1xwqknhjx6y29fwca949r8d2fqb17mca5qc79pdxdlp3l606fg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme";
@ -3331,6 +3331,27 @@
license = lib.licenses.free;
};
}) {};
build-status = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "build-status";
version = "0.0.2";
src = fetchFromGitHub {
owner = "sshaw";
repo = "build-status";
rev = "c29a0146c5d0be274f5e17921e01698f572c23a1";
sha256 = "03f0h7sp0sr9kjyhvcx7i34lvc26f5x8nikfidihgzhrqpprv2b6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/23bbe012f313cf0cf4c45a66eb0bee9361ced564/recipes/build-status";
sha256 = "0ckyf0asll50gifx1v0qqzpimjms8i1rgw9bnqiyj861qn5hch92";
name = "build-status";
};
packageRequires = [ cl-lib ];
meta = {
homepage = "https://melpa.org/#/build-status";
license = lib.licenses.free;
};
}) {};
bundler = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }:
melpaBuild {
pname = "bundler";
@ -3670,12 +3691,12 @@
caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "caml";
version = "4.6.0beta2";
version = "4.6.0pre1";
src = fetchFromGitHub {
owner = "ocaml";
repo = "ocaml";
rev = "817604da4d38362b6b2bd4c7787a5add6741cd21";
sha256 = "1d49kiv9nfr624924qwmf0mfsvja28mvliipaylfbslyb3f7jpkl";
rev = "500625015d40f716e19278209faaa44216dcff58";
sha256 = "1s10wirx080yl0gd2n09lw5kj8yy1mbiipmcr8gpfyc8dq7kfjna";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
@ -4235,12 +4256,12 @@
circadian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "circadian";
version = "0.2.3";
version = "0.3.0";
src = fetchFromGitHub {
owner = "GuidoSchmidt";
repo = "circadian.el";
rev = "0034de1551de9f420f42267f3ec081351c2b5d7f";
sha256 = "1khczk5lsiicyjra7g5m3dcl1rc6g43zbypigkj3izx2dsa47n5d";
rev = "feec308591b43e7869d7a018d5c6fc7e943d53ee";
sha256 = "0j8an9ny3jk9nmlpi360n064m20nhah9p8rj6wb9xbvnfrri5zjk";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/circadian";
@ -4667,12 +4688,12 @@
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cmake-mode";
version = "3.10.0pre3";
version = "3.10.0pre4";
src = fetchFromGitHub {
owner = "Kitware";
repo = "CMake";
rev = "319622a49fb300cd8a7efd8378421a32204510de";
sha256 = "19n0s0kd051xh3av9nd5ncpccx6bmvay6115g0kqgmi8wbw7587q";
rev = "45da558742bad36be518e8d95dee0d0ec3793a64";
sha256 = "0qq7dhwcl290ymza5imc16cg3f9crxym1q6b4i7w9fax8x2vlc1m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
@ -5294,6 +5315,27 @@
license = lib.licenses.free;
};
}) {};
company-lsp = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, lib, lsp-mode, melpaBuild, s }:
melpaBuild {
pname = "company-lsp";
version = "1.0.0";
src = fetchFromGitHub {
owner = "tigersoldier";
repo = "company-lsp";
rev = "86fda23d29b732ba3987bf20901034da1515b077";
sha256 = "068lg2yrpnzq8cg73irnx7i41giww7m0ysnl2inc7hikhmm3a95y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5125f53307c1af3d9ccf2bae3c25e7d23dfe1932/recipes/company-lsp";
sha256 = "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l";
name = "company-lsp";
};
packageRequires = [ company emacs lsp-mode s ];
meta = {
homepage = "https://melpa.org/#/company-lsp";
license = lib.licenses.free;
};
}) {};
company-math = callPackage ({ company, fetchFromGitHub, fetchurl, lib, math-symbol-lists, melpaBuild }:
melpaBuild {
pname = "company-math";
@ -5360,12 +5402,12 @@
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "company-php";
version = "1.8";
version = "1.8.1";
src = fetchFromGitHub {
owner = "xcwen";
repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb";
rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php";
@ -5660,12 +5702,12 @@
conda = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }:
melpaBuild {
pname = "conda";
version = "0.0.7";
version = "0.0.8";
src = fetchFromGitHub {
owner = "necaris";
repo = "conda.el";
rev = "6ba9ef5d72ef613f478e07e2ebf57b47066beee7";
sha256 = "0mp6jzyvz3m41vb4kwwikyvcjgc8qgryyx71n1m50jr2i23s9nk2";
rev = "526be691824f4a32299f560a883913697bc4d847";
sha256 = "1jix3md6b02fypjm4y05av7acjkqryd1vqqz9wgxyinydlagrvh7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda";
@ -6329,6 +6371,27 @@
license = lib.licenses.free;
};
}) {};
cwl-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, yaml-mode }:
melpaBuild {
pname = "cwl-mode";
version = "0.2.4";
src = fetchFromGitHub {
owner = "tom-tan";
repo = "cwl-mode";
rev = "c5110c1e035535a1133a7107c0d2d55e5fe3c5b9";
sha256 = "088998r78bpy77pb2rhbr6a2fks5mcy3qyvyzlqwwl0v2gnscl59";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2309764cd56d9631dd97981a78b50b9fe793a280/recipes/cwl-mode";
sha256 = "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j";
name = "cwl-mode";
};
packageRequires = [ emacs yaml-mode ];
meta = {
homepage = "https://melpa.org/#/cwl-mode";
license = lib.licenses.free;
};
}) {};
cyberpunk-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cyberpunk-theme";
@ -6374,12 +6437,12 @@
cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cython-mode";
version = "0.27.1";
version = "0.27.2";
src = fetchFromGitHub {
owner = "cython";
repo = "cython";
rev = "32538fc162be830bf01ff96e43a020bc4924a1ee";
sha256 = "03v4ig9zlh8dz9s0c31f5hz2wfpvjydiidb0zgghnrshlqacpyj3";
rev = "41b4a28d7c7c505d58502c9cf69bde2e33091de0";
sha256 = "04k534xyr8816821y0lf2dq24bzvb40v99ijdwgy5qhv4rjxbr18";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode";
@ -8057,15 +8120,36 @@
license = lib.licenses.free;
};
}) {};
eacl = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "eacl";
version = "1.0.2";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "eacl";
rev = "c7a8d705295dc51cc306cb4c2d8773e24c4c74f4";
sha256 = "1f3liqrw55v9wnf7g475iabx4pf7gbg2x82mqrf22hhkvxzi2b2b";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/8223bec7eed97f0bad300af9caa4c8207322d39a/recipes/eacl";
sha256 = "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr";
name = "eacl";
};
packageRequires = [ emacs ivy ];
meta = {
homepage = "https://melpa.org/#/eacl";
license = lib.licenses.free;
};
}) {};
easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "easy-hugo";
version = "2.0.15";
version = "2.0.16";
src = fetchFromGitHub {
owner = "masasam";
repo = "emacs-easy-hugo";
rev = "0b55c207c6552223857de03bf8aec8be3344ed26";
sha256 = "103ivy1gmb22xacxj2b99zmilqy20nbzmwvmg5i6aqnya1vs97q0";
rev = "d55472bdb08850fb3b2b27a373630c68f6cd2ac0";
sha256 = "168wz1638arypqz6i0mzj1pw6mzgp6x10i2wz2vpgkw5p79zw46i";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo";
@ -9139,12 +9223,12 @@
elpy = callPackage ({ company, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }:
melpaBuild {
pname = "elpy";
version = "1.16.1";
version = "1.17.0";
src = fetchFromGitHub {
owner = "jorgenschaefer";
repo = "elpy";
rev = "1e65cb6e988df088c299572464335b6f149addcd";
sha256 = "01mfrn6mn8h9fkpkqg2shp21864ffjr7q5h3rpbnk6wpa3pmjc1m";
rev = "99f0b6401bff25d40b9f58123533271f7870a286";
sha256 = "06n0vr8y5s8y7q9v96z030l1i9n29p622p36biyi5cjcmgf5h09j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy";
@ -9440,12 +9524,12 @@
embrace = callPackage ({ cl-lib ? null, expand-region, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "embrace";
version = "0.1.3";
version = "0.1.4";
src = fetchFromGitHub {
owner = "cute-jumper";
repo = "embrace.el";
rev = "a57b4be5d60daf8c176f9bd35770540c2d3963c9";
sha256 = "0sn81a7f8g5i4q74byfkj0jlg4aj0rxpfvx9sqv8azcg6wq2f65l";
rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2";
sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6/recipes/embrace";
@ -9479,20 +9563,21 @@
license = lib.licenses.free;
};
}) {};
emms = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
emms = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "emms";
version = "4.3";
version = "4.4";
src = fetchgit {
url = "https://git.savannah.gnu.org/git/emms.git";
rev = "4cb3ae341847e8e8586373a95a458a453469812d";
sha256 = "0bmxlrk2p51bw5lgh2arkcz1v9bw6rpflwk778rdzn0rhzhvhp5b";
rev = "88fecd0234da595843ce6be4d3f9f2b755ff612d";
sha256 = "0ycm2lggljhzrb10r3c322c7bb580gk125x9nvpvjrvsp74p8im0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms";
sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94";
name = "emms";
};
packageRequires = [];
packageRequires = [ cl-lib ];
meta = {
homepage = "https://melpa.org/#/emms";
license = lib.licenses.free;
@ -10064,12 +10149,12 @@
erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erlang";
version = "20.1.2";
version = "20.1.3";
src = fetchFromGitHub {
owner = "erlang";
repo = "otp";
rev = "919ef5de2858e606d4a9be3e0e995b0802c76e33";
sha256 = "0y76ci80wmzrxvj90bhiz6cvwbis34kcc6dzas9xxsj92b6sh7sk";
rev = "a98379d0519c28f9bc9b673ed2c09fb1ad52456e";
sha256 = "1672yqqh7ql88c6ifv555wvqrj8nyn5a2nph43n2nc43h7hhz17c";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang";
@ -12585,6 +12670,27 @@
license = lib.licenses.free;
};
}) {};
flycheck-nimsuggest = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, nim-mode }:
melpaBuild {
pname = "flycheck-nimsuggest";
version = "0.8.1";
src = fetchFromGitHub {
owner = "yuutayamada";
repo = "flycheck-nimsuggest";
rev = "8b1c69e9aa924368bc4dadd4cde818ff158cd3f0";
sha256 = "0vnwy7b3xs2smbr6ah6yk8hq7vvsciq7d6m1qr91nfnazdgvxmvg";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/cb4170f002dbcd1906e81836f3ce035b1e81c379/recipes/flycheck-nimsuggest";
sha256 = "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv";
name = "flycheck-nimsuggest";
};
packageRequires = [ emacs flycheck nim-mode ];
meta = {
homepage = "https://melpa.org/#/flycheck-nimsuggest";
license = lib.licenses.free;
};
}) {};
flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild {
pname = "flycheck-objc-clang";
@ -19471,12 +19577,12 @@
import-js = callPackage ({ emacs, fetchFromGitHub, fetchurl, grizzl, lib, melpaBuild }:
melpaBuild {
pname = "import-js";
version = "1.0.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "Galooshi";
repo = "emacs-import-js";
rev = "15d395126f57408d770a72db2e5f43271f90fa52";
sha256 = "1ipbfacjx9vqqhvsf9sgfci8vqx0plks510w1gsjj0xwrpqn1f6l";
rev = "0a1032894445062b87dbe4e2c8cdba35ac25c250";
sha256 = "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/import-js";
@ -19992,6 +20098,27 @@
license = lib.licenses.free;
};
}) {};
iter2 = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "iter2";
version = "0.9.4";
src = fetchFromGitHub {
owner = "doublep";
repo = "iter2";
rev = "a0e41b2f55d50c08c59ffcc6e83a977c141bcc55";
sha256 = "0ccr9qjhc35wi07yckd9y26synihhsg8zwkxgqyzkx7avxkqfyhn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d94316660051ee0ba0c12e380e6203986440368f/recipes/iter2";
sha256 = "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65";
name = "iter2";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/iter2";
license = lib.licenses.free;
};
}) {};
ivy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ivy";
@ -20452,6 +20579,27 @@
license = lib.licenses.free;
};
}) {};
jetbrains = callPackage ({ cl-lib ? null, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "jetbrains";
version = "0.0.2";
src = fetchFromGitHub {
owner = "emacs-php";
repo = "jetbrains.el";
rev = "38e136079f3f2ddbe0e8b7dec01cf6b515e897d8";
sha256 = "1ji64qip5raf0lbv7fv36rd4fwa33zn0xi7sa0zrgf0kcsr0qasb";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/00dd4626e261d9831fc62d866d50b7257ee418c4/recipes/jetbrains";
sha256 = "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7";
name = "jetbrains";
};
packageRequires = [ cl-lib emacs f ];
meta = {
homepage = "https://melpa.org/#/jetbrains";
license = lib.licenses.free;
};
}) {};
jinja2-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "jinja2-mode";
@ -20518,12 +20666,12 @@
js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "js-auto-format-mode";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitHub {
owner = "ybiquitous";
repo = "js-auto-format-mode";
rev = "705e300a2c880f6dbfa830d6c69818b7a3a95c09";
sha256 = "1a3dwcknjydaxnyhaycgbmlncj92qkp3m5flmi6fyqjx11lz26ag";
rev = "e0b7ae9d1d70fa74abd91bb6f901bd46db5a22eb";
sha256 = "1z5vi8681afm7jsqwifnb35sja1s4b2j123b3pn0bv1j6b8iaq9j";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode";
@ -20956,24 +21104,24 @@
license = lib.licenses.free;
};
}) {};
kaolin-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
kaolin-themes = callPackage ({ autothemer, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "kaolin-theme";
version = "0.9";
pname = "kaolin-themes";
version = "1.0";
src = fetchFromGitHub {
owner = "ogdenwebb";
repo = "kaolin-theme";
rev = "d43ba0e8e6b13b08e4d74de20c6e594ebb225501";
sha256 = "0gg19rh5q1gl6ylwrmjq0dqh6p5fkms1av6bbgry6fqv8220xf8n";
repo = "emacs-kaolin-themes";
rev = "720762a42ad4cb4b325f78a9d41af380b8783501";
sha256 = "104prgkjqnnv1bqgpcl0di1q9sqkfnj4ibqvrk6ls32hw75shvdh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a67c2a3ad82efcb32ba4943c7ac10fe2768d9d51/recipes/kaolin-theme";
sha256 = "009064hhn39f9w9qxa3m0kwqhj5a12j7hg4916j9hslpwy5ghc0c";
name = "kaolin-theme";
url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw";
name = "kaolin-themes";
};
packageRequires = [ emacs ];
packageRequires = [ autothemer cl-lib emacs ];
meta = {
homepage = "https://melpa.org/#/kaolin-theme";
homepage = "https://melpa.org/#/kaolin-themes";
license = lib.licenses.free;
};
}) {};
@ -24629,6 +24777,27 @@
license = lib.licenses.free;
};
}) {};
nim-mode = callPackage ({ commenter, emacs, epc, fetchFromGitHub, fetchurl, flycheck, let-alist, lib, melpaBuild }:
melpaBuild {
pname = "nim-mode";
version = "0.4.1";
src = fetchFromGitHub {
owner = "nim-lang";
repo = "nim-mode";
rev = "86abed21b9b718ac65cc167f208e0bd5b92c79ed";
sha256 = "0h1paf9z6xvkay97ns74w2w9plwi46md5f2kik4jvjy74p57gxal";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/dc2ccb5f24b9d55c77eaa7952a9e6a2e0ed7be24/recipes/nim-mode";
sha256 = "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6";
name = "nim-mode";
};
packageRequires = [ commenter emacs epc flycheck let-alist ];
meta = {
homepage = "https://melpa.org/#/nim-mode";
license = lib.licenses.free;
};
}) {};
ninja-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ninja-mode";
@ -24682,8 +24851,8 @@
sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c885d9d9f1a37f05c715f89fae51efb580faced/recipes/nix-mode";
sha256 = "15xgqgrkypcplnfvl5j6w8abayzz8q0nw2wav01sdyx39ym005k3";
url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode";
sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5";
name = "nix-mode";
};
packageRequires = [ emacs ];
@ -25472,8 +25641,8 @@
src = fetchFromGitHub {
owner = "OmniSharp";
repo = "omnisharp-emacs";
rev = "d7a63cd5f592c131615a3b6523fc2b2a04a9f00a";
sha256 = "0cvsys9jyb0zbkj5q01q2fgjmcqvb12dxgfy049fl7a2gd9n55fj";
rev = "906e29a702237f039f24c215fdb561a728a3df1b";
sha256 = "1l1rzl7y5j2wmlgx7ivivwvwvbn4h7pg5s7yqsk65n9kb59ha8s8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp";
@ -26109,12 +26278,12 @@
org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "org-mru-clock";
version = "0.1.1";
version = "0.1.2";
src = fetchFromGitHub {
owner = "unhammer";
repo = "org-mru-clock";
rev = "096a7c514ab8487ec63def6281cf4dce24e3a626";
sha256 = "1hmyqvi1dj5yrlish8kw4sdh3yy0b0w33smw4cbjagp4rs29p3fp";
rev = "10f6a7021c82dc6795f4020e89889a5a72eb8832";
sha256 = "00f4l5w6p0l1x5ghpvbp5934m9m012fabvzb7apazwdr5c7xbd7q";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b36bf1c1faa4d7e38254416a293e56af96214136/recipes/org-mru-clock";
@ -27136,12 +27305,12 @@
ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild {
pname = "ox-hugo";
version = "0.3.1";
version = "0.4.1";
src = fetchFromGitHub {
owner = "kaushalmodi";
repo = "ox-hugo";
rev = "16cf5d595644ee4e05b05b351e0c4fdd5df0ac44";
sha256 = "1n5xbgwv9x2b9zmv7nw0x64qbll4ycjf2dp09rdj3m4bmcg2gv42";
rev = "c32359c71e7926c7f13039069d8d7481dfb9bc82";
sha256 = "1nw2dp6rn3hnnzzffvpr6yz7c154338h9i5ixxgh5vjxm9phzdml";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo";
@ -28705,12 +28874,12 @@
pocket-reader = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, kv, lib, melpaBuild, org-web-tools, ov, pocket-lib, rainbow-identifiers, s }:
melpaBuild {
pname = "pocket-reader";
version = "0.1";
version = "0.1.1";
src = fetchFromGitHub {
owner = "alphapapa";
repo = "pocket-reader.el";
rev = "93ef3a0737e93fb2e73f230fbb38f0b9f6f9d9bd";
sha256 = "02l1yd0s7dnq6wj7lldbbxqq1libdcczygc2lzx4rdc5jnr4lnsh";
rev = "e65a7e7529ece4fb7a738c062e73d5c07ace9574";
sha256 = "0bqxsvhmwvf0gpjmmh7pmzyw4lpcarj2prm52bgncch8x1f0gvnp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/835a7bf2f72987183e9d15ada7ae747fb5715c11/recipes/pocket-reader";
@ -30957,22 +31126,22 @@
license = lib.licenses.free;
};
}) {};
rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, seq }:
rg = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "rg";
version = "1.3.1";
version = "1.4.0";
src = fetchFromGitHub {
owner = "dajva";
repo = "rg.el";
rev = "081685a8c624220ece68d6dca8d60016585b04ff";
sha256 = "094fy48h0mmih3g9dq7xhhdqq3dx3jbrg1x9qcq2szl3danndl6z";
rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14";
sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm";
name = "rg";
};
packageRequires = [ cl-lib emacs s seq ];
packageRequires = [ cl-lib emacs s ];
meta = {
homepage = "https://melpa.org/#/rg";
license = lib.licenses.free;
@ -33457,12 +33626,12 @@
sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sparql-mode";
version = "2.1.1";
version = "3.0.0";
src = fetchFromGitHub {
owner = "ljos";
repo = "sparql-mode";
rev = "262c46a282ce54ca4745b863cf323d9bf69e2faa";
sha256 = "02ai86c15x0fbgg2bw6a9k3k825gkhl3hy9abq62dfgdwc0cqxmn";
rev = "e220a0c0c478fee0be3622442651981cdd82090c";
sha256 = "1k1ih6y9yq1fx13863yacx69v6f77b8xhkrx5i2dpm4h7wki1dg4";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode";
@ -35135,12 +35304,12 @@
tickscript-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "tickscript-mode";
version = "0.3.1";
version = "0.4";
src = fetchFromGitHub {
owner = "msherry";
repo = "tickscript-mode";
rev = "eb6eafee2df253a0f1356f260cc7f435ab68aea2";
sha256 = "04pd1dvvs914f98yaq5n0nv1jbjr2sjgi3a288vpismrmxfybcch";
rev = "9acf389dd055ae77c92170802769838810472490";
sha256 = "1v60y244papzrirwqk9c2wcwgz4qp9h7m3887kvgr5ffn5imjss8";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode";
@ -37237,22 +37406,22 @@
license = lib.licenses.free;
};
}) {};
winum = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
winum = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "winum";
version = "1.0.2";
version = "2.0.0";
src = fetchFromGitHub {
owner = "deb0ch";
repo = "emacs-winum";
rev = "8e886302c7e1d8fd521a95e0f00d6efab295a883";
sha256 = "19rf806v3yv6qy6p8mf54g1whdrh7vc107z31kqaqdwq681fhi37";
rev = "c56d1cdb8d1723eb4c0d7a7eb3ecd2697739146c";
sha256 = "09jd5srlnd4060hs719qil84ssmnvq196bz7ywaswgapv1gs1h6r";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c1caa7a54a910a44322fdee300e8cce6ddcde071/recipes/winum";
sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw";
name = "winum";
};
packageRequires = [ cl-lib ];
packageRequires = [ cl-lib dash ];
meta = {
homepage = "https://melpa.org/#/winum";
license = lib.licenses.free;
@ -38018,8 +38187,8 @@
version = "1.80";
src = fetchhg {
url = "https://www.yatex.org/hgrepos/yatex/";
rev = "ca7cf34e959c";
sha256 = "19pczpzl0wvkdassskcssq5qrpica0bffqxxi8sqp1j35px6v4ma";
rev = "16763e5b7481";
sha256 = "1mrcc9amz0kflm570bd2cprhin0z8lr668k2s56mj6shixb61dwh";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";
@ -38276,12 +38445,12 @@
zoom = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "zoom";
version = "0.1.0";
version = "0.2.0";
src = fetchFromGitHub {
owner = "cyrus-and";
repo = "zoom";
rev = "ed8aca43820678ff6e7b8ed697cba8dbb3a6136e";
sha256 = "1na1syvbayqwbsvd1d0ajyzjvhg8q3s3mqrx82ffcbxr0ijyzzj8";
rev = "d92ea444df6f6bb6cae92242f3269582d1b8ab40";
sha256 = "08riz3dd19c1dixm3c6j5dkkwjpgcib05pxq611w8z0mgsn0hsc5";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom";

View file

@ -1,10 +1,10 @@
{ callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20171016";
version = "20171030";
src = fetchurl {
url = "http://orgmode.org/elpa/org-20171016.tar";
sha256 = "1v89wl8xlxavvv2kdd5vms0rwpqaw2x73q0162ybxmrzf4a5f5mw";
url = "http://orgmode.org/elpa/org-20171030.tar";
sha256 = "1g2dyzy1844lli2hhfjnbskn1mskccgaaf0mxb1cm0zhhas8bnfd";
};
packageRequires = [];
meta = {
@ -14,10 +14,10 @@
}) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib";
version = "20171016";
version = "20171030";
src = fetchurl {
url = "http://orgmode.org/elpa/org-plus-contrib-20171016.tar";
sha256 = "0xy2xrndlhs4kyvh6mmv24dnh3fn5p63d2gaimnrypf1p8znwzh4";
url = "http://orgmode.org/elpa/org-plus-contrib-20171030.tar";
sha256 = "0pq2hs5d2i6s036pcs0jn6ld2p1ap08dmbjf17hsh899741mg9cj";
};
packageRequires = [];
meta = {

View file

@ -32,7 +32,7 @@ let
build_dir=$PWD
cd $TMPDIR
local_path=$(basename ${store_path} .zip | sed -e 's/^[a-z0-9]*-//')
local_path=$(basename ${url} .zip)
cp -r ${store_path} $local_path
chmod u+rwX -R $local_path

View file

@ -3,18 +3,18 @@
stdenv.mkDerivation rec {
name = "typora-${version}";
version = "0.9.31";
version = "0.9.38";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
sha256 = "786b5164d9c63ecc23eb427c5ff393285ce8fd540c5bfdd5c1464655fac87a42";
sha256 = "bf6a069c5da4a7dc289bdb3c8d27e7a81daeaee99488d4d3b512c6b673780557";
}
else
fetchurl {
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
sha256 = "a8fe53f8984d9f8c4e06c14affbb616be58a91cd2b475b9681fb18a6e21930d1";
sha256 = "edd092e96ebf69503cf6b39b77a61ec5e3185f8a1447da0bed063fa11861c1b9";
}
;
@ -57,8 +57,10 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out
dpkg -x $src $out
cp -av $out/usr/* $out
mv $out/usr/bin $out
mv $out/usr/share $out
rm $out/bin/typora
rmdir $out/usr
# Otherwise it looks "suspicious"
chmod -R g-w $out
@ -81,9 +83,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A minimal Markdown reading & writing app";
homepage = https://typora.io;
license = licenses.free;
maintainers = with stdenv.lib.maintainers; [ jensbin ];
license = licenses.unfree;
maintainers = with maintainers; [ jensbin ];
platforms = [ "x86_64-linux" "i686-linux" ];
};
}

View file

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

View file

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform.";
cfg = {
version = "7.0.7-8";
sha256 = "0h2jbaxrxrmdcr5crf1d93sc60v4zfqrrl3w79md6h11wf57ksbp";
version = "7.0.7-9";
sha256 = "0p0879chcfrghcamwgxxcmaaj04xv0z91ris7hxi37qdw8c7836w";
patches = [];
};
in

View file

@ -14,8 +14,8 @@ let
else throw "ImageMagick is not supported on this platform.";
cfg = {
version = "6.9.9-20";
sha256 = "1pz8clmhnq26vdsp1j21czq3nfbvrmfdz30k7na7w4vh7wqxsrx1";
version = "6.9.9-21";
sha256 = "0241g3c207rawn61bz8rc5gz55k5mi2b0n3zlwa0jv9xczlkd6a9";
patches = [];
}
# Freeze version on mingw so we don't need to port the patch too often.

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
name = "ahoviewer-${version}";
version = "1.4.8";
version = "1.4.9";
src = fetchFromGitHub {
owner = "ahodesuka";
repo = "ahoviewer";
rev = version;
sha256 = "0fsak22hpi2r8zqysswdyngaf3n635qvclqh1p0g0wrkfza4dbc4";
sha256 = "194h3k5zvd8gjrbs91qba7d9h7i30yh4rjk4w3aa1vwvv0qm2amx";
};
enableParallelBuilding = true;
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://github.com/ahodesuka/ahoviewer;
description = "A GTK2 image viewer, manga reader, and booru browser";
maintainers = [ maintainers.skrzyp ];
maintainers = with maintainers; [ skrzyp xzfc ];
license = licenses.mit;
platforms = platforms.allBut [ "darwin" "cygwin" ];
};

View file

@ -66,5 +66,59 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
maintainers = with maintainers; [ hodapp ];
license = licenses.gpl2;
knownVulnerabilities = [
"CVE-2013-1953"
"CVE-2016-7392"
"CVE-2017-9151"
"CVE-2017-9152"
"CVE-2017-9153"
"CVE-2017-9154"
"CVE-2017-9155"
"CVE-2017-9156"
"CVE-2017-9157"
"CVE-2017-9158"
"CVE-2017-9159"
"CVE-2017-9160"
"CVE-2017-9161"
"CVE-2017-9162"
"CVE-2017-9163"
"CVE-2017-9164"
"CVE-2017-9165"
"CVE-2017-9166"
"CVE-2017-9167"
"CVE-2017-9168"
"CVE-2017-9169"
"CVE-2017-9170"
"CVE-2017-9171"
"CVE-2017-9172"
"CVE-2017-9173"
"CVE-2017-9174"
"CVE-2017-9175"
"CVE-2017-9176"
"CVE-2017-9177"
"CVE-2017-9178"
"CVE-2017-9179"
"CVE-2017-9180"
"CVE-2017-9181"
"CVE-2017-9182"
"CVE-2017-9183"
"CVE-2017-9184"
"CVE-2017-9185"
"CVE-2017-9186"
"CVE-2017-9187"
"CVE-2017-9188"
"CVE-2017-9189"
"CVE-2017-9190"
"CVE-2017-9191"
"CVE-2017-9192"
"CVE-2017-9193"
"CVE-2017-9194"
"CVE-2017-9195"
"CVE-2017-9196"
"CVE-2017-9197"
"CVE-2017-9198"
"CVE-2017-9199"
"CVE-2017-9200"
];
};
}

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchurl, cmake, extra-cmake-modules, wrapGAppsHook
{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
# For `digitaglinktree`
, perl, sqlite
@ -33,8 +33,8 @@
, liblqr1
, libqtav
, libusb1
, mesa
, marble
, mesa
, mysql
, opencv3
, pcre
@ -53,11 +53,11 @@ mkDerivation rec {
version = "5.7.0";
src = fetchurl {
url = "http://download.kde.org/stable/digikam/${name}.tar.xz";
url = "mirror://kde/stable/digikam/${name}.tar.xz";
sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n";
};
nativeBuildInputs = [ cmake extra-cmake-modules kdoctools wrapGAppsHook ];
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
buildInputs = [
bison

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