Merge master into x-updates

This commit is contained in:
Vladimír Čunát 2014-02-08 09:12:51 +01:00
commit 9b69117fec
133 changed files with 2282 additions and 949 deletions

View File

@ -1,158 +0,0 @@
- The standard environment
(Some of this can be moved from the Nix manual)
- Special attributes
- Generic builder
- Helper functions
- GCC / ld wrapper (+ env vars)
- Phases (+ how to add phases) and hooks
- Override functions for stdenv
- Overriding GCC
- Overriding the setup script
- Predefined override functions in all-packages.nix: static binary
stdenv, dietlibc stdenv
- Stdenv bootstrap; how to update the Linux bootstrap binaries
- Specific platform notes (Linux, Native, Cygwin, Mingw)
- Support for specific languages
- Perl
- Generic Perl builder
- Python
- Wrapper generation
- Haskell
- TODO
- Java
- TODO; Java needs lots of improvement
- TeX/LaTeX
- Special support for building TeX documents
- Special kinds of applications
- OpenGL apps
- Binary-only apps
- Linux kernel modules
- Mozilla plugins/extensions
- X apps
- KDE apps
- GConf-based apps
- Programs that need wrappers
- makeWrapper etc.
- Initial ramdisks
- Library functions
- i.e. in lib/default.nix
- Specific package notes
- Linux kernel; how to update; feature tests
- X.org; how to update
- Gnome; how to update
- GCC?
- GHC?
- ...
- Meta attributes
- License attr; possible values
- Virtual machine support (for the build farm)
- vmtools
- KVM notes
- Performing a build in a VM
- In the host FS
- In a disk image
- RPM builds
- RPM image creation
- Deb builds
- Deb image creation
- Debugging VM builds
- Guidelines for Nixpkgs contributions
- File naming conventions
- Versioning of packages
- Tree organisation
- Variable naming
- Layout / indentations style
- Output FS hierarchy (e.g. $out/share/man instead of $out/man)
- Misc
- Building outside of the Nixpkgs tree
- Config options
- Downloading stuff
- fetchurl
- mirror:// scheme
- fetchsvn
- fetchcvs
- fetchdarcs
- Appendix: Nixpkgs config options

View File

@ -12,7 +12,10 @@ rec {
# Filter out Subversion and CVS directories.
(type == "directory" && (baseName == ".git" || baseName == ".svn" || baseName == "CVS" || baseName == ".hg")) ||
# Filter out backup files.
(lib.hasSuffix "~" baseName)
lib.hasSuffix "~" baseName ||
# Filter out generates files.
lib.hasSuffix ".o" baseName ||
lib.hasSuffix ".so" baseName
);
in src: builtins.filterSource filter src;

View File

