Merge branch 'staging.upstream' into staging.post-15.06

This commit is contained in:
William A. Kennington III 2015-09-19 14:39:57 -07:00
commit 8b670fba26
222 changed files with 36480 additions and 1631 deletions

View File

@ -899,6 +899,34 @@ following:
phase.</para></listitem> phase.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>separateDebugInfo</varname></term>
<listitem><para>If set to <literal>true</literal>, the standard
environment will enable debug information in C/C++ builds. After
installation, the debug information will be separated from the
executables and stored in the output named
<literal>debug</literal>. (This output is enabled automatically;
you dont need to set the <varname>outputs</varname> attribute
explicitly.) To be precise, the debug information is stored in
<filename><replaceable>debug</replaceable>/lib/debug/.build-id/<replaceable>XX</replaceable>/<replaceable>YYYY…</replaceable></filename>,
where <replaceable>XXYYYY…</replaceable> is the <replaceable>build
ID</replaceable> of the binary — a SHA-1 hash of the contents of
the binary. Debuggers like GDB use the build ID to look up the
separated debug information.</para>
<para>For example, with GDB, you can add
<programlisting>
set debug-file-directory ~/.nix-profile/lib/debug
</programlisting>
to <filename>~/.gdbinit</filename>. GDB will then be able to find
debug information installed via <literal>nix-env
-i</literal>.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
</section> </section>

View File

