Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-11-06 13:24:06 +01:00
commit 1d9a8e2289
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
264 changed files with 4203 additions and 2400 deletions

View File

@ -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
View 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>

View File

@ -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>";

View File

@ -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 != [];

View File

@ -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";

View File

@ -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 ======

View File

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.between (-21) 43;
};
};
}

View File

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.positive;
};
};
}

View File

@ -0,0 +1,9 @@
{ lib, ... }:
{
options = {
value = lib.mkOption {
type = lib.types.ints.unsigned;
};
};
}

View File

@ -0,0 +1,3 @@
{
value = -23;
}

View File

@ -0,0 +1,3 @@
{
value = 42;
}

View File

@ -0,0 +1,3 @@
{
value = 0;
}

View File

@ -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;

View File

@ -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)))

View File

@ -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>/21</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>.

View File

@ -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>

View File

@ -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;

View File

@ -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

View File

@ -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 = {

View 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}";
};
};
}

View File

@ -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;

View File

@ -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";

View File

@ -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

View File

@ -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

View File

@ -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 =

View File

@ -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
''; '';

View File

@ -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/;

View File

@ -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/;
}; };
} }

View File

@ -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)

View File

@ -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" ];
}; };
} }

View File

@ -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

View File

@ -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.

View File

@ -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 ];

View 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 ];
};
}

View File

@ -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;

View 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. ZIPs 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 ];
};
}

View 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 ];
};
}

View File

@ -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

View File

@ -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 ];
}; };
} }

View File

@ -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

View 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 ];
};
}

View File

@ -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;
}; };
} }

View File

@ -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 ];

View File

@ -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/
''; '';

View File

@ -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 ];

View File

@ -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 ];
}; };
} }

View File

@ -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 ];
}; };
} }

View 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.

View 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/'

View 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";

View File

@ -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

View File

@ -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

View 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"

View 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"

View File

@ -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

View 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";
}

View File

@ -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 ];

View 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 "=IPFS= 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 "=IPFS= 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 "error: cannot download $ipfs from ipfs or the given url"
echo
set +o noglob
exit 1

View 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;
}

View File

@ -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;

View File

@ -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
}: }:

View File

@ -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" \

View 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";

View File

@ -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 \

View File

@ -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 ];

View File

@ -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}" ];

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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";
}; };
} }

View File

@ -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;
}; };
} }

View File

@ -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; {

View File

@ -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"

View File

@ -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;

View File

@ -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;

View 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";
};
}

View File

@ -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";
}; };
} }

View File

@ -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;

View File

@ -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

View 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";
};
})

View File

@ -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" ];

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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 \

View File

@ -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";
}) })
]; ];

View 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;
};
}

View File

@ -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}/";

View File

@ -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

View File

@ -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;
}; };
} }

View File

@ -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";
} }

View 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;
};
}

View File

@ -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;

View File

@ -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;

View File

@ -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 ];

View File

@ -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

View File

@ -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;
}; };
} }

View File

@ -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.

View File

@ -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

View File

@ -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