mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 12:53:59 +03:00
Merge branch 'master' into staging
This commit is contained in:
commit
e9520e81b3
@ -234,7 +234,7 @@ library promises to give its users access to GHC's installation paths. Only,
|
|||||||
the library can't possible know that path when it's compiled, because the path
|
the library can't possible know that path when it's compiled, because the path
|
||||||
GHC considers its own is determined only much later, when the user configures
|
GHC considers its own is determined only much later, when the user configures
|
||||||
it through `ghcWithPackages`. So we [patched
|
it through `ghcWithPackages`. So we [patched
|
||||||
ghc-paths](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/ghc-paths-nix.patch)
|
ghc-paths](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/patches/ghc-paths-nix.patch)
|
||||||
to return the paths found in those environment variables at run-time rather
|
to return the paths found in those environment variables at run-time rather
|
||||||
than trying to guess them at compile-time.
|
than trying to guess them at compile-time.
|
||||||
|
|
||||||
|
@ -69,12 +69,14 @@
|
|||||||
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
|
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
|
||||||
codsl = "codsl <codsl@riseup.net>";
|
codsl = "codsl <codsl@riseup.net>";
|
||||||
codyopel = "Cody Opel <codyopel@gmail.com>";
|
codyopel = "Cody Opel <codyopel@gmail.com>";
|
||||||
|
colemickens = "Cole Mickens <cole.mickens@gmail.com>";
|
||||||
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
|
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
|
||||||
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
|
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
|
||||||
couchemar = "Andrey Pavlov <couchemar@yandex.ru>";
|
couchemar = "Andrey Pavlov <couchemar@yandex.ru>";
|
||||||
cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
|
cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
|
||||||
cwoac = "Oliver Matthews <oliver@codersoffortune.net>";
|
cwoac = "Oliver Matthews <oliver@codersoffortune.net>";
|
||||||
DamienCassou = "Damien Cassou <damien@cassou.me>";
|
DamienCassou = "Damien Cassou <damien@cassou.me>";
|
||||||
|
dasuxullebt = "Christoph-Simon Senjak <christoph.senjak@googlemail.com>";
|
||||||
davidak = "David Kleuker <post@davidak.de>";
|
davidak = "David Kleuker <post@davidak.de>";
|
||||||
davidrusu = "David Rusu <davidrusu.me@gmail.com>";
|
davidrusu = "David Rusu <davidrusu.me@gmail.com>";
|
||||||
dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
|
dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
|
||||||
@ -94,10 +96,12 @@
|
|||||||
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>";
|
||||||
eelco = "Eelco Dolstra <eelco.dolstra@logicblox.com>";
|
eelco = "Eelco Dolstra <eelco.dolstra@logicblox.com>";
|
||||||
|
ehegnes = "Eric Hegnes <eric.hegnes@gmail.com>";
|
||||||
|
ehmry = "Emery Hemingway <emery@vfemail.net>";
|
||||||
eikek = "Eike Kettner <eike.kettner@posteo.de>";
|
eikek = "Eike Kettner <eike.kettner@posteo.de>";
|
||||||
elasticdog = "Aaron Bull Schaefer <aaron@elasticdog.com>";
|
elasticdog = "Aaron Bull Schaefer <aaron@elasticdog.com>";
|
||||||
|
elitak = "Eric Litak <elitak@gmail.com>";
|
||||||
ellis = "Ellis Whitehead <nixos@ellisw.net>";
|
ellis = "Ellis Whitehead <nixos@ellisw.net>";
|
||||||
ehmry = "Emery Hemingway <emery@vfemail.net>";
|
|
||||||
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
|
epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
|
||||||
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
|
ericbmerritt = "Eric Merritt <eric@afiniate.com>";
|
||||||
ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
|
ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
|
||||||
@ -105,6 +109,7 @@
|
|||||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||||
exi = "Reno Reckling <nixos@reckling.org>";
|
exi = "Reno Reckling <nixos@reckling.org>";
|
||||||
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
exlevan = "Alexey Levan <exlevan@gmail.com>";
|
||||||
|
fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
|
||||||
falsifian = "James Cook <james.cook@utoronto.ca>";
|
falsifian = "James Cook <james.cook@utoronto.ca>";
|
||||||
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
||||||
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
|
fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
|
||||||
@ -182,6 +187,7 @@
|
|||||||
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
|
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
|
||||||
lsix = "Lancelot SIX <lsix@lancelotsix.com>";
|
lsix = "Lancelot SIX <lsix@lancelotsix.com>";
|
||||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||||
|
lukasepple = "Lukas Epple <post@lukasepple.de>";
|
||||||
lukego = "Luke Gorrie <luke@snabb.co>";
|
lukego = "Luke Gorrie <luke@snabb.co>";
|
||||||
luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
|
luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
|
||||||
lw = "Sergey Sofeychuk <lw@fmap.me>";
|
lw = "Sergey Sofeychuk <lw@fmap.me>";
|
||||||
@ -218,6 +224,7 @@
|
|||||||
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
||||||
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
||||||
nequissimus = "Tim Steinbach <tim@nequissimus.com>";
|
nequissimus = "Tim Steinbach <tim@nequissimus.com>";
|
||||||
|
nfjinjing = "Jinjing Wang <nfjinjing@gmail.com>";
|
||||||
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
|
nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
|
||||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||||
@ -274,6 +281,7 @@
|
|||||||
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
|
||||||
rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";
|
rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";
|
||||||
rvlander = "Gaëtan André <rvlander@gaetanandre.eu>";
|
rvlander = "Gaëtan André <rvlander@gaetanandre.eu>";
|
||||||
|
ryantm = "Ryan Mulligan <ryan@ryantm.com>";
|
||||||
rycee = "Robert Helgesson <robert@rycee.net>";
|
rycee = "Robert Helgesson <robert@rycee.net>";
|
||||||
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
|
||||||
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
|
||||||
@ -289,6 +297,7 @@
|
|||||||
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
||||||
sjourdois = "Stéphane ‘kwisatz’ Jourdois <sjourdois@gmail.com>";
|
sjourdois = "Stéphane ‘kwisatz’ Jourdois <sjourdois@gmail.com>";
|
||||||
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
||||||
|
sleexyz = "Sean Lee <freshdried@gmail.com>";
|
||||||
smironov = "Sergey Mironov <ierton@gmail.com>";
|
smironov = "Sergey Mironov <ierton@gmail.com>";
|
||||||
spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
|
spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
|
||||||
spencerjanssen = "Spencer Janssen <spencerjanssen@gmail.com>";
|
spencerjanssen = "Spencer Janssen <spencerjanssen@gmail.com>";
|
||||||
@ -322,6 +331,7 @@
|
|||||||
twey = "James ‘Twey’ Kay <twey@twey.co.uk>";
|
twey = "James ‘Twey’ Kay <twey@twey.co.uk>";
|
||||||
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
|
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
|
||||||
vandenoever = "Jos van den Oever <jos@vandenoever.info>";
|
vandenoever = "Jos van den Oever <jos@vandenoever.info>";
|
||||||
|
vanzef = "Ivan Solyankin <vanzef@gmail.com>";
|
||||||
vbgl = "Vincent Laporte <Vincent.Laporte@gmail.com>";
|
vbgl = "Vincent Laporte <Vincent.Laporte@gmail.com>";
|
||||||
vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
|
vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
|
||||||
vcunat = "Vladimír Čunát <vcunat@gmail.com>";
|
vcunat = "Vladimír Čunát <vcunat@gmail.com>";
|
||||||
|
@ -13,7 +13,7 @@ rec {
|
|||||||
all = linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos;
|
all = linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos;
|
||||||
none = [];
|
none = [];
|
||||||
allBut = platforms: lists.filter (x: !(builtins.elem x platforms)) all;
|
allBut = platforms: lists.filter (x: !(builtins.elem x platforms)) all;
|
||||||
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux"];
|
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux"];
|
||||||
x86_64 = ["x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin"];
|
x86_64 = ["x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin"];
|
||||||
i686 = ["i686-linux" "i686-freebsd" "i686-netbsd" "i686-cygwin"];
|
i686 = ["i686-linux" "i686-freebsd" "i686-netbsd" "i686-cygwin"];
|
||||||
arm = ["armv5tel-linux" "armv6l-linux" "armv7l-linux" ];
|
arm = ["armv5tel-linux" "armv6l-linux" "armv7l-linux" ];
|
||||||
|
@ -41,6 +41,7 @@ nixos.path = ./nixpkgs-unstable-2015-12-06/nixos;
|
|||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
|
<listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
|
||||||
|
<listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
|
||||||
<listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
|
<listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
|
||||||
<listitem><para><literal>services/security/haka.nix</literal></para></listitem>
|
<listitem><para><literal>services/security/haka.nix</literal></para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -22,7 +22,7 @@ with lib;
|
|||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf config.hardware.enableAllFirmware {
|
config = mkIf config.hardware.enableAllFirmware {
|
||||||
hardware.firmware = [ pkgs.firmwareLinuxNonfree ];
|
hardware.firmware = [ pkgs.firmwareLinuxNonfree pkgs.intel2200BGFirmware ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
config = lib.mkIf config.networking.enableIntel2200BGFirmware {
|
config = lib.mkIf config.networking.enableIntel2200BGFirmware {
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.firmware = [ pkgs.intel2200BGFirmware ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
45
nixos/modules/hardware/video/webcam/facetimehd.nix
Normal file
45
nixos/modules/hardware/video/webcam/facetimehd.nix
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.hardware.facetimehd;
|
||||||
|
|
||||||
|
kernelPackages = config.boot.kernelPackages;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
assertions = singleton {
|
||||||
|
assertion = versionAtLeast kernelPackages.kernel.version "3.19";
|
||||||
|
message = "facetimehd is not supported for kernels older than 3.19";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelModules = [ "facetimehd" ];
|
||||||
|
|
||||||
|
boot.blacklistedKernelModules = [ "bdc_pci" ];
|
||||||
|
|
||||||
|
boot.extraModulePackages = [ kernelPackages.facetimehd ];
|
||||||
|
|
||||||
|
hardware.firmware = [ pkgs.facetimehd-firmware ];
|
||||||
|
|
||||||
|
# unload module during suspend/hibernate as it crashes the whole system
|
||||||
|
powerManagement.powerDownCommands = ''
|
||||||
|
${pkgs.module_init_tools}/bin/rmmod -f facetimehd
|
||||||
|
'';
|
||||||
|
|
||||||
|
# and load it back on resume
|
||||||
|
powerManagement.resumeCommands = ''
|
||||||
|
export MODULE_DIR=/run/current-system/kernel-modules/lib/modules
|
||||||
|
${pkgs.module_init_tools}/bin/modprobe -v facetimehd
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -23,7 +23,7 @@ in
|
|||||||
boot.loader.generic-extlinux-compatible.enable = true;
|
boot.loader.generic-extlinux-compatible.enable = true;
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
|
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
|
||||||
|
|
||||||
# FIXME: this probably should be in installation-device.nix
|
# FIXME: this probably should be in installation-device.nix
|
||||||
users.extraUsers.root.initialHashedPassword = "";
|
users.extraUsers.root.initialHashedPassword = "";
|
||||||
|
@ -30,7 +30,7 @@ in
|
|||||||
|
|
||||||
bootSize = mkOption {
|
bootSize = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 128;
|
default = 120;
|
||||||
description = ''
|
description = ''
|
||||||
Size of the /boot partition, in megabytes.
|
Size of the /boot partition, in megabytes.
|
||||||
'';
|
'';
|
||||||
@ -66,10 +66,10 @@ in
|
|||||||
buildInputs = with pkgs; [ dosfstools e2fsprogs mtools libfaketime utillinux ];
|
buildInputs = with pkgs; [ dosfstools e2fsprogs mtools libfaketime utillinux ];
|
||||||
|
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
# Create the image file sized to fit /boot and /, plus 4M of slack
|
# Create the image file sized to fit /boot and /, plus 20M of slack
|
||||||
rootSizeBlocks=$(du -B 512 --apparent-size ${rootfsImage} | awk '{ print $1 }')
|
rootSizeBlocks=$(du -B 512 --apparent-size ${rootfsImage} | awk '{ print $1 }')
|
||||||
bootSizeBlocks=$((${toString config.sdImage.bootSize} * 1024 * 1024 / 512))
|
bootSizeBlocks=$((${toString config.sdImage.bootSize} * 1024 * 1024 / 512))
|
||||||
imageSize=$((rootSizeBlocks * 512 + bootSizeBlocks * 512 + 4096 * 1024))
|
imageSize=$((rootSizeBlocks * 512 + bootSizeBlocks * 512 + 20 * 1024 * 1024))
|
||||||
truncate -s $imageSize $out
|
truncate -s $imageSize $out
|
||||||
|
|
||||||
# type=b is 'W95 FAT32', type=83 is 'Linux'.
|
# type=b is 'W95 FAT32', type=83 is 'Linux'.
|
||||||
@ -77,8 +77,8 @@ in
|
|||||||
label: dos
|
label: dos
|
||||||
label-id: 0x2178694e
|
label-id: 0x2178694e
|
||||||
|
|
||||||
start=1M, size=$bootSizeBlocks, type=b, bootable
|
start=8M, size=$bootSizeBlocks, type=b, bootable
|
||||||
type=83
|
start=${toString (8 + config.sdImage.bootSize)}M, type=83
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Copy the rootfs into the SD image
|
# Copy the rootfs into the SD image
|
||||||
|
@ -86,8 +86,7 @@ in
|
|||||||
system.boot.loader.kernelFile = "uImage";
|
system.boot.loader.kernelFile = "uImage";
|
||||||
|
|
||||||
boot.initrd.availableKernelModules =
|
boot.initrd.availableKernelModules =
|
||||||
[ "mvsdio" "mmc_block" "reiserfs" "ext3" "ums-cypress" "rtc_mv"
|
[ "mvsdio" "reiserfs" "ext3" "ums-cypress" "rtc_mv" "ext4" ];
|
||||||
"ext4" ];
|
|
||||||
|
|
||||||
boot.postBootCommands =
|
boot.postBootCommands =
|
||||||
''
|
''
|
||||||
|
@ -43,7 +43,7 @@ in
|
|||||||
# so that we don't need to know its device.
|
# so that we don't need to know its device.
|
||||||
fileSystems = [ ];
|
fileSystems = [ ];
|
||||||
|
|
||||||
# boot.initrd.availableKernelModules = [ "mvsdio" "mmc_block" "reiserfs" "ext3" "ext4" ];
|
# boot.initrd.availableKernelModules = [ "mvsdio" "reiserfs" "ext3" "ext4" ];
|
||||||
|
|
||||||
# boot.initrd.kernelModules = [ "rtc_mv" ];
|
# boot.initrd.kernelModules = [ "rtc_mv" ];
|
||||||
|
|
||||||
|
@ -73,11 +73,6 @@ if ! test -e "$mountPoint"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -F -q " $mountPoint " /proc/mounts; then
|
|
||||||
echo "$mountPoint doesn't appear to be a mount point"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Mount some stuff in the target root directory.
|
# Mount some stuff in the target root directory.
|
||||||
mkdir -m 0755 -p $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
|
mkdir -m 0755 -p $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
|
||||||
|
@ -248,6 +248,9 @@
|
|||||||
matrix-synapse = 224;
|
matrix-synapse = 224;
|
||||||
rspamd = 225;
|
rspamd = 225;
|
||||||
rmilter = 226;
|
rmilter = 226;
|
||||||
|
cfdyndns = 227;
|
||||||
|
gammu-smsd = 228;
|
||||||
|
pdnsd = 229;
|
||||||
|
|
||||||
# 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!
|
||||||
|
|
||||||
@ -473,6 +476,8 @@
|
|||||||
matrix-synapse = 224;
|
matrix-synapse = 224;
|
||||||
rspamd = 225;
|
rspamd = 225;
|
||||||
rmilter = 226;
|
rmilter = 226;
|
||||||
|
cfdyndns = 227;
|
||||||
|
pdnsd = 229;
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
./hardware/video/bumblebee.nix
|
./hardware/video/bumblebee.nix
|
||||||
./hardware/video/nvidia.nix
|
./hardware/video/nvidia.nix
|
||||||
./hardware/video/ati.nix
|
./hardware/video/ati.nix
|
||||||
|
./hardware/video/webcam/facetimehd.nix
|
||||||
./installer/tools/auto-upgrade.nix
|
./installer/tools/auto-upgrade.nix
|
||||||
./installer/tools/nixos-checkout.nix
|
./installer/tools/nixos-checkout.nix
|
||||||
./installer/tools/tools.nix
|
./installer/tools/tools.nix
|
||||||
@ -200,6 +201,7 @@
|
|||||||
./services/misc/bepasty.nix
|
./services/misc/bepasty.nix
|
||||||
./services/misc/canto-daemon.nix
|
./services/misc/canto-daemon.nix
|
||||||
./services/misc/calibre-server.nix
|
./services/misc/calibre-server.nix
|
||||||
|
./services/misc/cfdyndns.nix
|
||||||
./services/misc/cpuminer-cryptonight.nix
|
./services/misc/cpuminer-cryptonight.nix
|
||||||
./services/misc/cgminer.nix
|
./services/misc/cgminer.nix
|
||||||
./services/misc/confd.nix
|
./services/misc/confd.nix
|
||||||
@ -210,6 +212,7 @@
|
|||||||
./services/misc/etcd.nix
|
./services/misc/etcd.nix
|
||||||
./services/misc/felix.nix
|
./services/misc/felix.nix
|
||||||
./services/misc/folding-at-home.nix
|
./services/misc/folding-at-home.nix
|
||||||
|
./services/misc/gammu-smsd.nix
|
||||||
#./services/misc/gitit.nix
|
#./services/misc/gitit.nix
|
||||||
./services/misc/gitlab.nix
|
./services/misc/gitlab.nix
|
||||||
./services/misc/gitolite.nix
|
./services/misc/gitolite.nix
|
||||||
@ -339,6 +342,7 @@
|
|||||||
./services/networking/openntpd.nix
|
./services/networking/openntpd.nix
|
||||||
./services/networking/openvpn.nix
|
./services/networking/openvpn.nix
|
||||||
./services/networking/ostinato.nix
|
./services/networking/ostinato.nix
|
||||||
|
./services/networking/pdnsd.nix
|
||||||
./services/networking/polipo.nix
|
./services/networking/polipo.nix
|
||||||
./services/networking/prayer.nix
|
./services/networking/prayer.nix
|
||||||
./services/networking/privoxy.nix
|
./services/networking/privoxy.nix
|
||||||
|
@ -56,8 +56,8 @@ let
|
|||||||
|
|
||||||
plugins = mkOption {
|
plugins = mkOption {
|
||||||
type = types.listOf (types.enum [
|
type = types.listOf (types.enum [
|
||||||
"cert.der" "cert.pem" "chain.der" "chain.pem" "external_pem.sh"
|
"cert.der" "cert.pem" "chain.pem" "external_pem.sh"
|
||||||
"fullchain.der" "fullchain.pem" "key.der" "key.pem" "account_key.json"
|
"fullchain.pem" "full.pem" "key.der" "key.pem" "account_key.json"
|
||||||
]);
|
]);
|
||||||
default = [ "fullchain.pem" "key.pem" "account_key.json" ];
|
default = [ "fullchain.pem" "key.pem" "account_key.json" ];
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -158,7 +158,7 @@ in
|
|||||||
# Note: when changing the default, make it conditional on
|
# Note: when changing the default, make it conditional on
|
||||||
# ‘system.stateVersion’ to maintain compatibility with existing
|
# ‘system.stateVersion’ to maintain compatibility with existing
|
||||||
# systems!
|
# systems!
|
||||||
mkDefault pkgs.postgresql94;
|
mkDefault (if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql95 else pkgs.postgresql94);
|
||||||
|
|
||||||
services.postgresql.authentication = mkAfter
|
services.postgresql.authentication = mkAfter
|
||||||
''
|
''
|
||||||
@ -177,7 +177,7 @@ in
|
|||||||
|
|
||||||
users.extraGroups.postgres.gid = config.ids.gids.postgres;
|
users.extraGroups.postgres.gid = config.ids.gids.postgres;
|
||||||
|
|
||||||
environment.systemPackages = [postgresql];
|
environment.systemPackages = [ postgresql ];
|
||||||
|
|
||||||
systemd.services.postgresql =
|
systemd.services.postgresql =
|
||||||
{ description = "PostgreSQL Server";
|
{ description = "PostgreSQL Server";
|
||||||
@ -187,35 +187,37 @@ in
|
|||||||
|
|
||||||
environment.PGDATA = cfg.dataDir;
|
environment.PGDATA = cfg.dataDir;
|
||||||
|
|
||||||
path = [ pkgs.su postgresql ];
|
path = [ postgresql ];
|
||||||
|
|
||||||
preStart =
|
preStart =
|
||||||
|
''
|
||||||
|
# Create data directory.
|
||||||
|
if ! test -e ${cfg.dataDir}/PG_VERSION; then
|
||||||
|
mkdir -m 0700 -p ${cfg.dataDir}
|
||||||
|
rm -f ${cfg.dataDir}/*.conf
|
||||||
|
chown -R postgres:postgres ${cfg.dataDir}
|
||||||
|
fi
|
||||||
|
''; # */
|
||||||
|
|
||||||
|
script =
|
||||||
''
|
''
|
||||||
# Initialise the database.
|
# Initialise the database.
|
||||||
if ! test -e ${cfg.dataDir}/PG_VERSION; then
|
if ! test -e ${cfg.dataDir}/PG_VERSION; then
|
||||||
mkdir -m 0700 -p ${cfg.dataDir}
|
initdb -U root
|
||||||
rm -f ${cfg.dataDir}/*.conf
|
# See postStart!
|
||||||
if [ "$(id -u)" = 0 ]; then
|
touch "${cfg.dataDir}/.first_startup"
|
||||||
chown -R postgres ${cfg.dataDir}
|
|
||||||
su -s ${pkgs.stdenv.shell} postgres -c 'initdb -U root'
|
|
||||||
else
|
|
||||||
# For non-root operation.
|
|
||||||
initdb
|
|
||||||
fi
|
|
||||||
# See postStart!
|
|
||||||
touch "${cfg.dataDir}/.first_startup"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
|
ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
|
||||||
${optionalString (cfg.recoveryConfig != null) ''
|
${optionalString (cfg.recoveryConfig != null) ''
|
||||||
ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
|
ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
|
||||||
"${cfg.dataDir}/recovery.conf"
|
"${cfg.dataDir}/recovery.conf"
|
||||||
''}
|
''}
|
||||||
''; # */
|
|
||||||
|
exec postgres ${toString flags}
|
||||||
|
'';
|
||||||
|
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart = "@${postgresql}/bin/postgres postgres ${toString flags}";
|
{ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
|
||||||
User = "postgres";
|
User = "postgres";
|
||||||
Group = "postgres";
|
Group = "postgres";
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
|
@ -1,6 +1,43 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
let
|
||||||
|
bluez-bluetooth = if config.services.xserver.desktopManager.kde4.enable then pkgs.bluez else pkgs.bluez5;
|
||||||
|
|
||||||
|
configBluez = {
|
||||||
|
description = "Bluetooth Service";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "dbus";
|
||||||
|
BusName = "org.bluez";
|
||||||
|
ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n";
|
||||||
|
};
|
||||||
|
wantedBy = [ "bluetooth.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
configBluez5 = {
|
||||||
|
description = "Bluetooth Service";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "dbus";
|
||||||
|
BusName = "org.bluez";
|
||||||
|
ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n";
|
||||||
|
NotifyAccess="main";
|
||||||
|
CapabilityBoundingSet="CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
|
||||||
|
LimitNPROC=1;
|
||||||
|
};
|
||||||
|
wantedBy = [ "bluetooth.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
obexConfig = {
|
||||||
|
description = "Bluetooth OBEX service";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "dbus";
|
||||||
|
BusName = "org.bluez.obex";
|
||||||
|
ExecStart = "${bluez-bluetooth}/sbin/obexd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
bluezConfig = if config.services.xserver.desktopManager.kde4.enable then configBluez else configBluez5;
|
||||||
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -16,26 +53,15 @@ with lib;
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf config.hardware.bluetooth.enable {
|
config = mkIf config.hardware.bluetooth.enable {
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.bluez pkgs.openobex pkgs.obexftp ];
|
environment.systemPackages = [ bluez-bluetooth pkgs.openobex pkgs.obexftp ];
|
||||||
|
services.udev.packages = [ bluez-bluetooth ];
|
||||||
services.udev.packages = [ pkgs.bluez ];
|
services.dbus.packages = [ bluez-bluetooth ];
|
||||||
|
systemd.services."dbus-org.bluez" = bluezConfig;
|
||||||
services.dbus.packages = [ pkgs.bluez ];
|
systemd.services."dbus-org.bluez.obex" = obexConfig;
|
||||||
|
|
||||||
systemd.services."dbus-org.bluez" = {
|
|
||||||
description = "Bluetooth Service";
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "dbus";
|
|
||||||
BusName = "org.bluez";
|
|
||||||
ExecStart = "${pkgs.bluez}/sbin/bluetoothd -n";
|
|
||||||
};
|
|
||||||
wantedBy = [ "bluetooth.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ in
|
|||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = ''stdin { type => "example" }'';
|
default = ''stdin { type => "example" }'';
|
||||||
description = "Logstash input configuration.";
|
description = "Logstash input configuration.";
|
||||||
example = ''
|
example = literalExample ''
|
||||||
# Read from journal
|
# Read from journal
|
||||||
pipe {
|
pipe {
|
||||||
command => "''${pkgs.systemd}/bin/journalctl -f -o json"
|
command => "''${pkgs.systemd}/bin/journalctl -f -o json"
|
||||||
@ -98,7 +98,7 @@ in
|
|||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = ''noop {}'';
|
default = ''noop {}'';
|
||||||
description = "logstash filter configuration.";
|
description = "logstash filter configuration.";
|
||||||
example = ''
|
example = literalExample ''
|
||||||
if [type] == "syslog" {
|
if [type] == "syslog" {
|
||||||
# Keep only relevant systemd fields
|
# Keep only relevant systemd fields
|
||||||
# http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html
|
# http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html
|
||||||
@ -114,7 +114,7 @@ in
|
|||||||
|
|
||||||
outputConfig = mkOption {
|
outputConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = ''stdout { debug => true debug_format => "json"}'';
|
default = literalExample ''stdout { debug => true debug_format => "json"}'';
|
||||||
description = "Logstash output configuration.";
|
description = "Logstash output configuration.";
|
||||||
example = ''
|
example = ''
|
||||||
redis { host => "localhost" data_type => "list" key => "logstash" codec => json }
|
redis { host => "localhost" data_type => "list" key => "logstash" codec => json }
|
||||||
|
@ -13,6 +13,7 @@ let
|
|||||||
''
|
''
|
||||||
base_dir = ${baseDir}
|
base_dir = ${baseDir}
|
||||||
protocols = ${concatStringsSep " " cfg.protocols}
|
protocols = ${concatStringsSep " " cfg.protocols}
|
||||||
|
sendmail_path = /var/setuid-wrappers/sendmail
|
||||||
''
|
''
|
||||||
|
|
||||||
(if isNull cfg.sslServerCert then ''
|
(if isNull cfg.sslServerCert then ''
|
||||||
|
@ -19,7 +19,10 @@ let
|
|||||||
SystemLog on
|
SystemLog on
|
||||||
UserLog on
|
UserLog on
|
||||||
|
|
||||||
${optionalString (cfg.domainSocket != null) ''ServerDomainSocketPath "${cfg.domainSocket}"''}
|
${optionalString (cfg.domainSocket != null) ''
|
||||||
|
ServerDomainSocketPath "${cfg.domainSocket}"
|
||||||
|
ClientHost "${cfg.domainSocket}"
|
||||||
|
''}
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
@ -108,7 +111,11 @@ in {
|
|||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
RuntimeDirectory = optional (cfg.domainSocket == defaultSock) "dspam";
|
RuntimeDirectory = optional (cfg.domainSocket == defaultSock) "dspam";
|
||||||
|
RuntimeDirectoryMode = optional (cfg.domainSocket == defaultSock) "0750";
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
|
# DSPAM segfaults on just about every error
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "1s";
|
||||||
};
|
};
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
@ -136,7 +143,7 @@ in {
|
|||||||
restartTriggers = [ cfgfile ];
|
restartTriggers = [ cfgfile ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${dspam}/bin/dspam_maintenance";
|
ExecStart = "${dspam}/bin/dspam_maintenance --verbose";
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
|
@ -13,6 +13,18 @@ let
|
|||||||
haveTransport = cfg.transport != "";
|
haveTransport = cfg.transport != "";
|
||||||
haveVirtual = cfg.virtual != "";
|
haveVirtual = cfg.virtual != "";
|
||||||
|
|
||||||
|
clientAccess =
|
||||||
|
if (cfg.dnsBlacklistOverrides != "")
|
||||||
|
then [ "check_client_access hash:/etc/postfix/client_access" ]
|
||||||
|
else [];
|
||||||
|
|
||||||
|
dnsBl =
|
||||||
|
if (cfg.dnsBlacklists != [])
|
||||||
|
then [ (concatStringsSep ", " (map (s: "reject_rbl_client " + s) cfg.dnsBlacklists)) ]
|
||||||
|
else [];
|
||||||
|
|
||||||
|
clientRestrictions = concatStringsSep ", " (clientAccess ++ dnsBl);
|
||||||
|
|
||||||
mainCf =
|
mainCf =
|
||||||
''
|
''
|
||||||
compatibility_level = 2
|
compatibility_level = 2
|
||||||
@ -104,6 +116,9 @@ let
|
|||||||
+ optionalString haveVirtual ''
|
+ optionalString haveVirtual ''
|
||||||
virtual_alias_maps = hash:/etc/postfix/virtual
|
virtual_alias_maps = hash:/etc/postfix/virtual
|
||||||
''
|
''
|
||||||
|
+ optionalString (cfg.dnsBlacklists != []) ''
|
||||||
|
smtpd_client_restrictions = ${clientRestrictions}
|
||||||
|
''
|
||||||
+ cfg.extraConfig;
|
+ cfg.extraConfig;
|
||||||
|
|
||||||
masterCf = ''
|
masterCf = ''
|
||||||
@ -161,6 +176,7 @@ let
|
|||||||
|
|
||||||
aliasesFile = pkgs.writeText "postfix-aliases" aliases;
|
aliasesFile = pkgs.writeText "postfix-aliases" aliases;
|
||||||
virtualFile = pkgs.writeText "postfix-virtual" cfg.virtual;
|
virtualFile = pkgs.writeText "postfix-virtual" cfg.virtual;
|
||||||
|
checkClientAccessFile = pkgs.writeText "postfix-check-client-access" cfg.dnsBlacklistOverrides;
|
||||||
mainCfFile = pkgs.writeText "postfix-main.cf" mainCf;
|
mainCfFile = pkgs.writeText "postfix-main.cf" mainCf;
|
||||||
masterCfFile = pkgs.writeText "postfix-master.cf" masterCf;
|
masterCfFile = pkgs.writeText "postfix-master.cf" masterCf;
|
||||||
transportFile = pkgs.writeText "postfix-transport" cfg.transport;
|
transportFile = pkgs.writeText "postfix-transport" cfg.transport;
|
||||||
@ -366,6 +382,17 @@ in
|
|||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dnsBlacklists = mkOption {
|
||||||
|
default = [];
|
||||||
|
type = with types; listOf string;
|
||||||
|
description = "dns blacklist servers to use with smtpd_client_restrictions";
|
||||||
|
};
|
||||||
|
|
||||||
|
dnsBlacklistOverrides = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = "contents of check_client_access for overriding dnsBlacklists";
|
||||||
|
};
|
||||||
|
|
||||||
extraMasterConf = mkOption {
|
extraMasterConf = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
@ -461,7 +488,7 @@ in
|
|||||||
rm -rf /var/lib/postfix/conf
|
rm -rf /var/lib/postfix/conf
|
||||||
mkdir -p /var/lib/postfix/conf
|
mkdir -p /var/lib/postfix/conf
|
||||||
chmod 0755 /var/lib/postfix/conf
|
chmod 0755 /var/lib/postfix/conf
|
||||||
ln -sf ${pkgs.postfix}/etc/postfix/postfix-files
|
ln -sf ${pkgs.postfix}/etc/postfix/postfix-files /var/lib/postfix/conf/postfix-files
|
||||||
ln -sf ${mainCfFile} /var/lib/postfix/conf/main.cf
|
ln -sf ${mainCfFile} /var/lib/postfix/conf/main.cf
|
||||||
ln -sf ${masterCfFile} /var/lib/postfix/conf/master.cf
|
ln -sf ${masterCfFile} /var/lib/postfix/conf/master.cf
|
||||||
|
|
||||||
@ -494,6 +521,9 @@ in
|
|||||||
(mkIf haveVirtual {
|
(mkIf haveVirtual {
|
||||||
services.postfix.mapFiles."virtual" = virtualFile;
|
services.postfix.mapFiles."virtual" = virtualFile;
|
||||||
})
|
})
|
||||||
|
(mkIf (cfg.dnsBlacklists != []) {
|
||||||
|
services.postfix.mapFiles."client_access" = checkClientAccessFile;
|
||||||
|
})
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,11 @@ in {
|
|||||||
preStart = ''
|
preStart = ''
|
||||||
if [ ! -e "${cfg.secretsFile}" ]; then
|
if [ ! -e "${cfg.secretsFile}" ]; then
|
||||||
echo "WARNING: secrets file not found, autogenerating!"
|
echo "WARNING: secrets file not found, autogenerating!"
|
||||||
mkdir -p -m750 "$(dirname "${cfg.secretsFile}")"
|
DIR="$(dirname "${cfg.secretsFile}")"
|
||||||
|
if [ ! -d "$DIR" ]; then
|
||||||
|
mkdir -p -m750 "$DIR"
|
||||||
|
chown "${cfg.user}:${cfg.group}" "$DIR"
|
||||||
|
fi
|
||||||
dd if=/dev/random bs=18 count=1 | base64 > "${cfg.secretsFile}"
|
dd if=/dev/random bs=18 count=1 | base64 > "${cfg.secretsFile}"
|
||||||
chmod 600 "${cfg.secretsFile}"
|
chmod 600 "${cfg.secretsFile}"
|
||||||
fi
|
fi
|
||||||
|
70
nixos/modules/services/misc/cfdyndns.nix
Normal file
70
nixos/modules/services/misc/cfdyndns.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.cfdyndns;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.cfdyndns = {
|
||||||
|
enable = mkEnableOption "Cloudflare Dynamic DNS Client";
|
||||||
|
|
||||||
|
email = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The email address to use to authenticate to CloudFlare.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
apikey = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The API Key to use to authenticate to CloudFlare.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
records = mkOption {
|
||||||
|
default = [];
|
||||||
|
example = [ "host.tld" ];
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = ''
|
||||||
|
The records to update in CloudFlare.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.cfdyndns = {
|
||||||
|
description = "CloudFlare Dynamic DNS Client";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
startAt = "5 minutes";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = config.ids.uids.cfdyndns;
|
||||||
|
Group = config.ids.gids.cfdyndns;
|
||||||
|
ExecStart = "/bin/sh -c '${pkgs.cfdyndns}/bin/cfdyndns'";
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
CLOUDFLARE_EMAIL="${cfg.email}";
|
||||||
|
CLOUDFLARE_APIKEY="${cfg.apikey}";
|
||||||
|
CLOUDFLARE_RECORDS="${concatStringsSep "," cfg.records}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraUsers = {
|
||||||
|
cfdyndns = {
|
||||||
|
group = "cfdyndns";
|
||||||
|
uid = config.ids.uids.cfdyndns;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups = {
|
||||||
|
cfdyndns = {
|
||||||
|
gid = config.ids.gids.cfdyndns;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
253
nixos/modules/services/misc/gammu-smsd.nix
Normal file
253
nixos/modules/services/misc/gammu-smsd.nix
Normal file
@ -0,0 +1,253 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.services.gammu-smsd;
|
||||||
|
|
||||||
|
configFile = pkgs.writeText "gammu-smsd.conf" ''
|
||||||
|
[gammu]
|
||||||
|
Device = ${cfg.device.path}
|
||||||
|
Connection = ${cfg.device.connection}
|
||||||
|
SynchronizeTime = ${if cfg.device.synchronizeTime then "yes" else "no"}
|
||||||
|
LogFormat = ${cfg.log.format}
|
||||||
|
${if (cfg.device.pin != null) then "PIN = ${cfg.device.pin}" else ""}
|
||||||
|
${cfg.extraConfig.gammu}
|
||||||
|
|
||||||
|
|
||||||
|
[smsd]
|
||||||
|
LogFile = ${cfg.log.file}
|
||||||
|
Service = ${cfg.backend.service}
|
||||||
|
|
||||||
|
${optionalString (cfg.backend.service == "files") ''
|
||||||
|
InboxPath = ${cfg.backend.files.inboxPath}
|
||||||
|
OutboxPath = ${cfg.backend.files.outboxPath}
|
||||||
|
SentSMSPath = ${cfg.backend.files.sentSMSPath}
|
||||||
|
ErrorSMSPath = ${cfg.backend.files.errorSMSPath}
|
||||||
|
''}
|
||||||
|
|
||||||
|
${optionalString (cfg.backend.service == "sql" && cfg.backend.sql.driver == "sqlite") ''
|
||||||
|
Driver = ${cfg.backend.sql.driver}
|
||||||
|
DBDir = ${cfg.backend.sql.database}
|
||||||
|
''}
|
||||||
|
|
||||||
|
${optionalString (cfg.backend.service == "sql" && cfg.backend.sql.driver == "native_pgsql") (
|
||||||
|
with cfg.backend; ''
|
||||||
|
Driver = ${sql.driver}
|
||||||
|
${if (sql.database!= null) then "Database = ${sql.database}" else ""}
|
||||||
|
${if (sql.host != null) then "Host = ${sql.host}" else ""}
|
||||||
|
${if (sql.user != null) then "User = ${sql.user}" else ""}
|
||||||
|
${if (sql.password != null) then "Password = ${sql.password}" else ""}
|
||||||
|
'')}
|
||||||
|
|
||||||
|
${cfg.extraConfig.smsd}
|
||||||
|
'';
|
||||||
|
|
||||||
|
initDBDir = "share/doc/gammu/examples/sql";
|
||||||
|
|
||||||
|
gammuPackage = with cfg.backend; (pkgs.gammu.override {
|
||||||
|
dbiSupport = (service == "sql" && sql.driver == "sqlite");
|
||||||
|
postgresSupport = (service == "sql" && sql.driver == "native_pgsql");
|
||||||
|
});
|
||||||
|
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
services.gammu-smsd = {
|
||||||
|
|
||||||
|
enable = mkEnableOption "gammu-smsd daemon";
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "smsd";
|
||||||
|
description = "User that has access to the device";
|
||||||
|
};
|
||||||
|
|
||||||
|
device = {
|
||||||
|
path = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "Device node or address of the phone";
|
||||||
|
example = "/dev/ttyUSB2";
|
||||||
|
};
|
||||||
|
|
||||||
|
group = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "root";
|
||||||
|
description = "Owner group of the device";
|
||||||
|
example = "dialout";
|
||||||
|
};
|
||||||
|
|
||||||
|
connection = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "at";
|
||||||
|
description = "Protocol which will be used to talk to the phone";
|
||||||
|
};
|
||||||
|
|
||||||
|
synchronizeTime = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Whether to set time from computer to the phone during starting connection";
|
||||||
|
};
|
||||||
|
|
||||||
|
pin = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "PIN code for the simcard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
log = {
|
||||||
|
file = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "syslog";
|
||||||
|
description = "Path to file where information about communication will be stored";
|
||||||
|
};
|
||||||
|
|
||||||
|
format = mkOption {
|
||||||
|
type = types.enum [ "nothing" "text" "textall" "textalldate" "errors" "errorsdate" "binary" ];
|
||||||
|
default = "errors";
|
||||||
|
description = "Determines what will be logged to the LogFile";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
gammu = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = "Extra config lines to be added into [gammu] section";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
smsd = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = "Extra config lines to be added into [smsd] section";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
backend = {
|
||||||
|
service = mkOption {
|
||||||
|
type = types.enum [ "null" "files" "sql" ];
|
||||||
|
default = "null";
|
||||||
|
description = "Service to use to store sms data.";
|
||||||
|
};
|
||||||
|
|
||||||
|
files = {
|
||||||
|
inboxPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/var/spool/sms/inbox/";
|
||||||
|
description = "Where the received SMSes are stored";
|
||||||
|
};
|
||||||
|
|
||||||
|
outboxPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/var/spool/sms/outbox/";
|
||||||
|
description = "Where SMSes to be sent should be placed";
|
||||||
|
};
|
||||||
|
|
||||||
|
sentSMSPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/var/spool/sms/sent/";
|
||||||
|
description = "Where the transmitted SMSes are placed";
|
||||||
|
};
|
||||||
|
|
||||||
|
errorSMSPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/var/spool/sms/error/";
|
||||||
|
description = "Where SMSes with error in transmission is placed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sql = {
|
||||||
|
driver = mkOption {
|
||||||
|
type = types.enum [ "native_mysql" "native_pgsql" "odbc" "dbi" ];
|
||||||
|
description = "DB driver to use";
|
||||||
|
};
|
||||||
|
|
||||||
|
sqlDialect = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "SQL dialect to use (odbc driver only)";
|
||||||
|
};
|
||||||
|
|
||||||
|
database = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = null;
|
||||||
|
description = "Database name to store sms data";
|
||||||
|
};
|
||||||
|
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "localhost";
|
||||||
|
description = "Database server address";
|
||||||
|
};
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "User name used for connection to the database";
|
||||||
|
};
|
||||||
|
|
||||||
|
password = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "User password used for connetion to the database";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
users.extraUsers.${cfg.user} = {
|
||||||
|
description = "gammu-smsd user";
|
||||||
|
uid = config.ids.uids.gammu-smsd;
|
||||||
|
extraGroups = [ "${cfg.device.group}" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with cfg.backend; [ gammuPackage ]
|
||||||
|
++ optionals (service == "sql" && sql.driver == "sqlite") [ pkgs.sqlite ];
|
||||||
|
|
||||||
|
systemd.services.gammu-smsd = {
|
||||||
|
description = "gammu-smsd daemon";
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
wants = with cfg.backend; [ ]
|
||||||
|
++ optionals (service == "sql" && sql.driver == "native_pgsql") [ "postgresql.service" ];
|
||||||
|
|
||||||
|
preStart = with cfg.backend;
|
||||||
|
|
||||||
|
optionalString (service == "files") (with files; ''
|
||||||
|
mkdir -m 755 -p ${inboxPath} ${outboxPath} ${sentSMSPath} ${errorSMSPath}
|
||||||
|
chown ${cfg.user} -R ${inboxPath}
|
||||||
|
chown ${cfg.user} -R ${outboxPath}
|
||||||
|
chown ${cfg.user} -R ${sentSMSPath}
|
||||||
|
chown ${cfg.user} -R ${errorSMSPath}
|
||||||
|
'')
|
||||||
|
+ optionalString (service == "sql" && sql.driver == "sqlite") ''
|
||||||
|
cat "${gammuPackage}/${initDBDir}/sqlite.sql" \
|
||||||
|
| ${pkgs.sqlite}/bin/sqlite3 ${sql.database}
|
||||||
|
''
|
||||||
|
+ (let execPsql = extraArgs: concatStringsSep " " [
|
||||||
|
(optionalString (sql.password != null) "PGPASSWORD=${sql.password}")
|
||||||
|
"${config.services.postgresql.package}/bin/psql"
|
||||||
|
(optionalString (sql.host != null) "-h ${sql.host}")
|
||||||
|
(optionalString (sql.user != null) "-U ${sql.user}")
|
||||||
|
"$extraArgs"
|
||||||
|
"${sql.database}"
|
||||||
|
]; in optionalString (service == "sql" && sql.driver == "native_pgsql") ''
|
||||||
|
echo '\i '"${gammuPackage}/${initDBDir}/pgsql.sql" | ${execPsql ""}
|
||||||
|
'');
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
User = "${cfg.user}";
|
||||||
|
Group = "${cfg.device.group}";
|
||||||
|
PermissionsStartOnly = true;
|
||||||
|
ExecStart = "${gammuPackage}/bin/gammu-smsd -c ${configFile}";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -35,7 +35,6 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
haskellPackages = mkOption {
|
haskellPackages = mkOption {
|
||||||
type = types.attrsOf types.package;
|
|
||||||
default = pkgs.haskellPackages;
|
default = pkgs.haskellPackages;
|
||||||
defaultText = "pkgs.haskellPackages";
|
defaultText = "pkgs.haskellPackages";
|
||||||
example = literalExample "pkgs.haskell.packages.ghc784";
|
example = literalExample "pkgs.haskell.packages.ghc784";
|
||||||
|
@ -12,21 +12,69 @@ let
|
|||||||
|
|
||||||
toOneZero = b: if b then "1" else "0";
|
toOneZero = b: if b then "1" else "0";
|
||||||
|
|
||||||
|
mkEndpointOpt = name: addr: port: {
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = name;
|
||||||
|
description = "The endpoint name.";
|
||||||
|
};
|
||||||
|
address = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = addr;
|
||||||
|
description = "Bind address for ${name} endpoint. Default: " + addr;
|
||||||
|
};
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = port;
|
||||||
|
description = "Bind port for ${name} endoint. Default: " + toString port;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
commonTunOpts = let
|
||||||
|
i2cpOpts = {
|
||||||
|
length = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "Guaranteed minimum hops.";
|
||||||
|
default = 3;
|
||||||
|
};
|
||||||
|
quantity = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "Number of simultaneous tunnels.";
|
||||||
|
default = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in name: {
|
||||||
|
outbound = i2cpOpts;
|
||||||
|
inbound = i2cpOpts;
|
||||||
|
crypto.tagsToSend = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "Number of ElGamal/AES tags to send.";
|
||||||
|
default = 40;
|
||||||
|
};
|
||||||
|
destination = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Remote endpoint, I2P hostname or b32.i2p address.";
|
||||||
|
};
|
||||||
|
keys = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = name + "-keys.dat";
|
||||||
|
description = "Keyset used for tunnel identity.";
|
||||||
|
};
|
||||||
|
} // mkEndpointOpt name "127.0.0.1" 0;
|
||||||
|
|
||||||
i2pdConf = pkgs.writeText "i2pd.conf" ''
|
i2pdConf = pkgs.writeText "i2pd.conf" ''
|
||||||
v6 = ${toOneZero cfg.enableIPv6}
|
ipv6 = ${toOneZero cfg.enableIPv6}
|
||||||
unreachable = ${toOneZero cfg.unreachable}
|
notransit = ${toOneZero cfg.notransit}
|
||||||
floodfill = ${toOneZero cfg.floodfill}
|
floodfill = ${toOneZero cfg.floodfill}
|
||||||
${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
|
${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
|
||||||
httpproxyport = ${toString cfg.proxy.httpPort}
|
${flip concatMapStrings
|
||||||
socksproxyport = ${toString cfg.proxy.socksPort}
|
(collect (proto: proto ? port && proto ? address && proto ? name) cfg.proto)
|
||||||
ircaddress = ${cfg.irc.host}
|
(proto: let portStr = toString proto.port; in ''
|
||||||
ircport = ${toString cfg.irc.port}
|
[${proto.name}]
|
||||||
ircdest = ${cfg.irc.dest}
|
address = ${proto.address}
|
||||||
irckeys = ${cfg.irc.keyFile}
|
port = ${toString proto.port}
|
||||||
eepport = ${toString cfg.eep.port}
|
'')
|
||||||
${if isNull cfg.sam.port then "" else "--samport=${toString cfg.sam.port}"}
|
}
|
||||||
eephost = ${cfg.eep.host}
|
|
||||||
eepkeys = ${cfg.eep.keyFile}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" ''
|
i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" ''
|
||||||
@ -39,10 +87,15 @@ let
|
|||||||
keys = ${tun.keys}
|
keys = ${tun.keys}
|
||||||
address = ${tun.address}
|
address = ${tun.address}
|
||||||
port = ${toString tun.port}
|
port = ${toString tun.port}
|
||||||
|
inbound.length = ${toString tun.inbound.length}
|
||||||
|
outbound.length = ${toString tun.outbound.length}
|
||||||
|
inbound.quantity = ${toString tun.inbound.quantity}
|
||||||
|
outbound.quantity = ${toString tun.outbound.quantity}
|
||||||
|
crypto.tagsToSend = ${toString tun.crypto.tagsToSend}
|
||||||
'')
|
'')
|
||||||
}
|
}
|
||||||
${flip concatMapStrings
|
${flip concatMapStrings
|
||||||
(collect (tun: tun ? port && tun ? host) cfg.outTunnels)
|
(collect (tun: tun ? port && tun ? host) cfg.inTunnels)
|
||||||
(tun: let portStr = toString tun.port; in ''
|
(tun: let portStr = toString tun.port; in ''
|
||||||
[${tun.name}]
|
[${tun.name}]
|
||||||
type = server
|
type = server
|
||||||
@ -59,10 +112,10 @@ let
|
|||||||
i2pdSh = pkgs.writeScriptBin "i2pd" ''
|
i2pdSh = pkgs.writeScriptBin "i2pd" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
${if isNull cfg.extIp then extip else ""}
|
${if isNull cfg.extIp then extip else ""}
|
||||||
${pkgs.i2pd}/bin/i2pd --log=1 --daemon=0 --service=0 \
|
${pkgs.i2pd}/bin/i2pd --log=1 \
|
||||||
--host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
|
--host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
|
||||||
--conf=${i2pdConf} \
|
--conf=${i2pdConf} \
|
||||||
--tunnelscfg=${i2pdTunnelConf}
|
--tunconf=${i2pdTunnelConf}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
@ -91,11 +144,11 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
unreachable = mkOption {
|
notransit = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
If the router is declared to be unreachable and needs introduction nodes.
|
Tells the router to not accept transit tunnels during startup.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -111,7 +164,7 @@ in
|
|||||||
type = with types; nullOr int;
|
type = with types; nullOr int;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
I2P listen port. If no one is given the router will pick between 9111 and 30777.
|
I2P listen port. If no one is given the router will pick between 9111 and 30777.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -123,184 +176,53 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
http = {
|
proto.http = mkEndpointOpt "http" "127.0.0.1" 7070;
|
||||||
port = mkOption {
|
proto.sam = mkEndpointOpt "sam" "127.0.0.1" 7656;
|
||||||
type = types.int;
|
proto.bob = mkEndpointOpt "bob" "127.0.0.1" 2827;
|
||||||
default = 7070;
|
proto.i2pControl = mkEndpointOpt "i2pcontrol" "127.0.0.1" 7650;
|
||||||
description = ''
|
proto.httpProxy = mkEndpointOpt "httpproxy" "127.0.0.1" 4446;
|
||||||
HTTP listen port.
|
proto.socksProxy = mkEndpointOpt "socksproxy" "127.0.0.1" 4447;
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
proxy = {
|
|
||||||
httpPort = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 4446;
|
|
||||||
description = ''
|
|
||||||
HTTP proxy listen port.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
socksPort = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 4447;
|
|
||||||
description = ''
|
|
||||||
SOCKS proxy listen port.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
irc = {
|
|
||||||
host = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "127.0.0.1";
|
|
||||||
description = ''
|
|
||||||
Address to forward incoming traffic to. 127.0.0.1 by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
dest = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "irc.postman.i2p";
|
|
||||||
description = ''
|
|
||||||
Destination I2P tunnel endpoint address of IRC server. irc.postman.i2p by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 6668;
|
|
||||||
description = ''
|
|
||||||
Local IRC tunnel endoint port to listen on. 6668 by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
keyFile = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "privKeys.dat";
|
|
||||||
description = ''
|
|
||||||
File name containing destination keys. privKeys.dat by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
eep = {
|
|
||||||
host = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "127.0.0.1";
|
|
||||||
description = ''
|
|
||||||
Address to forward incoming traffic to. 127.0.0.1 by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 80;
|
|
||||||
description = ''
|
|
||||||
Port to forward incoming traffic to. 80 by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
keyFile = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "privKeys.dat";
|
|
||||||
description = ''
|
|
||||||
File name containing destination keys. privKeys.dat by default.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sam = {
|
|
||||||
port = mkOption {
|
|
||||||
type = with types; nullOr int;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Local SAM tunnel endpoint. Usually 7656. SAM is disabled if not specified.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
outTunnels = mkOption {
|
outTunnels = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = with types; loaOf optionSet;
|
type = with types; loaOf optionSet;
|
||||||
description = ''
|
description = ''
|
||||||
'';
|
Connect to someone as a client and establish a local accept endpoint
|
||||||
options = [ ({ name, config, ... }: {
|
'';
|
||||||
|
options = [ ({ name, config, ... }: {
|
||||||
options = {
|
options = commonTunOpts name;
|
||||||
name = mkOption {
|
config = {
|
||||||
type = types.str;
|
name = mkDefault name;
|
||||||
description = "The name of the tunnel.";
|
};
|
||||||
};
|
}) ];
|
||||||
destination = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
description = "Remote endpoint, I2P hostname or b32.i2p address.";
|
|
||||||
};
|
|
||||||
keys = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = name + "-keys.dat";
|
|
||||||
description = "Keyset used for tunnel identity.";
|
|
||||||
};
|
|
||||||
address = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "127.0.0.1";
|
|
||||||
description = "Local bind address for tunnel.";
|
|
||||||
};
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 0;
|
|
||||||
description = "Local tunnel listen port.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
name = mkDefault name;
|
|
||||||
};
|
|
||||||
|
|
||||||
}) ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inTunnels = mkOption {
|
inTunnels = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = with types; loaOf optionSet;
|
type = with types; loaOf optionSet;
|
||||||
description = ''
|
description = ''
|
||||||
'';
|
Serve something on I2P network at port and delegate requests to address inPort.
|
||||||
options = [ ({ name, config, ... }: {
|
'';
|
||||||
|
options = [ ({ name, config, ... }: {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
inPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
description = "Service port. Default to the tunnel's listen port.";
|
||||||
|
};
|
||||||
|
accessList = mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
default = [];
|
||||||
|
description = "I2P nodes that are allowed to connect to this service.";
|
||||||
|
};
|
||||||
|
} // commonTunOpts name;
|
||||||
|
|
||||||
name = mkOption {
|
config = {
|
||||||
type = types.str;
|
name = mkDefault name;
|
||||||
description = "The name of the tunnel.";
|
};
|
||||||
};
|
|
||||||
keys = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
default = name + "-keys.dat";
|
|
||||||
description = "Keyset used for tunnel identity.";
|
|
||||||
};
|
|
||||||
address = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "127.0.0.1";
|
|
||||||
description = "Local service IP address.";
|
|
||||||
};
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 0;
|
|
||||||
description = "Local tunnel listen port.";
|
|
||||||
};
|
|
||||||
inPort = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 0;
|
|
||||||
description = "I2P service port. Default to the tunnel's listen port.";
|
|
||||||
};
|
|
||||||
accessList = mkOption {
|
|
||||||
type = with types; listOf str;
|
|
||||||
default = [];
|
|
||||||
description = "I2P nodes that are allowed to connect to this service.";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
}) ];
|
||||||
|
|
||||||
config = {
|
|
||||||
name = mkDefault name;
|
|
||||||
};
|
|
||||||
|
|
||||||
}) ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
93
nixos/modules/services/networking/pdnsd.nix
Normal file
93
nixos/modules/services/networking/pdnsd.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.pdnsd;
|
||||||
|
pdnsd = pkgs.pdnsd;
|
||||||
|
pdnsdUser = "pdnsd";
|
||||||
|
pdnsdGroup = "pdnsd";
|
||||||
|
pdnsdConf = pkgs.writeText "pdnsd.conf"
|
||||||
|
''
|
||||||
|
global {
|
||||||
|
run_as=${pdnsdUser};
|
||||||
|
cache_dir="${cfg.cacheDir}";
|
||||||
|
${cfg.globalConfig}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
${cfg.serverConfig}
|
||||||
|
}
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
|
||||||
|
{ options =
|
||||||
|
{ services.pdnsd =
|
||||||
|
{ enable = mkEnableOption "pdnsd";
|
||||||
|
|
||||||
|
cacheDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/var/cache/pdnsd";
|
||||||
|
description = "Directory holding the pdnsd cache";
|
||||||
|
};
|
||||||
|
|
||||||
|
globalConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Global configuration that should be added to the global directory
|
||||||
|
of <literal>pdnsd.conf</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
serverConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Server configuration that should be added to the server directory
|
||||||
|
of <literal>pdnsd.conf</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Extra configuration directives that should be added to
|
||||||
|
<literal>pdnsd.conf</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
users.extraUsers = singleton {
|
||||||
|
name = pdnsdUser;
|
||||||
|
uid = config.ids.uids.pdnsd;
|
||||||
|
group = pdnsdGroup;
|
||||||
|
description = "pdnsd user";
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups = singleton {
|
||||||
|
name = pdnsdGroup;
|
||||||
|
gid = config.ids.gids.pdnsd;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.pdnsd =
|
||||||
|
{ wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
preStart =
|
||||||
|
''
|
||||||
|
mkdir -p "${cfg.cacheDir}"
|
||||||
|
touch "${cfg.cacheDir}/pdnsd.cache"
|
||||||
|
chown -R ${pdnsdUser}:${pdnsdGroup} "${cfg.cacheDir}"
|
||||||
|
'';
|
||||||
|
description = "pdnsd";
|
||||||
|
serviceConfig =
|
||||||
|
{
|
||||||
|
ExecStart = "${pdnsd}/bin/pdnsd -c ${pdnsdConf}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -95,6 +95,16 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
chroot = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
Change process root directory to the directory where the config file is located (/etc/tinc/netname/), for added security.
|
||||||
|
The chroot is performed after all the initialization is done, after writing pid files and opening network sockets.
|
||||||
|
|
||||||
|
Note that tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -166,7 +176,7 @@ in
|
|||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
script = ''
|
script = ''
|
||||||
tincd -D -U tinc.${network} -n ${network} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}
|
tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -16,6 +16,11 @@ let
|
|||||||
"forward-zone:\n name: .\n" +
|
"forward-zone:\n name: .\n" +
|
||||||
concatMapStrings (x: " forward-addr: ${x}\n") cfg.forwardAddresses;
|
concatMapStrings (x: " forward-addr: ${x}\n") cfg.forwardAddresses;
|
||||||
|
|
||||||
|
rootTrustAnchorFile = "${stateDir}/root.key";
|
||||||
|
|
||||||
|
trustAnchor = optionalString cfg.enableRootTrustAnchor
|
||||||
|
"auto-trust-anchor-file: ${rootTrustAnchorFile}";
|
||||||
|
|
||||||
confFile = pkgs.writeText "unbound.conf" ''
|
confFile = pkgs.writeText "unbound.conf" ''
|
||||||
server:
|
server:
|
||||||
directory: "${stateDir}"
|
directory: "${stateDir}"
|
||||||
@ -24,6 +29,7 @@ let
|
|||||||
pidfile: ""
|
pidfile: ""
|
||||||
${interfaces}
|
${interfaces}
|
||||||
${access}
|
${access}
|
||||||
|
${trustAnchor}
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
${forward}
|
${forward}
|
||||||
'';
|
'';
|
||||||
@ -38,28 +44,39 @@ in
|
|||||||
services.unbound = {
|
services.unbound = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
description = "Whether to enable the Unbound domain name server.";
|
type = types.bool;
|
||||||
|
description = "Whether to enable the Unbound domain name server.";
|
||||||
};
|
};
|
||||||
|
|
||||||
allowedAccess = mkOption {
|
allowedAccess = mkOption {
|
||||||
default = ["127.0.0.0/24"];
|
default = ["127.0.0.0/24"];
|
||||||
description = "What networks are allowed to use unbound as a resolver.";
|
type = types.listOf types.str;
|
||||||
|
description = "What networks are allowed to use unbound as a resolver.";
|
||||||
};
|
};
|
||||||
|
|
||||||
interfaces = mkOption {
|
interfaces = mkOption {
|
||||||
default = [ "127.0.0.1" "::1" ];
|
default = [ "127.0.0.1" "::1" ];
|
||||||
description = "What addresses the server should listen on.";
|
type = types.listOf types.str;
|
||||||
|
description = "What addresses the server should listen on.";
|
||||||
};
|
};
|
||||||
|
|
||||||
forwardAddresses = mkOption {
|
forwardAddresses = mkOption {
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = "What servers to forward queries to.";
|
type = types.listOf types.str;
|
||||||
|
description = "What servers to forward queries to.";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableRootTrustAnchor = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Use and update root trust anchor for DNSSEC validation.";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
description = "Extra lines of unbound config.";
|
type = types.str;
|
||||||
|
description = "Extra lines of unbound config.";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -88,9 +105,10 @@ in
|
|||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 0755 -p ${stateDir}/dev/
|
mkdir -m 0755 -p ${stateDir}/dev/
|
||||||
cp ${confFile} ${stateDir}/unbound.conf
|
cp ${confFile} ${stateDir}/unbound.conf
|
||||||
chown unbound ${stateDir}
|
${pkgs.unbound}/bin/unbound-anchor -a ${rootTrustAnchorFile}
|
||||||
touch ${stateDir}/dev/random
|
chown unbound ${stateDir} ${rootTrustAnchorFile}
|
||||||
|
touch ${stateDir}/dev/random
|
||||||
${pkgs.utillinux}/bin/mount --bind -n /dev/random ${stateDir}/dev/random
|
${pkgs.utillinux}/bin/mount --bind -n /dev/random ${stateDir}/dev/random
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -61,6 +61,8 @@ in
|
|||||||
partOf = systemdMountPoints;
|
partOf = systemdMountPoints;
|
||||||
bindsTo = systemdMountPoints;
|
bindsTo = systemdMountPoints;
|
||||||
unitConfig.RequiresMountsFor = stateDir;
|
unitConfig.RequiresMountsFor = stateDir;
|
||||||
|
# This a HACK to fix missing dependencies of dynamic libs extracted from jars
|
||||||
|
environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc}/lib";
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
# Ensure privacy of state
|
# Ensure privacy of state
|
||||||
|
@ -8,11 +8,15 @@ let
|
|||||||
${optionalString cfg.userControlled.enable ''
|
${optionalString cfg.userControlled.enable ''
|
||||||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=${cfg.userControlled.group}
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=${cfg.userControlled.group}
|
||||||
update_config=1''}
|
update_config=1''}
|
||||||
${concatStringsSep "\n" (mapAttrsToList (ssid: networkConfig: ''
|
${concatStringsSep "\n" (mapAttrsToList (ssid: networkConfig: let
|
||||||
|
psk = if networkConfig.psk != null
|
||||||
|
then ''"${networkConfig.psk}"''
|
||||||
|
else networkConfig.pskRaw;
|
||||||
|
in ''
|
||||||
network={
|
network={
|
||||||
ssid="${ssid}"
|
ssid="${ssid}"
|
||||||
${optionalString (networkConfig.psk != null) ''psk="${networkConfig.psk}"''}
|
${optionalString (psk != null) ''psk=${psk}''}
|
||||||
${optionalString (networkConfig.psk == null) ''key_mgmt=NONE''}
|
${optionalString (psk == null) ''key_mgmt=NONE''}
|
||||||
}
|
}
|
||||||
'') cfg.networks)}
|
'') cfg.networks)}
|
||||||
'' else "/etc/wpa_supplicant.conf";
|
'' else "/etc/wpa_supplicant.conf";
|
||||||
@ -49,6 +53,19 @@ in {
|
|||||||
|
|
||||||
Be aware that these will be written to the nix store
|
Be aware that these will be written to the nix store
|
||||||
in plaintext!
|
in plaintext!
|
||||||
|
|
||||||
|
Mutually exclusive with <varname>pskRaw</varname>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
pskRaw = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
The network's pre-shared key in hex defaulting
|
||||||
|
to being a network without any authentication.
|
||||||
|
|
||||||
|
Mutually exclusive with <varname>psk</varname>.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -95,6 +112,11 @@ in {
|
|||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf cfg.enable {
|
(mkIf cfg.enable {
|
||||||
|
assertions = flip mapAttrsToList cfg.networks (name: cfg: {
|
||||||
|
assertion = cfg.psk == null || cfg.pskRaw == null;
|
||||||
|
message = ''networking.wireless."${name}".psk and networking.wireless."${name}".pskRaw are mutually exclusive'';
|
||||||
|
});
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.wpa_supplicant ];
|
environment.systemPackages = [ pkgs.wpa_supplicant ];
|
||||||
|
|
||||||
services.dbus.packages = [ pkgs.wpa_supplicant ];
|
services.dbus.packages = [ pkgs.wpa_supplicant ];
|
||||||
|
@ -9,6 +9,8 @@ let
|
|||||||
network.host: ${cfg.listenAddress}
|
network.host: ${cfg.listenAddress}
|
||||||
network.port: ${toString cfg.port}
|
network.port: ${toString cfg.port}
|
||||||
network.tcp.port: ${toString cfg.tcp_port}
|
network.tcp.port: ${toString cfg.tcp_port}
|
||||||
|
# TODO: find a way to enable security manager
|
||||||
|
security.manager.enabled: false
|
||||||
cluster.name: ${cfg.cluster_name}
|
cluster.name: ${cfg.cluster_name}
|
||||||
${cfg.extraConf}
|
${cfg.extraConf}
|
||||||
'';
|
'';
|
||||||
@ -39,8 +41,8 @@ in {
|
|||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
description = "Elasticsearch package to use.";
|
description = "Elasticsearch package to use.";
|
||||||
default = pkgs.elasticsearch;
|
default = pkgs.elasticsearch2;
|
||||||
defaultText = "pkgs.elasticsearch";
|
defaultText = "pkgs.elasticsearch2";
|
||||||
type = types.package;
|
type = types.package;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -129,7 +131,9 @@ in {
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
path = [ pkgs.inetutils ];
|
path = [ pkgs.inetutils ];
|
||||||
environment = { ES_HOME = cfg.dataDir; };
|
environment = {
|
||||||
|
ES_HOME = cfg.dataDir;
|
||||||
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${cfg.package}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
ExecStart = "${cfg.package}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
||||||
User = "elasticsearch";
|
User = "elasticsearch";
|
||||||
@ -137,10 +141,11 @@ in {
|
|||||||
};
|
};
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 0700 -p ${cfg.dataDir}
|
mkdir -m 0700 -p ${cfg.dataDir}
|
||||||
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
|
||||||
|
|
||||||
# Install plugins
|
# Install plugins
|
||||||
ln -sfT ${esPlugins}/plugins ${cfg.dataDir}/plugins
|
ln -sfT ${esPlugins}/plugins ${cfg.dataDir}/plugins
|
||||||
|
ln -sfT ${cfg.package}/lib ${cfg.dataDir}/lib
|
||||||
|
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
||||||
'';
|
'';
|
||||||
postStart = mkBefore ''
|
postStart = mkBefore ''
|
||||||
until ${pkgs.curl}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do
|
until ${pkgs.curl}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do
|
||||||
|
@ -7,37 +7,33 @@ let
|
|||||||
|
|
||||||
cfgFile = pkgs.writeText "kibana.json" (builtins.toJSON (
|
cfgFile = pkgs.writeText "kibana.json" (builtins.toJSON (
|
||||||
(filterAttrsRecursive (n: v: v != null) ({
|
(filterAttrsRecursive (n: v: v != null) ({
|
||||||
server = {
|
host = cfg.listenAddress;
|
||||||
host = cfg.listenAddress;
|
port = cfg.port;
|
||||||
port = cfg.port;
|
ssl_cert_file = cfg.cert;
|
||||||
ssl = {
|
ssl_key_file = cfg.key;
|
||||||
cert = cfg.cert;
|
|
||||||
key = cfg.key;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kibana = {
|
kibana_index = cfg.index;
|
||||||
index = cfg.index;
|
default_app_id = cfg.defaultAppId;
|
||||||
defaultAppId = cfg.defaultAppId;
|
|
||||||
};
|
|
||||||
|
|
||||||
elasticsearch = {
|
elasticsearch_url = cfg.elasticsearch.url;
|
||||||
url = cfg.elasticsearch.url;
|
kibana_elasticsearch_username = cfg.elasticsearch.username;
|
||||||
username = cfg.elasticsearch.username;
|
kibana_elasticsearch_password = cfg.elasticsearch.password;
|
||||||
password = cfg.elasticsearch.password;
|
kibana_elasticsearch_cert = cfg.elasticsearch.cert;
|
||||||
ssl = {
|
kibana_elasticsearch_key = cfg.elasticsearch.key;
|
||||||
cert = cfg.elasticsearch.cert;
|
ca = cfg.elasticsearch.ca;
|
||||||
key = cfg.elasticsearch.key;
|
|
||||||
ca = cfg.elasticsearch.ca;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
logging = {
|
bundled_plugin_ids = [
|
||||||
verbose = cfg.logLevel == "verbose";
|
"plugins/dashboard/index"
|
||||||
quiet = cfg.logLevel == "quiet";
|
"plugins/discover/index"
|
||||||
silent = cfg.logLevel == "silent";
|
"plugins/doc/index"
|
||||||
dest = "stdout";
|
"plugins/kibana/index"
|
||||||
};
|
"plugins/markdown_vis/index"
|
||||||
|
"plugins/metric_vis/index"
|
||||||
|
"plugins/settings/index"
|
||||||
|
"plugins/table_vis/index"
|
||||||
|
"plugins/vis_types/index"
|
||||||
|
"plugins/visualize/index"
|
||||||
|
];
|
||||||
} // cfg.extraConf)
|
} // cfg.extraConf)
|
||||||
)));
|
)));
|
||||||
in {
|
in {
|
||||||
@ -118,12 +114,6 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
logLevel = mkOption {
|
|
||||||
description = "Kibana log level";
|
|
||||||
default = "normal";
|
|
||||||
type = types.enum ["verbose" "normal" "silent" "quiet"];
|
|
||||||
};
|
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
description = "Kibana package to use";
|
description = "Kibana package to use";
|
||||||
default = pkgs.kibana;
|
default = pkgs.kibana;
|
||||||
@ -149,6 +139,7 @@ in {
|
|||||||
description = "Kibana Service";
|
description = "Kibana Service";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" "elasticsearch.service" ];
|
after = [ "network-interfaces.target" "elasticsearch.service" ];
|
||||||
|
environment = { BABEL_CACHE_PATH = "${cfg.dataDir}/.babelcache.json"; };
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${cfg.package}/bin/kibana --config ${cfgFile}";
|
ExecStart = "${cfg.package}/bin/kibana --config ${cfgFile}";
|
||||||
User = "kibana";
|
User = "kibana";
|
||||||
|
@ -83,11 +83,11 @@ let
|
|||||||
|
|
||||||
# Unpack Mediawiki and put the config file in its root directory.
|
# Unpack Mediawiki and put the config file in its root directory.
|
||||||
mediawikiRoot = pkgs.stdenv.mkDerivation rec {
|
mediawikiRoot = pkgs.stdenv.mkDerivation rec {
|
||||||
name= "mediawiki-1.23.9";
|
name= "mediawiki-1.23.13";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
url = "http://download.wikimedia.org/mediawiki/1.23/${name}.tar.gz";
|
url = "http://download.wikimedia.org/mediawiki/1.23/${name}.tar.gz";
|
||||||
sha256 = "1l7k4g0pgz92yvrfr52w26x740s4362v0gc95pk0i30vn2sp5bql";
|
sha256 = "168wpf53n4ksj2g5q5r0hxapx6238dvsfng5ff9ixk6axsn0j5d0";
|
||||||
};
|
};
|
||||||
|
|
||||||
skins = config.skins;
|
skins = config.skins;
|
||||||
|
@ -62,6 +62,13 @@ in {
|
|||||||
description = "Cursor speed factor for highest-speed finger motion.";
|
description = "Cursor speed factor for highest-speed finger motion.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
scrollDelta = mkOption {
|
||||||
|
type = types.nullOr types.int;
|
||||||
|
default = null;
|
||||||
|
example = 75;
|
||||||
|
description = "Move distance of the finger for a scroll event.";
|
||||||
|
};
|
||||||
|
|
||||||
twoFingerScroll = mkOption {
|
twoFingerScroll = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
@ -122,6 +129,20 @@ in {
|
|||||||
description = "Whether to enable palm detection (hardware support required)";
|
description = "Whether to enable palm detection (hardware support required)";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
palmMinWidth = mkOption {
|
||||||
|
type = types.nullOr types.int;
|
||||||
|
default = null;
|
||||||
|
example = 5;
|
||||||
|
description = "Minimum finger width at which touch is considered a palm";
|
||||||
|
};
|
||||||
|
|
||||||
|
palmMinZ = mkOption {
|
||||||
|
type = types.nullOr types.int;
|
||||||
|
default = null;
|
||||||
|
example = 20;
|
||||||
|
description = "Minimum finger pressure at which touch is considered a palm";
|
||||||
|
};
|
||||||
|
|
||||||
horizontalScroll = mkOption {
|
horizontalScroll = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
@ -174,8 +195,12 @@ in {
|
|||||||
Option "HorizTwoFingerScroll" "${if cfg.horizTwoFingerScroll then "1" else "0"}"
|
Option "HorizTwoFingerScroll" "${if cfg.horizTwoFingerScroll then "1" else "0"}"
|
||||||
Option "VertEdgeScroll" "${if cfg.vertEdgeScroll then "1" else "0"}"
|
Option "VertEdgeScroll" "${if cfg.vertEdgeScroll then "1" else "0"}"
|
||||||
Option "HorizEdgeScroll" "${if cfg.horizEdgeScroll then "1" else "0"}"
|
Option "HorizEdgeScroll" "${if cfg.horizEdgeScroll then "1" else "0"}"
|
||||||
${if cfg.palmDetect then ''Option "PalmDetect" "1"'' else ""}
|
${optionalString cfg.palmDetect ''Option "PalmDetect" "1"''}
|
||||||
${if cfg.horizontalScroll then "" else ''Option "HorizScrollDelta" "0"''}
|
${optionalString (cfg.palmMinWidth != null) ''Option "PalmMinWidth" "${toString cfg.palmMinWidth}"''}
|
||||||
|
${optionalString (cfg.palmMinZ != null) ''Option "PalmMinZ" "${toString cfg.palmMinZ}"''}
|
||||||
|
${optionalString (cfg.scrollDelta != null) ''Option "VertScrollDelta" "${toString cfg.scrollDelta}"''}
|
||||||
|
${if !cfg.horizontalScroll then ''Option "HorizScrollDelta" "0"''
|
||||||
|
else (optionalString (cfg.scrollDelta != null) ''Option "HorizScrollDelta" "${toString cfg.scrollDelta}"'')}
|
||||||
${cfg.additionalOptions}
|
${cfg.additionalOptions}
|
||||||
EndSection
|
EndSection
|
||||||
'';
|
'';
|
||||||
|
@ -34,6 +34,6 @@ in
|
|||||||
'';
|
'';
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [ i3 i3status dmenu ];
|
environment.systemPackages = with pkgs; [ i3 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -184,6 +184,9 @@ in
|
|||||||
"ide_disk"
|
"ide_disk"
|
||||||
"ide_generic"
|
"ide_generic"
|
||||||
|
|
||||||
|
# SD cards and internal eMMC drives.
|
||||||
|
"mmc_block"
|
||||||
|
|
||||||
# Support USB keyboards, in case the boot fails and we only have
|
# Support USB keyboards, in case the boot fails and we only have
|
||||||
# a USB keyboard.
|
# a USB keyboard.
|
||||||
"uhci_hcd"
|
"uhci_hcd"
|
||||||
|
@ -80,8 +80,13 @@ for generation in $(
|
|||||||
| sort -n -r); do
|
| sort -n -r); do
|
||||||
link=/nix/var/nix/profiles/system-$generation-link
|
link=/nix/var/nix/profiles/system-$generation-link
|
||||||
date=$(stat --printf="%y\n" $link | sed 's/\..*//')
|
date=$(stat --printf="%y\n" $link | sed 's/\..*//')
|
||||||
kernelVersion=$(cd $(dirname $(readlink -f $link/kernel))/lib/modules && echo *)
|
if [ -d $link/kernel ]; then
|
||||||
addEntry "NixOS - Configuration $generation ($date - $kernelVersion)" $link "$generation ($date)"
|
kernelVersion=$(cd $(dirname $(readlink -f $link/kernel))/lib/modules && echo *)
|
||||||
|
suffix="($date - $kernelVersion)"
|
||||||
|
else
|
||||||
|
suffix="($date)"
|
||||||
|
fi
|
||||||
|
addEntry "NixOS - Configuration $generation $suffix" $link "$generation ($date)"
|
||||||
done
|
done
|
||||||
|
|
||||||
mv $tmpOther $targetOther
|
mv $tmpOther $targetOther
|
||||||
|
@ -12,6 +12,8 @@ let
|
|||||||
FONT=${config.i18n.consoleFont}
|
FONT=${config.i18n.consoleFont}
|
||||||
${colors}
|
${colors}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
setVconsole = !config.boot.isContainer;
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -41,26 +43,33 @@ in
|
|||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = {
|
config = mkMerge [
|
||||||
|
(mkIf (!setVconsole) {
|
||||||
|
systemd.services."systemd-vconsole-setup".enable = false;
|
||||||
|
})
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.kbd ];
|
(mkIf setVconsole {
|
||||||
|
environment.systemPackages = [ pkgs.kbd ];
|
||||||
|
|
||||||
# Let systemd-vconsole-setup.service do the work of setting up the
|
# Let systemd-vconsole-setup.service do the work of setting up the
|
||||||
# virtual consoles. FIXME: trigger a restart of
|
# virtual consoles. FIXME: trigger a restart of
|
||||||
# systemd-vconsole-setup.service if /etc/vconsole.conf changes.
|
# systemd-vconsole-setup.service if /etc/vconsole.conf changes.
|
||||||
environment.etc."vconsole.conf".source = vconsoleConf;
|
environment.etc = [ {
|
||||||
|
target = "vconsole.conf";
|
||||||
|
source = vconsoleConf;
|
||||||
|
} ];
|
||||||
|
|
||||||
# This is identical to the systemd-vconsole-setup.service unit
|
# This is identical to the systemd-vconsole-setup.service unit
|
||||||
# shipped with systemd, except that it uses /dev/tty1 instead of
|
# shipped with systemd, except that it uses /dev/tty1 instead of
|
||||||
# /dev/tty0 to prevent putting the X server in non-raw mode, and
|
# /dev/tty0 to prevent putting the X server in non-raw mode, and
|
||||||
# it has a restart trigger.
|
# it has a restart trigger.
|
||||||
systemd.services."systemd-vconsole-setup" =
|
systemd.services."systemd-vconsole-setup" =
|
||||||
{ wantedBy = [ "multi-user.target" ];
|
{ wantedBy = [ "multi-user.target" ];
|
||||||
before = [ "display-manager.service" ];
|
before = [ "display-manager.service" ];
|
||||||
after = [ "systemd-udev-settle.service" ];
|
after = [ "systemd-udev-settle.service" ];
|
||||||
restartTriggers = [ vconsoleConf ];
|
restartTriggers = [ vconsoleConf ];
|
||||||
};
|
};
|
||||||
|
})
|
||||||
};
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -144,15 +144,12 @@ in
|
|||||||
fi
|
fi
|
||||||
${config.systemd.package}/bin/systemctl start ip-up.target
|
${config.systemd.package}/bin/systemctl start ip-up.target
|
||||||
'';
|
'';
|
||||||
preStop =
|
preStop = flip concatMapStrings (ips) (ip:
|
||||||
''
|
|
||||||
echo "releasing configured ip's..."
|
|
||||||
'' + flip concatMapStrings (ips) (ip:
|
|
||||||
let
|
let
|
||||||
address = "${ip.address}/${toString ip.prefixLength}";
|
address = "${ip.address}/${toString ip.prefixLength}";
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
echo -n "Deleting ${address}..."
|
echo -n "deleting ${address}..."
|
||||||
ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
|
ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
|
||||||
echo ""
|
echo ""
|
||||||
'');
|
'');
|
||||||
|
@ -8,10 +8,11 @@ let
|
|||||||
|
|
||||||
waagent = with pkgs; stdenv.mkDerivation rec {
|
waagent = with pkgs; stdenv.mkDerivation rec {
|
||||||
name = "waagent-2.0";
|
name = "waagent-2.0";
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = https://github.com/Phreedom/WALinuxAgent.git;
|
owner = "phreedom";
|
||||||
rev = "9dba81c7b1239c7971ec96e405e403c7cd224e6b";
|
repo = "WALinuxAgent";
|
||||||
sha256 = "0khxk3ns3z37v26f2qj6m3m698a0vqpc9bxg5p7fyr3xza5gzwhs";
|
rev = "1d31fe8cbc7f842993eed9b33a3d3f5410c364e3";
|
||||||
|
sha256 = "1s53pfmy3azp0rmympmnphyq96sr9jy07pbsfza6mdzpalx1ripl";
|
||||||
};
|
};
|
||||||
buildInputs = [ makeWrapper python pythonPackages.wrapPython ];
|
buildInputs = [ makeWrapper python pythonPackages.wrapPython ];
|
||||||
runtimeDeps = [ findutils gnugrep gawk coreutils openssl openssh
|
runtimeDeps = [ findutils gnugrep gawk coreutils openssl openssh
|
||||||
|
@ -110,6 +110,7 @@ let
|
|||||||
|
|
||||||
# Generate a hard disk image containing a /boot partition and GRUB
|
# Generate a hard disk image containing a /boot partition and GRUB
|
||||||
# in the MBR. Used when the `useBootLoader' option is set.
|
# in the MBR. Used when the `useBootLoader' option is set.
|
||||||
|
# FIXME: use nixos/lib/make-disk-image.nix.
|
||||||
bootDisk =
|
bootDisk =
|
||||||
pkgs.vmTools.runInLinuxVM (
|
pkgs.vmTools.runInLinuxVM (
|
||||||
pkgs.runCommand "nixos-boot-disk"
|
pkgs.runCommand "nixos-boot-disk"
|
||||||
|
@ -4,7 +4,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
maintainers = [ eelco ];
|
maintainers = [ eelco ];
|
||||||
};
|
};
|
||||||
|
|
||||||
machine = { config, pkgs, ... }: { };
|
machine = { config, pkgs, ... }: {
|
||||||
|
imports = [ ../modules/profiles/minimal.nix ];
|
||||||
|
};
|
||||||
|
|
||||||
testScript =
|
testScript =
|
||||||
''
|
''
|
||||||
|
28
pkgs/applications/audio/aeolus/default.nix
Normal file
28
pkgs/applications/audio/aeolus/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{ stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsaLib, libjack2
|
||||||
|
, libclxclient, libX11, libXft, readline}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "aeolus-${version}";
|
||||||
|
version = "0.9.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
|
||||||
|
sha256 = "0dkkibza25a6z9446njqlaynx8gfk5wb828pl9v1snmi5390iggp";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ libclthreads zita-alsa-pcmi alsaLib libjack2 libclxclient
|
||||||
|
libX11 libXft readline ];
|
||||||
|
|
||||||
|
patchPhase = ''sed "s@ldconfig.*@@" -i source/Makefile'';
|
||||||
|
|
||||||
|
preBuild = "cd source";
|
||||||
|
|
||||||
|
makeFlags = "DESTDIR= PREFIX=$(out)";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Synthetized (not sampled) pipe organ emulator";
|
||||||
|
homepage = http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html;
|
||||||
|
license = stdenv.lib.licenses.lgpl3;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
||||||
|
};
|
||||||
|
}
|
@ -5,11 +5,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "easytag-${version}";
|
name = "easytag-${version}";
|
||||||
version = "2.3.2";
|
majorVersion = "2.4";
|
||||||
|
version = "${majorVersion}.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/easytag/2.3/${name}.tar.xz";
|
url = "mirror://gnome/sources/easytag/${majorVersion}/${name}.tar.xz";
|
||||||
sha256 = "0bj3sj4yzlnhan38j84acs7qv27fl3xy4rdrfq6dnpz4q6qccm84";
|
sha256 = "1mbpwp3lh6yz5xkaq3a329x4r3chmjsr83r349crhi1gax3mzvxr";
|
||||||
};
|
};
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
|
@ -1,50 +1,43 @@
|
|||||||
{ pkgs, stdenv, fetchurl, python, buildPythonPackage, pythonPackages, mygpoclient, intltool,
|
{ stdenv, fetchurl, buildPythonPackage, pythonPackages, mygpoclient, intltool
|
||||||
ipodSupport ? true, libgpod, gnome3 }:
|
, ipodSupport ? true, libgpod
|
||||||
|
, gnome3
|
||||||
|
}:
|
||||||
|
|
||||||
with pkgs.lib;
|
buildPythonPackage rec {
|
||||||
|
name = "gpodder-${version}";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
let
|
version = "3.9.0";
|
||||||
inherit (pythonPackages) coverage feedparser minimock sqlite3 dbus pygtk eyeD3;
|
|
||||||
|
|
||||||
in buildPythonPackage rec {
|
|
||||||
name = "gpodder-3.8.4";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://gpodder.org/src/${name}.tar.gz";
|
url = "http://gpodder.org/src/${name}.tar.gz";
|
||||||
sha256 = "0cjpk92qjsws7ddbnq0r2h7vm5019zlpafgbxwsgllmjzkknj6pn";
|
sha256 = "1ik954idi0ldnw0wrv7mm71smyb6x66332jxcaf1dxsl12ccm44l";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
postPatch = with stdenv.lib; ''
|
||||||
|
sed -i -re 's,^( *gpodder_dir *= *).*,\1"'"$out"'",' bin/gpodder
|
||||||
|
|
||||||
|
makeWrapperArgs="--suffix XDG_DATA_DIRS : '${concatStringsSep ":" [
|
||||||
|
"${gnome3.gnome_themes_standard}/share"
|
||||||
|
"$XDG_ICON_DIRS"
|
||||||
|
"$GSETTINGS_SCHEMAS_PATH"
|
||||||
|
]}'"
|
||||||
|
'';
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
coverage minimock sqlite3 mygpoclient intltool
|
intltool pythonPackages.coverage pythonPackages.minimock
|
||||||
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
||||||
gnome3.gsettings_desktop_schemas
|
gnome3.gsettings_desktop_schemas
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
feedparser dbus mygpoclient sqlite3 pygtk eyeD3
|
||||||
|
] ++ stdenv.lib.optional ipodSupport libgpod;
|
||||||
|
|
||||||
pythonPath = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ]
|
checkPhase = ''
|
||||||
++ stdenv.lib.optional ipodSupport libgpod;
|
LC_ALL=C python -m gpodder.unittests
|
||||||
|
|
||||||
postPatch = "sed -ie 's/PYTHONPATH=src/PYTHONPATH=\$(PYTHONPATH):src/' makefile";
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
wrapProgram $out/bin/gpodder \
|
|
||||||
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# The `wrapPythonPrograms` script in the postFixup phase breaks gpodder. The
|
|
||||||
# easiest way to fix this is to call wrapPythonPrograms and then to clean up
|
|
||||||
# the wrapped file.
|
|
||||||
postFixup = ''
|
|
||||||
wrapPythonPrograms
|
|
||||||
|
|
||||||
sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
|
|
||||||
/import sys; sys.argv/d
|
|
||||||
}'
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = "DESTDIR=/ PREFIX=$out make install";
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A podcatcher written in python";
|
description = "A podcatcher written in python";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
29
pkgs/applications/audio/iannix/default.nix
Normal file
29
pkgs/applications/audio/iannix/default.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qt5
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "iannix-${version}";
|
||||||
|
version = "2016-01-31";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "iannix";
|
||||||
|
repo = "IanniX";
|
||||||
|
rev = "f84becdcbe154b20a53aa2622068cb8f6fda0755";
|
||||||
|
sha256 = "184ydb9f1303v332k5k3f1ki7cb6nkxhh6ij0yn72v7dp7figrgj";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ alsaLib pkgconfig qt5.qtbase qt5.qtscript ];
|
||||||
|
|
||||||
|
configurePhase = ''qmake PREFIX=/'';
|
||||||
|
|
||||||
|
installFlags = [ "INSTALL_ROOT=$(out)" ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Graphical open-source sequencer,";
|
||||||
|
homepage = http://www.iannix.org/;
|
||||||
|
license = stdenv.lib.licenses.lgpl3;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
||||||
|
};
|
||||||
|
}
|
29
pkgs/applications/audio/jamin/default.nix
Normal file
29
pkgs/applications/audio/jamin/default.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ stdenv, fetchurl, fftwFloat, gtk2, ladspaPlugins, libjack2, liblo, libxml2
|
||||||
|
, makeWrapper, pkgconfig, perl, perlXMLParser
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "jamin-0.95.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = mirror://sourceforge/jamin/jamin-0.95.0.tar.gz;
|
||||||
|
sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 pkgconfig perl
|
||||||
|
perlXMLParser makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/jamin --set LADSPA_PATH ${ladspaPlugins}/lib/ladspa
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://jamin.sourceforge.net;
|
||||||
|
description = "JACK Audio Mastering interface";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
maintainers = [ maintainers.nico202 ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -4,12 +4,12 @@ ladspaH, liblrdf, liblo, libsigcxx
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "non-${version}";
|
name = "non-${version}";
|
||||||
version = "2015-12-16";
|
version = "2016-02-07";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "original-male";
|
owner = "original-male";
|
||||||
repo = "non";
|
repo = "non";
|
||||||
rev = "5d274f430c867f73ed1dcb306b49be0371d28128";
|
rev = "1ef382fbbea598fdb56b25244a703c64ecaf8446";
|
||||||
sha256 = "1yckac3r1hqn5p450j4lf4349v4knjj7n9s5p3wdcvxhs0pjv2sy";
|
sha256 = "1mi3nm0nrrqlk36920irvqf5080lbnj1qc8vnxspgwkjjqgdc22g";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
|
buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
|
||||||
|
30
pkgs/applications/audio/patchage/default.nix
Normal file
30
pkgs/applications/audio/patchage/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, alsaLib, boost, dbus_glib, fetchsvn, ganv, glibmm, gtk2
|
||||||
|
, gtkmm, libjack2, pkgconfig, python2
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "patchage-${version}";
|
||||||
|
version = "1.0.1";
|
||||||
|
src = fetchsvn {
|
||||||
|
url = http://svn.drobilla.net/lad/trunk/patchage/;
|
||||||
|
rev = "5821";
|
||||||
|
sha256 = "1ar64l0sg468qzxj7i6ppgfqjpm92awcp5lzskamrf3ln17lrgj7";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
alsaLib boost dbus_glib ganv glibmm gtk2 gtkmm libjack2
|
||||||
|
pkgconfig python2
|
||||||
|
];
|
||||||
|
|
||||||
|
configurePhase = "python waf configure --prefix=$out";
|
||||||
|
buildPhase = "python waf build";
|
||||||
|
installPhase = "python waf install";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Modular patch bay for Jack and ALSA systems";
|
||||||
|
homepage = http://non.tuxfamily.org;
|
||||||
|
license = stdenv.lib.licenses.lgpl3;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
||||||
|
};
|
||||||
|
}
|
36
pkgs/applications/audio/qtscrobbler/default.nix
Normal file
36
pkgs/applications/audio/qtscrobbler/default.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkgconfig, which, qt4 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "qtscrobbler-${version}";
|
||||||
|
version = "0.11";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/qtscrob/qtscrob/${version}/qtscrob-${version}.tar.bz2";
|
||||||
|
sha256 = "01c8e48f616ed09504833d27d92fd62f455bd645ea2d1cc2a5f4c287d641daba";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = lib.optionals withMtp [ pkgconfig which ];
|
||||||
|
buildInputs = [ qt4 ] ++ lib.optional withMtp libmtp;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
cd src
|
||||||
|
sed -i "s,/usr/local,$out," common.pri
|
||||||
|
'';
|
||||||
|
|
||||||
|
configurePhase = "qmake";
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Qt based last.fm scrobbler";
|
||||||
|
longDescription = ''
|
||||||
|
QTScrobbler is a tool to upload information about the tracks you have played from your Digital Audio Player (DAP) to your last.fm account.
|
||||||
|
It is able to gather this information from Apple iPods or DAPs running the Rockbox replacement firmware.
|
||||||
|
'';
|
||||||
|
|
||||||
|
homepage = http://qtscrob.sourceforge.net;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
maintainers = [ maintainers.vanzef ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
73
pkgs/applications/audio/sonata/default.nix
Normal file
73
pkgs/applications/audio/sonata/default.nix
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
{ pkgs, stdenv, fetchFromGitHub, pkgconfig, intltool, wrapGAppsHook,
|
||||||
|
python, buildPythonPackage, isPy3k,
|
||||||
|
gnome3, gtk3, gobjectIntrospection,
|
||||||
|
dbus, pygobject3, mpd2 }:
|
||||||
|
|
||||||
|
with pkgs.lib;
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
name = "sonata-${version}";
|
||||||
|
version = "1.7b1";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "multani";
|
||||||
|
repo = "sonata";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh";
|
||||||
|
};
|
||||||
|
|
||||||
|
disabled = !isPy3k;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgconfig intltool wrapGAppsHook
|
||||||
|
gnome3.gnome_themes_standard gnome3.defaultIconTheme
|
||||||
|
gnome3.gsettings_desktop_schemas
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# Remove "Local MPD" tab which is not suitable for NixOS.
|
||||||
|
sed -i '/localmpd/d' sonata/consts.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
gobjectIntrospection gtk3 pygobject3
|
||||||
|
];
|
||||||
|
|
||||||
|
# The optional tagpy dependency (for editing metadata) is not yet
|
||||||
|
# included because it's difficult to build.
|
||||||
|
pythonPath = [ dbus pygobject3 mpd2 ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "An elegant client for the Music Player Daemon";
|
||||||
|
longDescription = ''
|
||||||
|
Sonata is an elegant client for the Music Player Daemon.
|
||||||
|
|
||||||
|
Written in Python and using the GTK+ 3 widget set, its features
|
||||||
|
include:
|
||||||
|
|
||||||
|
- Expanded and collapsed views
|
||||||
|
- Automatic remote and local album art
|
||||||
|
- Library browsing by folders, or by genre/artist/album
|
||||||
|
- User-configurable columns
|
||||||
|
- Automatic fetching of lyrics
|
||||||
|
- Playlist and stream support
|
||||||
|
- Support for editing song tags (not in NixOS version)
|
||||||
|
- Drag and drop to copy files
|
||||||
|
- Popup notification
|
||||||
|
- Library and playlist searching, filter as you type
|
||||||
|
- Audioscrobbler (last.fm) 1.2 support
|
||||||
|
- Multiple MPD profiles
|
||||||
|
- Keyboard friendly
|
||||||
|
- Support for multimedia keys
|
||||||
|
- Commandline control
|
||||||
|
- Available in 24 languages
|
||||||
|
'';
|
||||||
|
homepage = "http://www.nongnu.org/sonata/";
|
||||||
|
license = stdenv.lib.licenses.gpl3;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.rvl ];
|
||||||
|
};
|
||||||
|
}
|
30
pkgs/applications/audio/spectrojack/default.nix
Normal file
30
pkgs/applications/audio/spectrojack/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, fetchurl, pkgconfig, libjack2, fftwFloat, gtk2 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "spectrojack-${version}";
|
||||||
|
version = "0.4";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://sed.free.fr/spectrojack/${name}.tar.gz";
|
||||||
|
sha256 = "0p5aa55hnazv5djw0431mza068h7mjkb9pnglxfpqkx5z0czisdx";
|
||||||
|
};
|
||||||
|
buildInputs = [ pkgconfig libjack2 fftwFloat gtk2 ];
|
||||||
|
configurePhase= ''
|
||||||
|
sed -i 's/.*home.*/#&/' ./Makefile
|
||||||
|
substituteInPlace ./Makefile \
|
||||||
|
--replace "/usr/share" "$out/usr/share"
|
||||||
|
'';
|
||||||
|
installPhase= ''
|
||||||
|
install -Dm755 spectrojack $out/bin/spectrojack
|
||||||
|
install -Dm644 spectrojack_icon.svg $out/usr/share/spectrojack/icon.svg
|
||||||
|
install -Dm644 -t $out/usr/share/spectrojack/colormaps colormaps/*
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A little spectrogram/audiogram/sonogram/whatever for JACK";
|
||||||
|
homepage = http://sed.free.fr/spectrojack;
|
||||||
|
license = stdenv.lib.licenses.publicDomain;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ sleexyz ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
29
pkgs/applications/audio/timemachine/default.nix
Normal file
29
pkgs/applications/audio/timemachine/default.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, gtk2
|
||||||
|
, libjack2, libsndfile
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "timemachine-${version}";
|
||||||
|
version = "0.3.1";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "swh";
|
||||||
|
repo = "timemachine";
|
||||||
|
rev = "1966d8524d4e4c47c525473bab3b010a168adc98";
|
||||||
|
sha256 = "0w5alysixnvlkfl79wf7vs5wsw2vgxl3gqxxcm0zbmhjdpmjpcal";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ autoconf automake pkgconfig gtk2 libjack2
|
||||||
|
libsndfile
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = "./autogen.sh";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "JACK audio recorder";
|
||||||
|
homepage = http://plugin.org.uk/timemachine/;
|
||||||
|
license = stdenv.lib.licenses.lgpl2;
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -16,11 +16,11 @@ let
|
|||||||
};
|
};
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "atom-${version}";
|
name = "atom-${version}";
|
||||||
version = "1.4.0";
|
version = "1.5.3";
|
||||||
|
|
||||||
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 = "0dipww58p0sm99jn1ariisha9wsnhl7rnd8achpxqkf4b3vwi5iz";
|
sha256 = "101fz4c5pj7yp7fg7kg7vcpqjzpwfrbxdyb6va5liip1llg1i2z3";
|
||||||
name = "${name}.deb";
|
name = "${name}.deb";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ in stdenv.mkDerivation rec {
|
|||||||
description = "A hackable text editor for the 21st Century";
|
description = "A hackable text editor for the 21st Century";
|
||||||
homepage = https://atom.io/;
|
homepage = https://atom.io/;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.offline ];
|
maintainers = [ maintainers.offline maintainers.nequissimus ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -27,7 +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>";
|
maintainers = "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;
|
||||||
|
@ -21,8 +21,8 @@ let
|
|||||||
version = "2015-11-06";
|
version = "2015-11-06";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "0f9r0wnr9ajcdd6as24igmch0n8s1annycb9f4k0vg6fngwaypy9";
|
sha256 = "090pyf1n5asaw1m2l9bsbdv3zd753aq1plb0w0drbc2k43ds7k3g";
|
||||||
rev = "04781d37ce5af3f580376dc721bd3b89c434966b";
|
rev = "a9c7c6fd20fa35e0ad3e0e98901ca12dfca9c25c";
|
||||||
repo = "libvterm";
|
repo = "libvterm";
|
||||||
owner = "neovim";
|
owner = "neovim";
|
||||||
};
|
};
|
||||||
@ -60,10 +60,10 @@ let
|
|||||||
|
|
||||||
neovim = stdenv.mkDerivation rec {
|
neovim = stdenv.mkDerivation rec {
|
||||||
name = "neovim-${version}";
|
name = "neovim-${version}";
|
||||||
version = "0.1.1";
|
version = "0.1.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "0crswjslp687yp1cpn7nmm0j2sccqhcxryzxv1s81cgpai0fzf60";
|
sha256 = "128aznp2gj08bdz05ri8mqday7wcsy9yz7dw7vdgzk0pk23vjz89";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
repo = "neovim";
|
repo = "neovim";
|
||||||
owner = "neovim";
|
owner = "neovim";
|
||||||
|
@ -6,7 +6,7 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
|||||||
assert gksuSupport -> gksu != null;
|
assert gksuSupport -> gksu != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
build = "3101";
|
build = "3103";
|
||||||
libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk cairo pango];
|
libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk cairo pango];
|
||||||
redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
|
redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
|
||||||
++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
|
++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
|
||||||
@ -20,13 +20,13 @@ in let
|
|||||||
fetchurl {
|
fetchurl {
|
||||||
name = "sublimetext-${build}.tar.bz2";
|
name = "sublimetext-${build}.tar.bz2";
|
||||||
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x32.tar.bz2";
|
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x32.tar.bz2";
|
||||||
sha256 = "1klssh79mxm7i6r77p9a6a1rqzssnkv5y4k37bnxv8bilwqhfrcz";
|
sha256 = "1qidnczndyhyp9rfzmpqah00lrx7z1a0fy7a13lzwqq3gslhwf1l";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fetchurl {
|
fetchurl {
|
||||||
name = "sublimetext-${build}.tar.bz2";
|
name = "sublimetext-${build}.tar.bz2";
|
||||||
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x64.tar.bz2";
|
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x64.tar.bz2";
|
||||||
sha256 = "0yrhn2mc5f2y4cy2ydya4h97bij0cm51yd4q06l6yjshl6qyc2db";
|
sha256 = "1x8kb3prs6wa5s5rj0gfq96zx6k5q3s168yhfsa36x2szi6x6y4x";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
@ -154,6 +154,7 @@ composableDerivation {
|
|||||||
multibyteSupport = config.vim.multibyte or false;
|
multibyteSupport = config.vim.multibyte or false;
|
||||||
cscopeSupport = config.vim.cscope or true;
|
cscopeSupport = config.vim.cscope or true;
|
||||||
netbeansSupport = config.netbeans or true; # eg envim is using it
|
netbeansSupport = config.netbeans or true; # eg envim is using it
|
||||||
|
ximSupport = config.vim.xim or false;
|
||||||
|
|
||||||
# by default, compile with darwin support if we're compiling on darwin, but
|
# by default, compile with darwin support if we're compiling on darwin, but
|
||||||
# allow this to be disabled by setting config.vim.darwin to false
|
# allow this to be disabled by setting config.vim.darwin to false
|
||||||
|
@ -7,6 +7,7 @@ let
|
|||||||
arch =
|
arch =
|
||||||
if stdenv.system == "i686-linux" then "i686"
|
if stdenv.system == "i686-linux" then "i686"
|
||||||
else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64"
|
else if stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin" then "x86-64"
|
||||||
|
else if stdenv.system == "armv7l-linux" then "armv7l"
|
||||||
else throw "ImageMagick is not supported on this platform.";
|
else throw "ImageMagick is not supported on this platform.";
|
||||||
in
|
in
|
||||||
|
|
||||||
|
38
pkgs/applications/graphics/glabels/default.nix
Normal file
38
pkgs/applications/graphics/glabels/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, autoconf, automake, barcode, gnome3
|
||||||
|
, gtk3, gtk_doc, libxml2, librsvg , libtool, libe-book
|
||||||
|
, intltool, itstool, makeWrapper, pkgconfig, which
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "glabels-${version}";
|
||||||
|
version = "3.2.1";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jimevins";
|
||||||
|
repo = "glabels";
|
||||||
|
rev = "glabels-3_2_1";
|
||||||
|
sha256 = "1y6gz0v9si3cvdzhakbgkyc94fajg19rmykfgnc37alrc21vs9zg";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
autoconf automake barcode gtk3 gtk_doc gnome3.yelp_tools
|
||||||
|
gnome3.gnome_common gnome3.gsettings_desktop_schemas
|
||||||
|
intltool itstool libxml2 librsvg libe-book libtool
|
||||||
|
makeWrapper pkgconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
rm "$out/share/icons/hicolor/icon-theme.cache"
|
||||||
|
wrapProgram "$out/bin/glabels-3" \
|
||||||
|
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
|
||||||
|
'';
|
||||||
|
|
||||||
|
preConfigure = "./autogen.sh";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Create labels and business cards";
|
||||||
|
homepage = http://glabels.org/;
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.nico202 ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,19 +1,16 @@
|
|||||||
{ stdenv, fetchFromGitHub,
|
{ stdenv, fetchgit, SDL2, SDL2_ttf, freeimage }:
|
||||||
SDL2, freeimage
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "imv-${version}";
|
name = "imv-${version}";
|
||||||
version = "1.1.0";
|
version = "2.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchgit {
|
||||||
owner = "eXeC64";
|
url = "https://github.com/eXeC64/imv.git";
|
||||||
repo = "imv";
|
rev = "bc90a0adcc5b22d2bf0158333eb6dfb34c402d48";
|
||||||
rev = "4d1a6d581b70b25d9533c5c788aab6900ebf82bb";
|
sha256 = "1bzx57d9mcxw9s72pdbdbwq9pns946jl6p2g881z43w68gimlpw7";
|
||||||
sha256 = "1c5r4pqqypir8ymicxyn2k7mhq8nl88b3x6giaafd77ssjn0vz9r";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ SDL2 freeimage ];
|
buildInputs = [ SDL2 SDL2_ttf freeimage ];
|
||||||
|
|
||||||
configurePhase = "substituteInPlace Makefile --replace /usr $out";
|
configurePhase = "substituteInPlace Makefile --replace /usr $out";
|
||||||
|
|
||||||
|
@ -50,6 +50,9 @@ stdenv.mkDerivation {
|
|||||||
mkdir -p $out/etc/udev/rules.d/
|
mkdir -p $out/etc/udev/rules.d/
|
||||||
./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
|
./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
|
||||||
cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
|
cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
|
||||||
|
# the created 49-libsane references /bin/sh
|
||||||
|
substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
|
||||||
|
--replace "RUN+=\"/bin/sh" "RUN+=\"${stdenv.shell}"
|
||||||
|
|
||||||
substituteInPlace $out/lib/libsane.la \
|
substituteInPlace $out/lib/libsane.la \
|
||||||
--replace "-ljpeg" "-L${libjpeg}/lib -ljpeg"
|
--replace "-ljpeg" "-L${libjpeg}/lib -ljpeg"
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "simple-scan-${version}";
|
name = "simple-scan-${version}";
|
||||||
version = "3.19.4";
|
version = "3.19.90";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
sha256 = "1v9sify1s38qd5sfg26m7sdg9bkrfmai2nijs4wzah7xa9p23c83";
|
sha256 = "16s8855sqrn5iiirpqva0mys8abfpzk9xryrb6rpjbynvx2lanmd";
|
||||||
url = "https://launchpad.net/simple-scan/3.19/${version}/+download/${name}.tar.xz";
|
url = "https://launchpad.net/simple-scan/3.19/${version}/+download/${name}.tar.xz";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ stdenv.mkDerivation {
|
|||||||
libPath = stdenv.lib.makeLibraryPath
|
libPath = stdenv.lib.makeLibraryPath
|
||||||
[ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk glib gdk_pixbuf ];
|
[ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk glib gdk_pixbuf ];
|
||||||
|
|
||||||
|
passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Adobe Reader, a viewer for PDF documents";
|
description = "Adobe Reader, a viewer for PDF documents";
|
||||||
homepage = http://www.adobe.com/products/reader;
|
homepage = http://www.adobe.com/products/reader;
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.50.1";
|
version = "2.51.0";
|
||||||
name = "calibre-${version}";
|
name = "calibre-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||||
sha256 = "0fy5fwj53hl8bcl412d2y61xm1nmkry24dlanj07nn6dhmrs0cm9";
|
sha256 = "1rhpcxic4g2zyr5s3xn8dayyb45l9r8zyniaig8j7pl5kmsfjijn";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
34
pkgs/applications/misc/dmenu/wayland.nix
Normal file
34
pkgs/applications/misc/dmenu/wayland.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{stdenv, fetchurl #, libX11, libXinerama, enableXft, libXft, zlib
|
||||||
|
, swc, wld, wayland, libxkbcommon, pixman, fontconfig
|
||||||
|
}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "dmenu-wayland-${version}";
|
||||||
|
version = "git-2014-11-02";
|
||||||
|
rev = "6e08b77428cc3c406ed2e90d4cae6c41df76341e";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/michaelforney/dmenu/archive/${rev}.tar.gz";
|
||||||
|
sha256 = "d0f73e442baf44a93a3b9d41a72e9cfa14f54af6049c90549f516722e3f88019";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ swc wld wayland libxkbcommon pixman fontconfig ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -ri -e 's!\<(dmenu|dmenu_path)\>!'"$out/bin"'/&!g' dmenu_run
|
||||||
|
'';
|
||||||
|
|
||||||
|
preConfigure = [
|
||||||
|
''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g; s@/usr/share/swc@$(echo "$nativeBuildInputs" | grep -o '[^ ]*-swc-[^ ]*')/share/swc@g" config.mk''
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "a generic, highly customizable, and efficient menu for the X Window System";
|
||||||
|
homepage = http://tools.suckless.org/dmenu;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ ];
|
||||||
|
platforms = with stdenv.lib.platforms; all;
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +1,8 @@
|
|||||||
{ stdenv, fetchurl, python, pkgconfig, cmake, bluez, libusb1, curl
|
{ stdenv, fetchurl, python, pkgconfig, cmake, bluez, libusb1, curl
|
||||||
, libiconv, gettext, sqlite }:
|
, libiconv, gettext, sqlite
|
||||||
|
, dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
|
||||||
|
, postgresSupport ? false, postgresql ? null
|
||||||
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
@ -14,13 +17,15 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [ ./bashcomp-dir.patch ];
|
patches = [ ./bashcomp-dir.patch ];
|
||||||
|
|
||||||
buildInputs = [ python pkgconfig cmake bluez libusb1 curl gettext sqlite libiconv ];
|
buildInputs = [ python pkgconfig cmake bluez libusb1 curl gettext sqlite libiconv ]
|
||||||
|
++ optionals dbiSupport [ libdbi libdbiDrivers ]
|
||||||
|
++ optionals postgresSupport [ postgresql ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://wammu.eu/gammu/";
|
homepage = "http://wammu.eu/gammu/";
|
||||||
description = "Command line utility and library to control mobil phones";
|
description = "Command line utility and library to control mobile phones";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.coroa ];
|
maintainers = [ maintainers.coroa ];
|
||||||
|
2
pkgs/applications/misc/gollum/Gemfile
Normal file
2
pkgs/applications/misc/gollum/Gemfile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
source 'https://rubygems.org'
|
||||||
|
gem 'gollum'
|
55
pkgs/applications/misc/gollum/Gemfile.lock
Normal file
55
pkgs/applications/misc/gollum/Gemfile.lock
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
charlock_holmes (0.7.3)
|
||||||
|
diff-lcs (1.2.5)
|
||||||
|
github-markup (1.3.3)
|
||||||
|
gitlab-grit (2.7.3)
|
||||||
|
charlock_holmes (~> 0.6)
|
||||||
|
diff-lcs (~> 1.1)
|
||||||
|
mime-types (~> 1.15)
|
||||||
|
posix-spawn (~> 0.3)
|
||||||
|
gollum (4.0.1)
|
||||||
|
gollum-lib (~> 4.0, >= 4.0.1)
|
||||||
|
kramdown (~> 1.8.0)
|
||||||
|
mustache (>= 0.99.5, < 1.0.0)
|
||||||
|
sinatra (~> 1.4, >= 1.4.4)
|
||||||
|
useragent (~> 0.14.0)
|
||||||
|
gollum-grit_adapter (1.0.0)
|
||||||
|
gitlab-grit (~> 2.7, >= 2.7.1)
|
||||||
|
gollum-lib (4.1.0)
|
||||||
|
github-markup (~> 1.3.3)
|
||||||
|
gollum-grit_adapter (~> 1.0)
|
||||||
|
nokogiri (~> 1.6.4)
|
||||||
|
rouge (~> 1.9)
|
||||||
|
sanitize (~> 2.1.0)
|
||||||
|
stringex (~> 2.5.1)
|
||||||
|
kramdown (1.8.0)
|
||||||
|
mime-types (1.25.1)
|
||||||
|
mini_portile2 (2.0.0)
|
||||||
|
mustache (0.99.8)
|
||||||
|
nokogiri (1.6.7.2)
|
||||||
|
mini_portile2 (~> 2.0.0.rc2)
|
||||||
|
posix-spawn (0.3.11)
|
||||||
|
rack (1.6.4)
|
||||||
|
rack-protection (1.5.3)
|
||||||
|
rack
|
||||||
|
rouge (1.10.1)
|
||||||
|
sanitize (2.1.0)
|
||||||
|
nokogiri (>= 1.4.4)
|
||||||
|
sinatra (1.4.7)
|
||||||
|
rack (~> 1.5)
|
||||||
|
rack-protection (~> 1.4)
|
||||||
|
tilt (>= 1.3, < 3)
|
||||||
|
stringex (2.5.2)
|
||||||
|
tilt (2.0.2)
|
||||||
|
useragent (0.14.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
gollum
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.10.6
|
18
pkgs/applications/misc/gollum/default.nix
Normal file
18
pkgs/applications/misc/gollum/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ stdenv, lib, bundlerEnv, ruby_2_2, icu, zlib }:
|
||||||
|
|
||||||
|
bundlerEnv rec {
|
||||||
|
name = "gollum-${version}";
|
||||||
|
version = "4.0.1";
|
||||||
|
|
||||||
|
ruby = ruby_2_2;
|
||||||
|
gemfile = ./Gemfile;
|
||||||
|
lockfile = ./Gemfile.lock;
|
||||||
|
gemset = ./gemset.nix;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A simple, Git-powered wiki";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ jgillich ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
170
pkgs/applications/misc/gollum/gemset.nix
Normal file
170
pkgs/applications/misc/gollum/gemset.nix
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
{
|
||||||
|
useragent = {
|
||||||
|
version = "0.14.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "124r3mgkw1zjymsqq9r25zh1vwjrjgiji5fm620z53lpmmryj22j";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tilt = {
|
||||||
|
version = "2.0.2";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0lkd40xfdqkp333vdfhrfjmi2y7k2hjs4azawfb62mrkfp7ivj84";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
stringex = {
|
||||||
|
version = "2.5.2";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
sinatra = {
|
||||||
|
version = "1.4.7";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
sanitize = {
|
||||||
|
version = "2.1.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rouge = {
|
||||||
|
version = "1.10.1";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rack-protection = {
|
||||||
|
version = "1.5.3";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rack = {
|
||||||
|
version = "1.6.4";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
posix-spawn = {
|
||||||
|
version = "0.3.11";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nokogiri = {
|
||||||
|
version = "1.6.7.2";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mustache = {
|
||||||
|
version = "0.99.8";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mini_portile2 = {
|
||||||
|
version = "2.0.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mime-types = {
|
||||||
|
version = "1.25.1";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
kramdown = {
|
||||||
|
version = "1.8.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0ryqq055h5n10c1cfba6pxsssa907l2hkw29anp0d41ryh47ca2l";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gollum-lib = {
|
||||||
|
version = "4.1.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gollum-grit_adapter = {
|
||||||
|
version = "1.0.0";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gollum = {
|
||||||
|
version = "4.0.1";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "02pgx083sns75zgnqx94p5h5bpr7cfiw5mys4ayb4k33hcjm6ydg";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gitlab-grit = {
|
||||||
|
version = "2.7.3";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
github-markup = {
|
||||||
|
version = "1.3.3";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
diff-lcs = {
|
||||||
|
version = "1.2.5";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
charlock_holmes = {
|
||||||
|
version = "0.7.3";
|
||||||
|
source = {
|
||||||
|
type = "gem";
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, ncurses }:
|
{ stdenv, fetchurl, ncurses }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.0.4";
|
version = "1.0.5";
|
||||||
name = "mdp-${version}";
|
name = "mdp-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/visit1985/mdp/archive/${version}.tar.gz";
|
url = "https://github.com/visit1985/mdp/archive/${version}.tar.gz";
|
||||||
sha256 = "1wvys3sb0ki7zz5b0y4bl9x6jdj7h88lxsf8vap95k1sj2ymanlm";
|
sha256 = "0ckd9k5571zc7pzxdx84gv8k103d5qp49f2i477a395fy2pnq4m8";
|
||||||
};
|
};
|
||||||
|
|
||||||
makeFlags = "PREFIX=$(out)";
|
makeFlags = "PREFIX=$(out)";
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, wxGTK, desktop_file_utils, libSM, imagemagick }:
|
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, wxGTK, desktop_file_utils, libSM, imagemagick }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.7.81";
|
version = "0.7.82";
|
||||||
name = "mediainfo-gui-${version}";
|
name = "mediainfo-gui-${version}";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
||||||
sha256 = "1aah8y4kqhghqhcfm6ydgf3hj6q05dllfh0m1lbaij0y8yrrwz07";
|
sha256 = "0ivvmxx93aldfbms6wg46x9npghg304j2zxl5i70m710gybjr232";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo wxGTK desktop_file_utils libSM imagemagick ];
|
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo wxGTK desktop_file_utils libSM imagemagick ];
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, zlib }:
|
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, zlib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.7.81";
|
version = "0.7.82";
|
||||||
name = "mediainfo-${version}";
|
name = "mediainfo-${version}";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
||||||
sha256 = "1aah8y4kqhghqhcfm6ydgf3hj6q05dllfh0m1lbaij0y8yrrwz07";
|
sha256 = "0ivvmxx93aldfbms6wg46x9npghg304j2zxl5i70m710gybjr232";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo zlib ];
|
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo zlib ];
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${product}-${version}";
|
name = "${product}-${version}";
|
||||||
product = "pdfpc";
|
product = "pdfpc";
|
||||||
version = "4.0.1";
|
version = "4.0.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "pdfpc";
|
repo = "pdfpc";
|
||||||
owner = "pdfpc";
|
owner = "pdfpc";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "06m30xz9jzfj6ljnsgqqg1myj13nqpc7ria9wr8aa62kp4n7bcfp";
|
sha256 = "0151i9msagcqcfaddgd1vkmman0qgqy6s3714sqas568r4r9ngdk";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
|
|||||||
name = "pstree-2.39";
|
name = "pstree-2.39";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.sfr-fresh.com/unix/misc/${name}.tar.gz";
|
urls = [
|
||||||
|
"http://www.sfr-fresh.com/unix/misc/${name}.tar.gz"
|
||||||
|
"http://distfiles.macports.org/pstree/${name}.tar.gz"
|
||||||
|
];
|
||||||
sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
|
sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, yacc, ncurses, libxml2 }:
|
{ stdenv, fetchFromGitHub, yacc, ncurses, libxml2 }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.2.1";
|
version = "0.2.1";
|
||||||
@ -7,9 +7,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
name = "sc-im-${version}";
|
name = "sc-im-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/andmarti1424/sc-im/archive/v${version}.tar.gz";
|
owner = "andmarti1424";
|
||||||
sha256 = "08yks8grj5w434r81dy2knzbdhdnkc23r0d9v848mcl706xnjl6j";
|
repo = "sc-im";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0v6b8xksvd12vmz198vik2ranyr5mhnp85hl9yxh9svibs7jxsbb";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ yacc ncurses libxml2 ];
|
buildInputs = [ yacc ncurses libxml2 ];
|
||||||
@ -28,12 +30,12 @@ stdenv.mkDerivation rec {
|
|||||||
make install prefix=
|
make install prefix=
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
homepage = "https://github.com/andmarti1424/sc-im";
|
homepage = "https://github.com/andmarti1424/sc-im";
|
||||||
description = "SC-IM - Spreadsheet Calculator Improvised - SC fork";
|
description = "SC-IM - Spreadsheet Calculator Improvised - SC fork";
|
||||||
license = stdenv.lib.licenses.bsdOriginal;
|
license = licenses.bsdOriginal;
|
||||||
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
|
maintainers = [ maintainers.matthiasbeyer ];
|
||||||
platforms = with stdenv.lib.platforms; linux; # Cannot test others
|
platforms = platforms.linux; # Cannot test others
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
34
pkgs/applications/misc/st/wayland.nix
Normal file
34
pkgs/applications/misc/st/wayland.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{ stdenv, fetchurl, pkgconfig, writeText
|
||||||
|
, ncurses, wayland, wld, libxkbcommon, fontconfig, pixman
|
||||||
|
, conf? null}:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "st-wayland-${version}";
|
||||||
|
version = "git-2015-08-29";
|
||||||
|
rev = "61b47b76a09599c8093214e28c48938f5b424daa";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/michaelforney/st/archive/${rev}.tar.gz";
|
||||||
|
sha256 = "7164da135f02405dba5ae3131dfd896e072df29ac6c0928f3b887beffb8a7d97";
|
||||||
|
};
|
||||||
|
|
||||||
|
configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
|
||||||
|
preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
|
||||||
|
|
||||||
|
buildInputs = [ pkgconfig ncurses wayland wld libxkbcommon fontconfig pixman ];
|
||||||
|
|
||||||
|
NIX_LDFLAGS = "-lfontconfig";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
TERMINFO=$out/share/terminfo make install PREFIX=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://st.suckless.org/;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
|
platforms = with platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
@ -5,13 +5,13 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "synergy-${version}";
|
name = "synergy-${version}";
|
||||||
version = "1.7.4";
|
version = "1.7.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "synergy";
|
owner = "symless";
|
||||||
repo = "synergy";
|
repo = "synergy";
|
||||||
rev = "v${version}-stable";
|
rev = "v${version}-stable";
|
||||||
sha256 = "0pxj0qpnsaffpaxik8vc5rjfinmx8ab3b2lssrxkfbs7isskvs33";
|
sha256 = "02zv8m7yagx80wi7m0ckglfqjqyrj6rd1gywxzqzl6841scmf87n";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -80,7 +80,7 @@ let
|
|||||||
wvName = "Widevine Content Decryption Module";
|
wvName = "Widevine Content Decryption Module";
|
||||||
wvDescription = "Playback of encrypted HTML audio/video content";
|
wvDescription = "Playback of encrypted HTML audio/video content";
|
||||||
wvMimeTypes = "application/x-ppapi-widevine-cdm";
|
wvMimeTypes = "application/x-ppapi-widevine-cdm";
|
||||||
wvModule = "$widevine/lib/libwidevinecdmadapter.so";
|
wvModule = "@widevine@/lib/libwidevinecdmadapter.so";
|
||||||
wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}";
|
wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}";
|
||||||
in ''
|
in ''
|
||||||
flashVersion="$(
|
flashVersion="$(
|
||||||
|
@ -4,185 +4,185 @@
|
|||||||
# ruby generate_sources.rb > sources.nix
|
# ruby generate_sources.rb > sources.nix
|
||||||
|
|
||||||
{
|
{
|
||||||
version = "44.0";
|
version = "44.0.2";
|
||||||
sources = [
|
sources = [
|
||||||
{ locale = "ach"; arch = "linux-i686"; sha256 = "c0c65ced611dcc7b788aff7f0e32cd1823467c06dc99ced2e0aca0539ce545a2"; }
|
{ locale = "ach"; arch = "linux-i686"; sha256 = "2d0ab9fba584576d67ccb600339efeb5ad7aac1629b2d7865e121825b1a5a6d5"; }
|
||||||
{ locale = "ach"; arch = "linux-x86_64"; sha256 = "87068d8072d0312af90524c7470c874d33e23c2b3e94be3fe9d934998330e898"; }
|
{ locale = "ach"; arch = "linux-x86_64"; sha256 = "188b9aab64ab1beda84dbe7b36d899210472a3e445dd827b64ca7083ae3c0b32"; }
|
||||||
{ locale = "af"; arch = "linux-i686"; sha256 = "7c8f08471fe561a345175c350c6414e72721baeb41a3ff47a429f5b79c33c82c"; }
|
{ locale = "af"; arch = "linux-i686"; sha256 = "e6b5fb28e5ad03240f0e156c81db1df16bfaf99a946ffab9672c06d8561de9c3"; }
|
||||||
{ locale = "af"; arch = "linux-x86_64"; sha256 = "4768a53842d40e81a2e357ba58da56b0a81d2224878b6ab2ffad0bfc50c20ec1"; }
|
{ locale = "af"; arch = "linux-x86_64"; sha256 = "c2856308c9e87bf82f621c5d4c96e9c5a70e5ebb86a8e4ba8ecb4d08c1ae98ec"; }
|
||||||
{ locale = "an"; arch = "linux-i686"; sha256 = "cdb921661a6b20738f38ab2d0fb285aa81a323401f360f77b9ae6d9e8642210d"; }
|
{ locale = "an"; arch = "linux-i686"; sha256 = "f138b17a230e9b42b334d3900bebf23156fe1dec1f4ec75f9a3b94348523e241"; }
|
||||||
{ locale = "an"; arch = "linux-x86_64"; sha256 = "cff97655831940b84bfa5f73dfa3dc48de084ae6503e7a5824c3e57e373f0ff0"; }
|
{ locale = "an"; arch = "linux-x86_64"; sha256 = "82d24b07dc8d887837e8fbd610c2feb1ff4975917d8a19836ec0d0db56522de8"; }
|
||||||
{ locale = "ar"; arch = "linux-i686"; sha256 = "9f6322577809b557f325168953170706af6d29a29b5347886f928b5f495799b8"; }
|
{ locale = "ar"; arch = "linux-i686"; sha256 = "b530e58161331bff3222083298ddc5af0055c6b3337b58b1a4eb1d5d4e348d62"; }
|
||||||
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "d5a1a956d7f9afe5867e2dbeaea4ba2a94e743d291062d18232d20ace29d2c94"; }
|
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "67c0e4ce7dfe54d0e4fedb168342ea86a82458e2d3ce6aca78b4497f4e813bfd"; }
|
||||||
{ locale = "as"; arch = "linux-i686"; sha256 = "750c5cddd2d436993a4630f0ebf31e9d0ac679cc23a84298071a682e7a8a8de1"; }
|
{ locale = "as"; arch = "linux-i686"; sha256 = "f17e991e97e85b981c3191a0becad6df457a29b7042d31a667fd227dadc24e80"; }
|
||||||
{ locale = "as"; arch = "linux-x86_64"; sha256 = "5b5a2376daef30eae3ff1a94213937381148ade79783546b1f38687c9fc4489e"; }
|
{ locale = "as"; arch = "linux-x86_64"; sha256 = "2d955443b785a65d2f9f914232d521aeb9082b4dead8fedc89cfa29329ab8e2a"; }
|
||||||
{ locale = "ast"; arch = "linux-i686"; sha256 = "99b5bc2c709a923a43debfe746c70c3613c206424c88d553f7593c200053a8b6"; }
|
{ locale = "ast"; arch = "linux-i686"; sha256 = "c9e2784047b58eddfd72c1e56964eea8ac098240436d029665bc940c7b8d8f8d"; }
|
||||||
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "2fd75ff22d3b75f03c6a9ab005e369373f999ef4c38ea49438ab2adaa8e9a2c2"; }
|
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "4bd5cc7c34f0a1fc1e2e899942c4ebec6bdab2fbd9e3d331ecc0c67a6f8c16e4"; }
|
||||||
{ locale = "az"; arch = "linux-i686"; sha256 = "0781239c9c8f237d66ce0c8d9f39136e0eb71365f6ca8b695014648060c18c38"; }
|
{ locale = "az"; arch = "linux-i686"; sha256 = "1789f6c5524314df239e4b4beb677adf48ce926a097128e053b352067d13016f"; }
|
||||||
{ locale = "az"; arch = "linux-x86_64"; sha256 = "9fd6f6047ec3c4103c4aa761882053d4e00e018a1509fa1fbede1757394aa3fe"; }
|
{ locale = "az"; arch = "linux-x86_64"; sha256 = "4881ccb7521512b4275faa2598efda6bbcc3d7838b6200e79c8fcae358d32c23"; }
|
||||||
{ locale = "be"; arch = "linux-i686"; sha256 = "098e932b708ebc71a2aa7fe86ced4835dbc6725f8714904b25e7ebd1ca7b7d69"; }
|
{ locale = "be"; arch = "linux-i686"; sha256 = "e9e31e92e0732188f6c4494023de260e5b64e97c56ff07857b290355c50e25f4"; }
|
||||||
{ locale = "be"; arch = "linux-x86_64"; sha256 = "d9284a84e7e55ad6d73e7d599c5b6824774d7a9e6f7484064fd2985e5634d102"; }
|
{ locale = "be"; arch = "linux-x86_64"; sha256 = "00ef0cea013cdb8606d8786bb5a21e502a6054ab57b2fad4d24161c47768f418"; }
|
||||||
{ locale = "bg"; arch = "linux-i686"; sha256 = "02879ea328d1536781f2f9765db51bcb9fa05d0a0b7ad426fd659156c293f347"; }
|
{ locale = "bg"; arch = "linux-i686"; sha256 = "6428fa1d4f2bd0b703f207a1571e425f8076438954f955f60c0e8c1525743823"; }
|
||||||
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "70f55197d8ff67d52f090bd58dcc106fcc08492fe6989494eee3aa3cd1c3552a"; }
|
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "fc156d3d76582c95eb6a0a7ee88dbdbd6c99d46ca42b011e1d789b0552bb5885"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "227873ac53fdac5f27b569a5b6a1f3d45caa4e3c822610a5f294a3abdbc2c0fd"; }
|
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "d0b69158e5ce85eec29dc70c4942bfc76eaf2d8e3359c45de5783d39fe1ccaf0"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "0a46de9bfc19fba878104ae2865a092fba7a9eea62a64a31c0decc9fc021b3af"; }
|
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "928575b759e4ae89d3e5ee475ffa18c69e945846981102d540de01c9bd87582e"; }
|
||||||
{ locale = "bn-IN"; arch = "linux-i686"; sha256 = "2cc4d364852fc987e97f169de9039992d4ecb848125eae38c09bced34aae8653"; }
|
{ locale = "bn-IN"; arch = "linux-i686"; sha256 = "a92a902e4380ddda37b8e70922e91ee029d47f866adea53220dd76182c52b596"; }
|
||||||
{ locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "6a722ed42f251e3433d46d9b56ca06f7bc1cf0854de782da10285db6ee4a1bfd"; }
|
{ locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "022b9ff7141cd89df35477d357df74556bc4a24639141d21111eccfbf8e2f98c"; }
|
||||||
{ locale = "br"; arch = "linux-i686"; sha256 = "14b75dc8278a946d705210306b50a85795f70d83d0527d2c77a60b13662e89e3"; }
|
{ locale = "br"; arch = "linux-i686"; sha256 = "c398c00b98edcaa2618363637075ccf749a4d3567dfdae070b4b0cbe23832f56"; }
|
||||||
{ locale = "br"; arch = "linux-x86_64"; sha256 = "73e62d2869fb450b4597ec3d65ae3c36ef78984462a158dbf565bbac539b1fa5"; }
|
{ locale = "br"; arch = "linux-x86_64"; sha256 = "60f471fdf1b71072751396049f12a198c73d11892ec69fc142f925a12c6515f4"; }
|
||||||
{ locale = "bs"; arch = "linux-i686"; sha256 = "01e02d4a0e140d962e27e4f1a4ec24837c0646e9373f3ce2eb8337437c274ecf"; }
|
{ locale = "bs"; arch = "linux-i686"; sha256 = "d9e3c1b5c94ad207071cea86295ef3f98d4bd9201e896f6b9d67a2e475ea2898"; }
|
||||||
{ locale = "bs"; arch = "linux-x86_64"; sha256 = "59fef5429b639a52ee113e855a18080870a2f905212dd0e4aefdd838d040133d"; }
|
{ locale = "bs"; arch = "linux-x86_64"; sha256 = "2ea3bb1c14a849b5039b633963687629839174ea886d3f8314f67eddafa2b16b"; }
|
||||||
{ locale = "ca"; arch = "linux-i686"; sha256 = "62f96267e91fb9a8df1c436adb78945f32eb14bccc57e706104ae0547b723682"; }
|
{ locale = "ca"; arch = "linux-i686"; sha256 = "bf1c1c3aaa900d66c4684cf48623bb0c9e0313cd919ad0e67e8a2e3ca5987aa6"; }
|
||||||
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "0be231034e076e162b5568a5247da47ca2038011928f89c729fe9a7e139dd922"; }
|
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "30c0217722c599ed8fc0e713e0b763a01dc0da37dc2f290a2a4d02cb2a86b6a3"; }
|
||||||
{ locale = "cs"; arch = "linux-i686"; sha256 = "15c8a066fe101a5b9151c96611e2390008ac54a9a1909b9430ed6f440c856920"; }
|
{ locale = "cs"; arch = "linux-i686"; sha256 = "5ebd809827cdc85da0e6c973855c60426ab98e2cb898c030acd403577d3bb78a"; }
|
||||||
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "40400da9851782418a12b224b74c3b5c8c112912bb98dc8f368972cc898ea155"; }
|
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "a1d55b7c54fd7eb89bcf5dbdadcaea0f5d2da7110a090c424c52a55ae23150f2"; }
|
||||||
{ locale = "cy"; arch = "linux-i686"; sha256 = "b9b8d3d4c5160eb1676f6c4531123ec28dc0ca6b51e7dcf20716611f93f1c975"; }
|
{ locale = "cy"; arch = "linux-i686"; sha256 = "55df045619bbe01af6f33c6cd563d6097b9c9023ab9133fa7def0800cc9aec83"; }
|
||||||
{ locale = "cy"; arch = "linux-x86_64"; sha256 = "6e00d5e5c7e50aa24468b802bd53377d8962b146fed8a8588dd5c8db4162da93"; }
|
{ locale = "cy"; arch = "linux-x86_64"; sha256 = "2ddb8bcd515aad4ddb029cf4e5c49e771aa1da14394924c4ec532c5125b7ca7b"; }
|
||||||
{ locale = "da"; arch = "linux-i686"; sha256 = "760c9d95fe6941847dfd53b254cd662a83f4c9f2d66f84a96b4dd1d3127adbb8"; }
|
{ locale = "da"; arch = "linux-i686"; sha256 = "b322bef3e95b24337f294b2786fc5a819d954adb43f98dee69674d41fd234b5c"; }
|
||||||
{ locale = "da"; arch = "linux-x86_64"; sha256 = "e168e7e7e11aabe54f773c960d4c9b9920e15e4ccadef9f728e2016f0240555f"; }
|
{ locale = "da"; arch = "linux-x86_64"; sha256 = "3e5164351808ef2f8f4e9cea6bb1121c4d3394de56536d17869a56df3b783d3b"; }
|
||||||
{ locale = "de"; arch = "linux-i686"; sha256 = "e5c6372f3fd732fddfaa31ed3ddc81cf803386d7842e103fddd0685739ea63c7"; }
|
{ locale = "de"; arch = "linux-i686"; sha256 = "a404bf7c19dbc65adea8872b8bd080a17417bc0f1ffa3015513d86750b2903a9"; }
|
||||||
{ locale = "de"; arch = "linux-x86_64"; sha256 = "73da0a0c66c18dddf5de7b7dda677cb9cef1e0b3c8cff5e22f48bf743ece8116"; }
|
{ locale = "de"; arch = "linux-x86_64"; sha256 = "3590e100bf84f2734d1b3c81508d8fa137fd100bdd1e764ae5da1f88602d5b9d"; }
|
||||||
{ locale = "dsb"; arch = "linux-i686"; sha256 = "509b8233c403b629803fb0d67a29f2d6f649627d4b91c592121acd3e2ff62282"; }
|
{ locale = "dsb"; arch = "linux-i686"; sha256 = "c4be1a5cc431f3aeb26694bfd0749da0dfc85c119f75b551e69083a384042833"; }
|
||||||
{ locale = "dsb"; arch = "linux-x86_64"; sha256 = "6089971aa6e19e2cbcb49724e2eea7922d9408936aa8e2d396b8f1966ea81eec"; }
|
{ locale = "dsb"; arch = "linux-x86_64"; sha256 = "36f451bb07af47aff7c930a2810ef628e3382f92560efbe396133735275f7075"; }
|
||||||
{ locale = "el"; arch = "linux-i686"; sha256 = "451f1a7caea7553fc18e440c2716e1954e7d7ba66f5fbe15cc6954224a36444e"; }
|
{ locale = "el"; arch = "linux-i686"; sha256 = "736ee0dffe7c5dc0d5abc7755a83e29da718901252034ee503775fc3f11e31c1"; }
|
||||||
{ locale = "el"; arch = "linux-x86_64"; sha256 = "d02f4b813cc16b4293f9441bdbdef56acd0a7a510d9edcce223d04270e65f2e4"; }
|
{ locale = "el"; arch = "linux-x86_64"; sha256 = "1638e1fd69d1887bbfd2de95ffe7945f52934055f8e15eb919d9ccac930959e0"; }
|
||||||
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "663b7a6300fa46c4e62e7542135ab2632117496a5b0365276ec5ac94183a1d55"; }
|
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "1f9c8404fd01c1cac530c0e2b1fb488a2b4f7a02d8c2f0e568e0db050dc66f18"; }
|
||||||
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "d50895a71408e74d8b5b1965be279011214c50eba56e0046f360f216326f1135"; }
|
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "4f7491b919ca7a0563cd3444bd4a1abf48a4448ccdd743c5b5eb58584e5b1e94"; }
|
||||||
{ locale = "en-US"; arch = "linux-i686"; sha256 = "84a5fa00271f90356bbfedb1fdbcc033489d1759fef53c4dda92bd285633ae3d"; }
|
{ locale = "en-US"; arch = "linux-i686"; sha256 = "abe3e5d23cf557ee81e7064d6d1b2d3a8f6b6e1a5f80947fc7229f0b2b631380"; }
|
||||||
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "49e55275df9e902bc234fa59b4b614a084d76dc2c256ce6218fa96663cabe2dd"; }
|
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "a4b439e28274feb4bf5494ba180143e6b8617428a63d11fa2fd0e650dda41908"; }
|
||||||
{ locale = "en-ZA"; arch = "linux-i686"; sha256 = "dfe926680b0bc5852db920ba8b3e4febecf1ead33d9865568ac69e9494337072"; }
|
{ locale = "en-ZA"; arch = "linux-i686"; sha256 = "9de2931e926e0b0667f6916283a7ef019d1c067b29d6bd5b4b903fdf87ad9c17"; }
|
||||||
{ locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "83c8480482dd154519d26e43a3f79d32c82f149d81a1c6e8ef98e9511ecbf35a"; }
|
{ locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "6ada8b6a9a2b19f9515a1aaf63ad66cf35a1ab5491fc8ffc86a17fe1378ab553"; }
|
||||||
{ locale = "eo"; arch = "linux-i686"; sha256 = "a27703068ff3be53e8944c750bde0316414f51ee4c10569018d121db7ec1b705"; }
|
{ locale = "eo"; arch = "linux-i686"; sha256 = "92db868c78ae49a8275d217327ca442ef6733b955ddc5b4940183c9a596da3de"; }
|
||||||
{ locale = "eo"; arch = "linux-x86_64"; sha256 = "981462cf59716c17fc0630d0cf12b03e7cc96d72c2d8d33109c1db633895f18a"; }
|
{ locale = "eo"; arch = "linux-x86_64"; sha256 = "2e8267fb43ba6b7636c98fe386c35ddb9032265565844dcbc90f3dba18a2bc05"; }
|
||||||
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "16b2efda57842f29c6f4432cd51296d5e9a709d30f2310e885c786fc68a96e65"; }
|
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "6343bacb35c929c8f7c5cb554aa0e5f67100032c71bc24203b663409e45cbf40"; }
|
||||||
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "7b6c8a2bbae8e72ec820df741b8f4a2e162c4b628db8e669a5e85dc190db6c51"; }
|
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "0b5a07e745aab7d1e0bb8bcf0afe12ab71a88679024ef6e9edd53bab7518df7f"; }
|
||||||
{ locale = "es-CL"; arch = "linux-i686"; sha256 = "ad18bc224500c834a159d91fa568461cbf131edd1b044ae8c97e887b2151e112"; }
|
{ locale = "es-CL"; arch = "linux-i686"; sha256 = "7288765c2222624e69b367ab83686c21a348330a8f26eff7c6ea8dca03a3aabf"; }
|
||||||
{ locale = "es-CL"; arch = "linux-x86_64"; sha256 = "84c414c64bff02d8e82a4ca4c01e1b4dfae21991ee9a6850203ccbe15469cfe8"; }
|
{ locale = "es-CL"; arch = "linux-x86_64"; sha256 = "543778259a5d7c4198c8125b72f9e66e9ae98b398bc3b07ac0e103f07ab7ef2c"; }
|
||||||
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "142db7f0bb92976345aace30d9ba53ab4ba98a47332c3f7ae7372d9d80300781"; }
|
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "c1aec91c45591eaa6df8b15ba13ea58d15ab2cce20361719ea2549896d26ea1f"; }
|
||||||
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "337de34606e018ec5b600d559d928e35c79fb28800c9b5ad28e2defe259f9b58"; }
|
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "ee3b11c04ca280ff77e3cedd3dc2040b7b1722384639c02507bedc927c7b558b"; }
|
||||||
{ locale = "es-MX"; arch = "linux-i686"; sha256 = "51cecc939011135842bb51c41cfda0fb4ae53c5180e49bd66a810c243b1d68be"; }
|
{ locale = "es-MX"; arch = "linux-i686"; sha256 = "8adb9435f57da461150d8b283161760683e46b068eaade916119c2240f0a9c66"; }
|
||||||
{ locale = "es-MX"; arch = "linux-x86_64"; sha256 = "cfe309df7412f68abf487c1f9065e6b9d4b4f384254576c8d1098878012e5b53"; }
|
{ locale = "es-MX"; arch = "linux-x86_64"; sha256 = "b624c4345794a22a7c63b4f6b7a1ed6f52472fa5cba4173f69f3c12ee3b4cbe1"; }
|
||||||
{ locale = "et"; arch = "linux-i686"; sha256 = "1540b0f0c1d867c87d1e109b4e9ad417be51306c324a03e07706d7e215f7ae4f"; }
|
{ locale = "et"; arch = "linux-i686"; sha256 = "efb6c6753e8a9d8174e8bd1ae7cbf3f75b479e5da3ebe07dbbbb4ac140e60eb9"; }
|
||||||
{ locale = "et"; arch = "linux-x86_64"; sha256 = "e7c0e4e61d17164a648ae51bcff92d99f76055a1a6a29dfec6ea12a0359f1285"; }
|
{ locale = "et"; arch = "linux-x86_64"; sha256 = "c84bb0597fa14e8a7a2d086f24d71ad2f3c04b3fca794b76977d1a4cb1aea479"; }
|
||||||
{ locale = "eu"; arch = "linux-i686"; sha256 = "c2c88bf65329b168fde8fe02613eb89069d85da8b2a3114ac647158b8a345055"; }
|
{ locale = "eu"; arch = "linux-i686"; sha256 = "d116553c492ec41b811befb35393553b9174da3960034ce5106558befbf9728a"; }
|
||||||
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "9d10a2f8a0e889a6ebe99bc486cf56cc44535b6f67ce3667ac61e87430a24eea"; }
|
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "16c922f152d5e14c46277e23d30cfe0792c8e9828b8862df603aeff242c7ec96"; }
|
||||||
{ locale = "fa"; arch = "linux-i686"; sha256 = "21ba5e79f5fbe3c3a8a8a71f8fe9a4280f8e47d4c58070443bbf53305c906175"; }
|
{ locale = "fa"; arch = "linux-i686"; sha256 = "744ad5a8cb4473d502d1db50b6bf343e23525927b3a982677dd8a68aea111b3f"; }
|
||||||
{ locale = "fa"; arch = "linux-x86_64"; sha256 = "99d8d2e81e2a8f495d5568d7a9cbbfbcdc8a0e1d67fa297adf8a021988948a80"; }
|
{ locale = "fa"; arch = "linux-x86_64"; sha256 = "968fea07386b96215af400524062447245fa038766caf0b133c932db6f105077"; }
|
||||||
{ locale = "ff"; arch = "linux-i686"; sha256 = "3e1812cd98e04fcf575783eafdef2c89739c51e6648f4cd7ba7bed44fbe5f960"; }
|
{ locale = "ff"; arch = "linux-i686"; sha256 = "0fdf06aa42cbd4d031fdad74d8ac9d6056708fc783180d72c5806cc45c5b8eec"; }
|
||||||
{ locale = "ff"; arch = "linux-x86_64"; sha256 = "cbe37600da8bfdabe683473dbb4f2ccc96beda89a9ca15810432a8fce65a591f"; }
|
{ locale = "ff"; arch = "linux-x86_64"; sha256 = "bfb65ec25192288b2f04f94bdcc9ce36a40a27c8a1f35f728f932c071b6756ce"; }
|
||||||
{ locale = "fi"; arch = "linux-i686"; sha256 = "ecf982266072b4a15a06b939d4f0cc22c3653982404974baa51871af0e411ab5"; }
|
{ locale = "fi"; arch = "linux-i686"; sha256 = "334c121cbd9a1469996ebc5535d838e3fecfcc419861cc70d5cdeb0cd584d5f5"; }
|
||||||
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "345b7f038e454e6efd513e923ad2aa0a45d76d846539563bbfc79293ec84a6ec"; }
|
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "44883a9b819a24bef03c3322681e1b9f3fe61779e382a740900dfc16a5f7db06"; }
|
||||||
{ locale = "fr"; arch = "linux-i686"; sha256 = "e71b05083a122ef20b5d75481129fa2e3d1e2ac608cea2c5baf7b300a5fbe5df"; }
|
{ locale = "fr"; arch = "linux-i686"; sha256 = "cd196dff293aabc39156e82deb5163e139a4b0173de92a2ba72df49bb4b0afe5"; }
|
||||||
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "1897112ce462b341abba4c2b1664fbf39b5072a11ea6fb61c66cbfb3336358f0"; }
|
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "77da207f48d7af908cb5e95767e61a2e6c04f1851e55430820ff8207da172361"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "5557347f19ab6d7c90a34bf8a9729d39eb65a02a021040091cc1863e08fb72c9"; }
|
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "39e8da569f2a6f67abac7782a938a906c810f8474fbb2c799dd26fb846c82707"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "c77b86d5512f8343674248b9b4d31165975f0eeea002313311339ae45d9effe3"; }
|
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "44dbf644b3f96dd607e5c88eece8aaafd61ec42af9f7ba4c6ed06a272a45fa4a"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "7a68d7de10abf095fd9240807a6a553b60ba75f3d8edc56afcf5ad1832a05eaf"; }
|
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "783532acf3967f94232f42c9cd559e288db499c0ff74776543b59d71d281a74c"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "f935b317c5aadd60553f497ceae2cc663dec3729b2fc8e48e6a98d1eb91fe263"; }
|
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "39509082dbeb935f481e95d6038943a17c5053f7001fbf71bdb0edea536adb9d"; }
|
||||||
{ locale = "gd"; arch = "linux-i686"; sha256 = "21bbca4e12b3fa230b879f190d279ba9314090454e0263b65e77dbf8f99dcbf3"; }
|
{ locale = "gd"; arch = "linux-i686"; sha256 = "dd73e1bf159f3d437d69306c5daeb7a06c951d6c5841315363c354f9aa1570c5"; }
|
||||||
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "027630690ecff7ad56f6e992ef243d2a734dac1a3e6365bb22c56a571f938fcb"; }
|
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "a2fb4aa1ba4a50bdb308e8c12090158c5e040ae85617171786e93852d4f48de5"; }
|
||||||
{ locale = "gl"; arch = "linux-i686"; sha256 = "6973787b5136491ef28bb2e10976d49c3717a866ec6fe357a995dbf3179a751c"; }
|
{ locale = "gl"; arch = "linux-i686"; sha256 = "8ac3fd13e0f173aa1dfffd44c91511bd457c6a751daa978fbaae3f9901427cae"; }
|
||||||
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "0ca57d72bf11ddf74eb79904be607c479c01f31f11fc0ff567a9ad7beef8067d"; }
|
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "cf52827a18b400f8c3e426b00e2984bd5835014f3e97e9c1279f0b285ca5a5dc"; }
|
||||||
{ locale = "gu-IN"; arch = "linux-i686"; sha256 = "6f422fdcf2fd514e132b33fa079631a6bd4b12deab17a3463b1f3f1ce3f2f535"; }
|
{ locale = "gu-IN"; arch = "linux-i686"; sha256 = "1ef44836085733b52c338fdcaea78e7df5f78a0f0f470b9de3ac7b13e3ec4844"; }
|
||||||
{ locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "19cc20d1bd838ebfb8518b8076800cc3255376e4928cf2f37be86258307f1104"; }
|
{ locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "374280216142897536979fff6f876253caaf0eeb12a3d12d17b013e7ab3ba722"; }
|
||||||
{ locale = "he"; arch = "linux-i686"; sha256 = "f8eb56fea0e73c247fc767541bc97cc3556e4db75ad446e01b0978a5c0b11d3f"; }
|
{ locale = "he"; arch = "linux-i686"; sha256 = "1dcca6ae796da1a1317a4f094f06369242cdf7c0f8ce3df7c9fabd22910996ab"; }
|
||||||
{ locale = "he"; arch = "linux-x86_64"; sha256 = "8ee0ae75d179bfec9e081777e9a34fdae72d8d55ade73983fdac433649b596ac"; }
|
{ locale = "he"; arch = "linux-x86_64"; sha256 = "e032513a673ba091207996b8a6a6b9da6ef05d5c080a93ed326fc4ac4ca6976a"; }
|
||||||
{ locale = "hi-IN"; arch = "linux-i686"; sha256 = "bb64fc5285bca12542669ef83bfc465bf593154f9bca2548510f525bde5a55f3"; }
|
{ locale = "hi-IN"; arch = "linux-i686"; sha256 = "2057287b406513a332d162f03f75ef7ff4c83834809163c8b870d9e5ab3f8cdf"; }
|
||||||
{ locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "52bb0b68a5f282e65d077166a3a0716fe6c9368ab88f6d5e2a8669515bcc000a"; }
|
{ locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "8d19043416484c382fc9caec5dff4914fbc28feefd41a089591ef2b21f822a43"; }
|
||||||
{ locale = "hr"; arch = "linux-i686"; sha256 = "f36e7b656e5898191801d6e04f3ebef9f9f7080c011dd695ddccfe12c3cb2f6b"; }
|
{ locale = "hr"; arch = "linux-i686"; sha256 = "995a6dd027a5a6b2123c62b74f524db53940e2c8fa6c7254dc41dca236f7889b"; }
|
||||||
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "9c553d5312363980364c6a9a6591fe5e0229668ff1de3a78943af18235098eee"; }
|
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "4410e7d1cbce028de083b82ee68f442d27c2219544ec1be72ef2c274cb7c445a"; }
|
||||||
{ locale = "hsb"; arch = "linux-i686"; sha256 = "e58662111147e836ac404cf7fc9d9e52ac141b204004c813c6b8d180a378af57"; }
|
{ locale = "hsb"; arch = "linux-i686"; sha256 = "0dcb0de11e35475cab33e11b08b88ff766915d7d98ceeb466a0fee90883ebaed"; }
|
||||||
{ locale = "hsb"; arch = "linux-x86_64"; sha256 = "5aa7dcce6e48dfcb7b8b4f9f48b4bdd496bd606d901896fd37f2a2cd6b4a06bf"; }
|
{ locale = "hsb"; arch = "linux-x86_64"; sha256 = "1695167eea386aec4fca23bb0bf4e5b83876a22f8c584f4e81886be229e9a43b"; }
|
||||||
{ locale = "hu"; arch = "linux-i686"; sha256 = "d352b7d67ebbd5e45f972a804cccbb769f6a79700506297c0808d2f9b0f5ca8d"; }
|
{ locale = "hu"; arch = "linux-i686"; sha256 = "31026a26c9fa9b3777c2f9dd1d55da7e0204e4d98586f887b67588ccb86c3843"; }
|
||||||
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "0f7e5cf8306e1fa9b8ab56cdb39b5ca1fe2ff1a3f4ded38e5982bbd842438dde"; }
|
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "82d8fbe932765f100a116b6d572035297be2f027b4f0e0ba84ef88cb4b651000"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "bf057113e03190fbfc6947f24a0fb432f53991f02e56d2b5e8270002cd742d4d"; }
|
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "864c112f13628bd9bc715a6a405dc92c3f8027b0e505722d819b84775fb27066"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "aa0fdba0a703f06ab5a6b667448316f9de9729c20602fecaf872d14e43a0b822"; }
|
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "dddd71e651056c373225baab9bb190810f8ed6849abfa76587fcd05cc5060d89"; }
|
||||||
{ locale = "id"; arch = "linux-i686"; sha256 = "eb8fc36302a63113e9891f8153aeffc1da4f990f1473d9d779f28df6658bada0"; }
|
{ locale = "id"; arch = "linux-i686"; sha256 = "3425906d6513d3e06286b9b3c62c30d702a47a3d7a31638a58f926e2fa4a254f"; }
|
||||||
{ locale = "id"; arch = "linux-x86_64"; sha256 = "6f2262e13a649499a0783922a3f2d85a71727ef37629a529f084590828746bca"; }
|
{ locale = "id"; arch = "linux-x86_64"; sha256 = "095d970add8bf54fc2fb2581532013f4792f648b58fa12d49a6a859f26a0e579"; }
|
||||||
{ locale = "is"; arch = "linux-i686"; sha256 = "312f1af8601c24417672383063085f1c588d9301a09ddeef15b8c54e130547ff"; }
|
{ locale = "is"; arch = "linux-i686"; sha256 = "f3687eb0e7ce24e14621345543abdf2b92435466ededc98a4ec4a117c4593c3c"; }
|
||||||
{ locale = "is"; arch = "linux-x86_64"; sha256 = "ed3165767c2a14329869930d2b618a5a795d3c3d34e06cbae0d1694ccdfb0c97"; }
|
{ locale = "is"; arch = "linux-x86_64"; sha256 = "dbac8774c64e6c978a3eb900cf61d85a210d0c39c28df4a21e4295ba5febd0ea"; }
|
||||||
{ locale = "it"; arch = "linux-i686"; sha256 = "7555b6f4aac9bcc270fcd5204d15a3cb7b84cdd845f66cea2fbb843315100107"; }
|
{ locale = "it"; arch = "linux-i686"; sha256 = "62091c6f5214f4717462d9e2f6bacd7f30417b7e714de3fdec6fc2f703970eb7"; }
|
||||||
{ locale = "it"; arch = "linux-x86_64"; sha256 = "b6c2799434bceda271a004769372dfe416584953be5950fe7125920e4e428737"; }
|
{ locale = "it"; arch = "linux-x86_64"; sha256 = "480b9ffd4326a9a2e2002510027a15d4fdaf8ba1ea023ee6e55b2aa78b119a6c"; }
|
||||||
{ locale = "ja"; arch = "linux-i686"; sha256 = "e8606fc60aaf6ba91a2616dc991d268e8099eb8d5d3eb3c19fdeace93c6453a7"; }
|
{ locale = "ja"; arch = "linux-i686"; sha256 = "ef143bf31fa67cab3ccafc0083d81ffa8997e3365312b12312623755eb24f48d"; }
|
||||||
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "5da4d4c307d661868ff7076e2fc1d929e9d3b9816be25adeba02bd4f9a56f15b"; }
|
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "f74808de8fb999dceb067b3fda64e891c37bde7190e9eff68f1693f5b5feae0d"; }
|
||||||
{ locale = "kk"; arch = "linux-i686"; sha256 = "f77db4c679c687bd33ed125419666226989ef5da88c2a4c8a81aea0ece602e25"; }
|
{ locale = "kk"; arch = "linux-i686"; sha256 = "a532d49011b632aa83f6b881b39c74bcb66fab0237e3e4f8682445aa0a053d4c"; }
|
||||||
{ locale = "kk"; arch = "linux-x86_64"; sha256 = "3af207c5e2b6bf089739056f2be6e585529c87d5f142e7100fee55728faaf785"; }
|
{ locale = "kk"; arch = "linux-x86_64"; sha256 = "7f32ee329e8281e89472b092248a26e1d38089bdc9830d2d1d0b1af8230ca20b"; }
|
||||||
{ locale = "km"; arch = "linux-i686"; sha256 = "d48c3f0952d354b9c6539d9e333a8e9c359006a25f1ca6a0895f7e3344504f70"; }
|
{ locale = "km"; arch = "linux-i686"; sha256 = "34ecf596b0870aca2db30513ef5d6522d86caf70fce38b23a7bff08c55551b69"; }
|
||||||
{ locale = "km"; arch = "linux-x86_64"; sha256 = "5bc3f65a205a78b110293df5a94a9bde27a491d61b1f9e340a7fe983c1ee1b3f"; }
|
{ locale = "km"; arch = "linux-x86_64"; sha256 = "6e7efd621e941674038887d1e8d90c36d0ac06a095386caa01d228494228be14"; }
|
||||||
{ locale = "kn"; arch = "linux-i686"; sha256 = "50efbbad9ea231a9281a00dc702d9c6103bfd09b712b45b6809d78a176714897"; }
|
{ locale = "kn"; arch = "linux-i686"; sha256 = "062ebd6b27ef9094e65e60ad64be30470ed58eb2d92f247a87a781b97e0654d9"; }
|
||||||
{ locale = "kn"; arch = "linux-x86_64"; sha256 = "001f41e86fcf93fd6a714e5ee0450fe8424bbb3ff40cebad29cb233cb0667bca"; }
|
{ locale = "kn"; arch = "linux-x86_64"; sha256 = "e88428b1cd2e1919336dda303d8795bd02e4967ba8c6d2830205f68fa4c528d0"; }
|
||||||
{ locale = "ko"; arch = "linux-i686"; sha256 = "11539b78bc650b19be2d25af10242a61ee043b47a15000f2e07e50df00875e2e"; }
|
{ locale = "ko"; arch = "linux-i686"; sha256 = "6c43a7f86f908cccc7ca3a7ed45f95ea84b69e4a21ff1e1d58136ea19bf7bd2c"; }
|
||||||
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "a4f0b466c5d544f0abecec8861e1d24132755fff54091a49370414ba27c9cc7f"; }
|
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "9db2bfd818d82ee0c9bc35b6fd651ad8fe80f8d73d51326fde25fc4c2aaa295c"; }
|
||||||
{ locale = "lij"; arch = "linux-i686"; sha256 = "eede4d95ac6c7f55b312aaadce690016732bb143f3926c1d1533f64efd7306e8"; }
|
{ locale = "lij"; arch = "linux-i686"; sha256 = "be87fc2a6863f33f9ff9ad2990e1e6425a65002f2ee411a254dde80cbd5a31c4"; }
|
||||||
{ locale = "lij"; arch = "linux-x86_64"; sha256 = "6900bfd4af3146881cc045eed187b88a58ea0fe3e0ed6acbff034f68f43b5935"; }
|
{ locale = "lij"; arch = "linux-x86_64"; sha256 = "9cfb239df8195cfa355bc8ddaf63accd865de21086c5bc3180b2ad9886445f3e"; }
|
||||||
{ locale = "lt"; arch = "linux-i686"; sha256 = "4cdf1ced9a687daa34235ae82aa439d69e517d5c31b8f61e12615f361440a54a"; }
|
{ locale = "lt"; arch = "linux-i686"; sha256 = "11e18e6baac8f31c62a301e8ee51056c707ca47332fbeb6f3492e8eaffa25c57"; }
|
||||||
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "873f75d77adc9c142f64523c199799f7e9b0460ae0252c514fc1caa5ac5dcdb0"; }
|
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "3bb4dca607abc4e08300dfa61667d2f2b06661f47cf0029d078e14fa4686d4b8"; }
|
||||||
{ locale = "lv"; arch = "linux-i686"; sha256 = "65af6b876aeda23827c57d5886cc67665fe2c3fe93cfc2cc5b614400828b6eb7"; }
|
{ locale = "lv"; arch = "linux-i686"; sha256 = "bc484992f230229ab4ab6d47fab9664f43341ad1202010f5dea91d2d78200c85"; }
|
||||||
{ locale = "lv"; arch = "linux-x86_64"; sha256 = "1b2f6ef94bb5a1ea999af797e2aa8ff267b4a9945fd0e8afc6c9df12273ce60d"; }
|
{ locale = "lv"; arch = "linux-x86_64"; sha256 = "42bdc60ad7edf2ed3e82f765abfc3815f98095adc2988f8d809a8834eada63ef"; }
|
||||||
{ locale = "mai"; arch = "linux-i686"; sha256 = "65fec172ddfce096f367338c8b95b32fb2415655e900f8dc628b8ac660270e48"; }
|
{ locale = "mai"; arch = "linux-i686"; sha256 = "628f0685185f91e695af5ce9a536d9263305cfd747683ef33dccd0c90f3e1bfb"; }
|
||||||
{ locale = "mai"; arch = "linux-x86_64"; sha256 = "238a78c2bb240609fd0c777399d3307ef659b95cf4e88ae85700321030000eb7"; }
|
{ locale = "mai"; arch = "linux-x86_64"; sha256 = "688c33b159b4fcd23fb4c6d3a7f845d03929b4a8b02eaa2ebb93682b396c73a2"; }
|
||||||
{ locale = "mk"; arch = "linux-i686"; sha256 = "e591486c66c9b7175b1ab180e9646976a413338dca225eb50d7db457f95afe98"; }
|
{ locale = "mk"; arch = "linux-i686"; sha256 = "a59b2a8ee82513ef78f3509afc4dba75ec3128f0f42c657bbbfbad117b981b36"; }
|
||||||
{ locale = "mk"; arch = "linux-x86_64"; sha256 = "f8d04696d02b0af221b8642d4780d79a76be68c07096c7f9c5915a9db6d5f768"; }
|
{ locale = "mk"; arch = "linux-x86_64"; sha256 = "3058ff9ac581a65ee0713fe3707f8b98eace0f833b8e7b901fa397538e9503f0"; }
|
||||||
{ locale = "ml"; arch = "linux-i686"; sha256 = "19dd334052bd9c98ec9afe7b8e5141728b25d2278b7b946921b031aaedd01b2d"; }
|
{ locale = "ml"; arch = "linux-i686"; sha256 = "43c80f530ad3eaf7c138e16b23b9eb32afc1f774374fe213f580cf68e4d0e245"; }
|
||||||
{ locale = "ml"; arch = "linux-x86_64"; sha256 = "a307739cb6de6f80258c28797125f78fe7746d0edd3182e3716f312f1b0915f8"; }
|
{ locale = "ml"; arch = "linux-x86_64"; sha256 = "43f061317f9eb5a174cd13539bb3972535b552113d38c05d9888e7a37346ef22"; }
|
||||||
{ locale = "mr"; arch = "linux-i686"; sha256 = "c86343db611dbca1b8fac25ea1e9364b30fcd6c31d5c856f699bacf6e4128c3c"; }
|
{ locale = "mr"; arch = "linux-i686"; sha256 = "30c0ee68eadffcc95271f1e7c1c1b0151ee21ca3744fad61a723a9a6bfb751b0"; }
|
||||||
{ locale = "mr"; arch = "linux-x86_64"; sha256 = "b25fd422e6b3b1535fbb8839d04a77dec22dfcc0abf14062f5465c0a5aa5c99c"; }
|
{ locale = "mr"; arch = "linux-x86_64"; sha256 = "d9dd27af41ca021f323499be556d208f69b706aff079c8d7392c7f19092705d8"; }
|
||||||
{ locale = "ms"; arch = "linux-i686"; sha256 = "e437939df4de54d415224db8fbf6ce9e8ae21fc0402052a72612085c73faa493"; }
|
{ locale = "ms"; arch = "linux-i686"; sha256 = "adb5e1968c66378ff9b59dc57c00a2c953ad1f54f67e1bc40abc499bcf79653f"; }
|
||||||
{ locale = "ms"; arch = "linux-x86_64"; sha256 = "5d9051de7a1bdc68018511d38e29658f00c0db113438a3ec84e68fa99b89f760"; }
|
{ locale = "ms"; arch = "linux-x86_64"; sha256 = "3e4b43a88b3aa2887673e1962fa4ccbd895640113e683c849a3c9733677e1fe1"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "04d0bdd6235a9321d1a5467c48240cbdb790485b580c1b818b048817fae22f49"; }
|
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "f4be0cff21abdc80fba10db2bf781fecfb4e503c70cb95a8b083c5f7123f8dc8"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "30afe02bd7090929841edc88eadcd745435f64189782d95477568b3b41cb107c"; }
|
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "e9b191268a6694805a5ba86559e798c9a4e29eae39a7f64dab92a925fb31611d"; }
|
||||||
{ locale = "nl"; arch = "linux-i686"; sha256 = "83b01feb621cb9c7c64edb125c19aa0765bc2d16b2c20551be12690f835539da"; }
|
{ locale = "nl"; arch = "linux-i686"; sha256 = "581c73084993be0bf1ab23bb468674d062fb98e99573d823e977a263b4cfaa91"; }
|
||||||
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "c5af070524b828313a5e819f4c446cdc7a72f6bffd62e734bb8752438e5d28ef"; }
|
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "3fd8929341ae048187379b7648ec8e008ace53e4a5f0af1421ecabcb5ad3bf61"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "527c9c2dd61a318c5b6ca5e9b26ee9b81b71ae8d7c23cdab6efee1bb5caaa685"; }
|
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "b2104d5895a727903f6a273888989887542ad9e61c998cc651bb24d64efc6cfd"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "6f3d800c347a70c5ed7a8838365599c7401e4805037f5e980865794d395b416a"; }
|
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "1bf582e66da985cbb01c22f865fc291196c55b14d2f84516f68f184ea842a664"; }
|
||||||
{ locale = "or"; arch = "linux-i686"; sha256 = "e5f9ba3ebe3d641b3dd948ec51dd25671327a35e5ee87b274079a8a3ce7a26b1"; }
|
{ locale = "or"; arch = "linux-i686"; sha256 = "1ffbc776fb3ae030e6dedea009b71873bff57f9294e63331404b53e1ba36499c"; }
|
||||||
{ locale = "or"; arch = "linux-x86_64"; sha256 = "53fea5b84051fea6c247fe2baf9f9d3c87b3f78d4655fc8509068fd60ff3c942"; }
|
{ locale = "or"; arch = "linux-x86_64"; sha256 = "b988f433a238b2cb3766042d911a1f002a5f91a47dbed5b937f70cb59ed060d2"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "dc8d60a3f94da475fea5c1c748c52072f69d4642ea2c3b305e92c56fb3b09324"; }
|
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "6ba4941b5bef7b860194114c2704662a42f9f3007a0b634662e42f38c0aa601a"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "c06eb60b39cef2564e248e3d9dd711b863e46cc6d45803002c641a1335927bdc"; }
|
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "0d9920d4b358cfdcf8cdf4b2d2e07ceb191709eee9dbae4c59f9dbfcfffbf0f5"; }
|
||||||
{ locale = "pl"; arch = "linux-i686"; sha256 = "95cbcf68c03ed83590b6e257003282d710c8dd366fd75bd218880735731ed7d2"; }
|
{ locale = "pl"; arch = "linux-i686"; sha256 = "e080fb35bf49f9eb2fc39a435a188164eedf2ea7a24f8e950d62567620a91954"; }
|
||||||
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "9f59a86501cbb9d8813fbf5812646e87d400f136f2cca5d791dd5ac0bc4964c9"; }
|
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "cc37624f0c1e82d2de2048129f58e85fe8a518ee4b0ebdbee0a5205517602cf9"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "690772121588229f34e9a9d5e6042c56a3fdb9fdcafea53f45a12997cd1d1e53"; }
|
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "d19bf65889c686cbb284e697e8ba1315b6ec004b57096725fb576898ef105346"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "fce60e0a3787a2362bdab4d566766c22a4b4f777d1dde7552e195eefc8fe98b1"; }
|
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "0d00d2d0bbc6045117c4df93045f70ebe0468e004504a06dfc508bfca6c6df1f"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "35a4981bc819fa7cba9e2f73ebb28eafd68b464eacc9da4e3e651882ae8b84bd"; }
|
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "5225afadf2ea62792376dfda1d2b3533d986f1ee3a281781a5be294b8883ac8b"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "eb4f25e99cc681a6113f9de016a6993e46575caba84f5cba6195c88379e4e661"; }
|
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "0c1d841ba80e32d51d41c99b551e68c6b591e97af4ccee4d7c7d6ef03f8707ea"; }
|
||||||
{ locale = "rm"; arch = "linux-i686"; sha256 = "cef140f0b0c4da31235147871679d009f05aeec3e1b138e56bd6acabf79cb666"; }
|
{ locale = "rm"; arch = "linux-i686"; sha256 = "2cc9200a132c967a7158f5422dad8f4b2d90dfc7e46ada305daebabc44806de8"; }
|
||||||
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "e6aba016e9909cc43a9ab285ed8cbfc15dadf2cf7bba9c78ba340512dd9bbcc5"; }
|
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "0dff628773d4f2e24b767501b9c768586a27e82c0e8b259ef1cc676985ad0125"; }
|
||||||
{ locale = "ro"; arch = "linux-i686"; sha256 = "d159bd682f8db01fea12e25bc0d4c24ef2ffffca07b3c5d64223ae75d6f77d23"; }
|
{ locale = "ro"; arch = "linux-i686"; sha256 = "500142fe612fe6144a14ebaad486da04050940a755e205297473c1be6b9dc428"; }
|
||||||
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "e82f1ad5461e25c25a8c6db480a733e95b81578ec280e93a52b00b650211a0ac"; }
|
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "f3a57abec8553c8b9d8db9fb5600cd7b6e1189ebf0225df96608eaf2863e41b3"; }
|
||||||
{ locale = "ru"; arch = "linux-i686"; sha256 = "fc2e1166c4d9614bcf9c8ccd01aa157bc229cccbdcd2854bbc52302465d24d75"; }
|
{ locale = "ru"; arch = "linux-i686"; sha256 = "1266ed09db881af90794bef049cdfee777d7179026de8c0de2931275f3f288e9"; }
|
||||||
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "c08fcc4457bad70ff5861168364306753df7f03d7817a52dda8c6aad74bde389"; }
|
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "0f1b44177633149aaa31574ba3cf343971bd4e11ac6b4bb92a5875b6a30a42af"; }
|
||||||
{ locale = "si"; arch = "linux-i686"; sha256 = "78f60d4ba047d323ec2a36e2f8a775d86bb2c00bb671009105f5fe368419366f"; }
|
{ locale = "si"; arch = "linux-i686"; sha256 = "e027afd86b00379c12e014b8d0d11a05811c598f53490edf7070e7acccbf0d79"; }
|
||||||
{ locale = "si"; arch = "linux-x86_64"; sha256 = "d9c84c673378721c0bc45e767176b879858ba0feacdeeca503e600567569ad33"; }
|
{ locale = "si"; arch = "linux-x86_64"; sha256 = "518c19c5351a2c1bd05afe63e9d8c2a0be3a9cedccf7aa1d84d1af9de7ecf7fd"; }
|
||||||
{ locale = "sk"; arch = "linux-i686"; sha256 = "1bbddd4c07cffc083997d3b43034438eccf8647bd9b078cbca86f63c50c588ae"; }
|
{ locale = "sk"; arch = "linux-i686"; sha256 = "e3dcda7406d00166a601b77fbdf0b84181ba5372f760eb08d5476fe9d219caef"; }
|
||||||
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "f8278a40b25bd24a951855b633218c8d0884fec7468291d947890f2e98310acb"; }
|
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "019c03ecd24f394b0ff76aff5cd9f0db017ffd3b8dd65388c4f5ee3188e77a6c"; }
|
||||||
{ locale = "sl"; arch = "linux-i686"; sha256 = "18e9f99de5847e996ab66202e8718d9844f26ffef771a236ae16ee68098853fa"; }
|
{ locale = "sl"; arch = "linux-i686"; sha256 = "a88391cc29643277f9d8c58a205ac959af825326b61c16361d4def6f7da31235"; }
|
||||||
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "bbc818432701696fd140e914943d076e4d11741180a04ea27f4be75ec3558d1c"; }
|
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "fcf45e13a0bc543988495a83e5e96400707564d2ed4fcd0579219c999ee71e83"; }
|
||||||
{ locale = "son"; arch = "linux-i686"; sha256 = "e1d8c54d8b1149f98adb1b46c4973e01fa76bb132f0df9b0f090c4ead0ec4676"; }
|
{ locale = "son"; arch = "linux-i686"; sha256 = "a75e273e01df51ffbe2c8666545f1e6f4d00af373d7aac08978947d7afc1e5f4"; }
|
||||||
{ locale = "son"; arch = "linux-x86_64"; sha256 = "a57f3971825a40c8dfce2d987384292f1ad3ebe6a96ff762bc38e69c6ce2889f"; }
|
{ locale = "son"; arch = "linux-x86_64"; sha256 = "9f28df29d980e6c7467e99b2b81740cb078ce8e6896fe4e2a6b1473770e6bef5"; }
|
||||||
{ locale = "sq"; arch = "linux-i686"; sha256 = "b452ab04c4bae6079bbdc293bc6c41882dac30ec1b1483340e49d072ecf2ced4"; }
|
{ locale = "sq"; arch = "linux-i686"; sha256 = "2243773d7d38608e17233e1d98e4fc1ca19f40f27a3e87557ad7fbd958c080ba"; }
|
||||||
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "b8aaff5e70e7690481a5c22fb2da97ce63de67246217fb106441173573aeb4d9"; }
|
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "c18faf9d8971c43db18fcc66329a85018a04e8cf4819c4843d826bc86414cadb"; }
|
||||||
{ locale = "sr"; arch = "linux-i686"; sha256 = "135f60c2012e63622d1a75cab6fd5f686fee71138b1f1f01e367fac0b3b583c8"; }
|
{ locale = "sr"; arch = "linux-i686"; sha256 = "0cd5e6a3910923aed9a88fafd95bc11263de7359c38685e209212339bb2f50dc"; }
|
||||||
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "ce464a8ec58fe19e037a26a1b94e346ad314eacbe94232f4b136e0fc7b3919ac"; }
|
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "1ec48c65323b15332932060ec5193908d89715736bd0abd88472dc05e639a62a"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "937bb415ca95996207c371d111a888f68a24d690db8c31b8c1df530b2b7b30a7"; }
|
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "6718eb3e71a3d4f5487b80bbd784fd61422345f94d3271f6de6f6feab9e2f6da"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "0ee83de9b3bb77a6e3d1120194700b720d441ee116f9728823c5a78f59d28a10"; }
|
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "5b356a6334d424b5e47ea4b1c32403a858ff5dc8727bbc0b2f72e6a29c9b625f"; }
|
||||||
{ locale = "ta"; arch = "linux-i686"; sha256 = "fb908dcbc4fa42c6472e4cb5bd9d8ae7c845bbf9965498091b32f7d1669ede24"; }
|
{ locale = "ta"; arch = "linux-i686"; sha256 = "fdb4e36497a61af9badb848a067eff4e4dada7dfffefbfe6bb7266ad89a8707a"; }
|
||||||
{ locale = "ta"; arch = "linux-x86_64"; sha256 = "5c8f1c1c09ff2eccf6becf9136f9da3517fabbb0192f157676962fd3bfd31bb8"; }
|
{ locale = "ta"; arch = "linux-x86_64"; sha256 = "de5f0b871425412f9f261eff5b1abb3ddbd40f588647fd8e174e2d6c5ba17b90"; }
|
||||||
{ locale = "te"; arch = "linux-i686"; sha256 = "5478af8e757d8282993afacd10fc78bc7a207fbdc50705d2d8a665aa98e5f910"; }
|
{ locale = "te"; arch = "linux-i686"; sha256 = "0cc82774a46580c9e2f890848f705b1dc4effac197a902f9d244f0b6f6258650"; }
|
||||||
{ locale = "te"; arch = "linux-x86_64"; sha256 = "719945b8d7a945e556137cc3bdc4a8d7ddf5693e4ac49a3884f912ec471da1f5"; }
|
{ locale = "te"; arch = "linux-x86_64"; sha256 = "65ceda67a572053dd4d9e15b9bd47c91364651736417414d4ca4a0a7ded9775a"; }
|
||||||
{ locale = "th"; arch = "linux-i686"; sha256 = "4f0dfccef932beec90f7de951bb2d454bedc192b376caf25c3ba89ecdb5de9df"; }
|
{ locale = "th"; arch = "linux-i686"; sha256 = "1c0084ed26218713c4606ab073bf09de888051e9dcc49652a87fb58209a8c614"; }
|
||||||
{ locale = "th"; arch = "linux-x86_64"; sha256 = "e14a4cdff4cc89f85043efbf56a82211f1040bc5b369c2113866efb639969017"; }
|
{ locale = "th"; arch = "linux-x86_64"; sha256 = "5a70e29d282961e27350d26cf164472fe51247db1d7d1228dca693423c32d0a6"; }
|
||||||
{ locale = "tr"; arch = "linux-i686"; sha256 = "aa5bc43997a6669b1c8da7b04a12c7a16ce8b1fedae8b0bb1a317c83176e88c5"; }
|
{ locale = "tr"; arch = "linux-i686"; sha256 = "f7fa2029a36eda63544beebb6534fc2f8432c87d7a8d08d4c8927275e659b686"; }
|
||||||
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "3a0a5883b4e4442985fa8e24a80d0849ac450a20d278858e1b3847974cc212f2"; }
|
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "1e3744f5908164e163818522fa902bd57edb62837b2b399983ea5a4ed487cda8"; }
|
||||||
{ locale = "uk"; arch = "linux-i686"; sha256 = "3ea926ea98fd3506cdcccc32266fd8910f7c6b563818d58fa9708872712daad9"; }
|
{ locale = "uk"; arch = "linux-i686"; sha256 = "0f465eda0f7e87eef88bc17b3e6868ad90a270e6993d327fecca532637442df4"; }
|
||||||
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "c1d596a00831ed30446f8a6f9e7b455329a402939d5c7318616ad182e9564aa5"; }
|
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "6530af36cfab509fff37519b435c7939110c000dbdd94000fe964283a14b1622"; }
|
||||||
{ locale = "uz"; arch = "linux-i686"; sha256 = "d17a26657562ee017388c878867ff43a1d1d86f80c86a18fcf63268b477bd889"; }
|
{ locale = "uz"; arch = "linux-i686"; sha256 = "7ee5997bcb4915c3907cee90e350e3bc2b67965975faecffa738a728cf2e12e3"; }
|
||||||
{ locale = "uz"; arch = "linux-x86_64"; sha256 = "7115c30ae7c0528f54aa8629402ddcfc54687e3a439d7a96c18f15e903e283c8"; }
|
{ locale = "uz"; arch = "linux-x86_64"; sha256 = "d7b34e36bcb423977a2a7667504c096730ca684c9f2e861b17e8f0174f5bb0d0"; }
|
||||||
{ locale = "vi"; arch = "linux-i686"; sha256 = "37fe2af25d7068569770573e605f3d325e41169b3b0a82ca4ff007a0636b155b"; }
|
{ locale = "vi"; arch = "linux-i686"; sha256 = "e9497a8eed98ec34b31e3b1ec7086a4d219121f0edf21fd8f6a01599afa41f12"; }
|
||||||
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "5bb2b8a27065b9a71a06dbec136a1774e43fbe27a30a03092f718042d58ec26c"; }
|
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "b94fbaee83014b88490bf19cc37dbda87fb9260ed5879be3b688a2abbe709a87"; }
|
||||||
{ locale = "xh"; arch = "linux-i686"; sha256 = "fa44efebbc0f1174ad10f540668447ddf6bd26a2c918694dd11e63e4d6f36b9c"; }
|
{ locale = "xh"; arch = "linux-i686"; sha256 = "d5a86db6b9f3bb5162a86f976cbbc01f542a924c05729eb54a2c24dabc711065"; }
|
||||||
{ locale = "xh"; arch = "linux-x86_64"; sha256 = "2c179d4613b0b7456d900f9b6c02a1041c39d4cf98a0ca0ea2ea97d1d7546199"; }
|
{ locale = "xh"; arch = "linux-x86_64"; sha256 = "d765b2d324e89119fee522ad8972031c8727841c2fa2700d010be7d23633bbbc"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "e3c06fbffb4b2c135d31499d1a3490d23baedbed5125b46a4153ad9d60ea2fa8"; }
|
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "fb3bbc44952207f42112c291dccb82f02fbd23bba7b54b06a1047809d2bb18d2"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "3402f491b016e791c9f40f8ac5df5f7017dd6dd71d872020a27eae3634e4fb52"; }
|
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "255d19959cb0e0efbcb2eeceb39b43bbb567ab2474af4da6675574a0110781e1"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "c77d79a6b1602c9f8c6538be18c974b8557af3ad3898910e1bccfe0a54993207"; }
|
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "cfc90ac621dc57d7eb922c564aa3a7d5ad7f2aacc95196606d34cba7b7e30d1a"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "651e4a28750ea9376636293b934cf646b0e6981825a9801fe8bf47785114e34d"; }
|
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "ff119be821acb8f99a485a60de506123c76a7a3a13ac678576248f97ff1ab882"; }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -133,14 +133,14 @@ in {
|
|||||||
|
|
||||||
firefox-unwrapped = common {
|
firefox-unwrapped = common {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
version = "44.0";
|
version = "44.0.2";
|
||||||
sha256 = "07ac1h6ib36nm4a0aykh1z36vgw6wqlblil0zsj0lchdhksb10pa";
|
sha256 = "17id7ala1slb2mjqkikryqjadcsmdzqmkxrrnb5m1316m50qichb";
|
||||||
};
|
};
|
||||||
|
|
||||||
firefox-esr-unwrapped = common {
|
firefox-esr-unwrapped = common {
|
||||||
pname = "firefox-esr";
|
pname = "firefox-esr";
|
||||||
version = "38.5.2esr";
|
version = "38.6.1esr";
|
||||||
sha256 = "0xqirpiys2pgzk9hs4s93svknc0sss8ry60zar7n9jj74cgz590m";
|
sha256 = "1zyhzczhknplxfmk2r7cczavbsml8ckyimibj2sphwdc300ls5wi";
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
, gnash, flashplayer, hal-flash
|
, gnash, flashplayer, hal-flash
|
||||||
, MPlayerPlugin, gecko_mediaplayer, gst_all, xorg, libpulseaudio, libcanberra
|
, MPlayerPlugin, gecko_mediaplayer, gst_all, xorg, libpulseaudio, libcanberra
|
||||||
, supportsJDK, jrePlugin, icedtea_web
|
, supportsJDK, jrePlugin, icedtea_web
|
||||||
, trezor-bridge, bluejeans, djview4
|
, trezor-bridge, bluejeans, djview4, adobe-reader
|
||||||
, google_talk_plugin, fribid, gnome3/*.gnome_shell*/
|
, google_talk_plugin, fribid, gnome3/*.gnome_shell*/
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -41,6 +41,7 @@ let
|
|||||||
++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome_shell
|
++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome_shell
|
||||||
++ lib.optional (cfg.enableTrezor or false) trezor-bridge
|
++ lib.optional (cfg.enableTrezor or false) trezor-bridge
|
||||||
++ lib.optional (cfg.enableBluejeans or false) bluejeans
|
++ lib.optional (cfg.enableBluejeans or false) bluejeans
|
||||||
|
++ lib.optional (cfg.enableAdobeReader or false) adobe-reader
|
||||||
);
|
);
|
||||||
libs = [ gst_all.gstreamer gst_all.gst-plugins-base ]
|
libs = [ gst_all.gstreamer gst_all.gst-plugins-base ]
|
||||||
++ lib.optionals (cfg.enableQuakeLive or false)
|
++ lib.optionals (cfg.enableQuakeLive or false)
|
||||||
|
@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
|
|||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.urkud ];
|
maintainers = [ maintainers.urkud ];
|
||||||
description = "KDE Webkit browser";
|
description = "KDE Webkit browser";
|
||||||
homepage = http://rekonq.sourceforge.net;
|
homepage = https://rekonq.kde.org/;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "marathon-${version}";
|
name = "marathon-${version}";
|
||||||
version = "0.14.1";
|
version = "0.15.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.mesosphere.io/marathon/v${version}/marathon-${version}.tgz";
|
url = "https://downloads.mesosphere.io/marathon/v${version}/marathon-${version}.tgz";
|
||||||
sha256 = "0vdl7jf7yhb985dj3v46qnqjv1zwfkyizlsyf9c5dq7khvxrp1l4";
|
sha256 = "1ch3nvcwj7pzjjqw4k07gdf7nmdbfkks5j07wl3518bagjqrajj2";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper jdk mesos ];
|
buildInputs = [ makeWrapper jdk mesos ];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf
|
{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf
|
||||||
, automake114x, libtool, unzip, gnutar, jdk, maven, python, wrapPython
|
, automake115x, libtool, unzip, gnutar, jdk, maven, python, wrapPython
|
||||||
, setuptools, boto, pythonProtobuf, apr, subversion
|
, setuptools, boto, pythonProtobuf, apr, subversion, gzip
|
||||||
, leveldb, glog, perf, utillinux, libnl, iproute
|
, leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -9,25 +9,26 @@ let
|
|||||||
soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so";
|
soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so";
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
version = "0.23.0";
|
version = "0.26.0";
|
||||||
name = "mesos-${version}";
|
name = "mesos-${version}";
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://apache/mesos/${version}/${name}.tar.gz";
|
url = "mirror://apache/mesos/${version}/${name}.tar.gz";
|
||||||
sha256 = "1v5xpn4wal4vcrvcklchx9slkpa8xlwqkdbnxzy9zkzpq5g3arxr";
|
sha256 = "0csvaql9gky15w23gmiw6cvlfnrlhfxvdqd2pv3j3grr44ph0ab5";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# https://reviews.apache.org/r/36610/
|
# https://reviews.apache.org/r/36610/
|
||||||
./rb36610.patch
|
./rb36610.patch
|
||||||
|
./maven_repo.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
makeWrapper autoconf automake114x libtool curl sasl jdk maven
|
makeWrapper autoconf automake115x libtool curl sasl jdk maven
|
||||||
python wrapPython boto setuptools leveldb
|
python wrapPython boto setuptools leveldb
|
||||||
subversion apr glog
|
subversion apr glog openssl libevent
|
||||||
] ++ lib.optionals stdenv.isLinux [
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
libnl
|
libnl
|
||||||
];
|
];
|
||||||
@ -37,17 +38,18 @@ in stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export MAVEN_OPTS="-Dmaven.repo.local=${mavenRepo}"
|
substituteInPlace src/Makefile.am --subst-var-by mavenRepo ${mavenRepo}
|
||||||
|
|
||||||
substituteInPlace src/launcher/fetcher.cpp \
|
substituteInPlace src/launcher/fetcher.cpp \
|
||||||
|
--replace '"gzip' '"${gzip}/bin/gzip' \
|
||||||
--replace '"tar' '"${gnutar}/bin/tar' \
|
--replace '"tar' '"${gnutar}/bin/tar' \
|
||||||
--replace '"unzip' '"${unzip}/bin/unzip'
|
--replace '"unzip' '"${unzip}/bin/unzip'
|
||||||
|
|
||||||
substituteInPlace src/cli/mesos-scp \
|
substituteInPlace src/cli/mesos-scp \
|
||||||
--replace "'scp " "'${openssh}/bin/scp "
|
--replace "'scp " "'${openssh}/bin/scp "
|
||||||
|
|
||||||
substituteInPlace src/cli/python/mesos/cli.py \
|
substituteInPlace src/python/cli/src/mesos/cli.py \
|
||||||
--replace "['mesos-resolve'" "['$out/bin/mesos-resolve'"
|
--replace "['mesos-resolve'" "['$out/bin/mesos-resolve'"
|
||||||
|
|
||||||
'' + lib.optionalString (stdenv.isLinux) ''
|
'' + lib.optionalString (stdenv.isLinux) ''
|
||||||
|
|
||||||
@ -57,13 +59,13 @@ in stdenv.mkDerivation rec {
|
|||||||
substituteInPlace src/linux/perf.cpp \
|
substituteInPlace src/linux/perf.cpp \
|
||||||
--replace '"perf ' '"${perf}/bin/perf '
|
--replace '"perf ' '"${perf}/bin/perf '
|
||||||
|
|
||||||
substituteInPlace src/slave/containerizer/isolators/filesystem/shared.cpp \
|
substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/shared.cpp \
|
||||||
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
||||||
|
|
||||||
substituteInPlace src/slave/containerizer/isolators/namespaces/pid.cpp \
|
substituteInPlace src/slave/containerizer/mesos/isolators/namespaces/pid.cpp \
|
||||||
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
||||||
|
|
||||||
substituteInPlace src/slave/containerizer/isolators/network/port_mapping.cpp \
|
substituteInPlace src/slave/containerizer/mesos/isolators/network/port_mapping.cpp \
|
||||||
--replace '"tc ' '"${iproute}/bin/tc ' \
|
--replace '"tc ' '"${iproute}/bin/tc ' \
|
||||||
--replace '"ip ' '"${iproute}/bin/ip ' \
|
--replace '"ip ' '"${iproute}/bin/ip ' \
|
||||||
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
--replace '"mount ' '"${utillinux}/bin/mount ' \
|
||||||
@ -79,6 +81,10 @@ in stdenv.mkDerivation rec {
|
|||||||
"--with-glog=${glog}"
|
"--with-glog=${glog}"
|
||||||
"--enable-optimize"
|
"--enable-optimize"
|
||||||
"--disable-python-dependency-install"
|
"--disable-python-dependency-install"
|
||||||
|
"--enable-ssl"
|
||||||
|
"--with-ssl=${openssl}"
|
||||||
|
"--enable-libevent"
|
||||||
|
"--with-libevent=${libevent}"
|
||||||
] ++ lib.optionals stdenv.isLinux [
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
"--with-network-isolator"
|
"--with-network-isolator"
|
||||||
];
|
];
|
||||||
@ -107,6 +113,14 @@ in stdenv.mkDerivation rec {
|
|||||||
--prefix="$out"
|
--prefix="$out"
|
||||||
rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
|
rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
# optional python dependency for mesos cli
|
||||||
|
pushd src/python/cli
|
||||||
|
${python}/bin/${python.executable} setup.py install \
|
||||||
|
--install-lib=$out/lib/${python.libPrefix}/site-packages \
|
||||||
|
--old-and-unmanageable \
|
||||||
|
--prefix="$out"
|
||||||
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
@ -127,7 +141,7 @@ in stdenv.mkDerivation rec {
|
|||||||
# wrap the python programs
|
# wrap the python programs
|
||||||
for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do
|
for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do
|
||||||
wrapProgram "$out/bin/$prog" \
|
wrapProgram "$out/bin/$prog" \
|
||||||
--prefix PYTHONPATH ":" "$out/libexec/mesos/python"
|
--prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages"
|
||||||
true
|
true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
13
pkgs/applications/networking/cluster/mesos/maven_repo.patch
Normal file
13
pkgs/applications/networking/cluster/mesos/maven_repo.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index ae2740a..1df91a7 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -1310,7 +1310,7 @@ if HAS_JAVA
|
||||||
|
|
||||||
|
$(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom
|
||||||
|
@echo "Building mesos-$(PACKAGE_VERSION).jar ..."
|
||||||
|
- @cd $(abs_top_builddir)/src/java && $(MVN) -f mesos.pom clean package
|
||||||
|
+ @cd $(abs_top_builddir)/src/java && $(MVN) -f mesos.pom -Dmaven.repo.local=@mavenRepo@ clean package
|
||||||
|
|
||||||
|
# Convenience library for JNI bindings.
|
||||||
|
# TODO(Charles Reiss): We really should be building the Java library
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, jre, pythonPackages
|
{ stdenv, fetchzip, makeWrapper, jre, pythonPackages
|
||||||
, mesosSupport ? true, mesos
|
, mesosSupport ? true, mesos
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -6,11 +6,11 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "spark-${version}";
|
name = "spark-${version}";
|
||||||
version = "1.4.0";
|
version = "1.5.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchzip {
|
||||||
url = "mirror://apache/spark/${name}/${name}-bin-cdh4.tgz";
|
url = "mirror://apache/spark/${name}/${name}-bin-cdh4.tgz";
|
||||||
sha256 = "1w60xzzg9mcymin1pmqwx1mvcqmdpfyxhd2dmw5alhnrzi21ycxi";
|
sha256 = "0bgpz3bqj24flrbajzhbkz38fjsd53qmji1kls9izji8vprcjr5v";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
|
buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
|
||||||
@ -18,9 +18,13 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
untarDir = "${name}-bin-cdh4";
|
untarDir = "${name}-bin-cdh4";
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/{lib/${untarDir}/conf,bin}
|
mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java}
|
||||||
mv * $out/lib/${untarDir}
|
mv * $out/lib/${untarDir}
|
||||||
|
|
||||||
|
sed -e 's/INFO, console/WARN, console/' < \
|
||||||
|
$out/lib/${untarDir}/conf/log4j.properties.template > \
|
||||||
|
$out/lib/${untarDir}/conf/log4j.properties
|
||||||
|
|
||||||
cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
|
cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
|
||||||
export JAVA_HOME="${jre}"
|
export JAVA_HOME="${jre}"
|
||||||
export SPARK_HOME="$out/lib/${untarDir}"
|
export SPARK_HOME="$out/lib/${untarDir}"
|
||||||
@ -33,6 +37,7 @@ stdenv.mkDerivation rec {
|
|||||||
for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
|
for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
|
||||||
makeWrapper "$n" "$out/bin/$(basename $n)"
|
makeWrapper "$n" "$out/bin/$(basename $n)"
|
||||||
done
|
done
|
||||||
|
ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
30
pkgs/applications/networking/dyndns/cfdyndns/default.nix
Normal file
30
pkgs/applications/networking/dyndns/cfdyndns/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper, openssl }:
|
||||||
|
|
||||||
|
with rustPlatform;
|
||||||
|
|
||||||
|
buildRustPackage rec {
|
||||||
|
name = "cfdyndns-${version}";
|
||||||
|
version = "0.0.1";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "colemickens";
|
||||||
|
repo = "cfdyndns";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1mcdjykrgh0jq6k6y664lai8sbgzk6j7k0r944f43vg63d1jql5b";
|
||||||
|
};
|
||||||
|
|
||||||
|
depsSha256 = "0whs3fgmpb6g1mjajs3qs9g613x5dal4x6ghzzkpl73a9pgydkpn";
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper openssl ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp -p target/release/cfdyndns $out/bin/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "CloudFlare Dynamic DNS Client";
|
||||||
|
homepage = https://github.com/colemickens/cfdyndns;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = with maintainers; [ colemickens ];
|
||||||
|
};
|
||||||
|
}
|
@ -4,11 +4,11 @@
|
|||||||
, gsm, speex, portaudio, spandsp, libuuid
|
, gsm, speex, portaudio, spandsp, libuuid
|
||||||
}:
|
}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "0.4.16";
|
version = "0.4.17";
|
||||||
name = "baresip-${version}";
|
name = "baresip-${version}";
|
||||||
src=fetchurl {
|
src=fetchurl {
|
||||||
url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
|
url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
|
||||||
sha256 = "04a9d7il39b1kfqh7al0g0q8v32hphgjx8gkixrlp5qsqlzvk876";
|
sha256 = "106nagdyayyxj3q68bs3fsps5wnwzjh82vcmy98fp42j33q6yzny";
|
||||||
};
|
};
|
||||||
buildInputs = [zlib openssl libre librem pkgconfig
|
buildInputs = [zlib openssl libre librem pkgconfig
|
||||||
cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
|
cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
|
||||||
|
@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Plugin for Pidgin 2.x which implements OTR Messaging";
|
description = "Plugin for Pidgin 2.x which implements OTR Messaging";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainters = with maintainers; [ abbradar ];
|
maintainers = with maintainers; [ abbradar ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility";
|
description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainters = with maintainers; [ arobyn ];
|
maintainers = with maintainers; [ arobyn ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Plugin pack for Pidgin 2.x";
|
description = "Plugin pack for Pidgin 2.x";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainters = with maintainers; [ bdimcheff ];
|
maintainers = with maintainers; [ bdimcheff ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Telegram client forked from sigram";
|
description = "Telegram client forked from sigram";
|
||||||
homepage = "http://aseman.co/en/products/cutegram/";
|
homepage = "http://aseman.co/en/products/cutegram/";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainer = [ maintainers.profpatsch ];
|
maintainers = [ maintainers.profpatsch ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
|||||||
description = "A fork of libqtelegram by Aseman, using qmake";
|
description = "A fork of libqtelegram by Aseman, using qmake";
|
||||||
homepage = src.meta.homepage;
|
homepage = src.meta.homepage;
|
||||||
license = stdenv.lib.licenses.gpl3;
|
license = stdenv.lib.licenses.gpl3;
|
||||||
maintainer = [ maintainers.profpatsch ];
|
maintainers = [ maintainers.profpatsch ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
description = "Telegram API tools for QtQml and Qml";
|
description = "Telegram API tools for QtQml and Qml";
|
||||||
homepage = src.meta.homepage;
|
homepage = src.meta.homepage;
|
||||||
license = stdenv.lib.licenses.gpl3;
|
license = stdenv.lib.licenses.gpl3;
|
||||||
maintainer = [ maintainers.profpatsch ];
|
maintainers = [ maintainers.profpatsch ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
{ stdenv, fetchurl, libotr, automake, autoconf, libtool, glib, pkgconfig, irssi }:
|
{ stdenv, fetchFromGitHub, libotr, automake, autoconf, libtool, glib, pkgconfig, irssi }:
|
||||||
|
|
||||||
let
|
|
||||||
rev = "640e98c74b";
|
|
||||||
in
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "irssi-otr-20131007-${rev}";
|
name = "irssi-otr-${version}";
|
||||||
|
version = "1.0.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/cryptodotis/irssi-otr/tarball/${rev}";
|
owner = "cryptodotis";
|
||||||
name = "${name}.tar.gz";
|
repo = "irssi-otr";
|
||||||
sha256 = "0d08ianzhy20w0ld8xx7hgrp9psg54l37619pcdpqyrnlzkkdalz";
|
rev = "4ad3b7b6c85be0154ab3694fe9831796db20c4fe";
|
||||||
|
sha256 = "1hm1whx1wzlx4fh4xf2y68rx9x6whi8bsbrhd6hqjhskg5msssrg";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
|
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
|
||||||
sha256 = "0wpinar2cxyzq2j7ff7lznc08f0n6qjdm9aavsarbgdpaf2s1xvq";
|
sha256 = "0xyy0qm3h22b69if2hmg36jzvvljxb1w0zy2m2a28kdqfzpa6m8g";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with gst_all_1; [
|
buildInputs = with gst_all_1; [
|
||||||
@ -27,8 +27,6 @@ stdenv.mkDerivation rec {
|
|||||||
makeWrapper
|
makeWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = [ ./liferea-fix-notification-header-location.patch ];
|
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
for f in "$out"/bin/*; do
|
for f in "$out"/bin/*; do
|
||||||
wrapProgram "$f" \
|
wrapProgram "$f" \
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -Naur a/src/notification/libnotify.c b/src/notification/libnotify.c
|
|
||||||
--- a/src/notification/libnotify.c 2016-01-28 19:33:19.000000000 +0100
|
|
||||||
+++ b/src/notification/libnotify.c 2016-02-01 19:20:39.167580131 +0100
|
|
||||||
@@ -40,7 +40,7 @@
|
|
||||||
#include "ui/feed_list_view.h"
|
|
||||||
#include "ui/ui_tray.h"
|
|
||||||
|
|
||||||
-#include "notification/notification.h"
|
|
||||||
+#include "../notification.h"
|
|
||||||
|
|
||||||
static gboolean supports_actions = FALSE;
|
|
||||||
static gboolean supports_append = FALSE;
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user