Merge branch 'master.upstream' into staging.upstream
This commit is contained in:
commit
8dc7073546
@ -119,7 +119,7 @@ $ nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc763
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The name <literal>haskellPackages</literal> is really just a synonym
|
The name <literal>haskellPackages</literal> is really just a synonym
|
||||||
for <literal>haskell.packages.ghc7101</literal>, because we prefer
|
for <literal>haskell.packages.ghc7102</literal>, because we prefer
|
||||||
that package set internally and recommend it to our users as their
|
that package set internally and recommend it to our users as their
|
||||||
default choice, but ultimately you are free to compile your Haskell
|
default choice, but ultimately you are free to compile your Haskell
|
||||||
packages with any GHC version you please. The following command
|
packages with any GHC version you please. The following command
|
||||||
@ -134,7 +134,7 @@ haskell.compiler.ghc722 ghc-7.2.2
|
|||||||
haskell.compiler.ghc742 ghc-7.4.2
|
haskell.compiler.ghc742 ghc-7.4.2
|
||||||
haskell.compiler.ghc763 ghc-7.6.3
|
haskell.compiler.ghc763 ghc-7.6.3
|
||||||
haskell.compiler.ghc784 ghc-7.8.4
|
haskell.compiler.ghc784 ghc-7.8.4
|
||||||
haskell.compiler.ghc7101 ghc-7.10.1
|
haskell.compiler.ghc7102 ghc-7.10.2
|
||||||
haskell.compiler.ghcHEAD ghc-7.11.20150402
|
haskell.compiler.ghcHEAD ghc-7.11.20150402
|
||||||
haskell.compiler.ghcNokinds ghc-nokinds-7.11.20150704
|
haskell.compiler.ghcNokinds ghc-nokinds-7.11.20150704
|
||||||
haskell.compiler.ghcjs ghcjs-0.1.0
|
haskell.compiler.ghcjs ghcjs-0.1.0
|
||||||
@ -167,7 +167,7 @@ $ nix-env -f "<nixpkgs>" -iA haskellPackages.ghc haskellPackages
|
|||||||
<para>
|
<para>
|
||||||
Instead of the default package set
|
Instead of the default package set
|
||||||
<literal>haskellPackages</literal>, you can also use the more
|
<literal>haskellPackages</literal>, you can also use the more
|
||||||
precise name <literal>haskell.compiler.ghc7101</literal>, which
|
precise name <literal>haskell.compiler.ghc7102</literal>, which
|
||||||
has the advantage that it refers to the same GHC version
|
has the advantage that it refers to the same GHC version
|
||||||
regardless of what Nixpkgs considers "default" at any
|
regardless of what Nixpkgs considers "default" at any
|
||||||
given time.
|
given time.
|
||||||
@ -254,7 +254,7 @@ $ nix-shell -p haskell.compiler.ghc784 --command "cabal configure"
|
|||||||
$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])"
|
$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])"
|
||||||
|
|
||||||
[nix-shell:~]$ ghc-pkg list mtl
|
[nix-shell:~]$ ghc-pkg list mtl
|
||||||
/nix/store/zy79...-ghc-7.10.1/lib/ghc-7.10.1/package.conf.d:
|
/nix/store/zy79...-ghc-7.10.2/lib/ghc-7.10.2/package.conf.d:
|
||||||
mtl-2.2.1
|
mtl-2.2.1
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
@ -266,7 +266,7 @@ $ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])"
|
|||||||
{
|
{
|
||||||
packageOverrides = super: let self = super.pkgs; in
|
packageOverrides = super: let self = super.pkgs; in
|
||||||
{
|
{
|
||||||
myHaskellEnv = self.haskell.packages.ghc7101.ghcWithPackages
|
myHaskellEnv = self.haskell.packages.ghc7102.ghcWithPackages
|
||||||
(haskellPackages: with haskellPackages; [
|
(haskellPackages: with haskellPackages; [
|
||||||
# libraries
|
# libraries
|
||||||
arrows async cgi criterion
|
arrows async cgi criterion
|
||||||
@ -281,7 +281,7 @@ $ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])"
|
|||||||
<literal>nix-env -f "<nixpkgs>" -iA myHaskellEnv</literal>.
|
<literal>nix-env -f "<nixpkgs>" -iA myHaskellEnv</literal>.
|
||||||
If you'd like to switch that development environment to a
|
If you'd like to switch that development environment to a
|
||||||
different version of GHC, just replace the
|
different version of GHC, just replace the
|
||||||
<literal>ghc7101</literal> bit in the previous definition with the
|
<literal>ghc7102</literal> bit in the previous definition with the
|
||||||
appropriate name. Of course, it's also possible to define any
|
appropriate name. Of course, it's also possible to define any
|
||||||
number of these development environments! (You can't install two
|
number of these development environments! (You can't install two
|
||||||
of them into the same profile at the same time, though, because
|
of them into the same profile at the same time, though, because
|
||||||
@ -296,11 +296,11 @@ $ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [pkgs.mtl])"
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
$ cat $(type -p ghc)
|
$ cat $(type -p ghc)
|
||||||
#! /nix/store/xlxj...-bash-4.3-p33/bin/bash -e
|
#! /nix/store/xlxj...-bash-4.3-p33/bin/bash -e
|
||||||
export NIX_GHC=/nix/store/19sm...-ghc-7.10.1/bin/ghc
|
export NIX_GHC=/nix/store/19sm...-ghc-7.10.2/bin/ghc
|
||||||
export NIX_GHCPKG=/nix/store/19sm...-ghc-7.10.1/bin/ghc-pkg
|
export NIX_GHCPKG=/nix/store/19sm...-ghc-7.10.2/bin/ghc-pkg
|
||||||
export NIX_GHC_DOCDIR=/nix/store/19sm...-ghc-7.10.1/share/doc/ghc/html
|
export NIX_GHC_DOCDIR=/nix/store/19sm...-ghc-7.10.2/share/doc/ghc/html
|
||||||
export NIX_GHC_LIBDIR=/nix/store/19sm...-ghc-7.10.1/lib/ghc-7.10.1
|
export NIX_GHC_LIBDIR=/nix/store/19sm...-ghc-7.10.2/lib/ghc-7.10.2
|
||||||
exec /nix/store/j50p...-ghc-7.10.1/bin/ghc "-B$NIX_GHC_LIBDIR" "$@"
|
exec /nix/store/j50p...-ghc-7.10.2/bin/ghc "-B$NIX_GHC_LIBDIR" "$@"
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The variables <literal>$NIX_GHC</literal>,
|
The variables <literal>$NIX_GHC</literal>,
|
||||||
@ -371,7 +371,7 @@ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [mtl pandoc
|
|||||||
<literal>shell.nix</literal> that looks like this:
|
<literal>shell.nix</literal> that looks like this:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7101" }:
|
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7102" }:
|
||||||
let
|
let
|
||||||
inherit (nixpkgs) pkgs;
|
inherit (nixpkgs) pkgs;
|
||||||
ghc = pkgs.haskell.packages.${compiler}.ghcWithPackages (ps: with ps; [
|
ghc = pkgs.haskell.packages.${compiler}.ghcWithPackages (ps: with ps; [
|
||||||
@ -451,7 +451,7 @@ $ cabal2nix . >foo.nix
|
|||||||
<literal>default.nix</literal>:
|
<literal>default.nix</literal>:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7101" }:
|
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7102" }:
|
||||||
nixpkgs.pkgs.haskell.packages.${compiler}.callPackage ./foo.nix { }
|
nixpkgs.pkgs.haskell.packages.${compiler}.callPackage ./foo.nix { }
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
@ -459,7 +459,7 @@ nixpkgs.pkgs.haskell.packages.${compiler}.callPackage ./foo.nix { }
|
|||||||
<literal>shell.nix</literal>:
|
<literal>shell.nix</literal>:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7101" }:
|
{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc7102" }:
|
||||||
(import ./default.nix { inherit nixpkgs compiler; }).env
|
(import ./default.nix { inherit nixpkgs compiler; }).env
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
so it's easy to ping a package @maintainer.
|
so it's easy to ping a package @maintainer.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
a1russell = "Adam Russell <adamlr6+pub@gmail.com>";
|
||||||
abaldeau = "Andreas Baldeau <andreas@baldeau.net>";
|
abaldeau = "Andreas Baldeau <andreas@baldeau.net>";
|
||||||
abbradar = "Nikolay Amiantov <ab@fmap.me>";
|
abbradar = "Nikolay Amiantov <ab@fmap.me>";
|
||||||
adev = "Adrien Devresse <adev@adev.name>";
|
adev = "Adrien Devresse <adev@adev.name>";
|
||||||
@ -79,6 +80,7 @@
|
|||||||
dfoxfranke = "Daniel Fox Franke <dfoxfranke@gmail.com>";
|
dfoxfranke = "Daniel Fox Franke <dfoxfranke@gmail.com>";
|
||||||
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
|
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
|
||||||
doublec = "Chris Double <chris.double@double.co.nz>";
|
doublec = "Chris Double <chris.double@double.co.nz>";
|
||||||
|
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
|
||||||
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
|
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
|
||||||
eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
|
eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
|
||||||
edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
|
edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
|
||||||
@ -95,6 +97,7 @@
|
|||||||
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
|
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
|
||||||
forkk = "Andrew Okin <forkk@forkk.net>";
|
forkk = "Andrew Okin <forkk@forkk.net>";
|
||||||
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
|
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
|
||||||
|
fridh = "Frederik Rietdijk <fridh@fridh.nl>";
|
||||||
fro_ozen = "fro_ozen <fro_ozen@gmx.de>";
|
fro_ozen = "fro_ozen <fro_ozen@gmx.de>";
|
||||||
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
|
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
|
||||||
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
|
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
|
||||||
@ -104,6 +107,7 @@
|
|||||||
garrison = "Jim Garrison <jim@garrison.cc>";
|
garrison = "Jim Garrison <jim@garrison.cc>";
|
||||||
gavin = "Gavin Rogers <gavin@praxeology.co.uk>";
|
gavin = "Gavin Rogers <gavin@praxeology.co.uk>";
|
||||||
gebner = "Gabriel Ebner <gebner@gebner.org>";
|
gebner = "Gabriel Ebner <gebner@gebner.org>";
|
||||||
|
gfxmonk = "Tim Cuthbertson <tim@gfxmonk.net>";
|
||||||
giogadi = "Luis G. Torres <lgtorres42@gmail.com>";
|
giogadi = "Luis G. Torres <lgtorres42@gmail.com>";
|
||||||
globin = "Robin Gloster <robin@glob.in>";
|
globin = "Robin Gloster <robin@glob.in>";
|
||||||
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
|
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
|
||||||
@ -137,6 +141,7 @@
|
|||||||
jwilberding = "Jordan Wilberding <jwilberding@afiniate.com>";
|
jwilberding = "Jordan Wilberding <jwilberding@afiniate.com>";
|
||||||
jzellner = "Jeff Zellner <jeffz@eml.cc>";
|
jzellner = "Jeff Zellner <jeffz@eml.cc>";
|
||||||
kamilchm = "Kamil Chmielewski <kamil.chm@gmail.com>";
|
kamilchm = "Kamil Chmielewski <kamil.chm@gmail.com>";
|
||||||
|
khumba = "Bryan Gardiner <bog@khumba.net>";
|
||||||
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
||||||
koral = "Koral <koral@mailoo.org>";
|
koral = "Koral <koral@mailoo.org>";
|
||||||
kovirobi = "Kovacsics Robert <kovirobi@gmail.com>";
|
kovirobi = "Kovacsics Robert <kovirobi@gmail.com>";
|
||||||
@ -229,6 +234,7 @@
|
|||||||
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
|
rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
|
||||||
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
||||||
rycee = "Robert Helgesson <robert@rycee.net>";
|
rycee = "Robert Helgesson <robert@rycee.net>";
|
||||||
|
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||||
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
||||||
schmitthenner = "Fabian Schmitthenner <development@schmitthenner.eu>";
|
schmitthenner = "Fabian Schmitthenner <development@schmitthenner.eu>";
|
||||||
schristo = "Scott Christopher <schristopher@konputa.com>";
|
schristo = "Scott Christopher <schristopher@konputa.com>";
|
||||||
|
@ -52,6 +52,15 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
consoleUseXkbConfig = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
If set, configure the console keymap from the xserver keyboard
|
||||||
|
settings.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
consoleKeyMap = mkOption {
|
consoleKeyMap = mkOption {
|
||||||
type = mkOptionType {
|
type = mkOptionType {
|
||||||
name = "string or path";
|
name = "string or path";
|
||||||
@ -74,6 +83,13 @@ in
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
|
i18n.consoleKeyMap = with config.services.xserver;
|
||||||
|
mkIf config.i18n.consoleUseXkbConfig
|
||||||
|
(pkgs.runCommand "xkb-console-keymap" { preferLocalBuild = true; } ''
|
||||||
|
'${pkgs.ckbcomp}/bin/ckbcomp' -model '${xkbModel}' -layout '${layout}' \
|
||||||
|
-option '${xkbOptions}' -variant '${xkbVariant}' > "$out"
|
||||||
|
'');
|
||||||
|
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
optional (config.i18n.supportedLocales != []) glibcLocales;
|
optional (config.i18n.supportedLocales != []) glibcLocales;
|
||||||
|
|
||||||
|
@ -106,13 +106,19 @@ in
|
|||||||
"/lib"
|
"/lib"
|
||||||
"/man"
|
"/man"
|
||||||
"/sbin"
|
"/sbin"
|
||||||
|
"/share/applications"
|
||||||
|
"/share/desktop-directories"
|
||||||
"/share/doc"
|
"/share/doc"
|
||||||
"/share/emacs"
|
"/share/emacs"
|
||||||
|
"/share/icons"
|
||||||
"/share/info"
|
"/share/info"
|
||||||
"/share/man"
|
"/share/man"
|
||||||
|
"/share/menus"
|
||||||
|
"/share/mime"
|
||||||
"/share/nano"
|
"/share/nano"
|
||||||
"/share/org"
|
"/share/org"
|
||||||
"/share/terminfo"
|
"/share/terminfo"
|
||||||
|
"/share/themes"
|
||||||
"/share/vim-plugins"
|
"/share/vim-plugins"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -229,6 +229,9 @@
|
|||||||
riak = 205;
|
riak = 205;
|
||||||
shout = 206;
|
shout = 206;
|
||||||
gateone = 207;
|
gateone = 207;
|
||||||
|
namecoin = 208;
|
||||||
|
dnschain = 209;
|
||||||
|
#lxd = 210; # unused
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -436,6 +439,9 @@
|
|||||||
riak = 205;
|
riak = 205;
|
||||||
#shout = 206; #unused
|
#shout = 206; #unused
|
||||||
gateone = 207;
|
gateone = 207;
|
||||||
|
namecoin = 208;
|
||||||
|
#dnschain = 209; #unused
|
||||||
|
lxd = 210; # unused
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -275,6 +275,7 @@
|
|||||||
./services/networking/ddclient.nix
|
./services/networking/ddclient.nix
|
||||||
./services/networking/dhcpcd.nix
|
./services/networking/dhcpcd.nix
|
||||||
./services/networking/dhcpd.nix
|
./services/networking/dhcpd.nix
|
||||||
|
./services/networking/dnschain.nix
|
||||||
./services/networking/dnscrypt-proxy.nix
|
./services/networking/dnscrypt-proxy.nix
|
||||||
./services/networking/dnsmasq.nix
|
./services/networking/dnsmasq.nix
|
||||||
./services/networking/docker-registry-server.nix
|
./services/networking/docker-registry-server.nix
|
||||||
@ -303,6 +304,7 @@
|
|||||||
./services/networking/minidlna.nix
|
./services/networking/minidlna.nix
|
||||||
./services/networking/mstpd.nix
|
./services/networking/mstpd.nix
|
||||||
./services/networking/murmur.nix
|
./services/networking/murmur.nix
|
||||||
|
./services/networking/namecoind.nix
|
||||||
./services/networking/nat.nix
|
./services/networking/nat.nix
|
||||||
./services/networking/networkmanager.nix
|
./services/networking/networkmanager.nix
|
||||||
./services/networking/ngircd.nix
|
./services/networking/ngircd.nix
|
||||||
@ -393,7 +395,6 @@
|
|||||||
./services/web-servers/lighttpd/default.nix
|
./services/web-servers/lighttpd/default.nix
|
||||||
./services/web-servers/lighttpd/gitweb.nix
|
./services/web-servers/lighttpd/gitweb.nix
|
||||||
./services/web-servers/nginx/default.nix
|
./services/web-servers/nginx/default.nix
|
||||||
./services/web-servers/nginx/reverse_proxy.nix
|
|
||||||
./services/web-servers/phpfpm.nix
|
./services/web-servers/phpfpm.nix
|
||||||
./services/web-servers/shellinabox.nix
|
./services/web-servers/shellinabox.nix
|
||||||
./services/web-servers/tomcat.nix
|
./services/web-servers/tomcat.nix
|
||||||
@ -486,6 +487,7 @@
|
|||||||
./virtualisation/docker.nix
|
./virtualisation/docker.nix
|
||||||
./virtualisation/libvirtd.nix
|
./virtualisation/libvirtd.nix
|
||||||
./virtualisation/lxc.nix
|
./virtualisation/lxc.nix
|
||||||
|
./virtualisation/lxd.nix
|
||||||
./virtualisation/amazon-options.nix
|
./virtualisation/amazon-options.nix
|
||||||
./virtualisation/openvswitch.nix
|
./virtualisation/openvswitch.nix
|
||||||
./virtualisation/parallels-guest.nix
|
./virtualisation/parallels-guest.nix
|
||||||
|
@ -9,19 +9,28 @@ in {
|
|||||||
programs.cdemu = {
|
programs.cdemu = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = "Whether to enable cdemu for users of appropriate group (default cdrom)";
|
description = ''
|
||||||
|
<command>cdemu</command> for members of
|
||||||
|
<option>programs.cdemu.group</option>.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
default = "cdrom";
|
default = "cdrom";
|
||||||
description = "Required group for users of cdemu";
|
description = ''
|
||||||
|
Group that users must be in to use <command>cdemu</command>.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
gui = mkOption {
|
gui = mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
description = "Whether to install cdemu GUI (gCDEmu)";
|
description = ''
|
||||||
|
Whether to install the <command>cdemu</command> GUI (gCDEmu).
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
image-analyzer = mkOption {
|
image-analyzer = mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
description = "Whether to install image analyzer";
|
description = ''
|
||||||
|
Whether to install the image analyzer.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -165,5 +165,6 @@ in zipModules ([]
|
|||||||
++ obsolete' [ "services" "syslog-ng" "serviceName" ]
|
++ obsolete' [ "services" "syslog-ng" "serviceName" ]
|
||||||
++ obsolete' [ "services" "syslog-ng" "listenToJournal" ]
|
++ obsolete' [ "services" "syslog-ng" "listenToJournal" ]
|
||||||
++ obsolete' [ "ec2" "metadata" ]
|
++ obsolete' [ "ec2" "metadata" ]
|
||||||
|
++ obsolete' [ "services" "openvpn" "enable" ]
|
||||||
|
|
||||||
)
|
)
|
||||||
|
@ -16,19 +16,28 @@ in {
|
|||||||
default = false;
|
default = false;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Enables http://preyproject.com/ bash client. Be sure to specify api and device keys.
|
Enables the <link xlink:href="http://preyproject.com/" />
|
||||||
Once setup, cronjob will run evert 15 minutes and report status.
|
shell client. Be sure to specify both API and device keys.
|
||||||
|
Once enabled, a <command>cron</command> job will run every 15
|
||||||
|
minutes to report status information.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
deviceKey = mkOption {
|
deviceKey = mkOption {
|
||||||
type = types.string;
|
type = types.string;
|
||||||
description = "Device Key obtained from https://panel.preyproject.com/devices (and clicking on the device)";
|
description = ''
|
||||||
|
<literal>Device key</literal> obtained by visiting
|
||||||
|
<link xlink:href="https://panel.preyproject.com/devices" />
|
||||||
|
and clicking on your device.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
apiKey = mkOption {
|
apiKey = mkOption {
|
||||||
type = types.string;
|
type = types.string;
|
||||||
description = "API key obtained from https://panel.preyproject.com/profile";
|
description = ''
|
||||||
|
<literal>API key</literal> obtained from
|
||||||
|
<link xlink:href="https://panel.preyproject.com/profile" />.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -169,14 +169,17 @@ in {
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to enable Bacula File Daemon.
|
Whether to enable the Bacula File Daemon.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
default = "${config.networking.hostName}-fd";
|
default = "${config.networking.hostName}-fd";
|
||||||
description = ''
|
description = ''
|
||||||
The client name that must be used by the Director when connecting. Generally, it is a good idea to use a name related to the machine so that error messages can be easily identified if you have multiple Clients. This directive is required.
|
The client name that must be used by the Director when connecting.
|
||||||
|
Generally, it is a good idea to use a name related to the machine
|
||||||
|
so that error messages can be easily identified if you have multiple
|
||||||
|
Clients. This directive is required.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -184,7 +187,9 @@ in {
|
|||||||
default = 9102;
|
default = 9102;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
description = ''
|
description = ''
|
||||||
This specifies the port number on which the Client listens for Director connections. It must agree with the FDPort specified in the Client resource of the Director's configuration file. The default is 9102.
|
This specifies the port number on which the Client listens for
|
||||||
|
Director connections. It must agree with the FDPort specified in
|
||||||
|
the Client resource of the Director's configuration file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -202,7 +207,7 @@ in {
|
|||||||
description = ''
|
description = ''
|
||||||
Extra configuration to be passed in Client directive.
|
Extra configuration to be passed in Client directive.
|
||||||
'';
|
'';
|
||||||
example = ''
|
example = literalExample ''
|
||||||
Maximum Concurrent Jobs = 20;
|
Maximum Concurrent Jobs = 20;
|
||||||
Heartbeat Interval = 30;
|
Heartbeat Interval = 30;
|
||||||
'';
|
'';
|
||||||
@ -213,7 +218,7 @@ in {
|
|||||||
description = ''
|
description = ''
|
||||||
Extra configuration to be passed in Messages directive.
|
Extra configuration to be passed in Messages directive.
|
||||||
'';
|
'';
|
||||||
example = ''
|
example = literalExample ''
|
||||||
console = all
|
console = all
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -21,15 +21,16 @@ in
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to enable sitecopy backups of specified directories.
|
Whether to enable <command>sitecopy</command> backups of specified
|
||||||
|
directories.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
period = mkOption {
|
period = mkOption {
|
||||||
default = "15 04 * * *";
|
default = "15 04 * * *";
|
||||||
description = ''
|
description = ''
|
||||||
This option defines (in the format used by cron) when the
|
This option defines (in the format used by <command>cron</command>)
|
||||||
sitecopy backup are being run.
|
when the <command>sitecopy</command> backups are to be run.
|
||||||
The default is to update at 04:15 (at night) every day.
|
The default is to update at 04:15 (at night) every day.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -47,9 +48,10 @@ in
|
|||||||
];
|
];
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = ''
|
||||||
List of attributesets describing the backups.
|
List of attribute sets describing the backups.
|
||||||
|
|
||||||
Username/password are extracted from <filename>${stateDir}/sitecopy.secrets</filename> at activation
|
Username/password are extracted from
|
||||||
|
<filename>${stateDir}/sitecopy.secrets</filename> at activation
|
||||||
time. The secrets file lines should have the following structure:
|
time. The secrets file lines should have the following structure:
|
||||||
<screen>
|
<screen>
|
||||||
server username password
|
server username password
|
||||||
|
@ -73,7 +73,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
description = "Kubernets apiserver listening port.";
|
description = "Kubernetes apiserver listening port.";
|
||||||
default = 8080;
|
default = 8080;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
};
|
};
|
||||||
@ -211,7 +211,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
description = "Kubernets scheduler listening port.";
|
description = "Kubernetes scheduler listening port.";
|
||||||
default = 10251;
|
default = 10251;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
};
|
};
|
||||||
@ -243,7 +243,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
description = "Kubernets controller manager listening port.";
|
description = "Kubernetes controller manager listening port.";
|
||||||
default = 10252;
|
default = 10252;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
};
|
};
|
||||||
@ -299,7 +299,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
description = "Kubernets kubelet info server listening port.";
|
description = "Kubernetes kubelet info server listening port.";
|
||||||
default = 10250;
|
default = 10250;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
};
|
};
|
||||||
|
@ -167,6 +167,12 @@ in
|
|||||||
|
|
||||||
unitConfig.RequiresMountsFor = "${cfg.dataDir}";
|
unitConfig.RequiresMountsFor = "${cfg.dataDir}";
|
||||||
|
|
||||||
|
path = [
|
||||||
|
# Needed for the mysql_install_db command in the preStart script
|
||||||
|
# which calls the hostname command.
|
||||||
|
pkgs.nettools
|
||||||
|
];
|
||||||
|
|
||||||
preStart =
|
preStart =
|
||||||
''
|
''
|
||||||
if ! test -e ${cfg.dataDir}/mysql; then
|
if ! test -e ${cfg.dataDir}/mysql; then
|
||||||
|
@ -4,10 +4,6 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.brltty;
|
cfg = config.services.brltty;
|
||||||
|
|
||||||
stateDir = "/run/brltty";
|
|
||||||
|
|
||||||
pidFile = "${stateDir}/brltty.pid";
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
@ -24,14 +20,24 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
systemd.services.brltty = {
|
systemd.services.brltty = {
|
||||||
description = "Braille console driver";
|
description = "Braille Device Support";
|
||||||
preStart = ''
|
unitConfig = {
|
||||||
mkdir -p ${stateDir}
|
Documentation = "http://mielke.cc/brltty/";
|
||||||
'';
|
DefaultDependencies = "no";
|
||||||
|
RequiresMountsFor = "${pkgs.brltty}/var/lib/brltty";
|
||||||
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.brltty}/bin/brltty --pid-file=${pidFile}";
|
ExecStart = "${pkgs.brltty}/bin/brltty --no-daemon";
|
||||||
Type = "forking";
|
Type = "simple"; # Change to notidy after next releae
|
||||||
PIDFile = pidFile;
|
TimeoutStartSec = 5;
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 30;
|
||||||
|
Nice = -10;
|
||||||
|
OOMScoreAdjust = -900;
|
||||||
|
ProtectHome = "read-only";
|
||||||
|
ProtectSystem = "full";
|
||||||
|
SystemCallArchitectures = "native";
|
||||||
};
|
};
|
||||||
before = [ "sysinit.target" ];
|
before = [ "sysinit.target" ];
|
||||||
wantedBy = [ "sysinit.target" ];
|
wantedBy = [ "sysinit.target" ];
|
||||||
|
@ -2,40 +2,42 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
{
|
let
|
||||||
|
|
||||||
###### interface
|
cfg = config.services.freefall;
|
||||||
|
|
||||||
options = with types; {
|
in {
|
||||||
|
|
||||||
services.freefall = {
|
options.services.freefall = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
type = types.bool;
|
||||||
description = ''
|
default = false;
|
||||||
Whether to protect HP/Dell laptop hard drives (not SSDs) in free fall.
|
description = ''
|
||||||
'';
|
Whether to protect HP/Dell laptop hard drives (not SSDs) in free fall.
|
||||||
type = bool;
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
devices = mkOption {
|
package = mkOption {
|
||||||
default = [ "/dev/sda" ];
|
type = types.package;
|
||||||
description = ''
|
default = pkgs.freefall;
|
||||||
Device paths to all internal spinning hard drives.
|
description = ''
|
||||||
'';
|
freefall derivation to use.
|
||||||
type = listOf string;
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
devices = mkOption {
|
||||||
|
type = types.listOf types.string;
|
||||||
|
default = [ "/dev/sda" ];
|
||||||
|
description = ''
|
||||||
|
Device paths to all internal spinning hard drives.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
###### implementation
|
|
||||||
|
|
||||||
config = let
|
config = let
|
||||||
|
|
||||||
cfg = config.services.freefall;
|
|
||||||
|
|
||||||
mkService = dev:
|
mkService = dev:
|
||||||
assert dev != "";
|
assert dev != "";
|
||||||
let dev' = utils.escapeSystemdPath dev; in
|
let dev' = utils.escapeSystemdPath dev; in
|
||||||
@ -43,12 +45,8 @@ with lib;
|
|||||||
description = "Free-fall protection for ${dev}";
|
description = "Free-fall protection for ${dev}";
|
||||||
after = [ "${dev'}.device" ];
|
after = [ "${dev'}.device" ];
|
||||||
wantedBy = [ "${dev'}.device" ];
|
wantedBy = [ "${dev'}.device" ];
|
||||||
path = [ pkgs.freefall ];
|
|
||||||
unitConfig = {
|
|
||||||
DefaultDependencies = false;
|
|
||||||
};
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.freefall}/bin/freefall ${dev}";
|
ExecStart = "${cfg.package}/bin/freefall ${dev}";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
Type = "forking";
|
Type = "forking";
|
||||||
};
|
};
|
||||||
@ -56,9 +54,9 @@ with lib;
|
|||||||
|
|
||||||
in mkIf cfg.enable {
|
in mkIf cfg.enable {
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.freefall ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
|
||||||
systemd.services = listToAttrs (map mkService cfg.devices);
|
systemd.services = builtins.listToAttrs (map mkService cfg.devices);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -180,9 +180,7 @@ in
|
|||||||
firmware to function). If multiple packages contain firmware
|
firmware to function). If multiple packages contain firmware
|
||||||
files with the same name, the first package in the list takes
|
files with the same name, the first package in the list takes
|
||||||
precedence. Note that you must rebuild your system if you add
|
precedence. Note that you must rebuild your system if you add
|
||||||
files to any of these directories. For quick testing,
|
files to any of these directories.
|
||||||
put firmware files in <filename>/root/test-firmware</filename>
|
|
||||||
and add that directory to the list.
|
|
||||||
'';
|
'';
|
||||||
apply = list: pkgs.buildEnv {
|
apply = list: pkgs.buildEnv {
|
||||||
name = "firmware";
|
name = "firmware";
|
||||||
|
@ -132,6 +132,7 @@ in
|
|||||||
description = "Logstash Daemon";
|
description = "Logstash Daemon";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment = { JAVA_HOME = jre; };
|
environment = { JAVA_HOME = jre; };
|
||||||
|
path = [ pkgs.bash ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart =
|
ExecStart =
|
||||||
"${cfg.package}/bin/logstash agent " +
|
"${cfg.package}/bin/logstash agent " +
|
||||||
|
@ -14,7 +14,7 @@ let
|
|||||||
alias = domain: list: "${list}: \"|${pkgs.mlmmj}/bin/mlmmj-receive -L ${listDir domain list}/\"";
|
alias = domain: list: "${list}: \"|${pkgs.mlmmj}/bin/mlmmj-receive -L ${listDir domain list}/\"";
|
||||||
subjectPrefix = list: "[${list}]";
|
subjectPrefix = list: "[${list}]";
|
||||||
listAddress = domain: list: "${list}@${domain}";
|
listAddress = domain: list: "${list}@${domain}";
|
||||||
customHeaders = list: domain: [ "List-Id: ${list}" "Reply-To: ${list}@${domain}" ];
|
customHeaders = domain: list: [ "List-Id: ${list}" "Reply-To: ${list}@${domain}" ];
|
||||||
footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}";
|
footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}";
|
||||||
createList = d: l: ''
|
createList = d: l: ''
|
||||||
${pkgs.coreutils}/bin/mkdir -p ${listCtl d l}
|
${pkgs.coreutils}/bin/mkdir -p ${listCtl d l}
|
||||||
@ -90,14 +90,15 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
recipientDelimiter= "+";
|
recipientDelimiter= "+";
|
||||||
extraMasterConf = ''
|
extraMasterConf = ''
|
||||||
mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nextHop
|
mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nexthop
|
||||||
'';
|
'';
|
||||||
|
|
||||||
extraAliases = concatMapStrings (alias cfg.listDomain) cfg.mailLists;
|
extraAliases = concatMapStrings (alias cfg.listDomain) cfg.mailLists;
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
transport = hash:${stateDir}/transports
|
transport_maps = hash:${stateDir}/transports
|
||||||
virtual = hash:${stateDir}/virtuals
|
virtual_alias_maps = hash:${stateDir}/virtuals
|
||||||
|
propagate_unmatched_extensions = virtual
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
authenticationMethod = mkOption {
|
authenticationMethod = mkOption {
|
||||||
type = types.enum [ "form" "http" "generic"];
|
type = types.enum [ "form" "http" "generic" "github" ];
|
||||||
default = "form";
|
default = "form";
|
||||||
description = ''
|
description = ''
|
||||||
'form' means that users will be logged in and registered using forms
|
'form' means that users will be logged in and registered using forms
|
||||||
@ -537,6 +537,42 @@ video/x-ms-wmx wmx
|
|||||||
through xss-sanitize. Set to no only if you trust all of your users.
|
through xss-sanitize. Set to no only if you trust all of your users.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
oauthClientId = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "OAuth client ID";
|
||||||
|
};
|
||||||
|
|
||||||
|
oauthClientSecret = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "OAuth client secret";
|
||||||
|
};
|
||||||
|
|
||||||
|
oauthCallback = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "OAuth callback URL";
|
||||||
|
};
|
||||||
|
|
||||||
|
oauthAuthorizeEndpoint = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "OAuth authorize endpoint";
|
||||||
|
};
|
||||||
|
|
||||||
|
oauthAccessTokenEndpoint = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "OAuth access token endpoint";
|
||||||
|
};
|
||||||
|
|
||||||
|
githubOrg = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "Github organization";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
configFile = pkgs.writeText "gitit.conf" ''
|
configFile = pkgs.writeText "gitit.conf" ''
|
||||||
@ -587,6 +623,14 @@ video/x-ms-wmx wmx
|
|||||||
pdf-export: ${toYesNo cfg.pdfExport}
|
pdf-export: ${toYesNo cfg.pdfExport}
|
||||||
pandoc-user-data: ${toString cfg.pandocUserData}
|
pandoc-user-data: ${toString cfg.pandocUserData}
|
||||||
xss-sanitize: ${toYesNo cfg.xssSanitize}
|
xss-sanitize: ${toYesNo cfg.xssSanitize}
|
||||||
|
|
||||||
|
[Github]
|
||||||
|
oauthclientid: ${toString cfg.oauthClientId}
|
||||||
|
oauthclientsecret: ${toString cfg.oauthClientSecret}
|
||||||
|
oauthcallback: ${toString cfg.oauthCallback}
|
||||||
|
oauthauthorizeendpoint: ${toString cfg.oauthAuthorizeEndpoint}
|
||||||
|
oauthaccesstokenendpoint: ${toString cfg.oauthAccessTokenEndpoint}
|
||||||
|
github-org: ${toString cfg.githubOrg}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
@ -681,4 +725,3 @@ NAMED
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ in {
|
|||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
|
default = pkgs.bosun;
|
||||||
example = literalExample "pkgs.bosun";
|
example = literalExample "pkgs.bosun";
|
||||||
description = ''
|
description = ''
|
||||||
bosun binary to use.
|
bosun binary to use.
|
||||||
@ -95,8 +96,6 @@ in {
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
services.bosun.package = mkDefault pkgs.bosun;
|
|
||||||
|
|
||||||
systemd.services.bosun = {
|
systemd.services.bosun = {
|
||||||
description = "bosun metrics collector (part of Bosun)";
|
description = "bosun metrics collector (part of Bosun)";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -206,7 +206,7 @@ in {
|
|||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
description = "Package to use.";
|
description = "Package to use.";
|
||||||
default = pkgs.grafana-backend;
|
default = pkgs.grafana;
|
||||||
type = types.package;
|
type = types.package;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,8 +97,8 @@ in
|
|||||||
description = ''
|
description = ''
|
||||||
Enabling this will add a line directly after pam_unix.so.
|
Enabling this will add a line directly after pam_unix.so.
|
||||||
Whenever a password is changed the samba password will be updated as well.
|
Whenever a password is changed the samba password will be updated as well.
|
||||||
However you still yave to add the samba password once using smbpasswd -a user
|
However, you still have to add the samba password once, using smbpasswd -a user.
|
||||||
If you don't want to maintain an extra pwd database you still can send plain text
|
If you don't want to maintain an extra password database, you still can send plain text
|
||||||
passwords which is not secure.
|
passwords which is not secure.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -16,11 +16,12 @@ let
|
|||||||
''
|
''
|
||||||
[settings]
|
[settings]
|
||||||
RunMode = Daemon
|
RunMode = Daemon
|
||||||
User = bitlbee
|
User = bitlbee
|
||||||
ConfigDir = ${cfg.configDir}
|
ConfigDir = ${cfg.configDir}
|
||||||
DaemonInterface = ${cfg.interface}
|
DaemonInterface = ${cfg.interface}
|
||||||
DaemonPort = ${toString cfg.portNumber}
|
DaemonPort = ${toString cfg.portNumber}
|
||||||
AuthMode = ${cfg.authMode}
|
AuthMode = ${cfg.authMode}
|
||||||
|
Plugindir = ${pkgs.bitlbee-plugins cfg.plugins}/lib/bitlbee
|
||||||
${lib.optionalString (cfg.hostName != "") "HostName = ${cfg.hostName}"}
|
${lib.optionalString (cfg.hostName != "") "HostName = ${cfg.hostName}"}
|
||||||
${lib.optionalString (cfg.protocols != "") "Protocols = ${cfg.protocols}"}
|
${lib.optionalString (cfg.protocols != "") "Protocols = ${cfg.protocols}"}
|
||||||
${cfg.extraSettings}
|
${cfg.extraSettings}
|
||||||
@ -72,7 +73,7 @@ in
|
|||||||
Open -- Accept connections from anyone, use NickServ for user authentication.
|
Open -- Accept connections from anyone, use NickServ for user authentication.
|
||||||
Closed -- Require authorization (using the PASS command during login) before allowing the user to connect at all.
|
Closed -- Require authorization (using the PASS command during login) before allowing the user to connect at all.
|
||||||
Registered -- Only allow registered users to use this server; this disables the register- and the account command until the user identifies himself.
|
Registered -- Only allow registered users to use this server; this disables the register- and the account command until the user identifies himself.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
hostName = mkOption {
|
hostName = mkOption {
|
||||||
@ -85,6 +86,15 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
plugins = mkOption {
|
||||||
|
type = types.listOf types.package;
|
||||||
|
default = [];
|
||||||
|
example = literalExample "[ pkgs.bitlbee-facebook ]";
|
||||||
|
description = ''
|
||||||
|
The list of bitlbee plugins to install.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
configDir = mkOption {
|
configDir = mkOption {
|
||||||
default = "/var/lib/bitlbee";
|
default = "/var/lib/bitlbee";
|
||||||
type = types.path;
|
type = types.path;
|
||||||
@ -107,14 +117,14 @@ in
|
|||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = ''
|
||||||
Will be inserted in the Settings section of the config file.
|
Will be inserted in the Settings section of the config file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
extraDefaults = mkOption {
|
extraDefaults = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = ''
|
||||||
Will be inserted in the Default section of the config file.
|
Will be inserted in the Default section of the config file.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -138,7 +148,7 @@ in
|
|||||||
gid = config.ids.gids.bitlbee;
|
gid = config.ids.gids.bitlbee;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.bitlbee =
|
systemd.services.bitlbee =
|
||||||
{ description = "BitlBee IRC to other chat networks gateway";
|
{ description = "BitlBee IRC to other chat networks gateway";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -5,7 +5,12 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.networking.connman;
|
cfg = config.networking.connman;
|
||||||
|
configFile = pkgs.writeText "connman.conf" ''
|
||||||
|
[General]
|
||||||
|
NetworkInterfaceBlacklist=${concatStringsSep "," cfg.networkInterfaceBlacklist}
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
@ -22,6 +27,23 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = ''
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Configuration lines appended to the generated connman configuration file.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
networkInterfaceBlacklist = mkOption {
|
||||||
|
type = with types; listOf string;
|
||||||
|
default = [ "vmnet" "vboxnet" "virbr" "ifb" "ve" ];
|
||||||
|
description = ''
|
||||||
|
Default blacklisted interfaces, this includes NixOS containers interfaces (ve).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -51,7 +73,7 @@ in {
|
|||||||
Type = "dbus";
|
Type = "dbus";
|
||||||
BusName = "net.connman";
|
BusName = "net.connman";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
ExecStart = "${pkgs.connman}/sbin/connmand --nodaemon";
|
ExecStart = "${pkgs.connman}/sbin/connmand --config=${configFile} --nodaemon";
|
||||||
StandardOutput = "null";
|
StandardOutput = "null";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
110
nixos/modules/services/networking/dnschain.nix
Normal file
110
nixos/modules/services/networking/dnschain.nix
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services;
|
||||||
|
|
||||||
|
dnschainConf = pkgs.writeText "dnschain.conf" ''
|
||||||
|
[log]
|
||||||
|
level=info
|
||||||
|
|
||||||
|
[dns]
|
||||||
|
host = 127.0.0.1
|
||||||
|
port = 5333
|
||||||
|
oldDNSMethod = NO_OLD_DNS
|
||||||
|
# TODO: check what that address is acutally used for
|
||||||
|
externalIP = 127.0.0.1
|
||||||
|
|
||||||
|
[http]
|
||||||
|
host = 127.0.0.1
|
||||||
|
port=8088
|
||||||
|
tlsPort=4443
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.dnschain = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to run dnschain. That implies running
|
||||||
|
namecoind as well, so make sure to configure
|
||||||
|
it appropriately.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dnsmasq = {
|
||||||
|
resolveDnschainQueries = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Resolve <literal>.bit</literal> top-level domains
|
||||||
|
with dnschain and namecoind.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.dnschain.enable {
|
||||||
|
|
||||||
|
services.namecoind.enable = true;
|
||||||
|
|
||||||
|
services.dnsmasq.servers = optionals cfg.dnsmasq.resolveDnschainQueries [ "/.bit/127.0.0.1#5333" ];
|
||||||
|
|
||||||
|
users.extraUsers = singleton
|
||||||
|
{ name = "dnschain";
|
||||||
|
uid = config.ids.uids.dnschain;
|
||||||
|
extraGroups = [ "namecoin" ];
|
||||||
|
description = "Dnschain daemon user";
|
||||||
|
home = "/var/lib/dnschain";
|
||||||
|
createHome = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.dnschain = {
|
||||||
|
description = "Dnschain Daemon";
|
||||||
|
after = [ "namecoind.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
path = [ pkgs.openssl ];
|
||||||
|
preStart = ''
|
||||||
|
# Link configuration file into dnschain HOME directory
|
||||||
|
if [ "$(${pkgs.coreutils}/bin/realpath /var/lib/dnschain/.dnschain.conf)" != "${dnschainConf}" ]; then
|
||||||
|
rm -rf /var/lib/dnschain/.dnschain.conf
|
||||||
|
ln -s ${dnschainConf} /var/lib/dnschain/.dnschain.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create empty namecoin.conf so that dnschain is not
|
||||||
|
# searching for /etc/namecoin/namecoin.conf
|
||||||
|
if [ ! -e /var/lib/dnschain/.namecoin/namecoin.conf ]; then
|
||||||
|
mkdir -p /var/lib/dnschain/.namecoin
|
||||||
|
touch /var/lib/dnschain/.namecoin/namecoin.conf
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "dnschain";
|
||||||
|
EnvironmentFile = config.services.namecoind.userFile;
|
||||||
|
ExecStart = "${pkgs.dnschain}/bin/dnschain --rpcuser=\${USER} --rpcpassword=\${PASSWORD} --rpcport=8336";
|
||||||
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
ExecStop = "${pkgs.coreutils}/bin/kill -KILL $MAINPID";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -96,7 +96,7 @@ in
|
|||||||
Type = "dbus";
|
Type = "dbus";
|
||||||
BusName = "uk.org.thekelleys.dnsmasq";
|
BusName = "uk.org.thekelleys.dnsmasq";
|
||||||
ExecStart = "${dnsmasq}/bin/dnsmasq -k --enable-dbus --user=dnsmasq -C ${dnsmasqConf}";
|
ExecStart = "${dnsmasq}/bin/dnsmasq -k --enable-dbus --user=dnsmasq -C ${dnsmasqConf}";
|
||||||
ExecReload = "${dnsmasq}/bin/kill -HUP $MAINPID";
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
};
|
};
|
||||||
restartTriggers = [ config.environment.etc.hosts.source ];
|
restartTriggers = [ config.environment.etc.hosts.source ];
|
||||||
};
|
};
|
||||||
|
150
nixos/modules/services/networking/namecoind.nix
Normal file
150
nixos/modules/services/networking/namecoind.nix
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.namecoind;
|
||||||
|
|
||||||
|
namecoinConf =
|
||||||
|
let
|
||||||
|
useSSL = (cfg.rpcCertificate != null) && (cfg.rpcKey != null);
|
||||||
|
in
|
||||||
|
pkgs.writeText "namecoin.conf" ''
|
||||||
|
server=1
|
||||||
|
daemon=0
|
||||||
|
rpcallowip=127.0.0.1
|
||||||
|
walletpath=${cfg.wallet}
|
||||||
|
gen=${if cfg.generate then "1" else "0"}
|
||||||
|
rpcssl=${if useSSL then "1" else "0"}
|
||||||
|
${optionalString useSSL "rpcsslcertificatechainfile=${cfg.rpcCertificate}"}
|
||||||
|
${optionalString useSSL "rpcsslprivatekeyfile=${cfg.rpcKey}"}
|
||||||
|
${optionalString useSSL "rpcsslciphers=TLSv1.2+HIGH:TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!3DES:@STRENGTH"}
|
||||||
|
txindex=1
|
||||||
|
txprevcache=1
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.namecoind = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to run namecoind.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
wallet = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
example = "/etc/namecoin/wallet.dat";
|
||||||
|
description = ''
|
||||||
|
Wallet file. The ownership of the file has to be
|
||||||
|
namecoin:namecoin, and the permissions must be 0640.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
userFile = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
|
example = "/etc/namecoin/user";
|
||||||
|
description = ''
|
||||||
|
File containing the user name and user password to
|
||||||
|
authenticate RPC connections to namecoind.
|
||||||
|
The content of the file is of the form:
|
||||||
|
<literal>
|
||||||
|
USER=namecoin
|
||||||
|
PASSWORD=secret
|
||||||
|
</literal>
|
||||||
|
The ownership of the file has to be namecoin:namecoin,
|
||||||
|
and the permissions must be 0640.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
generate = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to generate (mine) Namecoins.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcCertificate = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
|
example = "/etc/namecoin/server.cert";
|
||||||
|
description = ''
|
||||||
|
Certificate file for securing RPC connections.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcKey = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
|
example = "/etc/namecoin/server.pem";
|
||||||
|
description = ''
|
||||||
|
Key file for securing RPC connections.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
users.extraUsers = singleton
|
||||||
|
{ name = "namecoin";
|
||||||
|
uid = config.ids.uids.namecoin;
|
||||||
|
description = "Namecoin daemon user";
|
||||||
|
home = "/var/lib/namecoin";
|
||||||
|
createHome = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups = singleton
|
||||||
|
{ name = "namecoin";
|
||||||
|
gid = config.ids.gids.namecoin;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.namecoind = {
|
||||||
|
description = "Namecoind Daemon";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
preStart = ''
|
||||||
|
if [ "$(stat --printf '%u' ${cfg.userFile})" != "${toString config.ids.uids.namecoin}" \
|
||||||
|
-o "$(stat --printf '%g' ${cfg.userFile})" != "${toString config.ids.gids.namecoin}" \
|
||||||
|
-o "$(stat --printf '%a' ${cfg.userFile})" != "640" ]; then
|
||||||
|
echo "ERROR: bad ownership or rights on ${cfg.userFile}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$(stat --printf '%u' ${cfg.wallet})" != "${toString config.ids.uids.namecoin}" \
|
||||||
|
-o "$(stat --printf '%g' ${cfg.wallet})" != "${toString config.ids.gids.namecoin}" \
|
||||||
|
-o "$(stat --printf '%a' ${cfg.wallet})" != "640" ]; then
|
||||||
|
echo "ERROR: bad ownership or rights on ${cfg.wallet}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "namecoin";
|
||||||
|
EnvironmentFile = cfg.userFile;
|
||||||
|
ExecStart = "${pkgs.altcoins.namecoind}/bin/namecoind -conf=${namecoinConf} -rpcuser=\${USER} -rpcpassword=\${PASSWORD} -printtoconsole";
|
||||||
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
ExecStop = "${pkgs.coreutils}/bin/kill -KILL $MAINPID";
|
||||||
|
StandardOutput = "null";
|
||||||
|
Nice = "10";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -6,6 +6,8 @@ let
|
|||||||
|
|
||||||
inherit (pkgs) ntp;
|
inherit (pkgs) ntp;
|
||||||
|
|
||||||
|
cfg = config.services.ntp;
|
||||||
|
|
||||||
stateDir = "/var/lib/ntp";
|
stateDir = "/var/lib/ntp";
|
||||||
|
|
||||||
ntpUser = "ntp";
|
ntpUser = "ntp";
|
||||||
@ -16,10 +18,10 @@ let
|
|||||||
restrict 127.0.0.1
|
restrict 127.0.0.1
|
||||||
restrict -6 ::1
|
restrict -6 ::1
|
||||||
|
|
||||||
${toString (map (server: "server " + server + " iburst\n") config.services.ntp.servers)}
|
${toString (map (server: "server " + server + " iburst\n") cfg.servers)}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup";
|
ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup ${toString cfg.extraFlags}";
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
@ -51,6 +53,12 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraFlags = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = "Extra flags passed to the ntpd command.";
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -67,12 +67,6 @@ in
|
|||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
/* !!! Obsolete. */
|
|
||||||
services.openvpn.enable = mkOption {
|
|
||||||
default = true;
|
|
||||||
description = "Whether to enable OpenVPN.";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openvpn.servers = mkOption {
|
services.openvpn.servers = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@ in {
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.pythonPackages.deluge ];
|
path = [ pkgs.pythonPackages.deluge ];
|
||||||
serviceConfig.ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluged -d";
|
serviceConfig.ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluged -d";
|
||||||
|
# To prevent "Quit & shutdown daemon" from working; we want systemd to manage it!
|
||||||
|
serviceConfig.Restart = "on-success";
|
||||||
serviceConfig.User = "deluge";
|
serviceConfig.User = "deluge";
|
||||||
serviceConfig.Group = "deluge";
|
serviceConfig.Group = "deluge";
|
||||||
};
|
};
|
||||||
|
@ -5,8 +5,8 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "4.2";
|
version = "4.3";
|
||||||
fullversion = "${version}.2";
|
fullversion = "${version}";
|
||||||
|
|
||||||
# Our bare-bones wp-config.php file using the above settings
|
# Our bare-bones wp-config.php file using the above settings
|
||||||
wordpressConfig = pkgs.writeText "wp-config.php" ''
|
wordpressConfig = pkgs.writeText "wp-config.php" ''
|
||||||
@ -40,6 +40,8 @@ let
|
|||||||
RewriteRule ^(.*\.php)$ $1 [L]
|
RewriteRule ^(.*\.php)$ $1 [L]
|
||||||
RewriteRule . index.php [L]
|
RewriteRule . index.php [L]
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
|
${config.extraHtaccess}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# WP translation can be found here:
|
# WP translation can be found here:
|
||||||
@ -72,7 +74,7 @@ let
|
|||||||
owner = "WordPress";
|
owner = "WordPress";
|
||||||
repo = "WordPress";
|
repo = "WordPress";
|
||||||
rev = "${fullversion}";
|
rev = "${fullversion}";
|
||||||
sha256 = "0gq1j9b0d0rykql3jzdb2yn4adj0rrcsvqrmj3dzx11ir57ilsgc";
|
sha256 = "0sz5jjhjpwqis8336gyq9a77cr4sf8zahd1y4pzmpvpzn9cn503y";
|
||||||
};
|
};
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
@ -220,7 +222,18 @@ in
|
|||||||
settings, see <link xlink:href='http://codex.wordpress.org/Editing_wp-config.php'/>.
|
settings, see <link xlink:href='http://codex.wordpress.org/Editing_wp-config.php'/>.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
extraHtaccess = mkOption {
|
||||||
|
default = "";
|
||||||
|
example =
|
||||||
|
''
|
||||||
|
php_value upload_max_filesize 20M
|
||||||
|
php_value post_max_size 20M
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Any additional text to be appended to Wordpress's .htaccess file.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
documentRoot = wordpressRoot;
|
documentRoot = wordpressRoot;
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ let
|
|||||||
configFile = pkgs.writeText "nginx.conf" ''
|
configFile = pkgs.writeText "nginx.conf" ''
|
||||||
user ${cfg.user} ${cfg.group};
|
user ${cfg.user} ${cfg.group};
|
||||||
daemon off;
|
daemon off;
|
||||||
|
|
||||||
${cfg.config}
|
${cfg.config}
|
||||||
|
|
||||||
${optionalString (cfg.httpConfig != "") ''
|
${optionalString (cfg.httpConfig != "") ''
|
||||||
http {
|
http {
|
||||||
${cfg.httpConfig}
|
include ${cfg.package}/conf/mime.types;
|
||||||
${cfg.httpServers}
|
${cfg.httpConfig}
|
||||||
${cfg.httpDefaultServer}
|
|
||||||
}
|
}
|
||||||
''}
|
''}
|
||||||
${cfg.appendConfig}
|
${cfg.appendConfig}
|
||||||
@ -62,32 +63,7 @@ in
|
|||||||
httpConfig = mkOption {
|
httpConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = "Configuration lines to be appended inside of the http {} block.";
|
||||||
Configuration lines to be placed at the top inside of
|
|
||||||
the http {} block. The option is intended to be used for
|
|
||||||
the default configuration of the servers.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
httpServers = mkOption {
|
|
||||||
type = types.lines;
|
|
||||||
default = "";
|
|
||||||
description = ''
|
|
||||||
Configuration lines to be placed inside of the http {}
|
|
||||||
block. The option is intended to be used for defining
|
|
||||||
individual servers.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
httpDefaultServer = mkOption {
|
|
||||||
type = types.lines;
|
|
||||||
default = "";
|
|
||||||
description = ''
|
|
||||||
Configuration lines to be placed at the bottom inside of
|
|
||||||
the http {} block. The option is intended to be used for
|
|
||||||
setting up the default servers. The default server is used
|
|
||||||
if no previously specified server matches a request.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stateDir = mkOption {
|
stateDir = mkOption {
|
||||||
|
@ -1,233 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
cfg = config.services.nginx;
|
|
||||||
|
|
||||||
defaultSSL = cfg.httpDefaultKey != null || cfg.httpDefaultCertificate != null;
|
|
||||||
|
|
||||||
validSSL = key: cert: cert != null && key != null || cert == null && key == null;
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
|
|
||||||
services.nginx = {
|
|
||||||
|
|
||||||
reverseProxies = mkOption {
|
|
||||||
type = types.attrsOf (types.submodule (
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
proxy = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = [];
|
|
||||||
description = ''
|
|
||||||
Exclude files and directories matching these patterns.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
key = mkOption {
|
|
||||||
type = types.nullOr types.path;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Exclude files and directories matching these patterns.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
certificate = mkOption {
|
|
||||||
type = types.nullOr types.path;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Exclude files and directories matching these patterns.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
));
|
|
||||||
|
|
||||||
default = {};
|
|
||||||
|
|
||||||
example = literalExample ''
|
|
||||||
{
|
|
||||||
"hydra.yourdomain.org" =
|
|
||||||
{ proxy = "localhost:3000";
|
|
||||||
key = "/etc/nixos/certs/hydra_key.key";
|
|
||||||
certificate = "/etc/nixos/certs/hydra_cert.crt";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
description = ''
|
|
||||||
A reverse proxy server configuration is created for every attribute.
|
|
||||||
The attribute name corresponds to the name the server is listening to,
|
|
||||||
and the proxy option defines the target to forward the requests to.
|
|
||||||
If a key and certificate are given, then the server is secured through
|
|
||||||
a SSL connection. Non-SSL requests on port 80 are automatically
|
|
||||||
re-directed to the SSL server on port 443.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
httpDefaultKey = mkOption {
|
|
||||||
type = types.nullOr types.path;
|
|
||||||
default = null;
|
|
||||||
example = "/etc/nixos/certs/defaut_key.key";
|
|
||||||
description = ''
|
|
||||||
Key of SSL certificate for default server.
|
|
||||||
The default certificate is presented by the default server during
|
|
||||||
the SSL handshake when no specialized server configuration matches
|
|
||||||
a request.
|
|
||||||
A default SSL certificate is also helpful if browsers do not
|
|
||||||
support the TLS Server Name Indication extension (SNI, RFC 6066).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
httpDefaultCertificate = mkOption {
|
|
||||||
type = types.nullOr types.path;
|
|
||||||
default = null;
|
|
||||||
example = "/etc/nixos/certs/defaut_key.crt";
|
|
||||||
description = ''
|
|
||||||
SSL certificate for default server.
|
|
||||||
The default certificate is presented by the default server during
|
|
||||||
the SSL handshake when no specialized server configuration matches
|
|
||||||
a request.
|
|
||||||
A default SSL certificate is also helpful if browsers do not
|
|
||||||
support the TLS Server Name Indication extension (SNI, RFC 6066).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
config = mkIf (cfg.reverseProxies != {}) {
|
|
||||||
|
|
||||||
assertions = [
|
|
||||||
{ assertion = all id (mapAttrsToList (n: v: validSSL v.certificate v.key) cfg.reverseProxies);
|
|
||||||
message = ''
|
|
||||||
One (or more) reverse proxy configurations specify only either
|
|
||||||
the key option or the certificate option. Both certificate
|
|
||||||
with associated key have to be configured to enable SSL for a
|
|
||||||
server configuration.
|
|
||||||
|
|
||||||
services.nginx.reverseProxies: ${toString cfg.reverseProxies}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{ assertion = validSSL cfg.httpDefaultCertificate cfg.httpDefaultKey;
|
|
||||||
message = ''
|
|
||||||
The default server configuration specifies only either the key
|
|
||||||
option or the certificate option. Both httpDefaultCertificate
|
|
||||||
with associated httpDefaultKey have to be configured to enable
|
|
||||||
SSL for the default server configuration.
|
|
||||||
|
|
||||||
services.nginx.httpDefaultCertificate: ${toString cfg.httpDefaultCertificate}
|
|
||||||
|
|
||||||
services.nginx.httpDefaultKey : ${toString cfg.httpDefaultKey}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
services.nginx.config = mkBefore ''
|
|
||||||
worker_processes 1;
|
|
||||||
error_log logs/error.log debug;
|
|
||||||
pid logs/nginx.pid;
|
|
||||||
events {
|
|
||||||
worker_connections 1024;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.nginx.httpConfig = mkBefore ''
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
access_log logs/access.log main;
|
|
||||||
sendfile on;
|
|
||||||
tcp_nopush on;
|
|
||||||
keepalive_timeout 10;
|
|
||||||
gzip on;
|
|
||||||
|
|
||||||
${lib.optionalString defaultSSL ''
|
|
||||||
ssl_session_cache shared:SSL:10m;
|
|
||||||
ssl_session_timeout 10m;
|
|
||||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
|
||||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
||||||
ssl_certificate ${cfg.httpDefaultCertificate};
|
|
||||||
ssl_certificate_key ${cfg.httpDefaultKey};
|
|
||||||
''}
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.nginx.httpDefaultServer = mkBefore ''
|
|
||||||
# reject as default policy
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
listen [::]:80 default_server;
|
|
||||||
${lib.optionalString defaultSSL "listen 443 default_server ssl;"}
|
|
||||||
return 444;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.nginx.httpServers =
|
|
||||||
let
|
|
||||||
useSSL = certificate: key: certificate != null && key != null;
|
|
||||||
|
|
||||||
server = servername: proxy: certificate: key: useSSL: ''
|
|
||||||
server {
|
|
||||||
server_name ${servername};
|
|
||||||
keepalive_timeout 70;
|
|
||||||
|
|
||||||
${if !useSSL then ''
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
'' else ''
|
|
||||||
listen 443 ssl;
|
|
||||||
ssl_session_cache shared:SSL:10m;
|
|
||||||
ssl_session_timeout 10m;
|
|
||||||
ssl_certificate ${certificate};
|
|
||||||
ssl_certificate_key ${key};
|
|
||||||
''}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass ${proxy};
|
|
||||||
|
|
||||||
### force timeouts if one of backend is dead ##
|
|
||||||
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
|
|
||||||
|
|
||||||
### Set headers ####
|
|
||||||
proxy_set_header Accept-Encoding "";
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
|
|
||||||
${lib.optionalString useSSL ''
|
|
||||||
### Most PHP, Python, Rails, Java App can use this header ###
|
|
||||||
#proxy_set_header X-Forwarded-Proto https;##
|
|
||||||
#This is better##
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
add_header Front-End-Https on;
|
|
||||||
''}
|
|
||||||
|
|
||||||
### By default we don't want to redirect it ####
|
|
||||||
proxy_redirect off;
|
|
||||||
proxy_buffering off;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
${lib.optionalString useSSL ''
|
|
||||||
# redirect http to https
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
server_name ${servername};
|
|
||||||
return 301 https://$server_name$request_uri;
|
|
||||||
}
|
|
||||||
''}
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
concatStrings (mapAttrsToList (n: v: server n v.proxy v.certificate v.key (useSSL v.proxy v.certificate)) cfg.reverseProxies);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -23,6 +23,10 @@ in
|
|||||||
<emphasis>GDM is very experimental and may render system unusable.</emphasis>
|
<emphasis>GDM is very experimental and may render system unusable.</emphasis>
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
debug = mkEnableOption ''
|
||||||
|
debugging messages in GDM
|
||||||
|
'';
|
||||||
|
|
||||||
autoLogin = mkOption {
|
autoLogin = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = ''
|
||||||
@ -69,8 +73,7 @@ in
|
|||||||
config = mkIf cfg.gdm.enable {
|
config = mkIf cfg.gdm.enable {
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{ assertion = let autoLogin = cfg.gdm.autoLogin; in
|
{ assertion = cfg.gdm.autoLogin.enable -> cfg.gdm.autoLogin.user != null;
|
||||||
if autoLogin.enable then autoLogin.user != null else true;
|
|
||||||
message = "GDM auto-login requires services.xserver.displayManager.gdm.autoLogin.user to be set";
|
message = "GDM auto-login requires services.xserver.displayManager.gdm.autoLogin.user to be set";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -109,13 +112,21 @@ in
|
|||||||
|
|
||||||
programs.dconf.profiles.gdm = "${gdm}/share/dconf/profile/gdm";
|
programs.dconf.profiles.gdm = "${gdm}/share/dconf/profile/gdm";
|
||||||
|
|
||||||
|
# Use AutomaticLogin if delay is zero, because it's immediate.
|
||||||
|
# Otherwise with TimedLogin with zero seconds the prompt is still
|
||||||
|
# presented and there's a little delay.
|
||||||
environment.etc."gdm/custom.conf".text = ''
|
environment.etc."gdm/custom.conf".text = ''
|
||||||
[daemon]
|
[daemon]
|
||||||
${optionalString cfg.gdm.autoLogin.enable ''
|
${optionalString cfg.gdm.autoLogin.enable (
|
||||||
TimedLoginEnable=true
|
if cfg.gdm.autoLogin.delay > 0 then ''
|
||||||
TimedLogin=${cfg.gdm.autoLogin.user}
|
TimedLoginEnable=true
|
||||||
TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
|
TimedLogin=${cfg.gdm.autoLogin.user}
|
||||||
''}
|
TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
|
||||||
|
'' else ''
|
||||||
|
AutomaticLoginEnable=true
|
||||||
|
AutomaticLogin=${cfg.gdm.autoLogin.user}
|
||||||
|
'')
|
||||||
|
}
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
|
|
||||||
@ -126,6 +137,7 @@ in
|
|||||||
[chooser]
|
[chooser]
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
|
${optionalString cfg.gdm.debug "Enable=true"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# GDM LFS PAM modules, adapted somehow to NixOS
|
# GDM LFS PAM modules, adapted somehow to NixOS
|
||||||
|
@ -1,58 +1,90 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.redshift;
|
cfg = config.services.redshift;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options = {
|
|
||||||
services.redshift.enable = mkOption {
|
options.services.redshift = {
|
||||||
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = "Enable Redshift to change your screen's colour temperature depending on the time of day";
|
description = ''
|
||||||
|
Enable Redshift to change your screen's colour temperature depending on
|
||||||
|
the time of day.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redshift.latitude = mkOption {
|
latitude = mkOption {
|
||||||
description = "Your current latitude";
|
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Your current latitude.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redshift.longitude = mkOption {
|
longitude = mkOption {
|
||||||
description = "Your current longitude";
|
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Your current longitude.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redshift.temperature = {
|
temperature = {
|
||||||
day = mkOption {
|
day = mkOption {
|
||||||
description = "Colour temperature to use during day time";
|
type = types.int;
|
||||||
default = 5500;
|
default = 5500;
|
||||||
type = types.int;
|
description = ''
|
||||||
|
Colour temperature to use during the day.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
night = mkOption {
|
night = mkOption {
|
||||||
description = "Colour temperature to use during night time";
|
type = types.int;
|
||||||
default = 3700;
|
default = 3700;
|
||||||
type = types.int;
|
description = ''
|
||||||
|
Colour temperature to use at night.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redshift.brightness = {
|
brightness = {
|
||||||
day = mkOption {
|
day = mkOption {
|
||||||
description = "Screen brightness to apply during the day (between 0.1 and 1.0)";
|
|
||||||
default = "1";
|
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
default = "1";
|
||||||
|
description = ''
|
||||||
|
Screen brightness to apply during the day,
|
||||||
|
between <literal>0.1</literal> and <literal>1.0</literal>.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
night = mkOption {
|
night = mkOption {
|
||||||
description = "Screen brightness to apply during the night (between 0.1 and 1.0)";
|
|
||||||
default = "1";
|
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
default = "1";
|
||||||
|
description = ''
|
||||||
|
Screen brightness to apply during the night,
|
||||||
|
between <literal>0.1</literal> and <literal>1.0</literal>.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redshift.extraOptions = mkOption {
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.redshift;
|
||||||
|
description = ''
|
||||||
|
redshift derivation to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraOptions = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "-v" "-m randr" ];
|
example = [ "-v" "-m randr" ];
|
||||||
description = "Additional command-line arguments to pass to the redshift(1) command";
|
description = ''
|
||||||
|
Additional command-line arguments to pass to
|
||||||
|
<command>redshift</command>.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -63,7 +95,7 @@ in {
|
|||||||
after = [ "display-manager.service" ];
|
after = [ "display-manager.service" ];
|
||||||
wantedBy = [ "graphical.target" ];
|
wantedBy = [ "graphical.target" ];
|
||||||
serviceConfig.ExecStart = ''
|
serviceConfig.ExecStart = ''
|
||||||
${pkgs.redshift}/bin/redshift \
|
${cfg.package}/bin/redshift \
|
||||||
-l ${cfg.latitude}:${cfg.longitude} \
|
-l ${cfg.latitude}:${cfg.longitude} \
|
||||||
-t ${toString cfg.temperature.day}:${toString cfg.temperature.night} \
|
-t ${toString cfg.temperature.day}:${toString cfg.temperature.night} \
|
||||||
-b ${toString cfg.brightness.day}:${toString cfg.brightness.night} \
|
-b ${toString cfg.brightness.day}:${toString cfg.brightness.night} \
|
||||||
@ -73,4 +105,5 @@ in {
|
|||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -85,11 +85,7 @@ with lib;
|
|||||||
'')}
|
'')}
|
||||||
${config.boot.extraModprobeConfig}
|
${config.boot.extraModprobeConfig}
|
||||||
'';
|
'';
|
||||||
environment.etc."modprobe.d/usb-load-ehci-first.conf".text =
|
environment.etc."modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
|
||||||
''
|
|
||||||
softdep uhci_hcd pre: ehci_hcd
|
|
||||||
softdep ohci_hcd pre: ehci_hcd
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
|
environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
|
||||||
|
|
||||||
|
@ -241,6 +241,9 @@ let
|
|||||||
};
|
};
|
||||||
symlink = "/etc/modprobe.d/ubuntu.conf";
|
symlink = "/etc/modprobe.d/ubuntu.conf";
|
||||||
}
|
}
|
||||||
|
{ object = pkgs.kmod-debian-aliases;
|
||||||
|
symlink = "/etc/modprobe.d/debian.conf";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -299,7 +299,7 @@ in
|
|||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.stdenv.shell} -e
|
||||||
${nixos-container}/bin/nixos-container run "$INSTANCE" -- \
|
${nixos-container}/bin/nixos-container run "$INSTANCE" -- \
|
||||||
bash --login -c "/nix/var/nix/profiles/system/bin/switch-to-configuration test"
|
bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
SyslogIdentifier = "container %i";
|
SyslogIdentifier = "container %i";
|
||||||
|
64
nixos/modules/virtualisation/lxd.nix
Normal file
64
nixos/modules/virtualisation/lxd.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Systemd services for lxd.
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.virtualisation.lxd;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
virtualisation.lxd.enable =
|
||||||
|
mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
This option enables lxd, a daemon that manages
|
||||||
|
containers. Users in the "lxd" group can interact with
|
||||||
|
the daemon (e.g. to start or stop containers) using the
|
||||||
|
<command>lxc</command> command line tool, among others.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
environment.systemPackages =
|
||||||
|
[ pkgs.lxd ];
|
||||||
|
|
||||||
|
systemd.services.lxd =
|
||||||
|
{ description = "LXD Container Management Daemon";
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "systemd-udev-settle.service" ];
|
||||||
|
|
||||||
|
# TODO(wkennington): Add lvm2 and thin-provisioning-tools
|
||||||
|
path = with pkgs; [ acl rsync gnutar xz btrfsProgs ];
|
||||||
|
|
||||||
|
serviceConfig.ExecStart = "@${pkgs.lxd}/bin/lxd lxd --syslog --group lxd";
|
||||||
|
serviceConfig.Type = "simple";
|
||||||
|
serviceConfig.KillMode = "process"; # when stopping, leave the containers alone
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups.lxd.gid = config.ids.gids.lxd;
|
||||||
|
|
||||||
|
users.extraUsers.root = {
|
||||||
|
subUidRanges = [ { startUid = 1000000; count = 65536; } ];
|
||||||
|
subGidRanges = [ { startGid = 1000000; count = 65536; } ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -290,7 +290,8 @@ elsif ($action eq "show-ip") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
elsif ($action eq "show-host-key") {
|
elsif ($action eq "show-host-key") {
|
||||||
my $fn = "$root/etc/ssh/ssh_host_ecdsa_key.pub";
|
my $fn = "$root/etc/ssh/ssh_host_ed25519_key.pub";
|
||||||
|
$fn = "$root/etc/ssh/ssh_host_ecdsa_key.pub" unless -e $fn;
|
||||||
exit 1 if ! -f $fn;
|
exit 1 if ! -f $fn;
|
||||||
print read_file($fn);
|
print read_file($fn);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ in
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
This enables Parallel Tools for Linux guests, along with provided
|
This enables Parallels Tools for Linux guests, along with provided
|
||||||
video, mouse and other hardware drivers.
|
video, mouse and other hardware drivers.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -226,6 +226,7 @@ in rec {
|
|||||||
tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; });
|
tests.fleet = hydraJob (import tests/fleet.nix { system = "x86_64-linux"; });
|
||||||
#tests.gitlab = callTest tests/gitlab.nix {};
|
#tests.gitlab = callTest tests/gitlab.nix {};
|
||||||
tests.gnome3 = callTest tests/gnome3.nix {};
|
tests.gnome3 = callTest tests/gnome3.nix {};
|
||||||
|
tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {};
|
||||||
tests.i3wm = callTest tests/i3wm.nix {};
|
tests.i3wm = callTest tests/i3wm.nix {};
|
||||||
tests.installer.grub1 = forAllSystems (system: hydraJob (import tests/installer.nix { inherit system; }).grub1.test);
|
tests.installer.grub1 = forAllSystems (system: hydraJob (import tests/installer.nix { inherit system; }).grub1.test);
|
||||||
tests.installer.lvm = forAllSystems (system: hydraJob (import tests/installer.nix { inherit system; }).lvm.test);
|
tests.installer.lvm = forAllSystems (system: hydraJob (import tests/installer.nix { inherit system; }).lvm.test);
|
||||||
|
@ -44,6 +44,8 @@ import ./make-test.nix (
|
|||||||
search --onlyvisible --name "startup done"
|
search --onlyvisible --name "startup done"
|
||||||
windowfocus --sync
|
windowfocus --sync
|
||||||
windowactivate --sync
|
windowactivate --sync
|
||||||
|
''}");
|
||||||
|
$machine->execute("${xdo "new-window" ''
|
||||||
key Ctrl+n
|
key Ctrl+n
|
||||||
''}");
|
''}");
|
||||||
});
|
});
|
||||||
@ -55,6 +57,8 @@ import ./make-test.nix (
|
|||||||
search --onlyvisible --name "new tab"
|
search --onlyvisible --name "new tab"
|
||||||
windowfocus --sync
|
windowfocus --sync
|
||||||
windowactivate --sync
|
windowactivate --sync
|
||||||
|
''}");
|
||||||
|
$machine->execute("${xdo "close-window" ''
|
||||||
key Ctrl+w
|
key Ctrl+w
|
||||||
''}");
|
''}");
|
||||||
for (1..20) {
|
for (1..20) {
|
||||||
@ -155,6 +159,8 @@ import ./make-test.nix (
|
|||||||
$machine->succeed("${xdo "submit-url" ''
|
$machine->succeed("${xdo "submit-url" ''
|
||||||
search --sync --onlyvisible --name "sandbox status"
|
search --sync --onlyvisible --name "sandbox status"
|
||||||
windowfocus --sync
|
windowfocus --sync
|
||||||
|
''}");
|
||||||
|
$machine->succeed("${xdo "submit-url" ''
|
||||||
key --delay 1000 Ctrl+a Ctrl+c
|
key --delay 1000 Ctrl+a Ctrl+c
|
||||||
''}");
|
''}");
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ import ./make-test.nix ({ pkgs, ... } : {
|
|||||||
subtest "single node", sub {
|
subtest "single node", sub {
|
||||||
$simple->start();
|
$simple->start();
|
||||||
$simple->waitForUnit("etcd.service");
|
$simple->waitForUnit("etcd.service");
|
||||||
$simple->succeed("etcdctl set /foo/bar 'Hello world'");
|
$simple->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
|
||||||
$simple->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
$simple->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ import ./make-test.nix ({ pkgs, ... } : {
|
|||||||
$node2->start();
|
$node2->start();
|
||||||
$node1->waitForUnit("etcd.service");
|
$node1->waitForUnit("etcd.service");
|
||||||
$node2->waitForUnit("etcd.service");
|
$node2->waitForUnit("etcd.service");
|
||||||
$node1->succeed("etcdctl set /foo/bar 'Hello world'");
|
$node1->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
|
||||||
$node2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
$node2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
||||||
$node1->shutdown();
|
$node1->shutdown();
|
||||||
$node2->shutdown();
|
$node2->shutdown();
|
||||||
@ -104,7 +104,7 @@ import ./make-test.nix ({ pkgs, ... } : {
|
|||||||
$discovery2->start();
|
$discovery2->start();
|
||||||
$discovery1->waitForUnit("etcd.service");
|
$discovery1->waitForUnit("etcd.service");
|
||||||
$discovery2->waitForUnit("etcd.service");
|
$discovery2->waitForUnit("etcd.service");
|
||||||
$discovery1->succeed("etcdctl set /foo/bar 'Hello world'");
|
$discovery1->waitUntilSucceeds("etcdctl set /foo/bar 'Hello world'");
|
||||||
$discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
$discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
|
||||||
};
|
};
|
||||||
'';
|
'';
|
||||||
|
39
nixos/tests/gnome3-gdm.nix
Normal file
39
nixos/tests/gnome3-gdm.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
|
name = "gnome3-gdm";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ lethalman ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{ imports = [ ./common/user-account.nix ];
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.xserver.displayManager.gdm = {
|
||||||
|
enable = true;
|
||||||
|
autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "alice";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver.desktopManager.gnome3.enable = true;
|
||||||
|
|
||||||
|
virtualisation.memorySize = 512;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
$machine->waitForX;
|
||||||
|
$machine->sleep(15);
|
||||||
|
|
||||||
|
# Check that logging in has given the user ownership of devices.
|
||||||
|
$machine->succeed("getfacl /dev/snd/timer | grep -q alice");
|
||||||
|
|
||||||
|
$machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
|
||||||
|
$machine->waitForWindow(qr/Terminal/);
|
||||||
|
$machine->sleep(20);
|
||||||
|
$machine->screenshot("screen");
|
||||||
|
'';
|
||||||
|
})
|
@ -19,8 +19,8 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
exec { command => "echo dragons" interval => 1 type => "test" }
|
exec { command => "echo dragons" interval => 1 type => "test" }
|
||||||
'';
|
'';
|
||||||
filterConfig = ''
|
filterConfig = ''
|
||||||
if [type] == "test" {
|
if [message] =~ /dragons/ {
|
||||||
grep { match => ["message", "flowers"] drop => true }
|
drop {}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
outputConfig = ''
|
outputConfig = ''
|
||||||
|
@ -1,16 +1,58 @@
|
|||||||
{ stdenv, fetchFromGitHub, fftw, libsndfile, qt5 }:
|
{ stdenv, fetchFromGitHub, fftw, libsndfile, qt5 }:
|
||||||
|
|
||||||
let version = "1.1.2"; in
|
let
|
||||||
stdenv.mkDerivation {
|
|
||||||
|
version = "1.2.5";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0mgy2bkmyp7lvaqsr7hkndwdgjf26mlpsj6smrmn1vp0cqyrw72d";
|
||||||
|
|
||||||
|
reaperFork = {
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
sha256 = "07m2wf2gqyya95b65gawrnr4pvc9jyzmg6h8sinzgxlpskz93wwc";
|
||||||
|
rev = "39053e8896eedd7b3e8a9e9a9ffd80f1fc6ceb16";
|
||||||
|
repo = "reaper";
|
||||||
|
owner = "gillesdegottex";
|
||||||
|
};
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
license = licenses.asl20;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
libqaudioextra = {
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
sha256 = "17pvlij8cc4lwzf6f1cnygj3m3ci6xfa3lv5bgcr5i1gzyjxqpq1";
|
||||||
|
rev = "b7d187cd9a1fd76ea94151e2e02453508d0151d3";
|
||||||
|
repo = "libqaudioextra";
|
||||||
|
owner = "gillesdegottex";
|
||||||
|
};
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in stdenv.mkDerivation {
|
||||||
name = "dfasma-${version}";
|
name = "dfasma-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "0xqam5hm4kvfksdlyz1rviijv386fk3px4lhz6glfsimbcvvzl0r";
|
inherit sha256 rev;
|
||||||
rev = "v${version}";
|
|
||||||
repo = "dfasma";
|
repo = "dfasma";
|
||||||
owner = "gillesdegottex";
|
owner = "gillesdegottex";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buildInputs = [ fftw libsndfile qt5.base qt5.multimedia ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}'
|
||||||
|
cp -Rv "${reaperFork.src}"/* external/REAPER
|
||||||
|
cp -Rv "${libqaudioextra.src}"/* external/libqaudioextra
|
||||||
|
'';
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
qmake PREFIX=$out PREFIXSHORTCUT=$out dfasma.pro
|
||||||
|
'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit version;
|
inherit version;
|
||||||
description = "Analyse and compare audio files in time and frequency";
|
description = "Analyse and compare audio files in time and frequency";
|
||||||
@ -23,25 +65,8 @@ stdenv.mkDerivation {
|
|||||||
amplitude, this software does not aim to be an audio editor.
|
amplitude, this software does not aim to be an audio editor.
|
||||||
'';
|
'';
|
||||||
homepage = http://gillesdegottex.github.io/dfasma/;
|
homepage = http://gillesdegottex.github.io/dfasma/;
|
||||||
license = licenses.gpl3Plus;
|
license = [ licenses.gpl3Plus reaperFork.meta.license ];
|
||||||
platforms = with platforms; linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ nckx ];
|
maintainers = with maintainers; [ nckx ];
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ fftw libsndfile qt5.base qt5.multimedia ];
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}'
|
|
||||||
'';
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
qmake DESTDIR=$out/bin dfasma.pro
|
|
||||||
'';
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
install -Dm644 distrib/dfasma.desktop $out/share/applications/dfasma.desktop
|
|
||||||
install -Dm644 icons/dfasma.png $out/share/pixmaps/dfasma.png
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,22 @@
|
|||||||
{ stdenv, fetchFromGitHub, libav, libkeyfinder_0_11 }:
|
{ stdenv, fetchFromGitHub, libav, libkeyfinder }:
|
||||||
|
|
||||||
let version = "20150201"; in
|
let version = "2015-09-13"; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "keyfinder-cli-${version}";
|
name = "keyfinder-cli-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "keyfinder-cli";
|
repo = "keyfinder-cli";
|
||||||
owner = "EvanPurkhiser";
|
owner = "EvanPurkhiser";
|
||||||
rev = "e8a20e73f8a465a6c3c9e71dabf4b636244a9b0c";
|
rev = "8579282f15ab3ebad937fed398ec5c88843be03d";
|
||||||
sha256 = "0x198ijr6wgzq24642s4pz5zxn4gvcc7dxmb6d1bfn3dwzi3j8lp";
|
sha256 = "0jylykigxmsqvdny265k58vpxa4cqs1hq2f7mph1nl3apfx2shrh";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buildInputs = [ libav libkeyfinder ];
|
||||||
|
|
||||||
|
makeFlagsArray = "PREFIX=$(out)";
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit version;
|
inherit version;
|
||||||
inherit (src.meta) homepage;
|
inherit (src.meta) homepage;
|
||||||
@ -21,13 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
used to estimate the musical key of many different audio formats.
|
used to estimate the musical key of many different audio formats.
|
||||||
'';
|
'';
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
platforms = with platforms; linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ nckx ];
|
maintainers = with maintainers; [ nckx ];
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libav libkeyfinder_0_11 ];
|
|
||||||
|
|
||||||
makeFlagsArray = "PREFIX=$(out)";
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
}
|
}
|
||||||
|
@ -16,11 +16,11 @@ let
|
|||||||
};
|
};
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "atom-${version}";
|
name = "atom-${version}";
|
||||||
version = "1.0.0";
|
version = "1.0.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
|
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
|
||||||
sha256 = "434be52726fed9804ddb8c07dba200d774d145d0a870d2a013b5f95eb882fa7e";
|
sha256 = "0jki2ca12mazvszy05xc7zy8nfpavl0rnzcyksvvic32l3w2yxj7";
|
||||||
name = "${name}.deb";
|
name = "${name}.deb";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,12 +148,12 @@ rec {
|
|||||||
|
|
||||||
checkstyle = buildEclipseUpdateSite rec {
|
checkstyle = buildEclipseUpdateSite rec {
|
||||||
name = "checkstyle-${version}";
|
name = "checkstyle-${version}";
|
||||||
version = "6.5.0.201504121610";
|
version = "6.9.0.201508291549";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.5.0/net.sf.eclipsecs-updatesite_6.5.0.201504121610-bin.zip";
|
url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.9.0/net.sf.eclipsecs-updatesite_${version}-bin.zip";
|
||||||
sha256 = "1zikpkss0c3l460ipvznp22kpak8w31n7k6yk41nc1w49zflvcf0";
|
sha256 = "0r6lfbyhqcwa628i6wjp9d6mfp4jnc46bmwp9j7v02m79f8wx74g";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
{stdenv, fetchgit, emacs, colorTheme}:
|
{stdenv, fetchzip, emacs, colorTheme}:
|
||||||
|
let
|
||||||
|
commit = "412713a0fcedd520d208a7b783fea03d710bcc61";
|
||||||
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "color-theme-6.5.5";
|
name = "color-theme-solarized-1.0.0";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchzip {
|
||||||
url = https://github.com/sellout/emacs-color-theme-solarized.git;
|
|
||||||
rev = "6a2c7ca0181585858e6e8054cb99db837e2ef72f";
|
url = "https://github.com/sellout/emacs-color-theme-solarized/archive/${commit}.zip";
|
||||||
sha256 = "3c46a3d66c75ec4456209eeafdb03282148b289b12e8474f6a8962f3894796e8";
|
sha256 = "1xd2yk7p39zxgcf91s80pqknzdxw9d09cppjb87g7ihj6f0wxqjv";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ emacs ];
|
buildInputs = [ emacs ];
|
||||||
@ -25,6 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
meta = {
|
meta = {
|
||||||
description = "Precision colors for machines and people";
|
description = "Precision colors for machines and people";
|
||||||
homepage = http://ethanschoonover.com/solarized;
|
homepage = http://ethanschoonover.com/solarized;
|
||||||
|
maintainer = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||||
license = stdenv.lib.licenses.mit;
|
license = stdenv.lib.licenses.mit;
|
||||||
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
25
pkgs/applications/editors/emacs-modes/erlang/default.nix
Normal file
25
pkgs/applications/editors/emacs-modes/erlang/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ stdenv, erlang }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "erlang-mode-${erlang.version}";
|
||||||
|
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
inherit erlang;
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p "$out/share/emacs/site-lisp"
|
||||||
|
cp "$erlang/lib/erlang/lib/tools"*/emacs/*.el $out/share/emacs/site-lisp/
|
||||||
|
'';
|
||||||
|
|
||||||
|
# emacs highlighting */
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "http://github.com/erlang/otp";
|
||||||
|
description = "Erlang mode for Emacs";
|
||||||
|
license = licenses.asl20;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = [ maintainers.samuelrivas ];
|
||||||
|
};
|
||||||
|
}
|
@ -273,25 +273,25 @@ in
|
|||||||
|
|
||||||
pycharm-community = buildPycharm rec {
|
pycharm-community = buildPycharm rec {
|
||||||
name = "pycharm-community-${version}";
|
name = "pycharm-community-${version}";
|
||||||
version = "4.5.3";
|
version = "4.5.4";
|
||||||
build = "141.1899";
|
build = "141.2569";
|
||||||
description = "PyCharm Community Edition";
|
description = "PyCharm Community Edition";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = stdenv.lib.licenses.asl20;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
||||||
sha256 = "13f3mp7gcl27fikxjlwk7n1gyxa46q0wfgniang4knb596wlfli0";
|
sha256 = "0a2208rjcvcm9dww317clwiil3ddza3qq9wqkvr0rrcfp1739pbb";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pycharm-professional = buildPycharm rec {
|
pycharm-professional = buildPycharm rec {
|
||||||
name = "pycharm-professional-${version}";
|
name = "pycharm-professional-${version}";
|
||||||
version = "4.5.3";
|
version = "4.5.4";
|
||||||
build = "141.1899";
|
build = "141.2569";
|
||||||
description = "PyCharm Professional Edition";
|
description = "PyCharm Professional Edition";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
url = "https://download-cf.jetbrains.com/python/${name}.tar.gz";
|
||||||
sha256 = "00b66fy841vjm54n2fby5wf7y8ihihqgydr6329iv9p5s0mgzh2s";
|
sha256 = "1dy64myih92kxmi6h9y142dbmmwwphs2n3vswyg53881g5i0lfhd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging }:
|
{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging, bsh }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.2.0";
|
version = "5.2.0";
|
||||||
bsh = fetchurl {
|
|
||||||
url = http://www.beanshell.org/bsh-2.0b5.jar;
|
|
||||||
sha256 = "0p2sxrpzd0vsk11zf3kb5h12yl1nq4yypb5mpjrm8ww0cfaijck2";
|
|
||||||
};
|
|
||||||
bcpg = fetchurl {
|
bcpg = fetchurl {
|
||||||
url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
|
url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
|
||||||
sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
|
sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
|
# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
|
||||||
# but I have gvim with python support now :) - Marc
|
# but I have gvim with python support now :) - Marc
|
||||||
args@{pkgs, source ? "default", ...}: with args;
|
args@{pkgs, source ? "default", fetchurl, fetchhg, stdenv, ncurses, pkgconfig, gettext
|
||||||
|
, composableDerivation, lib, config, glib, gtk, python, perl, tcl, ruby
|
||||||
|
, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
|
||||||
|
, libICE, ... }: with args;
|
||||||
|
|
||||||
|
|
||||||
let inherit (args.composableDerivation) composableDerivation edf;
|
let inherit (args.composableDerivation) composableDerivation edf;
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
args@{...}: with args;
|
args@{ fetchgit, stdenv, ncurses, pkgconfig, gettext
|
||||||
|
, composableDerivation, lib, config, python, perl, tcl, ruby, qt4
|
||||||
|
, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
|
||||||
|
, libICE, ... }: with args;
|
||||||
|
|
||||||
let tag = "20140827";
|
let tag = "20140827";
|
||||||
sha256 = "02adf2212872db3c5d133642d2c12fbfc28b506e4c0c42552e3d079756f63f65";
|
sha256 = "02adf2212872db3c5d133642d2c12fbfc28b506e4c0c42552e3d079756f63f65";
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Note: this relies on dyre patched for NIX_GHC which is done in
|
|
||||||
# haskell-ng only.
|
|
||||||
#
|
|
||||||
# To use this for hacking of your Yi config file, drop into a shell
|
# To use this for hacking of your Yi config file, drop into a shell
|
||||||
# with env attribute.
|
# with env attribute.
|
||||||
{ stdenv, makeWrapper
|
{ stdenv, makeWrapper
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz
|
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz
|
||||||
, libX11, quantumdepth ? 8}:
|
, libX11, quantumdepth ? 8}:
|
||||||
|
|
||||||
let version = "1.3.18"; in
|
let version = "1.3.21"; in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "graphicsmagick-${version}";
|
name = "graphicsmagick-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
|
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
|
||||||
sha256 = "1axh4j2jr3l92dan15b2nmx9da4l7i0rcz9b5bvfd4q742zfwj7x";
|
sha256 = "07rwpxy62r9m4r2cg6yll2nr698mxyvbji8vgsivcxhpk56k0ich";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = "--enable-shared --with-quantum-depth=" + toString quantumdepth;
|
configureFlags = "--enable-shared --with-quantum-depth=" + toString quantumdepth;
|
||||||
|
@ -1,21 +1,30 @@
|
|||||||
{ stdenv, fetchurl, cmake, qt5, exiv2, graphicsmagick }:
|
{ stdenv, fetchurl, cmake, makeWrapper, qt5, exiv2, graphicsmagick }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.2";
|
version = "1.3";
|
||||||
|
qmlPath = stdenv.lib.makeSearchPath "lib/qt5/qml/" [
|
||||||
|
qt5.quickcontrols
|
||||||
|
qt5.declarative
|
||||||
|
qt5.multimedia
|
||||||
|
];
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "photoqt-${version}";
|
name = "photoqt-${version}";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
url = "http://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
||||||
sha256 = "1dnnj2h3j517hcbjxlzk035fis44wdmqq7dvhwpmq1rcr0v32aaa";
|
sha256 = "0j2kvxfb5pd9abciv161nkcsyam6n8kfqs8ymwj2mxiqflwbmfl1";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake qt5.base qt5.tools exiv2 graphicsmagick ];
|
buildInputs = [ cmake makeWrapper qt5.base qt5.tools exiv2 graphicsmagick ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick"
|
export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/photoqt --set QML2_IMPORT_PATH "${qmlPath}"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://photoqt.org/";
|
homepage = "http://photoqt.org/";
|
||||||
description = "Simple, yet powerful and good looking image viewer";
|
description = "Simple, yet powerful and good looking image viewer";
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb, libxml2
|
{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool, libusb
|
||||||
, makeWrapper, packagekit, pkgconfig, saneBackends, systemd, vala }:
|
, libxml2, makeWrapper, packagekit, pkgconfig, saneBackends, systemd, vala }:
|
||||||
|
|
||||||
let version = "3.17.90"; in
|
let version = "3.17.92"; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "simple-scan-${version}";
|
name = "simple-scan-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
sha256 = "0xc3ln97dgvxrwy2qn82k9qvsr5kxksms4igzkivya3xpq2kx85c";
|
sha256 = "0ax4rqqpwcz65nvw8l89npjc5v0g1ik1mb5w3025xlipm7djgybp";
|
||||||
url = "https://launchpad.net/simple-scan/3.17/${version}/+download/${name}.tar.xz";
|
url = "https://launchpad.net/simple-scan/3.17/${version}/+download/${name}.tar.xz";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
inherit version;
|
||||||
description = "Simple scanning utility";
|
description = "Simple scanning utility";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
A really easy way to scan both documents and photos. You can crop out the
|
A really easy way to scan both documents and photos. You can crop out the
|
||||||
@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
homepage = https://launchpad.net/simple-scan;
|
homepage = https://launchpad.net/simple-scan;
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
platforms = with platforms; linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ nckx ];
|
maintainers = with maintainers; [ nckx ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
{ stdenv, fetchurl, boost, cairo, fontsConf, gettext, glibmm, gtk, gtkmm
|
{ stdenv, fetchurl, boost, cairo, fontsConf, gettext, glibmm, gtk3, gtkmm3
|
||||||
, libsigcxx, libtool, libxmlxx, pango, pkgconfig, imagemagick
|
, libjack2, libsigcxx, libtool, libxmlxx, makeWrapper, mlt-qt5, pango, pkgconfig
|
||||||
, intltool
|
, imagemagick, intltool
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.64.3";
|
version = "1.0.1";
|
||||||
|
|
||||||
ETL = stdenv.mkDerivation rec {
|
ETL = stdenv.mkDerivation rec {
|
||||||
name = "ETL-0.04.17";
|
name = "ETL-0.04.19";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synfig/${name}.tar.gz";
|
url = "http://download.tuxfamily.org/synfig/releases/${version}/${name}.tar.gz";
|
||||||
sha256 = "0rb9czkgan41q6xlck97kh77g176vjm1wnq620sqky7k2hiahr3s";
|
sha256 = "1zmqv2fa5zxprza3wbhk5mxjk7491jqshxxai92s7fdiza0nhs91";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -19,8 +19,8 @@ let
|
|||||||
name = "synfig-${version}";
|
name = "synfig-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synfig/synfig-${version}.tar.gz";
|
url = "http://download.tuxfamily.org/synfig/releases/${version}/${name}.tar.gz";
|
||||||
sha256 = "0p4wqjidb4k3viahck4wzbh777f5ifpivn4vxhxs5fbq8nsvqksh";
|
sha256 = "0l1f2xwmzds32g46fqwsq7j5qlnfps6944chbv14d3ynzgyyp1i3";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
@ -28,10 +28,8 @@ let
|
|||||||
"--with-boost-libdir=${boost.lib}/lib"
|
"--with-boost-libdir=${boost.lib}/lib"
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = [ ./synfig-cstring.patch ];
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ETL boost cairo gettext glibmm libsigcxx libtool libxmlxx pango
|
ETL boost cairo gettext glibmm mlt-qt5 libsigcxx libtool libxmlxx pango
|
||||||
pkgconfig
|
pkgconfig
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@ -40,22 +38,19 @@ stdenv.mkDerivation rec {
|
|||||||
name = "synfigstudio-${version}";
|
name = "synfigstudio-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synfig/${name}.tar.gz";
|
url = "http://download.tuxfamily.org/synfig/releases/${version}/${name}.tar.gz";
|
||||||
sha256 = "1li3ac8qvg25h9fgym0zywnq5bg3sgbv162xs4c6pwksn75i6gsv";
|
sha256 = "0jfa946rfh0dbagp18zknlj9ffrd4h45xcy2dh2vlhn6jdm08yfi";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ETL boost cairo gettext glibmm gtk gtkmm imagemagick intltool
|
ETL boost cairo gettext glibmm gtk3 gtkmm3 imagemagick intltool
|
||||||
intltool libsigcxx libtool libxmlxx pkgconfig synfig
|
libjack2 libsigcxx libtool libxmlxx makeWrapper mlt-qt5 pkgconfig
|
||||||
|
synfig
|
||||||
];
|
];
|
||||||
|
|
||||||
configureFlags = [
|
postInstall = ''
|
||||||
"--with-boost=${boost.dev}"
|
wrapProgram "$out/bin/synfigstudio" \
|
||||||
"--with-boost-libdir=${boost.lib}/lib"
|
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
|
||||||
];
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
export FONTCONFIG_FILE=${fontsConf}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
http://www.synfig.org/issues/thebuggenie/synfig/issues/438
|
|
||||||
--- a/src/modules/mod_png/trgt_png.cpp
|
|
||||||
+++ b/src/modules/mod_png/trgt_png.cpp
|
|
||||||
@@ -39,6 +39,7 @@
|
|
||||||
#include <algorithm>
|
|
||||||
#include <functional>
|
|
||||||
#include <ETL/misc>
|
|
||||||
+#include <cstring>
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
a :
|
a @ { libXt, libX11, libXext, xextproto, xproto, gsl, aalib, zlib, intltool, gettext, perl, ... }:
|
||||||
let
|
let
|
||||||
fetchurl = a.fetchurl;
|
fetchurl = a.fetchurl;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ $(nix-build -A autonix.manifest) \
|
|||||||
"${KDE_MIRROR}/stable/applications/15.04.3/" \
|
"${KDE_MIRROR}/stable/applications/15.04.3/" \
|
||||||
"$@" -A '*.tar.xz'
|
"$@" -A '*.tar.xz'
|
||||||
|
|
||||||
AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellngPackages.autonix-deps-kf5)/bin/kf5-deps"}
|
AUTONIX_DEPS_KF5=${AUTONIX_DEPS_KF5:-"$(nix-build -A haskellPackages.autonix-deps-kf5)/bin/kf5-deps"}
|
||||||
|
|
||||||
$AUTONIX_DEPS_KF5 manifest.json
|
$AUTONIX_DEPS_KF5 manifest.json
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-${version}";
|
name = "calibre-${version}";
|
||||||
version = "2.36.0";
|
version = "2.38.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/kovidgoyal/calibre/releases/download/v${version}/${name}.tar.xz";
|
url = "https://github.com/kovidgoyal/calibre/releases/download/v${version}/${name}.tar.xz";
|
||||||
sha256 = "1my7fjj1lc28mhmvb85rcc4c5bwsycs6bgmafbx9agil5bgrbnb2";
|
sha256 = "075axil53djss99fj9drfh5cvxdbjw6z5z5qk53vm13k5pw6bmhn";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
38
pkgs/applications/misc/devilspie2/default.nix
Normal file
38
pkgs/applications/misc/devilspie2/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ stdenv, fetchurl, intltool, pkgconfig, glib, gtk, lua, libwnck3 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "devilspie2-${version}";
|
||||||
|
version = "0.39";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://download.savannah.gnu.org/releases/devilspie2/devilspie2_0.39-src.tar.gz";
|
||||||
|
sha256 = "07b74ffc078e5f01525d9da7a1978b4c1a9725b814b344f83a1a203cf4caae09";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ intltool pkgconfig glib gtk lua libwnck3 ];
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i -e s@/usr/local@$out@ Makefile
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/share/man/man1
|
||||||
|
cp bin/devilspie2 $out/bin
|
||||||
|
cp devilspie2.1 $out/share/man/man1
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Devilspie2 is a window matching utility.";
|
||||||
|
longDescription = ''
|
||||||
|
Devilspie2 is a window matching utility, allowing the user to
|
||||||
|
perform scripted actions on windows as they are created. For
|
||||||
|
example you can script a terminal program to always be
|
||||||
|
positioned at a specific screen position, or position a window
|
||||||
|
on a specific workspace.
|
||||||
|
'';
|
||||||
|
homepage = http://www.gusnan.se/devilspie2/;
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [ maintainers.ebzzry ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -1,12 +1,11 @@
|
|||||||
{ stdenv, fetchurl, intltool, pkgconfig, gtk, gpgme, libgpgerror, libassuan }:
|
{ stdenv, fetchurl, intltool, pkgconfig, gtk, gpgme, libgpgerror, libassuan }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
name = "gpa-0.9.9";
|
||||||
name = "gpa-0.9.7";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnupg/gpa/${name}.tar.bz2";
|
url = "mirror://gnupg/gpa/${name}.tar.bz2";
|
||||||
sha256 = "1r8pnvfw66b2m9lhajlarbxx9172c1gzripdij01bawgbrhwp33y";
|
sha256 = "0d235hcqai7m3qb7m9kvr2r4qg4714f87j9fdplwrlz1p4wdfa38";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ intltool pkgconfig gtk gpgme libgpgerror libassuan ];
|
buildInputs = [ intltool pkgconfig gtk gpgme libgpgerror libassuan ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
a :
|
a @ { libgphoto2, fuse, pkgconfig, glib, libtool, ... } :
|
||||||
let
|
let
|
||||||
fetchurl = a.fetchurl;
|
fetchurl = a.fetchurl;
|
||||||
s = import ./src-info-for-gphotofs.nix;
|
s = import ./src-info-for-gphotofs.nix;
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
{ config, ... }@a:
|
{ config, libXmu, libXext, libXp, libX11, libXt, libSM, libICE, libXpm
|
||||||
|
, libXaw, libXrender
|
||||||
|
, composableDerivation, stdenv, fetchurl
|
||||||
|
, lib, flex, bison, cairo, fontconfig
|
||||||
|
, gdal, zlib, ncurses, gdbm, proj, pkgconfig, swig
|
||||||
|
, blas, liblapack, libjpeg, libpng, mysql, unixODBC, mesa, postgresql, python
|
||||||
|
, readline, sqlite, tcl, tk, libtiff, freetype, makeWrapper, wxGTK, ffmpeg, fftw
|
||||||
|
, wxPython, motif, opendwg }@a:
|
||||||
|
|
||||||
# You can set gui by exporting GRASS_GUI=..
|
# You can set gui by exporting GRASS_GUI=..
|
||||||
# see http://grass.itc.it/gdp/html_grass64/g.gui.html
|
# see http://grass.itc.it/gdp/html_grass64/g.gui.html
|
||||||
@ -28,7 +35,7 @@ a.composableDerivation.composableDerivation {} (fix: {
|
|||||||
name = "grass-6.4.0RC6";
|
name = "grass-6.4.0RC6";
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
# gentoos package depends on gmath ?
|
# gentoos package depends on gmath ?
|
||||||
a.pkgconfig
|
a.pkgconfig
|
||||||
a.flex a.bison a.libXmu a.libXext a.libXp a.libX11 a.libXt a.libSM a.libICE
|
a.flex a.bison a.libXmu a.libXext a.libXp a.libX11 a.libXt a.libSM a.libICE
|
||||||
a.libXpm a.libXaw a.flex a.bison a.gdbm
|
a.libXpm a.libXaw a.flex a.bison a.gdbm
|
||||||
@ -72,7 +79,7 @@ a.composableDerivation.composableDerivation {} (fix: {
|
|||||||
configureFlags = [ "--with-python=${a.python}/bin/python-config" ];
|
configureFlags = [ "--with-python=${a.python}/bin/python-config" ];
|
||||||
buildInputs = [a.python a.swig];
|
buildInputs = [a.python a.swig];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
// edf { name = "_64bit"; feat = "64bit"; }
|
// edf { name = "_64bit"; feat = "64bit"; }
|
||||||
// wwfp a.ncurses { name = "curses"; }
|
// wwfp a.ncurses { name = "curses"; }
|
||||||
@ -119,7 +126,7 @@ a.composableDerivation.composableDerivation {} (fix: {
|
|||||||
// wwfp a.unixODBC { name = "odbc"; }
|
// wwfp a.unixODBC { name = "odbc"; }
|
||||||
// wwfp a.fftw { name = "fftw"; }
|
// wwfp a.fftw { name = "fftw"; }
|
||||||
// wwf {
|
// wwf {
|
||||||
name = "blas";
|
name = "blas";
|
||||||
enable.configureFlags = [ "--with-blas-libs=${a.blas}/lib" ];
|
enable.configureFlags = [ "--with-blas-libs=${a.blas}/lib" ];
|
||||||
}
|
}
|
||||||
// wwf {
|
// wwf {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{ stdenv, fetchurl, cmake, libgcrypt, qt4, xlibs, ... }:
|
{ stdenv, fetchurl, cmake, libgcrypt, qt4, xlibs, ... }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "keepassx2-2.0beta1";
|
name = "keepassx2-2.0beta2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/keepassx/keepassx/archive/2.0-beta1.tar.gz";
|
url = "https://github.com/keepassx/keepassx/archive/2.0-beta2.tar.gz";
|
||||||
sha256 = "1wnbk9laixz16lmchr1lnv8m9i6rkxv6slnx8f0fyczx90y97qdw";
|
sha256 = "0ljf9ws3wh62zd0gyb0vk2qw6pqsmxrlybrfs5mqahf44q92ca2q";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake libgcrypt qt4 xlibs.libXtst ];
|
buildInputs = [ cmake libgcrypt qt4 xlibs.libXtst ];
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ stdenv, fetchurl, pkgs, pythonPackages }:
|
{ stdenv, fetchurl, pkgs, pythonPackages }:
|
||||||
|
|
||||||
pythonPackages.buildPythonPackage rec {
|
pythonPackages.buildPythonPackage rec {
|
||||||
version = "0.4.1";
|
version = "0.5.0";
|
||||||
name = "khard-${version}";
|
name = "khard-${version}";
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/scheibler/khard/archive/v${version}.tar.gz";
|
url = "https://github.com/scheibler/khard/archive/v${version}.tar.gz";
|
||||||
sha256 = "09yibjzly711hwpg345n653rz47llvrj4shnlcxd8snzvg8m5gri";
|
sha256 = "0k3pix4zdr5jc323w63kwrfhkvmn5ijnznzfhf6rvqp05lrkyh9x";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk }:
|
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lxappearance-0.5.5";
|
name = "lxappearance-0.6.1";
|
||||||
src = fetchurl{
|
src = fetchurl{
|
||||||
url = "http://downloads.sourceforge.net/project/lxde/LXAppearance/${name}.tar.xz";
|
url = "http://downloads.sourceforge.net/project/lxde/LXAppearance/${name}.tar.xz";
|
||||||
sha256 = "8cae82e6425ba8a0267774e4d10096df2d91b0597520058331684a5ece068b4c";
|
sha256 = "1phnv1b2jdj2vlibjyc9z01izcf3k5zxj8glsaf0i3vh77zqmqq9";
|
||||||
};
|
};
|
||||||
buildInputs = [ intltool libX11 pkgconfig gtk ];
|
buildInputs = [ intltool libX11 pkgconfig gtk ];
|
||||||
meta = {
|
meta = {
|
||||||
|
114
pkgs/applications/misc/playonlinux/default.nix
Normal file
114
pkgs/applications/misc/playonlinux/default.nix
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{ stdenv
|
||||||
|
, makeWrapper
|
||||||
|
, fetchurl
|
||||||
|
, wxPython
|
||||||
|
, libXmu
|
||||||
|
, cabextract
|
||||||
|
, gettext
|
||||||
|
, glxinfo
|
||||||
|
, gnupg1compat
|
||||||
|
, icoutils
|
||||||
|
, imagemagick
|
||||||
|
, netcat
|
||||||
|
, p7zip
|
||||||
|
, python
|
||||||
|
, unzip
|
||||||
|
, wget
|
||||||
|
, wine
|
||||||
|
, xdg-user-dirs
|
||||||
|
, xterm
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "playonlinux-${version}";
|
||||||
|
version = "4.2.9";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
|
||||||
|
sha256 = "89bb0fd7cce8cf598ebf38cad716b8587eaca5b916d54386fb24b3ff66b48624";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
[ wxPython
|
||||||
|
libXmu
|
||||||
|
cabextract
|
||||||
|
gettext
|
||||||
|
glxinfo
|
||||||
|
gnupg1compat
|
||||||
|
icoutils
|
||||||
|
imagemagick
|
||||||
|
netcat
|
||||||
|
p7zip
|
||||||
|
python
|
||||||
|
unzip
|
||||||
|
wget
|
||||||
|
wine
|
||||||
|
xdg-user-dirs
|
||||||
|
xterm
|
||||||
|
];
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
PYFILES="python/*.py python/lib/*.py tests/python/*.py"
|
||||||
|
sed -i "s/env python[0-9.]*/python/" $PYFILES
|
||||||
|
sed -i "s/ %F//g" etc/PlayOnLinux.desktop
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -d $out/share/playonlinux
|
||||||
|
install -d $out/bin
|
||||||
|
cp -r . $out/share/playonlinux/
|
||||||
|
|
||||||
|
echo "#!${stdenv.shell}" > $out/bin/playonlinux
|
||||||
|
echo "$prefix/share/playonlinux/playonlinux \"\$@\"" >> $out/bin/playonlinux
|
||||||
|
chmod +x $out/bin/playonlinux
|
||||||
|
|
||||||
|
install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixupPhases = [ "preFixupPhase" ];
|
||||||
|
|
||||||
|
preFixupPhase = ''
|
||||||
|
for f in $out/bin/*; do
|
||||||
|
wrapProgram $f \
|
||||||
|
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
|
||||||
|
--prefix PATH : \
|
||||||
|
${cabextract}/bin:\
|
||||||
|
${gettext}/bin:\
|
||||||
|
${glxinfo}/bin:\
|
||||||
|
${gnupg1compat}/bin:\
|
||||||
|
${icoutils}/bin:\
|
||||||
|
${imagemagick}/bin:\
|
||||||
|
${netcat}/bin:\
|
||||||
|
${p7zip}/bin:\
|
||||||
|
${python}/bin:\
|
||||||
|
${unzip}/bin:\
|
||||||
|
${wget}/bin:\
|
||||||
|
${wine}/bin:\
|
||||||
|
${xdg-user-dirs}/bin:\
|
||||||
|
${xterm}/bin
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
for f in $out/share/playonlinux/bin/*; do
|
||||||
|
bunzip2 $f
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixupPhases = [ "postFixupPhase" ];
|
||||||
|
|
||||||
|
postFixupPhase = ''
|
||||||
|
for f in $out/share/playonlinux/bin/*; do
|
||||||
|
bzip2 $f
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "GUI for managing Windows programs under linux";
|
||||||
|
homepage = https://www.playonlinux.com/;
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = [ maintainers.a1russell ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, fetchurl, stdenv, gtk3, udev, desktop_file_utils, shared_mime_info , intltool, pkgconfig, makeWrapper, ffmpegthumbnailer, jmtpfs, ifuse, lsof, udisks }:
|
{ pkgs, fetchurl, stdenv, gtk3, udev, desktop_file_utils, shared_mime_info , intltool, pkgconfig, makeWrapper, ffmpegthumbnailer, jmtpfs, ifuse, lsof, udisks, hicolor_icon_theme, adwaita-icon-theme }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "spacefm-${version}";
|
name = "spacefm-${version}";
|
||||||
|
@ -1,33 +1,37 @@
|
|||||||
{ fetchurl, stdenv, pkgconfig, intltool, gettext, gtk, expat, curl
|
{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk, expat, curl
|
||||||
, gpsd, bc, file, gnome_doc_utils, libexif, libxml2, libxslt, scrollkeeper
|
, gpsd, bc, file, gnome_doc_utils, libexif, libxml2, libxslt, scrollkeeper
|
||||||
, docbook_xml_dtd_412 }:
|
, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel }:
|
||||||
|
|
||||||
let version = "1.3"; in
|
stdenv.mkDerivation rec {
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "viking-${version}";
|
name = "viking-${version}";
|
||||||
|
version = "1.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/viking/viking/${version}/viking-${version}.tar.gz";
|
url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
|
||||||
sha256 = "1psgy1myx9xn7zgpvqrpricsv041sz41mm82hj5i28k72fq47p2l";
|
sha256 = "02ljnnc1in3cnafmld93qvzgx3j4qsgac2a53q18s6sp5hvvvw91";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs = [ makeWrapper pkgconfig intltool gettext gtk expat curl gpsd bc file gnome_doc_utils
|
||||||
[ pkgconfig intltool gettext gtk expat curl gpsd bc file gnome_doc_utils
|
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite
|
||||||
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412
|
];
|
||||||
];
|
|
||||||
|
|
||||||
configureFlags = [ "--disable-scrollkeeper" ];
|
configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];
|
||||||
|
|
||||||
preBuild =
|
preBuild = ''
|
||||||
'' sed -i help/Makefile \
|
sed -i help/Makefile \
|
||||||
-e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
|
-e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
|
||||||
'';
|
sed -i help/Makefile -e 's|--postvalid||g'
|
||||||
|
'';
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
meta = {
|
postInstall = ''
|
||||||
description = "GPS data editor and analyzer";
|
wrapProgram $out/bin/viking \
|
||||||
|
--prefix PATH : "${gpsbabel}/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "GPS data editor and analyzer";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Viking is a free/open source program to manage GPS data. You
|
Viking is a free/open source program to manage GPS data. You
|
||||||
can import and plot tracks and waypoints, show Openstreetmaps
|
can import and plot tracks and waypoints, show Openstreetmaps
|
||||||
@ -35,9 +39,8 @@ stdenv.mkDerivation {
|
|||||||
on the map, make new tracks and waypoints, see real-time GPS
|
on the map, make new tracks and waypoints, see real-time GPS
|
||||||
position, etc.
|
position, etc.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = http://viking.sourceforge.net/;
|
homepage = http://viking.sourceforge.net/;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
maintainers = with maintainers; [ pSub ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
# This file is autogenerated from update.sh in the parent directory.
|
# This file is autogenerated from update.sh in the parent directory.
|
||||||
{
|
{
|
||||||
dev = {
|
dev = {
|
||||||
version = "47.0.2498.0";
|
version = "47.0.2503.0";
|
||||||
sha256 = "1dvp7wwfbdzyvbqcfn538gf0dk6w6gc88nms0wl0ir4ka7rf7mz1";
|
sha256 = "1f8swcnrhzh6rc1vyhr6zjwbs74vifr2dmpqppyqa5n8wp2gyhmg";
|
||||||
sha256bin32 = "15jsmvhyzscf6g6czkg5vxzyj7vnkndmsapx0xf8hlw8d5zw3nq7";
|
sha256bin32 = "0mb047g1x3nc51wqbkiss2q3dxwgvi0ah4x2i9fwy4wfrvm57jnl";
|
||||||
sha256bin64 = "1mx605dh93ak0p68rrpb6xf46jygggk0jwj7k6ks21l4wnxha8d5";
|
sha256bin64 = "0cxma0rj70cwzhmx10ib2k60q4w2gar3h55l1pp8b1wgb1pm1vdk";
|
||||||
};
|
};
|
||||||
beta = {
|
beta = {
|
||||||
version = "45.0.2454.78";
|
version = "46.0.2490.22";
|
||||||
sha256 = "1n3yp0jm3jqyw0xwji1451qjjpkvpsqabn7d2r9fj75gspsiwv6z";
|
sha256 = "0cpdv1x49xdcparpwq96a7axk16jpj8jhvafmxzh9zfkl1xxvp2i";
|
||||||
sha256bin32 = "11x8f2nyhf4n1jdd8npvr3ddkp3himi6lxpml64h5gjd5j9gf32b";
|
sha256bin32 = "0y4mirk0qrih7nlkyxg2qbhmzrkz4fa8ng5sgbh9vw3pjv0djc2s";
|
||||||
sha256bin64 = "16gk14q3pc1fzg9dbwlqsay4jwddsh5b37h4p8zkqqymv9fp5qq9";
|
sha256bin64 = "0vlfjq6fxn2snan2kj4gf35iy2xb444hklv94vm4rwmfydygg2bw";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
version = "45.0.2454.85";
|
version = "45.0.2454.85";
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.10";
|
version = "2.11";
|
||||||
name = "links2-${version}";
|
name = "links2-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/download/links-${version}.tar.bz2";
|
url = "${meta.homepage}/download/links-${version}.tar.bz2";
|
||||||
sha256 = "0lqxg55sp1kphl7ykm2km0s2vsn92a0gmlgypmkqb984r060n3l4";
|
sha256 = "0gqjdz1brdcx02mcwchi6bxy1i1ljbw5zpc6b321skrrsqkzkxw7";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = http://bluejeans.com;
|
homepage = http://bluejeans.com;
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = stdenv.lib.licenses.unfree;
|
||||||
maintainers = with maintainers; [ ocharles kamilchm ];
|
maintainers = with maintainers; [ ocharles kamilchm ];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchgit, python, buildPythonPackage, qt5, pyqt5, jinja2, pygments, pyyaml, pypeg2 }:
|
{ stdenv, fetchgit, python, buildPythonPackage, qt5, pyqt5, jinja2, pygments, pyyaml, pypeg2 }:
|
||||||
|
|
||||||
let version = "0.3"; in
|
let version = "0.4.0"; in
|
||||||
|
|
||||||
buildPythonPackage {
|
buildPythonPackage {
|
||||||
name = "qutebrowser-${version}";
|
name = "qutebrowser-${version}";
|
||||||
@ -8,8 +8,8 @@ buildPythonPackage {
|
|||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/The-Compiler/qutebrowser.git";
|
url = "https://github.com/The-Compiler/qutebrowser.git";
|
||||||
rev = "b3cd31a808789932a0a4cb7aa8d9280b6d3a12e7";
|
rev = "e11fcda240eaad1b83b26c7d6424c427d2ad3b96";
|
||||||
sha256 = "fea7fd9de8a930da7af0111739ae88851cb965b30751858d1aba5bbd15277652";
|
sha256 = "0hpd6fibzcl0s6jrsj60rs12dyliwr05r8h9wvngh19a3pmg8q74";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Needs tox
|
# Needs tox
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
, mouseSupport ? false
|
, mouseSupport ? false
|
||||||
, ncurses, openssl ? null, boehmgc, gettext, zlib
|
, ncurses, openssl ? null, boehmgc, gettext, zlib
|
||||||
, imlib2 ? null, x11 ? null, fbcon ? null
|
, imlib2 ? null, x11 ? null, fbcon ? null
|
||||||
, gpm ? null
|
, gpm-ncurses ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert sslSupport -> openssl != null;
|
assert sslSupport -> openssl != null;
|
||||||
assert graphicsSupport -> imlib2 != null && (x11 != null || fbcon != null);
|
assert graphicsSupport -> imlib2 != null && (x11 != null || fbcon != null);
|
||||||
assert mouseSupport -> gpm != null;
|
assert mouseSupport -> gpm-ncurses != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "w3m-0.5.3";
|
name = "w3m-0.5.3";
|
||||||
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ncurses boehmgc gettext zlib]
|
buildInputs = [ncurses boehmgc gettext zlib]
|
||||||
++ stdenv.lib.optional sslSupport openssl
|
++ stdenv.lib.optional sslSupport openssl
|
||||||
++ stdenv.lib.optional mouseSupport gpm
|
++ stdenv.lib.optional mouseSupport gpm-ncurses
|
||||||
++ stdenv.lib.optionals graphicsSupport [imlib2 x11 fbcon];
|
++ stdenv.lib.optionals graphicsSupport [imlib2 x11 fbcon];
|
||||||
|
|
||||||
configureFlags = "--with-ssl=${openssl} --with-gc=${boehmgc}"
|
configureFlags = "--with-ssl=${openssl} --with-gc=${boehmgc}"
|
||||||
|
@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
|
description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
|
||||||
maintainers = with maintainers; [ offline ];
|
maintainers = with maintainers; [ offline ];
|
||||||
platforms = with platforms; unix;
|
platforms = with platforms; unix;
|
||||||
|
broken = true; # doesn't build http://hydra.nixos.org/build/25768319
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
{ lib, goPackages, fetchFromGitHub }:
|
|
||||||
|
|
||||||
with goPackages;
|
|
||||||
|
|
||||||
buildGoPackage rec {
|
|
||||||
rev = "4530cf8d59e1047cb1c005a6bd5b14ecb98b9e68";
|
|
||||||
name = "drive-${lib.strings.substring 0 7 rev}";
|
|
||||||
goPackagePath = "github.com/odeke-em/drive";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
inherit rev;
|
|
||||||
owner = "odeke-em";
|
|
||||||
repo = "drive";
|
|
||||||
sha256 = "1y4qlzvgg84mh8l6bhaazzy6bv6dwjcbpm0rxvvc5aknvvh581ps";
|
|
||||||
};
|
|
||||||
|
|
||||||
subPackages = [ "cmd/drive" ];
|
|
||||||
|
|
||||||
buildInputs = [ pb go-isatty command dts odeke-em.log statos xon odeke-em.google-api-go-client cli-spinner oauth2 text net ];
|
|
||||||
|
|
||||||
dontInstallSrc = true;
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "A tiny program to pull or push Google Drive files";
|
|
||||||
homepage = https://github.com/odeke-em/drive;
|
|
||||||
license = licenses.asl20;
|
|
||||||
maintainers = with maintainers; [ bobvanderlinden ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,29 +1,16 @@
|
|||||||
{ stdenv, fetchFromGitHub, cppcheck, libmrss }:
|
{ stdenv, fetchFromGitHub, cppcheck, libmrss }:
|
||||||
|
|
||||||
let version = "2.0"; in
|
let version = "2015-09-06"; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "rsstail-${version}";
|
name = "rsstail-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "0fbsyl5bdxr2g25ps7kd34sa0mzggklbg4v7qss68gh82zdp16ch";
|
sha256 = "1rfzib5fzm0i8wf3njld1lvxgbci0hxxnvp2qx1k4bwpv744xkpx";
|
||||||
rev = "69dc5e30439b89c037aa49c5af861f28df607c72";
|
rev = "16636539e4cc75dafbfa7f05539769be7dad4b66";
|
||||||
repo = "rsstail";
|
repo = "rsstail";
|
||||||
owner = "flok99";
|
owner = "flok99";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
inherit version;
|
|
||||||
description = "Monitor RSS feeds for new entries";
|
|
||||||
longDescription = ''
|
|
||||||
RSSTail is more or less an RSS reader: it monitors an RSS feed and if it
|
|
||||||
detects a new entry it'll emit only that new entry.
|
|
||||||
'';
|
|
||||||
homepage = http://www.vanheusden.com/rsstail/;
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
platforms = with platforms; linux;
|
|
||||||
maintainers = with maintainers; [ nckx ];
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ libmrss ]
|
buildInputs = [ libmrss ]
|
||||||
++ stdenv.lib.optional doCheck cppcheck;
|
++ stdenv.lib.optional doCheck cppcheck;
|
||||||
|
|
||||||
@ -35,4 +22,17 @@ stdenv.mkDerivation rec {
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
inherit version;
|
||||||
|
description = "Monitor RSS feeds for new entries";
|
||||||
|
longDescription = ''
|
||||||
|
RSSTail is more or less an RSS reader: it monitors an RSS feed and if it
|
||||||
|
detects a new entry it'll emit only that new entry.
|
||||||
|
'';
|
||||||
|
homepage = http://www.vanheusden.com/rsstail/;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = with platforms; linux;
|
||||||
|
maintainers = with maintainers; [ nckx ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
|
{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
|
||||||
, pkgconfig, xdg_utils, gtk2, sqlite }:
|
, pkgconfig, xdg_utils, gtk2, sqlite, pugixml }:
|
||||||
|
|
||||||
let version = "3.12.0.2"; in
|
let version = "3.13.1"; in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "filezilla-${version}";
|
name = "filezilla-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
|
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
|
||||||
sha256 = "038xgvajn0nq1dzw1pac3xwhmil1y17vhadd2hx0vl4lrp16yabs";
|
sha256 = "1iz82zqi1dqxm21ngmvh3sv97mj8069xy276gpv3yrmnyv4psvn1";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
@ -16,7 +16,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
dbus gnutls wxGTK30 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite
|
dbus gnutls wxGTK30 libidn tinyxml gettext pkgconfig xdg_utils gtk2 sqlite
|
||||||
];
|
pugixml ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://filezilla-project.org/;
|
homepage = http://filezilla-project.org/;
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
{ fetchurl, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, json_glib }:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "bitlbee-facebook-2015-08-27";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
rev = "094a11b542e2cd8fac4f00fe01870ecd1cb4c062";
|
||||||
|
owner = "jgeboski";
|
||||||
|
repo = "bitlbee-facebook";
|
||||||
|
sha256 = "1dvbl1z6fl3wswvqbs82vkqlggk24dyi8w7cmm5jh1fmaznmwqrl";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ bitlbee autoconf automake libtool pkgconfig glib json_glib ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
export BITLBEE_PLUGINDIR=$out/lib/bitlbee
|
||||||
|
./autogen.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "The Facebook protocol plugin for bitlbee";
|
||||||
|
|
||||||
|
homepage = https://github.com/jgeboski/bitlbee-facebook;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
|
{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -12,12 +12,21 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ gnutls glib pkgconfig libotr python ]
|
buildInputs = [ gnutls glib pkgconfig libotr python ]
|
||||||
++ optional doCheck check;
|
++ optional doCheck check;
|
||||||
|
|
||||||
|
patches = [(fetchpatch {
|
||||||
|
url = "https://github.com/bitlbee/bitlbee/commit/34d16d5b4b5265990125894572a90493284358cd.patch";
|
||||||
|
sha256 = "05in9kxabb6s2c1l4b9ry58ppfciwmwzrkaq33df2zv0pr3z7w33";
|
||||||
|
})];
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--gcov=1"
|
"--gcov=1"
|
||||||
"--otr=1"
|
"--otr=1"
|
||||||
"--ssl=gnutls"
|
"--ssl=gnutls"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make install-dev
|
||||||
|
'';
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
{ stdenv, bitlbee }:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
inherit bitlbee plugins;
|
||||||
|
name = "bitlbee-plugins";
|
||||||
|
buildInputs = [ bitlbee plugins ];
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib/bitlbee
|
||||||
|
for plugin in $plugins; do
|
||||||
|
for thing in $(ls $plugin/lib/bitlbee); do
|
||||||
|
ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
}
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
pythonPackages.buildPythonPackage rec {
|
pythonPackages.buildPythonPackage rec {
|
||||||
name = "blink-${version}";
|
name = "blink-${version}";
|
||||||
version = "1.4.0";
|
version = "1.4.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
|
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
|
||||||
sha256 = "0vd4ky4djhrrlmfpz7g43bxjynhpql4d3s9jdirh21kc8d1bgayk";
|
sha256 = "0lpc3gm0hk55m7i2hlmk2p76akcfvnqxg0hyamfhha90nv6fk7sf";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./pythonpath.patch ];
|
patches = [ ./pythonpath.patch ];
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
args : with args;
|
args @ { fetchurl, stdenv, pkgconfig, perl, perlXMLParser, libxml2, openssl, nss
|
||||||
|
, gtkspell, aspell, gettext, ncurses, avahi, dbus, dbus_glib, python
|
||||||
|
, libtool, automake, autoconf, gstreamer
|
||||||
|
, gtk, glib
|
||||||
|
, libXScrnSaver, scrnsaverproto, libX11, xproto, kbproto, ... }: with args;
|
||||||
/*
|
/*
|
||||||
arguments: all buildInputs
|
arguments: all buildInputs
|
||||||
optional: purple2Source: purple-2 source - place to copy libpurple from
|
optional: purple2Source: purple-2 source - place to copy libpurple from
|
||||||
(to use a fresher pidgin build)
|
(to use a fresher pidgin build)
|
||||||
*/
|
*/
|
||||||
let
|
let
|
||||||
externalPurple2 = (lib.attrByPath ["purple2Source"] null args) != null;
|
externalPurple2 = (lib.attrByPath ["purple2Source"] null args) != null;
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -16,9 +20,9 @@ rec {
|
|||||||
buildInputs = [gtkspell aspell
|
buildInputs = [gtkspell aspell
|
||||||
gstreamer startupnotification
|
gstreamer startupnotification
|
||||||
libxml2 openssl nss
|
libxml2 openssl nss
|
||||||
libXScrnSaver ncurses scrnsaverproto
|
libXScrnSaver ncurses scrnsaverproto
|
||||||
libX11 xproto kbproto GConf avahi
|
libX11 xproto kbproto GConf avahi
|
||||||
dbus dbus_glib glib python
|
dbus dbus_glib glib python
|
||||||
autoconf libtool automake];
|
autoconf libtool automake];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
@ -38,11 +42,11 @@ rec {
|
|||||||
phaseNames = ["doConfigure" "preBuild" "doMakeInstall"]
|
phaseNames = ["doConfigure" "preBuild" "doMakeInstall"]
|
||||||
++ (lib.optional externalPurple2 "postInstall")
|
++ (lib.optional externalPurple2 "postInstall")
|
||||||
;
|
;
|
||||||
|
|
||||||
name = "carrier-2.5.0";
|
name = "carrier-2.5.0";
|
||||||
meta = {
|
meta = {
|
||||||
description = "PidginIM GUI fork with user-friendly development model";
|
description = "PidginIM GUI fork with user-friendly development model";
|
||||||
homepage = http://funpidgin.sf.net;
|
homepage = http://funpidgin.sf.net;
|
||||||
};
|
};
|
||||||
} // (if externalPurple2 then {
|
} // (if externalPurple2 then {
|
||||||
postInstall = fullDepEntry (''
|
postInstall = fullDepEntry (''
|
||||||
|
@ -39,6 +39,7 @@ stdenv.mkDerivation {
|
|||||||
homepage = http://www.claws-mail.org/;
|
homepage = http://www.claws-mail.org/;
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.khumba ];
|
||||||
};
|
};
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -78,4 +79,9 @@ stdenv.mkDerivation {
|
|||||||
++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
|
++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
|
||||||
++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
|
++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
|
||||||
++ optional (!enableSpellcheck) "--disable-enchant";
|
++ optional (!enableSpellcheck) "--disable-enchant";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
cp claws-mail.desktop $out/share/applications
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
{ lib, fetchgit, goPackages }:
|
|
||||||
|
|
||||||
with goPackages;
|
|
||||||
|
|
||||||
buildGoPackage rec {
|
|
||||||
name = "syncthing-${version}";
|
|
||||||
version = "0.11.22";
|
|
||||||
goPackagePath = "github.com/syncthing/syncthing";
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://github.com/syncthing/syncthing.git";
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
sha256 = "0zdk5ppsq35s10chf8m3rw3sk9d77ms7x1vj3inw4lrm1h13w9wk";
|
|
||||||
};
|
|
||||||
|
|
||||||
subPackages = [ "cmd/syncthing" ];
|
|
||||||
|
|
||||||
buildFlagsArray = "-ldflags=-w -X main.Version v${version}";
|
|
||||||
|
|
||||||
preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace";
|
|
||||||
|
|
||||||
doCheck = true;
|
|
||||||
|
|
||||||
dontInstallSrc = true;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://syncthing.net/;
|
|
||||||
description = "Replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized";
|
|
||||||
license = lib.licenses.mit;
|
|
||||||
maintainers = with lib.maintainers; [ matejc theuni ];
|
|
||||||
platforms = with lib.platforms; unix;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,23 +1,17 @@
|
|||||||
# when updating version, wait for the build to fail
|
|
||||||
# run make without sourcing the environment and let libreoffice
|
|
||||||
# download all extra files
|
|
||||||
# then list extra files separated by newline and pipe them to
|
|
||||||
# generate-libreoffice-srcs.sh and copy output to libreoffice-srcs.nix
|
|
||||||
|
|
||||||
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
|
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
|
||||||
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
|
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
|
||||||
, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
|
, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
|
||||||
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
|
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
|
||||||
, icu, boost, jdk, ant, cups, xorg
|
, icu, boost, jdk, ant, cups, xorg, libcmis
|
||||||
, openssl, gperf, cppunit, GConf, ORBit2, poppler
|
, openssl, gperf, cppunit, GConf, ORBit2, poppler
|
||||||
, librsvg, gnome_vfs, mesa
|
, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
|
||||||
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
|
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
|
||||||
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
|
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
|
||||||
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
|
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
|
||||||
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
|
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
|
||||||
, libatomic_ops, graphite2, harfbuzz, libodfgen
|
, libatomic_ops, graphite2, harfbuzz, libodfgen
|
||||||
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
|
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
|
||||||
, gdb
|
, gdb, commonsLogging
|
||||||
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
|
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
|
||||||
, withHelp ? true
|
, withHelp ? true
|
||||||
}:
|
}:
|
||||||
@ -26,27 +20,11 @@ let
|
|||||||
langsSpaces = stdenv.lib.concatStringsSep " " langs;
|
langsSpaces = stdenv.lib.concatStringsSep " " langs;
|
||||||
major = "5";
|
major = "5";
|
||||||
minor = "0";
|
minor = "0";
|
||||||
patch = "0";
|
patch = "1";
|
||||||
tweak = "5";
|
tweak = "2";
|
||||||
subdir = "${major}.${minor}.${patch}";
|
subdir = "${major}.${minor}.${patch}";
|
||||||
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
|
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
|
||||||
|
|
||||||
# doesn't exist in srcs
|
|
||||||
# 0.8 version is in 0.7.0 tarball
|
|
||||||
libixion = stdenv.mkDerivation rec {
|
|
||||||
version = "0.7.0";
|
|
||||||
name = "libixion-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "http://kohei.us/files/ixion/src/${name}.tar.bz2";
|
|
||||||
sha256 = "10amvz7fzr1kcy3svfspkdykmspqgpjdmk44cyr406wi7v4lwnf9";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ boost mdds pkgconfig ];
|
|
||||||
|
|
||||||
configureFlags = [ "--with-boost=${boost.dev}" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
|
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
|
||||||
inherit name md5;
|
inherit name md5;
|
||||||
url = if brief then
|
url = if brief then
|
||||||
@ -55,19 +33,6 @@ let
|
|||||||
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
|
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Can't find Boost inside LO build
|
|
||||||
liborcus = stdenv.mkDerivation rec {
|
|
||||||
name = "liborcus-0.7.0";
|
|
||||||
src = fetchThirdParty (stdenv.lib.findFirst
|
|
||||||
(x: x.name == "${name}.tar.bz2")
|
|
||||||
("Error: update liborcus version inside LO expression")
|
|
||||||
(import ./libreoffice-srcs.nix));
|
|
||||||
|
|
||||||
buildInputs = [ boost mdds pkgconfig zlib /*libixion*/ ];
|
|
||||||
|
|
||||||
configureFlags = [ "--with-boost=${boost.dev}" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fetchSrc = {name, sha256}: fetchurl {
|
fetchSrc = {name, sha256}: fetchurl {
|
||||||
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
|
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
|
||||||
inherit sha256;
|
inherit sha256;
|
||||||
@ -82,24 +47,23 @@ let
|
|||||||
|
|
||||||
translations = fetchSrc {
|
translations = fetchSrc {
|
||||||
name = "translations";
|
name = "translations";
|
||||||
sha256 = "0x86vf1fhgnjgkj25rqcfgrvid6smikmb96121sasydmg0jcsypm";
|
sha256 = "0z8qf4ri8wmzgc5601fxcwxwym1h9rwk0kaqpxhqbkj04h9z0xq7";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: dictionaries
|
# TODO: dictionaries
|
||||||
|
|
||||||
help = fetchSrc {
|
help = fetchSrc {
|
||||||
name = "help";
|
name = "help";
|
||||||
sha256 = "18wqmbm3yvjz6pfnz5qfklwv4d53vrv2npiz3796d4d1j245ylcv";
|
sha256 = "0iz9jz0ppghzh33kzw7v0xqchim9brys6mnmlk74nzrhci2vj7f7";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
in
|
in stdenv.mkDerivation rec {
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "libreoffice-${version}";
|
name = "libreoffice-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
||||||
sha256 = "046f5lakw2rygs5qjmhsxmdw7pa9gwcamavnyqpk1rfbis2ga5wv";
|
sha256 = "06nj1wnx09a6v3kx9k48810mkb19dbkaln1af33f4m7bxg5bjl87";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Openoffice will open libcups dynamically, so we link it directly
|
# Openoffice will open libcups dynamically, so we link it directly
|
||||||
@ -119,15 +83,6 @@ stdenv.mkDerivation rec {
|
|||||||
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
|
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
find . -type f -print0 | xargs -0 sed -i \
|
|
||||||
-e 's,! */bin/bash,!${bash}/bin/bash,' -e 's,\(!\|SHELL=\) */usr/bin/env bash,\1${bash}/bin/bash,' \
|
|
||||||
-e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
|
|
||||||
-e 's,! */usr/bin/python,!${python3}/bin/${python3.executable},' -e 's,! */usr/bin/env python,!${python3}/bin/${python3.executable},'
|
|
||||||
#sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
|
|
||||||
|
|
||||||
'';
|
|
||||||
|
|
||||||
QT4DIR = qt4;
|
QT4DIR = qt4;
|
||||||
KDE4DIR = kde4.kdelibs;
|
KDE4DIR = kde4.kdelibs;
|
||||||
|
|
||||||
@ -136,17 +91,13 @@ stdenv.mkDerivation rec {
|
|||||||
CPPFLAGS = "-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED";
|
CPPFLAGS = "-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED";
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
# Needed to find genccode
|
|
||||||
PATH=$PATH:${icu}/sbin
|
|
||||||
|
|
||||||
configureFlagsArray=(
|
configureFlagsArray=(
|
||||||
"--with-parallelism=$NIX_BUILD_CORES"
|
"--with-parallelism=$NIX_BUILD_CORES"
|
||||||
"--with-lang=${langsSpaces}"
|
"--with-lang=${langsSpaces}"
|
||||||
"${if withHelp then "" else "--without-help"}"
|
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
chmod a+x ./bin/unpack-sources
|
chmod a+x ./bin/unpack-sources
|
||||||
|
patchShebangs .
|
||||||
# It is used only as an indicator of the proper current directory
|
# It is used only as an indicator of the proper current directory
|
||||||
touch solenv/inc/target.mk
|
touch solenv/inc/target.mk
|
||||||
'';
|
'';
|
||||||
@ -171,7 +122,7 @@ stdenv.mkDerivation rec {
|
|||||||
# This is required as some cppunittests require fontconfig configured
|
# This is required as some cppunittests require fontconfig configured
|
||||||
export FONTCONFIG_FILE=${fontsConf}
|
export FONTCONFIG_FILE=${fontsConf}
|
||||||
|
|
||||||
# This to aovid using /lib:/usr/lib at linking
|
# This to avoid using /lib:/usr/lib at linking
|
||||||
sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
|
sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
|
||||||
|
|
||||||
find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
|
find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
|
||||||
@ -181,74 +132,76 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
# It installs only things to $out/lib/libreoffice
|
# It installs only things to $out/lib/libreoffice
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/bin $out/share
|
mkdir -p $out/bin $out/share/desktop
|
||||||
|
|
||||||
for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
|
for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
|
||||||
ln -s $out/lib/libreoffice/program/$a $out/bin/$a
|
ln -s $out/lib/libreoffice/program/$a $out/bin/$a
|
||||||
done
|
done
|
||||||
ln -s $out/bin/soffice $out/bin/libreoffice
|
|
||||||
|
|
||||||
|
ln -s $out/bin/soffice $out/bin/libreoffice
|
||||||
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
|
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
|
||||||
|
|
||||||
for f in $out/share/applications/*.desktop; do
|
for f in $out/share/applications/*.desktop; do
|
||||||
substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
|
substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
|
||||||
substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
|
substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
|
||||||
substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
|
substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
|
||||||
done
|
done
|
||||||
|
|
||||||
mkdir -p "$out/share/desktop"
|
|
||||||
cp -r sysui/desktop/icons "$out/share"
|
cp -r sysui/desktop/icons "$out/share"
|
||||||
sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
|
sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
|
"${if withHelp then "" else "--without-help"}"
|
||||||
"--with-boost=${boost.dev}"
|
"--with-boost=${boost.dev}"
|
||||||
"--with-boost-libdir=${boost.lib}/lib"
|
"--with-boost-libdir=${boost.lib}/lib"
|
||||||
|
"--with-beanshell-jar=${bsh}"
|
||||||
"--with-vendor=NixOS"
|
"--with-vendor=NixOS"
|
||||||
|
"--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
|
||||||
# Without these, configure does not finish
|
"--disable-report-builder"
|
||||||
"--without-junit"
|
|
||||||
|
|
||||||
# Without this, it wants to download
|
|
||||||
"--enable-python=system"
|
"--enable-python=system"
|
||||||
"--enable-dbus"
|
"--enable-dbus"
|
||||||
"--enable-kde4"
|
"--enable-kde4"
|
||||||
"--disable-odk"
|
|
||||||
"--with-system-cairo"
|
|
||||||
"--with-system-libs"
|
|
||||||
"--with-system-headers"
|
|
||||||
"--with-system-openssl"
|
|
||||||
"--with-system-openldap"
|
|
||||||
"--without-system-libwps" # TODO
|
|
||||||
"--without-doxygen"
|
|
||||||
|
|
||||||
# I imagine this helps. Copied from go-oo.
|
|
||||||
# Modified on every upgrade, though
|
|
||||||
"--disable-kde"
|
|
||||||
"--disable-postgresql-sdbc"
|
|
||||||
"--with-package-format=installed"
|
"--with-package-format=installed"
|
||||||
"--enable-epm"
|
"--enable-epm"
|
||||||
"--with-jdk-home=${jdk.home}"
|
"--with-jdk-home=${jdk.home}"
|
||||||
"--with-ant-home=${ant}/lib/ant"
|
"--with-ant-home=${ant}/lib/ant"
|
||||||
|
"--with-system-cairo"
|
||||||
|
"--with-system-libs"
|
||||||
|
"--with-system-headers"
|
||||||
|
"--with-system-openssl"
|
||||||
|
"--with-system-libabw"
|
||||||
|
"--with-system-libcmis"
|
||||||
|
"--with-system-libwps"
|
||||||
|
"--with-system-openldap"
|
||||||
|
"--with-system-coinmp"
|
||||||
|
|
||||||
|
# Without these, configure does not finish
|
||||||
|
"--without-junit"
|
||||||
|
|
||||||
|
# I imagine this helps. Copied from go-oo.
|
||||||
|
# Modified on every upgrade, though
|
||||||
|
"--disable-kde"
|
||||||
|
"--disable-odk"
|
||||||
|
"--disable-postgresql-sdbc"
|
||||||
|
"--disable-firebird-sdbc"
|
||||||
"--without-fonts"
|
"--without-fonts"
|
||||||
"--without-myspell-dicts"
|
"--without-myspell-dicts"
|
||||||
"--without-system-beanshell"
|
"--without-doxygen"
|
||||||
|
|
||||||
|
# TODO: package these as system libraries
|
||||||
|
"--with-system-beanshell"
|
||||||
"--without-system-hsqldb"
|
"--without-system-hsqldb"
|
||||||
"--without-system-jars"
|
|
||||||
"--without-system-altlinuxhyph"
|
"--without-system-altlinuxhyph"
|
||||||
"--without-system-lpsolve"
|
"--without-system-lpsolve"
|
||||||
"--without-system-npapi-headers"
|
"--without-system-npapi-headers"
|
||||||
"--without-system-libcmis"
|
|
||||||
|
|
||||||
"--without-system-libetonyek"
|
"--without-system-libetonyek"
|
||||||
"--without-system-libfreehand"
|
"--without-system-libfreehand"
|
||||||
"--without-system-libabw"
|
|
||||||
"--without-system-firebird"
|
|
||||||
"--without-system-liblangtag"
|
"--without-system-liblangtag"
|
||||||
"--without-system-libmspub"
|
"--without-system-libmspub"
|
||||||
|
|
||||||
"--without-system-libpagemaker"
|
"--without-system-libpagemaker"
|
||||||
"--without-system-coinmp"
|
|
||||||
"--without-system-libgltf"
|
"--without-system-libgltf"
|
||||||
|
# https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
|
||||||
"--without-system-orcus"
|
"--without-system-orcus"
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -264,21 +217,21 @@ stdenv.mkDerivation rec {
|
|||||||
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
|
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
|
||||||
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
|
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
|
||||||
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
|
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
|
||||||
libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
|
libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
|
||||||
gst_all_1.gst-plugins-base
|
gst_all_1.gst-plugins-base
|
||||||
neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
|
neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
|
||||||
python3 sablotron saneBackends tcsh unzip vigra which zip zlib
|
python3 sablotron saneBackends tcsh unzip vigra which zip zlib
|
||||||
mdds bluez5 glibc
|
mdds bluez5 glibc libcmis libwps libabw
|
||||||
libxshmfence libatomic_ops graphite2 harfbuzz
|
libxshmfence libatomic_ops graphite2 harfbuzz
|
||||||
librevenge libe-book libmwaw glm glew
|
librevenge libe-book libmwaw glm glew
|
||||||
libodfgen
|
libodfgen CoinMP
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
|
description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
|
||||||
homepage = http://libreoffice.org/;
|
homepage = http://libreoffice.org/;
|
||||||
license = licenses.lgpl3;
|
license = licenses.lgpl3;
|
||||||
maintainers = [ maintainers.viric maintainers.raskin ];
|
maintainers = with maintainers; [ viric raskin ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
#!/run/current-system/sw/bin/bash
|
|
||||||
|
|
||||||
# Take the list of files from the main package, ooo.lst.in
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
[
|
|
||||||
EOF
|
|
||||||
|
|
||||||
write_entry(){
|
|
||||||
echo '{'
|
|
||||||
echo " name = \"${name}\";"
|
|
||||||
echo " md5 = \"${md5}\";"
|
|
||||||
echo " brief = ${brief};"
|
|
||||||
echo '}'
|
|
||||||
}
|
|
||||||
|
|
||||||
while read line; do
|
|
||||||
case "$line" in
|
|
||||||
\#*)
|
|
||||||
echo Skipping comment: "$line" >&2;
|
|
||||||
;;
|
|
||||||
*_MD5SUM\ :=*)
|
|
||||||
read tbline;
|
|
||||||
line=${line##* };
|
|
||||||
tbline=${tbline##* };
|
|
||||||
md5=$line
|
|
||||||
name=$tbline;
|
|
||||||
brief=true;
|
|
||||||
write_entry;
|
|
||||||
;;
|
|
||||||
*_TARBALL\ :=*)
|
|
||||||
line=${line##* };
|
|
||||||
md5=${line:0:32};
|
|
||||||
name=${line:33};
|
|
||||||
brief=false;
|
|
||||||
write_entry;
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo Skipping: "$line" >&2;
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
echo ']'
|
|
@ -1,9 +1,5 @@
|
|||||||
|
# DEPRECATED: these dependencies sould be system libraries
|
||||||
[
|
[
|
||||||
{
|
|
||||||
name = "libabw-0.1.1.tar.bz2";
|
|
||||||
md5 = "7a3815b506d064313ba309617b6f5a0b";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "commons-codec-1.6-src.tar.gz";
|
name = "commons-codec-1.6-src.tar.gz";
|
||||||
md5 = "2e482c7567908d334785ce7d69ddfff7";
|
md5 = "2e482c7567908d334785ce7d69ddfff7";
|
||||||
@ -44,61 +40,21 @@
|
|||||||
md5 = "71a11d037240b292f824ba1eb537b4e3";
|
md5 = "71a11d037240b292f824ba1eb537b4e3";
|
||||||
brief = true;
|
brief = true;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "boost_1_55_0.tar.bz2";
|
|
||||||
md5 = "d6eef4b4cacb2183f2bf265a5a03a354";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "bsh-2.0b5-src.zip";
|
|
||||||
md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "cairo-1.10.2.tar.gz";
|
|
||||||
md5 = "f101a9e88b783337b20b2e26dfd26d5f";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libcdr-0.1.1.tar.bz2";
|
|
||||||
md5 = "b33fd0be3befdd1b37777e08ce058bd9";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "clucene-core-2.3.3.4.tar.gz";
|
name = "clucene-core-2.3.3.4.tar.gz";
|
||||||
md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
|
md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "libcmis-0.5.0.tar.gz";
|
|
||||||
md5 = "5821b806a98e6c38370970e682ce76e8";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "CoinMP-1.7.6.tgz";
|
|
||||||
md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "collada2gltf-master-cb1d97788a.tar.bz2";
|
name = "collada2gltf-master-cb1d97788a.tar.bz2";
|
||||||
md5 = "4b87018f7fff1d054939d19920b751a0";
|
md5 = "4b87018f7fff1d054939d19920b751a0";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "cppunit-1.13.2.tar.gz";
|
|
||||||
md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "ConvertTextToNumber-1.3.2.oxt";
|
name = "ConvertTextToNumber-1.3.2.oxt";
|
||||||
md5 = "451ccf439a36a568653b024534669971";
|
md5 = "451ccf439a36a568653b024534669971";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "curl-7.43.0.tar.bz2";
|
|
||||||
md5 = "11bddbb452a8b766b932f859aaeeed39";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "libe-book-0.1.2.tar.bz2";
|
name = "libe-book-0.1.2.tar.bz2";
|
||||||
md5 = "6b48eda57914e6343efebc9381027b78";
|
md5 = "6b48eda57914e6343efebc9381027b78";
|
||||||
@ -119,16 +75,6 @@
|
|||||||
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
|
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "Firebird-2.5.2.26540-0.tar.bz2";
|
|
||||||
md5 = "21154d2004e025c8a3666625b0357bb5";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "fontconfig-2.8.0.tar.gz";
|
|
||||||
md5 = "77e15a92006ddc2adbb06f840d591c0e";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "crosextrafonts-20130214.tar.gz";
|
name = "crosextrafonts-20130214.tar.gz";
|
||||||
md5 = "368f114c078f94214a308a74c7e991bc";
|
md5 = "368f114c078f94214a308a74c7e991bc";
|
||||||
@ -194,16 +140,6 @@
|
|||||||
md5 = "dbf2caca1d3afd410a29217a9809d397";
|
md5 = "dbf2caca1d3afd410a29217a9809d397";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "glew-1.10.0.zip";
|
|
||||||
md5 = "594eb47b4b1210e25438d51825404d5a";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "glm-0.9.4.6-libreoffice.zip";
|
|
||||||
md5 = "bae83fa5dc7f081768daace6e199adc3";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "graphite2-1.2.4.tgz";
|
name = "graphite2-1.2.4.tgz";
|
||||||
md5 = "2ef839348fe28e3b923bf8cced440227";
|
md5 = "2ef839348fe28e3b923bf8cced440227";
|
||||||
@ -289,16 +225,6 @@
|
|||||||
md5 = "39bb3fcea1514f1369fcfc87542390fd";
|
md5 = "39bb3fcea1514f1369fcfc87542390fd";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "jpegsrc.v9a.tar.gz";
|
|
||||||
md5 = "3353992aecaee1805ef4109aadd433e7";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libjpeg-turbo-1.3.1.tar.gz";
|
|
||||||
md5 = "2c3a68129dac443a72815ff5bb374b05";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "language-subtag-registry-2015-06-08.tar.bz2";
|
name = "language-subtag-registry-2015-06-08.tar.bz2";
|
||||||
md5 = "d431bd8a70455be1fa8523fa633c005b";
|
md5 = "d431bd8a70455be1fa8523fa633c005b";
|
||||||
@ -345,26 +271,11 @@
|
|||||||
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
|
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "libxml2-2.9.1.tar.gz";
|
|
||||||
md5 = "9c0cfef285d5c4a5c80d00904ddab380";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libxslt-1.1.28.tar.gz";
|
|
||||||
md5 = "9667bf6f9310b957254fdcf6596600b7";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "lp_solve_5.5.tar.gz";
|
name = "lp_solve_5.5.tar.gz";
|
||||||
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
|
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "mariadb_client-2.0.0-src.tar.gz";
|
|
||||||
md5 = "a233181e03d3c307668b4c722d881661";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "mdds_0.12.1.tar.bz2";
|
name = "mdds_0.12.1.tar.bz2";
|
||||||
md5 = "ef2560ed5416652a7fe195305b14cebe";
|
md5 = "ef2560ed5416652a7fe195305b14cebe";
|
||||||
@ -410,16 +321,6 @@
|
|||||||
md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
|
md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
|
||||||
brief = true;
|
brief = true;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "openldap-2.4.31.tgz";
|
|
||||||
md5 = "804c6cb5698db30b75ad0ff1c25baefd";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "openssl-1.0.2a.tar.gz";
|
|
||||||
md5 = "a06c547dac9044161a477211049f60ef";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "liborcus-0.7.0.tar.bz2";
|
name = "liborcus-0.7.0.tar.bz2";
|
||||||
md5 = "7681383be6ce489d84c1c74f4e7f9643";
|
md5 = "7681383be6ce489d84c1c74f4e7f9643";
|
||||||
@ -445,16 +346,6 @@
|
|||||||
md5 = "35c0660065d023365e9854c13e289d12";
|
md5 = "35c0660065d023365e9854c13e289d12";
|
||||||
brief = true;
|
brief = true;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "postgresql-9.2.1.tar.bz2";
|
|
||||||
md5 = "c0b4799ea9850eae3ead14f0a60e9418";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Python-3.3.5.tgz";
|
|
||||||
md5 = "803a75927f8f241ca78633890c798021";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "raptor2-2.0.9.tar.gz";
|
name = "raptor2-2.0.9.tar.gz";
|
||||||
md5 = "4ceb9316488b0ea01acf011023cf7fff";
|
md5 = "4ceb9316488b0ea01acf011023cf7fff";
|
||||||
@ -495,39 +386,9 @@
|
|||||||
md5 = "0168229624cfac409e766913506961a8";
|
md5 = "0168229624cfac409e766913506961a8";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "vigra1.6.0.tar.gz";
|
|
||||||
md5 = "d62650a6f908e85643e557a236ea989c";
|
|
||||||
brief = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libvisio-0.1.1.tar.bz2";
|
|
||||||
md5 = "726c1f5be65eb7d649e0d48b63d920e7";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libwpd-0.10.0.tar.bz2";
|
|
||||||
md5 = "0773d79a1f240ef9f4f20242b13c5bb7";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libwpg-0.3.0.tar.bz2";
|
|
||||||
md5 = "17da9770cb8b317b7633f9807b32b71a";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libwps-0.4.0.tar.bz2";
|
|
||||||
md5 = "e9162d2566421d9d71b3ad2377a68fd5";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "xsltml_2.1.2.zip";
|
name = "xsltml_2.1.2.zip";
|
||||||
md5 = "a7983f859eafb2677d7ff386a023bc40";
|
md5 = "a7983f859eafb2677d7ff386a023bc40";
|
||||||
brief = false;
|
brief = false;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = "zlib-1.2.8.tar.gz";
|
|
||||||
md5 = "44d667c142d7cda120332623eab69f40";
|
|
||||||
brief = true;
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
|
@ -3,17 +3,19 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pinpoint-${version}";
|
name = "pinpoint-${version}";
|
||||||
version = "0.1.4";
|
version = "0.1.6";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.gnome.org/pub/GNOME/sources/pinpoint/0.1/${name}.tar.bz2";
|
url = "http://ftp.gnome.org/pub/GNOME/sources/pinpoint/0.1/${name}.tar.xz";
|
||||||
sha256 = "26df7ba171d13f697c30c272460989b0f1b45e70c797310878a589ed5a6a47de";
|
sha256 = "0jzkf74w75paflnvsil2y6qsyaqgxf6akz97176xdg6qri4nwal1";
|
||||||
};
|
};
|
||||||
buildInputs = [ pkgconfig autoconf automake clutter clutter-gst gdk_pixbuf
|
buildInputs = [ pkgconfig autoconf automake clutter clutter-gst gdk_pixbuf
|
||||||
cairo ];
|
cairo ];
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://wiki.gnome.org/action/show/Apps/Pinpoint;
|
homepage = https://wiki.gnome.org/action/show/Apps/Pinpoint;
|
||||||
description = "A tool for making hackers do excellent presentations";
|
description = "A tool for making hackers do excellent presentations";
|
||||||
license = stdenv.lib.licenses.lgpl21;
|
license = licenses.lgpl21;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ pSub ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
args : with args;
|
args @ { libxml2, perl, intltool, libtool, pkgconfig, gtk, ... } : with args;
|
||||||
let version = lib.attrByPath ["version"] "1.1.0" args; in
|
let version = lib.attrByPath ["version"] "1.1.0" args; in
|
||||||
rec {
|
rec {
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -17,7 +17,7 @@ rec {
|
|||||||
doPreBuild = fullDepEntry (''
|
doPreBuild = fullDepEntry (''
|
||||||
cp drgeo.desktop.in drgeo.desktop
|
cp drgeo.desktop.in drgeo.desktop
|
||||||
'') ["minInit" "doUnpack"];
|
'') ["minInit" "doUnpack"];
|
||||||
|
|
||||||
name = "drgeo-" + version;
|
name = "drgeo-" + version;
|
||||||
meta = {
|
meta = {
|
||||||
description = "Interactive geometry program";
|
description = "Interactive geometry program";
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
# - coqide compilation can be disabled by setting lablgtk to null;
|
# - coqide compilation can be disabled by setting lablgtk to null;
|
||||||
|
# - The csdp program used for the Micromega tactic is statically referenced.
|
||||||
|
# However, coq can build without csdp by setting it to null.
|
||||||
|
# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found.
|
||||||
|
|
||||||
{ stdenv, make, fetchurl, ocaml, findlib, camlp5, ncurses, lablgtk ? null }:
|
{ stdenv, make, fetchurl, ocaml, findlib, camlp5, ncurses, lablgtk ? null, csdp ? null }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "8.3pl4";
|
version = "8.3pl4";
|
||||||
@ -11,6 +14,10 @@ let
|
|||||||
"\"-I\"; \"+lablgtk2\"" \
|
"\"-I\"; \"+lablgtk2\"" \
|
||||||
"\"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)\"; \"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/stublibs)\""
|
"\"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)\"; \"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/stublibs)\""
|
||||||
'' else "";
|
'' else "";
|
||||||
|
csdpPatch = if csdp != null then ''
|
||||||
|
substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
|
||||||
|
substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.search_exe_in_path \"csdp\"" "Some \"${csdp}/bin/csdp\""
|
||||||
|
'' else "";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -44,6 +51,7 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
||||||
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
||||||
${idePatch}
|
${idePatch}
|
||||||
|
${csdpPatch}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# This post install step is needed to build ssrcoqide from the ssreflect package
|
# This post install step is needed to build ssrcoqide from the ssreflect package
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
# - coqide compilation can be disabled by setting lablgtk to null;
|
# - coqide compilation can be disabled by setting lablgtk to null;
|
||||||
|
# - The csdp program used for the Micromega tactic is statically referenced.
|
||||||
|
# However, coq can build without csdp by setting it to null.
|
||||||
|
# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found.
|
||||||
|
|
||||||
{stdenv, fetchurl, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
|
{stdenv, fetchurl, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null, csdp ? null}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "8.5b2";
|
version = "8.5b2";
|
||||||
coq-version = "8.5";
|
coq-version = "8.5";
|
||||||
buildIde = lablgtk != null;
|
buildIde = lablgtk != null;
|
||||||
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
||||||
|
csdpPatch = if csdp != null then ''
|
||||||
|
substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
|
||||||
|
substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true"
|
||||||
|
'' else "";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -28,6 +35,7 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
||||||
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
||||||
substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)"
|
substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)"
|
||||||
|
${csdpPatch}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
setupHook = writeText "setupHook.sh" ''
|
setupHook = writeText "setupHook.sh" ''
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
# - coqide compilation can be disabled by setting lablgtk to null;
|
# - coqide compilation can be disabled by setting lablgtk to null;
|
||||||
|
# - The csdp program used for the Micromega tactic is statically referenced.
|
||||||
|
# However, coq can build without csdp by setting it to null.
|
||||||
|
# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found.
|
||||||
|
|
||||||
{stdenv, fetchgit, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
|
{stdenv, fetchgit, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null, csdp ? null}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "8.5pre-0c999f02";
|
version = "8.5pre-0c999f02";
|
||||||
coq-version = "8.5";
|
coq-version = "8.5";
|
||||||
buildIde = lablgtk != null;
|
buildIde = lablgtk != null;
|
||||||
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
||||||
|
csdpPatch = if csdp != null then ''
|
||||||
|
substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
|
||||||
|
substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true"
|
||||||
|
'' else "";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -31,6 +38,7 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
||||||
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
||||||
substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)"
|
substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)"
|
||||||
|
${csdpPatch}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
setupHook = writeText "setupHook.sh" ''
|
setupHook = writeText "setupHook.sh" ''
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
# - coqide compilation can be disabled by setting lablgtk to null;
|
# - coqide compilation can be disabled by setting lablgtk to null;
|
||||||
|
# - The csdp program used for the Micromega tactic is statically referenced.
|
||||||
|
# However, coq can build without csdp by setting it to null.
|
||||||
|
# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found.
|
||||||
|
|
||||||
{stdenv, fetchurl, pkgconfig, writeText, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
|
{stdenv, fetchurl, pkgconfig, writeText, ocaml, findlib, camlp5, ncurses, lablgtk ? null, csdp ? null}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "8.4pl6";
|
version = "8.4pl6";
|
||||||
coq-version = "8.4";
|
coq-version = "8.4";
|
||||||
buildIde = lablgtk != null;
|
buildIde = lablgtk != null;
|
||||||
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
||||||
|
csdpPatch = if csdp != null then ''
|
||||||
|
substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
|
||||||
|
substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true"
|
||||||
|
'' else "";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -29,6 +36,7 @@ stdenv.mkDerivation {
|
|||||||
RM=$(type -tp rm)
|
RM=$(type -tp rm)
|
||||||
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
substituteInPlace configure --replace "/bin/uname" "$UNAME"
|
||||||
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
|
||||||
|
${csdpPatch}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user