Merge remote-tracking branch 'origin/master' into staging

Conflicts:
	pkgs/applications/audio/espeak/edit.nix
	pkgs/applications/audio/lmms/default.nix
	pkgs/desktops/e18/enlightenment.nix
	pkgs/games/exult/default.nix
	pkgs/os-specific/linux/alsa-plugins/default.nix
This commit is contained in:
Eelco Dolstra 2014-07-28 11:30:31 +02:00
commit f64d84698e
217 changed files with 2107 additions and 2941 deletions

21
doc/contributing.xml Normal file
View File

@ -0,0 +1,21 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-contributing">
<title>Contributing</title>
<para>If you make modifications to the manual, it's important to build the manual before contributing:</para>
<orderedlist>
<listitem><para><command>$ git clone git://github.com/NixOS/nixpkgs.git</command></para></listitem>
<listitem><para><command>$ cd nixpkgs/pkgs/top-level</command></para></listitem>
<listitem><para><command>$ nix-build -A tarball release.nix</command></para></listitem>
<listitem><para>Inside the built derivation you shall see <literal>manual/index.html</literal> file.</para></listitem>
</orderedlist>
</chapter>

View File

@ -32,6 +32,7 @@
<xi:include href="language-support.xml" /> <xi:include href="language-support.xml" />
<xi:include href="package-notes.xml" /> <xi:include href="package-notes.xml" />
<xi:include href="coding-conventions.xml" /> <xi:include href="coding-conventions.xml" />
<xi:include href="contributing.xml" />
</book> </book>

View File

@ -17,7 +17,9 @@ meta = {
It is fully customizable. It is fully customizable.
''; '';
homepage = http://www.gnu.org/software/hello/manual/; homepage = http://www.gnu.org/software/hello/manual/;
license = "GPLv3+"; license = stdenv.lib.licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.eelco ];
platforms = stdenv.lib.platforms.all;
}; };
</programlisting> </programlisting>
@ -31,16 +33,42 @@ the package. The value of a meta-attribute must a string.</para>
command-line using <command>nix-env</command>: command-line using <command>nix-env</command>:
<screen> <screen>
$ nix-env -qa hello --meta --xml $ nix-env -qa hello --meta --json
&lt;?xml version='1.0' encoding='utf-8'?> {
&lt;items> "hello": {
&lt;item attrPath="hello" name="hello-2.3" system="i686-linux"> "meta": {
&lt;meta name="description" value="A program that produces a familiar, friendly greeting" /> "description": "A program that produces a familiar, friendly greeting",
&lt;meta name="homepage" value="http://www.gnu.org/software/hello/manual/" /> "homepage": "http://www.gnu.org/software/hello/manual/",
&lt;meta name="license" value="GPLv3+" /> "license": {
&lt;meta name="longDescription" value="GNU Hello is a program that prints &amp;quot;Hello, world!&amp;quot; when you run it.&amp;#xA;It is fully customizable.&amp;#xA;" /> "fullName": "GNU General Public License version 3 or later",
&lt;/item> "shortName": "GPLv3+",
&lt;/items> "url": "http://www.fsf.org/licensing/licenses/gpl.html"
},
"longDescription": "GNU Hello is a program that prints \"Hello, world!\" when you run it.\nIt is fully customizable.\n",
"maintainers": [
"Ludovic Court\u00e8s &lt;ludo@gnu.org>"
],
"platforms": [
"i686-linux",
"x86_64-linux",
"armv5tel-linux",
"armv7l-linux",
"mips64el-linux",
"x86_64-darwin",
"i686-cygwin",
"i686-freebsd",
"x86_64-freebsd",
"i686-openbsd",
"x86_64-openbsd"
],
"position": "/home/user/dev/nixpkgs/pkgs/applications/misc/hello/ex-2/default.nix:14"
},
"name": "hello-2.9",
"system": "x86_64-linux"
}
}
</screen> </screen>
<command>nix-env</command> knows about the <command>nix-env</command> knows about the
@ -92,20 +120,22 @@ interpretation:</para>
<varlistentry> <varlistentry>
<term><varname>license</varname></term> <term><varname>license</varname></term>
<listitem><para>The license for the package. See below for the <listitem><para>The license for the package. One from attribute set defined in
allowed values.</para></listitem> <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/licenses.nix">
<filename>nixpkgs/lib/licenses.nix</filename></link>.
Example:
<literal>stdenv.lib.licenses.gpl3</literal>.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><varname>maintainers</varname></term> <term><varname>maintainers</varname></term>
<listitem><para>A list of names and e-mail addresses of the <listitem><para>A list of names and e-mail addresses of the
maintainers of this Nix expression, e.g. <literal>["Alice maintainers of this Nix expression. If
&lt;alice@example.org>" "Bob &lt;bob@example.com>"]</literal>. If you would like to be a maintainer of a package, you may want to add
you are the maintainer of multiple packages, you may want to add
yourself to <link yourself to <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/maintainers.nix"><filename>pkgs/lib/maintainers.nix</filename></link> xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/maintainers.nix"><filename>nixpkgs/lib/maintainers.nix</filename></link>
and write something like <literal>[stdenv.lib.maintainers.alice and write something like <literal>[ stdenv.lib.maintainers.alice
stdenv.lib.maintainers.bob]</literal>.</para></listitem> stdenv.lib.maintainers.bob ]</literal>.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -121,29 +151,25 @@ interpretation:</para>
<varlistentry> <varlistentry>
<term><varname>platforms</varname></term> <term><varname>platforms</varname></term>
<listitem><para>The list of Nix platform types on which the <listitem><para>The list of Nix platform types on which the
package is supported. If this attribute is set, the package will package is supported. Hydra builds packages according to the
refuse to build, and wont show up in <literal>nix-env platform specified. If no platform is specified, the package does
-qa</literal> output, on any platform not listed not have prebuilt binaries. An example is:
here. An example is:
<programlisting> <programlisting>
meta.platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; meta.platforms = stdenv.lib.platforms.linux;
</programlisting>
The set <varname>lib.platforms</varname> defines various common
lists of platforms types, so its more typical to write:
<programlisting>
meta.platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
</programlisting> </programlisting>
Attribute Set <varname>stdenv.lib.platforms</varname> in
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/platforms.nix">
<filename>nixpkgs/lib/platforms.nix</filename></link> defines various common
lists of platforms types.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><varname>hydraPlatforms</varname></term> <term><varname>hydraPlatforms</varname></term>
<listitem><para>The list of Nix platform types for which the Hydra <listitem><para>The list of Nix platform types for which the Hydra
instance at <literal>hydra.nixos.org</literal> should build the instance at <literal>hydra.nixos.org</literal> will build the
package. (Hydra is the Nix-based continuous build system.) It package. (Hydra is the Nix-based continuous build system.) It
defaults to the value of <varname>meta.platforms</varname>. Thus, defaults to the value of <varname>meta.platforms</varname>. Thus,
the only reason to set <varname>meta.hydraPlatforms</varname> is the only reason to set <varname>meta.hydraPlatforms</varname> is
@ -176,80 +202,17 @@ meta.hydraPlatforms = [];
<section xml:id="sec-meta-license"><title>Licenses</title> <section xml:id="sec-meta-license"><title>Licenses</title>
<note><para>This is just a first attempt at standardising the license <para>The <varname>meta.license</varname> attribute could be one of the
attribute.</para></note>
<para>The <varname>meta.license</varname> attribute must be one of the
following: following:
<variablelist> <variablelist>
<varlistentry>
<term><varname>GPL</varname></term>
<listitem><para>GNU General Public License; version not
specified.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>GPLv2</varname></term>
<listitem><para>GNU General Public License, version
2.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>GPLv2+</varname></term>
<listitem><para>GNU General Public License, version
2 or higher.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>GPLv3</varname></term>
<listitem><para>GNU General Public License, version
3.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>GPLv3+</varname></term>
<listitem><para>GNU General Public License, version
3 or higher.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>bsd</varname></term>
<listitem><para>Catch-all for licenses that are essentially
similar to <link
xlink:href="http://www.gnu.org/licenses/license-list.html#ModifiedBSD">the
original BSD license with the advertising clause removed</link>,
i.e. permissive non-copyleft free software licenses. This
includes the <link
xlink:href="http://www.gnu.org/licenses/license-list.html#X11License">X11
(“MIT”) License</link>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>perl5</varname></term>
<listitem><para>The Perl 5 license (Artistic License, version 1
and GPL, version 1 or later).</para></listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><varname>free</varname></term> <term><varname>free</varname></term>
<listitem><para>Catch-all for free software licenses not listed <listitem><para>Catch-all for free software licenses not listed
above.</para></listitem> above.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>free-copyleft</varname></term>
<listitem><para>Catch-all for free, copyleft software licenses not
listed above.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>free-non-copyleft</varname></term>
<listitem><para>Catch-all for free, non-copyleft software licenses
not listed above.</para></listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><varname>unfree-redistributable</varname></term> <term><varname>unfree-redistributable</varname></term>
<listitem><para>Unfree package that can be redistributed in binary <listitem><para>Unfree package that can be redistributed in binary

View File

@ -155,9 +155,10 @@ $ git add pkgs/development/libraries/libfoo/default.nix</screen>
</listitem> </listitem>
<listitem> <listitem>
<para>You can use <command>nix-prefetch-url</command> <para>You can use <command>nix-prefetch-url</command> (or similar nix-prefetch-git, etc)
<replaceable>url</replaceable> to get the SHA-256 hash of <replaceable>url</replaceable> to get the SHA-256 hash of
source distributions.</para> source distributions. There are similar commands as <command>nix-prefetch-git</command> and
<command>nix-prefetch-hg</command> available in <literal>nix-prefetch-scripts</literal> package.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -221,17 +222,10 @@ $ nix-env -f . -iA libfoo</screen>
</listitem> </listitem>
<listitem> <listitem>
<para>Optionally commit the new package, or send a patch to <para>Optionally commit the new package and open a pull request, or send a patch to
<literal>nix-dev@cs.uu.nl</literal>.</para> <literal>nix-dev@cs.uu.nl</literal>.</para>
</listitem> </listitem>
<listitem>
<para>If you want the TU Delft build farm to build binaries of the
package and make them available in the <link
xlink:href="http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable/"><literal>nixpkgs</literal>
channel</link>, add it to <link
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/release.nix"><filename>pkgs/top-level/release.nix</filename></link>.</para>
</listitem>
</orderedlist> </orderedlist>

12
nixos/doc/manual/README Normal file
View File

@ -0,0 +1,12 @@
To build the manual, you need Nix installed on your system (no need
for NixOS). To install Nix, follow the instructions at
https://nixos.org/nix/download.html
When you have Nix on your system, in the root directory of the project
(i.e., `nixpkgs`), run:
nix-build nixos/release.nix -A manual.x86_64-linux
When this command successfully finishes, it will tell you where the
manual got generated.

View File

@ -4,6 +4,8 @@ with lib;
let let
cfg = config.services.rabbitmq; cfg = config.services.rabbitmq;
config_file = pkgs.writeText "rabbitmq.config" cfg.config;
config_file_wo_suffix = builtins.substring 0 ((builtins.stringLength config_file) - 7) config_file;
in { in {
###### interface ###### interface
@ -31,7 +33,6 @@ in {
''; '';
}; };
dataDir = mkOption { dataDir = mkOption {
type = types.path; type = types.path;
default = "/var/lib/rabbitmq"; default = "/var/lib/rabbitmq";
@ -40,6 +41,30 @@ in {
''; '';
}; };
cookie = mkOption {
default = "";
type = types.str;
description = ''
Erlang cookie is a string of arbitrary length which must
be the same for several nodes to be allowed to communicate.
Leave empty to generate automatically.
'';
};
config = mkOption {
default = "";
type = types.str;
description = ''
Verbatim configuration file contents.
See http://www.rabbitmq.com/configure.htm
'';
};
plugins = mkOption {
default = [];
type = types.listOf types.str;
description = "The names of plugins to enable";
};
}; };
}; };
@ -69,7 +94,10 @@ in {
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
SYS_PREFIX = ""; SYS_PREFIX = "";
}; RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
[ ${concatStringsSep "," cfg.plugins} ].
'';
} // optionalAttrs (cfg.config != "") { RABBITMQ_CONFIG_FILE = config_file_wo_suffix; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
@ -81,6 +109,15 @@ in {
preStart = '' preStart = ''
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir} mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
${optionalString (cfg.cookie != "") ''
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
chmod 400 ${cfg.dataDir}/.erlang.cookie
chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie
''}
mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq
chown rabbitmq:rabbitmq /var/log/rabbitmq
''; '';
}; };

View File

