Merge master into x-updates
This commit is contained in:
commit
9b69117fec
158
doc/outline.txt
158
doc/outline.txt
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
[1;31mWarning:[0m 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!"; } ];
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 = {
|
||||
|
||||
|
|
|
@ -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
|
||||
];
|
||||
};
|
||||
|
||||
}
|
|
@ -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}
|
||||
|
|
|
@ -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" ]
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -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 =
|
||||
''
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -24,6 +24,8 @@ stdenv.mkDerivation (rec {
|
|||
|
||||
outputs = [ "out" "terminfo" ];
|
||||
|
||||
patches = [ ./rxvt-unicode-9.06-font-width.patch ];
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
mkdir -p $terminfo/share/terminfo
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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':
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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")
|
||||
|
|
|
@ -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"
|
||||
'';
|
||||
|
|
|
@ -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 {}) //
|
||||
|
|
|
@ -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 {}) //
|
||||
|
|
|
@ -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 {}) // {
|
||||
|
|
|
@ -27,7 +27,7 @@ rec {
|
|||
} // args);
|
||||
|
||||
coverageAnalysis = args: nixBuild (
|
||||
{ inherit lcov;
|
||||
{ inherit lcov enableCoverageInstrumentation makeCoverageAnalysisReport;
|
||||
doCoverageAnalysis = true;
|
||||
} // args);
|
||||
|
||||
|
|
|
@ -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}";
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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" \
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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; {
|
||||
|
|
|
@ -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 { };
|
||||
|
|
|
@ -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/;
|
||||
|
|
|
@ -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/;
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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
|
|
@ -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";
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ cabal, HUnit, llvmConfig, llvmGeneralPure, mtl, parsec
|
||||
, QuickCheck, setenv, testFramework, testFrameworkHunit
|
||||
, testFrameworkQuickcheck2, transformers, utf8String
|
||||
, ncurses, zlib
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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 = {
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue