Merge branch 'master' into staging
This commit is contained in:
commit
1d9a8e2289
@ -18,6 +18,7 @@
|
|||||||
<xi:include href="functions.xml" />
|
<xi:include href="functions.xml" />
|
||||||
<xi:include href="meta.xml" />
|
<xi:include href="meta.xml" />
|
||||||
<xi:include href="languages-frameworks/index.xml" />
|
<xi:include href="languages-frameworks/index.xml" />
|
||||||
|
<xi:include href="platform-notes.xml" />
|
||||||
<xi:include href="package-notes.xml" />
|
<xi:include href="package-notes.xml" />
|
||||||
<xi:include href="overlays.xml" />
|
<xi:include href="overlays.xml" />
|
||||||
<xi:include href="coding-conventions.xml" />
|
<xi:include href="coding-conventions.xml" />
|
||||||
|
83
doc/platform-notes.xml
Normal file
83
doc/platform-notes.xml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xml:id="chap-platform-nodes">
|
||||||
|
|
||||||
|
<title>Platform Notes</title>
|
||||||
|
|
||||||
|
<section xml:id="sec-darwin">
|
||||||
|
|
||||||
|
<title>Darwin (macOS)</title>
|
||||||
|
<para>Some common issues when packaging software for darwin:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The darwin <literal>stdenv</literal> uses clang instead of gcc.
|
||||||
|
When referring to the compiler <varname>$CC</varname> or <command>cc</command>
|
||||||
|
will work in both cases. Some builds hardcode gcc/g++ in their
|
||||||
|
build scripts, that can usually be fixed with using something
|
||||||
|
like <literal>makeFlags = [ "CC=cc" ];</literal> or by patching
|
||||||
|
the build scripts.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "libfoo-1.2.3";
|
||||||
|
# ...
|
||||||
|
buildPhase = ''
|
||||||
|
$CC -o hello hello.c
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
On darwin libraries are linked using absolute paths, libraries
|
||||||
|
are resolved by their <literal>install_name</literal> at link
|
||||||
|
time. Sometimes packages won't set this correctly causing the
|
||||||
|
library lookups to fail at runtime. This can be fixed by adding
|
||||||
|
extra linker flags or by running <command>install_name_tool -id</command>
|
||||||
|
during the <function>fixupPhase</function>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "libfoo-1.2.3";
|
||||||
|
# ...
|
||||||
|
makeFlags = stdenv.lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Some packages assume xcode is available and use <command>xcrun</command>
|
||||||
|
to resolve build tools like <command>clang</command>, etc.
|
||||||
|
This causes errors like <code>xcode-select: error: no developer tools were found at '/Applications/Xcode.app'</code>
|
||||||
|
while the build doesn't actually depend on xcode.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "libfoo-1.2.3";
|
||||||
|
# ...
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace Makefile \
|
||||||
|
--replace '/usr/bin/xcrun clang' clang
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The package <literal>xcbuild</literal> can be used to build projects
|
||||||
|
that really depend on Xcode, however projects that build some kind of
|
||||||
|
graphical interface won't work without using Xcode in an impure way.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</chapter>
|
@ -50,6 +50,7 @@
|
|||||||
aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
|
aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
|
||||||
ankhers = "Justin Wood <justin.k.wood@gmail.com>";
|
ankhers = "Justin Wood <justin.k.wood@gmail.com>";
|
||||||
antono = "Antono Vasiljev <self@antono.info>";
|
antono = "Antono Vasiljev <self@antono.info>";
|
||||||
|
antonxy = "Anton Schirg <anton.schirg@posteo.de>";
|
||||||
apeschar = "Albert Peschar <albert@peschar.net>";
|
apeschar = "Albert Peschar <albert@peschar.net>";
|
||||||
apeyroux = "Alexandre Peyroux <alex@px.io>";
|
apeyroux = "Alexandre Peyroux <alex@px.io>";
|
||||||
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
|
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
|
||||||
@ -94,6 +95,7 @@
|
|||||||
bramd = "Bram Duvigneau <bram@bramd.nl>";
|
bramd = "Bram Duvigneau <bram@bramd.nl>";
|
||||||
bstrik = "Berno Strik <dutchman55@gmx.com>";
|
bstrik = "Berno Strik <dutchman55@gmx.com>";
|
||||||
bzizou = "Bruno Bzeznik <Bruno@bzizou.net>";
|
bzizou = "Bruno Bzeznik <Bruno@bzizou.net>";
|
||||||
|
c0bw3b = "Renaud <c0bw3b@gmail.com>";
|
||||||
c0dehero = "CodeHero <codehero@nerdpol.ch>";
|
c0dehero = "CodeHero <codehero@nerdpol.ch>";
|
||||||
calbrecht = "Christian Albrecht <christian.albrecht@mayflower.de>";
|
calbrecht = "Christian Albrecht <christian.albrecht@mayflower.de>";
|
||||||
calrama = "Moritz Maxeiner <moritz@ucworks.org>";
|
calrama = "Moritz Maxeiner <moritz@ucworks.org>";
|
||||||
@ -327,6 +329,7 @@
|
|||||||
KibaFox = "Kiba Fox <kiba.fox@foxypossibilities.com>";
|
KibaFox = "Kiba Fox <kiba.fox@foxypossibilities.com>";
|
||||||
kierdavis = "Kier Davis <kierdavis@gmail.com>";
|
kierdavis = "Kier Davis <kierdavis@gmail.com>";
|
||||||
kiloreux = "Kiloreux Emperex <kiloreux@gmail.com>";
|
kiloreux = "Kiloreux Emperex <kiloreux@gmail.com>";
|
||||||
|
kini = "Keshav Kini <keshav.kini@gmail.com>";
|
||||||
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
||||||
knedlsepp = "Josef Kemetmüller <josef.kemetmueller@gmail.com>";
|
knedlsepp = "Josef Kemetmüller <josef.kemetmueller@gmail.com>";
|
||||||
konimex = "Muhammad Herdiansyah <herdiansyah@netc.eu>";
|
konimex = "Muhammad Herdiansyah <herdiansyah@netc.eu>";
|
||||||
@ -563,6 +566,7 @@
|
|||||||
schristo = "Scott Christopher <schristopher@konputa.com>";
|
schristo = "Scott Christopher <schristopher@konputa.com>";
|
||||||
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
|
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
|
||||||
sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
|
sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
|
||||||
|
SeanZicari = "Sean Zicari <sean.zicari@gmail.com>";
|
||||||
sepi = "Raffael Mancini <raffael@mancini.lu>";
|
sepi = "Raffael Mancini <raffael@mancini.lu>";
|
||||||
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
|
seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
|
||||||
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
|
shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
|
||||||
@ -625,6 +629,7 @@
|
|||||||
ThomasMader = "Thomas Mader <thomas.mader@gmail.com>";
|
ThomasMader = "Thomas Mader <thomas.mader@gmail.com>";
|
||||||
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
|
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
|
||||||
timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
|
timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
|
||||||
|
timokau = "Timo Kaufmann <timokau@zoho.com>";
|
||||||
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
|
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
|
||||||
tnias = "Philipp Bartsch <phil@grmr.de>";
|
tnias = "Philipp Bartsch <phil@grmr.de>";
|
||||||
tohl = "Tomas Hlavaty <tom@logand.com>";
|
tohl = "Tomas Hlavaty <tom@logand.com>";
|
||||||
|
@ -338,7 +338,7 @@ rec {
|
|||||||
# Type-check the remaining definitions, and merge them.
|
# Type-check the remaining definitions, and merge them.
|
||||||
mergedValue = foldl' (res: def:
|
mergedValue = foldl' (res: def:
|
||||||
if type.check def.value then res
|
if type.check def.value then res
|
||||||
else throw "The option value `${showOption loc}' in `${def.file}' is not a ${type.description}.")
|
else throw "The option value `${showOption loc}' in `${def.file}' is not of type `${type.description}'.")
|
||||||
(type.merge loc defsFinal) defsFinal;
|
(type.merge loc defsFinal) defsFinal;
|
||||||
|
|
||||||
isDefined = defsFinal != [];
|
isDefined = defsFinal != [];
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
rec {
|
rec {
|
||||||
pcBase = {
|
pcBase = {
|
||||||
name = "pc";
|
name = "pc";
|
||||||
uboot = null;
|
|
||||||
kernelHeadersBaseConfig = "defconfig";
|
kernelHeadersBaseConfig = "defconfig";
|
||||||
kernelBaseConfig = "defconfig";
|
kernelBaseConfig = "defconfig";
|
||||||
# Build whatever possible as a module, if not stated in the extra config.
|
# Build whatever possible as a module, if not stated in the extra config.
|
||||||
@ -50,9 +49,6 @@ rec {
|
|||||||
kernelTarget = "uImage";
|
kernelTarget = "uImage";
|
||||||
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
|
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
|
||||||
#kernelDTB = true;
|
#kernelDTB = true;
|
||||||
|
|
||||||
# XXX can be anything non-null, pkgs actually only cares if it is set or not
|
|
||||||
uboot = "pogoplug4";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sheevaplug = {
|
sheevaplug = {
|
||||||
@ -162,9 +158,6 @@ rec {
|
|||||||
'';
|
'';
|
||||||
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
|
kernelMakeFlags = [ "LOADADDR=0x0200000" ];
|
||||||
kernelTarget = "uImage";
|
kernelTarget = "uImage";
|
||||||
uboot = "sheevaplug";
|
|
||||||
# Only for uboot = uboot :
|
|
||||||
ubootConfig = "sheevaplug_config";
|
|
||||||
kernelDTB = true; # Beyond 3.10
|
kernelDTB = true; # Beyond 3.10
|
||||||
gcc = {
|
gcc = {
|
||||||
arch = "armv5te";
|
arch = "armv5te";
|
||||||
@ -251,7 +244,6 @@ rec {
|
|||||||
LATENCYTOP y
|
LATENCYTOP y
|
||||||
'';
|
'';
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
uboot = null;
|
|
||||||
gcc = {
|
gcc = {
|
||||||
arch = "armv6";
|
arch = "armv6";
|
||||||
fpu = "vfp";
|
fpu = "vfp";
|
||||||
@ -342,7 +334,6 @@ rec {
|
|||||||
XEN? n
|
XEN? n
|
||||||
'';
|
'';
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
uboot = null;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
scaleway-c1 = armv7l-hf-multiplatform // {
|
scaleway-c1 = armv7l-hf-multiplatform // {
|
||||||
@ -374,7 +365,6 @@ rec {
|
|||||||
kernelMakeFlags = [ "LOADADDR=0x10800000" ];
|
kernelMakeFlags = [ "LOADADDR=0x10800000" ];
|
||||||
kernelTarget = "uImage";
|
kernelTarget = "uImage";
|
||||||
kernelDTB = true;
|
kernelDTB = true;
|
||||||
uboot = true; #XXX: any non-null value here is needed so that mkimage is present to build kernelTarget uImage
|
|
||||||
gcc = {
|
gcc = {
|
||||||
cpu = "cortex-a9";
|
cpu = "cortex-a9";
|
||||||
fpu = "neon";
|
fpu = "neon";
|
||||||
@ -464,7 +454,6 @@ rec {
|
|||||||
FTRACE n
|
FTRACE n
|
||||||
'';
|
'';
|
||||||
kernelTarget = "vmlinux";
|
kernelTarget = "vmlinux";
|
||||||
uboot = null;
|
|
||||||
gcc = {
|
gcc = {
|
||||||
arch = "loongson2f";
|
arch = "loongson2f";
|
||||||
abi = "n32";
|
abi = "n32";
|
||||||
@ -477,7 +466,6 @@ rec {
|
|||||||
kernelAutoModules = false;
|
kernelAutoModules = false;
|
||||||
kernelExtraConfig = ""; # TBD kernel config
|
kernelExtraConfig = ""; # TBD kernel config
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
uboot = null;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
armv7l-hf-multiplatform = {
|
armv7l-hf-multiplatform = {
|
||||||
@ -489,7 +477,6 @@ rec {
|
|||||||
kernelDTB = true;
|
kernelDTB = true;
|
||||||
kernelAutoModules = true;
|
kernelAutoModules = true;
|
||||||
kernelPreferBuiltin = true;
|
kernelPreferBuiltin = true;
|
||||||
uboot = null;
|
|
||||||
kernelTarget = "zImage";
|
kernelTarget = "zImage";
|
||||||
kernelExtraConfig = ''
|
kernelExtraConfig = ''
|
||||||
# Fix broken sunxi-sid nvmem driver.
|
# Fix broken sunxi-sid nvmem driver.
|
||||||
@ -552,7 +539,6 @@ rec {
|
|||||||
# which our initrd builder can't currently do easily.
|
# which our initrd builder can't currently do easily.
|
||||||
USB_XHCI_TEGRA m
|
USB_XHCI_TEGRA m
|
||||||
'';
|
'';
|
||||||
uboot = null;
|
|
||||||
kernelTarget = "Image";
|
kernelTarget = "Image";
|
||||||
gcc = {
|
gcc = {
|
||||||
arch = "armv8-a";
|
arch = "armv8-a";
|
||||||
|
@ -61,6 +61,16 @@ checkConfigError() {
|
|||||||
checkConfigOutput "false" config.enable ./declare-enable.nix
|
checkConfigOutput "false" config.enable ./declare-enable.nix
|
||||||
checkConfigError 'The option .* defined in .* does not exist.' config.enable ./define-enable.nix
|
checkConfigError 'The option .* defined in .* does not exist.' config.enable ./define-enable.nix
|
||||||
|
|
||||||
|
# Check integer types.
|
||||||
|
# unsigned
|
||||||
|
checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
|
||||||
|
checkConfigError 'The option value .* in .* is not of type.*unsigned integer.*' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
|
||||||
|
# positive
|
||||||
|
checkConfigError 'The option value .* in .* is not of type.*positive integer.*' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
|
||||||
|
# between
|
||||||
|
checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
|
||||||
|
checkConfigError 'The option value .* in .* is not of type.*between.*-21 and 43.*inclusive.*' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
|
||||||
|
|
||||||
# Check mkForce without submodules.
|
# Check mkForce without submodules.
|
||||||
set -- config.enable ./declare-enable.nix ./define-enable.nix
|
set -- config.enable ./declare-enable.nix ./define-enable.nix
|
||||||
checkConfigOutput "true" "$@"
|
checkConfigOutput "true" "$@"
|
||||||
@ -126,7 +136,7 @@ checkConfigOutput "true" "$@" ./define-module-check.nix
|
|||||||
# Check coerced value.
|
# Check coerced value.
|
||||||
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
|
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
|
||||||
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
|
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
|
||||||
checkConfigError 'The option value .* in .* is not a string or integer.' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
checkConfigError 'The option value .* in .* is not.*string or signed integer.*' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
====== module tests ======
|
====== module tests ======
|
||||||
|
9
lib/tests/modules/declare-int-between-value.nix
Normal file
9
lib/tests/modules/declare-int-between-value.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
value = lib.mkOption {
|
||||||
|
type = lib.types.ints.between (-21) 43;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
lib/tests/modules/declare-int-positive-value.nix
Normal file
9
lib/tests/modules/declare-int-positive-value.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
value = lib.mkOption {
|
||||||
|
type = lib.types.ints.positive;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
lib/tests/modules/declare-int-unsigned-value.nix
Normal file
9
lib/tests/modules/declare-int-unsigned-value.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
value = lib.mkOption {
|
||||||
|
type = lib.types.ints.unsigned;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
lib/tests/modules/define-value-int-negative.nix
Normal file
3
lib/tests/modules/define-value-int-negative.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
value = -23;
|
||||||
|
}
|
3
lib/tests/modules/define-value-int-positive.nix
Normal file
3
lib/tests/modules/define-value-int-positive.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
value = 42;
|
||||||
|
}
|
3
lib/tests/modules/define-value-int-zero.nix
Normal file
3
lib/tests/modules/define-value-int-zero.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
value = 0;
|
||||||
|
}
|
@ -108,11 +108,64 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
int = mkOptionType rec {
|
int = mkOptionType rec {
|
||||||
name = "int";
|
name = "int";
|
||||||
description = "integer";
|
description = "signed integer";
|
||||||
check = isInt;
|
check = isInt;
|
||||||
merge = mergeOneOption;
|
merge = mergeOneOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Specialized subdomains of int
|
||||||
|
ints =
|
||||||
|
let
|
||||||
|
betweenDesc = lowest: highest:
|
||||||
|
"${toString lowest} and ${toString highest} (both inclusive)";
|
||||||
|
between = lowest: highest: assert lowest <= highest;
|
||||||
|
addCheck int (x: x >= lowest && x <= highest) // {
|
||||||
|
name = "intBetween";
|
||||||
|
description = "integer between ${betweenDesc lowest highest}";
|
||||||
|
};
|
||||||
|
ign = lowest: highest: name: docStart:
|
||||||
|
between lowest highest // {
|
||||||
|
inherit name;
|
||||||
|
description = docStart + "; between ${betweenDesc lowest highest}";
|
||||||
|
};
|
||||||
|
unsign = bit: range: ign 0 (range - 1)
|
||||||
|
"unsignedInt${toString bit}" "${toString bit} bit unsigned integer";
|
||||||
|
sign = bit: range: ign (0 - (range / 2)) (range / 2 - 1)
|
||||||
|
"signedInt${toString bit}" "${toString bit} bit signed integer";
|
||||||
|
|
||||||
|
in rec {
|
||||||
|
/* An int with a fixed range.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* (ints.between 0 100).check (-1)
|
||||||
|
* => false
|
||||||
|
* (ints.between 0 100).check (101)
|
||||||
|
* => false
|
||||||
|
* (ints.between 0 0).check 0
|
||||||
|
* => true
|
||||||
|
*/
|
||||||
|
inherit between;
|
||||||
|
|
||||||
|
unsigned = addCheck types.int (x: x >= 0) // {
|
||||||
|
name = "unsignedInt";
|
||||||
|
description = "unsigned integer, meaning >=0";
|
||||||
|
};
|
||||||
|
positive = addCheck types.int (x: x > 0) // {
|
||||||
|
name = "positiveInt";
|
||||||
|
description = "positive integer, meaning >0";
|
||||||
|
};
|
||||||
|
u8 = unsign 8 256;
|
||||||
|
u16 = unsign 16 65536;
|
||||||
|
# the biggest int a 64-bit Nix accepts is 2^63 - 1 (9223372036854775808), for a 32-bit Nix it is 2^31 - 1 (2147483647)
|
||||||
|
# the smallest int a 64-bit Nix accepts is -2^63 (-9223372036854775807), for a 32-bit Nix it is -2^31 (-2147483648)
|
||||||
|
# u32 = unsign 32 4294967296;
|
||||||
|
# u64 = unsign 64 18446744073709551616;
|
||||||
|
|
||||||
|
s8 = sign 8 256;
|
||||||
|
s16 = sign 16 65536;
|
||||||
|
# s32 = sign 32 4294967296;
|
||||||
|
};
|
||||||
|
|
||||||
str = mkOptionType {
|
str = mkOptionType {
|
||||||
name = "str";
|
name = "str";
|
||||||
@ -172,7 +225,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# drop this in the future:
|
# drop this in the future:
|
||||||
list = builtins.trace "`types.list' is deprecated; use `types.listOf' instead" types.listOf;
|
list = builtins.trace "`types.list` is deprecated; use `types.listOf` instead" types.listOf;
|
||||||
|
|
||||||
listOf = elemType: mkOptionType rec {
|
listOf = elemType: mkOptionType rec {
|
||||||
name = "listOf";
|
name = "listOf";
|
||||||
@ -189,7 +242,7 @@ rec {
|
|||||||
).optionalValue
|
).optionalValue
|
||||||
) def.value
|
) def.value
|
||||||
else
|
else
|
||||||
throw "The option value `${showOption loc}' in `${def.file}' is not a list.") defs)));
|
throw "The option value `${showOption loc}` in `${def.file}` is not a list.") defs)));
|
||||||
getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
|
getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
|
||||||
getSubModules = elemType.getSubModules;
|
getSubModules = elemType.getSubModules;
|
||||||
substSubModules = m: listOf (elemType.substSubModules m);
|
substSubModules = m: listOf (elemType.substSubModules m);
|
||||||
@ -260,7 +313,7 @@ rec {
|
|||||||
let nrNulls = count (def: def.value == null) defs; in
|
let nrNulls = count (def: def.value == null) defs; in
|
||||||
if nrNulls == length defs then null
|
if nrNulls == length defs then null
|
||||||
else if nrNulls != 0 then
|
else if nrNulls != 0 then
|
||||||
throw "The option `${showOption loc}' is defined both null and not null, in ${showFiles (getFiles defs)}."
|
throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}."
|
||||||
else elemType.merge loc defs;
|
else elemType.merge loc defs;
|
||||||
getSubOptions = elemType.getSubOptions;
|
getSubOptions = elemType.getSubOptions;
|
||||||
getSubModules = elemType.getSubModules;
|
getSubModules = elemType.getSubModules;
|
||||||
|
@ -18,6 +18,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
import requests
|
import requests
|
||||||
import toolz
|
import toolz
|
||||||
|
from concurrent.futures import ThreadPoolExecutor as pool
|
||||||
|
|
||||||
INDEX = "https://pypi.io/pypi"
|
INDEX = "https://pypi.io/pypi"
|
||||||
"""url of PyPI"""
|
"""url of PyPI"""
|
||||||
@ -235,7 +236,8 @@ def main():
|
|||||||
|
|
||||||
packages = map(os.path.abspath, args.package)
|
packages = map(os.path.abspath, args.package)
|
||||||
|
|
||||||
count = list(map(_update, packages))
|
with pool() as p:
|
||||||
|
count = list(p.map(_update, packages))
|
||||||
|
|
||||||
logging.info("{} package(s) updated".format(sum(count)))
|
logging.info("{} package(s) updated".format(sum(count)))
|
||||||
|
|
||||||
|
@ -22,10 +22,6 @@
|
|||||||
<listitem><para>A boolean, its values can be <literal>true</literal> or
|
<listitem><para>A boolean, its values can be <literal>true</literal> or
|
||||||
<literal>false</literal>.</para></listitem>
|
<literal>false</literal>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
|
||||||
<term><varname>types.int</varname></term>
|
|
||||||
<listitem><para>An integer.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>types.path</varname></term>
|
<term><varname>types.path</varname></term>
|
||||||
<listitem><para>A filesystem path, defined as anything that when coerced to
|
<listitem><para>A filesystem path, defined as anything that when coerced to
|
||||||
@ -39,7 +35,59 @@
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>String related types:</para>
|
<para>Integer-related types:</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>types.int</varname></term>
|
||||||
|
<listitem><para>A signed integer.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>types.ints.{s8, s16, s32}</varname>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Signed integers with a fixed length (8, 16 or 32 bits).
|
||||||
|
They go from
|
||||||
|
<inlineequation><mathphrase>−2<superscript>n</superscript>/2</mathphrase>
|
||||||
|
</inlineequation> to <inlineequation>
|
||||||
|
<mathphrase>2<superscript>n</superscript>/2−1</mathphrase>
|
||||||
|
</inlineequation>
|
||||||
|
respectively (e.g. <literal>−128</literal> to <literal>127</literal>
|
||||||
|
for 8 bits).
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>types.ints.unsigned</varname>
|
||||||
|
</term>
|
||||||
|
<listitem><para>An unsigned integer (that is >= 0).
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>types.ints.{u8, u16, u32}</varname>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Unsigned integers with a fixed length (8, 16 or 32 bits).
|
||||||
|
They go from
|
||||||
|
<inlineequation><mathphrase>0</mathphrase></inlineequation> to <inlineequation>
|
||||||
|
<mathphrase>2<superscript>n</superscript>−1</mathphrase>
|
||||||
|
</inlineequation>
|
||||||
|
respectively (e.g. <literal>0</literal> to <literal>255</literal>
|
||||||
|
for 8 bits).
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>types.ints.positive</varname>
|
||||||
|
</term>
|
||||||
|
<listitem><para>A positive integer (that is > 0).
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>String-related types:</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -68,7 +116,7 @@
|
|||||||
|
|
||||||
<section><title>Value Types</title>
|
<section><title>Value Types</title>
|
||||||
|
|
||||||
<para>Value types are type that take a value parameter.</para>
|
<para>Value types are types that take a value parameter.</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -84,6 +132,17 @@
|
|||||||
<replaceable>sep</replaceable>, e.g. <literal>types.separatedString
|
<replaceable>sep</replaceable>, e.g. <literal>types.separatedString
|
||||||
"|"</literal>.</para></listitem>
|
"|"</literal>.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<varname>types.ints.between</varname>
|
||||||
|
<replaceable>lowest</replaceable>
|
||||||
|
<replaceable>highest</replaceable>
|
||||||
|
</term>
|
||||||
|
<listitem><para>An integer between <replaceable>lowest</replaceable>
|
||||||
|
and <replaceable>highest</replaceable> (both inclusive).
|
||||||
|
Useful for creating types like <literal>types.port</literal>.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>types.submodule</varname> <replaceable>o</replaceable></term>
|
<term><varname>types.submodule</varname> <replaceable>o</replaceable></term>
|
||||||
<listitem><para>A set of sub options <replaceable>o</replaceable>.
|
<listitem><para>A set of sub options <replaceable>o</replaceable>.
|
||||||
|
@ -90,14 +90,6 @@ following incompatible changes:</para>
|
|||||||
That means that old configuration is not overwritten by default when update to the znc options are made.
|
That means that old configuration is not overwritten by default when update to the znc options are made.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The option <option>services.xserver.desktopManager.default</option> is now <literal>none</literal> by default.
|
|
||||||
An assertion failure is thrown if WM's and DM's default are <literal>none</literal>.
|
|
||||||
To explicitly run a plain X session without and DM or WM, the newly introduced option <option>services.xserver.plainX</option>
|
|
||||||
must be set to true.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
@ -207,11 +207,12 @@
|
|||||||
ripple-data-api = 186;
|
ripple-data-api = 186;
|
||||||
mediatomb = 187;
|
mediatomb = 187;
|
||||||
rdnssd = 188;
|
rdnssd = 188;
|
||||||
# ihaskell = 189; # unused
|
ihaskell = 189;
|
||||||
i2p = 190;
|
i2p = 190;
|
||||||
lambdabot = 191;
|
lambdabot = 191;
|
||||||
asterisk = 192;
|
asterisk = 192;
|
||||||
plex = 193;
|
plex = 193;
|
||||||
|
plexpy = 195;
|
||||||
grafana = 196;
|
grafana = 196;
|
||||||
skydns = 197;
|
skydns = 197;
|
||||||
# ripple-rest = 198; # unused, removed 2017-08-12
|
# ripple-rest = 198; # unused, removed 2017-08-12
|
||||||
@ -483,7 +484,7 @@
|
|||||||
#ripple-data-api = 186; #unused
|
#ripple-data-api = 186; #unused
|
||||||
mediatomb = 187;
|
mediatomb = 187;
|
||||||
#rdnssd = 188; # unused
|
#rdnssd = 188; # unused
|
||||||
# ihaskell = 189; # unused
|
ihaskell = 189;
|
||||||
i2p = 190;
|
i2p = 190;
|
||||||
lambdabot = 191;
|
lambdabot = 191;
|
||||||
asterisk = 192;
|
asterisk = 192;
|
||||||
|
@ -304,7 +304,7 @@
|
|||||||
./services/misc/gogs.nix
|
./services/misc/gogs.nix
|
||||||
./services/misc/gollum.nix
|
./services/misc/gollum.nix
|
||||||
./services/misc/gpsd.nix
|
./services/misc/gpsd.nix
|
||||||
#./services/misc/ihaskell.nix
|
./services/misc/ihaskell.nix
|
||||||
./services/misc/irkerd.nix
|
./services/misc/irkerd.nix
|
||||||
./services/misc/jackett.nix
|
./services/misc/jackett.nix
|
||||||
./services/misc/logkeys.nix
|
./services/misc/logkeys.nix
|
||||||
@ -413,6 +413,7 @@
|
|||||||
./services/networking/asterisk.nix
|
./services/networking/asterisk.nix
|
||||||
./services/networking/atftpd.nix
|
./services/networking/atftpd.nix
|
||||||
./services/networking/avahi-daemon.nix
|
./services/networking/avahi-daemon.nix
|
||||||
|
./services/networking/babeld.nix
|
||||||
./services/networking/bind.nix
|
./services/networking/bind.nix
|
||||||
./services/networking/autossh.nix
|
./services/networking/autossh.nix
|
||||||
./services/networking/bird.nix
|
./services/networking/bird.nix
|
||||||
|
@ -467,7 +467,15 @@ in {
|
|||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.web.enable {
|
(mkIf cfg.web.enable (let
|
||||||
|
python27' = pkgs.python27.override {
|
||||||
|
packageOverrides = self: super: {
|
||||||
|
django = self.django_1_8;
|
||||||
|
django_tagging = self.django_tagging_0_4_3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pythonPackages = python27'.pkgs;
|
||||||
|
in {
|
||||||
systemd.services.graphiteWeb = {
|
systemd.services.graphiteWeb = {
|
||||||
description = "Graphite Web Interface";
|
description = "Graphite Web Interface";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
@ -477,8 +485,8 @@ in {
|
|||||||
PYTHONPATH = let
|
PYTHONPATH = let
|
||||||
penv = pkgs.python.buildEnv.override {
|
penv = pkgs.python.buildEnv.override {
|
||||||
extraLibs = [
|
extraLibs = [
|
||||||
pkgs.python27Packages.graphite_web
|
pythonPackages.graphite_web
|
||||||
pkgs.python27Packages.pysqlite
|
pythonPackages.pysqlite
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
penvPack = "${penv}/${pkgs.python.sitePackages}";
|
penvPack = "${penv}/${pkgs.python.sitePackages}";
|
||||||
@ -516,17 +524,17 @@ in {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Only collect static files when graphite_web changes.
|
# Only collect static files when graphite_web changes.
|
||||||
if ! [ "${dataDir}/current_graphite_web" -ef "${pkgs.python27Packages.graphite_web}" ]; then
|
if ! [ "${dataDir}/current_graphite_web" -ef "${pythonPackages.graphite_web}" ]; then
|
||||||
mkdir -p ${staticDir}
|
mkdir -p ${staticDir}
|
||||||
${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear
|
${pkgs.pythonPackages.django_1_8}/bin/django-admin.py collectstatic --noinput --clear
|
||||||
chown -R graphite:graphite ${staticDir}
|
chown -R graphite:graphite ${staticDir}
|
||||||
ln -sfT "${pkgs.python27Packages.graphite_web}" "${dataDir}/current_graphite_web"
|
ln -sfT "${pythonPackages.graphite_web}" "${dataDir}/current_graphite_web"
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.python27Packages.graphite_web ];
|
environment.systemPackages = [ pythonPackages.graphite_web ];
|
||||||
})
|
}))
|
||||||
|
|
||||||
(mkIf cfg.api.enable {
|
(mkIf cfg.api.enable {
|
||||||
systemd.services.graphiteApi = {
|
systemd.services.graphiteApi = {
|
||||||
|
98
nixos/modules/services/networking/babeld.nix
Normal file
98
nixos/modules/services/networking/babeld.nix
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.babeld;
|
||||||
|
|
||||||
|
paramsString = params:
|
||||||
|
concatMapStringsSep "" (name: "${name} ${boolToString (getAttr name params)}")
|
||||||
|
(attrNames params);
|
||||||
|
|
||||||
|
interfaceConfig = name:
|
||||||
|
let
|
||||||
|
interface = getAttr name cfg.interfaces;
|
||||||
|
in
|
||||||
|
"interface ${name} ${paramsString interface}\n";
|
||||||
|
|
||||||
|
configFile = with cfg; pkgs.writeText "babeld.conf" (
|
||||||
|
(optionalString (cfg.interfaceDefaults != null) ''
|
||||||
|
default ${paramsString cfg.interfaceDefaults}
|
||||||
|
'')
|
||||||
|
+ (concatMapStrings interfaceConfig (attrNames cfg.interfaces))
|
||||||
|
+ extraConfig);
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.babeld = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to run the babeld network routing daemon.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
interfaceDefaults = mkOption {
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
A set describing default parameters for babeld interfaces.
|
||||||
|
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for options.
|
||||||
|
'';
|
||||||
|
type = types.nullOr (types.attrsOf types.unspecified);
|
||||||
|
example =
|
||||||
|
{
|
||||||
|
wired = true;
|
||||||
|
"split-horizon" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
interfaces = mkOption {
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
A set describing babeld interfaces.
|
||||||
|
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for options.
|
||||||
|
'';
|
||||||
|
type = types.attrsOf (types.attrsOf types.unspecified);
|
||||||
|
example =
|
||||||
|
{ enp0s2 =
|
||||||
|
{ wired = true;
|
||||||
|
"hello-interval" = 5;
|
||||||
|
"split-horizon" = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Options that will be copied to babeld.conf.
|
||||||
|
See <citerefentry><refentrytitle>babeld</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf config.services.babeld.enable {
|
||||||
|
|
||||||
|
systemd.services.babeld = {
|
||||||
|
description = "Babel routing daemon";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.ExecStart = "${pkgs.babeld}/bin/babeld -c ${configFile}";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -32,6 +32,11 @@ let
|
|||||||
ipv6.ip6-privacy=2
|
ipv6.ip6-privacy=2
|
||||||
ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
|
ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
|
||||||
wifi.cloned-mac-address=${cfg.wifi.macAddress}
|
wifi.cloned-mac-address=${cfg.wifi.macAddress}
|
||||||
|
${optionalString (cfg.wifi.powersave != null)
|
||||||
|
''wifi.powersave=${if cfg.wifi.powersave then "3" else "2"}''}
|
||||||
|
|
||||||
|
[device]
|
||||||
|
wifi.scan-rand-mac-address=${if cfg.wifi.scanRandMacAddress then "yes" else "no"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -179,7 +184,27 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
ethernet.macAddress = macAddressOpt;
|
ethernet.macAddress = macAddressOpt;
|
||||||
wifi.macAddress = macAddressOpt;
|
|
||||||
|
wifi = {
|
||||||
|
macAddress = macAddressOpt;
|
||||||
|
|
||||||
|
powersave = mkOption {
|
||||||
|
type = types.nullOr types.bool;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Whether to enable Wi-Fi power saving.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
scanRandMacAddress = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable MAC address randomization of a Wi-Fi device
|
||||||
|
during scanning.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
useDnsmasq = mkOption {
|
useDnsmasq = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -195,6 +195,7 @@ let
|
|||||||
description = "WireGuard Tunnel - ${name}";
|
description = "WireGuard Tunnel - ${name}";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
environment.DEVICE = name;
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
@ -87,8 +87,8 @@ in
|
|||||||
|
|
||||||
default = mkOption {
|
default = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "none";
|
default = "";
|
||||||
example = "plasma5";
|
example = "none";
|
||||||
description = "Default desktop manager loaded if none have been chosen.";
|
description = "Default desktop manager loaded if none have been chosen.";
|
||||||
apply = defaultDM:
|
apply = defaultDM:
|
||||||
if defaultDM == "" && cfg.session.list != [] then
|
if defaultDM == "" && cfg.session.list != [] then
|
||||||
|
@ -193,6 +193,11 @@ in
|
|||||||
theme = mkDefault "breeze";
|
theme = mkDefault "breeze";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.plymouth = {
|
||||||
|
theme = mkDefault "breeze";
|
||||||
|
themePackages = mkDefault [ pkgs.breeze-plymouth ];
|
||||||
|
};
|
||||||
|
|
||||||
security.pam.services.kde = { allowNullPassword = true; };
|
security.pam.services.kde = { allowNullPassword = true; };
|
||||||
|
|
||||||
# Doing these one by one seems silly, but we currently lack a better
|
# Doing these one by one seems silly, but we currently lack a better
|
||||||
|
@ -161,15 +161,6 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
plainX = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Whether the X11 session can be plain (without DM/WM) and
|
|
||||||
the Xsession script will be used as fallback or not.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
autorun = mkOption {
|
autorun = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
@ -561,9 +552,6 @@ in
|
|||||||
+ "${toString (length primaryHeads)} heads set to primary: "
|
+ "${toString (length primaryHeads)} heads set to primary: "
|
||||||
+ concatMapStringsSep ", " (x: x.output) primaryHeads;
|
+ concatMapStringsSep ", " (x: x.output) primaryHeads;
|
||||||
})
|
})
|
||||||
{ assertion = cfg.desktopManager.default == "none" && cfg.windowManager.default == "none" -> cfg.plainX;
|
|
||||||
message = "Either the desktop manager or the window manager shouldn't be `none`! To explicitly allow this, you can also set `services.xserver.plainX` to `true`.";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.etc =
|
environment.etc =
|
||||||
|
@ -97,12 +97,26 @@ in
|
|||||||
moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
|
moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)"
|
||||||
|
|
||||||
mkdir -p $out/lib/plymouth/renderers
|
mkdir -p $out/lib/plymouth/renderers
|
||||||
cp ${plymouth}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
|
# module might come from a theme
|
||||||
|
cp ${themesEnv}/lib/plymouth/{text,details,$moduleName}.so $out/lib/plymouth
|
||||||
cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
|
cp ${plymouth}/lib/plymouth/renderers/{drm,frame-buffer}.so $out/lib/plymouth/renderers
|
||||||
|
|
||||||
mkdir -p $out/share/plymouth/themes
|
mkdir -p $out/share/plymouth/themes
|
||||||
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
|
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
|
||||||
cp -r ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} $out/share/plymouth/themes
|
|
||||||
|
# copy themes into working directory for patching
|
||||||
|
mkdir themes
|
||||||
|
# use -L to copy the directories proper, not the symlinks to them
|
||||||
|
cp -r -L ${themesEnv}/share/plymouth/themes/{text,details,${cfg.theme}} themes
|
||||||
|
|
||||||
|
# patch out any attempted references to the theme or plymouth's themes directory
|
||||||
|
chmod -R +w themes
|
||||||
|
find themes -type f | while read file
|
||||||
|
do
|
||||||
|
sed -i "s,/nix/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file
|
||||||
|
done
|
||||||
|
|
||||||
|
cp -r themes/* $out/share/plymouth/themes
|
||||||
cp ${cfg.logo} $out/share/plymouth/logo.png
|
cp ${cfg.logo} $out/share/plymouth/logo.png
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
|
{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
|
||||||
, mpd_clientlib, gettext }:
|
, mpd_clientlib, gettext }:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
rpath = stdenv.lib.makeLibraryPath [
|
|
||||||
glib ncurses mpd_clientlib
|
|
||||||
];
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
name = "ncmpc-${version}";
|
name = "ncmpc-${version}";
|
||||||
version = "0.28";
|
version = "0.28";
|
||||||
|
|
||||||
@ -19,12 +15,6 @@ in stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ glib ncurses mpd_clientlib ];
|
buildInputs = [ glib ncurses mpd_clientlib ];
|
||||||
nativeBuildInputs = [ meson ninja pkgconfig gettext ];
|
nativeBuildInputs = [ meson ninja pkgconfig gettext ];
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
for elf in "$out"/bin/*; do
|
|
||||||
patchelf --set-rpath '${rpath}':"$out/lib" "$elf"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Curses-based interface for MPD (music player daemon)";
|
description = "Curses-based interface for MPD (music player daemon)";
|
||||||
homepage = http://www.musicpd.org/clients/ncmpc/;
|
homepage = http://www.musicpd.org/clients/ncmpc/;
|
||||||
|
@ -1,64 +1,44 @@
|
|||||||
{ stdenv, fetchurl, python2Packages, intltool
|
{ stdenv, fetchurl, python2Packages, wrapGAppsHook, gettext, intltool, libsoup, gnome3,
|
||||||
, gst-python, withGstPlugins ? false, gst-plugins-base ? null
|
tag ? "",
|
||||||
, gst-plugins-good ? null, gst-plugins-ugly ? null, gst-plugins-bad ? null }:
|
gst_all_1, withGstPlugins ? true,
|
||||||
|
xineBackend ? false, xineLib,
|
||||||
|
withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
|
||||||
|
webkitgtk ? null,
|
||||||
|
keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }:
|
||||||
|
|
||||||
assert withGstPlugins -> gst-plugins-base != null
|
let optionals = stdenv.lib.optionals; in
|
||||||
|| gst-plugins-good != null
|
python2Packages.buildPythonApplication rec {
|
||||||
|| gst-plugins-ugly != null
|
name = "quodlibet${tag}-${version}";
|
||||||
|| gst-plugins-bad != null;
|
version = "3.9.1";
|
||||||
|
|
||||||
let
|
|
||||||
version = "2.6.3";
|
|
||||||
inherit (python2Packages) buildPythonApplication python mutagen pygtk pygobject2 dbus-python;
|
|
||||||
in buildPythonApplication {
|
|
||||||
# call the package quodlibet and just quodlibet
|
|
||||||
name = "quodlibet${stdenv.lib.optionalString (!withGstPlugins) "-without-gst-plugins"}-${version}";
|
|
||||||
|
|
||||||
# XXX, tests fail
|
# XXX, tests fail
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
srcs = [
|
src = fetchurl {
|
||||||
(fetchurl {
|
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
|
||||||
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-${version}.tar.gz";
|
sha256 = "d2b42df5d439213973dc97149fddc779a6c90cec389c24baf1c0bdcc39ffe591";
|
||||||
sha256 = "0ilasi4b0ay8r6v6ba209wsm80fq2nmzigzc5kvphrk71jwypx6z";
|
};
|
||||||
})
|
|
||||||
(fetchurl {
|
|
||||||
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-plugins-${version}.tar.gz";
|
|
||||||
sha256 = "1rv08rhdjad8sjhplqsspcf4vkazgkxyshsqmbfbrrk5kvv57ybc";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
preConfigure = ''
|
nativeBuildInputs = [ wrapGAppsHook gettext intltool ];
|
||||||
# TODO: for now don't a apply gdist overrides, will be needed for shipping icons, gtk, etc
|
# ++ (with python2Packages; [ pytest pyflakes pycodestyle polib ]); # test deps
|
||||||
sed -i /distclass/d setup.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
sourceRoot = "quodlibet-${version}";
|
buildInputs = [ gnome3.defaultIconTheme libsoup webkitgtk keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi ]
|
||||||
|
++ (if xineBackend then [ xineLib ] else with gst_all_1;
|
||||||
|
[ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]);
|
||||||
|
|
||||||
postUnpack = ''
|
propagatedBuildInputs = with python2Packages;
|
||||||
# the patch searches for plugins in directory ../plugins
|
[ pygobject3 pycairo mutagen pygtk gst-python feedparser faulthandler futures ]
|
||||||
# so link the appropriate directory there
|
++ optionals withDbusPython [ dbus-python ]
|
||||||
ln -sf quodlibet-plugins-${version} plugins
|
++ optionals withPyInotify [ pyinotify ]
|
||||||
'';
|
++ optionals withMusicBrainzNgs [ musicbrainzngs ]
|
||||||
|
++ optionals stdenv.isDarwin [ pyobjc ]
|
||||||
|
++ optionals withPahoMqtt [ paho-mqtt ];
|
||||||
|
|
||||||
patches = [ ./quodlibet-package-plugins.patch ];
|
makeWrapperArgs = optionals (kakasi != null) [ "--prefix PATH : ${kakasi}/bin" ];
|
||||||
|
|
||||||
buildInputs = stdenv.lib.optionals withGstPlugins [
|
|
||||||
gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
mutagen pygtk pygobject2 dbus-python gst-python intltool
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = stdenv.lib.optionalString withGstPlugins ''
|
|
||||||
# Wrap quodlibet so it finds the GStreamer plug-ins
|
|
||||||
wrapProgram "$out/bin/quodlibet" --prefix \
|
|
||||||
GST_PLUGIN_SYSTEM_PATH ":" "$GST_PLUGIN_SYSTEM_PATH" \
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
|
description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Quod Libet is a GTK+-based audio player written in Python, using
|
Quod Libet is a GTK+-based audio player written in Python, using
|
||||||
@ -74,7 +54,7 @@ in buildPythonApplication {
|
|||||||
& internet radio, and all major audio formats.
|
& internet radio, and all major audio formats.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.coroa ];
|
maintainers = with stdenv.lib.maintainers; [ coroa sauyon ];
|
||||||
homepage = https://quodlibet.readthedocs.io/en/latest/;
|
homepage = https://quodlibet.readthedocs.io/en/latest/;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
diff -Naur quodlibet-2.5.orig/setup.py quodlibet-2.5.new/setup.py
|
|
||||||
--- quodlibet-2.5.orig/setup.py 2012-12-19 08:47:41.000000000 +0000
|
|
||||||
+++ quodlibet-2.5.new/setup.py 2013-04-22 19:27:07.152631051 +0000
|
|
||||||
@@ -337,5 +338,14 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
+ else:
|
|
||||||
+ from os.path import join
|
|
||||||
+
|
|
||||||
+ data_files = []
|
|
||||||
+ for type in ["playorder", "songsmenu", "editing", "events", "gstreamer"]:
|
|
||||||
+ data_files.append((join('quodlibet', 'plugins', type),
|
|
||||||
+ glob.glob(join('..', 'plugins', type, '*.py'))))
|
|
||||||
+ setup_kwargs.update({ 'data_files': data_files });
|
|
||||||
+
|
|
||||||
setup(**setup_kwargs)
|
|
||||||
|
|
@ -3,18 +3,18 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "typora-${version}";
|
name = "typora-${version}";
|
||||||
version = "0.9.31";
|
version = "0.9.38";
|
||||||
|
|
||||||
src =
|
src =
|
||||||
if stdenv.system == "x86_64-linux" then
|
if stdenv.system == "x86_64-linux" then
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
|
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
|
||||||
sha256 = "786b5164d9c63ecc23eb427c5ff393285ce8fd540c5bfdd5c1464655fac87a42";
|
sha256 = "bf6a069c5da4a7dc289bdb3c8d27e7a81daeaee99488d4d3b512c6b673780557";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
|
url = "https://www.typora.io/linux/typora_${version}_i386.deb";
|
||||||
sha256 = "a8fe53f8984d9f8c4e06c14affbb616be58a91cd2b475b9681fb18a6e21930d1";
|
sha256 = "edd092e96ebf69503cf6b39b77a61ec5e3185f8a1447da0bed063fa11861c1b9";
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -57,8 +57,10 @@ stdenv.mkDerivation rec {
|
|||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
dpkg -x $src $out
|
dpkg -x $src $out
|
||||||
cp -av $out/usr/* $out
|
mv $out/usr/bin $out
|
||||||
|
mv $out/usr/share $out
|
||||||
rm $out/bin/typora
|
rm $out/bin/typora
|
||||||
|
rmdir $out/usr
|
||||||
|
|
||||||
# Otherwise it looks "suspicious"
|
# Otherwise it looks "suspicious"
|
||||||
chmod -R g-w $out
|
chmod -R g-w $out
|
||||||
@ -81,9 +83,8 @@ stdenv.mkDerivation rec {
|
|||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A minimal Markdown reading & writing app";
|
description = "A minimal Markdown reading & writing app";
|
||||||
homepage = https://typora.io;
|
homepage = https://typora.io;
|
||||||
license = licenses.free;
|
license = licenses.unfree;
|
||||||
maintainers = with stdenv.lib.maintainers; [ jensbin ];
|
maintainers = with maintainers; [ jensbin ];
|
||||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,8 @@ let
|
|||||||
else throw "ImageMagick is not supported on this platform.";
|
else throw "ImageMagick is not supported on this platform.";
|
||||||
|
|
||||||
cfg = {
|
cfg = {
|
||||||
version = "7.0.7-8";
|
version = "7.0.7-9";
|
||||||
sha256 = "0h2jbaxrxrmdcr5crf1d93sc60v4zfqrrl3w79md6h11wf57ksbp";
|
sha256 = "0p0879chcfrghcamwgxxcmaaj04xv0z91ris7hxi37qdw8c7836w";
|
||||||
patches = [];
|
patches = [];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -14,8 +14,8 @@ let
|
|||||||
else throw "ImageMagick is not supported on this platform.";
|
else throw "ImageMagick is not supported on this platform.";
|
||||||
|
|
||||||
cfg = {
|
cfg = {
|
||||||
version = "6.9.9-20";
|
version = "6.9.9-21";
|
||||||
sha256 = "1pz8clmhnq26vdsp1j21czq3nfbvrmfdz30k7na7w4vh7wqxsrx1";
|
sha256 = "0241g3c207rawn61bz8rc5gz55k5mi2b0n3zlwa0jv9xczlkd6a9";
|
||||||
patches = [];
|
patches = [];
|
||||||
}
|
}
|
||||||
# Freeze version on mingw so we don't need to port the patch too often.
|
# Freeze version on mingw so we don't need to port the patch too often.
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "krita-${version}";
|
name = "krita-${version}";
|
||||||
version = "3.2.1";
|
version = "3.3.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.kde.org/stable/krita/${version}/${name}.tar.gz";
|
url = https://download.kde.org/stable/krita/3.3.2/krita-3.3.2.1.tar.xz;
|
||||||
sha256 = "0fafy5ggplgq2rz85sqa42vmkzs2r9dq47qfrbnn2n6pfzkcw1pg";
|
sha256 = "0i3l27cfi1h486m74xf4ynk0pwx32xaqraa91a0g1bpj1jxf2mg5";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||||
|
33
pkgs/applications/misc/dump1090/default.nix
Normal file
33
pkgs/applications/misc/dump1090/default.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, pkgconfig, libusb, rtl-sdr }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "dump1090-${version}";
|
||||||
|
version = "2014-10-31";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MalcolmRobb";
|
||||||
|
repo = "dump1090";
|
||||||
|
rev = "bff92c4ad772a0a8d433f788d39dae97e00e4dbe";
|
||||||
|
sha256 = "06aaj9gpz5v4qzvnp8xf18wdfclp0jvn3hflls79ly46gz2dh9hy";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
buildInputs = [ libusb rtl-sdr ];
|
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$out" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/share
|
||||||
|
cp -v dump1090 $out/bin/dump1090
|
||||||
|
cp -vr public_html $out/share/dump1090
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A simple Mode S decoder for RTLSDR devices";
|
||||||
|
homepage = https://github.com/MalcolmRobb/dump1090;
|
||||||
|
license = licenses.bsd3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ earldouglas ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,11 +1,12 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchipfs }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "hello-2.10";
|
name = "hello-2.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchipfs {
|
||||||
url = "mirror://gnu/hello/${name}.tar.gz";
|
url = "https://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz";
|
||||||
sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
|
ipfs = "QmWyj65ak3wd8kG2EvPCXKd6Tij15m4SwJz6g2yG2rQ7w8";
|
||||||
|
sha256 = "1im1gglfm4k10bh4mdaqzmx3lm3kivnsmxrvl6vyvmfqqzljq75l";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
64
pkgs/applications/misc/hubstaff/default.nix
Normal file
64
pkgs/applications/misc/hubstaff/default.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{ stdenv, fetchurl, unzip, makeWrapper, libX11, zlib, libSM, libICE, libXext
|
||||||
|
, freetype, libXrender, fontconfig, libXft, libXinerama, libnotify, glib
|
||||||
|
, gtk3, libappindicator-gtk3, curl }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
version = "1.2.14-36df5e3";
|
||||||
|
|
||||||
|
rpath = stdenv.lib.makeLibraryPath
|
||||||
|
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
|
||||||
|
libXinerama stdenv.cc.cc.lib libnotify glib gtk3 libappindicator-gtk3
|
||||||
|
curl ];
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "hubstaff-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/${version}/Hubstaff-${version}.sh";
|
||||||
|
sha256 = "0yzhxk9zppj94llnf8naa6ca61f7c8jaj6b1m25zffnnz37m1sdb";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ unzip makeWrapper ];
|
||||||
|
|
||||||
|
unpackCmd = ''
|
||||||
|
# MojoSetups have a ZIP file at the end. ZIP’s magic string is
|
||||||
|
# most often PK\x03\x04. This *should* work for future updates,
|
||||||
|
# but feel free to come up with something more reasonable.
|
||||||
|
dataZipOffset=$(grep --max-count=1 --byte-offset --only-matching --text $'PK\x03\x04' $curSrc | cut -d: -f1)
|
||||||
|
dd bs=$dataZipOffset skip=1 if=$curSrc of=data.zip 2>/dev/null
|
||||||
|
unzip -q data.zip "data/*"
|
||||||
|
rm data.zip
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# TODO: handle 32-bit arch?
|
||||||
|
rm -r x86
|
||||||
|
|
||||||
|
opt=$out/opt/hubstaff
|
||||||
|
mkdir -p $out/bin $opt
|
||||||
|
cp -r . $opt/
|
||||||
|
|
||||||
|
prog=$opt/x86_64/HubstaffClient.bin.x86_64
|
||||||
|
|
||||||
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $prog
|
||||||
|
wrapProgram $prog --prefix LD_LIBRARY_PATH : ${rpath}
|
||||||
|
|
||||||
|
ln -s $prog $out/bin/HubstaffClient
|
||||||
|
|
||||||
|
# Why is this needed? SEGV otherwise.
|
||||||
|
ln -s $opt/data/resources $opt/x86_64/resources
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Time tracking software";
|
||||||
|
homepage = https://hubstaff.com/;
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
maintainers = [ maintainers.michalrus ];
|
||||||
|
};
|
||||||
|
}
|
52
pkgs/applications/misc/masterpdfeditor/default.nix
Normal file
52
pkgs/applications/misc/masterpdfeditor/default.nix
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{ stdenv, fetchurl, glibc, sane-backends, qtbase, qtsvg, libXext, libX11, libXdmcp, libXau, libxcb }:
|
||||||
|
let
|
||||||
|
version = "4.3.61";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "masterpdfeditor-${version}";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://get.code-industry.net/public/master-pdf-editor-${version}_qt5.amd64.tar.gz";
|
||||||
|
sha256 = "1g6mx8nch6ypf78h6xsb673wim19wn5ni5840armzg0pvi3sfknm";
|
||||||
|
};
|
||||||
|
libPath = stdenv.lib.makeLibraryPath [
|
||||||
|
stdenv.cc.cc
|
||||||
|
glibc
|
||||||
|
sane-backends
|
||||||
|
qtbase
|
||||||
|
qtsvg
|
||||||
|
libXext
|
||||||
|
libX11
|
||||||
|
libXdmcp
|
||||||
|
libXau
|
||||||
|
libxcb
|
||||||
|
];
|
||||||
|
dontStrip = true;
|
||||||
|
installPhase = ''
|
||||||
|
p=$out/opt/masterpdfeditor
|
||||||
|
mkdir -p $out/bin $p $out/share/applications $out/share/pixmaps
|
||||||
|
|
||||||
|
substituteInPlace masterpdfeditor4.desktop \
|
||||||
|
--replace 'Exec=/opt/master-pdf-editor-4' "Exec=$out/bin" \
|
||||||
|
--replace 'Path=/opt/master-pdf-editor-4' "Path=$out/bin" \
|
||||||
|
--replace 'Icon=/opt/master-pdf-editor-4' "Icon=$out/share/pixmaps"
|
||||||
|
cp -v masterpdfeditor4.png $out/share/pixmaps/
|
||||||
|
cp -v masterpdfeditor4.desktop $out/share/applications
|
||||||
|
|
||||||
|
cp -v masterpdfeditor4 $p/
|
||||||
|
ln -s $p/masterpdfeditor4 $out/bin/masterpdfeditor4
|
||||||
|
cp -v -r stamps templates lang fonts $p
|
||||||
|
|
||||||
|
install -D license.txt $out/share/$name/LICENSE
|
||||||
|
|
||||||
|
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath $libPath \
|
||||||
|
$p/masterpdfeditor4
|
||||||
|
'';
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Master PDF Editor";
|
||||||
|
homepage = "https://code-industry.net/free-pdf-editor/";
|
||||||
|
license = licenses.unfreeRedistributable;
|
||||||
|
platforms = with platforms; [ "x86_64-linux" ];
|
||||||
|
maintainers = with maintainers; [ cmcdragonkai flokli ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,64 +1,23 @@
|
|||||||
{
|
{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, makeWrapper, pkgconfig, qmake
|
||||||
stdenv,
|
, curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib
|
||||||
cmake, doxygen, pkgconfig, autoreconfHook,
|
, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit
|
||||||
curl,
|
|
||||||
fetchgit,
|
|
||||||
grantlee,
|
|
||||||
libgit2,
|
|
||||||
libusb,
|
|
||||||
libssh2,
|
|
||||||
libxml2,
|
|
||||||
libxslt,
|
|
||||||
libzip,
|
|
||||||
qtbase, qtconnectivity, qtquickcontrols, qtscript, qtsvg, qttools, qtwebkit,
|
|
||||||
sqlite
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.6.0";
|
version = "4.7.2";
|
||||||
|
|
||||||
libmarble = stdenv.mkDerivation rec {
|
|
||||||
name = "libmarble-ssrf-${version}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.subsurface-divelog.org/marble";
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
sha256 = "1dm2hdk6y36ls7pxbzkqmyc46hdy2cd5f6pkxa6nfrbhvk5f31zd";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ qtbase qtquickcontrols qtscript qtwebkit ];
|
|
||||||
nativeBuildInputs = [ doxygen pkgconfig cmake ];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DQTONLY=TRUE"
|
|
||||||
"-DQT5BUILD=ON"
|
|
||||||
"-DBUILD_MARBLE_TESTS=NO"
|
|
||||||
"-DWITH_DESIGNER_PLUGIN=NO"
|
|
||||||
"-DBUILD_MARBLE_APPS=NO"
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Qt library for a slippy map with patches from the Subsurface project";
|
|
||||||
homepage = http://subsurface-divelog.org;
|
|
||||||
license = licenses.lgpl21;
|
|
||||||
maintainers = with maintainers; [ mguentner ];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
libdc = stdenv.mkDerivation rec {
|
libdc = stdenv.mkDerivation rec {
|
||||||
name = "libdivecomputer-ssrf-${version}";
|
name = "libdivecomputer-ssrf-${version}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchurl {
|
||||||
url = "git://subsurface-divelog.org/libdc";
|
url = "https://subsurface-divelog.org/downloads/libdivecomputer-subsurface-branch-${version}.tgz";
|
||||||
rev = "refs/tags/v${version}";
|
sha256 = "04wadhhva1bfnwk0kl359kcv0f83mgym2fzs441spw5llcl7k52r";
|
||||||
sha256 = "0s82c8bvqph9c9chwzd76iwrw968w7lgjm3pj4hmad1jim67bs6n";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
|
|
||||||
|
buildInputs = [ zlib ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -70,31 +29,73 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
googlemaps = stdenv.mkDerivation rec {
|
||||||
|
name = "googlemaps-${version}";
|
||||||
|
|
||||||
|
version = "2017-09-17";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "vladest";
|
||||||
|
repo = "googlemaps";
|
||||||
|
rev = "1b857c02504dd52b1aa442418b8dcea78ced3f35";
|
||||||
|
sha256 = "14icmc925g4abwwdrldjc387aiyvcp3ia5z7mfh9qa09bv829a84";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ qmake ];
|
||||||
|
|
||||||
|
buildInputs = [ qtbase qtlocation ];
|
||||||
|
|
||||||
|
pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out $(dirname ${pluginsSubdir})
|
||||||
|
mv plugins ${pluginsSubdir}
|
||||||
|
mv lib $out/
|
||||||
|
'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
inherit (src.meta) homepage;
|
||||||
|
description = "QtLocation plugin for Google maps tile API";
|
||||||
|
maintainers = with maintainers; [ orivej ];
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "subsurface-${version}";
|
name = "subsurface-${version}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchurl {
|
||||||
url = "git://git.subsurface-divelog.org/subsurface";
|
url = "https://subsurface-divelog.org/downloads/Subsurface-${version}.tgz";
|
||||||
rev = "refs/tags/v${version}";
|
sha256 = "06f215xx1nc2q2qff2ihcl86fkrlnkvacl1swi3fw9iik6nq3bjp";
|
||||||
sha256 = "1rk5n52p6cnyjrgi7ybhmvh7y31zxrjny0mqpnc1wql69f90h94c";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libdc libmarble
|
libdc googlemaps
|
||||||
curl grantlee libgit2 libssh2 libusb libxml2 libxslt libzip
|
curl grantlee libgit2 libssh2 libusb libxml2 libxslt libzip
|
||||||
qtbase qtconnectivity qtsvg qttools qtwebkit
|
qtbase qtconnectivity qtsvg qttools qtwebkit
|
||||||
];
|
];
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
|
||||||
|
|
||||||
enableParallelBuilding = false; # subsurfacewebservices.h dependency on ui_webservices.h
|
nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DMARBLE_LIBRARIES=${libmarble}/lib/libssrfmarblewidget.so"
|
"-DLIBDC_FROM_PKGCONFIG=ON"
|
||||||
"-DNO_PRINTING=OFF"
|
"-DNO_PRINTING=OFF"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/subsurface \
|
||||||
|
--prefix QT_PLUGIN_PATH : "${googlemaps}/${googlemaps.pluginsSubdir}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
passthru = { inherit version libdc googlemaps; };
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Subsurface is an open source divelog program that runs on Windows, Mac and Linux";
|
description = "A divelog program";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix.
|
Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix.
|
||||||
It allows tracking of dive locations including GPS coordinates (which can also
|
It allows tracking of dive locations including GPS coordinates (which can also
|
||||||
|
@ -54,9 +54,12 @@ let
|
|||||||
|
|
||||||
inherit (generated) version sources;
|
inherit (generated) version sources;
|
||||||
|
|
||||||
arch = if stdenv.system == "i686-linux"
|
mozillaPlatforms = {
|
||||||
then "linux-i686"
|
"i686-linux" = "linux-i686";
|
||||||
else "linux-x86_64";
|
"x86_64-linux" = "linux-x86_64";
|
||||||
|
};
|
||||||
|
|
||||||
|
arch = mozillaPlatforms.${stdenv.system};
|
||||||
|
|
||||||
isPrefixOf = prefix: string:
|
isPrefixOf = prefix: string:
|
||||||
builtins.substring 0 (builtins.stringLength prefix) string == prefix;
|
builtins.substring 0 (builtins.stringLength prefix) string == prefix;
|
||||||
@ -185,7 +188,7 @@ stdenv.mkDerivation {
|
|||||||
free = false;
|
free = false;
|
||||||
url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
|
url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
|
||||||
};
|
};
|
||||||
platforms = platforms.linux;
|
platforms = builtins.attrNames mozillaPlatforms;
|
||||||
maintainers = with maintainers; [ garbas ];
|
maintainers = with maintainers; [ garbas ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -28,13 +28,14 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
in buildPythonApplication rec {
|
in buildPythonApplication rec {
|
||||||
name = "qutebrowser-${version}";
|
name = "qutebrowser-${version}${fix_postfix}";
|
||||||
version = "1.0.2";
|
fix_postfix = "-1";
|
||||||
|
version = "1.0.3";
|
||||||
namePrefix = "";
|
namePrefix = "";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/The-Compiler/qutebrowser/releases/download/v${version}/${name}.tar.gz";
|
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz";
|
||||||
sha256 = "093nmvl9x3ykrpmvnmx98g9npg4wmq0mmf7qzgbzmg93dnyq2cpk";
|
sha256 = "04d6hg2yf2wjwn0sd05bpx3zngnb93g7rizbdq17bbpmnwxchzap";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Needs tox
|
# Needs tox
|
||||||
|
30
pkgs/applications/networking/p2p/tixati/default.nix
Normal file
30
pkgs/applications/networking/p2p/tixati/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ stdenv, fetchurl, glib, zlib, dbus, dbus_glib, gtk2, gdk_pixbuf, cairo, pango }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "tixati-${version}";
|
||||||
|
version = "2.55";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
|
||||||
|
sha256 = "02mha6lfcb0mg0y977bxa6xg8krpbsbzpm4b5xw6y6wign4d8a8w";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath ${stdenv.lib.makeLibraryPath [ glib zlib dbus dbus_glib gtk2 gdk_pixbuf cairo pango ]} \
|
||||||
|
tixati
|
||||||
|
install -D tixati $out/bin/tixati
|
||||||
|
install -D tixati.desktop $out/share/applications/tixati.desktop
|
||||||
|
install -D tixati.png $out/share/icons/tixati.png
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Torrent client";
|
||||||
|
homepage = http://www.tixati.com;
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
maintainers = with maintainers; [ volth ];
|
||||||
|
};
|
||||||
|
}
|
@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
|
|||||||
maintainers = with maintainers; [ phreedom ebzzry ];
|
maintainers = with maintainers; [ phreedom ebzzry ];
|
||||||
inherit (kdelibs4.meta) platforms;
|
inherit (kdelibs4.meta) platforms;
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,42 +1,26 @@
|
|||||||
{ stdenv, pkgs, fetchurl, python3Packages, fetchFromGitHub, fetchzip, python3, beancount }:
|
{ stdenv, python3, beancount }:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
let
|
||||||
version = "1.3";
|
inherit (python3.pkgs) buildPythonApplication fetchPypi;
|
||||||
name = "fava-${version}";
|
in
|
||||||
|
buildPythonApplication rec {
|
||||||
|
pname = "fava";
|
||||||
|
version = "1.5";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchPypi {
|
||||||
owner = "beancount";
|
inherit pname version;
|
||||||
repo = "fava";
|
sha256 = "0d3jncidzvfsxjplzg4cmflqr4mxrbrlj5bh6fpxj529pialpkk6";
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "0g0aj0qcmpny6dipi00nks7h3mf5a4jfd6bxjm1rb5807wswcpg8";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
assets = fetchzip {
|
doCheck = false;
|
||||||
url = "https://github.com/beancount/fava/releases/download/v${version}/fava-${version}.tar.gz";
|
|
||||||
sha256 = "0yn2psbn436g1w5ixn94z8ca6dfd54izg98979arn0k7slpiccvz";
|
|
||||||
};
|
|
||||||
|
|
||||||
checkInputs = with python3Packages; [ pytest ];
|
propagatedBuildInputs = with python3.pkgs;
|
||||||
|
|
||||||
checkPhase = ''
|
|
||||||
# pyexcel is optional
|
|
||||||
# the other 2 tests fail due non-unicode locales
|
|
||||||
PATH=$out/bin:$PATH pytest tests \
|
|
||||||
--ignore tests/test_util_excel.py \
|
|
||||||
--ignore tests/test_cli.py \
|
|
||||||
--ignore tests/test_translations.py \
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
cp -r $assets/fava/static/gen $out/${python3.sitePackages}/fava/static
|
|
||||||
'';
|
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages;
|
|
||||||
[ flask dateutil pygments wheel markdown2 flaskbabel tornado
|
[ flask dateutil pygments wheel markdown2 flaskbabel tornado
|
||||||
click beancount ];
|
click beancount ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://github.com/aumayr/fava;
|
homepage = https://beancount.github.io/fava;
|
||||||
description = "Web interface for beancount";
|
description = "Web interface for beancount";
|
||||||
license = stdenv.lib.licenses.mit;
|
license = stdenv.lib.licenses.mit;
|
||||||
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
|
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, fetchFromGitHub, cln, gmp, swig, pkgconfig, readline, libantlr3c,
|
{ stdenv, fetchurl, cln, gmp, swig, pkgconfig
|
||||||
boost, jdk, autoreconfHook, python2, antlr3_4 }:
|
, readline, libantlr3c, boost, jdk, autoreconfHook
|
||||||
|
, python2, antlr3_4
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cvc4-unstable-${version}";
|
name = "cvc4-${version}";
|
||||||
version = "2017-05-18";
|
version = "1.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchurl {
|
||||||
owner = "CVC4";
|
url = "http://cvc4.cs.stanford.edu/downloads/builds/src/cvc4-${version}.tar.gz";
|
||||||
repo = "CVC4";
|
sha256 = "0yxxawgc9vd2cz883swjlm76rbdkj48n7a8dfppsami530y2rvhi";
|
||||||
rev = "d77107cc56b0a089364c3d1512813701c155ea93";
|
|
||||||
sha256 = "085bjrrm33rl5pwqx13af9sgni9cfbg70wag6lm08jj41ws411xs";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
"--with-readline"
|
"--with-readline"
|
||||||
"--with-boost=${boost.dev}"
|
"--with-boost=${boost.dev}"
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
patchShebangs ./src/
|
patchShebangs ./src/
|
||||||
'';
|
'';
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "symbiyosys-${version}";
|
name = "symbiyosys-${version}";
|
||||||
version = "2017.10.16";
|
version = "2017.11.05";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cliffordwolf";
|
owner = "cliffordwolf";
|
||||||
repo = "symbiyosys";
|
repo = "symbiyosys";
|
||||||
rev = "f403b99fae053baab651e3ec8345a68cb3ba6a96";
|
rev = "db9c7e97b8f84ef7e9b18ae630009897c7982a08";
|
||||||
sha256 = "0jzzlybxaqmhrasfjv3q3skshalr7lvv4p142qgdqz1ig36znbi8";
|
sha256 = "0pyznkjm0vjmaf6mpwknmh052qrwy2fzi05h80ysx1bxc51ns0m0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python3 yosys ];
|
buildInputs = [ python3 yosys ];
|
||||||
|
@ -2,38 +2,40 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yices-${version}";
|
name = "yices-${version}";
|
||||||
version = "2.5.3";
|
version = "2.5.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/SRI-CSL/yices2/archive/Yices-${version}.tar.gz";
|
url = "https://github.com/SRI-CSL/yices2/archive/Yices-${version}.tar.gz";
|
||||||
name = "${name}-src.tar.gz";
|
name = "${name}-src.tar.gz";
|
||||||
sha256 = "0a3zzbvmgyiljzqn6xmc037gismm779p696jywk09j2pqbvp52ac";
|
sha256 = "1k8wmlddi3zv5kgg6xbch3a0s0xqsmsfc7y6z8zrgcyhswl36h7p";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''patchShebangs tests/regress/check.sh'';
|
|
||||||
|
|
||||||
configureFlags = [ "--with-static-gmp=${gmp-static.out}/lib/libgmp.a"
|
|
||||||
"--with-static-gmp-include-dir=${gmp-static.dev}/include"
|
|
||||||
"--enable-mcsat"
|
|
||||||
];
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
buildInputs = [ gmp-static gperf libpoly ];
|
buildInputs = [ gmp-static gperf libpoly ];
|
||||||
|
configureFlags =
|
||||||
|
[ "--with-static-gmp=${gmp-static.out}/lib/libgmp.a"
|
||||||
|
"--with-static-gmp-include-dir=${gmp-static.dev}/include"
|
||||||
|
"--enable-mcsat"
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
|
# Usual shenanigans
|
||||||
|
patchPhase = ''patchShebangs tests/regress/check.sh'';
|
||||||
|
|
||||||
# Includes a fix for the embedded soname being libyices.so.2.5, but
|
# Includes a fix for the embedded soname being libyices.so.2.5, but
|
||||||
# only installing the libyices.so.2.5.1 file.
|
# only installing the libyices.so.2.5.x file.
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
make install LDCONFIG=true
|
make install LDCONFIG=true
|
||||||
(cd $out/lib && ln -s -f libyices.so.2.5.3 libyices.so.2.5)
|
(cd $out/lib && ln -s -f libyices.so.${version} libyices.so.2.5)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A high-performance theorem prover and SMT solver";
|
description = "A high-performance theorem prover and SMT solver";
|
||||||
homepage = "http://yices.csl.sri.com";
|
homepage = "http://yices.csl.sri.com";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = with platforms; linux ++ darwin;
|
||||||
maintainers = [ maintainers.thoughtpolice ];
|
maintainers = [ maintainers.thoughtpolice ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,42 +1,183 @@
|
|||||||
{ stdenv, fetchurl, m4, perl, gfortran, texlive, ffmpeg, tk, gnused_422
|
# TODO
|
||||||
, imagemagick, liblapack, python, openssl, libpng
|
# - consider writing a script to convert spkgs to nix packages, similar to vim
|
||||||
|
# or cabal2nix. This would allow a more efficient and "cleaner" build, greater
|
||||||
|
# flexibility and the possibility to select which dependencies to add and which
|
||||||
|
# to remove. It would also allow to use system packages for some dependencies
|
||||||
|
# and recompile others (optimized for the system) without recompiling everything.
|
||||||
|
# - add optdeps:
|
||||||
|
# - imagemagick
|
||||||
|
# - texlive full for documentation
|
||||||
|
# - ...
|
||||||
|
# - further seperate build outputs. Also maybe run `make doc`.
|
||||||
|
# Configure flags like --bindir and --libdir oculd also be used for that, see
|
||||||
|
# ./configure --help`.
|
||||||
|
|
||||||
|
# Other resources:
|
||||||
|
# - https://wiki.debian.org/DebianScience/Sage
|
||||||
|
# - https://github.com/cschwan/sage-on-gentoo
|
||||||
|
# - https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/sagemath
|
||||||
|
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, perl
|
||||||
|
, gfortran
|
||||||
|
, python
|
||||||
|
, autoreconfHook
|
||||||
|
, gettext
|
||||||
, which
|
, which
|
||||||
|
, texlive
|
||||||
|
, hevea
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "sage-6.8";
|
version = "8.0";
|
||||||
|
name = "sage-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://old.files.sagemath.org/src-old/${name}.tar.gz";
|
# Note that the source is *not* fetched from github, since that doesn't
|
||||||
sha256 = "102mrzzi215g1xn5zgcv501x9sghwg758jagx2jixvg1rj2jijj9";
|
# the upstream folder with all the source tarballs of the spkgs.
|
||||||
|
# If those are not present they are fetched at build time, which breaks
|
||||||
|
# when building in a sandbox (and probably only works if you install the
|
||||||
|
# latest sage version).
|
||||||
|
urls = [
|
||||||
|
"http://mirrors.mit.edu/sage/src/sage-${version}.tar.gz"
|
||||||
|
"ftp://ftp.fu-berlin.de/unix/misc/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://sagemath.polytechnic.edu.na/src/sage-${version}.tar.gz"
|
||||||
|
"ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/src/sage-${version}.tar.gz"
|
||||||
|
"http://sagemath.mirror.ac.za/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.leg.uct.ac.za/pub/packages/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirror.ufs.ac.za/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirrors-usa.go-parts.com/sage/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://www.cecm.sfu.ca/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://files.sagemath.org/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirrors.xmission.com/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://sagemath.c3sl.ufpr.br/src/sage-${version}.tar.gz"
|
||||||
|
"http://linorg.usp.br/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirror.hust.edu.cn/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.iitm.ac.in/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.kaist.ac.kr/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.riken.jp/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirrors.tuna.tsinghua.edu.cn/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirrors.ustc.edu.cn/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.tsukuba.wide.ad.jp/software/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirror.aarnet.edu.au/pub/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://sage.mirror.garr.it/mirrors/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://www.mirrorservice.org/sites/www.sagemath.org/src/sage-${version}.tar.gz"
|
||||||
|
"http://mirror.switch.ch/mirror/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"https://mirrors.up.pt/pub/sage/src/sage-${version}.tar.gz"
|
||||||
|
"http://www-ftp.lip6.fr/pub/math/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
"http://ftp.ntua.gr/pub/sagemath/src/sage-${version}.tar.gz"
|
||||||
|
];
|
||||||
|
sha256 = "1a9rhb8jby6fdqa2s7n2fl9jwqqlsl7qz7dbpbwvg6jwlrvni7fg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ m4 perl gfortran texlive.combined.scheme-basic ffmpeg gnused_422 tk imagemagick liblapack
|
postPatch = ''
|
||||||
python openssl libpng which ];
|
substituteAllInPlace src/bin/sage-env
|
||||||
|
'';
|
||||||
|
|
||||||
patches = [ ./spkg-singular.patch ./spkg-python.patch ./spkg-git.patch ];
|
installPhase = ''
|
||||||
|
# Sage installs during first `make`, `make install` is no-op and just takes time.
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
perl # needed for the build
|
||||||
|
python # needed for the build
|
||||||
|
gfortran # needed to build giac
|
||||||
|
autoreconfHook # needed to configure sage with prefix
|
||||||
|
gettext # needed to build the singular spkg
|
||||||
|
hevea # needed to build the docs of the giac spkg
|
||||||
|
which # needed in configure of mpir
|
||||||
|
# needed to build the docs of the giac spkg
|
||||||
|
(texlive.combine { inherit (texlive)
|
||||||
|
scheme-basic
|
||||||
|
collection-pstricks # needed by giac
|
||||||
|
times # font needed by giac
|
||||||
|
stmaryrd # needed by giac
|
||||||
|
babel-greek # optional for giac, otherwise throws a bunch of latex command not founds
|
||||||
|
;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# fix usages of /bin/rm
|
||||||
|
./spkg-singular.patch
|
||||||
|
# help python find the crypt library
|
||||||
|
./spkg-python2.patch
|
||||||
|
./spkg-python3.patch
|
||||||
|
# fix usages of /usr/bin/perl
|
||||||
|
./spkg-git.patch
|
||||||
|
# fix usages of /bin/cp and add necessary argument to function call
|
||||||
|
./spkg-giac.patch
|
||||||
|
# environment
|
||||||
|
./env.patch
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [
|
||||||
|
"format" # needed to build palp, for lines like `printf(ctime(&_NFL->TIME))`
|
||||||
|
# TODO could be patched with `sed s|printf(ctime(\(.*\)))|%s... or fixed upstream
|
||||||
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export SAGE_NUM_THREADS=$NIX_BUILD_CORES
|
export SAGE_NUM_THREADS=$NIX_BUILD_CORES
|
||||||
export SAGE_ATLAS_ARCH=fast
|
export SAGE_ATLAS_ARCH=fast
|
||||||
mkdir -p $out/sageHome
|
|
||||||
export HOME=$out/sageHome
|
export HOME=$out/sage-home
|
||||||
export CPPFLAGS="-P"
|
mkdir -p $out/sage-home
|
||||||
|
|
||||||
|
mkdir -p "$out"
|
||||||
|
|
||||||
|
# we need to keep the source around
|
||||||
|
dir="$PWD"
|
||||||
|
cd ..
|
||||||
|
mv "$dir" "$out/sage-root"
|
||||||
|
|
||||||
|
cd "$out/sage-root" # build in target dir, since `make` is also `make install`
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = "patchShebangs build";
|
# for reference: http://doc.sagemath.org/html/en/installation/source.html
|
||||||
|
preBuild = ''
|
||||||
|
# TODO do this conditionally
|
||||||
|
export SAGE_SPKG_INSTALL_DOCS='no'
|
||||||
|
patchShebangs build
|
||||||
|
'';
|
||||||
|
|
||||||
installPhase = ''DESTDIR=$out make install'';
|
postBuild = ''
|
||||||
|
rm -r "$out/sage-root/upstream" # don't keep the sources of all the spkgs
|
||||||
|
rm -r "$out/sage-root/src/build"
|
||||||
|
rm -rf "$out/sage-root/src/.git"
|
||||||
|
rm -r "$out/sage-root/logs"
|
||||||
|
# Fix dependency cycle between out and doc
|
||||||
|
rm -f "$out/sage-root/config.status"
|
||||||
|
rm -f "$out/sage-root/build/make/Makefile-auto"
|
||||||
|
rm -f "$out/sage-home/.sage/gap/libgap-workspace-"*
|
||||||
|
'';
|
||||||
|
|
||||||
|
# TODO there are some doctest failures, which seem harmless.
|
||||||
|
# We should figure out a way to fix the failures or ignore only those tests.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
checkTarget = "ptestalllong"; # all long tests in parallell
|
||||||
|
preCheck = ''
|
||||||
|
export SAGE_TIMEOUT=0 # no timeout
|
||||||
|
export SAGE_TIMEOUT_LONG=0 # no timeout
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://www.sagemath.org;
|
homepage = http://www.sagemath.org;
|
||||||
description = "A free open source mathematics software system";
|
description = "A free open source mathematics software system";
|
||||||
|
# taken from the homepage
|
||||||
|
longDescription = ''
|
||||||
|
SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers.
|
||||||
|
Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.
|
||||||
|
'';
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
broken = true;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ timokau ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
22
pkgs/applications/science/math/sage/env.patch
Normal file
22
pkgs/applications/science/math/sage/env.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/src/bin/sage-env b/src/bin/sage-env
|
||||||
|
index ead308f861..ed8db9f9b7 100644
|
||||||
|
--- a/src/bin/sage-env
|
||||||
|
+++ b/src/bin/sage-env
|
||||||
|
@@ -111,6 +111,8 @@ resolvelinks() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+SAGE_ROOT="@out@/sage-root"
|
||||||
|
+
|
||||||
|
# New value for SAGE_ROOT: either SAGE_ROOT (if given)
|
||||||
|
# or a guessed value based on pwd.
|
||||||
|
if [ -n "$SAGE_ROOT" ]; then
|
||||||
|
@@ -185,6 +187,8 @@ fi
|
||||||
|
export SAGE_ENV_SOURCED=$SAGE_ENV_VERSION
|
||||||
|
|
||||||
|
export SAGE_ROOT="$NEW_SAGE_ROOT"
|
||||||
|
+export SAGE_LOCAL='@out@/'
|
||||||
|
+export PYTHONPATH="@out@/lib/python2.7/site-packages:$PYTHONPATH"
|
||||||
|
|
||||||
|
|
||||||
|
# sage-env must know where the Sage's script files are.
|
11
pkgs/applications/science/math/sage/fetch-mirrors.sh
Executable file
11
pkgs/applications/science/math/sage/fetch-mirrors.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p curl go-pup
|
||||||
|
|
||||||
|
# Fetches a list of all available source mirrors from the sage homepage.
|
||||||
|
# Note that the list is sorted by country, but fetchurl doesn't offer an option
|
||||||
|
# to customize mirror preference.
|
||||||
|
|
||||||
|
curl -s http://www.sagemath.org/download-source.html \
|
||||||
|
| pup 'table#mirror' \
|
||||||
|
| pup 'a attr{href}' \
|
||||||
|
| sed -e 's/index\.html/sage-${version}.tar.gz/'
|
11
pkgs/applications/science/math/sage/spkg-giac.patch
Normal file
11
pkgs/applications/science/math/sage/spkg-giac.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- old/build/pkgs/giac/spkg-install 2017-07-21 14:10:00.000000000 -0500
|
||||||
|
+++ new/build/pkgs/giac/spkg-install 2017-10-15 15:55:55.321237645 -0500
|
||||||
|
@@ -4,6 +4,8 @@
|
||||||
|
## Giac
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
+find . -type f -exec sed -e 's@/bin/cp@cp@g' -i '{}' ';' && echo "Patching input parser" && find . -iname 'input_parser.cc'
|
||||||
|
+sed -e 's@yylex (&yylval)@yylex (\&yyval, scanner)@gp' -i 'src/src/input_parser.cc'
|
||||||
|
|
||||||
|
if [ "$SAGE_LOCAL" = "" ]; then
|
||||||
|
echo "SAGE_LOCAL undefined ... exiting";
|
@ -1,10 +1,12 @@
|
|||||||
--- old/build/pkgs/git/spkg-install 2015-07-26 15:34:43.000000000 +0200
|
diff --git a/build/pkgs/git/spkg-install b/build/pkgs/git/spkg-install
|
||||||
+++ new/build/pkgs/git/spkg-install 2015-09-17 08:28:03.586657451 +0200
|
index 8469cb58c2..d0dc9a1db9 100755
|
||||||
@@ -45,6 +45,8 @@
|
--- a/build/pkgs/git/spkg-install
|
||||||
fi
|
+++ b/build/pkgs/git/spkg-install
|
||||||
done
|
@@ -35,6 +35,8 @@ fi
|
||||||
|
|
||||||
+find . -exec sed -e 's@/usr/bin/perl@perl@g' -i '{}' ';'
|
cd src
|
||||||
|
|
||||||
|
+find . -type f -exec sed -e 's@/usr/bin/perl@perl@g' -i '{}' ';'
|
||||||
+
|
+
|
||||||
# We don't want to think about Fink or Macports
|
# We don't want to think about Fink or Macports
|
||||||
export NO_FINK=1
|
export NO_FINK=1
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- old/build/pkgs/python2/spkg-install 2015-07-26 15:34:43.000000000 +0200
|
|
||||||
+++ new/build/pkgs/python2/spkg-install 2015-09-16 20:48:51.904555797 +0200
|
|
||||||
@@ -32,7 +32,7 @@
|
|
||||||
done
|
|
||||||
|
|
||||||
# We are setting LDFLAGS so that we pick up Sage's readline
|
|
||||||
-LDFLAGS="-L$SAGE_LOCAL/lib $LDFLAGS"
|
|
||||||
+LDFLAGS="-L$SAGE_LOCAL/lib -lcrypt $LDFLAGS"
|
|
||||||
export LDFLAGS
|
|
||||||
|
|
||||||
if [ "$SAGE_DEBUG" = "yes" ]; then
|
|
12
pkgs/applications/science/math/sage/spkg-python2.patch
Normal file
12
pkgs/applications/science/math/sage/spkg-python2.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- old/build/pkgs/python2/spkg-install 2017-07-21 14:10:00.000000000 -0500
|
||||||
|
+++ new/build/pkgs/python2/spkg-install 2017-10-15 11:26:54.823134067 -0500
|
||||||
|
@@ -22,6 +22,9 @@
|
||||||
|
|
||||||
|
cd src
|
||||||
|
|
||||||
|
+LDFLAGS="-lcrypt $LDFLAGS"
|
||||||
|
+export LDFLAGS
|
||||||
|
+
|
||||||
|
if [ "$SAGE_DEBUG" = "yes" ]; then
|
||||||
|
echo "Building Python with pydebug"
|
||||||
|
PYTHON_CONFIGURE="$PYTHON_CONFIGURE --with-pydebug"
|
12
pkgs/applications/science/math/sage/spkg-python3.patch
Normal file
12
pkgs/applications/science/math/sage/spkg-python3.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- old/build/pkgs/python3/spkg-install 2017-07-21 14:10:00.000000000 -0500
|
||||||
|
+++ new/build/pkgs/python3/spkg-install 2017-10-15 13:11:17.769261404 -0500
|
||||||
|
@@ -22,6 +22,9 @@
|
||||||
|
|
||||||
|
cd src
|
||||||
|
|
||||||
|
+LDFLAGS="-lcrypt $LDFLAGS"
|
||||||
|
+export LDFLAGS
|
||||||
|
+
|
||||||
|
if [ "$SAGE_DEBUG" = "yes" ]; then
|
||||||
|
echo "Building Python with pydebug"
|
||||||
|
PYTHON_CONFIGURE="$PYTHON_CONFIGURE --with-pydebug"
|
@ -1,28 +1,12 @@
|
|||||||
--- old/build/pkgs/singular/spkg-install 2015-07-26 15:34:43.000000000 +0200
|
--- old/build/pkgs/singular/spkg-install 2017-10-15 10:35:41.826540964 -0500
|
||||||
+++ new/build/pkgs/singular/spkg-install 2015-09-15 20:42:51.716505855 +0200
|
+++ new/build/pkgs/singular/spkg-install 2017-10-15 10:36:40.613743443 -0500
|
||||||
@@ -115,6 +115,11 @@
|
@@ -4,6 +4,9 @@
|
||||||
done
|
## Singular
|
||||||
}
|
###########################################
|
||||||
|
|
||||||
+nix_nuke_bin_rm()
|
+find . -type f -exec sed -e 's@/bin/rm@rm@g' -i '{}' ';'
|
||||||
+{
|
+#echo '#!/usr/bin/env bash\nIgnoring missing $1' > src/build-aux/missing
|
||||||
+ find . -exec sed -e 's@/bin/rm@rm@g' -i '{}' ';'
|
|
||||||
+}
|
|
||||||
+
|
+
|
||||||
remove_old_version()
|
if [ -z "$SAGE_LOCAL" ]; then
|
||||||
{
|
echo >&2 "Error: SAGE_LOCAL undefined -- exiting..."
|
||||||
rm -f "$SAGE_LOCAL"/bin/Singular*
|
echo >&2 "Maybe run 'sage -sh'?"
|
||||||
@@ -306,11 +311,11 @@
|
|
||||||
|
|
||||||
|
|
||||||
# Actually run all the functions defined above
|
|
||||||
-for i in choose_patches apply_patches remove_old_version config \
|
|
||||||
+for i in choose_patches apply_patches nix_nuke_bin_rm remove_old_version config \
|
|
||||||
build_singular build_libsingular build_factory build_libfac \
|
|
||||||
create_singular_script install_docs ; do
|
|
||||||
echo "### Singular spkg-install: $i ###"
|
|
||||||
- cd "$SRC" && $i
|
|
||||||
+ cd "$SRC" && pwd && $i
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo >&2 "Error building Singular (error in $i)."
|
|
||||||
exit 1
|
|
||||||
|
87
pkgs/applications/video/lightworks/default.nix
Normal file
87
pkgs/applications/video/lightworks/default.nix
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
{ stdenv, fetchurl, dpkg, makeWrapper, patchelf, buildFHSUserEnv
|
||||||
|
, gtk3, gnome3, gdk_pixbuf, cairo, libjpeg_original, glib, gnome2, mesa_glu
|
||||||
|
, nvidia_cg_toolkit, zlib, openssl, portaudio
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
fullPath = stdenv.lib.makeLibraryPath [
|
||||||
|
stdenv.cc.cc
|
||||||
|
gnome3.gtk
|
||||||
|
gdk_pixbuf
|
||||||
|
cairo
|
||||||
|
libjpeg_original
|
||||||
|
glib
|
||||||
|
gnome2.pango
|
||||||
|
mesa_glu
|
||||||
|
nvidia_cg_toolkit
|
||||||
|
zlib
|
||||||
|
openssl
|
||||||
|
portaudio
|
||||||
|
];
|
||||||
|
|
||||||
|
lightworks = stdenv.mkDerivation rec {
|
||||||
|
version = "14.0.0";
|
||||||
|
name = "lightworks-${version}";
|
||||||
|
|
||||||
|
src =
|
||||||
|
if stdenv.system == "x86_64-linux" then
|
||||||
|
fetchurl {
|
||||||
|
url = "http://downloads.lwks.com/v14/lwks-14.0.0-amd64.deb";
|
||||||
|
sha256 = "66eb9f9678d979db76199f1c99a71df0ddc017bb47dfda976b508849ab305033";
|
||||||
|
}
|
||||||
|
else throw "${name} is not supported on ${stdenv.system}";
|
||||||
|
|
||||||
|
buildInputs = [ dpkg makeWrapper ];
|
||||||
|
|
||||||
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
unpackPhase = "dpkg-deb -x ${src} ./";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
substitute usr/bin/lightworks $out/bin/lightworks \
|
||||||
|
--replace "/usr/lib/lightworks" "$out/lib/lightworks"
|
||||||
|
chmod +x $out/bin/lightworks
|
||||||
|
|
||||||
|
cp -r usr/lib $out
|
||||||
|
|
||||||
|
# /usr/share/fonts is not normally searched
|
||||||
|
# This adds it to lightworks' search path while keeping the default
|
||||||
|
# using the FONTCONFIG_FILE env variable
|
||||||
|
echo "<?xml version='1.0'?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
||||||
|
<fontconfig>
|
||||||
|
<dir>/usr/share/fonts/truetype</dir>
|
||||||
|
<include>/etc/fonts/fonts.conf</include>
|
||||||
|
</fontconfig>" > $out/lib/lightworks/fonts.conf
|
||||||
|
|
||||||
|
patchelf \
|
||||||
|
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
$out/lib/lightworks/ntcardvt
|
||||||
|
|
||||||
|
wrapProgram $out/lib/lightworks/ntcardvt \
|
||||||
|
--prefix LD_LIBRARY_PATH : ${fullPath}:$out/lib/lightworks \
|
||||||
|
--set FONTCONFIG_FILE $out/lib/lightworks/fonts.conf
|
||||||
|
|
||||||
|
cp -r usr/share $out/share
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Professional Non-Linear Video Editor";
|
||||||
|
homepage = "https://www.lwks.com/";
|
||||||
|
license = stdenv.lib.licenses.unfree;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.antonxy ];
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Lightworks expects some files in /usr/share/lightworks
|
||||||
|
in buildFHSUserEnv rec {
|
||||||
|
name = "lightworks";
|
||||||
|
|
||||||
|
targetPkgs = pkgs: [
|
||||||
|
lightworks
|
||||||
|
];
|
||||||
|
|
||||||
|
runScript = "lightworks";
|
||||||
|
}
|
@ -10,13 +10,13 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "mkvtoolnix-${version}";
|
name = "mkvtoolnix-${version}";
|
||||||
version = "16.0.0";
|
version = "17.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mbunkus";
|
owner = "mbunkus";
|
||||||
repo = "mkvtoolnix";
|
repo = "mkvtoolnix";
|
||||||
rev = "release-${version}";
|
rev = "release-${version}";
|
||||||
sha256 = "0zdmjp0f7sh0bkaj0ls4sy4sg9qdq9ycrl18hlkafnj9xnbijgnn";
|
sha256 = "1v74rxf9wm0sn2illy0hp36hpwz7q04y0k32wq6wn7qrnzkzcc88";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ];
|
nativeBuildInputs = [ pkgconfig autoconf automake gettext drake ruby docbook_xsl libxslt ];
|
||||||
|
87
pkgs/build-support/fetchipfs/builder.sh
Normal file
87
pkgs/build-support/fetchipfs/builder.sh
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
source $stdenv/setup
|
||||||
|
|
||||||
|
# Curl flags to handle redirects, not use EPSV, handle cookies for
|
||||||
|
# servers to need them during redirects, and work on SSL without a
|
||||||
|
# certificate (this isn't a security problem because we check the
|
||||||
|
# cryptographic hash of the output anyway).
|
||||||
|
|
||||||
|
set -o noglob
|
||||||
|
|
||||||
|
curl="curl \
|
||||||
|
--location \
|
||||||
|
--max-redirs 20 \
|
||||||
|
--retry 2 \
|
||||||
|
--disable-epsv \
|
||||||
|
--cookie-jar cookies \
|
||||||
|
--insecure \
|
||||||
|
--speed-time 5 \
|
||||||
|
-# \
|
||||||
|
--fail \
|
||||||
|
$curlOpts \
|
||||||
|
$NIX_CURL_FLAGS"
|
||||||
|
|
||||||
|
finish() {
|
||||||
|
runHook postFetch
|
||||||
|
set +o noglob
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
ipfs_add() {
|
||||||
|
if curl --retry 0 --head --silent "localhost:5001" > /dev/null; then
|
||||||
|
echo "[0m[01;36m=IPFS=[0m add $ipfs"
|
||||||
|
tar --owner=root --group=root -cWf "source.tar" $(echo *)
|
||||||
|
res=$(curl -# -F "file=@source.tar" "localhost:5001/api/v0/tar/add" | sed 's/.*"Hash":"\(.*\)".*/\1/')
|
||||||
|
if [ $ipfs != $res ]; then
|
||||||
|
echo "\`ipfs tar add' results in $res when $ipfs is expected"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm "source.tar"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
mkdir download
|
||||||
|
cd download
|
||||||
|
|
||||||
|
if curl --retry 0 --head --silent "localhost:5001" > /dev/null; then
|
||||||
|
curlexit=18;
|
||||||
|
echo "[0m[01;36m=IPFS=[0m get $ipfs"
|
||||||
|
# if we get error code 18, resume partial download
|
||||||
|
while [ $curlexit -eq 18 ]; do
|
||||||
|
# keep this inside an if statement, since on failure it doesn't abort the script
|
||||||
|
if $curl -C - "http://localhost:5001/api/v0/tar/cat?arg=$ipfs" --output "$ipfs.tar"; then
|
||||||
|
unpackFile "$ipfs.tar"
|
||||||
|
rm "$ipfs.tar"
|
||||||
|
set +o noglob
|
||||||
|
mv $(echo *) "$out"
|
||||||
|
finish
|
||||||
|
else
|
||||||
|
curlexit=$?;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$url"; then
|
||||||
|
curlexit=18;
|
||||||
|
echo "Downloading $url"
|
||||||
|
while [ $curlexit -eq 18 ]; do
|
||||||
|
# keep this inside an if statement, since on failure it doesn't abort the script
|
||||||
|
if $curl "$url" -O; then
|
||||||
|
set +o noglob
|
||||||
|
tmpfile=$(echo *)
|
||||||
|
unpackFile $tmpfile
|
||||||
|
rm $tmpfile
|
||||||
|
ipfs_add
|
||||||
|
mv $(echo *) "$out"
|
||||||
|
finish
|
||||||
|
else
|
||||||
|
curlexit=$?;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[01;31merror:[0m cannot download $ipfs from ipfs or the given url"
|
||||||
|
echo
|
||||||
|
set +o noglob
|
||||||
|
exit 1
|
52
pkgs/build-support/fetchipfs/default.nix
Normal file
52
pkgs/build-support/fetchipfs/default.nix
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{ stdenv
|
||||||
|
, curl
|
||||||
|
}:
|
||||||
|
|
||||||
|
{ ipfs
|
||||||
|
, url ? ""
|
||||||
|
, curlOpts ? ""
|
||||||
|
, outputHash ? ""
|
||||||
|
, outputHashAlgo ? ""
|
||||||
|
, md5 ? ""
|
||||||
|
, sha1 ? ""
|
||||||
|
, sha256 ? ""
|
||||||
|
, sha512 ? ""
|
||||||
|
, meta ? {}
|
||||||
|
, port ? "8080"
|
||||||
|
, postFetch ? ""
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert sha512 != "" -> builtins.compareVersions "1.11" builtins.nixVersion <= 0;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
hasHash = (outputHash != "" && outputHashAlgo != "")
|
||||||
|
|| md5 != "" || sha1 != "" || sha256 != "" || sha512 != "";
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
if (!hasHash) then throw "Specify sha for fetchipfs fixed-output derivation" else stdenv.mkDerivation {
|
||||||
|
name = ipfs;
|
||||||
|
builder = ./builder.sh;
|
||||||
|
buildInputs = [ curl ];
|
||||||
|
|
||||||
|
# New-style output content requirements.
|
||||||
|
outputHashAlgo = if outputHashAlgo != "" then outputHashAlgo else
|
||||||
|
if sha512 != "" then "sha512" else if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5";
|
||||||
|
outputHash = if outputHash != "" then outputHash else
|
||||||
|
if sha512 != "" then sha512 else if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5;
|
||||||
|
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
|
||||||
|
inherit curlOpts
|
||||||
|
postFetch
|
||||||
|
ipfs
|
||||||
|
url
|
||||||
|
port;
|
||||||
|
|
||||||
|
# Doing the download on a remote machine just duplicates network
|
||||||
|
# traffic, so don't do that.
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
|
inherit meta;
|
||||||
|
}
|
@ -12,21 +12,18 @@
|
|||||||
# `contents = {object = ...; symlink = /init;}' is a typical
|
# `contents = {object = ...; symlink = /init;}' is a typical
|
||||||
# argument.
|
# argument.
|
||||||
|
|
||||||
{ stdenv, perl, cpio, contents, ubootChooser, compressor, prepend
|
{ stdenv, perl, cpio, contents, compressor, prepend, ubootTools
|
||||||
, hostPlatform
|
, hostPlatform
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
inputsFun = ubootName : [ perl cpio ]
|
|
||||||
++ stdenv.lib.optional (ubootName != null) [ (ubootChooser ubootName) ];
|
|
||||||
makeUInitrdFun = ubootName : (ubootName != null);
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "initrd";
|
name = "initrd";
|
||||||
builder = ./make-initrd.sh;
|
builder = ./make-initrd.sh;
|
||||||
nativeBuildInputs = inputsFun hostPlatform.platform.uboot;
|
|
||||||
|
|
||||||
makeUInitrd = makeUInitrdFun hostPlatform.platform.uboot;
|
makeUInitrd = hostPlatform.platform.kernelTarget == "uImage";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ perl cpio ]
|
||||||
|
++ stdenv.lib.optional makeUInitrd ubootTools;
|
||||||
|
|
||||||
# !!! should use XML.
|
# !!! should use XML.
|
||||||
objects = map (x: x.object) contents;
|
objects = map (x: x.object) contents;
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
src-spec ?
|
src-spec ?
|
||||||
{ owner = "commercialhaskell";
|
{ owner = "commercialhaskell";
|
||||||
repo = "all-cabal-hashes";
|
repo = "all-cabal-hashes";
|
||||||
rev = "901c2522e6797270f5ded4495b1a529e6c16ef45";
|
rev = "5e87c40f2cd96bd5dd953758e82f302107c7895e";
|
||||||
sha256 = "05jmwsgrk77nz9vvgfbpsps0l320qgjpkr2c9zhkn9sc3d275lfb";
|
sha256 = "12rw5fld64s0a2zjsdijfs0dv6vc6z7gcf24h4m2dmymzms4namg";
|
||||||
}
|
}
|
||||||
, lib
|
, lib
|
||||||
}:
|
}:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, intltool, fetchurl, python
|
{ stdenv, intltool, fetchurl, python, autoreconfHook
|
||||||
, pkgconfig, gtk3, glib
|
, pkgconfig, gtk3, glib
|
||||||
, makeWrapper, itstool, libxml2, docbook_xsl
|
, makeWrapper, itstool, libxml2, docbook_xsl
|
||||||
, gnome3, librsvg, gdk_pixbuf, libxslt }:
|
, gnome3, librsvg, gdk_pixbuf, libxslt }:
|
||||||
@ -8,13 +8,25 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [
|
||||||
buildInputs = [ gtk3 glib intltool itstool libxml2 python
|
pkgconfig intltool itstool makeWrapper docbook_xsl libxslt
|
||||||
gnome3.gsettings_desktop_schemas makeWrapper docbook_xsl
|
# reconfiguration
|
||||||
gdk_pixbuf gnome3.defaultIconTheme librsvg libxslt ];
|
autoreconfHook gnome3.gnome_common gnome3.yelp_tools
|
||||||
|
];
|
||||||
|
buildInputs = [ gtk3 glib libxml2 python
|
||||||
|
gnome3.gsettings_desktop_schemas
|
||||||
|
gdk_pixbuf gnome3.defaultIconTheme librsvg ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=782161
|
||||||
|
(fetchurl {
|
||||||
|
url = https://bugzilla.gnome.org/attachment.cgi?id=351054;
|
||||||
|
sha256 = "093wjjj40027pkqqnm14jb2dp2i2m8p1bayqx1lw18pq66c8fahn";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapProgram "$out/bin/glade" \
|
wrapProgram "$out/bin/glade" \
|
||||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool
|
{ stdenv, fetchurl, meson, ninja, glib, pkgconfig, gnome3, appstream-glib, gettext }:
|
||||||
, gobjectIntrospection, makeWrapper }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "nautilus-sendto-${version}";
|
name = "nautilus-sendto-${version}";
|
||||||
|
|
||||||
version = "3.8.1";
|
version = "3.8.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/nautilus-sendto/3.8/${name}.tar.xz";
|
url = "mirror://gnome/sources/nautilus-sendto/3.8/${name}.tar.xz";
|
||||||
sha256 = "03fa46bff271acdbdedab6243b2a84e5ed3daa19c81b69d087b3e852c8fe5dab";
|
sha256 = "164d7c6e8bae29c4579bcc67a7bf50d783662b1545b62f3008e7ea3c0410e04d";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ meson ninja pkgconfig appstream-glib gettext ];
|
||||||
buildInputs = [ glib gobjectIntrospection intltool makeWrapper ];
|
buildInputs = [ glib ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Integrates Evolution and Pidgin into the Nautilus file manager";
|
description = "Integrates Evolution and Pidgin into the Nautilus file manager";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, vala_0_32, libxslt, pkgconfig, glib, dbus_glib, gnome3
|
{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
|
||||||
, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
|
, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -15,9 +15,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
outputs = [ "out" "lib" "dev" ];
|
outputs = [ "out" "lib" "dev" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ vala pkgconfig intltool libxslt libxml2 docbook_xsl docbook_xsl_ns makeWrapper ];
|
||||||
buildInputs = [ vala_0_32 libxslt glib dbus_glib gnome3.gtk libxml2
|
buildInputs = [ glib dbus_glib ];
|
||||||
intltool docbook_xsl docbook_xsl_ns makeWrapper ];
|
|
||||||
|
|
||||||
postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
|
postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
substituteInPlace client/Makefile \
|
substituteInPlace client/Makefile \
|
||||||
|
@ -8,11 +8,11 @@ let
|
|||||||
majorVersion = "0.11";
|
majorVersion = "0.11";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "folks-${majorVersion}.3";
|
name = "folks-${majorVersion}.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/folks/${majorVersion}/${name}.tar.xz";
|
url = "mirror://gnome/sources/folks/${majorVersion}/${name}.tar.xz";
|
||||||
sha256 = "2a2828a7c87fd39e5786f8f2cf0ebe47576a74974f1355c478a6dc747d7bcb64";
|
sha256 = "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
|
propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
major = "0.3";
|
major = "0.3";
|
||||||
minor = "3";
|
minor = "5";
|
||||||
name = "grilo-plugins-${major}.${minor}";
|
name = "grilo-plugins-${major}.${minor}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/grilo-plugins/${major}/${name}.tar.xz";
|
url = "mirror://gnome/sources/grilo-plugins/${major}/${name}.tar.xz";
|
||||||
sha256 = "fe66e887847fef9c361bcb7226047c43b2bc22b172aaf22afd5534947cc85b9c";
|
sha256 = "1yv8a0mfd5qmdbdrnd0is5c51s1mvibhw61na99iagnbirxq4xr9";
|
||||||
};
|
};
|
||||||
|
|
||||||
installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-${major}" ];
|
installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-${major}" ];
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
major = "0.3"; # if you change this, also change ./setup-hook.sh
|
major = "0.3"; # if you change this, also change ./setup-hook.sh
|
||||||
minor = "3";
|
minor = "4";
|
||||||
name = "grilo-${major}.${minor}";
|
name = "grilo-${major}.${minor}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/grilo/${major}/${name}.tar.xz";
|
url = "mirror://gnome/sources/grilo/${major}/${name}.tar.xz";
|
||||||
sha256 = "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw";
|
sha256 = "0vh67gja6yn7czh77ssmx6ncp99fl2926pbi2hplqms27c2n8sbw";
|
||||||
};
|
};
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
@ -5,11 +5,11 @@ let
|
|||||||
majorVersion = "0.17";
|
majorVersion = "0.17";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libgdata-${majorVersion}.6";
|
name = "libgdata-${majorVersion}.9";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz";
|
url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz";
|
||||||
sha256 = "8b6a3ff1db23bd9e5ebbcc958b29b769a898f892eed4798222d562ba69df30b0";
|
sha256 = "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45";
|
||||||
};
|
};
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup.dev}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1";
|
NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup.dev}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1";
|
||||||
|
@ -1,20 +1,23 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, glib, cairo, libarchive, freetype, libjpeg, libtiff
|
{ stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobjectIntrospection, cairo
|
||||||
, openssl, bzip2, acl, attr, libxml2
|
, libarchive, freetype, libjpeg, libtiff
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libgxps-0.2.2";
|
name = "libgxps-0.3.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
|
url = "mirror://gnome/sources/libgxps/0.3/${name}.tar.xz";
|
||||||
sha256 = "1gi0b0x0354jyqc48vspk2hg2q1403cf2p9ibj847nzhkdrh9l9r";
|
sha256 = "412b1343bd31fee41f7204c47514d34c563ae34dafa4cc710897366bd6cd0fae";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ meson ninja pkgconfig gobjectIntrospection ];
|
||||||
buildInputs = [ glib cairo freetype libjpeg libtiff acl openssl bzip2 attr libxml2 ];
|
buildInputs = [ glib cairo freetype libjpeg libtiff ];
|
||||||
propagatedBuildInputs = [ libarchive ];
|
propagatedBuildInputs = [ libarchive ];
|
||||||
|
|
||||||
configureFlags = "--without-liblcms2";
|
mesonFlags = [
|
||||||
|
"-Denable-test=false"
|
||||||
|
"-Dwith-liblcms2=false"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Autogenerated by maintainers/scripts/gnome.sh update
|
# Autogenerated by maintainers/scripts/gnome.sh update
|
||||||
|
|
||||||
fetchurl: rec {
|
fetchurl: rec {
|
||||||
major = "1.18";
|
major = "1.22";
|
||||||
minor = "0";
|
minor = "0";
|
||||||
version = "${major}.${minor}";
|
version = "${major}.${minor}";
|
||||||
name = "libpeas-${version}";
|
name = "libpeas-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/libpeas/${major}/${name}.tar.xz";
|
url = "mirror://gnome/sources/libpeas/${major}/${name}.tar.xz";
|
||||||
sha256 = "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz";
|
sha256 = "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ glib intltool json_glib rest libsoup gtk gnome_online_accounts ];
|
buildInputs = [ glib intltool json_glib rest libsoup gtk gnome_online_accounts ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
description = "GObject wrapper for the SkyDrive and Hotmail REST APIs";
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
|
{ fetchurl, fetchpatch, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
|
||||||
, pango, cogl, clutter, libstartup_notification, libcanberra_gtk2, zenity, libcanberra_gtk3
|
, pango, cogl, clutter, libstartup_notification, libcanberra_gtk2, zenity, libcanberra_gtk3
|
||||||
, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libudev, libinput
|
, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libudev, libinput
|
||||||
, libgudev, xwayland }:
|
, libgudev, libwacom, xwayland, autoreconfHook }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
inherit (import ./src.nix fetchurl) name src;
|
inherit (import ./src.nix fetchurl) name src;
|
||||||
@ -9,29 +9,46 @@ stdenv.mkDerivation rec {
|
|||||||
# fatal error: gio/gunixfdlist.h: No such file or directory
|
# fatal error: gio/gunixfdlist.h: No such file or directory
|
||||||
NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0 -Wno-error=format -Wno-error=sign-compare";
|
NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0 -Wno-error=format -Wno-error=sign-compare";
|
||||||
|
|
||||||
configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra --with-xwayland-path=${xwayland}/bin/Xwayland";
|
configureFlags = [
|
||||||
|
"--with-x"
|
||||||
|
"--disable-static"
|
||||||
|
"--enable-shape"
|
||||||
|
"--enable-sm"
|
||||||
|
"--enable-startup-notification"
|
||||||
|
"--enable-xsync"
|
||||||
|
"--enable-verbose-mode"
|
||||||
|
"--with-libcanberra"
|
||||||
|
"--with-xwayland-path=${xwayland}/bin/Xwayland"
|
||||||
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
# required for pkgconfig to detect mutter-clutter
|
# required for pkgconfig to detect mutter-clutter
|
||||||
libXtst
|
libXtst
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook pkgconfig intltool libtool makeWrapper ];
|
||||||
|
|
||||||
buildInputs = with gnome3;
|
buildInputs = with gnome3;
|
||||||
[ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower
|
[ glib gobjectIntrospection gtk gsettings_desktop_schemas upower
|
||||||
gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra_gtk2
|
gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra_gtk2
|
||||||
gnome3.geocode_glib libudev libinput libgudev
|
gnome3.geocode_glib libudev libinput libgudev libwacom
|
||||||
libcanberra_gtk3 zenity libtool makeWrapper xkeyboard_config libxkbfile
|
libcanberra_gtk3 zenity xkeyboard_config libxkbfile
|
||||||
libxkbcommon ];
|
libxkbcommon ];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=760670
|
||||||
|
(fetchpatch {
|
||||||
|
name = "libgudev-232.patch";
|
||||||
|
url = https://bugzilla.gnome.org/attachment.cgi?id=358904;
|
||||||
|
sha256 = "0chvd7g9f2zp3a0gdhvinsfvp2h10rwb6a8ja386vsrl93ac8pix";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapProgram "$out/bin/mutter" \
|
wrapProgram "$out/bin/mutter" \
|
||||||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
|
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patches = [
|
|
||||||
./x86.patch # ./math.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
--- mutter-3.18.0/src/backends/meta-cursor-renderer.c.orig 2015-09-23 13:54:31.297523343 +0200
|
|
||||||
+++ mutter-3.18.0/src/backends/meta-cursor-renderer.c 2015-09-23 13:54:43.728271766 +0200
|
|
||||||
@@ -31,6 +31,7 @@
|
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
+#include <math.h>
|
|
||||||
|
|
||||||
#include "meta-stage.h"
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
|||||||
--- a/src/core/window.c 2015-05-26 10:52:41.382834963 +0200
|
|
||||||
+++ b/src/core/window.c 2015-05-26 10:53:03.039948034 +0200
|
|
||||||
@@ -3499,7 +3499,7 @@
|
|
||||||
|
|
||||||
static MetaMonitorInfo *
|
|
||||||
find_monitor_by_winsys_id (MetaWindow *window,
|
|
||||||
- guint winsys_id)
|
|
||||||
+ gint winsys_id)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
@@ -3618,7 +3618,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
gboolean did_placement;
|
|
||||||
- guint old_output_winsys_id;
|
|
||||||
+ gint old_output_winsys_id;
|
|
||||||
MetaRectangle unconstrained_rect;
|
|
||||||
MetaRectangle constrained_rect;
|
|
||||||
MetaMoveResizeResultFlags result = 0;
|
|
@ -1,15 +1,10 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }:
|
{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "totem-pl-parser-3.10.2";
|
inherit (import ./src.nix fetchurl) name src;
|
||||||
|
|
||||||
src = fetchurl {
|
nativeBuildInputs = [ pkgconfig file intltool ];
|
||||||
url = "mirror://gnome/sources/totem-pl-parser/3.10/${name}.tar.xz";
|
buildInputs = [ gmime libxml2 libsoup ];
|
||||||
sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
|
||||||
buildInputs = [ file intltool gmime libxml2 libsoup ];
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://wiki.gnome.org/Apps/Videos;
|
homepage = https://wiki.gnome.org/Apps/Videos;
|
||||||
|
10
pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
Normal file
10
pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Autogenerated by maintainers/scripts/gnome.sh update
|
||||||
|
|
||||||
|
fetchurl: {
|
||||||
|
name = "totem-pl-parser-3.10.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = mirror://gnome/sources/totem-pl-parser/3.10/totem-pl-parser-3.10.2.tar.xz;
|
||||||
|
sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469";
|
||||||
|
};
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
# Autogenerated by maintainers/scripts/gnome.sh update
|
# Autogenerated by maintainers/scripts/gnome.sh update
|
||||||
|
|
||||||
fetchurl: {
|
fetchurl: {
|
||||||
name = "vte-0.48.3";
|
name = "vte-0.50.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://gnome/sources/vte/0.48/vte-0.48.3.tar.xz;
|
url = mirror://gnome/sources/vte/0.50/vte-0.50.1.tar.xz;
|
||||||
sha256 = "a3a9fb182740b392a45cd3f46fa61a985f68bb6b1817b52daec22034c46158c3";
|
sha256 = "cf1708e3e573160e1db107014b3ef70888fefe6b668373fed70e8d1cac45a8c2";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "arachne-pnr-${version}";
|
name = "arachne-pnr-${version}";
|
||||||
version = "2017.06.29";
|
version = "2017.11.05";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cseed";
|
owner = "cseed";
|
||||||
repo = "arachne-pnr";
|
repo = "arachne-pnr";
|
||||||
rev = "7e135edb31feacde85ec5b7e5c03fc9157080977";
|
rev = "1e81432830c75c505c76e419619f605a6c4c7583";
|
||||||
sha256 = "1wszcx6hgw4q4r778zswrlwdwvwxq834bkajck8w9yfqwxs9lmq8";
|
sha256 = "0lzblmi1klbsmd32h8nh027npm1z1a199lng13lcrqwr17lhb7my";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchurl, fetchFromGitHub, glib, glibc, git,
|
{ stdenv, fetchurl, fetchFromGitHub, glib, glibc, git,
|
||||||
rlwrap, curl, pkgconfig, perl, makeWrapper, tzdata, ncurses,
|
rlwrap, curl, pkgconfig, perl, makeWrapper, tzdata, ncurses,
|
||||||
libX11, pango, cairo, gtk2, gdk_pixbuf, gtkglext,
|
libX11, pango, cairo, gtk2, gdk_pixbuf, gtkglext,
|
||||||
mesa, libXmu, libXt, libICE, libSM }:
|
mesa_glu, libXmu, libXt, libICE, libSM }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "factor-lang-${version}";
|
name = "factor-lang-${version}";
|
||||||
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ git rlwrap curl perl makeWrapper
|
buildInputs = [ git rlwrap curl perl makeWrapper
|
||||||
libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
||||||
mesa libXmu libXt libICE libSM ];
|
mesa_glu libXmu libXt libICE libSM ];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
make $(bash ./build-support/factor.sh make-target) GIT_LABEL=heads/master-${rev}
|
make $(bash ./build-support/factor.sh make-target) GIT_LABEL=heads/master-${rev}
|
||||||
@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
|
|||||||
# to be a generic solution here.
|
# to be a generic solution here.
|
||||||
find $(echo ${stdenv.lib.makeLibraryPath [
|
find $(echo ${stdenv.lib.makeLibraryPath [
|
||||||
glib libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
glib libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
||||||
mesa libXmu libXt libICE libSM ]} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
|
mesa_glu libXmu libXt libICE libSM ]} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
|
||||||
|
|
||||||
(echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
|
(echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
|
||||||
for l in $(<$TMPDIR/so.lst);
|
for l in $(<$TMPDIR/so.lst);
|
||||||
@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
|
|||||||
wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
|
wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
|
||||||
"${stdenv.lib.makeLibraryPath [ glib
|
"${stdenv.lib.makeLibraryPath [ glib
|
||||||
libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
libX11 pango cairo gtk2 gdk_pixbuf gtkglext
|
||||||
mesa libXmu libXt libICE libSM ]}"
|
mesa_glu libXmu libXt libICE libSM ]}"
|
||||||
|
|
||||||
sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
|
sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
|
||||||
mv $out/bin/.factor-wrapped $out/lib/factor/factor
|
mv $out/bin/.factor-wrapped $out/lib/factor/factor
|
||||||
|
119
pkgs/development/compilers/ghc/8.2.2.nix
Normal file
119
pkgs/development/compilers/ghc/8.2.2.nix
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
{ stdenv, lib, fetchurl, bootPkgs, perl, ncurses, libiconv, binutils, coreutils
|
||||||
|
, autoconf, automake, happy, alex, python3, sphinx, hscolour
|
||||||
|
, buildPlatform, targetPlatform , selfPkgs, cross ? null
|
||||||
|
|
||||||
|
# If enabled GHC will be build with the GPL-free but slower integer-simple
|
||||||
|
# library instead of the faster but GPLed integer-gmp library.
|
||||||
|
, enableIntegerSimple ? false, gmp
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (bootPkgs) ghc;
|
||||||
|
version = "8.2.1.20171030";
|
||||||
|
|
||||||
|
commonBuildInputs = [ alex autoconf automake ghc happy hscolour perl python3 sphinx ];
|
||||||
|
commonPreConfigure = ''
|
||||||
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
|
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
||||||
|
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
|
||||||
|
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
|
'' + stdenv.lib.optionalString enableIntegerSimple ''
|
||||||
|
echo "INTEGER_LIBRARY=integer-simple" > mk/build.mk
|
||||||
|
'';
|
||||||
|
in stdenv.mkDerivation (rec {
|
||||||
|
inherit version;
|
||||||
|
name = "ghc-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://downloads.haskell.org/~ghc/8.2.2-rc2/${name}-src.tar.xz";
|
||||||
|
sha256 = "0m2lx13yscgxmb18nrzhgg5h4kwzcnxdw7rjcqwx4dcwl1k0a724";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
|
patches = [ ./ghc-gold-linker.patch ];
|
||||||
|
|
||||||
|
preConfigure = commonPreConfigure;
|
||||||
|
|
||||||
|
buildInputs = commonBuildInputs;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"CC=${stdenv.cc}/bin/cc"
|
||||||
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
|
"--datadir=$doc/share/doc/ghc"
|
||||||
|
] ++ stdenv.lib.optional (! enableIntegerSimple) [
|
||||||
|
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
|
||||||
|
] ++ stdenv.lib.optional stdenv.isDarwin [
|
||||||
|
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||||
|
];
|
||||||
|
|
||||||
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
|
# that in turn causes GHCi to abort
|
||||||
|
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!stdenv.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
|
checkTarget = "test";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
paxmark m $out/lib/${name}/bin/{ghc,haddock}
|
||||||
|
|
||||||
|
# Install the bash completion file.
|
||||||
|
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/ghc
|
||||||
|
|
||||||
|
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||||
|
for i in "$out/bin/"*; do
|
||||||
|
test ! -h $i || continue
|
||||||
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
|
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ binutils coreutils ]}"' $i
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit bootPkgs;
|
||||||
|
} // stdenv.lib.optionalAttrs (targetPlatform != buildPlatform) {
|
||||||
|
crossCompiler = selfPkgs.ghc.override {
|
||||||
|
cross = targetPlatform;
|
||||||
|
bootPkgs = selfPkgs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://haskell.org/ghc;
|
||||||
|
description = "The Glasgow Haskell Compiler";
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
||||||
|
inherit (ghc.meta) license platforms;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // stdenv.lib.optionalAttrs (cross != null) {
|
||||||
|
name = "${cross.config}-ghc-${version}";
|
||||||
|
|
||||||
|
preConfigure = commonPreConfigure + ''
|
||||||
|
sed 's|#BuildFlavour = quick-cross|BuildFlavour = perf-cross|' mk/build.mk.sample > mk/build.mk
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"CC=${stdenv.ccCross}/bin/${cross.config}-cc"
|
||||||
|
"LD=${stdenv.binutils}/bin/${cross.config}-ld"
|
||||||
|
"AR=${stdenv.binutils}/bin/${cross.config}-ar"
|
||||||
|
"NM=${stdenv.binutils}/bin/${cross.config}-nm"
|
||||||
|
"RANLIB=${stdenv.binutils}/bin/${cross.config}-ranlib"
|
||||||
|
"--target=${cross.config}"
|
||||||
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
|
] ++
|
||||||
|
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||||
|
lib.optional (cross.config or null == "aarch64-apple-darwin14") "--disable-large-address-space";
|
||||||
|
|
||||||
|
buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutils ];
|
||||||
|
|
||||||
|
dontSetConfigureCross = true;
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit bootPkgs cross;
|
||||||
|
cc = "${stdenv.ccCross}/bin/${cross.config}-cc";
|
||||||
|
ld = "${stdenv.binutils}/bin/${cross.config}-ld";
|
||||||
|
};
|
||||||
|
})
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "orc-0.4.26";
|
name = "orc-0.4.27";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://gstreamer.freedesktop.org/src/orc/${name}.tar.xz";
|
url = "https://gstreamer.freedesktop.org/src/orc/${name}.tar.xz";
|
||||||
sha256 = "0jd69ynvr3k70mlxxgbsk047l1rd63m1wkj3qdcq7644xy0gllkx";
|
sha256 = "14vbwdydwarcvswzf744jdjb3ibhv6k4j6hzdacfan41zic3xrai";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
{ stdenv, fetchurl, sbclBootstrap, clisp}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "sbcl-${version}";
|
|
||||||
version = "1.2.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
|
||||||
sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ ]
|
|
||||||
++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
|
|
||||||
++ (stdenv.lib.optional stdenv.isLinux clisp)
|
|
||||||
;
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
echo '"${version}.nixos"' > version.lisp-expr
|
|
||||||
echo "
|
|
||||||
(lambda (features)
|
|
||||||
(flet ((enable (x)
|
|
||||||
(pushnew x features))
|
|
||||||
(disable (x)
|
|
||||||
(setf features (remove x features))))
|
|
||||||
(enable :sb-thread))) " > customize-target-features.lisp
|
|
||||||
|
|
||||||
pwd
|
|
||||||
|
|
||||||
# SBCL checks whether files are up-to-date in many places..
|
|
||||||
# Unfortunately, same timestamp is not good enough
|
|
||||||
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
|
|
||||||
sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
|
|
||||||
sed -i src/cold/slam.lisp -e \
|
|
||||||
'/file-write-date input/a)'
|
|
||||||
sed -i src/cold/slam.lisp -e \
|
|
||||||
'/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
|
|
||||||
sed -i src/code/target-load.lisp -e \
|
|
||||||
'/date defaulted-fasl/a)'
|
|
||||||
sed -i src/code/target-load.lisp -e \
|
|
||||||
'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
|
|
||||||
|
|
||||||
# Fix the tests
|
|
||||||
sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest .*ent.non-existing/,+5d' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest \(pw\|gr\)ent/,+3d' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
|
|
||||||
sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
|
|
||||||
sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
|
|
||||||
|
|
||||||
# Use whatever `cc` the stdenv provides
|
|
||||||
substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
|
|
||||||
|
|
||||||
substituteInPlace src/runtime/Config.x86-64-darwin \
|
|
||||||
--replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
|
|
||||||
'';
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
export INSTALL_ROOT=$out
|
|
||||||
mkdir -p test-home
|
|
||||||
export HOME=$PWD/test-home
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = if stdenv.isLinux
|
|
||||||
then ''
|
|
||||||
sh make.sh clisp --prefix=$out
|
|
||||||
''
|
|
||||||
else ''
|
|
||||||
sh make.sh --prefix=$out --xc-host='${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit'
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
INSTALL_ROOT=$out sh install.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Lisp compiler";
|
|
||||||
homepage = http://www.sbcl.org;
|
|
||||||
license = stdenv.lib.licenses.bsd3;
|
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
|
||||||
inherit version;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
{ stdenv, fetchurl, writeText, sbclBootstrap
|
|
||||||
, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
|
|
||||||
, threadSupport ? (stdenv.isi686 || stdenv.isx86_64)
|
|
||||||
# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
|
|
||||||
# Note that the created binaries still need `patchelf --set-interpreter ...`
|
|
||||||
# to get rid of ${glibc} dependency.
|
|
||||||
, purgeNixReferences ? false
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "sbcl-${version}";
|
|
||||||
version = "1.3.12";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
|
||||||
sha256 = "1hjr2xqazy4j0m58y4na6fz8ii3xflqairxy7vpd7ajbs00yqfc0";
|
|
||||||
};
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
echo '"${version}.nixos"' > version.lisp-expr
|
|
||||||
echo "
|
|
||||||
(lambda (features)
|
|
||||||
(flet ((enable (x)
|
|
||||||
(pushnew x features))
|
|
||||||
(disable (x)
|
|
||||||
(setf features (remove x features))))
|
|
||||||
''
|
|
||||||
+ (if threadSupport then "(enable :sb-thread)" else "(disable :sb-thread)")
|
|
||||||
+ stdenv.lib.optionalString stdenv.isArm "(enable :arm)"
|
|
||||||
+ ''
|
|
||||||
)) " > customize-target-features.lisp
|
|
||||||
|
|
||||||
pwd
|
|
||||||
|
|
||||||
# SBCL checks whether files are up-to-date in many places..
|
|
||||||
# Unfortunately, same timestamp is not good enough
|
|
||||||
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
|
|
||||||
sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
|
|
||||||
sed -i src/cold/slam.lisp -e \
|
|
||||||
'/file-write-date input/a)'
|
|
||||||
sed -i src/cold/slam.lisp -e \
|
|
||||||
'/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
|
|
||||||
sed -i src/code/target-load.lisp -e \
|
|
||||||
'/date defaulted-fasl/a)'
|
|
||||||
sed -i src/code/target-load.lisp -e \
|
|
||||||
'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
|
|
||||||
|
|
||||||
# Fix the tests
|
|
||||||
sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest .*ent.non-existing/,+5d' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
sed -e '/deftest \(pw\|gr\)ent/,+3d' -i contrib/sb-posix/posix-tests.lisp
|
|
||||||
|
|
||||||
sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
|
|
||||||
sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
|
|
||||||
|
|
||||||
# Use whatever `cc` the stdenv provides
|
|
||||||
substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
|
|
||||||
|
|
||||||
substituteInPlace src/runtime/Config.x86-64-darwin \
|
|
||||||
--replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
|
|
||||||
''
|
|
||||||
+ (if purgeNixReferences
|
|
||||||
then
|
|
||||||
# This is the default location to look for the core; by default in $out/lib/sbcl
|
|
||||||
''
|
|
||||||
sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \
|
|
||||||
-i src/runtime/runtime.c
|
|
||||||
''
|
|
||||||
else
|
|
||||||
# Fix software version retrieval
|
|
||||||
''
|
|
||||||
sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp
|
|
||||||
''
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
export INSTALL_ROOT=$out
|
|
||||||
mkdir -p test-home
|
|
||||||
export HOME=$PWD/test-home
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
INSTALL_ROOT=$out sh install.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Specifying $SBCL_HOME is only truly needed with `purgeNixReferences = true`.
|
|
||||||
setupHook = writeText "setupHook.sh" ''
|
|
||||||
envHooks+=(_setSbclHome)
|
|
||||||
_setSbclHome() {
|
|
||||||
export SBCL_HOME='@out@/lib/sbcl/'
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = sbclBootstrap.meta // {
|
|
||||||
inherit version;
|
|
||||||
updateWalker = true;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, writeText, sbclBootstrap
|
{ stdenv, fetchurl, fetchgit, writeText, sbclBootstrap
|
||||||
, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
|
, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
|
||||||
, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.system)
|
, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.system)
|
||||||
# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
|
# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
|
||||||
@ -9,11 +9,16 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "sbcl-${version}";
|
name = "sbcl-${version}";
|
||||||
version = "1.4.0";
|
version = "1.4.1.0.20171104";
|
||||||
|
|
||||||
src = fetchurl {
|
#src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
# url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
||||||
sha256 = "0s87ax5hg9hz6b8kc9yrjckgz56s9iv96l2dcq216cbqkykrrm88";
|
# sha256 = "1qdaf847g5p2zgq00ax5hdy4r82bl3ss382psd0kkca1h83cdiz8";
|
||||||
|
#};
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://git.code.sf.net/p/sbcl/sbcl";
|
||||||
|
sha256 = "1fq34h8h8pax5q17w84kwv5amiaag3ikkq3cdmb31r64736mxi6r";
|
||||||
|
rev = "11aa57d23bc464d6a6867a80e946907404ceadd1";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
@ -35,7 +40,7 @@ stdenv.mkDerivation rec {
|
|||||||
# SBCL checks whether files are up-to-date in many places..
|
# SBCL checks whether files are up-to-date in many places..
|
||||||
# Unfortunately, same timestamp is not good enough
|
# Unfortunately, same timestamp is not good enough
|
||||||
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
|
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
|
||||||
sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
|
#sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
|
||||||
sed -i src/cold/slam.lisp -e \
|
sed -i src/cold/slam.lisp -e \
|
||||||
'/file-write-date input/a)'
|
'/file-write-date input/a)'
|
||||||
sed -i src/cold/slam.lisp -e \
|
sed -i src/cold/slam.lisp -e \
|
||||||
|
@ -4,21 +4,21 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yosys-${version}";
|
name = "yosys-${version}";
|
||||||
version = "2017.10.16";
|
version = "2017.11.05";
|
||||||
|
|
||||||
srcs = [
|
srcs = [
|
||||||
(fetchFromGitHub {
|
(fetchFromGitHub {
|
||||||
owner = "cliffordwolf";
|
owner = "cliffordwolf";
|
||||||
repo = "yosys";
|
repo = "yosys";
|
||||||
rev = "716dbc92745aa8b41d85a60d50263433d5a79393";
|
rev = "4f31cb6daddedcee467d85797d81b79360ce1826";
|
||||||
sha256 = "0va77my4iddsw6psgjfhfgs0z0z1hpj0l8ipchcl8crpxipxcr77";
|
sha256 = "1a5n0g5kpjsy8f99f64w81gkrr450wvffp407r1pddl8pmb0c3r7";
|
||||||
name = "yosys";
|
name = "yosys";
|
||||||
})
|
})
|
||||||
(fetchFromBitbucket {
|
(fetchFromBitbucket {
|
||||||
owner = "alanmi";
|
owner = "alanmi";
|
||||||
repo = "abc";
|
repo = "abc";
|
||||||
rev = "6283c5d99b06";
|
rev = "f6838749f234";
|
||||||
sha256 = "1mv8r1la4d4r9bk32sl4nq3flyxi8jf2ccaak64j5rz9hirrlpla";
|
sha256 = "0n7ywvih958h1c4n7a398a9w3qikhkv885fx5j3y2a0xwqc86m4y";
|
||||||
name = "yosys-abc";
|
name = "yosys-abc";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
38
pkgs/development/coq-modules/bignums/default.nix
Normal file
38
pkgs/development/coq-modules/bignums/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, coq }:
|
||||||
|
|
||||||
|
let rev_and_sha = {
|
||||||
|
"8.6" = {
|
||||||
|
rev = "v8.6.0";
|
||||||
|
sha256 = "0553pcsy21cyhmns6k9qggzb67az8kl31d0lwlnz08bsqswigzrj";
|
||||||
|
};
|
||||||
|
"8.7" = {
|
||||||
|
rev = "V8.7.0";
|
||||||
|
sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
if ! (rev_and_sha ? "${coq.coq-version}") then
|
||||||
|
throw "bignums is not available for Coq ${coq.coq-version}"
|
||||||
|
else with rev_and_sha."${coq.coq-version}";
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "coq${coq.coq-version}-bignums";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "coq";
|
||||||
|
repo = "bignums";
|
||||||
|
inherit rev sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ coq.ocaml coq.camlp5 coq.findlib coq ];
|
||||||
|
|
||||||
|
installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
license = licenses.lgpl2;
|
||||||
|
platforms = coq.meta.platforms;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -1,21 +1,22 @@
|
|||||||
{ stdenv, fetchurl, coq }:
|
{ stdenv, fetchFromGitHub, coq, coqPackages }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
if ! stdenv.lib.versionAtLeast coq.coq-version "8.6" then
|
||||||
name = "coq${coq.coq-version}-math-classes-1.0.6";
|
throw "Math-Classes requires Coq 8.6 or later."
|
||||||
|
else
|
||||||
|
|
||||||
src = fetchurl {
|
stdenv.mkDerivation rec {
|
||||||
url = https://github.com/math-classes/math-classes/archive/1.0.6.tar.gz;
|
|
||||||
sha256 = "071hgjk4bz2ybci7dp2mw7xqmxmm2zph7kj28xcdg28iy796lf02";
|
name = "coq${coq.coq-version}-math-classes-${version}";
|
||||||
|
version = "1.0.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "math-classes";
|
||||||
|
repo = "math-classes";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "0wgnczacvkb2pc3vjbni9bwjijfyd5jcdnyyjg8185hkf9zzabgi";
|
||||||
};
|
};
|
||||||
|
|
||||||
# src = fetchFromGitHub {
|
buildInputs = [ coq coqPackages.bignums ];
|
||||||
# owner = "math-classes";
|
|
||||||
# repo = "math-classes";
|
|
||||||
# rev = "1d426a08c2fbfd68bd1b3622fe8f31dd03712e6c";
|
|
||||||
# sha256 = "3kjc2wzb6n9hcqb2ijx2pckn8jk5g09crrb87yb4s9m0mrw79smr";
|
|
||||||
# };
|
|
||||||
|
|
||||||
buildInputs = [ coq ];
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
|
installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ go, govers, parallel, lib, fetchgit, fetchhg, fetchbzr, rsync, removeReferencesTo }:
|
{ go, govers, parallel, lib, fetchgit, fetchhg, fetchbzr, rsync
|
||||||
|
, removeReferencesTo, fetchFromGitHub }:
|
||||||
|
|
||||||
{ name, buildInputs ? [], nativeBuildInputs ? [], passthru ? {}, preFixup ? ""
|
{ name, buildInputs ? [], nativeBuildInputs ? [], passthru ? {}, preFixup ? ""
|
||||||
|
|
||||||
@ -58,6 +59,10 @@ let
|
|||||||
fetchbzr {
|
fetchbzr {
|
||||||
inherit (goDep.fetch) url rev sha256;
|
inherit (goDep.fetch) url rev sha256;
|
||||||
}
|
}
|
||||||
|
else if goDep.fetch.type == "FromGitHub" then
|
||||||
|
fetchFromGitHub {
|
||||||
|
inherit (goDep.fetch) owner repo rev sha256;
|
||||||
|
}
|
||||||
else abort "Unrecognized package fetch type: ${goDep.fetch.type}";
|
else abort "Unrecognized package fetch type: ${goDep.fetch.type}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,26 @@
|
|||||||
{ stdenv, fetchurl, sbcl }:
|
{ stdenv, fetchFromGitHub,
|
||||||
|
# perl, which, nettools,
|
||||||
|
sbcl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let hashes = {
|
||||||
|
"7.4" = "04jb789nks9llwysxz1zw9pq1dh0j39b5fcmivcc4bq9v9cga2l1";
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
name = "acl2-${version}";
|
name = "acl2-${version}";
|
||||||
version = "v6-5";
|
version = "7.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "http://www.cs.utexas.edu/users/moore/acl2/${version}/distrib/acl2.tar.gz";
|
owner = "acl2-devel";
|
||||||
sha256 = "19kfclgpdyms016s06pjf3icj3mx9jlcj8vfgpbx2ac4ls0ir36g";
|
repo = "acl2-devel";
|
||||||
name = "acl2-${version}.tar.gz";
|
rev = "${version}";
|
||||||
|
sha256 = hashes."${version}";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ sbcl ];
|
buildInputs = [ sbcl
|
||||||
|
# which perl nettools
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
phases = "unpackPhase installPhase";
|
phases = "unpackPhase installPhase";
|
||||||
|
|
||||||
@ -18,18 +28,45 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/share/${installSuffix}
|
mkdir -p $out/share/${installSuffix}
|
||||||
|
mkdir -p $out/bin
|
||||||
cp -R . $out/share/${installSuffix}
|
cp -R . $out/share/${installSuffix}
|
||||||
cd $out/share/${installSuffix}
|
cd $out/share/${installSuffix}
|
||||||
make 'LISP=${sbcl}/bin/sbcl --dynamic-space-size 2000'
|
|
||||||
make 'LISP=${sbcl}/bin/sbcl --dynamic-space-size 2000' regression
|
# make ACL2 image
|
||||||
make LISP=${sbcl}/bin/sbcl TAGS
|
make LISP=${sbcl}/bin/sbcl
|
||||||
mkdir -p $out/bin
|
|
||||||
|
# The community books don't build properly under Nix yet.
|
||||||
|
rm -rf books
|
||||||
|
#make ACL2=$out/share/saved_acl2 USE_QUICKLISP=1 regression-everything
|
||||||
|
|
||||||
cp saved_acl2 $out/bin/acl2
|
cp saved_acl2 $out/bin/acl2
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "An interpreter and a prover for a Lisp dialect";
|
description = "An interpreter and a prover for a Lisp dialect";
|
||||||
maintainers = with stdenv.lib.maintainers; [ raskin ];
|
longDescription = ''
|
||||||
|
ACL2 is a logic and programming language in which you can model
|
||||||
|
computer systems, together with a tool to help you prove
|
||||||
|
properties of those models. "ACL2" denotes "A Computational
|
||||||
|
Logic for Applicative Common Lisp".
|
||||||
|
|
||||||
|
ACL2 is part of the Boyer-Moore family of provers, for which its
|
||||||
|
authors have received the 2005 ACM Software System Award.
|
||||||
|
|
||||||
|
NOTE: In nixpkgs, the community books that usually ship with
|
||||||
|
ACL2 have been removed because it is not currently possible to
|
||||||
|
build them with Nix.
|
||||||
|
'';
|
||||||
|
homepage = http://www.cs.utexas.edu/users/moore/acl2/;
|
||||||
|
downloadPage = https://github.com/acl2-devel/acl2-devel/releases;
|
||||||
|
# There are a bunch of licenses in the community books, but since
|
||||||
|
# they currently get deleted during the build, we don't mention
|
||||||
|
# their licenses here. ACL2 proper is released under a BSD
|
||||||
|
# 3-clause license.
|
||||||
|
#license = with stdenv.lib.licenses;
|
||||||
|
#[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ];
|
||||||
|
license = stdenv.lib.licenses.bsd3;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ kini raskin ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ mkDerivation }:
|
{ mkDerivation }:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
version = "1.5.1";
|
version = "1.5.2";
|
||||||
sha256 = "0q0zr3v9cyb7p9aab8v038hnjm84nf9b60kikffp6w9rfqqqf767";
|
sha256 = "0ng7z2gz1c8lkn07fric18b3awcw886s9xb864kmnn2iah5gc65j";
|
||||||
minimumOTPVersion = "18";
|
minimumOTPVersion = "18";
|
||||||
}
|
}
|
||||||
|
62
pkgs/development/interpreters/spidermonkey/52.nix
Normal file
62
pkgs/development/interpreters/spidermonkey/52.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{ stdenv, fetchurl, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
version = "52.2.1gnome1";
|
||||||
|
name = "spidermonkey-${version}";
|
||||||
|
|
||||||
|
# the release notes point to some guys home directory, see
|
||||||
|
# https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38
|
||||||
|
# probably it would be more ideal to pull a particular tag/revision
|
||||||
|
# from the mercurial repo
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://gnome/teams/releng/tarballs-needing-help/mozjs/mozjs-${version}.tar.gz";
|
||||||
|
sha256 = "1bxhz724s1ch1c0kdlzlg9ylhg1mk8kbhdgfkax53fyvn51pjs9i";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ readline icu zlib nspr ];
|
||||||
|
nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ];
|
||||||
|
|
||||||
|
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
export CXXFLAGS="-fpermissive"
|
||||||
|
export LIBXUL_DIST=$out
|
||||||
|
export PYTHON="${python2.interpreter}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--enable-threadsafe"
|
||||||
|
"--with-system-nspr"
|
||||||
|
"--with-system-zlib"
|
||||||
|
"--with-system-icu"
|
||||||
|
"--with-intl-api"
|
||||||
|
"--enable-readline"
|
||||||
|
|
||||||
|
# enabling these because they're wanted by 0ad. They may or may
|
||||||
|
# not be good defaults for other uses.
|
||||||
|
"--enable-gcgenerational"
|
||||||
|
"--enable-shared-js"
|
||||||
|
];
|
||||||
|
|
||||||
|
# This addresses some build system bug. It's quite likely to be safe
|
||||||
|
# to re-enable parallel builds if the source revision changes.
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
# The headers are symlinks to a directory that doesn't get put
|
||||||
|
# into $out, so they end up broken. Fix that by just resolving the
|
||||||
|
# symlinks.
|
||||||
|
for i in $(find $out -type l); do
|
||||||
|
cp --remove-destination "$(readlink "$i")" "$i";
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Mozilla's JavaScript engine written in C/C++";
|
||||||
|
homepage = https://developer.mozilla.org/en/SpiderMonkey;
|
||||||
|
# TODO: MPL/GPL/LGPL tri-license.
|
||||||
|
|
||||||
|
maintainers = [ maintainers.abbradar ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -1,17 +1,9 @@
|
|||||||
{ stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib
|
{ stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, glib
|
||||||
, gtk_doc, autoconf, automake, libtool, libarchive
|
, gtk_doc, libarchive, gobjectIntrospection
|
||||||
, gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl
|
, sqlite, libsoup, gcab, attr, acl, docbook_xsl
|
||||||
, libuuid, json_glib, autoconf-archive, meson, gperf, ninja, gdk_pixbuf
|
, libuuid, json_glib, meson, gperf, ninja
|
||||||
}:
|
}:
|
||||||
let rpath = stdenv.lib.makeLibraryPath
|
stdenv.mkDerivation rec {
|
||||||
[ libuuid.out
|
|
||||||
glib
|
|
||||||
libsoup
|
|
||||||
gdk_pixbuf
|
|
||||||
libarchive.lib
|
|
||||||
gcab
|
|
||||||
];
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
name = "appstream-glib-0.7.2";
|
name = "appstream-glib-0.7.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
@ -28,12 +20,6 @@ in stdenv.mkDerivation rec {
|
|||||||
propagatedBuildInputs = [ gtk3 ];
|
propagatedBuildInputs = [ gtk3 ];
|
||||||
mesonFlags = [ "-Denable-rpm=false" "-Denable-stemmer=false" "-Denable-dep11=false" ];
|
mesonFlags = [ "-Denable-rpm=false" "-Denable-stemmer=false" "-Denable-dep11=false" ];
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
for elf in "$out"/bin/* "$out"/lib/*.so; do
|
|
||||||
patchelf --set-rpath '${rpath}':"$out/lib" "$elf"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Objects and helper methods to read and write AppStream metadata";
|
description = "Objects and helper methods to read and write AppStream metadata";
|
||||||
homepage = https://github.com/hughsie/appstream-glib;
|
homepage = https://github.com/hughsie/appstream-glib;
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
[ "--enable-cplusplus" ]
|
[ "--enable-cplusplus" ]
|
||||||
++ lib.optional enableLargeConfig "--enable-large-config";
|
++ lib.optional enableLargeConfig "--enable-large-config";
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = stdenv.buildPlatform == stdenv.hostPlatform;
|
||||||
|
|
||||||
# Don't run the native `strip' when cross-compiling.
|
# Don't run the native `strip' when cross-compiling.
|
||||||
dontStrip = hostPlatform != buildPlatform;
|
dontStrip = hostPlatform != buildPlatform;
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
major = "1.8";
|
major = "1.8";
|
||||||
minor = "2";
|
minor = "4";
|
||||||
name = "clutter-gtk-${major}.${minor}";
|
name = "clutter-gtk-${major}.${minor}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/clutter-gtk/${major}/${name}.tar.xz";
|
url = "mirror://gnome/sources/clutter-gtk/${major}/${name}.tar.xz";
|
||||||
sha256 = "da27d486325490ad3f65d2abf9413aeb8b4a8f7b559e4b2f73567a5344a26b94";
|
sha256 = "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ clutter gtk3 ];
|
propagatedBuildInputs = [ clutter gtk3 ];
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
outputMan = "dev"; # tiny page for a dev tool
|
outputMan = "dev"; # tiny page for a dev tool
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
|
||||||
|
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
patchShebangs ./run.sh
|
patchShebangs ./run.sh
|
||||||
|
@ -1,34 +1,35 @@
|
|||||||
{ stdenv, fetchurl
|
{ stdenv, fetchurl, autoreconfHook, pkgconfig
|
||||||
|
, openssl
|
||||||
, odbcSupport ? false, unixODBC ? null }:
|
, odbcSupport ? false, unixODBC ? null }:
|
||||||
|
|
||||||
assert odbcSupport -> unixODBC != null;
|
assert odbcSupport -> unixODBC != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "freetds-0.91";
|
name = "freetds-${version}";
|
||||||
|
version = "1.00.70";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mirrors.ibiblio.org/freetds/stable/${name}.tar.gz";
|
url = "http://www.freetds.org/files/stable/${name}.tar.bz2";
|
||||||
sha256 = "0r946axzxs0czsmr7283w7vmk5jx3jnxxc32d2ncxsrsh2yli0ba";
|
sha256 = "1ydh0c89nb6wh6wakbkqad7mdwpymygvgbcrk8c2mp7abgv1jqzp";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
configureFlags = [
|
||||||
|
"--with-tdsver=7.3"
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = stdenv.lib.optional odbcSupport [ unixODBC ];
|
buildInputs = [
|
||||||
|
openssl
|
||||||
|
] ++ stdenv.lib.optional odbcSupport unixODBC;
|
||||||
|
|
||||||
configureFlags = stdenv.lib.optionalString odbcSupport "--with-odbc=${unixODBC}";
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
|
|
||||||
doDist = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
distPhase = ''
|
meta = with stdenv.lib; {
|
||||||
touch $out/include/tds.h
|
description = "Libraries to natively talk to Microsoft SQL Server and Sybase databases";
|
||||||
touch $out/lib/libtds.a
|
homepage = http://www.freetds.org;
|
||||||
'';
|
license = licenses.lgpl2;
|
||||||
|
maintainers = with maintainers; [ peterhoeg ];
|
||||||
meta = {
|
platforms = platforms.all;
|
||||||
description =
|
|
||||||
"Libraries to natively talk to Microsoft SQL Server and Sybase databases";
|
|
||||||
homepage = http://www.freetds.org;
|
|
||||||
license = "lgpl";
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx";
|
sha256 = "0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = stdenv.buildPlatform == stdenv.hostPlatform;
|
||||||
|
|
||||||
# Linking static stubs on cygwin requires correct ordering.
|
# Linking static stubs on cygwin requires correct ordering.
|
||||||
# Consider upstreaming this.
|
# Consider upstreaming this.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
, gsettings_desktop_schemas }:
|
, gsettings_desktop_schemas }:
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "2.50";
|
ver_maj = "2.54";
|
||||||
ver_min = "0";
|
ver_min = "0";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/glib-networking/${ver_maj}/${name}.tar.xz";
|
url = "mirror://gnome/sources/glib-networking/${ver_maj}/${name}.tar.xz";
|
||||||
sha256 = "3f1a442f3c2a734946983532ce59ed49120319fdb10c938447c373d5e5286bee";
|
sha256 = "5961b3779080b72314b373ff5d4790eb7e41b75ca91816ad7a81ef32922f7096";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ]; # to deal with propagatedBuildInputs
|
outputs = [ "out" "dev" ]; # to deal with propagatedBuildInputs
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, gnum4, glib, libsigcxx }:
|
{ stdenv, fetchurl, pkgconfig, gnum4, glib, libsigcxx }:
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "2.50";
|
ver_maj = "2.54";
|
||||||
ver_min = "0";
|
ver_min = "1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "glibmm-${ver_maj}.${ver_min}";
|
name = "glibmm-${ver_maj}.${ver_min}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/glibmm/${ver_maj}/${name}.tar.xz";
|
url = "mirror://gnome/sources/glibmm/${ver_maj}/${name}.tar.xz";
|
||||||
sha256 = "df726e3c6ef42b7621474b03b644a2e40ec4eef94a1c5a932c1e740a78f95e94";
|
sha256 = "0jkapw18icz59cmlmsl00nwwz0wh291kb4hc9z9hxmq45drqrhkw";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user