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

This commit is contained in:
William A. Kennington III 2015-05-01 15:57:09 -07:00
commit 00df204c82
122 changed files with 2018 additions and 323 deletions

View file

@ -41,6 +41,7 @@
bodil = "Bodil Stokke <nix@bodil.org>";
boothead = "Ben Ford <ben@perurbis.com>";
bosu = "Boris Sukholitko <boriss@gmail.com>";
bramd = "Bram Duvigneau <bram@bramd.nl>";
bstrik = "Berno Strik <dutchman55@gmx.com>";
calrama = "Moritz Maxeiner <moritz@ucworks.org>";
campadrenalin = "Philip Horger <campadrenalin@gmail.com>";

View file

@ -15,9 +15,9 @@
<para>Following new services were added since the last release:
<!--<itemizedlist>
</itemizedlist>-->
<itemizedlist>
<listitem><para><literal>brltty</literal></para></listitem>
</itemizedlist>
</para>
<para>When upgrading from a previous release, please be aware of the

View file

@ -263,7 +263,7 @@ export NIX_PATH=$NIX_PATH:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix
# Ask the user to set a root password.
if [ "$(chroot $mountPoint nix-instantiate --eval '<nixpkgs/nixos>' -A config.users.mutableUsers)" = true ] && [ -t 1 ] ; then
if [ "$(chroot $mountPoint nix-instantiate --eval '<nixpkgs/nixos>' -A config.users.mutableUsers)" = true ] && [ -t 0 ] ; then
echo "setting root password..."
chroot $mountPoint /var/setuid-wrappers/passwd
fi

View file

@ -152,6 +152,7 @@
./services/hardware/actkbd.nix
./services/hardware/amd-hybrid-graphics.nix
./services/hardware/bluetooth.nix
./services/hardware/brltty.nix
./services/hardware/freefall.nix
./services/hardware/nvidia-optimus.nix
./services/hardware/pcscd.nix
@ -195,6 +196,7 @@
./services/misc/gitolite.nix
./services/misc/gpsd.nix
./services/misc/ihaskell.nix
./services/misc/mbpfan.nix
./services/misc/mediatomb.nix
./services/misc/mesos-master.nix
./services/misc/mesos-slave.nix

View file

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.brltty;
stateDir = "/run/brltty";
pidFile = "${stateDir}/brltty.pid";
in {
options = {
services.brltty.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the BRLTTY daemon.";
};
};
config = mkIf cfg.enable {
systemd.services.brltty = {
description = "Braille console driver";
preStart = ''
mkdir -p ${stateDir}
'';
serviceConfig = {
ExecStart = "${pkgs.brltty}/bin/brltty --pid-file=${pidFile}";
Type = "forking";
PIDFile = pidFile;
};
before = [ "sysinit.target" ];
wantedBy = [ "sysinit.target" ];
};
};
}

View file

@ -0,0 +1,113 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mbpfan;
verbose = if cfg.verbose then "v" else "";
in {
options.services.mbpfan = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
Whether to enable the mbpfan daemon.
'';
};
package = mkOption {
default = pkgs.mbpfan;
description = ''
The package used for the mbpfan daemon.
'';
};
minFanSpeed = mkOption {
type = types.int;
default = 2000;
description = ''
The minimum fan speed.
'';
};
maxFanSpeed = mkOption {
type = types.int;
default = 6200;
description = ''
The maximum fan speed.
'';
};
lowTemp = mkOption {
type = types.int;
default = 63;
description = ''
The low temperature.
'';
};
highTemp = mkOption {
type = types.int;
default = 66;
description = ''
The high temperature.
'';
};
maxTemp = mkOption {
type = types.int;
default = 86;
description = ''
The maximum temperature.
'';
};
pollingInterval = mkOption {
type = types.int;
default = 7;
description = ''
The polling interval.
'';
};
verbose = mkOption {
type = types.bool;
default = false;
description = ''
If true, sets the log level to verbose.
'';
};
};
config = mkIf cfg.enable {
boot.kernelModules = [ "coretemp" "applesmc" ];
environment = {
etc."mbpfan.conf".text = ''
[general]
min_fan_speed = ${toString cfg.minFanSpeed}
max_fan_speed = ${toString cfg.maxFanSpeed}
low_temp = ${toString cfg.lowTemp}
high_temp = ${toString cfg.highTemp}
max_temp = ${toString cfg.maxTemp}
polling_interval = ${toString cfg.pollingInterval}
'';
systemPackages = [ cfg.package ];
};
systemd.services.mbpfan = {
description = "A fan manager daemon for MacBook Pro";
wantedBy = [ "sysinit.target" ];
after = [ "syslog.target" "sysinit.target" ];
restartTriggers = [ config.environment.etc."mbpfan.conf".source ];
serviceConfig = {
Type = "simple";
ExecStart = "${cfg.package}/bin/mbpfan -f${verbose}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
PIDFile = "/var/run/mbpfan.pid";
Restart = "always";
};
};
};
}

View file