@ -5,7 +5,25 @@ with pkgs.lib;
let
ids = config.ids;
users = config.users;
cfg = config.users;
passwordDescription = ''
The options <literal>hashedPassword</literal>,
<literal>password</literal> and <literal>passwordFile</literal>
controls what password is set for the user.
<literal>hashedPassword</literal> overrides both
<literal>password</literal> and <literal>passwordFile</literal>.
<literal>password</literal> overrides <literal>passwordFile</literal>.
If none of these three options are set, no password is assigned to
the user, and the user will not be able to do password logins.
If the option <literal>users.mutableUsers</literal> is true, the
password defined in one of the three options will only be set when
the user is created for the first time. After that, you are free to
change the password with the ordinary user management commands. If
<literal>users.mutableUsers</literal> is false, you cannot change
user passwords, they will always be set according to the password
options.
'';
userOpts = { name, config, ... }: {
@ -28,9 +46,8 @@ let
};
uid = mkOption {
type = with types; uniq (nullOr int);
default = null;
description = "The account UID. If undefined, NixOS will select a free UID.";
type = with types; uniq int;
description = "The account UID.";
};
group = mkOption {
@ -60,31 +77,54 @@ let
createHome = mkOption {
type = types.bool;
default = false;
description = "If true, the home directory will be created automatically.";
description = ''
If true, the home directory will be created automatically. If this
option is true and the home directory already exists but is not
owned by the user, directory owner and group will be changed to
match the user.
'';
};
useDefaultShell = mkOption {
type = types.bool;
default = false;
description = "If true, the user's shell will be set to <literal>users.defaultUserShell</literal>.";
description = ''
If true, the user's shell will be set to
<literal>cfg.defaultUserShell</literal>.
'';
};
hashedPassword = mkOption {
type = with types; uniq (nullOr str);
default = null;
description = ''
Specifies the (hashed) password for the user.
${passwordDescription}
'';
};
password = mkOption {
type = with types; uniq (nullOr str);
default = null;
description = ''
The user's password. If undefined, no password is set for
the user. Warning: do not set confidential information here
because it is world-readable in the Nix store. This option
should only be used for public accounts such as
<literal>guest</literal>.
Specifies the (clear text) password for the user.
Warning: do not set confidential information here
because it is world-readable in the Nix store. This option
should only be used for public accounts.
${passwordDescription}
'';
};
isSystemUser = mkOption {
type = types.bool;
default = true;
description = "Indicates if the user is a system user or not.";
passwordFile = mkOption {
type = with types; uniq (nullOr string);
default = null;
description = ''
The path to a file that contains the user's password. The password
file is read on each system activation. The file should contain
exactly one line, which should be the password in an encrypted form
that is suitable for the <literal>chpasswd -e</literal> command.
${passwordDescription}
'';
};
createUser = mkOption {
@ -96,19 +136,11 @@ let
then not modify any of the basic properties for the user account.
'';
};
isAlias = mkOption {
type = types.bool;
default = false;
description = "If true, the UID of this user is not required to be unique and can thus alias another user.";
};
};
config = {
name = mkDefault name;
uid = mkDefault (attrByPath [name] null ids.uids);
shell = mkIf config.useDefaultShell (mkDefault users.defaultUserShell);
shell = mkIf config.useDefaultShell (mkDefault cfg.defaultUserShell);
};
};
@ -123,29 +155,114 @@ let
};
gid = mkOption {
type = with types; uniq (nullOr int);
default = null;
description = "The GID of the group. If undefined, NixOS will select a free GID.";
type = with types; uniq int;
description = "The GID of the group.";
};
members = mkOption {
type = with types; listOf string;
default = [];
description = ''
The user names of the group members, added to the
<literal>/etc/group</literal> file.
'';
};
};
config = {
name = mkDefault name;
gid = mkDefault (attrByPath [name] null ids.gids);
};
};
# Note: the 'X' in front of the password is to distinguish between
# having an empty password, and not having a password.
serializedUser = u: "${u.name}\n${u.description}\n${if u.uid != null then toString u.uid else ""}\n${u.group}\n${toString (concatStringsSep "," u.extraGroups)}\n${u.home}\n${u.shell}\n${toString u.createHome}\n${if u.password != null then "X" + u.password else ""}\n${toString u.isSystemUser}\n${toString u.createUser}\n${toString u.isAlias}\n";
usersFile = pkgs.writeText "users" (
getGroup = gname:
let
p = partition (u: u.isAlias) (attrValues config.users.extraUsers);
in concatStrings (map serializedUser p.wrong ++ map serializedUser p.right));
groups = mapAttrsToList (n: g: g) (
filterAttrs (n: g: g.name == gname) cfg.extraGroups
);
in
if length groups == 1 then head groups
else if groups == [] then throw "Group ${gname} not defined"
else throw "Group ${gname} has multiple definitions";
getUser = uname:
let
users = mapAttrsToList (n: u: u) (
filterAttrs (n: u: u.name == uname) cfg.extraUsers
);
in
if length users == 1 then head users
else if users == [] then throw "User ${uname} not defined"
else throw "User ${uname} has multiple definitions";
mkGroupEntry = gname:
let
g = getGroup gname;
users = mapAttrsToList (n: u: u.name) (
filterAttrs (n: u: elem g.name u.extraGroups) cfg.extraUsers
);
in concatStringsSep ":" [
g.name "x" (toString g.gid)
(concatStringsSep "," (users ++ (filter (u: !(elem u users)) g.members)))
];
mkPasswdEntry = uname: let u = getUser uname; in
concatStringsSep ":" [
u.name "x" (toString u.uid)
(toString (getGroup u.group).gid)
u.description u.home u.shell
];
sortOn = a: sort (as1: as2: lessThan (getAttr a as1) (getAttr a as2));
groupFile = pkgs.writeText "group" (
concatStringsSep "\n" (map (g: mkGroupEntry g.name) (
sortOn "gid" (attrValues cfg.extraGroups)
))
);
passwdFile = pkgs.writeText "passwd" (
concatStringsSep "\n" (map (u: mkPasswdEntry u.name) (
sortOn "uid" (filter (u: u.createUser) (attrValues cfg.extraUsers))
))
);
# If mutableUsers is true, this script adds all users/groups defined in
# users.extra{Users,Groups} to /etc/{passwd,group} iff there isn't any
# existing user/group with the same name in those files.
# If mutableUsers is false, the /etc/{passwd,group} files will simply be
# replaced with the users/groups defined in the NixOS configuration.
# The merging procedure could certainly be improved, and instead of just
# keeping the lines as-is from /etc/{passwd,group} they could be combined
# in some way with the generated content from the NixOS configuration.
merger = src: pkgs.writeScript "merger" ''
#!${pkgs.bash}/bin/bash
PATH=${pkgs.gawk}/bin:${pkgs.gnugrep}/bin:$PATH
${if !cfg.mutableUsers
then ''cp ${src} $1.tmp''
else ''awk -F: '{ print "^"$1":.*" }' $1 | egrep -vf - ${src} | cat $1 - > $1.tmp''
}
# set mtime to +1, otherwise change might go unnoticed (vipw/vigr only looks at mtime)
touch -m -t $(date -d @$(($(stat -c %Y $1)+1)) +%Y%m%d%H%M.%S) $1.tmp
mv -f $1.tmp $1
'';
idsAreUnique = set: idAttr: !(fold (name: args@{ dup, acc }:
let
id = builtins.toString (builtins.getAttr idAttr (builtins.getAttr name set));
exists = builtins.hasAttr id acc;
newAcc = acc // (builtins.listToAttrs [ { name = id; value = true; } ]);
in if dup then args else if exists
then builtins.trace "Duplicate ${idAttr} ${id}" { dup = true; acc = null; }
else { dup = false; acc = newAcc; }
) { dup = false; acc = {}; } (builtins.attrNames set)).dup;
uidsAreUnique = idsAreUnique cfg.extraUsers "uid";
gidsAreUnique = idsAreUnique cfg.extraGroups "gid";
in
{
@ -154,6 +271,36 @@ in
options = {
users.mutableUsers = mkOption {
type = types.bool;
default = true;
description = ''
If true, you are free to add new users and groups to the system
with the ordinary <literal>useradd</literal> and
<literal>groupadd</literal> commands. On system activation, the
existing contents of the <literal>/etc/passwd</literal> and
<literal>/etc/group</literal> files will be merged with the
contents generated from the <literal>users.extraUsers</literal> and
<literal>users.extraGroups</literal> options. If
<literal>mutableUsers</literal> is false, the contents of the user and
group files will simply be replaced on system activation. This also
holds for the user passwords; if this option is false, all changed
passwords will be reset according to the
<literal>users.extraUsers</literal> configuration on activation. If
this option is true, the initial password for a user will be set
according to <literal>users.extraUsers</literal>, but existing passwords
will not be changed.
'';
};
users.enforceIdUniqueness = mkOption {
type = types.bool;
default = true;
description = ''
Whether to require that no two users/groups share the same uid/gid.
'';
};
users.extraUsers = mkOption {
default = {};
type = types.loaOf types.optionSet;
@ -194,11 +341,17 @@ in
example = "!";
description = ''
The (hashed) password for the root account set on initial
installation. The empty string denotes that root can login
installation. The empty string denotes that root can login
locally without a password (but not via remote services such
as SSH, or indirectly via <command>su</command> or
<command>sudo</command>). The string <literal>!</literal>
<command>sudo</command>). The string <literal>!</literal>
prevents root from logging in using a password.
Note, setting this option sets
<literal>users.extraUsers.root.hashedPassword</literal>.
Note, if <literal>users.mutableUsers</literal> is false
you cannot change the root password manually, so in that case
the name of this option is a bit misleading, since it will define
the root password beyond the user initialisation phase.
'';
};
@ -211,144 +364,94 @@ in
users.extraUsers = {
root = {
uid = ids.uids.root;
description = "System administrator";
home = "/root";
shell = config.users.defaultUserShell;
shell = cfg.defaultUserShell;
group = "root";
hashedPassword = config.security.initialRootPassword;
};
nobody = {
uid = ids.uids.nobody;
description = "Unprivileged account (don't use!)";
group = "nogroup";
};
};
users.extraGroups = {
root = { };
wheel = { };
disk = { };
kmem = { };
tty = { };
floppy = { };
uucp = { };
lp = { };
cdrom = { };
tape = { };
audio = { };
video = { };
dialout = { };
nogroup = { };
users = { };
nixbld = { };
utmp = { };
adm = { }; # expected by journald
root.gid = ids.gids.root;
wheel.gid = ids.gids.wheel;
disk.gid = ids.gids.disk;
kmem.gid = ids.gids.kmem;
tty.gid = ids.gids.tty;
floppy.gid = ids.gids.floppy;
uucp.gid = ids.gids.uucp;
lp.gid = ids.gids.lp;
cdrom.gid = ids.gids.cdrom;
tape.gid = ids.gids.tape;
audio.gid = ids.gids.audio;
video.gid = ids.gids.video;
dialout.gid = ids.gids.dialout;
nogroup.gid = ids.gids.nogroup;
users.gid = ids.gids.users;
nixbld.gid = ids.gids.nixbld;
utmp.gid = ids.gids.utmp;
adm.gid = ids.gids.adm;
};
system.activationScripts.rootPasswd = stringAfter [ "etc" ]
''
# If there is no password file yet, create a root account with an
# empty password.
if ! test -e /etc/passwd; then
rootHome=/root
touch /etc/passwd; chmod 0644 /etc/passwd
touch /etc/group; chmod 0644 /etc/group
touch /etc/shadow; chmod 0600 /etc/shadow
# Can't use useradd, since it complains that it doesn't know us
# (bootstrap problem!).
echo "root:x:0:0:System administrator:$rootHome:${config.users.defaultUserShell}" >> /etc/passwd
echo "root:${config.security.initialRootPassword}:::::::" >> /etc/shadow
fi
system.activationScripts.users =
let
mkhomeUsers = filterAttrs (n: u: u.createHome) cfg.extraUsers;
setpwUsers = filterAttrs (n: u: u.createUser) cfg.extraUsers;
setpw = n: u: ''
setpw=yes
${optionalString cfg.mutableUsers ''
test "$(getent shadow '${u.name}' | cut -d: -f2)" != "x" && setpw=no
''}
if [ "$setpw" == "yes" ]; then
${if !(isNull u.hashedPassword)
then ''
echo "${u.name}:${u.hashedPassword}" | \
${pkgs.shadow}/sbin/chpasswd -e''
else if u.password == ""
then "passwd -d '${u.name}' &>/dev/null"
else if !(isNull u.password)
then ''
echo "${u.name}:${u.password}" | ${pkgs.shadow}/sbin/chpasswd''
else if !(isNull u.passwordFile)
then ''
echo -n "${u.name}:" | cat - "${u.passwordFile}" | \
${pkgs.shadow}/sbin/chpasswd -e
''
else "passwd -l '${u.name}' &>/dev/null"
}
fi
'';
mkhome = n: u:
let
uid = toString u.uid;
gid = toString ((getGroup u.group).gid);
h = u.home;
in ''
test -a "${h}" || mkdir -p "${h}" || true
test "$(stat -c %u "${h}")" = ${uid} || chown ${uid} "${h}" || true
test "$(stat -c %g "${h}")" = ${gid} || chgrp ${gid} "${h}" || true
'';
in stringAfter [ "etc" ] ''
touch /etc/group
touch /etc/passwd
VISUAL=${merger groupFile} ${pkgs.shadow}/sbin/vigr &>/dev/null
VISUAL=${merger passwdFile} ${pkgs.shadow}/sbin/vipw &>/dev/null
${pkgs.shadow}/sbin/grpconv
${pkgs.shadow}/sbin/pwconv
${concatStrings (mapAttrsToList mkhome mkhomeUsers)}
${concatStrings (mapAttrsToList setpw setpwUsers)}
'';
# Print a reminder for users to set a root password.
environment.interactiveShellInit =
''
if [ "$UID" = 0 ]; then
read _l < /etc/shadow
if [ "''${_l:0:6}" = root:: ]; then
cat >&2 <<EOF
Warning: Your root account has a null password, allowing local users
to login as root. Please set a non-null password using \`passwd', or
disable password-based root logins using \`passwd -l'.
EOF
fi
unset _l
fi
'';
# for backwards compatibility
system.activationScripts.groups = stringAfter [ "users" ] "";
system.activationScripts.users = stringAfter [ "groups" ]
''
echo "updating users..."
cat ${usersFile} | while true; do
read name || break
read description
read uid
read group
read extraGroups
read home
read shell
read createHome
read password
read isSystemUser
read createUser
read isAlias
if [ -z "$createUser" ]; then
continue
fi
if ! curEnt=$(getent passwd "$name"); then
useradd ''${isSystemUser:+--system} \
--comment "$description" \
''${uid:+--uid $uid} \
--gid "$group" \
--groups "$extraGroups" \
--home "$home" \
--shell "$shell" \
''${createHome:+--create-home} \
''${isAlias:+--non-unique} \
"$name"
if test "''${password:0:1}" = 'X'; then
(echo "''${password:1}"; echo "''${password:1}") | ${pkgs.shadow}/bin/passwd "$name"
fi
else
#echo "updating user $name..."
oldIFS="$IFS"; IFS=:; set -- $curEnt; IFS="$oldIFS"
prevUid=$3
prevHome=$6
# Don't change the home directory if it's the same to prevent
# unnecessary warnings about logged in users.
if test "$prevHome" = "$home"; then unset home; fi
usermod \
--comment "$description" \
--gid "$group" \
--groups "$extraGroups" \
''${home:+--home "$home"} \
--shell "$shell" \
"$name"
fi
done
'';
system.activationScripts.groups = stringAfter [ "rootPasswd" "binsh" "etc" "var" ]
''
echo "updating groups..."
createGroup() {
name="$1"
gid="$2"
if ! curEnt=$(getent group "$name"); then
groupadd --system \
''${gid:+--gid $gid} \
"$name"
fi
}
${flip concatMapStrings (attrValues config.users.extraGroups) (g: ''
createGroup '${g.name}' '${toString g.gid}'
'')}
'';
assertions = [ { assertion = !cfg.enforceIdUniqueness || (uidsAreUnique && gidsAreUnique); message = "uids and gids must be unique!"; } ];
};

View File

@ -110,6 +110,7 @@
openldap = 99;
memcached = 100;
cgminer = 101;
munin = 102;
# When adding a uid, make sure it doesn't match an existing gid.
@ -199,6 +200,7 @@
haproxy = 92;
openldap = 93;
connman = 94;
munin = 95;
# When adding a gid, make sure it doesn't match an existing uid.

View File

@ -58,7 +58,8 @@ in
config = {
environment.systemPackages = [ pkgs.shadow ];
environment.systemPackages =
pkgs.lib.optional config.users.mutableUsers pkgs.shadow;
environment.etc =
[ { # /etc/login.defs: global configuration for pwdutils. You
@ -94,6 +95,8 @@ in
groupmems = { rootOK = true; };
groupdel = { rootOK = true; };
login = { startSession = true; allowNullPassword = true; showMotd = true; updateWtmp = true; };
chpasswd = { rootOK = true; };
chgpasswd = { rootOK = true; };
};
security.setuidPrograms = [ "passwd" "chfn" "su" "newgrp" ];

View File

@ -173,10 +173,12 @@ in
name = "munin";
description = "Munin monitoring user";
group = "munin";
uid = config.ids.uids.munin;
}];
users.extraGroups = [{
name = "munin";
gid = config.ids.gids.munin;
}];
}) (mkIf nodeCfg.enable {

View File

@ -17,7 +17,7 @@ in
# Note: the order in which desktop manager modules are imported here
# determines the default: later modules (if enabled) are preferred.
# E.g., if KDE is enabled, it supersedes xterm.
imports = [ ./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./e17.nix ];
imports = [ ./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./e17.nix ./gnome3.nix ];
options = {

View File

@ -0,0 +1,58 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
cfg = config.services.xserver.desktopManager.gnome3;
gnome3 = pkgs.gnome3;
in {
options = {
services.xserver.desktopManager.gnome3.enable = mkOption {
default = false;
example = true;
description = "Enable Gnome 3 desktop manager.";
};
};
config = mkIf cfg.enable {
# Enable helpful DBus services.
security.polkit.enable = true;
services.udisks2.enable = true;
networking.networkmanager.enable = true;
services.upower.enable = config.powerManagement.enable;
fonts.extraFonts = [ pkgs.dejavu_fonts ];
services.xserver.desktopManager.session = singleton
{ name = "gnome3";
start = ''
# Set GTK_DATA_PREFIX so that GTK+ can find the themes
export GTK_DATA_PREFIX=${config.system.path}
# find theme engines
export GTK_PATH=${config.system.path}/lib/gtk-3.0:{config.system.path}/lib/gtk-2.0
export XDG_MENU_PREFIX=gnome
${gnome3.gnome_session}/bin/gnome-session&
waitPID=$!
'';
};
environment.systemPackages =
[ gnome3.evince
gnome3.eog
pkgs.ibus
gnome3.gnome_shell
gnome3.gnome_settings_daemon
gnome3.gnome_terminal
gnome3.gnome_icon_theme
gnome3.gnome_themes_standard
];
};
}

View File

@ -29,7 +29,7 @@ in
start =
''
# Set GTK_PATH so that GTK+ can find the theme engines.
export GTK_PATH=${config.system.path}/lib/gtk-2.0
export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
export GTK_DATA_PREFIX=${config.system.path}

View File

@ -61,13 +61,18 @@ in {
};
config = mkIf cfg.enable {
assertions = pkgs.lib.singleton {
assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
message = "Option driSupport32Bit only makes sens on a 64-bit system.";
};
system.activationScripts.setup-opengl.deps = [];
system.activationScripts.setup-opengl.text = ''
rm -f /run/opengl-driver{,-32}
${optionalString (!cfg.driSupport32Bit) "ln -sf opengl-driver /run/opengl-driver-32"}
${# !!! The OpenGL driver depends on what's detected at runtime.
if elem "nvidia" cfg.videoDrivers then
${optionalString (pkgs.stdenv.isi686) "ln -sf opengl-driver /run/opengl-driver-32"}
''
#TODO: The OpenGL driver should depend on what's detected at runtime.
+( if elem "nvidia" cfg.videoDrivers then
''
ln -sf ${kernelPackages.nvidia_x11} /run/opengl-driver
${optionalString cfg.driSupport32Bit
@ -89,8 +94,7 @@ in {
${optionalString cfg.driSupport32Bit
"ln -sf ${pkgs_i686.mesa_drivers} /run/opengl-driver-32"}
''
}
'';
);
environment.variables.LD_LIBRARY_PATH =
[ "/run/opengl-driver/lib" "/run/opengl-driver-32/lib" ]

View File

@ -74,8 +74,8 @@ def remove_old_entries(gens):
slice_end = -1 * len(".conf")
known_paths = []
for gen in gens:
known_paths.append copy_from_profile(gen, "kernel", True)
known_paths.append copy_from_profile(gen, "initrd", True)
known_paths.append(copy_from_profile(gen, "kernel", True))
known_paths.append(copy_from_profile(gen, "initrd", True))
for path in glob.iglob("@efiSysMountPoint@/loader/entries/nixos-generation-[1-9]*.conf"):
try:
gen = int(path[slice_start:slice_end])

View File

@ -131,6 +131,15 @@ if ! mountpoint -q /run; then
mount -t tmpfs -o "mode=0755,size=@runSize@" none /run
fi
# Create a ramfs on /run/keys to hold secrets that shouldn't
# be written to disk (generally used for nixops, harmless
# elsehwere)
if ! mountpoint -q /run/keys; then
rm -rf /run/keys
mkdir -m 0700 /run/keys
mount -t ramfs none /run/keys
fi
mkdir -m 0755 -p /run/lock

View File

@ -387,7 +387,7 @@ in
# When building a regular system configuration, override whatever
# video driver the host uses.
services.xserver.videoDriver = mkVMOverride null;
services.xserver.videoDrivers = mkVMOverride [ "vesa" ];
services.mesa.videoDrivers = mkVMOverride [ "vesa" ];
services.xserver.defaultDepth = mkVMOverride 0;
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];
services.xserver.monitorSection =

View File

@ -52,7 +52,7 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly...
serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/sbin/VBoxService VBoxService --foreground";
};
services.xserver.videoDrivers = mkOverride 50 [ "virtualbox" ];
services.mesa.videoDrivers = mkOverride 50 [ "virtualbox" ];
services.xserver.config =
''

View File

@ -20,7 +20,13 @@ stdenv.mkDerivation rec {
sha256 = "1nb8ljrbrp1zga083g3b633xi3izxxm4jipw1qgial1x16mqc0hz";
};
patches = [ ./lightdm-gtk-greeter.patch ];
patches = [
./lightdm-gtk-greeter.patch
(fetchurl { # CVE-2014-0979, https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1266449
url = "https://launchpadlibrarian.net/161796033/07_fix-NULL-username.patch";
sha256 = "1sqkhsz1z10k6vlmlrqrfx452lznv30885fmnzc73p2zxdlw9q1a";
})
];
patchFlags = "-p1";
buildInputs = [ pkgconfig lightdm intltool ]

View File

@ -39,11 +39,14 @@ let
7z a -tzip $out/$name/lib/snappy-java-1.0.5.jar .
mkdir -p $out/bin
jdk=${jdk}/lib/openjdk
makeWrapper $out/$name/bin/idea.sh $out/bin/idea \
--prefix PATH : ${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin \
--prefix LD_RUN_PATH : ${stdenv.gcc.gcc}/lib/ \
--prefix JDK_HOME : ${jdk} \
--prefix IDEA_JDK : ${jdk}
--prefix JDK_HOME : $jdk \
--prefix IDEA_JDK : $jdk
mkdir -p $out/share/applications
cp ${ideaItem}/share/applications/* $out/share/applications

View File

@ -11,10 +11,10 @@ let
};
in
stdenv.mkDerivation {
name = "netbeans-7.2";
name = "netbeans-7.4";
src = fetchurl {
url = http://download.netbeans.org/netbeans/7.2/final/zip/netbeans-7.2-201207171143-ml.zip;
sha256 = "18ya1w291hdnc35vb12yqnai82wmqm7351wn82fax12kzha5fmci";
url = http://download.netbeans.org/netbeans/7.4/final/zip/netbeans-7.4-201310111528.zip;
sha256 = "0nrnghnsdix5cmp86xi1gmvarhjk2k8mlbld3dfa9impm8gpv6mx";
};
buildCommand = ''
# Unpack and copy the stuff
@ -25,7 +25,9 @@ stdenv.mkDerivation {
# Create a wrapper capable of starting it
mkdir -p $out/bin
makeWrapper $out/netbeans/bin/netbeans $out/bin/netbeans \
--prefix PATH : ${jdk}/bin:${which}/bin
--prefix PATH : ${jdk}/bin:${which}/bin \
--prefix JAVA_HOME : ${jdk}/lib/openjdk \
--add-flags "--jdkhome ${jdk}/lib/openjdk"
# Create desktop item, so we can pick it from the KDE/GNOME menu
mkdir -p $out/share/applications

View File

@ -23,7 +23,7 @@ new file mode 100644
index 0000000..a2f9918
--- /dev/null
+++ b/runtime/syntax/nix.vim
@@ -0,0 +1,40 @@
@@ -0,0 +1,42 @@
+" Vim syntax file
+" Language: nix
+" Maintainer: Marc Weber <marco-oweber@gmx.de>
@ -46,8 +46,8 @@ index 0000000..a2f9918
+ \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList
+ \ __head __tail __add __sub __lessThan __substring __stringLength
+
+syn match nixAttr "\w\+\ze\s*="
+syn match nixFuncArg "\zs\w\+\ze\s*:"
+syn match nixAttr "[a-zA-Z0-9-_]\+\ze\s*="
+syn match nixFuncArg "\zs[a-zA-Z0-9-_]\+\ze\s*:"
+syn region nixStringParam start=+\${+ end=+}+
+syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
+syn match nixEndOfLineComment "#.*$"
@ -66,3 +66,5 @@ index 0000000..a2f9918
+hi def link nixEndOfLineComment Comment
+hi def link nixAttr Identifier
+hi def link nixFuncArg Identifier
+
+let b:current_syntax = "nix"

View File

@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
description = "The GNU Image Manipulation Program";
homepage = http://www.gimp.org/;
license = "GPL";
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,32 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk, freetype
, fontconfig, libart_lgpl, libtiff, libjpeg, libpng, libexif, zlib, perl
, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl_0_0_22, gegl_0_0_22
}:
stdenv.mkDerivation rec {
name = "gimp-2.6.12";
src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gimp/v2.6/${name}.tar.bz2";
sha256 = "0qpcgaa4pdqqhyyy8vjvzfflxgsrrs25zk79gixzlnbzq3qwjlym";
};
buildInputs = [
pkgconfig gtk freetype fontconfig
libart_lgpl libtiff libjpeg libpng libexif zlib perl
perlXMLParser python pygtk gettext intltool babl_0_0_22 gegl_0_0_22
];
passthru = { inherit gtk; }; # probably its a good idea to use the same gtk in plugins ?
configureFlags = [ "--disable-print" ];
# "screenshot" needs this.
NIX_LDFLAGS = "-rpath ${xlibs.libX11}/lib";
meta = {
description = "The GNU Image Manipulation Program";
homepage = http://www.gimp.org/;
license = "GPL";
};
}

View File

@ -24,6 +24,8 @@ stdenv.mkDerivation (rec {
outputs = [ "out" "terminfo" ];
patches = [ ./rxvt-unicode-9.06-font-width.patch ];
preConfigure =
''
mkdir -p $terminfo/share/terminfo

View File

@ -0,0 +1,21 @@
--- a/src/rxvtfont.C 2008-07-09 12:21:45.000000000 +0400
+++ b/src/rxvtfont.C 2009-10-30 14:32:53.000000000 +0300
@@ -1195,12 +1195,14 @@
XGlyphInfo g;
XftTextExtents16 (disp, f, &ch, 1, &g);
- g.width -= g.x;
-
+/*
+ * bukind: don't use g.width as a width of a character!
+ * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial
+ */
int wcw = WCWIDTH (ch);
- if (wcw > 0) g.width = (g.width + wcw - 1) / wcw;
+ if (wcw > 1) g.xOff = g.xOff / wcw;
+ if (width < g.xOff) width = g.xOff;
- if (width < g.width ) width = g.width;
if (height < g.height ) height = g.height;
if (glheight < g.height - g.y) glheight = g.height - g.y;
}

View File

@ -1,12 +1,13 @@
{ stdenv, fetchgit, kdelibs }:
stdenv.mkDerivation rec {
name = "kwebkitpart-1.3.2";
name = "kwebkitpart-${version}";
version = "1.3.3";
src = fetchgit {
url = git://anongit.kde.org/kwebkitpart;
rev = "292f32fda933b2ead5a61ff1ec457f839fad5c85";
sha256 = "1b2jar9b1yb3gy9fnq8dn2n4z8lffb6pfrj9jc4rjzv5b3rwh1ak";
rev = "refs/tags/v${version}";
sha256 = "0kszffgg3zpf319lmzlmdba5gq8kdr5xwb69xwy4s2abc9nvwvbi";
};
buildInputs = [ kdelibs ];

View File

@ -35,6 +35,8 @@
}:
let
# -> http://get.adobe.com/flashplayer/
version = "11.2.202.336";
src =
if stdenv.system == "x86_64-linux" then
@ -43,10 +45,9 @@ let
# http://labs.adobe.com/technologies/flashplayer10/faq.html
throw "no x86_64 debugging version available"
else rec {
# -> http://labs.adobe.com/downloads/flashplayer10.html
version = "11.2.202.310";
inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "03r9r7h3l4i15hw62k9il6pjzq122nldbgxr37b4y10xp08a9izj";
sha256 = "1wri6y5vllgs452dfklv23k7bp5daajnaqblkn5cb2gl28l5xcni";
}
else if stdenv.system == "i686-linux" then
if debug then {
@ -55,9 +56,9 @@ let
url = http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_plugin_debug.i386.tar.gz;
sha256 = "1z3649lv9sh7jnwl8d90a293nkaswagj2ynhsr4xmwiy7c0jz2lk";
} else rec {
version = "11.2.202.310";
inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "0qf09p92silp81pjfcg2vcfcfi1padizmb58q5iaarnapgkawlbh";
sha256 = "0mjxjbj75r74gqpmqzqa6vlrk2wv7r358wcqbmg132bhv8kaph85";
}
else throw "Flash Player is not supported on this platform";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "hadoop-2.0.2-alpha";
name = "hadoop-2.2.0";
src = fetchurl {
url = "mirror://apache/hadoop/common/${name}/${name}.tar.gz";
sha256 = "1r7ailmqhny3pl5nb8bcblnhckszy6hb9n58kwa3s4b8qfk87gkb";
sha256 = "0r0kx8arsrvmcfy0693hpv4cz3i0razvk1xa3yhlf3ybb80a8106";
};
buildInputs = [ makeWrapper ];

View File

@ -3,7 +3,7 @@
let
pn = "konversation";
v = "1.4";
v = "1.5";
in
stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://kde/stable/${pn}/${v}/src/${name}.tar.xz";
sha256 = "030vsbb18dlzsnjl3fzyd1m9wvvksiyc1lm45abi4q6x4xd60knv";
sha256 = "0vsl34kiar7kbsgncycwd7f66f493fip6d635qlprqn1gqhycb9q";
};
buildInputs = [ cmake qt4 perl gettext libXScrnSaver kdelibs kdepimlibs

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, json_glib, curl }:
{ stdenv, fetchurl, pkgconfig, intltool, gtk3, json_glib, curl }:
stdenv.mkDerivation rec {
name = "transmission-remote-gtk-1.0.1";
name = "transmission-remote-gtk-1.1.1";
src = fetchurl {
url = "http://transmission-remote-gtk.googlecode.com/files/${name}.tar.gz";
sha256 = "b1ae032dd52b2d7975656913e4fe39e7f74d29ef8138292d8b82318ff9afed6f";
sha256 = "1jbh2pm4i740cmzqd2r7zxnqqipvv2v2ndmnmk53nqrxcbgc4nlz";
};
buildInputs = [ pkgconfig intltool gtk json_glib curl ];
buildInputs = [ pkgconfig intltool gtk3 json_glib curl ];
meta = {
description = "GTK remote control for the Transmission BitTorrent client";

View File

@ -6,11 +6,11 @@
}:
stdenv.mkDerivation rec {
name = "calligra-2.7.2";
name = "calligra-2.7.5";
src = fetchurl {
url = "mirror://kde/stable/${name}/${name}.tar.xz";
sha256 = "1awnvv62fp5bjhi6fys37s6lpzxaig4v15m1zjlgxq82ig61w6sq";
sha256 = "0png8ac10xywxsml1z18as18kc9k9162l6an67hi6lgx0rv27ldi";
};
nativeBuildInputs = [ cmake perl pkgconfig ];

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
sed -i -e 's,/usr/local/kicad,'$out,g common/gestfich.cpp
'';
enableParallelBuilding = true;
#enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory
buildInputs = [ cmake mesa wxGTK zlib libX11 gettext ];

View File

@ -0,0 +1,11 @@
diff -ru orig/bzrlib/transport/http/_urllib2_wrappers.py bzr-2.6.0/bzrlib/transport/http/_urllib2_wrappers.py
--- orig/bzrlib/transport/http/_urllib2_wrappers.py 2013-07-27 13:50:53.000000000 +0200
+++ bzr-2.6.0/bzrlib/transport/http/_urllib2_wrappers.py 2014-02-04 18:34:15.838622492 +0100
@@ -86,6 +86,7 @@
u"/usr/local/share/certs/ca-root-nss.crt", # FreeBSD
# XXX: Needs checking, can't trust the interweb ;) -- vila 2012-01-25
u'/etc/openssl/certs/ca-certificates.crt', # Solaris
+ u'@certPath@',
]
def default_ca_certs():
if sys.platform == 'win32':

View File

@ -1,20 +1,28 @@
{ stdenv, fetchurl, pythonPackages }:
{ stdenv, fetchurl, pythonPackages, cacert }:
stdenv.mkDerivation rec {
version = "2.5";
release = ".1";
version = "2.6";
release = ".0";
name = "bazaar-${version}${release}";
src = fetchurl {
url = "http://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz";
sha256 = "10krjbzia2avn09p0cdlbx2wya0r5v11w5ymvyl72af5dkx4cwwn";
sha256 = "1c6sj77h5f97qimjc14kr532kgc0jk3wq778xrkqi0pbh9qpk509";
};
buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
buildInputs = [ pythonPackages.python pythonPackages.wrapPython cacert ];
# Readline support is needed by bzrtools.
pythonPath = [ pythonPackages.readline ];
# Bazaar can't find the certificates alone
patches = [ ./add_certificates.patch ];
postPatch = ''
substituteInPlace bzrlib/transport/http/_urllib2_wrappers.py \
--subst-var-by "certPath" "${cacert}/etc/ca-bundle.crt"
'';
installPhase = ''
python setup.py install --prefix=$out
wrapPythonPrograms

View File

@ -17,13 +17,14 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
mkdir -pv $out/bin $out/share/man/man1
mkdir -pv $out/bin $out/share/man/man1 $out/share/mr
cp -v mr $out/bin
cp -v webcheckout $out/bin
cp -v mr.1 $out/share/man/man1
cp -v webcheckout.1 $out/share/man/man1
cp -v lib/* $out/share/mr
'';
meta = {
description = "Multiple Repository management tool";
longDescription = ''The mr(1) command can checkout, update, or perform other actions on a
@ -53,4 +54,3 @@ stdenv.mkDerivation rec {
maintainers = [ stdenv.lib.maintainers.antono ];
};
}

View File

@ -0,0 +1,28 @@
{stdenv, fetchgit}:
stdenv.mkDerivation rec {
rev = "75c4c554eefbefb714fabd356933858edbce3b1e";
version = "1.20131229";
name = "vcsh-${version}_${rev}";
src = fetchgit {
inherit rev;
url = "https://github.com/RichiH/vcsh";
sha256 = "0rc82a8vnnk9q6q88z9s10873gqgdpppbpwy2yw8a7hydqrpn0hs";
};
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
installPhase = ''
mkdir -p $out/bin
cp vcsh $out/bin
'';
meta = {
description = "Version Control System for $HOME";
homepage = https://github.com/RichiH/vcsh;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.garbas ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -10,7 +10,13 @@
assert stdenv ? glibc;
let version = "0.8.10"; in
let version = "0.8.10";
patch_CVE = fetchurl {
url = "http://git.savannah.gnu.org/cgit/gnash.git/patch/?id=bb4dc77eecb6ed1b967e3ecbce3dac6c5e6f1527";
sha256 = "1g7ymbq9vxi0mwcgs2dpyd2sf30gaam7blza0ywiwj32f5wk62v1";
name = "CVE-2012-1175.patch";
};
in
stdenv.mkDerivation rec {
name = "gnash-${version}";
@ -21,6 +27,8 @@ stdenv.mkDerivation rec {
};
patchPhase = ''
patch -p1 < ${patch_CVE}
# Add all libs to `macros/libslist', a list of library search paths.
for lib in ${lib.concatStringsSep " "
(map (lib: "\"${lib}\"/lib")

View File

@ -220,7 +220,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
./Setup build ${self.buildTarget}
export GHC_PACKAGE_PATH=$(${ghc.GHCPackages})
test -n "$noHaddock" || ./Setup haddock
test -n "$noHaddock" || ./Setup haddock --html --hoogle
eval "$postBuild"
'';

View File

@ -18,21 +18,21 @@ let
clangVersion = (builtins.parseDrvName clang.name).version;
clangName = (builtins.parseDrvName clang.name).name;
in
stdenv.mkDerivation {
name =
(if name != "" then name else clangName + "-wrapper") +
(if clang != null && clangVersion != "" then "-" + clangVersion else "");
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
clangWrapper = ./clang-wrapper.sh;
ldWrapper = ./ld-wrapper.sh;
utils = ./utils.sh;
addFlags = ./add-flags;
inherit nativeTools nativeLibc nativePrefix clang clangVersion libcxx;
libcxxabi = libcxx.abi or null;
@ -42,7 +42,7 @@ stdenv.mkDerivation {
binutils = if nativeTools then null else binutils;
# The wrapper scripts use 'cat', so we may need coreutils
coreutils = if nativeTools then null else coreutils;
langC = true;
langCC = true;
shell = if shell == "" then stdenv.shell else
@ -65,7 +65,7 @@ stdenv.mkDerivation {
if stdenv.lib.hasSuffix "pc-gnu" stdenv.cross.config then "ld.so.1" else
abort "don't know the name of the dynamic linker for this platform");
};
meta =
let clang_ = if clang != null then clang else {}; in
(if clang_ ? meta then removeAttrs clang.meta ["priority"] else {}) //

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation {
name =
(if name != "" then name else gccName + "-wrapper") +
(if gcc != null && gccVersion != "" then "-" + gccVersion else "");
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
gccWrapper = ./gcc-wrapper.sh;
@ -39,13 +39,13 @@ stdenv.mkDerivation {
ldSolarisWrapper = ./ld-solaris-wrapper.sh;
utils = ./utils.sh;
addFlags = ./add-flags;
inherit nativeTools nativeLibc nativePrefix gcc;
libc = if nativeLibc then null else libc;
binutils = if nativeTools then null else binutils;
# The wrapper scripts use 'cat', so we may need coreutils
coreutils = if nativeTools then null else coreutils;
langC = if nativeTools then true else gcc.langC;
langCC = if nativeTools then true else gcc.langCC;
langFortran = if nativeTools then false else gcc ? langFortran;
@ -72,7 +72,7 @@ stdenv.mkDerivation {
if stdenv.lib.hasSuffix "pc-gnu" stdenv.cross.config then "ld.so.1" else
abort "don't know the name of the dynamic linker for this platform");
};
meta =
let gcc_ = if gcc != null then gcc else {}; in
(if gcc_ ? meta then removeAttrs gcc.meta ["priority"] else {}) //

View File

@ -51,7 +51,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
'';
installPhase = ''
eval "$preInstall"
eval "$preInstall"
export LOGNAME=root
${checkinstall}/sbin/checkinstall --nodoc -y -D \
@ -59,6 +59,8 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
--requires="${concatStringsSep "," debRequires}" \
--provides="${concatStringsSep "," debProvides}" \
${optionalString (src ? version) "--pkgversion=$(echo ${src.version} | tr _ -)"} \
''${debMaintainer:+--maintainer="'$debMaintainer'"} \
$checkInstallFlags \
make install
mkdir -p $out/debs
@ -79,7 +81,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
echo "file deb-extra $(ls $i/debs/*.deb | sort | head -1)" >> $out/nix-support/hydra-build-products
done
eval "$postInstall"
eval "$postInstall"
''; # */
meta = (if args ? meta then args.meta else {}) // {

View File

@ -27,7 +27,7 @@ rec {
} // args);
coverageAnalysis = args: nixBuild (
{ inherit lcov;
{ inherit lcov enableCoverageInstrumentation makeCoverageAnalysisReport;
doCoverageAnalysis = true;
} // args);

View File

@ -15,6 +15,7 @@
, failureHook ? null
, prePhases ? []
, postPhases ? []
, buildInputs ? []
, ... } @ args:
stdenv.mkDerivation (
@ -61,13 +62,6 @@ stdenv.mkDerivation (
. ${./functions.sh}
origSrc=$src
src=$(findTarballs $src | head -1)
# Set GCC flags for coverage analysis, if desired.
if test -n "${toString doCoverageAnalysis}"; then
export NIX_CFLAGS_COMPILE="-O0 --coverage $NIX_CFLAGS_COMPILE"
export CFLAGS="-O0"
export CXXFLAGS="-O0"
fi
'';
initPhase = ''
@ -85,30 +79,13 @@ stdenv.mkDerivation (
prePhases = ["initPhase"] ++ prePhases;
# In the report phase, create a coverage analysis report.
coverageReportPhase = if doCoverageAnalysis then ''
${args.lcov}/bin/lcov --directory . --capture --output-file app.info
set -o noglob
${args.lcov}/bin/lcov --remove app.info $lcovFilter > app2.info
set +o noglob
mv app2.info app.info
mkdir $out/coverage
${args.lcov}/bin/genhtml app.info $lcovExtraTraceFiles -o $out/coverage > log
# Grab the overall coverage percentage for use in release overviews.
grep "Overall coverage rate" log | sed 's/^.*(\(.*\)%).*$/\1/' > $out/nix-support/coverage-rate
echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
'' else "";
buildInputs = buildInputs ++ stdenv.lib.optional doCoverageAnalysis args.makeCoverageAnalysisReport;
lcovFilter = ["/nix/store/*"] ++ lcovFilter;
inherit lcovExtraTraceFiles;
postPhases = postPhases ++
(stdenv.lib.optional doCoverageAnalysis "coverageReportPhase") ++ ["finalPhase"];
postPhases = postPhases ++ ["finalPhase"];
meta = (if args ? meta then args.meta else {}) // {
description = if doCoverageAnalysis then "Coverage analysis" else "Nix package for ${stdenv.system}";

View File

@ -0,0 +1,14 @@
# Force GCC to build with coverage instrumentation. Also disable
# optimisation, since it may confuse things.
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -O0 --coverage"
# FIXME: Handle the case where postUnpack is already set.
postUnpack() {
# This is an uberhack to prevent libtool from remoaving gcno
# files. This has been fixed in libtool, but there are packages
# out there with old ltmain.sh scripts. See
# http://www.mail-archive.com/libtool@gnu.org/msg10725.html
for i in $(find -name ltmain.sh); do
substituteInPlace $i --replace '*.$objext)' '*.$objext | *.gcno)'
done
}

View File

@ -0,0 +1,18 @@
postPhases+=" coverageReportPhase"
coverageReportPhase() {
lcov --directory . --capture --output-file app.info
set -o noglob
lcov --remove app.info ${lcovFilter:-"/nix/store/*"} > app2.info
set +o noglob
mv app2.info app.info
mkdir -p $out/coverage
genhtml app.info $lcovExtraTraceFiles -o $out/coverage > log
# Grab the overall coverage percentage for use in release overviews.
mkdir -p $out/nix-support
grep "Overall coverage rate" log | sed 's/^.*(\(.*\)%).*$/\1/' > $out/nix-support/coverage-rate
echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
}

View File

@ -9,7 +9,14 @@ stdenv.mkDerivation rec {
sha256 = "00zrip28issgmz2cqk5k824cbqpbixi5x7k88zxksdqpnq1f414d";
};
patches = [ ./alt.patch ];
patches = [
./alt.patch
( fetchurl { # CVE-2012-2738
url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/"
+ "vte/files/vte-0.28.2-limit-arguments.patch?revision=1.1";
sha256 = "1s8agx74wa7wlv9ybd5h3dp4hzf4ddg7piyan37g2ab3fnvg4jhn";
} )
];
buildInputs = [ intltool pkgconfig glib gtk ncurses ] ++
stdenv.lib.optionals pythonSupport [python pygtk];

View File

@ -0,0 +1,25 @@
{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, libcanberra
, libxml2, polkit, libxslt, libgtop, libsoup, colord, pulseaudio, fontconfig }:
# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
# TODO: colord_gtk
stdenv.mkDerivation rec {
name = "gnome-control-center-3.10.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-control-center/3.10/${name}.tar.xz";
sha256 = "1ac34kqkf174w0qc12p927dfhcm69xnv7fqzmbhjab56rn49wypn";
};
buildInputs = with gnome3;
[ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas
libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus
gnome_online_accounts libsoup colord pulseaudio fontconfig ];
meta = with stdenv.lib; {
platforms = platforms.linux;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt
, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit
, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, makeWrapper
, docbook_xsl_ns, docbook_xsl, gnome3 }:
stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildInputs = with gnome3; [
dbus libgcrypt pam python gtk3 gconf libgnome_keyring
pango gcr gdk_pixbuf atk p11_kit
pango gcr gdk_pixbuf atk p11_kit makeWrapper
];
propagatedBuildInputs = [ glib libtasn1 libxslt ];
@ -25,6 +25,13 @@ stdenv.mkDerivation rec {
"--with-pkcs11-modules=$$out/lib/pkcs11/"
];
postInstall = ''
wrapProgram "$out/bin/gnome-keyring" \
--prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
wrapProgram "$out/bin/gnome-keyring-daemon" \
--prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
'';
meta = with stdenv.lib; {
platforms = platforms.linux;
};

View File

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
[ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas libnotify gnome_desktop
lcms2 libXtst libxkbfile pulseaudio libcanberra_gtk3 upower colord libgweather
polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt
libtool docbook_xsl docbook_xsl_ns makeWrapper ];
libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ];
postInstall = ''
wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \

View File

@ -2,8 +2,9 @@
, python, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns
, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit
, pulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
, accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet }:
, accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }:
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
stdenv.mkDerivation rec {
name = "gnome-shell-3.10.2.1";
@ -15,7 +16,7 @@ stdenv.mkDerivation rec {
buildInputs = with gnome3;
[ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountservice
libcroco intltool libsecret pkgconfig python libsoup polkit libcanberra gdk_pixbuf
libcroco intltool libsecret pkgconfig python libsoup polkit libcanberra gdk_pixbuf librsvg
clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
libXtst p11_kit networkmanagerapplet gjs mutter pulseaudio caribou evolution_data_server
libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm
@ -31,6 +32,7 @@ stdenv.mkDerivation rec {
wrapProgram "$out/bin/gnome-shell" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \
--set GDK_PIXBUF_MODULE_FILE ${gnome_themes_standard}/lib/gdk-pixbuf/loaders.cache \
--prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gnome_icon_theme}/share:${gsettings_desktop_schemas}/share:${gtk}/share:$out/share"
wrapProgram "$out/libexec/gnome-shell-calendar-server" \
--prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share"

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
, gnome_doc_utils, intltool, libX11, which, gconf, libuuid
, desktop_file_utils, itstool, ncurses }:
, desktop_file_utils, itstool, ncurses, makeWrapper }:
stdenv.mkDerivation rec {
@ -15,10 +15,16 @@ stdenv.mkDerivation rec {
};
buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte
gnome3.dconf gnome3.gconf itstool ncurses ];
gnome3.dconf gnome3.gconf itstool ncurses makeWrapper ];
nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
postInstall = ''
wrapProgram "$out/libexec/gnome-terminal-server" \
--prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
'';
meta = with stdenv.lib; {
platforms = platforms.linux;
};

View File

@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
preConfigure = ''
cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > loaders.cache
export GDK_PIXBUF_MODULE_FILE=`readlink -e loaders.cache`
mkdir -p $out/lib/gdk-pixbuf/
cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > $out/lib/gdk-pixbuf/loaders.cache
export GDK_PIXBUF_MODULE_FILE=`readlink -e $out/lib/gdk-pixbuf/loaders.cache`
'';
meta = with stdenv.lib; {

View File

@ -32,6 +32,8 @@ rec {
gjs = callPackage ./core/gjs { };
gnome_control_center = callPackage ./core/gnome-control-center { };
gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
gnome-menus = callPackage ./core/gnome-menus { };

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
{ stdenv, fetchurl, pkgconfig, intltool, gtk, gtk3 }:
stdenv.mkDerivation rec {
p_name = "gtk-xfce-engine";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
#TODO: gtk3
buildInputs = [ pkgconfig intltool gtk ];
buildInputs = [ pkgconfig intltool gtk gtk3 ];
meta = {
homepage = http://www.xfce.org/;

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation {
name = "dev86-0.16.19";
src = fetchurl {
url = http://www.debath.co.uk/dev86/Dev86src-0.16.19.tar.gz;
sha256 = "33398b87ca85e2b69e4062cf59f2f7354af46da5edcba036c6f97bae17b8d00e";
@ -17,7 +17,7 @@ stdenv.mkDerivation {
''
substituteInPlace makefile.in --replace "-O2" "" --replace "-O" ""
'';
meta = {
description = "Linux 8086 development environment";
homepage = http://www.debath.co.uk/;

View File

@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
mv compiler-rt-${version} $sourceRoot/projects/compiler-rt
'';
buildInputs = [ perl groff cmake libxml2 python libffi ncurses ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
propagatedBuildInputs = [ ncurses zlib ];

View File

@ -1,7 +1,7 @@
diff -Naur pakcs-1.11.2-upstream/Makefile pakcs-1.11.2/Makefile
--- pakcs-1.11.2-upstream/Makefile 2013-03-21 04:58:38.000000000 -0430
+++ pakcs-1.11.2/Makefile 2013-05-09 15:04:48.035646127 -0430
@@ -55,7 +55,6 @@
diff -Naur pakcs-1.11.3-upstream/Makefile pakcs-1.11.3/Makefile
--- pakcs-1.11.3-upstream/Makefile 2014-01-31 09:10:03.000000000 -0430
+++ pakcs-1.11.3/Makefile 2014-02-03 20:27:41.558334480 -0430
@@ -66,7 +66,6 @@
#
.PHONY: install
install: installscripts
@ -9,21 +9,20 @@ diff -Naur pakcs-1.11.2-upstream/Makefile pakcs-1.11.2/Makefile
# pre-compile all libraries:
@cd lib && $(MAKE) fcy
# install the Curry2Prolog compiler as a saved system:
@@ -66,11 +65,6 @@
@cd lib && $(MAKE) acy
# prepare for separate compilation by compiling all librariers to Prolog code:
@if [ -r bin/pakcs ] ; then cd lib && $(MAKE) pl ; fi
@@ -105,10 +104,6 @@
# compile the tools:
.PHONY: tools
tools:
- # compile the Curry Port Name Server demon:
- @if [ -r bin/pakcs ] ; then cd cpns && $(MAKE) ; fi
- @if [ -r bin/pakcs ] ; then cd cpns && $(MAKE) ; fi
- # compile the event handler demon for dynamic web pages:
- @if [ -r bin/pakcs ] ; then cd www && $(MAKE) ; fi
- $(MAKE) tools
$(MAKE) docs
chmod -R go+rX .
- @if [ -r bin/pakcs ] ; then cd www && $(MAKE) ; fi
@if [ -r bin/pakcs ] ; then cd currytools && $(MAKE) ; fi
@if [ -r bin/pakcs ] ; then cd tools && $(MAKE) ; fi
diff -Naur pakcs-1.11.2-upstream/scripts/pakcs.sh pakcs-1.11.2/scripts/pakcs.sh
--- pakcs-1.11.2-upstream/scripts/pakcs.sh 2013-03-21 04:52:59.000000000 -0430
+++ pakcs-1.11.2/scripts/pakcs.sh 2013-05-09 03:14:23.500876628 -0430
diff -Naur pakcs-1.11.3-upstream/scripts/pakcs.sh pakcs-1.11.3/scripts/pakcs.sh
--- pakcs-1.11.3-upstream/scripts/pakcs.sh 2014-01-31 09:04:19.000000000 -0430
+++ pakcs-1.11.3/scripts/pakcs.sh 2014-02-03 20:20:40.775350116 -0430
@@ -16,7 +16,7 @@
# use readline wrapper rlwrap if it is installed and we have tty as stdin:
USERLWRAP=no

View File

@ -1,11 +1,12 @@
{ stdenv, fetchurl, cabal, swiProlog, mtl, syb, makeWrapper, rlwrap, tk }:
{ stdenv, fetchurl, cabal, swiProlog, either, mtl, syb
, glibcLocales, makeWrapper, rlwrap, tk }:
let
fname = "pakcs-1.11.2";
fname = "pakcs-1.11.3";
fsrc = fetchurl {
url = "http://www.informatik.uni-kiel.de/~pakcs/download/${fname}-src.tar.gz";
sha256 = "1x23kn91v44my4rd8j3247pj8i2myz82rzgbq07asi1x21bpvvmy";
sha256 = "006bq6cmycq2f4xb3zmnmxyngj64hppk3a083hy0qzj7gl77zvfw";
};
in
@ -29,12 +30,12 @@ stdenv.mkDerivation rec {
sourceRoot = "${name}/frontend/curry-frontend";
isLibrary = true;
isExecutable = true;
buildDepends = [ mtl syb curryBase ];
buildDepends = [ either mtl syb curryBase ];
});
src = fsrc;
buildInputs = [ swiProlog makeWrapper rlwrap tk ];
buildInputs = [ swiProlog makeWrapper glibcLocales rlwrap tk ];
patches = [ ./adjust-buildsystem.patch ];
@ -48,6 +49,10 @@ stdenv.mkDerivation rec {
'';
preBuild = ''
# Some comments in files are in UTF-8, so include the locale needed by GHC runtime.
export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive
export LC_ALL=en_US.UTF-8
# Set up link to cymake, which has been built already.
ensureDir bin/.local
ln -s ${curryFront}/bin/cymake bin/.local/
@ -65,10 +70,6 @@ stdenv.mkDerivation rec {
# Fixing PAKCSHOME and related paths.
sed -i 's@PAKCSHOME=/tmp/.*@PAKCSHOME='$out/pakcs'@' $out/pakcs/bin/{pakcs,makecurrycgi,parsecurry,.makesavedstate}
# Fix symbolic links into the tmp build dir.
ln -s ../currytools/CASS/cass $out/pakcs/bin/cass
ln -s ../currytools/currydoc/CurryDoc $out/pakcs/bin/currydoc
# The Prolog sources must be rebuilt in their final directory,
# to switch the embedded references to the tmp build directory.
export TEMP=/tmp

View File

@ -57,7 +57,12 @@ stdenv.mkDerivation {
};
# See <http://svn.boost.org/trac/boost/ticket/4688>.
patches = [ ./boost_filesystem_post_1_49_0.patch ./time_utc.patch ./boost-149-cstdint.patch ] ++ (stdenv.lib.optional stdenv.isDarwin ./boost-149-darwin.patch );
patches = [
./CVE-2013-0252.patch # https://svn.boost.org/trac/boost/ticket/7743
./boost_filesystem_post_1_49_0.patch
./time_utc.patch
./boost-149-cstdint.patch
] ++ (stdenv.lib.optional stdenv.isDarwin ./boost-149-darwin.patch );
enableParallelBuilding = true;

View File

@ -0,0 +1,48 @@
Index: /boost/locale/utf.hpp
===================================================================
--- /boost/locale/utf.hpp (revision 78304)
+++ /boost/locale/utf.hpp (revision 81590)
@@ -220,4 +220,6 @@
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
case 2:
@@ -225,4 +227,6 @@
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
case 1:
@@ -230,4 +234,6 @@
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
}
Index: /libs/locale/test/test_codepage_converter.cpp
===================================================================
--- /libs/locale/test/test_codepage_converter.cpp (revision 73786)
+++ /libs/locale/test/test_codepage_converter.cpp (revision 81590)
@@ -140,4 +140,18 @@
TEST_TO("\xf8\x90\x80\x80\x80",illegal); // 400 0000
TEST_TO("\xfd\xbf\xbf\xbf\xbf\xbf",illegal); // 7fff ffff
+
+ std::cout << "-- Invalid trail" << std::endl;
+ TEST_TO("\xC2\x7F",illegal);
+ TEST_TO("\xdf\x7F",illegal);
+ TEST_TO("\xe0\x7F\x80",illegal);
+ TEST_TO("\xef\xbf\x7F",illegal);
+ TEST_TO("\xe0\x7F\x80",illegal);
+ TEST_TO("\xef\xbf\x7F",illegal);
+ TEST_TO("\xf0\x7F\x80\x80",illegal);
+ TEST_TO("\xf4\x7f\xbf\xbf",illegal);
+ TEST_TO("\xf0\x90\x7F\x80",illegal);
+ TEST_TO("\xf4\x8f\x7F\xbf",illegal);
+ TEST_TO("\xf0\x90\x80\x7F",illegal);
+ TEST_TO("\xf4\x8f\xbf\x7F",illegal);
std::cout << "-- Invalid length" << std::endl;

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgconfig, glib, babl, libpng, cairo, libjpeg
, librsvg, pango, gtk, bzip2, intltool }:
stdenv.mkDerivation rec {
name = "gegl-0.2.0";
@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426";
};
patches = [( fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/"
+ "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9";
sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59";
name = "CVE-2012-4433.patch";
})];
# needs fonts otherwise don't know how to pass them
configureFlags = "--disable-docs";

View File

@ -1,27 +1,29 @@
{ stdenv, fetchurl, mesa, libX11, libXext }:
{ stdenv, fetchurl, mesa, libX11 }:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "glfw-2.7.9";
src = fetchurl {
url = mirror://sourceforge/glfw/glfw-2.7.9.tar.bz2;
url = "mirror://sourceforge/glfw/${name}.tar.bz2";
sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
};
buildInputs = [ mesa libX11 libXext ];
buildInputs = [ mesa libX11 ];
buildPhase = ''
make x11
'';
installPhase = ''
mkdir -p $out
make x11-install PREFIX=$out
'';
'';
installPhase = ":";
meta = {
meta = with stdenv.lib; {
description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
homepage = http://glfw.sourceforge.net/;
license = "zlib/libpng"; # http://www.opensource.org/licenses/zlib-license.php
homepage = "http://glfw.sourceforge.net/";
license = licenses.zlib;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,22 @@
{ stdenv, fetchurl, cmake, mesa, libXrandr, libXi, libXxf86vm, libXfixes, x11 }:
stdenv.mkDerivation rec {
name = "glfw-3.0.4";
src = fetchurl {
url = "mirror://sourceforge/glfw/${name}.tar.bz2";
sha256 = "1h7g16ncgkl38w19x4dvnn17k9j0kqfvbb9whw9qc71lkq5xf2ag";
};
enableParallelBuilding = true;
buildInputs = [ cmake mesa libXrandr libXi libXxf86vm libXfixes x11 ];
meta = with stdenv.lib; {
description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
homepage = "http://glfw.sourceforge.net/";
license = licenses.zlib;
maintainers = with maintainers; [ marcweber ];
platforms = platforms.linux;
};
}

View File

@ -1,5 +1,5 @@
{ fetchurl, stdenv, zlib, lzo, libtasn1, nettle
, guileBindings, guile, pkgconfig }:
, guileBindings, guile, pkgconfig, perl }:
assert guileBindings -> guile != null;
@ -12,7 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "1lkys703z4yxfgzarmgas5ccvn6m254w9wvm7s8v0zkj81z7m9nz";
};
patches = [(fetchurl {
url = "http://anonscm.debian.org/viewvc/pkg-gnutls/packages/gnutls26/trunk/"
+ "debian/patches/21_sanitycheck.diff?revision=1777&view=co";
sha256 = "0k18a7q6irmgjzp647bd18zccjpsr82n2s9arpamnkakgnny4ks9";
name = "CVE-2013-2116.patch";
})];
configurePhase = ''
patchShebangs .
./configure --prefix="$out" \
--disable-dependency-tracking --enable-fast-install \
--with-lzo --with-libtasn1-prefix="${libtasn1}" \
@ -22,7 +31,7 @@ stdenv.mkDerivation rec {
else ""}
'';
buildInputs = [ zlib lzo libtasn1 pkgconfig ]
buildInputs = [ zlib lzo libtasn1 pkgconfig perl ]
++ stdenv.lib.optional guileBindings guile;
propagatedBuildInputs = [ nettle ];

View File

@ -5,11 +5,11 @@ assert guileBindings -> guile != null;
stdenv.mkDerivation (rec {
name = "gnutls-3.2.4";
name = "gnutls-3.2.10";
src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
sha256 = "0zl4h37g51xyaalv3qp2hvn1m6z7xzfw4yvpvi6mby4x5sqrrp8i";
sha256 = "1g1w93d66sz51977zbqd56641r501a1djcwhykbjm8alhyz1564h";
};
# Note: GMP is a dependency of Nettle, whose public headers include

View File

@ -5,11 +5,11 @@ assert guileBindings -> guile != null;
stdenv.mkDerivation (rec {
name = "gnutls-3.1.12";
name = "gnutls-3.1.20";
src = fetchurl {
url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/${name}.tar.lz";
sha256 = "1h8j3xi2jad2dclybgqffb5264hdqrxpsx99irs03yy9np6iw5l8";
sha256 = "1a8pzc29sn1kmbqvldljf4kmbz60pdk931dirk5jdd0qpf8fzd5x";
};
# Note: GMP is a dependency of Nettle, whose public headers include

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "HList";
version = "0.3.1.0";
sha256 = "1cq7l7cv62jf47s75ycsgxg75kkrgnnrpb6y22cskc97hkfsnjmk";
version = "0.3.2.0";
sha256 = "1cv27y8jg38yvfca83zn3fzq7mkzhqw7j1y7kg5fkfh4wd8ixs1f";
buildDepends = [ mtl ];
testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
buildTools = [ diffutils ];

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "HTF";
version = "0.11.1.0";
sha256 = "0prijzy852fkr8z58rhba6jvrb27b6lyz2jdgqb7r1jrnkhqmhpq";
version = "0.11.1.1";
sha256 = "0j425h0av82cbwkfds2jhf3hsm2wd8vca8bjdyg8v09k6kb220cs";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -0,0 +1,21 @@
{ cabal, abstractDeque, HUnit, random, testFramework
, testFrameworkHunit, time
}:
cabal.mkDerivation (self: {
pname = "abstract-deque-tests";
version = "0.3";
sha256 = "19gb5x5z3nvazdra3skm24c2g2byj0i4cjbzfwfghnb5q96gn5sz";
buildDepends = [
abstractDeque HUnit random testFramework testFrameworkHunit time
];
testDepends = [
abstractDeque HUnit random testFramework testFrameworkHunit time
];
meta = {
homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
description = "A test-suite for any queue or double-ended queue satisfying an interface";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,18 +1,13 @@
{ cabal, HUnit, random, testFramework, testFrameworkHunit, time }:
{ cabal, random, time }:
cabal.mkDerivation (self: {
pname = "abstract-deque";
version = "0.2.2.1";
sha256 = "0saf7j8fdqqk9msxrfja22zx8v0ibzrqx3v9l07g5n84yh4ydbdx";
buildDepends = [
HUnit random testFramework testFrameworkHunit time
];
testDepends = [
HUnit random testFramework testFrameworkHunit time
];
version = "0.3";
sha256 = "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9";
buildDepends = [ random time ];
doCheck = false;
meta = {
homepage = "https://github.com/rrnewton/haskell-lockfree-queue/wiki";
homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
description = "Abstract, parameterized interface to mutable Deques";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "ansi-terminal";
version = "0.6.1";
sha256 = "0ncghc0z2xkfn1hfvyl0haf4mia9lhjbiqda11nxkqqfxdyklb2j";
version = "0.6.1.1";
sha256 = "06pdcpp2z7wk9mkr5lzwk64lqhj09c7l1ah4s3vz7zwrdzfaccwi";
isLibrary = true;
isExecutable = true;
meta = {

View File

@ -2,10 +2,10 @@
cabal.mkDerivation (self: {
pname = "bindings-DSL";
version = "1.0.20";
sha256 = "11qc02fkmrpy6c1a85lwlz06m4fpvfpbpbxgv5rkyb1amg2cnklq";
version = "1.0.21";
sha256 = "0fbrl9jfkwlv66v3cv6cj51kk7jjdry0jz8k83bf4mav26123mk9";
meta = {
homepage = "http://bitbucket.org/mauricio/bindings-dsl";
homepage = "https://github.com/jwiegley/bindings-dsl/wiki";
description = "FFI domain specific language, on top of hsc2hs";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;

View File

@ -4,16 +4,13 @@
cabal.mkDerivation (self: {
pname = "blaze-html";
version = "0.7.0.0";
sha256 = "1k8mxq3hmf2s7qab67jz3yaan7wdc4mn5sa00rw5zk4mjh722w86";
version = "0.7.0.1";
sha256 = "05z0a6x49f56bazkcdxpdi2a7pyzsiv7qc72grcz9sqjz1d6yagh";
buildDepends = [ blazeBuilder blazeMarkup text ];
testDepends = [
blazeBuilder blazeMarkup HUnit QuickCheck testFramework
testFrameworkHunit testFrameworkQuickcheck2 text
];
patchPhase = ''
sed -i -e 's|blaze-markup.*>=.*,|blaze-markup,|' blaze-html.cabal
'';
meta = {
homepage = "http://jaspervdj.be/blaze";
description = "A blazingly fast HTML combinator library for Haskell";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "blaze-svg";
version = "0.3.3.0";
sha256 = "1wi4nc73ic3qmbx6v9fniacwcz2nlvmp5snn144fdiwb22klfn5f";
version = "0.3.3.1";
sha256 = "00i0apyklvmkr4w30d4r86gcg86h35sc3ncvqax70827126cdmsj";
buildDepends = [ blazeMarkup mtl ];
jailbreak = true;
meta = {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "conduit";
version = "1.0.12";
sha256 = "025h1nbplq7v1qp74bg647q36n3d56kin700ws7vm922xmvcrjjm";
version = "1.0.13";
sha256 = "19l2wqx5fil9sv4kj8jd19yvb4fa7jp3n523j38z9bd6ydnb8fni";
buildDepends = [
liftedBase mmorph monadControl mtl resourcet text transformers
transformersBase void

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "diagrams-svg";
version = "1.0.1.1";
sha256 = "0wjk2f7xh7ihkvdri669mw25bdwszzx03np32fy66k56x7adgxzc";
version = "1.0.1.2";
sha256 = "1aaybkizlfc4ji7m2p2naw4ml1pacppkbfr2ygqlq0k3bg0cd36k";
buildDepends = [
blazeMarkup blazeSvg colour diagramsCore diagramsLib filepath
hashable lens monoidExtras mtl split time vectorSpace

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "free";
version = "4.4";
sha256 = "19c6zy7gxsd121g1kny9y8rv33gsxv3kfsi37iyn6q0p8r38wbcy";
version = "4.5";
sha256 = "0hcdl02whmnyxd3mbfrncd978778irm5sx5f4z54zsigwlk822vx";
buildDepends = [
bifunctors comonad distributive mtl profunctors semigroupoids
semigroups transformers

View File

@ -4,15 +4,14 @@
cabal.mkDerivation (self: {
pname = "haskell-src-exts";
version = "1.14.0";
sha256 = "070khsw56xwyrclamv5wckj9na2xbzibv702xx52ik2wbs21dr0d";
version = "1.14.0.1";
sha256 = "1bsqjj4hy8mqprs44yfy1c96678w9q708yc40g5ygqfyhg0hd29s";
buildDepends = [ cpphs ];
testDepends = [
filepath smallcheck tasty tastyHunit tastySmallcheck
];
buildTools = [ happy ];
doCheck = false;
preConfigure = "runhaskell Setup.hs clean";
meta = {
homepage = "https://github.com/haskell-suite/haskell-src-exts";
description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";

View File

@ -0,0 +1,14 @@
{ cabal, deepseq, primitive, vector }:
cabal.mkDerivation (self: {
pname = "hybrid-vectors";
version = "0.1";
sha256 = "0a5ry6xmkr0zjz0kp7qbm7kdz5yr9842gy116902djppmdn5dq05";
buildDepends = [ deepseq primitive vector ];
meta = {
homepage = "http://github.com/ekmett/hybrid-vectors";
description = "Hybrid vectors e.g. Mixed Boxed/Unboxed vectors";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,16 @@
{ cabal, preprocessorTools, syb }:
cabal.mkDerivation (self: {
pname = "ixdopp";
version = "0.1.3";
sha256 = "1vknwznk42b33q4pmh6z620g761yf3cmsmrmhilgq42i5qhll4d4";
isLibrary = false;
isExecutable = true;
buildDepends = [ preprocessorTools ];
meta = {
homepage = "http://www.eecs.harvard.edu/~tov/pubs/haskell-session-types/";
description = "Expands a Haskell program using ixdo notation into a Haskell program using the indexed monad bind operator (>>>=)";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -10,8 +10,8 @@
cabal.mkDerivation (self: {
pname = "lens";
version = "4.0";
sha256 = "1mrpbwnj1k2my71lm0ajxsx5r44sz372gfxn78vz4182yv3bmla1";
version = "4.0.1";
sha256 = "1dm4gdpyd7kndf3zaikjqa1gkc7y7wzfnyhhk3xyhjxa5hn5rj75";
buildDepends = [
aeson bifunctors comonad constraints contravariant distributive
exceptions filepath hashable mtl parallel primitive profunctors

View File

@ -17,6 +17,7 @@ cabal.mkDerivation (self: {
binary doctest filepath HUnit lens simpleReflect testFramework
testFrameworkHunit
];
doCheck = false;
meta = {
homepage = "http://github.com/ekmett/linear/";
description = "Linear Algebra";

View File

@ -1,7 +1,6 @@
{ cabal, HUnit, llvmConfig, llvmGeneralPure, mtl, parsec
, QuickCheck, setenv, testFramework, testFrameworkHunit
, testFrameworkQuickcheck2, transformers, utf8String
, ncurses, zlib
}:
cabal.mkDerivation (self: {

View File

@ -1,18 +1,18 @@
{ cabal, abstractDeque, atomicPrimops, HUnit, IORefCAS
{ cabal, abstractDeque, abstractDequeTests, atomicPrimops, HUnit
, testFramework, testFrameworkHunit
}:
cabal.mkDerivation (self: {
pname = "lockfree-queue";
version = "0.2.0.2";
sha256 = "0mb07hx4cllnxv7mz19vvn9zcc5rx0ji5wv80fx0yirgk2qjpgml";
buildDepends = [ abstractDeque atomicPrimops IORefCAS ];
version = "0.2.3";
sha256 = "0y8ax6vcjnjm8g7ybn95wca74hm0g22fvgra06vj6l90pl93awyg";
buildDepends = [ abstractDeque atomicPrimops ];
testDepends = [
abstractDeque atomicPrimops HUnit IORefCAS testFramework
abstractDeque abstractDequeTests atomicPrimops HUnit testFramework
testFrameworkHunit
];
meta = {
homepage = "https://github.com/rrnewton/haskell-lockfree-queue/wiki";
homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
description = "Michael and Scott lock-free queues";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "mime-mail";
version = "0.4.3";
sha256 = "0xh6j4vdg2ispr9f41s8pvx5rb08zqapkqxyvykvjg2ibmczzg4f";
version = "0.4.4";
sha256 = "1y0fss53z1mvykpfkp28zwic2mb7zhf02lwxdr22n34hjzk34g9b";
buildDepends = [
base64Bytestring blazeBuilder filepath random text
];

View File

@ -1,9 +1,10 @@
{ cabal }:
{ cabal, text }:
cabal.mkDerivation (self: {
pname = "mime";
version = "0.3.4";
sha256 = "1klvy32idy6v029p5a6g93r79ac5cycnrx5c8z9bgvplbplpfjwy";
version = "0.4.0";
sha256 = "159jp7dcyx26slda2743zdr2prnm707mnglcb9p66hr1wjh98kx4";
buildDepends = [ text ];
meta = {
homepage = "https://github.com/GaloisInc/mime";
description = "Working with MIME types";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "murmur-hash";
version = "0.1.0.6";
sha256 = "0wnkwl3a9x0f4rvsj4wf129n03vpw8qk4kzx6vmrapwwb4r80npz";
version = "0.1.0.7";
sha256 = "125v4ypiv8n2m8zd1yi46prz96yy79ap0yzhm4vhrws4cf1zapkp";
meta = {
homepage = "http://github.com/nominolo/murmur-hash";
description = "MurmurHash2 implementation for Haskell";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "mwc-random";
version = "0.13.1.0";
sha256 = "16g6b1pphr4p36nn5qjj62iwf47rq8kfmpjgfvd35r3cz9qqb8cb";
version = "0.13.1.1";
sha256 = "1hi9ci65m3pjkli0rvx2x4fmp73c9fsmnc1zkpaj4g64ibhhir64";
buildDepends = [ primitive time vector ];
testDepends = [
HUnit QuickCheck statistics testFramework testFrameworkHunit

View File

@ -2,13 +2,13 @@
cabal.mkDerivation (self: {
pname = "numbers";
version = "3000.2.0.0";
sha256 = "035qc7dgh4nd661z4mm742v8y7xqdyyp0r0vkinxiifciqb1fkbm";
version = "3000.2.0.1";
sha256 = "10z1bi5qbc81z5xx2v1ylwcpmcfl1ci7lxrswkgi0dd1wi8havbk";
testDepends = [
QuickCheck testFramework testFrameworkQuickcheck2
];
meta = {
homepage = "https://github.com/DanBurton/numbers#readme";
homepage = "https://github.com/jwiegley/numbers#readme";
description = "Various number types";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "pandoc-types";
version = "1.12.3.1";
sha256 = "0q9wj3vkhnvl1l2hbg9nmcbshkf23nmaylm3zmqj5j95vay60hkr";
version = "1.12.3.2";
sha256 = "1jgab8ccyyr8ygm6y0wbr3vvwdg5gkp1b6014dk8ryqb2dmkmikc";
buildDepends = [ aeson syb ];
meta = {
homepage = "http://johnmacfarlane.net/pandoc";

View File

@ -10,8 +10,8 @@
cabal.mkDerivation (self: {
pname = "pandoc";
version = "1.12.3.1";
sha256 = "0kvw10d2cnv16w9y9zx2l2gmn3zsrxppa9lllvqh1jah54rbn1pc";
version = "1.12.3.3";
sha256 = "0v7wvh93rz3k7phlz21627j5xakpi83174mchr3lwg4bmkfxn25s";
isLibrary = true;
isExecutable = true;
buildDepends = [

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "pipes-parse";
version = "3.0.0";
sha256 = "07ycdnx24qlysbf78sgfl2g8rfsrxnaiq1rimc4656in4cmcjn9g";
version = "3.0.1";
sha256 = "0f262p8mfcpvs3f3myy6bll9v61rfgrfdy2scdzf7vvx0h0lrpj7";
buildDepends = [ pipes transformers ];
meta = {
description = "Parsing infrastructure for the pipes ecosystem";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "pipes-zlib";
version = "0.3.0";
sha256 = "15d475rxziazxlbcbm8snik45z88kk7gxbxrpv4070bwylh3z0wc";
version = "0.4.0";
sha256 = "1xi8x7cfzr7042x5jq8b6xqdhffh1jgprk90yzsfjldllck9z5ia";
buildDepends = [ pipes transformers zlib zlibBindings ];
meta = {
homepage = "https://github.com/k0001/pipes-zlib";

View File

@ -0,0 +1,14 @@
{ cabal, mtl, parsec, syb }:
cabal.mkDerivation (self: {
pname = "preprocessor-tools";
version = "0.1.3";
sha256 = "0jz85v93zpv6cwvad18wr12nsikmv4n20gn37zli2h34zi543i9v";
buildDepends = [ mtl parsec syb ];
meta = {
homepage = "http://www.eecs.harvard.edu/~tov/pubs/haskell-session-types/";
description = "Extending Haskell's syntax using a custom preprocessor";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,14 @@
{ cabal, mtl, parsec, syb }:
cabal.mkDerivation (self: {
pname = "preprocessor-tools";
version = "1.0.1";
sha256 = "0ngfmvw6hvbr52i01n180ls4c8rx2wk2rka6g6igpvy9x2gwjin9";
buildDepends = [ mtl parsec syb ];
meta = {
homepage = "http://www.eecs.harvard.edu/~tov/pubs/haskell-session-types/";
description = "Extending Haskell's syntax using a custom preprocessor";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,19 @@
{ cabal, blazeHtml, blazeMarkup, filepath, hastache, httpTypes, mtl
, scotty, text, wai, warp
}:
cabal.mkDerivation (self: {
pname = "scotty-hastache";
version = "0.2.0";
sha256 = "105cxlasj4sl4ddzg8ms6k95078q10zcm2c86jcn76s0jmv95669";
buildDepends = [
blazeHtml blazeMarkup filepath hastache httpTypes mtl scotty text
wai warp
];
meta = {
homepage = "https://github.com/scotty-web/scotty-hastache";
description = "Easy Mustache templating support for Scotty";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "setenv";
version = "0.1.1";
sha256 = "1j0fj8nrx9z90kghasxjx5jycz9y9xdi7mrxmgnsc14csa65rhb8";
version = "0.1.1.1";
sha256 = "0azkvsvk9i1979rn45zryqyirvjhj9b32nnz1m30aasbs2q8f393";
doCheck = false;
meta = {
description = "A cross-platform library for setting environment variables";

View File

@ -0,0 +1,14 @@
{ cabal, blazeHtml, snapCore }:
cabal.mkDerivation (self: {
pname = "snap-blaze";
version = "0.2.1.2";
sha256 = "136i5q9ipfqrh7fw8rgn1ws6zkjdrfwfq9wpccrm8dg3l61380wh";
buildDepends = [ blazeHtml snapCore ];
meta = {
homepage = "http://github.com/jaspervdj/snap-blaze";
description = "blaze-html integration for Snap";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,31 @@
{ cabal, contravariant, deepseq, doctest, filepath, hlint
, hybridVectors, lens, linear, mtl, primitive, QuickCheck
, semigroups, simpleReflect, testFramework
, testFrameworkQuickcheck2, testFrameworkTh, transformers, vector
, vectorAlgorithms
}:
cabal.mkDerivation (self: {
pname = "sparse";
version = "0.9";
sha256 = "0v0z7kjgmcdx9ajlhr9pc1i3qqghd60s02xnlmj4hcxby8k0r8mc";
buildDepends = [
contravariant deepseq hybridVectors lens primitive transformers
vector vectorAlgorithms
];
testDepends = [
deepseq doctest filepath hlint hybridVectors lens linear mtl
QuickCheck semigroups simpleReflect testFramework
testFrameworkQuickcheck2 testFrameworkTh transformers vector
];
patchPhase = ''
sed -i -e 's|vector-algorithms >=.*|vector-algorithms|' -e 's|QuickCheck.*,|QuickCheck,|' sparse.cabal
'';
doCheck = false;
meta = {
homepage = "http://github.com/ekmett/sparse";
description = "A playground of sparse linear algebra primitives using Morton ordering";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,17 @@
{ cabal, base16Bytestring, directSqlite, HUnit, text, time
, transformers
}:
cabal.mkDerivation (self: {
pname = "sqlite-simple";
version = "0.4.4.0";
sha256 = "09vgy3hji0bjb3bwxwkwhmgf50q442dqr3d86g5l5s3xiw3hca0r";
buildDepends = [ directSqlite text time transformers ];
testDepends = [ base16Bytestring directSqlite HUnit text time ];
meta = {
homepage = "http://github.com/nurpax/sqlite-simple";
description = "Mid-Level SQLite client library";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,13 @@
{ cabal, text, utf8String }:
cabal.mkDerivation (self: {
pname = "string-conversions";
version = "0.3.0.2";
sha256 = "0jcm0vv0ll74zfc7s2l8qpqpbfnkv7ir9d1kg68m6b0f9sq0dgng";
buildDepends = [ text utf8String ];
meta = {
description = "Simplifies dealing with different types for strings";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,15 +1,15 @@
{ cabal, attoparsec, attoparsecConduit, blazeBuilder
, blazeBuilderConduit, caseInsensitive, conduit, hspec, HUnit
, QuickCheck, text, transformers
, blazeBuilderConduit, caseInsensitive, conduit, dataDefault, hspec
, HUnit, QuickCheck, text, transformers, xmlConduit
}:
cabal.mkDerivation (self: {
pname = "tagstream-conduit";
version = "0.5.4.1";
sha256 = "1gahdil5jasm6v7gp519ahr2yc7ppysdnmkl21cd4zzn6y1r0gw9";
version = "0.5.5";
sha256 = "17157chhw610f8az6c25qzq5mmhpb1a8m12kdc2k8khgynpkrj5f";
buildDepends = [
attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
caseInsensitive conduit text transformers
caseInsensitive conduit dataDefault text transformers xmlConduit
];
testDepends = [ conduit hspec HUnit QuickCheck text ];
meta = {

View File

@ -0,0 +1,21 @@
{ cabal, certificate, cipherAes, cipherRc4, cryptohash
, cryptoPubkey, cryptoRandom, mtl, network, pem, time, tls, vector
}:
cabal.mkDerivation (self: {
pname = "tls-extra";
version = "0.6.6";
sha256 = "0k0sj3nq1lrvbmd582mjj8cxbxigivz1hm8hhij1ncl2pgnq5xyv";
isLibrary = true;
isExecutable = true;
buildDepends = [
certificate cipherAes cipherRc4 cryptohash cryptoPubkey
cryptoRandom mtl network pem time tls vector
];
meta = {
homepage = "http://github.com/vincenthz/hs-tls";
description = "TLS extra default values and helpers";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

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