mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-14 06:00:33 +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
564 changed files with 41840 additions and 27780 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -10,4 +10,8 @@ result-*
|
||||||
/doc/manual.pdf
|
/doc/manual.pdf
|
||||||
.version-suffix
|
.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:
|
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)
|
* [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
|
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
|
else
|
||||||
|
|
||||||
|
|
|
@ -618,7 +618,7 @@ sed -i '/ = data_files/d' setup.py</programlisting>
|
||||||
<screen>
|
<screen>
|
||||||
$ nix-env -i gem-nix
|
$ nix-env -i gem-nix
|
||||||
$ gem-nix --no-user-install --nix-file=pkgs/development/interpreters/ruby/generated.nix yajl-ruby
|
$ 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>
|
</screen>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
<xi:include href="introduction.xml" />
|
<xi:include href="introduction.xml" />
|
||||||
<xi:include href="quick-start.xml" />
|
<xi:include href="quick-start.xml" />
|
||||||
<xi:include href="stdenv.xml" />
|
<xi:include href="stdenv.xml" />
|
||||||
|
<xi:include href="packageconfig.xml" />
|
||||||
<xi:include href="meta.xml" />
|
<xi:include href="meta.xml" />
|
||||||
<xi:include href="language-support.xml" />
|
<xi:include href="language-support.xml" />
|
||||||
<xi:include href="package-notes.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";
|
fullName = "Eclipse Public License 1.0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fdl12 = spdx {
|
||||||
|
spdxId = "GFDL-1.2";
|
||||||
|
fullName = "GNU Free Documentation License v1.2";
|
||||||
|
};
|
||||||
|
|
||||||
free = {
|
free = {
|
||||||
fullName = "Unspecified free software license";
|
fullName = "Unspecified free software license";
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
|
chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
|
||||||
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
|
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
|
||||||
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
|
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
|
||||||
|
cocreature = "Moritz Kiefer <moritz.kiefer@purelyfunctional.org>";
|
||||||
codyopel = "Cody Opel <codyopel@gmail.com>";
|
codyopel = "Cody Opel <codyopel@gmail.com>";
|
||||||
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
|
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
|
||||||
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
|
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
|
||||||
|
@ -105,6 +106,7 @@
|
||||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||||
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
||||||
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
||||||
|
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||||
|
@ -121,22 +123,26 @@
|
||||||
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
||||||
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
||||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||||
|
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||||
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
||||||
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
||||||
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
||||||
olcai = "Erik Timan <dev@timan.info>";
|
olcai = "Erik Timan <dev@timan.info>";
|
||||||
orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
|
orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
|
||||||
page = "Carles Pagès <page@cubata.homelinux.net>";
|
page = "Carles Pagès <page@cubata.homelinux.net>";
|
||||||
|
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
||||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||||
|
pjones = "Peter Jones <pjones@devalot.com>";
|
||||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||||
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
|
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
|
||||||
puffnfresh = "Brian McKenna <brian@brianmckenna.org>";
|
puffnfresh = "Brian McKenna <brian@brianmckenna.org>";
|
||||||
qknight = "Joachim Schiele <js@lastlog.de>";
|
qknight = "Joachim Schiele <js@lastlog.de>";
|
||||||
|
ragge = "Ragnar Dahlen <r.dahlen@gmail.com>";
|
||||||
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
||||||
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
|
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
|
||||||
refnil = "Martin Lavoie <broemartino@gmail.com>";
|
refnil = "Martin Lavoie <broemartino@gmail.com>";
|
||||||
|
@ -179,6 +185,7 @@
|
||||||
viric = "Lluís Batlle i Rossell <viric@viric.name>";
|
viric = "Lluís Batlle i Rossell <viric@viric.name>";
|
||||||
vizanto = "Danny Wilson <danny@prime.vc>";
|
vizanto = "Danny Wilson <danny@prime.vc>";
|
||||||
vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
|
vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
|
||||||
|
vmandela = "Venkateswara Rao Mandela <venkat.mandela@gmail.com>";
|
||||||
vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";
|
vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";
|
||||||
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
|
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
|
||||||
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
|
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
<xi:include href="configuration/configuration.xml" />
|
<xi:include href="configuration/configuration.xml" />
|
||||||
<xi:include href="administration/running.xml" />
|
<xi:include href="administration/running.xml" />
|
||||||
<!-- <xi:include href="userconfiguration.xml" /> -->
|
<!-- <xi:include href="userconfiguration.xml" /> -->
|
||||||
|
<xi:include href="development/development.xml" />
|
||||||
<xi:include href="release-notes/release-notes.xml" />
|
<xi:include href="release-notes/release-notes.xml" />
|
||||||
|
|
||||||
<appendix xml:id="ch-options">
|
<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
|
documentation</link> for details. If you wish to continue to use
|
||||||
httpd 2.2, add the following line to your NixOS configuration:
|
httpd 2.2, add the following line to your NixOS configuration:
|
||||||
|
|
||||||
rogramlisting>
|
<programlisting>
|
||||||
rvices.httpd.package = pkgs.apacheHttpd_2_2;
|
services.httpd.package = pkgs.apacheHttpd_2_2;
|
||||||
programlisting>
|
</programlisting>
|
||||||
|
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
|
|
|
@ -148,9 +148,9 @@ if [ -n "$buildNix" ]; then
|
||||||
if ! nix-build '<nixpkgs>' -A nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
|
if ! nix-build '<nixpkgs>' -A nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
|
||||||
machine="$(uname -m)"
|
machine="$(uname -m)"
|
||||||
if [ "$machine" = x86_64 ]; then
|
if [ "$machine" = x86_64 ]; then
|
||||||
nixStorePath=/nix/store/d34q3q2zj9nriq4ifhn3dnnngqvinjb3-nix-1.7
|
nixStorePath=/nix/store/ffig6yaggbh12dh9y5pnf1grf5lqyipz-nix-1.8
|
||||||
elif [[ "$machine" =~ i.86 ]]; then
|
elif [[ "$machine" =~ i.86 ]]; then
|
||||||
nixStorePath=/nix/store/qlah0darpcn6sf3lr2226rl04l1gn4xz-nix-1.7
|
nixStorePath=/nix/store/lglhfp4mimfa5wzjjf1kqz6f5wlsj2mn-nix-1.8
|
||||||
else
|
else
|
||||||
echo "$0: unsupported platform"
|
echo "$0: unsupported platform"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -176,7 +176,7 @@
|
||||||
tox-bootstrapd = 166;
|
tox-bootstrapd = 166;
|
||||||
cadvisor = 167;
|
cadvisor = 167;
|
||||||
nylon = 168;
|
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!
|
# 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
|
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/acpid.nix
|
||||||
./services/hardware/amd-hybrid-graphics.nix
|
./services/hardware/amd-hybrid-graphics.nix
|
||||||
./services/hardware/bluetooth.nix
|
./services/hardware/bluetooth.nix
|
||||||
|
./services/hardware/freefall.nix
|
||||||
./services/hardware/nvidia-optimus.nix
|
./services/hardware/nvidia-optimus.nix
|
||||||
./services/hardware/pcscd.nix
|
./services/hardware/pcscd.nix
|
||||||
./services/hardware/pommed.nix
|
./services/hardware/pommed.nix
|
||||||
./services/hardware/sane.nix
|
./services/hardware/sane.nix
|
||||||
./services/hardware/tcsd.nix
|
./services/hardware/tcsd.nix
|
||||||
|
./services/hardware/tlp.nix
|
||||||
./services/hardware/thinkfan.nix
|
./services/hardware/thinkfan.nix
|
||||||
./services/hardware/udev.nix
|
./services/hardware/udev.nix
|
||||||
./services/hardware/udisks2.nix
|
./services/hardware/udisks2.nix
|
||||||
|
@ -168,6 +170,7 @@
|
||||||
./services/mail/opensmtpd.nix
|
./services/mail/opensmtpd.nix
|
||||||
./services/mail/postfix.nix
|
./services/mail/postfix.nix
|
||||||
./services/mail/spamassassin.nix
|
./services/mail/spamassassin.nix
|
||||||
|
./services/misc/apache-kafka.nix
|
||||||
#./services/misc/autofs.nix
|
#./services/misc/autofs.nix
|
||||||
./services/misc/cpuminer-cryptonight.nix
|
./services/misc/cpuminer-cryptonight.nix
|
||||||
./services/misc/cgminer.nix
|
./services/misc/cgminer.nix
|
||||||
|
@ -290,6 +293,7 @@
|
||||||
./services/networking/tcpcrypt.nix
|
./services/networking/tcpcrypt.nix
|
||||||
./services/networking/teamspeak3.nix
|
./services/networking/teamspeak3.nix
|
||||||
./services/networking/tftpd.nix
|
./services/networking/tftpd.nix
|
||||||
|
./services/networking/tlsdated.nix
|
||||||
./services/networking/tox-bootstrapd.nix
|
./services/networking/tox-bootstrapd.nix
|
||||||
./services/networking/unbound.nix
|
./services/networking/unbound.nix
|
||||||
./services/networking/unifi.nix
|
./services/networking/unifi.nix
|
||||||
|
@ -369,6 +373,7 @@
|
||||||
./system/boot/kernel.nix
|
./system/boot/kernel.nix
|
||||||
./system/boot/kexec.nix
|
./system/boot/kexec.nix
|
||||||
./system/boot/loader/efi.nix
|
./system/boot/loader/efi.nix
|
||||||
|
./system/boot/loader/loader.nix
|
||||||
./system/boot/loader/generations-dir/generations-dir.nix
|
./system/boot/loader/generations-dir/generations-dir.nix
|
||||||
./system/boot/loader/grub/grub.nix
|
./system/boot/loader/grub/grub.nix
|
||||||
./system/boot/loader/grub/ipxe.nix
|
./system/boot/loader/grub/ipxe.nix
|
||||||
|
|
|
@ -46,12 +46,14 @@ in
|
||||||
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
||||||
KDEDIRS = [ "" ];
|
KDEDIRS = [ "" ];
|
||||||
STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
|
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/" ];
|
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
||||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
||||||
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
||||||
XDG_DATA_DIRS = [ "/share" ];
|
XDG_DATA_DIRS = [ "/share" ];
|
||||||
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
||||||
|
LIBEXEC_PATH = [ "/lib/libexec" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.extraInit =
|
environment.extraInit =
|
||||||
|
|
|
@ -33,7 +33,8 @@ let
|
||||||
zipModules = list:
|
zipModules = list:
|
||||||
zipAttrsWith (n: v:
|
zipAttrsWith (n: v:
|
||||||
if tail v != [] then
|
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 == "warnings" then concatLists v
|
||||||
else if n == "description" || n == "apply" then
|
else if n == "description" || n == "apply" then
|
||||||
abort "Cannot rename an option to multiple options."
|
abort "Cannot rename an option to multiple options."
|
||||||
|
@ -115,8 +116,8 @@ in zipModules ([]
|
||||||
++ obsolete [ "nix" "proxy" ] [ "networking" "proxy" "default" ]
|
++ obsolete [ "nix" "proxy" ] [ "networking" "proxy" "default" ]
|
||||||
|
|
||||||
# KDE
|
# KDE
|
||||||
++ deprecated [ "kde" "extraPackages" ] [ "environment" "kdePackages" ]
|
++ deprecated [ "kde" "extraPackages" ] [ "environment" "systemPackages" ]
|
||||||
# ++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ] # !!! doesn't work!
|
++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ]
|
||||||
|
|
||||||
# Multiple efi bootloaders now
|
# Multiple efi bootloaders now
|
||||||
++ obsolete [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ]
|
++ 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 {
|
restrictProc = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
|
|
|
@ -31,6 +31,15 @@ in {
|
||||||
<literal>guest</literal> by default, so you should delete
|
<literal>guest</literal> by default, so you should delete
|
||||||
this user if you intend to allow external access.
|
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 {
|
dataDir = mkOption {
|
||||||
|
@ -77,6 +86,7 @@ in {
|
||||||
users.extraUsers.rabbitmq = {
|
users.extraUsers.rabbitmq = {
|
||||||
description = "RabbitMQ server user";
|
description = "RabbitMQ server user";
|
||||||
home = "${cfg.dataDir}";
|
home = "${cfg.dataDir}";
|
||||||
|
createHome = true;
|
||||||
group = "rabbitmq";
|
group = "rabbitmq";
|
||||||
uid = config.ids.uids.rabbitmq;
|
uid = config.ids.uids.rabbitmq;
|
||||||
};
|
};
|
||||||
|
@ -87,14 +97,16 @@ in {
|
||||||
description = "RabbitMQ Server";
|
description = "RabbitMQ Server";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network.target" ];
|
||||||
|
|
||||||
path = [ pkgs.rabbitmq_server ];
|
path = [ pkgs.rabbitmq_server pkgs.procps ];
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
||||||
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
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_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
|
||||||
|
RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
|
||||||
SYS_PREFIX = "";
|
SYS_PREFIX = "";
|
||||||
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
||||||
[ ${concatStringsSep "," cfg.plugins} ].
|
[ ${concatStringsSep "," cfg.plugins} ].
|
||||||
|
@ -103,26 +115,22 @@ in {
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
||||||
|
ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop";
|
||||||
User = "rabbitmq";
|
User = "rabbitmq";
|
||||||
Group = "rabbitmq";
|
Group = "rabbitmq";
|
||||||
PermissionsStartOnly = true;
|
WorkingDirectory = cfg.dataDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
postStart = ''
|
||||||
|
rabbitmqctl wait ${cfg.dataDir}/pid
|
||||||
|
'';
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
|
|
||||||
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
|
|
||||||
|
|
||||||
${optionalString (cfg.cookie != "") ''
|
${optionalString (cfg.cookie != "") ''
|
||||||
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
|
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
|
||||||
chmod 400 ${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 = {
|
services.openldap = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "
|
description = "
|
||||||
Whether to enable the ldap server.
|
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 {
|
user = mkOption {
|
||||||
|
type = types.string;
|
||||||
default = "openldap";
|
default = "openldap";
|
||||||
description = "User account under which slapd runs.";
|
description = "User account under which slapd runs.";
|
||||||
};
|
};
|
||||||
|
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
|
type = types.string;
|
||||||
default = "openldap";
|
default = "openldap";
|
||||||
description = "Group account under which slapd runs.";
|
description = "Group account under which slapd runs.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.string;
|
||||||
|
default = "/var/db/openldap";
|
||||||
|
description = "The database directory.";
|
||||||
|
};
|
||||||
|
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = "
|
description = "
|
||||||
sldapd.conf configuration
|
sldapd.conf configuration
|
||||||
|
@ -60,22 +86,22 @@ in
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p /var/run/slapd
|
mkdir -p /var/run/slapd
|
||||||
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
||||||
mkdir -p /var/db/openldap
|
mkdir -p ${cfg.dataDir}
|
||||||
chown -R ${cfg.user}:${cfg.group} /var/db/openldap
|
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
|
users.extraUsers.openldap =
|
||||||
{ name = "openldap";
|
{ name = cfg.user;
|
||||||
group = cfg.group;
|
group = cfg.group;
|
||||||
uid = config.ids.uids.openldap;
|
uid = config.ids.uids.openldap;
|
||||||
});
|
};
|
||||||
|
|
||||||
users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
|
users.extraGroups.openldap =
|
||||||
{ name = "openldap";
|
{ name = cfg.group;
|
||||||
gid = config.ids.gids.openldap;
|
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
|
let
|
||||||
cfg = config.services.gitlab;
|
cfg = config.services.gitlab;
|
||||||
|
|
||||||
ruby = pkgs.ruby;
|
ruby = pkgs.gitlab.ruby;
|
||||||
rubyLibs = pkgs.rubyLibs;
|
bundler = pkgs.bundler;
|
||||||
|
|
||||||
|
gemHome = "${pkgs.gitlab.env}/${ruby.gemPath}";
|
||||||
|
|
||||||
databaseYml = ''
|
databaseYml = ''
|
||||||
production:
|
production:
|
||||||
|
@ -38,13 +40,14 @@ let
|
||||||
|
|
||||||
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
||||||
name = "gitlab-runner";
|
name = "gitlab-runner";
|
||||||
buildInputs = [ pkgs.gitlab pkgs.rubyLibs.bundler pkgs.makeWrapper ];
|
buildInputs = [ pkgs.gitlab pkgs.bundler pkgs.makeWrapper ];
|
||||||
phases = "installPhase fixupPhase";
|
phases = "installPhase fixupPhase";
|
||||||
buildPhase = "";
|
buildPhase = "";
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
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 RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"'\
|
||||||
|
--set GEM_HOME '${gemHome}'\
|
||||||
--set UNICORN_PATH "${cfg.stateDir}/"\
|
--set UNICORN_PATH "${cfg.stateDir}/"\
|
||||||
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
||||||
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
||||||
|
@ -172,6 +175,7 @@ in {
|
||||||
after = [ "network.target" "redis.service" ];
|
after = [ "network.target" "redis.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.HOME = "${cfg.stateDir}/home";
|
environment.HOME = "${cfg.stateDir}/home";
|
||||||
|
environment.GEM_HOME = gemHome;
|
||||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||||
|
@ -201,7 +205,7 @@ in {
|
||||||
Group = "gitlab";
|
Group = "gitlab";
|
||||||
TimeoutSec = "300";
|
TimeoutSec = "300";
|
||||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
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" ];
|
after = [ "network.target" "postgresql.service" "redis.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.HOME = "${cfg.stateDir}/home";
|
environment.HOME = "${cfg.stateDir}/home";
|
||||||
|
environment.GEM_HOME = gemHome;
|
||||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||||
|
@ -263,7 +268,7 @@ in {
|
||||||
|
|
||||||
# force=yes disables the manual-interaction yes/no prompt
|
# force=yes disables the manual-interaction yes/no prompt
|
||||||
# which breaks without an stdin.
|
# 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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -285,7 +290,7 @@ in {
|
||||||
Group = "gitlab";
|
Group = "gitlab";
|
||||||
TimeoutSec = "300";
|
TimeoutSec = "300";
|
||||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
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
|
Initial administrative public key for Gitolite. This should
|
||||||
be an SSH Public Key. Note that this key will only be used
|
be an SSH Public Key. Note that this key will only be used
|
||||||
once, upon the first initialization of the Gitolite user.
|
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;
|
cfg = config.services.redmine;
|
||||||
|
|
||||||
ruby = pkgs.ruby;
|
ruby = pkgs.ruby;
|
||||||
rubyLibs = pkgs.rubyLibs;
|
|
||||||
|
|
||||||
databaseYml = ''
|
databaseYml = ''
|
||||||
production:
|
production:
|
||||||
|
@ -155,7 +154,7 @@ in {
|
||||||
environment.HOME = "${pkgs.redmine}/share/redmine";
|
environment.HOME = "${pkgs.redmine}/share/redmine";
|
||||||
environment.REDMINE_LANG = "en";
|
environment.REDMINE_LANG = "en";
|
||||||
environment.GEM_HOME = "${pkgs.redmine}/share/redmine/vendor/bundle/ruby/1.9.1";
|
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; [
|
path = with pkgs; [
|
||||||
imagemagickBig
|
imagemagickBig
|
||||||
subversion
|
subversion
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
|
|
||||||
launcher = writeScriptBin "riemann-dash" ''
|
launcher = writeScriptBin "riemann-dash" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec ${rubyLibs.riemann_dash}/bin/riemann-dash ${conf}
|
exec ${pkgs.riemann-dash}/bin/riemann-dash ${conf}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
|
@ -356,7 +356,7 @@ in
|
||||||
''
|
''
|
||||||
If pings are allowed, this allows setting rate limits
|
If pings are allowed, this allows setting rate limits
|
||||||
on them. If non-null, this option should be in the form
|
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 = {
|
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" ''
|
cfgFile = pkgs.writeText "openntpd.conf" ''
|
||||||
${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
|
${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
|
||||||
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -25,6 +26,27 @@ in
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
inherit (options.services.ntp.servers) description;
|
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
|
###### implementation
|
||||||
|
@ -42,7 +64,7 @@ in
|
||||||
systemd.services.openntpd = {
|
systemd.services.openntpd = {
|
||||||
description = "OpenNTP Server";
|
description = "OpenNTP Server";
|
||||||
wantedBy = [ "multi-user.target" ];
|
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.Type = "forking";
|
||||||
serviceConfig.PIDFile = "${mainCfg.stateDir}/httpd.pid";
|
serviceConfig.PIDFile = "${mainCfg.stateDir}/httpd.pid";
|
||||||
serviceConfig.Restart = "always";
|
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.
|
# determines the default: later modules (if enabled) are preferred.
|
||||||
# E.g., if KDE is enabled, it supersedes xterm.
|
# E.g., if KDE is enabled, it supersedes xterm.
|
||||||
imports = [
|
imports = [
|
||||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
|
||||||
./e19.nix ./gnome3.nix ./xbmc.nix
|
./e19.nix ./gnome3.nix ./xbmc.nix ./kodi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
|
@ -70,14 +70,6 @@ in
|
||||||
description = "Custom kde-workspace, used for NixOS rebranding.";
|
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";
|
description = "KDM user";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages =
|
||||||
|
[ pkgs.kde4.kde_wallpapers ]; # contains kdm's default background
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
timeout = mkOption {
|
timeout = mkOption {
|
||||||
default = 5;
|
default = if (config.boot.loader.timeout != null) then config.boot.loader.timeout else -1;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
description = ''
|
description = ''
|
||||||
Timeout (in seconds) until GRUB boots the default menu item.
|
Timeout (in seconds) until GRUB boots the default menu item.
|
||||||
|
|
|
@ -31,7 +31,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
timeout = mkOption {
|
timeout = mkOption {
|
||||||
default = null;
|
default = if config.boot.loader.timeout == null then 10000 else config.boot.loader.timeout;
|
||||||
|
|
||||||
example = 4;
|
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 {
|
system.sbin.modprobe = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
default = pkgs.writeTextFile {
|
default = pkgs.stdenv.mkDerivation {
|
||||||
name = "modprobe";
|
name = "modprobe";
|
||||||
destination = "/sbin/modprobe";
|
buildCommand = ''
|
||||||
executable = true;
|
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 =
|
text =
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.stdenv.shell}
|
||||||
|
@ -26,7 +34,6 @@ with lib;
|
||||||
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec ${pkgs.kmod}/sbin/modprobe "$@"
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
description = ''
|
description = ''
|
||||||
|
|
|
@ -142,7 +142,10 @@ in
|
||||||
++ config.system.fsPackages;
|
++ config.system.fsPackages;
|
||||||
|
|
||||||
environment.etc.fstab.text =
|
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!
|
# This is a generated file. Do not edit!
|
||||||
|
|
||||||
# Filesystems.
|
# Filesystems.
|
||||||
|
@ -154,7 +157,7 @@ in
|
||||||
+ " " + fs.fsType
|
+ " " + fs.fsType
|
||||||
+ " " + fs.options
|
+ " " + fs.options
|
||||||
+ " 0"
|
+ " 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")
|
if fs.mountPoint == "/" then "1" else "2")
|
||||||
+ "\n"
|
+ "\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 {
|
containers = mkOption {
|
||||||
type = types.attrsOf (types.submodule (
|
type = types.attrsOf (types.submodule (
|
||||||
{ config, options, name, ... }:
|
{ config, options, name, ... }:
|
||||||
|
@ -164,7 +172,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
config = mkIf (!config.boot.isContainer) {
|
config = mkIf (config.boot.enableContainers) {
|
||||||
|
|
||||||
systemd.services."container@" =
|
systemd.services."container@" =
|
||||||
{ description = "Container '%i'";
|
{ description = "Container '%i'";
|
||||||
|
|
|
@ -104,6 +104,10 @@ if ($action eq "create") {
|
||||||
|
|
||||||
die "$0: container ‘$containerName’ already exists\n" if -e $confFile;
|
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.
|
# Get an unused IP address.
|
||||||
my %usedIPs;
|
my %usedIPs;
|
||||||
foreach my $confFile2 (glob "/etc/containers/*.conf") {
|
foreach my $confFile2 (glob "/etc/containers/*.conf") {
|
||||||
|
|
|
@ -252,7 +252,7 @@ in rec {
|
||||||
tests.firefox = callTest tests/firefox.nix {};
|
tests.firefox = callTest tests/firefox.nix {};
|
||||||
tests.firewall = callTest tests/firewall.nix {};
|
tests.firewall = callTest tests/firewall.nix {};
|
||||||
tests.fleet = scrubDrv (import tests/fleet.nix { system = "x86_64-linux"; });
|
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.gnome3 = callTest tests/gnome3.nix {};
|
||||||
tests.installer.grub1 = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).grub1.test);
|
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);
|
tests.installer.lvm = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).lvm.test);
|
||||||
|
|
|
@ -10,6 +10,7 @@ import ./make-test.nix (
|
||||||
name = "chromium";
|
name = "chromium";
|
||||||
|
|
||||||
machine.imports = [ ./common/x11.nix ];
|
machine.imports = [ ./common/x11.nix ];
|
||||||
|
machine.virtualisation.memorySize = 1024;
|
||||||
|
|
||||||
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
|
{ 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
|
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
|
||||||
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
||||||
, sparsehash, config }:
|
, sparsehash, config, makeWrapper }:
|
||||||
|
|
||||||
let withSpotify = config.clementine.spotify or false;
|
let withSpotify = config.clementine.spotify or false;
|
||||||
in
|
in
|
||||||
|
@ -22,6 +23,9 @@ stdenv.mkDerivation {
|
||||||
gettext
|
gettext
|
||||||
glew
|
glew
|
||||||
gst_plugins_base
|
gst_plugins_base
|
||||||
|
gst_plugins_good
|
||||||
|
gst_plugins_ugly
|
||||||
|
gst_ffmpeg
|
||||||
gstreamer
|
gstreamer
|
||||||
gvfs
|
gvfs
|
||||||
libcdio
|
libcdio
|
||||||
|
@ -29,6 +33,7 @@ stdenv.mkDerivation {
|
||||||
liblastfm
|
liblastfm
|
||||||
libmtp
|
libmtp
|
||||||
libplist
|
libplist
|
||||||
|
makeWrapper
|
||||||
pkgconfig
|
pkgconfig
|
||||||
protobuf
|
protobuf
|
||||||
qca2
|
qca2
|
||||||
|
@ -42,6 +47,11 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/clementine \
|
||||||
|
--set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "http://www.clementine-player.org";
|
homepage = "http://www.clementine-player.org";
|
||||||
description = "A multiplatform music player";
|
description = "A multiplatform music player";
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
rev = "99efbf0b";
|
rev = "3bfddf7f";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "distrho-${rev}";
|
name = "distrho-${rev}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/falkTX/DISTRHO.git";
|
url = "https://github.com/DISTRHO/DISTRHO-Ports.git";
|
||||||
inherit rev;
|
inherit rev;
|
||||||
sha256 = "ed26a6edca19ebb8260b3dc042f69c32162e1d91179fb9d22da42ec7131936f9";
|
sha256 = "55dc52921bb757c3213da5ef6cab40909f39be3e3b41ba4c6cd66ad90bfb2e6c";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
@ -50,5 +50,9 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
platforms = platforms.linux;
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "drumkv1-${version}";
|
name = "drumkv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
||||||
sha256 = "1cih4f22922ndk8yrcf955fvzkd8mh7qz1xcdyn3xybs7ackgarq";
|
sha256 = "1y3imsh059y9sihr92f3drwmcby4x3krmhly111ahwkydb94kphw";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "guitarix-${version}";
|
name = "guitarix-${version}";
|
||||||
version = "0.32.1";
|
version = "0.32.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
|
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
|
||||||
sha256 = "1sl7ca1lj0wchh3xq7qw3zqrbyyh4r8cwljb9i3yplpsn90d1i3k";
|
sha256 = "0mh4ma48hc8kq3xw25y1zjcrwgsdb0scd36vzw50a1qmmnh74rgp";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "samplv1-${version}";
|
name = "samplv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
||||||
sha256 = "155qq7gxyqn7sh8bbyhjk40lxl157lb2h539j4gqgv5jphz8g6wy";
|
sha256 = "0fbkdb2dqw7v6n8j1h6pjz2019ylli9rmz8awywv2ycm8blr5pf0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "snd-15.1";
|
name = "snd-15.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/snd/${name}.tar.gz";
|
url = "mirror://sourceforge/snd/${name}.tar.gz";
|
||||||
sha256 = "01xrgxmkibadm3zva2n7qv00dz8yy9wlkpwv7vancqfb8x44x1ji";
|
sha256 = "0v2r7a6363aai726cywi7ai0qlwdc20bqdprs5fmyz8sbmksbqzr";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
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
|
{ fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype
|
||||||
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
|
, 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 }:
|
, dbus, expat }:
|
||||||
|
|
||||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||||
|
@ -10,20 +10,6 @@ let
|
||||||
then "0.9.4.183.g644e24e.428"
|
then "0.9.4.183.g644e24e.428"
|
||||||
else "0.9.11.27.g2b1a638.81";
|
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 = [
|
deps = [
|
||||||
alsaLib
|
alsaLib
|
||||||
atk
|
atk
|
||||||
|
@ -36,15 +22,12 @@ let
|
||||||
GConf
|
GConf
|
||||||
gdk_pixbuf
|
gdk_pixbuf
|
||||||
glib
|
glib
|
||||||
gst_plugins_base
|
|
||||||
gstreamer
|
|
||||||
gtk
|
gtk
|
||||||
libgcrypt
|
libgcrypt
|
||||||
libpng
|
libpng
|
||||||
nss
|
nss
|
||||||
pango
|
pango
|
||||||
qt4
|
qt4
|
||||||
sqlite
|
|
||||||
stdenv.cc.cc
|
stdenv.cc.cc
|
||||||
xlibs.libX11
|
xlibs.libX11
|
||||||
xlibs.libXcomposite
|
xlibs.libXcomposite
|
||||||
|
@ -56,7 +39,6 @@ let
|
||||||
xlibs.libXrender
|
xlibs.libXrender
|
||||||
xlibs.libXrender
|
xlibs.libXrender
|
||||||
xlibs.libXScrnSaver
|
xlibs.libXScrnSaver
|
||||||
#xlibs.libXss
|
|
||||||
];
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
|
@ -83,37 +65,37 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
''
|
''
|
||||||
mkdir -p $out
|
libdir=$out/lib/spotify
|
||||||
|
mkdir -p $libdir
|
||||||
dpkg-deb -x $src $out
|
dpkg-deb -x $src $out
|
||||||
mv $out/opt/spotify/* $out/
|
mv $out/opt/spotify/* $out/
|
||||||
rm -rf $out/usr $out/opt
|
rm -rf $out/usr $out/opt
|
||||||
|
|
||||||
# Work around Spotify referring to a specific minor version of
|
# Work around Spotify referring to a specific minor version of
|
||||||
# OpenSSL.
|
# OpenSSL.
|
||||||
mkdir $out/lib
|
|
||||||
|
|
||||||
ln -s ${nss}/lib/libnss3.so $out/lib/libnss3.so.1d
|
ln -s ${nss}/lib/libnss3.so $libdir/libnss3.so.1d
|
||||||
ln -s ${nss}/lib/libnssutil3.so $out/lib/libnssutil3.so.1d
|
ln -s ${nss}/lib/libnssutil3.so $libdir/libnssutil3.so.1d
|
||||||
ln -s ${nss}/lib/libsmime3.so $out/lib/libsmime3.so.1d
|
ln -s ${nss}/lib/libsmime3.so $libdir/libsmime3.so.1d
|
||||||
|
|
||||||
${if stdenv.system == "x86_64-linux" then ''
|
${if stdenv.system == "x86_64-linux" then ''
|
||||||
ln -s ${openssl}/lib/libssl.so $out/lib/libssl.so.1.0.0
|
ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.1.0.0
|
||||||
ln -s ${openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
|
ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
|
||||||
ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so
|
ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so
|
||||||
ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.so
|
ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so
|
||||||
'' else ''
|
'' else ''
|
||||||
ln -s ${openssl}/lib/libssl.so $out/lib/libssl.so.0.9.8
|
ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.0.9.8
|
||||||
ln -s ${openssl}/lib/libcrypto.so $out/lib/libcrypto.so.0.9.8
|
ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.0.9.8
|
||||||
ln -s ${nspr}/lib/libnspr4.so $out/lib/libnspr4.so.0d
|
ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so.0d
|
||||||
ln -s ${nspr}/lib/libplc4.so $out/lib/libplc4.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)
|
# 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
|
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
|
ln -s $out/spotify-client/spotify $out/bin/spotify
|
||||||
|
|
||||||
|
@ -125,12 +107,8 @@ stdenv.mkDerivation {
|
||||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
--set-rpath $rpath $out/spotify-client/Data/SpotifyHelper
|
--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
|
preload=$out/libexec/spotify/libpreload.so
|
||||||
librarypath="${stdenv.lib.makeLibraryPath deps}:$out/lib"
|
librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir"
|
||||||
mkdir -p $out/libexec/spotify
|
mkdir -p $out/libexec/spotify
|
||||||
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
|
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "synthv1-${version}";
|
name = "synthv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
||||||
sha256 = "16wcxrcjwp0qp2xgahhzvcs2k31sr6c9jsxyhivj4famj7a39pfw";
|
sha256 = "07570mi7rjwkkvfzdw1jcbhpkpxpjp69xj7wfzng92rk2gz7yi8m";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt4 jack2 lv2 ];
|
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 }:
|
{ stdenv, fetchFromGitHub, emacs, texinfo }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "13.10-299-g74b5a3c"; # git describe --tags
|
version = "13.10-361-gfa09425"; # git describe --tags
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "haskell-mode-${version}";
|
name = "haskell-mode-${version}";
|
||||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation {
|
||||||
owner = "haskell";
|
owner = "haskell";
|
||||||
repo = "haskell-mode";
|
repo = "haskell-mode";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1qjrc1c4jsgbbhnhssvadg00qffn80a8slrxc9g1hnzp632kv8wl";
|
sha256 = "1bq4gddzwjy2w1hbsmwxcamcy87amz7ksy1vmpwg0qij88fk4av9";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ emacs texinfo ];
|
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
|
{stdenv, fetchgit
|
||||||
, gtkmozembedsharp, monodoc
|
, autoconf, automake, pkgconfig, shared_mime_info, intltool
|
||||||
, perl, perlXMLParser, pkgconfig
|
, glib, mono, gtk-sharp, gnome-sharp
|
||||||
, glib, gtk, GConf, gnome_vfs, libbonobo, libglade, libgnome
|
|
||||||
, mozilla, makeWrapper
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "monodevelop-0.6-pre2315";
|
version = "5.1.4.0";
|
||||||
builder = ./builder.sh;
|
revision = "7d45bbe2ee22625f125d0c52548524f02d005cca";
|
||||||
|
name = "monodevelop-${version}";
|
||||||
src = fetchurl {
|
src = fetchgit {
|
||||||
url = http://tarballs.nixos.org/monodevelop-0.6-pre2315.tar.bz2;
|
url = https://github.com/mono/monodevelop.git;
|
||||||
md5 = "8c33df5629b0676b7ab552854c1de6fd";
|
rev = revision;
|
||||||
|
sha256 = "0qy12zdvb0jiic3pq1w9mcsz2wwxrn0m92abd184q06yg5m48g1b";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [./prefix.patch];
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
file mono gtksharp gtksourceviewsharp perl perlXMLParser pkgconfig
|
autoconf automake pkgconfig shared_mime_info intltool
|
||||||
glib gtk GConf gnome_vfs libbonobo libglade libgnome
|
mono gtk-sharp gnome-sharp
|
||||||
gtkmozembedsharp monodoc
|
|
||||||
];
|
];
|
||||||
|
|
||||||
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, fetchurl, qt }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "tiled-qt-0.9.1";
|
name = "tiled-0.11.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/tiled/${name}.tar.gz";
|
url = "https://github.com/bjorn/tiled/archive/v0.11.0.tar.gz";
|
||||||
sha256 = "09xm6ry56zsqbfl9fvlvc5kq9ikzdskm283r059q6rlc7crzhs38";
|
sha256 = "03a15vbzjfwc8dpifbjvd0gnr208mzmdkgs2nlc8zq6z0a4h4jqd";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt ];
|
buildInputs = [ qt ];
|
|
@ -1,13 +1,14 @@
|
||||||
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
|
{ 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 {
|
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
|
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt qscintilla
|
||||||
fcgi libspatialindex libspatialite ];
|
fcgi libspatialindex libspatialite postgresql ] ++
|
||||||
|
(with pythonPackages; [ numpy psycopg2 ]);
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake python ];
|
nativeBuildInputs = [ cmake makeWrapper ];
|
||||||
|
|
||||||
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
|
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
|
||||||
#enableParallelBuilding = true;
|
#enableParallelBuilding = true;
|
||||||
|
@ -20,11 +21,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://qgis.org/downloads/${name}.tar.bz2";
|
url = "http://qgis.org/downloads/${name}.tar.bz2";
|
||||||
sha256 = "711b7d81ddff45b083a21f05c8aa5093a6a38a0ee42dfcc873234fcef1fcdd76";
|
sha256 = "1avw9mnhrcxsdalqr2yhyif1cacl4dsgcpfc31axkv7vj401djnl";
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/qgis \
|
||||||
|
--prefix PYTHONPATH : $PYTHONPATH
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "User friendly Open Source Geographic Information System";
|
description = "User friendly Open Source Geographic Information System";
|
||||||
homepage = http://www.qgis.org;
|
homepage = http://www.qgis.org;
|
||||||
|
|
|
@ -30,10 +30,10 @@ let
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ImageMagick-${version}";
|
name = "imagemagick-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://imagemagick/releases/${name}.tar.xz";
|
url = "mirror://imagemagick/releases/ImageMagick-${version}.tar.xz";
|
||||||
sha256 = "1dmrl5x63msdnxsf4cmhz5v4ard2z3jrgp2zhqlb27399j81qcqj";
|
sha256 = "1dmrl5x63msdnxsf4cmhz5v4ard2z3jrgp2zhqlb27399j81qcqj";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
{stdenv, fetchurl, python, boost, pkgconfig, imagemagick}:
|
{stdenv, fetchurl, python, boost, pkgconfig, imagemagick}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
let
|
||||||
name = "PythonMagick-0.7";
|
|
||||||
|
version = "0.9.11";
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "pythonmagick-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://www.imagemagick.org/download/python/PythonMagick-0.7.tar.gz;
|
url = "http://www.imagemagick.org/download/python/releases/PythonMagick-${version}.tar.gz";
|
||||||
sha256 = "1553kyzdcysii2qhbpbgs0icmfpm6s2lp3zchgs73cxfnfym8lz1";
|
sha256 = "01z01mlqkk0lvrh2jsmf84qjw29sq4rpj0653x7nqy7mrszwwp2v";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [python boost pkgconfig imagemagick];
|
buildInputs = [python boost pkgconfig imagemagick];
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2, eigen,
|
{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2, eigen,
|
||||||
lcms, jasper, libgphoto2, kdepimlibs, gettext, soprano, libjpeg, libtiff,
|
lcms, jasper, libgphoto2, kdepimlibs, gettext, soprano, libjpeg, libtiff,
|
||||||
liblqr1, lensfun, pkgconfig, qjson, libkdcraw, opencv, libkexiv2, libkipi, boost,
|
liblqr1, lensfun, pkgconfig, qjson, libkdcraw, opencv, libkexiv2, libkipi, boost,
|
||||||
shared_desktop_ontologies, marble, mysql }:
|
shared_desktop_ontologies, marble, mysql, libpgf }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "digikam-4.4.0";
|
name = "digikam-4.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.kde.org/stable/digikam/${name}.tar.bz2";
|
url = "http://download.kde.org/stable/digikam/${name}.tar.bz2";
|
||||||
sha256 = "1sflh3i989f9xi4qym3rzcrx7ahrjf1n9si8c5q05dgm039a4s2w";
|
sha256 = "0id3anikki8c3rzqzapdbg00h577qwybknvkbz1kdq0348bs6ixh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake automoc4 pkgconfig ];
|
nativeBuildInputs = [ cmake automoc4 pkgconfig ];
|
||||||
|
|
||||||
buildInputs = [ qt4 kdelibs phonon qimageblitz qca2 eigen lcms libjpeg libtiff
|
buildInputs = [ qt4 kdelibs phonon qimageblitz qca2 eigen lcms libjpeg libtiff
|
||||||
jasper libgphoto2 kdepimlibs gettext soprano liblqr1 lensfun qjson libkdcraw
|
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
|
# Make digikam find some FindXXXX.cmake
|
||||||
KDEDIRS="${marble}:${qjson}";
|
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
|
{ stdenv, makeWrapper, fetchurl, x11, imlib2, libjpeg, libpng
|
||||||
, libXinerama, curl }:
|
, libXinerama, curl, libexif }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "feh-2.12";
|
name = "feh-2.12";
|
||||||
|
@ -9,10 +9,10 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "0ckhidmsms2l5jycp0qf71jzmb3bpbhjq3bcgfpvfvszah7pmq30";
|
sha256 = "0ckhidmsms2l5jycp0qf71jzmb3bpbhjq3bcgfpvfvszah7pmq30";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [makeWrapper x11 imlib2 libjpeg libpng libXinerama curl];
|
buildInputs = [ makeWrapper x11 imlib2 libjpeg libpng libXinerama curl libexif ];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlags="PREFIX=$out"
|
makeFlags="PREFIX=$out exif=1"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
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 {
|
src = fetchgit {
|
||||||
url = "https://github.com/muennich/sxiv.git";
|
url = "https://github.com/muennich/sxiv.git";
|
||||||
rev = "6216bf6c2d42be63025d29550831d9f4447f4066";
|
rev = "92e3b57816e999b46f8d0778984719227631e9a7";
|
||||||
sha256 = "e25e19cf073cc2621656e50d2c31cc59cc0fc200716f96c765374568a26977f1";
|
sha256 = "0jbswh0k1xq5hgrv1pyvk7lpwbbj66p7gjsdm8zh6ah324apjr2b";
|
||||||
};
|
};
|
||||||
|
|
||||||
postUnpack = ''
|
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;
|
with lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "blender-2.73";
|
name = "blender-2.73a";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.blender.org/source/${name}.tar.gz";
|
url = "http://download.blender.org/source/${name}.tar.gz";
|
||||||
sha256 = "140fcxjb73gim430v08021ls3civ3yghld63ljkgxi5vaww1cq95";
|
sha256 = "114ipidrja6ryi6wv0w55wmh10ikazy24r8js596g7b9fpkzpymc";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -35,7 +35,6 @@ stdenv.mkDerivation rec {
|
||||||
[ "-DWITH_MOD_OCEANSIM=ON"
|
[ "-DWITH_MOD_OCEANSIM=ON"
|
||||||
"-DWITH_CODEC_FFMPEG=ON"
|
"-DWITH_CODEC_FFMPEG=ON"
|
||||||
"-DWITH_CODEC_SNDFILE=ON"
|
"-DWITH_CODEC_SNDFILE=ON"
|
||||||
"-DWITH_FFTW3=ON"
|
|
||||||
"-DWITH_INSTALL_PORTABLE=OFF"
|
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||||
"-DWITH_FFTW3=ON"
|
"-DWITH_FFTW3=ON"
|
||||||
"-DWITH_SDL=ON"
|
"-DWITH_SDL=ON"
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-2.16.0";
|
name = "calibre-2.18.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||||
sha256 = "1a9s99r92wk09lsbx8kn2kyg1wr7j84j8vjf65zaf5siwxnwy291";
|
sha256 = "05n7kfih4mbhnvpzi5i821jl0na66si2ygz8cql931p2qcfhnixx";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
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 }:
|
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
|
||||||
let
|
let
|
||||||
py = python27Packages;
|
py = python27Packages;
|
||||||
version = "14.09";
|
version = "14.12.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cura-${version}";
|
name = "cura-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
|
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
|
||||||
sha256 = "1nr26hfqa6chim5qch92wpk0s28wfvznvcf3kkzgf23hw707f40v";
|
sha256 = "1sybsa84qznlzcgn18p70gh1v60npwfca5yn80h35msxrnh8gbp5";
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
let
|
let
|
||||||
version = "14.03";
|
version = "14.12.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "curaengine-${version}";
|
name = "curaengine-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
|
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
|
||||||
sha256 = "0f37jk6w3zd9x29c1rydqmfdzybx9nbmwdi3y3nzynq1vq7zmxcc";
|
sha256 = "1cfns71mjndy2dlmccmjx8ldd0p5v88sqg0jg6ak5c864cvgbjdr";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp CuraEngine $out/bin/
|
cp build/CuraEngine $out/bin/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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";
|
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;
|
homepage = http://grass.itc.it/index.php;
|
||||||
license = [ "GPL" ];
|
license = [ "GPL" ];
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
|
||||||
|
|
||||||
let
|
let
|
||||||
name = "ikiwiki";
|
name = "ikiwiki";
|
||||||
version = "3.20141016";
|
version = "3.20150107";
|
||||||
|
|
||||||
lib = stdenv.lib;
|
lib = stdenv.lib;
|
||||||
in
|
in
|
||||||
|
@ -31,8 +31,8 @@ stdenv.mkDerivation {
|
||||||
name = "${name}-${version}";
|
name = "${name}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
|
url = "https://github.com/joeyh/ikiwiki/archive/debian/${version}.tar.gz";
|
||||||
sha256 = "1amvrb6djil7g0yabsngfs0f1n7qcvj2hddipjkgfjbmghd6jqiw";
|
sha256 = "12kiqjxrh93gysdp7bhglnks2md9davl8jgzqlj0m8xs5rf1972n";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
||||||
|
|
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
unpackPhase = "unpackFile \$src; sourceRoot=.";
|
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";
|
installPhase = "mkdir -p \$out/bin; cp pstree \$out/bin";
|
||||||
|
|
||||||
meta = {
|
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…
Add table
Add a link
Reference in a new issue