@ -132,7 +132,7 @@ let
commonNetworkOptions = {
enable = mkOption {
default = false;
default = true;
type = types.bool;
description = ''
Whether to manage network configuration using <command>systemd-network</command>.
@ -482,6 +482,11 @@ let
};
};
commonMatchText = def: ''
[Match]
${attrsToSection def.matchConfig}
'';
linkToUnit = name: def:
{ inherit (def) enable;
text = commonMatchText def +

View file

@ -25,6 +25,69 @@ rec {
ln -s /dev/null $out/${shellEscape name}
'';
boolValues = [true false "yes" "no"];
digits = map toString (range 0 9);
isByteFormat = s:
let
l = reverseList (stringToCharacters s);
suffix = head l;
nums = tail l;
in elem suffix (["K" "M" "G" "T"] ++ digits)
&& all (num: elem num digits) nums;
assertByteFormat = name: group: attr:
optional (attr ? ${name} && ! isByteFormat attr.${name})
"Systemd ${group} field `${name}' must be in byte format [0-9]+[KMGT].";
hexChars = stringToCharacters "0123456789abcdefABCDEF";
isMacAddress = s: stringLength s == 17
&& flip all (splitString ":" s) (bytes:
all (byte: elem byte hexChars) (stringToCharacters bytes)
);
assertMacAddress = name: group: attr:
optional (attr ? ${name} && ! isMacAddress attr.${name})
"Systemd ${group} field `${name}' must be a valid mac address.";
assertValueOneOf = name: values: group: attr:
optional (attr ? ${name} && !elem attr.${name} values)
"Systemd ${group} field `${name}' cannot have value `${attr.${name}}'.";
assertHasField = name: group: attr:
optional (!(attr ? ${name}))
"Systemd ${group} field `${name}' must exist.";
assertRange = name: min: max: group: attr:
optional (attr ? ${name} && !(min <= attr.${name} && max >= attr.${name}))
"Systemd ${group} field `${name}' is outside the range [${toString min},${toString max}]";
assertOnlyFields = fields: group: attr:
let badFields = filter (name: ! elem name fields) (attrNames attr); in
optional (badFields != [ ])
"Systemd ${group} has extra fields [${concatStringsSep " " badFields}].";
checkUnitConfig = group: checks: v:
let errors = concatMap (c: c group v) checks; in
if errors == [] then true
else builtins.trace (concatStringsSep "\n" errors) false;
toOption = x:
if x == true then "true"
else if x == false then "false"
else toString x;
attrsToSection = as:
concatStrings (concatLists (mapAttrsToList (name: value:
map (x: ''
${name}=${toOption x}
'')
(if isList value then value else [value]))
as));
generateUnits = type: units: upstreamUnits: upstreamWants:
pkgs.runCommand "${type}-units" { preferLocalBuild = true; } ''
mkdir -p $out

View file

@ -1,58 +1,9 @@
{ config, lib }:
with lib;
with import ./systemd-lib.nix { inherit config lib pkgs; };
let
boolValues = [true false "yes" "no"];
assertValueOneOf = name: values: group: attr:
optional (attr ? ${name} && !elem attr.${name} values)
"Systemd ${group} field `${name}' cannot have value `${attr.${name}}'.";
assertHasField = name: group: attr:
optional (!(attr ? ${name}))
"Systemd ${group} field `${name}' must exist.";
assertOnlyFields = fields: group: attr:
let badFields = filter (name: ! elem name fields) (attrNames attr); in
optional (badFields != [ ])
"Systemd ${group} has extra fields [${concatStringsSep " " badFields}].";
assertRange = name: min: max: group: attr:
optional (attr ? ${name} && !(min <= attr.${name} && max >= attr.${name}))
"Systemd ${group} field `${name}' is outside the range [${toString min},${toString max}]";
digits = map toString (range 0 9);
isByteFormat = s:
let
l = reverseList (stringToCharacters s);
suffix = head l;
nums = tail l;
in elem suffix (["K" "M" "G" "T"] ++ digits)
&& all (num: elem num digits) nums;
assertByteFormat = name: group: attr:
optional (attr ? ${name} && ! isByteFormat attr.${name})
"Systemd ${group} field `${name}' must be in byte format [0-9]+[KMGT].";
hexChars = stringToCharacters "0123456789abcdefABCDEF";
isMacAddress = s: stringLength s == 17
&& flip all (splitString ":" s) (bytes:
all (byte: elem byte hexChars) (stringToCharacters bytes)
);
assertMacAddress = name: group: attr:
optional (attr ? ${name} && ! isMacAddress attr.${name})
"Systemd ${group} field `${name}' must be a valid mac address.";
checkUnitConfig = group: checks: v:
let errors = concatMap (c: c group v) checks; in
if errors == [] then true
else builtins.trace (concatStringsSep "\n" errors) false;
checkService = checkUnitConfig "Service" [
(assertValueOneOf "Type" [
"simple" "forking" "oneshot" "dbus" "notify" "idle"

View file

@ -276,19 +276,6 @@ let
};
};
toOption = x:
if x == true then "true"
else if x == false then "false"
else toString x;
attrsToSection = as:
concatStrings (concatLists (mapAttrsToList (name: value:
map (x: ''
${name}=${toOption x}
'')
(if isList value then value else [value]))
as));
commonUnitText = def: ''
[Unit]
${attrsToSection def.unitConfig}
@ -369,11 +356,6 @@ let
'';
};
commonMatchText = def: ''
[Match]
${attrsToSection def.matchConfig}
'';
in
{

View file

@ -1,64 +1,92 @@
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
, gst_plugins_good, gst_plugins_bad, gst_plugins_ugly, gst_ffmpeg
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
, sparsehash, config, makeWrapper }:
, sparsehash, config, makeWrapper, gst_plugins }:
let withSpotify = config.clementine.spotify or false;
in
stdenv.mkDerivation {
name = "clementine-1.2.3";
let
version = "1.2.3";
src = fetchurl {
url = https://github.com/clementine-player/Clementine/archive/1.2.3.tar.gz;
sha256 = "1gx1109i4pylz6x7gvp4rdzc6dvh0w6in6hfbygw01d08l26bxbx";
};
withSpotify = config.clementine.spotify or false;
patches =
[
./clementine-1.2.1-include-paths.patch
./clementine-dbus-namespace.patch
wrappedExeName = "clementine";
wrapped = stdenv.mkDerivation {
name = "clementine-wrapped-${version}";
src = fetchurl {
url = https://github.com/clementine-player/Clementine/archive/1.2.3.tar.gz;
sha256 = "1gx1109i4pylz6x7gvp4rdzc6dvh0w6in6hfbygw01d08l26bxbx";
};
patches = [ ./clementine-1.2.1-include-paths.patch ];
buildInputs = [
boost
cmake
fftw
gettext
glew
gst_plugins_base
gstreamer
gvfs
libcdio
libgpod
liblastfm
libmtp
libplist
pkgconfig
protobuf
qca2
qjson
qt4
sparsehash
sqlite
taglib
usbmuxd
];
enableParallelBuilding = true;
};
in
stdenv.mkDerivation {
name = "clementine-${version}";
src = ./.;
patches = [
./clementine-1.2.1-include-paths.patch
./clementine-dbus-namespace.patch
];
buildInputs = [
boost
cmake
fftw
gettext
glew
gst_plugins_base
gst_plugins_good
gst_plugins_ugly
gst_ffmpeg
gstreamer
gvfs
libcdio
libgpod
liblastfm
libmtp
libplist
wrapped
makeWrapper
pkgconfig
protobuf
qca2
qjson
qt4
sparsehash
sqlite
taglib
usbmuxd
] ++ stdenv.lib.optional withSpotify libspotify;
] ++ gst_plugins
++ stdenv.lib.optional withSpotify libspotify;
enableParallelBuilding = true;
installPhase = ''
mkdir -p $out
cp -a ${wrapped}/* $out
chmod -R u+w-t $out
postInstall = ''
wrapProgram $out/bin/clementine \
--set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
wrapProgram "$out/bin/${wrappedExeName}" \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
'';
preferLocalBuild = true;
dontPatchELF = true;
dontStrip = true;
meta = with stdenv.lib; {
homepage = "http://www.clementine-player.org";
description = "A multiplatform music player";
description = "A multiplatform music player"
+ " ("
+ concatStrings (optionals (withSpotify) ["with spotify, "])
+ "with gstreamer plugins: "
+ concatStrings (intersperse ", " (map (x: x.name) gst_plugins))
+ ")";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.ttuegel ];

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation
meta = {
homepage = "http://rudel.sourceforge.net/";
description = "Rudel is a collaborative editing environment for GNU Emacs";
description = "A collaborative editing environment for GNU Emacs";
license = "GPL";
};
}

View file

@ -79,7 +79,7 @@ in stdenv.mkDerivation rec {
'';
meta = {
description = "Zed is a fully offline-capable, open source, keyboard-focused, text and code editor for power users";
description = "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 ];

View file

@ -5,11 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-2.26.0";
name = "calibre-2.27.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0340cdxbdwvckmz3zygwx1wbn62wxap0545nsimpfq4ln7dcxrfw";
sha256 = "13id1r2q6alw4wzb4z0njkyr6lsmzs2fjp3cflqavx3qk25darv5";
};
inherit python;

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://www.krename.net;
description = "KRename is a powerful batch renamer for KDE";
description = "A powerful batch renamer for KDE";
inherit (kdelibs.meta) platforms;
maintainers = [ stdenv.lib.maintainers.urkud ];
};

View file

@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "Password Safe is a password database utility";
description = "A password database utility";
longDescription = ''
Password Safe is a password database utility. Like many other

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation {
buildInputs = [pkgconfig libParserUtils libwapcaplet];
meta = {
description = "libCSS is a CSS parser and selection engine, written in C"; # used by netsurf
description = "A CSS parser and selection engine, written in C"; # used by netsurf
homepage = http://www.netsurf-browser.org/projects/libcss/;
license = stdenv.lib.licenses.mit;
maintainers = [args.lib.maintainers.marcweber];

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation {
buildInputs = [pkgconfig];
meta = {
description = "LibParserUtils is a library for building efficient parsers, written in C";
description = "A library for building efficient parsers, written in C";
homepage = http://www.netsurf-browser.org/projects/libparserutils/;
license = stdenv.lib.licenses.mit;
maintainers = [args.lib.maintainers.marcweber];

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation {
buildInputs = [];
meta = {
description = "Libnsbmp is a decoding library for BMP and ICO image file formats"; # used by netsurf
description = "A decoding library for BMP and ICO image file formats"; # used by netsurf
homepage = http://www.netsurf-browser.org/projects/libnsbmp/;
license = stdenv.lib.licenses.mit;
maintainers = [args.lib.maintainers.marcweber];

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation {
buildInputs = [];
meta = {
description = "Libnsbmp is a decoding library for gif image file formats"; # used by netsurf
description = "A decoding library for gif image file formats"; # used by netsurf
homepage = http://www.netsurf-browser.org/projects/libnsgif/;
license = stdenv.lib.licenses.mit;
maintainers = [args.lib.maintainers.marcweber];

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation {
buildInputs = [];
meta = {
description = "LibWapcaplet is a string internment library, written in C";
description = "A string internment library, written in C";
homepage = http://www.netsurf-browser.org/projects/libwapcaplet/;
license = stdenv.lib.licenses.mit;
maintainers = [args.lib.maintainers.marcweber];

View file

@ -0,0 +1,45 @@
{ stdenv, fetchurl, makeWrapper, hadoop, jre, bash }:
stdenv.mkDerivation rec {
name = "pig-0.14.0";
src = fetchurl {
url = "mirror://apache/pig/${name}/${name}.tar.gz";
sha256 = "183in34cj93ny3lhqyq76g9pjqgw1qlwakk5v6x847vrlkfndska";
};
buildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out
mv * $out
# no need for the windows batch script
rm $out/bin/pig.cmd $out/bin/pig.py
for n in $out/{bin,sbin}"/"*; do
wrapProgram $n \
--prefix PATH : "${jre}/bin:${bash}/bin" \
--set JAVA_HOME "${jre}" --set HADOOP_PREFIX "${hadoop}"
done
'';
meta = with stdenv.lib; {
homepage = "http://pig.apache.org/";
description = "High-level language for Apache Hadoop";
license = licenses.asl20;
longDescription = ''
Apache Pig is a platform for analyzing large data sets that consists of a
high-level language for expressing data analysis programs, coupled with
infrastructure for evaluating these programs. The salient property of Pig
programs is that their structure is amenable to substantial parallelization,
which in turns enables them to handle very large data sets.
'';
platforms = platforms.linux;
maintainers = [ maintainers.skeidel ];
};
}

View file

@ -2,11 +2,11 @@
pythonPackages.buildPythonPackage rec {
name = "blink-${version}";
version = "1.2.2";
version = "1.3.0";
src = fetchurl {
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
sha256 = "0z7bhfz2775cm7c7s794s5ighp5q7fb6jn8dw025m49vlgqzr78c";
sha256 = "388a0ca72ad99087cd87b78a4c449f9c079117920bfc50d7843853b8f942d045";
};
patches = [ ./pythonpath.patch ];

View file

@ -32,7 +32,16 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
meta = {
description = "Calligra Suite is a set of applications written to help you to accomplish your work. Calligra includes efficient and capable office components: Words for text processing, Sheets for computations, Stage for presentations, Plan for planning, Flow for flowcharts, Kexi for database creation, Krita for painting and raster drawing, and Karbon for vector graphics.";
description = "A suite of productivity applications";
longDescription = ''
Calligra Suite is a set of applications written to help
you to accomplish your work. Calligra includes efficient
and capable office components: Words for text processing,
Sheets for computations, Stage for presentations, Plan for
planning, Flow for flowcharts, Kexi for database creation,
Krita for painting and raster drawing, and Karbon for
vector graphics.
'';
homepage = http://calligra.org;
maintainers = with stdenv.lib.maintainers; [ urkud phreedom ];
inherit (kdelibs.meta) platforms;

View file

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "Yices is a high-performance theorem prover and SMT solver";
description = "A high-performance theorem prover and SMT solver";
homepage = "http://yices.csl.sri.com";
license = stdenv.lib.licenses.unfreeRedistributable;
platforms = stdenv.lib.platforms.linux;

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://procode.org/stgit/";
description = "StGit is a patch manager implemented on top of Git";
description = "A patch manager implemented on top of Git";
license = "GPL";
maintainers = with stdenv.lib.maintainers; [ simons the-kenny ];

View file

@ -3,11 +3,11 @@
}:
stdenv.mkDerivation rec {
name = "tig-2.1";
name = "tig-2.1.1";
src = fetchurl {
url = "http://jonas.nitro.dk/tig/releases/${name}.tar.gz";
sha256 = "1c1w6w39a1dwx4whrg0ga1mhrlz095hz875z7ajn6xgmhkv8fqih";
sha256 = "0bw5wivswwh7vx897q8xc2cqgkqhdzk8gh6fnav2kf34sngigiah";
};
buildInputs = [ ncurses asciidoc xmlto docbook_xsl readline git makeWrapper ];
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = "http://jonas.nitro.dk/tig/";
description = "Text-mode interface for git";
maintainers = with maintainers; [ garbas bjornfor iElectric ];
maintainers = with maintainers; [ garbas bjornfor iElectric qknight ];
license = licenses.gpl2;
platforms = platforms.unix;
};

View file

@ -7,7 +7,7 @@
}:
let
the_version = "6_5_3";
the_version = "6_5_7";
in
@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
name = "smartgithg-${the_version}";
src = fetchurl {
url = "http://www.syntevo.com/download/smartgit/" +
url = "http://www.syntevo.com/downloads/smartgit/" +
"smartgit-generic-${the_version}.tar.gz";
sha256 = "0hz1y29ipls58fizr27w6rbv7v7qbbc1h70xvjjd8c94k9ajmav9";
sha256 = "0db4dxp0dl173z9r8n25zdl1il240p751d2f77cw0nmyibik7q4l";
};
buildInputs = [

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "i3lock is a simple screen locker like slock";
description = "A simple screen locker like slock";
homepage = http://i3wm.org/i3lock/;
maintainers = with maintainers; [ garbas malyn ];
license = licenses.bsd3;

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
installFlags = "PREFIX=\${out}";
meta = {
description = "i3 is a tiling window manager";
description = "A tiling window manager";
homepage = http://i3wm.org;
maintainers = [ stdenv.lib.maintainers.garbas ];
license = stdenv.lib.licenses.bsd3;

View file

@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = {
description = "Zeal is a simple offline API documentation browser";
description = "A simple offline API documentation browser";
longDescription = ''
Zeal is a simple offline API documentation browser inspired by Dash (OS X
app), available for Linux and Windows.

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
homepage = https://github.com/powerline/fonts;
description = "Patched fonts for Powerline users.";
description = "Patched fonts for Powerline users";
longDescription = ''
Pre-patched and adjusted fonts for usage with the Powerline plugin.
'';

View file

@ -16,4 +16,5 @@ for var in "${!src@}"; do
cp "$src" "$dest"
done
gunzip -v *.gz
gzip -dv *.gz
xz -dv *.xz

View file

@ -3,7 +3,7 @@
let
fetchDB = name: sha256: fetchurl {
inherit sha256;
url = "https://geolite.maxmind.com/download/geoip/database/${name}.dat.gz";
url = "https://geolite.maxmind.com/download/geoip/database/${name}";
};
# Annoyingly, these files are updated without a change in URL. This means that
@ -13,20 +13,21 @@ in
stdenv.mkDerivation {
name = "geolite-legacy-${version}";
srcGeoIP = fetchDB "GeoLiteCountry/GeoIP"
srcGeoIP = fetchDB "GeoLiteCountry/GeoIP.dat.gz"
"15c7j6yyjl0k42ij7smdz2j451y3hhfbmxwkx8kp5ja0afrlw41k";
srcGeoIPv6 = fetchDB "GeoIPv6"
srcGeoIPv6 = fetchDB "GeoIPv6.dat.gz"
"0kz6yjprzqr2pi4rczbmw7489gdjzf957azahdqjai8fx0s5w93i";
srcGeoLiteCity = fetchDB "GeoLiteCity"
"0lc696axcdgz7xrh9p6ac5aa7nlxfgngwyabjwqiwazz3wcmw05a";
srcGeoLiteCityv6 = fetchDB "GeoLiteCityv6-beta/GeoLiteCityv6"
srcGeoLiteCity = fetchDB "GeoLiteCity.dat.xz"
"1z40kfjwn90fln7nfnk5pwcn1wl9imw5jz6bcdy8yr552m2n31y7";
srcGeoLiteCityv6 = fetchDB "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
"1k8sig8w43cdm19rpwndr1akj1d3mxl5sch60qbinjrb05l6xbgv";
srcGeoIPASNum = fetchDB "asnum/GeoIPASNum"
srcGeoIPASNum = fetchDB "asnum/GeoIPASNum.dat.gz"
"0r4v2zs4alxb46kz679hw4w34s7n9pxw32wcfs5x4nhnq051y6ms";
srcGeoIPASNumv6 = fetchDB "asnum/GeoIPASNumv6"
srcGeoIPASNumv6 = fetchDB "asnum/GeoIPASNumv6.dat.gz"
"04ciwh5gaxja4lzlsgbg1p7rkrhnn637m4nj9ld8sb36bl2ph6gc";
meta = with stdenv.lib; {
inherit version;
description = "GeoLite Legacy IP geolocation databases";
homepage = https://geolite.maxmind.com/download/geoip;
license = with licenses; cc-by-sa-30;

View file

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "Econnman is a user interface for the connman network connection manager";
description = "A user interface for the connman network connection manager";
homepage = http://enlightenment.org/;
maintainers = with stdenv.lib.maintainers; [ matejc tstrobel ];
platforms = stdenv.lib.platforms.linux;

View file

@ -3,6 +3,6 @@ kde {
buildInputs = [ kdelibs qt_gstreamer1 ];
meta = {
description = "Artikulate is a pronunciation learning program for KDE.";
description = "A pronunciation learning program for KDE";
};
}

View file

@ -0,0 +1,35 @@
{ stdenv, fetchurl, ats2, python, z3, pkgconfig, json_c }:
stdenv.mkDerivation {
name = "ats-extsolve-0pre6a9b752";
buildInputs = [ python z3 ats2 pkgconfig json_c ];
src = fetchurl {
url = "https://github.com/githwxi/ATS-Postiats-contrib/archive/6a9b752efb8af1e4f77213f9e81fc2b7fa050877.tar.gz";
sha256 = "1zz4fqjm1rdvpm0m0sdck6vx55iiqlk2p8z078fca2q9xyxqjkqd";
};
postUnpack = ''
export PATSHOMERELOC="$PWD/$sourceRoot";
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$PATSHOMERELOC"
'';
patches = [ ./misc-fixes.patch ];
preBuild = "cd projects/MEDIUM/ATS-extsolve";
buildFlags = [ "setup" "patsolve" ];
installPhase = ''
install -d -m755 $out/bin
install -m755 patsolve $out/bin
'';
meta = {
platforms = ats2.meta.platforms;
homepage = http://www.illtyped.com/projects/patsolve;
description = "External Constraint-Solving for ATS2";
maintainer = [ stdenv.lib.maintainers.shlevy ];
};
}

View file

@ -0,0 +1,136 @@
From bfc7216250e666a59e304f3b7518f8b0bccccbae Mon Sep 17 00:00:00 2001
From: Shea Levy <shea@shealevy.com>
Date: Thu, 30 Apr 2015 16:50:47 -0400
Subject: [PATCH] Add missing case in fprint_s2rt
---
projects/MEDIUM/ATS-extsolve/constraint/constraint_s2rt.dats | 1 +
1 file changed, 1 insertion(+)
diff --git a/projects/MEDIUM/ATS-extsolve/constraint/constraint_s2rt.dats b/projects/MEDIUM/ATS-extsolve/constraint/constraint_s2rt.dats
index a841b5f..5bc28d7 100644
--- a/projects/MEDIUM/ATS-extsolve/constraint/constraint_s2rt.dats
+++ b/projects/MEDIUM/ATS-extsolve/constraint/constraint_s2rt.dats
@@ -113,6 +113,7 @@ case+ s2t0 of
| S2RTfun (args, ret) => fprint (out, "S2RTfun()")
| S2RTtup () => fprint (out, "S2RTtup()")
| S2RTerr () => fprint (out, "S2RTerr()")
+| S2RTuninterp (str) => fprint! (out, "S2RTuninterp(", str, ")")
//
| S2RTignored () => fprint (out, "S2RTignored()")
//
From 9d4c7669d0d3bc8725648684391a2962ed5a922e Mon Sep 17 00:00:00 2001
From: Shea Levy <shea@shealevy.com>
Date: Thu, 30 Apr 2015 17:13:35 -0400
Subject: [PATCH] ATS-extsolve: Get rid of verbose . overload
---
projects/MEDIUM/ATS-extsolve/solving/solver.dats | 2 +-
projects/MEDIUM/ATS-extsolve/solving/solver.sats | 6 ------
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/projects/MEDIUM/ATS-extsolve/solving/solver.dats b/projects/MEDIUM/ATS-extsolve/solving/solver.dats
index 8446cd5..f2f77b4 100644
--- a/projects/MEDIUM/ATS-extsolve/solving/solver.dats
+++ b/projects/MEDIUM/ATS-extsolve/solving/solver.dats
@@ -250,7 +250,7 @@ end // end of [c3nstr_solve_main]
implement c3nstr_solve (c3t, scripts, verbose) = let
var env : smtenv
val _ = smtenv_nil (env)
- val () = env.verbose (verbose)
+ val () = smtenv_set_verbose(env, verbose)
val () =
case+ scripts of
| list_nil () => ()
diff --git a/projects/MEDIUM/ATS-extsolve/solving/solver.sats b/projects/MEDIUM/ATS-extsolve/solving/solver.sats
index e43a028..dae452c 100644
--- a/projects/MEDIUM/ATS-extsolve/solving/solver.sats
+++ b/projects/MEDIUM/ATS-extsolve/solving/solver.sats
@@ -39,14 +39,8 @@ fun smtenv_load_scripts (env: &smtenv, scripts: List0(string)): void
fun smtenv_get_solver (env: &smtenv): solver
-fun smtenv_get_verbose (env: &smtenv): bool
-
-overload .verbose with smtenv_get_verbose
-
fun smtenv_set_verbose (env: &smtenv, verbose: bool): void
-overload .verbose with smtenv_set_verbose
-
fun formula_cst (s2c: s2cst): formula
(* ****** ****** *)
From e3473a8d9dc7c56cda1111a439db7123254d00b4 Mon Sep 17 00:00:00 2001
From: Shea Levy <shea@shealevy.com>
Date: Thu, 30 Apr 2015 18:09:33 -0400
Subject: [PATCH 1/2] solver_smt.dats: Don't use mapfree on linear list of
non-linear values
---
projects/MEDIUM/ATS-extsolve/solving/solver_smt.dats | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/projects/MEDIUM/ATS-extsolve/solving/solver_smt.dats b/projects/MEDIUM/ATS-extsolve/solving/solver_smt.dats
index 04055b9..b49602d 100644
--- a/projects/MEDIUM/ATS-extsolve/solving/solver_smt.dats
+++ b/projects/MEDIUM/ATS-extsolve/solving/solver_smt.dats
@@ -348,7 +348,7 @@ in
//
val () = assertloc (length(pairs) > 0)
//
- implement list_vt_mapfree$fopr<@(s2exp,s2exp)><formula>(x) = let
+ implement list_vt_map$fopr<@(s2exp,s2exp)><formula>(x) = let
val (pf, fpf | Env) = $UN.ptr1_vtake{smtenv}(addr@ env)
val met = formula_make (!Env, x.0)
val bound = formula_make (!Env, x.1)
@@ -362,7 +362,8 @@ in
end
//
val assertions =
- list_vt_mapfree<(s2exp,s2exp)><formula> (pairs)
+ list_vt_map<(s2exp,s2exp)><formula> (pairs)
+ val () = list_vt_free(pairs)
//
implement
list_vt_fold$init<formula><formula> (x) = x
From 50de956561e6bf43190d7efb385bb6da658f1637 Mon Sep 17 00:00:00 2001
From: Shea Levy <shea@shealevy.com>
Date: Thu, 30 Apr 2015 18:18:56 -0400
Subject: [PATCH 2/2] ats-extsolve/main.dats: Don't use mapfree on linear list
of non-linear values
---
projects/MEDIUM/ATS-extsolve/main.dats | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/projects/MEDIUM/ATS-extsolve/main.dats b/projects/MEDIUM/ATS-extsolve/main.dats
index ac30ca0..930697d 100644
--- a/projects/MEDIUM/ATS-extsolve/main.dats
+++ b/projects/MEDIUM/ATS-extsolve/main.dats
@@ -34,7 +34,7 @@ dynload "commarg.dats"
(* ****** ****** *)
-overload mapfree with list_vt_mapfree
+overload map with list_vt_map
overload filter with list_vt_filter
(* ****** ****** *)
@@ -56,12 +56,13 @@ implement main0 (argc, argv) = let
| Script (s) => true
| _ =>> false
implement
- list_vt_mapfree$fopr<commarg><string> (x) =
+ list_vt_map$fopr<commarg><string> (x) =
case- x of
| Script (s) => s
//
val scriptargs = filter (list_vt_copy (args))
- val scripts = mapfree<commarg><string> (scriptargs)
+ val scripts = map<commarg><string> (scriptargs)
+ val () = list_vt_free (scriptargs)
//
implement
list_find$pred<commarg> (x) =

View file

@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
buildInputs = [ gmp ];
setupHook = ./setup-hook.sh;
meta = {
description = "Functional programming language with dependent types";
homepage = "http://www.ats-lang.org";

View file

@ -0,0 +1 @@
export PATSHOME=@out@/lib/ats2-postiats-@version@

View file

@ -27,7 +27,7 @@ cabal.mkDerivation (self: {
];
meta = {
homepage = "http://elm-lang.org";
description = "Values to help with elm-package, elm-make, and elm-lang.org.";
description = "Values to help with elm-package, elm-make, and elm-lang.org";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};

View file

@ -0,0 +1,255 @@
source $stdenv/setup
export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
mkdir $NIX_FIXINC_DUMMY
if test "$staticCompiler" = "1"; then
EXTRA_LDFLAGS="-static"
else
EXTRA_LDFLAGS=""
fi
# GCC interprets empty paths as ".", which we don't want.
if test -z "$CPATH"; then unset CPATH; fi
if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
echo "\$CPATH is \`$CPATH'"
echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'"
if test "$noSysDirs" = "1"; then
if test -e $NIX_CC/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.
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/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_CC/nix-support/orig-libc)/include
# The path to the Glibc binaries such as `crti.o'.
glibc_libdir="$(cat $NIX_CC/nix-support/orig-libc)/lib"
else
# Hack: support impure environments.
extraFlags="-isystem /usr/include"
extraLDFlags="-L/usr/lib64 -L/usr/lib"
glibc_libdir="/usr/lib"
export NIX_FIXINC_DUMMY=/usr/include
fi
extraFlags="-I$NIX_FIXINC_DUMMY $extraFlags"
extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
# BOOT_CFLAGS defaults to `-g -O2'; since we override it below,
# make sure to explictly add them so that files compiled with the
# bootstrap compiler are optimized and (optionally) contain
# debugging information (info "(gccinstall) Building").
if test -n "$dontStrip"; then
extraFlags="-O2 -g $extraFlags"
else
# Don't pass `-g' at all; this saves space while building.
extraFlags="-O2 $extraFlags"
fi
EXTRA_FLAGS="$extraFlags"
for i in $extraLDFlags; do
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,$i"
done
if test -n "$targetConfig"; then
# Cross-compiling, we need gcc not to read ./specs in order to build
# the g++ compiler (after the specs for the cross-gcc are created).
# Having LIBRARY_PATH= makes gcc read the specs from ., and the build
# breaks. Having this variable comes from the default.nix code to bring
# gcj in.
unset LIBRARY_PATH
unset CPATH
if test -z "$crossStageStatic"; then
EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include"
EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib -Wl,-rpath,${libcCross}/lib -Wl,-rpath-link,${libcCross}/lib"
fi
else
if test -z "$NIX_CC_CROSS"; then
EXTRA_TARGET_CFLAGS="$EXTRA_FLAGS"
EXTRA_TARGET_CXXFLAGS="$EXTRA_FLAGS"
EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
else
# This the case of cross-building the gcc.
# We need special flags for the target, different than those of the build
# Assertion:
test -e $NIX_CC_CROSS/nix-support/orig-libc
# Figure out what extra flags to pass to the gcc compilers
# being generated to make sure that they use our glibc.
extraFlags="$(cat $NIX_CC_CROSS/nix-support/libc-cflags)"
extraLDFlags="$(cat $NIX_CC_CROSS/nix-support/libc-ldflags) $(cat $NIX_CC_CROSS/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).
NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_CC_CROSS/nix-support/orig-libc)/include
# The path to the Glibc binaries such as `crti.o'.
glibc_dir="$(cat $NIX_CC_CROSS/nix-support/orig-libc)"
glibc_libdir="$glibc_dir/lib"
configureFlags="$configureFlags --with-native-system-header-dir=$glibc_dir/include"
extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags"
extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
EXTRA_TARGET_CFLAGS="$extraFlags"
for i in $extraLDFlags; do
EXTRA_TARGET_LDFLAGS="$EXTRA_TARGET_LDFLAGS -Wl,$i"
done
fi
fi
# CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
# the startfiles.
# FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
# for the startfiles.
makeFlagsArray+=( \
NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
CFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
CXXFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
CFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
CXXFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
FLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
LDFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
LDFLAGS_FOR_TARGET="$EXTRA_TARGET_LDFLAGS $EXTRA_TARGET_LDFLAGS" \
)
if test -z "$targetConfig"; then
makeFlagsArray+=( \
BOOT_CFLAGS="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
BOOT_LDFLAGS="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
)
fi
if test -n "$targetConfig" -a "$crossStageStatic" == 1; then
# We don't want the gcc build to assume there will be a libc providing
# limits.h in this stagae
makeFlagsArray+=( \
LIMITS_H_TEST=false \
)
else
makeFlagsArray+=( \
LIMITS_H_TEST=true \
)
fi
fi
if test -n "$targetConfig"; then
# The host strip will destroy some important details of the objects
dontStrip=1
fi
providedPreConfigure="$preConfigure";
preConfigure() {
if test -n "$newlibSrc"; then
tar xvf "$newlibSrc" -C ..
ln -s ../newlib-*/newlib newlib
# Patch to get armvt5el working:
sed -i -e 's/ arm)/ arm*)/' newlib/configure.host
fi
# Bug - they packaged zlib
if test -d "zlib"; then
# This breaks the build without-headers, which should build only
# the target libgcc as target libraries.
# See 'configure:5370'
rm -Rf zlib
fi
if test -f "$NIX_CC/nix-support/orig-libc"; then
# Patch the configure script so it finds glibc headers. It's
# important for example in order not to get libssp built,
# because its functionality is in glibc already.
glibc_headers="$(cat $NIX_CC/nix-support/orig-libc)/include"
sed -i \
-e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \
gcc/configure
fi
if test -n "$crossMingw" -a -n "$crossStageStatic"; then
mkdir -p ../mingw
# --with-build-sysroot expects that:
cp -R $libcCross/include ../mingw
configureFlags="$configureFlags --with-build-sysroot=`pwd`/.."
fi
# Eval the preConfigure script from nix expression.
eval "$providedPreConfigure"
# Perform the build in a different directory.
mkdir ../build
cd ../build
configureScript=../$sourceRoot/configure
}
postConfigure() {
# Don't store the configure flags in the resulting executables.
sed -e '/TOPLEVEL_CONFIGURE_ARGUMENTS=/d' -i Makefile
}
preInstall() {
# Make lib64 a symlink to lib.
if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
mkdir -p $out/lib
ln -s lib $out/lib64
fi
}
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
# More dependencies with the previous gcc or some libs (gccbug stores the build command line)
rm -rf $out/bin/gccbug
# Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
for i in $out/libexec/gcc/*/*/*; do
if PREV_RPATH=`patchelf --print-rpath $i`; then
patchelf --set-rpath `echo $PREV_RPATH | sed 's,:[^:]*bootstrap-tools/lib,,'` $i
fi
done
# 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/*-c++* $out/bin/*-g++*; do
if cmp -s $out/bin/g++ $i; then
ln -sfn g++ $i
fi
done
# Disable RANDMMAP on grsec, which causes segfaults when using
# precompiled headers.
# See https://bugs.gentoo.org/show_bug.cgi?id=301299#c31
paxmark r $out/libexec/gcc/*/*/{cc1,cc1plus}
eval "$postInstallGhdl"
}
genericBuild

View file

@ -0,0 +1,526 @@
{ stdenv, fetchurl, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langObjC ? stdenv.isDarwin
, langObjCpp ? stdenv.isDarwin
, langJava ? false
, langAda ? false
, langVhdl ? false
, langGo ? false
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null
, zip ? null, unzip ? null, pkgconfig ? null
, gtk ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null
, x11Support ? langJava
, gnatboot ? null
, enableMultilib ? false
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, gnused ? null
}:
assert langJava -> zip != null && unzip != null
&& zlib != null && boehmgc != null
&& perl != null; # for `--enable-java-home'
assert langAda -> gnatboot != null;
assert langVhdl -> gnat != null;
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
# Make sure we get GNU sed.
assert stdenv.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
with stdenv.lib;
with builtins;
let version = "5.1.0";
# Whether building a cross-compiler for GNU/Hurd.
crossGNU = cross != null && cross.config == "i586-pc-gnu";
enableParallelBuilding = true;
patches = [ ]
++ optional (cross != null) ./libstdc++-target.patch
++ optional noSysDirs ./no-sys-dirs.patch
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
# target libraries and tools.
++ optional langAda ./gnat-cflags.patch
++ optional langFortran ./gfortran-driving.patch;
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
# XXX: Eventually we might want to take it from upstream.
url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
};
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = http://www.antlr.org/download/antlr-4.4-complete.jar;
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto
];
javaAwtGtk = langJava && x11Support;
/* Platform flags */
platformFlags = let
gccArch = stdenv.platform.gcc.arch or null;
gccCpu = stdenv.platform.gcc.cpu or null;
gccAbi = stdenv.platform.gcc.abi or null;
gccFpu = stdenv.platform.gcc.fpu or null;
gccFloat = stdenv.platform.gcc.float or null;
gccMode = stdenv.platform.gcc.mode or null;
withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
in
withArch +
withCpu +
withAbi +
withFpu +
withFloat +
withMode;
/* Cross-gcc settings */
crossMingw = cross != null && cross.libc == "msvcrt";
crossDarwin = cross != null && cross.libc == "libSystem";
crossConfigureFlags = let
gccArch = stdenv.cross.gcc.arch or null;
gccCpu = stdenv.cross.gcc.cpu or null;
gccAbi = stdenv.cross.gcc.abi or null;
gccFpu = stdenv.cross.gcc.fpu or null;
gccFloat = stdenv.cross.gcc.float or null;
gccMode = stdenv.cross.gcc.mode or null;
withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else "";
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
in
"--target=${cross.config}" +
withArch +
withCpu +
withAbi +
withFpu +
withFloat +
withMode +
(if crossMingw && crossStageStatic then
" --with-headers=${libcCross}/include" +
" --with-gcc" +
" --with-gnu-as" +
" --with-gnu-ld" +
" --with-gnu-ld" +
" --disable-shared" +
" --disable-nls" +
" --disable-debug" +
" --enable-sjlj-exceptions" +
" --enable-threads=win32" +
" --disable-win32-registry"
else if crossStageStatic then
" --disable-libssp --disable-nls" +
" --without-headers" +
" --disable-threads " +
" --disable-libmudflap " +
" --disable-libgomp " +
" --disable-libquadmath" +
" --disable-shared" +
" --disable-libatomic " + # libatomic requires libc
" --disable-decimal-float" # libdecnumber requires libc
else
(if crossDarwin then " --with-sysroot=${libcCross}/share/sysroot"
else " --with-headers=${libcCross}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
(if crossMingw then
" --enable-threads=win32" +
" --enable-sjlj-exceptions" +
" --enable-hash-synchronization" +
" --disable-libssp" +
" --disable-nls" +
" --with-dwarf2" +
# I think noone uses shared gcc libs in mingw, so we better do the same.
# In any case, mingw32 g++ linking is broken by default with shared libs,
# unless adding "-lsupc++" to any linking command. I don't know why.
" --disable-shared" +
# To keep ABI compatibility with upstream mingw-w64
" --enable-fully-dynamic-string"
else (if cross.libc == "uclibc" then
# In uclibc cases, libgomp needs an additional '-ldl'
# and as I don't know how to pass it, I disable libgomp.
" --disable-libgomp" else "") +
" --enable-threads=posix" +
" --enable-nls" +
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
);
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
in
# We need all these X libraries when building AWT with GTK+.
assert x11Support -> (filter (x: x == null) ([ gtk libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
builder = ./builder.sh;
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp";
};
inherit patches;
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
&& libcCross ? crossConfig
&& libcCross.crossConfig == "i586-pc-gnu")
|| (crossGNU && libcCross != null))
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g'
''
else if cross != null || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
libc = if libcCross != null then libcCross else stdenv.cc.libc;
in
'' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
do
grep -q LIBC_DYNAMIC_LINKER "$header" || continue
echo " fixing \`$header'..."
sed -i "$header" \
-e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g'
done
''
else null;
inherit noSysDirs staticCompiler langJava crossStageStatic
libcCross crossMingw;
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
++ (optional javaAwtGtk pkgconfig);
buildInputs = [ gmp mpfr libmpc libelf ]
++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional stdenv.isDarwin gnused)
;
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl";
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
if SDKROOT=$(/usr/bin/xcrun --show-sdk-path); then
configureFlagsArray+=(--with-native-system-header-dir=$SDKROOT/usr/include)
makeFlagsArray+=( \
CFLAGS_FOR_BUILD=-F$SDKROOT/System/Library/Frameworks \
CFLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \
FLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \
)
fi
'';
dontDisableStatic = true;
configureFlags = "
${if stdenv.isSunOS then
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
# On Illumos/Solaris GNU as is preferred
" --with-gnu-as --without-gnu-ld "
else ""}
--enable-lto
${if enableMultilib then "--disable-libquadmath" else "--disable-multilib"}
${if enableShared then "" else "--disable-shared"}
${if enablePlugin then "--enable-plugin" else "--disable-plugin"}
${optionalString (isl != null) "--with-isl=${isl}"}
${if langJava then
"--with-ecj-jar=${javaEcj} " +
# Follow Sun's layout for the convenience of IcedTea/OpenJDK. See
# <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>.
"--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre "
else ""}
${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""}
--with-gmp=${gmp}
--with-mpfr=${mpfr}
--with-mpc=${libmpc}
${if libelf != null then "--with-libelf=${libelf}" else ""}
--disable-libstdcxx-pch
--without-included-gettext
--with-system-zlib
--enable-static
--enable-languages=${
concatStrings (intersperse ","
( optional langC "c"
++ optional langCC "c++"
++ optional langFortran "fortran"
++ optional langJava "java"
++ optional langAda "ada"
++ optional langVhdl "vhdl"
++ optional langGo "go"
++ optional langObjC "objc"
++ optional langObjCpp "obj-c++"
++ optionals crossDarwin [ "objc" "obj-c++" ]
)
)
}
${if (stdenv ? glibc && cross == null)
then " --with-native-system-header-dir=${stdenv.glibc}/include"
else ""}
${if langAda then " --enable-libada" else ""}
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
${if cross != null then crossConfigureFlags else ""}
${if !bootstrap then "--disable-bootstrap" else ""}
${if cross == null then platformFlags else ""}
";
targetConfig = if cross != null then cross.config else null;
buildFlags = if bootstrap then
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
else "";
installTargets =
if stripped
then "install-strip"
else "install";
crossAttrs = let
xgccArch = stdenv.cross.gcc.arch or null;
xgccCpu = stdenv.cross.gcc.cpu or null;
xgccAbi = stdenv.cross.gcc.abi or null;
xgccFpu = stdenv.cross.gcc.fpu or null;
xgccFloat = stdenv.cross.gcc.float or null;
xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else "";
xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else "";
xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else "";
xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else "";
xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else "";
in {
AR = "${stdenv.cross.config}-ar";
LD = "${stdenv.cross.config}-ld";
CC = "${stdenv.cross.config}-gcc";
CXX = "${stdenv.cross.config}-gcc";
AR_FOR_TARGET = "${stdenv.cross.config}-ar";
LD_FOR_TARGET = "${stdenv.cross.config}-ld";
CC_FOR_TARGET = "${stdenv.cross.config}-gcc";
NM_FOR_TARGET = "${stdenv.cross.config}-nm";
CXX_FOR_TARGET = "${stdenv.cross.config}-g++";
# If we are making a cross compiler, cross != null
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
dontStrip = true;
configureFlags = ''
${if enableMultilib then "" else "--disable-multilib"}
${if enableShared then "" else "--disable-shared"}
${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""}
--with-gmp=${gmp.crossDrv}
--with-mpfr=${mpfr.crossDrv}
--disable-libstdcxx-pch
--without-included-gettext
--with-system-zlib
--enable-languages=${
concatStrings (intersperse ","
( optional langC "c"
++ optional langCC "c++"
++ optional langFortran "fortran"
++ optional langJava "java"
++ optional langAda "ada"
++ optional langVhdl "vhdl"
++ optional langGo "go"
)
)
}
${if langAda then " --enable-libada" else ""}
--target=${stdenv.cross.config}
${xwithArch}
${xwithCpu}
${xwithAbi}
${xwithFpu}
${xwithFloat}
'';
buildFlags = "";
};
# Needed for the cross compilation to work
AR = "ar";
LD = "ld";
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find
# the library headers and binaries, regarless of the language being
# compiled.
# Note: When building the Java AWT GTK+ peer, the build system doesn't
# honor `--with-gmp' et al., e.g., when building
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
# add them to $CPATH and $LIBRARY_PATH in this case.
#
# Likewise, the LTO code doesn't find zlib.
CPATH = concatStrings
(intersperse ":" (map (x: x + "/include")
(optionals (zlib != null) [ zlib ]
++ optionals langJava [ boehmgc ]
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
libcCross.propagatedBuildInputs)));
LIBRARY_PATH = concatStrings
(intersperse ":" (map (x: x + "/lib")
(optionals (zlib != null) [ zlib ]
++ optionals langJava [ boehmgc ]
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread)));
EXTRA_TARGET_CFLAGS =
if cross != null && libcCross != null
then "-idirafter ${libcCross}/include"
else null;
EXTRA_TARGET_LDFLAGS =
if cross != null && libcCross != null
then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" +
(optionalString (libpthreadCross != null)
" -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}")
else null;
passthru =
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
inherit enableParallelBuilding enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = http://gcc.gnu.org/;
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
as libraries for these languages (libstdc++, libgcj, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
'';
maintainers = with stdenv.lib.maintainers; [ viric shlevy simons ];
# gnatboot is not available out of linux platforms, so we disable the darwin build
# for the gnat (ada compiler).
platforms =
stdenv.lib.platforms.linux ++
stdenv.lib.platforms.freebsd ++
optionals (langAda == false) stdenv.lib.platforms.darwin;
};
}
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
makeFlags = [ "all-gcc" "all-target-libgcc" ];
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence cross != null)
// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View file

@ -0,0 +1,20 @@
This patch fixes interaction with Libtool.
See <http://thread.gmane.org/gmane.comp.gcc.patches/258777>, for details.
--- a/gcc/fortran/gfortranspec.c
+++ b/gcc/fortran/gfortranspec.c
@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n"));
{
fprintf (stderr, _("Driving:"));
for (i = 0; i < g77_newargc; i++)
+ {
+ if (g77_new_decoded_options[i].opt_index == OPT_l)
+ /* Make sure no white space is inserted after `-l'. */
+ fprintf (stderr, " -l%s",
+ g77_new_decoded_options[i].canonical_option[1]);
+ else
fprintf (stderr, " %s",
g77_new_decoded_options[i].orig_option_with_args_text);
+ }
fprintf (stderr, "\n");
}

View file

@ -0,0 +1,33 @@
diff --git a/libada/Makefile.in b/libada/Makefile.in
index f5057a0..337e0c6 100644
--- a/libada/Makefile.in
+++ b/libada/Makefile.in
@@ -55,7 +55,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN)
WARN_CFLAGS = @warn_cflags@
TARGET_LIBGCC2_CFLAGS=
-GNATLIBCFLAGS= -g -O2
+GNATLIBCFLAGS= -g -O2 $(CFLAGS)
GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
-DIN_RTS @have_getipinfo@
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -105,7 +105,7 @@ ADAFLAGS = -W -Wall -gnatpg -gnata
SOME_ADAFLAGS =-gnata
FORCE_DEBUG_ADAFLAGS = -g
GNATLIBFLAGS = -gnatpg -nostdinc
-GNATLIBCFLAGS = -g -O2
+GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET)
# Pretend that _Unwind_GetIPInfo is available for the target by default. This
# should be autodetected during the configuration of libada and passed down to
# here, but we need something for --disable-libada and hope for the best.
@@ -193,7 +193,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
# Link flags used to build gnat tools. By default we prefer to statically
# link with libgcc to avoid a dependency on shared libgcc (which is tricky
# to deal with as it may conflict with the libgcc provided by the system).
-GCC_LINK_FLAGS=-static-libgcc
+GCC_LINK_FLAGS=-static-libgcc $(CFLAGS_FOR_TARGET)
# End of variables for you to override.

