Merge branch 'master.upstream' into staging.upstream

This commit is contained in:
William A. Kennington III 2015-07-29 10:23:08 -07:00
commit aaef42ab8c
147 changed files with 1669 additions and 1429 deletions

View file

@ -1,6 +1,8 @@
let
lib = import ./default.nix;
inherit (builtins) attrNames isFunction;
in
rec {
@ -49,10 +51,6 @@ rec {
else { }));
# usage: (you can use override multiple times)
# let d = makeOverridable stdenv.mkDerivation { name = ..; buildInputs; }
# noBuildInputs = d.override { buildInputs = []; }
# additionalBuildInputs = d.override ( args : args // { buildInputs = args.buildInputs ++ [ additional ]; } )
makeOverridable = f: origArgs:
let
ff = f origArgs;
@ -60,24 +58,16 @@ rec {
in
if builtins.isAttrs ff then (ff //
{ override = newArgs: makeOverridable f (overrideWith newArgs);
deepOverride = newArgs:
makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
overrideDerivation = fdrv:
makeOverridable (args: overrideDerivation (f args) fdrv) origArgs;
})
else if builtins.isFunction ff then
{ override = newArgs: makeOverridable f (overrideWith newArgs);
__functor = self: ff;
deepOverride = throw "deepOverride not yet supported for functors";
overrideDerivation = throw "overrideDerivation not yet supported for functors";
}
else ff;
deepOverrider = newArgs: name: x: if builtins.isAttrs x then (
if x ? deepOverride then (x.deepOverride newArgs) else
if x ? override then (x.override newArgs) else
x) else x;
/* Call the package function in the file `fn' with the required
arguments automatically. The function is called with the
@ -102,12 +92,28 @@ rec {
*/
callPackageWith = autoArgs: fn: args:
let
f = if builtins.isFunction fn then fn else import fn;
f = if builtins.isFunction fn then fn else import fn;
auto = builtins.intersectAttrs (builtins.functionArgs f) autoArgs;
in makeOverridable f (auto // args);
/* Add attributes to each output of a derivation without changing the derivation itself */
/* Like callPackage, but for a function that returns an attribute
set of derivations. The override function is added to the
individual attributes. */
callPackagesWith = autoArgs: fn: args:
let
f = if builtins.isFunction fn then fn else import fn;
auto = builtins.intersectAttrs (builtins.functionArgs f) autoArgs;
finalArgs = auto // args;
pkgs = f finalArgs;
mkAttrOverridable = name: pkg: pkg // {
override = newArgs: mkAttrOverridable name (f (finalArgs // newArgs)).${name};
};
in lib.mapAttrs mkAttrOverridable pkgs;
/* Add attributes to each output of a derivation without changing
the derivation itself. */
addPassthru = drv: passthru:
let
outputs = drv.outputs or [ "out" ];

View file

@ -29,7 +29,6 @@ rec {
} ));
withStdOverrides = base // {
override = base.passthru.function;
deepOverride = a : (base.passthru.function ((lib.mapAttrs (lib.deepOverrider a) base.passthru.args) // a));
} ;
in
withStdOverrides;

View file

@ -4,7 +4,7 @@ with import ./trivial.nix;
rec {
inherit (builtins) head tail length isList elemAt concatLists filter elem;
inherit (builtins) head tail length isList elemAt concatLists filter elem genList;
# Create a list consisting of a single element. `singleton x' is
@ -42,16 +42,20 @@ rec {
foldl' = builtins.foldl' or foldl;
# map with index: `imap (i: v: "${v}-${toString i}") ["a" "b"] ==
# ["a-1" "b-2"]'
imap = f: list:
let
len = length list;
imap' = n:
if n == len
then []
else [ (f (n + 1) (elemAt list n)) ] ++ imap' (n + 1);
in imap' 0;
# Map with index: `imap (i: v: "${v}-${toString i}") ["a" "b"] ==
# ["a-1" "b-2"]'. FIXME: why does this start to count at 1?
imap =
if builtins ? genList then
f: list: genList (n: f (n + 1) (elemAt list n)) (length list)
else
f: list:
let
len = length list;
imap' = n:
if n == len
then []
else [ (f (n + 1) (elemAt list n)) ] ++ imap' (n + 1);
in imap' 0;
# Map and concatenate the result.
@ -120,10 +124,17 @@ rec {
# Return a list of integers from `first' up to and including `last'.
range = first: last:
if last < first
then []
else [first] ++ range (first + 1) last;
range =
if builtins ? genList then
first: last:
if first > last
then []
else genList (n: first + n) (last - first + 1)
else
first: last:
if last < first
then []
else [first] ++ range (first + 1) last;
# Partition the elements of a list in two lists, `right' and
@ -136,30 +147,37 @@ rec {
) { right = []; wrong = []; };
zipListsWith = f: fst: snd:
let
len1 = length fst;
len2 = length snd;
len = if len1 < len2 then len1 else len2;
zipListsWith' = n:
if n != len then
[ (f (elemAt fst n) (elemAt snd n)) ]
++ zipListsWith' (n + 1)
else [];
in zipListsWith' 0;
zipListsWith =
if builtins ? genList then
f: fst: snd: genList (n: f (elemAt fst n) (elemAt snd n)) (min (length fst) (length snd))
else
f: fst: snd:
let
len = min (length fst) (length snd);
zipListsWith' = n:
if n != len then
[ (f (elemAt fst n) (elemAt snd n)) ]
++ zipListsWith' (n + 1)
else [];
in zipListsWith' 0;
zipLists = zipListsWith (fst: snd: { inherit fst snd; });
# Reverse the order of the elements of a list. FIXME: O(n^2)!
reverseList = fold (e: acc: acc ++ [ e ]) [];
# Reverse the order of the elements of a list.
reverseList =
if builtins ? genList then
xs: let l = length xs; in genList (n: elemAt xs (l - n - 1)) l
else
fold (e: acc: acc ++ [ e ]) [];
# Sort a list based on a comparator function which compares two
# elements and returns true if the first argument is strictly below
# the second argument. The returned list is sorted in an increasing
# order. The implementation does a quick-sort.
sort = strictLess: list:
sort = builtins.sort or (
strictLess: list:
let
len = length list;
first = head list;
@ -173,31 +191,50 @@ rec {
pivot = pivot' 1 { left = []; right = []; };
in
if len < 2 then list
else (sort strictLess pivot.left) ++ [ first ] ++ (sort strictLess pivot.right);
else (sort strictLess pivot.left) ++ [ first ] ++ (sort strictLess pivot.right));
# Return the first (at most) N elements of a list.
take = count: list:
let
len = length list;
take' = n:
if n == len || n == count
then []
else
[ (elemAt list n) ] ++ take' (n + 1);
in take' 0;
take =
if builtins ? genList then
count: sublist 0 count
else
count: list:
let
len = length list;
take' = n:
if n == len || n == count
then []
else
[ (elemAt list n) ] ++ take' (n + 1);
in take' 0;
# Remove the first (at most) N elements of a list.
drop = count: list:
let
len = length list;
drop' = n:
if n == -1 || n < count
then []
else
drop' (n - 1) ++ [ (elemAt list n) ];
in drop' (len - 1);
drop =
if builtins ? genList then
count: list: sublist count (length list) list
else
count: list:
let
len = length list;
drop' = n:
if n == -1 || n < count
then []
else
drop' (n - 1) ++ [ (elemAt list n) ];
in drop' (len - 1);
# Return a list consisting of at most count elements of list,
# starting at index start.
sublist = start: count: list:
let len = length list; in
genList
(n: elemAt list (n + start))
(if start >= len then 0
else if start + count > len then len - start
else count);
# Return the last element of a list.
@ -209,25 +246,13 @@ rec {
init = list: assert list != []; take (length list - 1) list;
# Zip two lists together.
zipTwoLists = xs: ys:
let
len1 = length xs;
len2 = length ys;
len = if len1 < len2 then len1 else len2;
zipTwoLists' = n:
if n != len then
[ { first = elemAt xs n; second = elemAt ys n; } ]
++ zipTwoLists' (n + 1)
else [];
in zipTwoLists' 0;
deepSeqList = xs: y: if any (x: deepSeq x false) xs then y else y;
crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f];
# Remove duplicate elements from the list
# Remove duplicate elements from the list. O(n^2) complexity.
unique = list:
if list == [] then
[]
@ -237,9 +262,12 @@ rec {
xs = unique (drop 1 list);
in [x] ++ remove x xs;
# Intersects list 'e' and another list
# Intersects list 'e' and another list. O(nm) complexity.
intersectLists = e: filter (x: elem x e);
# Subtracts list 'e' from another list
# Subtracts list 'e' from another list. O(nm) complexity.
subtractLists = e: filter (x: !(elem x e));
}

View file

@ -130,6 +130,7 @@
jwiegley = "John Wiegley <johnw@newartisans.com>";
jwilberding = "Jordan Wilberding <jwilberding@afiniate.com>";
jzellner = "Jeff Zellner <jeffz@eml.cc>";
kamilchm = "Kamil Chmielewski <kamil.chm@gmail.com>";
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
koral = "Koral <koral@mailoo.org>";
kovirobi = "Kovacsics Robert <kovirobi@gmail.com>";
@ -148,6 +149,7 @@
ludo = "Ludovic Courtès <ludo@gnu.org>";
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
mahe = "Matthias Herrmann <matthias.mh.herrmann@gmail.com>";
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
marcweber = "Marc Weber <marco-oweber@gmx.de>";

View file

@ -264,55 +264,59 @@ rec {
defs' = (optional (opt ? default)
{ file = head opt.declarations; value = mkOptionDefault opt.default; }) ++ defs;
# Handle properties, check types, and merge everything together
inherit (mergeDefinitions loc opt.type defs') isDefined defsFinal mergedValue;
files = map (def: def.file) defsFinal;
merged =
if isDefined then mergedValue
else throw "The option `${showOption loc}' is used but not defined.";
# Handle properties, check types, and merge everything together.
res = mergeDefinitions loc opt.type defs';
# Check whether the option is defined, and apply the apply
# function to the merged value. This allows options to yield a
# value computed from the definitions.
value =
if !res.isDefined then
throw "The option `${showOption loc}' is used but not defined."
else if opt ? apply then
opt.apply res.mergedValue
else
res.mergedValue;
# Finally, apply the apply function to the merged
# value. This allows options to yield a value computed
# from the definitions.
value = (opt.apply or id) merged;
in opt //
{ value = addErrorContext "while evaluating the option `${showOption loc}':" value;
definitions = map (def: def.value) defsFinal;
inherit isDefined files;
files = map (def: def.file) res.defsFinal;
inherit (res) isDefined;
};
# Merge definitions of a value of a given type
mergeDefinitions = loc: type: defs: rec {
defsFinal =
let
# Process mkMerge and mkIf properties
processIfAndMerge = defs: concatMap (m:
map (value: { inherit (m) file; inherit value; }) (dischargeProperties m.value)
) defs;
# Merge definitions of a value of a given type.
mergeDefinitions = loc: type: defs: rec {
defsFinal =
let
# Process mkMerge and mkIf properties.
defs' = concatMap (m:
map (value: { inherit (m) file; inherit value; }) (dischargeProperties m.value)
) defs;
# Process mkOverride properties
processOverride = defs: filterOverrides defs;
# Process mkOverride properties.
defs'' = filterOverrides defs';
# Sort mkOrder properties
processOrder = defs:
# Avoid sorting if we don't have to.
if any (def: def.value._type or "" == "order") defs
then sortProperties defs
else defs;
in
processOrder (processOverride (processIfAndMerge defs));
# Sort mkOrder properties.
defs''' =
# Avoid sorting if we don't have to.
if any (def: def.value._type or "" == "order") defs''
then sortProperties defs''
else defs'';
in defs''';
# Type-check the remaining definitions, and merge them.
mergedValue = foldl' (res: def:
if type.check def.value then res
else throw "The option value `${showOption loc}' in `${def.file}' is not a ${type.name}.")
(type.merge loc defsFinal) defsFinal;
# Type-check the remaining definitions, and merge them.
mergedValue = foldl' (res: def:
if type.check def.value then res
else throw "The option value `${showOption loc}' in `${def.file}' is not a ${type.name}.")
(type.merge loc defsFinal) defsFinal;
isDefined = defsFinal != [];
optionalValue =
if isDefined then { value = mergedValue; }
else {};
};
isDefined = defsFinal != [];
optionalValue =
if isDefined then { value = mergedValue; }
else {};
};
/* Given a config set, expand mkMerge properties, and push down the
other properties into the children. The result is a list of
@ -383,7 +387,6 @@ rec {
let
defaultPrio = 100;
getPrio = def: if def.value._type or "" == "override" then def.value.priority else defaultPrio;
min = x: y: if x < y then x else y;
highestPrio = foldl' (prio: def: min (getPrio def) prio) 9999 defs;
strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def;
in concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;

View file

@ -41,22 +41,22 @@ rec {
machines = attrNames nodes;
machinesNumbered = zipTwoLists machines (range 1 254);
machinesNumbered = zipLists machines (range 1 254);
nodes_ = flip map machinesNumbered (m: nameValuePair m.first
nodes_ = flip map machinesNumbered (m: nameValuePair m.fst
[ ( { config, pkgs, nodes, ... }:
let
interfacesNumbered = zipTwoLists config.virtualisation.vlans (range 1 255);
interfaces = flip map interfacesNumbered ({ first, second }:
nameValuePair "eth${toString second}" { ip4 =
[ { address = "192.168.${toString first}.${toString m.second}";
interfacesNumbered = zipLists config.virtualisation.vlans (range 1 255);
interfaces = flip map interfacesNumbered ({ fst, snd }:
nameValuePair "eth${toString snd}" { ip4 =
[ { address = "192.168.${toString fst}.${toString m.snd}";
prefixLength = 24;
} ];
});
in
{ key = "ip-address";
config =
{ networking.hostName = m.first;
{ networking.hostName = m.fst;
networking.interfaces = listToAttrs interfaces;
@ -76,11 +76,11 @@ rec {
virtualisation.qemu.options =
flip map interfacesNumbered
({ first, second }: qemuNICFlags second first m.second);
({ fst, snd }: qemuNICFlags snd fst m.snd);
};
}
)
(getAttr m.first nodes)
(getAttr m.fst nodes)
] );
in listToAttrs nodes_;

View file

@ -0,0 +1,88 @@
# Builds an ext4 image containing a populated /nix/store with the closure
# of store paths passed in the storePaths parameter. The generated image
# is sized to only fit its contents, with the expectation that a script
# resizes the filesystem at boot time.
{ pkgs
, storePaths
, volumeLabel
}:
pkgs.stdenv.mkDerivation {
name = "ext4-fs.img";
buildInputs = with pkgs; [e2fsprogs libfaketime perl];
# For obtaining the closure of `storePaths'.
exportReferencesGraph =
map (x: [("closure-" + baseNameOf x) x]) storePaths;
buildCommand =
''
# Add the closures of the top-level store objects.
storePaths=$(perl ${pkgs.pathsFromGraph} closure-*)
# Also include a manifest of the closures in a format suitable
# for nix-store --load-db.
printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > nix-path-registration
# Make a crude approximation of the size of the target image.
# If the script starts failing, increase the fudge factors here.
numInodes=$(find $storePaths | wc -l)
numDataBlocks=$(du -c -B 4096 --apparent-size $storePaths | awk '$2 == "total" { print int($1 * 1.03) }')
bytes=$((2 * 4096 * $numInodes + 4096 * $numDataBlocks))
echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
truncate -s $bytes $out
faketime "1970-01-01 00:00:00" mkfs.ext4 -L ${volumeLabel} -U 44444444-4444-4444-8888-888888888888 $out
# Populate the image contents by piping a bunch of commands to the `debugfs` tool from e2fsprogs.
# For example, to copy /nix/store/abcd...efg-coreutils-8.23/bin/sleep:
# cd /nix/store/abcd...efg-coreutils-8.23/bin
# write /nix/store/abcd...efg-coreutils-8.23/bin/sleep sleep
# sif sleep mode 040555
# sif sleep gid 30000
# In particular, debugfs doesn't handle absolute target paths; you have to 'cd' in the virtual
# filesystem first. Likewise the intermediate directories must already exist (using `find`
# handles that for us). And when setting the file's permissions, the inode type flags (__S_IFDIR,
# __S_IFREG) need to be set as well.
(
echo write nix-path-registration nix-path-registration
echo mkdir nix
echo cd /nix
echo mkdir store
# XXX: This explodes in exciting ways if anything in /nix/store has a space in it.
find $storePaths -printf '%y %f %h %m\n'| while read -r type file dir perms; do
# echo "TYPE=$type DIR=$dir FILE=$file PERMS=$perms" >&2
echo "cd $dir"
case $type in
d)
echo "mkdir $file"
echo sif $file mode $((040000 | 0$perms)) # magic constant is __S_IFDIR
;;
f)
echo "write $dir/$file $file"
echo sif $file mode $((0100000 | 0$perms)) # magic constant is __S_IFREG
;;
l)
echo "symlink $file $(readlink "$dir/$file")"
;;
*)
echo "Unknown entry: $type $dir $file $perms" >&2
exit 1
;;
esac
echo sif $file gid 30000 # chgrp to nixbld
done
) | faketime "1970-01-01 00:00:00" debugfs -w $out -f /dev/stdin > errorlog 2>&1
# The debugfs tool doesn't terminate on error nor exit with a non-zero status. Check manually.
if egrep -q 'Could not allocate|File not found' errorlog; then
cat errorlog
echo "--- Failed to create EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks) ---"
return 1
fi
'';
}

View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, ... }:
let
extlinux-conf-builder =
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs;
};
in
{
imports = [
../../profiles/minimal.nix
../../profiles/installation-device.nix
./sd-image.nix
];
assertions = lib.singleton {
assertion = pkgs.stdenv.system == "armv7l-linux";
message = "sd-image-armv7l-multiplatform.nix can be only built natively on ARMv7; " +
"it cannot be cross compiled";
};
boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true;
# FIXME: change this to linuxPackages_latest once v4.2 is out
boot.kernelPackages = pkgs.linuxPackages_testing;
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
# FIXME: fix manual evaluation on ARM
services.nixosManual.enable = lib.mkOverride 0 false;
# FIXME: this probably should be in installation-device.nix
users.extraUsers.root.initialHashedPassword = "";
sdImage = {
populateBootCommands = ''
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./boot
'';
};
}

View file

@ -0,0 +1,46 @@
{ config, lib, pkgs, ... }:
let
extlinux-conf-builder =
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs;
};
in
{
imports = [
../../profiles/minimal.nix
../../profiles/installation-device.nix
./sd-image.nix
];
assertions = lib.singleton {
assertion = pkgs.stdenv.system == "armv6l-linux";
message = "sd-image-raspberrypi.nix can be only built natively on ARMv6; " +
"it cannot be cross compiled";
};
# Needed by RPi firmware
nixpkgs.config.allowUnfree = true;
boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true;
boot.kernelPackages = pkgs.linuxPackages_rpi;
# FIXME: fix manual evaluation on ARM
services.nixosManual.enable = lib.mkOverride 0 false;
# FIXME: this probably should be in installation-device.nix
users.extraUsers.root.initialHashedPassword = "";
sdImage = {
populateBootCommands = ''
for f in bootcode.bin fixup.dat start.elf; do
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/$f boot/
done
cp ${pkgs.ubootRaspberryPi}/u-boot.bin boot/u-boot-rpi.bin
echo 'kernel u-boot-rpi.bin' > boot/config.txt
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./boot
'';
};
}

View file

@ -0,0 +1,127 @@
# This module creates a bootable SD card image containing the given NixOS
# configuration. The generated image is MBR partitioned, with a FAT /boot
# partition, and ext4 root partition. The generated image is sized to fit
# its contents, and a boot script automatically resizes the root partition
# to fit the device on the first boot.
#
# The derivation for the SD image will be placed in
# config.system.build.sdImage
{ config, lib, pkgs, ... }:
with lib;
let
rootfsImage = import ../../../lib/make-ext4-fs.nix {
inherit pkgs;
inherit (config.sdImage) storePaths;
volumeLabel = "NIXOS_SD";
};
in
{
options.sdImage = {
storePaths = mkOption {
type = with types; listOf package;
example = literalExample "[ pkgs.stdenv ]";
description = ''
Derivations to be included in the Nix store in the generated SD image.
'';
};
bootSize = mkOption {
type = types.int;
default = 128;
description = ''
Size of the /boot partition, in megabytes.
'';
};
populateBootCommands = mkOption {
example = literalExample "'' cp \${pkgs.myBootLoader}/u-boot.bin boot/ ''";
description = ''
Shell commands to populate the ./boot directory.
All files in that directory are copied to the
/boot partition on the SD image.
'';
};
};
config = {
fileSystems = {
"/boot" = {
device = "/dev/disk/by-label/NIXOS_BOOT";
fsType = "vfat";
};
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
};
};
sdImage.storePaths = [ config.system.build.toplevel ];
system.build.sdImage = pkgs.stdenv.mkDerivation {
name = "sd-image-${pkgs.stdenv.system}.img";
buildInputs = with pkgs; [ dosfstools e2fsprogs mtools libfaketime utillinux ];
buildCommand = ''
# Create the image file sized to fit /boot and /, plus 4M of slack
rootSizeBlocks=$(du -B 512 --apparent-size ${rootfsImage} | awk '{ print $1 }')
bootSizeBlocks=$((${toString config.sdImage.bootSize} * 1024 * 1024 / 512))
imageSize=$((rootSizeBlocks * 512 + bootSizeBlocks * 512 + 4096 * 1024))
truncate -s $imageSize $out
# type=b is 'W95 FAT32', type=83 is 'Linux'.
sfdisk $out <<EOF
label: dos
label-id: 0x2178694e
start=1M, size=$bootSizeBlocks, type=b, bootable
type=83
EOF
# Copy the rootfs into the SD image
eval $(partx $out -o START,SECTORS --nr 2 --pairs)
dd conv=notrunc if=${rootfsImage} of=$out seek=$START count=$SECTORS
# Create a FAT32 /boot partition of suitable size into bootpart.img
eval $(partx $out -o START,SECTORS --nr 1 --pairs)
truncate -s $((SECTORS * 512)) bootpart.img
faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n NIXOS_BOOT bootpart.img
# Populate the files intended for /boot
mkdir boot
${config.sdImage.populateBootCommands}
# Copy the populated /boot into the SD image
(cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::)
dd conv=notrunc if=bootpart.img of=$out seek=$START count=$SECTORS
'';
};
boot.postBootCommands = ''
# On the first boot do some maintenance tasks
if [ -f /nix-path-registration ]; then
# Figure out device names for the boot device and root filesystem.
rootPart=$(readlink -f /dev/disk/by-label/NIXOS_SD)
bootDevice=$(lsblk -npo PKNAME $rootPart)
# Resize the root partition and the filesystem to fit the disk
echo ",+," | sfdisk -N2 --no-reread $bootDevice
${pkgs.parted}/bin/partprobe
${pkgs.e2fsprogs}/bin/resize2fs $rootPart
# Register the contents of the initial Nix store
${config.nix.package}/bin/nix-store --load-db < /nix-path-registration
# nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
touch /etc/NIXOS
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
# Prevents this from running on later boots.
rm -f /nix-path-registration
fi
'';
};
}

View file

@ -52,6 +52,7 @@ in
TTYPath = "/dev/${cfg.tty}";
TTYReset = true;
TTYVTDisallocate = true;
WorkingDirectory = "/tmp";
Restart = "always";
};
};

View file

@ -62,7 +62,7 @@ in
pkgs.xfce.xfwm4
# This supplies some "abstract" icons such as
# "utilities-terminal" and "accessories-text-editor".
pkgs.gnome.gnomeicontheme
pkgs.gnome3.defaultIconTheme
pkgs.desktop_file_utils
pkgs.xfce.libxfce4ui
pkgs.xfce.garcon

View file

@ -3,6 +3,7 @@
pkgs.substituteAll {
src = ./extlinux-conf-builder.sh;
isExecutable = true;
inherit (pkgs) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
inherit (pkgs) bash;
kernelDTB = pkgs.stdenv.platform.kernelDTB or false;
}

View file

@ -75,8 +75,10 @@ addEntry() {
copyToKernelsDir "$path/kernel"; kernel=$result
copyToKernelsDir "$path/initrd"; initrd=$result
# XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result
if [ -n "@kernelDTB@" ]; then
# XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result
fi
timestampEpoch=$(stat -L -c '%Z' $path)
@ -93,7 +95,9 @@ addEntry() {
fi
echo " LINUX ../nixos/$(basename $kernel)"
echo " INITRD ../nixos/$(basename $initrd)"
echo " FDTDIR ../nixos/$(basename $dtbs)"
if [ -n "@kernelDTB@" ]; then
echo " FDTDIR ../nixos/$(basename $dtbs)"
fi
echo " APPEND systemConfig=$path init=$path/init $extraParams"
}
@ -105,20 +109,24 @@ cat > $tmpFile <<EOF
# Change this to e.g. nixos-42 to temporarily boot to an older configuration.
DEFAULT nixos-default
MENU TITLE ------------------------------------------------------------
TIMEOUT $timeout
$(addEntry $default default)
EOF
# Add up to $numGenerations generations of the system profile to the menu,
# in reverse (most recent to least recent) order.
for generation in $(
(cd /nix/var/nix/profiles && ls -d system-*-link) \
| sed 's/system-\([0-9]\+\)-link/\1/' \
| sort -n -r \
| head -n $numGenerations); do
link=/nix/var/nix/profiles/system-$generation-link
addEntry $link $generation
done >> $tmpFile
addEntry $default default >> $tmpFile
if [ "$numGenerations" -gt 0 ]; then
# Add up to $numGenerations generations of the system profile to the menu,
# in reverse (most recent to least recent) order.
for generation in $(
(cd /nix/var/nix/profiles && ls -d system-*-link) \
| sed 's/system-\([0-9]\+\)-link/\1/' \
| sort -n -r \
| head -n $numGenerations); do
link=/nix/var/nix/profiles/system-$generation-link
addEntry $link $generation
done >> $tmpFile
fi
mv -f $tmpFile $target/extlinux/extlinux.conf

View file

@ -70,12 +70,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz;
md5 = "54e2ce0660b2b1b0eb4267acf70ea66d";
}
else
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-linux-gtk.tar.gz;
md5 = "bde55a2354dc224cf5f26e5320e72dac";
};
};
@ -88,12 +88,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk-x86_64.tar.gz;
sha256 = "0dfcfadcd6337c897fbfd5b292de481931dfce12d43289ecb93691fd27dd47f4";
}
else
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-linux-gtk.tar.gz;
sha256 = "1bh8ykliqr8wbciv13vpiy50rvm7yszk7y8dslr796dbwhi5b1cj";
};
};
@ -120,12 +120,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz;
sha1 = "6f914e11fa15a900c46825e4aa8299afd76e7e65";
}
else
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk.tar.gz;
sha1 = "1156e4bc0253ae3a3a4e54839e4944dc64d3108f";
};
};
@ -136,12 +136,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk-x86_64.tar.gz;
sha1 = "e96f5f006298f68476f4a15a2be8589158d5cc61";
}
else
fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk.tar.gz;
sha1 = "696377895bb26445de39d82a916b7e69edb1d939";
};
};
@ -151,11 +151,11 @@ in {
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz;
sha256 = "0nf4nv7awhp1k8b1hjb7chpjyjrqnyszsjbc4dlk9phpjv3j4wg5";
};
"i686-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz;
sha256 = "1isn7i45l9kyn2yx6vm88jl1gnxph8ynank0aaa218cg8kdygk7j";
};
};
@ -167,12 +167,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk-x86_64.tar.gz;
sha256 = "14ppc9g9igzvj1pq7jl01vwhzb66nmzbl9wsdl1sf3xnwa9wnqk3";
}
else
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk.tar.gz;
sha256 = "1cvg1vgyazrkinwzlvlf0dpl197p4784752srqybqylyj5psdi3b";
};
};
@ -183,12 +183,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk-x86_64.tar.gz;
sha256 = "1qq04926pf7v9sf3s0z53zvlbl1j0rmmjmbmhqi49473fnjikh7y";
}
else
fetchurl {
url = http://eclipse.ialto.com/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/juno/SR2/eclipse-cpp-juno-SR2-linux-gtk.tar.gz;
sha256 = "1a4s9qlhfpfpdhvffyglnfdr3dq5r2ywcxqywhqi95yhq5nmsgyk";
};
};
@ -199,12 +199,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/kepler/SR2/eclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/kepler/SR2/eclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gz;
sha256 = "16zhjm6bx78263b1clg75kfiliahkhwg0k116vp9fj039nlpc30l";
}
else
fetchurl {
url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/kepler/SR2/eclipse-cpp-kepler-SR2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/kepler/SR2/eclipse-cpp-kepler-SR2-linux-gtk.tar.gz;
sha256 = "0d6jlj7hwz8blx6csrlyi2h2prql0wckbh7ihwjmgclwpcpj84g6";
};
};
@ -215,16 +215,32 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk-x86_64.tar.gz;
md5 = "b0a6ee33e8108a7ff4682ab911271b04";
}
else
fetchurl {
url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk.tar.gz;
md5 = "5000f93cecf6ef9af112f0df6e8c87f3";
};
};
eclipse_cpp_45 = buildEclipse {
name = "eclipse-cpp-4.5";
description = "Eclipse IDE for C/C++ Developers, Mars release";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/mars/R/eclipse-cpp-mars-R-linux-gtk-x86_64.tar.gz;
sha1 = "11f9583e23ae68eb675107e6c9acc48e0a2520ae";
}
else if stdenv.system == "i686-linux" then
fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/mars/R/eclipse-cpp-mars-R-linux-gtk.tar.gz;
sha1 = "45dddb8c8f2ec79b7e25cc13d93785863ffe4791";
}
else throw "Unsupported system: ${stdenv.system}";
};
eclipse_sdk_421 = buildEclipse {
name = "eclipse-sdk-4.2.1";
@ -232,12 +248,12 @@ in {
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2.1-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2.1-linux-gtk-x86_64.tar.gz;
sha256 = "1mlyy90lk08lb2971ynglgi3nqvqfq1k70md2kb39jk160wd1xrk";
}
else
fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2.1-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2.1-linux-gtk.tar.gz;
sha256 = "1av6qm9wkbyk123qqf38f0jq4jv2bj9wp6fmpnl55zg6qr463c1w";
};
};
@ -247,11 +263,11 @@ in {
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk-x86_64.tar.gz;
sha256 = "0ysa6ymk4h3k1vn59dc909iy197kmx132671kbzfwbim87jmgnqb";
};
"i686-linux" = fetchurl {
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk.tar.gz;
sha256 = "038yibbrcia38wi72qrdl03g7l35mpvl5nxdfdnvpqxrkfffb826";
};
};
@ -262,11 +278,11 @@ in {
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.3.1-201309111000/eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.3.1-201309111000/eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz;
sha256 = "0ncm56ylwxw9z8rk8ccgva68c2yr9yrf1kcr1zkgw6p87xh1yczd";
};
"i686-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.3.1-201309111000/eclipse-SDK-4.3.1-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.3.1-201309111000/eclipse-SDK-4.3.1-linux-gtk.tar.gz;
sha256 = "1zxsh838khny7mvl01h28xna6xdh01yi4mvls28zj22v0340lgsg";
};
};
@ -277,11 +293,11 @@ in {
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-linux-gtk-x86_64.tar.gz;
sha256 = "14hdkijsjq0hhzi9ijpwjjkhz7wm0pry86l3dniy5snlh3l5bsb2";
};
"i686-linux" = fetchurl {
url = http://archive.eclipse.org/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-linux-gtk.tar.gz;
sha256 = "0hjc4zrsmik6vff851p0a4ydnx99840j2xrx8348kk6h0af8vx6z";
};
};
@ -292,12 +308,12 @@ in {
description = "Eclipse Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://download.eclipse.org/eclipse/downloads/drops4/R-4.4.2-201502041700/eclipse-SDK-4.4.2-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.4.2-201502041700/eclipse-SDK-4.4.2-linux-gtk-x86_64.tar.gz;
sha256 = "0g00alsixfaakmn4khr0m9fxvkrbhbg6qqfa27xr6a9np6gzg98l";
};
"i686-linux" = fetchurl {
url = http://download.eclipse.org/eclipse/downloads/drops4/R-4.4.2-201502041700/eclipse-SDK-4.4.2-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.4.2-201502041700/eclipse-SDK-4.4.2-linux-gtk.tar.gz;
sha256 = "1hacyjjwhhxi7r3xyhpqgjqpd5r0irw9bfkalz5s5l6shb0lq4i7";
};
};
@ -308,12 +324,12 @@ in {
description = "Eclipse Mars Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://download.eclipse.org/eclipse/downloads/drops4/R-4.5-201506032000/eclipse-SDK-4.5-linux-gtk-x86_64.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.5-201506032000/eclipse-SDK-4.5-linux-gtk-x86_64.tar.gz;
sha256 = "0vfql4gh263ms8bg7sgn05gnjajplx304cn3nr03jlacgr3pkarf";
};
"i686-linux" = fetchurl {
url = http://download.eclipse.org/eclipse/downloads/drops4/R-4.5-201506032000/eclipse-SDK-4.5-linux-gtk.tar.gz;
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.5-201506032000/eclipse-SDK-4.5-linux-gtk.tar.gz;
sha256 = "0xv66l6hdlvxpswcqrsh398wg6xhy30f833dr7jvvz45s5437hm3";
};
};

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, guile, libX11, libXext, xmodmap, which, makeWrapper, freetype,
{stdenv, fetchurl, guile_1_8, qt4, zlib, xmodmap, which, makeWrapper, freetype,
tex ? null,
aspell ? null,
ghostscriptX ? null,
@ -9,7 +9,7 @@
let
pname = "TeXmacs";
version = "1.0.7.11";
version = "1.99.2";
extraFontsSrc = fetchurl {
url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-extra-fonts-1.0-noarch.tar.gz";
sha256 = "0hylgjmd95y9yahbblmawkkw0i71vb145xxv2xqrmff81301n6k7";
@ -39,11 +39,11 @@ stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "ftp://ftp.texmacs.org/pub/${pname}/targz/${name}-src.tar.gz";
sha256 = "0x1r9417dzbrxf785faq1vjszqdj94ig2lzwm8sd92bxcxr6knfa";
url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
sha256 = "0l48g9746igiaxw657shm8g3xxk565vzsviajlrxqyljbh6py0fs";
};
buildInputs = [ guile libX11 libXext makeWrapper ghostscriptX freetype ];
buildInputs = [ guile_1_8 qt4 makeWrapper ghostscriptX freetype ];
patchPhase = (if tex == null then ''
gunzip < ${fullFontsSrc} | (cd TeXmacs && tar xvf -)
@ -66,6 +66,12 @@ stdenv.mkDerivation rec {
(if tex == null then "" else "${tex}/bin:") +
"${xmodmap}/bin:${which}/bin";
postFixup = ''
bin="$out/libexec/TeXmacs/bin/texmacs.bin"
rpath=$(patchelf --print-rpath "$bin")
patchelf --set-rpath "$rpath:${zlib}/lib" "$bin"
'';
meta = {
description = "WYSIWYW editing platform with special features for scientists";
longDescription =

View file

@ -0,0 +1,46 @@
{ stdenv, fetchzip, buildPythonPackage, docbook2x, libxslt, gnome_doc_utils
, intltool, dbus_glib, pygobject, pygtk, pyxdg, gnome_python, dbus, sqlite3
}:
# TODO: Add optional dependency 'wnck', for "workspace tracking" support. Fixes
# this message:
#
# WARNING:root:Could not import wnck - workspace tracking will be disabled
buildPythonPackage rec {
name = "hamster-time-tracker-1.04";
namePrefix = "";
src = fetchzip {
name = "${name}-src";
url = "https://github.com/projecthamster/hamster/archive/${name}.tar.gz";
sha256 = "1a85rcg561792kdyv744cgzw7mmpmgv6d6li1sijfdpqa1ninf8g";
};
buildInputs = [ docbook2x libxslt gnome_doc_utils intltool dbus_glib ];
propagatedBuildInputs = [ pygobject pygtk pyxdg gnome_python dbus sqlite3 ];
configurePhase = ''
python waf configure --prefix="$out"
'';
buildPhase = ''
python waf build
'';
installPhase = ''
python waf install
'';
# error: invalid command 'test'
doCheck = false;
meta = with stdenv.lib; {
description = "Time tracking application";
homepage = https://projecthamster.wordpress.com/;
license = licenses.gpl3;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -0,0 +1,34 @@
{ stdenv, fetchurl, intltool, pkgconfig, glib, libnotify, gtk3, libgee
, keybinder3, json_glib, zeitgeist, vala
}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "synapse-0.2.99.1";
src = fetchurl {
url = "https://launchpad.net/synapse-project/0.3/0.2.99.1/+download/${name}.tar.xz";
sha256 = "846d8a5130580bb47c754bb7f20dc76311e589c00a18b02370a5d78b52409220";
};
buildInputs = [
intltool pkgconfig glib libnotify gtk3 libgee keybinder3 json_glib zeitgeist
vala
];
meta = {
longDescription = ''
Semantic launcher written in Vala that you can use to start applications
as well as find and access relevant documents and files by making use of
the Zeitgeist engine
'';
description = ''
Semantic launcher to start applications and find relevant files
'';
homepage = https://launchpad.net/synapse-project;
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; mahe;
platforms = with stdenv.lib.platforms; all;
};
}

View file

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, python34Packages, readline, ncurses, canto-daemon }:
python34Packages.buildPythonPackage rec {
version = "0.9.4";
version = "0.9.6";
name = "canto-curses-${version}";
src = fetchFromGitHub {
owner = "themoken";
repo = "canto-curses";
rev = "v${version}";
sha256 = "0g1ckcb9xcfb0af17zssiqcrfry87agx578vd40nb6gbw90ql4fn";
sha256 = "0hxzpx314cflxq68gswjf2vrqf1z1ci9mxhxgwrk7sa6di86ygy0";
};
buildInputs = [ readline ncurses canto-daemon ];

View file

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, python34Packages, }:
python34Packages.buildPythonPackage rec {
version = "0.9.3";
version = "0.9.5";
name = "canto-daemon-${version}";
namePrefix = "";
@ -9,7 +9,7 @@ python34Packages.buildPythonPackage rec {
owner = "themoken";
repo = "canto-next";
rev = "v${version}";
sha256 = "1x875qdyhab89nwwa2bzbfvcrkx34zwyy8dlbxm8wg3vz9b78l61";
sha256 = "1ycwrg5n2il833mdxgzz07r0vb4rxz89rk5c6l9g5x33ifinykdq";
};
propagatedBuildInputs = with python34Packages; [ feedparser ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, cups, libssh, libXpm, nxproxy, openldap, makeWrapper, qt4 }:
let version = "4.0.4.0"; in
let version = "4.0.5.0"; in
stdenv.mkDerivation rec {
name = "x2goclient-${version}";
src = fetchurl {
url = "http://code.x2go.org/releases/source/x2goclient/${name}.tar.gz";
sha256 = "0mqn4nvq2w7qja5i4vx9fg2spwzl01p0hmfwbjb0mzir03hmrl46";
sha256 = "18a2pszh0nq2ir64a1ah1mlzddn4qcd12b339bv30n0y1ir92bi4";
};
meta = with stdenv.lib; {

View file

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub, buildPythonPackage, python27Packages, pkgs }:
buildPythonPackage rec {
name = "qtile-${version}";
version = "0.10.1";
src = fetchFromGitHub {
owner = "qtile";
repo = "qtile";
rev = "v${version}";
sha256 = "1g02lvk2cqy6w6y6nw6dnsmy4i9k4fyawyibpkf0a7a1nfrd6a99";
};
patches = [ ./restart_executable.patch ];
postPatch = ''
substituteInPlace libqtile/manager.py --subst-var-by out $out
'';
buildInputs = [ pkgs.pkgconfig pkgs.glib pkgs.xlibs.libxcb pkgs.cairo pkgs.pango python27Packages.xcffib ];
cairocffi-xcffib = python27Packages.cairocffi.override {
LD_LIBRARY_PATH = "${pkgs.xlibs.libxcb}/lib:${pkgs.cairo}/lib";
pythonPath = [ python27Packages.xcffib ];
};
pythonPath = with python27Packages; [ xcffib cairocffi-xcffib trollius readline ];
LD_LIBRARY_PATH = "${pkgs.xlibs.libxcb}/lib:${pkgs.cairo}/lib";
postInstall = ''
wrapProgram $out/bin/qtile \
--prefix LD_LIBRARY_PATH : ${pkgs.xlibs.libxcb}/lib \
--prefix LD_LIBRARY_PATH : ${pkgs.glib}/lib \
--prefix LD_LIBRARY_PATH : ${pkgs.cairo}/lib \
--prefix LD_LIBRARY_PATH : ${pkgs.pango}/lib
'';
meta = with stdenv.lib; {
homepage = http://www.qtile.org/;
license = licenses.mit;
description = "A small, flexible, scriptable tiling window manager written in Python";
platforms = platforms.linux;
maintainers = with maintainers; [ kamilchm ];
};
}

View file

@ -0,0 +1,12 @@
diff -ruP a/libqtile/manager.py b/libqtile/manager.py
--- a/libqtile/manager.py 2015-07-26 21:26:16.947976520 +0200
+++ b/libqtile/manager.py 2015-07-26 21:37:45.581316712 +0200
@@ -1262,7 +1262,7 @@
argv = [s for s in argv if not s.startswith('--with-state')]
argv.append('--with-state=' + buf.getvalue().decode())
- self.cmd_execute(sys.executable, argv)
+ self.cmd_execute("@out@/bin/qtile", argv[1:])
def cmd_spawn(self, cmd):
"""

View file

@ -0,0 +1,33 @@
gappsWrapperArgs=()
wrapGAppsHook() {
if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then
gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE")
fi
if [ -n "$XDG_ICON_DIRS" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS")
fi
if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH")
fi
if [ -d "$prefix/share" ]; then
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$out/share")
fi
for v in $wrapPrefixVariables GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do
eval local dummy="\$$v"
gappsWrapperArgs+=(--prefix $v : "$dummy")
done
if [ -z "$dontWrapGApps" ]; then
for i in $prefix/bin/* $prefix/libexec/*; do
echo "Wrapping app $i"
wrapProgram "$i" "${gappsWrapperArgs[@]}"
done
fi
}
fixupOutputHooks+=(wrapGAppsHook)

View file

@ -0,0 +1,13 @@
{stdenv, fetchurl, unzip}:
import ./generic.nix {
inherit stdenv fetchurl unzip;
name = "docbook-xml-4.4";
src = fetchurl {
url = http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip;
sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82";
};
meta = {
branch = "4.4";
};
}

View file

@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
# remove a tree of dirs with no files within
postInstall = '' rm -r "$out/share/locale" '';
meta = {
platforms = stdenv.lib.platforms.linux;
};

View file

@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Bijiben;
description = "Note editor designed to remain simple to use";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl3;
platforms = platforms.linux;
};

View file

@ -48,7 +48,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Evolution;
description = "Personal information management application that provides integrated mail, calendaring and address book functionality";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};

View file

@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/FileRoller;
description = "Archive manager for the GNOME desktop environment";
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Gedit;
description = "Official text editor of the GNOME desktop environment";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Glade;
description = "User interface designer for GTK+ applications";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.lgpl2;
platforms = platforms.linux;
};

View file

@ -1,7 +1,7 @@
{ stdenv, intltool, fetchurl, libgweather, libnotify
, pkgconfig, gtk3, glib, hicolor_icon_theme, gsound
, makeWrapper, itstool, libcanberra_gtk3, libtool
, gnome3, librsvg, gdk_pixbuf, geoclue2 }:
, gnome3, librsvg, gdk_pixbuf, geoclue2, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "gnome-clocks-${gnome3.version}.1";
@ -13,27 +13,19 @@ stdenv.mkDerivation rec {
doCheck = true;
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
buildInputs = [ pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
gnome3.gsettings_desktop_schemas makeWrapper
gdk_pixbuf gnome3.adwaita-icon-theme librsvg
gnome3.gnome_desktop gnome3.geocode_glib geoclue2
libgweather libnotify libtool gsound
hicolor_icon_theme gnome3.adwaita-icon-theme ];
hicolor_icon_theme wrapGAppsHook ];
enableParallelBuilding = true;
preFixup = ''
wrapProgram "$out/bin/gnome-clocks" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Clocks;
description = "Clock application designed for GNOME 3";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -2,8 +2,8 @@
, pkgconfig, gtk3, glib, hicolor_icon_theme
, makeWrapper, itstool, libxslt, webkitgtk
, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl
, gobjectIntrospection, json_glib
, gmp, desktop_file_utils }:
, gobjectIntrospection, json_glib, inkscape, poppler_utils
, gmp, desktop_file_utils, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "gnome-documents-${gnome3.version}.0";
@ -15,36 +15,29 @@ stdenv.mkDerivation rec {
doCheck = true;
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
configureFlags = [ "--enable-getting-started" ];
buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt
docbook_xsl desktop_file_utils
docbook_xsl desktop_file_utils inkscape poppler_utils
gnome3.gsettings_desktop_schemas makeWrapper gmp
gdk_pixbuf gnome3.adwaita-icon-theme librsvg evince
libsoup webkitgtk gjs gobjectIntrospection gnome3.rest
gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts
gnome3.gnome_desktop gnome3.libzapojit json_glib
hicolor_icon_theme gnome3.adwaita-icon-theme ];
wrapGAppsHook ];
enableParallelBuilding = true;
preFixup =
''
preFixup = ''
substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
for f in $out/bin/* $out/libexec/*; do
wrapProgram "$f" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi"
done
gappsWrapperArgs+=(--run 'if [ -z "$XDG_CACHE_DIR" ]; then XDG_CACHE_DIR=$HOME/.cache; fi; if [ -w "$XDG_CACHE_DIR/.." ]; then mkdir -p "$XDG_CACHE_DIR/gnome-documents"; fi')
'';
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Documents;
description = "Document manager application designed to work with GNOME 3";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -1,5 +1,5 @@
{ stdenv, intltool, fetchurl, gdk_pixbuf, tracker
, python3, libxml2, python3Packages, libnotify
, python3, libxml2, python3Packages, libnotify, wrapGAppsHook
, pkgconfig, gtk3, glib, hicolor_icon_theme, cairo
, makeWrapper, itstool, gnome3, librsvg, gst_all_1 }:
@ -15,29 +15,21 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.libmediaart
gdk_pixbuf gnome3.adwaita-icon-theme librsvg python3
gnome3.grilo libxml2 python3Packages.pygobject3 libnotify
gnome3.grilo gnome3.grilo-plugins libxml2 python3Packages.pygobject3 libnotify
python3Packages.pycairo python3Packages.dbus gnome3.totem-pl-parser
gst_all_1.gstreamer gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
hicolor_icon_theme gnome3.adwaita-icon-theme
hicolor_icon_theme gnome3.adwaita-icon-theme wrapGAppsHook
gnome3.gsettings_desktop_schemas makeWrapper tracker ];
enableParallelBuilding = true;
wrapPrefixVariables = [ "PYTHONPATH" ];
preFixup = ''
wrapProgram "$out/bin/gnome-music" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
--prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
--prefix PYTHONPATH : "$PYTHONPATH"
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Music;
description = "Music player and management application for the GNOME desktop environment";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -1,7 +1,7 @@
{ stdenv, intltool, fetchurl, exempi, libxml2
, pkgconfig, gtk3, glib, hicolor_icon_theme
, makeWrapper, itstool, gegl, babl, lcms2
, desktop_file_utils, gmp, libmediaart
, desktop_file_utils, gmp, libmediaart, wrapGAppsHook
, gnome3, librsvg, gdk_pixbuf, libexif }:
stdenv.mkDerivation rec {
@ -14,8 +14,6 @@ stdenv.mkDerivation rec {
# doCheck = true;
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl gnome3.libgdata
@ -24,23 +22,14 @@ stdenv.mkDerivation rec {
gnome3.gfbgraph gnome3.grilo-plugins gnome3.grilo
gnome3.gnome_online_accounts gnome3.gnome_desktop
lcms2 libexif gnome3.tracker libxml2 desktop_file_utils
hicolor_icon_theme gnome3.adwaita-icon-theme ];
preFixup = ''
for f in $out/bin/* $out/libexec/*; do
wrapProgram "$f" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
'';
wrapGAppsHook ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Photos;
description = "Photos is an application to access, organize and share your photos with GNOME 3";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Integrates Evolution and Pidgin into the Nautilus file manager";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Seahorse;
description = "Application for managing encryption keys and passwords in the GnomeKeyring";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/Vinagre;
description = "Remote desktop viewer for GNOME";
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -13,11 +13,14 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ hicolor_icon_theme ];
buildInputs = [ gdk_pixbuf librsvg ];
nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
# remove a tree of dirs with no files within
postInstall = '' rm -r "$out/locale" '';
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Baobab;
description = "Graphical application to analyse disk usage in any Gnome environment";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Empathy;
description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
# TODO: license = [ licenses.gpl2 licenses.lgpl2 ];
platforms = platforms.linux;
};

View file

@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Apps/EyeOfGnome;
platforms = platforms.linux;
description = "GNOME image viewer";
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Epiphany;
description = "WebKit based web browser for GNOME";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View file

@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Projects/GDM;
description = "A program that manages graphical display servers and handles graphical user logins";
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
homepage = https://wiki.gnome.org/Projects/GDM;
description = "A program that manages graphical display servers and handles graphical user logins";
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -12,6 +12,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en;
description = "Application that let you manage Bluetooth in the GNOME destkop";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/action/show/Apps/Calculator;
description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -18,6 +18,6 @@ in stdenv.mkDerivation rec {
propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome_common tends to require which
meta = with stdenv.lib; {
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Contacts;
description = "Contacts is GNOME's integrated address book";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Utilities to configure the GNOME desktop";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
platforms = platforms.linux;
};

View file

@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Dictionary;
description = "Dictionary is the GNOME application to look up definitions";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://en.wikipedia.org/wiki/GNOME_Disks;
description = "A udisks graphical front-end";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Program that can preview fonts and create thumbnails for fonts";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -36,6 +36,6 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, makeWrapper
, webkitgtk, json_glib, rest, libsecret, dbus_glib, gnome_common
, telepathy_glib, intltool, dbus_libs, icu, autoreconfHook
, libsoup, docbook_xsl_ns, docbook_xsl, gnome3
, libsoup, docbook_xsl_ns, docbook_xsl, gnome3, hicolor_icon_theme
}:
stdenv.mkDerivation rec {
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest gnome_common makeWrapper
libsecret dbus_glib telepathy_glib intltool icu libsoup autoreconfHook
docbook_xsl_ns docbook_xsl ];
docbook_xsl_ns docbook_xsl hicolor_icon_theme ];
preFixup = ''
for f in "$out/libexec/"*; do
@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners;
description = "A set of crawlers that go through your online content and index them locally in Tracker";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://en.wikipedia.org/wiki/GNOME_Screenshot;
description = "Utility used in the GNOME desktop environment for taking screenshots";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -1,5 +1,5 @@
{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower
, libxslt, intltool, makeWrapper, systemd, xorg }:
, libxslt, intltool, makeWrapper, systemd, xorg, hicolor_icon_theme }:
stdenv.mkDerivation rec {
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
buildInputs = with gnome3;
[ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt
gnome3.gnome_settings_daemon xorg.xtrans
gnome3.gnome_settings_daemon xorg.xtrans hicolor_icon_theme
gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ];
preFixup = ''
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions;
description = "Modify and extend GNOME Shell functionality and behavior";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-system-log/3.9/;
description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-system-monitor/3.12/;
description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,4 +1,5 @@
{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2, gdk_pixbuf }:
{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2
, gdk_pixbuf, hicolor_icon_theme }:
stdenv.mkDerivation rec {
name = "gnome-themes-standard-${gnome3.version}.0";
@ -7,10 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "0kyrbfrgl6g6wm6zpllldz36fclvl8vwmn1snwk18kf7f6ncpsac";
};
buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf
hicolor_icon_theme ];
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = "https://help.gnome.org/users/gnome-help/${gnome3.version}";
description = "User and system administration help for the GNOME desktop";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.cc-by-30;
platforms = platforms.linux;
};

View file

@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://help.gnome.org/users/gnome-user-share/3.8;
description = "Service that exports the contents of the Public folder in your home directory on the local network";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
description = "A collection of plugins for the Grilo framework";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.lgpl2;
platforms = platforms.linux;
};

View file

@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m";
};
setupHook = ./setup-hook.sh;
configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ];
preConfigure = ''
@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
description = "Framework that provides access to various sources of multimedia content, using a pluggable system";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.lgpl2;
platforms = platforms.linux;
};

View file

@ -0,0 +1,7 @@
make_grilo_find_plugins() {
if [ -d "$1"/lib/grilo-0.2 ]; then
addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.2"
fi
}
envHooks+=(make_grilo_find_plugins)

View file

@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool ];
meta = with stdenv.lib; {
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool }:
{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool, gnome3 }:
let
majVer = "1.0";
@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GSound;
description = "Small library for playing system sounds";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Gucharmap;
description = "GNOME Character Map, based on the Unicode Character Database";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl3;
platforms = platforms.linux;
};

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection }:
{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }:
let
ver_maj = "0.16";
ver_min = "1";
@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper }:
{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }:
stdenv.mkDerivation rec {
name = "libgnomekbd-3.6.0";
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Keyboard management library";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, intltool
, glib, gtk3, gobjectIntrospection, python, pygobject3
{ stdenv, fetchurl, pkgconfig, intltool, gnome3
, glib, gtk3, gobjectIntrospection, python, pygobject3, hicolor_icon_theme
}:
let
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
buildInputs = [
intltool pkgconfig
glib gtk3 gobjectIntrospection python pygobject3
glib gtk3 gobjectIntrospection python pygobject3 hicolor_icon_theme
];
src = fetchurl {
@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
homepage = "http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, cacert }:
{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, cacert, gnome3 }:
stdenv.mkDerivation rec {
name = "rest-0.7.92";
@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = "http://en.wikipedia.org/wiki/Sushi_(software)";
description = "A quick previewer for Nautilus";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup }:
{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }:
stdenv.mkDerivation rec {
name = "totem-pl-parser-3.10.2";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Videos;
description = "Simple GObject-based library to parse and save a host of playlist formats";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.lgpl2;
platforms = platforms.linux;
};

View file

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Videos;
description = "Movie player for the GNOME desktop based on GStreamer";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/Tracker;
description = "Desktop-neutral user information store, search tool and indexer";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Yelp;
description = "Yelp's universal stylesheets for Mallard and DocBook";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = [licenses.gpl2 licenses.lgpl2];
platforms = platforms.linux;
};

View file

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Yelp;
description = "The help viewer in Gnome";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
};
}

View file

@ -21,6 +21,7 @@ let
glib_networking gvfs dconf gnome-backgrounds gnome_control_center
gnome-menus gnome_settings_daemon gnome_shell
gnome_themes_standard defaultIconTheme gnome-shell-extensions
pkgs.hicolor_icon_theme
];
optionalPackages = with gnome3; [ baobab empathy eog epiphany evince
@ -32,7 +33,9 @@ let
nautilus-sendto dconf-editor vinagre
];
gamesPackages = with gnome3; [ swell-foop lightsoff iagno ];
gamesPackages = with gnome3; [ swell-foop lightsoff iagno
tali quadrapassel
];
inherit (pkgs) glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra;
inherit (pkgs.gnome2) ORBit2;
@ -50,6 +53,7 @@ let
gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
version = "3.16";
maintainers = with pkgs.lib.maintainers; [ lethalman ];
# Simplify the nixos module and gnome packages
defaultIconTheme = adwaita-icon-theme;
@ -290,6 +294,10 @@ let
swell-foop = callPackage ./games/swell-foop { };
tali = callPackage ./games/tali { };
quadrapassel = callPackage ./games/quadrapassel { };
#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
california = callPackage ./misc/california { };

View file

@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Gnome docking library";
homepage = https://developer.gnome.org/gdl/;
maintainers = [ maintainers.lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

View file

@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Iagno;
description = "Computer version of the game Reversi, more popularly called Othello";
maintainers = with maintainers; [ lethalman ];
maintainers = gnome3.maintainers;
license = licenses.gpl2;
platforms = platforms.linux;
};

Some files were not shown because too many files have changed in this diff Show more