@ -6,7 +6,7 @@ with import ./attrsets.nix;
with import ./options.nix; with import ./options.nix;
with import ./trivial.nix; with import ./trivial.nix;
with import ./strings.nix; with import ./strings.nix;
with {inherit (import ./modules.nix) mergeDefinitions; }; with {inherit (import ./modules.nix) mergeDefinitions filterOverrides; };
rec { rec {
@ -166,6 +166,23 @@ rec {
substSubModules = m: loaOf (elemType.substSubModules m); substSubModules = m: loaOf (elemType.substSubModules m);
}; };
# List or element of ...
loeOf = elemType: mkOptionType {
name = "element or list of ${elemType.name}s";
check = x: isList x || elemType.check x;
merge = loc: defs:
let
defs' = filterOverrides defs;
res = (head defs').value;
in
if isList res then concatLists (getValues defs')
else if lessThan 1 (length defs') then
throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
else if !isString res then
throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}."
else res;
};
uniq = elemType: mkOptionType { uniq = elemType: mkOptionType {
inherit (elemType) name check; inherit (elemType) name check;
merge = mergeOneOption; merge = mergeOneOption;

View File

@ -1,95 +0,0 @@
#!/usr/bin/env bash
GNOME_FTP="ftp.gnome.org/pub/GNOME/sources"
project=$1
if [ "$project" == "--help" ]; then
echo "Usage: $0 project [major.minor]"
exit 0
fi
baseVersion=$2
if [ -z "$project" ]; then
echo "No project specified, exiting"
exit 1
fi
# curl -l ftp://... doesn't work from my office in HSE, and I don't want to have
# any conversations with sysadmin. Somehow lftp works.
if [ "$FTP_CLIENT" = "lftp" ]; then
ls_ftp() {
lftp -c "open $1; cls"
}
else
ls_ftp() {
curl -l "$1"/
}
fi
if [ -z "$baseVersion" ]; then
echo "Looking for available versions..." >&2
available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` )
echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2
echo -en "Choose one of them: " >&2
read baseVersion
fi
FTPDIR="${GNOME_FTP}/${project}/${baseVersion}"
#version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//`
# gnome's LATEST-IS is broken. Do not trust it.
files=$(ls_ftp "${FTPDIR}")
declare -A versions
for f in $files; do
case $f in
(LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*):
;;
($project-*.*.9*.tar.*):
tmp=${f#$project-}
tmp=${tmp%.tar*}
echo "Ignored unstable version ${tmp}" >&2
;;
($project-*.tar.*):
tmp=${f#$project-}
tmp=${tmp%.tar*}
versions[${tmp}]=1
;;
(*):
echo "UNKNOWN FILE $f"
;;
esac
done
echo "Found versions ${!versions[@]}" >&2
version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1`
echo "Latest version is: ${version}" >&2
name=${project}-${version}
echo "Fetching .sha256 file" >&2
curl -O http://${FTPDIR}/${name}.sha256sum
extensions=( "xz" "bz2" "gz" )
echo "Choosing archive extension (known are ${extensions[@]})..." >&2
for ext in ${extensions[@]}; do
if grep "\\.tar\\.${ext}$" ${name}.sha256sum >& /dev/null; then
ext_pref=$ext
sha256=$(grep "\\.tar\\.${ext}$" ${name}.sha256sum | cut -f1 -d\ )
break
fi
done
sha256=`nix-hash --to-base32 --type sha256 $sha256`
echo "Chosen ${ext_pref}, hash is ${sha256}" >&2
cat <<EOF
name = "${project}-${version}";
src = fetchurl {
url = mirror://gnome/sources/${project}/${baseVersion}/${project}-${version}.tar.${ext_pref};
sha256 = "${sha256}";
};
EOF
rm -v ${name}.sha256sum >&2

138
maintainers/scripts/gnome.sh Executable file
View File

@ -0,0 +1,138 @@
#!/usr/bin/env bash
set -o pipefail
GNOME_FTP="ftp.gnome.org/pub/GNOME/sources"
usage() {
echo "Usage: $0 show|update project [major.minor]" >&2
exit 0
}
if [ "$#" -lt 1 ]; then
usage
fi
action="$1"
project="$2"
majorVersion="$3"
if [ "$action" != "show" ] && [ "$action" != "update" ]; then
echo "Unknown action $action" >&2
usage
fi
if [ -z "$project" ]; then
echo "No project specified, exiting"
exit 1
fi
# curl -l ftp://... doesn't work from my office in HSE, and I don't want to have
# any conversations with sysadmin. Somehow lftp works.
if [ "$FTP_CLIENT" = "lftp" ]; then
ls_ftp() {
lftp -c "open $1; cls"
}
else
ls_ftp() {
curl -s -l "$1"/
}
fi
if [ -z "$majorVersion" ]; then
echo "Looking for available versions..." >&2
available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` )
if [ "$?" -ne "0" ]; then
echo "Project $project not found" >&2
exit 1
fi
echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2
echo -en "Choose one of them: " >&2
read majorVersion
fi
if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then
# not a major version
version="$majorVersion"
majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2)
fi
FTPDIR="${GNOME_FTP}/${project}/${majorVersion}"
#version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//`
# gnome's LATEST-IS is broken. Do not trust it.
if [ -z "$version" ]; then
files=$(ls_ftp "${FTPDIR}")
declare -A versions
for f in $files; do
case $f in
(LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*):
;;
($project-*.*.9*.tar.*):
tmp=${f#$project-}
tmp=${tmp%.tar*}
echo "Ignored unstable version ${tmp}" >&2
;;
($project-*.tar.*):
tmp=${f#$project-}
tmp=${tmp%.tar*}
versions[${tmp}]=1
;;
(*):
echo "UNKNOWN FILE $f"
;;
esac
done
echo "Found versions ${!versions[@]}" >&2
version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1`
echo "Latest version is: ${version}" >&2
fi
name=${project}-${version}
echo "Fetching .sha256 file" >&2
sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum)
if [ "$?" -ne "0" ]; then
echo "Version not found" >&2
exit 1
fi
extensions=( "xz" "bz2" "gz" )
echo "Choosing archive extension (known are ${extensions[@]})..." >&2
for ext in ${extensions[@]}; do
if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then
ext_pref=$ext
sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ )
break
fi
done
echo "Chosen ${ext_pref}, hash is ${sha256}" >&2
src="# Autogenerated by maintainers/scripts/gnome.sh update
fetchurl: {
name = \"${project}-${version}\";
src = fetchurl {
url = mirror://gnome/sources/${project}/${majorVersion}/${project}-${version}.tar.${ext_pref};
sha256 = \"${sha256}\";
};
}"
if [ "$action" == "update" ]; then
# find project in nixpkgs tree
GNOME_TOP=$(readlink -e $(dirname "${BASH_SOURCE[0]}")"/../../pkgs/desktops/gnome-3/")
projectPath=$(find "$GNOME_TOP" -name "$project" -print)
if [ -z "$projectPath" ]; then
echo "Project $project not found under $GNOME_TOP"
exit 1
fi
echo "Updating $projectPath/src.nix"
echo -e "$src" > "$projectPath/src.nix"
else
echo -e "\n$src"
fi

View File

@ -108,10 +108,8 @@ with lib;
subpixel = { subpixel = {
rgba = mkOption { rgba = mkOption {
type = types.string // {
check = flip elem ["rgb" "bgr" "vrgb" "vbgr" "none"];
};
default = "rgb"; default = "rgb";
type = types.enum ["rgb" "bgr" "vrgb" "vbgr" "none"];
description = '' description = ''
Subpixel order, one of <literal>none</literal>, Subpixel order, one of <literal>none</literal>,
<literal>rgb</literal>, <literal>bgr</literal>, <literal>rgb</literal>, <literal>bgr</literal>,
@ -120,10 +118,8 @@ with lib;
}; };
lcdfilter = mkOption { lcdfilter = mkOption {
type = types.str // {
check = flip elem ["none" "default" "light" "legacy"];
};
default = "default"; default = "default";
type = types.enum ["none" "default" "light" "legacy"];
description = '' description = ''
FreeType LCD filter, one of <literal>none</literal>, FreeType LCD filter, one of <literal>none</literal>,
<literal>default</literal>, <literal>light</literal>, or <literal>default</literal>, <literal>light</literal>, or

View File

@ -108,7 +108,7 @@ in
extraConfig = mkOption { extraConfig = mkOption {
default = ""; default = "";
type = types.string; type = types.lines;
description = '' description = ''
Extra configuration options that will be added verbatim at Extra configuration options that will be added verbatim at
the end of the nslcd configuration file (nslcd.conf). the end of the nslcd configuration file (nslcd.conf).
@ -120,7 +120,7 @@ in
distinguishedName = mkOption { distinguishedName = mkOption {
default = ""; default = "";
example = "cn=admin,dc=example,dc=com"; example = "cn=admin,dc=example,dc=com";
type = types.string; type = types.str;
description = '' description = ''
The distinguished name to bind to the LDAP server with. If this The distinguished name to bind to the LDAP server with. If this
is not specified, an anonymous bind will be done. is not specified, an anonymous bind will be done.
@ -129,7 +129,7 @@ in
password = mkOption { password = mkOption {
default = "/etc/ldap/bind.password"; default = "/etc/ldap/bind.password";
type = types.string; type = types.str;
description = '' description = ''
The path to a file containing the credentials to use when binding The path to a file containing the credentials to use when binding
to the LDAP server (if not binding anonymously). to the LDAP server (if not binding anonymously).
@ -149,7 +149,7 @@ in
policy = mkOption { policy = mkOption {
default = "hard_open"; default = "hard_open";
type = types.string; type = types.enum [ "hard_open" "hard_init" "soft" ];
description = '' description = ''
Specifies the policy to use for reconnecting to an unavailable Specifies the policy to use for reconnecting to an unavailable
LDAP server. The default is <literal>hard_open</literal>, which LDAP server. The default is <literal>hard_open</literal>, which
@ -168,7 +168,7 @@ in
extraConfig = mkOption { extraConfig = mkOption {
default = ""; default = "";
type = types.string; type = types.lines;
description = '' description = ''
Extra configuration options that will be added verbatim at Extra configuration options that will be added verbatim at
the end of the ldap configuration file (ldap.conf). the end of the ldap configuration file (ldap.conf).

View File

@ -41,20 +41,7 @@ in
strings. The latter is concatenated, interspersed with colon strings. The latter is concatenated, interspersed with colon
characters. characters.
''; '';
type = types.attrsOf (mkOptionType { type = types.attrsOf (types.loeOf types.str);
name = "a string or a list of strings";
merge = loc: defs:
let
defs' = filterOverrides defs;
res = (head defs').value;
in
if isList res then concatLists (getValues defs')
else if lessThan 1 (length defs') then
throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
else if !isString res then
throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}."
else res;
});
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v); apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v);
}; };

View File

@ -23,20 +23,7 @@ in
strings. The latter is concatenated, interspersed with colon strings. The latter is concatenated, interspersed with colon
characters. characters.
''; '';
type = types.attrsOf (mkOptionType { type = types.attrsOf (types.loeOf types.str);
name = "a string or a list of strings";
merge = loc: defs:
let
defs' = filterOverrides defs;
res = (head defs').value;
in
if isList res then concatLists (getValues defs')
else if lessThan 1 (length defs') then
throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
else if !isString res then
throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}."
else res;
});
apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v); apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else v);
}; };

View File

@ -103,7 +103,8 @@ in
[ "/bin" [ "/bin"
"/etc/xdg" "/etc/xdg"
"/info" "/info"
"/lib" "/lib" # FIXME: remove
#"/lib/debug/.build-id" # enables GDB to find separated debug info
"/man" "/man"
"/sbin" "/sbin"
"/share/applications" "/share/applications"

View File

@ -47,7 +47,7 @@
]; ];
# Include support for various filesystems. # Include support for various filesystems.
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "zfs" "ntfs" "cifs" ]; boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "zfs" "ntfs" "cifs" ];
# Configure host id for ZFS to work # Configure host id for ZFS to work
networking.hostId = "8425e349"; networking.hostId = "8425e349";

View File

@ -41,7 +41,7 @@ in
dates = mkOption { dates = mkOption {
default = "*:0/15"; default = "*:0/15";
type = types.string; type = types.str;
description = '' description = ''
Specification (in the format described by Specification (in the format described by
<citerefentry><refentrytitle>systemd.time</refentrytitle> <citerefentry><refentrytitle>systemd.time</refentrytitle>
@ -52,7 +52,7 @@ in
user = mkOption { user = mkOption {
default = "root"; default = "root";
type = types.string; type = types.str;
description = '' description = ''
User for running venus script. User for running venus script.
''; '';
@ -60,7 +60,7 @@ in
group = mkOption { group = mkOption {
default = "root"; default = "root";
type = types.string; type = types.str;
description = '' description = ''
Group for running venus script. Group for running venus script.
''; '';
@ -68,7 +68,7 @@ in
name = mkOption { name = mkOption {
default = "NixOS Planet"; default = "NixOS Planet";
type = types.string; type = types.str;
description = '' description = ''
Your planet's name. Your planet's name.
''; '';
@ -76,7 +76,7 @@ in
link = mkOption { link = mkOption {
default = "http://planet.nixos.org"; default = "http://planet.nixos.org";
type = types.string; type = types.str;
description = '' description = ''
Link to the main page. Link to the main page.
''; '';
@ -84,7 +84,7 @@ in
ownerName = mkOption { ownerName = mkOption {
default = "Rok Garbas"; default = "Rok Garbas";
type = types.string; type = types.str;
description = '' description = ''
Your name. Your name.
''; '';
@ -92,7 +92,7 @@ in
ownerEmail = mkOption { ownerEmail = mkOption {
default = "some@example.com"; default = "some@example.com";
type = types.string; type = types.str;
description = '' description = ''
Your e-mail address. Your e-mail address.
''; '';

View File

@ -24,7 +24,7 @@ in
dialerDefaults = mkOption { dialerDefaults = mkOption {
default = ""; default = "";
type = types.string; type = types.str;
example = ''Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"''; example = ''Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"'';
description = '' description = ''
Contents of the "Dialer Defaults" section of Contents of the "Dialer Defaults" section of
@ -40,7 +40,7 @@ in
persist persist
noauth noauth
''; '';
type = types.string; type = types.str;
description = "Default ppp settings for wvdial."; description = "Default ppp settings for wvdial.";
}; };

View File

@ -32,25 +32,25 @@ in
}; };
fileSystem = mkOption { fileSystem = mkOption {
type = types.string; type = types.str;
description = "XFS filesystem hosting the xfs_quota project."; description = "XFS filesystem hosting the xfs_quota project.";
default = "/"; default = "/";
}; };
path = mkOption { path = mkOption {
type = types.string; type = types.str;
description = "Project directory."; description = "Project directory.";
}; };
sizeSoftLimit = mkOption { sizeSoftLimit = mkOption {
type = types.nullOr types.string; type = types.nullOr types.str;
default = null; default = null;
example = "30g"; example = "30g";
description = "Soft limit of the project size"; description = "Soft limit of the project size";
}; };
sizeHardLimit = mkOption { sizeHardLimit = mkOption {
type = types.nullOr types.string; type = types.nullOr types.str;
default = null; default = null;
example = "50g"; example = "50g";
description = "Hard limit of the project size."; description = "Hard limit of the project size.";

View File

@ -419,7 +419,7 @@ in
users.motd = mkOption { users.motd = mkOption {
default = null; default = null;
example = "Today is Sweetmorn, the 4th day of The Aftermath in the YOLD 3178."; example = "Today is Sweetmorn, the 4th day of The Aftermath in the YOLD 3178.";
type = types.nullOr types.string; type = types.nullOr types.lines;
description = "Message of the day shown to users when they log in."; description = "Message of the day shown to users when they log in.";
}; };

View File

@ -24,7 +24,7 @@ in {
}; };
deviceKey = mkOption { deviceKey = mkOption {
type = types.string; type = types.str;
description = '' description = ''
<literal>Device key</literal> obtained by visiting <literal>Device key</literal> obtained by visiting
<link xlink:href="https://panel.preyproject.com/devices" /> <link xlink:href="https://panel.preyproject.com/devices" />
@ -33,7 +33,7 @@ in {
}; };
apiKey = mkOption { apiKey = mkOption {
type = types.string; type = types.str;
description = '' description = ''
<literal>API key</literal> obtained from <literal>API key</literal> obtained from
<link xlink:href="https://panel.preyproject.com/profile" />. <link xlink:href="https://panel.preyproject.com/profile" />.

View File

@ -109,9 +109,10 @@ in
${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${spoolDir} ${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${spoolDir}
${lib.concatMapStrings (createList cfg.listDomain) cfg.mailLists} ${lib.concatMapStrings (createList cfg.listDomain) cfg.mailLists}
echo ${lib.concatMapStrings (virtual cfg.listDomain) cfg.mailLists} > ${stateDir}/virtuals echo ${lib.concatMapStrings (virtual cfg.listDomain) cfg.mailLists} > ${stateDir}/virtuals
echo ${cfg.listDomain} mailman: > ${stateDir}/transports echo ${lib.concatMapStrings (transport cfg.listDomain) cfg.mailLists} > ${stateDir}/transports
echo ${lib.concatMapStrings (transport cfg.listDomain) cfg.mailLists} >> ${stateDir}/transports ${pkgs.postfix}/bin/postmap ${stateDir}/virtuals
''; ${pkgs.postfix}/bin/postmap ${stateDir}/transports
'';
systemd.services."mlmmj-maintd" = { systemd.services."mlmmj-maintd" = {
description = "mlmmj maintenance daemon"; description = "mlmmj maintenance daemon";

View File

@ -119,7 +119,7 @@ in
recipient = mkOption { recipient = mkOption {
default = "root"; default = "root";
type = types.string; type = types.str;
description = "Recipient of the notification messages."; description = "Recipient of the notification messages.";
}; };
@ -153,7 +153,7 @@ in
display = mkOption { display = mkOption {
default = ":${toString config.services.xserver.display}"; default = ":${toString config.services.xserver.display}";
type = types.string; type = types.str;
description = "DISPLAY to send X11 notifications to."; description = "DISPLAY to send X11 notifications to.";
}; };
}; };

View File

@ -28,7 +28,9 @@ with lib;
jobs.oidentd = jobs.oidentd =
{ startOn = "started network-interfaces"; { startOn = "started network-interfaces";
daemonType = "fork"; daemonType = "fork";
exec = "${pkgs.oidentd}/sbin/oidentd -u oidentd -g nogroup"; exec = "${pkgs.oidentd}/sbin/oidentd -u oidentd -g nogroup" +
optionalString config.networking.enableIPv6 " -a ::"
;
}; };
users.extraUsers.oidentd = { users.extraUsers.oidentd = {

View File

@ -37,6 +37,12 @@ in {
type = types.bool; type = types.bool;
}; };
package = mkOption {
description = "Elasticsearch package to use.";
default = pkgs.elasticsearch;
type = types.package;
};
host = mkOption { host = mkOption {
description = "Elasticsearch listen address."; description = "Elasticsearch listen address.";
default = "127.0.0.1"; default = "127.0.0.1";
@ -123,7 +129,7 @@ in {
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { ES_HOME = cfg.dataDir; }; environment = { ES_HOME = cfg.dataDir; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}"; ExecStart = "${cfg.package}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
User = "elasticsearch"; User = "elasticsearch";
PermissionsStartOnly = true; PermissionsStartOnly = true;
}; };
@ -142,7 +148,7 @@ in {
''; '';
}; };
environment.systemPackages = [ pkgs.elasticsearch ]; environment.systemPackages = [ cfg.package ];
users.extraUsers = singleton { users.extraUsers = singleton {
name = "elasticsearch"; name = "elasticsearch";

View File

@ -13,7 +13,6 @@ let
# Map video driver names to driver packages. FIXME: move into card-specific modules. # Map video driver names to driver packages. FIXME: move into card-specific modules.
knownVideoDrivers = { knownVideoDrivers = {
nouveau = { modules = [ pkgs.xf86_video_nouveau ]; };
unichrome = { modules = [ pkgs.xorgVideoUnichrome ]; }; unichrome = { modules = [ pkgs.xorgVideoUnichrome ]; };
virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; }; virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; };
ati = { modules = [ pkgs.xorg.xf86videoati pkgs.xorg.glamoregl ]; }; ati = { modules = [ pkgs.xorg.xf86videoati pkgs.xorg.glamoregl ]; };

View File

@ -99,7 +99,9 @@ let
# makes it bootable. # makes it bootable.
baseSystem = showWarnings ( baseSystem = showWarnings (
if [] == failed then pkgs.stdenv.mkDerivation { if [] == failed then pkgs.stdenv.mkDerivation {
name = "nixos-${config.system.nixosVersion}"; name = let hn = config.networking.hostName;
nn = if (hn != "") then hn else "unnamed";
in "nixos-system-${nn}-${config.system.nixosVersion}";
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;
buildCommand = systemBuilder; buildCommand = systemBuilder;

View File

@ -15,7 +15,7 @@ with lib;
efiSysMountPoint = mkOption { efiSysMountPoint = mkOption {
default = "/boot"; default = "/boot";
type = types.string; type = types.str;
description = "Where the EFI System Partition is mounted."; description = "Where the EFI System Partition is mounted.";
}; };

View File

@ -242,20 +242,20 @@ in
name = mkOption { name = mkOption {
example = "luksroot"; example = "luksroot";
type = types.string; type = types.str;
description = "Named to be used for the generated device in /dev/mapper."; description = "Named to be used for the generated device in /dev/mapper.";
}; };
device = mkOption { device = mkOption {
example = "/dev/sda2"; example = "/dev/sda2";
type = types.string; type = types.str;
description = "Path of the underlying block device."; description = "Path of the underlying block device.";
}; };
header = mkOption { header = mkOption {
default = null; default = null;
example = "/root/header.img"; example = "/root/header.img";
type = types.nullOr types.string; type = types.nullOr types.str;
description = '' description = ''
The name of the file or block device that The name of the file or block device that
should be used as header for the encrypted device. should be used as header for the encrypted device.
@ -265,7 +265,7 @@ in
keyFile = mkOption { keyFile = mkOption {
default = null; default = null;
example = "/dev/sdb1"; example = "/dev/sdb1";
type = types.nullOr types.string; type = types.nullOr types.str;
description = '' description = ''
The name of the file (can be a raw device or a partition) that The name of the file (can be a raw device or a partition) that
should be used as the decryption key for the encrypted device. If should be used as the decryption key for the encrypted device. If
@ -349,7 +349,7 @@ in
ramfsMountPoint = mkOption { ramfsMountPoint = mkOption {
default = "/crypt-ramfs"; default = "/crypt-ramfs";
type = types.string; type = types.str;
description = "Path where the ramfs used to update the LUKS key will be mounted during early boot."; description = "Path where the ramfs used to update the LUKS key will be mounted during early boot.";
}; };
@ -369,19 +369,19 @@ in
fsType = mkOption { fsType = mkOption {
default = "vfat"; default = "vfat";
type = types.string; type = types.str;
description = "The filesystem of the unencrypted device."; description = "The filesystem of the unencrypted device.";
}; };
mountPoint = mkOption { mountPoint = mkOption {
default = "/crypt-storage"; default = "/crypt-storage";
type = types.string; type = types.str;
description = "Path where the unencrypted device will be mounted during early boot."; description = "Path where the unencrypted device will be mounted during early boot.";
}; };
path = mkOption { path = mkOption {
default = "/crypt-storage/default"; default = "/crypt-storage/default";
type = types.string; type = types.str;
description = '' description = ''
Absolute path of the salt on the unencrypted device with Absolute path of the salt on the unencrypted device with
that device's root directory as "/". that device's root directory as "/".

View File

@ -22,21 +22,21 @@ let
blkDev = mkOption { blkDev = mkOption {
default = null; default = null;
example = "/dev/sda1"; example = "/dev/sda1";
type = types.uniq (types.nullOr types.string); type = types.nullOr types.str;
description = "Location of the backing encrypted device."; description = "Location of the backing encrypted device.";
}; };
label = mkOption { label = mkOption {
default = null; default = null;
example = "rootfs"; example = "rootfs";
type = types.uniq (types.nullOr types.string); type = types.nullOr types.str;
description = "Label of the backing encrypted device."; description = "Label of the backing encrypted device.";
}; };
keyFile = mkOption { keyFile = mkOption {
default = null; default = null;
example = "/root/.swapkey"; example = "/root/.swapkey";
type = types.uniq (types.nullOr types.string); type = types.nullOr types.str;
description = "File system location of keyfile."; description = "File system location of keyfile.";
}; };
}; };

View File

@ -22,14 +22,14 @@ let
device = mkOption { device = mkOption {
default = null; default = null;
example = "/dev/sda"; example = "/dev/sda";
type = types.uniq (types.nullOr types.string); type = types.nullOr types.str;
description = "Location of the device."; description = "Location of the device.";
}; };
label = mkOption { label = mkOption {
default = null; default = null;
example = "root-partition"; example = "root-partition";
type = types.uniq (types.nullOr types.string); type = types.nullOr types.str;
description = "Label of the device (if any)."; description = "Label of the device (if any).";
}; };

View File

@ -499,7 +499,7 @@ in
interface = mkOption { interface = mkOption {
example = "enp4s0"; example = "enp4s0";
type = types.string; type = types.str;
description = "The interface the macvlan will transmit packets through."; description = "The interface the macvlan will transmit packets through.";
}; };
@ -605,7 +605,7 @@ in
interface = mkOption { interface = mkOption {
example = "enp4s0"; example = "enp4s0";
type = types.string; type = types.str;
description = "The interface the vlan will transmit packets through."; description = "The interface the vlan will transmit packets through.";
}; };

View File

@ -26,7 +26,7 @@ in
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vpc $diskImage $out/disk.vhd ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vpc $diskImage $out/disk.vhd
rm $diskImage rm $diskImage
''; '';
diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw"; diskImageBase = "nixos-image-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
buildInputs = [ pkgs.utillinux pkgs.perl ]; buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph = exportReferencesGraph =
[ "closure" config.system.build.toplevel ]; [ "closure" config.system.build.toplevel ];

View File

@ -26,7 +26,7 @@ in
rm $diskImageBase rm $diskImageBase
popd popd
''; '';
diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw"; diskImageBase = "nixos-image-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
buildInputs = [ pkgs.utillinux pkgs.perl ]; buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph = exportReferencesGraph =
[ "closure" config.system.build.toplevel ]; [ "closure" config.system.build.toplevel ];

View File

@ -12,6 +12,12 @@ let
perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
su = "${pkgs.shadow.su}/bin/su"; su = "${pkgs.shadow.su}/bin/su";
inherit (pkgs) utillinux; inherit (pkgs) utillinux;
postInstall = ''
t=$out/etc/bash_completion.d
mkdir -p $t
cp ${./nixos-container-completion.sh} $t/nixos-container
'';
}; };
# The container's init script, a small wrapper around the regular # The container's init script, a small wrapper around the regular
@ -102,7 +108,7 @@ in
}; };
hostAddress = mkOption { hostAddress = mkOption {
type = types.nullOr types.string; type = types.nullOr types.str;
default = null; default = null;
example = "10.231.136.1"; example = "10.231.136.1";
description = '' description = ''
@ -111,7 +117,7 @@ in
}; };
localAddress = mkOption { localAddress = mkOption {
type = types.nullOr types.string; type = types.nullOr types.str;
default = null; default = null;
example = "10.231.136.2"; example = "10.231.136.2";
description = '' description = ''

View File

@ -67,7 +67,7 @@ in
postStart = postStart =
mkOption { mkOption {
type = types.string; type = types.lines;
default = '' default = ''
while ! [ -e /var/run/docker.sock ]; do while ! [ -e /var/run/docker.sock ]; do
sleep 0.1 sleep 0.1

View File

@ -30,7 +30,7 @@ in
rm $out/disk.raw rm $out/disk.raw
popd popd
''; '';
diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw"; diskImageBase = "nixos-image-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
buildInputs = [ pkgs.utillinux pkgs.perl ]; buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph = exportReferencesGraph =
[ "closure" config.system.build.toplevel ]; [ "closure" config.system.build.toplevel ];

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
_nixos-container() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="list create destroy start stop status update login root-login run show-ip show-host-key"
startstop_opts=$(nixos-container list)
update_opts="--config"
if [[ "$prev" == "nixos-container" ]]
then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
if [[ $(echo "$opts" | grep "$prev") ]]
then
if [[ "$prev" == "start" || "$prev" == "stop" ]]
then
COMPREPLY=( $(compgen -W "${startstop_opts}" -- ${cur}) )
return 0
elif [[ "$prev" == "update" ]]
then
COMPREPLY=( $(compgen -W "${update_opts}" -- ${cur}) )
return 0
fi
fi
}
complete -F _nixos-container nixos-container

View File

@ -101,7 +101,7 @@ in {
system.build.virtualBoxOVA = pkgs.runCommand "virtualbox-ova" system.build.virtualBoxOVA = pkgs.runCommand "virtualbox-ova"
{ buildInputs = [ pkgs.linuxPackages.virtualbox ]; { buildInputs = [ pkgs.linuxPackages.virtualbox ];
vmName = "NixOS ${config.system.nixosVersion} (${pkgs.stdenv.system})"; vmName = "NixOS ${config.system.nixosVersion} (${pkgs.stdenv.system})";
fileName = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.ova"; fileName = "nixos-image-${config.system.nixosVersion}-${pkgs.stdenv.system}.ova";
} }
'' ''
echo "creating VirtualBox VM..." echo "creating VirtualBox VM..."
@ -109,7 +109,8 @@ in {
VBoxManage createvm --name "$vmName" --register \ VBoxManage createvm --name "$vmName" --register \
--ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"} --ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
VBoxManage modifyvm "$vmName" \ VBoxManage modifyvm "$vmName" \
--memory 1536 --acpi on --vram 10 \ --memory 1536 --acpi on --vram 32 \
${optionalString (pkgs.stdenv.system == "i686-linux") "--pae on"} \
--nictype1 virtio --nic1 nat \ --nictype1 virtio --nic1 nat \
--audiocontroller ac97 --audio alsa \ --audiocontroller ac97 --audio alsa \
--rtcuseutc on \ --rtcuseutc on \

View File

@ -1,26 +1,41 @@
{ debug ? false, ... } @ args:
import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
debug = false; testVMConfig = vmName: attrs: { config, pkgs, ... }: let
guestAdditions = pkgs.linuxPackages.virtualboxGuestAdditions;
testVMConfig = vmName: attrs: { config, pkgs, ... }: { miniInit = ''
boot.kernelParams = let #!${pkgs.stdenv.shell} -xe
miniInit = '' export PATH="${pkgs.coreutils}/bin:${pkgs.utillinux}/bin"
#!${pkgs.stdenv.shell} -xe
export PATH="${pkgs.coreutils}/bin:${pkgs.utillinux}/bin"
${pkgs.linuxPackages.virtualboxGuestAdditions}/bin/VBoxService mkdir -p /etc/dbus-1 /var/run/dbus
${(attrs.vmScript or (const "")) pkgs} cat > /etc/passwd <<EOF
root:x:0:0::/root:/bin/false
messagebus:x:1:1::/var/run/dbus:/bin/false
EOF
cat > /etc/group <<EOF
root:x:0:
messagebus:x:1:
EOF
cp -v "${pkgs.dbus.daemon}/etc/dbus-1/system.conf" \
/etc/dbus-1/system.conf
"${pkgs.dbus.daemon}/bin/dbus-daemon" --fork --system
i=0 ${guestAdditions}/bin/VBoxService
while [ ! -e /mnt-root/shutdown ]; do ${(attrs.vmScript or (const "")) pkgs}
sleep 10
i=$(($i + 10))
[ $i -le 120 ] || fail
done
rm -f /mnt-root/boot-done /mnt-root/shutdown i=0
''; while [ ! -e /mnt-root/shutdown ]; do
in [ sleep 10
i=$(($i + 10))
[ $i -le 120 ] || fail
done
rm -f /mnt-root/boot-done /mnt-root/shutdown
'';
in {
boot.kernelParams = [
"console=tty0" "console=ttyS0" "ignore_loglevel" "console=tty0" "console=ttyS0" "ignore_loglevel"
"boot.trace" "panic=1" "boot.panic_on_fail" "boot.trace" "panic=1" "boot.panic_on_fail"
"init=${pkgs.writeScript "mini-init.sh" miniInit}" "init=${pkgs.writeScript "mini-init.sh" miniInit}"
@ -39,7 +54,7 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
]; ];
boot.initrd.extraUtilsCommands = '' boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs "${pkgs.linuxPackages.virtualboxGuestAdditions}/bin/mount.vboxsf" copy_bin_and_libs "${guestAdditions}/bin/mount.vboxsf"
copy_bin_and_libs "${pkgs.utillinux}/bin/unshare" copy_bin_and_libs "${pkgs.utillinux}/bin/unshare"
${(attrs.extraUtilsCommands or (const "")) pkgs} ${(attrs.extraUtilsCommands or (const "")) pkgs}
''; '';
@ -156,30 +171,26 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
]; ];
in { in {
machine = { machine = {
systemd.sockets = listToAttrs (singleton { systemd.sockets."vboxtestlog-${name}" = {
name = "vboxtestlog-${name}"; description = "VirtualBox Test Machine Log Socket For ${name}";
value = { wantedBy = [ "sockets.target" ];
description = "VirtualBox Test Machine Log Socket"; before = [ "multi-user.target" ];
wantedBy = [ "sockets.target" ]; socketConfig.ListenStream = "/run/virtualbox-log-${name}.sock";
before = [ "multi-user.target" ]; socketConfig.Accept = true;
socketConfig.ListenStream = "/run/virtualbox-log-${name}.sock"; };
socketConfig.Accept = true;
};
});
systemd.services = listToAttrs (singleton { systemd.services."vboxtestlog-${name}@" = {
name = "vboxtestlog-${name}@"; description = "VirtualBox Test Machine Log For ${name}";
value = { serviceConfig.StandardInput = "socket";
description = "VirtualBox Test Machine Log"; serviceConfig.StandardOutput = "syslog";
serviceConfig.StandardInput = "socket"; serviceConfig.SyslogIdentifier = "GUEST-${name}";
serviceConfig.StandardOutput = "syslog"; serviceConfig.ExecStart = "${pkgs.coreutils}/bin/cat";
serviceConfig.SyslogIdentifier = "GUEST-${name}"; };
serviceConfig.ExecStart = "${pkgs.coreutils}/bin/cat";
};
});
}; };
testSubs = '' testSubs = ''
my ${"$" + name}_sharepath = '${sharePath}';
sub checkRunning_${name} { sub checkRunning_${name} {
my $cmd = 'VBoxManage list runningvms | grep -q "^\"${name}\""'; my $cmd = 'VBoxManage list runningvms | grep -q "^\"${name}\""';
my ($status, $out) = $machine->execute(ru $cmd); my ($status, $out) = $machine->execute(ru $cmd);
@ -286,9 +297,15 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
echo "$otherIP reachable" | ${pkgs.netcat}/bin/netcat -clp 5678 || : echo "$otherIP reachable" | ${pkgs.netcat}/bin/netcat -clp 5678 || :
''; '';
sysdDetectVirt = pkgs: ''
${pkgs.systemd}/bin/systemd-detect-virt > /mnt-root/result
'';
vboxVMs = mapAttrs createVM { vboxVMs = mapAttrs createVM {
simple = {}; simple = {};
detectvirt.vmScript = sysdDetectVirt;
test1.vmFlags = hostonlyVMFlags; test1.vmFlags = hostonlyVMFlags;
test1.vmScript = dhcpScript; test1.vmScript = dhcpScript;
@ -307,7 +324,7 @@ in {
mkVMConf = name: val: val.machine // { key = "${name}-config"; }; mkVMConf = name: val: val.machine // { key = "${name}-config"; };
vmConfigs = mapAttrsToList mkVMConf vboxVMs; vmConfigs = mapAttrsToList mkVMConf vboxVMs;
in [ ./common/user-account.nix ./common/x11.nix ] ++ vmConfigs; in [ ./common/user-account.nix ./common/x11.nix ] ++ vmConfigs;
virtualisation.memorySize = 768; virtualisation.memorySize = 1024;
virtualisation.virtualbox.host.enable = true; virtualisation.virtualbox.host.enable = true;
users.extraUsers.alice.extraGroups = let users.extraUsers.alice.extraGroups = let
inherit (config.virtualisation.virtualbox.host) enableHardening; inherit (config.virtualisation.virtualbox.host) enableHardening;
@ -372,6 +389,18 @@ in {
destroyVM_simple; destroyVM_simple;
subtest "systemd-detect-virt", sub {
createVM_detectvirt;
vbm("startvm detectvirt");
waitForStartup_detectvirt;
waitForVMBoot_detectvirt;
shutdownVM_detectvirt;
my $result = $machine->succeed("cat '$detectvirt_sharepath/result'");
chomp $result;
die "systemd-detect-virt returned \"$result\" instead of \"oracle\""
if $result ne "oracle";
};
subtest "net-hostonlyif", sub { subtest "net-hostonlyif", sub {
createVM_test1; createVM_test1;
createVM_test2; createVM_test2;
@ -403,4 +432,4 @@ in {
destroyVM_test2; destroyVM_test2;
}; };
''; '';
}) }) args

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20"; description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20";
homepage = https://github.com/sampov2/foo-yc20; homepage = https://github.com/sampov2/foo-yc20;
license = "BSD"; license = "BSD";
maintainers = stdenv.lib.maintainers.magnetophon; maintainers = [ stdenv.lib.maintainers.magnetophon ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
}; };
} }

View File

@ -0,0 +1,61 @@
{ stdenv, lib, requireFile, demo, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib, ... }:
stdenv.mkDerivation rec {
name = "renoise";
buildInputs = [ libX11 libXext libXcursor libXrandr alsaLib libjack2 ];
src =
if builtins.currentSystem == "x86_64-linux" then
if demo then
fetchurl {
url = "http://files.renoise.com/demo/Renoise_3_0_1_Demo_x86_64.tar.bz2";
sha256 = "1q7f94wz2dbz659kpp53a3n1qyndsk0pkb29lxdff4pc3ddqwykg";
}
else
requireFile {
url = "http://backstage.renoise.com/frontend/app/index.html#/login";
name = "rns_3_0_1_reg_x86_64.tar.gz";
sha256 = "1swax2jz0gswdpzz8alwjfd8rhigc2yfspj7p8wvdvylqrf7n8q7";
}
else if builtins.currentSystem == "i686-linux" then
if demo then
fetchurl {
url = "http://files.renoise.com/demo/Renoise_3_0_1_Demo_x86.tar.bz2";
sha256 = "0dgqvib4xh2yhgh2wajj11wsb6xiiwgfkhyz32g8vnyaij5q8f58";
}
else
requireFile {
url = "http://backstage.renoise.com/frontend/app/index.html#/login";
name = "rns_3_0_1_reg_x86.tar.gz";
sha256 = "1swax2jz0gswdpzz8alwjfd8rhigc2yfspj7p8wvdvylqrf7n8q7";
}
else throw "platform is not suppored by Renoise";
installPhase = ''
cp -r Resources $out
mkdir -p $out/lib/
mv $out/AudioPluginServer* $out/lib/
cp renoise $out/renoise
for path in ${toString buildInputs}; do
ln -s $path/lib/*.so* $out/lib/
done
ln -s ${stdenv.cc.cc}/lib/libstdc++.so.6 $out/lib/
mkdir $out/bin
ln -s $out/renoise $out/bin/renoise
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath $out/lib $out/renoise
'';
meta = {
description = "modern tracker-based DAW";
homepage = http://www.renoise.com/;
license = stdenv.lib.licenses.unfree;
};
}

View File

@ -1,30 +1,31 @@
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2 { stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
, intltool, x11, libxklavier, libgcrypt , intltool, x11, libxklavier, libgcrypt, libaudit
, qt4 ? null, qt5 ? null , qt4 ? null, qt5 ? null
}: }:
let let
ver_branch = "1.14"; ver_branch = "1.16";
version = "1.14.2"; version = "1.16.2";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "lightdm-${version}"; name = "lightdm-${version}";
src = fetchurl { src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz"; url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "18dvipdkp6hc1hysyiwpd5nwq6db3mg98rwi3am2ly3hk2bpic18"; sha256 = "062jj21bjrl29mk66lpihwhrff038h2wny3p6b5asacf2mklf0hq";
}; };
patches = [ ./fix-paths.patch ]; patches = [ ./fix-paths.patch ];
buildInputs = [ buildInputs = [
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
qt4 qt4 libaudit
] ++ stdenv.lib.optional (qt5 != null) qt5.base; ] ++ stdenv.lib.optional (qt5 != null) qt5.base;
configureFlags = [ configureFlags = [
"--localstatedir=/var" "--localstatedir=/var"
"--sysconfdir=/etc" "--sysconfdir=/etc"
"--disable-tests"
] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt" ] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt"
++ stdenv.lib.optional ((qt5.base or null) != null) "--enable-liblightdm-qt5"; ++ stdenv.lib.optional ((qt5.base or null) != null) "--enable-liblightdm-qt5";

View File

@ -127,6 +127,29 @@ rec {
}; };
}; };
bytecode-outline = buildEclipsePlugin rec {
name = "bytecode-outline-${version}";
version = "2.4.3";
srcFeature = fetchurl {
url = "http://andrei.gmxhome.de/eclipse/features/de.loskutov.BytecodeOutline.feature_${version}.jar";
sha256 = "0imhwp73gxy1y5d5gpjgd05ywn0xg3vqc5980wcx3fd51g4ifc67";
};
srcPlugin = fetchurl {
url = "http://dl.bintray.com/iloveeclipse/plugins/de.loskutov.BytecodeOutline_${version}.jar";
sha256 = "0230i88mvvxhn11m9c5mv3494zhh1xkxyfyva9qahck0wbqwpzkw";
};
meta = with stdenv.lib; {
homepage = http://andrei.gmxhome.de/bytecode/;
description = "Shows disassembled bytecode of current java editor or class file";
license = licenses.bsd2;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
};
cdt = buildEclipseUpdateSite rec { cdt = buildEclipseUpdateSite rec {
name = "cdt-${version}"; name = "cdt-${version}";
version = "8.7.0"; version = "8.7.0";

View File

@ -11,7 +11,8 @@ in stdenv.mkDerivation {
# a quick configure to get the Makefile generated. Since # a quick configure to get the Makefile generated. Since
# we do not build the ocaml itself, we don't really # we do not build the ocaml itself, we don't really
# need it to support any features. # need it to support any features.
configureFlags = [ "-no-tk" "-no-curses" "-no-pthread" ]; configureFlags = (with stdenv.lib; optional (!(versionAtLeast version "4.02")) "-no-tk") ++
[ "-no-curses" "-no-pthread" ];
buildInputs = [ emacs ]; buildInputs = [ emacs ];
dontBuild = true; dontBuild = true;

View File

@ -177,7 +177,7 @@ let
strigi taglib udev xlibs xplanet xscreensaver xz; strigi taglib udev xlibs xplanet xscreensaver xz;
alsa = alsaLib; alsa = alsaLib;
assuan = libassuan; assuan = libassuan;
boost = boost156; boost = boost155;
canberra = libcanberra; canberra = libcanberra;
eigen3 = eigen; eigen3 = eigen;
epub = ebook_tools; epub = ebook_tools;

View File

@ -1,28 +0,0 @@
From 55e33019afcb3256cccedf606548b86816f6da59 Mon Sep 17 00:00:00 2001
From: Chris Bagwell <chris@cnpbagwell.com>
Date: Sat, 13 Dec 2014 12:48:37 -0600
Subject: [PATCH 1/2] Check for minimum size sphere headers
---
src/sphere.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/sphere.c b/src/sphere.c
index 479a552..a3fd1c6 100644
--- a/src/sphere.c
+++ b/src/sphere.c
@@ -47,6 +47,11 @@ static int start_read(sox_format_t * ft)
/* Determine header size, and allocate a buffer large enough to hold it. */
sscanf(fldsval, "%lu", &header_size_ul);
+ if (header_size_ul < 16) {
+ lsx_fail_errno(ft, SOX_EHDR, "Error reading Sphere header");
+ return (SOX_EOF);
+ }
+
buf = lsx_malloc(header_size = header_size_ul);
/* Skip what we have read so far */
--
2.1.0

View File

@ -1,28 +0,0 @@
From ebb64cddde59ecc9cedf3741ce2337c72148cc0c Mon Sep 17 00:00:00 2001
From: Chris Bagwell <chris@cnpbagwell.com>
Date: Sat, 13 Dec 2014 12:49:55 -0600
Subject: [PATCH 2/2] More checks for invalid MS ADPCM blocks.
If block doesn't exacty match blockAlign then do not allow
number of samples in invalid size block to ever be more than
what WAV header defined as samplesPerBlock.
---
src/wav.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wav.c b/src/wav.c
index 61d5908..5202556 100644
--- a/src/wav.c
+++ b/src/wav.c
@@ -168,7 +168,7 @@ static unsigned short AdpcmReadBlock(sox_format_t * ft)
/* work with partial blocks. Specs say it should be null */
/* padded but I guess this is better than trailing quiet. */
samplesThisBlock = lsx_ms_adpcm_samples_in((size_t)0, (size_t)ft->signal.channels, bytesRead, (size_t)0);
- if (samplesThisBlock == 0)
+ if (samplesThisBlock == 0 || samplesThisBlock > wav->samplesPerBlock)
{
lsx_warn("Premature EOF on .wav input file");
return 0;
--
2.1.0

View File

@ -11,20 +11,13 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sox-14.4.1"; name = "sox-14.4.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/sox/${name}.tar.gz"; url = "mirror://sourceforge/sox/${name}.tar.gz";
sha256 = "16x8gykfjdhxg0kdxwzcwgwpm5caa08y2mx18siqsq0ywmpjr34s"; sha256 = "0v2znlxkxxcd3f48hf3dx9pq7i6fdhb62kgj7wv8xggz8f35jpxl";
}; };
patches = [
# Patches for CVE-2014-8145, found via RedHat bug 1174792. It was not
# clear whether these address a NULL deref and a division by zero.
./0001-Check-for-minimum-size-sphere-headers.patch
./0002-More-checks-for-invalid-MS-ADPCM-blocks.patch
];
buildInputs = buildInputs =
optional (enableAlsa && stdenv.isLinux) alsaLib ++ optional (enableAlsa && stdenv.isLinux) alsaLib ++
optional enableLibao libao ++ optional enableLibao libao ++

View File

@ -1,14 +1,14 @@
{ stdenv, fetchgit, cmake, qt5, file, kde5}: { stdenv, fetchgit, cmake, qt5, file, kde5}:
let let
version = "git-2015-06-10"; version = "git-2015-07-25";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dfilemanager-${version}"; name = "dfilemanager-${version}";
src = fetchgit { src = fetchgit {
url = "git://git.code.sf.net/p/dfilemanager/code"; url = "git://git.code.sf.net/p/dfilemanager/code";
rev = "806a28aa8fed30941a2fd6784c7c9c240bca30e3"; rev = "99afcde199378eb0d499c49a9e28846c22e27483";
sha256 = "1k15qzjmqg9ffv4cl809b071dpyckf8jspkhfhpbmfd9wasr0m7i"; sha256 = "1dd21xl24xvxs100j8nzhpaqfqk8srqs92al9c03jmyjlk31s6lf";
}; };
buildInputs = [ cmake qt5.base qt5.tools qt5.x11extras file kde5.solid]; buildInputs = [ cmake qt5.base qt5.tools qt5.x11extras file kde5.solid];
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = "http://dfilemanager.sourceforge.net/"; homepage = "http://dfilemanager.sourceforge.net/";
description = "File manager written in Qt/C++, it does use one library from kdelibs, the solid lib for easy device handling"; description = "File manager written in Qt/C++, it does use one library from kdelibs, the solid lib for easy device handling";
#license = stdenv.lib.licenses; # license not specified license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix; platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.eduarrrd ]; maintainers = [ stdenv.lib.maintainers.eduarrrd ];
}; };

View File

@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"; sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
}; };
doCheck = true; doCheck = false;
separateDebugInfo = true;
meta = { meta = {
description = "A program that produces a familiar, friendly greeting"; description = "A program that produces a familiar, friendly greeting";

View File

@ -29,5 +29,5 @@ mkDerivation rec {
homepage = "https://github.com/NorfairKing/super-user-spark"; homepage = "https://github.com/NorfairKing/super-user-spark";
description = "A safe way to never worry about your beautifully configured system again"; description = "A safe way to never worry about your beautifully configured system again";
platforms = ghc.meta.platforms; platforms = ghc.meta.platforms;
maintainers = stdenv.lib.maintainers.badi; maintainers = [ stdenv.lib.maintainers.badi ];
} }

View File

@ -0,0 +1,39 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "tthsum-${version}";
version = "1.3.2";
src = fetchurl {
url = "http://tthsum.devs.nu/pkg/tthsum-${version}.tar.bz2";
sha256 = "0z6jq8lbg9rasv98kxfs56936dgpgzsg3yc9k52878qfw1l2bp59";
};
installPhase = ''
mkdir -p $out/bin $out/share/man/man1
cp share/tthsum.1.gz $out/share/man/man1
cp obj-unix/tthsum $out/bin
'';
meta = with stdenv.lib; {
description = "An md5sum-alike program that works with Tiger/THEX hashes";
longDescription = ''
tthsum generates or checks TTH checksums (root of the THEX hash
tree). The Merkle Hash Tree, invented by Ralph Merkle, is a hash
construct that exhibits desirable properties for verifying the
integrity of files and file subranges in an incremental or
out-of-order fashion. tthsum uses the Tiger hash algorithm for
both the internal and the leaf nodes.
The specification of the Tiger hash algorithm is at:
http://www.cs.technion.ac.il/~biham/Reports/Tiger/
The specification of the THEX algorithm is at:
http://adc.sourceforge.net/draft-jchapweske-thex-02.html
'';
homepage = http://tthsum.devs.nu/;
license = licenses.gpl3Plus;
maintainers = [ maintainers.ebzzry ];
platforms = platforms.unix;
};
}

View File

@ -1,21 +1,21 @@
# This file is autogenerated from update.sh in the parent directory. # This file is autogenerated from update.sh in the parent directory.
{ {
dev = { dev = {
version = "47.0.2503.0"; version = "47.0.2508.0";
sha256 = "1f8swcnrhzh6rc1vyhr6zjwbs74vifr2dmpqppyqa5n8wp2gyhmg"; sha256 = "1jmcvbimj3x91czvclnqbp8w2nfqhk2bd7bw9yd37c576md1wnw2";
sha256bin32 = "0mb047g1x3nc51wqbkiss2q3dxwgvi0ah4x2i9fwy4wfrvm57jnl"; sha256bin32 = "10spq63yfyzw419bz22r2g5rmnaxy5861715mkrcbpfm8cylzmzh";
sha256bin64 = "0cxma0rj70cwzhmx10ib2k60q4w2gar3h55l1pp8b1wgb1pm1vdk"; sha256bin64 = "1ycdp37ikdc9w4hp9qgpzjp47zh37g01ax8x4ack202vrv0dxhsh";
}; };
beta = { beta = {
version = "46.0.2490.22"; version = "46.0.2490.33";
sha256 = "0cpdv1x49xdcparpwq96a7axk16jpj8jhvafmxzh9zfkl1xxvp2i"; sha256 = "196b49mqwkmz1i8qbrfmkxwd74wl40ncyyllj6kcfsq7mpms11ci";
sha256bin32 = "0y4mirk0qrih7nlkyxg2qbhmzrkz4fa8ng5sgbh9vw3pjv0djc2s"; sha256bin32 = "0488cspmnk14jjb6v5c6y3070rmcxsfngyam5mg42q0fcz4593l1";
sha256bin64 = "0vlfjq6fxn2snan2kj4gf35iy2xb444hklv94vm4rwmfydygg2bw"; sha256bin64 = "1kn0k8gpjnm1xsdiby76phwr0i8yb1w9mzmnf7ppj5cddikc5n3v";
}; };
stable = { stable = {
version = "45.0.2454.85"; version = "45.0.2454.93";
sha256 = "14acjc80dmypybbvm087szp0g0m1gil5hjj02x8c6k7alsjh731y"; sha256 = "1iraimblbzp9q16s5q7rbbb7079v095kr8dzqq1wwdb1bvcsllh6";
sha256bin32 = "1945m765a05wfdfslrb22r1jpicyghfkf4h7ijzw1z9whmxa9y1v"; sha256bin32 = "1gndmychajm4qb623k57zirp72w4y1vfxp17gyrbjpg4kzbi1qcg";
sha256bin64 = "0d63akpr3yp128v01xgz1nd364w7p89gkvjpr4qz99q67dh3z1q1"; sha256bin64 = "107l7f7crhcsv4xa219lmnsg2i7jqi5zly71cix54qg2bb7wgfwn";
}; };
} }

View File

@ -19,11 +19,11 @@
let let
# NOTE: When updating, please also update in current stable, as older versions stop working # NOTE: When updating, please also update in current stable, as older versions stop working
version = "3.8.5"; version = "3.8.9";
sha256 = sha256 =
{ {
"x86_64-linux" = "1r0wz2fsx2piasl04qsgwbl88bi0ajr0dm2swbslxwkf789vk18y"; "x86_64-linux" = "1mdhf57bqi4vihbzv5lz8zk4n576c1qjm7hzcq4f5qvkdsmp5in2";
"i686-linux" = "1dvfgp9dg3frhwmchwa6fyws4im9vgicchfsv0zzflvc7rm9fcig"; "i686-linux" = "0gighh782jjmlgqgbw2d00a3ri5h3inqdik7v70f1yygvkr7awy8";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
arch = arch =

View File

@ -5,7 +5,7 @@
let let
version = "2.2.1373"; version = "2.2.1388";
rpath = stdenv.lib.makeSearchPath "lib" [ rpath = stdenv.lib.makeSearchPath "lib" [
stdenv.glibc stdenv.glibc
@ -47,12 +47,12 @@ let
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
fetchurl { fetchurl {
url = "http://downloads.hipchat.com/linux/arch/x86_64/hipchat-${version}-x86_64.pkg.tar.xz"; url = "http://downloads.hipchat.com/linux/arch/x86_64/hipchat-${version}-x86_64.pkg.tar.xz";
sha256 = "0mxjzigncp8sh5w2rpr7kvkiahagm3adss1zv6rqk8hc1awrnd8n"; sha256 = "18vl0c7xgyzd2miwkfzc638z0wzszgsdlbnslkkvxmg95ykdrdnz";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
fetchurl { fetchurl {
url = "http://downloads.hipchat.com/linux/arch/i686/hipchat-${version}-i686.pkg.tar.xz"; url = "http://downloads.hipchat.com/linux/arch/i686/hipchat-${version}-i686.pkg.tar.xz";
sha256 = "1f4cjbazgifxpyr6589frs417h4wpxbykf46w5qiw0m2wiqpqff5"; sha256 = "12q8hf3gmcgrqg6v9xqyknwsmwywpwm76jc54sfniiqv5ngq24hl";
} }
else else
throw "HipChat is not supported on ${stdenv.system}"; throw "HipChat is not supported on ${stdenv.system}";

View File

@ -1,4 +1,9 @@
{ stdenv, fetchurl, makeDesktopItem, unzip, ant, jdk }: { stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk
# Optional, Jitsi still runs without, but you may pass null:
, alsaLib, dbus_libs, gtk2, libpulseaudio, openssl, xlibs
}:
assert stdenv.isLinux;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -22,6 +27,21 @@ stdenv.mkDerivation rec {
categories = "Application;Internet;"; categories = "Application;Internet;";
}; };
libPath = lib.makeLibraryPath ([
stdenv.cc.cc # For libstdc++.
] ++ lib.filter (x: x != null) [
alsaLib
dbus_libs
gtk2
libpulseaudio
openssl
] ++ lib.optionals (xlibs != null) [
xlibs.libX11
xlibs.libXext
xlibs.libXScrnSaver
xlibs.libXv
]);
buildInputs = [unzip ant jdk]; buildInputs = [unzip ant jdk];
buildPhase = ''ant make''; buildPhase = ''ant make'';
@ -29,12 +49,21 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out mkdir -p $out
cp -a lib $out/ cp -a lib $out/
rm -rf $out/lib/native/solaris
cp -a sc-bundles $out/ cp -a sc-bundles $out/
mkdir $out/bin mkdir $out/bin
cp resources/install/generic/run.sh $out/bin/jitsi cp resources/install/generic/run.sh $out/bin/jitsi
chmod +x $out/bin/jitsi chmod +x $out/bin/jitsi
sed -i 's| java | ${jdk}/bin/java |' $out/bin/jitsi substituteInPlace $out/bin/jitsi \
--subst-var-by JAVA ${jdk}/bin/java \
--subst-var-by EXTRALIBS ${gtk2}/lib
patchShebangs $out patchShebangs $out
libPath="$libPath:${jdk.jre.home}/lib/${jdk.architecture}"
find $out/ -type f -name '*.so' | while read file; do
patchelf --set-rpath "$libPath" "$file" && \
patchelf --shrink-rpath "$file"
done
''; '';
meta = { meta = {
@ -42,6 +71,7 @@ stdenv.mkDerivation rec {
description = "Open Source Video Calls and Chat"; description = "Open Source Video Calls and Chat";
license = stdenv.lib.licenses.lgpl21Plus.shortName; license = stdenv.lib.licenses.lgpl21Plus.shortName;
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.khumba ];
}; };
} }

View File

@ -7,7 +7,7 @@
+ +
+#mkdir -p $HOME/.sip-communicator/log +#mkdir -p $HOME/.sip-communicator/log
+ +
+cd "$( dirname "$( dirname "${BASH_SOURCE[0]}" )" )" +cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
# Get architecture # Get architecture
ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/` ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
@ -24,4 +24,4 @@
export PATH=$PATH:native export PATH=$PATH:native
-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator -java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
+exec java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator +LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }: { stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }:
let version = "1.18.1"; in let version = "1.20.0"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "pidgin-sipe-${version}"; name = "pidgin-sipe-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz";
sha256 = "18ch7jpi7ki7xlpahi88xrnmnhc6dcq4hafm0z6d5nfjfp8ldal5"; sha256 = "14d8q9by531hfssm6ydn75xkgidka3ar4sy3czjdb03s1ps82srs";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv { fetchurl, stdenv
, curl, dbus, dbus_glib, enchant, gtk, gnutls, gnupg, gpgme, libarchive , curl, dbus, dbus_glib, enchant, gtk, gnutls, gnupg, gpgme, libarchive
, libcanberra, libetpan, libnotify, libsoup, libxml2, networkmanager, openldap , libcanberra, libetpan, libnotify, libsoup, libxml2, networkmanager, openldap
, perl, pkgconfig, poppler, python, webkitgtk2 , perl, pkgconfig, poppler, python, shared_mime_info, webkitgtk2
# Build options # Build options
# TODO: A flag to build the manual. # TODO: A flag to build the manual.
@ -47,6 +47,8 @@ stdenv.mkDerivation {
sha256 = "0w13xzri9d3165qsxf1dig1f0gxn3ib4lysfc9pgi4zpyzd0zgrw"; sha256 = "0w13xzri9d3165qsxf1dig1f0gxn3ib4lysfc9pgi4zpyzd0zgrw";
}; };
patches = [ ./mime.patch ];
buildInputs = buildInputs =
[ curl dbus dbus_glib gtk gnutls libetpan perl pkgconfig python ] [ curl dbus dbus_glib gtk gnutls libetpan perl pkgconfig python ]
++ optional enableSpellcheck enchant ++ optional enableSpellcheck enchant
@ -80,8 +82,12 @@ stdenv.mkDerivation {
++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin" ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
++ optional (!enableSpellcheck) "--disable-enchant"; ++ optional (!enableSpellcheck) "--disable-enchant";
enableParallelBuilding = true;
postInstall = '' postInstall = ''
mkdir -p $out/share/applications mkdir -p $out/share/applications
cp claws-mail.desktop $out/share/applications cp claws-mail.desktop $out/share/applications
ln -sT ${shared_mime_info}/share/mime $out/share/mime
''; '';
} }

View File

@ -0,0 +1,14 @@
--- a/src/procmime.c 2015-09-18 04:03:11.767654094 -0700
+++ b/src/procmime.c 2015-09-18 04:08:38.834503034 -0700
@@ -1196,11 +1196,7 @@
if (mime_type_list)
return mime_type_list;
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
if ((fp = procmime_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL)
-#else
- if ((fp = procmime_fopen("/usr/share/mime/globs", "rb")) == NULL)
-#endif
{
fp_is_glob_file = FALSE;
if ((fp = procmime_fopen("/etc/mime.types", "rb")) == NULL) {

View File

@ -10,7 +10,7 @@ assert withQt -> !withGtk && qt4 != null;
with stdenv.lib; with stdenv.lib;
let let
version = "1.12.5"; version = "1.12.7";
variant = if withGtk then "gtk" else if withQt then "qt" else "cli"; variant = if withGtk then "gtk" else if withQt then "qt" else "cli";
in in
@ -19,7 +19,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://www.wireshark.org/download/src/wireshark-${version}.tar.bz2"; url = "http://www.wireshark.org/download/src/wireshark-${version}.tar.bz2";
sha256 = "10mxgj916bwv92pfhk4kldcaanr9vndjklzp9ypdxr29xyr7gwfh"; sha256 = "0b7rc1l1gvzcz7gfa6g7pcn32zrcfiqjx0rxm6cg3q1cwwa1qjn7";
}; };
buildInputs = [ buildInputs = [

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, python }: { stdenv, fetchurl, python }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "git-repo-1.21"; name = "git-repo-1.22";
src = fetchurl { src = fetchurl {
# I could not find a versioned url for the 1.21 version. In case # I could not find a versioned url for the 1.21 version. In case
# the sha mismatches, check the homepage for new version and sha. # the sha mismatches, check the homepage for new version and sha.
url = "http://commondatastorage.googleapis.com/git-repo-downloads/repo"; url = "http://commondatastorage.googleapis.com/git-repo-downloads/repo";
sha1 = "b8bd1804f432ecf1bab730949c82b93b0fc5fede"; sha1 = "da0514e484f74648a890c0467d61ca415379f791";
}; };
unpackPhase = "true"; unpackPhase = "true";
@ -20,4 +20,4 @@ stdenv.mkDerivation {
homepage = "http://source.android.com/source/downloading.html"; homepage = "http://source.android.com/source/downloading.html";
description = "Android's repo management tool"; description = "Android's repo management tool";
}; };
} }

View File

@ -0,0 +1,40 @@
{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }:
python2Packages.buildPythonPackage rec {
name = "rabbitvcs-${version}";
version = "0.16";
namePrefix = "";
src = fetchFromGitHub {
owner = "rabbitvcs";
repo = "rabbitvcs";
rev = "v${version}";
sha256 = "0964pdylrx4n9c9l8ncwv4q1p63y4hadb5v4pgvm0m2fah2jlkly";
};
pythonPath = with python2Packages; [ configobj dbus pygobject pygtk simplejson pysvn dulwich tkinter gvfs xdg_utils ];
prePatch = ''
sed -ie 's|if sys\.argv\[1\] == "install":|if False:|' ./setup.py
sed -ie "s|PREFIX = sys.prefix|PREFIX = \"$out\"|" ./setup.py
sed -ie 's|/usr/bin/meld|${meld}/bin/meld|' ./rabbitvcs/util/configspec/configspec.ini
sed -ie 's|/usr/bin/svnadmin|${subversion}/bin/svnadmin|' ./rabbitvcs/ui/create.py
sed -ie "s|/usr/share/doc|$out/share/doc|" ./rabbitvcs/ui/about.py
sed -ie "s|gnome-open|xdg-open|" ./rabbitvcs/util/helper.py
'';
outputs = [ "out" "cli" ];
postInstall = ''
mkdir -p $cli/bin
cp clients/cli/rabbitvcs $cli/bin
wrapPythonProgramsIn $cli "$out $pythonPath"
'';
meta = {
description = "Graphical tools for working with version control systems";
homepage = http://rabbitvcs.org/;
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.mathnerd314 ];
};
}

View File

@ -17,13 +17,13 @@ assert javahlBindings -> jdk != null && perl != null;
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
version = "1.8.14"; version = "1.9.1";
name = "subversion-${version}"; name = "subversion-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://apache/subversion/${name}.tar.bz2"; url = "mirror://apache/subversion/${name}.tar.bz2";
sha1 = "0698efc58373e7657f6dd3ce13cab7b002ffb497"; sha1 = "1244a741dbcf24f2b1d165225f0159a0c994e37a";
}; };
buildInputs = [ zlib apr aprutil sqlite ] buildInputs = [ zlib apr aprutil sqlite ]

View File

@ -1,16 +1,16 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper { stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper
, pythonPackages, gst, clutter-gst, clutter-gtk, hicolor_icon_theme , python3Packages, gst, clutter-gtk, hicolor_icon_theme
, gobjectIntrospection, clutter, gtk3, librsvg, gnome3, libnotify , gobjectIntrospection, librsvg, gnome3, libnotify
}: }:
let let
version = "0.93"; version = "0.94";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "pitivi-${version}"; name = "pitivi-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz"; url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz";
sha256 = "0z89dwrd7akhkap270i372yszqib8yqcymv78lhdmn3a8bsa7jhp"; sha256 = "1v7s0qsibwykkmknspjhpdrj80s987pvbl01kh34k4aspi1hcapm";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
@ -29,15 +29,15 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ]; nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ];
buildInputs = [ buildInputs = [
gobjectIntrospection clutter-gst clutter-gtk librsvg gnome3.gnome_desktop gobjectIntrospection clutter-gtk librsvg gnome3.gnome_desktop
gnome3.defaultIconTheme gnome3.defaultIconTheme
gnome3.gsettings_desktop_schemas libnotify gnome3.gsettings_desktop_schemas libnotify
] ++ (with gst; [ ] ++ (with gst; [
gstreamer gst-python gst-editing-services gstreamer gst-editing-services
gst-plugins-base gst-plugins-good gst-plugins-base gst-plugins-good
gst-plugins-bad gst-plugins-ugly gst-libav gst-plugins-bad gst-plugins-ugly gst-libav
]) ++ (with pythonPackages; [ ]) ++ (with python3Packages; [
python pygobject3 pyxdg numpy pycairo sqlite3 python pygobject3 gst-python pyxdg numpy pycairo sqlite3
]); ]);
preFixup = '' preFixup = ''

