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

This commit is contained in:
Eelco Dolstra 2016-09-20 17:46:09 +02:00
commit 7a4209c356
216 changed files with 9926 additions and 4020 deletions

View File

@ -296,12 +296,17 @@ rec {
/* Converts a store path to a fake derivation. */
toDerivation = path:
let path' = builtins.storePath path; in
{ type = "derivation";
name = builtins.unsafeDiscardStringContext (builtins.substring 33 (-1) (baseNameOf path'));
outPath = path';
outputs = [ "out" ];
};
let
path' = builtins.storePath path;
res =
{ type = "derivation";
name = builtins.unsafeDiscardStringContext (builtins.substring 33 (-1) (baseNameOf path'));
outPath = path';
outputs = [ "out" ];
out = res;
outputName = "out";
};
in res;
/* If `cond' is true, return the attribute set `as',

View File

@ -1,27 +1,46 @@
let
let
# trivial, often used functions
trivial = import ./trivial.nix;
# datatypes
attrsets = import ./attrsets.nix;
lists = import ./lists.nix;
strings = import ./strings.nix;
stringsWithDeps = import ./strings-with-deps.nix;
attrsets = import ./attrsets.nix;
# packaging
customisation = import ./customisation.nix;
maintainers = import ./maintainers.nix;
meta = import ./meta.nix;
sources = import ./sources.nix;
# module system
modules = import ./modules.nix;
options = import ./options.nix;
types = import ./types.nix;
meta = import ./meta.nix;
debug = import ./debug.nix;
misc = import ./deprecated.nix;
maintainers = import ./maintainers.nix;
# constants
licenses = import ./licenses.nix;
platforms = import ./platforms.nix;
systems = import ./systems.nix;
customisation = import ./customisation.nix;
licenses = import ./licenses.nix;
# misc
debug = import ./debug.nix;
misc = import ./deprecated.nix;
# domain-specific
sandbox = import ./sandbox.nix;
fetchers = import ./fetchers.nix;
in
{ inherit trivial lists strings stringsWithDeps attrsets sources options
modules types meta debug maintainers licenses platforms systems sandbox;
{ inherit trivial
attrsets lists strings stringsWithDeps
customisation maintainers meta sources
modules options types
licenses platforms systems
debug misc
sandbox fetchers;
}
# !!! don't include everything at top-level; perhaps only the most
# commonly used functions.

12
lib/fetchers.nix Normal file
View File

@ -0,0 +1,12 @@
# snippets that can be shared by mutliple fetchers (pkgs/build-support)
{
proxyImpureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
}

View File

@ -197,6 +197,7 @@
joelmo = "Joel Moberg <joel.moberg@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>";
joko = "Ioannis Koutras <ioannis.koutras@gmail.com>";
jonafato = "Jon Banafato <jon@jonafato.com>";
jpbernardy = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";
jraygauthier = "Raymond Gauthier <jraygauthier@gmail.com>";
juliendehos = "Julien Dehos <dehos@lisic.univ-littoral.fr>";

View File

@ -1,6 +1,8 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils findutils gnused nix wget
set -efuo pipefail
SRCS=
if [ -d "$1" ]; then
SRCS="$(pwd)/$1/srcs.nix"

View File

@ -121,6 +121,27 @@ following incompatible changes:</para>
functionality. See <xref linkend="sec-grsecurity" /> for documentation
</para></listitem>
<listitem><para>Special filesystems, like <literal>/proc</literal>,
<literal>/run</literal> and others, now have the same mount options as
recommended by systemd. They are now unified across different places in NixOS.
Options are also updated on the system switch if possible. One benefit from
this is improved security -- most such filesystems are now mounted with
<literal>noexec</literal>, <literal>nodev</literal> and/or
<literal>nosuid</literal> options.</para></listitem>
<listitem><para>The reverse path filter was interfering with DHCPv4 server
operation in the past. An exception for DHCPv4 and a new option to log
packets that were dropped due to the reverse path filter was added
(<literal>networking.firewall.logReversePathDrops</literal>) for easier
debugging.</para></listitem>
<listitem><para>Containers configuration within
<literal>containers.&lt;name&gt;.config</literal> is now properly
typed and checked. In particular, partial configurations are merged
correctly.
(<link xlink:href="https://github.com/NixOS/nixpkgs/pull/17365">#17365</link>)
</para></listitem>
</itemizedlist>

View File

@ -61,7 +61,7 @@ in
pkgs.cryptsetup # needed for dm-crypt volumes
# Some networking tools.
pkgs.sshfsFuse
pkgs.sshfs-fuse
pkgs.socat
pkgs.screen
pkgs.wpa_supplicant # !!! should use the wpa module

View File

@ -55,7 +55,7 @@ in
pkgs.cryptsetup # needed for dm-crypt volumes
# Some networking tools.
pkgs.sshfsFuse
pkgs.sshfs-fuse
pkgs.socat
pkgs.screen
pkgs.wpa_supplicant # !!! should use the wpa module

View File

@ -74,7 +74,6 @@
rtkit = 45;
dovecot2 = 46;
dovenull2 = 47;
unbound = 48;
prayer = 49;
mpd = 50;
clamav = 51;
@ -141,7 +140,7 @@
ngircd = 112;
btsync = 113;
minecraft = 114;
monetdb = 115;
#monetdb = 115; # unused (not packaged), removed 2016-09-19
rippled = 116;
murmur = 117;
foundationdb = 118;
@ -332,7 +331,6 @@
#rtkit = 45; # unused
dovecot2 = 46;
#dovenull = 47; # unused
#unbound = 48; # unused
prayer = 49;
mpd = 50;
clamav = 51;
@ -397,7 +395,7 @@
#ngircd = 112; # unused
btsync = 113;
#minecraft = 114; # unused
monetdb = 115;
#monetdb = 115; # unused (not packaged), removed 2016-09-19
#ripped = 116; # unused
#murmur = 117; # unused
foundationdb = 118;

View File

@ -145,7 +145,6 @@
./services/databases/hbase.nix
./services/databases/influxdb.nix
./services/databases/memcached.nix
./services/databases/monetdb.nix
./services/databases/mongodb.nix
./services/databases/mysql.nix
./services/databases/neo4j.nix
@ -388,6 +387,7 @@
./services/networking/ostinato.nix
./services/networking/pdnsd.nix
./services/networking/polipo.nix
./services/networking/powerdns.nix
./services/networking/pptpd.nix
./services/networking/prayer.nix
./services/networking/privoxy.nix

View File

@ -20,7 +20,7 @@
# Some networking tools.
pkgs.fuse
pkgs.sshfsFuse
pkgs.sshfs-fuse
pkgs.socat
pkgs.screen

View File

@ -229,107 +229,104 @@ let
# module provides the right hooks.
text = mkDefault
(''
# Account management.
account sufficient pam_unix.so
'' + optionalString use_ldap ''
account sufficient ${pam_ldap}/lib/security/pam_ldap.so
'' + optionalString config.krb5.enable ''
account sufficient ${pam_krb5}/lib/security/pam_krb5.so
'' + ''
# Account management.
account sufficient pam_unix.so
${optionalString use_ldap
"account sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
${optionalString config.krb5.enable
"account sufficient ${pam_krb5}/lib/security/pam_krb5.so"}
# Authentication management.
'' + optionalString cfg.rootOK ''
auth sufficient pam_rootok.so
'' + optionalString cfg.requireWheel ''
auth required pam_wheel.so use_uid
'' + optionalString cfg.logFailures ''
auth required pam_tally.so
'' + optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth) ''
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
''
# Authentication management.
${optionalString cfg.rootOK
"auth sufficient pam_rootok.so"}
${optionalString cfg.requireWheel
"auth required pam_wheel.so use_uid"}
${optionalString cfg.logFailures
"auth required pam_tally.so"}
${optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth)
"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"}
'' +
# Modules in this block require having the password set in PAM_AUTHTOK.
# pam_unix is marked as 'sufficient' on NixOS which means nothing will run
# after it succeeds. Certain modules need to run after pam_unix
# prompts the user for password so we run it once with 'required' at an
# earlier point and it will run again with 'sufficient' further down.
# We use try_first_pass the second time to avoid prompting password twice
(optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount)) ''
auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth
${optionalString config.security.pam.enableEcryptfs
"auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
${optionalString cfg.pamMount
"auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
'') + ''
${optionalString cfg.unixAuth
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
${optionalString cfg.otpwAuth
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
${let oath = config.security.pam.oath; in optionalString cfg.oathAuth
"auth sufficient ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}"}
${optionalString use_ldap
"auth sufficient ${pam_ldap}/lib/security/pam_ldap.so use_first_pass"}
${optionalString config.krb5.enable ''
auth [default=ignore success=1 service_err=reset] ${pam_krb5}/lib/security/pam_krb5.so use_first_pass
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
''}
auth required pam_deny.so
# Modules in this block require having the password set in PAM_AUTHTOK.
# pam_unix is marked as 'sufficient' on NixOS which means nothing will run
# after it succeeds. Certain modules need to run after pam_unix
# prompts the user for password so we run it once with 'required' at an
# earlier point and it will run again with 'sufficient' further down.
# We use try_first_pass the second time to avoid prompting password twice
+ optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount)) (''
auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok "}likeauth
'' + optionalString config.security.pam.enableEcryptfs ''
auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap
'' + optionalString cfg.pamMount ''
auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so
'')
+ optionalString cfg.unixAuth ''
auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok "}likeauth try_first_pass
'' + optionalString cfg.otpwAuth ''
auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so
'' + (let oath = config.security.pam.oath; in optionalString cfg.oathAuth ''
auth sufficient ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}
'') + optionalString use_ldap ''
auth sufficient ${pam_ldap}/lib/security/pam_ldap.so use_first_pass
'' + optionalString config.krb5.enable ''
auth [default=ignore success=1 service_err=reset] ${pam_krb5}/lib/security/pam_krb5.so use_first_pass
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
'' + ''
auth required pam_deny.so
# Password management.
password requisite pam_unix.so nullok sha512
${optionalString config.security.pam.enableEcryptfs
"password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
${optionalString cfg.pamMount
"password optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
${optionalString use_ldap
"password sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
${optionalString config.krb5.enable
"password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass"}
${optionalString config.services.samba.syncPasswordsByPam
"password optional ${pkgs.samba}/lib/security/pam_smbpass.so nullok use_authtok try_first_pass"}
# Password management.
password requisite pam_unix.so nullok sha512
'' + optionalString config.security.pam.enableEcryptfs ''
password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
'' + optionalString cfg.pamMount ''
password optional ${pkgs.pam_mount}/lib/security/pam_mount.so
'' + optionalString use_ldap ''
password sufficient ${pam_ldap}/lib/security/pam_ldap.so
'' + optionalString config.krb5.enable ''
password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass
'' + optionalString config.services.samba.syncPasswordsByPam ''
password optional ${pkgs.samba}/lib/security/pam_smbpass.so nullok use_authtok try_first_pass
'' + ''
# Session management.
'' + optionalString cfg.setEnvironment ''
session required pam_env.so envfile=${config.system.build.pamEnvironment}
'' + ''
session required pam_unix.so
'' + optionalString cfg.setLoginUid ''
session ${
if config.boot.isContainer then "optional" else "required"
} pam_loginuid.so
'' + optionalString cfg.makeHomeDir ''
session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022
'' + optionalString cfg.updateWtmp ''
session required ${pkgs.pam}/lib/security/pam_lastlog.so silent
'' + optionalString config.security.pam.enableEcryptfs ''
session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
'' + optionalString use_ldap ''
session optional ${pam_ldap}/lib/security/pam_ldap.so
'' + optionalString config.krb5.enable ''
session optional ${pam_krb5}/lib/security/pam_krb5.so
'' + optionalString cfg.otpwAuth ''
session optional ${pkgs.otpw}/lib/security/pam_otpw.so
'' + optionalString cfg.startSession ''
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
'' + optionalString cfg.forwardXAuth ''
session optional pam_xauth.so xauthpath=${pkgs.xorg.xauth}/bin/xauth systemuser=99
'' + optionalString (cfg.limits != []) ''
session required ${pkgs.pam}/lib/security/pam_limits.so conf=${makeLimitsConf cfg.limits}
'' + optionalString (cfg.showMotd && config.users.motd != null) ''
session optional ${pkgs.pam}/lib/security/pam_motd.so motd=${motd}
'' + optionalString cfg.pamMount ''
session optional ${pkgs.pam_mount}/lib/security/pam_mount.so
'' + optionalString (cfg.enableAppArmor && config.security.apparmor.enable) ''
session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug
'');
# Session management.
${optionalString cfg.setEnvironment ''
session required pam_env.so envfile=${config.system.build.pamEnvironment}
''}
session required pam_unix.so
${optionalString cfg.setLoginUid
"session ${
if config.boot.isContainer then "optional" else "required"
} pam_loginuid.so"}
${optionalString cfg.makeHomeDir
"session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022"}
${optionalString cfg.updateWtmp
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
${optionalString config.security.pam.enableEcryptfs
"session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
${optionalString use_ldap
"session optional ${pam_ldap}/lib/security/pam_ldap.so"}
${optionalString config.krb5.enable
"session optional ${pam_krb5}/lib/security/pam_krb5.so"}
${optionalString cfg.otpwAuth
"session optional ${pkgs.otpw}/lib/security/pam_otpw.so"}
${optionalString cfg.startSession
"session optional ${pkgs.systemd}/lib/security/pam_systemd.so"}
${optionalString cfg.forwardXAuth
"session optional pam_xauth.so xauthpath=${pkgs.xorg.xauth}/bin/xauth systemuser=99"}
${optionalString (cfg.limits != [])
"session required ${pkgs.pam}/lib/security/pam_limits.so conf=${makeLimitsConf cfg.limits}"}
${optionalString (cfg.showMotd && config.users.motd != null)
"session optional ${pkgs.pam}/lib/security/pam_motd.so motd=${motd}"}
${optionalString cfg.pamMount
"session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
"session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
'');
};
};

View File

@ -18,7 +18,7 @@ with lib;
config = mkIf config.security.rngd.enable {
services.udev.extraRules = ''
KERNEL=="random", TAG+="systemd"
SUBSYSTEM=="cpu", ENV{MODALIAS}=="x86cpu:*feature:*009E*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"
SUBSYSTEM=="cpu", ENV{MODALIAS}=="cpu:type:x86,*feature:*009E*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"
KERNEL=="hw_random", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"
${if config.services.tcsd.enable then "" else ''KERNEL=="tpm0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"''}
'';

View File

@ -1,88 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.monetdb;
monetdbUser = "monetdb";
in
with lib;
{
###### interface
options = {
services.monetdb = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable MonetDB database server.";
};
package = mkOption {
type = types.path;
description = "MonetDB package to use.";
};
dbfarmDir = mkOption {
type = types.path;
default = "/var/lib/monetdb";
description = ''
Specifies location of Monetdb dbfarm (keeps database and auxiliary files).
'';
};
port = mkOption {
default = "50000";
example = "50000";
description = "Port to listen on.";
};
};
};
###### implementation
config = mkIf cfg.enable {
users.extraUsers.monetdb =
{ name = monetdbUser;
uid = config.ids.uids.monetdb;
description = "monetdb user";
home = cfg.dbfarmDir;
};
users.extraGroups.monetdb.gid = config.ids.gids.monetdb;
environment.systemPackages = [ cfg.package ];
systemd.services.monetdb =
{ description = "MonetDB Server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
path = [ cfg.package ];
preStart =
''
# Initialise the database.
if ! test -e ${cfg.dbfarmDir}/.merovingian_properties; then
mkdir -m 0700 -p ${cfg.dbfarmDir}
chown -R ${monetdbUser} ${cfg.dbfarmDir}
${cfg.package}/bin/monetdbd create ${cfg.dbfarmDir}
${cfg.package}/bin/monetdbd set port=${cfg.port} ${cfg.dbfarmDir}
fi
'';
serviceConfig.ExecStart = "${cfg.package}/bin/monetdbd start -n ${cfg.dbfarmDir}";
serviceConfig.ExecStop = "${cfg.package}/bin/monetdbd stop ${cfg.dbfarmDir}";
unitConfig.RequiresMountsFor = "${cfg.dbfarmDir}";
};
};
}

View File

@ -59,17 +59,17 @@
<variablelist>
<varlistentry>
<term><varname>emacs</varname></term>
<term><varname>emacs24</varname></term>
<term><varname>emacs25</varname></term>
<listitem>
<para>
The latest stable version of Emacs 24 using the <link
The latest stable version of Emacs 25 using the <link
xlink:href="http://www.gtk.org">GTK+ 2</link> widget
toolkit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>emacs24-nox</varname></term>
<term><varname>emacs25-nox</varname></term>
<listitem>
<para>
Emacs 24 built without any dependency on X11
@ -86,15 +86,6 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>emacs25pre</varname></term>
<listitem>
<para>
A pretest version of what will become the first
version of Emacs 25.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>

View File

@ -22,7 +22,7 @@ in
default = false;
description = "
Mount filesystems on demand. Unmount them automatically.
You may also be interested in afuese.
You may also be interested in afuse.
";
};

View File

@ -0,0 +1,50 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.powerdns;
configDir = pkgs.writeTextDir "pdns.conf" "${cfg.extraConfig}";
in {
options = {
services.powerdns = {
enable = mkEnableOption "Powerdns domain name server";
extraConfig = mkOption {
type = types.lines;
default = "launch=bind";
description = ''
Extra lines to be added verbatim to pdns.conf.
Powerdns will chroot to /var/lib/powerdns.
So any file, powerdns is supposed to be read,
should be in /var/lib/powerdns and needs to specified
relative to the chroot.
'';
};
};
};
config = mkIf config.services.powerdns.enable {
systemd.services.pdns = {
unitConfig.Documentation = "man:pdns_server(1) man:pdns_control(1)";
description = "Powerdns name server";
wantedBy = [ "multi-user.target" ];
after = ["network.target" "mysql.service" "postgresql.service" "openldap.service"];
serviceConfig = {
Restart="on-failure";
RestartSec="1";
StartLimitInterval="0";
PrivateTmp=true;
PrivateDevices=true;
CapabilityBoundingSet="CAP_CHOWN CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT";
NoNewPrivileges=true;
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /var/lib/powerdns";
ExecStart = "${pkgs.powerdns}/bin/pdns_server --setuid=nobody --setgid=nogroup --chroot=/var/lib/powerdns --socket-dir=/ --daemon=no --guardian=no --disable-syslog --write-pid=no --config-dir=${configDir}";
ProtectSystem="full";
ProtectHome=true;
RestrictAddressFamilies="AF_UNIX AF_INET AF_INET6";
};
};
};
}

View File

@ -12,9 +12,17 @@ let
interfaces = concatMapStrings (x: " interface: ${x}\n") cfg.interfaces;
forward = optionalString (length cfg.forwardAddresses != 0)
"forward-zone:\n name: .\n" +
concatMapStrings (x: " forward-addr: ${x}\n") cfg.forwardAddresses;
isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1";
forward =
optionalString (any isLocalAddress cfg.forwardAddresses) ''
do-not-query-localhost: no
'' +
optionalString (cfg.forwardAddresses != []) ''
forward-zone:
name: .
'' +
concatMapStringsSep "\n" (x: " forward-addr: ${x}") cfg.forwardAddresses;
rootTrustAnchorFile = "${stateDir}/root.key";
@ -72,7 +80,11 @@ in
extraConfig = mkOption {
default = "";
type = types.str;
description = "Extra lines of unbound config.";
description = ''
Extra unbound config. See
<citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>8
</manvolnum></citerefentry>.
'';
};
};
@ -84,12 +96,9 @@ in
environment.systemPackages = [ pkgs.unbound ];
users.extraUsers = singleton {
name = "unbound";
uid = config.ids.uids.unbound;
users.users.unbound = {
description = "unbound daemon user";
home = stateDir;
createHome = true;
isSystemUser = true;
};
systemd.services.unbound = {
@ -107,12 +116,16 @@ in
chown unbound ${stateDir} ${rootTrustAnchorFile}
''}
touch ${stateDir}/dev/random
${pkgs.utillinux}/bin/mount --bind -n /dev/random ${stateDir}/dev/random
${pkgs.utillinux}/bin/mount --bind -n /dev/urandom ${stateDir}/dev/random
'';
serviceConfig = {
ExecStart = "${pkgs.unbound}/bin/unbound -d -c ${stateDir}/unbound.conf";
ExecStopPost="${pkgs.utillinux}/bin/umount ${stateDir}/dev/random";
ProtectSystem = true;
ProtectHome = true;
PrivateDevices = true;
};
};

View File

@ -32,10 +32,10 @@ in
e.efl e.enlightenment
e.terminology e.econnman
pkgs.xorg.xauth # used by kdesu
pkgs.gtk # To get GTK+'s themes.
pkgs.gtk2 # To get GTK+'s themes.
pkgs.tango-icon-theme
pkgs.shared_mime_info
pkgs.gnome.gnomeicontheme
pkgs.gnome2.gnomeicontheme
pkgs.xorg.xcursorthemes
];

View File

@ -46,7 +46,7 @@ let
HideUsers=${concatStringsSep "," dmcfg.hiddenUsers}
HideShells=/run/current-system/sw/bin/nologin
[XDisplay]
[X11]
MinimumVT=${toString xcfg.tty}
ServerPath=${xserverWrapper}
XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
@ -100,7 +100,7 @@ in
theme = mkOption {
type = types.str;
default = "maui";
default = "";
description = ''
Greeter theme to use.
'';

View File

@ -6,7 +6,7 @@ let
cfg = config.services.xserver.windowManager.awesome;
awesome = cfg.package;
inherit (pkgs.luaPackages) getLuaPath getLuaCPath;
in
{
@ -46,10 +46,8 @@ in
{ name = "awesome";
start =
''
${concatMapStrings (pkg: ''
export LUA_CPATH=$LUA_CPATH''${LUA_CPATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.so
export LUA_PATH=$LUA_PATH''${LUA_PATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.lua
'') cfg.luaModules}
export LUA_CPATH="${lib.concatStringsSep ";" (map getLuaCPath cfg.luaModules)}"
export LUA_PATH="${lib.concatStringsSep ";" (map getLuaPath cfg.luaModules)}"
${awesome}/bin/awesome &
waitPID=$!
@ -59,5 +57,4 @@ in
environment.systemPackages = [ awesome ];
};
}

View File

@ -85,10 +85,14 @@ in
};
config = mkIf (config.boot.initrd.network.enable && cfg.enable) {
assertions = [ {
assertion = cfg.hostRSAKey != null || cfg.hostDSSKey != null || cfg.hostECDSAKey != null;
message = "You should specify at least one host key for initrd SSH";
} ];
assertions = [
{ assertion = cfg.hostRSAKey != null || cfg.hostDSSKey != null || cfg.hostECDSAKey != null;
message = "You should specify at least one host key for initrd SSH";
}
{ assertion = cfg.authorizedKeys != [];
message = "You should specify at least one authorized key for initrd SSH";
}
];
boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs ${pkgs.dropbear}/bin/dropbear

View File

@ -391,7 +391,7 @@ in
};
networking.localCommands = mkOption {
type = types.str;
type = types.lines;
default = "";
example = "text=anything; echo You can put $text here.";
description = ''

View File

@ -3,17 +3,19 @@
, libSM, libsndfile, libogg
}:
stdenv.mkDerivation {
name = "freewheeling-100";
stdenv.mkDerivation rec {
name = "freewheeling-${version}";
version = "100";
src = fetchsvn {
url = svn://svn.code.sf.net/p/freewheeling/code;
rev = 100;
rev = version;
sha256 = "1m6z7p93xyha25qma9bazpzbp04pqdv5h3yrv6851775xsyvzksv";
};
nativeBuildInputs = [ pkgconfig autoreconfHook ];
buildInputs = [
pkgconfig autoreconfHook gnutls33 freetype SDL SDL_gfx SDL_ttf
gnutls33 freetype SDL SDL_gfx SDL_ttf
liblo libxml2 libjack2 alsaLib libvorbis libsndfile libogg libSM
];
@ -35,7 +37,6 @@ stdenv.mkDerivation {
software, released under the GNU GPL license.
'' ;
version = "r100";
homepage = "http://freewheeling.sourceforge.net";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.sepi ];

View File

@ -1,26 +0,0 @@
From 7a18f4cb77c567dec9ad924fcc76c50092de6ee7 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Mon, 23 Nov 2015 06:57:51 -0600
Subject: [PATCH 2/2] fix ConfigReader QStringList corruption
---
src/common/ConfigReader.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
index 5bf5a6a..34182e6 100644
--- a/src/common/ConfigReader.cpp
+++ b/src/common/ConfigReader.cpp
@@ -30,7 +30,8 @@
QTextStream &operator>>(QTextStream &str, QStringList &list) {
list.clear();
- foreach(const QStringRef &s, str.readLine().splitRef(QLatin1Char(',')))
+ QString line = str.readLine();
+ foreach(const QStringRef &s, line.splitRef(QLatin1Char(',')))
{
QStringRef trimmed = s.trimmed();
if (!trimmed.isEmpty())
--
2.6.3

View File

@ -1,11 +1,11 @@
{ stdenv, makeQtWrapper, fetchFromGitHub, fetchpatch
, cmake, pkgconfig, libxcb, libpthreadstubs, lndir
, cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs, lndir
, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
, themes
}:
let
version = "0.13.0";
version = "0.14.0";
unwrapped = stdenv.mkDerivation rec {
name = "sddm-unwrapped-${version}";
@ -14,19 +14,18 @@ let
owner = "sddm";
repo = "sddm";
rev = "v${version}";
sha256 = "0c3q8lpb123m9k5x3i71mm8lmyzhknw77zxh89yfl8qmn6zd61i1";
sha256 = "0wwid23kw0725zpw67zchalg9mmharr7sn4yzhijq7wqpsczjfxj";
};
patches = [
./0001-ignore-config-mtime.patch
./0002-fix-ConfigReader-QStringList-corruption.patch
(fetchpatch {
url = https://github.com/benjarobin/sddm/commit/7d05362e3c7c5945ad85b0176771bc1c5a370598.patch;
sha256 = "17f174lsb8vm7k1vx00yiqcipyyr6hgg4rm1rclps7saapfah5sj";
(fetchpatch { /* Fix display of user avatars. */
url = https://github.com/sddm/sddm/commit/ecb903e48822bd90650bdd64fe80754e3e9664cb.patch;
sha256 = "0zm88944pwdad8grmv0xwnxl23xml85ryc71x2xac233jxdyx6ms";
})
];
nativeBuildInputs = [ cmake pkgconfig qttools ];
nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
buildInputs = [
libxcb libpthreadstubs libXdmcp libXau qtbase pam systemd

View File

@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub, freetype, libX11, libXt, libXft
}:
stdenv.mkDerivation rec {
name = "deadpixi-sam-unstable";
version = "2016-09-15";
src = fetchFromGitHub {
owner = "deadpixi";
repo = "sam";
rev = "a6a8872246e8634d884b0ce52bc3be9770ab1b0f";
sha256 = "1zr8dl0vp1xic3dq69h4bp2fcxsjhrzasfl6ayvkibjd6z5dn07p";
};
postPatch = ''
substituteInPlace config.mk.def \
--replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2"
'';
makeFlags = [ "DESTDIR=$(out)" ];
buildInputs = [ libX11 libXt libXft ];
postInstall = ''
mkdir -p $out/share/applications
mv deadpixi-sam.desktop $out/share/applications
'';
meta = with stdenv.lib; {
inherit (src.meta) homepage;
description = "Updated version of the sam text editor";
license = with licenses; lpl-102;
maintainers = with maintainers; [ ramkromberg ];
platforms = with platforms; linux;
};
}

View File

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

View File

@ -1,111 +0,0 @@
{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d
, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
, alsaLib, cairo, acl, gpm, AppKit, CoreWLAN, Kerberos, GSS, ImageIO
, withX ? !stdenv.isDarwin
, withGTK3 ? false, gtk3 ? null
, withGTK2 ? true, gtk2
, enableTTYTrueColor ? false
}:
assert (libXft != null) -> libpng != null; # probably a bug
assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
assert withGTK2 -> withX || stdenv.isDarwin;
assert withGTK3 -> withX || stdenv.isDarwin;
assert withGTK2 -> !withGTK3 && gtk2 != null;
assert withGTK3 -> !withGTK2 && gtk3 != null;
let
toolkit =
if withGTK3 then "gtk3"
else if withGTK2 then "gtk2"
else "lucid";
in
stdenv.mkDerivation rec {
name = "emacs-24.5";
builder = ./builder.sh;
src = fetchurl {
url = "mirror://gnu/emacs/${name}.tar.xz";
sha256 = "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx";
};
patches = lib.optionals stdenv.isDarwin [
./at-fdcwd.patch
] ++ lib.optionals enableTTYTrueColor [
# Modified TTY True Color patch from: https://gist.github.com/choppsv1/36aacdd696d505566088
# To use, pass --color=true-color, which will default to using ';'
# as the separator.
# Alternatively, set $EMACS_TRUE_COLOR_SEPARATOR to ';' or ':'.
./tty-true-color.patch
];
postPatch = ''
sed -i 's|/usr/share/locale|${gettext}/share/locale|g' lisp/international/mule-cmds.el
# emacs runs then dumps itself. In the process, it keeps a copy of the
# PATH env var, holding all the build inputs in it's closure.
# Prevent that by running the self-dumping emacs with an empty PATH.
sed -i 's|^RUN_TEMACS = |&PATH= |' src/Makefile.in
'';
buildInputs =
[ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo acl gpm gettext ]
++ stdenv.lib.optional stdenv.isLinux dbus
++ stdenv.lib.optionals withX
[ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
imagemagick gconf ]
++ stdenv.lib.optional (withX && withGTK2) gtk2
++ stdenv.lib.optional (withX && withGTK3) gtk3
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo;
propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
configureFlags =
if stdenv.isDarwin
then [ "--with-ns" "--disable-ns-self-contained" ]
else if withX
then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
"--with-gif=no" "--with-tiff=no" ];
NIX_CFLAGS_COMPILE =
[ "-ffreestanding" ] # needed due to glibc 2.24 upgrade (see https://sourceware.org/glibc/wiki/Release/2.24#Known_Issues)
++ stdenv.lib.optional (stdenv.isDarwin && withX) "-I${cairo.dev}/include/cairo";
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
'' + stdenv.lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv nextstep/Emacs.app $out/Applications
'';
doCheck = true;
meta = with stdenv.lib; {
description = "GNU Emacs 24, the extensible, customizable text editor";
homepage = http://www.gnu.org/software/emacs/;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ chaoflow lovek323 peti the-kenny jwiegley ];
platforms = platforms.all;
longDescription = ''
GNU Emacs is an extensible, customizable text editorand more. At its
core is an interpreter for Emacs Lisp, a dialect of the Lisp
programming language with extensions to support text editing.
The features of GNU Emacs include: content-sensitive editing modes,
including syntax coloring, for a wide variety of file types including
plain text, source code, and HTML; complete built-in documentation,
including a tutorial for new users; full Unicode support for nearly all
human languages and their scripts; highly customizable, using Emacs
Lisp code or a graphical interface; a large number of extensions that
add other functionality, including a project planner, mail and news
reader, debugger interface, calendar, and more. Many of these
extensions are distributed with GNU Emacs; others are available
separately.
'';
};
}

View File

@ -1,428 +0,0 @@
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el
index 98108ce..21814a9 100644
--- a/lisp/term/tty-colors.el
+++ b/lisp/term/tty-colors.el
@@ -764,7 +764,8 @@
(auto . 0)
(ansi8 . 8)
(always . 8)
- (yes . 8))
+ (yes . 8)
+ (true-color . 16777216))
"An alist of supported standard tty color modes and their aliases.")
(defun tty-color-alist (&optional _frame)
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index c673749..244cf7f 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -674,6 +674,15 @@ versions of xterm."
;; are more colors to support, compute them now.
(when (> ncolors 0)
(cond
+ ((= (display-color-cells (selected-frame)) 16777216) ; 24-bit xterm
+ (let ((idx (length xterm-standard-colors)))
+ ;; Insert standard X colors after the standard xterm ones
+ (mapc (lambda (color)
+ (if (not (assoc (car color) xterm-standard-colors))
+ (progn
+ (tty-color-define (car color) idx (cdr color))
+ (setq idx (1+ idx)))))
+ color-name-rgb-alist)))
((= ncolors 240) ; 256-color xterm
;; 216 non-gray colors first
(let ((r 0) (g 0) (b 0))
diff --git a/src/dispextern.h b/src/dispextern.h
index 239c442..5760b84 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1739,9 +1739,15 @@ struct face
INLINE bool
face_tty_specified_color (unsigned long color)
{
- return color < FACE_TTY_DEFAULT_BG_COLOR;
+ return (color < FACE_TTY_DEFAULT_BG_COLOR);
}
+INLINE bool
+face_tty_specified_24_bit_color (unsigned long color)
+{
+ /* 24 bit colors have 24th but not 25th bit set */
+ return ((color & (0x03 << 24)) == (0x01 << 24));
+}
/* Non-zero if FACE was realized for unibyte use. */
#define FACE_UNIBYTE_P(FACE) ((FACE)->charset < 0)
diff --git a/src/term.c b/src/term.c
index 8312491..b14aded 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1915,18 +1915,40 @@ turn_on_face (struct frame *f, int face_id)
const char *ts;
char *p;
- ts = tty->standout_mode ? tty->TS_set_background : tty->TS_set_foreground;
+ if (face_tty_specified_24_bit_color(fg))
+ ts = tty->standout_mode ? tty->TS_set_rgb_background : tty->TS_set_rgb_foreground;
+ else
+ ts = tty->standout_mode ? tty->TS_set_background : tty->TS_set_foreground;
if (face_tty_specified_color (fg) && ts)
{
- p = tparam (ts, NULL, 0, fg, 0, 0, 0);
+ if (!face_tty_specified_24_bit_color(fg))
+ p = tparam (ts, NULL, 0, fg, 0, 0, 0);
+ else
+ {
+ const unsigned char r = (fg >> 16) & 0xFF,
+ g = (fg >> 8) & 0xFF,
+ b = fg & 0xFF;
+ p = tparam (ts, NULL, 0, (int)r, (int)g, (int)b, 0);
+ }
OUTPUT (tty, p);
xfree (p);
}
- ts = tty->standout_mode ? tty->TS_set_foreground : tty->TS_set_background;
+ if (face_tty_specified_24_bit_color(bg))
+ ts = tty->standout_mode ? tty->TS_set_rgb_foreground : tty->TS_set_rgb_background;
+ else
+ ts = tty->standout_mode ? tty->TS_set_foreground : tty->TS_set_background;
if (face_tty_specified_color (bg) && ts)
{
- p = tparam (ts, NULL, 0, bg, 0, 0, 0);
+ if (!face_tty_specified_24_bit_color(bg))
+ p = tparam (ts, NULL, 0, bg, 0, 0, 0);
+ else
+ {
+ const unsigned char r = (bg >> 16) & 0xFF,
+ g = (bg >> 8) & 0xFF,
+ b = bg & 0xFF;
+ p = tparam (ts, NULL, 0, (int)r, (int)g, (int)b, 0);
+ }
OUTPUT (tty, p);
xfree (p);
}
@@ -2028,6 +2050,8 @@ TERMINAL does not refer to a text terminal. */)
struct terminal *t = get_tty_terminal (terminal, 0);
if (!t)
return make_number (0);
+ else if (t->display_info.tty->TS_set_rgb_foreground)
+ return make_number (16777216); /* 24 bit True Color */
else
return make_number (t->display_info.tty->TN_max_colors);
}
@@ -2043,6 +2067,8 @@ static int default_no_color_video;
static char *default_orig_pair;
static char *default_set_foreground;
static char *default_set_background;
+static char *default_set_rgb_foreground;
+static char *default_set_rgb_background;
/* Save or restore the default color-related capabilities of this
terminal. */
@@ -2055,6 +2081,8 @@ tty_default_color_capabilities (struct tty_display_info *tty, bool save)
dupstring (&default_orig_pair, tty->TS_orig_pair);
dupstring (&default_set_foreground, tty->TS_set_foreground);
dupstring (&default_set_background, tty->TS_set_background);
+ dupstring (&default_set_rgb_foreground, tty->TS_set_rgb_foreground);
+ dupstring (&default_set_rgb_background, tty->TS_set_rgb_background);
default_max_colors = tty->TN_max_colors;
default_max_pairs = tty->TN_max_pairs;
default_no_color_video = tty->TN_no_color_video;
@@ -2064,6 +2092,8 @@ tty_default_color_capabilities (struct tty_display_info *tty, bool save)
tty->TS_orig_pair = default_orig_pair;
tty->TS_set_foreground = default_set_foreground;
tty->TS_set_background = default_set_background;
+ tty->TS_set_rgb_foreground = default_set_rgb_foreground;
+ tty->TS_set_rgb_background = default_set_rgb_background;
tty->TN_max_colors = default_max_colors;
tty->TN_max_pairs = default_max_pairs;
tty->TN_no_color_video = default_no_color_video;
@@ -2088,6 +2118,7 @@ tty_setup_colors (struct tty_display_info *tty, int mode)
tty->TN_max_pairs = 0;
tty->TN_no_color_video = 0;
tty->TS_set_foreground = tty->TS_set_background = tty->TS_orig_pair = NULL;
+ tty->TS_set_rgb_foreground = tty->TS_set_rgb_background = NULL;
break;
case 0: /* default colors, if any */
default:
@@ -2102,10 +2133,45 @@ tty_setup_colors (struct tty_display_info *tty, int mode)
tty->TS_set_foreground = "\033[3%dm";
tty->TS_set_background = "\033[4%dm";
#endif
+ tty->TS_set_rgb_foreground = NULL;
+ tty->TS_set_rgb_background = NULL;
tty->TN_max_colors = 8;
tty->TN_max_pairs = 64;
tty->TN_no_color_video = 0;
break;
+ case 16777216: /* RGB colors */
+ tty->TS_orig_pair = "\033[0m";
+
+ /* if the user hasn't explicitly chosen the ":" separator, use ";". */
+ char * true_color_separator = getenv ("EMACS_TRUE_COLOR_SEPARATOR");
+ if (true_color_separator && strcmp (true_color_separator, ":") == 0)
+ {
+ /* XXX chopps use ITU T.421 ':' separator */
+ /* TODO This should be extracted from terminfo/termcap. */
+#ifdef TERMINFO
+ tty->TS_set_rgb_foreground = "\033[38:2:%p1%d:%p2%d:%p3%dm";
+ tty->TS_set_rgb_background = "\033[48:2:%p1%d:%p2%d:%p3%dm";
+#else
+ tty->TS_set_rgb_foreground = "\033[38:2:%d:%d:%dm";
+ tty->TS_set_rgb_background = "\033[48:2:%d:%d:%dm";
+#endif
+ }
+ else
+ {
+ /* TODO This should be extracted from terminfo/termcap. */
+#ifdef TERMINFO
+ tty->TS_set_rgb_foreground = "\033[38;2;%p1%d;%p2%d;%p3%dm";
+ tty->TS_set_rgb_background = "\033[48;2;%p1%d;%p2%d;%p3%dm";
+#else
+ tty->TS_set_rgb_foreground = "\033[38;2;%d;%d;%dm";
+ tty->TS_set_rgb_background = "\033[48;2;%d;%d;%dm";
+#endif
+ }
+
+ tty->TN_max_colors = 16777216;
+ /*tty->TN_max_pairs = 64; TODO */
+ tty->TN_no_color_video = 0;
+ break;
}
}
@@ -4201,6 +4267,38 @@ use the Bourne shell command `TERM=... export TERM' (C-shell:\n\
tty->TN_no_color_video = tgetnum ("NC");
if (tty->TN_no_color_video == -1)
tty->TN_no_color_video = 0;
+
+
+ /* Allow the user to opt-in to True Color support. */
+ char * true_color_separator = getenv ("EMACS_TRUE_COLOR_SEPARATOR");
+ if (true_color_separator && strcmp (true_color_separator, ";") == 0)
+ {
+ /* TODO This should be extracted from terminfo/termcap. */
+#ifdef TERMINFO
+ tty->TS_set_rgb_foreground = "\033[38;2;%p1%d;%p2%d;%p3%dm";
+ tty->TS_set_rgb_background = "\033[48;2;%p1%d;%p2%d;%p3%dm";
+#else
+ tty->TS_set_rgb_foreground = "\033[38;2;%d;%d;%dm";
+ tty->TS_set_rgb_background = "\033[48;2;%d;%d;%dm";
+#endif
+ }
+ else if (true_color_separator && strcmp (true_color_separator, ":") == 0)
+ {
+ /* XXX chopps use ITU T.421 ':' separator */
+ /* TODO This should be extracted from terminfo/termcap. */
+#ifdef TERMINFO
+ tty->TS_set_rgb_foreground = "\033[38:2:%p1%d:%p2%d:%p3%dm";
+ tty->TS_set_rgb_background = "\033[48:2:%p1%d:%p2%d:%p3%dm";
+#else
+ tty->TS_set_rgb_foreground = "\033[38:2:%d:%d:%dm";
+ tty->TS_set_rgb_background = "\033[48:2:%d:%d:%dm";
+#endif
+ }
+ else
+ {
+ tty->TS_set_rgb_foreground = NULL;
+ tty->TS_set_rgb_background = NULL;
+ }
}
tty_default_color_capabilities (tty, 1);
diff --git a/src/termchar.h b/src/termchar.h
index d8066d7..e48d583 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -157,6 +157,10 @@ struct tty_display_info
const char *TS_set_foreground;
const char *TS_set_background;
+ /* Support for 24bit RGB color terminals. */
+ const char *TS_set_rgb_foreground;
+ const char *TS_set_rgb_background;
+
int TF_hazeltine; /* termcap hz flag. */
int TF_insmode_motion; /* termcap mi flag: can move while in insert mode. */
int TF_standout_motion; /* termcap mi flag: can move while in standout mode. */
diff --git a/src/xfaces.c b/src/xfaces.c
index 29c91f7..347ebf8 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -382,7 +382,7 @@ static ptrdiff_t lface_id_to_name_size;
/* TTY color-related functions (defined in tty-colors.el). */
-static Lisp_Object Qtty_color_desc, Qtty_color_by_index, Qtty_color_standard_values;
+static Lisp_Object Qtty_color_desc, Qtty_color_by_index, Qtty_color_standard_values, Qtty_color_canonicalize;
/* The name of the function used to compute colors on TTYs. */
@@ -943,54 +943,80 @@ tty_lookup_color (struct frame *f, Lisp_Object color, XColor *tty_color,
if (!STRINGP (color) || NILP (Ffboundp (Qtty_color_desc)))
return 0;
- XSETFRAME (frame, f);
-
- color_desc = call2 (Qtty_color_desc, color, frame);
- if (CONSP (color_desc) && CONSP (XCDR (color_desc)))
+ if (f->output_method == output_termcap
+ && f->output_data.tty->display_info->TS_set_rgb_foreground
+ && !NILP (Ffboundp (Qtty_color_standard_values)))
{
- Lisp_Object rgb;
-
- if (! INTEGERP (XCAR (XCDR (color_desc))))
- return 0;
+ /* Terminal supports 3 byte RGB colors. */
+ if (!NILP (Ffboundp (Qtty_color_canonicalize)))
+ color = call1(Qtty_color_canonicalize, color);
- tty_color->pixel = XINT (XCAR (XCDR (color_desc)));
+ color_desc = call1 (Qtty_color_standard_values, color);
+ if (! parse_rgb_list (color_desc, tty_color))
+ return 0;
- rgb = XCDR (XCDR (color_desc));
- if (! parse_rgb_list (rgb, tty_color))
- return 0;
+ /* Map XColor to 3 byte values. */
+ tty_color->pixel = 1 << 24 /* Set bit 24 to mark RGB values. */
+ | (tty_color->red / 256) << 16
+ | (tty_color->green / 256) << 8
+ | (tty_color->blue / 256);
- /* Should we fill in STD_COLOR too? */
if (std_color)
- {
- /* Default STD_COLOR to the same as TTY_COLOR. */
- *std_color = *tty_color;
-
- /* Do a quick check to see if the returned descriptor is
- actually _exactly_ equal to COLOR, otherwise we have to
- lookup STD_COLOR separately. If it's impossible to lookup
- a standard color, we just give up and use TTY_COLOR. */
- if ((!STRINGP (XCAR (color_desc))
- || NILP (Fstring_equal (color, XCAR (color_desc))))
- && !NILP (Ffboundp (Qtty_color_standard_values)))
- {
- /* Look up STD_COLOR separately. */
- rgb = call1 (Qtty_color_standard_values, color);
- if (! parse_rgb_list (rgb, std_color))
- return 0;
- }
- }
+ *std_color = *tty_color;
return 1;
}
- else if (NILP (Fsymbol_value (intern ("tty-defined-color-alist"))))
- /* We were called early during startup, and the colors are not
- yet set up in tty-defined-color-alist. Don't return a failure
- indication, since this produces the annoying "Unable to
- load color" messages in the *Messages* buffer. */
- return 1;
else
- /* tty-color-desc seems to have returned a bad value. */
- return 0;
+ {
+ XSETFRAME (frame, f);
+
+ color_desc = call2 (Qtty_color_desc, color, frame);
+ if (CONSP (color_desc) && CONSP (XCDR (color_desc)))
+ {
+ Lisp_Object rgb;
+
+ if (! INTEGERP (XCAR (XCDR (color_desc))))
+ return 0;
+
+ tty_color->pixel = XINT (XCAR (XCDR (color_desc)));
+
+ rgb = XCDR (XCDR (color_desc));
+ if (! parse_rgb_list (rgb, tty_color))
+ return 0;
+
+ /* Should we fill in STD_COLOR too? */
+ if (std_color)
+ {
+ /* Default STD_COLOR to the same as TTY_COLOR. */
+ *std_color = *tty_color;
+
+ /* Do a quick check to see if the returned descriptor is
+ actually _exactly_ equal to COLOR, otherwise we have to
+ lookup STD_COLOR separately. If it's impossible to lookup
+ a standard color, we just give up and use TTY_COLOR. */
+ if ((!STRINGP (XCAR (color_desc))
+ || NILP (Fstring_equal (color, XCAR (color_desc))))
+ && !NILP (Ffboundp (Qtty_color_standard_values)))
+ {
+ /* Look up STD_COLOR separately. */
+ rgb = call1 (Qtty_color_standard_values, color);
+ if (! parse_rgb_list (rgb, std_color))
+ return 0;
+ }
+ }
+
+ return 1;
+ }
+ else if (NILP (Fsymbol_value (intern ("tty-defined-color-alist"))))
+ /* We were called early during startup, and the colors are not
+ yet set up in tty-defined-color-alist. Don't return a failure
+ indication, since this produces the annoying "Unable to
+ load color" messages in the *Messages* buffer. */
+ return 1;
+ else
+ /* tty-color-desc seems to have returned a bad value. */
+ return 0;
+ }
}
/* A version of defined_color for non-X frames. */
@@ -1008,7 +1034,9 @@ tty_defined_color (struct frame *f, const char *color_name,
color_def->green = 0;
if (*color_name)
- status = tty_lookup_color (f, build_string (color_name), color_def, NULL);
+ {
+ status = tty_lookup_color (f, build_string (color_name), color_def, NULL);
+ }
if (color_def->pixel == FACE_TTY_DEFAULT_COLOR && *color_name)
{
@@ -5780,6 +5808,7 @@ map_tty_color (struct frame *f, struct face *face,
unsigned long default_pixel =
foreground_p ? FACE_TTY_DEFAULT_FG_COLOR : FACE_TTY_DEFAULT_BG_COLOR;
unsigned long pixel = default_pixel;
+ XColor true_color;
#ifdef MSDOS
unsigned long default_other_pixel =
foreground_p ? FACE_TTY_DEFAULT_BG_COLOR : FACE_TTY_DEFAULT_FG_COLOR;
@@ -5798,7 +5827,18 @@ map_tty_color (struct frame *f, struct face *face,
{
/* Associations in tty-defined-color-alist are of the form
(NAME INDEX R G B). We need the INDEX part. */
- pixel = XINT (XCAR (XCDR (def)));
+ if (f->output_method == output_termcap
+ && f->output_data.tty->display_info->TS_set_rgb_foreground
+ && parse_rgb_list (XCDR (XCDR(def)), &true_color))
+ {
+ /* Map XColor to 3 byte values. */
+ pixel = 1 << 24 /* Set bit 24 to mark RGB values. */
+ | (true_color.red / 256) << 16
+ | (true_color.green / 256) << 8
+ | (true_color.blue / 256);
+ }
+ else
+ pixel = XINT (XCAR (XCDR (def)));
}
if (pixel == default_pixel && STRINGP (color))
@@ -6460,6 +6500,7 @@ syms_of_xfaces (void)
DEFSYM (Qwindow_divider, "window-divider");
DEFSYM (Qwindow_divider_first_pixel, "window-divider-first-pixel");
DEFSYM (Qwindow_divider_last_pixel, "window-divider-last-pixel");
+ DEFSYM (Qtty_color_canonicalize, "tty-color-canonicalize");
DEFSYM (Qtty_color_desc, "tty-color-desc");
DEFSYM (Qtty_color_standard_values, "tty-color-standard-values");
DEFSYM (Qtty_color_by_index, "tty-color-by-index");

View File

@ -1,15 +0,0 @@
diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
index 84ede3e..8e8f42e 100644
--- a/lib/careadlinkat.h
+++ b/lib/careadlinkat.h
@@ -23,6 +23,10 @@
#include <fcntl.h>
#include <unistd.h>
+#ifndef AT_FDCWD
+#define AT_FDCWD -2
+#endif
+
struct allocator;
/* Assuming the current directory is FD, get the symbolic link value

View File

@ -1,17 +0,0 @@
;; NixOS specific load-path
(setq load-path
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
(split-string (or (getenv "NIX_PROFILES") ""))))
load-path))
;;; Make `woman' find the man pages
(eval-after-load 'woman
'(setq woman-manpath
(append (reverse (mapcar (lambda (x) (concat x "/share/man/"))
(split-string (or (getenv "NIX_PROFILES") ""))))
woman-manpath)))
;; Make tramp work for remote NixOS machines
;;; NOTE: You might want to add
(eval-after-load 'tramp
'(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))

View File

@ -1336,10 +1336,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20160905";
version = "20160912";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20160905.tar";
sha256 = "118xq8bsiwa6nfxm14ww5dmyf5r0cv69lf748cj39bcvg1qm94vn";
url = "https://elpa.gnu.org/packages/org-20160912.tar";
sha256 = "0g44hcyk9x0103mfkmkbrn4f36vlyrfxil1qd3fpwardcnaxr5w4";
};
packageRequires = [];
meta = {
@ -1529,10 +1529,10 @@
rudel = callPackage ({ cl-generic, cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "rudel";
version = "0.3";
version = "0.3.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/rudel-0.3.tar";
sha256 = "041yac9a7hbz1fpmjlmc31ggcgg90fmw08z6bkzly2141yky8yh1";
url = "https://elpa.gnu.org/packages/rudel-0.3.1.tar";
sha256 = "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz";
};
packageRequires = [ cl-generic cl-lib emacs ];
meta = {
@ -1687,10 +1687,10 @@
}) {};
stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "stream";
version = "2.2.1";
version = "2.2.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/stream-2.2.1.el";
sha256 = "1d91ddak5whb7kln216vhcsl707h5kirc6aqbkw82skhpg4c3ap1";
url = "https://elpa.gnu.org/packages/stream-2.2.2.el";
sha256 = "00p24ipn8frlhhwzrz6za7dq4fkhs8i8cwp48yhsq9zpnj9y38xb";
};
packageRequires = [ emacs ];
meta = {

File diff suppressed because it is too large Load Diff

View File

@ -1648,12 +1648,12 @@
auth-password-store = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, password-store, seq }:
melpaBuild {
pname = "auth-password-store";
version = "1.0.4";
version = "1.1.0";
src = fetchFromGitHub {
owner = "DamienCassou";
repo = "auth-password-store";
rev = "209663c772105ae87d244cce9247695823914a00";
sha256 = "1b6g7qvrxv6gkl4izq1y7k0x0l7izyfnpki10di5vdv3jp6xg9b2";
rev = "7b399fd7eb4a19f32d93ec6dc0eb3a344d2687aa";
sha256 = "021iqwn4lwpsx02m3ns8l3bn5dvssii5sk9vg32mh56fjpbi2dkj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0f4d2a28373ba93da5b280ebf40c5a3fa758ea11/recipes/auth-password-store";
@ -3565,12 +3565,12 @@
cliphist = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, popup }:
melpaBuild {
pname = "cliphist";
version = "0.3.1";
version = "0.4.0";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "cliphist";
rev = "7a1a8a6dcc046c7ede4480315c539c06e1bbadc9";
sha256 = "0h856l6rslawf3vg37xhsaw5w56r9qlwzbqapg751qg0v7wf0860";
rev = "5cddd9c0b3aacc9941214a749edd19ceb2cde7f4";
sha256 = "0hifxb3r54yinlal6bwhycwaspbz1kwkybvrcppkpdfg9jd88nfd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/82d86dae4ad8efc8ef342883c164c56e43079171/recipes/cliphist";
@ -3636,22 +3636,22 @@
license = lib.licenses.free;
};
}) {};
cljr-helm = callPackage ({ clj-refactor, fetchFromGitHub, fetchurl, helm, lib, melpaBuild }:
cljr-helm = callPackage ({ cl-lib ? null, clj-refactor, fetchFromGitHub, fetchurl, helm-core, lib, melpaBuild }:
melpaBuild {
pname = "cljr-helm";
version = "0.7";
version = "0.11";
src = fetchFromGitHub {
owner = "philjackson";
repo = "cljr-helm";
rev = "916d070503d0f484f36626c7a42f156b737e3fab";
sha256 = "18gv8vmmpiyq16cq4nr9nk2bmc5y2rsv21wjl4ji29rc7566shha";
rev = "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4";
sha256 = "0jy6hkz8sr1bplymwxnjg4q408cw2dgfrv70chlw3y5ddc4cingj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d99b67e295ef59916211bf22b57b4d093e3d53ab/recipes/cljr-helm";
sha256 = "108a1xgnc6qy088vs41j3npwk25a5vny0xx4r3yh76jsmpdpcgnc";
name = "cljr-helm";
};
packageRequires = [ clj-refactor helm ];
packageRequires = [ cl-lib clj-refactor helm-core ];
meta = {
homepage = "https://melpa.org/#/cljr-helm";
license = lib.licenses.free;
@ -3807,12 +3807,12 @@
cm-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "cm-mode";
version = "1.2";
version = "1.5";
src = fetchFromGitHub {
owner = "joostkremers";
repo = "criticmarkup-emacs";
rev = "1ac0d64842eb303323f2ebea61b4b6ba9f72969c";
sha256 = "1rwln3ms71fys3rdv3sx8w706aqn874im3kqcfrkxz86wiazm2d5";
rev = "12b7460691dc502d27329d6ac11c51cc83cd098e";
sha256 = "018limfwcb396yr2kn6jixxdmpmiif3l7gp0p1pmwbg07fldllha";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/42dda804ec0c7338c39c57eec6ba479609a38555/recipes/cm-mode";
@ -4692,6 +4692,27 @@
license = lib.licenses.free;
};
}) {};
conda = callPackage ({ dash, emacs, f, fetchFromGitHub, fetchurl, lib, melpaBuild, pythonic, s }:
melpaBuild {
pname = "conda";
version = "0.0.2";
src = fetchFromGitHub {
owner = "necaris";
repo = "conda.el";
rev = "d5bfe6ef6c2adecd1791ed87e3efb55208c0c7c1";
sha256 = "1pvhm8j49ixlp9jd1zfjzw0rnhjyy1jyipacagsqcyssq6p6khyw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/fcf762e34837975f5440a1d81a7f09699778123e/recipes/conda";
sha256 = "1hi292h6ccl7vkvyxcwwcdxw8q2brv3hy0mnlikzj2qy5pbnfg4y";
name = "conda";
};
packageRequires = [ dash emacs f pythonic s ];
meta = {
homepage = "https://melpa.org/#/conda";
license = lib.licenses.free;
};
}) {};
conkeror-minor-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "conkeror-minor-mode";
@ -5031,12 +5052,12 @@
csharp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "csharp-mode";
version = "0.8.12";
version = "0.9.0";
src = fetchFromGitHub {
owner = "josteink";
repo = "csharp-mode";
rev = "b4fb58af022a60c1c8161475e9c3fa023a0f9816";
sha256 = "0dqih7cy57sciqn5vz5fiwynpld96qldyl7jcgn9qpwnzb401ayx";
rev = "6c0a0d6cf602666d63a06c3652ce522b3a5a7661";
sha256 = "1pw96s0675rf35hwaxdzids9s8ynkb0g66yximiiz6ryh4ama0wn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/736716bbcfd9c9fb1d10ce290cb4f66fe1c68f44/recipes/csharp-mode";
@ -5260,12 +5281,12 @@
darktooth-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "darktooth-theme";
version = "0.1.44";
version = "0.1.48";
src = fetchFromGitHub {
owner = "emacsfodder";
repo = "emacs-theme-darktooth";
rev = "839c94048e0a3e9ac6e286212c7626f3fb7ac2c9";
sha256 = "1nagwhd8n69iysa4m5i7xxi06w6z4hsrvjsgmdg5msyi14ci5lip";
rev = "a9891537f5d49fae2deb631fea0752ab61d3852e";
sha256 = "19gwhhspkyrnyf277g8kpk57f9l0fp16jaj8va0j1qh1n64fxazn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b7f62ac1566ced7332e83253f79078dc30cb7889/recipes/darktooth-theme";
@ -6220,6 +6241,27 @@
license = lib.licenses.free;
};
}) {};
doom-themes = callPackage ({ all-the-icons, dash, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "doom-themes";
version = "1.0.8";
src = fetchFromGitHub {
owner = "hlissner";
repo = "emacs-doom-theme";
rev = "45022da883e7ba84a1f832c266e9f2c9a01b393c";
sha256 = "1mgd6pqqnq28714bvfn70nbfdypw7q57y9a3hgg9v4b60mhjhd7f";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/73fd9f3c2352ea1af49166c2fe586d0410614081/recipes/doom-themes";
sha256 = "1ckr8rv1i101kynnx666lm7qa73jf9i5lppgwmhlc76lisg07cik";
name = "doom-themes";
};
packageRequires = [ all-the-icons dash emacs ];
meta = {
homepage = "https://melpa.org/#/doom-themes";
license = lib.licenses.free;
};
}) {};
downplay-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "downplay-mode";
@ -7039,12 +7081,12 @@
ein = callPackage ({ cl-generic, fetchFromGitHub, fetchurl, lib, melpaBuild, request, websocket }:
melpaBuild {
pname = "ein";
version = "0.8.1";
version = "0.10.0";
src = fetchFromGitHub {
owner = "millejoh";
repo = "emacs-ipython-notebook";
rev = "9fc8dd3be4a556d7abf6977c889887a38232929f";
sha256 = "0w2j0bbqnba1wr12f0zk87zwnxf6xhchx224fwgwqd3kg0x5z0r3";
rev = "0c47d8078d075c87bcc0bb2f072bef14fa57cd7e";
sha256 = "1dljb6pd35l5mv51fm0bjfw4g6d19fj5sc1yag7jir6nmx0k992m";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/3201516c0158c47d0226ef9c5d324d29ac7b088b/recipes/ein";
@ -7501,12 +7543,12 @@
elpa-mirror = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "elpa-mirror";
version = "1.2.2";
version = "2.1.0";
src = fetchFromGitHub {
owner = "redguardtoo";
repo = "elpa-mirror";
rev = "940c17f757ddaf9c076503af2bb15d04f299692c";
sha256 = "0h2xhys3cc9z61ax0ymg5fbsjg6192hwdvfhgmyq7vwibi402r1f";
rev = "9cf096448b69c795b20aab89557e9add6029b13c";
sha256 = "05la1v1p7wyrjflh8lv3pwr7ywm2rvvzhh8phr24w31jfs2kp4gf";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d64ce7042c45f29fb394be25ce415912182bac8b/recipes/elpa-mirror";
@ -8303,8 +8345,8 @@
version = "0.1";
src = fetchhg {
url = "https://bitbucket.com/seanfarley/erc-hipchatify";
rev = "b237cf8118fd";
sha256 = "11a64rvhd88val6vg9l1d5j3zdjd0bbbwcqilj0wp6rbn57xy0w8";
rev = "dbb74dd91c5a";
sha256 = "0m72jwgp9zqm1aphg7xm3pzj2xvavqfpdx66lny8pvfv8lph93lj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b60e01e7064ce486fdac3d1b39fd4a1296b0dac5/recipes/erc-hipchatify";
@ -8446,12 +8488,12 @@
erlang = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "erlang";
version = "19.0.5";
version = "19.0.7";
src = fetchFromGitHub {
owner = "erlang";
repo = "otp";
rev = "71894a879d6254693791585246ce340dd7414b82";
sha256 = "0s0s94jsqqpny5z2qdbb62h45cz8lh2if65q26jlcgbyz2729j77";
rev = "33b39b559a31c38465dfc038218f432c9c60a9ad";
sha256 = "1swcakbd3m8c7yzh8h1mdbxd1hyxpza1cb993ixqv4ydhz9bppn3";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/04867a574773e8794335a2664d4f5e8b243f3ec9/recipes/erlang";
@ -9830,12 +9872,12 @@
fill-column-indicator = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fill-column-indicator";
version = "1.81";
version = "1.87";
src = fetchFromGitHub {
owner = "alpaker";
repo = "Fill-Column-Indicator";
rev = "5cbc077083775d4719a294455a8a8a53bb3151f8";
sha256 = "0fghhy5xqsdwal4fwlr6hxr5kpnfw71q79mxpp9db59ldnj9f5y9";
rev = "0e755319451dd9c6c99c2a2ef82c890ba93343b6";
sha256 = "0gbqspqn4y7f2fwqq8210b6k5q22c0zr7b4ws8qgz9swav8g3vrq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4ea0c00a7784621fcca0391a9c8ea85e9dd43852/recipes/fill-column-indicator";
@ -11388,6 +11430,27 @@
license = lib.licenses.free;
};
}) {};
fsbot-data-browser = callPackage ({ dash, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "fsbot-data-browser";
version = "0.2";
src = fetchFromGitHub {
owner = "benaiah";
repo = "fsbot-data-browser";
rev = "d8d441fafe1c9a8402269841a4b2285f6625ca82";
sha256 = "0lljfn31lhp52n0dp6lpd0mx4jdrhpkivjjghk6yka1659vz0s32";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/37a0901b98e1c66be6906234e6d6520a6e940e97/recipes/fsbot-data-browser";
sha256 = "0jijvl07jk200fs01ln4dmw5nx9jg3f9b7gjaknyd18vyvbwr3s5";
name = "fsbot-data-browser";
};
packageRequires = [ dash ];
meta = {
homepage = "https://melpa.org/#/fsbot-data-browser";
license = lib.licenses.free;
};
}) {};
fsharp-mode = callPackage ({ company, company-quickhelp, dash, fetchFromGitHub, fetchurl, lib, melpaBuild, popup, pos-tip, s }:
melpaBuild {
pname = "fsharp-mode";
@ -12562,6 +12625,27 @@
license = lib.licenses.free;
};
}) {};
go-add-tags = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "go-add-tags";
version = "0.2";
src = fetchFromGitHub {
owner = "syohex";
repo = "emacs-go-add-tags";
rev = "a6a879889729d579297935598d26b985f900ef29";
sha256 = "1s4jwpwxlqxi9h5qqjcvxz3i8rgfrs874rpadp6lhizdhpjjp82y";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/55d3b893bd68d3d2d86ecdbb4ed442edd256516a/recipes/go-add-tags";
sha256 = "0nvas44rsvqzk2ay5bhzkbrnzql13vnxq9pk4lp4mvp86dda9qim";
name = "go-add-tags";
};
packageRequires = [ cl-lib emacs s ];
meta = {
homepage = "https://melpa.org/#/go-add-tags";
license = lib.licenses.free;
};
}) {};
go-autocomplete = callPackage ({ auto-complete, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "go-autocomplete";
@ -12775,12 +12859,12 @@
google-translate = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "google-translate";
version = "0.11.10";
version = "0.11.13";
src = fetchFromGitHub {
owner = "atykhonov";
repo = "google-translate";
rev = "84d75daa644c0e73289fc428ff35acdc0943cbbb";
sha256 = "0dzr1nb1s1sh8rv5wr9xfjd5xna54vp03y3h4q59vmnynsn64m9b";
rev = "c859592c3fda01594b270e388414a79373b5587b";
sha256 = "1arwq4nld3capjj2b3ask1pwy89fz25f550fb7cnhiv5rhqr51iw";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e3c275e59cbfe6e40f9cd4c470fc66544c9a6d21/recipes/google-translate";
@ -12880,12 +12964,12 @@
govc = callPackage ({ dash, emacs, fetchFromGitHub, fetchurl, json-mode, lib, magit-popup, melpaBuild, s }:
melpaBuild {
pname = "govc";
version = "0.8.0";
version = "0.9.0";
src = fetchFromGitHub {
owner = "vmware";
repo = "govmomi";
rev = "c0c7ce63df7edd78e713257b924c89d9a2dac119";
sha256 = "1yj4iimwfv3d4m24ifmncc2z09dlmxjr1dhryh4afkpgj48x4lcv";
rev = "f9184c1d704efa615d419dd8d1dae1ade94701d1";
sha256 = "1q86wklz73qmyif04fv5y42imly3yab5bjc8ymka8xkc5lh71mwm";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/92d6391318021c63b06fe39b0ca38f667bb45ae9/recipes/govc";
@ -13006,12 +13090,12 @@
grandshell-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "grandshell-theme";
version = "1.0";
version = "1.1";
src = fetchFromGitHub {
owner = "steckerhalter";
repo = "grandshell-theme";
rev = "6bf34fb1a3117244629a7fb23daf610f50854bed";
sha256 = "1202fwwwdr74q6s5jv1n0mvmq4n9mra85l14hdhwh2kks513s6vs";
rev = "f9dbaa341fce72f9deaf69bfaa09282168ebaf9d";
sha256 = "03lr4gim7yynwx0n06dd1vy6hbizxwc8hcwzz1gbvla2509njga7";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5b04b0024f5a0367e2998d35ca88c2613a8e3470/recipes/grandshell-theme";
@ -13537,22 +13621,22 @@
license = lib.licenses.free;
};
}) {};
haskell-mode = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
haskell-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "haskell-mode";
version = "13.20.1";
version = "16.1";
src = fetchFromGitHub {
owner = "haskell";
repo = "haskell-mode";
rev = "9eef80d1a16ac3b41b62b8d79ecbafa62e00c6c9";
sha256 = "1xckvi2s62hwrrrd6g446gszyqdk6bmd2hcrc6m0qfnyjkvg6jf0";
rev = "d2ea5239bf02f3917a78a5c2dcbc5b6f6dd1b359";
sha256 = "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/7f18b4dcbad4192b0153a316cff6533272898f1a/recipes/haskell-mode";
sha256 = "0wijvcpfdbl17iwzy47vf8brkj2djarfr8y28rw0wqvbs381zzwp";
name = "haskell-mode";
};
packageRequires = [ cl-lib emacs ];
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/haskell-mode";
license = lib.licenses.free;
@ -13767,6 +13851,27 @@
license = lib.licenses.free;
};
}) {};
helm-bibtex = callPackage ({ biblio, cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, parsebib, s }:
melpaBuild {
pname = "helm-bibtex";
version = "2.0.0";
src = fetchFromGitHub {
owner = "tmalsburg";
repo = "helm-bibtex";
rev = "d6a98ac6f28d2a6a05e203115211c98333d40aca";
sha256 = "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f4118a7721435240cf8489daa4dd39369208855b/recipes/helm-bibtex";
sha256 = "037pqgyyb2grg88yfxx1r8yp4lrgz2fyzz9fbbp34l8s6vk3cp4z";
name = "helm-bibtex";
};
packageRequires = [ biblio cl-lib dash f helm parsebib s ];
meta = {
homepage = "https://melpa.org/#/helm-bibtex";
license = lib.licenses.free;
};
}) {};
helm-bm = callPackage ({ bm, cl-lib ? null, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, s }:
melpaBuild {
pname = "helm-bm";
@ -14337,12 +14442,12 @@
helm-mt = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, helm, lib, melpaBuild, multi-term }:
melpaBuild {
pname = "helm-mt";
version = "0.8";
version = "0.9";
src = fetchFromGitHub {
owner = "dfdeshom";
repo = "helm-mt";
rev = "10790691f083c3806c9e85758b7ea73b5e24c5ed";
sha256 = "1k1jzzxygpmxnj07br7ah2582sdj67vqmipykz7yzrprd8r9c8fw";
rev = "d2bff4100118483bc398c56d0ff095294209265b";
sha256 = "1wci63y0vjvrvrylkhhrz8p9q0ml6la5cpj4rx5cwin9rkmislm6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/e726bf0b9b3f371b21f1f0d75175e0dda62f6fb0/recipes/helm-mt";
@ -16517,6 +16622,27 @@
license = lib.licenses.free;
};
}) {};
ivy-bibtex = callPackage ({ biblio, cl-lib ? null, dash, f, fetchFromGitHub, fetchurl, lib, melpaBuild, parsebib, s, swiper }:
melpaBuild {
pname = "ivy-bibtex";
version = "2.0.0";
src = fetchFromGitHub {
owner = "tmalsburg";
repo = "helm-bibtex";
rev = "d6a98ac6f28d2a6a05e203115211c98333d40aca";
sha256 = "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/c23c09225c57a9b9abe0a0a770a9184ae2e58f7c/recipes/ivy-bibtex";
sha256 = "0qni48s09lgzqr98r49dhrzpfqp9yfwga11h7vhqclscjvlalpc2";
name = "ivy-bibtex";
};
packageRequires = [ biblio cl-lib dash f parsebib s swiper ];
meta = {
homepage = "https://melpa.org/#/ivy-bibtex";
license = lib.licenses.free;
};
}) {};
ivy-gitlab = callPackage ({ dash, fetchFromGitHub, fetchurl, gitlab, ivy, lib, melpaBuild, s }:
melpaBuild {
pname = "ivy-gitlab";
@ -16686,12 +16812,12 @@
jade = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, js2-mode, lib, melpaBuild, seq, websocket }:
melpaBuild {
pname = "jade";
version = "0.19";
version = "0.20";
src = fetchFromGitHub {
owner = "NicolasPetton";
repo = "jade";
rev = "94f53bbd8aa8719b3d83ce038f68e74695b86ed4";
sha256 = "0c40pg9f9w90fb1gwpl4z5wxhi0ng8j2fr6kf60yhbwg65x92w2k";
rev = "856846322ea8077ffe6215b54f2f3676db5ccf61";
sha256 = "03ckvamv61hpk1lcw6z66wsyg471qy979vm3wf8brq9zwapfknia";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b989c1bd83f20225314b6e903c5e1df972551c19/recipes/jade";
@ -18713,6 +18839,27 @@
license = lib.licenses.free;
};
}) {};
magithub = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, magit, melpaBuild }:
melpaBuild {
pname = "magithub";
version = "0.1";
src = fetchFromGitHub {
owner = "vermiculus";
repo = "magithub";
rev = "c94ff69749dd14200956e0b59a3757618c594730";
sha256 = "12z9gl5lrvdfvhvk213phhgddvvr3y3hpigpzzcq0jla65db367b";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4605012c9d43403e968609710375e34f1b010235/recipes/magithub";
sha256 = "1c3rbav13rw16ngjhjwnz80v653k8df63fkw0kayd80xrkxhrkxw";
name = "magithub";
};
packageRequires = [ emacs magit ];
meta = {
homepage = "https://melpa.org/#/magithub";
license = lib.licenses.free;
};
}) {};
make-color = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "make-color";
@ -19052,12 +19199,12 @@
material-theme = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "material-theme";
version = "1.0";
version = "1.1";
src = fetchFromGitHub {
owner = "cpaulik";
repo = "emacs-material-theme";
rev = "b465a4f2112240df9e65f8326160d0c3e09a5a89";
sha256 = "05cjgjmawndmgw2dl71sx5msj8csn0jr72rfxnw7jx24p4c33nkk";
rev = "0890ff69a0fa1f908e79d0f68b1bb3cf0d55af40";
sha256 = "0fd868ph4kdzp889j18wl4j5lypd5ggf1s69hz5sg0sn761b06x0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d31ababaa50061e767605c979a3f327a654e564b/recipes/material-theme";
@ -19217,6 +19364,27 @@
license = lib.licenses.free;
};
}) {};
meghanada = callPackage ({ cl-lib ? null, company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
melpaBuild {
pname = "meghanada";
version = "0.1.0";
src = fetchFromGitHub {
owner = "mopemope";
repo = "meghanada-emacs";
rev = "3c7ffe201735d4b6dbc1e449248194eaa40e6c07";
sha256 = "15yc312lixa2kv8fij6yp52dqgwi4pdf6w4b776flbqd14y23amd";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
sha256 = "10f1fxma3lqcyv78i0p9mjpi79jfjd5lq5q60ylpxqp18nrql1s4";
name = "meghanada";
};
packageRequires = [ cl-lib company emacs flycheck yasnippet ];
meta = {
homepage = "https://melpa.org/#/meghanada";
license = lib.licenses.free;
};
}) {};
melpa-upstream-visit = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
melpaBuild {
pname = "melpa-upstream-visit";
@ -19532,6 +19700,27 @@
license = lib.licenses.free;
};
}) {};
mips-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "mips-mode";
version = "1.0.1";
src = fetchFromGitHub {
owner = "hlissner";
repo = "emacs-mips-mode";
rev = "dcde079176c1419ec24df08b62dd77a897892437";
sha256 = "0jvbcld3abm45qzsbcaf6f1zd71hgdg5y47v6c0ri4xgwgcwqrvc";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/024a76b83efce47271bcb0ce3bde01b88349f391/recipes/mips-mode";
sha256 = "0gg18v80lbndi2yyr5nl37mz0zpamwv9ha4clajkf0bc0vplxkj7";
name = "mips-mode";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/mips-mode";
license = lib.licenses.free;
};
}) {};
mmm-mako = callPackage ({ fetchhg, fetchurl, lib, melpaBuild, mmm-mode }:
melpaBuild {
pname = "mmm-mako";
@ -19930,22 +20119,22 @@
license = lib.licenses.free;
};
}) {};
mu4e-alert = callPackage ({ alert, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
mu4e-alert = callPackage ({ alert, emacs, fetchFromGitHub, fetchurl, ht, lib, melpaBuild, s }:
melpaBuild {
pname = "mu4e-alert";
version = "0.3";
version = "0.4";
src = fetchFromGitHub {
owner = "iqbalansari";
repo = "mu4e-alert";
rev = "83e6232b43902c7124fea16145de0da881bfe865";
sha256 = "0wrg6f7czn61f9wmrk27dzcdskznm5i1pwwjck5h768j0y9dfv6a";
rev = "75ee79ed663bde0bd52f09c5b444cbd9e13a738a";
sha256 = "09sywhf1g8yqadzp19djar2gm3fmilqi3pbdm0hvm9b7xpq1gg44";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/5a48e8cb571e91b582ff0dea18e8dc75601edc35/recipes/mu4e-alert";
sha256 = "15nwj09iyrvjsc9lrxla6qa0s8izcllxghw5gx3ffncfcrx2l8qm";
name = "mu4e-alert";
};
packageRequires = [ alert emacs s ];
packageRequires = [ alert emacs ht s ];
meta = {
homepage = "https://melpa.org/#/mu4e-alert";
license = lib.licenses.free;
@ -20581,11 +20770,11 @@
}) {};
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
pname = "notmuch";
version = "0.22.1";
version = "0.22.2";
src = fetchgit {
url = "git://git.notmuchmail.org/git/notmuch";
rev = "b824ecc48f1e838ab19e346b0eec17ff02432493";
sha256 = "08jwa7fg2wnk5nhzd56lyvsgi6icgmzmb30mpvpvm4v2afwlhbvj";
rev = "da5029e2ac8dfd8a839de1f6a4701237d0b34db1";
sha256 = "0fryxrgz8l9397jcink5cybn4l57lzav6a4ar8p6rj5p9f7lr0d6";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
@ -20832,12 +21021,12 @@
ob-sagemath = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s, sage-shell-mode }:
melpaBuild {
pname = "ob-sagemath";
version = "0.2.4";
version = "0.3";
src = fetchFromGitHub {
owner = "stakemori";
repo = "ob-sagemath";
rev = "98560075eb0a9dc5ad1e3102ac1154543692d74d";
sha256 = "08p64ss3ia1gq6dsna5v3ajjwm5g9ma7yvd5y0jx91xssjqq5dja";
rev = "02955d24bd204d330891ec57921edd56f854f721";
sha256 = "02bz2jgpvrhqwp6jrdb8msr272mz0g2q6857m06yg7vcxpj4xlkz";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/dc074af316a09906a26ad957a56e3dc272cd813b/recipes/ob-sagemath";
@ -21000,12 +21189,12 @@
olivetti = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "olivetti";
version = "1.5.3";
version = "1.5.6";
src = fetchFromGitHub {
owner = "rnkn";
repo = "olivetti";
rev = "1553934954ea47e4d2de676c42324ed4790cfd14";
sha256 = "1n978yv19bsy5876lnp16xs1qg1frdbicf9c9h2rvil5myrljhyj";
rev = "de2716cfb1f4dc82a08093cdd00200e9bb1f07ef";
sha256 = "0gfjrfhmjvq2zkyp0bgxymdv6r7p4x40aicvv1r61z29nz4dbyn2";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/697334ca3cdb9630572ae267811bd5c2a67d2a95/recipes/olivetti";
@ -23184,12 +23373,12 @@
persp-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "persp-mode";
version = "2.7";
version = "2.8";
src = fetchFromGitHub {
owner = "Bad-ptr";
repo = "persp-mode.el";
rev = "2c559083fa316b97b76e25c491a45aec5f2fe501";
sha256 = "091k1pnkw4a62di6lj7gkczzpgf2jsxpj3brpfjs8gkcgx07vxsh";
rev = "dfa6c66a038d84d9b7f17e0bc1471f3efea7acb6";
sha256 = "1nplmw0n8ap1sbshb7p1mrdw835f7a4ih1zxjg13wx0dls65zpa2";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/caad63d14f770f07d09b6174b7b40c5ab06a1083/recipes/persp-mode";
@ -24165,6 +24354,27 @@
license = lib.licenses.free;
};
}) {};
projectile-variable = callPackage ({ cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, projectile }:
melpaBuild {
pname = "projectile-variable";
version = "0.0.1";
src = fetchFromGitHub {
owner = "zonuexe";
repo = "projectile-variable";
rev = "810394eabf330325a86ec6f60c69e160eb837ac3";
sha256 = "183azck3bi4qwpprcc07kvwm3piwqgql7ryy1czvmw3kbdmk1rpj";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ff603b43235f546cd47f72e675aee88d5f41e855/recipes/projectile-variable";
sha256 = "1cj8nwxf1jp5q5zzxp92fxla6jhwzd21gw649ar6mygi4hgymsji";
name = "projectile-variable";
};
packageRequires = [ cl-lib emacs projectile ];
meta = {
homepage = "https://melpa.org/#/projectile-variable";
license = lib.licenses.free;
};
}) {};
projekt = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "projekt";
@ -24336,12 +24546,12 @@
pug-mode = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "pug-mode";
version = "1.0.3";
version = "1.0.4";
src = fetchFromGitHub {
owner = "hlissner";
repo = "emacs-pug-mode";
rev = "48d5977e5efcf3650a1628b5cbffffdd164cd773";
sha256 = "1wiiarxh0lcxvy56f1rxdbk1iwhdynl2xn6v8nr35bw1l82b1j9g";
rev = "bff32a818ccc9e400210b942bd5e67fa21551148";
sha256 = "1ad5n8v40acj17qficbzrnixbmg5wplmbd8h1z9hdxhbrkwy5323";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/b3710aac9f3df3a23238af1f969c462b3692f260/recipes/pug-mode";
@ -25008,12 +25218,12 @@
rc-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "rc-mode";
version = "1.0.6";
version = "1.0.13";
src = fetchFromGitHub {
owner = "mrhmouse";
repo = "rc-mode.el";
rev = "b9b48e24a55083e4911f2b497ed4d9676a192e88";
sha256 = "06ln916fim58q44g67zlnsipfxcramyrqbm9adh52mdbk44j4bf9";
rev = "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f";
sha256 = "0skjg3l3ss8nlrpnpjjflmf7wjib4jfarkmx4438nc6vm6553fmn";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/d8062b2e5b2744a6e614b389cca7e7f21b582f6f/recipes/rc-mode";
@ -25974,12 +26184,12 @@
sage-shell-mode = callPackage ({ cl-lib ? null, deferred, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sage-shell-mode";
version = "0.1.1";
version = "0.2.0";
src = fetchFromGitHub {
owner = "stakemori";
repo = "sage-shell-mode";
rev = "26303698cbd807b4cbaa241b0671f7e542a3bbe4";
sha256 = "1124akipvrcmkd66slklgap2jdvb8iksldd8sjvg9n25kp0wd0vr";
rev = "00881a50b5c8a9994e318e107e7848c1c9f119df";
sha256 = "0w1ba3rky07p7qsh2f59xfrhfip3k2db33pblyvs7z0fd0qwwsv0";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/ff7cefd5497aec9ed271fd783625fed445c4ac12/recipes/sage-shell-mode";
@ -26307,6 +26517,27 @@
license = lib.licenses.free;
};
}) {};
sexy-monochrome-theme = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sexy-monochrome-theme";
version = "1.0";
src = fetchFromGitHub {
owner = "nuncostans";
repo = "sexy-monochrome-theme";
rev = "64570387a30ec5ac685cb11824ee24f8890572e1";
sha256 = "0fbm7gqg17blfpb5lybqvqw9qifsqjiprw65ih3asvrgynrxh2ra";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/9a09ffb7d271773f6cfa7c7eeaba45a717a5bdca/recipes/sexy-monochrome-theme";
sha256 = "1qmbb2aaa1lc18l9kk42iq466hy2mg7565b0gb7hdvfqsi05d8dg";
name = "sexy-monochrome-theme";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/sexy-monochrome-theme";
license = lib.licenses.free;
};
}) {};
shackle = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "shackle";
@ -27546,6 +27777,27 @@
license = lib.licenses.free;
};
}) {};
sphinx-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "sphinx-mode";
version = "0.1.1";
src = fetchFromGitHub {
owner = "Fuco1";
repo = "sphinx-mode";
rev = "3d6e3059350593dc077f06f54c33869b9e28f7bc";
sha256 = "0l3a8swmf3sm54ayk2ahh1i5j1hf0hd822dfmx50kgwi4wpv48sp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/269acf093c3aa508479bf532a4e07c9c6d568c72/recipes/sphinx-mode";
sha256 = "16p5xlj4q9fyhz70r73w48fivwzpz9mcq710qqxqaap1aajkh84b";
name = "sphinx-mode";
};
packageRequires = [];
meta = {
homepage = "https://melpa.org/#/sphinx-mode";
license = lib.licenses.free;
};
}) {};
splitjoin = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "splitjoin";
@ -28215,6 +28467,27 @@
license = lib.licenses.free;
};
}) {};
swift3-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "swift3-mode";
version = "2.1.1";
src = fetchFromGitHub {
owner = "taku0";
repo = "swift3-mode";
rev = "ea34d46bf9a4293e75ffdac9500d34989316d9e9";
sha256 = "1hwc3fxv87hmw0a0mgl8khfzf1p7yp2izkc02z8f1vbkaibmmawp";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/0ca9071199230d3c4c1b2e3a501736df87095fd3/recipes/swift3-mode";
sha256 = "14vm05p8ix09v73dkmf03i56yib8yk6h2r1zc9m4ym80fki4f520";
name = "swift3-mode";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://melpa.org/#/swift3-mode";
license = lib.licenses.free;
};
}) {};
swiper = callPackage ({ emacs, fetchFromGitHub, fetchurl, ivy, lib, melpaBuild }:
melpaBuild {
pname = "swiper";
@ -30950,12 +31223,12 @@
ws-butler = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
melpaBuild {
pname = "ws-butler";
version = "0.3";
version = "0.5";
src = fetchFromGitHub {
owner = "lewang";
repo = "ws-butler";
rev = "106d313c0dad532c2da3cc78770a8a2f0396aa85";
sha256 = "1lv0l27lrp6xyl0c5yhlnyjwx872izq02z8x34da9jv3walxpk8f";
rev = "b59e36b2451193bf96176f5a006bf506770a40f3";
sha256 = "0ij88qr7gk07dchhjsn3nlk8fqgbkp4qhvn14dqxndn3zr64ix7v";
};
recipeFile = fetchurl {
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1645a51d487c8902eb6e59fb1884f85f48cec6f/recipes/ws-butler";

View File

@ -1,10 +1,10 @@
{ callPackage }: {
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20160905";
version = "20160912";
src = fetchurl {
url = "http://orgmode.org/elpa/org-20160905.tar";
sha256 = "01zm7s5qbh1xvxddd93i6cmz3m7x2s67zwzah5q5l3hgnvbx750q";
url = "http://orgmode.org/elpa/org-20160912.tar";
sha256 = "1xawj0pdvqrgzlixxgbfa01gzajfaz47anr5m4aw035rhc6s02r7";
};
packageRequires = [];
meta = {
@ -14,10 +14,10 @@
}) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org-plus-contrib";
version = "20160905";
version = "20160912";
src = fetchurl {
url = "http://orgmode.org/elpa/org-plus-contrib-20160905.tar";
sha256 = "1wx51iqg1cfrf220yslp2lq9s7klbv6bbxq0d2ygj47yjikkf39r";
url = "http://orgmode.org/elpa/org-plus-contrib-20160912.tar";
sha256 = "15id0gz60hqbhr183vnz4winpisa2kwrh47zqz37a5yx5b8fc84r";
};
packageRequires = [];
meta = {

View File

@ -1,12 +1,12 @@
{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d
, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls
, alsaLib, cairo, acl, gpm, AppKit, CoreWLAN, Kerberos, GSS, ImageIO
, autoconf, automake
, withX ? !stdenv.isDarwin
, withGTK2 ? true, gtk2 ? null
, withGTK3 ? false, gtk3 ? null
, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
, withGTK2 ? true, gtk2
, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
}:
assert (libXft != null) -> libpng != null; # probably a bug
@ -19,71 +19,68 @@ assert withXwidgets -> withGTK3 && webkitgtk24x != null;
let
toolkit =
if withGTK3 then "gtk3"
else if withGTK2 then "gtk2"
if withGTK2 then "gtk2"
else if withGTK3 then "gtk3"
else "lucid";
in
stdenv.mkDerivation rec {
name = "emacs-25.1-rc2";
builder = ./builder.sh;
name = "emacs-25.1";
src = fetchurl {
url = "ftp://alpha.gnu.org/gnu/emacs/pretest/${name}.tar.xz";
sha256 = "1hffvyvl50mrivdv6lp92sbxi3l2zhblj8npmpbzk47zpl1mzm2v";
url = "mirror://gnu//emacs/${name}.tar.xz";
sha256 = "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr";
};
patches = lib.optionals stdenv.isDarwin [
./at-fdcwd.patch
];
patches = lib.optional stdenv.isDarwin ./at-fdcwd.patch;
postPatch = ''
sed -i 's|/usr/share/locale|${gettext}/share/locale|g' lisp/international/mule-cmds.el
'';
nativeBuildInputs = [ pkgconfig ]
++ lib.optionals srcRepo [ autoconf automake texinfo ];
buildInputs =
[ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo acl gpm gettext
autoconf automake ]
++ stdenv.lib.optional stdenv.isLinux dbus
++ stdenv.lib.optionals withX
[ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
++ lib.optional stdenv.isLinux dbus
++ lib.optionals withX
[ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
imagemagick gconf ]
++ stdenv.lib.optional (withX && withGTK2) gtk2
++ stdenv.lib.optional (withX && withGTK3) gtk3
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo
++ stdenv.lib.optionals withXwidgets [webkitgtk24x wrapGAppsHook glib_networking];
++ lib.optional (withX && withGTK2) gtk2
++ lib.optional (withX && withGTK3) gtk3
++ lib.optional (stdenv.isDarwin && withX) cairo
++ lib.optionals withXwidgets [ webkitgtk24x wrapGAppsHook glib_networking ];
propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
hardeningDisable = [ "format" ];
configureFlags =
(if stdenv.isDarwin
configureFlags = [ "--with-modules" ] ++
(if stdenv.isDarwin
then [ "--with-ns" "--disable-ns-self-contained" ]
else if withX
then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
"--with-gif=no" "--with-tiff=no" ])
++ stdenv.lib.optional withXwidgets "--with-xwidgets";
++ lib.optional withXwidgets "--with-xwidgets";
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
"-I${cairo.dev}/include/cairo";
preConfigure = lib.optionalString srcRepo ''
./autogen.sh
'' + ''
substituteInPlace lisp/international/mule-cmds.el \
--replace /usr/share/locale ${gettext}/share/locale
preBuild = ''
find . -name '*.elc' -delete
for makefile_in in $(find . -name Makefile.in -print); do
substituteInPlace $makefile_in --replace /bin/pwd pwd
done
'';
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
'' + stdenv.lib.optionalString stdenv.isDarwin ''
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv nextstep/Emacs.app $out/Applications
'';
meta = with stdenv.lib; {
description = "GNU Emacs 25 (pre), the extensible, customizable text editor";
description = "The extensible, customizable GNU text editor";
homepage = http://www.gnu.org/software/emacs/;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ chaoflow lovek323 peti the-kenny jwiegley ];

View File

@ -1,13 +1,13 @@
{ stdenv, fetchFromGitHub, unzip, pkgconfig, makeWrapper
{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper, makeDesktopItem
, ncurses, libtermkey, lpeg, lua
, acl ? null, libselinux ? null
, version ? "2016-07-15"
, rev ? "5c2cee9461ef1199f2e80ddcda699595b11fdf08"
, sha256 ? "1jmsv72hq0c2f2rnpllvd70cmxbjwfhynzwaxx24f882zlggwsnd"
, version ? "2016-08-24"
, rev ? "010dcd60ffda37027908f2a0b20c751b83ca975e"
, sha256 ? "0bpbyi5yq50zw0hkh326pmdcnm91paf1yz4853dcq63y0ddv89jp"
}:
stdenv.mkDerivation rec {
name = "vis-nightly-${version}";
name = "vis-unstable-${version}";
inherit version;
src = fetchFromGitHub {
@ -17,10 +17,9 @@ stdenv.mkDerivation rec {
owner = "martanne";
};
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [
unzip pkgconfig
ncurses
libtermkey
lua
@ -34,18 +33,38 @@ stdenv.mkDerivation rec {
LUA_PATH="${lpeg}/share/lua/${lua.luaversion}/?.lua";
postInstall = ''
mkdir -p "$out/share/applications"
cp $desktopItem/share/applications/* $out/share/applications
echo wrapping $out/bin/vis with runtime environment
wrapProgram $out/bin/vis \
--prefix LUA_CPATH : "${lpeg}/lib/lua/${lua.luaversion}/?.so" \
--prefix LUA_PATH : "${lpeg}/share/lua/${lua.luaversion}/?.lua" \
--prefix VIS_PATH : "$out/share/vis"
--prefix VIS_PATH : "\$HOME/.config:$out/share/vis"
'';
desktopItem = makeDesktopItem rec {
name = "vis";
exec = "vis %U";
type = "Application";
icon = "accessories-text-editor";
comment = meta.description;
desktopName = "vis";
genericName = "Text editor";
categories = stdenv.lib.concatStringsSep ";" [
"Application" "Development" "IDE"
];
mimeType = stdenv.lib.concatStringsSep ";" [
"text/plain" "application/octet-stream"
];
startupNotify = "false";
terminal = "true";
};
meta = with stdenv.lib; {
description = "A vim like editor";
homepage = http://github.com/martanne/vis;
license = licenses.isc;
maintainers = [ maintainers.vrthra ];
maintainers = with maintainers; [ vrthra ramkromberg ];
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,120 @@
{ stdenv, fetchurl, cmake, ecm, makeQtWrapper
# For `digitaglinktree`
, perl, sqlite
, qtbase
, qtxmlpatterns
, qtsvg
, qtwebkit
, kconfigwidgets
, kcoreaddons
, kdoctools
, kfilemetadata
, knotifications
, knotifyconfig
, ktextwidgets
, kwidgetsaddons
, kxmlgui
, bison
, boost
, eigen
, exiv2
, flex
, jasper
, lcms2
, lensfun
, libgphoto2
, libkipi
, liblqr1
, libusb1
, marble
, mysql
, opencv
, threadweaver
# For panorama and focus stacking
, enblend-enfuse
, hugin
, gnumake
, oxygen
}:
stdenv.mkDerivation rec {
name = "digikam-${version}";
version = "5.1.0";
src = fetchurl {
url = "http://download.kde.org/stable/digikam/${name}.tar.xz";
sha256 = "1w97a5cmg39dgmjgmjwa936gcrmxjms3h2ww61qi1lny84p5x4a7";
};
nativeBuildInputs = [ cmake ecm makeQtWrapper ];
buildInputs = [
qtbase
qtxmlpatterns
qtsvg
qtwebkit
kconfigwidgets
kcoreaddons
kdoctools
kfilemetadata
knotifications
knotifyconfig
ktextwidgets
kwidgetsaddons
kxmlgui
bison
boost
eigen
exiv2
flex
jasper
lcms2
lensfun
libgphoto2
libkipi
liblqr1
libusb1
marble.unwrapped
mysql
opencv
threadweaver
oxygen
];
enableParallelBuilding = true;
cmakeFlags = [
"-DLIBUSB_LIBRARIES=${libusb1.out}/lib"
"-DLIBUSB_INCLUDE_DIR=${libusb1.dev}/include/libusb-1.0"
"-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1"
];
fixupPhase = ''
substituteInPlace $out/bin/digitaglinktree \
--replace "/usr/bin/perl" "${perl}/bin/perl" \
--replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
wrapQtProgram $out/bin/digikam \
--prefix PATH : "${gnumake}/bin:${hugin}/bin:${enblend-enfuse}/bin"
wrapQtProgram $out/bin/showfoto
'';
meta = {
description = "Photo Management Program";
license = stdenv.lib.licenses.gpl2;
homepage = http://www.digikam.org;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,32 +1,72 @@
{ stdenv, fetchurl, makeWrapper, autoreconfHook, boost, file
, glib, glibc, libgnome_keyring, gnome_keyring, gtk, gtkmm, intltool
, libctemplate, libglade
, libiodbc
, libgnome, libsigcxx, libuuid, libxml2, libzip, lua, mesa, mysql
, pango, pcre, pkgconfig, sqlite, sudo
, pythonPackages
{ stdenv, fetchurl, makeWrapper, cmake, pkgconfig
, glibc, gnome_keyring, gtk, gtkmm, pcre, swig, sudo
, mysql, libxml2, libctemplate, libmysqlconnectorcpp
, vsqlite, tinyxml, gdal, libiodbc, libpthreadstubs
, libXdmcp, libuuid, libzip, libgnome_keyring, file
, pythonPackages, jre, autoconf, automake, libtool
, boost, glibmm, libsigcxx, pangomm, libX11, openssl
, proj, cairo, libglade
}:
let
inherit (pythonPackages) pexpect pycrypto python paramiko;
in stdenv.mkDerivation rec {
pname = "mysql-workbench";
version = "5.2.47";
version = "6.3.7";
name = "${pname}-${version}";
src = fetchurl {
url = "http://mirror.cogentco.com/pub/mysql/MySQLGUITools/mysql-workbench-gpl-${version}-src.tar.gz";
sha256 = "1343fn3msdxqfpxw0kgm0mdx5r7g9ra1cpc8p2xhl7kz2pmqp4p6";
url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
sha256 = "1v4k04facdn2qzflf0clf3ir5hghqlabq89ssm2s4x1nqdniz544";
};
buildInputs = [ autoreconfHook boost file glib glibc libgnome_keyring gtk gtkmm intltool
libctemplate libglade libgnome libiodbc libsigcxx libuuid libxml2 libzip lua makeWrapper mesa
mysql.lib paramiko pcre pexpect pkgconfig pycrypto python sqlite ];
buildInputs = [ cmake pkgconfig glibc gnome_keyring gtk gtk.dev gtkmm pcre swig python sudo
paramiko mysql libxml2 libctemplate libmysqlconnectorcpp vsqlite tinyxml gdal libiodbc file
libpthreadstubs libXdmcp libuuid libzip libgnome_keyring libgnome_keyring.dev jre autoconf
automake libtool boost glibmm glibmm.dev libsigcxx pangomm libX11 pexpect pycrypto openssl
proj cairo cairo.dev makeWrapper libglade ] ;
prePatch = ''
for f in backend/wbpublic/{grt/spatial_handler.h,grtui/geom_draw_box.h,objimpl/db.query/db_query_Resultset.cpp} ;
do
sed -i 's@#include <gdal/@#include <@' $f ;
done
sed -i '32s@mysqlparser@mysqlparser sqlparser@' library/mysql.parser/CMakeLists.txt
cat <<EOF > ext/antlr-runtime/fix-configure
#!${stdenv.shell}
echo "fixing bundled antlr3c configure" ;
sed -i 's@/usr/bin/file@${file}/bin/file@' configure
sed -i '12121d' configure
EOF
chmod +x ext/antlr-runtime/fix-configure
sed -i '236s@&&@& ''${PROJECT_SOURCE_DIR}/ext/antlr-runtime/fix-configure &@' CMakeLists.txt
preConfigure = ''
substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc.bin}/bin/catchsegv"
substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "/usr/lib/x86_64-linux-gnu" "${proj}/lib"
patchShebangs $(pwd)/library/mysql.parser/grammar/build-parser
patchShebangs $(pwd)/tools/get_wb_version.sh
'';
NIX_CFLAGS_COMPILE = [
"-I${libsigcxx}/lib/sigc++-2.0/include"
"-I${pangomm}/lib/pangomm-1.4/include"
"-I${glibmm}/lib/giomm-2.4/include"
];
cmakeFlags = [
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
"-DCTemplate_INCLUDE_DIR=${libctemplate}/include"
"-DCAIRO_INCLUDE_DIRS=${cairo.dev}/include"
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include"
"-DGTK2_GLIBCONFIG_INCLUDE_DIR=${gtk.dev}/include"
"-DGTK2_GTKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gtkmm-2.4/include"
"-DGTK2_GDKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gdkmm-2.4/include"
"-DGTK2_GLIBMMCONFIG_INCLUDE_DIR=${glibmm}/lib/glibmm-2.4/include"
];
postInstall = ''
patchShebangs $out/share/mysql-workbench/extras/build_freetds.sh
@ -52,7 +92,7 @@ in stdenv.mkDerivation rec {
# used because we cannot clean up after ourselves due to the exec call.
# Start gnome-keyring-daemon, export the environment variables it asks us to set.
for expr in $( gnome-keyring-daemon --components=ssh,pkcs11 --start ) ; do eval "export "$expr ; done
for expr in $( gnome-keyring-daemon --start ) ; do eval "export "$expr ; done
# Prepare fifo pipe.
FIFOCTL="/tmp/gnome-keyring-daemon-ctl.$$.fifo"

View File

@ -157,9 +157,7 @@ in rec {
fi
'';
impureEnvVars = [
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
};
in {

View File

@ -113,6 +113,14 @@ common = { pname, version, sha512 }: stdenv.mkDerivation rec {
"$out/bin/firefox" --version
'';
postFixup =
# Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
''
patchelf --set-rpath "${lib.getLib libnotify
}/lib:$(patchelf --print-rpath "$out"/lib/firefox-*/libxul.so)" \
"$out"/lib/firefox-*/libxul.so
'';
meta = {
description = "A web browser" + lib.optionalString (pname == "firefox-esr") " (Extended Support Release)";
homepage = http://www.mozilla.com/en-US/firefox/;

View File

@ -98,6 +98,10 @@ stdenv.mkDerivation rec {
mkdir -p $(dirname $preload)
gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
echo $preload > $plugins/extra-ld-preload
# Prevent a dependency on gcc.
strip -S $preload
patchELF $preload
'';
dontStrip = true;

View File

@ -10,9 +10,5 @@ stdenv.mkDerivation {
buildInputs = [ curl ];
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
impureEnvVars = ["http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

View File

@ -0,0 +1,28 @@
# This file was generated by go2nix.
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "machine-${version}";
version = "0.8.1";
goPackagePath = "github.com/docker/machine";
src = fetchFromGitHub {
rev = "v${version}";
owner = "docker";
repo = "machine";
sha256 = "0l4a5bqfw8i8wrl5yzkqy848r7vdx6hw8p5m3z3vzabvsmsjjwy7";
};
postFixup = ''
mv $bin/bin/cmd $bin/bin/docker-machine
'';
meta = with stdenv.lib; {
homepage = https://docs.docker.com/machine/;
description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts.";
license = licenses.asl20;
maintainers = with maintainers; [ offline tailhook ];
platforms = platforms.linux;
};
}

View File

@ -10,9 +10,5 @@ stdenv.mkDerivation {
buildInputs = [ curl ];
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
impureEnvVars = ["http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

View File

@ -0,0 +1,33 @@
{ stdenv, fetchFromGitHub, gtk3, json_glib, sqlite, libsoup, gettext, vala_0_32
, automake, autoconf, libtool, pkgconfig, gnome3, gst_all_1, wrapGAppsHook }:
stdenv.mkDerivation rec {
version = "1.3.1";
name = "corebird-${version}";
src = fetchFromGitHub {
owner = "baedert";
repo = "corebird";
rev = version;
sha256 = "1a7b6hinl5p7yanf75a0khki2fvd04km1xlkwnspgx75cmnbnn5z";
};
preConfigure = ''
./autogen.sh
'';
nativeBuildInputs = [ automake autoconf libtool pkgconfig wrapGAppsHook ];
buildInputs = [
gtk3 json_glib sqlite libsoup gettext vala_0_32 gnome3.rest
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav ]);
meta = {
description = "Native Gtk+ Twitter client for the Linux desktop";
longDescription = "Corebird is a modern, easy and fun Twitter client.";
homepage = http://corebird.baedert.org;
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.jonafato ];
};
}

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pythonPackages }:
pythonPackages.buildPythonPackage rec {
pythonPackages.buildPythonApplication rec {
name = "errbot-${version}";
version = "4.2.2";
@ -23,7 +23,7 @@ pythonPackages.buildPythonPackage rec {
webtest bottle threadpool rocket-errbot requests2 jinja2
pyopenssl colorlog Yapsy markdown ansi pygments dns pep8
daemonize pygments-markdown-lexer telegram irc slackclient
pyside sleekxmpp hypchat
pyside sleekxmpp hypchat pytest
];
meta = with stdenv.lib; {

View File

@ -4,7 +4,7 @@
pythonPackages.buildPythonApplication rec {
name = "blink-${version}";
version = "2.0.0";
src = fetchurl {
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
sha256 = "07hvy45pavgkvdlh4wbz3shsxh4fapg96qlqmfymdi1nfhwghb05";
@ -15,8 +15,7 @@ pythonPackages.buildPythonApplication rec {
sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
'';
propagatedBuildInputs = with pythonPackages;[ pyqt4 cjson sipsimple twisted
];
propagatedBuildInputs = with pythonPackages; [ pyqt4 cjson sipsimple twisted ];
buildInputs = [ pythonPackages.cython zlib libvncserver libvpx ];

View File

@ -1,16 +1,17 @@
{ stdenv, lib, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "xmpp-client-${version}";
version = "20160110-${stdenv.lib.strings.substring 0 7 rev}";
rev = "525bd26cf5f56ec5aee99464714fd1d019c119ff";
version = "20160916-${stdenv.lib.strings.substring 0 7 rev}";
rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e";
goPackagePath = "github.com/agl/xmpp-client";
src = fetchgit {
src = fetchFromGitHub {
owner = "agl";
repo = "xmpp-client";
inherit rev;
url = "https://github.com/agl/xmpp-client";
sha256 = "0a1r08zs723ikcskmn6ylkdi3frcd0i0lkx30i9q39ilf734v253";
sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s";
};
goDeps = ./deps.nix;

View File

@ -1,16 +1,14 @@
{ stdenv, fetchurl, fetchpatch, ncurses, which, perl, autoreconfHook
{ stdenv, fetchurl, ncurses, which, perl
, gdbm ? null
, openssl ? null
, cyrus_sasl ? null
, gpgme ? null
, aclocal ? null
, headerCache ? true
, sslSupport ? true
, saslSupport ? true
, gpgmeSupport ? true
, imapSupport ? true
, withSidebar ? false
, withTrash ? false
, withSidebar ? true
}:
assert headerCache -> gdbm != null;
@ -22,11 +20,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "mutt-${version}";
version = "1.6.2";
version = "1.7.0";
src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
sha256 = "13hxmji7v9m2agmvzrs7gzx8s3c9jiwrv7pbkr7z1kc6ckq2xl65";
sha256 = "0idkamdiwj9fgqaz1vzkfg78cnmkzp74skv0ibw2xjfq6ds9hghx";
};
buildInputs =
@ -34,8 +32,7 @@ stdenv.mkDerivation rec {
++ optional headerCache gdbm
++ optional sslSupport openssl
++ optional saslSupport cyrus_sasl
++ optional gpgmeSupport gpgme
++ optional withSidebar autoreconfHook;
++ optional gpgmeSupport gpgme;
configureFlags = [
(enableFeature headerCache "hcache")
@ -60,18 +57,6 @@ stdenv.mkDerivation rec {
] ++ optional sslSupport "--with-ssl"
++ optional saslSupport "--with-sasl";
patches =
optional withTrash (fetchpatch {
name = "trash.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/trash.patch?h=mutt-sidebar";
sha256 = "1hrib9jk28mqd02nzv0sx01jfdabzvnwcc5qjc3810zfglzc1nql";
}) ++
optional withSidebar (fetchpatch {
name = "sidebar.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/sidebar.patch?h=mutt-sidebar";
sha256 = "1l63wj7kw41jrh00mcxdw4p4vrbc9wld42s99liw8kz2aclymq5m";
});
meta = {
description = "A small but very powerful text-based mail client";
homepage = http://www.mutt.org;

View File

@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
sha256 = "1lydkh6by0sjy6dl57bzg7c11ccyp24s80pwxw9h5kmxkbw6mx5q";
};
prePatch = ''
substituteInPlace "libfreerdp/freerdp.pc.in" --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
'';
patches = [
] ++ stdenv.lib.optional (pcsclite != null)
(substituteAll {
@ -38,7 +42,6 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional buildServer "-DWITH_SERVER=ON"
++ stdenv.lib.optional optimize "-DWITH_SSE2=ON";
meta = with stdenv.lib; {
description = "A Remote Desktop Protocol Client";
longDescription = ''

View File

@ -1,4 +1,4 @@
{stdenv, fetchFromGitHub, makeWrapper, gettext, python3Packages, rsync, cron, openssh, sshfsFuse, encfs }:
{stdenv, fetchFromGitHub, makeWrapper, gettext, python3Packages, rsync, cron, openssh, sshfs-fuse, encfs }:
let
inherit (python3Packages) python dbus-python keyring;
@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
sha256 = "0n3x48wa8aa7i8fff85h3b5h3xpabk51ld0ymy3pkqh0krfgs59a";
};
buildInputs = [ makeWrapper gettext python dbus-python keyring openssh cron rsync sshfsFuse encfs ];
buildInputs = [ makeWrapper gettext python dbus-python keyring openssh cron rsync sshfs-fuse encfs ];
installFlags = [ "DEST=$(out)" ];

View File

@ -11,7 +11,7 @@ stdenv.mkDerivation {
sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
};
preInstall = ''
prePatch = ''
sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
'';

View File

@ -0,0 +1,10 @@
LibreOffice
===========
To generate `libreoffice-srcs.nix`:
nix-shell default-gen-shell.nix --run generate
To generate `libreoffice-srcs-still.nix`:
nix-shell still-gen-shell.nix --run generate

View File

@ -0,0 +1,29 @@
{ pkgs ? (import <nixpkgs> {}) }:
with pkgs;
let
primary-src = callPackage ./default-primary-src.nix {};
in
stdenv.mkDerivation {
name = "generate-libreoffice-srcs-shell";
buildCommand = "exit 1";
downloadList = stdenv.mkDerivation {
name = "libreoffice-${primary-src.version}-download-list";
inherit (primary-src) src version;
builder = ./download-list-builder.sh;
};
buildInputs = [ python3 ];
shellHook = ''
function generate {
python3 generate-libreoffice-srcs.py > libreoffice-srcs.nix
}
'';
}

View File

@ -0,0 +1,17 @@
{ fetchurl }:
rec {
major = "5";
minor = "2";
patch = "1";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "14g2xwpid4vsgmc69rs7hz1wx96dfkq0cbm32vjgljsm7a19qfc1";
};
}

View File

@ -18,15 +18,15 @@
, kdeIntegration ? false
}:
let
primary-src = import ./default-primary-src.nix { inherit fetchurl; };
in
with { inherit (primary-src) major minor subdir version; };
let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
major = "5";
minor = "2";
patch = "1";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
inherit name md5;
@ -64,10 +64,7 @@ let
in stdenv.mkDerivation rec {
name = "libreoffice-${version}";
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "14g2xwpid4vsgmc69rs7hz1wx96dfkq0cbm32vjgljsm7a19qfc1";
};
inherit (primary-src) src;
# Openoffice will open libcups dynamically, so we link it directly
# to make its dlopen work.

View File

@ -0,0 +1,3 @@
source $stdenv/setup
tar --extract --file=$src libreoffice-$version/download.lst -O > $out

View File

@ -0,0 +1,269 @@
#!/usr/bin/env python3
"""
Converts the LibreOffice `download.lst` file into a Nix expression.
Requires an environment variable named `downloadList` identifying the path
of the input file, and writes the result to stdout.
todo - Ideally we would move as much as possible into derivation dependencies.
"""
import collections, itertools, json, re, sys, os
def main():
print('[')
for x in get_packages():
print('{')
print(' name = "{}";'.format(x['tarball']))
print(' md5 = "{}";'.format(x['md5']))
print(' brief = {};'.format('true' if x['brief'] else 'false'))
if 'subdir' in x:
print(' subDir = "{}";'.format(x['subdir']))
print('}')
print(']')
def get_packages():
"""
All of the package data: What's parsed from download.lst,
plus our additions.
"""
return apply_additions(get_packages_from_download_list(),
get_additions())
def get_additions():
"""
A mapping from package name (the all-caps identifiers used in
`download.lst`) to a dict of additional attributes to set on the package.
"""
with open('./libreoffice-srcs-additions.json') as f:
return json.load(f)
def apply_additions(xs, additions):
for x in xs:
yield dict_merge([x,
additions.get(x['name'], {})])
def get_packages_from_download_list():
"""
The result of parsing `download.lst`: A list of dicts containing keys
'name', 'tarball', 'md5', 'brief'.
"""
def lines():
for x in sub_symbols(parse_lines(get_lines())):
interpretation = interpret(x)
if interpretation == 'unrecognized':
print_skipped_line(x)
else:
yield dict_merge([x,
interpretation])
def cluster(xs):
"""
Groups lines according to their order within the file, to support
packages that are listed in `download.lst` more than once.
"""
keys = ['tarball', 'md5', 'brief']
a = {k: [x for x in xs if k in x['attrs']] for k in keys}
return zip(*[a[k] for k in keys])
def packages():
for (name, group) in groupby(lines(), lambda x: x['name']):
for xs in cluster(group):
yield {'name': name,
'attrs': dict_merge(x['attrs'] for x in xs),
'index': min(x['index'] for x in xs)}
for x in sorted(packages(), key=lambda x: x['index']):
yield dict_merge([{'name': x['name']},
x['attrs']])
def dict_merge(xs):
"""
>>> dict_merge([{1: 2}, {3: 4}, {3: 5}])
{1: 2, 3: 4}
"""
return dict(collections.ChainMap(*xs))
def groupby(xs, f):
"""
>>> groupby([1, 2, 3, 4], lambda x: x % 2)
[(0, [2, 4]), (1, [1, 3])]
"""
for (k, iter) in itertools.groupby(sorted(xs, key=f), f):
group = list(iter)
yield (f(group[0]), group)
def get_lines():
download_list = os.getenv('downloadList')
with open(download_list) as f:
return f.read().splitlines()
def print_skipped_line(x):
print('Skipped line {}: {}'.format(x['index'],
x['original']),
file=sys.stderr)
def parse_lines(lines):
"""
Input: List of strings (the lines from `download.lst`
Output: Iterator of dicts with keys 'key', 'value', and 'index'
"""
for (index, line) in enumerate(lines):
x = { 'index': index, 'original': line }
result = parse_line(line)
if result == 'nothing':
pass
elif result == 'unrecognized':
print_skipped_line(x)
else:
yield dict_merge([x,
result])
def parse_line(line):
"""
Input: A string
Output: One of 1. A dict with keys 'key', 'value'
2. 'nothing' (if the line contains no information)
2. 'unrecognized' (if parsing failed)
"""
if re.match('\s*(#.*)?$', line):
return 'nothing'
match = re.match('\s*export\s+([^:\s]+)\s*:=\s*(.*)$', line)
if match:
return {
'key': match.group(1),
'value': match.group(2).strip()
}
else:
return 'unrecognized'
def sub_symbols(xs):
"""
Do substitution of variables across all lines.
>>> sub_symbols([{'key': 'a', 'value': 'x'},
... {'key': 'c': 'value': '$(a)yz'}])
[{'key': 'a', 'value': 'x'}, {'key': 'c': 'value': 'xyz'}]
"""
xs = list(xs)
symbols = {x['key']: x for x in xs}
def get_value(k):
x = symbols.get(k)
return x['value'] if x is not None else None
for x in xs:
yield dict_merge([{'value': sub_str(x['value'], get_value)},
x])
def sub_str(string, func):
"""
Do substitution of variables in a single line.
>>> sub_str("x = $(x)", lambda k: {'x': 'a'}[k])
"x = a"
"""
def func2(m):
x = m.group(1)
result = func(x)
return result if result is not None else x
return re.sub(r'\$\(([^\$\(\)]+)\)', func2, string)
def interpret(x):
"""
Input: Dict with keys 'key' and 'value'
Output: One of 1. Dict with keys 'name' and 'attrs'
2. 'unrecognized' (if interpretation failed)
"""
for f in [interpret_md5, interpret_tarball_with_md5, interpret_tarball]:
result = f(x)
if result is not None:
return result
return 'unrecognized'
def interpret_md5(x):
"""
>>> interpret_md5("ODFGEN_MD5SUM", "32572ea48d9021bbd6fa317ddb697abc")
{'name': 'ODFGEN', 'attrs': {'md5': '32572ea48d9021bbd6fa317ddb697abc'}}
"""
match = re.match('^(.*)_MD5SUM$', x['key'])
if match:
return {'name': match.group(1),
'attrs': {'md5': x['value']}}
def interpret_tarball(x):
"""
>>> interpret_tarball("FREEHAND_TARBALL", "libfreehand-0.1.1.tar.bz2")
{'name': 'FREEHAND',
'attrs': {'tarball': 'libfreehand-0.1.1.tar.bz2', 'brief': True}}
"""
match = re.match('^(.*)_TARBALL$', x['key'])
if match:
return {'name': match.group(1),
'attrs': {'tarball': x['value'], 'brief': True}}
def interpret_tarball_with_md5(x):
"""
>>> interpret_tarball_with_md5("CLUCENE_TARBALL",\
"48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz")
{'name': 'CLUCENE',
'attrs': {'tarball': 'clucene-core-2.3.3.4.tar.gz',
'md5': '48d647fbd8ef8889e5a7f422c1bfda94', 'brief': False}}
"""
match = {'key': re.match('^(.*)_TARBALL$', x['key']),
'value': re.match('(?P<md5>[0-9a-fA-F]{32})-(?P<tarball>.+)$',
x['value'])}
if match['key'] and match['value']:
return {'name': match['key'].group(1),
'attrs': {'tarball': match['value'].group('tarball'),
'md5': match['value'].group('md5'),
'brief': False}}
main()

View File

@ -1,81 +0,0 @@
#!/run/current-system/sw/bin/bash
# Ideally we would move as much as possible into derivation dependencies
# Take the list of files from the main package, ooo.lst.in
# This script wants an argument: download list file
cat <<EOF
[
EOF
write_entry(){
echo '{'
echo " name = \"${name}\";"
echo " md5 = \"${md5}\";"
echo " brief = ${brief};"
eval "echo -n \"\$additions_${name%%[-_.]*}\""
eval "test -n \"\$additions_${name%%[-_.]*}\" && echo"
echo '}'
saved_line=
}
saved_line=
cat "$(dirname "$0")/libreoffice-srcs-additions.sh" "$@" |
while read line; do
case "$line" in
EVAL\ *)
echo "${line#* }" >&2;
eval "${line#* }";
saved_line=
;;
\#*)
echo Skipping comment: "$line" >&2;
;;
*_MD5SUM\ :=*)
if test -n "$saved_line"; then
tbline="$saved_line"
else
read tbline;
fi;
line=${line##* };
line=${line##*:=};
if [ "${tbline#*VERSION_MICRO}" != "$tbline" ]; then
verline=${tbline##* };
read tbline;
tbline=${tbline##* };
tbline=${tbline##*:=};
md5=$line
name=$tbline;
name="${name/\$([A-Z]*_VERSION_MICRO)/$verline}"
else
tbline=${tbline##* };
tbline=${tbline##*:=};
md5=$line
name=$tbline;
fi
brief=true;
write_entry;
;;
*_TARBALL\ :=*)
line=${line##* };
line=${line##*:=};
line="${line#,}"
md5=${line:0:32};
name=${line:33};
name="${name%)}"
brief=false;
if test -n "$name"; then
write_entry;
else
saved_line="$line";
fi
;;
*)
echo Skipping: "$line" >&2;
;;
esac
done
echo ']'

View File

@ -0,0 +1,3 @@
{
"LIBGLTF": {"subdir": "libgltf/"}
}

View File

@ -1 +0,0 @@
EVAL additions_libgltf=' subDir = "libgltf/";'

View File

@ -0,0 +1,29 @@
{ pkgs ? (import <nixpkgs> {}) }:
with pkgs;
let
primary-src = callPackage ./still-primary-src.nix {};
in
stdenv.mkDerivation {
name = "generate-libreoffice-srcs-shell";
buildCommand = "exit 1";
downloadList = stdenv.mkDerivation {
name = "libreoffice-${primary-src.version}-download-list";
inherit (primary-src) src version;
builder = ./download-list-builder.sh;
};
buildInputs = [ python3 ];
shellHook = ''
function generate {
python3 generate-libreoffice-srcs.py > libreoffice-srcs-still.nix
}
'';
}

View File

@ -0,0 +1,17 @@
{ fetchurl }:
rec {
major = "5";
minor = "1";
patch = "5";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "1qg0dj0zwh5ifhmvv4k771nmyqddz4ifn75s9mr1p0nyix8zks8x";
};
}

View File

@ -18,15 +18,15 @@
, kdeIntegration ? false
}:
let
primary-src = import ./still-primary-src.nix { inherit fetchurl; };
in
with { inherit (primary-src) major minor subdir version; };
let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
major = "5";
minor = "1";
patch = "5";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
inherit name md5;
@ -64,10 +64,7 @@ let
in stdenv.mkDerivation rec {
name = "libreoffice-${version}";
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "1qg0dj0zwh5ifhmvv4k771nmyqddz4ifn75s9mr1p0nyix8zks8x";
};
inherit (primary-src) src;
# we only have this problem on i686 ATM
patches = if stdenv.is64bit then null else [

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, makeWrapper, glibc, readline, ncurses, groff, utillinux }:
{ stdenv, fetchurl, makeWrapper, glibc, readline, ncurses, utillinux }:
with stdenv.lib;
let
@ -7,7 +7,6 @@ let
BINDIR=$out/bin LIBDIR=$out/lib CALC_INCDIR=$out/include/calc CALC_SHAREDIR=$out/share/calc MANDIR=$out/share/man/man1 \
USE_READLINE=-DUSE_READLINE READLINE_LIB=-lreadline READLINE_EXTRAS='-lhistory -lncurses' \
TERMCONTROL=-DUSE_TERMIOS \
NROFF=groff
'';
in
stdenv.mkDerivation rec {
@ -20,7 +19,7 @@ stdenv.mkDerivation rec {
sha256 = "14mnz6smhi3a0rgmwvddk9w3vdisi8khq67i8nqsl47vgs8n1kqg";
};
buildInputs = [ makeWrapper readline ncurses groff utillinux ];
buildInputs = [ makeWrapper readline ncurses utillinux ];
configurePhase = ''
sed -i 's/all: check_include/all:/' Makefile

View File

@ -63,6 +63,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
setupHook = ./setup-hook.sh;
meta = {
homepage = "https://root.cern.ch/";
description = "A data analysis framework";

View File

@ -0,0 +1,9 @@
thisroot () {
# Workaround thisroot.sh dependency on man
if [ -z "${MANPATH}" ]; then
MANPATH=:
fi
source @out@/bin/thisroot.sh
}
envHooks+=(thisroot)

View File

@ -1,16 +1,16 @@
{ fetchurl, stdenv, libxml2, freetype, mesa, glew, qt4
, cmake, makeWrapper, libjpeg }:
, cmake, makeWrapper, libjpeg, python }:
let version = "4.1.0"; in
let version = "4.9.0"; in
stdenv.mkDerivation rec {
name = "tulip-${version}";
src = fetchurl {
url = "mirror://sourceforge/auber/${name}_src.tar.gz";
sha256 = "1js1f8xdm9g2m66xbhfxa8ixzw6h4gjynxsm83p54l3i0hs3biig";
sha256 = "0phc7972brvm0v6lfk4ghq9b2b4jsj6c15xlbgnvhhcxhc99wba3";
};
buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg ];
buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg python ];
nativeBuildInputs = [ cmake makeWrapper ];

View File

@ -10,13 +10,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "mkvtoolnix-${version}";
version = "9.4.0";
version = "9.4.2";
src = fetchFromGitHub {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
sha256 = "0bmr0cnxp56flak6fjcn0ld5238h3ngrvy09yqp4790g8xwif35v";
sha256 = "1dyhlpik8d9z78dg47cha313r0dm9fcjg6hzkmzd2ng9yrq5pmdy";
};
nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];

View File

@ -26,17 +26,11 @@ let layer = stdenv.mkDerivation {
outputHash = sha256;
outputHashMode = "recursive";
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
# This variable allows the user to pass additional options to curl
"NIX_CURL_FLAGS"
];
# Doing the download on a remote machine just duplicates network
# traffic, so don't do that.
preferLocalBuild = true;

View File

@ -1,15 +1,5 @@
{ stdenv, curl, adc_user, adc_pass }:
let
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
in
{ # Path to fetch.
path

View File

@ -17,12 +17,6 @@ stdenv.mkDerivation {
eggName = name;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

View File

@ -56,13 +56,9 @@ stdenv.mkDerivation {
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" "GIT_PROXY_COMMAND" "SOCKS_SERVER"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND" "SOCKS_SERVER"
];
preferLocalBuild = true;
}

View File

@ -6,9 +6,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
buildInputs = [mercurial];
impureEnvVars = [
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
# Nix <= 0.7 compatibility.
id = md5;

View File

@ -19,12 +19,7 @@ stdenv.mkDerivation {
dbs = defaultDBMirrors ++ dbs;
inherit branch cacheDB name selector;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

View File

@ -33,13 +33,6 @@ stdenv.mkDerivation {
inherit url rev sshSupport openssh ignoreExternals;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
preferLocalBuild = true;
}

View File

@ -20,13 +20,7 @@ let
# "gnu", etc.).
sites = builtins.attrNames mirrors;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [
# This variable allows the user to pass additional options to curl
"NIX_CURL_FLAGS"

View File

@ -20,6 +20,6 @@ stdenv.mkDerivation {
outputHashMode = "recursive";
outputHash = sha256;
impureEnvVars = [ "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" ];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
preferLocalBuild = true;
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "fira-code-${version}";
version = "1.201";
version = "1.203";
src = fetchurl {
url = "https://github.com/tonsky/FiraCode/releases/download/${version}/FiraCode_${version}.zip";
sha256 = "11hwpdqj41wvzc8l8zgfb132cxn8kxpxbgiqc2kinc25x2l1ikji";
sha256 = "0pjziaklmkpl67ybp45q9ndya5adf9x8svhdv9643dq9jsrxbkj1";
};
sourceRoot = "otf";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "efl-${version}";
version = "1.18.0";
version = "1.18.1";
src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/efl/${name}.tar.xz";
sha256 = "17mzbjmz8d2vs8p63r1sk3mppl3l2fhxy2jv24dp75lgqbsvp806";
sha256 = "08njx6wd505as1vn0yp4mnmf6mb2v28jsipxxx4zhf78v18d2sqc";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -1,11 +1,11 @@
{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake-2_8, automoc4, perl, pkgconfig
{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake_2_8, automoc4, perl, pkgconfig
, release, branch, ignoreList, extraSubpkgs
}:
let
inherit (stdenv.lib) filter fold;
inherit (builtins) getAttr hasAttr remoteAttrs listToAttrs tail head;
cmake = cmake-2_8;
cmake = cmake_2_8;
in
rec {
manifest = import (./. + "/${release}.nix");

View File

@ -57,6 +57,7 @@ let
libkexiv2 = callPackage ./libkexiv2.nix {};
libkipi = callPackage ./libkipi.nix {};
libkomparediff2 = callPackage ./libkomparediff2.nix {};
marble = callPackage ./marble.nix {};
okular = callPackage ./okular.nix {};
print-manager = callPackage ./print-manager.nix {};
spectacle = callPackage ./spectacle.nix {};

View File

@ -1 +1 @@
WGET_ARGS=( http://download.kde.org/stable/applications/16.08.0/ -A '*.tar.xz' )
WGET_ARGS=( http://download.kde.org/stable/applications/16.08.1/ -A '*.tar.xz' )

View File

@ -0,0 +1,24 @@
{ kdeApp, lib, kdeWrapper
, ecm, qtscript, qtsvg, qtquickcontrols
, gpsd
}:
let
unwrapped =
kdeApp {
name = "marble";
meta.license = with lib.licenses; [ lgpl21 gpl3 ];
nativeBuildInputs = [ ecm ];
propagatedBuildInputs = [
qtscript qtsvg qtquickcontrols
gpsd
];
enableParallelBuilding = true;
};
in
kdeWrapper unwrapped {
targets = [ "bin/marble-qt" ];
paths = [ unwrapped ];
}

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,22 @@
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2 }:
stdenv.mkDerivation rec {
name = "lxappearance-0.6.1";
name = "lxappearance-0.6.2";
src = fetchurl{
url = "mirror://sourceforge/project/lxde/LXAppearance/${name}.tar.xz";
sha256 = "1phnv1b2jdj2vlibjyc9z01izcf3k5zxj8glsaf0i3vh77zqmqq9";
sha256 = "07r0xbi6504zjnbpan7zrn7gi4j0kbsqqfpj8v2x94gr05p16qj4";
};
buildInputs = [ intltool libX11 pkgconfig gtk2 ];
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [ libX11 gtk2 ];
meta = {
description = "A lightweight program for configuring the theme and fonts of gtk applications";
maintainers = [ stdenv.lib.maintainers.hinton ];
platforms = stdenv.lib.platforms.all;
license = stdenv.lib.licenses.gpl2;
homepage = "http://lxappearance.sourceforce.net/";
homepage = "http://lxde.org/";
};
}

View File

@ -3,21 +3,25 @@
let
p_name = "xfce4-settings";
ver_maj = "4.12";
ver_min = "0";
ver_min = "1";
in
stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4";
sha256 = "0x35i1cvkqp0hib1knwa58mckdwrfbhaisz4bsx6bbbx385llj7n";
};
patches = [ ./xfce4-settings-default-icon-theme.patch ];
nativeBuildInputs =
[ pkgconfig intltool
];
buildInputs =
[ pkgconfig intltool exo gtk libxfce4util libxfce4ui libglade upower
xfconf xorg.libXi xorg.libXcursor libwnck libnotify libxklavier garcon
[ exo gtk libxfce4util libxfce4ui libglade upower xfconf
xorg.libXi xorg.libXcursor libwnck libnotify libxklavier garcon
]; #TODO: optional packages
configureFlags = [ "--enable-pluggable-dialogs" "--enable-sound-settings" ];

View File

@ -75,24 +75,26 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od
#### PANEL PLUGINS from "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.{bz2,gz}"
xfce4_battery_plugin = callPackage ./panel-plugins/xfce4-battery-plugin.nix { };
xfce4_clipman_plugin = callPackage ./panel-plugins/xfce4-clipman-plugin.nix { };
xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { };
xfce4_cpugraph_plugin = callPackage ./panel-plugins/xfce4-cpugraph-plugin.nix { };
xfce4_datetime_plugin = callPackage ./panel-plugins/xfce4-datetime-plugin.nix { };
xfce4_dict_plugin = callPackage ./panel-plugins/xfce4-dict-plugin.nix { };
xfce4_embed_plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { };
xfce4_eyes_plugin = callPackage ./panel-plugins/xfce4-eyes-plugin.nix { };
xfce4_fsguard_plugin = callPackage ./panel-plugins/xfce4-fsguard-plugin.nix { };
xfce4_genmon_plugin = callPackage ./panel-plugins/xfce4-genmon-plugin.nix { };
xfce4_netload_plugin = callPackage ./panel-plugins/xfce4-netload-plugin.nix { };
xfce4_notes_plugin = callPackage ./panel-plugins/xfce4-notes-plugin.nix { };
xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
xfce4_verve_plugin = callPackage ./panel-plugins/xfce4-verve-plugin.nix { };
xfce4_xkb_plugin = callPackage ./panel-plugins/xfce4-xkb-plugin.nix { };
xfce4_weather_plugin = callPackage ./panel-plugins/xfce4-weather-plugin.nix { };
xfce4_whiskermenu_plugin = callPackage ./panel-plugins/xfce4-whiskermenu-plugin.nix { };
xfce4_pulseaudio_plugin = callPackage ./panel-plugins/xfce4-pulseaudio-plugin.nix { };
xfce4_battery_plugin = callPackage ./panel-plugins/xfce4-battery-plugin.nix { };
xfce4_clipman_plugin = callPackage ./panel-plugins/xfce4-clipman-plugin.nix { };
xfce4_cpufreq_plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix { };
xfce4_cpugraph_plugin = callPackage ./panel-plugins/xfce4-cpugraph-plugin.nix { };
xfce4_datetime_plugin = callPackage ./panel-plugins/xfce4-datetime-plugin.nix { };
xfce4_dict_plugin = callPackage ./panel-plugins/xfce4-dict-plugin.nix { };
xfce4_embed_plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { };
xfce4_eyes_plugin = callPackage ./panel-plugins/xfce4-eyes-plugin.nix { };
xfce4_fsguard_plugin = callPackage ./panel-plugins/xfce4-fsguard-plugin.nix { };
xfce4_genmon_plugin = callPackage ./panel-plugins/xfce4-genmon-plugin.nix { };
xfce4-hardware-monitor-plugin = callPackage ./panel-plugins/xfce4-hardware-monitor-plugin.nix { };
xfce4_netload_plugin = callPackage ./panel-plugins/xfce4-netload-plugin.nix { };
xfce4_notes_plugin = callPackage ./panel-plugins/xfce4-notes-plugin.nix { };
xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin.nix { };
xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
xfce4_verve_plugin = callPackage ./panel-plugins/xfce4-verve-plugin.nix { };
xfce4_xkb_plugin = callPackage ./panel-plugins/xfce4-xkb-plugin.nix { };
xfce4_weather_plugin = callPackage ./panel-plugins/xfce4-weather-plugin.nix { };
xfce4_whiskermenu_plugin = callPackage ./panel-plugins/xfce4-whiskermenu-plugin.nix { };
xfce4_pulseaudio_plugin = callPackage ./panel-plugins/xfce4-pulseaudio-plugin.nix { };
}; # xfce_self

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, pkgconfig, intltool, autoreconfHook, gnome2,
libgtop, libxfce4ui, libxfce4util, xfce4panel, lm_sensors
}:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "xfce4-hardware-monitor-plugin";
version = "1.5.0";
src = fetchurl {
url = "https://git.xfce.org/panel-plugins/${pname}/snapshot/${name}.tar.bz2";
sha256 = "0sqvisr8gagpywq9sfyzqw37hxmj54ii89j5s2g8hx8bng5a98z1";
};
nativeBuildInputs = [
autoreconfHook
pkgconfig
intltool
];
buildInputs = [
gnome2.gtkmm2
gnome2.libgnomecanvas
gnome2.libgnomecanvasmm
libgtop
libxfce4ui
libxfce4util
xfce4panel
lm_sensors
];
enableParallelBuilding = true;
meta = {
homepage = "http://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "Hardware monitor plugin for the XFCE4 panel";
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.romildo ];
};
}

View File

@ -0,0 +1,46 @@
{ stdenv, fetchurl, pkgconfig, intltool, gnome2, libxfce4ui,
libxfce4util, xfce4panel, libnotify, lm_sensors, hddtemp, netcat
}:
stdenv.mkDerivation rec {
name = "${pname}-${ver_maj}.${ver_min}";
pname = "xfce4-sensors-plugin";
ver_maj = "1.2";
ver_min = "6";
src = fetchurl {
url = "mirror://xfce/src/panel-plugins/${pname}/${ver_maj}/${name}.tar.bz2";
sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3";
};
nativeBuildInputs = [
pkgconfig
intltool
];
buildInputs = [
gnome2.gtk
libxfce4ui
libxfce4util
xfce4panel
libnotify
lm_sensors
hddtemp
netcat
];
enableParallelBuilding = true;
configureFlags = [
"--with-pathhddtemp=${hddtemp}/bin/hddtemp"
"--with-pathnetcat=${netcat}/bin/netcat"
];
meta = {
homepage = "http://goodies.xfce.org/projects/panel-plugins/${pname}";
description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.romildo ];
};
}

View File

@ -68,6 +68,14 @@ let
# Change the #error on GCC > 4.9 to a #warning.
sed -i $out/include/host_config.h -e 's/#error\(.*unsupported GNU version\)/#warning\1/'
# Ensure that cmake can find CUDA.
mkdir -p $out/nix-support
echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook
'' + lib.optionalString (lib.versionOlder version "8.0") ''
# Hack to fix building against recent Glibc/GCC.
echo "NIX_CFLAGS_COMPILE+=' -D_FORCE_INLINES'" >> $out/nix-support/setup-hook
'';
meta = {

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "dtc-${version}";
version = "1.4.1";
version = "1.4.2";
src = fetchgit {
url = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git";
rev = "refs/tags/v${version}";
sha256 = "0wcn9x2vynwlfxk5c6jrf8lz7qvm1sbb9gh27drk1mx8msdh5hd5";
sha256 = "0pwhbw930pnksrmkimqqwp4nqj9mmh06bs5b8p5l2cnhnh8lxn3j";
};
nativeBuildInputs = [ flex bison ];

View File

@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
buildInputs = [
arpack fftw fftwSinglePrec gmp libgit2 libunwind llvmShared mpfr
pcre2 openblas openlibm openspecfun readline suitesparse utf8proc
pcre2.dev openblas openlibm openspecfun readline suitesparse utf8proc
zlib
] ++
stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] ;
@ -121,6 +121,8 @@ stdenv.mkDerivation rec {
"USE_SYSTEM_OPENSPECFUN=1"
"USE_SYSTEM_PATCHELF=1"
"USE_SYSTEM_PCRE=1"
"PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
"PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
"USE_SYSTEM_READLINE=1"
"USE_SYSTEM_UTF8PROC=1"
"USE_SYSTEM_ZLIB=1"

View File

@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
buildInputs = [
arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
pcre2 openblas openlibm openspecfun readline suitesparse utf8proc
pcre2.dev openblas openlibm openspecfun readline suitesparse utf8proc
zlib
];
@ -131,6 +131,8 @@ stdenv.mkDerivation rec {
"USE_SYSTEM_OPENSPECFUN=1"
"USE_SYSTEM_PATCHELF=1"
"USE_SYSTEM_PCRE=1"
"PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
"PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
"USE_SYSTEM_READLINE=1"
"USE_SYSTEM_UTF8PROC=1"
"USE_SYSTEM_ZLIB=1"

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