3
0
Fork 0
forked from mirrors/nixpkgs

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. # Mentioned users will get code review requests.
# This file # This file
.github/CODEOWNERS @edolstra /.github/CODEOWNERS @edolstra
# Boostraping and core infra # Boostraping and core infra
pkgs/stdenv/ @edolstra /pkgs/stdenv @edolstra
pkgs/build-support/cc-wrapper/ @edolstra /pkgs/build-support/cc-wrapper @edolstra
# Libraries # 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 # Python-related code and docs
pkgs/top-level/python-packages.nix @FRidh /pkgs/top-level/python-packages.nix @FRidh
pkgs/development/interpreters/python/* @FRidh /pkgs/development/interpreters/python @FRidh
pkgs/development/python-modules/* @FRidh /pkgs/development/python-modules @FRidh
doc/languages-frameworks/python.md @FRidh /doc/languages-frameworks/python.md @FRidh
# Haskell # Haskell
pkgs/development/compilers/ghc @peti /pkgs/development/compilers/ghc @peti
pkgs/development/haskell-modules @peti /pkgs/development/haskell-modules @peti
pkgs/development/haskell-modules/default.nix @peti /pkgs/development/haskell-modules/default.nix @peti
pkgs/development/haskell-modules/generic-builder.nix @peti /pkgs/development/haskell-modules/generic-builder.nix @peti
pkgs/development/haskell-modules/hoogle.nix @peti /pkgs/development/haskell-modules/hoogle.nix @peti
# R # R
pkgs/applications/science/math/R @peti /pkgs/applications/science/math/R @peti
pkgs/development/r-modules @peti /pkgs/development/r-modules @peti
# Ruby
/pkgs/development/interpreters/ruby @zimbatm
/pkgs/development/ruby-modules @zimbatm
# Darwin-related # Darwin-related
/pkgs/stdenv/darwin/ @org/darwin-maintainers /pkgs/stdenv/darwin @NixOS/darwin-maintainers
/pkgs/os-specific/darwin/ @org/darwin-maintainers /pkgs/os-specific/darwin @NixOS/darwin-maintainers
# Beam-related (Erlang, Elixir, LFE, etc) # Beam-related (Erlang, Elixir, LFE, etc)
pkgs/development/beam-modules/* @gleber /pkgs/development/beam-modules @gleber
pkgs/development/interpreters/erlang/* @gleber /pkgs/development/interpreters/erlang @gleber
pkgs/development/interpreters/lfe/* @gleber /pkgs/development/interpreters/lfe @gleber
pkgs/development/interpreters/elixir/* @gleber /pkgs/development/interpreters/elixir @gleber
pkgs/development/tools/build-managers/rebar/* @gleber /pkgs/development/tools/build-managers/rebar @gleber
pkgs/development/tools/build-managers/rebar3/* @gleber /pkgs/development/tools/build-managers/rebar3 @gleber
pkgs/development/tools/erlang/* @gleber /pkgs/development/tools/erlang @gleber
# Jetbrains # Jetbrains
pkgs/applications/editors/jetbrains @edwtjo /pkgs/applications/editors/jetbrains @edwtjo
# Eclipse # 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). The old config generation system used impure shell scripts and could break in specific circumstances (see #1234).
* `meta.description` should: * `meta.description` should:
* Be capitalized * Be capitalized.
* Not start with the package name * Not start with the package name.
* Not have a dot at the end * 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 ## Writing good commit messages

View file

@ -55,6 +55,10 @@ configuration file located at
</programlisting> </programlisting>
</para> </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"> <section xml:id="sec-allow-broken">
<title>Installing broken packages</title> <title>Installing broken packages</title>

View file

@ -165,7 +165,7 @@ run the script in the `python3` shell.
```py ```py
#! /usr/bin/env nix-shell #! /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 import numpy

View file

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

View file

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

View file

@ -664,4 +664,34 @@ cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
</section> </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> </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 <listitem><para>A list of strings passed as additional flags to
<command>make</command>. These flags are also used by the default <command>make</command>. These flags are also used by the default
install and check phase. For setting make flags specific to the install and check phase. For setting make flags specific to the
build phase, use <varname>buildFlags</varname> (see build phase, use <varname>buildFlags</varname> (see below).
below).</para></listitem>
<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>
<varlistentry> <varlistentry>

View file

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

View file

@ -338,7 +338,7 @@ rec {
# Type-check the remaining definitions, and merge them. # Type-check the remaining definitions, and merge them.
mergedValue = foldl' (res: def: mergedValue = foldl' (res: def:
if type.check def.value then res 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; (type.merge loc defsFinal) defsFinal;
isDefined = defsFinal != []; isDefined = defsFinal != [];

View file

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

View file

@ -61,6 +61,16 @@ checkConfigError() {
checkConfigOutput "false" config.enable ./declare-enable.nix checkConfigOutput "false" config.enable ./declare-enable.nix
checkConfigError 'The option .* defined in .* does not exist.' config.enable ./define-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. # Check mkForce without submodules.
set -- config.enable ./declare-enable.nix ./define-enable.nix set -- config.enable ./declare-enable.nix ./define-enable.nix
checkConfigOutput "true" "$@" checkConfigOutput "true" "$@"
@ -126,7 +136,7 @@ checkConfigOutput "true" "$@" ./define-module-check.nix
# Check coerced value. # Check coerced value.
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.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 cat <<EOF
====== module tests ====== ====== 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

@ -109,11 +109,64 @@ rec {
int = mkOptionType rec { int = mkOptionType rec {
name = "int"; name = "int";
description = "integer"; description = "signed integer";
check = isInt; check = isInt;
merge = mergeOneOption; 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 { str = mkOptionType {
name = "str"; name = "str";
description = "string"; description = "string";
@ -172,7 +225,7 @@ rec {
}; };
# drop this in the future: # 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 { listOf = elemType: mkOptionType rec {
name = "listOf"; name = "listOf";
@ -189,7 +242,7 @@ rec {
).optionalValue ).optionalValue
) def.value ) def.value
else 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 ++ ["*"]); getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
getSubModules = elemType.getSubModules; getSubModules = elemType.getSubModules;
substSubModules = m: listOf (elemType.substSubModules m); substSubModules = m: listOf (elemType.substSubModules m);
@ -260,7 +313,7 @@ rec {
let nrNulls = count (def: def.value == null) defs; in let nrNulls = count (def: def.value == null) defs; in
if nrNulls == length defs then null if nrNulls == length defs then null
else if nrNulls != 0 then 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; else elemType.merge loc defs;
getSubOptions = elemType.getSubOptions; getSubOptions = elemType.getSubOptions;
getSubModules = elemType.getSubModules; getSubModules = elemType.getSubModules;
@ -288,8 +341,17 @@ rec {
}).config; }).config;
getSubOptions = prefix: (evalModules getSubOptions = prefix: (evalModules
{ modules = opts'; inherit prefix; { modules = opts'; inherit prefix;
# FIXME: hack to get shit to evaluate. # This is a work-around due to the fact that some sub-modules,
args = { name = ""; }; }).options; # 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'; getSubModules = opts';
substSubModules = m: submodule m; substSubModules = m: submodule m;
functor = (defaultFunctor name) // { functor = (defaultFunctor name) // {

View file

@ -18,6 +18,7 @@ import os
import re import re
import requests import requests
import toolz import toolz
from concurrent.futures import ThreadPoolExecutor as pool
INDEX = "https://pypi.io/pypi" INDEX = "https://pypi.io/pypi"
"""url of PyPI""" """url of PyPI"""
@ -235,7 +236,8 @@ def main():
packages = map(os.path.abspath, args.package) 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))) 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 <listitem><para>A boolean, its values can be <literal>true</literal> or
<literal>false</literal>.</para></listitem> <literal>false</literal>.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>types.int</varname></term>
<listitem><para>An integer.</para></listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><varname>types.path</varname></term> <term><varname>types.path</varname></term>
<listitem><para>A filesystem path, defined as anything that when coerced to <listitem><para>A filesystem path, defined as anything that when coerced to
@ -39,7 +35,59 @@
</varlistentry> </varlistentry>
</variablelist> </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> <variablelist>
<varlistentry> <varlistentry>
@ -68,7 +116,7 @@
<section><title>Value Types</title> <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> <variablelist>
<varlistentry> <varlistentry>
@ -84,6 +132,17 @@
<replaceable>sep</replaceable>, e.g. <literal>types.separatedString <replaceable>sep</replaceable>, e.g. <literal>types.separatedString
"|"</literal>.</para></listitem> "|"</literal>.</para></listitem>
</varlistentry> </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> <varlistentry>
<term><varname>types.submodule</varname> <replaceable>o</replaceable></term> <term><varname>types.submodule</varname> <replaceable>o</replaceable></term>
<listitem><para>A set of sub options <replaceable>o</replaceable>. <listitem><para>A set of sub options <replaceable>o</replaceable>.

View file

@ -16,7 +16,8 @@
hardware.</para></listitem> hardware.</para></listitem>
<listitem><para>The NixOS manual is available on virtual console 8 <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> <listitem><para>You get logged in as <literal>root</literal>
(with empty password).</para></listitem> (with empty password).</para></listitem>
@ -139,6 +140,11 @@
the GRUB boot loader is to be installed. Without it, NixOS cannot the GRUB boot loader is to be installed. Without it, NixOS cannot
boot.</para> 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>, <para>Another critical option is <option>fileSystems</option>,
specifying the file systems that need to be mounted by NixOS. specifying the file systems that need to be mounted by NixOS.
However, you typically dont need to set it yourself, because 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. pass literal dollar signs through Postfix, double them.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>

View file

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

View file

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

View file

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

View file

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

View file

@ -148,11 +148,11 @@ in
[ [
{ {
hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ]; 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" ]; 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} #! ${pkgs.stdenv.shell}
${cfg.extraSessionCommands} ${cfg.extraSessionCommands}
PATH="${sway}/bin:$PATH" 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 { swayJoined = pkgs.symlinkJoin {
name = "sway-wrapped"; name = "sway-wrapped";
@ -53,7 +53,8 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages; environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
security.wrappers.sway = { security.wrappers.sway = {
source = "${swayJoined}/bin/sway"; program = "sway-setcap";
source = "${sway}/bin/sway";
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip"; capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
owner = "root"; owner = "root";
group = "sway"; 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 { certs = mkOption {
default = { }; default = { };
type = with types; attrsOf (submodule certOpts); type = with types; attrsOf (submodule certOpts);
@ -177,7 +191,9 @@ in
cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ] cmdline = [ "-v" "-d" domain "--default_root" data.webroot "--valid_min" cfg.validMin ]
++ optionals (data.email != null) [ "--email" data.email ] ++ optionals (data.email != null) [ "--email" data.email ]
++ concatMap (p: [ "-f" p ]) data.plugins ++ concatMap (p: [ "-f" p ]) data.plugins
++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains); ++ concatLists (mapAttrsToList (name: root: [ "-d" (if root == null then name else "${name}:${root}")]) data.extraDomains)
++ (if cfg.production then []
else ["--server" "https://acme-staging.api.letsencrypt.org/directory"]);
acmeService = { acmeService = {
description = "Renew ACME Certificate for ${cert}"; description = "Renew ACME Certificate for ${cert}";
after = [ "network.target" "network-online.target" ]; after = [ "network.target" "network-online.target" ];

View file

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

View file

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

View file

@ -67,7 +67,7 @@ in
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
example = literalExample "0.0.0.0"; 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 { port = mkOption {

View file

@ -3,16 +3,16 @@
with lib; with lib;
let let
cfg = config.services.postage; cfg = config.services.pgmanage;
confFile = pkgs.writeTextFile { confFile = pkgs.writeTextFile {
name = "postage.conf"; name = "pgmanage.conf";
text = '' text = ''
connection_file = ${postageConnectionsFile} connection_file = ${pgmanageConnectionsFile}
allow_custom_connections = ${builtins.toJSON cfg.allowCustomConnections} allow_custom_connections = ${builtins.toJSON cfg.allowCustomConnections}
postage_port = ${toString cfg.port} pgmanage_port = ${toString cfg.port}
super_only = ${builtins.toJSON cfg.superOnly} super_only = ${builtins.toJSON cfg.superOnly}
@ -20,7 +20,7 @@ let
login_timeout = ${toString cfg.loginTimeout} 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} data_root = ${cfg.dataRoot}
@ -33,24 +33,23 @@ let
''; '';
}; };
postageConnectionsFile = pkgs.writeTextFile { pgmanageConnectionsFile = pkgs.writeTextFile {
name = "postage-connections.conf"; name = "pgmanage-connections.conf";
text = concatStringsSep "\n" text = concatStringsSep "\n"
(mapAttrsToList (name : conn : "${name}: ${conn}") cfg.connections); (mapAttrsToList (name : conn : "${name}: ${conn}") cfg.connections);
}; };
postage = "postage"; pgmanage = "pgmanage";
in {
options.services.postage = { pgmanageOptions = {
enable = mkEnableOption "PostgreSQL Administration for the web"; enable = mkEnableOption "PostgreSQL Administration for the web";
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.postage; default = pkgs.pgmanage;
defaultText = "pkgs.postage"; defaultText = "pkgs.pgmanage";
description = '' 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"; "mini-server" = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
}; };
description = '' description = ''
Postage requires at least one PostgreSQL server be defined. pgmanage requires at least one PostgreSQL server be defined.
</para><para> </para><para>
Detailed information about PostgreSQL connection strings is available at: Detailed information about PostgreSQL connection strings is available at:
<link xlink:href="http://www.postgresql.org/docs/current/static/libpq-connect.html"/> <link xlink:href="http://www.postgresql.org/docs/current/static/libpq-connect.html"/>
</para><para> </para><para>
Note that you should not specify your user name or password. That Note that you should not specify your user name or password. That
information will be entered on the login screen. If you specify a 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. connect to a database.
''; '';
}; };
@ -78,7 +77,7 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' 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. connection from the login screen.
''; '';
}; };
@ -87,7 +86,7 @@ in {
type = types.int; type = types.int;
default = 8080; default = 8080;
description = '' 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; type = types.bool;
default = true; default = true;
description = '' 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. addresses only.
''; '';
}; };
@ -104,10 +103,10 @@ in {
type = types.bool; type = types.bool;
default = true; default = true;
description = '' 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 login. The recommended value is true and will restrict users who are not
super users from logging in to any PostgreSQL instance through 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. test if the user is a superuser.
''; '';
}; };
@ -116,8 +115,8 @@ in {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
description = '' description = ''
This tells Postage to only allow users in a certain PostgreSQL group to This tells pgmanage to only allow users in a certain PostgreSQL group to
login to Postage. Note that a connection will be made to PostgreSQL in 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. order to test if the user is a member of the login group.
''; '';
}; };
@ -133,10 +132,10 @@ in {
dataRoot = mkOption { dataRoot = mkOption {
type = types.str; type = types.str;
default = "/var/lib/postage"; default = "/var/lib/pgmanage";
description = '' description = ''
This tells Postage where to put the SQL file history. All tabs are saved This tells pgmanage where to put the SQL file history. All tabs are saved
to this location so that if you get disconnected from Postage you to this location so that if you get disconnected from pgmanage you
don't lose your work. don't lose your work.
''; '';
}; };
@ -156,15 +155,15 @@ in {
}); });
default = null; default = null;
description = '' 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 reside. If you use these options then you'll only be able to access
Postage through a secure TLS connection. These options are only pgmanage through a secure TLS connection. These options are only
necessary if you wish to connect directly to Postage using a secure TLS necessary if you wish to connect directly to pgmanage using a secure TLS
connection. As an alternative, you can set up Postage in a reverse proxy connection. As an alternative, you can set up pgmanage in a reverse proxy
configuration. This allows your web server to terminate the secure 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: 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 = { in {
description = "postage - PostgreSQL Administration for the web";
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" ]; wants = [ "postgresql.service" ];
after = [ "postgresql.service" ]; after = [ "postgresql.service" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
User = postage; User = pgmanage;
Group = postage; Group = pgmanage;
ExecStart = "${pkgs.postage}/sbin/postage -c ${confFile}" + ExecStart = "${pkgs.pgmanage}/sbin/pgmanage -c ${confFile}" +
optionalString cfg.localOnly " --local-only=true"; optionalString cfg.localOnly " --local-only=true";
}; };
}; };
users = { users = {
users."${postage}" = { users."${pgmanage}" = {
name = postage; name = pgmanage;
group = postage; group = pgmanage;
home = cfg.dataRoot; home = cfg.dataRoot;
createHome = true; createHome = true;
}; };
groups."${postage}" = { groups."${pgmanage}" = {
name = postage; name = pgmanage;
};
}; };
}; };
})
];
} }

View file

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

View file

@ -572,7 +572,7 @@ in {
rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks
mkdir -p ${cfg.statePath}/config 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 # The uploads directory is hardcoded somewhere deep in rails. It is
# symlinked in the gitlab package to /run/gitlab/uploads to make it # symlinked in the gitlab package to /run/gitlab/uploads to make it
@ -619,7 +619,7 @@ in {
fi fi
# enable required pg_trgm extension for gitlab # 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 # 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 ${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 # The gitlab:shell:create_hooks task seems broken for fixing links
# so we instead delete all the hooks and create them anew # 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 ${gitlab-rake}/bin/gitlab-rake gitlab:shell:create_hooks RAILS_ENV=production
# Change permissions in the last step because some of the # Change permissions in the last step because some of the

View file

@ -135,8 +135,9 @@ in
}; };
}; };
services.mingetty.helpLine = mkIf cfg.showManual services.mingetty.helpLine = "\nRun `nixos-help` "
"\nPress <Alt-F${toString cfg.ttyNumber}> for the NixOS manual."; + 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" '' graphiteApiConfig = pkgs.writeText "graphite-api.yaml" ''
time_zone: ${config.time.timeZone}
search_index: ${dataDir}/index search_index: ${dataDir}/index
${optionalString (!isNull config.time.timeZone) ''time_zone: ${config.time.timeZone}''}
${optionalString (cfg.api.finders != []) ''finders:''} ${optionalString (cfg.api.finders != []) ''finders:''}
${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders} ${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders}
${optionalString (cfg.api.functions != []) ''functions:''} ${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 = { systemd.services.graphiteWeb = {
description = "Graphite Web Interface"; description = "Graphite Web Interface";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
@ -477,8 +485,8 @@ in {
PYTHONPATH = let PYTHONPATH = let
penv = pkgs.python.buildEnv.override { penv = pkgs.python.buildEnv.override {
extraLibs = [ extraLibs = [
pkgs.python27Packages.graphite_web pythonPackages.graphite_web
pkgs.python27Packages.pysqlite pythonPackages.pysqlite
]; ];
}; };
penvPack = "${penv}/${pkgs.python.sitePackages}"; penvPack = "${penv}/${pkgs.python.sitePackages}";
@ -516,17 +524,17 @@ in {
fi fi
# Only collect static files when graphite_web changes. # 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} mkdir -p ${staticDir}
${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear ${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear
chown -R graphite:graphite ${staticDir} 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 fi
''; '';
}; };
environment.systemPackages = [ pkgs.python27Packages.graphite_web ]; environment.systemPackages = [ pythonPackages.graphite_web ];
}) }))
(mkIf cfg.api.enable { (mkIf cfg.api.enable {
systemd.services.graphiteApi = { systemd.services.graphiteApi = {
@ -536,7 +544,7 @@ in {
environment = { environment = {
PYTHONPATH = let PYTHONPATH = let
aenv = pkgs.python.buildEnv.override { 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}"; in "${aenv}/${pkgs.python.sitePackages}";
GRAPHITE_API_CONFIG = graphiteApiConfig; 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 = { serviceConfig = {
User = "dnschain"; User = "dnschain";
Restart = "on-failure"; Restart = "on-failure";
ExecStart = "${pkgs.dnschain}/bin/dnschain"; ExecStart = "${pkgs.nodePackages.dnschain}/bin/dnschain";
}; };
preStart = '' preStart = ''

View file

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

View file

@ -32,6 +32,11 @@ let
ipv6.ip6-privacy=2 ipv6.ip6-privacy=2
ethernet.cloned-mac-address=${cfg.ethernet.macAddress} ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
wifi.cloned-mac-address=${cfg.wifi.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; 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 { useDnsmasq = mkOption {
type = types.bool; type = types.bool;

View file

@ -32,8 +32,10 @@ let
${caConf} ${caConf}
''; '';
strongswanConf = {setup, connections, ca, secrets}: toFile "strongswan.conf" '' strongswanConf = {setup, connections, ca, secrets, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
charon { charon {
${if managePlugins then "load_modular = no" else ""}
${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""}
plugins { plugins {
stroke { stroke {
secrets_file = ${ipsecSecrets secrets} secrets_file = ${ipsecSecrets secrets}
@ -112,6 +114,25 @@ in
file. 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 { config = with cfg; mkIf enable {
@ -122,7 +143,7 @@ in
wants = [ "keys.target" ]; wants = [ "keys.target" ];
after = [ "network-online.target" "keys.target" ]; after = [ "network-online.target" "keys.target" ];
environment = { environment = {
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets; }; STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets managePlugins enabledPlugins; };
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.strongswan}/sbin/ipsec start --nofork"; ExecStart = "${pkgs.strongswan}/sbin/ipsec start --nofork";

View file

@ -8,9 +8,9 @@ let
stateDir = "/var/lib/unbound"; 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"; 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}"; description = "WireGuard Tunnel - ${name}";
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment.DEVICE = name;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View file

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

View file

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

View file

@ -41,7 +41,7 @@ in
name = "lxqt"; name = "lxqt";
bgSupport = true; bgSupport = true;
start = '' 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"; theme = mkDefault "breeze";
}; };
boot.plymouth = {
theme = mkDefault "breeze";
themePackages = mkDefault [ pkgs.breeze-plymouth ];
};
security.pam.services.kde = { allowNullPassword = true; }; security.pam.services.kde = { allowNullPassword = true; };
# Doing these one by one seems silly, but we currently lack a better # Doing these one by one seems silly, but we currently lack a better

View file

@ -125,6 +125,7 @@ in
"getty@tty1.service" "getty@tty1.service"
]; ];
systemd.services."getty@tty1".enable = false;
systemd.services.display-manager.conflicts = [ "getty@tty1.service" ]; systemd.services.display-manager.conflicts = [ "getty@tty1.service" ];
systemd.services.display-manager.serviceConfig = { systemd.services.display-manager.serviceConfig = {
# Restart = "always"; - already defined in xserver.nix # 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)" moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
mkdir -p $out/lib/plymouth/renderers 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 cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
mkdir -p $out/share/plymouth/themes mkdir -p $out/share/plymouth/themes
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth 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 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" ]; after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ];
before = [ "network.target" "shutdown.target" ]; before = [ "network.target" "shutdown.target" ];
wants = [ "network.target" ]; wants = [ "network.target" ];
partOf = map (i: "network-addresses-${i.name}.service") interfaces;
conflicts = [ "shutdown.target" ]; conflicts = [ "shutdown.target" ];
wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target"; wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target";
@ -171,8 +172,6 @@ let
"network-link-${i.name}.service" "network-link-${i.name}.service"
"network.target" "network.target"
]; ];
# propagate stop and reload from network-setup
partOf = [ "network-setup.service" ];
# order before network-setup because the routes that are configured # order before network-setup because the routes that are configured
# there may need ip addresses configured # there may need ip addresses configured
before = [ "network-setup.service" ]; before = [ "network-setup.service" ];

View file

@ -537,7 +537,7 @@ in
type = types.bool; type = types.bool;
default = false; default = false;
description = '' 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, ... }: { config, pkgs, ... }:
{ services.postgresql.enable = true; { services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql96; services.postgresql.package = pkgs.postgresql96;
system.stateVersion = "17.03";
}; };
}; };
} }

View file

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

View file

@ -9,9 +9,57 @@ import ./make-test.nix ({ pkgs, ...} : {
nodes = { nodes = {
gitlab = { config, pkgs, ... }: { gitlab = { config, pkgs, ... }: {
virtualisation.memorySize = 768; 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"; 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->start();
$gitlab->waitForUnit("gitlab.service"); $gitlab->waitForUnit("gitlab.service");
$gitlab->waitForUnit("gitlab-sidekiq.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,13 +4,16 @@ import ./make-test.nix ({ pkgs, ...} :
nodes = { nodes = {
one = one =
{ config, pkgs, ... }: { { config, pkgs, ... }: {
time.timeZone = "UTC";
services.graphite = { services.graphite = {
web = { web.enable = true;
api = {
enable = true; enable = true;
port = 8082;
}; };
carbon = { carbon.enableCache = true;
enableCache = true; seyren.enable = true;
}; pager.enable = true;
}; };
}; };
}; };
@ -19,7 +22,10 @@ import ./make-test.nix ({ pkgs, ...} :
startAll; startAll;
$one->waitForUnit("default.target"); $one->waitForUnit("default.target");
$one->requireActiveUnit("graphiteWeb.service"); $one->requireActiveUnit("graphiteWeb.service");
$one->requireActiveUnit("graphiteApi.service");
$one->requireActiveUnit("graphitePager.service");
$one->requireActiveUnit("carbonCache.service"); $one->requireActiveUnit("carbonCache.service");
$one->requireActiveUnit("seyren.service");
$one->succeed("echo \"foo 1 `date +%s`\" | nc -q0 localhost 2003"); $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") $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 { stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version; name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
version = "0.15.0"; version = "0.16.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bitcoin-ABC"; owner = "bitcoin-ABC";
repo = "bitcoin-abc"; repo = "bitcoin-abc";
rev = "v${version}"; rev = "v${version}";
sha256 = "1fygn6cc99iasg5g5jyps5ps873hfnn4ln4hsmcwlwiqd591qxyv"; sha256 = "0wwcgvd8zgl5qh6z1sa3kdv1lr9cwwbs9j2gaad5mqr9sfwbbxdh";
}; };
patches = [ ./fix-bitcoin-qt-build.patch ]; patches = [ ./fix-bitcoin-qt-build.patch ];

View file

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

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
owner = "dogecoin"; owner = "dogecoin";
repo = "dogecoin"; repo = "dogecoin";
rev = "v${version}"; rev = "v${version}";
sha256 = "16q3rldj04hkzzjd23h0knszqr5dgixizy4iyc129mz8wa8pbnvy"; sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr";
}; };
nativeBuildInputs = [ pkgconfig autoreconfHook ]; nativeBuildInputs = [ pkgconfig autoreconfHook ];

View file

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

View file

@ -3,7 +3,7 @@
gettext, pkgconfig, gettext, pkgconfig,
qtbase, qtbase,
alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk_pixbuf, lame, libbs2b, 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, libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr, libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
wavpack wavpack
@ -39,7 +39,7 @@ mkDerivation {
# Plugin dependencies # Plugin dependencies
alsaLib curl faad2 ffmpeg flac fluidsynth gdk_pixbuf lame libbs2b libcddb 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 libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
]; ];

View file

@ -7,12 +7,12 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.1.3"; version = "2.2.0";
name = "audacity-${version}"; name = "audacity-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz"; url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
sha256 = "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b"; sha256 = "09xpr4bjnainz1xmc35v3qg3dadjr9wv8bmn1p4y91aqyihnhjry";
}; };
patches = [ patches = [
(fetchpatch { (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 { pythonPackages.buildPythonApplication rec {
name = "mopidy-iris-${version}"; name = "mopidy-iris-${version}";
version = "3.4.9"; version = "3.6.1";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit version; inherit version;
pname = "Mopidy-Iris"; pname = "Mopidy-Iris";
sha256 = "0acr8ss5d0jgcy1qsjb12h0n6kr6qdp9zrbbk9vv3m3s6kcm8vgb"; sha256 = "1mfi3qx7pvfq4rz0py39lnbzv7sq703b6k6mypzhj1gdzbisfn46";
}; };
propagatedBuildInputs = [ 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 { stdenv.mkDerivation rec {
name = "mpg321-${version}"; name = "mpg321-${version}";
@ -11,9 +15,10 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
configureFlags = [ configureFlags =
("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) [ ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) ]
]; ++ (stdenv.lib.optional (defaultAudio != null)
"--with-default-audio=${defaultAudio}");
buildInputs = [libao libid3tag libmad zlib] buildInputs = [libao libid3tag libmad zlib]
++ stdenv.lib.optional stdenv.isLinux alsaLib; ++ stdenv.lib.optional stdenv.isLinux alsaLib;

View file

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

View file

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

View file

@ -1,64 +1,44 @@
{ stdenv, fetchurl, python2Packages, intltool { stdenv, fetchurl, python2Packages, wrapGAppsHook, gettext, intltool, libsoup, gnome3,
, gst-python, withGstPlugins ? false, gst-plugins-base ? null tag ? "",
, gst-plugins-good ? null, gst-plugins-ugly ? null, gst-plugins-bad ? null }: 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 let optionals = stdenv.lib.optionals; in
|| gst-plugins-good != null python2Packages.buildPythonApplication rec {
|| gst-plugins-ugly != null name = "quodlibet${tag}-${version}";
|| gst-plugins-bad != null; version = "3.9.1";
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}";
# XXX, tests fail # XXX, tests fail
doCheck = false; doCheck = false;
srcs = [ src = fetchurl {
(fetchurl { url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-${version}.tar.gz"; sha256 = "d2b42df5d439213973dc97149fddc779a6c90cec389c24baf1c0bdcc39ffe591";
sha256 = "0ilasi4b0ay8r6v6ba209wsm80fq2nmzigzc5kvphrk71jwypx6z"; };
})
(fetchurl {
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-plugins-${version}.tar.gz";
sha256 = "1rv08rhdjad8sjhplqsspcf4vkazgkxyshsqmbfbrrk5kvv57ybc";
})
];
preConfigure = '' nativeBuildInputs = [ wrapGAppsHook gettext intltool ];
# TODO: for now don't a apply gdist overrides, will be needed for shipping icons, gtk, etc # ++ (with python2Packages; [ pytest pyflakes pycodestyle polib ]); # test deps
sed -i /distclass/d setup.py
'';
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 = '' propagatedBuildInputs = with python2Packages;
# the patch searches for plugins in directory ../plugins [ pygobject3 pycairo mutagen pygtk gst-python feedparser faulthandler futures ]
# so link the appropriate directory there ++ optionals withDbusPython [ dbus-python ]
ln -sf quodlibet-plugins-${version} plugins ++ optionals withPyInotify [ pyinotify ]
''; ++ optionals withMusicBrainzNgs [ musicbrainzngs ]
++ optionals stdenv.isDarwin [ pyobjc ]
++ optionals withPahoMqtt [ paho-mqtt ];
patches = [ ./quodlibet-package-plugins.patch ]; makeWrapperArgs = optionals (kakasi != null) [ "--prefix PATH : ${kakasi}/bin" ];
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" \
'';
meta = { meta = {
description = "GTK+-based audio player written in Python, using the Mutagen tagging library"; description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
license = stdenv.lib.licenses.gpl2;
longDescription = '' longDescription = ''
Quod Libet is a GTK+-based audio player written in Python, using 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. & 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/; 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 { stdenv.mkDerivation rec {
name = "zam-plugins-${version}"; name = "zam-plugins-${version}";
version = "3.8"; version = "3.9";
src = fetchgit { src = fetchgit {
url = "https://github.com/zamaudio/zam-plugins.git"; url = "https://github.com/zamaudio/zam-plugins.git";
deepClone = true; deepClone = true;
rev = "830ab2e9dd1db8cf56d12c71057157e5d8e9fd74"; rev = "4976cf204074c1dfaf344821e83e8d896b35107d";
sha256 = "1hyly5inis59cvh0r7lyi203h8v5jh84ca9jpaljm53cvw6d93px"; sha256 = "1xgwl51sf2hgc5ikcnycyxaw9vy82lrcswn07b6av6i67qclm8f8";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View file

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

View file

@ -6,11 +6,11 @@ let
}; };
}; };
in rec { in rec {
stable = mkStudio rec { stable = mkStudio {
pname = "android-studio"; pname = "android-studio";
version = "2.3.3.0"; version = "3.0.0.18"; # "Android Studio 3.0"
build = "162.4069837"; build = "171.4408382";
sha256Hash = "0zzis9m2xp44xwkj0zvcqw5rh3iyd3finyi5nqhgira1fkacz0qk"; sha256Hash = "18npm7ckdybj6vc2vndr0wd50da19m9z2j7wld2mdidnl5ggk4br";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "The Official IDE for Android (stable version)"; description = "The Official IDE for Android (stable version)";
@ -25,16 +25,16 @@ in rec {
}; };
}; };
preview = mkStudio rec { preview = mkStudio {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.0.0.17"; # "Android Studio 3.0 RC 2" version = "3.1.0.0"; # "Android Studio 3.1 Canary 1"
build = "171.4402976"; build = "171.4415322";
sha256Hash = "18f5cq1dcmyjxaq520kqjac332bpp35pis02yplh6gzp65i4bvvf"; sha256Hash = "08xgwv6mg2zxys9dqjfz66h60g640ni3snyb89ij0fkmd28rbxgj";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";
homepage = https://developer.android.com/studio/preview/index.html; 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 { stdenv.mkDerivation rec {
name = "atom-${version}"; name = "atom-${version}";
version = "1.21.1"; version = "1.21.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "13mpj3wvcgsxz9q6lai36lkfgd7rabcjrrih1j5309kd1dqaswnn"; sha256 = "0snhhp8rjmk750snyzkqzwvi7f915pbc6qpa3vf0f57syf47m7vl";
name = "${name}.deb"; name = "${name}.deb";
}; };

View file

@ -106,16 +106,16 @@ rec {
anyedittools = buildEclipsePlugin rec { anyedittools = buildEclipsePlugin rec {
name = "anyedit-${version}"; name = "anyedit-${version}";
version = "2.7.0.201705171641"; version = "2.7.1.201709201439";
srcFeature = fetchurl { srcFeature = fetchurl {
url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar"; url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
sha256 = "07k029nw5ibxpjc0siy06ihylbqrxllf59yz8c544gra8lc079c9"; sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh";
}; };
srcPlugin = fetchurl { srcPlugin = fetchurl {
url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.0/de.loskutov.anyedit.AnyEditTools_${version}.jar"; url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar";
sha256 = "0wbm8zfjh7gxrw5sy9m3siddiazh5czgxp7zyzxwzkdqyqzqs70h"; sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -394,7 +394,7 @@ rec {
sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp"; sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp";
extraPostFetch = 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 { testng = buildEclipsePlugin rec {
name = "testng-${version}"; name = "testng-${version}";
version = "6.9.13.201609291640"; version = "6.9.13.201609291640";

View file

@ -95,10 +95,10 @@
ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }: ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "ahungry-theme"; pname = "ahungry-theme";
version = "1.6.0"; version = "1.8.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ahungry-theme-1.6.0.tar"; url = "https://elpa.gnu.org/packages/ahungry-theme-1.8.0.tar";
sha256 = "1b0x7g753gn7mym8286b937zmxv50jgdish2h6wc05w1g1lygwsz"; sha256 = "14dhnrlbjzrxk5ligf0z2im5bgnxpjqqzqcrmqg5355xrgpbpb7v";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -700,10 +700,10 @@
ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }: ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild { elpaBuild {
pname = "ebdb"; pname = "ebdb";
version = "0.3.4"; version = "0.4.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ebdb-0.3.4.tar"; url = "https://elpa.gnu.org/packages/ebdb-0.4.1.tar";
sha256 = "1jj7s0646wqg9ykmpi52cc6m6m0gk2inqc2h6h7cr7gr4v7n2l00"; sha256 = "0gv1q1xkhjab0l77c92znn6x0dfdbnj6hc48axmrx6a7zwbm3g2r";
}; };
packageRequires = [ cl-lib emacs seq ]; packageRequires = [ cl-lib emacs seq ];
meta = { meta = {
@ -945,10 +945,10 @@
gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }: gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "gnorb"; pname = "gnorb";
version = "1.3.0"; version = "1.3.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/gnorb-1.3.0.tar"; url = "https://elpa.gnu.org/packages/gnorb-1.3.1.tar";
sha256 = "0c256473llp7ahl1wbm6m236cj2lhp9ms1clmxpsfv51ds27ljqv"; sha256 = "1g6xldkc6l6zlzd1slqizbbd5b9k4pbr66nrf5svidgiy7mlifw5";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib ];
meta = { meta = {
@ -1556,10 +1556,10 @@
}) {}; }) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild { org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org"; pname = "org";
version = "20171016"; version = "20171030";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20171016.tar"; url = "https://elpa.gnu.org/packages/org-20171030.tar";
sha256 = "1196kv83p953nd9c5gxkn8ndw2kmm2kfw34dldap6m89khqflz5a"; sha256 = "1lszws6b5s4r7w871cyigs433dflf6w0y33fj6rzrq8240d5092i";
}; };
packageRequires = []; packageRequires = [];
meta = { 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 let
modules = [ modules = [
{ name = "icicles.el"; sha256 = "175g8w620vy73pp3zyasfjspgljk6g0lki71kdnvw5z88w3s9d1n"; } { name = "icicles.el"; sha256 = "10w1lghh9jqxxm5cszi2qyk24vnvazfywmyyz1v7zf6cyiwbndrz"; }
{ name = "icicles-chg.el"; sha256 = "1bx5xdhirvnrjqk4pk0sjp9bpj1syymsjnckklsw04gv6y0x8zik"; } { name = "icicles-chg.el"; sha256 = "020yg4hv120mcy7qvn76j85q6hl7mfcfv66w55c6izc9lbrvvnv8"; }
{ name = "icicles-cmd1.el"; sha256 = "1ff0mndin9zxrswwwq3a7b1s879rr6gy8rzxanr7kxg1ppciafad"; } { name = "icicles-cmd1.el"; sha256 = "1715x1vkiax93890gfjbzslxsn4swsv37spvyx7chy4s1mym9kfw"; }
{ name = "icicles-cmd2.el"; sha256 = "1a44l86jacp9nsy4z260azz6y672drjw3w5a0jsc8w26fgsrnx1k"; } { name = "icicles-cmd2.el"; sha256 = "187k0gmn34fn6w1dw9hjf4i788y01vk47z7ac11ar4bddwh97ddx"; }
{ name = "icicles-doc1.el"; sha256 = "0s3r4z3y06hd1nxp18wd0b8b88z2a7ryy0j8sx5fzibbmp58ars1"; } { name = "icicles-doc1.el"; sha256 = "1bw5dkymn2xdrfrp80am0gqi0szs0xihny4qmgzgx6hfbng351qh"; }
{ name = "icicles-doc2.el"; sha256 = "0c10jg91qxyrg1zwiyi4m57dbw3yf43jdrpi4nnby3pkzh6i37ic"; } { name = "icicles-doc2.el"; sha256 = "0zd94m1a8mwwbrbcrahxxx8q34w8cg5lna4yww4m1gliyklww86s"; }
{ name = "icicles-face.el"; sha256 = "0n0vcbhwgd2lyj7anq1zpwja28xry018qxbm8sprxkh6y3vlw8d2"; } { name = "icicles-face.el"; sha256 = "1mlz8dq7bgzp2cf5j37i25yw90ry657d2m8r93rdj67h7l4wyxhj"; }
{ name = "icicles-fn.el"; sha256 = "1i10593a7hp465bxd86h7h7gwrdyqxx0d13in53z4jnab8icp3d4"; } { name = "icicles-fn.el"; sha256 = "1cdghvgsr0b7pdq4lmnfm6kwwcqbk4wqf168kf2sjajbpa24ix96"; }
{ name = "icicles-mac.el"; sha256 = "1piq0jk8nz0hz9wwci7dkxnfxscdpygjzpj5zg3310vs22l7rrsz"; } { name = "icicles-mac.el"; sha256 = "1w5sgzbp8hyjzrmqd8bwivszaayzh8dkyqa0d751adiwjfs9sq9m"; }
{ name = "icicles-mcmd.el"; sha256 = "0c4325yp84i46605nlxmjm6n0f4fh69shsihvd0wb9ryg0a8qa65"; } { name = "icicles-mcmd.el"; sha256 = "1lf2galn3g52hfz61avlr4ifyn5b42dfbmyq78cpzlq7hzc928v2"; }
{ name = "icicles-mode.el"; sha256 = "069wx5clqpsq2c9aavgd9xihvlad3g00iwwrc3cpl47v64dvlipq"; } { name = "icicles-mode.el"; sha256 = "0gci04j6vx0vqsh4skarznklam1xibj7pjvy67kaip8b6a4zx9ip"; }
{ name = "icicles-opt.el"; sha256 = "16487l3361ca8l6il2c0z892843sc5l9v4gr7lx5fxbmrlsswvvn"; } { name = "icicles-opt.el"; sha256 = "17g35ancml0mvywagzhjrgmlr4rhm1wgb5wg3fsqhhldib9qlz56"; }
{ name = "icicles-var.el"; sha256 = "1a9cwxpi10x44fngxa7qnrg8hqfvdjb8s8k47gnn1rbh63blkkry"; } { name = "icicles-var.el"; sha256 = "0ydixg41h09yncp8g2nv8zsyv8avg1hj2f3mgrmd2kf0n27bw2nv"; }
]; ];
forAll = f: map f modules; forAll = f: map f modules;
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "icicles-2014-11-06"; 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 ]; buildInputs = [ emacs ];
@ -30,11 +31,13 @@ stdenv.mkDerivation {
buildPhase = "emacs --batch -L . -f batch-byte-compile *.el"; 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 = { meta = {
homepage = http://www.emacswiki.org/emacs/Icicles; homepage = http://www.emacswiki.org/emacs/Icicles;
description = "Enhance Emacs minibuffer input with cycling and powerful completion"; description = "Enhance Emacs minibuffer input with cycling and powerful completion";
license = stdenv.lib.licenses.gpl2Plus; 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 }: ac-php = callPackage ({ ac-php-core, auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild, yasnippet }:
melpaBuild { melpaBuild {
pname = "ac-php"; pname = "ac-php";
version = "1.8"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24"; rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb"; sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php"; 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 }: ac-php-core = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, php-mode, popup, s, xcscope }:
melpaBuild { melpaBuild {
pname = "ac-php-core"; pname = "ac-php-core";
version = "1.8"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24"; rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb"; sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core"; url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/ac-php-core";
@ -989,12 +989,12 @@
aes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: aes = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "aes"; pname = "aes";
version = "0.8"; version = "0.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Sauermann"; owner = "Sauermann";
repo = "emacs-aes"; repo = "emacs-aes";
rev = "d78796facc034b09f379cda5f27090f3139305ec"; rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af";
sha256 = "1y9bw2vkl952pha2dsi18swyr94mihgwlcg5m8hg4d5bfg2fzcb2"; sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/33ca3106852f82624b36c7e3f03f5c0c620f304f/recipes/aes"; url = "https://raw.githubusercontent.com/milkypostman/melpa/33ca3106852f82624b36c7e3f03f5c0c620f304f/recipes/aes";
@ -1073,12 +1073,12 @@
ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: ahungry-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ahungry-theme"; pname = "ahungry-theme";
version = "1.6.0"; version = "1.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ahungry"; owner = "ahungry";
repo = "color-theme-ahungry"; repo = "color-theme-ahungry";
rev = "2b06d75096d6a1c06682b70e229f2c932e9eac2c"; rev = "32ce7765c95559f6a0552cdaeedb6eb97bb7a476";
sha256 = "1jxss4gnlg2vkgf10v1kj1c7isbh7vh040iqrzjkrhclf4qiag5d"; sha256 = "0c1xwqknhjx6y29fwca949r8d2fqb17mca5qc79pdxdlp3l606fg";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme"; url = "https://raw.githubusercontent.com/milkypostman/melpa/520295978fd7de3f4266dd69cc30d0b4fdf09db0/recipes/ahungry-theme";
@ -3331,6 +3331,27 @@
license = lib.licenses.free; 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 }: bundler = callPackage ({ fetchFromGitHub, fetchurl, inf-ruby, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "bundler"; pname = "bundler";
@ -3670,12 +3691,12 @@
caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: caml = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "caml"; pname = "caml";
version = "4.6.0beta2"; version = "4.6.0pre1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ocaml"; owner = "ocaml";
repo = "ocaml"; repo = "ocaml";
rev = "817604da4d38362b6b2bd4c7787a5add6741cd21"; rev = "500625015d40f716e19278209faaa44216dcff58";
sha256 = "1d49kiv9nfr624924qwmf0mfsvja28mvliipaylfbslyb3f7jpkl"; sha256 = "1s10wirx080yl0gd2n09lw5kj8yy1mbiipmcr8gpfyc8dq7kfjna";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d5a3263cdcc229b11a3e96edbf632d56f32c47aa/recipes/caml";
@ -4235,12 +4256,12 @@
circadian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: circadian = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "circadian"; pname = "circadian";
version = "0.2.3"; version = "0.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GuidoSchmidt"; owner = "GuidoSchmidt";
repo = "circadian.el"; repo = "circadian.el";
rev = "0034de1551de9f420f42267f3ec081351c2b5d7f"; rev = "feec308591b43e7869d7a018d5c6fc7e943d53ee";
sha256 = "1khczk5lsiicyjra7g5m3dcl1rc6g43zbypigkj3izx2dsa47n5d"; sha256 = "0j8an9ny3jk9nmlpi360n064m20nhah9p8rj6wb9xbvnfrri5zjk";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/circadian"; url = "https://raw.githubusercontent.com/milkypostman/melpa/3440905a20bc91bb2637a87c04ff8410379f150d/recipes/circadian";
@ -4667,12 +4688,12 @@
cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: cmake-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "cmake-mode"; pname = "cmake-mode";
version = "3.10.0pre3"; version = "3.10.0pre4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Kitware"; owner = "Kitware";
repo = "CMake"; repo = "CMake";
rev = "319622a49fb300cd8a7efd8378421a32204510de"; rev = "45da558742bad36be518e8d95dee0d0ec3793a64";
sha256 = "19n0s0kd051xh3av9nd5ncpccx6bmvay6115g0kqgmi8wbw7587q"; sha256 = "0qq7dhwcl290ymza5imc16cg3f9crxym1q6b4i7w9fax8x2vlc1m";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/598723893ae4bc2e60f527a072efe6ed9d4e2488/recipes/cmake-mode";
@ -5294,6 +5315,27 @@
license = lib.licenses.free; 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 }: company-math = callPackage ({ company, fetchFromGitHub, fetchurl, lib, math-symbol-lists, melpaBuild }:
melpaBuild { melpaBuild {
pname = "company-math"; pname = "company-math";
@ -5360,12 +5402,12 @@
company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }: company-php = callPackage ({ ac-php-core, cl-lib ? null, company, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "company-php"; pname = "company-php";
version = "1.8"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xcwen"; owner = "xcwen";
repo = "ac-php"; repo = "ac-php";
rev = "7a50b7debd149a30b84f0e2e57a4662926d96a24"; rev = "317ad1d023db6b2fe67444a2c075e656c35f5094";
sha256 = "15kmzkkgrhwind66kiyc2kpl27jrbzcs79i3w5s7fzzjjg9h18lb"; sha256 = "1wyf93faq6z6wgcs3lxc6gv75bmxchg6kd98dza61zdyc0rj60wa";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ac283f1b65c3ba6278e9d3236e5a19734e42b123/recipes/company-php"; 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 }: conda = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }:
melpaBuild { melpaBuild {
pname = "conda"; pname = "conda";
version = "0.0.7"; version = "0.0.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "necaris"; owner = "necaris";
repo = "conda.el"; repo = "conda.el";
rev = "6ba9ef5d72ef613f478e07e2ebf57b47066beee7"; rev = "526be691824f4a32299f560a883913697bc4d847";
sha256 = "0mp6jzyvz3m41vb4kwwikyvcjgc8qgryyx71n1m50jr2i23s9nk2"; sha256 = "1jix3md6b02fypjm4y05av7acjkqryd1vqqz9wgxyinydlagrvh7";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda"; url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda";
@ -6329,6 +6371,27 @@
license = lib.licenses.free; 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 }: cyberpunk-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "cyberpunk-theme"; pname = "cyberpunk-theme";
@ -6374,12 +6437,12 @@
cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }: cython-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "cython-mode"; pname = "cython-mode";
version = "0.27.1"; version = "0.27.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cython"; owner = "cython";
repo = "cython"; repo = "cython";
rev = "32538fc162be830bf01ff96e43a020bc4924a1ee"; rev = "41b4a28d7c7c505d58502c9cf69bde2e33091de0";
sha256 = "03v4ig9zlh8dz9s0c31f5hz2wfpvjydiidb0zgghnrshlqacpyj3"; sha256 = "04k534xyr8816821y0lf2dq24bzvb40v99ijdwgy5qhv4rjxbr18";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/be9bfabe3f79153cb859efc7c3051db244a63879/recipes/cython-mode";
@ -8057,15 +8120,36 @@
license = lib.licenses.free; 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 }: easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "easy-hugo"; pname = "easy-hugo";
version = "2.0.15"; version = "2.0.16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "masasam"; owner = "masasam";
repo = "emacs-easy-hugo"; repo = "emacs-easy-hugo";
rev = "0b55c207c6552223857de03bf8aec8be3344ed26"; rev = "d55472bdb08850fb3b2b27a373630c68f6cd2ac0";
sha256 = "103ivy1gmb22xacxj2b99zmilqy20nbzmwvmg5i6aqnya1vs97q0"; sha256 = "168wz1638arypqz6i0mzj1pw6mzgp6x10i2wz2vpgkw5p79zw46i";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo"; 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 }: elpy = callPackage ({ company, fetchFromGitHub, fetchurl, find-file-in-project, highlight-indentation, lib, melpaBuild, pyvenv, s, yasnippet }:
melpaBuild { melpaBuild {
pname = "elpy"; pname = "elpy";
version = "1.16.1"; version = "1.17.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jorgenschaefer"; owner = "jorgenschaefer";
repo = "elpy"; repo = "elpy";
rev = "1e65cb6e988df088c299572464335b6f149addcd"; rev = "99f0b6401bff25d40b9f58123533271f7870a286";
sha256 = "01mfrn6mn8h9fkpkqg2shp21864ffjr7q5h3rpbnk6wpa3pmjc1m"; sha256 = "06n0vr8y5s8y7q9v96z030l1i9n29p622p36biyi5cjcmgf5h09j";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1d8fcd8745bb15402c9f3b6f4573ea151415237a/recipes/elpy"; 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 }: embrace = callPackage ({ cl-lib ? null, expand-region, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "embrace"; pname = "embrace";
version = "0.1.3"; version = "0.1.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cute-jumper"; owner = "cute-jumper";
repo = "embrace.el"; repo = "embrace.el";
rev = "a57b4be5d60daf8c176f9bd35770540c2d3963c9"; rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2";
sha256 = "0sn81a7f8g5i4q74byfkj0jlg4aj0rxpfvx9sqv8azcg6wq2f65l"; sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6/recipes/embrace"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6/recipes/embrace";
@ -9479,20 +9563,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
emms = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild { emms = callPackage ({ cl-lib ? null, fetchgit, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "emms"; pname = "emms";
version = "4.3"; version = "4.4";
src = fetchgit { src = fetchgit {
url = "https://git.savannah.gnu.org/git/emms.git"; url = "https://git.savannah.gnu.org/git/emms.git";
rev = "4cb3ae341847e8e8586373a95a458a453469812d"; rev = "88fecd0234da595843ce6be4d3f9f2b755ff612d";
sha256 = "0bmxlrk2p51bw5lgh2arkcz1v9bw6rpflwk778rdzn0rhzhvhp5b"; sha256 = "0ycm2lggljhzrb10r3c322c7bb580gk125x9nvpvjrvsp74p8im0";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms"; url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/emms";
sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94"; sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94";
name = "emms"; name = "emms";
}; };
packageRequires = []; packageRequires = [ cl-lib ];
meta = { meta = {
homepage = "https://melpa.org/#/emms"; homepage = "https://melpa.org/#/emms";
license = lib.licenses.free; license = lib.licenses.free;
@ -10064,12 +10149,12 @@
erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: erlang = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "erlang"; pname = "erlang";
version = "20.1.2"; version = "20.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "erlang"; owner = "erlang";
repo = "otp"; repo = "otp";
rev = "919ef5de2858e606d4a9be3e0e995b0802c76e33"; rev = "a98379d0519c28f9bc9b673ed2c09fb1ad52456e";
sha256 = "0y76ci80wmzrxvj90bhiz6cvwbis34kcc6dzas9xxsj92b6sh7sk"; sha256 = "1672yqqh7ql88c6ifv555wvqrj8nyn5a2nph43n2nc43h7hhz17c";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang"; url = "https://raw.githubusercontent.com/milkypostman/melpa/d9cd526f43981e0826af59cdc4bb702f644781d9/recipes/erlang";
@ -12585,6 +12670,27 @@
license = lib.licenses.free; 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 }: flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "flycheck-objc-clang"; pname = "flycheck-objc-clang";
@ -19471,12 +19577,12 @@
import-js = callPackage ({ emacs, fetchFromGitHub, fetchurl, grizzl, lib, melpaBuild }: import-js = callPackage ({ emacs, fetchFromGitHub, fetchurl, grizzl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "import-js"; pname = "import-js";
version = "1.0.0"; version = "2.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Galooshi"; owner = "Galooshi";
repo = "emacs-import-js"; repo = "emacs-import-js";
rev = "15d395126f57408d770a72db2e5f43271f90fa52"; rev = "0a1032894445062b87dbe4e2c8cdba35ac25c250";
sha256 = "1ipbfacjx9vqqhvsf9sgfci8vqx0plks510w1gsjj0xwrpqn1f6l"; sha256 = "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/import-js"; url = "https://raw.githubusercontent.com/milkypostman/melpa/6f26b8281f9bd05e3c8f2ef21838275711e622c9/recipes/import-js";
@ -19992,6 +20098,27 @@
license = lib.licenses.free; 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 }: ivy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ivy"; pname = "ivy";
@ -20452,6 +20579,27 @@
license = lib.licenses.free; 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 }: jinja2-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "jinja2-mode"; pname = "jinja2-mode";
@ -20518,12 +20666,12 @@
js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "js-auto-format-mode"; pname = "js-auto-format-mode";
version = "1.0.1"; version = "1.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ybiquitous"; owner = "ybiquitous";
repo = "js-auto-format-mode"; repo = "js-auto-format-mode";
rev = "705e300a2c880f6dbfa830d6c69818b7a3a95c09"; rev = "e0b7ae9d1d70fa74abd91bb6f901bd46db5a22eb";
sha256 = "1a3dwcknjydaxnyhaycgbmlncj92qkp3m5flmi6fyqjx11lz26ag"; sha256 = "1z5vi8681afm7jsqwifnb35sja1s4b2j123b3pn0bv1j6b8iaq9j";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode";
@ -20956,24 +21104,24 @@
license = lib.licenses.free; 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 { melpaBuild {
pname = "kaolin-theme"; pname = "kaolin-themes";
version = "0.9"; version = "1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ogdenwebb"; owner = "ogdenwebb";
repo = "kaolin-theme"; repo = "emacs-kaolin-themes";
rev = "d43ba0e8e6b13b08e4d74de20c6e594ebb225501"; rev = "720762a42ad4cb4b325f78a9d41af380b8783501";
sha256 = "0gg19rh5q1gl6ylwrmjq0dqh6p5fkms1av6bbgry6fqv8220xf8n"; sha256 = "104prgkjqnnv1bqgpcl0di1q9sqkfnj4ibqvrk6ls32hw75shvdh";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/a67c2a3ad82efcb32ba4943c7ac10fe2768d9d51/recipes/kaolin-theme"; url = "https://raw.githubusercontent.com/milkypostman/melpa/043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4/recipes/kaolin-themes";
sha256 = "009064hhn39f9w9qxa3m0kwqhj5a12j7hg4916j9hslpwy5ghc0c"; sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw";
name = "kaolin-theme"; name = "kaolin-themes";
}; };
packageRequires = [ emacs ]; packageRequires = [ autothemer cl-lib emacs ];
meta = { meta = {
homepage = "https://melpa.org/#/kaolin-theme"; homepage = "https://melpa.org/#/kaolin-themes";
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
@ -24629,6 +24777,27 @@
license = lib.licenses.free; 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 }: ninja-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "ninja-mode"; pname = "ninja-mode";
@ -24682,8 +24851,8 @@
sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz"; sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c885d9d9f1a37f05c715f89fae51efb580faced/recipes/nix-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e1870d786dbfac3b14386c8030e06f2d13ab9da6/recipes/nix-mode";
sha256 = "15xgqgrkypcplnfvl5j6w8abayzz8q0nw2wav01sdyx39ym005k3"; sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5";
name = "nix-mode"; name = "nix-mode";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
@ -25472,8 +25641,8 @@
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OmniSharp"; owner = "OmniSharp";
repo = "omnisharp-emacs"; repo = "omnisharp-emacs";
rev = "d7a63cd5f592c131615a3b6523fc2b2a04a9f00a"; rev = "906e29a702237f039f24c215fdb561a728a3df1b";
sha256 = "0cvsys9jyb0zbkj5q01q2fgjmcqvb12dxgfy049fl7a2gd9n55fj"; sha256 = "1l1rzl7y5j2wmlgx7ivivwvwvbn4h7pg5s7yqsk65n9kb59ha8s8";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e327c483be04de32638b420c5b4e043d12a2cd01/recipes/omnisharp";
@ -26109,12 +26278,12 @@
org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: org-mru-clock = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "org-mru-clock"; pname = "org-mru-clock";
version = "0.1.1"; version = "0.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "unhammer"; owner = "unhammer";
repo = "org-mru-clock"; repo = "org-mru-clock";
rev = "096a7c514ab8487ec63def6281cf4dce24e3a626"; rev = "10f6a7021c82dc6795f4020e89889a5a72eb8832";
sha256 = "1hmyqvi1dj5yrlish8kw4sdh3yy0b0w33smw4cbjagp4rs29p3fp"; sha256 = "00f4l5w6p0l1x5ghpvbp5934m9m012fabvzb7apazwdr5c7xbd7q";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b36bf1c1faa4d7e38254416a293e56af96214136/recipes/org-mru-clock"; 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 }: ox-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
melpaBuild { melpaBuild {
pname = "ox-hugo"; pname = "ox-hugo";
version = "0.3.1"; version = "0.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kaushalmodi"; owner = "kaushalmodi";
repo = "ox-hugo"; repo = "ox-hugo";
rev = "16cf5d595644ee4e05b05b351e0c4fdd5df0ac44"; rev = "c32359c71e7926c7f13039069d8d7481dfb9bc82";
sha256 = "1n5xbgwv9x2b9zmv7nw0x64qbll4ycjf2dp09rdj3m4bmcg2gv42"; sha256 = "1nw2dp6rn3hnnzzffvpr6yz7c154338h9i5ixxgh5vjxm9phzdml";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/1e1240bb7b5bb8773f804b987901566a20e3e8a9/recipes/ox-hugo"; 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 }: pocket-reader = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, kv, lib, melpaBuild, org-web-tools, ov, pocket-lib, rainbow-identifiers, s }:
melpaBuild { melpaBuild {
pname = "pocket-reader"; pname = "pocket-reader";
version = "0.1"; version = "0.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "alphapapa"; owner = "alphapapa";
repo = "pocket-reader.el"; repo = "pocket-reader.el";
rev = "93ef3a0737e93fb2e73f230fbb38f0b9f6f9d9bd"; rev = "e65a7e7529ece4fb7a738c062e73d5c07ace9574";
sha256 = "02l1yd0s7dnq6wj7lldbbxqq1libdcczygc2lzx4rdc5jnr4lnsh"; sha256 = "0bqxsvhmwvf0gpjmmh7pmzyw4lpcarj2prm52bgncch8x1f0gvnp";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/835a7bf2f72987183e9d15ada7ae747fb5715c11/recipes/pocket-reader"; url = "https://raw.githubusercontent.com/milkypostman/melpa/835a7bf2f72987183e9d15ada7ae747fb5715c11/recipes/pocket-reader";
@ -30957,22 +31126,22 @@
license = lib.licenses.free; 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 { melpaBuild {
pname = "rg"; pname = "rg";
version = "1.3.1"; version = "1.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dajva"; owner = "dajva";
repo = "rg.el"; repo = "rg.el";
rev = "081685a8c624220ece68d6dca8d60016585b04ff"; rev = "5de611eae7787ecbc285fe7e31e412b9281a4e14";
sha256 = "094fy48h0mmih3g9dq7xhhdqq3dx3jbrg1x9qcq2szl3danndl6z"; sha256 = "18mhcipj5yywd5648pwm955wx3ipsnp9nwjyyl270qnn56hwkb6g";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg"; url = "https://raw.githubusercontent.com/milkypostman/melpa/9ce1f721867383a841957370946f283f996fa76f/recipes/rg";
sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm"; sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm";
name = "rg"; name = "rg";
}; };
packageRequires = [ cl-lib emacs s seq ]; packageRequires = [ cl-lib emacs s ];
meta = { meta = {
homepage = "https://melpa.org/#/rg"; homepage = "https://melpa.org/#/rg";
license = lib.licenses.free; license = lib.licenses.free;
@ -33457,12 +33626,12 @@
sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: sparql-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "sparql-mode"; pname = "sparql-mode";
version = "2.1.1"; version = "3.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ljos"; owner = "ljos";
repo = "sparql-mode"; repo = "sparql-mode";
rev = "262c46a282ce54ca4745b863cf323d9bf69e2faa"; rev = "e220a0c0c478fee0be3622442651981cdd82090c";
sha256 = "02ai86c15x0fbgg2bw6a9k3k825gkhl3hy9abq62dfgdwc0cqxmn"; sha256 = "1k1ih6y9yq1fx13863yacx69v6f77b8xhkrx5i2dpm4h7wki1dg4";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c3d729130a41903bb01465d0f01c34fbc508b56e/recipes/sparql-mode";
@ -35135,12 +35304,12 @@
tickscript-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: tickscript-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "tickscript-mode"; pname = "tickscript-mode";
version = "0.3.1"; version = "0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "msherry"; owner = "msherry";
repo = "tickscript-mode"; repo = "tickscript-mode";
rev = "eb6eafee2df253a0f1356f260cc7f435ab68aea2"; rev = "9acf389dd055ae77c92170802769838810472490";
sha256 = "04pd1dvvs914f98yaq5n0nv1jbjr2sjgi3a288vpismrmxfybcch"; sha256 = "1v60y244papzrirwqk9c2wcwgz4qp9h7m3887kvgr5ffn5imjss8";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c60ee1839f728c5041bde1fe4fa62c4d41c746ef/recipes/tickscript-mode";
@ -37237,22 +37406,22 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
winum = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }: winum = callPackage ({ cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "winum"; pname = "winum";
version = "1.0.2"; version = "2.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "deb0ch"; owner = "deb0ch";
repo = "emacs-winum"; repo = "emacs-winum";
rev = "8e886302c7e1d8fd521a95e0f00d6efab295a883"; rev = "c56d1cdb8d1723eb4c0d7a7eb3ecd2697739146c";
sha256 = "19rf806v3yv6qy6p8mf54g1whdrh7vc107z31kqaqdwq681fhi37"; sha256 = "09jd5srlnd4060hs719qil84ssmnvq196bz7ywaswgapv1gs1h6r";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c1caa7a54a910a44322fdee300e8cce6ddcde071/recipes/winum"; url = "https://raw.githubusercontent.com/milkypostman/melpa/c1caa7a54a910a44322fdee300e8cce6ddcde071/recipes/winum";
sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw"; sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw";
name = "winum"; name = "winum";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib dash ];
meta = { meta = {
homepage = "https://melpa.org/#/winum"; homepage = "https://melpa.org/#/winum";
license = lib.licenses.free; license = lib.licenses.free;
@ -38018,8 +38187,8 @@
version = "1.80"; version = "1.80";
src = fetchhg { src = fetchhg {
url = "https://www.yatex.org/hgrepos/yatex/"; url = "https://www.yatex.org/hgrepos/yatex/";
rev = "ca7cf34e959c"; rev = "16763e5b7481";
sha256 = "19pczpzl0wvkdassskcssq5qrpica0bffqxxi8sqp1j35px6v4ma"; sha256 = "1mrcc9amz0kflm570bd2cprhin0z8lr668k2s56mj6shixb61dwh";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex"; url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";
@ -38276,12 +38445,12 @@
zoom = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }: zoom = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild { melpaBuild {
pname = "zoom"; pname = "zoom";
version = "0.1.0"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cyrus-and"; owner = "cyrus-and";
repo = "zoom"; repo = "zoom";
rev = "ed8aca43820678ff6e7b8ed697cba8dbb3a6136e"; rev = "d92ea444df6f6bb6cae92242f3269582d1b8ab40";
sha256 = "1na1syvbayqwbsvd1d0ajyzjvhg8q3s3mqrx82ffcbxr0ijyzzj8"; sha256 = "08riz3dd19c1dixm3c6j5dkkwjpgcib05pxq611w8z0mgsn0hsc5";
}; };
recipeFile = fetchurl { recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom"; url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe094c99756ad29eda9bc51f31bb70c4ddc4131/recipes/zoom";

View file

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

View file

@ -32,7 +32,7 @@ let
build_dir=$PWD build_dir=$PWD
cd $TMPDIR 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 cp -r ${store_path} $local_path
chmod u+rwX -R $local_path chmod u+rwX -R $local_path

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -66,5 +66,59 @@ stdenv.mkDerivation rec {
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ hodapp ]; maintainers = with maintainers; [ hodapp ];
license = licenses.gpl2; 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` # For `digitaglinktree`
, perl, sqlite , perl, sqlite
@ -33,8 +33,8 @@
, liblqr1 , liblqr1
, libqtav , libqtav
, libusb1 , libusb1
, mesa
, marble , marble
, mesa
, mysql , mysql
, opencv3 , opencv3
, pcre , pcre
@ -53,11 +53,11 @@ mkDerivation rec {
version = "5.7.0"; version = "5.7.0";
src = fetchurl { src = fetchurl {
url = "http://download.kde.org/stable/digikam/${name}.tar.xz"; url = "mirror://kde/stable/digikam/${name}.tar.xz";
sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n"; sha256 = "1xah079g47fih8l9qy1ifppfvmq5yms5y1z54nvxdyz8nsszy19n";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules kdoctools wrapGAppsHook ]; nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
buildInputs = [ buildInputs = [
bison bison

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