View File

@ -6,7 +6,7 @@
, mpeg2dec, udev, gnutls, avahi, libcddb, libjack2, SDL, SDL_image , mpeg2dec, udev, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz
, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
, libvdpau , libvdpau, libsamplerate
, onlyLibVLC ? false , onlyLibVLC ? false
, qt4 ? null, qt5 ? null, withQt5 ? false , qt4 ? null, qt5 ? null, withQt5 ? false
, jackSupport ? false , jackSupport ? false
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
udev gnutls avahi libcddb SDL SDL_image libmtp unzip taglib udev gnutls avahi libcddb SDL SDL_image libmtp unzip taglib
libkate libtiger libv4l samba liboggz libass libdvbpsi libva libkate libtiger libv4l samba liboggz libass libdvbpsi libva
xlibs.xlibs xlibs.libXv xlibs.libXvMC xlibs.libXpm xlibs.xcbutilkeysyms xlibs.xlibs xlibs.libXv xlibs.libXvMC xlibs.libXpm xlibs.xcbutilkeysyms
libdc1394 libraw1394 libopus libebml libmatroska libvdpau libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
] ]
++ (if withQt5 then with qt5; [ base ] else [qt4]) ++ (if withQt5 then with qt5; [ base ] else [qt4])
++ optional jackSupport libjack2; ++ optional jackSupport libjack2;
@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
"--enable-ncurses" "--enable-ncurses"
"--enable-vdpau" "--enable-vdpau"
"--enable-dvdnav" "--enable-dvdnav"
"--enable-samplerate"
] ]
++ optional onlyLibVLC "--disable-vlc"; ++ optional onlyLibVLC "--disable-vlc";

