Merge branch 'master' into staging
This commit is contained in:
commit
93f6af1071
2
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
2
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
|
@ -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
17
.github/ISSUE_TEMPLATE.md
vendored
Normal 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
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal 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._
|
|
@ -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
48
doc/introduction.md
Normal 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 it’s 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.
|
|
@ -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 it’s 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>
|
|
@ -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" />
|
||||
|
||||
|
||||
|
|
33
doc/meta.xml
33
doc/meta.xml
|
@ -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, it’s legal to redistribute the
|
||||
form. That is, it’s 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 doesn’t actually modify the
|
||||
unmodified. Make sure the builder doesn’t actually modify the
|
||||
original binaries; otherwise we’re 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
|
||||
|
|
|
@ -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>";
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/"
|
||||
)";
|
||||
|
|
|
@ -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>
|
||||
|
|
29
nixos/modules/i18n/inputMethod/default.nix
Normal file
29
nixos/modules/i18n/inputMethod/default.nix
Normal 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>
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
42
nixos/modules/i18n/inputMethod/fcitx.nix
Normal file
42
nixos/modules/i18n/inputMethod/fcitx.nix
Normal 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 "<nixpkgs>" . -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";
|
||||
};
|
||||
}
|
43
nixos/modules/i18n/inputMethod/ibus.nix
Normal file
43
nixos/modules/i18n/inputMethod/ibus.nix
Normal 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 "<nixpkgs>" . -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";
|
||||
};
|
||||
}
|
17
nixos/modules/i18n/inputMethod/nabi.nix
Normal file
17
nixos/modules/i18n/inputMethod/nabi.nix
Normal 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 &";
|
||||
};
|
||||
}
|
39
nixos/modules/i18n/inputMethod/uim.nix
Normal file
39
nixos/modules/i18n/inputMethod/uim.nix
Normal 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} &
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -14,4 +14,6 @@
|
|||
# to the *boot time* of the host).
|
||||
hwclock -s
|
||||
'';
|
||||
|
||||
security.rngd.enable = false;
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -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" ])
|
||||
|
||||
|
|
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
118
nixos/modules/services/misc/octoprint.nix
Normal file
118
nixos/modules/services/misc/octoprint.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
22
nixos/modules/services/monitoring/hdaps.nix
Normal file
22
nixos/modules/services/monitoring/hdaps.nix
Normal 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;
|
||||
};
|
||||
}
|
150
nixos/modules/services/network-filesystems/netatalk.nix
Normal file
150
nixos/modules/services/network-filesystems/netatalk.nix
Normal 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;
|
||||
|
||||
};
|
||||
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -127,6 +127,7 @@ in {
|
|||
in {
|
||||
description = "WPA Supplicant";
|
||||
|
||||
after = [ "network-interfaces.target" ];
|
||||
wantedBy = [ "network.target" ];
|
||||
|
||||
path = [ pkgs.wpa_supplicant ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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.
|
||||
|
|
235
nixos/modules/services/x11/hardware/libinput.nix
Normal file
235
nixos/modules/services/x11/hardware/libinput.nix
Normal 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
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ in
|
|||
|
||||
{
|
||||
options = {
|
||||
services.xserver.windowManager.openbox.enable = mkEnableOption "oroborus";
|
||||
services.xserver.windowManager.openbox.enable = mkEnableOption "openbox";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -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 '@'
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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 = "";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages, gettext, klick}:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "gtklick-${version}";
|
||||
namePrefix = "";
|
||||
version = "0.6.4";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "lastfmsubmitd-${version}";
|
||||
namePrefix = "";
|
||||
version = "1.0.6";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchgit, pythonPackages }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "lastwatch-${version}";
|
||||
namePrefix = "";
|
||||
version = "0.4.1";
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-gmusic-${version}";
|
||||
version = "1.0.0";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-moped-${version}";
|
||||
version = "0.6.0";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-mopify-${version}";
|
||||
|
||||
version = "1.5.8";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-musicbox-webclient-${version}";
|
||||
|
||||
version = "2.0.0";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-soundcloud-${version}";
|
||||
|
||||
version = "2.0.2";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-spotify-${version}";
|
||||
version = "2.3.1";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "mopidy-youtube-${version}";
|
||||
|
||||
version = "2.0.1";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = "";
|
||||
|
||||
|
|
|
@ -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}";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = "";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
File diff suppressed because it is too large
Load diff
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
66
pkgs/applications/editors/kile/frameworks.nix
Normal file
66
pkgs/applications/editors/kile/frameworks.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, pythonPackages, fetchgit }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "leo-editor-${version}";
|
||||
namePrefix = "";
|
||||
version = "5.1";
|
||||
|
|
|
@ -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}";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, buildPythonPackage, python27Packages }:
|
||||
{ stdenv, fetchurl, buildPythonApplication, python27Packages }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonApplication rec {
|
||||
namePrefix = "";
|
||||
name = "mcomix-1.01";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, pythonPackages, fetchurl }:
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "bleachbit-${version}";
|
||||
version = "1.8";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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 = [ ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = "";
|
||||
|
||||
|
|
36
pkgs/applications/misc/kdeconnect/0.7.nix
Normal file
36
pkgs/applications/misc/kdeconnect/0.7.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pkgs, pythonPackages }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
version = "0.7.0";
|
||||
name = "khal-${version}";
|
||||
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -3,7 +3,7 @@ let
|
|||
py = python27Packages;
|
||||
python = py.python;
|
||||
in
|
||||
py.buildPythonPackage rec {
|
||||
py.buildPythonApplication rec {
|
||||
name = "loxodo-0.20150124";
|
||||
|
||||
src = fetchgit {
|
||||
|
|
|
@ -17,7 +17,7 @@ let
|
|||
];
|
||||
|
||||
in
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "ocropus-${version}";
|
||||
version = "20150316";
|
||||
|
||||
|
|
|
@ -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
|
||||
|
43
pkgs/applications/misc/octoprint/default.nix
Normal file
43
pkgs/applications/misc/octoprint/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
82
pkgs/applications/misc/octoprint/plugins.nix
Normal file
82
pkgs/applications/misc/octoprint/plugins.nix
Normal 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 ];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
23
pkgs/applications/misc/pcmanx-gtk2/default.nix
Normal file
23
pkgs/applications/misc/pcmanx-gtk2/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
let
|
||||
py = pythonPackages;
|
||||
in
|
||||
py.buildPythonPackage rec {
|
||||
py.buildPythonApplication rec {
|
||||
name = "pdfdiff-${version}";
|
||||
version = "0.92";
|
||||
|
||||
|
|
|
@ -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 = "";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, python27Packages, fetchFromGitHub }:
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
python27Packages.buildPythonApplication rec {
|
||||
name = "printrun-20150310";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
|
|
@ -11,7 +11,7 @@ let
|
|||
|
||||
in
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
name = "pytrainer-${version}";
|
||||
version = "1.10.0";
|
||||
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchFromGitHub, pkgs, lib, python, pythonPackages }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
version = "1.8.0";
|
||||
name = "rtv-${version}";
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{fetchurl, stdenv, gtk3, python34Packages, gobjectIntrospection}:
|
||||
python34Packages.buildPythonPackage rec {
|
||||
python34Packages.buildPythonApplication rec {
|
||||
name = "solaar-${version}";
|
||||
version = "0.9.2";
|
||||
namePrefix = "";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
let version = "1.0"; in
|
||||
|
||||
python3Packages.buildPythonPackage {
|
||||
python3Packages.buildPythonApplication {
|
||||
name = "zscroll-${version}";
|
||||
# don't prefix with python version
|
||||
namePrefix = "";
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue