Merge branch 'master' into fix/ansible-ec2
This commit is contained in:
commit
4d8d25e4b3
@ -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>";
|
||||
@ -152,6 +153,7 @@
|
||||
pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
|
||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||
phausmann = "Philipp Hausmann <nix@314.ch>";
|
||||
philandstuff = "Philip Potter <philip.g.potter@gmail.com>";
|
||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||
|
@ -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
|
||||
|
@ -45,9 +45,6 @@ with lib;
|
||||
# Get a console as soon as the initrd loads fbcon on EFI boot.
|
||||
boot.initrd.kernelModules = [ "fbcon" ];
|
||||
|
||||
# Configure host id for ZFS to work
|
||||
networking.hostId = "8425e349";
|
||||
|
||||
# Allow the user to log in as root without a password.
|
||||
users.extraUsers.root.initialHashedPassword = "";
|
||||
}
|
||||
|
@ -352,7 +352,7 @@ EOF
|
||||
if ($fsType eq "btrfs") {
|
||||
my ($status, @id_info) = runCommand("btrfs subvol show $rootDir$mountPoint");
|
||||
if ($status != 0 || join("", @msg) =~ /ERROR:/) {
|
||||
die "Failed to retreive subvolume info for $mountPoint\n";
|
||||
die "Failed to retrieve subvolume info for $mountPoint\n";
|
||||
}
|
||||
my @ids = join("", @id_info) =~ m/Object ID:[ \t\n]*([^ \t\n]*)/;
|
||||
if ($#ids > 0) {
|
||||
|
@ -45,7 +45,9 @@ while [ "$#" -gt 0 ]; do
|
||||
;;
|
||||
--chroot)
|
||||
runChroot=1
|
||||
chrootCommand=("$@")
|
||||
if [[ "$@" != "" ]]; then
|
||||
chrootCommand=("$@")
|
||||
fi
|
||||
break
|
||||
;;
|
||||
--help)
|
||||
@ -254,8 +256,14 @@ NIXOS_INSTALL_GRUB=1 chroot $mountPoint \
|
||||
chroot $mountPoint /nix/var/nix/profiles/system/activate
|
||||
|
||||
|
||||
# Some systems may not be prepared to use NixOS' paths.
|
||||
export PATH=/run/current-system/sw/bin:/run/current-system/sw/sbin:$PATH
|
||||
export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos:nixpkgs=/etc/nixos/nixpkgs
|
||||
export NIX_PATH=$NIX_PATH:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
|
||||
|
||||
|
||||
# Ask the user to set a root password.
|
||||
if [ "$(chroot $mountPoint nix-instantiate --eval '<nixos>' -A config.users.mutableUsers)" = true ] && [ -t 0 ] ; 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
|
||||
|
@ -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
|
||||
@ -185,6 +186,7 @@
|
||||
./services/misc/canto-daemon.nix
|
||||
./services/misc/cpuminer-cryptonight.nix
|
||||
./services/misc/cgminer.nix
|
||||
./services/misc/confd.nix
|
||||
./services/misc/dictd.nix
|
||||
./services/misc/disnix.nix
|
||||
./services/misc/docker-registry.nix
|
||||
@ -195,6 +197,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
|
||||
@ -272,6 +275,7 @@
|
||||
./services/networking/haproxy.nix
|
||||
./services/networking/hostapd.nix
|
||||
./services/networking/i2pd.nix
|
||||
./services/networking/i2p.nix
|
||||
./services/networking/ifplugd.nix
|
||||
./services/networking/iodined.nix
|
||||
./services/networking/ircd-hybrid/default.nix
|
||||
|
@ -54,4 +54,6 @@
|
||||
# Include support for various filesystems.
|
||||
boot.supportedFilesystems = [ "btrfs" "reiserfs" "vfat" "f2fs" "zfs" "ntfs" "cifs" ];
|
||||
|
||||
# Configure host id for ZFS to work
|
||||
networking.hostId = "8425e349";
|
||||
}
|
||||
|
@ -36,6 +36,16 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
u2fAuth = mkOption {
|
||||
default = config.security.pam.enableU2F;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
If set, users listed in
|
||||
<filename>~/.yubico/u2f_keys</filename> are able to log in
|
||||
with the associated U2F key.
|
||||
'';
|
||||
};
|
||||
|
||||
usbAuth = mkOption {
|
||||
default = config.security.pam.usb.enable;
|
||||
type = types.bool;
|
||||
@ -209,6 +219,8 @@ let
|
||||
"auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"}
|
||||
${optionalString cfg.fprintAuth
|
||||
"auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so"}
|
||||
${optionalString cfg.u2fAuth
|
||||
"auth sufficient ${pkgs.pam_u2f}/lib/security/pam_u2f.so"}
|
||||
${optionalString cfg.usbAuth
|
||||
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
||||
${optionalString cfg.unixAuth
|
||||
@ -364,6 +376,13 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
security.pam.enableU2F = mkOption {
|
||||
default = false;
|
||||
description = ''
|
||||
Enable the U2F PAM module.
|
||||
'';
|
||||
};
|
||||
|
||||
security.pam.enableEcryptfs = mkOption {
|
||||
default = false;
|
||||
description = ''
|
||||
@ -392,6 +411,7 @@ in
|
||||
++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
|
||||
++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
|
||||
++ optionals config.security.pam.enableOATH [ pkgs.oathToolkit ]
|
||||
++ optionals config.security.pam.enableU2F [ pkgs.pam_u2f ]
|
||||
++ optionals config.security.pam.enableEcryptfs [ pkgs.ecryptfs ];
|
||||
|
||||
security.setuidPrograms =
|
||||
|
@ -224,7 +224,7 @@ in {
|
||||
|
||||
machines = mkOption {
|
||||
description = "Kubernetes controller list of machines to schedule to schedule onto";
|
||||
default = [];
|
||||
default = [config.networking.hostName];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
@ -310,6 +310,12 @@ in {
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
master = mkOption {
|
||||
description = "Kubernetes apiserver address";
|
||||
default = "${cfg.apiserver.address}:${toString cfg.apiserver.port}";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
extraOpts = mkOption {
|
||||
description = "Kubernetes proxy extra command line options.";
|
||||
default = "";
|
||||
@ -355,6 +361,7 @@ in {
|
||||
--secure_port=${toString cfg.apiserver.securePort} \
|
||||
--portal_net=${cfg.apiserver.portalNet} \
|
||||
--logtostderr=true \
|
||||
--runtime_config=api/v1beta3 \
|
||||
${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \
|
||||
${cfg.apiserver.extraOpts}
|
||||
'';
|
||||
@ -416,7 +423,6 @@ in {
|
||||
script = ''
|
||||
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH"
|
||||
exec ${cfg.package}/bin/kubelet \
|
||||
--etcd_servers=${concatMapStringsSep "," (f: "http://${f}") cfg.etcdServers} \
|
||||
--api_servers=${concatMapStringsSep "," (f: "http://${f}") cfg.kubelet.apiServers} \
|
||||
--address=${cfg.kubelet.address} \
|
||||
--port=${toString cfg.kubelet.port} \
|
||||
@ -443,7 +449,7 @@ in {
|
||||
after = [ "network-interfaces.target" "etcd.service" ];
|
||||
serviceConfig = {
|
||||
ExecStart = ''${cfg.package}/bin/kube-proxy \
|
||||
--etcd_servers=${concatMapStringsSep "," (s: "http://${s}") cfg.etcdServers} \
|
||||
--master=${cfg.proxy.master} \
|
||||
--bind_address=${cfg.proxy.address} \
|
||||
--logtostderr=true \
|
||||
${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \
|
||||
|
42
nixos/modules/services/hardware/brltty.nix
Normal file
42
nixos/modules/services/hardware/brltty.nix
Normal 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" ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
89
nixos/modules/services/misc/confd.nix
Normal file
89
nixos/modules/services/misc/confd.nix
Normal file
@ -0,0 +1,89 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.confd;
|
||||
|
||||
confdConfig = ''
|
||||
backend = "${cfg.backend}"
|
||||
confdir = "${cfg.confDir}"
|
||||
interval = ${toString cfg.interval}
|
||||
nodes = [ ${concatMapStringsSep "," (s: ''"${s}"'') cfg.nodes}, ]
|
||||
prefix = "${cfg.prefix}"
|
||||
log-level = "${cfg.logLevel}"
|
||||
watch = ${if cfg.watch then "true" else "false"}
|
||||
'';
|
||||
|
||||
in {
|
||||
options.services.confd = {
|
||||
enable = mkEnableOption "Whether to enable confd service.";
|
||||
|
||||
backend = mkOption {
|
||||
description = "Confd config storage backend to use.";
|
||||
default = "etcd";
|
||||
type = types.enum ["etcd" "consul" "redis" "zookeeper"];
|
||||
};
|
||||
|
||||
interval = mkOption {
|
||||
description = "Confd check interval.";
|
||||
default = 10;
|
||||
type = types.int;
|
||||
};
|
||||
|
||||
nodes = mkOption {
|
||||
description = "Confd list of nodes to connect to.";
|
||||
default = [ "http://127.0.0.1:4001" ];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
watch = mkOption {
|
||||
description = "Confd, whether to watch etcd config for changes.";
|
||||
default = true;
|
||||
type = types.bool;
|
||||
};
|
||||
|
||||
prefix = mkOption {
|
||||
description = "The string to prefix to keys.";
|
||||
default = "/";
|
||||
type = types.path;
|
||||
};
|
||||
|
||||
logLevel = mkOption {
|
||||
description = "Confd log level.";
|
||||
default = "info";
|
||||
type = types.enum ["info" "debug"];
|
||||
};
|
||||
|
||||
confDir = mkOption {
|
||||
description = "The path to the confd configs.";
|
||||
default = "/etc/confd";
|
||||
type = types.path;
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
description = "Confd package to use.";
|
||||
default = pkgs.goPackages.confd;
|
||||
type = types.package;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.confd = {
|
||||
description = "Confd Service.";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/confd";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
"confd/confd.toml".text = confdConfig;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
services.etcd.enable = mkIf (cfg.backend == "etcd") (mkDefault true);
|
||||
};
|
||||
}
|
113
nixos/modules/services/misc/mbpfan.nix
Normal file
113
nixos/modules/services/misc/mbpfan.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -43,6 +43,24 @@ in {
|
||||
type = types.int;
|
||||
};
|
||||
|
||||
importMode = mkOption {
|
||||
description = "Ripple data api import mode.";
|
||||
default = "liveOnly";
|
||||
type = types.enum ["live" "liveOnly"];
|
||||
};
|
||||
|
||||
minLedger = mkOption {
|
||||
description = "Ripple data api minimal ledger to fetch.";
|
||||
default = null;
|
||||
type = types.nullOr types.int;
|
||||
};
|
||||
|
||||
maxLedger = mkOption {
|
||||
description = "Ripple data api maximal ledger to fetch.";
|
||||
default = null;
|
||||
type = types.nullOr types.int;
|
||||
};
|
||||
|
||||
redis = {
|
||||
enable = mkOption {
|
||||
description = "Whether to enable caching of ripple data to redis.";
|
||||
@ -129,6 +147,7 @@ in {
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.ripple-data-api}/bin/api";
|
||||
Restart = "always";
|
||||
User = "ripple-data-api";
|
||||
};
|
||||
};
|
||||
@ -145,8 +164,15 @@ in {
|
||||
LOG_FILE = "/dev/null";
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.ripple-data-api}/bin/importer live debug2";
|
||||
serviceConfig = let
|
||||
importMode =
|
||||
if cfg.minLedger != null && cfg.maxLedger != null then
|
||||
"${toString cfg.minLedger} ${toString cfg.maxLedger}"
|
||||
else
|
||||
cfg.importMode;
|
||||
in {
|
||||
ExecStart = "${pkgs.ripple-data-api}/bin/importer ${importMode} debug";
|
||||
Restart = "always";
|
||||
User = "ripple-data-api";
|
||||
};
|
||||
|
||||
|
@ -83,11 +83,11 @@ let
|
||||
|
||||
# Unpack Mediawiki and put the config file in its root directory.
|
||||
mediawikiRoot = pkgs.stdenv.mkDerivation rec {
|
||||
name= "mediawiki-1.23.3";
|
||||
name= "mediawiki-1.23.9";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "http://download.wikimedia.org/mediawiki/1.23/${name}.tar.gz";
|
||||
sha256 = "0l6798jwjwk2khfnm84mgc65ij53a8pnv30wdnn15ys4ivia4bpf";
|
||||
sha256 = "1l7k4g0pgz92yvrfr52w26x740s4362v0gc95pk0i30vn2sp5bql";
|
||||
};
|
||||
|
||||
skins = config.skins;
|
||||
@ -142,6 +142,7 @@ in
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
|
||||
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
|
||||
${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.vhostConfig.servedDirs}
|
||||
${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.vhostConfig.servedFiles}
|
||||
RewriteRule ${if config.enableUploads
|
||||
then "!^/images"
|
||||
else "^.*\$"
|
||||
|
@ -97,7 +97,7 @@ with lib;
|
||||
default = [];
|
||||
example = [
|
||||
{ urlPath = "/foo/bar.png";
|
||||
dir = "/home/eelco/some-file.png";
|
||||
files = "/home/eelco/some-file.png";
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
|
@ -102,6 +102,7 @@ in
|
||||
'';
|
||||
serviceConfig = {
|
||||
ExecStart = "${nginx}/bin/nginx -c ${configFile} -p ${cfg.stateDir}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "10s";
|
||||
StartLimitInterval = "1min";
|
||||
|
@ -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 +
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ config, pkgs, modulesPath, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ "${modulesPath}/virtualisation/google-compute-image.nix" ];
|
||||
imports = [ <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix> ];
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec{
|
||||
else "install -D bitcoind $out/bin/primecoind";
|
||||
|
||||
meta = {
|
||||
description = "A new type cryptocurrency which is proof-of-work based on searching for prime numbers.";
|
||||
description = "A new type cryptocurrency which is proof-of-work based on searching for prime numbers";
|
||||
longDescription= ''
|
||||
Primecoin is an innovative cryptocurrency, a form of digital
|
||||
currency secured by cryptography and issued through a
|
||||
|
94
pkgs/applications/audio/ardour/ardour3.nix
Normal file
94
pkgs/applications/audio/ardour/ardour3.nix
Normal file
@ -0,0 +1,94 @@
|
||||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
|
||||
, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jack2
|
||||
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
|
||||
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
||||
, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
|
||||
, perl, pkgconfig, python, serd, sord, sratom, suil }:
|
||||
|
||||
let
|
||||
|
||||
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
||||
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used
|
||||
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the
|
||||
# last annotated tag. A slightly different version string format is needed
|
||||
# for the 'revision' info that is built into the binary; it is the format of
|
||||
# "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
|
||||
|
||||
# Version to build.
|
||||
tag = "3.5.403";
|
||||
|
||||
# Version info that is built into the binary. Keep in sync with 'tag'. The
|
||||
# last 8 digits is a (fake) commit id.
|
||||
revision = "3.5-403-00000000";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ardour-${tag}";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://git.ardour.org/ardour/ardour.git;
|
||||
rev = "refs/tags/${tag}";
|
||||
sha256 = "0k1z8sbjf88dqn12kf9cykrqj38vkr879n2g6b4adk6cghn8wz3x";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
|
||||
glibmm gtk gtkmm jack2 libgnomecanvas libgnomecanvasmm liblo
|
||||
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
|
||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
|
||||
makeWrapper pango perl pkgconfig python serd sord sratom suil
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${revision}\"; }\n' > libs/ardour/revision.cc
|
||||
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
|
||||
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
|
||||
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
|
||||
'';
|
||||
|
||||
configurePhase = "python waf configure --optimize --prefix=$out";
|
||||
|
||||
buildPhase = "python waf";
|
||||
|
||||
# For the custom ardour clearlooks gtk-engine to work, it must be
|
||||
# moved to a directory called "engines" and added to GTK_PATH
|
||||
installPhase = ''
|
||||
python waf install
|
||||
mkdir -pv $out/gtk2/engines
|
||||
cp build/libs/clearlooks-newer/libclearlooks.so $out/gtk2/engines/
|
||||
wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2
|
||||
|
||||
# Install desktop file
|
||||
mkdir -p "$out/share/applications"
|
||||
cat > "$out/share/applications/ardour.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Name=Ardour 3
|
||||
GenericName=Digital Audio Workstation
|
||||
Comment=Multitrack harddisk recorder
|
||||
Exec=$out/bin/ardour3
|
||||
Icon=$out/share/ardour3/icons/ardour_icon_256px.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-MultipleArgs=false
|
||||
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
|
||||
EOF
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Multi-track hard disk recording software";
|
||||
longDescription = ''
|
||||
Ardour is a digital audio workstation (DAW), You can use it to
|
||||
record, edit and mix multi-track audio and midi. Produce your
|
||||
own CDs. Mix video soundtracks. Experiment with new ideas about
|
||||
music and sound.
|
||||
|
||||
Please consider supporting the ardour project financially:
|
||||
https://community.ardour.org/node/8288
|
||||
'';
|
||||
homepage = http://ardour.org/;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
};
|
||||
}
|
@ -1,9 +1,11 @@
|
||||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
|
||||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, dbus, fftw
|
||||
, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jack2
|
||||
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
|
||||
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
||||
, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
|
||||
, perl, pkgconfig, python, serd, sord, sratom, suil }:
|
||||
, perl, pkgconfig, python, rubberband, serd, sord, sratom, suil, taglib
|
||||
, vampSDK
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
@ -15,11 +17,11 @@ let
|
||||
# "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
|
||||
|
||||
# Version to build.
|
||||
tag = "3.5.403";
|
||||
tag = "4.0";
|
||||
|
||||
# Version info that is built into the binary. Keep in sync with 'tag'. The
|
||||
# last 8 digits is a (fake) commit id.
|
||||
revision = "3.5-403-00000000";
|
||||
revision = "4.0-e1aa66cb3f";
|
||||
|
||||
in
|
||||
|
||||
@ -28,17 +30,18 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchgit {
|
||||
url = git://git.ardour.org/ardour/ardour.git;
|
||||
rev = "refs/tags/${tag}";
|
||||
sha256 = "0k1z8sbjf88dqn12kf9cykrqj38vkr879n2g6b4adk6cghn8wz3x";
|
||||
rev = "e1aa66cb3f";
|
||||
sha256 = "396668fb9116a68f5079f0d880930e890fd0cdf7ee5f3b97fcf44b88cf840b4c";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
|
||||
glibmm gtk gtkmm jack2 libgnomecanvas libgnomecanvasmm liblo
|
||||
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
|
||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
|
||||
makeWrapper pango perl pkgconfig python serd sord sratom suil
|
||||
];
|
||||
buildInputs = [
|
||||
alsaLib aubio boost cairomm curl dbus fftw fftwSinglePrec flac
|
||||
glibc glibmm gtk gtkmm jack2 libgnomecanvas libgnomecanvasmm liblo
|
||||
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
|
||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
|
||||
makeWrapper pango perl pkgconfig python rubberband serd sord
|
||||
sratom suil taglib vampSDK
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${revision}\"; }\n' > libs/ardour/revision.cc
|
||||
@ -47,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
|
||||
'';
|
||||
|
||||
configurePhase = "python waf configure --optimize --prefix=$out";
|
||||
configurePhase = "python waf configure --with-backend=alsa,jack --optimize --prefix=$out";
|
||||
|
||||
buildPhase = "python waf";
|
||||
|
||||
@ -57,17 +60,17 @@ stdenv.mkDerivation rec {
|
||||
python waf install
|
||||
mkdir -pv $out/gtk2/engines
|
||||
cp build/libs/clearlooks-newer/libclearlooks.so $out/gtk2/engines/
|
||||
wrapProgram $out/bin/ardour3 --prefix GTK_PATH : $out/gtk2
|
||||
wrapProgram $out/bin/ardour4 --prefix GTK_PATH : $out/gtk2
|
||||
|
||||
# Install desktop file
|
||||
mkdir -p "$out/share/applications"
|
||||
cat > "$out/share/applications/ardour.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Name=Ardour 3
|
||||
Name=Ardour 4
|
||||
GenericName=Digital Audio Workstation
|
||||
Comment=Multitrack harddisk recorder
|
||||
Exec=$out/bin/ardour3
|
||||
Icon=$out/share/ardour3/icons/ardour_icon_256px.png
|
||||
Exec=$out/bin/ardour4
|
||||
Icon=$out/share/ardour4/icons/ardour_icon_256px.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-MultipleArgs=false
|
||||
@ -78,7 +81,13 @@ stdenv.mkDerivation rec {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Multi-track hard disk recording software";
|
||||
longDescription = ''
|
||||
Also read "The importance of Paying Something" on their homepage, please!
|
||||
Ardour is a digital audio workstation (DAW), You can use it to
|
||||
record, edit and mix multi-track audio and midi. Produce your
|
||||
own CDs. Mix video soundtracks. Experiment with new ideas about
|
||||
music and sound.
|
||||
|
||||
Please consider supporting the ardour project financially:
|
||||
https://community.ardour.org/node/8288
|
||||
'';
|
||||
homepage = http://ardour.org/;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,60 +1,88 @@
|
||||
{ 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;
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
patches = [ ./clementine-1.2.1-include-paths.patch ];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "clementine-${version}";
|
||||
|
||||
src = ./.;
|
||||
|
||||
|
||||
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 ];
|
||||
|
21
pkgs/applications/audio/dirt/default.nix
Normal file
21
pkgs/applications/audio/dirt/default.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ stdenv, fetchFromGitHub, libsndfile, libsamplerate, liblo, jack2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dirt-git";
|
||||
src = fetchFromGitHub {
|
||||
repo = "Dirt";
|
||||
owner = "tidalcycles";
|
||||
rev = "cfc5e85318defda7462192b5159103c823ce61f7";
|
||||
sha256 = "1shbyp54q64g6bsl6hhch58k3z1dyyy9ph6cq2xvdf8syy00sisz";
|
||||
};
|
||||
buildInputs = [ libsndfile libsamplerate liblo jack2 ];
|
||||
configurePhase = ''
|
||||
export DESTDIR=$out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
|
||||
homepage = "https://github.com/tidalcycles/Dirt";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
};
|
||||
}
|
@ -16,7 +16,7 @@ pythonPackages.buildPythonPackage rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/dirkgroenen/mopidy-mopify;
|
||||
description = "A mopidy webclient based on the Spotify webbased interface.";
|
||||
description = "A mopidy webclient based on the Spotify webbased interface";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.Gonzih ];
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, pkgconfig, alsaLib, libxmp }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xmp-4.0.7";
|
||||
name = "xmp-4.0.10";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Extended module player";
|
||||
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/xmp/xmp/${name}.tar.gz";
|
||||
sha256 = "0qgzzaxhshz5l7s21x89xb43pbbi0zap6a4lk4s7gjp1qca2agcw";
|
||||
sha256 = "0gjylvvmq7ha0nhcjg56qfp0xxpsrcsj7y5r914svd5x1ppmzm5n";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig alsaLib libxmp ];
|
||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.emacswiki.org/emacs/Icicles";
|
||||
description = "Enhance Emacs minibuffer input with cycling and powerful completion.";
|
||||
description = "Enhance Emacs minibuffer input with cycling and powerful completion";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -212,14 +212,14 @@ in
|
||||
|
||||
android-studio = buildAndroidStudio rec {
|
||||
name = "android-studio-${version}";
|
||||
version = "1.2.0.8";
|
||||
build = "141.1845774";
|
||||
version = "1.2.0.12";
|
||||
build = "141.1890965";
|
||||
description = "Android development environment based on IntelliJ IDEA";
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
||||
"/android-studio-ide-${build}-linux.zip";
|
||||
sha256 = "1l201qv1aya1l9jrybgqclv2v2fgzdpcb6qsnxszcq3npplisw9h";
|
||||
sha256 = "01k96rql192ksnprc4yai97fcals7msf06m9bx1q7asn46887h7n";
|
||||
};
|
||||
};
|
||||
|
||||
@ -227,7 +227,7 @@ in
|
||||
name = "clion-${version}";
|
||||
version = "1.0";
|
||||
build = "141.353";
|
||||
description = "C/C++ IDE. New. Intelligent. Cross-platform.";
|
||||
description = "C/C++ IDE. New. Intelligent. Cross-platform";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/cpp/${name}.tar.gz";
|
||||
@ -309,13 +309,13 @@ in
|
||||
|
||||
webstorm = buildWebStorm rec {
|
||||
name = "webstorm-${version}";
|
||||
version = "9.0.3";
|
||||
build = "139.1112";
|
||||
version = "10.0.2";
|
||||
build = "141.728";
|
||||
description = "Professional IDE for Web and JavaScript devlopment";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
|
||||
sha256 = "e4cfe7b5f1220b68d880c4f236df9c9df2b1efcc04775afad6149d949f45f0aa";
|
||||
sha256 = "0ghv1r145qb5kmp2x375f5674b86d51w024fz390znlnniclizqx";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation {
|
||||
env = yiEnv;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Allows Yi to find libraries and the compiler easily.";
|
||||
description = "Allows Yi to find libraries and the compiler easily";
|
||||
# This wrapper and wrapper only is under PD
|
||||
license = licenses.publicDomain;
|
||||
maintainers = with maintainers; [ fuuzetsu ];
|
||||
|
@ -30,7 +30,7 @@ cabal.mkDerivation (self: {
|
||||
configureFlags = "-fpango -fvty";
|
||||
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.8";
|
||||
meta = {
|
||||
homepage = "http://haskell.org/haskellwiki/Yi";
|
||||
homepage = http://haskell.org/haskellwiki/Yi;
|
||||
description = "The Haskell-Scriptable Editor";
|
||||
license = self.stdenv.lib.licenses.gpl2;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
homepage = "http://ctodo.apakoh.dk/";
|
||||
description = "A simple ncurses-based task list manager.";
|
||||
description = "A simple ncurses-based task list manager";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ system ? builtins.currentSystem }:
|
||||
|
||||
let
|
||||
inherit (import <nixpkgs> {
|
||||
inherit (import ../../../../../../. {
|
||||
inherit system;
|
||||
}) lib writeText stdenv;
|
||||
|
||||
|
@ -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];
|
||||
|
@ -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];
|
||||
|
@ -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];
|
||||
|
@ -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];
|
||||
|
@ -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];
|
||||
|
@ -2,25 +2,27 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kubernetes-${version}";
|
||||
version = "0.12.1";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GoogleCloudPlatform";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "1891wpssfp04nkk1h4y3cdgn096b0kq16pc0m2fzilbh3daa6pml";
|
||||
sha256 = "1jiczhx01i8czm1gzd232z2ds2f1lvs5ifa9zjabhzw5ykfzdjg8";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper which go iptables rsync ];
|
||||
|
||||
preBuild = "patchShebangs ./hack";
|
||||
|
||||
postBuild = ''go build --ldflags '-extldflags "-static" -s' build/pause/pause.go'';
|
||||
buildPhase = ''
|
||||
substituteInPlace "hack/lib/golang.sh" --replace "_cgo" ""
|
||||
GOPATH=$(pwd)
|
||||
patchShebangs ./hack
|
||||
hack/build-go.sh --use_go_build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/bin"
|
||||
cp _output/local/go/bin/* "$out/bin/"
|
||||
cp pause $out/bin/kube-pause
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
@ -29,7 +31,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Open source implementation of container cluster management.";
|
||||
description = "Open source implementation of container cluster management";
|
||||
license = licenses.asl20;
|
||||
homepage = https://github.com/GoogleCloudPlatform;
|
||||
maintainers = with maintainers; [offline];
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://mesosphere.github.io/marathon;
|
||||
description = "Cluster-wide init and control system for services in cgroups or Docker containers.";
|
||||
description = "Cluster-wide init and control system for services in cgroups or Docker containers";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ rushmorem ];
|
||||
platforms = platforms.linux;
|
||||
|
45
pkgs/applications/networking/cluster/pig/default.nix
Normal file
45
pkgs/applications/networking/cluster/pig/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -14,7 +14,7 @@ pythonPackages.buildPythonPackage rec {
|
||||
|
||||
meta = {
|
||||
homepage = "http://offog.org/code/rawdog/";
|
||||
description = "an RSS Aggregator Without Delusions Of Grandeur.";
|
||||
description = "An RSS Aggregator Without Delusions Of Grandeur";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platform = stdenv.lib.platforms.unix;
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -90,7 +90,7 @@ releaseTools.mvnBuild rec {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "The K Framework is a rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined.";
|
||||
description = "A rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined";
|
||||
homepage = http://www.kframework.org;
|
||||
license = stdenv.lib.licenses.bsd3; # technically it is the UIUC/NCSA license
|
||||
# but LLVM uses that license as well and
|
||||
|
@ -1,20 +1,22 @@
|
||||
args : with args;
|
||||
{ stdenv, fetchurl, makeWrapper, python2, bazaar }:
|
||||
|
||||
rec {
|
||||
version = "2.5";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bzr-tools-${version}";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://launchpad.net/bzrtools/stable/${version}/+download/bzrtools-${version}.tar.gz";
|
||||
sha256 = "0gzh63vl9006cpklszwmsymrq5ddxxrnxwbv5bwi740jlvxzdkxw";
|
||||
sha256 = "0n3zzc6jf5866kfhmrnya1vdr2ja137a45qrzsz8vz6sc6xgn5wb";
|
||||
};
|
||||
|
||||
buildInputs = [];
|
||||
configureFlags = [];
|
||||
buildInputs = [ makeWrapper python2 ];
|
||||
|
||||
/* doConfigure should be specified separately */
|
||||
phaseNames = [(simplyShare "bzrtools")];
|
||||
installPhase = ''
|
||||
${python2}/bin/python ./setup.py install --prefix=$out
|
||||
'';
|
||||
|
||||
name = "bzr-tools-${version}";
|
||||
meta = {
|
||||
description = "Bazaar plugins";
|
||||
homepage = http://wiki.bazaar.canonical.com/BzrTools;
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchgit, mercurial, makeWrapper,
|
||||
asciidoc, xmlto, dbus, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
|
||||
asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -14,12 +14,12 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
buildInputs = [ mercurial.python mercurial makeWrapper
|
||||
asciidoc xmlto dbus docbook_xsl docbook_xml_dtd_45 libxslt libxml2
|
||||
asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installFlags = "HOME=\${out}";
|
||||
installFlags = "HOME=\${out} install-doc";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/git-remote-hg \
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -1,17 +1,25 @@
|
||||
{ stdenv, fetchgit, pkgconfig, which, autoreconfHook, rep-gtk, pango, gdk_pixbuf, libXinerama, libXrandr, libXtst, imlib, gettext, texinfo, makeWrapper }:
|
||||
{ stdenv, fetchgit, pkgconfig, which, autoreconfHook, rep-gtk, pango
|
||||
, gdk_pixbuf, libXinerama, libXrandr, libXtst, imlib, gettext, texinfo
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "sawfish-git-2015-02-15";
|
||||
name = "sawfish-${version}";
|
||||
version = "1.11.90";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/SawfishWM/sawfish.git";
|
||||
rev = "44729f44017e6779b4b66a7ecdbd63a98731f668";
|
||||
sha256 = "bd3f42f1604f37ecb2515008341cac4f6965840b2d6a6639dd1f3f2459f68e73";
|
||||
rev = "b121f832571c9aebd228691c32604146e49f5e55";
|
||||
sha256 = "0y7rmjzp7ha5qj9q1dasw50gd6jiaxc0qsjbvyfzxvwssl3i9hsc";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig which autoreconfHook rep-gtk pango gdk_pixbuf libXinerama libXrandr libXtst imlib gettext texinfo makeWrapper ];
|
||||
buildInputs =
|
||||
[ pkgconfig which autoreconfHook rep-gtk pango gdk_pixbuf libXinerama
|
||||
libXrandr libXtst imlib gettext texinfo makeWrapper
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in
|
||||
@ -25,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||
--set REP_LOAD_PATH "$out/share/sawfish/lisp"
|
||||
done
|
||||
'';
|
||||
|
||||
|
||||
meta = {
|
||||
description = "An extensible, Lisp-based window manager";
|
||||
longDescription = ''
|
||||
|
@ -6,13 +6,17 @@ stdenv.mkDerivation {
|
||||
builder = ./builder.sh;
|
||||
buildInputs = [mercurial];
|
||||
|
||||
impureEnvVars = [
|
||||
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
|
||||
];
|
||||
|
||||
# Nix <= 0.7 compatibility.
|
||||
id = md5;
|
||||
|
||||
outputHashAlgo = if md5 != null then "md5" else "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = if md5 != null then md5 else sha256;
|
||||
|
||||
|
||||
inherit url rev;
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
|
||||
preferLocalBuild = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A monospace bitmap font aimed at programmers.";
|
||||
description = "A monospace bitmap font aimed at programmers";
|
||||
longDescription = ''
|
||||
Dina is a monospace bitmap font, primarily aimed at programmers. It is
|
||||
relatively compact to allow a lot of code on screen, while (hopefully)
|
||||
|
31
pkgs/data/fonts/font-awesome-ttf/default.nix
Normal file
31
pkgs/data/fonts/font-awesome-ttf/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{stdenv, fetchurl, unzip}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "font-awesome-4.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://fortawesome.github.io/Font-Awesome/assets/${name}.zip";
|
||||
sha256 = "018syfvkj01jym60mpys93xv84ky9l2x90gprnm9npzwkw5169jc";
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
${unzip}/bin/unzip $src
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
cp */fonts/*.ttf $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Font Awesome - TTF font";
|
||||
|
||||
longDescription = ''
|
||||
Font Awesome gives you scalable vector icons that can instantly be customized.
|
||||
This package includes only the TTF font. For full CSS etc. see the project website.
|
||||
'';
|
||||
|
||||
homepage = "http://fortawesome.github.io/Font-Awesome/";
|
||||
license = stdenv.lib.licenses.ofl;
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.abaldeau ];
|
||||
};
|
||||
}
|
@ -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.
|
||||
'';
|
||||
|
@ -16,4 +16,5 @@ for var in "${!src@}"; do
|
||||
cp "$src" "$dest"
|
||||
done
|
||||
|
||||
gunzip -v *.gz
|
||||
gzip -dv *.gz
|
||||
xz -dv *.xz
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
35
pkgs/development/compilers/ats-extsolve/default.nix
Normal file
35
pkgs/development/compilers/ats-extsolve/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
136
pkgs/development/compilers/ats-extsolve/misc-fixes.patch
Normal file
136
pkgs/development/compilers/ats-extsolve/misc-fixes.patch
Normal 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) =
|
@ -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";
|
||||
|
1
pkgs/development/compilers/ats2/setup-hook.sh
Normal file
1
pkgs/development/compilers/ats2/setup-hook.sh
Normal file
@ -0,0 +1 @@
|
||||
export PATSHOME=@out@/lib/ats2-postiats-@version@
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python, zlib
|
||||
, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib
|
||||
, xlibs, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib, glibc
|
||||
}:
|
||||
|
||||
let version = "6.5.19"; in
|
||||
@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ perl ];
|
||||
|
||||
runtimeDependencies = [
|
||||
glibc
|
||||
ncurses expat python zlib
|
||||
xlibs.libX11 xlibs.libXext xlibs.libXrender xlibs.libXt xlibs.libXtst xlibs.libXi xlibs.libXext
|
||||
gtk2 glib fontconfig freetype unixODBC alsaLib
|
||||
@ -54,6 +55,9 @@ stdenv.mkDerivation rec {
|
||||
rm $out/tools/CUDA_Occupancy_Calculator.xls
|
||||
perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
|
||||
mv $out/include $out/usr_include
|
||||
|
||||
# let's remove the 32-bit libraries, they confuse the lib64->lib mover
|
||||
rm -rf $out/lib
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
@ -1,15 +1,20 @@
|
||||
{ stdenv, fetchurl, unzip, curl }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "dmd-2.067.0";
|
||||
name = "dmd-2.067.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://downloads.dlang.org/releases/2015/dmd.2.067.0.zip;
|
||||
sha256 = "0b1b65694846ef3430de1de341c8cf353151a1a39656e6a1065fe56bc90fb60b";
|
||||
url = http://downloads.dlang.org/releases/2015/dmd.2.067.1.zip;
|
||||
sha256 = "0ny99vfllvvgcl79pwisxcdnb3732i827k9zg8c0j4s0n79k5z94";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip curl ];
|
||||
|
||||
# Allow to use "clang++", commented in Makefile
|
||||
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace src/dmd/posix.mak --replace g++ clang++
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
cd src/dmd
|
||||
make -f posix.mak INSTALL_DIR=$out
|
||||
@ -34,8 +39,9 @@ stdenv.mkDerivation {
|
||||
|
||||
cd ../phobos
|
||||
mkdir $out/lib
|
||||
${let bits = if stdenv.is64bit then "64" else "32"; in
|
||||
"cp generated/linux/release/${bits}/libphobos2.a $out/lib"
|
||||
${let bits = if stdenv.is64bit then "64" else "32";
|
||||
osname = if stdenv.isDarwin then "osx" else "linux"; in
|
||||
"cp generated/${osname}/release/${bits}/libphobos2.a $out/lib"
|
||||
}
|
||||
|
||||
cp -r std $out/include/d2
|
||||
@ -55,4 +61,3 @@ stdenv.mkDerivation {
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
255
pkgs/development/compilers/gcc/5/builder.sh
Normal file
255
pkgs/development/compilers/gcc/5/builder.sh
Normal 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
|
526
pkgs/development/compilers/gcc/5/default.nix
Normal file
526
pkgs/development/compilers/gcc/5/default.nix
Normal 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; }
|
||||
)
|
20
pkgs/development/compilers/gcc/5/gfortran-driving.patch
Normal file
20
pkgs/development/compilers/gcc/5/gfortran-driving.patch
Normal 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");
|
||||
}
|
33
pkgs/development/compilers/gcc/5/gnat-cflags.patch
Normal file
33
pkgs/development/compilers/gcc/5/gnat-cflags.patch
Normal 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.
|
||||
|
17
pkgs/development/compilers/gcc/5/java-jvgenmain-link.patch
Normal file
17
pkgs/development/compilers/gcc/5/java-jvgenmain-link.patch
Normal 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:
|
32
pkgs/development/compilers/gcc/5/libstdc++-target.patch
Normal file
32
pkgs/development/compilers/gcc/5/libstdc++-target.patch
Normal 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@
|
28
pkgs/development/compilers/gcc/5/no-sys-dirs.patch
Normal file
28
pkgs/development/compilers/gcc/5/no-sys-dirs.patch
Normal 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. */
|
@ -45,8 +45,8 @@ let
|
||||
libDir = "share/ghcjs/${ghcArch}-${version}-${ghc.version}/ghcjs";
|
||||
ghcjsBoot = fetchgit {
|
||||
url = git://github.com/ghcjs/ghcjs-boot.git;
|
||||
rev = "8bf1a2c665d42a66354f17220c7dfb1c8b44c0ea"; # 7.10 branch
|
||||
sha256 = "18bm6sfa9c9kwsmv3lz6j27ng6jl0ck3ifgqbwwa8myfy7fw4il7";
|
||||
rev = "ab8765edcb507b8b810e3c324fd5bd5af2b69d8f"; # 7.10 branch
|
||||
sha256 = "63b69a1d131cf3c7088e0f28d14750c81361dcc276fa113ad80dcccf73df5343";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
shims = fetchgit {
|
||||
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -3,12 +3,12 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "icedtea-web-${version}";
|
||||
|
||||
version = "1.5.2";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz";
|
||||
|
||||
sha256 = "1wrvl66qj0yhaqqhcq24005ci5sc3w005809cld55iiwagr8z7mj";
|
||||
sha256 = "0z8iirvpciai55s4vhpfkhyx4h4hm6dqy4pg4c61pia3innqd4qn";
|
||||
};
|
||||
|
||||
buildInputs = [ gtk2 xulrunner zip pkgconfig npapi_sdk ];
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
30
pkgs/development/compilers/vala/0.28.nix
Normal file
30
pkgs/development/compilers/vala/0.28.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt
|
||||
, glib, libiconv, libintlOrEmpty
|
||||
}:
|
||||
|
||||
let
|
||||
major = "0.28";
|
||||
minor = "0";
|
||||
sha256 = "0zwpzhkhfk3piya14m7p2hl2vaabahprphppfm46ci91z39kp7hd";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "vala-${major}.${minor}";
|
||||
|
||||
meta = {
|
||||
description = "Compiler for GObject type system";
|
||||
homepage = "http://live.gnome.org/Vala";
|
||||
license = stdenv.lib.licenses.lgpl21Plus;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ antono lethalman ];
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig flex bison libxslt ];
|
||||
|
||||
buildInputs = [ glib libiconv ]
|
||||
++ libintlOrEmpty;
|
||||
}
|
@ -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 ];
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/UniMath/UniMath;
|
||||
description = "UniMath aims to formalize a substantial body of mathematics using the univalent point of view.";
|
||||
description = "A formalization of a substantial body of mathematics using the univalent point of view";
|
||||
maintainers = with maintainers; [ jwiegley ];
|
||||
platforms = coq.meta.platforms;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -155,9 +155,11 @@ self: super: {
|
||||
patchPhase = "sed -i -e 's|random.*==.*|random|' -e 's|text.*>=.*,|text,|' -e s'|terminfo == .*|terminfo|' darcs.cabal";
|
||||
});
|
||||
|
||||
# The test suite imposes too narrow restrictions on the version of
|
||||
# Cabal that can be used to build this package.
|
||||
cabal-test-quickcheck = dontCheck super.cabal-test-quickcheck;
|
||||
# Needs the latest version of QuickCheck to compile.
|
||||
cabal-test-quickcheck = super.cabal-test-quickcheck.override { QuickCheck = self.QuickCheck_2_8_1; };
|
||||
|
||||
# https://github.com/massysett/rainbox/issues/1
|
||||
rainbox = dontCheck super.rainbox;
|
||||
|
||||
# https://github.com/techtangents/ablist/issues/1
|
||||
ABList = dontCheck super.ABList;
|
||||
|
@ -329,4 +329,9 @@ self: super: {
|
||||
seqid-streams_0_1_0 = markBroken super.seqid-streams_0_1_0;
|
||||
vector_0_10_9_3 = markBroken super.vector_0_10_9_3;
|
||||
|
||||
# https://github.com/bos/wreq/issues/61
|
||||
wreq = markBrokenVersion "0.3.0.1" (dontCheck super.wreq);
|
||||
wreq-sb = dontDistribute (dontCheck super.wreq-sb);
|
||||
hipbot = dontDistribute super.hipbot;
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user