View File

@ -11,17 +11,17 @@
with stdenv.lib; with stdenv.lib;
let let
n = "qemu-2.4.0"; version = "2.4.0";
audio = optionalString (hasSuffix "linux" stdenv.system) "alsa," audio = optionalString (hasSuffix "linux" stdenv.system) "alsa,"
+ optionalString pulseSupport "pa," + optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,"; + optionalString sdlSupport "sdl,";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = n + (if x86Only then "-x86-only" else ""); name = "qemu-" + stdenv.lib.optionalString x86Only "x86-only-" + version;
src = fetchurl { src = fetchurl {
url = "http://wiki.qemu.org/download/${n}.tar.bz2"; url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
sha256 = "0836gqv5zcl0xswwjcns3mlkn18lyz2fiq8rl1ihcm6cpf8vkc3j"; sha256 = "0836gqv5zcl0xswwjcns3mlkn18lyz2fiq8rl1ihcm6cpf8vkc3j";
}; };

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext { stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2 , libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
, which, alsaLib, curl, libvpx, gawk, nettools , which, alsaLib, curl, libvpx, gawk, nettools, dbus
, xorriso, makeself, perl, pkgconfig, nukeReferences , xorriso, makeself, perl, pkgconfig, nukeReferences
, javaBindings ? false, jdk ? null , javaBindings ? false, jdk ? null
, pythonBindings ? false, python ? null , pythonBindings ? false, python ? null
@ -85,11 +85,14 @@ in stdenv.mkDerivation {
ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} + find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} +
sed -i -e ' sed -i -e '
s@"libasound.so.2"@"${alsaLib}/lib/libasound.so.2"@g s@"libdbus-1\.so\.3"@"${dbus}/lib/libdbus-1.so.3"@g
s@"libasound\.so\.2"@"${alsaLib}/lib/libasound.so.2"@g
${optionalString pulseSupport '' ${optionalString pulseSupport ''
s@"libpulse.so.0"@"${libpulseaudio}/lib/libpulse.so.0"@g s@"libpulse\.so\.0"@"${libpulseaudio}/lib/libpulse.so.0"@g
''} ''}
' src/VBox/Main/xml/Settings.cpp src/VBox/Devices/Audio/{alsa,pulse}_stubs.c ' src/VBox/Main/xml/Settings.cpp \
src/VBox/Devices/Audio/{alsa,pulse}_stubs.c \
include/VBox/dbus-calls.h
export USER=nix export USER=nix
set +x set +x
''; '';

View File

@ -2,14 +2,17 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xhyve-${version}"; name = "xhyve-${version}";
version = "0.1.0"; version = "0.2.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/mist64/xhyve/archive/v${version}.tar.gz"; url = "https://github.com/mist64/xhyve/archive/v${version}.tar.gz";
sha256 = "0nbb9zy4iqmdz2dpyvcl1ynimrrpyd6f6cq8y2p78n1lmgqhrgkm"; sha256 = "0g1vknnh88kxc8aaqv3j9wqhq45mm9xxxbn1vcrypj3kk9991hrj";
}; };
buildFlags = "CFLAGS=-Wno-pedantic -Wno-shift-sign-overflow"; # Don't use git to determine version
buildFlags = ''
CFLAGS=-DVERSION=\"${version}\"
'';
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
@ -19,7 +22,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Lightweight Virtualization on OS X Based on bhyve"; description = "Lightweight Virtualization on OS X Based on bhyve";
homepage = "https://github.com/mist64/xhyve"; homepage = "https://github.com/mist64/xhyve";
maintainers = lib.maintainers.lnl7; maintainers = [ lib.maintainers.lnl7 ];
platforms = lib.platforms.darwin; platforms = lib.platforms.darwin;
}; };
} }

View File

@ -142,10 +142,11 @@ while (scalar(keys %postponed) > 0) {
# Create the symlinks. # Create the symlinks.
my $extraPrefix = $ENV{"extraPrefix"};
my $nrLinks = 0; my $nrLinks = 0;
foreach my $relName (sort keys %symlinks) { foreach my $relName (sort keys %symlinks) {
my ($target, $priority) = @{$symlinks{$relName}}; my ($target, $priority) = @{$symlinks{$relName}};
my $abs = "$out/$relName"; my $abs = "$out" . "$extraPrefix" . "/$relName";
next unless isInPathsToLink $relName; next unless isInPathsToLink $relName;
if ($target eq "") { if ($target eq "") {
#print "creating directory $relName\n"; #print "creating directory $relName\n";

View File

@ -21,14 +21,20 @@
# directories in the list is not symlinked. # directories in the list is not symlinked.
pathsToLink ? ["/"] pathsToLink ? ["/"]
, # Shell command to run after building the symlink tree. , # Root the result in directory "$out${extraPrefix}", e.g. "/share".
extraPrefix ? ""
, # Shell commands to run after building the symlink tree.
postBuild ? "" postBuild ? ""
, # Additional inputs. Handy e.g. if using makeWrapper in `postBuild`.
buildInputs ? []
, passthru ? {} , passthru ? {}
}: }:
runCommand name runCommand name
{ inherit manifest ignoreCollisions passthru pathsToLink postBuild; { inherit manifest ignoreCollisions passthru pathsToLink extraPrefix postBuild buildInputs;
pkgs = builtins.toJSON (map (drv: { pkgs = builtins.toJSON (map (drv: {
paths = [ drv ]; # FIXME: handle multiple outputs paths = [ drv ]; # FIXME: handle multiple outputs
priority = drv.meta.priority or 5; priority = drv.meta.priority or 5;

View File

@ -5,7 +5,7 @@
# rewritten to /nix/store/<hash>/bin/python. Interpreters that are # rewritten to /nix/store/<hash>/bin/python. Interpreters that are
# already in the store are left untouched. # already in the store are left untouched.
fixupOutputHooks+=('if [ -z "$dontPatchShebangs" ]; then patchShebangs "$prefix"; fi') fixupOutputHooks+=('if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then patchShebangs "$prefix"; fi')
patchShebangs() { patchShebangs() {
local dir="$1" local dir="$1"

View File

@ -0,0 +1,37 @@
export NIX_LDFLAGS+=" --build-id"
export NIX_CFLAGS_COMPILE+=" -ggdb"
dontStrip=1
fixupOutputHooks+=(_separateDebugInfo)
_separateDebugInfo() {
local dst="${debug:-$out}"
if [ "$prefix" = "$dst" ]; then return; fi
dst="$dst/lib/debug/.build-id"
# Find executables and dynamic libraries.
local -a files=($(find "$prefix" -type f -a \( -perm /0100 -o -name "*.so" -o -name "*.so.*" \)))
local i magic
for i in "${files[@]}"; do
# Skip non-ELF files.
exec 10< "$i"
read -n 4 -u 10 magic
if [[ "$magic" =~ ELF ]]; then echo FOO; fi
exec 10<&-
# Extract the Build ID. FIXME: there's probably a cleaner way.
local id="$(readelf -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')"
if [ "${#id}" != 40 ]; then
echo "could not find build ID of $i, skipping" >&2
continue
fi
# Extract the debug info.
header "separating debug info from $i (build ID $id)"
mkdir -p "$dst/${id:0:2}"
objcopy --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
strip --strip-debug "$i"
done
}

View File

@ -8,12 +8,7 @@
# 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 # 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 { stdenv.mkDerivation rec {
name = "gnome-shell-${gnome3.version}.1"; inherit (import ./src.nix fetchurl) name src;
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${gnome3.version}/${name}.tar.xz";
sha256 = "00gjdfaznpnspb4jmjc19axiz6snd9drvqmzpq4sw0xh1ysgpncv";
};
# Needed to find /etc/NetworkManager/VPN # Needed to find /etc/NetworkManager/VPN
configureFlags = [ "--sysconfdir=/etc" ]; configureFlags = [ "--sysconfdir=/etc" ];

View File

@ -0,0 +1,10 @@
# Autogenerated by maintainers/scripts/gnome.sh update
fetchurl: {
name = "gnome-shell-3.16.1";
src = fetchurl {
url = mirror://gnome/sources/gnome-shell/3.16/gnome-shell-3.16.1.tar.xz;
sha256 = "9bd9fbb40fb003ae09bebfe29d5b6a569b1fbb4a81c92ac9bada5efb956bf201";
};
}

View File

@ -129,7 +129,7 @@ let
modemmanager openconnect openexr pam pango qt4 samba modemmanager openconnect openexr pam pango qt4 samba
socat substituteAll taglib utillinux wayland xapian socat substituteAll taglib utillinux wayland xapian
xkeyboard_config xlibs xorg; xkeyboard_config xlibs xorg;
boost = boost156; boost = boost155;
canberra = libcanberra; canberra = libcanberra;
epub = ebook_tools; epub = ebook_tools;
fontforge_executable = fontforge; fontforge_executable = fontforge;

View File

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchsvn { src = fetchsvn {
url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl; url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl;
rev = revision; rev = revision;
sha256 = "11lmdvzj1mbm7mbr22vjbcrsvinyz8n32a91ms324xqdqpr82ifb"; sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8";
}; };
buildInputs = [ gcc glibc m4 ]; buildInputs = [ gcc glibc m4 ];

View File

@ -15,6 +15,7 @@ stdenv.mkDerivation {
substituteInPlace src/dmd/posix.mak --replace g++ clang++ substituteInPlace src/dmd/posix.mak --replace g++ clang++
''; '';
# Buid and install are based on http://wiki.dlang.org/Building_DMD
buildPhase = '' buildPhase = ''
cd src/dmd cd src/dmd
make -f posix.mak INSTALL_DIR=$out make -f posix.mak INSTALL_DIR=$out
@ -50,7 +51,7 @@ stdenv.mkDerivation {
cd $out/bin cd $out/bin
tee dmd.conf << EOF tee dmd.conf << EOF
[Environment] [Environment]
DFLAGS=-I$out/include/d2 -L-L$out/lib -L--no-warn-search-mismatch -L--export-dynamic DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--no-warn-search-mismatch -L--export-dynamic"}
EOF EOF
''; '';

View File

@ -6,7 +6,7 @@ let
mpfr m4 binutils emacs gmp mpfr m4 binutils emacs gmp
libX11 xproto inputproto libXi libX11 xproto inputproto libXi
libXext xextproto libXt libXaw libXmu libXext xextproto libXt libXaw libXmu
zlib which texinfo texLive zlib which texinfo
]; ];
in in

View File

@ -1,26 +1,26 @@
{ stdenv, fetchurl, jdk, gtk2, xulrunner, zip, pkgconfig, perl, npapi_sdk, bash }: { stdenv, fetchurl, jdk, gtk2, xulrunner, zip, pkgconfig, perl, npapi_sdk, bash, bc }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "icedtea-web-${version}"; name = "icedtea-web-${version}";
version = "1.6"; version = "1.6.1";
src = fetchurl { src = fetchurl {
url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz"; url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz";
sha256 = "0869j9jn0z5b5pfspp4v5cj2ksmbqmmmjhqicn4kqc6wr6v6md59";
sha256 = "0z8iirvpciai55s4vhpfkhyx4h4hm6dqy4pg4c61pia3innqd4qn";
}; };
buildInputs = [ gtk2 xulrunner zip pkgconfig npapi_sdk ]; nativeBuildInputs = [ pkgconfig bc perl ];
buildInputs = [ gtk2 xulrunner zip npapi_sdk ];
preConfigure = '' preConfigure = ''
substituteInPlace javac.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl' #patchShebangs javac.in
configureFlagsArray+=("BIN_BASH=${bash}/bin/bash")
configureFlags="BIN_BASH=${bash}/bin/bash $configureFlags"
''; '';
configureFlags = [ configureFlags = [
"--with-jdk-home=${jdk.home}" "--with-jdk-home=${jdk.home}"
"--disable-docs"
]; ];
mozillaPlugin = "/lib"; mozillaPlugin = "/lib";

View File

@ -1,6 +1,7 @@
{ stdenv, fetchurl { stdenv, fetchurl
, pkgconfig , pkgconfig
, bison, flex }: , bison, flex
, makeWrapper }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -14,7 +15,12 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ pkgconfig bison flex ]; [ pkgconfig bison flex makeWrapper ];
# Intercal invokes gcc, so we need an explicit PATH
postInstall = ''
wrapProgram $out/bin/ick --suffix PATH ':' ${stdenv.cc}/bin
'';
meta = { meta = {
description = "The original esoteric programming language"; description = "The original esoteric programming language";
@ -33,3 +39,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }
# TODO: investigate if LD_LIBRARY_PATH needs to be set

View File

@ -5,11 +5,22 @@
, libunwind, llvm, readline, utf8proc, zlib , libunwind, llvm, readline, utf8proc, zlib
# standard library dependencies # standard library dependencies
, double_conversion, fftwSinglePrec, fftw, glpk, gmp, mpfr, pcre , double_conversion, fftwSinglePrec, fftw, glpk, gmp, mpfr, pcre
# linear algebra
, openblas, arpack, suitesparse , openblas, arpack, suitesparse
}: }:
with stdenv.lib; with stdenv.lib;
# All dependencies should use the same OpenBLAS.
let
arpack_ = arpack;
suitesparse_ = suitesparse;
in
let
arpack = arpack_.override { inherit openblas; };
suitesparse = suitesparse_.override { inherit openblas; };
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "julia"; pname = "julia";
version = "0.3.11"; version = "0.3.11";
@ -68,7 +79,17 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ gfortran git m4 patchelf perl which python2 ]; nativeBuildInputs = [ gfortran git m4 patchelf perl which python2 ];
makeFlags = makeFlags =
[ let
arch = head (splitString "-" stdenv.system);
march =
{ "x86_64-linux" = "x86-64";
"x86_64-darwin" = "x86-64";
"i686-linux" = "i686";
}."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}");
in [
"ARCH=${arch}"
"MARCH=${march}"
"JULIA_CPU_TARGET=${march}"
"PREFIX=$(out)" "PREFIX=$(out)"
"prefix=$(out)" "prefix=$(out)"
"SHELL=${stdenv.shell}" "SHELL=${stdenv.shell}"
@ -122,8 +143,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Test fail on i686 (julia version 0.3.10)
doCheck = !stdenv.isi686;
checkTarget = "testall"; checkTarget = "testall";
meta = { meta = {
@ -131,6 +150,6 @@ stdenv.mkDerivation rec {
homepage = "http://julialang.org/"; homepage = "http://julialang.org/";
license = stdenv.lib.licenses.mit; license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ raskin ttuegel ]; maintainers = with stdenv.lib.maintainers; [ raskin ttuegel ];
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ];
}; };
} }

View File

@ -5,6 +5,18 @@
}: }:
let let
/**
* The JRE libraries are in directories that depend on the CPU.
*/
architecture =
if stdenv.system == "i686-linux" then
"i386"
else if stdenv.system == "x86_64-linux" then
"amd64"
else
throw "openjdk requires i686-linux or x86_64 linux";
update = "60"; update = "60";
build = "24"; build = "24";
baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u"; baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
@ -204,6 +216,9 @@ let
platforms = platforms.linux; platforms = platforms.linux;
}; };
passthru.home = "${openjdk8}/lib/openjdk"; passthru = {
inherit architecture;
home = "${openjdk8}/lib/openjdk";
};
}; };
in openjdk8 in openjdk8

View File

@ -182,6 +182,9 @@ let result = stdenv.mkDerivation rec {
passthru.home = result; passthru.home = result;
meta.license = stdenv.lib.licenses.unfree; meta = with stdenv.lib; {
license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" ]; # some inherit jre.meta.platforms
};
}; in result }; in result