View file

@ -0,0 +1,17 @@
The `jvgenmain' executable must be linked against `vec.o', among others,
since it uses its vector API.
--- gcc-4.3.3/gcc/java/Make-lang.in 2008-12-05 00:00:19.000000000 +0100
+++ gcc-4.3.3/gcc/java/Make-lang.in 2009-07-03 16:11:41.000000000 +0200
@@ -109,9 +109,9 @@ jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIB
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
$(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS)
-jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
+jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) $(BUILD_RTL)
rm -f $@
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(BUILD_RTL) $(LIBS)
#
# Build hooks:

View file

@ -0,0 +1,32 @@
Patch to make the target libraries 'configure' scripts find the proper CPP.
I noticed that building the mingw32 cross compiler.
Looking at the build script for mingw in archlinux, I think that only nixos
needs this patch. I don't know why.
diff --git a/Makefile.in b/Makefile.in
index 93f66b6..d691917 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
+ CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \
CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
- CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
+ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
+ CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
NORMAL_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
- CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
+ CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
+ CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
# Where to find GMP
HOST_GMPLIBS = @gmplibs@

View file

@ -0,0 +1,28 @@
diff -ru -x '*~' gcc-4.8.3-orig/gcc/cppdefault.c gcc-4.8.3/gcc/cppdefault.c
--- gcc-4.8.3-orig/gcc/cppdefault.c 2013-01-10 21:38:27.000000000 +0100
+++ gcc-4.8.3/gcc/cppdefault.c 2014-08-18 16:20:32.893944536 +0200
@@ -35,6 +35,8 @@
# undef CROSS_INCLUDE_DIR
#endif
+#undef LOCAL_INCLUDE_DIR
+
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
diff -ru -x '*~' gcc-4.8.3-orig/gcc/gcc.c gcc-4.8.3/gcc/gcc.c
--- gcc-4.8.3-orig/gcc/gcc.c 2014-03-23 12:30:57.000000000 +0100
+++ gcc-4.8.3/gcc/gcc.c 2014-08-18 13:19:32.689201690 +0200
@@ -1162,10 +1162,10 @@
/* Default prefixes to attach to command names. */
#ifndef STANDARD_STARTFILE_PREFIX_1
-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
+#define STANDARD_STARTFILE_PREFIX_1 ""
#endif
#ifndef STANDARD_STARTFILE_PREFIX_2
-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
+#define STANDARD_STARTFILE_PREFIX_2 ""
#endif
#ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */

