Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2016-02-25 09:01:48 +01:00
commit 93f6af1071
545 changed files with 33586 additions and 10902 deletions

View file

@ -1,7 +1,7 @@
# How to contribute
Note: contributing implies licensing those contributions
under the terms of [COPYING](./COPYING), which is an MIT-like license.
under the terms of [COPYING](../COPYING), which is an MIT-like license.
## Opening issues

17
.github/ISSUE_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,17 @@
## Basic info
To make sure that we are on the same page:
* Kernel: (run `uname -a`)
* System: (NixOS: `nixos-version`, Ubuntu/Fedora: `lsb_release -a`, ...)
* Nix version: (run `nix-env --version`)
* Nixpkgs version: (run `nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion`)
## Describe your issue here
### Expected result
### Actual result
### Steps to reproduce

15
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,15 @@
###### Things done:
- [ ] Tested via `nix.useChroot`.
- [ ] Built on platform(s): .
- [ ] Tested compilation of all pkgs that depend on this change.
- [ ] Tested execution of binary products.
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
###### Extra
Fixes # .
cc @ .
---
_Please note, that points are not mandatory._

View file

@ -42,6 +42,11 @@ stdenv.mkDerivation {
mkdir ./languages-frameworks
cp -s '${sources-langs}'/* ./languages-frameworks
''
+ toDocbook {
inputFile = ./introduction.md;
outputFile = "introduction.xml";
useChapters = true;
}
+ toDocbook {
inputFile = ./haskell-users-guide.md;
outputFile = "haskell-users-guide.xml";
@ -51,8 +56,11 @@ stdenv.mkDerivation {
inputFile = ./../pkgs/development/idris-modules/README.md;
outputFile = "languages-frameworks/idris.xml";
}
+ toDocbook {
inputFile = ./../pkgs/development/r-modules/README.md;
outputFile = "languages-frameworks/r.xml";
}
+ ''
cat languages-frameworks/idris.xml
echo ${nixpkgsVersion} > .version
xmllint --noout --nonet --xinclude --noxincludenode \

48
doc/introduction.md Normal file
View file

@ -0,0 +1,48 @@
---
title: Introduction
author: Frederik Rietdijk
date: 2015-11-25
---
# Introduction
The Nix Packages collection (Nixpkgs) is a set of over 30,000 packages for the
[Nix package manager](http://nixos.org/nix/), released under a [permissive MIT/X11 license](https://github.com/NixOS/nixpkgs/blob/master/COPYING).
Packages are available for several architectures, and can be used with the Nix package manager
on most GNU/Linux distributions as well as NixOS.
This manual describes how to write packages for the Nix Packages collection
(Nixpkgs). Thus its for packagers and developers who want to add packages to
Nixpkgs. If you like to learn more about the Nix package manager and the Nix
expression language, then you are kindly referred to the [Nix manual](http://nixos.org/nix/manual/).
## Overview of Nixpkgs
Nix expressions describe how to build packages from source and are collected in
the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
collection are Nix expressions for [NixOS modules](http://nixos.org/nixos/manual/index.html#sec-writing-modules). With
these expressions the Nix package manager can build binary packages.
Packages, including the Nix packages collection, are distributed through
[channels](http://nixos.org/nix/manual/#sec-channels). The collection is
distributed for users of Nix on non-NixOS distributions through the channel
`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
`nixos-15.09`, which includes all packages and modules for the stable NixOS
15.09. The channels of the stable NixOS releases are generally only given
security updates. More up to date packages and modules are available via the
`nixos-unstable` channel.
Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs
repository, although both do lag the `master` branch by generally [a couple of days](http://howoldis.herokuapp.com/). Updates to a channel are distributed as
soon as all tests for that channel pass, e.g. [this table](http://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
shows the status of tests for the `nixpkgs` channel.
The tests are conducted by a cluster called [Hydra](http://nixos.org/hydra/),
which also builds binary packages from the Nix expressions in Nixpkgs. As soon
as a channel is updated, the binaries are made available via a [binary cache](https://cache.nixos.org). Until the channel updates, binaries that have
already been built, are available via [Hydra's binary cache](https://hydra.nixos.org).
The current Nix expressions of the channels are available in the
[`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository,
which has branches corresponding to the available channels. There is also the
Nixpkgs Monitor which keeps track of updates and security vulnerabilities.

View file

@ -1,21 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-introduction">
<title>Introduction</title>
<para>This manual tells you how to write packages for the Nix Packages
collection (Nixpkgs). Thus its for packagers and developers who want
to add packages to Nixpkgs. End users are kindly referred to the
<link xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual">Nix
manual</link>.</para>
<para>This manual does not describe the syntax and semantics of the
Nix expression language, which are given in the Nix manual in the
<link
xlink:href="http://hydra.nixos.org/job/nix/trunk/tarball/latest/download-by-type/doc/manual/#chap-writing-nix-expressions">chapter
on writing Nix expressions</link>. It only describes the facilities
provided by Nixpkgs to make writing packages easier, such as the
standard build environment (<literal>stdenv</literal>).</para>
</chapter>

View file

@ -21,6 +21,7 @@ such as Perl or Haskell. These are described in this chapter.</para>
<xi:include href="lua.xml" />
<xi:include href="coq.xml" />
<xi:include href="idris.xml" /> <!-- generated from ../../pkgs/development/idris-modules/README.md -->
<xi:include href="r.xml" /> <!-- generated from ../../pkgs/development/r-modules/README.md -->
<xi:include href="qt.xml" />

View file

@ -258,45 +258,54 @@ a value from <varname>stdenv.lib.licenses</varname> defined in
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix">
<filename>nixpkgs/lib/licenses.nix</filename></link>,
or in-place license description of the same format if the license is
unlikely to be useful in another expression.
unlikely to be useful in another expression.</para>
<para>Although it's typically better to indicate the specific license,
a few generic options are available:
A few generic options are available, although it's typically better
to indicate the specific license:
<variablelist>
<varlistentry>
<term><varname>free</varname></term>
<term><varname>stdenv.lib.licenses.free</varname>,
<varname>"free"</varname></term>
<listitem><para>Catch-all for free software licenses not listed
above.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>unfree-redistributable</varname></term>
<term><varname>stdenv.lib.licenses.unfreeRedistributable</varname>,
<varname>"unfree-redistributable"</varname></term>
<listitem><para>Unfree package that can be redistributed in binary
form. That is, its legal to redistribute the
form. That is, its legal to redistribute the
<emphasis>output</emphasis> of the derivation. This means that
the package can be included in the Nixpkgs
channel.</para>
<para>Sometimes proprietary software can only be redistributed
unmodified. Make sure the builder doesnt actually modify the
unmodified. Make sure the builder doesnt actually modify the
original binaries; otherwise were breaking the license. For
instance, the NVIDIA X11 drivers can be redistributed unmodified,
but our builder applies <command>patchelf</command> to make them
work. Thus, its license is <varname>unfree</varname> and it
work. Thus, its license is <varname>"unfree"</varname> and it
cannot be included in the Nixpkgs channel.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>unfree</varname></term>
<listitem><para>Unfree package that cannot be redistributed. You
<term><varname>stdenv.lib.licenses.unfree</varname>,
<varname>"unfree"</varname></term>
<listitem><para>Unfree package that cannot be redistributed. You
can build it yourself, but you cannot redistribute the output of
the derivation. Thus it cannot be included in the Nixpkgs
the derivation. Thus it cannot be included in the Nixpkgs
channel.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>unfree-redistributable-firmware</varname></term>
<term><varname>stdenv.lib.licenses.unfreeRedistributableFirmware</varname>,
<varname>"unfree-redistributable-firmware"</varname></term>
<listitem><para>This package supplies unfree, redistributable
firmware. This is a separate value from
<varname>unfree-redistributable</varname> because not everybody

View file

@ -12,6 +12,7 @@
abaldeau = "Andreas Baldeau <andreas@baldeau.net>";
abbradar = "Nikolay Amiantov <ab@fmap.me>";
adev = "Adrien Devresse <adev@adev.name>";
aespinosa = "Allan Espinosa <allan.espinosa@outlook.com>";
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
aflatter = "Alexander Flatter <flatter@fastmail.fm>";
aherrmann = "Andreas Herrmann <andreash87@gmx.ch>";
@ -58,6 +59,7 @@
bosu = "Boris Sukholitko <boriss@gmail.com>";
bramd = "Bram Duvigneau <bram@bramd.nl>";
bstrik = "Berno Strik <dutchman55@gmx.com>";
bzizou = "Bruno Bzeznik <Bruno@bzizou.net>";
c0dehero = "CodeHero <codehero@nerdpol.ch>";
calrama = "Moritz Maxeiner <moritz@ucworks.org>";
campadrenalin = "Philip Horger <campadrenalin@gmail.com>";
@ -122,6 +124,7 @@
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
fxfactorial = "Edgar Aroutiounian <edgar.factorial@gmail.com>";
gal_bolle = "Florent Becker <florent.becker@ens-lyon.org>";
garbas = "Rok Garbas <rok@garbas.si>";
garrison = "Jim Garrison <jim@garrison.cc>";
@ -211,6 +214,7 @@
meisternu = "Matt Miemiec <meister@krutt.org>";
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
mingchuan = "Ming Chuan <ming@culpring.com>";
mirdhyn = "Merlin Gaillard <mirdhyn@gmail.com>";
mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>";
modulistic = "Pablo Costa <modulistic@gmail.com>";

View file

@ -18,7 +18,8 @@ let
fetchurlDependencies =
filter
(drv: drv.outputHash or "" != "" && drv.outputHashMode == "flat" && drv.postFetch or "" == "" && drv ? urls)
(drv: drv.outputHash or "" != "" && drv.outputHashMode or "flat" == "flat"
&& drv.postFetch or "" == "" && drv ? urls)
dependencies;
dependencies = map (x: x.value) (genericClosure {

View file

@ -1,5 +1,5 @@
#! /bin/sh
echo "let pkgs = import /etc/nixos/nixpkgs$2 {}; x = pkgs.callPackage $1 { $3 }; in ${4:-x}" |
echo "let pkgs = import <nixpkgs$2> {}; x = pkgs.callPackage $1 { $3 }; in ${4:-x}" |
nix-instantiate --show-trace - |
xargs nix-store -r -K

View file

@ -28,7 +28,7 @@ fetchGithubName () {
)"
userid="$(
curl https://github.com/NixOS/nixpkgs/commit/"$commitid" 2>/dev/null |
grep authored -B10 | grep 'href="/' |
grep committed -B10 | grep 'href="/' |
sed -re 's@.* href="/@@; s@".*@@' |
grep -v "/commit/"
)";

View file

@ -44,6 +44,7 @@ nixos.path = ./nixpkgs-unstable-2015-12-06/nixos;
<listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
<listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
<listitem><para><literal>services/security/haka.nix</literal></para></listitem>
<listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
</itemizedlist>
</para>
@ -197,6 +198,39 @@ fileSystems."/example" = {
<literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
also specify VDPAU drivers there.</para>
</listitem>
<listitem>
<para>
<literal>programs.ibus</literal> moved to <literal>i18n.inputMethod.ibus</literal>.
The option <literal>programs.ibus.plugins</literal> changed to <literal>i18n.inputMethod.ibus.engines</literal>
and the option to enable ibus changed from <literal>programs.ibus.enable</literal> to
<literal>i18n.inputMethod.enabled</literal>.
<literal>i18n.inputMethod.enabled</literal> should be set to the used input method name,
<literal>"ibus"</literal> for ibus.
An example of the new style:
<programlisting>
i18n.inputMethod.enabled = "ibus";
i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
</programlisting>
That is equivalent to the old version:
<programlisting>
programs.ibus.enable = true;
programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
</programlisting>
</para>
</listitem>
<listitem>
<para><literal>services.udev.extraRules</literal> option now writes rules
to <filename>99-local.rules</filename> instead of <filename>10-local.rules</filename>.
This makes all the user rules apply after others, so their results wouldn't be
overriden by anything else.</para>
</listitem>
</itemizedlist>
@ -215,6 +249,12 @@ fileSystems."/example" = {
NixOS.</para>
</listitem>
<listitem>
<para>Input method support was improved. New NixOS modules (fcitx, nabi and uim),
fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n)
have been added.</para>
</listitem>
</itemizedlist></para>
</section>

View file

@ -0,0 +1,29 @@
{ config, pkgs, lib, ... }:
with lib;
{
options = {
i18n.inputMethod = {
enabled = mkOption {
type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" ]);
default = null;
example = "fcitx";
description = ''
Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
Input methods are specially used to input Chinese, Japanese and Korean characters.
Currently the following input methods are available in NixOS:
<itemizedlist>
<listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
<listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
</itemizedlist>
'';
};
};
};
}

View file

@ -0,0 +1,42 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.fcitx;
fcitxPackage = pkgs.fcitx-with-plugins.override { plugins = cfg.engines; };
fcitxEngine = types.package // {
name = "fcitx-engine";
check = x: (lib.types.package.check x) && (attrByPath ["meta" "isFcitxEngine"] false x);
};
in
{
options = {
i18n.inputMethod.fcitx = {
engines = mkOption {
type = with types; listOf fcitxEngine;
default = [];
example = literalExample "with pkgs.fcitx-engines; [ mozc hangul ]";
description = ''
Enabled Fcitx engines.
Available engines can be found by running `nix-env "&lt;nixpkgs&gt;" . -qaP -A fcitx-engines`.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "fcitx") {
environment.systemPackages = [ fcitxPackage ];
gtkPlugins = [ fcitxPackage ];
qtPlugins = [ fcitxPackage ];
environment.variables = {
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
};
services.xserver.displayManager.sessionCommands = "${fcitxPackage}/bin/fcitx";
};
}

View file

@ -0,0 +1,43 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.ibus;
ibusPackage = pkgs.ibus-with-plugins.override { plugins = cfg.engines; };
ibusEngine = types.package // {
name = "ibus-engine";
check = x: (lib.types.package.check x) && (attrByPath ["meta" "isIbusEngine"] false x);
};
in
{
options = {
i18n.inputMethod.ibus = {
engines = mkOption {
type = with types; listOf ibusEngine;
default = [];
example = literalExample "with pkgs.ibus-engines; [ mozc hangul ]";
description = ''
Enabled IBus engines.
Available engines can be found by running `nix-env "&lt;nixpkgs&gt;" . -qaP -A ibus-engines`.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "ibus") {
# Without dconf enabled it is impossible to use IBus
environment.systemPackages = [ ibusPackage pkgs.gnome3.dconf ];
gtkPlugins = [ pkgs.ibus ];
qtPlugins = [ pkgs.ibus-qt ];
environment.variables = {
GTK_IM_MODULE = "ibus";
QT_IM_MODULE = "ibus";
XMODIFIERS = "@im=ibus";
};
services.xserver.displayManager.sessionCommands = "${ibusPackage}/bin/ibus-daemon --daemonize --xim --cache=none";
};
}

View file

@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
with lib;
{
config = mkIf (config.i18n.inputMethod.enabled == "nabi") {
environment.systemPackages = [ pkgs.nabi ];
qtPlugins = [ pkgs.nabi ];
environment.variables = {
GTK_IM_MODULE = "nabi";
QT_IM_MODULE = "nabi";
XMODIFIERS = "@im=nabi";
};
services.xserver.displayManager.sessionCommands = "${pkgs.nabi}/bin/nabi &";
};
}

View file

@ -0,0 +1,39 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.uim;
in
{
options = {
i18n.inputMethod.uim = {
toolbar = mkOption {
type = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt4" ];
default = "gtk";
example = "gtk-systray";
description = ''
selected UIM toolbar.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "uim") {
environment.systemPackages = [ pkgs.uim ];
gtkPlugins = [ pkgs.uim ];
qtPlugins = [ pkgs.uim ];
environment.variables = {
GTK_IM_MODULE = "uim";
QT_IM_MODULE = "uim";
XMODIFIERS = "@im=uim";
};
services.xserver.displayManager.sessionCommands = ''
${pkgs.uim}/bin/uim-xim &
${pkgs.uim}/bin/uim-toolbar-${cfg.toolbar} &
'';
};
}

View file

@ -251,6 +251,7 @@
cfdyndns = 227;
gammu-smsd = 228;
pdnsd = 229;
octoprint = 230;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -478,6 +479,7 @@
rmilter = 226;
cfdyndns = 227;
pdnsd = 229;
octoprint = 230;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal

View file

@ -43,6 +43,11 @@
./hardware/video/nvidia.nix
./hardware/video/ati.nix
./hardware/video/webcam/facetimehd.nix
./i18n/inputMethod/default.nix
./i18n/inputMethod/fcitx.nix
./i18n/inputMethod/ibus.nix
./i18n/inputMethod/nabi.nix
./i18n/inputMethod/uim.nix
./installer/tools/auto-upgrade.nix
./installer/tools/nixos-checkout.nix
./installer/tools/tools.nix
@ -66,7 +71,6 @@
./programs/environment.nix
./programs/freetds.nix
./programs/fish.nix
./programs/ibus.nix
./programs/kbdlight.nix
./programs/light.nix
./programs/man.nix
@ -229,6 +233,7 @@
./services/misc/nix-gc.nix
./services/misc/nixos-manual.nix
./services/misc/nix-ssh-serve.nix
./services/misc/octoprint.nix
./services/misc/parsoid.nix
./services/misc/phd.nix
./services/misc/plex.nix
@ -252,6 +257,7 @@
./services/monitoring/dd-agent.nix
./services/monitoring/grafana.nix
./services/monitoring/graphite.nix
./services/monitoring/hdaps.nix
./services/monitoring/heapster.nix
./services/monitoring/longview.nix
./services/monitoring/monit.nix
@ -270,6 +276,7 @@
./services/monitoring/zabbix-agent.nix
./services/monitoring/zabbix-server.nix
./services/network-filesystems/drbd.nix
./services/network-filesystems/netatalk.nix
./services/network-filesystems/nfsd.nix
./services/network-filesystems/openafs-client/default.nix
./services/network-filesystems/rsyncd.nix
@ -442,6 +449,7 @@
./services/x11/display-managers/lightdm.nix
./services/x11/display-managers/sddm.nix
./services/x11/display-managers/slim.nix
./services/x11/hardware/libinput.nix
./services/x11/hardware/multitouch.nix
./services/x11/hardware/synaptics.nix
./services/x11/hardware/wacom.nix

View file

@ -14,4 +14,6 @@
# to the *boot time* of the host).
hwclock -s
'';
security.rngd.enable = false;
}

View file

@ -1,51 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs.ibus;
in
{
options = {
programs.ibus = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enable IBus input method";
};
plugins = mkOption {
type = lib.types.listOf lib.types.path;
default = [];
description = ''
IBus plugin packages
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.ibus pkgs.gnome3.dconf ];
gtkPlugins = [ pkgs.ibus ];
qtPlugins = [ pkgs.ibus-qt ];
environment.variables =
let
env = pkgs.buildEnv {
name = "ibus-env";
paths = [ pkgs.ibus ] ++ cfg.plugins;
};
in {
GTK_IM_MODULE = "ibus";
QT_IM_MODULE = "ibus";
XMODIFIERS = "@im=ibus";
IBUS_COMPONENT_PATH = "${env}/share/ibus/component";
};
services.xserver.displayManager.sessionCommands = "${pkgs.ibus}/bin/ibus-daemon --daemonize --xim --cache=none";
};
}

View file

@ -59,6 +59,9 @@ with lib;
# Tarsnap
(mkRenamedOptionModule [ "services" "tarsnap" "config" ] [ "services" "tarsnap" "archives" ])
# ibus
(mkRenamedOptionModule [ "programs" "ibus" "plugins" ] [ "i18n" "inputMethod" "ibus" "engines" ])
# proxy
(mkRenamedOptionModule [ "nix" "proxy" ] [ "networking" "proxy" "default" ])

View file

@ -13,13 +13,13 @@ let
extraUdevRules = pkgs.writeTextFile {
name = "extra-udev-rules";
text = cfg.extraRules;
destination = "/etc/udev/rules.d/10-local.rules";
destination = "/etc/udev/rules.d/99-local.rules";
};
extraHwdbFile = pkgs.writeTextFile {
name = "extra-hwdb-file";
text = cfg.extraHwdb;
destination = "/etc/udev/hwdb.d/10-local.hwdb";
destination = "/etc/udev/hwdb.d/99-local.hwdb";
};
nixosRules = ''
@ -212,8 +212,8 @@ in
type = types.lines;
description = ''
Additional <command>udev</command> rules. They'll be written
into file <filename>10-local.rules</filename>. Thus they are
read before all other rules.
into file <filename>99-local.rules</filename>. Thus they are
read and applied after all other rules.
'';
};

View file

@ -72,7 +72,8 @@ in
};
services.nixosManual.ttyNumber = mkOption {
default = "8";
type = types.int;
default = 8;
description = ''
Virtual console on which to show the manual.
'';
@ -96,7 +97,7 @@ in
[ manual.manual help ]
++ optional config.programs.man.enable manual.manpages;
boot.extraTTYs = mkIf cfg.showManual ["tty${cfg.ttyNumber}"];
boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"];
systemd.services = optionalAttrs cfg.showManual
{ "nixos-manual" =
@ -106,7 +107,7 @@ in
{ ExecStart = "${cfg.browser} ${entry}";
StandardInput = "tty";
StandardOutput = "tty";
TTYPath = "/dev/tty${cfg.ttyNumber}";
TTYPath = "/dev/tty${toString cfg.ttyNumber}";
TTYReset = true;
TTYVTDisallocate = true;
Restart = "always";

View file

@ -0,0 +1,118 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.octoprint;
cfgUpdate = pkgs.writeText "octoprint-config.yaml" (builtins.toJSON {
plugins.cura.cura_engine = "${pkgs.curaengine}/bin/CuraEngine";
server.host = cfg.host;
server.port = cfg.port;
webcam.ffmpeg = "${pkgs.ffmpeg}/bin/ffmpeg";
});
pluginsEnv = pkgs.python.buildEnv.override {
extraLibs = cfg.plugins pkgs.octoprint-plugins;
};
in
{
##### interface
options = {
services.octoprint = {
enable = mkEnableOption "OctoPrint, web interface for 3D printers";
host = mkOption {
type = types.str;
default = "0.0.0.0";
description = ''
Host to bind OctoPrint to.
'';
};
port = mkOption {
type = types.int;
default = 5000;
description = ''
Port to bind OctoPrint to.
'';
};
user = mkOption {
type = types.str;
default = "octoprint";
description = "User for the daemon.";
};
group = mkOption {
type = types.str;
default = "octoprint";
description = "Group for the daemon.";
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/octoprint";
description = "State directory of the daemon.";
};
plugins = mkOption {
default = plugins: [];
example = literalExample "plugins: [ m3d-fio ]";
description = "Additional plugins.";
};
};
};
##### implementation
config = mkIf cfg.enable {
users.extraUsers = optionalAttrs (cfg.user == "octoprint") (singleton
{ name = "octoprint";
group = cfg.group;
uid = config.ids.uids.octoprint;
});
users.extraGroups = optionalAttrs (cfg.group == "octoprint") (singleton
{ name = "octoprint";
gid = config.ids.gids.octoprint;
});
systemd.services.octoprint = {
description = "OctoPrint, web interface for 3D printers";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
path = [ pluginsEnv ];
environment.PYTHONPATH = makeSearchPath pkgs.python.sitePackages [ pluginsEnv ];
preStart = ''
mkdir -p "${cfg.stateDir}"
if [ -e "${cfg.stateDir}/config.yaml" ]; then
${pkgs.yaml-merge}/bin/yaml-merge "${cfg.stateDir}/config.yaml" "${cfgUpdate}" > "${cfg.stateDir}/config.yaml.tmp"
mv "${cfg.stateDir}/config.yaml.tmp" "${cfg.stateDir}/config.yaml"
else
cp "${cfgUpdate}" "${cfg.stateDir}/config.yaml"
chmod 600 "${cfg.stateDir}/config.yaml"
fi
chown -R ${cfg.user}:${cfg.group} "${cfg.stateDir}"
'';
serviceConfig = {
ExecStart = "${pkgs.octoprint}/bin/octoprint -b ${cfg.stateDir}";
User = cfg.user;
Group = cfg.group;
PermissionsStartOnly = true;
};
};
};
}

View file

@ -0,0 +1,22 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.hdapsd;
hdapsd = [ pkgs.hdapsd ];
in
{
options = {
services.hdapsd.enable = mkEnableOption
''
Hard Drive Active Protection System Daemon,
devices are detected and managed automatically by udev and systemd
'';
};
config = mkIf cfg.enable {
services.udev.packages = hdapsd;
systemd.packages = hdapsd;
};
}

View file

@ -0,0 +1,150 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.netatalk;
extmapFile = pkgs.writeText "extmap.conf" cfg.extmap;
afpToString = x: if builtins.typeOf x == "bool"
then (if x then "true" else "false")
else toString x;
volumeConfig = name:
let vol = getAttr name cfg.volumes; in
"[${name}]\n " + (toString (
map
(key: "${key} = ${afpToString (getAttr key vol)}\n")
(attrNames vol)
));
afpConf = ''[Global]
extmap file = ${extmapFile}
afp port = ${toString cfg.port}
${cfg.extraConfig}
${if cfg.homes.enable then ''[Homes]
${optionalString (cfg.homes.path != "") "path = ${cfg.homes.path}"}
basedir regex = ${cfg.homes.basedirRegex}
${cfg.homes.extraConfig}
'' else ""}
${toString (map volumeConfig (attrNames cfg.volumes))}
'';
afpConfFile = pkgs.writeText "afp.conf" afpConf;
in
{
options = {
services.netatalk = {
enable = mkOption {
default = false;
description = "Whether to enable the Netatalk AFP fileserver.";
};
port = mkOption {
default = 548;
description = "TCP port to be used for AFP.";
};
extraConfig = mkOption {
type = types.lines;
default = "";
example = "uam list = uams_guest.so";
description = ''
Lines of configuration to add to the <literal>[Global]</literal> section.
See <literal>man apf.conf</literal> for more information.
'';
};
homes = {
enable = mkOption {
default = false;
description = "Enable sharing of the UNIX server user home directories.";
};
path = mkOption {
default = "";
example = "afp-data";
description = "Share not the whole user home but this subdirectory path.";
};
basedirRegex = mkOption {
example = "/home";
description = "Regex which matches the parent directory of the user homes.";
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Lines of configuration to add to the <literal>[Homes]</literal> section.
See <literal>man apf.conf</literal> for more information.
'';
};
};
volumes = mkOption {
default = { };
type = types.attrsOf (types.attrsOf types.unspecified);
description =
''
Set of AFP volumes to export.
See <literal>man apf.conf</literal> for more information.
'';
example =
{ srv =
{ path = "/srv";
"read only" = true;
"hosts allow" = "10.1.0.0/16 10.2.1.100 2001:0db8:1234::/48";
};
};
};
extmap = mkOption {
type = types.lines;
default = "";
description = ''
File name extension mappings.
See <literal>man extmap.conf</literal> for more information.
'';
};
};
};
config = mkIf cfg.enable {
systemd.services.netatalk = {
description = "Netatalk AFP fileserver for Macintosh clients";
unitConfig.Documentation = "man:afp.conf(5) man:netatalk(8) man:afpd(8) man:cnid_metad(8) man:cnid_dbd(8)";
after = [ "network.target" "avahi-daemon.service" ];
wantedBy = [ "multi-user.target" ];
path = [ pkgs.netatalk ];
serviceConfig = {
Type = "forking";
GuessMainPID = "no";
PIDFile = "/run/lock/netatalk";
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -m 0755 -p /var/lib/netatalk/CNID";
ExecStart = "${pkgs.netatalk}/sbin/netatalk -F ${afpConfFile}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
Restart = "always";
RestartSec = 1;
};
};
security.pam.services.netatalk.unixAuth = true;
};
}

View file

@ -54,7 +54,7 @@ rec {
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs.pythonPackages; [
python twisted pycrypto pyasn1 ];
python twisted_11 pycrypto pyasn1 ];
environment.etc."kippo.cfg".text = ''
# Automatically generated by NixOS.
@ -84,7 +84,7 @@ rec {
description = "Kippo Web Server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment.PYTHONPATH = "${pkgs.kippo}/src/:${pkgs.pythonPackages.pycrypto}/lib/python2.7/site-packages/:${pkgs.pythonPackages.pyasn1}/lib/python2.7/site-packages/:${pkgs.pythonPackages.python}/lib/python2.7/site-packages/:${pkgs.pythonPackages.twisted}/lib/python2.7/site-packages/:.";
environment.PYTHONPATH = "${pkgs.kippo}/src/:${pkgs.pythonPackages.pycrypto}/lib/python2.7/site-packages/:${pkgs.pythonPackages.pyasn1}/lib/python2.7/site-packages/:${pkgs.pythonPackages.python}/lib/python2.7/site-packages/:${pkgs.pythonPackages.twisted_11}/lib/python2.7/site-packages/:.";
preStart = ''
if [ ! -d ${cfg.varPath}/ ] ; then
mkdir -p ${cfg.logPath}/tty
@ -107,7 +107,7 @@ rec {
fi
'';
serviceConfig.ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd -y ${pkgs.kippo}/src/kippo.tac --syslog --rundir=${cfg.varPath}/ --pidfile=${cfg.pidPath}/kippo.pid --prefix=kippo -n";
serviceConfig.ExecStart = "${pkgs.pythonPackages.twisted_11}/bin/twistd -y ${pkgs.kippo}/src/kippo.tac --syslog --rundir=${cfg.varPath}/ --pidfile=${cfg.pidPath}/kippo.pid --prefix=kippo -n";
serviceConfig.PermissionsStartOnly = true;
serviceConfig.User = "kippo";
serviceConfig.Group = "kippo";

View file

@ -304,7 +304,7 @@ in
services.openssh.authorizedKeysFiles =
[ ".ssh/authorized_keys" ".ssh/authorized_keys2" "/etc/ssh/authorized_keys.d/%u" ];
services.openssh.extraConfig =
services.openssh.extraConfig = mkOrder 0
''
PidFile /run/sshd.pid

View file

@ -127,6 +127,7 @@ in {
in {
description = "WPA Supplicant";
after = [ "network-interfaces.target" ];
wantedBy = [ "network.target" ];
path = [ pkgs.wpa_supplicant ];

View file

@ -21,10 +21,9 @@ in
chown -R root:root /var/lib/zerotier-one
'';
serviceConfig = {
Type = "forking";
User = "root";
PIDFile = "/var/lib/zerotier-one/zerotier-one.pid";
ExecStart = "${pkgs.zerotierone}/bin/zerotier-one -d";
ExecStart = "${pkgs.zerotierone}/bin/zerotier-one";
Restart = "always";
KillMode = "process";
};
};
environment.systemPackages = [ pkgs.zerotierone ];

View file

@ -173,7 +173,8 @@ let
SSLRandomSeed connect builtin
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!EXP
SSLCipherSuite HIGH:!aNULL:!MD5:!EXP
SSLHonorCipherOrder on
'';

View file

@ -5,44 +5,86 @@ with lib;
let
cfg = config.services.uwsgi;
python2Pkgs = pkgs.python2Packages.override {
python = pkgs.uwsgi.python2;
self = python2Pkgs;
};
python3Pkgs = pkgs.python3Packages.override {
python = pkgs.uwsgi.python3;
self = python3Pkgs;
};
buildCfg = c: if builtins.typeOf c != "set" then builtins.readFile c else builtins.toJSON {
uwsgi =
if c.type == "normal"
then {
pythonpath =
(if c ? python2Packages
then builtins.map (x: "${x}/${pkgs.uwsgi.python2.sitePackages}") (c.python2Packages python2Pkgs)
else [])
++ (if c ? python3Packages
then builtins.map (x: "${x}/${pkgs.uwsgi.python3.sitePackages}") (c.python3Packages python3Pkgs)
else []);
plugins = cfg.plugins;
} // removeAttrs c [ "type" "python2Packages" "python3Packages" ]
else if c.type == "emperor"
then {
emperor = if builtins.typeOf c.vassals != "set" then c.vassals
else pkgs.buildEnv {
name = "vassals";
paths = mapAttrsToList (n: c: pkgs.writeTextDir "${n}.json" (buildCfg c)) c.vassals;
};
} // removeAttrs c [ "type" "vassals" ]
else abort "type should be either 'normal' or 'emperor'";
};
uwsgi = pkgs.uwsgi.override {
plugins = cfg.plugins;
};
buildCfg = name: c:
let
plugins =
if any (n: !any (m: m == n) cfg.plugins) (c.plugins or [])
then throw "`plugins` attribute in UWSGI configuration contains plugins not in config.services.uwsgi.plugins"
else c.plugins or cfg.plugins;
hasPython = v: filter (n: n == "python${v}") plugins != [];
hasPython2 = hasPython "2";
hasPython3 = hasPython "3";
python =
if hasPython2 && hasPython3 then
throw "`plugins` attribute in UWSGI configuration shouldn't contain both python2 and python3"
else if hasPython2 then uwsgi.python2
else if hasPython3 then uwsgi.python3
else null;
pythonPackages = pkgs.pythonPackages.override {
inherit python;
self = pythonPackages;
};
json = builtins.toJSON {
uwsgi =
if c.type == "normal"
then {
inherit plugins;
} // removeAttrs c [ "type" "pythonPackages" ]
// optionalAttrs (python != null) {
pythonpath = "@PYTHONPATH@";
env = (c.env or {}) // {
PATH = optionalString (c ? env.PATH) "${c.env.PATH}:" + "@PATH@";
};
}
else if c.type == "emperor"
then {
emperor = if builtins.typeOf c.vassals != "set" then c.vassals
else pkgs.buildEnv {
name = "vassals";
paths = mapAttrsToList buildCfg c.vassals;
};
} // removeAttrs c [ "type" "vassals" ]
else throw "`type` attribute in UWSGI configuration should be either 'normal' or 'emperor'";
};
in
if python == null || c.type != "normal"
then pkgs.writeTextDir "${name}.json" json
else pkgs.stdenv.mkDerivation {
name = "uwsgi-config";
inherit json;
passAsFile = [ "json" ];
nativeBuildInputs = [ pythonPackages.wrapPython ];
pythonInputs = (c.pythonPackages or (self: [])) pythonPackages;
buildCommand = ''
mkdir $out
declare -A pythonPathsSeen=()
program_PYTHONPATH=
program_PATH=
if [ -n "$pythonInputs" ]; then
for i in $pythonInputs; do
_addToPythonPath $i
done
fi
# A hack to replace "@PYTHONPATH@" with a JSON list
if [ -n "$program_PYTHONPATH" ]; then
program_PYTHONPATH="\"''${program_PYTHONPATH//:/\",\"}\""
fi
substitute $jsonPath $out/${name}.json \
--replace '"@PYTHONPATH@"' "[$program_PYTHONPATH]" \
--subst-var-by PATH "$program_PATH"
'';
};
in {
options = {
@ -71,21 +113,24 @@ in {
vassals = {
moin = {
type = "normal";
python2Packages = self: with self; [ moinmoin ];
pythonPackages = self: with self; [ moinmoin ];
socket = "${config.services.uwsgi.runDir}/uwsgi.sock";
};
};
}
'';
description = ''
uWSGI configuration. This awaits either a path to file or a set which will be made into one.
If given a set, it awaits an attribute <literal>type</literal> which can be either <literal>normal</literal>
or <literal>emperor</literal>.
uWSGI configuration. It awaits an attribute <literal>type</literal> inside which can be either
<literal>normal</literal> or <literal>emperor</literal>.
For <literal>normal</literal> mode you can specify <literal>pythonPackages</literal> as a function
from libraries set into a list of libraries. <literal>pythonpath</literal> will be set accordingly.
For <literal>normal</literal> mode you can specify <literal>python2Packages</literal> and
<literal>python3Packages</literal> as functions from libraries set into lists of libraries.
For <literal>emperor</literal> mode, you should use <literal>vassals</literal> attribute
which should be either a set of names and configurations or a path to a directory.
Other attributes will be used in configuration file as-is. Notice that you can redefine
<literal>plugins</literal> setting here.
'';
};
@ -118,7 +163,7 @@ in {
'';
serviceConfig = {
Type = "notify";
ExecStart = "${uwsgi}/bin/uwsgi --uid ${cfg.user} --gid ${cfg.group} --json ${pkgs.writeText "uwsgi.json" (buildCfg cfg.instance)}";
ExecStart = "${uwsgi}/bin/uwsgi --uid ${cfg.user} --gid ${cfg.group} --json ${buildCfg "server" cfg.instance}/server.json";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
NotifyAccess = "main";

View file

@ -76,8 +76,6 @@ in
environment.systemPackages =
[
pkgs.qt4 # qtconfig is the only way to set Qt 4 theme
kde5.frameworkintegration
kde5.kinit
@ -103,16 +101,12 @@ in
kde5.plasma-workspace
kde5.plasma-workspace-wallpapers
kde5.ark
kde5.dolphin
kde5.dolphin-plugins
kde5.ffmpegthumbs
kde5.gwenview
kde5.kate
kde5.kdegraphics-thumbnailers
kde5.kio-extras
kde5.konsole
kde5.okular
kde5.print-manager
# Oxygen icons moved to KDE Frameworks 5.16 and later.

View file

@ -0,0 +1,235 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.services.xserver.libinput;
xorgBool = v: if v then "on" else "off";
in {
options = {
services.xserver.libinput = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = "Whether to enable libinput support.";
};
dev = mkOption {
type = types.nullOr types.str;
default = null;
example = "/dev/input/event0";
description =
''
Path for touchpad device. Set to null to apply to any
auto-detected touchpad.
'';
};
accelProfile = mkOption {
type = types.enum [ "flat" "adaptive" ];
default = "flat";
example = "adaptive";
description =
''
Sets the pointer acceleration profile to the given profile. Permitted values are adaptive, flat.
Not all devices support this option or all profiles. If a profile is unsupported, the default profile
for this is used. For a description on the profiles and their behavior, see the libinput documentation.
'';
};
accelSpeed = mkOption {
type = types.nullOr types.string;
default = null;
description = "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed).";
};
buttonMapping = mkOption {
type = types.nullOr types.string;
default = null;
description =
''
Sets the logical button mapping for this device, see XSetPointerMapping(3). The string must
be a space-separated list of button mappings in the order of the logical buttons on the
device, starting with button 1. The default mapping is "1 2 3 ... 32". A mapping of 0 deac
tivates the button. Multiple buttons can have the same mapping. Invalid mapping strings are
discarded and the default mapping is used for all buttons. Buttons not specified in the
user's mapping use the default mapping. See section BUTTON MAPPING for more details.
'';
};
calibrationMatrix = mkOption {
type = types.nullOr types.string;
default = null;
description =
''
A string of 9 space-separated floating point numbers. Sets the calibration matrix to the
3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi).
'';
};
clickMethod = mkOption {
type = types.nullOr (types.enum [ "none" "buttonareas" "clickfinger" ]);
default = null;
example = "none";
description =
''
Enables a click method. Permitted values are none, buttonareas, clickfinger.
Not all devices support all methods, if an option is unsupported,
the default click method for this device is used.
'';
};
leftHanded = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enables left-handed button orientation, i.e. swapping left and right buttons.";
};
middleEmulation = mkOption {
type = types.bool;
default = true;
example = false;
description =
''
Enables middle button emulation. When enabled, pressing the left and right buttons
simultaneously produces a middle mouse button click.
'';
};
naturalScrolling = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enables or disables natural scrolling behavior.";
};
scrollButton = mkOption {
type = types.nullOr types.int;
default = null;
example = 1;
description =
''
Designates a button as scroll button. If the ScrollMethod is button and the button is logically
held down, x/y axis movement is converted into scroll events.
'';
};
scrollMethod = mkOption {
type = types.enum [ "twofinger" "edge" "none" ];
default = "twofinger";
example = "edge";
description =
''
Specify the scrolling method.
'';
};
horizontalScrolling = mkOption {
type = types.bool;
default = true;
example = false;
description =
''
Disables horizontal scrolling. When disabled, this driver will discard any horizontal scroll
events from libinput. Note that this does not disable horizontal scrolling, it merely
discards the horizontal axis from any scroll events.
'';
};
sendEventsMode = mkOption {
type = types.enum [ "disabled" "enabled" "disabled-on-external-mouse" ];
default = "enabled";
example = "disabled";
description =
''
Sets the send events mode to disabled, enabled, or "disable when an external mouse is connected".
'';
};
tapping = mkOption {
type = types.bool;
default = true;
example = false;
description =
''
Enables or disables tap-to-click behavior.
'';
};
tappingDragLock = mkOption {
type = types.bool;
default = true;
example = false;
description =
''
Enables or disables drag lock during tapping behavior. When enabled, a finger up during tap-
and-drag will not immediately release the button. If the finger is set down again within the
timeout, the draging process continues.
'';
};
disableWhileTyping = mkOption {
type = types.bool;
default = true;
example = false;
description =
''
Disable input method while typing.
'';
};
additionalOptions = mkOption {
type = types.str;
default = "";
example =
''
Option "DragLockButtons" "L1 B1 L2 B2"
'';
description = "Additional options for libinput touchpad driver.";
};
};
};
config = mkIf cfg.enable {
services.xserver.modules = [ pkgs.xorg.xf86inputlibinput ];
environment.systemPackages = [ pkgs.xorg.xf86inputlibinput ];
services.xserver.config =
''
# Automatically enable the libinput driver for all touchpads.
Section "InputClass"
Identifier "libinputConfiguration"
MatchIsTouchpad "on"
${optionalString (cfg.dev != null) ''MatchDevicePath "${cfg.dev}"''}
Driver "libinput"
Option "AccelProfile" "${cfg.accelProfile}"
${optionalString (cfg.accelSpeed != null) ''Option "AccelSpeed" "${cfg.accelSpeed}"''}
${optionalString (cfg.buttonMapping != null) ''Option "ButtonMapping" "${cfg.buttonMapping}"''}
${optionalString (cfg.calibrationMatrix != null) ''Option "CalibrationMatrix" "${cfg.calibrationMatrix}"''}
${optionalString (cfg.clickMethod != null) ''Option "ClickMethod" "${cfg.clickMethod}"''}
Option "LeftHanded" "${xorgBool cfg.leftHanded}"
Option "MiddleEmulation" "${xorgBool cfg.middleEmulation}"
Option "NaturalScrolling" "${xorgBool cfg.naturalScrolling}"
${optionalString (cfg.scrollButton != null) ''Option "ScrollButton" "${cfg.scrollButton}"''}
Option "ScrollMethod" "${cfg.scrollMethod}"
Option "HorizontalScrolling" "${xorgBool cfg.horizontalScrolling}"
Option "SendEventsMode" "${cfg.sendEventsMode}"
Option "Tapping" "${xorgBool cfg.tapping}"
Option "TappingDragLock" "${xorgBool cfg.tappingDragLock}"
Option "DisableWhileTyping" "${xorgBool cfg.disableWhileTyping}"
${cfg.additionalOptions}
EndSection
'';
};
}

View file

@ -8,7 +8,7 @@ in
{
options = {
services.xserver.windowManager.openbox.enable = mkEnableOption "oroborus";
services.xserver.windowManager.openbox.enable = mkEnableOption "openbox";
};
config = mkIf cfg.enable {

View file

@ -71,6 +71,23 @@ mount -t devtmpfs -o "size=@devSize@" devtmpfs /dev
mkdir -p /run
mount -t tmpfs -o "mode=0755,size=@runSize@" tmpfs /run
# Log the script output to /dev/kmsg or /run/log/stage-1-init.log.
mkdir -p /tmp
mkfifo /tmp/stage-1-init.log.fifo
logOutFd=8 && logErrFd=9
eval "exec $logOutFd>&1 $logErrFd>&2"
if test -w /dev/kmsg; then
tee -i < /tmp/stage-1-init.log.fifo /proc/self/fd/"$logOutFd" | while read -r line; do
if test -n "$line"; then
echo "<7>stage-1-init: $line" > /dev/kmsg
fi
done &
else
mkdir -p /run/log
tee -i < /tmp/stage-1-init.log.fifo /run/log/stage-1-init.log &
fi
exec > /tmp/stage-1-init.log.fifo 2>&1
# Process the kernel command line.
export stage2Init=/init
@ -415,6 +432,14 @@ fi
# Stop udevd.
udevadm control --exit
# Reset the logging file descriptors.
# Do this just before pkill, which will kill the tee process.
if test -n "@logCommands@"
then
exec 1>&$logOutFd 2>&$logErrFd
eval "exec $logOutFd>&- $logErrFd>&-"
fi
# Kill any remaining processes, just to be sure we're not taking any
# with us into stage 2. But keep storage daemons like unionfs-fuse.
pkill -9 -v -f '@'

View file

@ -155,6 +155,21 @@ mkdir -m 0755 -p /var/setuid-wrappers
mount -t tmpfs -o "mode=0755" tmpfs /var/setuid-wrappers
# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
# Only at this point are all the necessary prerequisites ready for these commands.
exec {logOutFd}>&1 {logErrFd}>&2
if test -w /dev/kmsg; then
exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
if test -n "$line"; then
echo "<7>stage-2-init: $line" > /dev/kmsg
fi
done) 2>&1
else
mkdir -p /run/log
exec > >(tee -i /run/log/stage-2-init.log) 2>&1
fi
# Run the script that performs all configuration activation that does
# not have to be done at boot time.
echo "running activation script..."
@ -182,6 +197,11 @@ ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system
@shell@ @postBootCommands@
# Reset the logging file descriptors.
exec 1>&$logOutFd 2>&$logErrFd
exec {logOutFd}>&- {logErrFd}>&-
# Start systemd.
echo "starting systemd..."
PATH=/run/current-system/systemd/lib/systemd \

View file

@ -20,7 +20,15 @@ let kernel = config.boot.kernelPackages.kernel; in
export USER=root
export HOME=/root
export DISPLAY=:0.0
source /etc/profile
# Don't use a pager when executing backdoor
# actions. Because we use a tty, commands like systemctl
# or nix-store get confused into thinking they're running
# interactively.
export PAGER=
cd /tmp
exec < /dev/hvc0 > /dev/hvc0
while ! exec 2> /dev/ttyS0; do sleep 0.1; done
@ -38,11 +46,6 @@ let kernel = config.boot.kernelPackages.kernel; in
systemd.services."serial-getty@ttyS0".enable = false;
systemd.services."serial-getty@hvc0".enable = false;
# Don't use a pager when executing backdoor actions. Because we
# use a tty, commands like systemctl or nix-store get confused
# into thinking they're running interactively.
environment.variables.PAGER = "";
boot.initrd.preDeviceCommands =
''
echo 600 > /proc/sys/kernel/hung_task_timeout_secs

View file

@ -9,10 +9,10 @@ let
waagent = with pkgs; stdenv.mkDerivation rec {
name = "waagent-2.0";
src = pkgs.fetchFromGitHub {
owner = "phreedom";
owner = "Azure";
repo = "WALinuxAgent";
rev = "1d31fe8cbc7f842993eed9b33a3d3f5410c364e3";
sha256 = "1s53pfmy3azp0rmympmnphyq96sr9jy07pbsfza6mdzpalx1ripl";
rev = "1b3a8407a95344d9d12a2a377f64140975f1e8e4";
sha256 = "10byzvmpgrmr4d5mdn2kq04aapqb3sgr1admk13wjmy5cd6bwd2x";
};
buildInputs = [ makeWrapper python pythonPackages.wrapPython ];
runtimeDeps = [ findutils gnugrep gawk coreutils openssl openssh

View file

@ -16,14 +16,14 @@ in
cyl=$(((${diskSize}*1024*1024)/(512*63*255)))
size=$(($cyl*255*63*512))
roundedsize=$((($size/(1024*1024)+1)*(1024*1024)))
${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage $roundedsize
${pkgs.vmTools.qemu-220}/bin/qemu-img create -f raw $diskImage $roundedsize
mv closure xchg/
'';
postVM =
''
mkdir -p $out
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vpc -o subformat=fixed $diskImage $out/disk.vhd
${pkgs.vmTools.qemu-220}/bin/qemu-img convert -f raw -O vpc -o subformat=fixed $diskImage $out/disk.vhd
rm $diskImage
'';
diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw";

View file

@ -0,0 +1,14 @@
diff --git a/Makefile b/Makefile
index d6b9dc1..ce7c493 100644
--- a/Makefile
+++ b/Makefile
@@ -384,8 +384,7 @@ install-confdir:
install-sysconfig: install-datadir install-confdir
$(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(qemu_confdir)"
-install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig \
-install-datadir install-localstatedir
+install: all $(if $(BUILD_DOCS),install-doc) install-datadir
ifneq ($(TOOLS),)
$(call install-prog,$(TOOLS),$(DESTDIR)$(bindir))
endif

View file

@ -1,23 +1,23 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
, withGui }:
with stdenv.lib;
stdenv.mkDerivation rec{
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
core_version = "0.11.0";
core_version = "0.12.0";
version = core_version;
src = fetchurl {
urls = [ "https://bitcoin.org/bin/bitcoin-core-${core_version}/bitcoin-${version}.tar.gz"
"mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${core_version}/bitcoin-${version}.tar.gz"
];
sha256 = "51ba1756addfa71567559e3f22331c1d908a63571891287689fff7113035d09f";
sha256 = "0f1cda66c841a548a07cc37e80b0727354b1236d9f374c7d44362acdb85eb3e1";
};
buildInputs = [ pkgconfig autoreconfHook openssl db48 boost zlib
miniupnpc protobuf ]
miniupnpc protobuf libevent]
++ optionals stdenv.isLinux [ utillinux ]
++ optionals withGui [ qt4 qrencode ];

View file

@ -1,9 +1,9 @@
{ stdenv, fetchurl, buildPythonPackage, pythonPackages, mygpoclient, intltool
{ stdenv, fetchurl, buildPythonApplication, pythonPackages, mygpoclient, intltool
, ipodSupport ? true, libgpod
, gnome3
}:
buildPythonPackage rec {
buildPythonApplication rec {
name = "gpodder-${version}";
namePrefix = "";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages, gettext, klick}:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "gtklick-${version}";
namePrefix = "";
version = "0.6.4";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "lastfmsubmitd-${version}";
namePrefix = "";
version = "1.0.6";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchgit, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "lastwatch-${version}";
namePrefix = "";
version = "0.4.1";

View file

@ -1,19 +1,21 @@
{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, fluidsynth
{ stdenv, fetchFromGitHub, SDL, alsaLib, cmake, fftwSinglePrec, fluidsynth
, fltk13, libjack2, libvorbis , libsamplerate, libsndfile, pkgconfig
, libpulseaudio, qt4, freetype
, libpulseaudio, qt4, freetype, libgig
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "lmms-${version}";
version = "1.1.3";
version = "1.1.90";
src = fetchurl {
url = "https://github.com/LMMS/lmms/archive/v${version}.tar.gz";
sha256 = "1g76z7ha3hd53vbqaq9n1qg6s3lw8zzaw51iny6y2bz0j1xqwcsr";
src = fetchFromGitHub {
owner = "LMMS";
repo = "lmms";
rev = "v${version}";
sha256 = "0njiarndwqamqiinr1wbwkzjn87yzr1z5k9cfwk0jdkbalgakkq3";
};
buildInputs = [
SDL alsaLib cmake fftwSinglePrec fltk13 fluidsynth libjack2
SDL alsaLib cmake fftwSinglePrec fltk13 fluidsynth libjack2 libgig
libsamplerate libsndfile libvorbis pkgconfig libpulseaudio qt4
];

View file

@ -2,7 +2,7 @@
let version = "3.2";
in
pythonPackages.buildPythonPackage {
pythonPackages.buildPythonApplication {
name = "mimms-${version}";
src = fetchurl {
url = "http://download.savannah.gnu.org/releases/mimms/mimms-${version}.tar.bz2";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-gmusic-${version}";
version = "1.0.0";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-moped-${version}";
version = "0.6.0";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-mopify-${version}";
version = "1.5.8";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-musicbox-webclient-${version}";
version = "2.0.0";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-soundcloud-${version}";
version = "2.0.2";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pythonPackages, mopidy, mopidy-spotify }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-spotify-tunigo-${version}";
version = "0.2.1";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-spotify-${version}";
version = "2.3.1";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-youtube-${version}";
version = "2.0.1";

View file

@ -2,7 +2,7 @@
, glib_networking, gst_plugins_good, gst_plugins_base, gst_plugins_ugly
}:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "mopidy-${version}";
version = "1.1.2";

View file

@ -1,10 +1,10 @@
{ stdenv, buildPythonPackage, fetchurl, gettext
{ stdenv, buildPythonApplication, fetchurl, gettext
, pkgconfig, libofa, ffmpeg, chromaprint
, pyqt4, mutagen, python-libdiscid
}:
let version = "1.3.2"; in
buildPythonPackage {
buildPythonApplication {
name = "picard-${version}";
namePrefix = "";

View file

@ -1,7 +1,7 @@
{ fetchFromGitHub, stdenv, pythonPackages, gtk3, gobjectIntrospection, libnotify
, gst_all_1, wrapGAppsHook }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
pname = "pithos";
version = "1.1.2";
name = "${pname}-${version}";

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject, intltool
{ stdenv, fetchurl, python, buildPythonApplication, mutagen, pygtk, pygobject, intltool
, pythonDBus, gst_python, withGstPlugins ? false, gst_plugins_base ? null
, gst_plugins_good ? null, gst_plugins_ugly ? null, gst_plugins_bad ? null }:
@ -9,7 +9,7 @@ assert withGstPlugins -> gst_plugins_base != null
let version = "2.6.3"; in
buildPythonPackage {
buildPythonApplication {
# call the package quodlibet and just quodlibet
name = "quodlibet-${version}"
+ stdenv.lib.optionalString withGstPlugins "-with-gst-plugins";

View file

@ -1,11 +1,11 @@
{ pkgs, stdenv, fetchFromGitHub, pkgconfig, intltool, wrapGAppsHook,
python, buildPythonPackage, isPy3k,
python, buildPythonApplication, isPy3k,
gnome3, gtk3, gobjectIntrospection,
dbus, pygobject3, mpd2 }:
with pkgs.lib;
buildPythonPackage rec {
buildPythonApplication rec {
name = "sonata-${version}";
version = "1.7b1";
namePrefix = "";

View file

@ -5,7 +5,7 @@
assert stdenv.system == "x86_64-linux";
let
version = "1.0.19.106.gb8a7150f";
version = "1.0.23.93.gd6cfae15-30";
deps = [
alsaLib
@ -50,7 +50,7 @@ stdenv.mkDerivation {
src =
fetchurl {
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
sha256 = "be6b99329bb2fccdc9d77bc949dd463576fdb40db7f56195b4284bd348c470be";
sha256 = "0n6vz51jv6s20dp4zlqkk52bpmpyfm1qn5bfm4lfq09x1g6ir5lr";
};
buildInputs = [ dpkg makeWrapper ];

View file

@ -81,10 +81,10 @@
aggressive-indent = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "aggressive-indent";
version = "1.4";
version = "1.5";
src = fetchurl {
url = "http://elpa.gnu.org/packages/aggressive-indent-1.4.el";
sha256 = "0qdpvdzmw4hq2g8krx93fbb352nkg731p7v82zhqw76y79khdpka";
url = "http://elpa.gnu.org/packages/aggressive-indent-1.5.el";
sha256 = "00ddfni659rl19ybzrywj3b444akvil6n06k8lf5jyaqb53mkc5d";
};
packageRequires = [ cl-lib emacs ];
meta = {
@ -95,10 +95,10 @@
ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "ahungry-theme";
version = "1.0.12";
version = "1.1.0";
src = fetchurl {
url = "http://elpa.gnu.org/packages/ahungry-theme-1.0.12.tar";
sha256 = "0a6mlxka1b7vja4wxd8gvfhfk5i1jdj3a851c7dn34hz1lkgvnx8";
url = "http://elpa.gnu.org/packages/ahungry-theme-1.1.0.tar";
sha256 = "1jy2h4r72fr26yavs0s8dy1xnkxvaf2hsrlm63f6sng81njj9dgx";
};
packageRequires = [ emacs ];
meta = {
@ -119,6 +119,19 @@
license = lib.licenses.free;
};
}) {};
ampc = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "ampc";
version = "0.2";
src = fetchurl {
url = "http://elpa.gnu.org/packages/ampc-0.2.el";
sha256 = "1pdy5mvi6h8m7qjnxiy217fgcp9w91375hq29bacfgh7bix56jlr";
};
packageRequires = [];
meta = {
homepage = "http://elpa.gnu.org/packages/ampc.html";
license = lib.licenses.free;
};
}) {};
ascii-art-to-unicode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "ascii-art-to-unicode";
@ -201,10 +214,10 @@
}) {};
beacon = callPackage ({ elpaBuild, fetchurl, lib, seq }: elpaBuild {
pname = "beacon";
version = "0.6.1";
version = "1.0";
src = fetchurl {
url = "http://elpa.gnu.org/packages/beacon-0.6.1.el";
sha256 = "0zg3gzfx06f3pj7mipfdmhmafvcil0idha3wdi068cza7akmyiwb";
url = "http://elpa.gnu.org/packages/beacon-1.0.el";
sha256 = "1rdvdn50kb7kplvi8x199cm15mn4pxidn17p84l8q5wk3arj9c09";
};
packageRequires = [ seq ];
meta = {
@ -215,10 +228,10 @@
bug-hunter = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, seq }:
elpaBuild {
pname = "bug-hunter";
version = "1.0.1";
version = "1.1";
src = fetchurl {
url = "http://elpa.gnu.org/packages/bug-hunter-1.0.1.el";
sha256 = "0c0pg542y09c1k25dxk2062pj3cj12i73kqxbpq0m6af0qm7wy9d";
url = "http://elpa.gnu.org/packages/bug-hunter-1.1.el";
sha256 = "07j455hizqiicpigy8ybpqk0v87iqa57jvpirg5yb2g8j5ipwygs";
};
packageRequires = [ cl-lib seq ];
meta = {
@ -617,10 +630,10 @@
}) {};
exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild {
pname = "exwm";
version = "0.1";
version = "0.2";
src = fetchurl {
url = "http://elpa.gnu.org/packages/exwm-0.1.tar";
sha256 = "18w9a37v8lyyjj8ll2f5mw8fw14g54b887cflzv5d576k5f606f5";
url = "http://elpa.gnu.org/packages/exwm-0.2.tar";
sha256 = "0z96zz6h5r880nbhclbxs2r0zfkg771lg0fjghigqxz8ai0hh1ll";
};
packageRequires = [ xelb ];
meta = {
@ -1044,10 +1057,10 @@
}) {};
multishell = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "multishell";
version = "1.1.2";
version = "1.1.5";
src = fetchurl {
url = "http://elpa.gnu.org/packages/multishell-1.1.2.tar";
sha256 = "1y0b6ri0kgxj0jw1cyb796lsy3ipzb7syvmj7pqpx9myzpvd3hz3";
url = "http://elpa.gnu.org/packages/multishell-1.1.5.tar";
sha256 = "0g38p5biyxqkjdkmxlikvhkhkmafyy3ibd012q83skaf8fi4cv1y";
};
packageRequires = [];
meta = {
@ -1202,10 +1215,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20160201";
version = "20160215";
src = fetchurl {
url = "http://elpa.gnu.org/packages/org-20160201.tar";
sha256 = "1lyvfpksl88c9d7k2w4k3iswgjah51k9f8fdi3jbfwivd814m9nb";
url = "http://elpa.gnu.org/packages/org-20160215.tar";
sha256 = "0w2686rza4xdknq3sy87s04zvlmjxyr6wrj9y9ydcv8hbzws3bhd";
};
packageRequires = [];
meta = {
@ -1492,10 +1505,10 @@
}) {};
spinner = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "spinner";
version = "1.4";
version = "1.7";
src = fetchurl {
url = "http://elpa.gnu.org/packages/spinner-1.4.el";
sha256 = "0j4x8hbnhda83yyb31mm9b014pfb81gdfsr026rhn8ls3y163dbf";
url = "http://elpa.gnu.org/packages/spinner-1.7.el";
sha256 = "1y78kr26mi74xf0qh32dvhk7w3bkj6d9i2iw1mypsr0h5phg8ahf";
};
packageRequires = [];
meta = {
@ -1532,10 +1545,10 @@
svg-clock = callPackage ({ elpaBuild, emacs, fetchurl, lib, svg }:
elpaBuild {
pname = "svg-clock";
version = "0.5";
version = "1.0";
src = fetchurl {
url = "http://elpa.gnu.org/packages/svg-clock-0.5.el";
sha256 = "1i77c7nyqcwc6b6n7vdh95xbmwv5kpdds6j7pklp4c9vbvm8axgp";
url = "http://elpa.gnu.org/packages/svg-clock-1.0.el";
sha256 = "0j6zk7fsv72af12phqdw8axbn2y8y4rfgxiab1p3pxq3y7k47jid";
};
packageRequires = [ emacs svg ];
meta = {
@ -1623,6 +1636,19 @@
license = lib.licenses.free;
};
}) {};
tramp-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "tramp-theme";
version = "0.1.1";
src = fetchurl {
url = "http://elpa.gnu.org/packages/tramp-theme-0.1.1.el";
sha256 = "0l8i625h9sc6h59qfj847blmfwfhf9bvfsbmwfb56qzs535fby3y";
};
packageRequires = [ emacs ];
meta = {
homepage = "http://elpa.gnu.org/packages/tramp-theme.html";
license = lib.licenses.free;
};
}) {};
transcribe = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "transcribe";
version = "1.0.2";
@ -1675,6 +1701,20 @@
license = lib.licenses.free;
};
}) {};
url-http-ntlm = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, ntlm ? null }:
elpaBuild {
pname = "url-http-ntlm";
version = "2.0.1";
src = fetchurl {
url = "http://elpa.gnu.org/packages/url-http-ntlm-2.0.1.tar";
sha256 = "0h6xsm1x7v69kb4shyvv1p4f6sxgcqs5ap6ylqydz10mbcx7aq0w";
};
packageRequires = [ cl-lib ntlm ];
meta = {
homepage = "http://elpa.gnu.org/packages/url-http-ntlm.html";
license = lib.licenses.free;
};
}) {};
vlf = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "vlf";
version = "1.7";
@ -1809,10 +1849,10 @@
xelb = callPackage ({ cl-generic, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "xelb";
version = "0.4";
version = "0.5";
src = fetchurl {
url = "http://elpa.gnu.org/packages/xelb-0.4.tar";
sha256 = "1m3wmlzcnbv1akncdaakfy4xmxyjnfb6yl1nfahwf4lfxlsvnwzd";
url = "http://elpa.gnu.org/packages/xelb-0.5.tar";
sha256 = "1wypffg492r2a3h136c6mphsbgimxcipsarm971z56kpy3lwi4sb";
};
packageRequires = [ cl-generic emacs ];
meta = {

File diff suppressed because it is too large Load diff

View file

@ -148,14 +148,14 @@ in
android-studio = buildAndroidStudio rec {
name = "android-studio-${version}";
version = "1.5.1.0";
build = "141.2456560";
version = "2.0.0.0";
build = "143.2443734";
description = "Android development environment based on IntelliJ IDEA";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
"/android-studio-ide-${build}-linux.zip";
sha256 = "0p6h21jd0xx3xzdrfv9530n1ssyc3xigr3fg33r8ain4k6n02vj6";
sha256 = "0j6bi87hb5jxjwfhfya64s673vdkdslsqc6sqa4zl97sabvafk2w";
};
};

View file

@ -0,0 +1,66 @@
{ stdenv
, lib
, fetchgit
, extra-cmake-modules
, kdoctools
, makeQtWrapper
, qtscript
, kconfig
, kcrash
, kdbusaddons
, kdelibs4support
, kguiaddons
, kiconthemes
, kinit
, khtml
, kparts
, ktexteditor
, kwindowsystem
, poppler
}:
stdenv.mkDerivation rec {
name = "kile-${version}";
version = "2016-02-14";
src = fetchgit {
url = git://anongit.kde.org/kile.git;
rev = "7b238c42580abc936816d4ea0df61d0cbbefecc4";
sha256 = "f37d531489a84911b47664697bb3bddc0ba5591854749c17fb0c6b1e71dbc6ee";
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
makeQtWrapper
];
buildInputs = [
qtscript
kconfig
kcrash
kdbusaddons
kdelibs4support
kdoctools
kguiaddons
kiconthemes
kinit
khtml
kparts
ktexteditor
kwindowsystem
poppler
];
postInstall = ''
wrapQtProgram "$out/bin/kile"
'';
meta = {
description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
homepage = https://www.kde.org/applications/office/kile/;
maintainers = with lib.maintainers; [ fridh ];
license = lib.licenses.gpl2Plus;
};
}

View file

@ -1,6 +1,6 @@
{ stdenv, pythonPackages, fetchgit }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "leo-editor-${version}";
namePrefix = "";
version = "5.1";

View file

@ -1,6 +1,6 @@
{ pkgs, fetchurl, tk, buildPythonPackage, pythonPackages }:
{ pkgs, fetchurl, tk, buildPythonApplication, pythonPackages }:
buildPythonPackage rec {
buildPythonApplication rec {
version = "0.9.2";
name = "nvpy-${version}";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2, pythonPackages, fbida, which }:
{ stdenv, fetchsvn, buildPythonApplication, python, pyGtkGlade, makeWrapper, pyexiv2, pythonPackages, fbida, which }:
buildPythonPackage rec {
buildPythonApplication rec {
name = "jbrout-${version}";
version = "338";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, python27Packages }:
{ stdenv, fetchurl, buildPythonApplication, python27Packages }:
buildPythonPackage rec {
buildPythonApplication rec {
namePrefix = "";
name = "mcomix-1.01";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, python, pygtk, pillow, libX11, gettext }:
{ stdenv, fetchurl, buildPythonApplication, python, pygtk, pillow, libX11, gettext }:
buildPythonPackage rec {
buildPythonApplication rec {
namePrefix = "";
name = "mirage-0.9.5.2";

View file

@ -1,10 +1,10 @@
{ callPackage, fetchgit, ... } @ args:
callPackage ./generic.nix (args // {
version = "2016-01-25";
version = "2016-02-19";
src = fetchgit {
sha256 = "db1fecd671bd8b3a777138bb4815285b4364ee3ad01ab05424b4aa0c20ed9919";
rev = "056f590f2d147099554d97a89dd5e0ddfa8d6dda";
sha256 = "d50971c106c8e0071d71daad7235776ac9a07a5ab0adb1e0eae5536b3021dd5f";
rev = "d74d3bcd887d2a3d59ee96e04eb68f15c0a3b882";
url = "git://alioth.debian.org/git/sane/sane-backends.git";
};
})

View file

@ -1,5 +1,5 @@
{ stdenv, pythonPackages, fetchurl }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "bleachbit-${version}";
version = "1.8";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, pythonPackages, slowaes }:
{ stdenv, fetchurl, buildPythonApplication, pythonPackages, slowaes }:
buildPythonPackage rec {
buildPythonApplication rec {
name = "electrum-dash-${version}";
version = "2.4.1";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, pythonPackages, slowaes }:
{ stdenv, fetchurl, buildPythonApplication, pythonPackages, slowaes }:
buildPythonPackage rec {
buildPythonApplication rec {
name = "electrum-${version}";
version = "2.5.4";

View file

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "emem";
version = "0.2.11";
version = "0.2.12";
name = "${pname}-${version}";
inherit jdk;
src = fetchurl {
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
sha256 = "0b514nc1s5jff3586jmfx9js57j7hl8zdwi2jxlwiavwv46rl436";
sha256 = "1ynn72n9pw9zk29c9q2zybxjg8dniilp05vghrc9vnslyi8ml90d";
};
buildInputs = [ ];

View file

@ -1,7 +1,7 @@
{ stdenv, fetchurl, gtk3, pythonPackages, python, pycairo, pygobject3, intltool,
pango, gsettings_desktop_schemas }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
version = "4.1.1";
name = "gramps-${version}";
namePrefix = "";
@ -18,7 +18,7 @@ pythonPackages.buildPythonPackage rec {
pythonPath = [ pygobject3 pango pycairo pythonPackages.bsddb ];
# Same installPhase as in buildPythonPackage but without --old-and-unmanageble
# Same installPhase as in buildPythonApplication but without --old-and-unmanageble
# install flag.
installPhase = ''
runHook preInstall

View file

@ -1,4 +1,4 @@
{ stdenv, fetchzip, buildPythonPackage, docbook2x, libxslt, gnome_doc_utils
{ stdenv, fetchzip, buildPythonApplication, docbook2x, libxslt, gnome_doc_utils
, intltool, dbus_glib, pygobject, pygtk, pyxdg, gnome_python, dbus, sqlite3
, hicolor_icon_theme
}:
@ -8,7 +8,7 @@
#
# WARNING:root:Could not import wnck - workspace tracking will be disabled
buildPythonPackage rec {
buildPythonApplication rec {
name = "hamster-time-tracker-1.04";
namePrefix = "";

View file

@ -0,0 +1,36 @@
{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
}:
stdenv.mkDerivation rec {
name = "kdeconnect-${version}";
version = "0.7.3";
src = fetchurl {
url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
};
buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
meta = with stdenv.lib; {
description = "A tool to connect and sync your devices with KDE";
longDescription = ''
The corresponding Android app, "KDE Connect", is available in
F-Droid and Google play and has the following features:
- Share files and URLs to KDE from any app
- Clipboard share: copy from or to your desktop
- Notifications sync (4.3+): Read your Android notifications from KDE
- Multimedia remote control: Use your phone as a remote control
- WiFi connection: no usb wire or bluetooth needed
- RSA Encryption: your information is safe
'';
license = licenses.gpl2;
homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -1,36 +1,56 @@
{ stdenv, fetchurl, automoc4, cmake, perl, pkgconfig
, gettext, kdelibs, libXtst, libfakekey, makeWrapper, qca2, qjson
{ stdenv
, lib
, fetchurl
, extra-cmake-modules
, makeQtWrapper
, qtquick1
, kcmutils
, kconfigwidgets
, kdbusaddons
, kiconthemes
, ki18n
, knotifications
, qca-qt5
, libfakekey
, libXtst
}:
stdenv.mkDerivation rec {
name = "kdeconnect-${version}";
version = "0.7.3";
version = "0.9g";
src = fetchurl {
url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
sha256 = "1vrr047bq5skxvibv5pb9ch9dxh005zmar017jzbyb9hilxr8kg4";
url = http://download.kde.org/unstable/kdeconnect/0.9/src/kdeconnect-kde-0.9g.tar.xz;
sha256 = "4033754057bbc993b1d4350959afbe1d17a4f1e56dd60c6df6abca5a321ee1b8";
};
buildInputs = [ gettext kdelibs libXtst libfakekey makeWrapper qca2 qjson ];
buildInputs = [
kcmutils
kconfigwidgets
kdbusaddons
qca-qt5
qtquick1
ki18n
kiconthemes
knotifications
libfakekey
libXtst
];
nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
nativeBuildInputs = [
extra-cmake-modules
makeQtWrapper
];
meta = with stdenv.lib; {
description = "A tool to connect and sync your devices with KDE";
longDescription = ''
The corresponding Android app, "KDE Connect", is available in
F-Droid and Google play and has the following features:
postInstall = ''
wrapQtProgram "$out/bin/kdeconnect-cli"
'';
- Share files and URLs to KDE from any app
- Clipboard share: copy from or to your desktop
- Notifications sync (4.3+): Read your Android notifications from KDE
- Multimedia remote control: Use your phone as a remote control
- WiFi connection: no usb wire or bluetooth needed
- RSA Encryption: your information is safe
'';
license = licenses.gpl2;
homepage = https://projects.kde.org/projects/playground/base/kdeconnect-kde;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
meta = {
description = "KDE Connect provides several features to integrate your phone and your computer";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ fridh ];
homepage = https://community.kde.org/KDEConnect;
};
}

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgs, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
version = "0.7.0";
name = "khal-${version}";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgs, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
version = "0.8.1";
name = "khard-${version}";
namePrefix = "";
@ -11,14 +11,15 @@ pythonPackages.buildPythonPackage rec {
};
propagatedBuildInputs = with pythonPackages; [
atomicwrites
configobj
vobject
argparse
pyyaml
];
buildInputs = with pythonPackages; [
pkgs.vdirsyncer
pyyaml
];
meta = {

View file

@ -3,7 +3,7 @@ let
py = python27Packages;
python = py.python;
in
py.buildPythonPackage rec {
py.buildPythonApplication rec {
name = "loxodo-0.20150124";
src = fetchgit {

View file

@ -17,7 +17,7 @@ let
];
in
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "ocropus-${version}";
version = "20150316";

View file

@ -0,0 +1,113 @@
From 73ff28c3ee5b737303871268a5487db0fcffc0f6 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Wed, 17 Feb 2016 14:37:31 +0300
Subject: [PATCH 1/2] Don't use static library
---
octoprint_m3dfio/__init__.py | 67 +-----------------------------------------
shared library source/Makefile | 6 ++--
2 files changed, 5 insertions(+), 68 deletions(-)
diff --git a/octoprint_m3dfio/__init__.py b/octoprint_m3dfio/__init__.py
index 5e5369b..9f59768 100644
--- a/octoprint_m3dfio/__init__.py
+++ b/octoprint_m3dfio/__init__.py
@@ -764,72 +764,7 @@ class M3DFioPlugin(
# Set file locations
self.setFileLocations()
- # Check if running on Linux
- if platform.uname()[0].startswith("Linux") :
-
- # Check if running on a Raspberry Pi
- if platform.uname()[4].startswith("armv6l") and self.getCpuHardware() == "BCM2708" :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm1176jzf-s.so")
-
- # Otherwise check if running on a Raspberry Pi 2
- elif platform.uname()[4].startswith("armv7l") and self.getCpuHardware() == "BCM2709" :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm_cortex-a7.so")
-
- # Otherwise check if running on an ARM7 device
- elif platform.uname()[4].startswith("armv7") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm7.so")
-
- # Otherwise check if using an i386 or x86-64 device
- elif platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64") :
-
- # Check if Python is running as 32-bit
- if platform.architecture()[0].startswith("32") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.so")
-
- # Otherwise check if Python is running as 64-bit
- elif platform.architecture()[0].startswith("64") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.so")
-
- # Otherwise check if running on Windows and using an i386 or x86-64 device
- elif platform.uname()[0].startswith("Windows") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
-
- # Check if Python is running as 32-bit
- if platform.architecture()[0].startswith("32") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.dll")
-
- # Otherwise check if Python is running as 64-bit
- elif platform.architecture()[0].startswith("64") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.dll")
-
- # Otherwise check if running on OS X and using an i386 or x86-64 device
- elif platform.uname()[0].startswith("Darwin") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
-
- # Check if Python is running as 32-bit
- if platform.architecture()[0].startswith("32") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.dylib")
-
- # Otherwise check if Python is running as 64-bit
- elif platform.architecture()[0].startswith("64") :
-
- # Set shared library
- self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.dylib")
-
+ self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/../../../libpreprocessor.so")
# Check if shared library was set
if self.sharedLibrary :
diff --git a/shared library source/Makefile b/shared library source/Makefile
index 4062a91..89dab71 100644
--- a/shared library source/Makefile
+++ b/shared library source/Makefile
@@ -58,13 +58,15 @@ ifeq ($(TARGET_PLATFORM), OSX64)
CFLAGS = -fPIC -m64 -stdlib=libc++ -O3 -Wl,-install_name,$(PROG)$(VER)
endif
+PROG = lib$(LIBRARY_NAME).so
+CC = g++
SRCS = preprocessor.cpp gcode.cpp vector.cpp
-CFLAGS += -Wall -std=c++11 -fvisibility=hidden -shared
+CFLAGS = -O3 -fPIC -Wall -std=c++11 -fvisibility=hidden -shared
all: $(PROG)
$(PROG): $(SRCS)
- $(CC) $(CFLAGS) -o ../octoprint_m3dfio/static/libraries/$(PROG) $(SRCS)
+ $(CC) $(CFLAGS) -o $(PROG) $(SRCS)
clean:
rm -f ../octoprint_m3dfio/static/libraries/$(PROG)
--
2.7.0

View file

@ -0,0 +1,43 @@
{ stdenv, fetchFromGitHub, pythonPackages }:
pythonPackages.buildPythonApplication rec {
name = "OctoPrint-${version}";
version = "1.2.9";
src = fetchFromGitHub {
owner = "foosel";
repo = "OctoPrint";
rev = version;
sha256 = "00hhq52jqwykhk3p57mn9kkcjbjz6g9mcrp96vx8lqzhw42m3a86";
};
# We need old Tornado
propagatedBuildInputs = with pythonPackages; [
awesome-slugify flask_assets watchdog rsa requests2 pkginfo pylru
semantic-version flask_principal sarge tornado_4_0_1 werkzeug netaddr flaskbabel
netifaces psutil pyserial flask_login pyyaml sockjs-tornado
];
postPatch = ''
# Jailbreak dependencies
sed -i \
-e 's,rsa==,rsa>=,g' \
-e 's,sockjs-tornado==,sockjs-tornado>=,g' \
-e 's,Flask-Principal==,Flask-Principal>=,g' \
-e 's,werkzeug==,werkzeug>=,g' \
-e 's,netaddr==,netaddr>=,g' \
-e 's,requests==,requests>=,g' \
-e 's,netifaces==,netifaces>=,g' \
-e 's,psutil==,psutil>=,g' \
-e 's,PyYAML==,PyYAML>=,g' \
setup.py
'';
meta = with stdenv.lib; {
homepage = http://octoprint.org/;
description = "The snappy web interface for your 3D printer";
platforms = platforms.all;
license = licenses.agpl3;
maintainers = with maintainers; [ abbradar ];
};
}

View file

@ -0,0 +1,82 @@
{ stdenv, fetchFromGitHub, octoprint, pythonPackages }:
let
buildPlugin = args: pythonPackages.buildPythonApplication (args // {
buildInputs = (args.buildInputs or []) ++ [ octoprint ];
});
in {
m3d-fio = buildPlugin rec {
name = "M3D-Fio-${version}";
version = "0.27";
src = fetchFromGitHub {
owner = "donovan6000";
repo = "M3D-Fio";
rev = "V${version}";
sha256 = "14zva61dhnsyapapw8q2qadfq5hzv5ykb7qxlz8a3x5j6wfhjn6h";
};
patches = [
./0001-Don-t-use-static-library.patch
];
postInstall = ''
(
cd 'shared library source'
make
install -Dm755 libpreprocessor.so $out/lib/libpreprocessor.so
)
rm -rf $out/${pythonPackages.python.sitePackages}/octoprint_m3dfio/static/libraries
'';
meta = with stdenv.lib; {
homepage = https://github.com/donovan6000/M3D-Fio;
description = " OctoPrint plugin for the Micro 3D printer";
platforms = platforms.all;
license = licenses.gpl3;
maintainers = with maintainers; [ abbradar ];
};
};
titlestatus = buildPlugin rec {
name = "OctoPrint-TitleStatus-${version}";
version = "0.0.4";
src = fetchFromGitHub {
owner = "MoonshineSG";
repo = "OctoPrint-TitleStatus";
rev = version;
sha256 = "1l78xrabn5hcly2mgxwi17nwgnp2s6jxi9iy4wnw8k8icv74ag7k";
};
meta = with stdenv.lib; {
homepage = https://github.com/MoonshineSG/OctoPrint-TitleStatus;
description = "Show printers status in window title";
platforms = platforms.all;
license = licenses.agpl3;
maintainers = with maintainers; [ abbradar ];
};
};
stlviewer = buildPlugin rec {
name = "OctoPrint-STLViewer-${version}";
version = "0.3.0";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-STLViewer";
rev = "v${version}";
sha256 = "1a6sa8pw9ay7x27pfwr3nzb22x3jaw0c9vwyz4mrj76zkiw6svfi";
};
meta = with stdenv.lib; {
homepage = https://github.com/jneilliii/Octoprint-STLViewer;
description = "A simple stl viewer tab for OctoPrint";
platforms = platforms.all;
license = licenses.agpl3;
maintainers = with maintainers; [ abbradar ];
};
};
}

View file

@ -0,0 +1,23 @@
{ stdenv, fetchurl, gtk2, libXft, intltool, automake115x, autoconf, libtool, pkgconfig }:
stdenv.mkDerivation {
name = "pcmanx-gtk2-1.3";
src = fetchurl {
url = "https://github.com/pcman-bbs/pcmanx/archive/1.3.tar.gz";
sha256 = "2e5c59f6b568036f2ad6ac67ca2a41dfeeafa185451e507f9fb987d4ed9c4302";
};
buildInputs = [ gtk2 libXft intltool automake115x autoconf libtool pkgconfig ];
preConfigurePhases = ''
./autogen.sh
'';
meta = with stdenv.lib; {
homepage = "http://pcman.ptt.cc";
license = licenses.gpl2;
description = "Telnet BBS browser with GTK+ interface";
maintainers = [ maintainers.mingchuan ];
platforms = platforms.linux;
};
}

View file

@ -2,7 +2,7 @@
let
py = pythonPackages;
in
py.buildPythonPackage rec {
py.buildPythonApplication rec {
name = "pdfdiff-${version}";
version = "0.92";

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, buildPythonPackage, tempita, jinja2, pyyaml, clepy, mock
{ stdenv, fetchurl, buildPythonApplication, tempita, jinja2, pyyaml, clepy, mock
, nose, decorator, docutils
}:
@ -11,7 +11,7 @@
# pitz-shell is not the primary interface, so it is not critical to have it
# working. Concider fixing pitz upstream.
buildPythonPackage rec {
buildPythonApplication rec {
name = "pitz-1.2.4";
namePrefix = "";

View file

@ -1,6 +1,6 @@
{ stdenv, python27Packages, fetchFromGitHub }:
python27Packages.buildPythonPackage rec {
python27Packages.buildPythonApplication rec {
name = "printrun-20150310";
src = fetchFromGitHub {

View file

@ -11,7 +11,7 @@ let
in
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "pytrainer-${version}";
version = "1.10.0";

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildPythonPackage, python, w3m, file }:
{ stdenv, fetchurl, buildPythonApplication, python, w3m, file }:
buildPythonPackage rec {
buildPythonApplication rec {
name = "ranger-1.7.2";
meta = {

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pkgs, lib, python, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
version = "1.8.0";
name = "rtv-${version}";

View file

@ -1,5 +1,5 @@
{fetchurl, stdenv, gtk3, python34Packages, gobjectIntrospection}:
python34Packages.buildPythonPackage rec {
python34Packages.buildPythonApplication rec {
name = "solaar-${version}";
version = "0.9.2";
namePrefix = "";

View file

@ -2,7 +2,7 @@
let version = "1.0"; in
python3Packages.buildPythonPackage {
python3Packages.buildPythonApplication {
name = "zscroll-${version}";
# don't prefix with python version
namePrefix = "";

View file

@ -5,15 +5,15 @@ let
else if stdenv.system == "i686-linux" then "i386"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
sha256 = if stdenv.system == "x86_64-linux" then "1ldhi0ydpxdbpd0ak5c3zv93wif5sqsgfj4ggav2b0djm76al2gb"
else if stdenv.system == "i686-linux" then "1fhki13isw3g7785b5jdl4warayg94ihah6wsr5h9gljjjghgi1c"
sha256 = if stdenv.system == "x86_64-linux" then "0l6z2fyd7i3i3cr95gkihbf6fwa7mk1b2m1jpf2nq5ispg0qf74n"
else if stdenv.system == "i686-linux" then "06x8f75dh58saqrz2k2xgcilh27v0jmql4k4rs7g361aad9v3pnr"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
in
stdenv.mkDerivation rec {
name = "btsync-${version}";
version = "2.2.7";
version = "2.3.3";
src = fetchurl {
url = "https://download-cdn.getsyncapp.com/${version}/linux-${arch}/BitTorrent-Sync_${arch}.tar.gz";

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