View File

@ -82,7 +82,7 @@ self: super: {
# haddock: No input file(s). # haddock: No input file(s).
nats = dontHaddock super.nats; nats = dontHaddock super.nats;
bytestring-builder = dontHaddock super.bytestring-builder; bytestring-builder = dontHaddock (triggerRebuild super.bytestring-builder 1);
# We have time 1.5 # We have time 1.5
aeson = disableCabalFlag super.aeson "old-locale"; aeson = disableCabalFlag super.aeson "old-locale";

View File

@ -1,10 +0,0 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "1.56.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_56_0.tar.bz2";
sha256 = "07gz62nj767qzwqm3xjh11znpyph8gcii0cqhnx7wvismyn34iqk";
};
})

View File

@ -1,40 +0,0 @@
{ stdenv, callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "1.57.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_57_0.tar.bz2";
sha256 = "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i";
};
patches = if stdenv.isCygwin then [
./cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
./cygwin-fedora-boost-1.50.0-pool.patch
./cygwin-fedora-boost-1.57.0-mpl-print.patch
./cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
./cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
./cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
./cygwin-fedora-boost-1.57.0-pool-test_linking.patch
./cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
./cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
./cygwin-fedora-boost-1.57.0-uuid-comparison.patch
./cygwin-fedora-boost-1.57.0-move-is_class.patch
./cygwin-1.40.0-cstdint-cygwin.patch
./cygwin-1.57.0-asio-cygwin.patch
./cygwin-1.55.0-asio-MSG_EOR.patch
./cygwin-1.57.0-config-cygwin.patch
./cygwin-1.57.0-context-cygwin.patch
./cygwin-1.57.0-filesystem-cygwin.patch
./cygwin-1.55.0-interlocked-cygwin.patch
./cygwin-1.40.0-iostreams-cygwin.patch
./cygwin-1.57.0-locale-cygwin.patch
./cygwin-1.57.0-log-cygwin.patch
./cygwin-1.40.0-python-cygwin.patch
./cygwin-1.40.0-regex-cygwin.patch
./cygwin-1.57.0-smart_ptr-cygwin.patch
./cygwin-1.57.0-system-cygwin.patch
./cygwin-1.45.0-jam-cygwin.patch
./cygwin-1.50.0-jam-pep3149.patch
] else null;
})

View File

@ -1,40 +0,0 @@
{ stdenv, callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "1.58.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_58_0.tar.bz2";
sha256 = "1rfkqxns60171q62cppiyzj8pmsbwp1l8jd7p6crriryqd7j1z7x";
};
patches = if stdenv.isCygwin then [
./cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
./cygwin-fedora-boost-1.50.0-pool.patch
./cygwin-fedora-boost-1.57.0-mpl-print.patch
./cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
./cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
./cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
./cygwin-fedora-boost-1.57.0-pool-test_linking.patch
./cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
./cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
./cygwin-fedora-boost-1.57.0-uuid-comparison.patch
./cygwin-fedora-boost-1.57.0-move-is_class.patch
./cygwin-1.40.0-cstdint-cygwin.patch
./cygwin-1.57.0-asio-cygwin.patch
./cygwin-1.55.0-asio-MSG_EOR.patch
./cygwin-1.57.0-config-cygwin.patch
./cygwin-1.57.0-context-cygwin.patch
./cygwin-1.57.0-filesystem-cygwin.patch
./cygwin-1.55.0-interlocked-cygwin.patch
./cygwin-1.40.0-iostreams-cygwin.patch
./cygwin-1.57.0-locale-cygwin.patch
./cygwin-1.57.0-log-cygwin.patch
./cygwin-1.40.0-python-cygwin.patch
./cygwin-1.40.0-regex-cygwin.patch
./cygwin-1.57.0-smart_ptr-cygwin.patch
./cygwin-1.57.0-system-cygwin.patch
./cygwin-1.45.0-jam-cygwin.patch
./cygwin-1.50.0-jam-pep3149.patch
] else null;
})