View file

@ -122,7 +122,7 @@ in mkDerivation (rec {
};
homepage = "https://github.com/ghcjs/ghcjs";
description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API";
description = "A Haskell to JavaScript compiler that uses the GHC API";
license = stdenv.lib.licenses.bsd3;
platforms = ghc.meta.platforms;
maintainers = with stdenv.lib.maintainers; [ jwiegley cstrahan ];

View file

@ -18,6 +18,6 @@ stdenv.mkDerivation {
meta = {
homepage = http://code.google.com/webtoolkit/;
description = "Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications";
description = "A development toolkit for building and optimizing complex browser-based applications";
};
}

View file

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "Scala is a general purpose programming language";
description = "A general purpose programming language";
longDescription = ''
Scala is a general purpose programming language designed to express
common programming patterns in a concise, elegant, and type-safe way.

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "Scala is a general purpose programming language";
description = "A general purpose programming language";
longDescription = ''
Scala is a general purpose programming language designed to express
common programming patterns in a concise, elegant, and type-safe way.

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "http://www.dcc.fc.up.pt/~vsc/Yap/";
description = "Yap Prolog System is a ISO-compatible high-performance Prolog compiler";
description = "A ISO-compatible high-performance Prolog compiler";
license = stdenv.lib.licenses.artistic2;
maintainers = [ stdenv.lib.maintainers.simons ];

View file

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://plv.csail.mit.edu/bedrock/;
description = "Bedrock is a library that turns Coq into a tool much like classical verification systems";
description = "A library that turns Coq into a tool much like classical verification systems";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};

