mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-10 16:45:51 +03:00
Merge branch 'master' into staging
Conflicts (relatively simple): pkgs/applications/audio/spotify/default.nix pkgs/build-support/cc-wrapper/default.nix pkgs/development/compilers/cryptol/1.8.x.nix
This commit is contained in:
commit
dbae4f109f
6
.gitignore
vendored
6
.gitignore
vendored
@ -10,4 +10,8 @@ result-*
|
||||
/doc/manual.pdf
|
||||
.version-suffix
|
||||
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
|
||||
/pkgs/applications/kde-apps-*/tmp/
|
||||
/pkgs/development/libraries/kde-frameworks-*/tmp/
|
||||
/pkgs/desktops/plasma-*/tmp/
|
@ -14,5 +14,5 @@ manager.
|
||||
|
||||
Communication:
|
||||
|
||||
* [Mailing list](https://lists.science.uu.nl/mailman/listinfo/nix-dev)
|
||||
* [Mailing list](http://lists.science.uu.nl/mailman/listinfo/nix-dev)
|
||||
* [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)
|
||||
|
@ -1,6 +1,6 @@
|
||||
if ! builtins ? nixVersion || builtins.compareVersions "1.8" builtins.nixVersion == 1 then
|
||||
|
||||
abort "This version of Nixpkgs requires Nix >= 1.8, please upgrade!"
|
||||
abort "This version of Nixpkgs requires Nix >= 1.8, please upgrade! See https://nixos.org/wiki/How_to_update_when_nix_is_too_old_to_evaluate_nixpkgs"
|
||||
|
||||
else
|
||||
|
||||
|
@ -618,7 +618,7 @@ sed -i '/ = data_files/d' setup.py</programlisting>
|
||||
<screen>
|
||||
$ nix-env -i gem-nix
|
||||
$ gem-nix --no-user-install --nix-file=pkgs/development/interpreters/ruby/generated.nix yajl-ruby
|
||||
$ nix-build -A rubyLibs.yajl-ruby
|
||||
$ nix-build -A rubyPackages.yajl-ruby
|
||||
</screen>
|
||||
</section>
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
<xi:include href="introduction.xml" />
|
||||
<xi:include href="quick-start.xml" />
|
||||
<xi:include href="stdenv.xml" />
|
||||
<xi:include href="packageconfig.xml" />
|
||||
<xi:include href="meta.xml" />
|
||||
<xi:include href="language-support.xml" />
|
||||
<xi:include href="package-notes.xml" />
|
||||
|
85
doc/packageconfig.xml
Normal file
85
doc/packageconfig.xml
Normal file
@ -0,0 +1,85 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-packageconfig">
|
||||
|
||||
<title>nixpkgs global configuration</title>
|
||||
|
||||
<para>
|
||||
Nix packages can be configured to allow or deny certain
|
||||
options.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To apply the configuration edit <filename>~/.nixpkgs/config.nix</filename>
|
||||
and set it like
|
||||
<programlisting>
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
</programlisting>
|
||||
and will allow the Nix package manager to install unfree licensed packages.
|
||||
|
||||
The configuration as listed also applies to NixOS under <option>nixpkgs.config</option> set.
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Allow installing of packages that are distributed under unfree license by setting
|
||||
<programlisting>
|
||||
allowUnfree = true;
|
||||
</programlisting>
|
||||
or deny them by setting it to <literal>false</literal>.
|
||||
</para>
|
||||
<para>
|
||||
Same can be achieved by setting the environment variable:
|
||||
<programlisting>
|
||||
export NIXPKGS_ALLOW_UNFREE=1
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Whenever unfree packages are not allowed, single packages can
|
||||
still be allowed by a predicate function that accepts package
|
||||
as an argument and should return a boolean:
|
||||
<programlisting>
|
||||
allowUnfreePredicate = (pkg: ...);
|
||||
</programlisting>
|
||||
|
||||
Example to allow flash player only:
|
||||
<programlisting>
|
||||
allowUnfreePredicate = (pkg: pkgs.lib.hasPrefix "flashplayer-" pkg.name);
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Whenever unfree packages are not allowed, packages can still be
|
||||
whitelisted by their license:
|
||||
<programlisting>
|
||||
whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In addition to whitelisting licenses which are denied by the
|
||||
<literal>allowUnfree</literal> setting, you can also explicitely
|
||||
deny installation of packages which have a certain license:
|
||||
<programlisting>
|
||||
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
A complete list of licenses can be found in the file
|
||||
<filename>lib/licenses.nix</filename> of the nix package tree.
|
||||
</para>
|
||||
|
||||
</chapter>
|
@ -130,6 +130,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
|
||||
fullName = "Eclipse Public License 1.0";
|
||||
};
|
||||
|
||||
fdl12 = spdx {
|
||||
spdxId = "GFDL-1.2";
|
||||
fullName = "GNU Free Documentation License v1.2";
|
||||
};
|
||||
|
||||
free = {
|
||||
fullName = "Unspecified free software license";
|
||||
};
|
||||
|
@ -43,6 +43,7 @@
|
||||
chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
|
||||
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
|
||||
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
|
||||
cocreature = "Moritz Kiefer <moritz.kiefer@purelyfunctional.org>";
|
||||
codyopel = "Cody Opel <codyopel@gmail.com>";
|
||||
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
|
||||
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
|
||||
@ -105,6 +106,7 @@
|
||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
||||
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
||||
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||
@ -121,22 +123,26 @@
|
||||
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
||||
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
||||
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
||||
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
||||
olcai = "Erik Timan <dev@timan.info>";
|
||||
orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
|
||||
page = "Carles Pagès <page@cubata.homelinux.net>";
|
||||
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||
pjones = "Peter Jones <pjones@devalot.com>";
|
||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
|
||||
puffnfresh = "Brian McKenna <brian@brianmckenna.org>";
|
||||
qknight = "Joachim Schiele <js@lastlog.de>";
|
||||
ragge = "Ragnar Dahlen <r.dahlen@gmail.com>";
|
||||
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
||||
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
|
||||
refnil = "Martin Lavoie <broemartino@gmail.com>";
|
||||
@ -179,6 +185,7 @@
|
||||
viric = "Lluís Batlle i Rossell <viric@viric.name>";
|
||||
vizanto = "Danny Wilson <danny@prime.vc>";
|
||||
vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
|
||||
vmandela = "Venkateswara Rao Mandela <venkat.mandela@gmail.com>";
|
||||
vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";
|
||||
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
|
||||
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
|
||||
|
@ -32,6 +32,7 @@
|
||||
<xi:include href="configuration/configuration.xml" />
|
||||
<xi:include href="administration/running.xml" />
|
||||
<!-- <xi:include href="userconfiguration.xml" /> -->
|
||||
<xi:include href="development/development.xml" />
|
||||
<xi:include href="release-notes/release-notes.xml" />
|
||||
|
||||
<appendix xml:id="ch-options">
|
||||
|
@ -112,9 +112,9 @@ xlink:href="http://httpd.apache.org/docs/2.4/upgrading.html">Apache’s
|
||||
documentation</link> for details. If you wish to continue to use
|
||||
httpd 2.2, add the following line to your NixOS configuration:
|
||||
|
||||
rogramlisting>
|
||||
rvices.httpd.package = pkgs.apacheHttpd_2_2;
|
||||
programlisting>
|
||||
<programlisting>
|
||||
services.httpd.package = pkgs.apacheHttpd_2_2;
|
||||
</programlisting>
|
||||
|
||||
</para></listitem>
|
||||
|
||||
|
@ -148,9 +148,9 @@ if [ -n "$buildNix" ]; then
|
||||
if ! nix-build '<nixpkgs>' -A nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
|
||||
machine="$(uname -m)"
|
||||
if [ "$machine" = x86_64 ]; then
|
||||
nixStorePath=/nix/store/d34q3q2zj9nriq4ifhn3dnnngqvinjb3-nix-1.7
|
||||
nixStorePath=/nix/store/ffig6yaggbh12dh9y5pnf1grf5lqyipz-nix-1.8
|
||||
elif [[ "$machine" =~ i.86 ]]; then
|
||||
nixStorePath=/nix/store/qlah0darpcn6sf3lr2226rl04l1gn4xz-nix-1.7
|
||||
nixStorePath=/nix/store/lglhfp4mimfa5wzjjf1kqz6f5wlsj2mn-nix-1.8
|
||||
else
|
||||
echo "$0: unsupported platform"
|
||||
exit 1
|
||||
|
@ -176,7 +176,7 @@
|
||||
tox-bootstrapd = 166;
|
||||
cadvisor = 167;
|
||||
nylon = 168;
|
||||
|
||||
apache-kafka = 169;
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
nixbld = 30000; # start of range of uids
|
||||
|
5
nixos/modules/module-list.nix
Executable file → Normal file
5
nixos/modules/module-list.nix
Executable file → Normal file
@ -144,11 +144,13 @@
|
||||
./services/hardware/acpid.nix
|
||||
./services/hardware/amd-hybrid-graphics.nix
|
||||
./services/hardware/bluetooth.nix
|
||||
./services/hardware/freefall.nix
|
||||
./services/hardware/nvidia-optimus.nix
|
||||
./services/hardware/pcscd.nix
|
||||
./services/hardware/pommed.nix
|
||||
./services/hardware/sane.nix
|
||||
./services/hardware/tcsd.nix
|
||||
./services/hardware/tlp.nix
|
||||
./services/hardware/thinkfan.nix
|
||||
./services/hardware/udev.nix
|
||||
./services/hardware/udisks2.nix
|
||||
@ -168,6 +170,7 @@
|
||||
./services/mail/opensmtpd.nix
|
||||
./services/mail/postfix.nix
|
||||
./services/mail/spamassassin.nix
|
||||
./services/misc/apache-kafka.nix
|
||||
#./services/misc/autofs.nix
|
||||
./services/misc/cpuminer-cryptonight.nix
|
||||
./services/misc/cgminer.nix
|
||||
@ -290,6 +293,7 @@
|
||||
./services/networking/tcpcrypt.nix
|
||||
./services/networking/teamspeak3.nix
|
||||
./services/networking/tftpd.nix
|
||||
./services/networking/tlsdated.nix
|
||||
./services/networking/tox-bootstrapd.nix
|
||||
./services/networking/unbound.nix
|
||||
./services/networking/unifi.nix
|
||||
@ -369,6 +373,7 @@
|
||||
./system/boot/kernel.nix
|
||||
./system/boot/kexec.nix
|
||||
./system/boot/loader/efi.nix
|
||||
./system/boot/loader/loader.nix
|
||||
./system/boot/loader/generations-dir/generations-dir.nix
|
||||
./system/boot/loader/grub/grub.nix
|
||||
./system/boot/loader/grub/ipxe.nix
|
||||
|
@ -46,12 +46,14 @@ in
|
||||
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
||||
KDEDIRS = [ "" ];
|
||||
STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
|
||||
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
|
||||
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" "/lib/qt5/plugins" ];
|
||||
QML2_IMPORT_PATH = [ "/lib/qml" ];
|
||||
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
||||
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
||||
XDG_DATA_DIRS = [ "/share" ];
|
||||
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
||||
LIBEXEC_PATH = [ "/lib/libexec" ];
|
||||
};
|
||||
|
||||
environment.extraInit =
|
||||
|
@ -33,7 +33,8 @@ let
|
||||
zipModules = list:
|
||||
zipAttrsWith (n: v:
|
||||
if tail v != [] then
|
||||
if n == "_type" then (head v)
|
||||
if all (o: isAttrs o && o ? _type) v then mkMerge v
|
||||
else if n == "_type" then head v
|
||||
else if n == "warnings" then concatLists v
|
||||
else if n == "description" || n == "apply" then
|
||||
abort "Cannot rename an option to multiple options."
|
||||
@ -115,8 +116,8 @@ in zipModules ([]
|
||||
++ obsolete [ "nix" "proxy" ] [ "networking" "proxy" "default" ]
|
||||
|
||||
# KDE
|
||||
++ deprecated [ "kde" "extraPackages" ] [ "environment" "kdePackages" ]
|
||||
# ++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ] # !!! doesn't work!
|
||||
++ deprecated [ "kde" "extraPackages" ] [ "environment" "systemPackages" ]
|
||||
++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ]
|
||||
|
||||
# Multiple efi bootloaders now
|
||||
++ obsolete [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ]
|
||||
|
@ -156,6 +156,24 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
denyUSB = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
If true, then set <literal>GRKERNSEC_DENYUSB y</literal>.
|
||||
|
||||
This enables a sysctl with name
|
||||
<literal>kernel.grsecurity.deny_new_usb</literal>. Setting
|
||||
its value to <literal>1</literal> will prevent any new USB
|
||||
devices from being recognized by the OS. Any attempted
|
||||
USB device insertion will be logged.
|
||||
|
||||
This option is intended to be used against custom USB
|
||||
devices designed to exploit vulnerabilities in various USB
|
||||
device drivers.
|
||||
'';
|
||||
};
|
||||
|
||||
restrictProc = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
@ -31,6 +31,15 @@ in {
|
||||
<literal>guest</literal> by default, so you should delete
|
||||
this user if you intend to allow external access.
|
||||
'';
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
default = 5672;
|
||||
description = ''
|
||||
Port on which RabbitMQ will listen for AMQP connections.
|
||||
'';
|
||||
type = types.int;
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
@ -77,6 +86,7 @@ in {
|
||||
users.extraUsers.rabbitmq = {
|
||||
description = "RabbitMQ server user";
|
||||
home = "${cfg.dataDir}";
|
||||
createHome = true;
|
||||
group = "rabbitmq";
|
||||
uid = config.ids.uids.rabbitmq;
|
||||
};
|
||||
@ -87,14 +97,16 @@ in {
|
||||
description = "RabbitMQ Server";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
path = [ pkgs.rabbitmq_server ];
|
||||
path = [ pkgs.rabbitmq_server pkgs.procps ];
|
||||
|
||||
environment = {
|
||||
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
||||
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
||||
RABBITMQ_NODE_PORT = toString cfg.port;
|
||||
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
|
||||
RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
|
||||
SYS_PREFIX = "";
|
||||
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
||||
[ ${concatStringsSep "," cfg.plugins} ].
|
||||
@ -103,26 +115,22 @@ in {
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
||||
ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop";
|
||||
User = "rabbitmq";
|
||||
Group = "rabbitmq";
|
||||
PermissionsStartOnly = true;
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
};
|
||||
|
||||
postStart = ''
|
||||
rabbitmqctl wait ${cfg.dataDir}/pid
|
||||
'';
|
||||
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
|
||||
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
|
||||
|
||||
${optionalString (cfg.cookie != "") ''
|
||||
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
|
||||
chmod 400 ${cfg.dataDir}/.erlang.cookie
|
||||
chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie
|
||||
''}
|
||||
|
||||
mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq
|
||||
chown rabbitmq:rabbitmq /var/log/rabbitmq
|
||||
'';
|
||||
|
||||
postStart = mkBefore "until rabbitmqctl status; do sleep 1; done";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -20,23 +20,49 @@ in
|
||||
services.openldap = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "
|
||||
Whether to enable the ldap server.
|
||||
";
|
||||
example = literalExample ''
|
||||
openldap.enable = true;
|
||||
openldap.extraConfig = '''
|
||||
include ''${pkgs.openldap}/etc/openldap/schema/core.schema
|
||||
include ''${pkgs.openldap}/etc/openldap/schema/cosine.schema
|
||||
include ''${pkgs.openldap}/etc/openldap/schema/inetorgperson.schema
|
||||
include ''${pkgs.openldap}/etc/openldap/schema/nis.schema
|
||||
|
||||
database bdb
|
||||
suffix dc=example,dc=org
|
||||
rootdn cn=admin,dc=example,dc=org
|
||||
# NOTE: change after first start
|
||||
rootpw secret
|
||||
directory /var/db/openldap
|
||||
''';
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.string;
|
||||
default = "openldap";
|
||||
description = "User account under which slapd runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.string;
|
||||
default = "openldap";
|
||||
description = "Group account under which slapd runs.";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.string;
|
||||
default = "/var/db/openldap";
|
||||
description = "The database directory.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "
|
||||
sldapd.conf configuration
|
||||
@ -60,22 +86,22 @@ in
|
||||
preStart = ''
|
||||
mkdir -p /var/run/slapd
|
||||
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
||||
mkdir -p /var/db/openldap
|
||||
chown -R ${cfg.user}:${cfg.group} /var/db/openldap
|
||||
mkdir -p ${cfg.dataDir}
|
||||
chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
|
||||
'';
|
||||
serviceConfig.ExecStart = "${openldap}/libexec/slapd -u openldap -g openldap -d 0 -f ${configFile}";
|
||||
serviceConfig.ExecStart = "${openldap}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}";
|
||||
};
|
||||
|
||||
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
|
||||
{ name = "openldap";
|
||||
users.extraUsers.openldap =
|
||||
{ name = cfg.user;
|
||||
group = cfg.group;
|
||||
uid = config.ids.uids.openldap;
|
||||
});
|
||||
};
|
||||
|
||||
users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
|
||||
{ name = "openldap";
|
||||
users.extraGroups.openldap =
|
||||
{ name = cfg.group;
|
||||
gid = config.ids.gids.openldap;
|
||||
});
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
62
nixos/modules/services/hardware/freefall.nix
Normal file
62
nixos/modules/services/hardware/freefall.nix
Normal file
@ -0,0 +1,62 @@
|
||||
{ config, lib, pkgs, utils, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = with types; {
|
||||
|
||||
services.freefall = {
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to protect HP/Dell laptop hard drives (not SSDs) in free fall.
|
||||
'';
|
||||
type = bool;
|
||||
};
|
||||
|
||||
devices = mkOption {
|
||||
default = [ "/dev/sda" ];
|
||||
description = ''
|
||||
Device paths to all internal spinning hard drives.
|
||||
'';
|
||||
type = listOf string;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = let
|
||||
|
||||
cfg = config.services.freefall;
|
||||
|
||||
mkService = dev:
|
||||
assert dev != "";
|
||||
let dev' = utils.escapeSystemdPath dev; in
|
||||
nameValuePair "freefall-${dev'}"
|
||||
{ description = "Free-fall protection for ${dev}";
|
||||
after = [ "${dev'}.device" ];
|
||||
wantedBy = [ "${dev'}.device" ];
|
||||
path = [ pkgs.freefall ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.freefall}/bin/freefall ${dev}";
|
||||
Restart = "on-failure";
|
||||
Type = "forking";
|
||||
};
|
||||
};
|
||||
|
||||
in mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.freefall ];
|
||||
|
||||
systemd.services = listToAttrs (map mkService cfg.devices);
|
||||
|
||||
};
|
||||
|
||||
}
|
93
nixos/modules/services/hardware/tlp.nix
Normal file
93
nixos/modules/services/hardware/tlp.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.tlp;
|
||||
|
||||
tlp = pkgs.tlp.override { kmod = config.system.sbin.modprobe; };
|
||||
|
||||
confFile = pkgs.writeText "tlp" (builtins.readFile "${tlp}/etc/default/tlp" + cfg.extraConfig);
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.tlp = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable the TLP daemon.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "Additional configuration variables for TLP";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services = {
|
||||
tlp = {
|
||||
description = "TLP system startup/shutdown";
|
||||
|
||||
after = [ "multi-user.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "shutdown.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${tlp}/bin/tlp init start";
|
||||
ExecStop = "${tlp}/bin/tlp init stop";
|
||||
};
|
||||
};
|
||||
|
||||
tlp-sleep = {
|
||||
description = "TLP suspend/resume";
|
||||
|
||||
wantedBy = [ "sleep.target" ];
|
||||
before = [ "sleep.target" ];
|
||||
|
||||
unitConfig = {
|
||||
StopWhenUnneeded = true;
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${tlp}/bin/tlp suspend";
|
||||
ExecStop = "${tlp}/bin/tlp resume";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.udev.packages = [ tlp ];
|
||||
|
||||
environment.etc = [{ source = confFile;
|
||||
target = "default/tlp";
|
||||
}
|
||||
] ++ optional tlp.enableRDW {
|
||||
source = "${tlp}/etc/NetworkManager/dispatcher.d/99tlp-rdw-nm";
|
||||
target = "NetworkManager/dispatcher.d/99tlp-rdw-nm";
|
||||
};
|
||||
|
||||
environment.systemPackages = [ tlp ];
|
||||
|
||||
};
|
||||
|
||||
}
|
156
nixos/modules/services/misc/apache-kafka.nix
Normal file
156
nixos/modules/services/misc/apache-kafka.nix
Normal file
@ -0,0 +1,156 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.apache-kafka;
|
||||
|
||||
serverProperties =
|
||||
if cfg.serverProperties != null then
|
||||
cfg.serverProperties
|
||||
else
|
||||
''
|
||||
# Generated by nixos
|
||||
broker.id=${toString cfg.brokerId}
|
||||
port=${toString cfg.port}
|
||||
host.name=${cfg.hostname}
|
||||
log.dirs=${concatStringsSep "," cfg.logDirs}
|
||||
zookeeper.connect=${cfg.zookeeper}
|
||||
${toString cfg.extraProperties}
|
||||
'';
|
||||
|
||||
configDir = pkgs.buildEnv {
|
||||
name = "apache-kafka-conf";
|
||||
paths = [
|
||||
(pkgs.writeTextDir "server.properties" serverProperties)
|
||||
(pkgs.writeTextDir "log4j.properties" cfg.log4jProperties)
|
||||
];
|
||||
};
|
||||
|
||||
in {
|
||||
|
||||
options.services.apache-kafka = {
|
||||
enable = mkOption {
|
||||
description = "Whether to enable Apache Kafka.";
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
brokerId = mkOption {
|
||||
description = "Broker ID.";
|
||||
default = 0;
|
||||
type = types.int;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
description = "Port number the broker should listen on.";
|
||||
default = 9092;
|
||||
type = types.int;
|
||||
};
|
||||
|
||||
hostname = mkOption {
|
||||
description = "Hostname the broker should bind to.";
|
||||
default = "localhost";
|
||||
type = types.string;
|
||||
};
|
||||
|
||||
logDirs = mkOption {
|
||||
description = "Log file directories";
|
||||
default = [ "/tmp/kafka-logs" ];
|
||||
type = types.listOf types.path;
|
||||
};
|
||||
|
||||
zookeeper = mkOption {
|
||||
description = "Zookeeper connection string";
|
||||
default = "localhost:2181";
|
||||
type = types.string;
|
||||
};
|
||||
|
||||
extraProperties = mkOption {
|
||||
description = "Extra properties for server.properties.";
|
||||
type = types.nullOr types.lines;
|
||||
default = null;
|
||||
};
|
||||
|
||||
serverProperties = mkOption {
|
||||
description = ''
|
||||
Complete server.properties content. Other server.properties config
|
||||
options will be ignored if this option is used.
|
||||
'';
|
||||
type = types.nullOr types.lines;
|
||||
default = null;
|
||||
};
|
||||
|
||||
log4jProperties = mkOption {
|
||||
description = "Kafka log4j property configuration.";
|
||||
default = ''
|
||||
log4j.rootLogger=INFO, stdout
|
||||
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
|
||||
'';
|
||||
type = types.lines;
|
||||
};
|
||||
|
||||
jvmOptions = mkOption {
|
||||
description = "Extra command line options for the JVM running Kafka.";
|
||||
default = [
|
||||
"-server"
|
||||
"-Xmx1G"
|
||||
"-Xms1G"
|
||||
"-XX:+UseCompressedOops"
|
||||
"-XX:+UseParNewGC"
|
||||
"-XX:+UseConcMarkSweepGC"
|
||||
"-XX:+CMSClassUnloadingEnabled"
|
||||
"-XX:+CMSScavengeBeforeRemark"
|
||||
"-XX:+DisableExplicitGC"
|
||||
"-Djava.awt.headless=true"
|
||||
"-Djava.net.preferIPv4Stack=true"
|
||||
];
|
||||
type = types.listOf types.string;
|
||||
example = [
|
||||
"-Djava.net.preferIPv4Stack=true"
|
||||
"-Dcom.sun.management.jmxremote"
|
||||
"-Dcom.sun.management.jmxremote.local.only=true"
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [pkgs.apacheKafka];
|
||||
|
||||
users.extraUsers = singleton {
|
||||
name = "apache-kafka";
|
||||
uid = config.ids.uids.apache-kafka;
|
||||
description = "Apache Kafka daemon user";
|
||||
home = head cfg.logDirs;
|
||||
};
|
||||
|
||||
systemd.services.apache-kafka = {
|
||||
description = "Apache Kafka Daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.jre}/bin/java \
|
||||
-cp "${pkgs.apacheKafka}/libs/*:${configDir}" \
|
||||
${toString cfg.jvmOptions} \
|
||||
kafka.Kafka \
|
||||
${configDir}/server.properties
|
||||
'';
|
||||
User = "apache-kafka";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -m 0700 -p ${concatStringsSep " " cfg.logDirs}
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
chown apache-kafka ${concatStringsSep " " cfg.logDirs};
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -7,8 +7,10 @@ with lib;
|
||||
let
|
||||
cfg = config.services.gitlab;
|
||||
|
||||
ruby = pkgs.ruby;
|
||||
rubyLibs = pkgs.rubyLibs;
|
||||
ruby = pkgs.gitlab.ruby;
|
||||
bundler = pkgs.bundler;
|
||||
|
||||
gemHome = "${pkgs.gitlab.env}/${ruby.gemPath}";
|
||||
|
||||
databaseYml = ''
|
||||
production:
|
||||
@ -38,13 +40,14 @@ let
|
||||
|
||||
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
||||
name = "gitlab-runner";
|
||||
buildInputs = [ pkgs.gitlab pkgs.rubyLibs.bundler pkgs.makeWrapper ];
|
||||
buildInputs = [ pkgs.gitlab pkgs.bundler pkgs.makeWrapper ];
|
||||
phases = "installPhase fixupPhase";
|
||||
buildPhase = "";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${rubyLibs.bundler}/bin/bundle $out/bin/gitlab-runner\
|
||||
makeWrapper ${bundler}/bin/bundle $out/bin/gitlab-runner\
|
||||
--set RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"'\
|
||||
--set GEM_HOME '${gemHome}'\
|
||||
--set UNICORN_PATH "${cfg.stateDir}/"\
|
||||
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
||||
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
||||
@ -172,6 +175,7 @@ in {
|
||||
after = [ "network.target" "redis.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment.HOME = "${cfg.stateDir}/home";
|
||||
environment.GEM_HOME = gemHome;
|
||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||
@ -201,7 +205,7 @@ in {
|
||||
Group = "gitlab";
|
||||
TimeoutSec = "300";
|
||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
||||
ExecStart="${rubyLibs.bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.stateDir}/tmp/sidekiq.pid\"";
|
||||
ExecStart="${bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.stateDir}/tmp/sidekiq.pid\"";
|
||||
};
|
||||
};
|
||||
|
||||
@ -209,6 +213,7 @@ in {
|
||||
after = [ "network.target" "postgresql.service" "redis.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment.HOME = "${cfg.stateDir}/home";
|
||||
environment.GEM_HOME = gemHome;
|
||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||
@ -263,7 +268,7 @@ in {
|
||||
|
||||
# force=yes disables the manual-interaction yes/no prompt
|
||||
# which breaks without an stdin.
|
||||
force=yes ${rubyLibs.bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile gitlab:setup RAILS_ENV=production
|
||||
force=yes ${bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile gitlab:setup RAILS_ENV=production
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -285,7 +290,7 @@ in {
|
||||
Group = "gitlab";
|
||||
TimeoutSec = "300";
|
||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
||||
ExecStart="${rubyLibs.bundler}/bin/bundle exec \"unicorn -c ${cfg.stateDir}/config/unicorn.rb -E production\"";
|
||||
ExecStart="${bundler}/bin/bundle exec \"unicorn -c ${cfg.stateDir}/config/unicorn.rb -E production\"";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -36,6 +36,7 @@ in
|
||||
Initial administrative public key for Gitolite. This should
|
||||
be an SSH Public Key. Note that this key will only be used
|
||||
once, upon the first initialization of the Gitolite user.
|
||||
The key string cannot have any line breaks in it.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -8,7 +8,6 @@ let
|
||||
cfg = config.services.redmine;
|
||||
|
||||
ruby = pkgs.ruby;
|
||||
rubyLibs = pkgs.rubyLibs;
|
||||
|
||||
databaseYml = ''
|
||||
production:
|
||||
@ -155,7 +154,7 @@ in {
|
||||
environment.HOME = "${pkgs.redmine}/share/redmine";
|
||||
environment.REDMINE_LANG = "en";
|
||||
environment.GEM_HOME = "${pkgs.redmine}/share/redmine/vendor/bundle/ruby/1.9.1";
|
||||
environment.GEM_PATH = "${rubyLibs.bundler}/lib/ruby/gems/1.9";
|
||||
environment.GEM_PATH = "${bundler}/${bundler.ruby.gemPath}";
|
||||
path = with pkgs; [
|
||||
imagemagickBig
|
||||
subversion
|
||||
|
@ -15,7 +15,7 @@ let
|
||||
|
||||
launcher = writeScriptBin "riemann-dash" ''
|
||||
#!/bin/sh
|
||||
exec ${rubyLibs.riemann_dash}/bin/riemann-dash ${conf}
|
||||
exec ${pkgs.riemann-dash}/bin/riemann-dash ${conf}
|
||||
'';
|
||||
|
||||
in {
|
||||
|
@ -356,7 +356,7 @@ in
|
||||
''
|
||||
If pings are allowed, this allows setting rate limits
|
||||
on them. If non-null, this option should be in the form
|
||||
of flags like "-limit 1/minute -limit-burst 5"
|
||||
of flags like "--limit 1/minute --limit-burst 5"
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -82,7 +82,8 @@ in
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "@${ntp}/bin/ntpd ntpd -g -n ${ntpFlags}";
|
||||
ExecStart = "@${ntp}/bin/ntpd ntpd -g ${ntpFlags}";
|
||||
Type = "forking";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -12,6 +12,7 @@ let
|
||||
|
||||
cfgFile = pkgs.writeText "openntpd.conf" ''
|
||||
${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
in
|
||||
{
|
||||
@ -25,6 +26,27 @@ in
|
||||
type = types.listOf types.str;
|
||||
inherit (options.services.ntp.servers) description;
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = with types; lines;
|
||||
default = "";
|
||||
example = ''
|
||||
listen on 127.0.0.1
|
||||
listen on ::1
|
||||
'';
|
||||
description = ''
|
||||
Additional text appended to <filename>openntpd.conf</filename>.
|
||||
'';
|
||||
};
|
||||
|
||||
extraOptions = mkOption {
|
||||
type = with types; string;
|
||||
default = "";
|
||||
example = "-s";
|
||||
description = ''
|
||||
Extra options used when launching openntpd.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
@ -42,7 +64,7 @@ in
|
||||
systemd.services.openntpd = {
|
||||
description = "OpenNTP Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig.ExecStart = "${package}/sbin/ntpd -d -f ${cfgFile}";
|
||||
serviceConfig.ExecStart = "${package}/sbin/ntpd -d -f ${cfgFile} ${cfg.extraOptions}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
110
nixos/modules/services/networking/tlsdated.nix
Normal file
110
nixos/modules/services/networking/tlsdated.nix
Normal file
@ -0,0 +1,110 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (pkgs) coreutils tlsdate;
|
||||
|
||||
cfg = config.services.tlsdated;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.tlsdated = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable tlsdated daemon.
|
||||
'';
|
||||
};
|
||||
|
||||
extraOptions = mkOption {
|
||||
type = types.string;
|
||||
description = ''
|
||||
Additional command line arguments to pass to tlsdated.
|
||||
'';
|
||||
};
|
||||
|
||||
sources = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
host = mkOption {
|
||||
type = types.string;
|
||||
description = ''
|
||||
Remote hostname.
|
||||
'';
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
description = ''
|
||||
Remote port.
|
||||
'';
|
||||
};
|
||||
proxy = mkOption {
|
||||
type = types.nullOr types.string;
|
||||
default = null;
|
||||
description = ''
|
||||
The proxy argument expects HTTP, SOCKS4A or SOCKS5 formatted as followed:
|
||||
|
||||
http://127.0.0.1:8118
|
||||
socks4a://127.0.0.1:9050
|
||||
socks5://127.0.0.1:9050
|
||||
|
||||
The proxy support should not leak DNS requests and is suitable for use with Tor.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = [
|
||||
{
|
||||
host = "www.ptb.de";
|
||||
port = 443;
|
||||
proxy = null;
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
You can list one or more sources to fetch time from.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
# Make tools such as tlsdate available in the system path
|
||||
environment.systemPackages = [ tlsdate ];
|
||||
|
||||
systemd.services.tlsdated = {
|
||||
description = "tlsdated daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
# XXX because pkgs.tlsdate is compiled to run as nobody:nogroup, we
|
||||
# hard-code base-path to /tmp and use PrivateTmp.
|
||||
ExecStart = "${tlsdate}/bin/tlsdated -f ${pkgs.writeText "tlsdated.confg" ''
|
||||
base-path /tmp
|
||||
|
||||
${concatMapStrings (src: ''
|
||||
source
|
||||
host ${src.host}
|
||||
port ${toString src.port}
|
||||
proxy ${if src.proxy == null then "none" else src.proxy}
|
||||
end
|
||||
'') cfg.sources}
|
||||
''} ${cfg.extraOptions}";
|
||||
PrivateTmp = "yes";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -682,6 +682,7 @@ in
|
||||
serviceConfig.Type = "forking";
|
||||
serviceConfig.PIDFile = "${mainCfg.stateDir}/httpd.pid";
|
||||
serviceConfig.Restart = "always";
|
||||
serviceConfig.RestartSec = "5s";
|
||||
};
|
||||
|
||||
};
|
||||
|
577
nixos/modules/services/web-servers/apache-httpd/owncloud.nix
Normal file
577
nixos/modules/services/web-servers/apache-httpd/owncloud.nix
Normal file
@ -0,0 +1,577 @@
|
||||
{ config, lib, pkgs, serverInfo, php, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
httpd = serverInfo.serverConfig.package;
|
||||
|
||||
version24 = !versionOlder httpd.version "2.4";
|
||||
|
||||
allGranted = if version24 then ''
|
||||
Require all granted
|
||||
'' else ''
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
'';
|
||||
|
||||
owncloudConfig = pkgs.writeText "config.php"
|
||||
''
|
||||
<?php
|
||||
|
||||
/* Only enable this for local development and not in productive environments */
|
||||
/* This will disable the minifier and outputs some additional debug informations */
|
||||
define("DEBUG", false);
|
||||
|
||||
$CONFIG = array(
|
||||
/* Flag to indicate ownCloud is successfully installed (true = installed) */
|
||||
"installed" => true,
|
||||
|
||||
/* Type of database, can be sqlite, mysql or pgsql */
|
||||
"dbtype" => "${config.dbType}",
|
||||
|
||||
/* Name of the ownCloud database */
|
||||
"dbname" => "${config.dbName}",
|
||||
|
||||
/* User to access the ownCloud database */
|
||||
"dbuser" => "${config.dbUser}",
|
||||
|
||||
/* Password to access the ownCloud database */
|
||||
"dbpassword" => "${config.dbPassword}",
|
||||
|
||||
/* Host running the ownCloud database. To specify a port use "HOSTNAME:####"; to specify a unix sockets use "localhost:/path/to/socket". */
|
||||
"dbhost" => "${config.dbServer}",
|
||||
|
||||
/* Prefix for the ownCloud tables in the database */
|
||||
"dbtableprefix" => "",
|
||||
|
||||
/* Force use of HTTPS connection (true = use HTTPS) */
|
||||
"forcessl" => ${config.forceSSL},
|
||||
|
||||
/* Blacklist a specific file and disallow the upload of files with this name - WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */
|
||||
"blacklisted_files" => array('.htaccess'),
|
||||
|
||||
/* The automatic hostname detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. You can also add a port. For example "www.example.com:88" */
|
||||
"overwritehost" => "${config.overwriteHost}",
|
||||
|
||||
/* The automatic protocol detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the protocol detection. For example "https" */
|
||||
"overwriteprotocol" => "${config.overwriteProtocol}",
|
||||
|
||||
/* The automatic webroot detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. For example "/domain.tld/ownCloud". The value "/" can be used to remove the root. */
|
||||
"overwritewebroot" => "${config.overwriteWebRoot}",
|
||||
|
||||
/* The automatic detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to define a manually override condition as regular expression for the remote ip address. For example "^10\.0\.0\.[1-3]$" */
|
||||
"overwritecondaddr" => "",
|
||||
|
||||
/* A proxy to use to connect to the internet. For example "myproxy.org:88" */
|
||||
"proxy" => "",
|
||||
|
||||
/* The optional authentication for the proxy to use to connect to the internet. The format is: [username]:[password] */
|
||||
"proxyuserpwd" => "",
|
||||
|
||||
/* List of trusted domains, to prevent host header poisoning ownCloud is only using these Host headers */
|
||||
'trusted_domains' => array('${config.trustedDomain}'),
|
||||
|
||||
/* Theme to use for ownCloud */
|
||||
"theme" => "",
|
||||
|
||||
/* Optional ownCloud default language - overrides automatic language detection on public pages like login or shared items. This has no effect on the user's language preference configured under "personal -> language" once they have logged in */
|
||||
"default_language" => "${config.defaultLang}",
|
||||
|
||||
/* Path to the parent directory of the 3rdparty directory */
|
||||
"3rdpartyroot" => "",
|
||||
|
||||
/* URL to the parent directory of the 3rdparty directory, as seen by the browser */
|
||||
"3rdpartyurl" => "",
|
||||
|
||||
/* Default app to open on login.
|
||||
* This can be a comma-separated list of app ids.
|
||||
* If the first app is not enabled for the current user,
|
||||
* it will try with the second one and so on. If no enabled app could be found,
|
||||
* the "files" app will be displayed instead. */
|
||||
"defaultapp" => "${config.defaultApp}",
|
||||
|
||||
/* Enable the help menu item in the settings */
|
||||
"knowledgebaseenabled" => true,
|
||||
|
||||
/* Enable installing apps from the appstore */
|
||||
"appstoreenabled" => ${config.appStoreEnable},
|
||||
|
||||
/* URL of the appstore to use, server should understand OCS */
|
||||
"appstoreurl" => "https://api.owncloud.com/v1",
|
||||
|
||||
/* Domain name used by ownCloud for the sender mail address, e.g. no-reply@example.com */
|
||||
"mail_domain" => "${config.mailFromDomain}",
|
||||
|
||||
/* FROM address used by ownCloud for the sender mail address, e.g. owncloud@example.com
|
||||
This setting overwrites the built in 'sharing-noreply' and 'lostpassword-noreply'
|
||||
FROM addresses, that ownCloud uses
|
||||
*/
|
||||
"mail_from_address" => "${config.mailFrom}",
|
||||
|
||||
/* Enable SMTP class debugging */
|
||||
"mail_smtpdebug" => false,
|
||||
|
||||
/* Mode to use for sending mail, can be sendmail, smtp, qmail or php, see PHPMailer docs */
|
||||
"mail_smtpmode" => "${config.SMTPMode}",
|
||||
|
||||
/* Host to use for sending mail, depends on mail_smtpmode if this is used */
|
||||
"mail_smtphost" => "${config.SMTPHost}",
|
||||
|
||||
/* Port to use for sending mail, depends on mail_smtpmode if this is used */
|
||||
"mail_smtpport" => ${config.SMTPPort},
|
||||
|
||||
/* SMTP server timeout in seconds for sending mail, depends on mail_smtpmode if this is used */
|
||||
"mail_smtptimeout" => ${config.SMTPTimeout},
|
||||
|
||||
/* SMTP connection prefix or sending mail, depends on mail_smtpmode if this is used.
|
||||
Can be "", ssl or tls */
|
||||
"mail_smtpsecure" => "${config.SMTPSecure}",
|
||||
|
||||
/* authentication needed to send mail, depends on mail_smtpmode if this is used
|
||||
* (false = disable authentication)
|
||||
*/
|
||||
"mail_smtpauth" => ${config.SMTPAuth},
|
||||
|
||||
/* authentication type needed to send mail, depends on mail_smtpmode if this is used
|
||||
* Can be LOGIN (default), PLAIN or NTLM */
|
||||
"mail_smtpauthtype" => "${config.SMTPAuthType}",
|
||||
|
||||
/* Username to use for sendmail mail, depends on mail_smtpauth if this is used */
|
||||
"mail_smtpname" => "${config.SMTPUser}",
|
||||
|
||||
/* Password to use for sendmail mail, depends on mail_smtpauth if this is used */
|
||||
"mail_smtppassword" => "${config.SMTPPass}",
|
||||
|
||||
/* memcached servers (Only used when xCache, APC and APCu are absent.) */
|
||||
"memcached_servers" => array(
|
||||
// hostname, port and optional weight. Also see:
|
||||
// http://www.php.net/manual/en/memcached.addservers.php
|
||||
// http://www.php.net/manual/en/memcached.addserver.php
|
||||
//array('localhost', 11211),
|
||||
//array('other.host.local', 11211),
|
||||
),
|
||||
|
||||
/* How long should ownCloud keep deleted files in the trash bin, default value: 30 days */
|
||||
'trashbin_retention_obligation' => 30,
|
||||
|
||||
/* Disable/Enable auto expire for the trash bin, by default auto expire is enabled */
|
||||
'trashbin_auto_expire' => true,
|
||||
|
||||
/* allow user to change his display name, if it is supported by the back-end */
|
||||
'allow_user_to_change_display_name' => true,
|
||||
|
||||
/* Check 3rdparty apps for malicious code fragments */
|
||||
"appcodechecker" => true,
|
||||
|
||||
/* Check if ownCloud is up to date */
|
||||
"updatechecker" => true,
|
||||
|
||||
/* Are we connected to the internet or are we running in a closed network? */
|
||||
"has_internet_connection" => true,
|
||||
|
||||
/* Check if the ownCloud WebDAV server is working correctly. Can be disabled if not needed in special situations*/
|
||||
"check_for_working_webdav" => true,
|
||||
|
||||
/* Check if .htaccess protection of data is working correctly. Can be disabled if not needed in special situations*/
|
||||
"check_for_working_htaccess" => true,
|
||||
|
||||
/* Place to log to, can be owncloud and syslog (owncloud is log menu item in admin menu) */
|
||||
"log_type" => "owncloud",
|
||||
|
||||
/* File for the owncloud logger to log to, (default is ownloud.log in the data dir) */
|
||||
"logfile" => "${config.dataDir}/owncloud.log",
|
||||
|
||||
/* Loglevel to start logging at. 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR (default is WARN) */
|
||||
"loglevel" => "2",
|
||||
|
||||
/* date format to be used while writing to the owncloud logfile */
|
||||
'logdateformat' => 'F d, Y H:i:s',
|
||||
|
||||
/* timezone used while writing to the owncloud logfile (default: UTC) */
|
||||
'logtimezone' => '${serverInfo.fullConfig.time.timeZone}',
|
||||
|
||||
/* Append all database queries and parameters to the log file.
|
||||
(watch out, this option can increase the size of your log file)*/
|
||||
"log_query" => false,
|
||||
|
||||
/* Whether ownCloud should log the last successfull cron exec */
|
||||
"cron_log" => true,
|
||||
|
||||
/*
|
||||
* Configure the size in bytes log rotation should happen, 0 or false disables the rotation.
|
||||
* This rotates the current owncloud logfile to a new name, this way the total log usage
|
||||
* will stay limited and older entries are available for a while longer. The
|
||||
* total disk usage is twice the configured size.
|
||||
* WARNING: When you use this, the log entries will eventually be lost.
|
||||
*/
|
||||
'log_rotate_size' => "104857600", // 104857600, // 100 MiB
|
||||
|
||||
/* Lifetime of the remember login cookie, default is 15 days */
|
||||
"remember_login_cookie_lifetime" => 1296000,
|
||||
|
||||
/* Life time of a session after inactivity */
|
||||
"session_lifetime" => 86400,
|
||||
|
||||
/*
|
||||
* Enable/disable session keep alive when a user is logged in in the Web UI.
|
||||
* This is achieved by sending a "heartbeat" to the server to prevent
|
||||
* the session timing out.
|
||||
*/
|
||||
"session_keepalive" => true,
|
||||
|
||||
/* Custom CSP policy, changing this will overwrite the standard policy */
|
||||
"custom_csp_policy" => "default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src *; img-src *; font-src 'self' data:; media-src *",
|
||||
|
||||
/* Enable/disable X-Frame-Restriction */
|
||||
/* HIGH SECURITY RISK IF DISABLED*/
|
||||
"xframe_restriction" => true,
|
||||
|
||||
/* The directory where the user data is stored, default to data in the owncloud
|
||||
* directory. The sqlite database is also stored here, when sqlite is used.
|
||||
*/
|
||||
"datadirectory" => "${config.dataDir}/storage",
|
||||
|
||||
/* The directory where the skeleton files are located. These files will be copied to the data
|
||||
* directory of new users. Leave empty to not copy any skeleton files.
|
||||
*/
|
||||
// "skeletondirectory" => "",
|
||||
|
||||
/* Enable maintenance mode to disable ownCloud
|
||||
If you want to prevent users to login to ownCloud before you start doing some maintenance work,
|
||||
you need to set the value of the maintenance parameter to true.
|
||||
Please keep in mind that users who are already logged-in are kicked out of ownCloud instantly.
|
||||
*/
|
||||
"maintenance" => false,
|
||||
|
||||
"apps_paths" => array(
|
||||
|
||||
/* Set an array of path for your apps directories
|
||||
key 'path' is for the fs path and the key 'url' is for the http path to your
|
||||
applications paths. 'writable' indicates whether the user can install apps in this folder.
|
||||
You must have at least 1 app folder writable or you must set the parameter 'appstoreenabled' to false
|
||||
*/
|
||||
array(
|
||||
'path'=> '${config.dataDir}/apps',
|
||||
'url' => '/apps',
|
||||
'writable' => true,
|
||||
),
|
||||
),
|
||||
'user_backends'=>array(
|
||||
/*
|
||||
array(
|
||||
'class'=>'OC_User_IMAP',
|
||||
'arguments'=>array('{imap.gmail.com:993/imap/ssl}INBOX')
|
||||
)
|
||||
*/
|
||||
),
|
||||
//links to custom clients
|
||||
'customclient_desktop' => ''', //http://owncloud.org/sync-clients/
|
||||
'customclient_android' => ''', //https://play.google.com/store/apps/details?id=com.owncloud.android
|
||||
'customclient_ios' => ''', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8
|
||||
|
||||
// PREVIEW
|
||||
'enable_previews' => true,
|
||||
/* the max width of a generated preview, if value is null, there is no limit */
|
||||
'preview_max_x' => null,
|
||||
/* the max height of a generated preview, if value is null, there is no limit */
|
||||
'preview_max_y' => null,
|
||||
/* the max factor to scale a preview, default is set to 10 */
|
||||
'preview_max_scale_factor' => 10,
|
||||
/* custom path for libreoffice / openoffice binary */
|
||||
'preview_libreoffice_path' => '${config.libreofficePath}',
|
||||
/* cl parameters for libreoffice / openoffice */
|
||||
'preview_office_cl_parameters' => ''',
|
||||
|
||||
/* whether avatars should be enabled */
|
||||
'enable_avatars' => true,
|
||||
|
||||
// Extra SSL options to be used for configuration
|
||||
'openssl' => array(
|
||||
'config' => '/etc/ssl/openssl.cnf',
|
||||
),
|
||||
|
||||
// default cipher used for file encryption, currently we support AES-128-CFB and AES-256-CFB
|
||||
'cipher' => 'AES-256-CFB',
|
||||
|
||||
/* whether usage of the instance should be restricted to admin users only */
|
||||
'singleuser' => false,
|
||||
|
||||
/* all css and js files will be served by the web server statically in one js file and ons css file*/
|
||||
'asset-pipeline.enabled' => false,
|
||||
|
||||
/* where mount.json file should be stored, defaults to data/mount.json */
|
||||
'mount_file' => ''',
|
||||
|
||||
/*
|
||||
* Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user.
|
||||
*
|
||||
* When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured
|
||||
* cache directory and "$user" is the user.
|
||||
*
|
||||
*/
|
||||
'cache_path' => ''',
|
||||
|
||||
/* EXPERIMENTAL: option whether to include external storage in quota calculation, defaults to false */
|
||||
'quota_include_external_storage' => false,
|
||||
|
||||
/*
|
||||
* specifies how often the filesystem is checked for changes made outside owncloud
|
||||
* 0 -> never check the filesystem for outside changes, provides a performance increase when it's certain that no changes are made directly to the filesystem
|
||||
* 1 -> check each file or folder at most once per request, recomended for general use if outside changes might happen
|
||||
* 2 -> check every time the filesystem is used, causes a performance hit when using external storages, not recomended for regular use
|
||||
*/
|
||||
'filesystem_check_changes' => 1,
|
||||
|
||||
/* If true, prevent owncloud from changing the cache due to changes in the filesystem for all storage */
|
||||
'filesystem_cache_readonly' => false,
|
||||
|
||||
/**
|
||||
* define default folder for shared files and folders
|
||||
*/
|
||||
'share_folder' => '/',
|
||||
|
||||
'version' => '${pkgs.owncloud.version}',
|
||||
|
||||
'openssl' => '${pkgs.openssl}/bin/openssl'
|
||||
|
||||
);
|
||||
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
rec {
|
||||
|
||||
extraConfig =
|
||||
''
|
||||
ServerName ${config.siteName}
|
||||
ServerAdmin ${config.adminAddr}
|
||||
DocumentRoot ${documentRoot}
|
||||
|
||||
RewriteEngine On
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
||||
|
||||
<Directory ${pkgs.owncloud}>
|
||||
${builtins.readFile "${pkgs.owncloud}/.htaccess"}
|
||||
</Directory>
|
||||
'';
|
||||
|
||||
globalEnvVars = [
|
||||
{ name = "OC_CONFIG_PATH"; value = "${config.dataDir}/config/"; }
|
||||
];
|
||||
|
||||
documentRoot = pkgs.owncloud;
|
||||
|
||||
enablePHP = true;
|
||||
|
||||
options = {
|
||||
|
||||
id = mkOption {
|
||||
default = "main";
|
||||
description = ''
|
||||
A unique identifier necessary to keep multiple owncloud server
|
||||
instances on the same machine apart. This is used to
|
||||
disambiguate the administrative scripts, which get names like
|
||||
mediawiki-$id-change-password.
|
||||
'';
|
||||
};
|
||||
|
||||
adminUser = mkOption {
|
||||
default = "owncloud";
|
||||
description = "The admin user name for accessing owncloud.";
|
||||
};
|
||||
|
||||
adminPassword = mkOption {
|
||||
description = "The admin password for accessing owncloud.
|
||||
Warning: this is stored in cleartext in the Nix store!";
|
||||
};
|
||||
|
||||
dbType = mkOption {
|
||||
default = "pgsql";
|
||||
description = "Type of database, in NixOS, for now, only pgsql.";
|
||||
};
|
||||
|
||||
dbName = mkOption {
|
||||
default = "owncloud";
|
||||
description = "Name of the database that holds the owncloud data.";
|
||||
};
|
||||
|
||||
dbServer = mkOption {
|
||||
default = "localhost:5432";
|
||||
description = ''
|
||||
The location of the database server.
|
||||
'';
|
||||
};
|
||||
|
||||
dbUser = mkOption {
|
||||
default = "owncloud";
|
||||
description = "The user name for accessing the database.";
|
||||
};
|
||||
|
||||
dbPassword = mkOption {
|
||||
example = "foobar";
|
||||
description = ''
|
||||
The password of the database user. Warning: this is stored in
|
||||
cleartext in the Nix store!
|
||||
'';
|
||||
};
|
||||
|
||||
forceSSL = mkOption {
|
||||
default = "false";
|
||||
description = "Force use of HTTPS connection.";
|
||||
};
|
||||
|
||||
adminAddr = mkOption {
|
||||
default = serverInfo.serverConfig.adminAddr;
|
||||
example = "admin@example.com";
|
||||
description = ''
|
||||
Emergency contact e-mail address. Defaults to the Apache
|
||||
admin address.
|
||||
'';
|
||||
};
|
||||
|
||||
siteName = mkOption {
|
||||
default = "owncloud";
|
||||
example = "Foobar owncloud";
|
||||
description = "Name of the owncloud";
|
||||
};
|
||||
|
||||
trustedDomain = mkOption {
|
||||
default = "";
|
||||
description = "Trusted domain";
|
||||
};
|
||||
|
||||
defaultLang = mkOption {
|
||||
default = "";
|
||||
description = "Default language";
|
||||
};
|
||||
|
||||
defaultApp = mkOption {
|
||||
default = "";
|
||||
description = "Default application";
|
||||
};
|
||||
|
||||
appStoreEnable = mkOption {
|
||||
default = "true";
|
||||
description = "Enable app store";
|
||||
};
|
||||
|
||||
mailFrom = mkOption {
|
||||
default = "no-reply";
|
||||
description = "Mail from";
|
||||
};
|
||||
|
||||
mailFromDomain = mkOption {
|
||||
default = "example.xyz";
|
||||
description = "Mail from domain";
|
||||
};
|
||||
|
||||
SMTPMode = mkOption {
|
||||
default = "smtp";
|
||||
description = "Which mode to use for sending mail: sendmail, smtp, qmail or php.";
|
||||
};
|
||||
|
||||
SMTPHost = mkOption {
|
||||
default = "";
|
||||
description = "SMTP host";
|
||||
};
|
||||
|
||||
SMTPPort = mkOption {
|
||||
default = "25";
|
||||
description = "SMTP port";
|
||||
};
|
||||
|
||||
SMTPTimeout = mkOption {
|
||||
default = "10";
|
||||
description = "SMTP mode";
|
||||
};
|
||||
|
||||
SMTPSecure = mkOption {
|
||||
default = "ssl";
|
||||
description = "SMTP secure";
|
||||
};
|
||||
|
||||
SMTPAuth = mkOption {
|
||||
default = "true";
|
||||
description = "SMTP auth";
|
||||
};
|
||||
|
||||
SMTPAuthType = mkOption {
|
||||
default = "LOGIN";
|
||||
description = "SMTP auth type";
|
||||
};
|
||||
|
||||
SMTPUser = mkOption {
|
||||
default = "";
|
||||
description = "SMTP user";
|
||||
};
|
||||
|
||||
SMTPPass = mkOption {
|
||||
default = "";
|
||||
description = "SMTP pass";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
default = "/var/lib/owncloud";
|
||||
description = "Data dir";
|
||||
};
|
||||
|
||||
libreofficePath = mkOption {
|
||||
default = "/usr/bin/libreoffice";
|
||||
description = "Path for LibreOffice/OpenOffice binary.";
|
||||
};
|
||||
|
||||
overwriteHost = mkOption {
|
||||
default = "";
|
||||
description = "The automatic hostname detection of ownCloud can fail in
|
||||
certain reverse proxy and CLI/cron situations. This option allows to
|
||||
manually override the automatic detection. You can also add a port.";
|
||||
};
|
||||
|
||||
overwriteProtocol = mkOption {
|
||||
default = "";
|
||||
description = "The automatic protocol detection of ownCloud can fail in
|
||||
certain reverse proxy and CLI/cron situations. This option allows to
|
||||
manually override the protocol detection.";
|
||||
};
|
||||
|
||||
overwriteWebRoot = mkOption {
|
||||
default = "";
|
||||
description = "The automatic webroot detection of ownCloud can fail in
|
||||
certain reverse proxy and CLI/cron situations. This option allows to
|
||||
manually override the automatic detection.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
startupScript = pkgs.writeScript "owncloud_startup.sh" ''
|
||||
|
||||
if [ ! -d ${config.dataDir}/config ]; then
|
||||
mkdir -p ${config.dataDir}/config
|
||||
cp ${owncloudConfig} ${config.dataDir}/config/config.php
|
||||
mkdir -p ${config.dataDir}/storage
|
||||
mkdir -p ${config.dataDir}/apps
|
||||
cp -r ${pkgs.owncloud}/apps/* ${config.dataDir}/apps/
|
||||
chmod -R ug+rw ${config.dataDir}
|
||||
chmod -R o-rwx ${config.dataDir}
|
||||
chown -R wwwrun:wwwrun ${config.dataDir}
|
||||
|
||||
${pkgs.postgresql}/bin/createuser -s -r postgres
|
||||
${pkgs.postgresql}/bin/createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
|
||||
${pkgs.postgresql}/bin/createdb "${config.dbName}" -O "${config.dbUser}" || true
|
||||
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -U postgres -d postgres -c "alter user ${config.dbUser} with password '${config.dbPassword}';" || true
|
||||
|
||||
QUERY="CREATE TABLE appconfig (appid VARCHAR( 255 ) NOT NULL ,configkey VARCHAR( 255 ) NOT NULL ,configvalue VARCHAR( 255 ) NOT NULL); GRANT ALL ON appconfig TO ${config.dbUser}; ALTER TABLE appconfig OWNER TO ${config.dbUser};"
|
||||
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
|
||||
fi
|
||||
|
||||
${php}/bin/php ${pkgs.owncloud}/occ upgrade || true
|
||||
|
||||
chown wwwrun:wwwrun ${config.dataDir}/owncloud.log || true
|
||||
|
||||
QUERY="INSERT INTO groups (gid) values('admin'); INSERT INTO users (uid,password) values('${config.adminUser}','`echo -n "${config.adminPassword}" | ${pkgs.openssl}/bin/openssl dgst -sha1 | ${pkgs.gawk}/bin/awk '{print $2}'`'); INSERT INTO group_user (gid,uid) values('admin','${config.adminUser}');"
|
||||
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
|
||||
'';
|
||||
}
|
@ -18,8 +18,8 @@ in
|
||||
# determines the default: later modules (if enabled) are preferred.
|
||||
# E.g., if KDE is enabled, it supersedes xterm.
|
||||
imports = [
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
||||
./e19.nix ./gnome3.nix ./xbmc.nix
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
|
||||
./e19.nix ./gnome3.nix ./xbmc.nix ./kodi.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
|
@ -70,14 +70,6 @@ in
|
||||
description = "Custom kde-workspace, used for NixOS rebranding.";
|
||||
};
|
||||
};
|
||||
|
||||
environment.kdePackages = mkOption {
|
||||
default = [];
|
||||
example = literalExample "[ pkgs.kde4.kdesdk ]";
|
||||
type = types.listOf types.package;
|
||||
description = "This option is obsolete. Please use <option>environment.systemPackages</option> instead.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
143
nixos/modules/services/x11/desktop-managers/kde5.nix
Normal file
143
nixos/modules/services/x11/desktop-managers/kde5.nix
Normal file
@ -0,0 +1,143 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.kde5;
|
||||
xorg = pkgs.xorg;
|
||||
|
||||
phononBackends = {
|
||||
gstreamer = [
|
||||
pkgs.phonon_backend_gstreamer
|
||||
pkgs.gst_all.gstPluginsBase
|
||||
pkgs.gst_all.gstPluginsGood
|
||||
pkgs.gst_all.gstPluginsUgly
|
||||
pkgs.gst_all.gstPluginsBad
|
||||
pkgs.gst_all.gstFfmpeg # for mp3 playback
|
||||
pkgs.phonon_qt5_backend_gstreamer
|
||||
pkgs.gst_all_1.gst-plugins-base
|
||||
pkgs.gst_all_1.gst-plugins-good
|
||||
pkgs.gst_all_1.gst-plugins-ugly
|
||||
pkgs.gst_all_1.gst-plugins-bad
|
||||
pkgs.gst_all_1.gst-libav # for mp3 playback
|
||||
];
|
||||
|
||||
vlc = [
|
||||
pkgs.phonon_qt5_backend_vlc
|
||||
pkgs.phonon_backend_vlc
|
||||
];
|
||||
};
|
||||
|
||||
phononBackendPackages = flip concatMap cfg.phononBackends
|
||||
(name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends);
|
||||
|
||||
kf5 = pkgs.kf5_stable;
|
||||
|
||||
plasma5 = pkgs.plasma5_stable;
|
||||
|
||||
kdeApps = pkgs.kdeApps_stable;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.kde5 = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
|
||||
};
|
||||
|
||||
phononBackends = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = ["gstreamer"];
|
||||
example = ["gstreamer" "vlc"];
|
||||
description = ''
|
||||
Phonon backends to use in KDE. Only the VLC and gstreamer backends are
|
||||
available. The VLC backend is preferred by upstream.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
config = mkIf (xcfg.enable && cfg.enable) {
|
||||
|
||||
warnings = optional config.services.xserver.desktopManager.kde4.enable
|
||||
"KDE 4 should not be enabled at the same time as KDE 5";
|
||||
|
||||
services.xserver.desktopManager.session = singleton {
|
||||
name = "kde5";
|
||||
bgSupport = true;
|
||||
start = ''exec ${plasma5.startkde}/bin/startkde;'';
|
||||
};
|
||||
|
||||
security.setuidOwners = singleton {
|
||||
program = "kcheckpass";
|
||||
source = "${plasma5.plasma-workspace}/lib/libexec/kcheckpass";
|
||||
owner = "root";
|
||||
group = "root";
|
||||
setuid = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with plasma5; with kf5;
|
||||
(builtins.attrValues
|
||||
(removeAttrs plasma5
|
||||
[ "deepOverride" "override" "overrideDerivation"
|
||||
"recurseForDerivations" "scope"
|
||||
]))
|
||||
++
|
||||
(builtins.attrValues
|
||||
(removeAttrs kf5
|
||||
[ "deepOverride" "extra-cmake-modules" "mkDerivation" "override"
|
||||
"overrideDerivation" "recurseForDerivations" "scope"
|
||||
]))
|
||||
++
|
||||
[
|
||||
pkgs.qt4 # qtconfig is the only way to set Qt 4 theme
|
||||
|
||||
kdeApps.kde-baseapps
|
||||
kdeApps.kde-base-artwork
|
||||
kdeApps.kde-workspace
|
||||
kdeApps.kde-runtime
|
||||
kdeApps.kmix
|
||||
kdeApps.konsole
|
||||
kdeApps.oxygen-icons
|
||||
|
||||
pkgs.hicolor_icon_theme
|
||||
|
||||
pkgs.orion # GTK theme, nearly identical to Breeze
|
||||
]
|
||||
++ (optional config.networking.networkmanager.enable plasma-nm)
|
||||
++ phononBackendPackages;
|
||||
|
||||
environment.pathsToLink = [ "/share" ];
|
||||
|
||||
environment.etc = singleton {
|
||||
source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
||||
target = "X11/xkb";
|
||||
};
|
||||
|
||||
environment.profileRelativeEnvVars =
|
||||
mkIf (lib.elem "gstreamer" cfg.phononBackends)
|
||||
{
|
||||
GST_PLUGIN_SYSTEM_PATH = [ "/lib/gstreamer-0.10" ];
|
||||
GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ];
|
||||
};
|
||||
|
||||
fonts.fonts = [ plasma5.oxygen-fonts ];
|
||||
|
||||
# Enable helpful DBus services.
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
|
||||
security.pam.services.kde = { allowNullPassword = true; };
|
||||
|
||||
};
|
||||
|
||||
}
|
31
nixos/modules/services/x11/desktop-managers/kodi.nix
Normal file
31
nixos/modules/services/x11/desktop-managers/kodi.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.desktopManager.kodi;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.xserver.desktopManager.kodi = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Enable the kodi multimedia center.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.desktopManager.session = [{
|
||||
name = "kodi";
|
||||
start = ''
|
||||
${pkgs.kodi}/bin/kodi --lircdev /var/run/lirc/lircd --standalone &
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
|
||||
environment.systemPackages = [ pkgs.kodi ];
|
||||
};
|
||||
}
|
@ -151,6 +151,9 @@ in
|
||||
description = "KDM user";
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
[ pkgs.kde4.kde_wallpapers ]; # contains kdm's default background
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ in
|
||||
};
|
||||
|
||||
timeout = mkOption {
|
||||
default = 5;
|
||||
default = if (config.boot.loader.timeout != null) then config.boot.loader.timeout else -1;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Timeout (in seconds) until GRUB boots the default menu item.
|
||||
|
@ -31,7 +31,7 @@ in {
|
||||
};
|
||||
|
||||
timeout = mkOption {
|
||||
default = null;
|
||||
default = if config.boot.loader.timeout == null then 10000 else config.boot.loader.timeout;
|
||||
|
||||
example = 4;
|
||||
|
||||
|
15
nixos/modules/system/boot/loader/loader.nix
Normal file
15
nixos/modules/system/boot/loader/loader.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
options = {
|
||||
boot.loader.timeout = mkOption {
|
||||
default = 5;
|
||||
type = types.nullOr types.int;
|
||||
description = ''
|
||||
Timeout (in seconds) until loader boots the default menu item. Use null if the loader menu should be displayed indefinitely.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -10,10 +10,18 @@ with lib;
|
||||
|
||||
system.sbin.modprobe = mkOption {
|
||||
internal = true;
|
||||
default = pkgs.writeTextFile {
|
||||
default = pkgs.stdenv.mkDerivation {
|
||||
name = "modprobe";
|
||||
destination = "/sbin/modprobe";
|
||||
executable = true;
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
for i in ${pkgs.kmod}/sbin/*; do
|
||||
name=$(basename $i)
|
||||
echo "$text" > $out/bin/$name
|
||||
echo 'exec '$i' "$@"' >> $out/bin/$name
|
||||
chmod +x $out/bin/$name
|
||||
done
|
||||
ln -s bin $out/sbin
|
||||
'';
|
||||
text =
|
||||
''
|
||||
#! ${pkgs.stdenv.shell}
|
||||
@ -26,7 +34,6 @@ with lib;
|
||||
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
||||
fi
|
||||
|
||||
exec ${pkgs.kmod}/sbin/modprobe "$@"
|
||||
'';
|
||||
};
|
||||
description = ''
|
||||
|
@ -142,7 +142,10 @@ in
|
||||
++ config.system.fsPackages;
|
||||
|
||||
environment.etc.fstab.text =
|
||||
''
|
||||
let
|
||||
fsToSkipCheck = [ "none" "btrfs" "zfs" "tmpfs" "nfs" ];
|
||||
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
|
||||
in ''
|
||||
# This is a generated file. Do not edit!
|
||||
|
||||
# Filesystems.
|
||||
@ -154,7 +157,7 @@ in
|
||||
+ " " + fs.fsType
|
||||
+ " " + fs.options
|
||||
+ " 0"
|
||||
+ " " + (if fs.fsType == "none" || fs.device == "none" || fs.fsType == "btrfs" || fs.fsType == "tmpfs" || fs.noCheck then "0" else
|
||||
+ " " + (if skipCheck fs then "0" else
|
||||
if fs.mountPoint == "/" then "1" else "2")
|
||||
+ "\n"
|
||||
)}
|
||||
|
@ -54,6 +54,14 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
boot.enableContainers = mkOption {
|
||||
type = types.bool;
|
||||
default = !config.boot.isContainer;
|
||||
description = ''
|
||||
Whether to enable support for nixos containers.
|
||||
'';
|
||||
};
|
||||
|
||||
containers = mkOption {
|
||||
type = types.attrsOf (types.submodule (
|
||||
{ config, options, name, ... }:
|
||||
@ -164,7 +172,7 @@ in
|
||||
};
|
||||
|
||||
|
||||
config = mkIf (!config.boot.isContainer) {
|
||||
config = mkIf (config.boot.enableContainers) {
|
||||
|
||||
systemd.services."container@" =
|
||||
{ description = "Container '%i'";
|
||||
|
@ -104,6 +104,10 @@ if ($action eq "create") {
|
||||
|
||||
die "$0: container ‘$containerName’ already exists\n" if -e $confFile;
|
||||
|
||||
# Due to interface name length restrictions, container names must
|
||||
# be restricted too.
|
||||
die "$0: container name ‘$containerName’ is too long\n" if length $containerName > 11;
|
||||
|
||||
# Get an unused IP address.
|
||||
my %usedIPs;
|
||||
foreach my $confFile2 (glob "/etc/containers/*.conf") {
|
||||
|
@ -252,7 +252,7 @@ in rec {
|
||||
tests.firefox = callTest tests/firefox.nix {};
|
||||
tests.firewall = callTest tests/firewall.nix {};
|
||||
tests.fleet = scrubDrv (import tests/fleet.nix { system = "x86_64-linux"; });
|
||||
tests.gitlab = callTest tests/gitlab.nix {};
|
||||
#tests.gitlab = callTest tests/gitlab.nix {};
|
||||
tests.gnome3 = callTest tests/gnome3.nix {};
|
||||
tests.installer.grub1 = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).grub1.test);
|
||||
tests.installer.lvm = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).lvm.test);
|
||||
|
@ -10,6 +10,7 @@ import ./make-test.nix (
|
||||
name = "chromium";
|
||||
|
||||
machine.imports = [ ./common/x11.nix ];
|
||||
machine.virtualisation.memorySize = 1024;
|
||||
|
||||
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
||||
<!DOCTYPE html>
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
|
||||
, gst_plugins_good, gst_plugins_bad, gst_plugins_ugly, gst_ffmpeg
|
||||
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
|
||||
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
||||
, sparsehash, config }:
|
||||
, sparsehash, config, makeWrapper }:
|
||||
|
||||
let withSpotify = config.clementine.spotify or false;
|
||||
in
|
||||
@ -22,6 +23,9 @@ stdenv.mkDerivation {
|
||||
gettext
|
||||
glew
|
||||
gst_plugins_base
|
||||
gst_plugins_good
|
||||
gst_plugins_ugly
|
||||
gst_ffmpeg
|
||||
gstreamer
|
||||
gvfs
|
||||
libcdio
|
||||
@ -29,6 +33,7 @@ stdenv.mkDerivation {
|
||||
liblastfm
|
||||
libmtp
|
||||
libplist
|
||||
makeWrapper
|
||||
pkgconfig
|
||||
protobuf
|
||||
qca2
|
||||
@ -42,6 +47,11 @@ stdenv.mkDerivation {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/clementine \
|
||||
--set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.clementine-player.org";
|
||||
description = "A multiplatform music player";
|
||||
|
@ -2,15 +2,15 @@
|
||||
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
||||
|
||||
let
|
||||
rev = "99efbf0b";
|
||||
rev = "3bfddf7f";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "distrho-${rev}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/falkTX/DISTRHO.git";
|
||||
url = "https://github.com/DISTRHO/DISTRHO-Ports.git";
|
||||
inherit rev;
|
||||
sha256 = "ed26a6edca19ebb8260b3dc042f69c32162e1d91179fb9d22da42ec7131936f9";
|
||||
sha256 = "55dc52921bb757c3213da5ef6cab40909f39be3e3b41ba4c6cd66ad90bfb2e6c";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
@ -50,5 +50,9 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
platforms = platforms.linux;
|
||||
|
||||
# The old repo was removed and split into multiple repos. More
|
||||
# work is required to get everything to build and work.
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "drumkv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
||||
sha256 = "1cih4f22922ndk8yrcf955fvzkd8mh7qz1xcdyn3xybs7ackgarq";
|
||||
sha256 = "1y3imsh059y9sihr92f3drwmcby4x3krmhly111ahwkydb94kphw";
|
||||
};
|
||||
|
||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||
|
21
pkgs/applications/audio/game-music-emu/default.nix
Normal file
21
pkgs/applications/audio/game-music-emu/default.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ stdenv, fetchurl, cmake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.6.0";
|
||||
name = "game-music-emu-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://game-music-emu.googlecode.com/files/${name}.tar.bz2";
|
||||
sha256 = "11s9l938nxbrk7qb2k1ppfgizcz00cakbxgv0gajc6hyqv882vjh";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://code.google.com/p/game-music-emu/;
|
||||
description = "A collection of video game music file emulators";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "guitarix-${version}";
|
||||
version = "0.32.1";
|
||||
version = "0.32.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
|
||||
sha256 = "1sl7ca1lj0wchh3xq7qw3zqrbyyh4r8cwljb9i3yplpsn90d1i3k";
|
||||
sha256 = "0mh4ma48hc8kq3xw25y1zjcrwgsdb0scd36vzw50a1qmmnh74rgp";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
32
pkgs/applications/audio/keyfinder-cli/default.nix
Normal file
32
pkgs/applications/audio/keyfinder-cli/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchFromGitHub, libav, libkeyfinder }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20150125";
|
||||
name = "keyfinder-cli-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "keyfinder-cli";
|
||||
owner = "EvanPurkhiser";
|
||||
rev = "3a6f598b3661fdba73ada81cd200a6e56c23ddca";
|
||||
sha256 = "05k4g9zdzi4q81p8lax9b2j4bcg1bpp04sdbza5i5pfz2fng2cf7";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Musical key detection for digital audio (command-line tool)";
|
||||
longDescription = ''
|
||||
This small utility is the automation-oriented DJ's best friend. By making
|
||||
use of Ibrahim Sha'ath's high quality libKeyFinder library, it can be
|
||||
used to estimate the musical key of many different audio formats.
|
||||
'';
|
||||
homepage = https://github.com/EvanPurkhiser/keyfinder-cli;
|
||||
license = with licenses; gpl3Plus;
|
||||
platforms = with platforms; linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
|
||||
buildInputs = [ libav libkeyfinder ];
|
||||
|
||||
makeFlagsArray = "PREFIX=$(out)";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
42
pkgs/applications/audio/keyfinder/default.nix
Normal file
42
pkgs/applications/audio/keyfinder/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qt5, taglib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.25-17-gf670607";
|
||||
name = "keyfinder-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "is_KeyFinder";
|
||||
owner = "ibsh";
|
||||
rev = "f6706074435ac14c5238ee3f0dd22ac22d72af9c";
|
||||
sha256 = "1sfnywc6jdpm03344i6i4pz13mqa4i5agagj4k6252m63cqmjkrc";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Musical key detection for digital audio (graphical UI)";
|
||||
longDescription = ''
|
||||
KeyFinder is an open source key detection tool, for DJs interested in
|
||||
harmonic and tonal mixing. Designed primarily for electronic and dance
|
||||
music, it is highly configurable and can be applied to many genres. It
|
||||
supports a huge range of codecs thanks to LibAV, and writes to metadata
|
||||
tags using TagLib. It's intended to be very focused: no library
|
||||
management, no track suggestions, no media player. Just a fast,
|
||||
efficient workflow tool.
|
||||
'';
|
||||
homepage = http://www.ibrahimshaath.co.uk/keyfinder/;
|
||||
license = with licenses; gpl3Plus;
|
||||
platforms = with platforms; linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
|
||||
# TODO: upgrade libav when "Audio sample format conversion failed" is fixed
|
||||
buildInputs = [ libav_0_8 libkeyfinder qt5 taglib ];
|
||||
|
||||
configurePhase = ''
|
||||
substituteInPlace is_KeyFinder.pro \
|
||||
--replace "keyfinder.0" "keyfinder" \
|
||||
--replace '$$[QT_INSTALL_PREFIX]' "$out"
|
||||
qmake
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
0
pkgs/applications/audio/mpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/mpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/ncmpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/ncmpc/default.nix
Executable file → Normal file
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "samplv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
||||
sha256 = "155qq7gxyqn7sh8bbyhjk40lxl157lb2h539j4gqgv5jphz8g6wy";
|
||||
sha256 = "0fbkdb2dqw7v6n8j1h6pjz2019ylli9rmz8awywv2ycm8blr5pf0";
|
||||
};
|
||||
|
||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||
|
@ -4,11 +4,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "snd-15.1";
|
||||
name = "snd-15.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/snd/${name}.tar.gz";
|
||||
sha256 = "01xrgxmkibadm3zva2n7qv00dz8yy9wlkpwv7vancqfb8x44x1ji";
|
||||
sha256 = "0v2r7a6363aai726cywi7ai0qlwdc20bqdprs5fmyz8sbmksbqzr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
34
pkgs/applications/audio/sooperlooper/default.nix
Normal file
34
pkgs/applications/audio/sooperlooper/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv, fetchurl, liblo, libxml2, jack2, libsndfile, wxGTK, libsigcxx
|
||||
,libsamplerate, rubberband, pkgconfig, ncurses
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "sooperlooper-${version}";
|
||||
version = "1.7.3";
|
||||
src = fetchurl {
|
||||
url = "http://essej.net/sooperlooper/${name}.tar.gz";
|
||||
sha256 = "0n2gdxw1fx8nxxnpzf4sj0kp6k6zi1yq59cbz6qqzcnsnpnvszbs";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
liblo libxml2 jack2 libsndfile wxGTK libsigcxx
|
||||
libsamplerate rubberband pkgconfig ncurses
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
|
||||
longDescription = ''
|
||||
It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory.
|
||||
The application is a standalone JACK client with an engine controllable via OSC and MIDI.
|
||||
It also includes a GUI which communicates with the engine via OSC (even over a network) for user-friendly control on a desktop.
|
||||
However, this kind of live performance looping tool is most effectively used via hardware (midi footpedals, etc)
|
||||
and the engine can be run standalone on a computer without a monitor.
|
||||
'';
|
||||
|
||||
version = "${version}";
|
||||
homepage = "http://essej.net/sooperlooper/index.html";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [ stdenv.lib.maintainers.magnetophon ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype
|
||||
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
|
||||
, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer, udev, fontconfig
|
||||
, libgcrypt, chromium, udev, fontconfig
|
||||
, dbus, expat }:
|
||||
|
||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||
@ -10,20 +10,6 @@ let
|
||||
then "0.9.4.183.g644e24e.428"
|
||||
else "0.9.11.27.g2b1a638.81";
|
||||
|
||||
qt4webkit =
|
||||
if stdenv.system == "i686-linux" then
|
||||
fetchurl {
|
||||
name = "libqtwebkit4_2.3.2_i386.deb";
|
||||
url = http://ie.archive.ubuntu.com/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.3.2-0ubuntu7_i386.deb;
|
||||
sha256 = "0q4abhczx91ma57fjss0gn8j6nkfbfsbsh6kxhykzj88dih2s8rn";
|
||||
}
|
||||
else
|
||||
fetchurl {
|
||||
name = "libqtwebkit4_2.3.2_amd64.deb";
|
||||
url = http://ie.archive.ubuntu.com/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.3.2-0ubuntu7_amd64.deb;
|
||||
sha256 = "0sac88avfivwkfhmd6fik7ili8fdznqas6741dbspf9mfnawbwch";
|
||||
};
|
||||
|
||||
deps = [
|
||||
alsaLib
|
||||
atk
|
||||
@ -36,15 +22,12 @@ let
|
||||
GConf
|
||||
gdk_pixbuf
|
||||
glib
|
||||
gst_plugins_base
|
||||
gstreamer
|
||||
gtk
|
||||
libgcrypt
|
||||
libpng
|
||||
nss
|
||||
pango
|
||||
qt4
|
||||
sqlite
|
||||
stdenv.cc.cc
|
||||
xlibs.libX11
|
||||
xlibs.libXcomposite
|
||||
@ -56,7 +39,6 @@ let
|
||||
xlibs.libXrender
|
||||
xlibs.libXrender
|
||||
xlibs.libXScrnSaver
|
||||
#xlibs.libXss
|
||||
];
|
||||
|
||||
in
|
||||
@ -83,37 +65,37 @@ stdenv.mkDerivation {
|
||||
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out
|
||||
libdir=$out/lib/spotify
|
||||
mkdir -p $libdir
|
||||
dpkg-deb -x $src $out
|
||||
mv $out/opt/spotify/* $out/
|
||||
rm -rf $out/usr $out/opt
|
||||
|
||||
# Work around Spotify referring to a specific minor version of
|
||||
# OpenSSL.
|
||||
mkdir $out/lib
|
||||
|
||||
ln -s ${nss}/lib/libnss3.so $out/lib/libnss3.so.1d
|
||||
ln -s ${nss}/lib/libnssutil3.so $out/lib/libnssutil3.so.1d
|
||||
ln -s ${nss}/lib/libsmime3.so $out/lib/libsmime3.so.1d
|
||||
ln -s ${nss}/lib/libnss3.so $libdir/libnss3.so.1d
|
||||
ln -s ${nss}/lib/libnssutil3.so $libdir/libnssutil3.so.1d
|
||||
ln -s ${nss}/lib/libsmime3.so $libdir/libsmime3.so.1d
|
||||
|
||||
${if stdenv.system == "x86_64-linux" then ''
|
||||
ln -s ${openssl}/lib/libssl.so $out/lib/libssl.so.1.0.0
|
||||
ln -s ${openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
|
||||
ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so
|
||||
ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.so
|
||||
ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.1.0.0
|
||||
ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
|
||||
ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so
|
||||
ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so
|
||||
'' else ''
|
||||
ln -s ${openssl}/lib/libssl.so $out/lib/libssl.so.0.9.8
|
||||
ln -s ${openssl}/lib/libcrypto.so $out/lib/libcrypto.so.0.9.8
|
||||
ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so.0d
|
||||
ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.so.0d
|
||||
ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.0.9.8
|
||||
ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.0.9.8
|
||||
ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so.0d
|
||||
ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so.0d
|
||||
''}
|
||||
|
||||
# Work around Spotify trying to open libudev.so.0 (which we don't have)
|
||||
ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
|
||||
ln -s ${udev}/lib/libudev.so.1 $libdir/libudev.so.0
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
rpath="$out/spotify-client/Data:$out/lib:$out/spotify-client:${stdenv.cc.cc}/lib64"
|
||||
rpath="$out/spotify-client/Data:$libdir:$out/spotify-client:${stdenv.cc.cc}/lib64"
|
||||
|
||||
ln -s $out/spotify-client/spotify $out/bin/spotify
|
||||
|
||||
@ -125,12 +107,8 @@ stdenv.mkDerivation {
|
||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath $rpath $out/spotify-client/Data/SpotifyHelper
|
||||
|
||||
dpkg-deb -x ${qt4webkit} ./
|
||||
mkdir -p $out/lib/
|
||||
cp -v usr/lib/*/* $out/lib/
|
||||
|
||||
preload=$out/libexec/spotify/libpreload.so
|
||||
librarypath="${stdenv.lib.makeLibraryPath deps}:$out/lib"
|
||||
librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir"
|
||||
mkdir -p $out/libexec/spotify
|
||||
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "synthv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
||||
sha256 = "16wcxrcjwp0qp2xgahhzvcs2k31sr6c9jsxyhivj4famj7a39pfw";
|
||||
sha256 = "07570mi7rjwkkvfzdw1jcbhpkpxpjp69xj7wfzng92rk2gz7yi8m";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4 jack2 lv2 ];
|
||||
|
0
pkgs/applications/audio/vimpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/vimpc/default.nix
Executable file → Normal file
32
pkgs/applications/editors/emacs-modes/flycheck/default.nix
Normal file
32
pkgs/applications/editors/emacs-modes/flycheck/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchFromGitHub, emacs, let-alist, dash, texinfo }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "flycheck-0.22-64-g90dbc2d";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flycheck";
|
||||
repo = "flycheck";
|
||||
rev = "90dbc2d";
|
||||
sha256 = "08bg4jps6hjldbcrvqarrwdv4xzirm5pns5s0331wm0sc47yvbli";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
||||
buildPhase = ''
|
||||
emacs -L ${let-alist}/share/emacs/site-lisp -L ${dash}/share/emacs/site-lisp --batch -f batch-byte-compile flycheck.el
|
||||
makeinfo --force --no-split -o doc/flycheck.info doc/flycheck.texi
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp $out/share/info
|
||||
mv flycheck.el flycheck.elc $out/share/emacs/site-lisp/
|
||||
mv "doc/"*.info $out/share/info/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/magit/git-modes";
|
||||
description = "Emacs modes for various Git-related files";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, emacs, texinfo }:
|
||||
|
||||
let
|
||||
version = "13.10-299-g74b5a3c"; # git describe --tags
|
||||
version = "13.10-361-gfa09425"; # git describe --tags
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "haskell-mode-${version}";
|
||||
@ -10,7 +10,7 @@ stdenv.mkDerivation {
|
||||
owner = "haskell";
|
||||
repo = "haskell-mode";
|
||||
rev = "v${version}";
|
||||
sha256 = "1qjrc1c4jsgbbhnhssvadg00qffn80a8slrxc9g1hnzp632kv8wl";
|
||||
sha256 = "1bq4gddzwjy2w1hbsmwxcamcy87amz7ksy1vmpwg0qij88fk4av9";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
27
pkgs/applications/editors/emacs-modes/let-alist/default.nix
Normal file
27
pkgs/applications/editors/emacs-modes/let-alist/default.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ stdenv, fetchurl, emacs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "let-alist-1.0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/let-alist-1.0.3.el";
|
||||
sha256 = "12n1cmjc7hzyy0jmsdxqz1hqzg4ri4nvvi0p9mw1d6v44xzfm0mx";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
|
||||
unpackPhase = "cp -v ${src} let-alist.el";
|
||||
buildPhase = "emacs --batch -f batch-byte-compile let-alist.el";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
mv -v *.el *.elc $out/share/emacs/site-lisp/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://elpa.gnu.org/packages/let-alist.html";
|
||||
description = "Easily let-bind values of an assoc-list by their names";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
};
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
source $stdenv/setup
|
||||
source $makeWrapper
|
||||
|
||||
export MONO_GAC_PREFIX=$monodoc:$gtksharp
|
||||
|
||||
postInstall() {
|
||||
mv $out/bin $out/bin-orig
|
||||
mkdir $out/bin
|
||||
|
||||
moz=$(ls $mozilla/lib/*/libgtkembedmoz.so)
|
||||
|
||||
for i in $out/bin-orig/*; do
|
||||
echo "wrapping $(basename $i)"
|
||||
# !!! TODO: figure out the MONO_GAC_PREFIX automatically
|
||||
makeWrapper "$i" "$out/bin/$(basename $i)" \
|
||||
--suffix PATH ':' "$(dirname $(type -p mono))" \
|
||||
--suffix PATH ':' "$(dirname $(type -p mono))" \
|
||||
--suffix LD_LIBRARY_PATH ':' "$gtksharp/lib" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$gtksharp" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$gtkmozembedsharp" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$gtksourceviewsharp" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$monodoc" \
|
||||
--set MOZILLA_FIVE_HOME "$(dirname $moz)"
|
||||
done
|
||||
}
|
||||
|
||||
genericBuild
|
||||
|
@ -1,26 +1,47 @@
|
||||
{ stdenv, fetchurl, file, mono, gtksharp, gtksourceviewsharp
|
||||
, gtkmozembedsharp, monodoc
|
||||
, perl, perlXMLParser, pkgconfig
|
||||
, glib, gtk, GConf, gnome_vfs, libbonobo, libglade, libgnome
|
||||
, mozilla, makeWrapper
|
||||
{stdenv, fetchgit
|
||||
, autoconf, automake, pkgconfig, shared_mime_info, intltool
|
||||
, glib, mono, gtk-sharp, gnome-sharp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "monodevelop-0.6-pre2315";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://tarballs.nixos.org/monodevelop-0.6-pre2315.tar.bz2;
|
||||
md5 = "8c33df5629b0676b7ab552854c1de6fd";
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.1.4.0";
|
||||
revision = "7d45bbe2ee22625f125d0c52548524f02d005cca";
|
||||
name = "monodevelop-${version}";
|
||||
src = fetchgit {
|
||||
url = https://github.com/mono/monodevelop.git;
|
||||
rev = revision;
|
||||
sha256 = "0qy12zdvb0jiic3pq1w9mcsz2wwxrn0m92abd184q06yg5m48g1b";
|
||||
};
|
||||
|
||||
patches = [./prefix.patch];
|
||||
|
||||
buildInputs = [
|
||||
file mono gtksharp gtksourceviewsharp perl perlXMLParser pkgconfig
|
||||
glib gtk GConf gnome_vfs libbonobo libglade libgnome
|
||||
gtkmozembedsharp monodoc
|
||||
autoconf automake pkgconfig shared_mime_info intltool
|
||||
mono gtk-sharp gnome-sharp
|
||||
];
|
||||
|
||||
inherit mozilla monodoc gtksharp gtkmozembedsharp gtksourceviewsharp makeWrapper;
|
||||
|
||||
preConfigure = "patchShebangs ./configure";
|
||||
preBuild = ''
|
||||
cat > ./main/buildinfo <<EOF
|
||||
Release ID: ${version}
|
||||
Git revision: ${revision}
|
||||
Build date: 1970-01-01 00:00:01
|
||||
EOF
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
for prog in monodevelop mdtool; do
|
||||
patch -p 0 $out/bin/$prog <<EOF
|
||||
2a3,5
|
||||
> export MONO_GAC_PREFIX=${gtk-sharp}:\$MONO_GAC_PREFIX
|
||||
> export PATH=${mono}/bin:\$PATH
|
||||
> export LD_LIBRARY_PATH=${glib}/lib:${gnome-sharp}/lib:${gtk-sharp}/lib:${gtk-sharp.gtk}/lib:\$LD_LIBRARY_PATH
|
||||
>
|
||||
EOF
|
||||
done
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,44 +0,0 @@
|
||||
diff -rc MonoDevelop-orig/Makefile.in MonoDevelop/Makefile.in
|
||||
*** MonoDevelop-orig/Makefile.in 2005-03-09 17:43:58.000000000 +0100
|
||||
--- MonoDevelop/Makefile.in 2005-03-09 18:10:20.000000000 +0100
|
||||
***************
|
||||
*** 298,304 ****
|
||||
# (mkdir ../../build/bin/ hack)
|
||||
SUBDIRS = Core build po Extras
|
||||
bin_SCRIPTS = monodevelop
|
||||
! gnome_data = @gnome_prefix@/share
|
||||
desktopdir = $(gnome_data)/applications
|
||||
desktop_DATA = monodevelop.desktop
|
||||
pixmapdir = $(gnome_data)/pixmaps
|
||||
--- 298,304 ----
|
||||
# (mkdir ../../build/bin/ hack)
|
||||
SUBDIRS = Core build po Extras
|
||||
bin_SCRIPTS = monodevelop
|
||||
! gnome_data = @prefix@/share
|
||||
desktopdir = $(gnome_data)/applications
|
||||
desktop_DATA = monodevelop.desktop
|
||||
pixmapdir = $(gnome_data)/pixmaps
|
||||
***************
|
||||
*** 809,818 ****
|
||||
all:
|
||||
|
||||
install-data-hook:
|
||||
! $(UPDATE_MIME_DB) $(gnome_data)/mime
|
||||
|
||||
uninstall-hook:
|
||||
! $(UPDATE_MIME_DB) $(gnome_data)/mime
|
||||
|
||||
run: runmd
|
||||
|
||||
--- 809,818 ----
|
||||
all:
|
||||
|
||||
install-data-hook:
|
||||
! # $(UPDATE_MIME_DB) $(gnome_data)/mime
|
||||
|
||||
uninstall-hook:
|
||||
! # $(UPDATE_MIME_DB) $(gnome_data)/mime
|
||||
|
||||
run: runmd
|
||||
|
||||
Only in MonoDevelop: Makefile.in~
|
@ -1,20 +0,0 @@
|
||||
source $stdenv/setup
|
||||
source $makeWrapper
|
||||
|
||||
postInstall() {
|
||||
mv $out/bin $out/bin-orig
|
||||
mkdir $out/bin
|
||||
|
||||
for i in $out/bin-orig/*; do
|
||||
echo "wrapping $(basename $i)"
|
||||
# !!! TODO: figure out the MONO_GAC_PREFIX automatically
|
||||
makeWrapper "$i" "$out/bin/$(basename $i)" \
|
||||
--suffix PATH ':' "$(dirname $(type -p mono))" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$gtksharp" \
|
||||
--suffix MONO_GAC_PREFIX ':' "$out"
|
||||
done
|
||||
}
|
||||
|
||||
genericBuild
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
{stdenv, fetchurl, mono, gtksharp, pkgconfig, makeWrapper}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "monodoc-1.0.6";
|
||||
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://tarballs.nixos.org/monodoc-1.0.6.tar.gz;
|
||||
md5 = "f2fc27e8e4717d90dc7efa2450625693";
|
||||
};
|
||||
|
||||
buildInputs = [mono gtksharp pkgconfig];
|
||||
|
||||
inherit gtksharp makeWrapper;
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, qt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tiled-qt-0.9.1";
|
||||
name = "tiled-0.11.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/tiled/${name}.tar.gz";
|
||||
sha256 = "09xm6ry56zsqbfl9fvlvc5kq9ikzdskm283r059q6rlc7crzhs38";
|
||||
url = "https://github.com/bjorn/tiled/archive/v0.11.0.tar.gz";
|
||||
sha256 = "03a15vbzjfwc8dpifbjvd0gnr208mzmdkgs2nlc8zq6z0a4h4jqd";
|
||||
};
|
||||
|
||||
buildInputs = [ qt ];
|
@ -1,13 +1,14 @@
|
||||
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
|
||||
pyqt4, qwt, fcgi, python, libspatialindex, libspatialite }:
|
||||
pyqt4, qwt, fcgi, pythonPackages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qgis-2.4.0";
|
||||
name = "qgis-2.6.1";
|
||||
|
||||
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
|
||||
fcgi libspatialindex libspatialite ];
|
||||
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt qscintilla
|
||||
fcgi libspatialindex libspatialite postgresql ] ++
|
||||
(with pythonPackages; [ numpy psycopg2 ]);
|
||||
|
||||
nativeBuildInputs = [ cmake python ];
|
||||
nativeBuildInputs = [ cmake makeWrapper ];
|
||||
|
||||
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
|
||||
#enableParallelBuilding = true;
|
||||
@ -20,11 +21,14 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://qgis.org/downloads/${name}.tar.bz2";
|
||||
sha256 = "711b7d81ddff45b083a21f05c8aa5093a6a38a0ee42dfcc873234fcef1fcdd76";
|
||||
|
||||
|
||||
sha256 = "1avw9mnhrcxsdalqr2yhyif1cacl4dsgcpfc31axkv7vj401djnl";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/qgis \
|
||||
--prefix PYTHONPATH : $PYTHONPATH
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "User friendly Open Source Geographic Information System";
|
||||
homepage = http://www.qgis.org;
|
||||
|
@ -30,10 +30,10 @@ let
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ImageMagick-${version}";
|
||||
name = "imagemagick-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://imagemagick/releases/${name}.tar.xz";
|
||||
url = "mirror://imagemagick/releases/ImageMagick-${version}.tar.xz";
|
||||
sha256 = "1dmrl5x63msdnxsf4cmhz5v4ard2z3jrgp2zhqlb27399j81qcqj";
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,17 @@
|
||||
{stdenv, fetchurl, python, boost, pkgconfig, imagemagick}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "PythonMagick-0.7";
|
||||
let
|
||||
|
||||
version = "0.9.11";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pythonmagick-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://www.imagemagick.org/download/python/PythonMagick-0.7.tar.gz;
|
||||
sha256 = "1553kyzdcysii2qhbpbgs0icmfpm6s2lp3zchgs73cxfnfym8lz1";
|
||||
url = "http://www.imagemagick.org/download/python/releases/PythonMagick-${version}.tar.gz";
|
||||
sha256 = "01z01mlqkk0lvrh2jsmf84qjw29sq4rpj0653x7nqy7mrszwwp2v";
|
||||
};
|
||||
|
||||
buildInputs = [python boost pkgconfig imagemagick];
|
||||
|
@ -1,21 +1,21 @@
|
||||
{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2, eigen,
|
||||
lcms, jasper, libgphoto2, kdepimlibs, gettext, soprano, libjpeg, libtiff,
|
||||
liblqr1, lensfun, pkgconfig, qjson, libkdcraw, opencv, libkexiv2, libkipi, boost,
|
||||
shared_desktop_ontologies, marble, mysql }:
|
||||
shared_desktop_ontologies, marble, mysql, libpgf }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "digikam-4.4.0";
|
||||
name = "digikam-4.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.kde.org/stable/digikam/${name}.tar.bz2";
|
||||
sha256 = "1sflh3i989f9xi4qym3rzcrx7ahrjf1n9si8c5q05dgm039a4s2w";
|
||||
sha256 = "0id3anikki8c3rzqzapdbg00h577qwybknvkbz1kdq0348bs6ixh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake automoc4 pkgconfig ];
|
||||
|
||||
buildInputs = [ qt4 kdelibs phonon qimageblitz qca2 eigen lcms libjpeg libtiff
|
||||
jasper libgphoto2 kdepimlibs gettext soprano liblqr1 lensfun qjson libkdcraw
|
||||
opencv libkexiv2 libkipi boost shared_desktop_ontologies marble mysql ];
|
||||
opencv libkexiv2 libkipi boost shared_desktop_ontologies marble mysql libpgf ];
|
||||
|
||||
# Make digikam find some FindXXXX.cmake
|
||||
KDEDIRS="${marble}:${qjson}";
|
||||
|
@ -1,27 +0,0 @@
|
||||
source $stdenv/setup
|
||||
source $makeWrapper
|
||||
|
||||
postInstall() {
|
||||
mv $out/bin $out/bin-orig
|
||||
mkdir $out/bin
|
||||
|
||||
for i in $out/bin-orig/*; do
|
||||
echo "wrapping $(basename $i)"
|
||||
# !!! TODO: figure out the MONO_GAC_PREFIX automatically
|
||||
makeWrapper "$i" "$out/bin/$(basename $i)" \
|
||||
--prefix PATH ':' "$(dirname $(type -p mono))" \
|
||||
--prefix LD_LIBRARY_PATH ':' "$sqlite/lib" \
|
||||
--prefix LD_LIBRARY_PATH ':' "$libgnomeui/lib/libglade/2.0" \
|
||||
--prefix MONO_GAC_PREFIX ':' "$gtksharp"
|
||||
done
|
||||
|
||||
# !!! hack
|
||||
export ALL_INPUTS="$out $pkgs"
|
||||
|
||||
find $out -name "*.dll.config" -o -name "*.exe.config" | while read configFile; do
|
||||
echo "modifying config file $configFile"
|
||||
$monoDLLFixer "$configFile"
|
||||
done
|
||||
}
|
||||
|
||||
genericBuild
|
@ -1,32 +0,0 @@
|
||||
{ stdenv, fetchurl, perl, perlXMLParser, pkgconfig, mono, libexif
|
||||
, libgnome, libgnomeui, gtksharp, libjpeg, sqlite, lcms, libgphoto2
|
||||
, monoDLLFixer
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "f-spot-0.0.10";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
inherit makeWrapper;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://tarballs.nixos.org/f-spot-0.0.10.tar.bz2;
|
||||
sha256 = "1hgls6hzvxsnk09j9y6hq10qxsc92i864mdg3gk2cimbkbr0mh8b";
|
||||
};
|
||||
|
||||
patches = [./dllmap.patch];
|
||||
|
||||
buildInputs = [
|
||||
perl perlXMLParser pkgconfig mono libexif
|
||||
libgnome libgnomeui gtksharp libjpeg sqlite
|
||||
lcms libgphoto2
|
||||
];
|
||||
|
||||
inherit monoDLLFixer gtksharp sqlite libgnomeui;
|
||||
|
||||
meta = {
|
||||
homepage = http://f-spot.org;
|
||||
};
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
diff -rc f-spot-0.0.10-orig/libgphoto2-sharp/libgphoto2-sharp.dll.config f-spot-0.0.10/libgphoto2-sharp/libgphoto2-sharp.dll.config
|
||||
*** f-spot-0.0.10-orig/libgphoto2-sharp/libgphoto2-sharp.dll.config 2005-02-27 19:25:09.000000000 +0100
|
||||
--- f-spot-0.0.10/libgphoto2-sharp/libgphoto2-sharp.dll.config 2005-03-11 12:13:12.000000000 +0100
|
||||
***************
|
||||
*** 1,3 ****
|
||||
<configuration>
|
||||
! <dllmap dll="libgphoto2.so" target="/usr/lib/libgphoto2.so.2"/>
|
||||
</configuration>
|
||||
--- 1,3 ----
|
||||
<configuration>
|
||||
! <dllmap dll="libgphoto2.so" target="libgphoto2.so.2"/>
|
||||
</configuration>
|
||||
diff -rc f-spot-0.0.10-orig/src/f-spot.exe.config.in f-spot-0.0.10/src/f-spot.exe.config.in
|
||||
*** f-spot-0.0.10-orig/src/f-spot.exe.config.in 2005-02-27 18:03:02.000000000 +0100
|
||||
--- f-spot-0.0.10/src/f-spot.exe.config.in 2005-03-11 12:48:03.000000000 +0100
|
||||
***************
|
||||
*** 9,13 ****
|
||||
<dllmap dll="libfspoteog" target="@prefix@/lib/f-spot/libfspoteog.so.0"/>
|
||||
<dllmap dll="libfspotjpeg" target="@prefix@/lib/f-spot/libfspotjpg.so.0"/>
|
||||
<dllmap dll="liblcms-1.0.0.dll" target="liblcms.so.1"/>
|
||||
! <dllmap dll="libexif.dll" target="libexif.so.@EXIF_SOVERSION@"/>
|
||||
</configuration>
|
||||
--- 9,13 ----
|
||||
<dllmap dll="libfspoteog" target="@prefix@/lib/f-spot/libfspoteog.so.0"/>
|
||||
<dllmap dll="libfspotjpeg" target="@prefix@/lib/f-spot/libfspotjpg.so.0"/>
|
||||
<dllmap dll="liblcms-1.0.0.dll" target="liblcms.so.1"/>
|
||||
! <dllmap dll="libexif.dll" target="libexif.so"/>
|
||||
</configuration>
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng
|
||||
, libXinerama, curl }:
|
||||
, libXinerama, curl, libexif }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "feh-2.12";
|
||||
@ -9,10 +9,10 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0ckhidmsms2l5jycp0qf71jzmb3bpbhjq3bcgfpvfvszah7pmq30";
|
||||
};
|
||||
|
||||
buildInputs = [makeWrapper x11 imlib2 libjpeg libpng libXinerama curl];
|
||||
buildInputs = [ makeWrapper x11 imlib2 libjpeg libpng libXinerama curl libexif ];
|
||||
|
||||
preBuild = ''
|
||||
makeFlags="PREFIX=$out"
|
||||
makeFlags="PREFIX=$out exif=1"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
28
pkgs/applications/graphics/leocad/default.nix
Normal file
28
pkgs/applications/graphics/leocad/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
To use aditional parts libraries
|
||||
set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
|
||||
*/
|
||||
|
||||
{ stdenv, fetchsvn, qt4, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "leocad-${version}";
|
||||
version = "0.81";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://svn.leocad.org/tags/${name}";
|
||||
sha256 = "1190gb437ls51hhfiwa79fq131026kywpy3j3k4fkdgfr8a9v3q8";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4 zlib ];
|
||||
|
||||
prefixKey="INSTALL_PREFIX=";
|
||||
configureScript = "qmake leocad.pro";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "CAD program for creating virtual LEGO models";
|
||||
homepage = http://www.leocad.org/;
|
||||
license = licenses.gpl2;
|
||||
inherit (qt4.meta) platforms;
|
||||
};
|
||||
}
|
@ -5,8 +5,8 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/muennich/sxiv.git";
|
||||
rev = "6216bf6c2d42be63025d29550831d9f4447f4066";
|
||||
sha256 = "e25e19cf073cc2621656e50d2c31cc59cc0fc200716f96c765374568a26977f1";
|
||||
rev = "92e3b57816e999b46f8d0778984719227631e9a7";
|
||||
sha256 = "0jbswh0k1xq5hgrv1pyvk7lpwbbj66p7gjsdm8zh6ah324apjr2b";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
|
265
pkgs/applications/kde-apps-14.12/default.nix
Normal file
265
pkgs/applications/kde-apps-14.12/default.nix
Normal file
@ -0,0 +1,265 @@
|
||||
# Maintainer's Notes:
|
||||
#
|
||||
# Minor updates:
|
||||
# 1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
|
||||
# releases updates that include only the changed packages; in this case,
|
||||
# multiple URLs can be provided and the results will be merged.
|
||||
# 2. Run ./manifest.sh and ./dependencies.sh.
|
||||
# 3. Build and enjoy.
|
||||
#
|
||||
# Major updates:
|
||||
# We prefer not to immediately overwrite older versions with major updates, so
|
||||
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
||||
# if it exists. Then follow the minor update instructions.
|
||||
|
||||
{ autonix, kde4, kf55, pkgs, qt4, stdenv, debug ? false }:
|
||||
|
||||
with stdenv.lib; with autonix;
|
||||
|
||||
let
|
||||
|
||||
kf5 = kf55.override { inherit debug; };
|
||||
|
||||
mirror = "mirror://kde";
|
||||
|
||||
renames =
|
||||
(builtins.removeAttrs
|
||||
(import ./renames.nix {})
|
||||
["Backend" "CTest"])
|
||||
// {
|
||||
"KDE4" = "kdelibs";
|
||||
"Kexiv2" = "libkexiv2";
|
||||
"Kdcraw" = "libkdcraw";
|
||||
"Kipi" = "libkipi";
|
||||
"LibKMahjongg" = "libkmahjongg";
|
||||
"LibKonq" = "kde-baseapps";
|
||||
};
|
||||
|
||||
scope =
|
||||
# packages in this collection
|
||||
(mapAttrs (dep: name: kdeApps."${name}") renames) //
|
||||
# packages from KDE Frameworks 5
|
||||
kf5.scope //
|
||||
# packages from nixpkgs
|
||||
(with pkgs;
|
||||
{
|
||||
ACL = acl;
|
||||
Akonadi = kde4.akonadi;
|
||||
Alsa = alsaLib;
|
||||
Automoc4 = automoc4;
|
||||
Avahi = avahi;
|
||||
BISON = bison;
|
||||
Baloo = kde4.baloo;
|
||||
Boost = boost156;
|
||||
Canberra = libcanberra;
|
||||
Cdparanoia = cdparanoia;
|
||||
CUPS = cups;
|
||||
DBusMenuQt = libdbusmenu_qt;
|
||||
DjVuLibre = djvulibre;
|
||||
ENCHANT = enchant;
|
||||
EPub = ebook_tools;
|
||||
Eigen2 = eigen2;
|
||||
Eigen3 = eigen;
|
||||
Exiv2 = exiv2;
|
||||
FAM = fam;
|
||||
FFmpeg = ffmpeg;
|
||||
Flac = flac;
|
||||
FLEX = flex;
|
||||
Freetype = freetype;
|
||||
GMP = gmp;
|
||||
Gettext = gettext;
|
||||
Gpgme = gpgme;
|
||||
Gphoto2 = libgphoto2;
|
||||
Grantlee = grantlee;
|
||||
GSL = gsl;
|
||||
HUNSPELL = hunspell;
|
||||
HUpnp = herqq;
|
||||
Jasper = jasper;
|
||||
KActivities = kde4.kactivities;
|
||||
LCMS2 = lcms2;
|
||||
Ldap = openldap;
|
||||
LibAttica = attica;
|
||||
LibGcrypt = libgcrypt;
|
||||
LibSSH = libssh;
|
||||
LibSpectre = libspectre;
|
||||
LibVNCServer = libvncserver;
|
||||
Libical = libical;
|
||||
MusicBrainz3 = libmusicbrainz;
|
||||
NetworkManager = networkmanager;
|
||||
OggVorbis = libvorbis;
|
||||
OpenAL = openal;
|
||||
OpenEXR = openexr;
|
||||
Poppler = poppler.poppler_qt4;
|
||||
Prison = prison;
|
||||
PulseAudio = pulseaudio;
|
||||
PythonLibrary = python;
|
||||
Qalculate = libqalculate;
|
||||
QCA2 = qca2;
|
||||
QImageBlitz = qimageblitz;
|
||||
QJSON = qjson;
|
||||
Qt4 = qt4;
|
||||
Samba = samba;
|
||||
Sasl2 = cyrus_sasl;
|
||||
SharedDesktopOntologies = shared_desktop_ontologies;
|
||||
SndFile = libsndfile;
|
||||
Speechd = speechd;
|
||||
TIFF = libtiff;
|
||||
Taglib = taglib;
|
||||
TelepathyQt4 = telepathy_qt;
|
||||
TunePimp = libtunepimp;
|
||||
UDev = udev;
|
||||
USB = libusb;
|
||||
Xscreensaver = xscreensaver;
|
||||
Xsltproc = libxslt;
|
||||
}
|
||||
);
|
||||
|
||||
preResolve = super:
|
||||
fold (f: x: f x) super
|
||||
[
|
||||
(userEnvPkg "SharedMimeInfo")
|
||||
(userEnvPkg "SharedDesktopOntologies")
|
||||
(blacklist ["artikulate"]) # build failure, wrong boost?
|
||||
(blacklist ["kde-dev-scripts" "kde-dev-utils"]) # docbook errors
|
||||
(blacklist ["kdewebdev"]) # unknown build failure
|
||||
];
|
||||
|
||||
postResolve = super:
|
||||
super // {
|
||||
|
||||
ark = with pkgs; super.ark // {
|
||||
buildInputs = (super.ark.buildInputs or []) ++ [ makeWrapper ];
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/ark --prefix PATH : "${unzipNLS}/bin"
|
||||
'';
|
||||
};
|
||||
|
||||
ffmpegthumbs = with pkgs; super.ffmpegthumbs // {
|
||||
nativeBuildInputs = super.ffmpegthumbs.nativeBuildInputs ++ [pkgconfig];
|
||||
};
|
||||
|
||||
kalzium = with pkgs; super.kalzium // {
|
||||
nativeBuildInputs = super.kalzium.nativeBuildInputs ++ [pkgconfig];
|
||||
};
|
||||
|
||||
kde-runtime = with pkgs; super.kde-runtime // {
|
||||
buildInputs =
|
||||
super.kde-runtime.buildInputs ++ [libcanberra];
|
||||
nativeBuildInputs =
|
||||
super.kde-runtime.nativeBuildInputs ++ [pkgconfig];
|
||||
NIX_CFLAGS_COMPILE =
|
||||
(super.kde-runtime.NIX_CFLAGS_COMPILE or "")
|
||||
+ " -I${ilmbase}/include/OpenEXR";
|
||||
};
|
||||
|
||||
kde-workspace = with pkgs; super.kde-workspace // {
|
||||
buildInputs = with xlibs;
|
||||
super.kde-workspace.buildInputs
|
||||
++
|
||||
[
|
||||
libxkbfile libXcomposite xcbutilimage xcbutilkeysyms
|
||||
xcbutilrenderutil
|
||||
];
|
||||
nativeBuildInputs =
|
||||
super.kde-workspace.nativeBuildInputs
|
||||
++ [ pkgconfig ];
|
||||
};
|
||||
|
||||
kdelibs = with pkgs; super.kdelibs // {
|
||||
buildInputs =
|
||||
super.kdelibs.buildInputs ++ [ attr libxslt polkit_qt4 xz ];
|
||||
|
||||
nativeBuildInputs =
|
||||
super.kdelibs.nativeBuildInputs ++ [ pkgconfig ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
|
||||
|
||||
propagatedBuildInputs =
|
||||
super.kdelibs.propagatedBuildInputs ++ [ qt4 soprano phonon strigi ];
|
||||
|
||||
propagatedNativeBuildInputs =
|
||||
super.kdelibs.propagatedNativeBuildInputs
|
||||
++ [ automoc4 cmake perl shared_mime_info ];
|
||||
|
||||
patches = [ ./kdelibs/polkit-install.patch ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
|
||||
"-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
|
||||
"-DHUPNP_ENABLED=ON"
|
||||
"-DWITH_SOLID_UDISKS2=ON"
|
||||
];
|
||||
};
|
||||
|
||||
kdepim = with pkgs; super.kdepim // {
|
||||
buildInputs =
|
||||
super.kdepim.buildInputs ++ [ gpgme libassuan ];
|
||||
nativeBuildInputs =
|
||||
super.kdepim.nativeBuildInputs ++ [ pkgconfig ];
|
||||
};
|
||||
|
||||
kdepimlibs = with pkgs; super.kdepimlibs // {
|
||||
nativeBuildInputs =
|
||||
super.kdepimlibs.nativeBuildInputs ++ [ pkgconfig ];
|
||||
};
|
||||
|
||||
kdesdk-thumbnailers = with pkgs; super.kdesdk-thumbnailers // {
|
||||
nativeBuildInputs =
|
||||
super.kdesdk-thumbnailers.nativeBuildInputs
|
||||
++ [gettext];
|
||||
};
|
||||
|
||||
kgpg = with pkgs; super.kgpg // {
|
||||
buildInputs = super.kgpg.buildInputs ++ [boost];
|
||||
};
|
||||
|
||||
kmix = with pkgs; super.kmix // {
|
||||
nativeBuildInputs = super.kmix.nativeBuildInputs ++ [pkgconfig];
|
||||
cmakeFlags = [ "-DKMIX_KF5_BUILD=ON" ];
|
||||
};
|
||||
|
||||
kmousetool = with pkgs; super.kmousetool // {
|
||||
buildInputs = with xlibs;
|
||||
super.kmousetool.buildInputs
|
||||
++ [libXtst libXt];
|
||||
};
|
||||
|
||||
kremotecontrol = with pkgs; super.kremotecontrol // {
|
||||
buildInputs = super.kremotecontrol.buildInputs ++ [xlibs.libXtst];
|
||||
};
|
||||
|
||||
krfb = with pkgs; super.krfb // {
|
||||
buildInputs =
|
||||
super.krfb.buildInputs
|
||||
++ [xlibs.libXtst kde4.telepathy.common_internals];
|
||||
};
|
||||
|
||||
libkdcraw = with pkgs; super.libkdcraw // {
|
||||
buildInputs = super.libkdcraw.buildInputs ++ [scope.KDE4 libraw];
|
||||
nativeBuildInputs = super.libkdcraw.nativeBuildInputs ++ [pkgconfig];
|
||||
};
|
||||
|
||||
libkexiv2 = with pkgs; super.libkexiv2 // {
|
||||
buildInputs = super.libkexiv2.buildInputs ++ [exiv2 scope.KDE4];
|
||||
};
|
||||
|
||||
libkface = with pkgs; super.libkface // {
|
||||
buildInputs = super.libkface.buildInputs ++ [scope.KDE4 opencv];
|
||||
};
|
||||
|
||||
libkipi = with pkgs; super.libkipi // {
|
||||
buildInputs = super.libkipi.buildInputs ++ [scope.KDE4];
|
||||
};
|
||||
|
||||
libksane = with pkgs; super.libksane // {
|
||||
buildInputs = super.libksane.buildInputs ++ [scope.KDE4 saneBackends];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
kdeApps = generateCollection ./. {
|
||||
inherit (kf5) mkDerivation;
|
||||
inherit mirror preResolve postResolve renames scope;
|
||||
};
|
||||
|
||||
in kdeApps
|
1676
pkgs/applications/kde-apps-14.12/dependencies.nix
Normal file
1676
pkgs/applications/kde-apps-14.12/dependencies.nix
Normal file
File diff suppressed because it is too large
Load Diff
12
pkgs/applications/kde-apps-14.12/dependencies.sh
Executable file
12
pkgs/applications/kde-apps-14.12/dependencies.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
manifestXML=$(nix-build -E 'with (import ../../.. {}); autonix.writeManifestXML ./manifest.nix')
|
||||
|
||||
autonixDepsKf5=""
|
||||
if [[ -z $1 ]]; then
|
||||
autonixDepsKF5=$(nix-build ../../.. -A haskellngPackages.autonix-deps-kf5)/bin
|
||||
else
|
||||
autonixDepsKF5="$1/dist/build/kf5-deps"
|
||||
fi
|
||||
|
||||
exec ${autonixDepsKF5}/kf5-deps "${manifestXML}"
|
@ -0,0 +1,12 @@
|
||||
diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
|
||||
--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake 2011-05-20 22:24:54.000000000 +0200
|
||||
+++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake 2011-07-12 14:03:00.000000000 +0200
|
||||
@@ -139,7 +139,7 @@
|
||||
${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
|
||||
${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
|
||||
|
||||
- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING
|
||||
+ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING
|
||||
"Where policy files generated by KAuth will be installed" FORCE)
|
||||
elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
|
||||
set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
|
1258
pkgs/applications/kde-apps-14.12/manifest.nix
Normal file
1258
pkgs/applications/kde-apps-14.12/manifest.nix
Normal file
File diff suppressed because it is too large
Load Diff
15
pkgs/applications/kde-apps-14.12/manifest.sh
Executable file
15
pkgs/applications/kde-apps-14.12/manifest.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
|
||||
# The extra slash at the end of the URL is necessary to stop wget
|
||||
# from recursing over the whole server! (No, it's not a bug.)
|
||||
$(nix-build ../../.. -A autonix.manifest) \
|
||||
http://download.kde.org/stable/applications/14.12.1/ \
|
||||
-A '*.tar.xz'
|
||||
|
||||
else
|
||||
|
||||
$(nix-build ../../.. -A autonix.manifest) -A '*.tar.xz' "$@"
|
||||
|
||||
fi
|
23
pkgs/applications/kde-apps-14.12/renames.nix
Normal file
23
pkgs/applications/kde-apps-14.12/renames.nix
Normal file
@ -0,0 +1,23 @@
|
||||
# DO NOT EDIT! This file is generated automatically.
|
||||
{ }:
|
||||
{
|
||||
"Analitza5" = "analitza";
|
||||
"Backend" = "kde-workspace";
|
||||
"CTest" = "sweeper";
|
||||
"ECM" = "extra-cmake-modules";
|
||||
"Gpgmepp" = "kdepimlibs";
|
||||
"JDns" = "kopete";
|
||||
"KDE4Workspace" = "kde-workspace";
|
||||
"KDEGames" = "libkdegames";
|
||||
"KDeclarative" = "kdelibs";
|
||||
"KSane" = "libksane";
|
||||
"KdepimLibs" = "kdepimlibs";
|
||||
"LibKEduVocDocument" = "libkeduvocdocument";
|
||||
"LibKdeEdu" = "libkdeedu";
|
||||
"LibKompareDiff2" = "libkomparediff2";
|
||||
"Libkcddb" = "libkcddb";
|
||||
"Libkcompactdisc" = "libkcompactdisc";
|
||||
"Okular" = "okular";
|
||||
"QJDns" = "kopete";
|
||||
"QMobipocket" = "kdegraphics-mobipocket";
|
||||
}
|
1
pkgs/applications/kde-apps-14.12/setup-hook.sh
Normal file
1
pkgs/applications/kde-apps-14.12/setup-hook.sh
Normal file
@ -0,0 +1 @@
|
||||
addToSearchPath XDG_DATA_DIRS @out@/share
|
@ -10,11 +10,11 @@
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "blender-2.73";
|
||||
name = "blender-2.73a";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.blender.org/source/${name}.tar.gz";
|
||||
sha256 = "140fcxjb73gim430v08021ls3civ3yghld63ljkgxi5vaww1cq95";
|
||||
sha256 = "114ipidrja6ryi6wv0w55wmh10ikazy24r8js596g7b9fpkzpymc";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
@ -35,7 +35,6 @@ stdenv.mkDerivation rec {
|
||||
[ "-DWITH_MOD_OCEANSIM=ON"
|
||||
"-DWITH_CODEC_FFMPEG=ON"
|
||||
"-DWITH_CODEC_SNDFILE=ON"
|
||||
"-DWITH_FFTW3=ON"
|
||||
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||
"-DWITH_FFTW3=ON"
|
||||
"-DWITH_SDL=ON"
|
||||
|
@ -5,11 +5,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-2.16.0";
|
||||
name = "calibre-2.18.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "1a9s99r92wk09lsbx8kn2kyg1wr7j84j8vjf65zaf5siwxnwy291";
|
||||
sha256 = "05n7kfih4mbhnvpzi5i821jl0na66si2ygz8cql931p2qcfhnixx";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
36
pkgs/applications/misc/cherrytree/default.nix
Normal file
36
pkgs/applications/misc/cherrytree/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ stdenv, fetchurl, python, pythonPackages, gettext, pygtksourceview, sqlite }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cherrytree-0.35.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.giuspen.com/software/${name}.tar.xz";
|
||||
sha256 = "1nfrnnwaxb07jf5c3id8zimr3q3rbhvzjlmpb99d41d7hqrd2bxj";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pythonPackages.sqlite3 ];
|
||||
|
||||
buildInputs = with pythonPackages; [ python gettext wrapPython pygtk dbus pygtksourceview ];
|
||||
|
||||
pythonPath = with pythonPackages; [ pygtk dbus pygtksourceview ];
|
||||
|
||||
patches = [ ./subprocess.patch ];
|
||||
|
||||
installPhase = ''
|
||||
python setup.py install --prefix="$out"
|
||||
|
||||
for file in "$out"/bin/*; do
|
||||
wrapProgram "$file" \
|
||||
--prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
|
||||
done
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single xml or sqlite file";
|
||||
homepage = http://www.giuspen.com/cherrytree;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
};
|
||||
}
|
15
pkgs/applications/misc/cherrytree/subprocess.patch
Normal file
15
pkgs/applications/misc/cherrytree/subprocess.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff -Naur cherrytree-0.35.6-orig/setup.py cherrytree-0.35.6/setup.py
|
||||
--- cherrytree-0.35.6-orig/setup.py 2014-05-30 23:25:11.000000000 +0200
|
||||
+++ cherrytree-0.35.6/setup.py 2015-01-29 07:35:32.785904009 +0100
|
||||
@@ -205,4 +205,9 @@
|
||||
},
|
||||
distclass=CherryTreeDist
|
||||
)
|
||||
- subprocess.call("update-desktop-database")
|
||||
+ try:
|
||||
+ subprocess.check_call(['update-desktop-database'])
|
||||
+ except subprocess.CalledProcessError:
|
||||
+ pass # handle errors in the called executable
|
||||
+ except OSError:
|
||||
+ pass # executable not found
|
||||
|
@ -1,53 +0,0 @@
|
||||
{ stdenv, fetchFromGitHub, qt5 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9";
|
||||
name = "cool-old-term-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Swordifish90";
|
||||
repo = "cool-old-term";
|
||||
rev = "2494bc05228290545df8c59c05624a4b903e9068";
|
||||
sha256 = "8462f3eded7b2219acc143258544b0dfac32d81e10cac61ff14276d426704c93";
|
||||
};
|
||||
|
||||
buildInputs = [ qt5 ];
|
||||
|
||||
buildPhase = ''
|
||||
pushd ./konsole-qml-plugin
|
||||
qmake konsole-qml-plugin.pro PREFIX=$out
|
||||
make
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
pushd ./konsole-qml-plugin
|
||||
make install
|
||||
popd
|
||||
|
||||
install -d $out/bin $out/lib/cool-old-term $out/share/cool-old-term
|
||||
cp -a ./imports $out/lib/cool-old-term/
|
||||
cp -a ./app $out/share/cool-old-term/
|
||||
|
||||
cat > $out/bin/cool-old-term <<EOF
|
||||
#!${stdenv.shell}
|
||||
${qt5}/bin/qmlscene -I $out/lib/cool-old-term/imports $out/share/cool-old-term/app/main.qml
|
||||
EOF
|
||||
chmod a+x $out/bin/cool-old-term
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "Terminal emulator which mimics the old cathode display";
|
||||
longDescription = ''
|
||||
cool-old-term is a terminal emulator which tries to mimic the look and
|
||||
feel of the old cathode tube screens. It has been designed to be
|
||||
eye-candy, customizable, and reasonably lightweight.
|
||||
'';
|
||||
homepage = "https://github.com/Swordifish90/cool-old-term";
|
||||
licenses = with stdenv.lib.licenses; [ gpl2 gpl3 ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ skeidel ];
|
||||
};
|
||||
}
|
47
pkgs/applications/misc/cool-retro-term/default.nix
Normal file
47
pkgs/applications/misc/cool-retro-term/default.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ stdenv, fetchgit, makeWrapper, qt5, qmltermwidget }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.0.0";
|
||||
name = "cool-retro-term-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/Swordfish90/cool-retro-term.git";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "042ikarg6n0c09niwrm987pkzi8xjxxdrg2nqvk9pj7lgmmkkfn1";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
sed -i -e '/qmltermwidget/d' cool-retro-term.pro
|
||||
'';
|
||||
|
||||
buildInputs = [ makeWrapper qt5 qmltermwidget ];
|
||||
|
||||
configurePhase = "qmake PREFIX=$out";
|
||||
|
||||
installPhase = "make -j $NIX_BUILD_CORES INSTALL_ROOT=$out install";
|
||||
|
||||
preFixup = ''
|
||||
mv $out/usr/share $out/share
|
||||
mv $out/usr/bin $out/bin
|
||||
rmdir $out/usr
|
||||
|
||||
wrapProgram $out/bin/cool-retro-term \
|
||||
--prefix QML2_IMPORT_PATH : "${qmltermwidget}/lib/qml/"
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "Terminal emulator which mimics the old cathode display";
|
||||
longDescription = ''
|
||||
cool-retro-term is a terminal emulator which tries to mimic the look and
|
||||
feel of the old cathode tube screens. It has been designed to be
|
||||
eye-candy, customizable, and reasonably lightweight.
|
||||
'';
|
||||
homepage = "https://github.com/Swordifish90/cool-retro-term";
|
||||
licenses = with stdenv.lib.licenses; [ gpl2 gpl3 ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ skeidel ];
|
||||
};
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
|
||||
let
|
||||
py = python27Packages;
|
||||
version = "14.09";
|
||||
version = "14.12.1";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cura-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
|
||||
sha256 = "1nr26hfqa6chim5qch92wpk0s28wfvznvcf3kkzgf23hw707f40v";
|
||||
sha256 = "1sybsa84qznlzcgn18p70gh1v60npwfca5yn80h35msxrnh8gbp5";
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
|
@ -1,18 +1,18 @@
|
||||
{ stdenv, fetchurl }:
|
||||
let
|
||||
version = "14.03";
|
||||
version = "14.12.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "curaengine-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
|
||||
sha256 = "0f37jk6w3zd9x29c1rydqmfdzybx9nbmwdi3y3nzynq1vq7zmxcc";
|
||||
sha256 = "1cfns71mjndy2dlmccmjx8ldd0p5v88sqg0jg6ak5c864cvgbjdr";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp CuraEngine $out/bin/
|
||||
cp build/CuraEngine $out/bin/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
20
pkgs/applications/misc/gpa/default.nix
Normal file
20
pkgs/applications/misc/gpa/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ stdenv, fetchurl, intltool, pkgconfig, gtk, gpgme, libgpgerror, libassuan }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "gpa-0.9.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnupg/gpa/${name}.tar.bz2";
|
||||
sha256 = "1r8pnvfw66b2m9lhajlarbxx9172c1gzripdij01bawgbrhwp33y";
|
||||
};
|
||||
|
||||
buildInputs = [ intltool pkgconfig gtk gpgme libgpgerror libassuan ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Graphical user interface for the GnuPG";
|
||||
homepage = https://www.gnupg.org/related_software/gpa/;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -177,6 +177,7 @@ a.composableDerivation.composableDerivation {} (fix: {
|
||||
description = "free Geographic Information System (GIS) software used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization";
|
||||
homepage = http://grass.itc.it/index.php;
|
||||
license = [ "GPL" ];
|
||||
broken = true;
|
||||
};
|
||||
|
||||
})
|
||||
|
@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
|
||||
|
||||
let
|
||||
name = "ikiwiki";
|
||||
version = "3.20141016";
|
||||
version = "3.20150107";
|
||||
|
||||
lib = stdenv.lib;
|
||||
in
|
||||
@ -31,8 +31,8 @@ stdenv.mkDerivation {
|
||||
name = "${name}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
|
||||
sha256 = "1amvrb6djil7g0yabsngfs0f1n7qcvj2hddipjkgfjbmghd6jqiw";
|
||||
url = "https://github.com/joeyh/ikiwiki/archive/debian/${version}.tar.gz";
|
||||
sha256 = "12kiqjxrh93gysdp7bhglnks2md9davl8jgzqlj0m8xs5rf1972n";
|
||||
};
|
||||
|
||||
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
unpackPhase = "unpackFile \$src; sourceRoot=.";
|
||||
|
||||
buildPhase = "pwd; gcc -o pstree pstree.c";
|
||||
buildPhase = "pwd; $CC -o pstree pstree.c";
|
||||
installPhase = "mkdir -p \$out/bin; cp pstree \$out/bin";
|
||||
|
||||
meta = {
|
||||
|
80
pkgs/applications/misc/pwsafe/default.nix
Normal file
80
pkgs/applications/misc/pwsafe/default.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{ stdenv, fetchurl, wxGTK, libuuid, xercesc, zip , libXt, libXtst
|
||||
, libXi, xextproto, gettext, perl, pkgconfig, libyubikey, ykpers
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pwsafe-${version}";
|
||||
version = "0.95";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/passwordsafe/pwsafe-${version}BETA-src.tgz";
|
||||
sha256 = "f0b081bc358fee97fce20f352e360960d2813989023b837102b90ba6ed787d46";
|
||||
};
|
||||
|
||||
makefile = "Makefile.linux";
|
||||
makeFlags = "YBPERS_LIBPATH=${ykpers}/lib";
|
||||
|
||||
buildFlags = "unicoderelease";
|
||||
buildInputs = [ wxGTK libuuid gettext perl zip
|
||||
xercesc libXt libXtst libXi xextproto
|
||||
pkgconfig libyubikey ykpers ];
|
||||
|
||||
postPatch = ''
|
||||
# Fix perl scripts used during the build.
|
||||
for f in `find . -type f -name '*.pl'`; do
|
||||
patchShebangs $f
|
||||
done
|
||||
|
||||
# Fix hard coded paths.
|
||||
for f in `grep -Rl /usr/share/ src`; do
|
||||
substituteInPlace $f --replace /usr/share/ $out/share/
|
||||
done
|
||||
|
||||
for f in `grep -Rl /usr/bin/ .`; do
|
||||
substituteInPlace $f --replace /usr/bin/ ""
|
||||
done
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin \
|
||||
$out/share/applications \
|
||||
$out/share/pwsafe/xml \
|
||||
$out/share/icons/hicolor/48x48/apps \
|
||||
$out/share/doc/passwordsafe/help \
|
||||
$out/share/man/man1 \
|
||||
$out/share/locale
|
||||
|
||||
(cd help && make -f Makefile.linux)
|
||||
cp help/help.zip $out/share/doc/passwordsafe/help
|
||||
|
||||
(cd src/ui/wxWidgets/I18N && make mos)
|
||||
cp -dr src/ui/wxWidgets/I18N/mos/* $out/share/locale/
|
||||
# */
|
||||
|
||||
cp README.txt docs/ReleaseNotes.txt docs/ChangeLog.txt \
|
||||
LICENSE install/copyright $out/share/doc/passwordsafe
|
||||
|
||||
cp src/ui/wxWidgets/GCCUnicodeRelease/pwsafe $out/bin/
|
||||
cp install/graphics/pwsafe.png $out/share/icons/hicolor/48x48/apps
|
||||
cp docs/pwsafe.1 $out/share/man/man1
|
||||
cp xml/* $out/share/pwsafe/xml
|
||||
# */
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Password Safe is a password database utility";
|
||||
|
||||
longDescription = ''
|
||||
Password Safe is a password database utility. Like many other
|
||||
such products, commercial and otherwise, it stores your
|
||||
passwords in an encrypted file, allowing you to remember only
|
||||
one password (the "safe combination"), instead of all the
|
||||
username/password combinations that you use.
|
||||
'';
|
||||
|
||||
homepage = http://passwordsafe.sourceforge.net/;
|
||||
maintainers = with maintainers; [ pjones ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.artistic2;
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user