View File

@ -1,12 +1,12 @@
{ fetchurl, stdenv }: { fetchurl, stdenv }:
let version = "0.9.14"; in stdenv.mkDerivation rec {
stdenv.mkDerivation {
name = "check-${version}"; name = "check-${version}";
version = "0.10.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/check/${version}/check-${version}.tar.gz"; url = "mirror://sourceforge/check/${version}/check-${version}.tar.gz";
sha256 = "02l4g79d81s07hzywcv1knwj5dyrwjiq2pgxaz7kidxi8m364wn2"; sha256 = "0lhhywf5nxl3dd0hdakra3aasl590756c9kmvyifb3vgm9k0gxgm";
}; };
# Test can randomly fail: http://hydra.nixos.org/build/7243912 # Test can randomly fail: http://hydra.nixos.org/build/7243912

View File

@ -2,15 +2,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
baseName="czmq"; baseName="czmq";
version="3.0.0-rc1"; version="3.0.2";
name="${baseName}-${version}"; name="${baseName}-${version}";
src = fetchurl { src = fetchurl {
url = "http://download.zeromq.org/${name}.tar.gz"; url = "http://download.zeromq.org/${name}.tar.gz";
sha256 = "1g3rk3fz7xzsbqcdcwn0x18nmiyr70k47kg00gdrq8g10li8mmd9"; sha256 = "16k9awrhdsymx7dnmvqcnkaq8lz8x8zppy6sh7ls8prpd6mkkjlb";
}; };
buildInputs = [ zeromq ]; # Needs to be propagated for the .pc file to work
propagatedBuildInputs = [ zeromq ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://czmq.zeromq.org/"; homepage = "http://czmq.zeromq.org/";

View File

@ -2,14 +2,14 @@
, google-gflags, python, libiberty, openssl }: , google-gflags, python, libiberty, openssl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.57.0"; version = "2015-09-17";
name = "folly-${version}"; name = "folly-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "facebook"; owner = "facebook";
repo = "folly"; repo = "folly";
rev = "v${version}"; rev = "e4527fb5d04f5fec823bd6a2402b620a6e1a64e3";
sha256 = "12b9bkwmndfwmsknc209kpplxn9wqmwr3p2h0l2szrppq4qqyfq9"; sha256 = "0iicq19yylafr7qs221xgk8pcwf6nnyx6srgsx9y9cyf72siadcb";
}; };
nativeBuildInputs = [ autoreconfHook python ]; nativeBuildInputs = [ autoreconfHook python ];

View File

@ -10,11 +10,11 @@ composableDerivation.composableDerivation {} rec {
# (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else []) # (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else [])
# // edf { name = "ruby"; enable = { buildInputs = [ ruby ]; };} # // edf { name = "ruby"; enable = { buildInputs = [ ruby ]; };}
name = "geos-3.4.2"; name = "geos-3.5.0";
src = fetchurl { src = fetchurl {
url = "http://download.osgeo.org/geos/${name}.tar.bz2"; url = "http://download.osgeo.org/geos/${name}.tar.bz2";
sha256 = "0lvcs8x9as5jlxilykgg3i4220x8m4z59b2ngfapl219gvgvzs0m"; sha256 = "49982b23bcfa64a53333dab136b82e25354edeb806e5a2e2f5b8aa98b1d0ae02";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnu-efi-${version}"; name = "gnu-efi-${version}";
version = "3.0.2"; version = "3.0.3";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/gnu-efi/${name}.tar.bz2"; url = "mirror://sourceforge/gnu-efi/${name}.tar.bz2";
sha256 = "1mxl6xarwickhssn0nc5hyvayyf2cjh5p10l37jd1ymirl75hjqr"; sha256 = "1jxlypkgb8bd1c114x96i699ib0glb5aca9dv56j377x2ldg4c65";
}; };
buildInputs = [ pciutils ]; buildInputs = [ pciutils ];

View File

@ -13,8 +13,6 @@ rec {
gst-libav = callPackage ./libav { inherit gst-plugins-base; }; gst-libav = callPackage ./libav { inherit gst-plugins-base; };
gst-python = callPackage ./python { inherit gst-plugins-base gstreamer; };
gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; }; gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; };
gst-editing-services = callPackage ./ges { inherit gnonlin; }; gst-editing-services = callPackage ./ges { inherit gnonlin; };

View File

@ -1,5 +1,6 @@
{ fetchurl, stdenv, pkgconfig, python, gstreamer { fetchurl, stdenv, pkgconfig, python
, gst-plugins-base, pygtk, pygobject3 , gst-plugins-base, pygobject3
, ncurses
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,15 +16,16 @@ stdenv.mkDerivation rec {
patches = [ ./different-path-with-pygobject.patch ]; patches = [ ./different-path-with-pygobject.patch ];
buildInputs = nativeBuildInputs = [ pkgconfig python ];
[ pkgconfig gst-plugins-base pygtk pygobject3 ]
; # XXX: in the Libs.private field of python3.pc
buildInputs = [ ncurses ];
preConfigure = '' preConfigure = ''
export configureFlags="$configureFlags --with-pygi-overrides-dir=$out/lib/${python.libPrefix}/site-packages/gi/overrides" export configureFlags="$configureFlags --with-pygi-overrides-dir=$out/lib/${python.libPrefix}/site-packages/gi/overrides"
''; '';
propagatedBuildInputs = [ gstreamer python ]; propagatedBuildInputs = [ gst-plugins-base pygobject3 ];
meta = { meta = {
homepage = http://gstreamer.freedesktop.org; homepage = http://gstreamer.freedesktop.org;

View File

@ -117,7 +117,7 @@ let
inherit acl cmake docbook_xml_dtd_45 docbook5_xsl epoxy fam gpgme inherit acl cmake docbook_xml_dtd_45 docbook5_xsl epoxy fam gpgme
libgcrypt libgit2 modemmanager networkmanager perl libgcrypt libgit2 modemmanager networkmanager perl
perlPackages qimageblitz xlibs zlib; perlPackages qimageblitz xlibs zlib;
boost = boost156; boost = boost155;
gif = giflib; gif = giflib;
glib2 = glib; glib2 = glib;
jpeg = libjpeg; jpeg = libjpeg;

View File

@ -117,7 +117,7 @@ let
inherit acl cmake docbook_xml_dtd_45 docbook5_xsl epoxy fam gpgme inherit acl cmake docbook_xml_dtd_45 docbook5_xsl epoxy fam gpgme
libgcrypt libgit2 modemmanager networkmanager perl libgcrypt libgit2 modemmanager networkmanager perl
perlPackages qimageblitz xlibs zlib; perlPackages qimageblitz xlibs zlib;
boost = boost156; boost = boost155;
gif = giflib; gif = giflib;
glib2 = glib; glib2 = glib;
jpeg = libjpeg; jpeg = libjpeg;

View File

@ -11,13 +11,13 @@ let
in in
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${type}heimdal-2015-06-17"; name = "${type}heimdal-2015-09-13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "heimdal"; owner = "heimdal";
repo = "heimdal"; repo = "heimdal";
rev = "be63a2914adcbea7d42d56e674ee6edb4883ebaf"; rev = "c81572ab5dcee3062e715b9e25ca7a20f6ec456b";
sha256 = "147gv49gmy94y6f0x1vx523qni0frgcp3r7fill0r06rkfgfzc0j"; sha256 = "1r60i4v6y5lpll0l2qpn0ycp6q6f1xjg7k1csi547zls8k96yk9s";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig python perl yacc flex ] nativeBuildInputs = [ autoreconfHook pkgconfig python perl yacc flex ]

View File

@ -8,11 +8,14 @@ stdenv.mkDerivation rec {
sha256 = "1kf8pkwhcssvgzhh6ha1pjjiziwvwmfaali7kaafh6118mcy124b"; sha256 = "1kf8pkwhcssvgzhh6ha1pjjiziwvwmfaali7kaafh6118mcy124b";
}; };
patchPhase = '' patches = [ ./perl-5.22-compat.patch ];
sed -i 's,\$(srcdir)/doc/doxyparse.pl,perl $(srcdir)/doc/doxyparse.pl,' Makefile.in
postPatch = ''
patchShebangs doc/doxyparse.pl
''; '';
buildInputs = [ openssl perl ]; nativeBuildInputs = [ perl ];
buildInputs = [ openssl ];
configureFlags = [ "--with-ssl=${openssl}" "--with-drill" ]; configureFlags = [ "--with-ssl=${openssl}" "--with-drill" ];

View File

@ -0,0 +1,12 @@
diff -Naur old/doc/doxyparse.pl new/doc/doxyparse.pl
--- old/doc/doxyparse.pl 2014-01-11 06:04:41.000000000 +0900
+++ new/doc/doxyparse.pl 2015-08-08 22:29:34.216889652 +0900
@@ -273,7 +273,7 @@
print MAN $MAN_MIDDLE;
- if (defined(@$also)) {
+ if (@$also) {
print MAN "\n.SH SEE ALSO\n\\fI";
print MAN join "\\fR, \\fI", @$also;
print MAN "\\fR.\nAnd ";

View File

@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
sha256 = "0zi1zj4fpxgpglbbb5n1kg3dmhqq5rpf46lli89r5daavp19iing"; sha256 = "0zi1zj4fpxgpglbbb5n1kg3dmhqq5rpf46lli89r5daavp19iing";
}; };
# Boost 1.59 compatability fix
# Attempt removing when updating
postPatch = ''
sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
'';
buildInputs = [ boost doxygen gperf pkgconfig librevenge libxml2 perl ]; buildInputs = [ boost doxygen gperf pkgconfig librevenge libxml2 perl ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
] else null; ] else null;
postInstall = '' postInstall = ''
sed -i s/-lncurses/-lncursesw/g $out/lib/pkgconfig/libedit.pc find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \
-e 's,-lncurses[a-z]*,-L${ncurses}/lib -lncursesw,g'
''; '';
configureFlags = [ "--enable-widec" ]; configureFlags = [ "--enable-widec" ];

View File

@ -0,0 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "libhangul-0.1.0";
src = fetchurl {
url = "https://libhangul.googlecode.com/files/libhangul-0.1.0.tar.gz";
sha256 = "0ni9b0v70wkm0116na7ghv03pgxsfpfszhgyj3hld3bxamfal1ar";
};
meta = with stdenv.lib; {
description = "Core algorithm library for Korean input routines";
homepage = https://code.google.com/p/libhangul;
license = licenses.lgpl21;
maintainers = [ maintainers.ianwookim ];
platforms = platforms.linux;
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, libibumad }: { stdenv, fetchurl, libibumad }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libibmad-1.3.11"; name = "libibmad-1.3.12";
src = fetchurl { src = fetchurl {
url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz"; url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz";
sha256 = "1d5lh2lhz7zzs7bbjjv9i0pj3v1xgp8sdmcr425h563v2c3bp53h"; sha256 = "0ywkz0rskci414r6h6jd4iz4qjbj37ga2k91z1mlj9xrnl9bbgzi";
}; };
buildInputs = [ libibumad ]; buildInputs = [ libibumad ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl }: { stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libibumad-1.3.9"; name = "libibumad-1.3.10.2";
src = fetchurl { src = fetchurl {
url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz"; url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz";
sha256 = "0j52aiwfgasf7bzx65svd5h2ya7848c5racf191i8irsxa155q74"; sha256 = "0bkygb3lbpaj6s4vsyixybrrkcnilbijv4ga5p1xdwyr3gip83sh";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

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