View file

@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://plv.csail.mit.edu/fiat/;
description = "Fiat is a library for the Coq proof assistant for synthesizing efficient correct-by-construction programs from declarative specifications";
description = "A library for the Coq proof assistant for synthesizing efficient correct-by-construction programs from declarative specifications";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://flocq.gforge.inria.fr/;
description = "Flocq (Floats for Coq) is a floating-point formalization for the Coq system";
description = "A floating-point formalization for the Coq system";
license = licenses.lgpl3;
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://plv.mpi-sws.org/paco/;
description = "Paco is a Coq library implementing parameterized coinduction";
description = "A Coq library implementing parameterized coinduction";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};

View file

@ -21,7 +21,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
homepage = http://www.chargueraud.org/softs/tlc/;
description = "TLC is a general purpose Coq library that provides an alternative to Coq's standard library";
description = "A general purpose Coq library that provides an alternative to Coq's standard library";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};

View file

@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://ynot.cs.harvard.edu/;
description = "Ynot is a library for writing and verifying imperative programs";
description = "A library for writing and verifying imperative programs";
maintainers = with maintainers; [ jwiegley ];
platforms = coq.meta.platforms;
};

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "apr-1.5.1";
name = "apr-1.5.2";
src = fetchurl {
url = "mirror://apache/apr/${name}.tar.bz2";
sha256 = "1b4qw686bwjn19iyb0lg918q23xxd6s2gnyczhjq992d3m1vwjp9";
sha256 = "0ypn51xblix5ys9xy7da3ngdydip0qqh9rdq8nz54w9aq8lys0vx";
};
patches = stdenv.lib.optionals stdenv.isDarwin [ ./is-this-a-compiler-bug.patch ];

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation {
buildInputs = [ unzip cmake boost ];
meta = with stdenv.lib; {
description = "Open Asset Import Library is a library to import various 3D model formats";
description = "A library to import various 3D model formats";
homepage = http://assimp.sourceforge.net/;
license = licenses.bsd3;
maintainers = with maintainers; [ emery ];

View file

@ -8,13 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "1nyka87yf2jfd0y6sspll0yxwb8zi7kyvajrdbjmh4axc5s1cw1x";
};
meta = {
meta = with stdenv.lib; {
description = "A C library for asynchronous DNS requests";
homepage = http://c-ares.haxx.se;
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.shlevy ];
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ shlevy ];
};
}

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
postInstall = "ln -s . $out/include/fastcgi";
meta = with stdenv.lib; {
description = "FastCGI is a language independent, scalable, open extension to CG";
description = "A language independent, scalable, open extension to CG";
homepage = http://www.fastcgi.com/;
license = "FastCGI see LICENSE.TERMS";
platforms = platforms.all;

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = {
branch = "1.6";
description = "FOX is a C++ based class library for building Graphical User Interfaces";
description = "A C++ based class library for building Graphical User Interfaces";
longDescription = ''
FOX stands for Free Objects for X.
It is a C++ based class library for building Graphical User Interfaces.

View file

@ -9,7 +9,7 @@ stdenv.mkDerivation {
buildInputs = [ xmlto docbook_xml_dtd_412 docbook_xsl libxml2 ];
meta = {
description = "giflib is a library for reading and writing gif images";
description = "A library for reading and writing gif images";
platforms = stdenv.lib.platforms.unix;
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];

View file

@ -9,7 +9,7 @@ stdenv.mkDerivation {
buildInputs = [ xmlto docbook_xml_dtd_412 docbook_xsl libxml2 ];
meta = {
description = "giflib is a library for reading and writing gif images";
description = "A library for reading and writing gif images";
platforms = stdenv.lib.platforms.unix;
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];

View file

@ -0,0 +1,22 @@
{ stdenv, fetchurl, gmp }:
stdenv.mkDerivation rec {
name = "isl-0.14.1";
src = fetchurl {
url = "http://isl.gforge.inria.fr/${name}.tar.xz";
sha256 = "0xa6xagah5rywkywn19rzvbvhfvkmylhcxr6z9z7bz29cpiwk0l8";
};
buildInputs = [ gmp ];
enableParallelBuilding = true;
meta = {
homepage = http://www.kotnet.org/~skimo/isl/;
license = stdenv.lib.licenses.lgpl21;
description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
maintainers = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.all;
};
}

View file

@ -8,9 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br";
};
meta = {
meta = with stdenv.lib; {
homepage = "http://www.digip.org/jansson/";
description = "C library for encoding, decoding and manipulating JSON data";
license = stdenv.lib.licenses.mit;
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ wkennington ];
};
}

View file

@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
];
meta = {
description = "LAME is a high quality MPEG Audio Layer III (MP3) encoder";
description = "A high quality MPEG Audio Layer III (MP3) encoder";
homepage = http://lame.sourceforge.net;
license = licenses.lgpl2;
maintainers = with maintainers; [ codyopel ];

View file

@ -21,6 +21,6 @@ stdenv.mkDerivation {
meta = {
homepage = "http://libtom.org/?page=features&newsitems=5&whatfile=crypt";
description = "LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit";
description = "A fairly comprehensive, modular and portable cryptographic toolkit";
};
}

View file

@ -0,0 +1,72 @@
{ stdenv, fetchurl, pkgconfig
# Optinal Dependencies
, openssl ? null, libev ? null, zlib ? null, jansson ? null, boost ? null
, libxml2 ? null, jemalloc ? null
# Extra argument
, prefix ? ""
}:
let
mkFlag = trueStr: falseStr: cond: name: val:
if cond == null then null else
"--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}";
mkEnable = mkFlag "enable-" "disable-";
mkWith = mkFlag "with-" "without-";
mkOther = mkFlag "" "" true;
shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null;
isLib = prefix == "lib";
optOpenssl = if isLib then null else shouldUsePkg openssl;
optLibev = if isLib then null else shouldUsePkg libev;
optZlib = if isLib then null else shouldUsePkg zlib;
hasApp = optOpenssl != null && optLibev != null && optZlib != null;
optJansson = if isLib then null else shouldUsePkg jansson;
#optBoost = if isLib then null else shouldUsePkg boost;
optBoost = null; # Currently detection is broken
optLibxml2 = if !hasApp then null else shouldUsePkg libxml2;
optJemalloc = if !hasApp then null else shouldUsePkg jemalloc;
in
stdenv.mkDerivation rec {
name = "${prefix}nghttp2-${version}";
version = "0.7.13";
# Don't use fetchFromGitHub since this needs a bootstrap curl
src = fetchurl {
url = "http://pub.wak.io/nixos/tarballs/nghttp2-0.7.13.tar.xz";
sha256 = "1nz14hmfhsxljmf7f3763q9kpn9prfdivrvdr7c74x72s75bzwli";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ optJansson optBoost optLibxml2 optJemalloc ]
++ stdenv.lib.optionals hasApp [ optOpenssl optLibev optZlib ];
configureFlags = [
(mkEnable false "werror" null)
(mkEnable false "debug" null)
(mkEnable true "threads" null)
(mkEnable hasApp "app" null)
(mkEnable (optJansson != null) "hpack-tools" null)
(mkEnable (optBoost != null) "asio-lib" null)
(mkEnable false "examples" null)
(mkEnable false "python-bindings" null)
(mkEnable false "failmalloc" null)
(mkWith (optLibxml2 != null) "libxml2" null)
(mkWith (optJemalloc != null) "jemalloc" null)
(mkWith false "spdylay" null)
(mkWith false "cython" null)
];
meta = with stdenv.lib; {
homepage = http://nghttp2.org/;
description = "an implementation of HTTP/2 in C";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ wkennington ];
};
}

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
meta = with stdenv.lib; {
description = "NPAPI-SDK is a bundle of NPAPI headers by Mozilla";
description = "A bundle of NPAPI headers by Mozilla";
homepage = https://code.google.com/p/npapi-sdk/;
license = licenses.bsd3;

View file

@ -92,7 +92,7 @@ let
'';
meta = {
description = "A toolkit for the simulation of the passage of particles through matter.";
description = "A toolkit for the simulation of the passage of particles through matter";
longDescription = ''
Geant4 is a toolkit for the simulation of the passage of particles through matter.
Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.
@ -129,7 +129,7 @@ let
'';
meta = {
description = "Data files for the Geant4 toolkit.";
description = "Data files for the Geant4 toolkit";
homepage = http://www.geant4.org;
license = stdenv.lib.licenses.g4sl;
maintainers = [ ];

View file

@ -45,7 +45,7 @@ let
'';
meta = {
description = "Python bindings and utilities for Geant4.";
description = "Python bindings and utilities for Geant4";
longDescription = ''
Geant4 is a toolkit for the simulation of the passage of particles through matter.
Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.

View file

@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = {
description = "This project is a QML port of qtermwidget";
description = "A QML port of qtermwidget";
homepage = "https://github.com/Swordifish90/qmltermwidget";
license = with stdenv.lib.licenses; [ gpl2 ];
platforms = stdenv.lib.platforms.linux;

View file

@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://www.cs.utah.edu/gdc/projects/urt/;
description = "The Utah Raster Toolkit is a library for dealing with raster images";
description = "A library for dealing with raster images";
};
}

View file

@ -98,7 +98,7 @@ let lispPackages = rec {
clx-truetype = buildLispPackage rec {
baseName = "clx-truetype";
version = "git-20141112";
description = "clx-truetype is pure common lisp solution for antialiased TrueType font rendering using CLX and XRender extension";
description = "A pure Common Lisp solution for antialiased TrueType font rendering using CLX and the XRender extension";
deps = [cl-fad cl-store cl-vectors clx trivial-features zpb-ttf];
# Source type: git
src = pkgs.fetchgit {

View file

@ -29,7 +29,7 @@ stdenv.mkDerivation {
meta = {
homepage = http://gmetadom.sourceforge.net/;
description = "GMetaDOM is a collection of librares, each library providing a DOM implementation";
description = "A collection of librares, each library providing a DOM implementation";
license = stdenv.lib.licenses.lgpl21Plus;
maintainers = [ stdenv.lib.maintainers.roconnor ];
};

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://ocaml-text.forge.ocamlcore.org/";
description = "OCaml-Text is a library for dealing with ``text'', i.e. sequence of unicode characters, in a convenient way. ";
description = "A library for convenient text manipulation";
license = stdenv.lib.licenses.bsd3;
platforms = ocaml.meta.platforms;
};

View file

@ -27,7 +27,7 @@ stdenv.mkDerivation {
meta = {
homepage = http://www.cduce.org/download.html;
description = "ulex is a lexer generator for Unicode and OCaml";
description = "A lexer generator for Unicode and OCaml";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.roconnor ];
};

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation {
meta = {
homepage = http://www.cduce.org/download.html;
description = "ulex is a lexer generator for Unicode and OCaml";
description = "A lexer generator for Unicode and OCaml";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.roconnor ];

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = http://sourceforge.net/projects/checkbaskisms/;
description = "Performs basic checks on shell scripts for the presence of non portable syntax";
description = "Check shell scripts for non-portable syntax";
license = stdenv.lib.licenses.gpl2;
};

View file

@ -37,7 +37,7 @@ stdenv.mkDerivation {
'';
meta = {
description = "CamlIDL is a stub code generator and COM binding for Objective Caml";
description = "A stub code generator and COM binding for Objective Caml";
homepage = "${webpage}";
license = "LGPL";
maintainers = [ stdenv.lib.maintainers.roconnor ];

View file

@ -15,13 +15,15 @@ stdenv.mkDerivation rec {
installPhase = "scons prefix=$out install";
meta = with stdenv.lib; {
description = "Hammer is a parsing library";
longDescription = "Hammer is a parsing library. Like many modern parsing libraries,
it provides a parser combinator interface for writing grammars
as inline domain-specific languages, but Hammer also provides a
variety of parsing backends. It's also bit-oriented rather than
character-oriented, making it ideal for parsing binary data such
as images, network packets, audio, and executables.";
description = "A bit-oriented parser combinator library";
longDescription = ''
Hammer is a parsing library. Like many modern parsing libraries,
it provides a parser combinator interface for writing grammars
as inline domain-specific languages, but Hammer also provides a
variety of parsing backends. It's also bit-oriented rather than
character-oriented, making it ideal for parsing binary data such
as images, network packets, audio, and executables.
'';
homepage = https://github.com/UpstandingHackers/hammer;
license = licenses.gpl2;
platforms = platforms.linux;

View file

@ -0,0 +1,19 @@
{ stdenv, fetchFromGitHub, pythonPackages }:
pythonPackages.buildPythonPackage {
name = "gprof2dot-2015-04-27";
src = fetchFromGitHub {
owner = "jrfonseca";
repo = "gprof2dot";
rev = "6fbb81559609c12e7c64ae5dce7d102a414a7514";
sha256 = "1fff7w6dm6lld11hp2ij97f85ma1154h62dvchq19c5jja3zjw3c";
};
meta = with stdenv.lib; {
homepage = "https://github.com/jrfonseca/gprof2dot";
description = "Python script to convert the output from many profilers into a dot graph";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -1,68 +1,70 @@
{stdenv, fetchurl, SDL, SDL_mixer, libvorbis, mesa, gtk, pkgconfig, nasm, libvpx, flac, makeDesktopItem}:
{ stdenv, fetchurl, flac, gtk, libvorbis, libvpx, makeDesktopItem, mesa, nasm
, pkgconfig, SDL2, SDL2_mixer }:
stdenv.mkDerivation rec {
name = "eduke32-20130303-3542";
let
date = "20150420";
rev = "5160";
version = "${date}-${rev}";
in stdenv.mkDerivation rec {
name = "eduke32-${version}";
src = fetchurl {
url = http://dukeworld.duke4.net/eduke32/synthesis/20130303-3542/eduke32_src_20130303-3542.tar.bz2;
sha256 = "0v1q2bkmpnac5l9x97nnlhrrb95518vmhxx48zv3ncvmpafl1mqc";
url = "http://dukeworld.duke4.net/eduke32/synthesis/${version}/eduke32_src_${version}.tar.xz";
sha256 = "1nlq5jbglg00c1z1vsyl627fh0mqfxvk5qyxav5vzla2b4svik2v";
};
buildInputs = [ SDL SDL_mixer libvorbis mesa gtk pkgconfig libvpx flac ]
buildInputs = [ flac gtk libvorbis libvpx mesa pkgconfig SDL2 SDL2_mixer ]
++ stdenv.lib.optional (stdenv.system == "i686-linux") nasm;
NIX_CFLAGS_COMPILE = "-I${SDL}/include/SDL";
NIX_LDFLAGS = "-L${SDL}/lib -lgcc_s";
postPatch = ''
substituteInPlace build/src/glbuild.c \
--replace libGL.so ${mesa}/lib/libGL.so \
--replace libGLU.so ${mesa}/lib/libGLU.so
'';
NIX_CFLAGS_COMPILE = "-I${SDL2}/include/SDL";
NIX_LDFLAGS = "-L${SDL2}/lib";
makeFlags = "LINKED_GTK=1 SDLCONFIG=${SDL2}/bin/sdl2-config VC_REV=${rev}";
desktopItem = makeDesktopItem {
name = "eduke32";
exec = "eduke32-wrapper";
comment = "Duke Nukem 3D port";
desktopName = "EDuke32";
desktopName = "Enhanced Duke Nukem 3D";
genericName = "Duke Nukem 3D port";
categories = "Application;Game;";
};
preConfigure = ''
sed -i -e "s|/usr/bin/sdl-config|${SDL}/bin/sdl-config|" build/Makefile.shared
'';
buildPhase = ''
make OPTLEVEL=0 USE_LIBPNG=0
'';
installPhase = ''
# Install binaries
mkdir -p $out/bin
cp eduke32 mapster32 $out/bin
# Make wrapper script
cat > $out/bin/eduke32-wrapper <<EOF
cat > eduke32-wrapper <<EOF
#!/bin/sh
if [ "$EDUKE32_DATA_DIR" = "" ]
then
if [ "$EDUKE32_DATA_DIR" = "" ]; then
EDUKE32_DATA_DIR=/var/lib/games/eduke32
fi
if [ "$EDUKE32_GRP_FILE" = "" ]
then
if [ "$EDUKE32_GRP_FILE" = "" ]; then
EDUKE32_GRP_FILE=\$EDUKE32_DATA_DIR/DUKE3D.GRP
fi
cd \$EDUKE32_DATA_DIR
eduke32 -g \$EDUKE32_GRP_FILE
exec $out/bin/eduke32 -g \$EDUKE32_GRP_FILE
EOF
chmod 755 $out/bin/eduke32-wrapper
# Install binaries
mkdir -p $out/bin
install -Dm755 eduke32{,-wrapper} mapster32 $out/bin
# Install desktop item
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
cp -rv ${desktopItem}/share $out
'';
meta = {
meta = with stdenv.lib; {
inherit version;
description = "Enhanched port of Duke Nukem 3D for various platforms";
license = stdenv.lib.licenses.gpl2Plus;
license = with licenses; gpl2Plus;
homepage = http://eduke32.com;
maintainers = [ stdenv.lib.maintainers.sander ];
maintainers = with maintainers; [ nckx sander ];
};
}

View file

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "SuperTuxKart is a Free 3D kart racing game";
description = "A Free 3D kart racing game";
longDescription = ''
SuperTuxKart is a Free 3D kart racing game, with many tracks,
characters and items for you to try, similar in spirit to Mario

View file

@ -16,8 +16,8 @@ in stdenv.mkDerivation ({
configurePhase = ''
cmake ../${name} -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON
'';
meta = {
description = "A Software suite designed to emulate an optical drive and disc (including CD-ROMs and DVD-ROMs) on the Linux operating system";
meta = with stdenv.lib; {
description = "A suite of tools for emulating optical drives and discs";
longDescription = ''
CDEmu consists of:
@ -29,9 +29,9 @@ in stdenv.mkDerivation ({
Optical media emulated by CDemu can be mounted within Linux. Automounting is also allowed.
'';
homepage = "http://cdemu.sourceforge.net/";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
homepage = http://cdemu.sourceforge.net/;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ "Rok Mandeljc <mrok AT users DOT sourceforge DOT net>" ];
};
} // drvParams)

View file

@ -439,6 +439,21 @@ rec {
};
};
vim-buffergator = buildVimPlugin {
name = "vim-buffergator-2015-03-31";
src = fetchFromGitHub {
owner = "jeetsukumaran";
repo = "vim-buffergator";
rev = "77cfdd127f";
sha256 = "11r9845kplwahf2d41whs2lg3bzy0dahs0mvmdbckp7ckq3gd3y4";
};
meta = with stdenv.lib; {
description = "Vim plugin to list, select and switch between buffers";
license = licenses.gpl3;
maintainers = with maintainers; [ hbunke ];
};
};
vim-jinja = buildVimPlugin {
name = "vim-jinja-git-2014-06-11";
src = fetchFromGitHub {
@ -453,6 +468,21 @@ rec {
};
};
vim-nerdtree-tabs = buildVimPlugin {
name = "vim-nerdtree-tabs-2014-09-25";
src = fetchFromGitHub {
owner = "jistr";
repo = "vim-nerdtree-tabs";
rev = "0decec122e";
sha256 = "0m51vpxq0d3mxy9i18hczsbqsqi7vlzwgjnpryb8gb5wmy999d6l";
};
meta = with stdenv.lib; {
description = "NERDTree and tabs together in Vim, painlessly";
license = licenses.asl20;
maintainers = with maintainers; [ hbunke ];
};
};
vimproc = buildVimPlugin {
name = "vimproc-git-2015-02-23";
src = fetchgit {

View file

@ -1,19 +1,25 @@
{stdenv, fetchurl, python3}:
{ stdenv, fetchurl, python3, which }:
let version = "0.10"; in
stdenv.mkDerivation rec {
version = "0.9";
name = "fatrace-${version}";
src = fetchurl {
url = "https://launchpad.net/fatrace/trunk/${version}/+download/${name}.tar.bz2";
sha256 = "c028d822ffde68805e5d1f62c4e2d0f4b3d4ae565802cc9468c82b25b92e68cd";
url = "http://launchpad.net/fatrace/trunk/${version}/+download/${name}.tar.bz2";
sha256 = "0q0cv2bsgf76wypz18v2acgj1crcdqhrhlsij3r53glsyv86xyra";
};
buildInputs = [ python3 ];
buildInputs = [ python3 which ];
postPatch = ''
substituteInPlace power-usage-report \
--replace "'which'" "'${which}/bin/which'"
'';
makeFlagsArray = "PREFIX=$(out)";
meta = with stdenv.lib; {
inherit version;
description = "Report system-wide file access events";
homepage = https://launchpad.net/fatrace/;
license = with licenses; gpl3Plus;

View file

@ -36,7 +36,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
homepage = http://fusionio.com;
description = "Fusionio command line utilities.";
description = "Fusionio command line utilities";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
broken = stdenv.system != "x86_64-linux";

View file

@ -14,7 +14,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
homepage = https://github.com/cshorler/hal-flash;
description = "libhal stub library to satisfy the Flash Player DRM requirements.";
description = "libhal stub library to satisfy the Flash Player DRM requirements";
longDescription =
''
Stub library based loosely upon libhal.[ch] from the hal-0.5.14

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv, flex, bison, db, iptables, pkgconfig }:
stdenv.mkDerivation rec {
name = "iproute2-3.19.0";
name = "iproute2-4.0.0";
src = fetchurl {
url = "mirror://kernel/linux/utils/net/iproute2/${name}.tar.xz";
sha256 = "1c6pgysxfqs5qkd4kpwkbdhw3xydhjnskrz1q2k2nvqndv1ziyg2";
sha256 = "0616cg6liyysfddf6d8i4vyndd9b0hjmfw35icq8p18b0nqnxl2w";
};
patch = [ ./vpnc.patch ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
version = "3.10.75";
version = "3.10.76";
extraMeta.branch = "3.10";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
sha256 = "00wqcmya2ky9f1djlq99mcq8fyvpabnjnp5cn61japlgk8p7r60q";
sha256 = "0v4blm026fg4hk5ddh25b1fjhnk2yak2hpj4cz4wiq7yr84dr8p5";
};
features.iwlwifi = true;

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
version = "3.14.39";
version = "3.14.40";
# Remember to update grsecurity!
extraMeta.branch = "3.14";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
sha256 = "0zgfiqlvmprbn55k9ijf6db027mxlcww76y47g4g7vcj5qrpq6rd";
sha256 = "1w5j53ny5vahp1ipj16x0ahjb5yj6q859jsdshblymvwrbkcr29a";
};
features.iwlwifi = true;

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
version = "3.19.5";
version = "3.19.6";
# Remember to update grsecurity!
extraMeta.branch = "3.19";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
sha256 = "0s2yiyk1ks0z2fj8a8g56hkp6mfyvh9c34m1jpixhg9zck9xjdix";
sha256 = "1kqn796vwkmhj2qkv56nj7anpmxx1hxv47cf44fcmx9n1afry8j4";
};
features.iwlwifi = true;

View file

@ -1,13 +1,12 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // rec {
version = "4.0";
modDirVersion = "4.0.0";
version = "4.0.1";
extraMeta.branch = "4.0";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "14argl6ywkggdvgiycfx4jl2d7290f631ly59wfggj4vjx27sbqg";
sha256 = "1ggj26p1bm5v5kaviz6brfkjk32f8rib1mh61ns77gjlx5vsvc7z";
};
features.iwlwifi = true;

View file

@ -65,17 +65,17 @@ rec {
};
grsecurity_stable = grsecPatch
{ kversion = "3.14.39";
revision = "201504190814";
{ kversion = "3.14.40";
revision = "201504290821";
branch = "stable";
sha256 = "0pjq0ggifh6hp5y62dl0ydskpmsmzj1cxxjaaqs6fpwn5ndsdji7";
sha256 = "0382ydr1dshjmwggx5a6ywrdr7qv52w178ify60qw59lrphbdkls";
};
grsecurity_unstable = grsecPatch
{ kversion = "3.19.5";
revision = "201504190814";
{ kversion = "3.19.6";
revision = "201504290821";
branch = "test";
sha256 = "0wj9bximhs41b11hh113mishmc1ya8bncc0v91cbrivx5y5hjpz0";
sha256 = "0nya84cpj2cgncchywfysvmzx5m3wl034f6p7zfxj9l6jhjdcd6q";
};
grsec_fix_path =

View file

@ -0,0 +1,30 @@
{ stdenv, lib, fetchFromGitHub, gnugrep, kmod }:
stdenv.mkDerivation rec {
name = "mbpfan-${version}";
version = "1.9.0";
src = fetchFromGitHub {
owner = "dgraziotin";
repo = "mbpfan";
rev = "v${version}";
sha256 = "15nm1d0a0c0lzxqngrpn2qpsydsmglnn6d20djl7brpsq26j24h9";
};
patches = [ ./fixes.patch ];
postPatch = ''
substituteInPlace src/main.c \
--replace '@GREP@' '${gnugrep}/bin/grep' \
--replace '@LSMOD@' '${kmod}/bin/lsmod'
'';
installPhase = ''
mkdir -p $out/bin $out/etc
cp bin/mbpfan $out/bin
cp mbpfan.conf $out/etc
'';
meta = with lib; {
description = "Daemon that uses input from coretemp module and sets the fan speed using the applesmc module";
homepage = "https://github.com/dgraziotin/mbpfan";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ cstrahan ];
};
}

View file

@ -0,0 +1,29 @@
diff --git a/src/main.c b/src/main.c
index e8af708..6cfee17 100644
--- a/src/main.c
+++ b/src/main.c
@@ -71,7 +71,7 @@ void check_requirements()
* Check for coretemp and applesmc modules
* Credits: -http://stackoverflow.com/questions/12978794
*/
- FILE *fd = popen("lsmod | grep coretemp", "r");
+ FILE *fd = popen("@LSMOD@ | @GREP@ coretemp", "r");
char buf[16];
if (!(fread (buf, 1, sizeof (buf), fd) > 0)) {
@@ -87,7 +87,7 @@ void check_requirements()
pclose(fd);
- fd = popen("lsmod | grep applesmc", "r");
+ fd = popen("@LSMOD@ | @GREP@ applesmc", "r");
if (!(fread (buf, 1, sizeof (buf), fd) > 0)) {
DIR* dir = opendir(APPLESMC_PATH);
@@ -145,4 +145,4 @@ int main(int argc, char *argv[])
void (*fan_control)() = mbpfan;
go_daemon(fan_control);
exit(EXIT_SUCCESS);
-}
\ No newline at end of file
+}

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