@ -1,32 +1,35 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let with lib;
serveOnly = pkgs.writeScript "nix-store-serve" ''
#!${pkgs.stdenv.shell}
if [ "$SSH_ORIGINAL_COMMAND" != "nix-store --serve" ]; then
echo 'Error: You are only allowed to run `nix-store --serve'\'''!' >&2
exit 1
fi
exec /run/current-system/sw/bin/nix-store --serve
'';
inherit (lib) mkIf mkOption types; {
in {
options = { options = {
nix.sshServe = { nix.sshServe = {
enable = mkOption { enable = mkOption {
description = "Whether to enable serving the nix store over ssh.";
default = false;
type = types.bool; type = types.bool;
default = false;
description = "Whether to enable serving the Nix store as a binary cache via SSH.";
}; };
keys = mkOption {
type = types.listOf types.str;
default = [];
example = [ "ssh-dss AAAAB3NzaC1k... alice@example.org" ];
description = "A list of SSH public keys allowed to access the binary cache via SSH.";
};
}; };
}; };
config = mkIf config.nix.sshServe.enable { config = mkIf config.nix.sshServe.enable {
users.extraUsers.nix-ssh = { users.extraUsers.nix-ssh = {
description = "User for running nix-store --serve."; description = "Nix SSH substituter user";
uid = config.ids.uids.nix-ssh; uid = config.ids.uids.nix-ssh;
shell = pkgs.stdenv.shell; useDefaultShell = true;
}; };
services.openssh.enable = true; services.openssh.enable = true;
@ -38,8 +41,11 @@ in {
PermitTTY no PermitTTY no
PermitTunnel no PermitTunnel no
X11Forwarding no X11Forwarding no
ForceCommand ${serveOnly} ForceCommand ${config.nix.package}/bin/nix-store --serve
Match All Match All
''; '';
users.extraUsers.nix-ssh.openssh.authorizedKeys.keys = config.nix.sshServe.keys;
}; };
} }

View File

@ -189,19 +189,18 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ pkgs.munin ]; path = [ pkgs.munin ];
environment.MUNIN_PLUGSTATE = "/var/run/munin"; environment.MUNIN_PLUGSTATE = "/var/run/munin";
preStart = ''
echo "updating munin plugins..."
mkdir -p /etc/munin/plugins
rm -rf /etc/munin/plugins/*
PATH="/run/current-system/sw/bin:/run/current-system/sw/sbin" ${pkgs.munin}/sbin/munin-node-configure --shell --families contrib,auto,manual --config ${nodeConf} --libdir=${muninPlugins} --servicedir=/etc/munin/plugins 2>/dev/null | ${pkgs.bash}/bin/bash
'';
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.munin}/sbin/munin-node --config ${nodeConf} --servicedir /etc/munin/plugins/"; ExecStart = "${pkgs.munin}/sbin/munin-node --config ${nodeConf} --servicedir /etc/munin/plugins/";
}; };
}; };
system.activationScripts.munin-node = ''
echo "updating munin plugins..."
mkdir -p /etc/munin/plugins
rm -rf /etc/munin/plugins/*
PATH="/run/current-system/sw/bin:/run/current-system/sw/sbin" ${pkgs.munin}/sbin/munin-node-configure --shell --families contrib,auto,manual --config ${nodeConf} --libdir=${muninPlugins} --servicedir=/etc/munin/plugins 2>/dev/null | ${pkgs.bash}/bin/bash
'';
}) (mkIf cronCfg.enable { }) (mkIf cronCfg.enable {
services.cron.systemCronJobs = [ services.cron.systemCronJobs = [

View File

@ -23,7 +23,7 @@ let
confOptions = { ... }: { confOptions = { ... }: {
options = { options = {
modules = mkOption { modules = mkOption {
type = types.listOf types.string; type = types.listOf types.str;
default = [ "partyline" "webadmin" "adminlog" "log" ]; default = [ "partyline" "webadmin" "adminlog" "log" ];
example = [ "partyline" "webadmin" "adminlog" "log" ]; example = [ "partyline" "webadmin" "adminlog" "log" ];
description = '' description = ''
@ -34,7 +34,7 @@ let
userName = mkOption { userName = mkOption {
default = defaultUserName; default = defaultUserName;
example = "johntron"; example = "johntron";
type = types.string; type = types.str;
description = '' description = ''
The user name to use when generating the `znc.conf` file. The user name to use when generating the `znc.conf` file.
This is the user name used by the user logging into the ZNC web admin. This is the user name used by the user logging into the ZNC web admin.
@ -44,7 +44,7 @@ let
nick = mkOption { nick = mkOption {
default = "znc-user"; default = "znc-user";
example = "john"; example = "john";
type = types.string; type = types.str;
description = '' description = ''
The IRC nick to use when generating the `znc.conf` file. The IRC nick to use when generating the `znc.conf` file.
''; '';
@ -53,7 +53,7 @@ let
passBlock = mkOption { passBlock = mkOption {
default = defaultPassBlock; default = defaultPassBlock;
example = "Must be the block generated by the `znc --makepass` command."; example = "Must be the block generated by the `znc --makepass` command.";
type = types.string; type = types.str;
description = '' description = ''
The pass block to use when generating the `znc.conf` file. The pass block to use when generating the `znc.conf` file.
This is the password used by the user logging into the ZNC web admin. This is the password used by the user logging into the ZNC web admin.
@ -63,9 +63,9 @@ let
}; };
port = mkOption { port = mkOption {
default = "5000"; default = 5000;
example = "5000"; example = 5000;
type = types.string; type = types.int;
description = '' description = ''
Specifies the port on which to listen. Specifies the port on which to listen.
''; '';
@ -104,7 +104,7 @@ let
AllowWeb = true AllowWeb = true
IPv4 = true IPv4 = true
IPv6 = false IPv6 = false
Port = ${if confOpts.useSSL then "+" else ""}${confOpts.port} Port = ${if confOpts.useSSL then "+" else ""}${toString confOpts.port}
SSL = ${if confOpts.useSSL then "true" else "false"} SSL = ${if confOpts.useSSL then "true" else "false"}
</Listener> </Listener>
@ -160,7 +160,7 @@ in
user = mkOption { user = mkOption {
default = "znc"; default = "znc";
example = "john"; example = "john";
type = types.string; type = types.str;
description = '' description = ''
The name of an existing user account to use to own the ZNC server process. The name of an existing user account to use to own the ZNC server process.
If not specified, a default user will be created to own the process. If not specified, a default user will be created to own the process.
@ -170,7 +170,7 @@ in
dataDir = mkOption { dataDir = mkOption {
default = "/home/${cfg.user}/.znc"; default = "/home/${cfg.user}/.znc";
example = "/home/john/.znc"; example = "/home/john/.znc";
type = types.string; type = types.path;
description = '' description = ''
The data directory. Used for configuration files and modules. The data directory. Used for configuration files and modules.
''; '';
@ -179,7 +179,7 @@ in
zncConf = mkOption { zncConf = mkOption {
default = ""; default = "";
example = "See: http://wiki.znc.in/Configuration"; example = "See: http://wiki.znc.in/Configuration";
type = types.string; type = types.lines;
description = '' description = ''
The contents of the `znc.conf` file to use when creating it. The contents of the `znc.conf` file to use when creating it.
If specified, `confOptions` will be ignored, and this value, as-is, will be used. If specified, `confOptions` will be ignored, and this value, as-is, will be used.
@ -218,9 +218,9 @@ in
}; };
extraFlags = mkOption { extraFlags = mkOption {
default = ""; default = [ ];
example = "--debug"; example = [ "--debug" ];
type = types.string; type = types.listOf types.str;
description = '' description = ''
Extra flags to use when executing znc command. Extra flags to use when executing znc command.
''; '';
@ -272,7 +272,7 @@ in
${pkgs.znc}/bin/znc --makepem ${pkgs.znc}/bin/znc --makepem
fi fi
''; '';
script = "${pkgs.znc}/bin/znc --foreground --datadir ${cfg.dataDir} ${cfg.extraFlags}"; script = "${pkgs.znc}/bin/znc --foreground --datadir ${cfg.dataDir} ${toString cfg.extraFlags}";
}; };
users.extraUsers = optional (cfg.user == defaultUser) users.extraUsers = optional (cfg.user == defaultUser)

View File

@ -21,6 +21,11 @@ let
]; ];
}; };
esPlugins = pkgs.buildEnv {
name = "elasticsearch-plugins";
paths = cfg.plugins;
};
in { in {
###### interface ###### interface
@ -101,6 +106,12 @@ in {
example = [ "-Djava.net.preferIPv4Stack=true" ]; example = [ "-Djava.net.preferIPv4Stack=true" ];
}; };
plugins = mkOption {
description = "Extra elasticsearch plugins";
default = [];
type = types.listOf types.package;
};
}; };
###### implementation ###### implementation
@ -111,14 +122,19 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { ES_HOME = cfg.dataDir; }; environment = { ES_HOME = cfg.dataDir; };
path = [ pkgs.elasticsearch ];
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}"; ExecStart = "elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
User = "elasticsearch"; User = "elasticsearch";
PermissionsStartOnly = true; PermissionsStartOnly = true;
}; };
preStart = '' preStart = ''
mkdir -m 0700 -p ${cfg.dataDir} mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
# Install plugins
rm ${cfg.dataDir}/plugins || true
ln -s ${esPlugins}/plugins ${cfg.dataDir}/plugins
''; '';
}; };

View File

@ -29,7 +29,7 @@ in
cache-size=1000 cache-size=1000
scan-path=/srv/git scan-path=/srv/git
''; '';
type = types.string; type = types.lines;
description = '' description = ''
Verbatim contents of the cgit runtime configuration file. Documentation Verbatim contents of the cgit runtime configuration file. Documentation
(with cgitrc example file) is available in "man cgitrc". Or online: (with cgitrc example file) is available in "man cgitrc". Or online:

View File

@ -102,7 +102,7 @@ in
document-root = mkOption { document-root = mkOption {
default = "/srv/www"; default = "/srv/www";
type = types.str; type = types.path;
description = '' description = ''
Document-root of the web server. Must be readable by the "lighttpd" user. Document-root of the web server. Must be readable by the "lighttpd" user.
''; '';
@ -128,7 +128,7 @@ in
configText = mkOption { configText = mkOption {
default = ""; default = "";
type = types.string; type = types.lines;
example = ''...verbatim config file contents...''; example = ''...verbatim config file contents...'';
description = '' description = ''
Overridable config file contents to use for lighttpd. By default, use Overridable config file contents to use for lighttpd. By default, use
@ -138,7 +138,7 @@ in
extraConfig = mkOption { extraConfig = mkOption {
default = ""; default = "";
type = types.string; type = types.lines;
description = '' description = ''
These configuration lines will be appended to the generated lighttpd These configuration lines will be appended to the generated lighttpd
config file. Note that this mechanism does not work when the manual config file. Note that this mechanism does not work when the manual

View File

@ -25,7 +25,7 @@ in
projectroot = mkOption { projectroot = mkOption {
default = "/srv/git"; default = "/srv/git";
type = types.str; type = types.path;
description = '' description = ''
Path to git projects (bare repositories) that should be served by Path to git projects (bare repositories) that should be served by
gitweb. Must not end with a slash. gitweb. Must not end with a slash.
@ -34,7 +34,7 @@ in
extraConfig = mkOption { extraConfig = mkOption {
default = ""; default = "";
type = types.str; type = types.lines;
description = '' description = ''
Verbatim configuration text appended to the generated gitweb.conf file. Verbatim configuration text appended to the generated gitweb.conf file.
''; '';

View File

@ -6,6 +6,7 @@ let
xcfg = config.services.xserver; xcfg = config.services.xserver;
cfg = xcfg.desktopManager.e18; cfg = xcfg.desktopManager.e18;
e18_enlightenment = pkgs.e18.enlightenment.override { set_freqset_setuid = true; };
in in
@ -23,18 +24,20 @@ in
config = mkIf (xcfg.enable && cfg.enable) { config = mkIf (xcfg.enable && cfg.enable) {
environment.systemPackages = [ environment.systemPackages = [
pkgs.e18.efl pkgs.e18.evas pkgs.e18.emotion pkgs.e18.elementary pkgs.e18.enlightenment pkgs.e18.efl pkgs.e18.evas pkgs.e18.emotion pkgs.e18.elementary e18_enlightenment
pkgs.e18.terminology pkgs.e18.econnman pkgs.e18.terminology pkgs.e18.econnman
]; ];
services.xserver.desktopManager.session = [ services.xserver.desktopManager.session = [
{ name = "E18"; { name = "E18";
start = '' start = ''
${pkgs.e18.enlightenment}/bin/enlightenment_start ${e18_enlightenment}/bin/enlightenment_start
waitPID=$! waitPID=$!
''; '';
}]; }];
security.setuidPrograms = [ "e18_freqset" ];
}; };
} }

View File

@ -132,7 +132,7 @@ in
'' ''
# Set up the statically computed bits of /etc. # Set up the statically computed bits of /etc.
echo "setting up /etc..." echo "setting up /etc..."
${pkgs.perl}/bin/perl ${./setup-etc.pl} ${etc}/etc ${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl ${./setup-etc.pl} ${etc}/etc
''; '';
}; };

View File

@ -3,6 +3,7 @@ use File::Find;
use File::Copy; use File::Copy;
use File::Path; use File::Path;
use File::Basename; use File::Basename;
use File::Slurp;
my $etc = $ARGV[0] or die; my $etc = $ARGV[0] or die;
my $static = "/etc/static"; my $static = "/etc/static";
@ -46,35 +47,55 @@ sub cleanup {
find(\&cleanup, "/etc"); find(\&cleanup, "/etc");
# Use /etc/.clean to keep track of copied files.
my @oldCopied = read_file("/etc/.clean", chomp => 1, err_mode => 'quiet');
open CLEAN, ">>/etc/.clean";
# For every file in the etc tree, create a corresponding symlink in # For every file in the etc tree, create a corresponding symlink in
# /etc to /etc/static. The indirection through /etc/static is to make # /etc to /etc/static. The indirection through /etc/static is to make
# switching to a new configuration somewhat more atomic. # switching to a new configuration somewhat more atomic.
my %created;
my @copied;
sub link { sub link {
my $fn = substr $File::Find::name, length($etc) + 1 or next; my $fn = substr $File::Find::name, length($etc) + 1 or next;
my $target = "/etc/$fn"; my $target = "/etc/$fn";
File::Path::make_path(dirname $target); File::Path::make_path(dirname $target);
$created{$fn} = 1;
if (-e "$_.mode") { if (-e "$_.mode") {
open MODE, "<$_.mode"; my $mode = read_file("$_.mode"); chomp $mode;
my $mode = <MODE>; chomp $mode;
close MODE;
if ($mode eq "direct-symlink") { if ($mode eq "direct-symlink") {
atomicSymlink readlink("$static/$fn"), $target or warn; atomicSymlink readlink("$static/$fn"), $target or warn;
} else { } else {
open UID, "<$_.uid"; my $uid = read_file("$_.uid"); chomp $uid;
my $uid = <UID>; chomp $uid; my $gid = read_file("$_.gid"); chomp $gid;
close UID;
open GID, "<$_.gid";
my $gid = <GID>; chomp $gid;
close GID;
copy "$static/$fn", "$target.tmp" or warn; copy "$static/$fn", "$target.tmp" or warn;
chown int($uid), int($gid), "$target.tmp" or warn; chown int($uid), int($gid), "$target.tmp" or warn;
chmod oct($mode), "$target.tmp" or warn; chmod oct($mode), "$target.tmp" or warn;
rename "$target.tmp", $target or warn; rename "$target.tmp", $target or warn;
} }
push @copied, $fn;
print CLEAN "$fn\n";
} elsif (-l "$_") { } elsif (-l "$_") {
atomicSymlink "$static/$fn", $target or warn; atomicSymlink "$static/$fn", $target or warn;
} }
} }
find(\&link, $etc); find(\&link, $etc);
# Delete files that were copied in a previous version but not in the
# current.
foreach my $fn (@oldCopied) {
if (!defined $created{$fn}) {
$fn = "/etc/$fn";
print STDERR "removing obsolete file $fn...\n";
unlink "$fn";
}
}
# Rewrite /etc/.clean.
close CLEAN;
write_file("/etc/.clean", map { "$_\n" } @copied);

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, dbus, jackaudio, pkgconfig, python }: { stdenv, fetchurl, alsaLib, dbus, jack2, pkgconfig, python }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "a2jmidid-${version}"; name = "a2jmidid-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0pzm0qk5ilqhwz74pydg1jwrds27vm47185dakdrxidb5bv3b5ia"; sha256 = "0pzm0qk5ilqhwz74pydg1jwrds27vm47185dakdrxidb5bv3b5ia";
}; };
buildInputs = [ alsaLib dbus jackaudio pkgconfig python ]; buildInputs = [ alsaLib dbus jack2 pkgconfig python ];
configurePhase = "python waf configure --prefix=$out"; configurePhase = "python waf configure --prefix=$out";

View File

@ -1,5 +1,5 @@
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw { stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jackaudio , fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jack2
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf , libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile , librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango , libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc [ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
glibmm gtk gtkmm jackaudio libgnomecanvas libgnomecanvasmm liblo glibmm gtk gtkmm jack2 libgnomecanvas libgnomecanvasmm liblo
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2 libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
makeWrapper pango perl pkgconfig python serd sord sratom suil makeWrapper pango perl pkgconfig python serd sord sratom suil

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, jackaudio, pkgconfig, pulseaudio, xlibs }: { stdenv, fetchurl, alsaLib, jack2, pkgconfig, pulseaudio, xlibs }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "bristol-${version}"; name = "bristol-${version}";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
alsaLib jackaudio pkgconfig pulseaudio xlibs.libX11 xlibs.libXext alsaLib jack2 pkgconfig pulseaudio xlibs.libX11 xlibs.libXext
xlibs.xproto xlibs.xproto
]; ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, cairo, expat, fftwSinglePrec, fluidsynth, glib { stdenv, fetchurl, cairo, expat, fftwSinglePrec, fluidsynth, glib
, gtk, jackaudio, ladspaH , libglade, lv2, pkgconfig }: , gtk, jack2, ladspaH , libglade, lv2, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "calf-${version}"; name = "calf-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
cairo expat fftwSinglePrec fluidsynth glib gtk jackaudio ladspaH cairo expat fftwSinglePrec fluidsynth glib gtk jack2 ladspaH
libglade lv2 pkgconfig libglade lv2 pkgconfig
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchgit, alsaLib, fftwSinglePrec, freetype, jackaudio { stdenv, fetchgit, alsaLib, fftwSinglePrec, freetype, jack2
, libxslt, lv2, pkgconfig, premake3, xlibs }: , libxslt, lv2, pkgconfig, premake3, xlibs }:
let let
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ buildInputs = [
alsaLib fftwSinglePrec freetype jackaudio pkgconfig premake3 alsaLib fftwSinglePrec freetype jack2 pkgconfig premake3
xlibs.libX11 xlibs.libXcomposite xlibs.libXcursor xlibs.libXext xlibs.libX11 xlibs.libXcomposite xlibs.libXcursor xlibs.libXext
xlibs.libXinerama xlibs.libXrender xlibs.libXinerama xlibs.libXrender
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jackaudio, libsndfile, lv2, qt4 }: { stdenv, fetchurl, jack2, libsndfile, lv2, qt4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "drumkv1-${version}"; name = "drumkv1-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "18rvfgblynlmklk25azmppibn1bdjid97hipa323gnzmxgq0rfjq"; sha256 = "18rvfgblynlmklk25azmppibn1bdjid97hipa323gnzmxgq0rfjq";
}; };
buildInputs = [ jackaudio libsndfile lv2 qt4 ]; buildInputs = [ jack2 libsndfile lv2 qt4 ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An old-school drum-kit sampler synthesizer with stereo fx"; description = "An old-school drum-kit sampler synthesizer with stereo fx";

View File

@ -1,10 +1,11 @@
{stdenv, fetchurl, unzip, portaudio }: { stdenv, fetchurl, unzip, portaudio }:
stdenv.mkDerivation rec {
name = "espeak-1.48.04";
stdenv.mkDerivation {
name = "espeak-1.46.02";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/espeak/espeak-1.46.02-source.zip; url = "mirror://sourceforge/espeak/${name}-source.zip";
sha256 = "1fjlv5fm0gzvr5wzy1dp4nspw04k0bqv3jymha2p2qfjbfifp2zg"; sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
}; };
buildInputs = [ unzip portaudio ]; buildInputs = [ unzip portaudio ];
@ -21,9 +22,10 @@ stdenv.mkDerivation {
makeFlags="PREFIX=$out DATADIR=$out/share/espeak-data" makeFlags="PREFIX=$out DATADIR=$out/share/espeak-data"
''; '';
meta = { meta = with stdenv.lib; {
description = "Compact open source software speech synthesizer"; description = "Compact open source software speech synthesizer";
homepage = http://espeak.sourceforge.net/; homepage = http://espeak.sourceforge.net/;
license = "GPLv3+"; license = "GPLv3+";
platforms = platforms.linux;
}; };
} }

View File

@ -1,31 +1,57 @@
{stdenv, fetchurl, unzip, portaudio, wxGTK}: { stdenv, fetchurl, pkgconfig, unzip, portaudio, wxGTK, sox }:
stdenv.mkDerivation rec {
name = "espeakedit-1.48.03";
stdenv.mkDerivation {
name = "espeakedit-1.46.02";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/espeak/espeakedit-1.46.02.zip; url = "mirror://sourceforge/espeak/${name}.zip";
sha256 = "1cc5r89sn8zz7b8wj4grx9xb7aqyi0ybj0li9hpy7hd67r56kqkl"; sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
}; };
buildInputs = [ unzip portaudio wxGTK ]; buildInputs = [ pkgconfig unzip portaudio wxGTK ];
patchPhase = if portaudio.api_version == 19 then '' # TODO:
# Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
# it should use $espeak/share/espeak-data. Have to contact upstream to get
# this fixed.
#
# Workaround:
# cp -r $(nix-build -A espeak)/share/espeak-data ~
# chmod +w ~/espeak-data
patches = [
./espeakedit-fix-makefile.patch
./espeakedit-configurable-sox-path.patch
./espeakedit-configurable-path-espeak-data.patch
];
postPatch = ''
# Disable -Wall flag because it's noisy
sed -i "s/-Wall//g" src/Makefile
# Fixup paths (file names from above espeak-configurable* patches)
for file in src/compiledata.cpp src/readclause.cpp src/speech.h; do
sed -e "s|@sox@|${sox}/bin/sox|" \
-e "s|@prefix@|$out|" \
-i "$file"
done
'' + stdenv.lib.optionalString (portaudio.api_version == 19) ''
cp src/portaudio19.h src/portaudio.h cp src/portaudio19.h src/portaudio.h
'' else ""; '';
buildPhase = '' buildPhase = ''
cd src make -C src
gcc -o espeakedit *.cpp `wx-config --cxxflags --libs`
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p "$out/bin"
cp espeakedit $out/bin cp src/espeakedit "$out/bin"
''; '';
meta = { meta = with stdenv.lib; {
description = "Phoneme editor for espeak"; description = "Phoneme editor for espeak";
homepage = http://espeak.sourceforge.net/; homepage = http://espeak.sourceforge.net/;
license = "GPLv3+"; license = "GPLv3+";
platforms = platforms.linux;
}; };
} }

View File

@ -0,0 +1,15 @@
Don't hardcode /usr, use @prefix@.
Author: Bjørn Forsman
diff -uNr espeakedit-1.48.03.orig/src/speech.h espeakedit-1.48.03/src/speech.h
--- espeakedit-1.48.03.orig/src/speech.h 2014-03-04 17:48:12.000000000 +0100
+++ espeakedit-1.48.03/src/speech.h 2014-07-22 18:21:40.860790719 +0200
@@ -58,7 +58,7 @@
// will look for espeak_data directory here, and also in user's home directory
#ifndef PATH_ESPEAK_DATA
- #define PATH_ESPEAK_DATA "/usr/share/espeak-data"
+ #define PATH_ESPEAK_DATA "@prefix@/share/espeak-data"
#endif
typedef unsigned short USHORT;

View File

@ -0,0 +1,27 @@
Make the path to 'sox' configurable by marking it '@sox@' (easy to match with sed).
Author: Bjørn Forsman
diff -uNr espeakedit-1.48.03.orig/src/compiledata.cpp espeakedit-1.48.03/src/compiledata.cpp
--- espeakedit-1.48.03.orig/src/compiledata.cpp 2014-03-04 17:48:11.000000000 +0100
+++ espeakedit-1.48.03/src/compiledata.cpp 2014-07-22 16:38:50.261388452 +0200
@@ -1884,7 +1884,7 @@
fname2 = msg;
}
- sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
+ sprintf(command,"@sox@ \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
if(system(command) != 0)
{
failed = 1;
diff -uNr espeakedit-1.48.03.orig/src/readclause.cpp espeakedit-1.48.03/src/readclause.cpp
--- espeakedit-1.48.03.orig/src/readclause.cpp 2014-03-04 17:48:11.000000000 +0100
+++ espeakedit-1.48.03/src/readclause.cpp 2014-07-22 16:38:37.190440504 +0200
@@ -892,7 +892,7 @@
if((fd_temp = mkstemp(fname_temp)) >= 0)
{
close(fd_temp);
- sprintf(command,"sox \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
+ sprintf(command,"@sox@ \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
if(system(command) == 0)
{
fname = fname_temp;

View File

@ -0,0 +1,26 @@
Fix broken Makefile:
* fix syntax error (missing '\' to continue line):
Makefile:19: *** recipe commences before first target. Stop.
* Get portaudio library flags from pkg-config (to get -Lpath/to/portaudio/lib etc.)
Author: Bjørn Forsman
diff -uNr espeakedit-1.48.03.orig/src/Makefile espeakedit-1.48.03/src/Makefile
--- espeakedit-1.48.03.orig/src/Makefile 2013-03-13 15:52:02.000000000 +0100
+++ espeakedit-1.48.03/src/Makefile 2014-07-22 15:34:17.524114822 +0200
@@ -12,12 +12,11 @@
WX_LIBS = -pthread `wx-config --libs`
-LIBS=-lstdc++ -lportaudio
+LIBS=-lstdc++ `pkg-config --libs portaudio-2.0`
#LIBS=-lstdc++ /usr/lib/x86_64-linux-gnu/libportaudio.so.2
-CPPFLAGS = -Wall -g -fexceptions `wx-config --cflags`
- -I/usr/include/wx-2.8 \
- -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
+CPPFLAGS = -Wall -g -fexceptions `wx-config --cflags` \
+ -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES \
-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
CXXFLAGS = -O2 -Wall -fexceptions `wx-config --cflags` \

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, glib, jackaudio, libsndfile, pkgconfig { stdenv, fetchurl, alsaLib, glib, jack2, libsndfile, pkgconfig
, pulseaudio }: , pulseaudio }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
"-framework CoreAudio"; "-framework CoreAudio";
buildInputs = [ glib libsndfile pkgconfig ] buildInputs = [ glib libsndfile pkgconfig ]
++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jackaudio ]; ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jack2 ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Real-time software synthesizer based on the SoundFont 2 specifications"; description = "Real-time software synthesizer based on the SoundFont 2 specifications";

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk { stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk
, gtkmm, intltool, jackaudio, ladspaH, librdf, libsndfile, lv2 , gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lv2
, pkgconfig, python }: , pkgconfig, python }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
avahi boost fftw gettext glib glibmm gtk gtkmm intltool jackaudio avahi boost fftw gettext glib glibmm gtk gtkmm intltool jack2
ladspaH librdf libsndfile lv2 pkgconfig python ladspaH librdf libsndfile lv2 pkgconfig python
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, boost, glib, jackaudio, ladspaPlugins { stdenv, fetchurl, alsaLib, boost, glib, jack2, ladspaPlugins
, libarchive, liblrdf , libsndfile, pkgconfig, qt4, scons, subversion }: , libarchive, liblrdf , libsndfile, pkgconfig, qt4, scons, subversion }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
alsaLib boost glib jackaudio ladspaPlugins libarchive liblrdf alsaLib boost glib jack2 ladspaPlugins libarchive liblrdf
libsndfile pkgconfig qt4 scons subversion libsndfile pkgconfig qt4 scons subversion
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchsvn, boost, ganv, glibmm, gtk, gtkmm, jackaudio, lilv { stdenv, fetchsvn, boost, ganv, glibmm, gtk, gtkmm, jack2, lilv
, lv2, pkgconfig, python, raul, serd, sord, sratom, suil , lv2, pkgconfig, python, raul, serd, sord, sratom, suil
}: }:
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
boost ganv glibmm gtk gtkmm jackaudio lilv lv2 pkgconfig python boost ganv glibmm gtk gtkmm jack2 lilv lv2 pkgconfig python
raul serd sord sratom suil raul serd sord sratom suil
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jackaudio, libsndfile, pkgconfig }: { stdenv, fetchurl, jack2, libsndfile, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jack_capture-${version}"; name = "jack_capture-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv"; sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv";
}; };
buildInputs = [ jackaudio libsndfile pkgconfig ]; buildInputs = [ jack2 libsndfile pkgconfig ];
buildPhase = "PREFIX=$out make jack_capture"; buildPhase = "PREFIX=$out make jack_capture";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, SDL, jackaudio, mesa, pkgconfig }: { stdenv, fetchurl, SDL, jack2, mesa, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jack_oscrolloscope-${version}"; name = "jack_oscrolloscope-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash"; sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash";
}; };
buildInputs = [ SDL jackaudio mesa pkgconfig ]; buildInputs = [ SDL jack2 mesa pkgconfig ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, jackaudio, ladspaH, gtk, alsaLib, libxml2, librdf }: { stdenv, fetchurl, pkgconfig, jack2, ladspaH, gtk, alsaLib, libxml2, librdf }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jack-rack-1.4.7"; name = "jack-rack-1.4.7";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/jack-rack/${name}.tar.bz2"; url = "mirror://sourceforge/jack-rack/${name}.tar.bz2";
sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045"; sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
}; };
buildInputs = [ pkgconfig jackaudio ladspaH gtk alsaLib libxml2 librdf ]; buildInputs = [ pkgconfig jack2 ladspaH gtk alsaLib libxml2 librdf ];
meta = { meta = {
description = ''An effects "rack" for the JACK low latency audio API''; description = ''An effects "rack" for the JACK low latency audio API'';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jackaudio, pkgconfig }: { stdenv, fetchurl, jack2, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jackmeter-0.4"; name = "jackmeter-0.4";
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r"; sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r";
}; };
buildInputs = [ jackaudio pkgconfig ]; buildInputs = [ jack2 pkgconfig ];
meta = { meta = {
description = "Console jack loudness meter"; description = "Console jack loudness meter";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gtk, jackaudio, lilv, lv2, pkgconfig, python { stdenv, fetchurl, gtk, jack2, lilv, lv2, pkgconfig, python
, serd, sord , sratom, suil }: , serd, sord , sratom, suil }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
gtk jackaudio lilv lv2 pkgconfig python serd sord sratom suil gtk jack2 lilv lv2 pkgconfig python serd sord sratom suil
]; ];
configurePhase = "python waf configure --prefix=$out"; configurePhase = "python waf configure --prefix=$out";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, gtk, jackaudio, libuuid, libxml2 { stdenv, fetchurl, alsaLib, gtk, jack2, libuuid, libxml2
, makeWrapper, pkgconfig, readline }: , makeWrapper, pkgconfig, readline }:
assert libuuid != null; assert libuuid != null;
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
# http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346 # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
patches = [ ./socket.patch ./gcc-47.patch ]; patches = [ ./socket.patch ./gcc-47.patch ];
buildInputs = [ alsaLib gtk jackaudio libuuid libxml2 makeWrapper buildInputs = [ alsaLib gtk jack2 libuuid libxml2 makeWrapper
pkgconfig readline ]; pkgconfig readline ];
postInstall = '' postInstall = ''

View File

@ -1,5 +1,5 @@
{ stdenv, fetchsvn, alsaLib, asio, autoconf, automake, bison { stdenv, fetchsvn, alsaLib, asio, autoconf, automake, bison
, jackaudio, libgig, libsndfile, libtool, lv2, pkgconfig }: , jack2, libgig, libsndfile, libtool, lv2, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "linuxsampler-svn-${version}"; name = "linuxsampler-svn-${version}";
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ buildInputs = [
alsaLib asio autoconf automake bison jackaudio libgig libsndfile alsaLib asio autoconf automake bison jack2 libgig libsndfile
libtool lv2 pkgconfig libtool lv2 pkgconfig
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jackaudio, libogg { stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jack2, libogg
, libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4, freetype , libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4, freetype
}: }:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
SDL alsaLib cmake fftwSinglePrec jackaudio libogg libsamplerate SDL alsaLib cmake fftwSinglePrec jack2 libogg libsamplerate
libsndfile pkgconfig pulseaudio qt4 libsndfile pkgconfig pulseaudio qt4
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, SDL , alsaLib, gtk, jackaudio, ladspaH { stdenv, fetchurl, SDL , alsaLib, gtk, jack2, ladspaH
, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, pulseaudio }: , ladspaPlugins, libsamplerate, libsndfile, pkgconfig, pulseaudio }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ SDL alsaLib gtk jackaudio ladspaH libsamplerate libsndfile [ SDL alsaLib gtk jack2 ladspaH libsamplerate libsndfile
pkgconfig pulseaudio pkgconfig pulseaudio
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, SDL, alsaLib, autoconf, automake, jackaudio, perl { stdenv, fetchurl, SDL, alsaLib, autoconf, automake, jack2, perl
, zlib, zziplib , zlib, zziplib
}: }:
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
export CPATH=${zlib}/lib export CPATH=${zlib}/lib
''; '';
buildInputs = [ SDL alsaLib autoconf automake jackaudio perl zlib zziplib ]; buildInputs = [ SDL alsaLib autoconf automake jack2 perl zlib zziplib ];
meta = { meta = {
description = "Music tracker application, similar to Fasttracker II."; description = "Music tracker application, similar to Fasttracker II.";

View File

@ -1,4 +1,7 @@
{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg, libvorbis, mpc, libsndfile, jackaudio, db, libmodplug, timidity, libid3tag, libtool }: { stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg
, libvorbis, mpc, libsndfile, jack2, db, libmodplug, timidity, libid3tag
, libtool
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "moc-${version}"; name = "moc-${version}";
@ -11,7 +14,10 @@ stdenv.mkDerivation rec {
configurePhase = "./configure prefix=$out"; configurePhase = "./configure prefix=$out";
buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis mpc libsndfile jackaudio db libmodplug timidity libid3tag libtool ]; buildInputs = [
ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis
mpc libsndfile jack2 db libmodplug timidity libid3tag libtool
];
meta = { meta = {
description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use."; description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, glib, ncurses, mpd_clientlib, libintlOrEmpty }: { stdenv, fetchurl, pkgconfig, glib, ncurses, mpd_clientlib, libintlOrEmpty }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.22"; version = "0.23";
name = "ncmpc-${version}"; name = "ncmpc-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.musicpd.org/download/ncmpc/0/ncmpc-${version}.tar.xz"; url = "http://www.musicpd.org/download/ncmpc/0/ncmpc-${version}.tar.xz";
sha256 = "a8d65f12653d9ce8bc4493aa1c5de09359c25bf3a22498d2ae797e7d41422211"; sha256 = "d7b30cefaf5c74a5d8ab18ab8275e0102ae12e8ee6d6f8144f8e4cc9a97b5de4";
}; };
buildInputs = [ pkgconfig glib ncurses mpd_clientlib ] buildInputs = [ pkgconfig glib ncurses mpd_clientlib ]

View File

@ -1,4 +1,4 @@
{ stdenv, fetchgit, alsaLib, cmake, gtk, jackaudio, libgnomecanvas { stdenv, fetchgit, alsaLib, cmake, gtk, jack2, libgnomecanvas
, libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2 , libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
, pkgconfig }: , pkgconfig }:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ alsaLib cmake gtk jackaudio libgnomecanvas libpthreadstubs [ alsaLib cmake gtk jack2 libgnomecanvas libpthreadstubs
libsamplerate libsndfile libtool libxml2 pkgconfig libsamplerate libsndfile libtool libxml2 pkgconfig
]; ];

View File

@ -2,7 +2,7 @@
, glew, ftgl, ttf_bitstream_vera , glew, ftgl, ttf_bitstream_vera
, withQt ? true, qt4 , withQt ? true, qt4
, withLibvisual ? false, libvisual, SDL , withLibvisual ? false, libvisual, SDL
, withJack ? false, jackaudio , withJack ? false, jack2
, withPulseAudio ? true, pulseaudio , withPulseAudio ? true, pulseaudio
}: }:
@ -45,7 +45,7 @@ stdenv.mkDerivation {
[ glew ftgl ] [ glew ftgl ]
++ optional withQt qt4 ++ optional withQt qt4
++ optionals withLibvisual [ libvisual SDL ] ++ optionals withLibvisual [ libvisual SDL ]
++ optional withJack jackaudio ++ optional withJack jack2
++ optional withPulseAudio pulseaudio ++ optional withPulseAudio pulseaudio
; ;
} }

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, autoreconfHook, gettext, makeWrapper { stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
, alsaLib, jackaudio, tk , alsaLib, jack2, tk
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook gettext makeWrapper ]; nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
buildInputs = [ alsaLib jackaudio ]; buildInputs = [ alsaLib jack2 ];
configureFlags = '' configureFlags = ''
--enable-alsa --enable-alsa

View File

@ -1,17 +1,17 @@
{ stdenv, fetchurl, qt4, alsaLib, jackaudio, dbus }: { stdenv, fetchurl, qt4, alsaLib, jack2, dbus }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.3.10"; version = "0.3.11";
name = "qjackctl-${version}"; name = "qjackctl-${version}";
# some dependencies such as killall have to be installed additionally # some dependencies such as killall have to be installed additionally
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qjackctl/${name}.tar.gz"; url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
sha256 = "0ch14y3p0x5ss28cpnqcxp42zb2w07d3l1n2sbrkgiz58iy97paw"; sha256 = "1wjzrgx3n2asyxk6cnfcm34msaw84qvsqy08bd4qnghrgpl96hwl";
}; };
buildInputs = [ qt4 alsaLib jackaudio dbus ]; buildInputs = [ qt4 alsaLib jack2 dbus ];
configureFlags = "--enable-jack-version"; configureFlags = "--enable-jack-version";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, fluidsynth, jackaudio, qt4 }: { stdenv, fetchurl, alsaLib, fluidsynth, jack2, qt4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qsynth-${version}"; name = "qsynth-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0wmq61cq93x2l00xwr871373mj3dwamz1dg6v62x7s8m1612ndrw"; sha256 = "0wmq61cq93x2l00xwr871373mj3dwamz1dg6v62x7s8m1612ndrw";
}; };
buildInputs = [ alsaLib fluidsynth jackaudio qt4 ]; buildInputs = [ alsaLib fluidsynth jack2 qt4 ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Fluidsynth GUI"; description = "Fluidsynth GUI";

View File

@ -1,4 +1,4 @@
{ alsaLib, autoconf, automake, dssi, fetchurl, gtk, jackaudio { alsaLib, autoconf, automake, dssi, fetchurl, gtk, jack2
, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile , ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
, libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }: , libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ alsaLib autoconf automake dssi gtk jackaudio ladspaH [ alsaLib autoconf automake dssi gtk jack2 ladspaH
ladspaPlugins liblo libmad libsamplerate libsndfile libtool ladspaPlugins liblo libmad libsamplerate libsndfile libtool
libvorbis pkgconfig qt4 rubberband libvorbis pkgconfig qt4 rubberband
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, alsaUtils, fltk, jackaudio, libXft, { stdenv, fetchurl, alsaLib, alsaUtils, fltk, jack2, libXft,
libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }: libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
patches = [ ./fltk-path.patch ]; patches = [ ./fltk-path.patch ];
buildInputs = [ alsaLib alsaUtils fltk jackaudio libXft libXpm libjpeg buildInputs = [ alsaLib alsaUtils fltk jack2 libXft libXpm libjpeg
libpng libsamplerate libsndfile zlib ]; libpng libsamplerate libsndfile zlib ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jackaudio, libsndfile, lv2, qt4 }: { stdenv, fetchurl, jack2, libsndfile, lv2, qt4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samplv1-${version}"; name = "samplv1-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "1vr6jbqnsgdq3v2h1ndp4pirnil3119dqwlq0k0kdscmcskvb9j4"; sha256 = "1vr6jbqnsgdq3v2h1ndp4pirnil3119dqwlq0k0kdscmcskvb9j4";
}; };
buildInputs = [ jackaudio libsndfile lv2 qt4 ]; buildInputs = [ jack2 libsndfile lv2 qt4 ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx"; description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, gtkmm, jackaudio, pkgconfig }: { stdenv, fetchurl, alsaLib, gtkmm, jack2, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "seq24-${version}"; name = "seq24-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "07n80zj95i80vjmsflnlbqx5vv90qmp5f6a0zap8d30849l4y258"; sha256 = "07n80zj95i80vjmsflnlbqx5vv90qmp5f6a0zap8d30849l4y258";
}; };
buildInputs = [ alsaLib gtkmm jackaudio pkgconfig ]; buildInputs = [ alsaLib gtkmm jack2 pkgconfig ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "minimal loop based midi sequencer"; description = "minimal loop based midi sequencer";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, freetype, ftgl, jackaudio, libX11, lv2 { stdenv, fetchurl, alsaLib, freetype, ftgl, jack2, libX11, lv2
, mesa, pkgconfig, ttf_bitstream_vera , mesa, pkgconfig, ttf_bitstream_vera
}: }:
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ buildInputs = [
alsaLib freetype ftgl jackaudio libX11 lv2 mesa pkgconfig alsaLib freetype ftgl jack2 libX11 lv2 mesa pkgconfig
ttf_bitstream_vera ttf_bitstream_vera
]; ];

View File

@ -1,6 +1,6 @@
# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
{ stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo { stdenv, fetchurl, alsaLib, bzip2, fftw, jack2, libX11, liblo
, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
, libsndfile, pkgconfig, pulseaudio, qt5, redland , libsndfile, pkgconfig, pulseaudio, qt5, redland
, rubberband, serd, sord, vampSDK , rubberband, serd, sord, vampSDK
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
sord sord
pkgconfig pkgconfig
# optional # optional
jackaudio jack2
# portaudio # portaudio
pulseaudio pulseaudio
libmad libmad

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, qt4, jackaudio, lv2 }: { stdenv, fetchurl, qt4, jack2, lv2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "synthv1-${version}"; name = "synthv1-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "1r4fszbzwd0yfcch0mcsmh7781zw1317hiljn85w79721fs2m8hc"; sha256 = "1r4fszbzwd0yfcch0mcsmh7781zw1317hiljn85w79721fs2m8hc";
}; };
buildInputs = [ qt4 jackaudio lv2 ]; buildInputs = [ qt4 jack2 lv2 ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx"; description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";

View File

@ -0,0 +1,34 @@
{ stdenv, fetchurl, autoconf, automake, mpd_clientlib, ncurses, pcre, pkgconfig, taglib }:
stdenv.mkDerivation rec {
version = "0.09.0";
name = "vimpc-${version}";
src = fetchurl {
url = "https://github.com/boysetsfrog/vimpc/archive/v${version}.tar.gz";
sha256 = "13eb229a5e9eee491765ee89f7fe6a38140a41a01434b117da3869d725c15706";
};
buildInputs = [ autoconf
automake
mpd_clientlib
ncurses
pcre
pkgconfig
taglib
];
preConfigure = "./autogen.sh";
postInstall = ''
mkdir -p $out/etc
cp doc/vimpcrc.example $out/etc
'';
meta = {
description = "A vi/vim inspired client for the Music Player Daemon (mpd).";
homepage = https://github.com/boysetsfrog/vimpc;
license = "GPL3";
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, cmake, pkgconfig { stdenv, fetchurl, cmake, pkgconfig
, qt4, jackaudio , qt4, jack2
}: }:
let let
@ -22,5 +22,5 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ qt4 jackaudio ]; buildInputs = [ qt4 jack2 ];
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk, jackaudio, { stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk, jack2,
ladspaH, ladspaPlugins, liblo, pkgconfig }: ladspaH, ladspaPlugins, liblo, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk"; sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk";
}; };
buildInputs = [ alsaLib autoconf automake dssi gtk jackaudio ladspaH buildInputs = [ alsaLib autoconf automake dssi gtk jack2 ladspaH
ladspaPlugins liblo pkgconfig ]; ladspaPlugins liblo pkgconfig ];
installPhase = '' installPhase = ''

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk { stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk
, jackaudio, libsndfile, mesa, minixml, pkgconfig, zlib , jack2, libsndfile, mesa, minixml, pkgconfig, zlib
}: }:
assert stdenv ? glibc; assert stdenv ? glibc;
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
alsaLib boost cairo fftwSinglePrec fltk jackaudio libsndfile mesa alsaLib boost cairo fftwSinglePrec fltk jack2 libsndfile mesa
minixml zlib minixml zlib
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, cmake, jackaudio, fftw, fltk13, minixml { stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, minixml
, pkgconfig, zlib , pkgconfig, zlib
}: }:
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0kgmwyh4rhyqdfrdzhbzjjk2hzggkp9c4aac6sy3xv6cc1b5jjxq"; sha256 = "0kgmwyh4rhyqdfrdzhbzjjk2hzggkp9c4aac6sy3xv6cc1b5jjxq";
}; };
buildInputs = [ alsaLib jackaudio fftw fltk13 minixml zlib ]; buildInputs = [ alsaLib jack2 fftw fltk13 minixml zlib ];
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,34 +0,0 @@
source $stdenv/setup
# This hook is supposed to be run on Linux. It patches the proper locations of
# the crt{1,i,n}.o files into the build to ensure that Emacs is linked with
# *our* versions, not the ones found in the system, as it would do by default.
# On other platforms, this appears to be unnecessary.
preConfigure() {
case "${system}" in
x86_64-linux) glibclibdir=lib64 ;;
i686-linux) glibclibdir=lib ;;
*) return;
esac
libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
echo "libc: $libc"
for i in src/s/*.h src/m/*.h; do
substituteInPlace $i \
--replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
--replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
--replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \
--replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \
--replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \
--replace /usr/lib/crtn.o $libc/${glibclibdir}/crtn.o
done
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
substituteInPlace $i --replace /bin/pwd pwd
done
}
preBuild="make bootstrap"
genericBuild

View File

@ -1,72 +0,0 @@
{ stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d
, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, texinfo, gconf
}:
assert (gtk != null) -> (pkgconfig != null);
assert (libXft != null) -> libpng != null; # probably a bug
assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
stdenv.mkDerivation rec {
name = "emacs-23.4";
builder = ./builder.sh;
src = fetchurl {
url = "mirror://gnu/emacs/${name}.tar.bz2";
sha256 = "1fc8x5p38qihg7l6z2b1hjc534lnjb8gqpwgywlwg5s3csg6ymr6";
};
buildInputs =
[ ncurses x11 texinfo libXaw Xaw3d libXpm libpng libjpeg libungif
libtiff librsvg libXft gconf
]
++ stdenv.lib.optionals (gtk != null) [ gtk pkgconfig ]
++ stdenv.lib.optional stdenv.isLinux dbus;
configureFlags =
stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"]
# On NixOS, help Emacs find `crt*.o'.
++ stdenv.lib.optional (stdenv ? glibc)
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
postInstall = ''
cat >$out/share/emacs/site-lisp/site-start.el <<EOF
;; nixos specific load-path
(when (getenv "NIX_PROFILES") (setq load-path
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
(split-string (getenv "NIX_PROFILES"))))
load-path)))
EOF
'';
doCheck = true;
meta = {
description = "GNU Emacs 23.x, the extensible, customizable text editor";
longDescription = ''
GNU Emacs is an extensible, customizable text editorand more. At its
core is an interpreter for Emacs Lisp, a dialect of the Lisp
programming language with extensions to support text editing.
The features of GNU Emacs include: content-sensitive editing modes,
including syntax coloring, for a wide variety of file types including
plain text, source code, and HTML; complete built-in documentation,
including a tutorial for new users; full Unicode support for nearly all
human languages and their scripts; highly customizable, using Emacs
Lisp code or a graphical interface; a large number of extensions that
add other functionality, including a project planner, mail and news
reader, debugger interface, calendar, and more. Many of these
extensions are distributed with GNU Emacs; others are available
separately.
'';
homepage = http://www.gnu.org/software/emacs/;
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ simons chaoflow ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -0,0 +1,25 @@
{ stdenv, fetchurl, emacs }:
stdenv.mkDerivation rec {
name = "bbdb-3.1.2";
src = fetchurl {
url = "http://download.savannah.gnu.org/releases/bbdb/${name}.tar.gz";
sha256 = "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05";
};
buildInputs = [ emacs ];
# Hack to disable documentation as there is no way to tell bbdb to
# NOT build pdfs. I really don't want to pull in TexLive here...
preConfigure = ''
substituteInPlace ./Makefile.in \
--replace "SUBDIRS = lisp doc tex" "SUBDIRS = lisp"
'';
meta = {
homepage = "http://savannah.nongnu.org/projects/bbdb/";
description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3";
license = "GPL";
};
}

View File

@ -0,0 +1,75 @@
{ stdenv, buildEnv, fetchurl, xlibs, glib, gtk2, atk, pango, gdk_pixbuf,
cairo, freetype, fontconfig, nss, nspr, gnome, alsaLib, expat, dbus, udev,
makeWrapper, writeScript, gnused }:
let
rpath_env = buildEnv {
name = "rpath_env";
paths = [ xlibs.libX11 xlibs.libXrender glib xlibs.libXtst gtk2 atk pango
gdk_pixbuf cairo freetype fontconfig xlibs.libXi xlibs.libXcomposite
nss nspr gnome.GConf xlibs.libXext xlibs.libXfixes alsaLib
xlibs.libXdamage expat dbus stdenv.gcc ];
pathsToLink = [ "/lib" "/lib64" ];
};
name = "zed-${version}";
version = "0.12.0";
zed = stdenv.mkDerivation rec {
inherit name version;
src = if stdenv.system == "i686-linux" then fetchurl {
url = "http://download.zedapp.org/zed-linux32-v${version}.tar.gz";
sha256 = "04cygfhaynlpl8jrf2r55qk5zz1ipad8l9m8q81lfly2q0h9fbxi";
} else fetchurl {
url = "http://download.zedapp.org/zed-linux64-v${version}.tar.gz";
sha256 = "0ng2v07fyglpbyl4pwm2bn5rbldw51kliw8rakbpcdia891hi6z1";
};
buildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/zed
cp ./* $out/zed
'';
postFixup = ''
patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/zed/zed-bin
patchelf --set-rpath "${rpath_env}/lib:${rpath_env}/lib64" $out/zed/zed-bin
mkdir -p $out/lib
ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
wrapProgram $out/zed/zed-bin \
--prefix LD_LIBRARY_PATH : $out/lib
'';
};
zed_installer = writeScript "zed-installer.sh" ''
mkdir -p ~/.zed
cp -rv ${zed}/zed/* ~/.zed
${gnused}/bin/sed -ri 's/DIR\=\$\(dirname\ \$0\)/DIR\=\~\/\.zed/' ~/.zed/zed
mkdir -p ~/bin
ln -sv ~/.zed/zed ~/bin/zed
'';
in stdenv.mkDerivation rec {
inherit name version;
src = zed;
installPhase = ''
mkdir -p $out/bin
ln -s ${zed_installer} $out/bin/zed-installer
'';
meta = {
description = "Zed is a fully offline-capable, open source, keyboard-focused, text and code editor for power users";
license = stdenv.lib.licenses.mit;
homepage = http://zedapp.org/;
maintainers = [ stdenv.lib.maintainers.matejc ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
description = "A compact distributed operating system for building cross-platform distributed systems"; description = "A compact distributed operating system for building cross-platform distributed systems";
homepage = "http://inferno-os.org/"; homepage = "http://inferno-os.org/";
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
maintainer = [ "Chris Double <chris.double@double.co.nz>" ]; maintainers = [ "Chris Double <chris.double@double.co.nz>" ];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
}; };
} }

View File

@ -2,7 +2,7 @@
, ilmbase, libXi, libjpeg, libpng, libsamplerate, libsndfile , ilmbase, libXi, libjpeg, libpng, libsamplerate, libsndfile
, libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg, python , libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg, python
, zlib, fftw , zlib, fftw
, jackaudioSupport ? false, jackaudio , jackaudioSupport ? false, jack2
}: }:
with lib; with lib;
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
[ SDL boost cmake ffmpeg gettext glew ilmbase libXi [ SDL boost cmake ffmpeg gettext glew ilmbase libXi
libjpeg libpng libsamplerate libsndfile libtiff mesa openal libjpeg libpng libsamplerate libsndfile libtiff mesa openal
opencolorio openexr openimageio /* openjpeg */ python zlib fftw opencolorio openexr openimageio /* openjpeg */ python zlib fftw
] ++ optional jackaudioSupport jackaudio; ] ++ optional jackaudioSupport jack2;
postUnpack = postUnpack =
'' ''

View File

@ -4,11 +4,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "calibre-1.45.0"; name = "calibre-1.46.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz"; url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0g9fzpkjvi0h7h5azk3v425l8gxd8zidcz3nrzlg26hgvbkzpm20"; sha256 = "1mzw6cmnw1wk8jd2pkl6z7bgjhwn4j7lg0a33f07gk4xw94sbry2";
}; };
inherit python; inherit python;

View File

@ -17,8 +17,7 @@ stdenv.mkDerivation rec {
It is fully customizable. It is fully customizable.
''; '';
homepage = http://www.gnu.org/software/hello/manual/; homepage = http://www.gnu.org/software/hello/manual/;
license = "GPLv3+"; license = stdenv.lib.licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.ludo ]; maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.all; platforms = stdenv.lib.platforms.all;
}; };

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
homepage = http://megastep.org/makeself; homepage = http://megastep.org/makeself;
description = "Utility to create self-extracting packages"; description = "Utility to create self-extracting packages";
license = licenses.gpl2; license = licenses.gpl2;
maintainer = maintainers.wmertens; maintainers = [ maintainers.wmertens ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -1,155 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, # If you want the resulting program to call itself "Firefox" instead
# of "Shiretoko" or whatever, enable this option. However, those
# binaries may not be distributed without permission from the
# Mozilla Foundation, see
# http://www.mozilla.org/foundation/trademarks/.
enableOfficialBranding ? false
}:
rec {
firefoxVersion = "3.6.27";
xulVersion = "1.9.2.27"; # this attribute is used by other packages
src = fetchurl {
url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
sha1 = "dd472a10e4ef5b017f00074d0325be13e832d610";
};
commonConfigureFlags =
[ "--enable-optimize"
"--disable-debug"
"--enable-strip"
"--with-system-jpeg"
"--with-system-zlib"
"--with-system-bz2"
"--with-system-nspr"
"--with-system-nss"
# "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
"--enable-system-cairo"
#"--enable-system-sqlite" # <-- this seems to be discouraged
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
];
xulrunner = stdenv.mkDerivation {
name = "xulrunner-${xulVersion}";
inherit src;
patches = [
# Loongson2f related patches:
./xulrunner-chromium-mips.patch
./xulrunner-mips-n32.patch
./xulrunner-1.9.2_beta4-mips-bus-error.patch
# Fix building on GCC 4.6.
./gcc-4.6.patch
];
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman
];
preConfigure = if stdenv.isMips then ''
export ac_cv_thread_keyword=no
'' else "";
configureFlags =
[ "--enable-application=xulrunner"
"--disable-javaxpcom"
] ++ commonConfigureFlags;
# !!! Temporary hack.
preBuild = ''
export NIX_ENFORCE_PURITY=
'';
installFlags = "SKIP_GRE_REGISTRATION=1";
postInstall = ''
# Fix some references to /bin paths in the Xulrunner shell script.
substituteInPlace $out/bin/xulrunner \
--replace /bin/pwd "$(type -tP pwd)" \
--replace /bin/ls "$(type -tP ls)"
# Fix run-mozilla.sh search
libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
echo libDir: $libDir
test -n "$libDir"
cd $out/bin
mv xulrunner ../lib/$libDir/
for i in $out/lib/$libDir/*; do
file $i;
if file $i | grep executable &>/dev/null; then
ln -s $i $out/bin
fi;
done;
rm -f $out/bin/run-mozilla.sh
''; # */
enableParallelBuilding = true;
meta = {
description = "Mozilla Firefox XUL runner";
homepage = http://www.mozilla.org/firefox/;
};
passthru = { inherit gtk; version = xulVersion; };
};
firefox = stdenv.mkDerivation rec {
name = "firefox-${firefoxVersion}";
inherit src;
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman
];
propagatedBuildInputs = [xulrunner];
configureFlags =
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
postInstall = ''
libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
test -n "$libDir"
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
# Register extensions etc. !!! is this needed anymore?
echo "running firefox -register..."
$out/bin/firefox -register
''; # */
meta = {
description = "Mozilla Firefox - the browser, reloaded";
homepage = http://www.mozilla.org/firefox/;
};
passthru = {
inherit gtk xulrunner nspr;
isFirefox3Like = true;
};
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL { lib, stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs , libjpeg, zlib, dbus, dbus_glib, bzip2, xlibs
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
, hunspell, libevent, libstartup_notification, libvpx , hunspell, libevent, libstartup_notification, libvpx
@ -15,27 +15,38 @@
assert stdenv.gcc ? libc && stdenv.gcc.libc != null; assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
rec { let version = "31.0"; in
firefoxVersion = "30.0";
xulVersion = "30.0"; # this attribute is used by other packages
stdenv.mkDerivation rec {
name = "firefox-${version}";
src = fetchurl { src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"; url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11"; sha1 = "a6c3e25ee3aeb7da42db2aaeb50a385d63532beb";
}; };
commonConfigureFlags = buildInputs =
[ "--with-system-jpeg" [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
hunspell libevent libstartup_notification libvpx cairo
gstreamer gst_plugins_base icu
];
configureFlags =
[ "--enable-application=browser"
"--disable-javaxpcom"
"--with-system-jpeg"
"--with-system-zlib" "--with-system-zlib"
"--with-system-bz2" "--with-system-bz2"
"--with-system-nspr" "--with-system-nspr"
"--with-system-nss" "--with-system-nss"
"--with-system-libevent" "--with-system-libevent"
"--with-system-libvpx" "--with-system-libvpx"
"--with-system-png" # "--with-system-png" # needs APNG support
# "--with-system-icu" # causes ar: invalid option -- 'L' in Firefox 28.0 # "--with-system-icu" # causes ar: invalid option -- 'L' in Firefox 28.0
"--enable-system-ffi" "--enable-system-ffi"
"--enable-system-hunspell" "--enable-system-hunspell"
@ -52,160 +63,45 @@ rec {
"--disable-installer" "--disable-installer"
"--disable-updater" "--disable-updater"
"--disable-pulseaudio" "--disable-pulseaudio"
] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] ]
else [ "--disable-debug" "--enable-release" ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
"--enable-optimize" "--enable-strip" ]); else [ "--disable-debug" "--enable-release"
"--enable-optimize" "--enable-strip" ])
++ lib.optional enableOfficialBranding "--enable-official-branding";
enableParallelBuilding = true;
xulrunner = stdenv.mkDerivation rec { preConfigure =
name = "xulrunner-${xulVersion}"; ''
mkdir ../objdir
cd ../objdir
configureScript=../mozilla-release/configure
'';
inherit src; preInstall =
''
buildInputs = # The following is needed for startup cache creation on grsecurity kernels.
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
hunspell libevent libstartup_notification libvpx cairo
gstreamer gst_plugins_base icu
];
configureFlags =
[ "--enable-application=xulrunner"
"--disable-javaxpcom"
] ++ commonConfigureFlags;
#enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282
preConfigure =
''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
mkdir ../objdir
cd ../objdir
configureScript=../mozilla-release/configure
''; # */
#installFlags = "SKIP_GRE_REGISTRATION=1";
preInstall = ''
# The following is needed for startup cache creation on grsecurity kernels
paxmark m ../objdir/dist/bin/xpcshell paxmark m ../objdir/dist/bin/xpcshell
''; '';
postInstall = '' postInstall =
# Fix run-mozilla.sh search ''
libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
echo libDir: $libDir
test -n "$libDir"
cd $out/bin
rm xulrunner
for i in $out/lib/$libDir/*; do
file $i;
if file $i | grep executable &>/dev/null; then
echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
chmod a+x "$out/bin/$(basename "$i")";
fi;
done
for i in $out/lib/$libDir/*.so; do
patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
done
# For grsecurity kernels # For grsecurity kernels
paxmark m $out/lib/$libDir/{plugin-container,xulrunner} paxmark m $out/lib/*/{plugin-container,xulrunner}
for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do # Remove SDK cruft. FIXME: move to a separate output?
wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir" rm -rf $out/share/idl $out/include $out/lib/firefox-devel-*
done '';
rm -f $out/bin/run-mozilla.sh meta = {
''; # */ description = "Mozilla Firefox - the browser, reloaded";
homepage = http://www.mozilla.com/en-US/firefox/;
meta = { maintainers = with lib.maintainers; [ eelco wizeman ];
description = "Mozilla Firefox XUL runner"; platforms = lib.platforms.linux;
homepage = http://www.mozilla.com/en-US/firefox/;
};
passthru = { inherit gtk; version = xulVersion; };
}; };
passthru = {
firefox = stdenv.mkDerivation rec { inherit gtk nspr version;
name = "firefox-${firefoxVersion}"; isFirefox3Like = true;
inherit src;
enableParallelBuilding = true;
buildInputs =
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
xlibs.pixman yasm mesa sqlite file unzip pysqlite
hunspell libevent libstartup_notification libvpx cairo
gstreamer gst_plugins_base icu
];
patches = [
./disable-reporter.patch # fixes "search box not working when built on xulrunner"
./xpidl.patch
];
propagatedBuildInputs = [xulrunner];
configureFlags =
[ "--enable-application=browser"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-chrome-format=jar"
]
++ commonConfigureFlags
++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
makeFlags = [
"SYSTEM_LIBXUL=1"
];
# Because preConfigure runs configure from a subdirectory.
configureScript = "../configure";
preConfigure =
''
# Hack to work around make's idea of -lbz2 dependency
find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
stdenv.lib.concatStringsSep ":"
(map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
}' ';'
# Building directly in the main source directory is not allowed.
mkdir obj_dir
cd obj_dir
'';
postInstall =
''
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
cd "$out/lib/"firefox-*
rm firefox
echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
chmod a+x firefox
# Put chrome.manifest etc. in the right place.
mv browser/* .
rmdir browser
''; # */
meta = {
description = "Mozilla Firefox - the browser, reloaded";
homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = with stdenv.lib.maintainers; [ eelco wizeman ];
};
passthru = {
inherit gtk xulrunner nspr;
isFirefox3Like = true;
};
}; };
} }

View File

@ -1,20 +0,0 @@
# from:
# - https://www.linuxquestions.org/questions/linux-from-scratch-13/blfs-xulrunner-firefox-21-0-and-search-4175462532/
# - http://www.mail-archive.com/blfs-support@linuxfromscratch.org/msg17359.html
--- mozilla-release/browser/base/content/browser.js.orig 2013-05-11 16:19:21.000000000 -0300
+++ mozilla-release/browser/base/content/browser.js 2013-06-07 00:39:16.114862388 -0300
@@ -3559,10 +3559,12 @@
*/
recordSearchInHealthReport: function (engine, source) {
#ifdef MOZ_SERVICES_HEALTHREPORT
- let reporter = Cc["@mozilla.org/datareporting/service;1"]
+ /*let reporter = Cc["@mozilla.org/datareporting/service;1"]
.getService()
.wrappedJSObject
.healthReporter;
+ */
+ return;
// This can happen if the FHR component of the data reporting service is
// disabled. This is controlled by a pref that most will never use.

View File

@ -1,13 +0,0 @@
https://346825.bugs.gentoo.org/attachment.cgi?id=270163
--- a/gfx/ots/src/os2.cc
+++ b/gfx/ots/src/os2.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <cstddef>
+
#include "os2.h"
#include "head.h"

View File

@ -1,11 +0,0 @@
--- mozilla-release/python/mozbuild/mozbuild/backend/recursivemake.py 2013-12-05 08:07:53.000000000 -0800
+++ mozilla-release_1/python/mozbuild/mozbuild/backend/recursivemake.py 2013-12-12 23:38:39.697318563 -0800
@@ -421,7 +421,7 @@
def _handle_idl_manager(self, manager):
build_files = self._purge_manifests['xpidl']
- for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done',
+ for p in ('Makefile.in', 'Makefile', 'backend.mk', '.deps/.mkdir.done',
'xpt/.mkdir.done'):
build_files.add(p)

View File

@ -1,26 +0,0 @@
http://www.gentoo-cn.org/gitweb/?p=loongson.git;a=blob;f=net-libs/xulrunner/files/xulrunner-1.9.2_beta4-mips-bus-error.patch;h=2bf51d77054796ffaf4f4d903dd8560bf96b7844;hb=HEAD
--- ./xpcom/glue/nsTArray.h.orig 2009-04-26 01:21:58.000000000 +0800
+++ ./xpcom/glue/nsTArray.h 2009-04-26 01:21:33.000000000 +0800
@@ -168,6 +168,7 @@
// The array's elements (prefixed with a Header). This pointer is never
// null. If the array is empty, then this will point to sEmptyHdr.
+ void *padding;
Header *mHdr;
};
diff --git a/layout/svg/base/src/nsSVGGlyphFrame.cpp b/layout/svg/base/src/nsSVGGlyphFrame.cpp
index 6d452d0..3ce4193 100644
--- a/layout/svg/base/src/nsSVGGlyphFrame.cpp
+++ b/layout/svg/base/src/nsSVGGlyphFrame.cpp
@@ -169,8 +169,8 @@ private:
PRBool SetupForDirectTextRun(gfxContext *aContext, float aScale);
void SetupFor(gfxContext *aContext, float aScale);
- nsSVGGlyphFrame *mSource;
nsAutoTArray<CharacterPosition,80> mPositions;
+ nsSVGGlyphFrame *mSource;
gfxMatrix mInitialMatrix;
// Textrun advance width from start to mCurrentChar, in appunits
gfxFloat mCurrentAdvance;

View File

@ -1,207 +0,0 @@
http://gentoo-overlays.zugaina.org/loongson/portage/net-libs/xulrunner/files/xulrunner-chromium-mips.patch
diff --git a/ipc/chromium/src/base/atomicops.h b/ipc/chromium/src/base/atomicops.h
index 87df918..363bf63 100644
--- a/ipc/chromium/src/base/atomicops.h
+++ b/ipc/chromium/src/base/atomicops.h
@@ -132,6 +132,8 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
#include "base/atomicops_internals_x86_gcc.h"
#elif defined(COMPILER_GCC) && defined(ARCH_CPU_ARM_FAMILY)
#include "base/atomicops_internals_arm_gcc.h"
+#elif defined(COMPILER_GCC) && defined(ARCH_CPU_MIPS_FAMILY)
+#include "base/atomicops_internals_mips_gcc.h"
#else
#error "Atomic operations are not supported on your platform"
#endif
diff --git a/ipc/chromium/src/base/atomicops_internals_mips_gcc.h b/ipc/chromium/src/base/atomicops_internals_mips_gcc.h
new file mode 100644
index 0000000..d1b87ee
--- /dev/null
+++ b/ipc/chromium/src/base/atomicops_internals_mips_gcc.h
@@ -0,0 +1,160 @@
+// Copyright (c) 2010 Zhang, Le <r0bertz@gentoo.org>
+// Use of this source code is governed by GPLv2.
+
+// This file is an internal atomic implementation, use base/atomicops.h instead.
+
+#ifndef BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
+#define BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
+
+#define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
+
+namespace base {
+namespace subtle {
+
+// 32-bit low-level operations on any platform.
+
+inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
+ Atomic32 old_value,
+ Atomic32 new_value) {
+ Atomic32 prev;
+ __asm__ __volatile__(
+ " .set push \n"
+ " .set noat \n"
+ " .set mips3 \n"
+ "1: ll %0, %2 \n"
+ " bne %0, %z3, 2f \n"
+ " .set mips0 \n"
+ " move $1, %z4 \n"
+ " .set mips3 \n"
+ " sc $1, %1 \n"
+ " beqz $1, 3f \n"
+ "2: \n"
+ " .subsection 2 \n"
+ "3: b 1b \n"
+ " .previous \n"
+ " .set pop \n"
+ : "=&r" (prev), "=R" (*ptr)
+ : "R" (*ptr), "Jr" (old_value), "Jr" (new_value)
+ : "memory");
+ return prev;
+}
+
+inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
+ Atomic32 new_value) {
+ unsigned int ret_value;
+ unsigned long dummy;
+
+ __asm__ __volatile__(" .set mips3 \n"
+ "1: ll %0, %3 # xchg_u32 \n"
+ " .set mips0 \n"
+ " move %2, %z4 \n"
+ " .set mips3 \n"
+ " sc %2, %1 \n"
+ " beqz %2, 2f \n"
+ " .subsection 2 \n"
+ "2: b 1b \n"
+ " .previous \n"
+ " .set mips0 \n"
+ : "=&r" (ret_value), "=m" (*ptr), "=&r" (dummy)
+ : "R" (*ptr), "Jr" (new_value)
+ : "memory");
+
+ return ret_value; // Now it's the previous value.
+}
+
+inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
+ Atomic32 increment) {
+ Atomic32 temp, result;
+ __asm__ __volatile__(
+ " .set mips3 \n"
+ "1: ll %1, %2 # atomic_add_return \n"
+ " addu %0, %1, %3 \n"
+ " sc %0, %2 \n"
+ " beqz %0, 2f \n"
+ " addu %0, %1, %3 \n"
+ " .subsection 2 \n"
+ "2: b 1b \n"
+ " .previous \n"
+ " .set mips0 \n"
+ : "=&r" (result), "=&r" (temp), "=m" (*ptr)
+ : "Ir" (increment), "m" (*ptr)
+ : "memory");
+ return result;
+}
+
+inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
+ Atomic32 increment) {
+ Atomic32 temp, result;
+ __asm__ __volatile__(
+ " .set mips3 \n"
+ "1: ll %1, %2 # atomic_add_return \n"
+ " addu %0, %1, %3 \n"
+ " sc %0, %2 \n"
+ " beqz %0, 2f \n"
+ " addu %0, %1, %3 \n"
+ " .subsection 2 \n"
+ "2: b 1b \n"
+ " .previous \n"
+ " .set mips0 \n"
+ : "=&r" (result), "=&r" (temp), "=m" (*ptr)
+ : "Ir" (increment), "m" (*ptr)
+ : "memory");
+ __asm__ __volatile__("sync" : : : "memory");
+ return result;
+}
+
+inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
+ Atomic32 old_value,
+ Atomic32 new_value) {
+ Atomic32 x = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+ __asm__ __volatile__("sync" : : : "memory");
+ return x;
+}
+
+inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
+ Atomic32 old_value,
+ Atomic32 new_value) {
+ return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+}
+
+inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
+ *ptr = value;
+}
+
+inline void MemoryBarrier() {
+ __asm__ __volatile__("sync" : : : "memory");
+}
+
+inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
+ *ptr = value;
+ __asm__ __volatile__("sync" : : : "memory");
+}
+
+inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
+ ATOMICOPS_COMPILER_BARRIER();
+ *ptr = value; // An x86 store acts as a release barrier.
+ // See comments in Atomic64 version of Release_Store(), below.
+}
+
+inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
+ return *ptr;
+}
+
+inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
+ Atomic32 value = *ptr; // An x86 load acts as a acquire barrier.
+ // See comments in Atomic64 version of Release_Store(), below.
+ ATOMICOPS_COMPILER_BARRIER();
+ return value;
+}
+
+inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
+ MemoryBarrier();
+ return *ptr;
+}
+
+} // namespace base::subtle
+} // namespace base
+
+#undef ATOMICOPS_COMPILER_BARRIER
+
+#endif // BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
diff --git a/ipc/chromium/src/base/debug_util_posix.cc b/ipc/chromium/src/base/debug_util_posix.cc
index f7c58b4..50fb41d 100644
--- a/ipc/chromium/src/base/debug_util_posix.cc
+++ b/ipc/chromium/src/base/debug_util_posix.cc
@@ -108,7 +108,7 @@ bool DebugUtil::BeingDebugged() {
// static
void DebugUtil::BreakDebugger() {
-#if !defined(ARCH_CPU_ARM_FAMILY)
+#if !defined(ARCH_CPU_ARM_FAMILY) && !defined(ARCH_CPU_MIPS_FAMILY)
asm ("int3");
#endif
}
diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
index 36f83e7..128bbc7 100644
--- a/ipc/chromium/src/build/build_config.h
+++ b/ipc/chromium/src/build/build_config.h
@@ -57,6 +57,8 @@
#define ARCH_CPU_ARMEL 1
#define ARCH_CPU_32_BITS 1
#define WCHAR_T_IS_UNSIGNED 1
+#elif defined(__MIPSEL__)
+#define ARCH_CPU_MIPS_FAMILY 1
#else
#error Please add support for your architecture in build/build_config.h
#endif

View File

@ -1,764 +0,0 @@
http://gentoo-overlays.zugaina.org/loongson/portage/net-libs/xulrunner/files/xulrunner-mips-n32.patch
From 1aa3577cf7e79b574bd2cff058ea00221194869b Mon Sep 17 00:00:00 2001
From: Zhang Le <r0bertz@gentoo.org>
Date: Thu, 12 Mar 2009 02:24:34 +0800
Subject: [PATCH 2/2] xulrunner mips n32 ABI patch
Signed-off-by: Zhang Le <r0bertz@gentoo.org>
---
xpcom/reflect/xptcall/src/md/unix/Makefile.in | 5 +
.../xptcall/src/md/unix/xptcinvoke_asm_mips64.s | 159 ++++++++++++++
.../xptcall/src/md/unix/xptcinvoke_mips64.cpp | 173 ++++++++++++++++
.../xptcall/src/md/unix/xptcstubs_asm_mips64.s | 149 +++++++++++++
.../xptcall/src/md/unix/xptcstubs_mips64.cpp | 218 ++++++++++++++++++++
5 files changed, 704 insertions(+), 0 deletions(-)
create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
diff --git a/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
index 524174e..63586cf 100644
--- a/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+++ b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -274,8 +274,13 @@ endif
ifeq ($(OS_ARCH),Linux)
ifneq (,$(findstring mips, $(OS_TEST)))
+ifneq (,$(findstring mips64, $(OS_TEST)))
+CPPSRCS := xptcinvoke_mips64.cpp xptcstubs_mips64.cpp
+ASFILES := xptcinvoke_asm_mips64.s xptcstubs_asm_mips64.s
+else
CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
+endif
ASFLAGS += -I$(DIST)/include -x assembler-with-cpp
endif
endif
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
new file mode 100644
index 0000000..f146ad8
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
@@ -0,0 +1,159 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * ZHANG Le <r0bertz@gentoo.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+#include <sys/regdef.h>
+#include <sys/asm.h>
+
+.text
+.globl invoke_count_words
+.globl invoke_copy_to_stack
+
+LOCALSZ=7 # a0, a1, a2, a3, s0, ra, gp
+FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
+
+RAOFF=FRAMESZ-(1*SZREG)
+A0OFF=FRAMESZ-(2*SZREG)
+A1OFF=FRAMESZ-(3*SZREG)
+A2OFF=FRAMESZ-(4*SZREG)
+A3OFF=FRAMESZ-(5*SZREG)
+S0OFF=FRAMESZ-(6*SZREG)
+GPOFF=FRAMESZ-(7*SZREG)
+
+#
+# _NS_InvokeByIndex_P(that, methodIndex, paramCount, params)
+# a0 a1 a2 a3
+
+NESTED(_NS_InvokeByIndex_P, FRAMESZ, ra)
+ PTR_SUBU sp, FRAMESZ
+ SETUP_GP64(GPOFF, _NS_InvokeByIndex_P)
+
+ REG_S ra, RAOFF(sp)
+ REG_S a0, A0OFF(sp)
+ REG_S a1, A1OFF(sp)
+ REG_S a2, A2OFF(sp)
+ REG_S a3, A3OFF(sp)
+ REG_S s0, S0OFF(sp)
+
+ # invoke_count_words(paramCount, params)
+ move a0, a2
+ move a1, a3
+ jal invoke_count_words
+
+ # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
+ # nsXPTCVariant* s, PRUint32 *reg)
+
+ REG_L a1, A2OFF(sp) # a1 - paramCount
+ REG_L a2, A3OFF(sp) # a2 - params
+
+ # save sp before we copy the params to the stack
+ move t0, sp
+
+ # assume full size of 16 bytes per param to be safe
+ sll v0, 4 # 16 bytes * num params
+ subu sp, sp, v0 # make room
+ move a0, sp # a0 - param stack address
+
+ # create temporary stack space to write int and fp regs
+ subu sp, 64 # 64 = 8 regs of 8 bytes
+ move a3, sp
+
+ # save the old sp and save the arg stack
+ subu sp, sp, 16
+ REG_S t0, 0(sp)
+ REG_S a0, 8(sp)
+
+ # copy the param into the stack areas
+ jal invoke_copy_to_stack
+
+ REG_L t3, 8(sp) # get previous a0
+ REG_L sp, 0(sp) # get orig sp back
+
+ REG_L a0, A0OFF(sp) # a0 - that
+ REG_L a1, A1OFF(sp) # a1 - methodIndex
+
+ # t1 = methodIndex * pow(2, PTRLOG)
+ # (use shift instead of mult)
+ sll t1, a1, PTRLOG
+
+ # calculate the function we need to jump to,
+ # which must then be saved in t9
+ lw t9, 0(a0)
+ addu t9, t9, t1
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+ lw t9, (t9)
+#else /* not G++ V3 ABI */
+ lw t9, 2*PTRSIZE(t9)
+#endif /* G++ V3 ABI */
+
+ # get register save area from invoke_copy_to_stack
+ subu t1, t3, 64
+
+ # a1..a7 and f13..f19 should now be set to what
+ # invoke_copy_to_stack told us. skip a0 and f12
+ # because that's the "this" pointer
+
+ REG_L a1, 0(t1)
+ REG_L a2, 8(t1)
+ REG_L a3, 16(t1)
+ REG_L a4, 24(t1)
+ REG_L a5, 32(t1)
+ REG_L a6, 40(t1)
+ REG_L a7, 48(t1)
+
+ l.d $f13, 0(t1)
+ l.d $f14, 8(t1)
+ l.d $f15, 16(t1)
+ l.d $f16, 24(t1)
+ l.d $f17, 32(t1)
+ l.d $f18, 40(t1)
+ l.d $f19, 48(t1)
+
+ # save away our stack pointer and create
+ # the stack pointer for the function
+ move s0, sp
+ move sp, t3
+
+ jalr t9
+
+ move sp, s0
+
+ RESTORE_GP64
+ REG_L ra, RAOFF(sp)
+ REG_L s0, S0OFF(sp)
+ PTR_ADDU sp, FRAMESZ
+ j ra
+.end _NS_InvokeByIndex_P
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
new file mode 100644
index 0000000..d1d1a7d
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
@@ -0,0 +1,173 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * ZHANG Le <r0bertz@gentoo.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+#include "xptcprivate.h"
+
+#if (_MIPS_SIM != _ABIN32)
+#error "This code is for MIPS N32 only"
+#endif
+
+extern "C" uint32
+invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+{
+ return paramCount;
+}
+
+extern "C" void
+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount,
+ nsXPTCVariant* s, PRUint64 *regs)
+{
+#define N_ARG_REGS 7 /* 8 regs minus 1 for "this" ptr */
+
+ for (PRUint32 i = 0; i < paramCount; i++, s++)
+ {
+ if (s->IsPtrData()) {
+ if (i < N_ARG_REGS)
+ regs[i] = (PRUint64)s->ptr;
+ else
+ *d++ = (PRUint64)s->ptr;
+ continue;
+ }
+ switch (s->type) {
+ //
+ // signed types first
+ //
+ case nsXPTType::T_I8:
+ if (i < N_ARG_REGS)
+ ((PRInt64*)regs)[i] = s->val.i8;
+ else
+ *d++ = s->val.i8;
+ break;
+ case nsXPTType::T_I16:
+ if (i < N_ARG_REGS)
+ ((PRInt64*)regs)[i] = s->val.i16;
+ else
+ *d++ = s->val.i16;
+ break;
+ case nsXPTType::T_I32:
+ if (i < N_ARG_REGS)
+ ((PRInt64*)regs)[i] = s->val.i32;
+ else
+ *d++ = s->val.i32;
+ break;
+ case nsXPTType::T_I64:
+ if (i < N_ARG_REGS)
+ ((PRInt64*)regs)[i] = s->val.i64;
+ else
+ *d++ = s->val.i64;
+ break;
+ //
+ // unsigned types next
+ //
+ case nsXPTType::T_U8:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.u8;
+ else
+ *d++ = s->val.u8;
+ break;
+ case nsXPTType::T_U16:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.u16;
+ else
+ *d++ = s->val.u16;
+ break;
+ case nsXPTType::T_U32:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.u32;
+ else
+ *d++ = s->val.u32;
+ break;
+ case nsXPTType::T_U64:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.u64;
+ else
+ *d++ = s->val.u64;
+ break;
+ case nsXPTType::T_FLOAT:
+ if (i < N_ARG_REGS)
+ *(float*)&regs[i] = s->val.f;
+ else
+ *(float*)d++ = s->val.f;
+ break;
+ case nsXPTType::T_DOUBLE:
+ if (i < N_ARG_REGS)
+ *(double*)&regs[i] = s->val.d;
+ else
+ *(double*)d++ = s->val.d;
+ break;
+ case nsXPTType::T_BOOL:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.b;
+ else
+ *d++ = s->val.b;
+ break;
+ case nsXPTType::T_CHAR:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.c;
+ else
+ *d++ = s->val.c;
+ break;
+ case nsXPTType::T_WCHAR:
+ if (i < N_ARG_REGS)
+ regs[i] = s->val.wc;
+ else
+ *d++ = s->val.wc;
+ break;
+ default:
+ // all the others are plain pointer types
+ if (i < N_ARG_REGS)
+ regs[i] = (PRUint64)s->val.p;
+ else
+ *d++ = (PRUint64)s->val.p;
+ break;
+ }
+ }
+}
+
+extern "C" nsresult _NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount,
+ nsXPTCVariant* params);
+
+EXPORT_XPCOM_API(nsresult)
+NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params)
+{
+ return _NS_InvokeByIndex_P(that, methodIndex, paramCount, params);
+}
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
new file mode 100644
index 0000000..dfee24b
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
@@ -0,0 +1,149 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * ZHANG Le <r0bertz@gentoo.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+#include <sys/regdef.h>
+#include <sys/asm.h>
+
+LOCALSZ=16
+FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
+
+A1OFF=FRAMESZ-(9*SZREG)
+A2OFF=FRAMESZ-(8*SZREG)
+A3OFF=FRAMESZ-(7*SZREG)
+A4OFF=FRAMESZ-(6*SZREG)
+A5OFF=FRAMESZ-(5*SZREG)
+A6OFF=FRAMESZ-(4*SZREG)
+A7OFF=FRAMESZ-(3*SZREG)
+GPOFF=FRAMESZ-(2*SZREG)
+RAOFF=FRAMESZ-(1*SZREG)
+
+F13OFF=FRAMESZ-(16*SZREG)
+F14OFF=FRAMESZ-(15*SZREG)
+F15OFF=FRAMESZ-(14*SZREG)
+F16OFF=FRAMESZ-(13*SZREG)
+F17OFF=FRAMESZ-(12*SZREG)
+F18OFF=FRAMESZ-(11*SZREG)
+F19OFF=FRAMESZ-(10*SZREG)
+
+#define SENTINEL_ENTRY(n) /* defined in cpp file, not here */
+
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+#define STUB_ENTRY(x) \
+ .if x < 10; \
+ MAKE_STUB(x, _ZN14nsXPTCStubBase5Stub ##x ##Ev); \
+ .elseif x < 100; \
+ MAKE_STUB(x, _ZN14nsXPTCStubBase6Stub ##x ##Ev); \
+ .elseif x < 1000; \
+ MAKE_STUB(x, _ZN14nsXPTCStubBase7Stub ##x ##Ev); \
+ .else; \
+ .err; \
+ .endif
+#else /* not G++ V3 ABI */
+#define STUB_ENTRY(x) \
+ MAKE_STUB(x, Stub ##x ##__14nsXPTCStubBase)
+#endif /* G++ V3 ABI */
+
+#define MAKE_STUB(x, name) \
+ .globl name; \
+ .type name,@function; \
+ .aent name,0; \
+name:; \
+ PTR_SUBU sp,FRAMESZ; \
+ SETUP_GP64(GPOFF, name); \
+ li t0,x; \
+ b sharedstub; \
+
+#
+# open a dummy frame for the function entries
+#
+ .text
+ .align 2
+ .type dummy,@function
+ .ent dummy, 0
+dummy:
+ .frame sp, FRAMESZ, ra
+ .mask 0x90000FF0, RAOFF-FRAMESZ
+ .fmask 0x000FF000, F19OFF-FRAMESZ
+
+#include "xptcstubsdef.inc"
+
+sharedstub:
+
+ REG_S a1, A1OFF(sp)
+ REG_S a2, A2OFF(sp)
+ REG_S a3, A3OFF(sp)
+ REG_S a4, A4OFF(sp)
+ REG_S a5, A5OFF(sp)
+ REG_S a6, A6OFF(sp)
+ REG_S a7, A7OFF(sp)
+ REG_S ra, RAOFF(sp)
+
+ s.d $f13, F13OFF(sp)
+ s.d $f14, F14OFF(sp)
+ s.d $f15, F15OFF(sp)
+ s.d $f16, F16OFF(sp)
+ s.d $f17, F17OFF(sp)
+ s.d $f18, F18OFF(sp)
+ s.d $f19, F19OFF(sp)
+
+ # t0 is methodIndex
+ move a1, t0
+
+ # a2 is stack address where extra function params
+ # are stored that do not fit in registers
+ move a2, sp
+ addi a2, FRAMESZ
+
+ # a3 is stack address of a1..a7
+ move a3, sp
+ addi a3, A1OFF
+
+ # a4 is stack address of f13..f19
+ move a4, sp
+ addi a4, F13OFF
+
+ # PrepareAndDispatch(that, methodIndex, args, gprArgs, fpArgs)
+ # a0 a1 a2 a3 a4
+ #
+ jal PrepareAndDispatch
+
+ REG_L ra, RAOFF(sp)
+ RESTORE_GP64
+
+ PTR_ADDU sp, FRAMESZ
+ j ra
+ END(dummy)
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
new file mode 100644
index 0000000..c404065
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
@@ -0,0 +1,218 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * ZHANG Le <r0bertz@gentoo.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "xptcprivate.h"
+#include "xptiprivate.h"
+
+#if (_MIPS_SIM != _ABIN32)
+#error "This code is for MIPS N32 only"
+#endif
+
+/*
+ * This is for MIPS N32 ABI
+ *
+ * When we're called, the "gp" registers are stored in gprData and
+ * the "fp" registers are stored in fprData. There are 8 regs
+ * available which coorespond to the first 7 parameters of the
+ * function and the "this" pointer. If there are additional parms,
+ * they are stored on the stack at address "args".
+ *
+ */
+extern "C" nsresult
+PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint64* args,
+ PRUint64 *gprData, double *fprData)
+{
+#define PARAM_BUFFER_COUNT 16
+#define PARAM_GPR_COUNT 7
+#define PARAM_FPR_COUNT 7
+
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = NULL;
+ const nsXPTMethodInfo* info;
+ PRUint8 paramCount;
+ PRUint8 i;
+ nsresult result = NS_ERROR_FAILURE;
+
+ NS_ASSERTION(self,"no self");
+
+ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
+ NS_ASSERTION(info,"no method info");
+
+ paramCount = info->GetParamCount();
+
+ // setup variant array pointer
+ if(paramCount > PARAM_BUFFER_COUNT)
+ dispatchParams = new nsXPTCMiniVariant[paramCount];
+ else
+ dispatchParams = paramBuffer;
+ NS_ASSERTION(dispatchParams,"no place for params");
+
+ PRUint64* ap = args;
+ PRUint32 iCount = 0;
+ for(i = 0; i < paramCount; i++)
+ {
+ const nsXPTParamInfo& param = info->GetParam(i);
+ const nsXPTType& type = param.GetType();
+ nsXPTCMiniVariant* dp = &dispatchParams[i];
+
+ if(param.IsOut() || !type.IsArithmetic())
+ {
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.p = (void*)gprData[iCount++];
+ else
+ dp->val.p = (void*)*ap++;
+ continue;
+ }
+ // else
+ switch(type)
+ {
+ case nsXPTType::T_I8:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.i8 = (PRInt8)gprData[iCount++];
+ else
+ dp->val.i8 = (PRInt8)*ap++;
+ break;
+
+ case nsXPTType::T_I16:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.i16 = (PRInt16)gprData[iCount++];
+ else
+ dp->val.i16 = (PRInt16)*ap++;
+ break;
+
+ case nsXPTType::T_I32:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.i32 = (PRInt32)gprData[iCount++];
+ else
+ dp->val.i32 = (PRInt32)*ap++;
+ break;
+
+ case nsXPTType::T_I64:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.i64 = (PRInt64)gprData[iCount++];
+ else
+ dp->val.i64 = (PRInt64)*ap++;
+ break;
+
+ case nsXPTType::T_U8:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.u8 = (PRUint8)gprData[iCount++];
+ else
+ dp->val.u8 = (PRUint8)*ap++;
+ break;
+
+ case nsXPTType::T_U16:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.u16 = (PRUint16)gprData[iCount++];
+ else
+ dp->val.u16 = (PRUint16)*ap++;
+ break;
+
+ case nsXPTType::T_U32:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.u32 = (PRUint32)gprData[iCount++];
+ else
+ dp->val.u32 = (PRUint32)*ap++;
+ break;
+
+ case nsXPTType::T_U64:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.u64 = (PRUint64)gprData[iCount++];
+ else
+ dp->val.u64 = (PRUint64)*ap++;
+ break;
+
+ case nsXPTType::T_FLOAT:
+ if (iCount < PARAM_FPR_COUNT)
+ dp->val.f = (double)fprData[iCount++];
+ else
+ dp->val.f = *((double*)ap++);
+ break;
+
+ case nsXPTType::T_DOUBLE:
+ if (iCount < PARAM_FPR_COUNT)
+ dp->val.d = (double)fprData[iCount++];
+ else
+ dp->val.d = *((double*)ap++);
+ break;
+
+ case nsXPTType::T_BOOL:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.b = (PRBool)gprData[iCount++];
+ else
+ dp->val.b = (PRBool)*ap++;
+ break;
+
+ case nsXPTType::T_CHAR:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.c = (char)gprData[iCount++];
+ else
+ dp->val.c = (char)*ap++;
+ break;
+
+ case nsXPTType::T_WCHAR:
+ if (iCount < PARAM_GPR_COUNT)
+ dp->val.wc = (wchar_t)gprData[iCount++];
+ else
+ dp->val.wc = (wchar_t)*ap++;
+ break;
+
+ default:
+ NS_ASSERTION(0, "bad type");
+ break;
+ }
+ }
+
+ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams);
+
+ if(dispatchParams != paramBuffer)
+ delete [] dispatchParams;
+
+ return result;
+}
+
+#define STUB_ENTRY(n) /* defined in the assembly file */
+
+#define SENTINEL_ENTRY(n) \
+nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
--
1.6.2

View File

@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
sha256 = "913fd39e70c564cb210c2544a88869f9d1a448184421f000b14b2bc5ba718b49"; sha256 = "913fd39e70c564cb210c2544a88869f9d1a448184421f000b14b2bc5ba718b49";
}; };
buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser.xulrunner gmtk ]; buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser gmtk ];
# !!! fix this # !!! fix this
preBuild = preBuild =
'' ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser.xulrunner}/include/xulrunner-*) -I${browser.nspr}/include/nspr" export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser}/include/xulrunner-*) -I${browser.nspr}/include/nspr"
echo $NIX_CFLAGS_COMPILE echo $NIX_CFLAGS_COMPILE
''; '';
@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "A browser plugin that uses GNOME MPlayer to play media in a browser"; description = "A browser plugin that uses GNOME MPlayer to play media in a browser";
homepage = http://kdekorte.googlepages.com/gecko-mediaplayer; homepage = http://kdekorte.googlepages.com/gecko-mediaplayer;
broken = true;
}; };
} }

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, qt4, boost, protobuf, libsndfile { stdenv, fetchurl, qt4, boost, protobuf, libsndfile
, speex, libopus, avahi, pkgconfig , speex, libopus, avahi, pkgconfig
, jackSupport ? false , jackSupport ? false
, jackaudio ? null , jack2 ? null
, speechdSupport ? false , speechdSupport ? false
, speechd ? null , speechd ? null
}: }:
assert jackSupport -> jackaudio != null; assert jackSupport -> jack2 != null;
assert speechdSupport -> speechd != null; assert speechdSupport -> speechd != null;
let let
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
buildInputs = [ qt4 boost protobuf libsndfile speex buildInputs = [ qt4 boost protobuf libsndfile speex
libopus avahi pkgconfig ] libopus avahi pkgconfig ]
++ (optional jackSupport jackaudio) ++ (optional jackSupport jack2)
++ (optional speechdSupport speechd); ++ (optional speechdSupport speechd);
installPhase = '' installPhase = ''

View File

@ -0,0 +1,62 @@
{ stdenv, fetchurl, makeWrapper, glib
, fontconfig, patchelf, libXext, libX11
, freetype, libXrender
}:
let
arch = if stdenv.system == "x86_64-linux" then "x86_64"
else if stdenv.system == "i686-linux" then "i386"
else throw "Spideroak client for: ${stdenv.system} not supported!";
interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Spideroak client for: ${stdenv.system} not supported!";
sha256 = if stdenv.system == "x86_64-linux" then "0ax5ij3fwq3q9agf7qkw2zg53fcd82llg734pq3swzpn3z1ajs38"
else if stdenv.system == "i686-linux" then "18hvgx8bvd2khnqfn434gd4mflv0w5y8kvim72rvya2kwxsyf3i1"
else throw "Spideroak client for: ${stdenv.system} not supported!";
ldpath = stdenv.lib.makeSearchPath "lib" [
glib fontconfig libXext libX11 freetype libXrender
];
version = "5.1.6";
in stdenv.mkDerivation {
name = "spideroak-${version}";
src = fetchurl {
name = "spideroak-${version}-${arch}";
url = "https://spideroak.com/getbuild?platform=slackware&arch=${arch}&version=${version}";
inherit sha256;
};
sourceRoot = ".";
unpackCmd = "tar -xzf $curSrc";
installPhase = ''
ensureDir "$out"
cp -r "./"* "$out"
ensureDir "$out/bin"
rm "$out/usr/bin/SpiderOak"
patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
"$out/opt/SpiderOak/lib/SpiderOak"
RPATH=$out/opt/SpiderOak/lib:${ldpath}
makeWrapper $out/opt/SpiderOak/lib/SpiderOak $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
--set QT_PLUGIN_PATH $out/opt/SpiderOak/lib/plugins/ \
--set SpiderOak_EXEC_SCRIPT $out/bin/spideroak
'';
buildInputs = [ patchelf makeWrapper ];
meta = {
homepage = "https://spideroak.com";
description = "Secure online backup and sychronization";
license = stdenv.lib.licenses.unfree;
maintainers = with stdenv.lib.maintainers; [ amorsillo ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -81,5 +81,6 @@ stdenv.mkDerivation {
pkgMaintainer = "http://BioLib.open-bio.org/"; pkgMaintainer = "http://BioLib.open-bio.org/";
homepage = http://www.arb-home.de/; homepage = http://www.arb-home.de/;
priority = "10"; # because it includes binaries of clustal etc. priority = "10"; # because it includes binaries of clustal etc.
broken = true;
}; };
} }

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "github-backup"; pname = "github-backup";
version = "1.20140707"; version = "1.20140721";
sha256 = "0c15gq91c36xza7yiimqvgk609p9xf9jlzy9683d9p9bx1khpadd"; sha256 = "0bnkfmgpk1iaaqck4ppn461fzk3s2761w2nxfrvw10gc934lhrxc";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -1,28 +1,36 @@
{ stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon { stdenv, fetchurl, frei0r, lib, cmake, qt4, perl, kdelibs, automoc4
, mlt, gettext , qimageblitz, qjson, shared_mime_info, soprano , phonon , makeWrapper, mlt, gettext , qimageblitz, qjson
, pkgconfig, shared_desktop_ontologies, libv4l }: , shared_mime_info, soprano, pkgconfig, shared_desktop_ontologies
, libv4l
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kdenlive-${version}"; name = "kdenlive-${version}";
version = "0.9.6"; version = "0.9.8";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/kdenlive/${version}/src/${name}.tar.bz2"; url = "mirror://kde/stable/kdenlive/${version}/src/${name}.tar.bz2";
sha256 = "1rw2cbzy5mabwijvryyzbhpgldn2zy5jy4j87hl4m1i8ah9lgi7x"; sha256 = "17x5srgywcwlbpbs598jwwc62l8313n4dbqx3sdk7p6lyvwk3jln";
}; };
buildInputs = buildInputs = [
[ cmake qt4 perl kdelibs automoc4 phonon mlt gettext qimageblitz automoc4 cmake frei0r gettext kdelibs libv4l makeWrapper mlt perl
qjson shared_mime_info soprano pkgconfig shared_desktop_ontologies libv4l phonon pkgconfig qimageblitz qjson qt4 shared_desktop_ontologies
]; shared_mime_info soprano
];
enableParallelBuilding = true; enableParallelBuilding = true;
postInstall = ''
wrapProgram $out/bin/kdenlive --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
wrapProgram $out/bin/kdenlive_render --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
'';
meta = { meta = {
description = "Free and open source video editor"; description = "Free and open source video editor";
license = "GPLv2+"; license = stdenv.lib.licenses.gpl2Plus;
homepage = http://www.kdenlive.org/; homepage = http://www.kdenlive.org/;
maintainers = with stdenv.lib.maintainers; [viric]; maintainers = with stdenv.lib.maintainers; [ goibhniu viric ];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
}; };
} }

View File

@ -15,7 +15,7 @@
, speexSupport ? true, speex ? null , speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null , theoraSupport ? true, libtheora ? null
, x264Support ? false, x264 ? null , x264Support ? false, x264 ? null
, jackaudioSupport ? false, jackaudio ? null , jackaudioSupport ? false, jack2 ? null
, pulseSupport ? false, pulseaudio ? null , pulseSupport ? false, pulseaudio ? null
, bs2bSupport ? false, libbs2b ? null , bs2bSupport ? false, libbs2b ? null
# For screenshots # For screenshots
@ -40,7 +40,7 @@ assert lameSupport -> lame != null;
assert speexSupport -> speex != null; assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null; assert theoraSupport -> libtheora != null;
assert x264Support -> x264 != null; assert x264Support -> x264 != null;
assert jackaudioSupport -> jackaudio != null; assert jackaudioSupport -> jack2 != null;
assert pulseSupport -> pulseaudio != null; assert pulseSupport -> pulseaudio != null;
assert bs2bSupport -> libbs2b != null; assert bs2bSupport -> libbs2b != null;
assert libpngSupport -> libpng != null; assert libpngSupport -> libpng != null;
@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
++ optional dvdnavSupport libdvdnav ++ optional dvdnavSupport libdvdnav
++ optional bluraySupport libbluray ++ optional bluraySupport libbluray
++ optional cddaSupport cdparanoia ++ optional cddaSupport cdparanoia
++ optional jackaudioSupport jackaudio ++ optional jackaudioSupport jack2
++ optionals amrSupport [ amrnb amrwb ] ++ optionals amrSupport [ amrnb amrwb ]
++ optional x264Support x264 ++ optional x264Support x264
++ optional pulseSupport pulseaudio ++ optional pulseSupport pulseaudio

View File

@ -10,7 +10,7 @@
, bluraySupport ? true, libbluray ? null , bluraySupport ? true, libbluray ? null
, speexSupport ? true, speex ? null , speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null , theoraSupport ? true, libtheora ? null
, jackaudioSupport ? false, jackaudio ? null , jackaudioSupport ? false, jack2 ? null
, pulseSupport ? true, pulseaudio ? null , pulseSupport ? true, pulseaudio ? null
, bs2bSupport ? false, libbs2b ? null , bs2bSupport ? false, libbs2b ? null
# For screenshots # For screenshots
@ -28,7 +28,7 @@ assert dvdnavSupport -> libdvdnav != null;
assert bluraySupport -> libbluray != null; assert bluraySupport -> libbluray != null;
assert speexSupport -> speex != null; assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null; assert theoraSupport -> libtheora != null;
assert jackaudioSupport -> jackaudio != null; assert jackaudioSupport -> jack2 != null;
assert pulseSupport -> pulseaudio != null; assert pulseSupport -> pulseaudio != null;
assert bs2bSupport -> libbs2b != null; assert bs2bSupport -> libbs2b != null;
assert libpngSupport -> libpng != null; assert libpngSupport -> libpng != null;
@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
++ optional xineramaSupport libXinerama ++ optional xineramaSupport libXinerama
++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
++ optional bluraySupport libbluray ++ optional bluraySupport libbluray
++ optional jackaudioSupport jackaudio ++ optional jackaudioSupport jack2
++ optional pulseSupport pulseaudio ++ optional pulseSupport pulseaudio
++ optional screenSaverSupport libXScrnSaver ++ optional screenSaverSupport libXScrnSaver
++ optional vdpauSupport libvdpau ++ optional vdpauSupport libvdpau

View File

@ -14,7 +14,7 @@
, bluraySupport ? true, libbluray ? null , bluraySupport ? true, libbluray ? null
, speexSupport ? true, speex ? null , speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null , theoraSupport ? true, libtheora ? null
, jackaudioSupport ? true, jackaudio ? null , jackaudioSupport ? true, jack2 ? null
, pulseSupport ? true, pulseaudio ? null , pulseSupport ? true, pulseaudio ? null
, bs2bSupport ? false, libbs2b ? null , bs2bSupport ? false, libbs2b ? null
# For screenshots # For screenshots
@ -36,7 +36,7 @@ assert dvdnavSupport -> libdvdnav != null;
assert bluraySupport -> libbluray != null; assert bluraySupport -> libbluray != null;
assert speexSupport -> speex != null; assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null; assert theoraSupport -> libtheora != null;
assert jackaudioSupport -> jackaudio != null; assert jackaudioSupport -> jack2 != null;
assert pulseSupport -> pulseaudio != null; assert pulseSupport -> pulseaudio != null;
assert bs2bSupport -> libbs2b != null; assert bs2bSupport -> libbs2b != null;
assert libpngSupport -> libpng != null; assert libpngSupport -> libpng != null;
@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
++ optional dvdreadSupport libdvdread ++ optional dvdreadSupport libdvdread
++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
++ optional bluraySupport libbluray ++ optional bluraySupport libbluray
++ optional jackaudioSupport jackaudio ++ optional jackaudioSupport jack2
++ optional pulseSupport pulseaudio ++ optional pulseSupport pulseaudio
++ optional screenSaverSupport libXScrnSaver ++ optional screenSaverSupport libXScrnSaver
++ optional vdpauSupport libvdpau ++ optional vdpauSupport libvdpau

View File

@ -0,0 +1,13 @@
diff --git shotcut-14.07/CuteLogger/CuteLogger.pro shotcut-14.07/CuteLogger/CuteLogger.pro
index 501eddc..a5290b0 100644
--- shotcut-14.07/CuteLogger/CuteLogger.pro
+++ shotcut-14.07/CuteLogger/CuteLogger.pro
@@ -42,7 +42,7 @@ unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
- target.path = /usr/lib
+ target.path = $(INSTALL_ROOT)/usr/lib
}
INSTALLS += target
}

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, SDL, frei0r, gettext, makeWrapper, mlt, pkgconfig, qt5 }:
stdenv.mkDerivation rec {
name = "shotcut-${version}";
version = "14.07";
src = fetchurl {
url = "https://github.com/mltframework/shotcut/archive/v${version}.tar.gz";
sha256 = "05g0b3jhmmdv8qnlgmi8wsfi7l3c5zvjcrrb3q7ajfc3q7yf6k6a";
};
buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qt5 ];
# Fixed in git and can be removed for the next release
patches = [ ./CuteLogger.patch ];
configurePhase = "qmake PREFIX=$out";
postInstall = ''
mkdir -p $out/share/shotcut
cp -r src/qml $out/share/shotcut/
wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
'';
meta = with stdenv.lib; {
description = "A free, open source, cross-platform video editor";
longDescription = ''
An offical binary for Shotcut, which includes all the
dependencies pinned to specific versions, is provided on
http://shotcut.org.
If you encounter problems with this version, please contact the
nixpkgs maintainer(s). If you wish to report any bugs upstream,
please use the official build from shotcut.org instead.
'';
homepage = http://shotcut.org;
license = licenses.gpl3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, ffmpeg, jackaudio, libX11, libXext { stdenv, fetchurl, alsaLib, ffmpeg, jack2, libX11, libXext
, libXfixes, mesa, pkgconfig, pulseaudio, qt4 , libXfixes, mesa, pkgconfig, pulseaudio, qt4
}: }:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
alsaLib ffmpeg jackaudio libX11 libXext libXfixes mesa pkgconfig alsaLib ffmpeg jack2 libX11 libXext libXfixes mesa pkgconfig
pulseaudio qt4 pulseaudio qt4
]; ];

View File

@ -3,7 +3,7 @@
, pkgconfig, dbus, fribidi, qt4, freefont_ttf, libebml, libmatroska , pkgconfig, dbus, fribidi, qt4, freefont_ttf, libebml, libmatroska
, libvorbis, libtheora, speex, lua5, libgcrypt, libupnp , libvorbis, libtheora, speex, lua5, libgcrypt, libupnp
, libcaca, pulseaudio, flac, schroedinger, libxml2, librsvg , libcaca, pulseaudio, flac, schroedinger, libxml2, librsvg
, mpeg2dec, udev, gnutls, avahi, libcddb, jackaudio, SDL, SDL_image , mpeg2dec, udev, gnutls, avahi, libcddb, jack2, 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
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
[ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread [ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
libbluray dbus fribidi qt4 libvorbis libtheora speex lua5 libgcrypt libbluray dbus fribidi qt4 libvorbis libtheora speex lua5 libgcrypt
libupnp libcaca pulseaudio flac schroedinger libxml2 librsvg mpeg2dec libupnp libcaca pulseaudio flac schroedinger libxml2 librsvg mpeg2dec
udev gnutls avahi libcddb jackaudio SDL SDL_image libmtp unzip taglib udev gnutls avahi libcddb jack2 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

View File

@ -0,0 +1,34 @@
{stdenv, fetchurl}:
# adapted from https://aur.archlinux.org/packages/tt/ttf-opensans/PKGBUILD
stdenv.mkDerivation rec {
name = "opensans-ttf-20140617";
src = fetchurl {
url = "https://hexchain.org/pub/archlinux/ttf-opensans/opensans.tar.gz";
sha256 = "1ycn39dijhd3lffmafminrnfmymdig2jvc6i47bb42fx777q97q4";
};
sourceRoot = ".";
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp *.ttf $out/share/fonts/truetype
'';
meta = {
description = "Open Sans fonts";
longDescription = ''
Open Sans is a humanist sans serif typeface designed by Steve Matteson,
Type Director of Ascender Corp.
'';
homepage = "http://en.wikipedia.org/wiki/Open_Sans";
license = "Apache";
platforms = stdenv.lib.platforms.all;
maintainers = [ ];
};
}

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, pkgconfig, e18, xlibs, libffi, pam, alsaLib, luajit, bzip2 }: { stdenv, fetchurl, pkgconfig, e18, xlibs, libffi, pam, alsaLib, luajit, bzip2, set_freqset_setuid ? false }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "enlightenment-${version}"; name = "enlightenment-${version}";
version = "0.18.8"; version = "0.18.8";
@ -10,6 +11,20 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 -I${e18.efl}/include/ecore-imf-1 -I${e18.efl}/include/ethumb-client-1 -I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE" export NIX_CFLAGS_COMPILE="-I${e18.efl}/include/eo-1 -I${e18.efl}/include/ecore-imf-1 -I${e18.efl}/include/ethumb-client-1 -I${e18.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE"
''; '';
# this is a hack and without this cpufreq module is not working:
# when set_freqset_setuid is true and "e18_freqset" is set in setuidPrograms (this is taken care of in e18 NixOS module),
# then this postInstall does the folowing:
# 1. moves the "freqset" binary to "e18_freqset",
# 2. linkes "e18_freqset" to enlightenment/bin so that,
# 3. setuidPrograms detects it and makes appropriate stuff to /var/setuid-wrappers/e18_freqset,
# 4. and finaly, linkes /var/setuid-wrappers/e18_freqset to original destination where enlightenment wants it
postInstall = if set_freqset_setuid then ''
export CPUFREQ_DIRPATH=`readlink -f $out/lib/enlightenment/modules/cpufreq/linux-gnu-*`;
mv $CPUFREQ_DIRPATH/freqset $CPUFREQ_DIRPATH/e18_freqset
ln -sv $CPUFREQ_DIRPATH/e18_freqset $out/bin/e18_freqset
ln -sv /var/setuid-wrappers/e18_freqset $CPUFREQ_DIRPATH/freqset
'' else "";
meta = { meta = {
description = "The Compositing Window Manager and Desktop Shell"; description = "The Compositing Window Manager and Desktop Shell";
homepage = http://enlightenment.org/; homepage = http://enlightenment.org/;

View File

@ -1,96 +0,0 @@
source $stdenv/setup
export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
mkdir $NIX_FIXINC_DUMMY
# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
# Thing.
export CPP="gcc -E"
if test "$noSysDirs" = "1"; then
if test -e $NIX_GCC/nix-support/orig-libc; then
# Figure out what extra flags to pass to the gcc compilers
# being generated to make sure that they use our glibc.
extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
# Use *real* header files, otherwise a limits.h is generated
# that does not include Glibc's limits.h (notably missing
# SSIZE_MAX, which breaks the build).
export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
else
# Hack: support impure environments.
extraCFlags="-isystem /usr/include"
extraLDFlags="-L/usr/lib64 -L/usr/lib"
export NIX_FIXINC_DUMMY=/usr/include
fi
extraCFlags="-g0 $extraCFlags"
extraLDFlags="--strip-debug $extraLDFlags"
export NIX_EXTRA_CFLAGS=$extraCFlags
for i in $extraLDFlags; do
export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
done
makeFlagsArray=( \
"${makeFlagsArray[@]}" \
NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
LIMITS_H_TEST=true \
X_CFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
LDFLAGS="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
LDFLAGS_FOR_TARGET="$NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS" \
)
fi
preConfigure() {
# Perform the build in a different directory.
mkdir ../build
cd ../build
configureScript=../$sourceRoot/configure
}
postInstall() {
# Remove precompiled headers for now. They are very big and
# probably not very useful yet.
find $out/include -name "*.gch" -exec rm -rf {} \; -prune
# Remove `fixincl' to prevent a retained dependency on the
# previous gcc.
rm -rf $out/libexec/gcc/*/*/install-tools
rm -rf $out/lib/gcc/*/*/install-tools
# Get rid of some "fixed" header files
rm -rf $out/lib/gcc/*/*/include/root
# Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
for i in $out/bin/*-gcc*; do
if cmp -s $out/bin/gcc $i; then
ln -sfn gcc $i
fi
done
for i in $out/bin/*-c++* $out/bin/*-g++*; do
if cmp -s $out/bin/g++ $i; then
ln -sfn g++ $i
fi
done
}
if test -z "$profiledCompiler"; then
buildFlags="bootstrap $buildFlags"
else
buildFlags="profiledbootstrap $buildFlags"
fi
genericBuild

View File

@ -1,66 +0,0 @@
{ stdenv, fetchurl, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, profiledCompiler ? false
, staticCompiler ? false
, gmp ? null
, mpfr ? null
, texinfo ? null
, name ? "gcc"
}:
with stdenv.lib;
let version = "4.2.4"; in
stdenv.mkDerivation {
name = "${name}-${version}";
builder = ./builder.sh;
src =
optional /*langC*/ true (fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.bz2";
sha256 = "0cm5yzhqhgdfk03aayakmdj793sya42xkkqhslj7s2b697hygjfg";
}) ++
optional langCC (fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.bz2";
sha256 = "0gq8ikci0qqgck71qqlhfld6zkwn9179x6z15vdd9blkdig55nxg";
}) ++
optional langFortran (fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-fortran-${version}.tar.bz2";
sha256 = "013yqiqhdavgxzjryvylgf3lcnknmw89fx41jf2v4899srn0bhkg";
});
patches =
[./pass-cxxcpp.patch ./siginfo_t.patch]
++ optional noSysDirs [./no-sys-dirs.patch];
inherit noSysDirs profiledCompiler staticCompiler;
buildInputs = [gmp mpfr texinfo];
configureFlags = "
--disable-multilib
--disable-libstdcxx-pch
--with-system-zlib
--enable-languages=${
concatStrings (intersperse ","
( optional langC "c"
++ optional langCC "c++"
++ optional langFortran "fortran"
)
)
}
${if stdenv.isi686 then "--with-arch=i686" else ""}
";
NIX_EXTRA_LDFLAGS = if staticCompiler then "-static" else "";
passthru = { inherit langC langCC langFortran; };
meta = {
homepage = "http://gcc.gnu.org/";
license = "GPL/LGPL";
description = "GNU Compiler Collection, 4.2.x";
};
}

View File

@ -1,139 +0,0 @@
diff -rc gcc-4.2.0-orig/Makefile.in gcc-4.2.0/Makefile.in
*** gcc-4.2.0-orig/Makefile.in 2006-12-29 18:47:06.000000000 +0100
--- gcc-4.2.0/Makefile.in 2007-05-20 21:06:42.000000000 +0200
***************
*** 364,369 ****
--- 364,377 ----
@host_makefile_frag@
###
+ CFLAGS += $(NIX_EXTRA_CFLAGS)
+ CPPFLAGS_FOR_TARGET += $(NIX_EXTRA_CFLAGS)
+ CXXFLAGS += $(NIX_EXTRA_CFLAGS)
+ LDFLAGS += $(NIX_EXTRA_LDFLAGS)
+ LDFLAGS_FOR_TARGET += $(NIX_EXTRA_LDFLAGS)
+ BOOT_CFLAGS += $(NIX_EXTRA_CFLAGS)
+ BOOT_LDFLAGS += $(NIX_EXTRA_LDFLAGS)
+
# This is the list of directories that may be needed in RPATH_ENVVAR
# so that prorgams built for the target machine work.
TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libgomp)$(HOST_LIB_PATH_gcc)
diff -rc gcc-4.2.0-orig/gcc/Makefile.in gcc-4.2.0/gcc/Makefile.in
*** gcc-4.2.0-orig/gcc/Makefile.in 2007-03-12 05:40:09.000000000 +0100
--- gcc-4.2.0/gcc/Makefile.in 2007-05-20 19:35:13.000000000 +0200
***************
*** 396,402 ****
MD5_H = $(srcdir)/../include/md5.h
# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
! NATIVE_SYSTEM_HEADER_DIR = /usr/include
# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
--- 396,406 ----
MD5_H = $(srcdir)/../include/md5.h
# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
! # `fixinc' from fixing header files in /usr/include. However,
! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
! # it to some dummy directory.
! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
***************
*** 3066,3072 ****
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
! -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
@TARGET_SYSTEM_ROOT_DEFINE@
--- 3070,3076 ----
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
! -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
@TARGET_SYSTEM_ROOT_DEFINE@
diff -rc gcc-4.2.0-orig/gcc/cppdefault.c gcc-4.2.0/gcc/cppdefault.c
*** gcc-4.2.0-orig/gcc/cppdefault.c 2006-01-20 22:00:03.000000000 +0100
--- gcc-4.2.0/gcc/cppdefault.c 2007-05-20 17:16:44.000000000 +0200
***************
*** 41,46 ****
--- 41,50 ----
# undef CROSS_INCLUDE_DIR
#endif
+ #undef LOCAL_INCLUDE_DIR
+ #undef SYSTEM_INCLUDE_DIR
+ #undef STANDARD_INCLUDE_DIR
+
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
diff -rc gcc-4.2.0-orig/gcc/gcc.c gcc-4.2.0/gcc/gcc.c
*** gcc-4.2.0-orig/gcc/gcc.c 2007-03-05 21:37:05.000000000 +0100
--- gcc-4.2.0/gcc/gcc.c 2007-05-20 17:49:48.000000000 +0200
***************
*** 1449,1458 ****
/* Default prefixes to attach to command names. */
#ifndef STANDARD_STARTFILE_PREFIX_1
! #define STANDARD_STARTFILE_PREFIX_1 "/lib/"
#endif
#ifndef STANDARD_STARTFILE_PREFIX_2
! #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
#endif
#ifdef CROSS_COMPILE /* Don't use these prefixes for a cross compiler. */
--- 1449,1458 ----
/* Default prefixes to attach to command names. */
#ifndef STANDARD_STARTFILE_PREFIX_1
! #define STANDARD_STARTFILE_PREFIX_1 ""
#endif
#ifndef STANDARD_STARTFILE_PREFIX_2
! #define STANDARD_STARTFILE_PREFIX_2 ""
#endif
#ifdef CROSS_COMPILE /* Don't use these prefixes for a cross compiler. */
***************
*** 1473,1480 ****
#endif
static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
! static const char *const standard_exec_prefix_1 = "/usr/libexec/gcc/";
! static const char *const standard_exec_prefix_2 = "/usr/lib/gcc/";
static const char *md_exec_prefix = MD_EXEC_PREFIX;
static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
--- 1473,1480 ----
#endif
static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
! static const char *const standard_exec_prefix_1 = "/no-such-path/";
! static const char *const standard_exec_prefix_2 = "/no-such-path/";
static const char *md_exec_prefix = MD_EXEC_PREFIX;
static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
diff -rc gcc-4.2.0-orig/ltconfig gcc-4.2.0/ltconfig
*** gcc-4.2.0-orig/ltconfig 2007-02-14 18:08:35.000000000 +0100
--- gcc-4.2.0/ltconfig 2007-05-20 22:16:24.000000000 +0200
***************
*** 2322,2327 ****
--- 2322,2332 ----
# A language-specific compiler.
CC=$CC
+ # Ugly hack to get libmudflap (and possibly other libraries) to build.
+ # Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
+ # to Glibc gets lost. Here we forcibly add it to any invocation.
+ CC="\$CC $NIX_EXTRA_CFLAGS $NIX_EXTRA_LDFLAGS"
+
# Is the compiler the GNU C compiler?
with_gcc=$with_gcc

View File

@ -1,21 +0,0 @@
diff -rc gcc-orig/Makefile.in gcc-4.1.1/Makefile.in
*** gcc-orig/Makefile.in Wed Jun 21 13:40:23 2006
--- gcc-4.1.1/Makefile.in Wed Jun 21 14:19:44 2006
***************
*** 213,219 ****
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
! CXX="$(RAW_CXX_FOR_TARGET)"; export CXX;
NORMAL_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
--- 213,220 ----
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
! CXX="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD)"; export CXX; \
! CXXCPP="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD) -E"; export CXXCPP;
NORMAL_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \

View File

@ -1,15 +0,0 @@
https://bbs.archlinux.org/viewtopic.php?id=144949
--- a/gcc/config/i386/linux-unwind.h 2011-01-03 20:52:22.000000000 +0000
+++ b/gcc/config/i386/linux-unwind.h 2012-07-06 12:23:51.562859470 +0100
@@ -133,9 +133,9 @@
{
struct rt_sigframe {
int sig;
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.

View File

@ -52,7 +52,7 @@ assert langGo -> langCC;
with stdenv.lib; with stdenv.lib;
with builtins; with builtins;
let version = "4.9.0"; let version = "4.9.1";
# Whether building a cross-compiler for GNU/Hurd. # Whether building a cross-compiler for GNU/Hurd.
crossGNU = cross != null && cross.config == "i586-pc-gnu"; crossGNU = cross != null && cross.config == "i586-pc-gnu";
@ -209,7 +209,7 @@ stdenv.mkDerivation ({
src = fetchurl { src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "0mqjxpw2klskls00lwx1k24pnyzm3whqxg3hk74c3sddgfllgc5r"; sha256 = "0zki3ngi0gsidnmsp88mjl2868cc7cm5wm1vwqw6znja28d7hd6k";
}; };
inherit patches; inherit patches;

View File

@ -26,6 +26,7 @@ cabal.mkDerivation (self: {
buildTools = [ happy ]; buildTools = [ happy ];
extraLibraries = [ boehmgc gmp ]; extraLibraries = [ boehmgc gmp ];
configureFlags = "-fllvm -fgmp -fffi"; configureFlags = "-fllvm -fgmp -fffi";
patches = [ ./trifecta-fix.patch ];
meta = { meta = {
homepage = "http://www.idris-lang.org/"; homepage = "http://www.idris-lang.org/";
description = "Functional Programming Language with Dependent Types"; description = "Functional Programming Language with Dependent Types";

View File

@ -0,0 +1,15 @@
diff --git a/src/Idris/AbsSyntaxTree.hs b/src/Idris/AbsSyntaxTree.hs
index 76df969..076f1ff 100644
--- a/src/Idris/AbsSyntaxTree.hs
+++ b/src/Idris/AbsSyntaxTree.hs
@@ -194,6 +194,10 @@ data IState = IState {
idris_callswho :: Maybe (M.Map Name [Name])
}
+-- Required for parsers library, and therefore trifecta
+instance Show IState where
+ show = const "{internal state}"
+
data SizeChange = Smaller | Same | Bigger | Unknown
deriving (Show, Eq)
{-!

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