Merge remote-tracking branch 'upstream/master' into staging
This commit is contained in:
commit
d756dee227
2
COPYING
2
COPYING
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2003-2017 Eelco Dolstra and the Nixpkgs/NixOS contributors
|
||||
Copyright (c) 2003-2018 Eelco Dolstra and the Nixpkgs/NixOS contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
|
|
@ -130,6 +130,6 @@ rec {
|
|||
(name: value:
|
||||
"${toPretty args name} = ${toPretty args value};") v)
|
||||
+ " }"
|
||||
else "toPretty: should never happen (v = ${v})";
|
||||
else abort "toPretty: should never happen (v = ${v})";
|
||||
|
||||
}
|
||||
|
|
|
@ -309,6 +309,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
|
|||
free = false;
|
||||
};
|
||||
|
||||
inria-icesl = {
|
||||
fullName = "INRIA Non-Commercial License Agreement for IceSL";
|
||||
url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf";
|
||||
free = false;
|
||||
};
|
||||
|
||||
ipa = spdx {
|
||||
spdxId = "IPA";
|
||||
fullName = "IPA Font License";
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
aherrmann = "Andreas Herrmann <andreash87@gmx.ch>";
|
||||
ahmedtd = "Taahir Ahmed <ahmed.taahir@gmail.com>";
|
||||
aij = "Ivan Jager <aij+git@mrph.org>";
|
||||
ajgrf = "Alex Griffin <a@ajgrf.com>";
|
||||
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
|
||||
akaWolf = "Artjom Vejsel <akawolf0@gmail.com>";
|
||||
akc = "Anders Claesson <akc@akc.is>";
|
||||
|
@ -118,6 +119,7 @@
|
|||
ChengCat = "Yucheng Zhang <yu@cheng.cat>";
|
||||
choochootrain = "Hurshal Patel <hurshal@imap.cc>";
|
||||
chpatrick = "Patrick Chilton <chpatrick@gmail.com>";
|
||||
chreekat = "Bryan Richter <b@chreekat.net>";
|
||||
chris-martin = "Chris Martin <ch.martin@gmail.com>";
|
||||
chrisjefferson = "Christopher Jefferson <chris@bubblescope.net>";
|
||||
chrisrosset = "Christopher Rosset <chris@rosset.org.uk>";
|
||||
|
@ -189,6 +191,7 @@
|
|||
dtzWill = "Will Dietz <nix@wdtz.org>";
|
||||
dupgit = "Olivier Delhomme <olivier.delhomme@free.fr>";
|
||||
dywedir = "Vladyslav M. <dywedir@protonmail.ch>";
|
||||
dzabraev = "Maksim Dzabraev <dzabraew@gmail.com>";
|
||||
e-user = "Alexander Kahl <nixos@sodosopa.io>";
|
||||
earldouglas = "James Earl Douglas <james@earldouglas.com>";
|
||||
ebzzry = "Rommel Martinez <ebzzry@ebzzry.io>";
|
||||
|
@ -420,6 +423,7 @@
|
|||
meisternu = "Matt Miemiec <meister@krutt.org>";
|
||||
metabar = "Celine Mercier <softs@metabarcoding.org>";
|
||||
mgdelacroix = "Miguel de la Cruz <mgdelacroix@gmail.com>";
|
||||
mgttlinger = "Merlin Göttlinger <megoettlinger@gmail.com";
|
||||
mguentner = "Maximilian Güntner <code@klandest.in>";
|
||||
mic92 = "Jörg Thalheim <joerg@thalheim.io>";
|
||||
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
|
||||
|
@ -582,6 +586,7 @@
|
|||
ryanartecona = "Ryan Artecona <ryanartecona@gmail.com>";
|
||||
ryansydnor = "Ryan Sydnor <ryan.t.sydnor@gmail.com>";
|
||||
ryantm = "Ryan Mulligan <ryan@ryantm.com>";
|
||||
ryantrinkle = "Ryan Trinkle <ryan.trinkle@gmail.com>";
|
||||
rybern = "Ryan Bernstein <ryan.bernstein@columbia.edu>";
|
||||
rycee = "Robert Helgesson <robert@rycee.net>";
|
||||
ryneeverett = "Ryne Everett <ryneeverett@gmail.com>";
|
||||
|
@ -694,6 +699,7 @@
|
|||
vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
|
||||
vcunat = "Vladimír Čunát <vcunat@gmail.com>";
|
||||
vdemeester = "Vincent Demeester <vincent@sbr.pm>";
|
||||
velovix = "Tyler Compton <xaviosx@gmail.com>";
|
||||
veprbl = "Dmitry Kalinkin <veprbl@gmail.com>";
|
||||
vidbina = "David Asabina <vid@bina.me>";
|
||||
vifino = "Adrian Pistol <vifino@tty.sh>";
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp nixUnstable
|
||||
#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp nixUnstable nixUnstable.perl-bindings
|
||||
|
||||
# This command uploads tarballs to tarballs.nixos.org, the
|
||||
# content-addressed cache used by fetchurl as a fallback for when
|
||||
|
@ -59,6 +59,7 @@ my $s3 = Net::Amazon::S3->new(
|
|||
{ aws_access_key_id => $aws_access_key_id,
|
||||
aws_secret_access_key => $aws_secret_access_key,
|
||||
retry => 1,
|
||||
host => "s3-eu-west-1.amazonaws.com",
|
||||
});
|
||||
|
||||
my $bucket = $s3->bucket("nixpkgs-tarballs") or die;
|
||||
|
|
|
@ -12,11 +12,10 @@ download page</link>. There are a number of installation options. If
|
|||
you happen to have an optical drive and a spare CD, burning the
|
||||
image to CD and booting from that is probably the easiest option.
|
||||
Most people will need to prepare a USB stick to boot from.
|
||||
Unetbootin is recommended and the process is described in brief below.
|
||||
Note that systems which use UEFI require some additional manual steps.
|
||||
If you run into difficulty a number of alternative methods are presented
|
||||
in the <link
|
||||
xlink:href="https://nixos.org/wiki/Installing_NixOS_from_a_USB_stick">NixOS
|
||||
<xref linkend="sec-booting-from-usb"/> describes the preferred method
|
||||
to prepare a USB stick.
|
||||
A number of alternative methods are presented in the <link
|
||||
xlink:href="https://nixos.wiki/wiki/NixOS_Installation_Guide#Making_the_installation_media">NixOS
|
||||
Wiki</link>.</para>
|
||||
|
||||
<para>As an alternative to installing NixOS yourself, you can get a
|
||||
|
|
|
@ -131,6 +131,14 @@ following incompatible changes:</para>
|
|||
Other types dependencies should be unaffected.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>memcached</literal> service no longer accept dynamic socket
|
||||
paths via <option>services.memcached.socket</option>. Unix sockets can be
|
||||
still enabled by <option>services.memcached.enableUnixSocket</option> and
|
||||
will be accessible at <literal>/run/memcached/memcached.sock</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</section>
|
||||
|
@ -181,6 +189,51 @@ following incompatible changes:</para>
|
|||
corrupted blocks.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>displayManager.lightdm.greeters.gtk.clock-format.</literal>
|
||||
has been added, the clock format string (as expected by
|
||||
strftime, e.g. <literal>%H:%M</literal>) to use with the lightdm
|
||||
gtk greeter panel.
|
||||
</para>
|
||||
<para>
|
||||
If set to null the default clock format is used.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>displayManager.lightdm.greeters.gtk.indicators</literal>
|
||||
has been added, a list of allowed indicator modules to use with
|
||||
the lightdm gtk greeter panel.
|
||||
</para>
|
||||
<para>
|
||||
Built-in indicators include <literal>~a11y</literal>,
|
||||
<literal>~language</literal>, <literal>~session</literal>,
|
||||
<literal>~power</literal>, <literal>~clock</literal>,
|
||||
<literal>~host</literal>, <literal>~spacer</literal>. Unity
|
||||
indicators can be represented by short name
|
||||
(e.g. <literal>sound</literal>, <literal>power</literal>),
|
||||
service file name, or absolute path.
|
||||
</para>
|
||||
<para>
|
||||
If set to <literal>null</literal> the default indicators are
|
||||
used.
|
||||
</para>
|
||||
<para>
|
||||
In order to have the previous default configuration add
|
||||
<programlisting>
|
||||
services.xserver.displayManager.lightdm.greeters.gtk.indicators = [
|
||||
"~host" "~spacer"
|
||||
"~clock" "~spacer"
|
||||
"~session"
|
||||
"~language"
|
||||
"~a11y"
|
||||
"~power"
|
||||
];
|
||||
</programlisting>
|
||||
to your <literal>configuration.nix</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</section>
|
||||
|
|
|
@ -362,8 +362,8 @@ sub mustFail {
|
|||
|
||||
|
||||
sub getUnitInfo {
|
||||
my ($self, $unit) = @_;
|
||||
my ($status, $lines) = $self->execute("systemctl --no-pager show '$unit'");
|
||||
my ($self, $unit, $user) = @_;
|
||||
my ($status, $lines) = $self->systemctl("--no-pager show \"$unit\"", $user);
|
||||
return undef if $status != 0;
|
||||
my $info = {};
|
||||
foreach my $line (split '\n', $lines) {
|
||||
|
@ -373,6 +373,16 @@ sub getUnitInfo {
|
|||
return $info;
|
||||
}
|
||||
|
||||
sub systemctl {
|
||||
my ($self, $q, $user) = @_;
|
||||
if ($user) {
|
||||
$q =~ s/'/\\'/g;
|
||||
return $self->execute("su -l $user -c \$'XDG_RUNTIME_DIR=/run/user/`id -u` systemctl --user $q'");
|
||||
}
|
||||
|
||||
return $self->execute("systemctl $q");
|
||||
}
|
||||
|
||||
# Fail if the given systemd unit is not in the "active" state.
|
||||
sub requireActiveUnit {
|
||||
my ($self, $unit) = @_;
|
||||
|
@ -387,16 +397,16 @@ sub requireActiveUnit {
|
|||
|
||||
# Wait for a systemd unit to reach the "active" state.
|
||||
sub waitForUnit {
|
||||
my ($self, $unit) = @_;
|
||||
my ($self, $unit, $user) = @_;
|
||||
$self->nest("waiting for unit ‘$unit’", sub {
|
||||
retry sub {
|
||||
my $info = $self->getUnitInfo($unit);
|
||||
my $info = $self->getUnitInfo($unit, $user);
|
||||
my $state = $info->{ActiveState};
|
||||
die "unit ‘$unit’ reached state ‘$state’\n" if $state eq "failed";
|
||||
if ($state eq "inactive") {
|
||||
# If there are no pending jobs, then assume this unit
|
||||
# will never reach active state.
|
||||
my ($status, $jobs) = $self->execute("systemctl list-jobs --full 2>&1");
|
||||
my ($status, $jobs) = $self->systemctl("list-jobs --full 2>&1", $user);
|
||||
if ($jobs =~ /No jobs/) { # FIXME: fragile
|
||||
# Handle the case where the unit may have started
|
||||
# between the previous getUnitInfo() and
|
||||
|
@ -430,14 +440,14 @@ sub waitForFile {
|
|||
}
|
||||
|
||||
sub startJob {
|
||||
my ($self, $jobName) = @_;
|
||||
$self->execute("systemctl start $jobName");
|
||||
my ($self, $jobName, $user) = @_;
|
||||
$self->systemctl("start $jobName", $user);
|
||||
# FIXME: check result
|
||||
}
|
||||
|
||||
sub stopJob {
|
||||
my ($self, $jobName) = @_;
|
||||
$self->execute("systemctl stop $jobName");
|
||||
my ($self, $jobName, $user) = @_;
|
||||
$self->systemctl("stop $jobName", $user);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -197,10 +197,10 @@
|
|||
#input = 174; # unused
|
||||
sddm = 175;
|
||||
tss = 176;
|
||||
memcached = 177;
|
||||
#memcached = 177; removed 2018-01-03
|
||||
ntp = 179;
|
||||
zabbix = 180;
|
||||
redis = 181;
|
||||
#redis = 181; removed 2018-01-03
|
||||
unifi = 183;
|
||||
uptimed = 184;
|
||||
zope2 = 185;
|
||||
|
@ -475,10 +475,10 @@
|
|||
input = 174;
|
||||
sddm = 175;
|
||||
tss = 176;
|
||||
#memcached = 177; # unused
|
||||
#memcached = 177; # unused, removed 2018-01-03
|
||||
#ntp = 179; # unused
|
||||
#zabbix = 180; # unused
|
||||
#redis = 181; # unused
|
||||
#redis = 181; # unused, removed 2018-01-03
|
||||
#unifi = 183; # unused
|
||||
#uptimed = 184; # unused
|
||||
#zope2 = 185; # unused
|
||||
|
|
|
@ -260,6 +260,8 @@
|
|||
./services/logging/rsyslogd.nix
|
||||
./services/logging/syslog-ng.nix
|
||||
./services/logging/syslogd.nix
|
||||
./services/mail/clamsmtp.nix
|
||||
./services/mail/dkimproxy-out.nix
|
||||
./services/mail/dovecot.nix
|
||||
./services/mail/dspam.nix
|
||||
./services/mail/exim.nix
|
||||
|
@ -679,6 +681,7 @@
|
|||
./system/activation/top-level.nix
|
||||
./system/boot/coredump.nix
|
||||
./system/boot/emergency-mode.nix
|
||||
./system/boot/grow-partition.nix
|
||||
./system/boot/initrd-network.nix
|
||||
./system/boot/initrd-ssh.nix
|
||||
./system/boot/kernel.nix
|
||||
|
@ -745,6 +748,7 @@
|
|||
./virtualisation/lxcfs.nix
|
||||
./virtualisation/lxd.nix
|
||||
./virtualisation/amazon-options.nix
|
||||
./virtualisation/hyperv-guest.nix
|
||||
./virtualisation/openvswitch.nix
|
||||
./virtualisation/parallels-guest.nix
|
||||
./virtualisation/rkt.nix
|
||||
|
|
|
@ -186,6 +186,9 @@ with lib;
|
|||
(mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "forceAutohint" ] [ "config" "fonts" "fontconfig" "forceAutohint" ])
|
||||
(mkRenamedOptionModule [ "config" "fonts" "fontconfig" "ultimate" "renderMonoTTFAsBitmap" ] [ "config" "fonts" "fontconfig" "renderMonoTTFAsBitmap" ])
|
||||
|
||||
# Profile splitting
|
||||
(mkRenamedOptionModule [ "virtualization" "growPartition" ] [ "boot" "growPartition" ])
|
||||
|
||||
# Options that are obsolete and have no replacement.
|
||||
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "")
|
||||
(mkRemovedOptionModule [ "programs" "bash" "enable" ] "")
|
||||
|
|
|
@ -223,6 +223,17 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
enableGnomeKeyring = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
If enabled, pam_gnome_keyring will attempt to automatically unlock the
|
||||
user's default Gnome keyring upon login. If the user login password does
|
||||
not match their keyring password, Gnome Keyring will prompt separately
|
||||
after login.
|
||||
'';
|
||||
};
|
||||
|
||||
text = mkOption {
|
||||
type = types.nullOr types.lines;
|
||||
description = "Contents of the PAM service file.";
|
||||
|
@ -273,7 +284,7 @@ let
|
|||
# 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 || cfg.enableKwallet)) ''
|
||||
(optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount || cfg.enableKwallet || cfg.enableGnomeKeyring)) ''
|
||||
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"}
|
||||
|
@ -282,6 +293,8 @@ let
|
|||
${optionalString cfg.enableKwallet
|
||||
("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
|
||||
" kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
|
||||
${optionalString cfg.enableGnomeKeyring
|
||||
("auth optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so")}
|
||||
'') + ''
|
||||
${optionalString cfg.unixAuth
|
||||
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
|
||||
|
@ -351,6 +364,8 @@ let
|
|||
${optionalString (cfg.enableKwallet)
|
||||
("session optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
|
||||
" kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
|
||||
${optionalString (cfg.enableGnomeKeyring)
|
||||
"session optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start"}
|
||||
${optionalString (config.virtualisation.lxc.lxcfs.enable)
|
||||
"session optional ${pkgs.lxcfs}/lib/security/pam_cgfs.so -c freezer,memory,name=systemd,unified,cpuset"}
|
||||
'');
|
||||
|
|
|
@ -124,7 +124,7 @@ in
|
|||
name="${cfg.name}"
|
||||
meta-data="${cfg.meta-data}"
|
||||
build-path="${cfg.dataDir}/builds"
|
||||
hooks-path="${cfg.hooks-path}"
|
||||
hooks-path="${cfg.hooksPath}"
|
||||
bootstrap-script="${pkgs.buildkite-agent}/share/bootstrap.sh"
|
||||
EOF
|
||||
'';
|
||||
|
|
|
@ -40,11 +40,7 @@ in
|
|||
description = "The port to bind to";
|
||||
};
|
||||
|
||||
socket = mkOption {
|
||||
default = "";
|
||||
description = "Unix socket path to listen on. Setting this will disable network support";
|
||||
example = "/var/run/memcached";
|
||||
};
|
||||
enableUnixSocket = mkEnableOption "unix socket at /run/memcached/memcached.sock";
|
||||
|
||||
maxMemory = mkOption {
|
||||
default = 64;
|
||||
|
@ -68,31 +64,40 @@ in
|
|||
|
||||
config = mkIf config.services.memcached.enable {
|
||||
|
||||
users.extraUsers.memcached =
|
||||
{ name = cfg.user;
|
||||
uid = config.ids.uids.memcached;
|
||||
description = "Memcached server user";
|
||||
};
|
||||
users.extraUsers = optional (cfg.user == "memcached") {
|
||||
name = "memcached";
|
||||
description = "Memcached server user";
|
||||
};
|
||||
|
||||
environment.systemPackages = [ memcached ];
|
||||
|
||||
systemd.services.memcached =
|
||||
{ description = "Memcached server";
|
||||
systemd.services.memcached = {
|
||||
description = "Memcached server";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart =
|
||||
let
|
||||
networking = if cfg.socket != ""
|
||||
then "-s ${cfg.socket}"
|
||||
else "-l ${cfg.listen} -p ${toString cfg.port}";
|
||||
in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}";
|
||||
serviceConfig = {
|
||||
PermissionsStartOnly = true;
|
||||
ExecStartPre = optionals cfg.enableUnixSocket [
|
||||
"${pkgs.coreutils}/bin/install -d -o ${cfg.user} /run/memcached/"
|
||||
"${pkgs.coreutils}/bin/chown -R ${cfg.user} /run/memcached/"
|
||||
];
|
||||
ExecStart =
|
||||
let
|
||||
networking = if cfg.enableUnixSocket
|
||||
then "-s /run/memcached/memcached.sock"
|
||||
else "-l ${cfg.listen} -p ${toString cfg.port}";
|
||||
in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}";
|
||||
|
||||
User = cfg.user;
|
||||
};
|
||||
User = cfg.user;
|
||||
};
|
||||
};
|
||||
};
|
||||
imports = [
|
||||
(mkRemovedOptionModule ["services" "memcached" "socket"] ''
|
||||
This option was replaced by a fixed unix socket path at /run/memcached/memcached.sock enabled using services.memached.enableUnixSocket.
|
||||
'')
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
@ -219,7 +219,6 @@ in
|
|||
|
||||
users.extraUsers.redis =
|
||||
{ name = cfg.user;
|
||||
uid = config.ids.uids.redis;
|
||||
description = "Redis database user";
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,179 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.clamsmtp;
|
||||
clamdSocket = "/run/clamav/clamd.ctl"; # See services/security/clamav.nix
|
||||
in
|
||||
{
|
||||
##### interface
|
||||
options = {
|
||||
services.clamsmtp = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable clamsmtp.";
|
||||
};
|
||||
|
||||
instances = mkOption {
|
||||
description = "Instances of clamsmtp to run.";
|
||||
type = types.listOf (types.submodule { options = {
|
||||
action = mkOption {
|
||||
type = types.enum [ "bounce" "drop" "pass" ];
|
||||
default = "drop";
|
||||
description =
|
||||
''
|
||||
Action to take when a virus is detected.
|
||||
|
||||
Note that viruses often spoof sender addresses, so bouncing is
|
||||
in most cases not a good idea.
|
||||
'';
|
||||
};
|
||||
|
||||
header = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "X-Virus-Scanned: ClamAV using ClamSMTP";
|
||||
description =
|
||||
''
|
||||
A header to add to scanned messages. See clamsmtpd.conf(5) for
|
||||
more details. Empty means no header.
|
||||
'';
|
||||
};
|
||||
|
||||
keepAlives = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description =
|
||||
''
|
||||
Number of seconds to wait between each NOOP sent to the sending
|
||||
server. 0 to disable.
|
||||
|
||||
This is meant for slow servers where the sending MTA times out
|
||||
waiting for clamd to scan the file.
|
||||
'';
|
||||
};
|
||||
|
||||
listen = mkOption {
|
||||
type = types.str;
|
||||
example = "127.0.0.1:10025";
|
||||
description =
|
||||
''
|
||||
Address to wait for incoming SMTP connections on. See
|
||||
clamsmtpd.conf(5) for more details.
|
||||
'';
|
||||
};
|
||||
|
||||
quarantine = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description =
|
||||
''
|
||||
Whether to quarantine files that contain viruses by leaving them
|
||||
in the temporary directory.
|
||||
'';
|
||||
};
|
||||
|
||||
maxConnections = mkOption {
|
||||
type = types.int;
|
||||
default = 64;
|
||||
description = "Maximum number of connections to accept at once.";
|
||||
};
|
||||
|
||||
outAddress = mkOption {
|
||||
type = types.str;
|
||||
description =
|
||||
''
|
||||
Address of the SMTP server to send email to once it has been
|
||||
scanned.
|
||||
'';
|
||||
};
|
||||
|
||||
tempDirectory = mkOption {
|
||||
type = types.str;
|
||||
default = "/tmp";
|
||||
description =
|
||||
''
|
||||
Temporary directory that needs to be accessible to both clamd
|
||||
and clamsmtpd.
|
||||
'';
|
||||
};
|
||||
|
||||
timeout = mkOption {
|
||||
type = types.int;
|
||||
default = 180;
|
||||
description = "Time-out for network connections.";
|
||||
};
|
||||
|
||||
transparentProxy = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable clamsmtp's transparent proxy support.";
|
||||
};
|
||||
|
||||
virusAction = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
description =
|
||||
''
|
||||
Command to run when a virus is found. Please see VIRUS ACTION in
|
||||
clamsmtpd(8) for a discussion of this option and its safe use.
|
||||
'';
|
||||
};
|
||||
|
||||
xClient = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description =
|
||||
''
|
||||
Send the XCLIENT command to the receiving server, for forwarding
|
||||
client addresses and connection information if the receiving
|
||||
server supports this feature.
|
||||
'';
|
||||
};
|
||||
};});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
##### implementation
|
||||
config = let
|
||||
configfile = conf: pkgs.writeText "clamsmtpd.conf"
|
||||
''
|
||||
Action: ${conf.action}
|
||||
ClamAddress: ${clamdSocket}
|
||||
Header: ${conf.header}
|
||||
KeepAlives: ${toString conf.keepAlives}
|
||||
Listen: ${conf.listen}
|
||||
Quarantine: ${if conf.quarantine then "on" else "off"}
|
||||
MaxConnections: ${toString conf.maxConnections}
|
||||
OutAddress: ${conf.outAddress}
|
||||
TempDirectory: ${conf.tempDirectory}
|
||||
TimeOut: ${toString conf.timeout}
|
||||
TransparentProxy: ${if conf.transparentProxy then "on" else "off"}
|
||||
User: clamav
|
||||
${optionalString (conf.virusAction != null) "VirusAction: ${conf.virusAction}"}
|
||||
XClient: ${if conf.xClient then "on" else "off"}
|
||||
'';
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = config.services.clamav.daemon.enable;
|
||||
message = "clamsmtp requires clamav to be enabled";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services = listToAttrs (imap1 (i: conf:
|
||||
nameValuePair "clamsmtp-${toString i}" {
|
||||
description = "ClamSMTP instance ${toString i}";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
script = "exec ${pkgs.clamsmtp}/bin/clamsmtpd -f ${configfile conf}";
|
||||
after = [ "clamav-daemon.service" ];
|
||||
requires = [ "clamav-daemon.service" ];
|
||||
serviceConfig.Type = "forking";
|
||||
serviceConfig.PrivateTmp = "yes";
|
||||
unitConfig.JoinsNamespaceOf = "clamav-daemon.service";
|
||||
}
|
||||
) cfg.instances);
|
||||
};
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.dkimproxy-out;
|
||||
keydir = "/var/lib/dkimproxy-out";
|
||||
privkey = "${keydir}/private.key";
|
||||
pubkey = "${keydir}/public.key";
|
||||
in
|
||||
{
|
||||
##### interface
|
||||
options = {
|
||||
services.dkimproxy-out = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description =
|
||||
''
|
||||
Whether to enable dkimproxy_out.
|
||||
|
||||
Note that a key will be auto-generated, and can be found in
|
||||
${keydir}.
|
||||
'';
|
||||
};
|
||||
|
||||
listen = mkOption {
|
||||
type = types.str;
|
||||
example = "127.0.0.1:10027";
|
||||
description = "Address:port DKIMproxy should listen on.";
|
||||
};
|
||||
|
||||
relay = mkOption {
|
||||
type = types.str;
|
||||
example = "127.0.0.1:10028";
|
||||
description = "Address:port DKIMproxy should forward mail to.";
|
||||
};
|
||||
|
||||
domains = mkOption {
|
||||
type = with types; listOf str;
|
||||
example = [ "example.org" "example.com" ];
|
||||
description = "List of domains DKIMproxy can sign for.";
|
||||
};
|
||||
|
||||
selector = mkOption {
|
||||
type = types.str;
|
||||
example = "selector1";
|
||||
description =
|
||||
''
|
||||
The selector to use for DKIM key identification.
|
||||
|
||||
For example, if 'selector1' is used here, then for each domain
|
||||
'example.org' given in `domain`, 'selector1._domainkey.example.org'
|
||||
should contain the TXT record indicating the public key is the one
|
||||
in ${pubkey}: "v=DKIM1; t=s; p=[THE PUBLIC KEY]".
|
||||
'';
|
||||
};
|
||||
|
||||
keySize = mkOption {
|
||||
type = types.int;
|
||||
default = 2048;
|
||||
description =
|
||||
''
|
||||
Size of the RSA key to use to sign outgoing emails. Note that the
|
||||
maximum mandatorily verified as per RFC6376 is 2048.
|
||||
'';
|
||||
};
|
||||
|
||||
# TODO: allow signature for other schemes than dkim(c=relaxed/relaxed)?
|
||||
# This being the scheme used by gmail, maybe nothing more is needed for
|
||||
# reasonable use.
|
||||
};
|
||||
};
|
||||
|
||||
##### implementation
|
||||
config = let
|
||||
configfile = pkgs.writeText "dkimproxy_out.conf"
|
||||
''
|
||||
listen ${cfg.listen}
|
||||
relay ${cfg.relay}
|
||||
|
||||
domain ${concatStringsSep "," cfg.domains}
|
||||
selector ${cfg.selector}
|
||||
|
||||
signature dkim(c=relaxed/relaxed)
|
||||
|
||||
keyfile ${privkey}
|
||||
'';
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
users.groups.dkimproxy-out = {};
|
||||
users.users.dkimproxy-out = {
|
||||
description = "DKIMproxy_out daemon";
|
||||
group = "dkimproxy-out";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
systemd.services.dkimproxy-out = {
|
||||
description = "DKIMproxy_out";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
preStart = ''
|
||||
if [ ! -d "${keydir}" ]; then
|
||||
mkdir -p "${keydir}"
|
||||
chmod 0700 "${keydir}"
|
||||
${pkgs.openssl}/bin/openssl genrsa -out "${privkey}" ${toString cfg.keySize}
|
||||
${pkgs.openssl}/bin/openssl rsa -in "${privkey}" -pubout -out "${pubkey}"
|
||||
chown -R dkimproxy-out:dkimproxy-out "${keydir}"
|
||||
fi
|
||||
'';
|
||||
script = ''
|
||||
exec ${pkgs.dkimproxy}/bin/dkimproxy.out --conf_file=${configfile}
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = "dkimproxy-out";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -70,7 +70,7 @@ let
|
|||
secret_key_base: ${cfg.secrets.secret}
|
||||
otp_key_base: ${cfg.secrets.otp}
|
||||
db_key_base: ${cfg.secrets.db}
|
||||
jws_private_key: ${builtins.toJSON cfg.secrets.jws}
|
||||
openid_connect_signing_key: ${builtins.toJSON cfg.secrets.jws}
|
||||
'';
|
||||
|
||||
gitlabConfig = {
|
||||
|
|
|
@ -24,6 +24,7 @@ in
|
|||
description = "lldpd user";
|
||||
group = "_lldpd";
|
||||
home = "/var/run/lldpd";
|
||||
isSystemUser = true;
|
||||
};
|
||||
users.extraGroups._lldpd = {};
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ let
|
|||
iptables -w -t nat -D POSTROUTING -j nixos-nat-post 2>/dev/null || true
|
||||
iptables -w -t nat -F nixos-nat-post 2>/dev/null || true
|
||||
iptables -w -t nat -X nixos-nat-post 2>/dev/null || true
|
||||
|
||||
${cfg.extraStopCommands}
|
||||
'';
|
||||
|
||||
setupNat = ''
|
||||
|
@ -59,6 +61,8 @@ let
|
|||
--to-destination ${cfg.dmzHost}
|
||||
''}
|
||||
|
||||
${cfg.extraCommands}
|
||||
|
||||
# Append our chains to the nat tables
|
||||
iptables -w -t nat -A PREROUTING -j nixos-nat-pre
|
||||
iptables -w -t nat -A POSTROUTING -j nixos-nat-post
|
||||
|
@ -170,6 +174,28 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
networking.nat.extraCommands = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = "iptables -A INPUT -p icmp -j ACCEPT";
|
||||
description =
|
||||
''
|
||||
Additional shell commands executed as part of the nat
|
||||
initialisation script.
|
||||
'';
|
||||
};
|
||||
|
||||
networking.nat.extraStopCommands = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = "iptables -D INPUT -p icmp -j ACCEPT || true";
|
||||
description =
|
||||
''
|
||||
Additional shell commands executed as part of the nat
|
||||
teardown script.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -90,16 +90,24 @@ in
|
|||
[ (allowdeny "allow" (cfg.allow))
|
||||
(allowdeny "deny" cfg.deny)
|
||||
# see man 5 fcron.conf
|
||||
{ source = pkgs.writeText "fcron.conf" ''
|
||||
fcrontabs = /var/spool/fcron
|
||||
pidfile = /var/run/fcron.pid
|
||||
fifofile = /var/run/fcron.fifo
|
||||
fcronallow = /etc/fcron.allow
|
||||
fcrondeny = /etc/fcron.deny
|
||||
shell = /bin/sh
|
||||
sendmail = /run/wrappers/bin/sendmail
|
||||
editor = ${pkgs.vim}/bin/vim
|
||||
'';
|
||||
{ source =
|
||||
let
|
||||
isSendmailWrapped =
|
||||
lib.hasAttr "sendmail" config.security.wrappers;
|
||||
sendmailPath =
|
||||
if isSendmailWrapped then "/run/wrappers/bin/sendmail"
|
||||
else "${config.system.path}/bin/sendmail";
|
||||
in
|
||||
pkgs.writeText "fcron.conf" ''
|
||||
fcrontabs = /var/spool/fcron
|
||||
pidfile = /var/run/fcron.pid
|
||||
fifofile = /var/run/fcron.fifo
|
||||
fcronallow = /etc/fcron.allow
|
||||
fcrondeny = /etc/fcron.deny
|
||||
shell = /bin/sh
|
||||
sendmail = ${sendmailPath}
|
||||
editor = ${pkgs.vim}/bin/vim
|
||||
'';
|
||||
target = "fcron.conf";
|
||||
gid = config.ids.gids.fcron;
|
||||
mode = "0644";
|
||||
|
|
|
@ -99,8 +99,8 @@ let
|
|||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "nginx";
|
||||
example = "nginx";
|
||||
default = "tt_rss";
|
||||
example = "tt_rss";
|
||||
description = ''
|
||||
User account under which both the update daemon and the web-application run.
|
||||
'';
|
||||
|
@ -466,26 +466,28 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts = mkIf (cfg.virtualHost != null) {
|
||||
"${cfg.virtualHost}" = {
|
||||
root = "${cfg.root}";
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
# NOTE: No configuration is done if not using virtual host
|
||||
virtualHosts = mkIf (cfg.virtualHost != null) {
|
||||
"${cfg.virtualHost}" = {
|
||||
root = "${cfg.root}";
|
||||
|
||||
locations."/" = {
|
||||
index = "index.php";
|
||||
};
|
||||
locations."/" = {
|
||||
index = "index.php";
|
||||
};
|
||||
|
||||
locations."~ \.php$" = {
|
||||
extraConfig = ''
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:${phpfpmSocketName};
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME ${cfg.root}/$fastcgi_script_name;
|
||||
'';
|
||||
locations."~ \.php$" = {
|
||||
extraConfig = ''
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:${phpfpmSocketName};
|
||||
fastcgi_index index.php;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
systemd.services.tt-rss = let
|
||||
dbService = if cfg.database.type == "pgsql" then "postgresql.service" else "mysql.service";
|
||||
in {
|
||||
|
@ -496,7 +498,7 @@ let
|
|||
callSql = e:
|
||||
if cfg.database.type == "pgsql" then ''
|
||||
${optionalString (cfg.database.password != null) "PGPASSWORD=${cfg.database.password}"} \
|
||||
${pkgs.postgresql95}/bin/psql \
|
||||
${pkgs.sudo}/bin/sudo -u ${cfg.user} ${config.services.postgresql.package}/bin/psql \
|
||||
-U ${cfg.database.user} \
|
||||
${optionalString (cfg.database.host != null) "-h ${cfg.database.host} --port ${toString dbPort}"} \
|
||||
-c '${e}' \
|
||||
|
@ -521,6 +523,14 @@ let
|
|||
''
|
||||
|
||||
+ (optionalString (cfg.database.type == "pgsql") ''
|
||||
${optionalString (cfg.database.host == null && cfg.database.password == null) ''
|
||||
if ! [ -e ${cfg.root}/.db-created ]; then
|
||||
${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createuser ${cfg.database.user}
|
||||
${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O ${cfg.database.user} ${cfg.database.name}
|
||||
touch ${cfg.root}/.db-created
|
||||
fi
|
||||
''}
|
||||
|
||||
exists=$(${callSql "select count(*) > 0 from pg_tables where tableowner = user"} \
|
||||
| tail -n+3 | head -n-2 | sed -e 's/[ \n\t]*//')
|
||||
|
||||
|
@ -554,5 +564,28 @@ let
|
|||
requires = ["${dbService}"];
|
||||
after = ["network.target" "${dbService}"];
|
||||
};
|
||||
|
||||
services.mysql = optionalAttrs (cfg.database.type == "mysql") {
|
||||
enable = true;
|
||||
package = mkDefault pkgs.mysql;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.user;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.name}.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.postgresql = optionalAttrs (cfg.database.type == "pgsql") {
|
||||
enable = mkDefault true;
|
||||
};
|
||||
|
||||
users = optionalAttrs (cfg.user == "tt_rss") {
|
||||
extraUsers.tt_rss.group = "tt_rss";
|
||||
extraGroups.tt_rss = {};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -45,6 +45,8 @@ let
|
|||
theme-name = ${cfg.theme.name}
|
||||
icon-theme-name = ${cfg.iconTheme.name}
|
||||
background = ${ldmcfg.background}
|
||||
${optionalString (cfg.clock-format != null) "clock-format = ${cfg.clock-format}"}
|
||||
${optionalString (cfg.indicators != null) "indicators = ${concatStringsSep ";" cfg.indicators}"}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
|
@ -104,6 +106,35 @@ in
|
|||
|
||||
};
|
||||
|
||||
clock-format = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "%F";
|
||||
description = ''
|
||||
Clock format string (as expected by strftime, e.g. "%H:%M")
|
||||
to use with the lightdm gtk greeter panel.
|
||||
|
||||
If set to null the default clock format is used.
|
||||
'';
|
||||
};
|
||||
|
||||
indicators = mkOption {
|
||||
type = types.nullOr (types.listOf types.str);
|
||||
default = null;
|
||||
example = [ "~host" "~spacer" "~clock" "~spacer" "~session" "~language" "~a11y" "~power" ];
|
||||
description = ''
|
||||
List of allowed indicator modules to use for the lightdm gtk
|
||||
greeter panel.
|
||||
|
||||
Built-in indicators include "~a11y", "~language", "~session",
|
||||
"~power", "~clock", "~host", "~spacer". Unity indicators can be
|
||||
represented by short name (e.g. "sound", "power"), service file name,
|
||||
or absolute path.
|
||||
|
||||
If set to null the default indicators are used.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
|
|
|
@ -6,7 +6,11 @@ let
|
|||
|
||||
cfg = config.services.xserver.windowManager.awesome;
|
||||
awesome = cfg.package;
|
||||
inherit (pkgs.luaPackages) getLuaPath getLuaCPath;
|
||||
getLuaPath = lib : dir : "${lib}/${dir}/lua/${pkgs.luaPackages.lua.luaversion}";
|
||||
makeSearchPath = lib.concatMapStrings (path:
|
||||
" --search " + (getLuaPath path "share") +
|
||||
" --search " + (getLuaPath path "lib")
|
||||
);
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -46,10 +50,7 @@ in
|
|||
{ name = "awesome";
|
||||
start =
|
||||
''
|
||||
export LUA_CPATH="${lib.concatStringsSep ";" (map getLuaCPath cfg.luaModules)}"
|
||||
export LUA_PATH="${lib.concatStringsSep ";" (map getLuaPath cfg.luaModules)}"
|
||||
|
||||
${awesome}/bin/awesome &
|
||||
${awesome}/bin/awesome ${makeSearchPath cfg.luaModules} &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
# This module automatically grows the root partition.
|
||||
# This allows an instance to be created with a bigger root filesystem
|
||||
# than provided by the machine image.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
boot.growPartition = mkEnableOption "grow the root partition on boot";
|
||||
};
|
||||
|
||||
config = mkIf config.boot.growPartition {
|
||||
|
||||
boot.initrd.extraUtilsCommands = ''
|
||||
copy_bin_and_libs ${pkgs.gawk}/bin/gawk
|
||||
copy_bin_and_libs ${pkgs.gnused}/bin/sed
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/lsblk
|
||||
|
||||
substitute "${pkgs.cloud-utils}/bin/.growpart-wrapped" "$out/bin/growpart" \
|
||||
--replace "${pkgs.bash}/bin/sh" "/bin/sh" \
|
||||
--replace "awk" "gawk" \
|
||||
--replace "sed" "gnused"
|
||||
|
||||
ln -s sed $out/bin/gnused
|
||||
'';
|
||||
|
||||
boot.initrd.postDeviceCommands = ''
|
||||
rootDevice="${config.fileSystems."/".device}"
|
||||
if [ -e "$rootDevice" ]; then
|
||||
rootDevice="$(readlink -f "$rootDevice")"
|
||||
parentDevice="$(lsblk -npo PKNAME "$rootDevice")"
|
||||
TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}"
|
||||
udevadm settle
|
||||
fi
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
|
@ -11,7 +11,7 @@ with lib;
|
|||
let cfg = config.ec2; in
|
||||
|
||||
{
|
||||
imports = [ ../profiles/headless.nix ./ec2-data.nix ./grow-partition.nix ./amazon-init.nix ];
|
||||
imports = [ ../profiles/headless.nix ./ec2-data.nix ./amazon-init.nix ];
|
||||
|
||||
config = {
|
||||
|
||||
|
@ -21,7 +21,7 @@ let cfg = config.ec2; in
|
|||
}
|
||||
];
|
||||
|
||||
virtualisation.growPartition = cfg.hvm;
|
||||
boot.growPartition = cfg.hvm;
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
gce = pkgs.google-compute-engine;
|
||||
in
|
||||
{
|
||||
imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ./grow-partition.nix ];
|
||||
imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ];
|
||||
|
||||
system.build.googleComputeImage = import ../../lib/make-disk-image.nix {
|
||||
name = "google-compute-image";
|
||||
|
@ -29,6 +29,7 @@ in
|
|||
autoResize = true;
|
||||
};
|
||||
|
||||
boot.growPartition = true;
|
||||
boot.kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
|
||||
boot.initrd.kernelModules = [ "virtio_scsi" ];
|
||||
boot.kernelModules = [ "virtio_pci" "virtio_net" ];
|
||||
|
|
|
@ -1,48 +1,3 @@
|
|||
# This module automatically grows the root partition on virtual machines.
|
||||
# This allows an instance to be created with a bigger root filesystem
|
||||
# than provided by the machine image.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
|
||||
virtualisation.growPartition = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf config.virtualisation.growPartition {
|
||||
|
||||
boot.initrd.extraUtilsCommands = ''
|
||||
copy_bin_and_libs ${pkgs.gawk}/bin/gawk
|
||||
copy_bin_and_libs ${pkgs.gnused}/bin/sed
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/lsblk
|
||||
|
||||
substitute "${pkgs.cloud-utils}/bin/.growpart-wrapped" "$out/bin/growpart" \
|
||||
--replace "${pkgs.bash}/bin/sh" "/bin/sh" \
|
||||
--replace "awk" "gawk" \
|
||||
--replace "sed" "gnused"
|
||||
|
||||
ln -s sed $out/bin/gnused
|
||||
'';
|
||||
|
||||
boot.initrd.postDeviceCommands = ''
|
||||
rootDevice="${config.fileSystems."/".device}"
|
||||
if [ -e "$rootDevice" ]; then
|
||||
rootDevice="$(readlink -f "$rootDevice")"
|
||||
parentDevice="$(lsblk -npo PKNAME "$rootDevice")"
|
||||
TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}"
|
||||
udevadm settle
|
||||
fi
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
# This profile is deprecated, use boot.growPartition directly.
|
||||
builtins.trace "the profile <nixos/modules/virtualisation/grow-partition.nix> is deprecated, use boot.growPartition instead"
|
||||
{ }
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.virtualisation.hypervGuest;
|
||||
|
||||
in {
|
||||
options = {
|
||||
virtualisation.hypervGuest = {
|
||||
enable = mkEnableOption "Hyper-V Guest Support";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ config.boot.kernelPackages.hyperv-daemons.bin ];
|
||||
|
||||
security.rngd.enable = false;
|
||||
|
||||
# enable hotadding memory
|
||||
services.udev.packages = lib.singleton (pkgs.writeTextFile {
|
||||
name = "hyperv-memory-hotadd-udev-rules";
|
||||
destination = "/etc/udev/rules.d/99-hyperv-memory-hotadd.rules";
|
||||
text = ''
|
||||
ACTION="add", SUBSYSTEM=="memory", ATTR{state}="online"
|
||||
'';
|
||||
});
|
||||
|
||||
systemd = {
|
||||
packages = [ config.boot.kernelPackages.hyperv-daemons.lib ];
|
||||
|
||||
targets.hyperv-daemons = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -6,7 +6,6 @@ with lib;
|
|||
imports = [
|
||||
../profiles/qemu-guest.nix
|
||||
../profiles/headless.nix
|
||||
./grow-partition.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
@ -15,8 +14,7 @@ with lib;
|
|||
autoResize = true;
|
||||
};
|
||||
|
||||
virtualisation.growPartition = true;
|
||||
|
||||
boot.growPartition = true;
|
||||
boot.kernelParams = [ "console=ttyS0" ];
|
||||
boot.loader.grub.device = "/dev/vda";
|
||||
boot.loader.timeout = 0;
|
||||
|
|
|
@ -8,8 +8,6 @@ let
|
|||
|
||||
in {
|
||||
|
||||
imports = [ ./grow-partition.nix ];
|
||||
|
||||
options = {
|
||||
virtualbox = {
|
||||
baseImageSize = mkOption {
|
||||
|
@ -23,7 +21,6 @@ in {
|
|||
};
|
||||
|
||||
config = {
|
||||
|
||||
system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix {
|
||||
name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}";
|
||||
|
||||
|
@ -71,6 +68,7 @@ in {
|
|||
autoResize = true;
|
||||
};
|
||||
|
||||
boot.growPartition = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
|
||||
virtualisation.virtualbox.guest.enable = true;
|
||||
|
|
|
@ -2,20 +2,19 @@
|
|||
, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent
|
||||
, withGui }:
|
||||
|
||||
let libsnark = callPackage ./libsnark { inherit boost openssl; };
|
||||
librustzcash = callPackage ./librustzcash {};
|
||||
let librustzcash = callPackage ./librustzcash {};
|
||||
in
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "zcash" + (toString (optional (!withGui) "d")) + "-" + version;
|
||||
version = "1.0.12";
|
||||
version = "1.0.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zcash";
|
||||
repo = "zcash";
|
||||
rev = "v${version}";
|
||||
sha256 = "19bxhdnkvgncgl9x6nbaf5nwgrdfw99icvdbi9adfh646pd5z64s";
|
||||
sha256 = "05y7wxs66anxr5akbf05r36mmjfzqpwawn6vyh3jhpva51hzzzyz";
|
||||
};
|
||||
|
||||
# Dependencies are underspecified: "make -C src gtest/zcash_gtest-test_merkletree.o"
|
||||
|
@ -23,17 +22,15 @@ stdenv.mkDerivation rec {
|
|||
enableParallelBuilding = false;
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [ gtest gmock gmp libsnark openssl wget db62 boost zlib
|
||||
buildInputs = [ gtest gmock gmp openssl wget db62 boost zlib
|
||||
protobuf libevent libsodium librustzcash ]
|
||||
++ optionals stdenv.isLinux [ utillinux ]
|
||||
++ optionals withGui [ qt4 qrencode ];
|
||||
|
||||
configureFlags = [ "LIBSNARK_INCDIR=${libsnark}/include/libsnark"
|
||||
"--with-boost-libdir=${boost.out}/lib"
|
||||
configureFlags = [ "--with-boost-libdir=${boost.out}/lib"
|
||||
] ++ optionals withGui [ "--with-gui=qt4" ];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i"" '/^\[LIBSNARK_INCDIR/d' configure.ac
|
||||
sed -i"" 's,-lboost_system-mt,-lboost_system,' configure.ac
|
||||
sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am
|
||||
'';
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
{ stdenv, xbyak, gmp, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ate-pairing-unstable-${version}";
|
||||
version = "2016-05-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "herumi";
|
||||
repo = "ate-pairing";
|
||||
rev = "dcb9da999b1113f90b115bccb6f4b57ddf3a8452";
|
||||
sha256 = "0jr6r1cma414k8mhsyp7n8hqaqxi7zklsp6820a095sbb3zajckh";
|
||||
};
|
||||
|
||||
buildInputs = [ gmp xbyak ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r lib $out
|
||||
cp -r include $out
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Optimal Ate Pairing over Barreto-Naehrig Curves";
|
||||
homepage = https://github.com/herumi/ate-pairing;
|
||||
maintainers = with maintainers; [ rht ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
{ stdenv, libsodium, callPackage, boost, zlib, openssl, gmp, procps, fetchFromGitHub }:
|
||||
|
||||
let atePairing = callPackage ./ate-pairing.nix { inherit xbyak; };
|
||||
mie = callPackage ./mie.nix { };
|
||||
xbyak = callPackage ./xbyak.nix {};
|
||||
in
|
||||
stdenv.mkDerivation rec{
|
||||
name = "libsnark-unstable-${version}";
|
||||
version = "2017-02-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zcash";
|
||||
repo = "libsnark";
|
||||
rev = "9ada3f84ab484c57b2247c2f41091fd6a0916573";
|
||||
sha256 = "0vhslcb9rwqab9szavyn856z4h9w1syiamfcixqmj0s908zzlaaq";
|
||||
};
|
||||
|
||||
buildInputs = [ libsodium atePairing mie xbyak zlib openssl boost gmp ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"CURVE=ALT_BN128"
|
||||
"NO_SUPERCOP=1"
|
||||
"STATIC=1"
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" \
|
||||
make lib \
|
||||
CURVE=ALT_BN128 \
|
||||
MULTICORE=1 \
|
||||
STATIC=1 \
|
||||
NO_PROCPS=1 \
|
||||
NO_GTEST=1 \
|
||||
FEATUREFLAGS=-DMONTGOMERY_OUTPUT \
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "a C++ library for zkSNARK proofs";
|
||||
homepage = https://github.com/zcash/libsnark;
|
||||
maintainers = with maintainers; [ rht ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{ stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mie-unstable-${version}";
|
||||
version = "2016-05-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "herumi";
|
||||
repo = "mie";
|
||||
rev = "704b625b7770a8e1eab26ac65d1fed14c2fcf090";
|
||||
sha256 = "144bpmgfs2m4qqv7a2mccgi1aq5jmlr25gnk78ryq09z8cyv88y2";
|
||||
};
|
||||
|
||||
phases = ["unpackPhase" "installPhase"];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r include $out
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/herumi/mie;
|
||||
maintainers = with maintainers; [ rht ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xbyak-unstable-${version}";
|
||||
version = "2016-05-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "herumi";
|
||||
repo = "xbyak";
|
||||
rev = "b6133a02dd6b7116bea31d0e6b7142bf97f071aa";
|
||||
sha256 = "1rc2nx8kj2lj13whxb9chhh79f4hmjjj4j1hpqsd0lbdb60jikrn";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/include
|
||||
cp -r xbyak $out/include
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "JIT assembler for x86, x64";
|
||||
homepage = https://github.com/herumi/xbyak;
|
||||
maintainers = with maintainers; [ rht ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,35 +1,35 @@
|
|||
{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, ffmpeg, freetype, gdk_pixbuf
|
||||
, glib, gtk2, harfbuzz, jdk, lib, libX11, libXau, libXcursor, libXdmcp
|
||||
, libXext, libXfixes, libXrender, libbsd, libjack2, libpng, libxcb
|
||||
, libxkbcommon, libxkbfile, makeWrapper, pixman, xcbutil, xcbutilwm
|
||||
{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk_pixbuf
|
||||
, glib, gtk2, harfbuzz, jdk, lib, xorg
|
||||
, libbsd, libjack2, libpng
|
||||
, libxkbcommon
|
||||
, makeWrapper, pixman
|
||||
, xdg_utils, zenity, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bitwig-studio-${version}";
|
||||
version = "2.2.2";
|
||||
version = "1.3.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
||||
sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
|
||||
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
||||
sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ dpkg makeWrapper ];
|
||||
|
||||
unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
|
||||
|
||||
dontBuild = true;
|
||||
dontBuild = true;
|
||||
dontPatchELF = true;
|
||||
dontStrip = true;
|
||||
dontStrip = true;
|
||||
|
||||
libPath = lib.makeLibraryPath [
|
||||
alsaLib bzip2.out cairo freetype gdk_pixbuf glib gtk2 harfbuzz
|
||||
libX11 libXau libXcursor libXdmcp libXext libXfixes libXrender
|
||||
libbsd libjack2 libpng libxcb libxkbfile pixman xcbutil xcbutilwm
|
||||
zlib
|
||||
libPath = with xorg; lib.makeLibraryPath [
|
||||
alsaLib bzip2.out cairo freetype gdk_pixbuf glib gtk2 harfbuzz libX11 libXau
|
||||
libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
|
||||
libxkbfile pixman xcbutil xcbutilwm zlib
|
||||
];
|
||||
|
||||
binPath = lib.makeBinPath [
|
||||
ffmpeg xdg_utils zenity
|
||||
xdg_utils zenity
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
|
@ -95,6 +95,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = http://www.bitwig.com/;
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ michalrus ];
|
||||
maintainers = with maintainers; [ michalrus mrVanDalo ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{ stdenv, fetchurl, bitwig-studio1,
|
||||
xdg_utils, zenity, ffmpeg }:
|
||||
|
||||
bitwig-studio1.overrideAttrs (oldAttrs: rec {
|
||||
name = "bitwig-studio-${version}";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
||||
sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
|
||||
};
|
||||
|
||||
buildInputs = bitwig-studio1.buildInputs ++ [ ffmpeg ];
|
||||
|
||||
binPath = stdenv.lib.makeBinPath [
|
||||
ffmpeg xdg_utils zenity
|
||||
];
|
||||
})
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jack_capture-${version}";
|
||||
version = "0.9.69";
|
||||
version = "0.9.73";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://archive.notam02.no/arkiv/src/${name}.tar.gz";
|
||||
sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv";
|
||||
sha256 = "1pji0zdwm3kxjrkbzj7fnxhr8ncrc8pyqnwyrh47fhypgqjv1br1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
|
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
|
|||
name = "jackmeter-0.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.aelius.com/njh/jackmeter/${name}.tar.gz";
|
||||
url = "https://www.aelius.com/njh/jackmeter/${name}.tar.gz";
|
||||
sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r";
|
||||
};
|
||||
|
||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "Console jack loudness meter";
|
||||
homepage = http://www.aelius.com/njh/jackmeter/;
|
||||
homepage = https://www.aelius.com/njh/jackmeter/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [ stdenv.lib.maintainers.marcweber ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
|
|
|
@ -33,7 +33,7 @@ pythonPackages.buildPythonApplication rec {
|
|||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.mopidy.com/;
|
||||
homepage = https://www.mopidy.com/;
|
||||
description = ''
|
||||
An extensible music server that plays music from local disk, Spotify,
|
||||
SoundCloud, Google Play Music, and more
|
||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A minimalist command line interface to MPD";
|
||||
homepage = http://www.musicpd.org/clients/mpc/;
|
||||
homepage = https://www.musicpd.org/clients/mpc/;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ algorith ];
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
|
|
|
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Music notation and composition software";
|
||||
homepage = http://musescore.org/;
|
||||
homepage = https://musescore.org/;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.vandenoever ];
|
||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Curses-based interface for MPD (music player daemon)";
|
||||
homepage = http://www.musicpd.org/clients/ncmpc/;
|
||||
homepage = https://www.musicpd.org/clients/ncmpc/;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.4.5";
|
||||
version = "0.5.0";
|
||||
name = "qjackctl-${version}";
|
||||
|
||||
# some dependencies such as killall have to be installed additionally
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
|
||||
sha256 = "1dsavjfzz5bpzc80mvfs940w9f9f47cf4r9cqxnaqrl4xilsa3f5";
|
||||
sha256 = "0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.4.3";
|
||||
version = "0.5.0";
|
||||
name = "qmidinet-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qmidinet/${name}.tar.gz";
|
||||
sha256 = "1qhxhlvi6bj2a06i48pw81zf5vd36idxbq04g30794yhqcimh6vw";
|
||||
sha256 = "0nxbvjgx11ljy1nxqknyq7pla55ky2ybi1jbisvq2cqxa34jsxf6";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "setbfree-${version}";
|
||||
version = "0.8.0";
|
||||
version = "0.8.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
|
||||
sha256 = "1lfylai4gyk512dknj16w2aq9ka8hvqca46nmq5b4rfjmi6dkxf6";
|
||||
sha256 = "0qfccny0hh9lq54272mzmxvfz2jmzcgigjkjwn6v9h6n00gi5bw4";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
|
|
@ -6,11 +6,11 @@ assert stdenv ? glibc;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "yoshimi-${version}";
|
||||
version = "1.5.5";
|
||||
version = "1.5.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
||||
sha256 = "0h71x9742bswifwll7bma1fz648fd5xd0yfp7byvsczy6zhjz5pf";
|
||||
sha256 = "0bjfhfslpa2hjrc9h38m7dlr62953w9n4cvkgvfy495cbym12dak";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://launchpad.net/lightdm-gtk-greeter;
|
||||
homepage = https://launchpad.net/lightdm-gtk-greeter;
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ ocharles wkennington ];
|
||||
|
|
|
@ -135,10 +135,10 @@
|
|||
arbitools = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "arbitools";
|
||||
version = "0.91";
|
||||
version = "0.93";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/arbitools-0.91.el";
|
||||
sha256 = "0r0nbpwjxal40ydvx7hmjq56x12jcfqgld7yc4fjfz93wn8m40qf";
|
||||
url = "https://elpa.gnu.org/packages/arbitools-0.93.el";
|
||||
sha256 = "0z3lqp8dqfkams5h4sw569p48d2rvpd3d8lb4xaw0z8l49y2mvg8";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
|
@ -768,10 +768,10 @@
|
|||
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib, stream }:
|
||||
elpaBuild {
|
||||
pname = "el-search";
|
||||
version = "1.4.0.11";
|
||||
version = "1.4.0.12";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.4.0.11.tar";
|
||||
sha256 = "12m468fxwfrwjkm0wcraafb7n9shh9fmw43nggc216ch3syxmfaw";
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.4.0.12.tar";
|
||||
sha256 = "140p1ian8dwip6305spg4rvm3rqxhznlq0w5msixw6ykwm735a8z";
|
||||
};
|
||||
packageRequires = [ emacs stream ];
|
||||
meta = {
|
||||
|
@ -2254,10 +2254,10 @@
|
|||
}) {};
|
||||
vlf = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "vlf";
|
||||
version = "1.7";
|
||||
version = "1.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/vlf-1.7.tar";
|
||||
sha256 = "007zdr5szimr6nwwrqz9s338s0qq82r006pdwgcm8nc41jsmsx7r";
|
||||
url = "https://elpa.gnu.org/packages/vlf-1.7.1.tar";
|
||||
sha256 = "0cnwxk20573iqkwk0c0h7pyjk0rkr8l2qd0xmyqj8mvdxjb8nnkz";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
melpaBuild {
|
||||
pname = "font-lock-plus";
|
||||
version = "20170222.1755";
|
||||
version = "20180101.25";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.emacswiki.org/emacs/download/font-lock+.el";
|
||||
sha256 = "0iajkgh0n3pbrwwxx9rmrrwz8dw2m7jsp4mggnhq7zsb20ighs30";
|
||||
url = "https://www.emacswiki.org/emacs/download/font-lock%2b.el?revision=25";
|
||||
sha256 = "0197yzn4hbjmw5h3m08264b7zymw63pdafph5f3yzfm50q8p7kp4";
|
||||
name = "font-lock+.el";
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4256,12 +4256,12 @@
|
|||
cider = callPackage ({ clojure-mode, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, pkg-info, queue, seq, spinner }:
|
||||
melpaBuild {
|
||||
pname = "cider";
|
||||
version = "0.15.1";
|
||||
version = "0.16.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "clojure-emacs";
|
||||
repo = "cider";
|
||||
rev = "8a9eab32646abcaaf31fe83b2d897c01971b98f1";
|
||||
sha256 = "0ddkm87l9ann05a6j57r0x59qqgfavwrvlzhkc5xhak1nmk5556h";
|
||||
rev = "74f7901b416efbd032bb4f8b5c25f57fdf731115";
|
||||
sha256 = "0n2b6q8r2gzr3ghyvg5sawir47rk7jmsslvxx6by27bn77h4nzil";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/55a937aed818dbe41530037da315f705205f189b/recipes/cider";
|
||||
|
@ -7190,6 +7190,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
dimmer = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "dimmer";
|
||||
version = "0.2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gonewest818";
|
||||
repo = "dimmer.el";
|
||||
rev = "b0faaa6919e633229ced07ff8bd8b5c68b90243a";
|
||||
sha256 = "04k7m5kg2a32ldgxfc2jkdwbmxzyc3yv66871ywv9152db2g7iml";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/8ae80e9202d69ed3214325dd15c4b2f114263954/recipes/dimmer";
|
||||
sha256 = "0w8n5svckk1jp8856pg2gkws9798prqjjkdqf8ili2hjcqnd1a3r";
|
||||
name = "dimmer";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/dimmer";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
dionysos = callPackage ({ alert, cl-lib ? null, dash, fetchFromGitHub, fetchurl, lib, libmpdee, melpaBuild, pkg-info, s }:
|
||||
melpaBuild {
|
||||
pname = "dionysos";
|
||||
|
@ -7809,12 +7830,12 @@
|
|||
doom-themes = callPackage ({ all-the-icons, cl-lib ? null, emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "doom-themes";
|
||||
version = "2.0.9";
|
||||
version = "2.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hlissner";
|
||||
repo = "emacs-doom-themes";
|
||||
rev = "8ff86e456b22ab4c28605c44e544b3ef0b4b4637";
|
||||
sha256 = "0zfr6487hvn08dc9hhwf2snhd3ds4kfaglribxddx38dhd87hk73";
|
||||
rev = "bc747b3b65baf737f99dc4ccf68558581958bbba";
|
||||
sha256 = "0j5aywwh8cw0bb55frrpmyfmbzg6d6jv29ys61p1xf49gvki870m";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c5084bc2c3fe378af6ff39d65e40649c6359b7b5/recipes/doom-themes";
|
||||
|
@ -8270,12 +8291,12 @@
|
|||
easy-hugo = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "easy-hugo";
|
||||
version = "2.7.19";
|
||||
version = "2.8.20";
|
||||
src = fetchFromGitHub {
|
||||
owner = "masasam";
|
||||
repo = "emacs-easy-hugo";
|
||||
rev = "1a8c4286ac1d92114dbda9042ed831cc83175db9";
|
||||
sha256 = "11vwzgy1dn4sj1yhnvvim6p9w3dl896azh3wlrmg8g6y6qfzblc7";
|
||||
rev = "253d91cda8722fa69b8ee67b1802137863bc3d9a";
|
||||
sha256 = "1i5hdm9xwajid7kzx6gq8lhx5w2aihvb0ka5h2s88zb1xnnxss46";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/easy-hugo";
|
||||
|
@ -8291,12 +8312,12 @@
|
|||
easy-jekyll = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "easy-jekyll";
|
||||
version = "1.4.10";
|
||||
version = "1.5.11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "masasam";
|
||||
repo = "emacs-easy-jekyll";
|
||||
rev = "d5226405c035d0dd675cacfd514388c348a4559a";
|
||||
sha256 = "1pmaa0ry1yd8d2pbn4srv5bf1hqss046zjl2p3ag1ag0qb35fh39";
|
||||
rev = "4eac3993d9bbec9ddfe38b128fd3ed6670f526e2";
|
||||
sha256 = "0ffspw6xavfbk0klqjp8va7ybvsdcxlw1qmqhi6paqam90m6vazz";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/c3f281145bad12c27bdbef32ccc07b6a5f13b577/recipes/easy-jekyll";
|
||||
|
@ -12988,12 +13009,12 @@
|
|||
flycheck-objc-clang = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "flycheck-objc-clang";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "GyazSquare";
|
||||
repo = "flycheck-objc-clang";
|
||||
rev = "29a9eb320d62400564360986f7ad400b74070d8e";
|
||||
sha256 = "0b4vwbxzhds9vb4nknfdywvfpr1gkk86vsbbq6f5ds0pfk75x022";
|
||||
rev = "07f17d1dbe878fdcabac791a8916ddf643571a68";
|
||||
sha256 = "03624xn6g1ybcjw634c7nd5s2yllwfffk2gzn5hm70vfz06q7wb9";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4ff4412f507371b93cfb85fc744e54110cd87338/recipes/flycheck-objc-clang";
|
||||
|
@ -13219,12 +13240,12 @@
|
|||
flycheck-swift3 = callPackage ({ emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "flycheck-swift3";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "GyazSquare";
|
||||
repo = "flycheck-swift3";
|
||||
rev = "756833425f51baa9eb0a2fa7493df6e68612c88d";
|
||||
sha256 = "1hvrg717q0nlz4r8wby82gs3vdx8fdhf38rg4j77j3fqfmxdd3fi";
|
||||
rev = "34973cd28ca5e63f8f6328a17fd7b78cc913b93d";
|
||||
sha256 = "1iy6j05dzpi7pi87y6rpjzmlnl2s9izqpbzknis2kx9072qddm3q";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/f1fb8c731c118327dc0bbb726e046fec46bcfb82/recipes/flycheck-swift3";
|
||||
|
@ -14038,12 +14059,12 @@
|
|||
fountain-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "fountain-mode";
|
||||
version = "2.3.1";
|
||||
version = "2.4.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rnkn";
|
||||
repo = "fountain-mode";
|
||||
rev = "5c63d2f199e96bdf8fd60d375b2b6e305a5f9017";
|
||||
sha256 = "0vxizl4pr0668b1d94wrl42li2709srvnn5likn8lskv2mv0bnvn";
|
||||
rev = "3f953ae30ad55bbbbb80aa0350992e79f4b00f56";
|
||||
sha256 = "1zksjvpvhbr79fg281yhx8k419q9kd4jpi47i9943cs0m088ykyn";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/913386ac8d5049d37154da3ab32bde408a226511/recipes/fountain-mode";
|
||||
|
@ -15765,6 +15786,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
go-tag = callPackage ({ emacs, fetchFromGitHub, fetchurl, go-mode, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "go-tag";
|
||||
version = "1.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "brantou";
|
||||
repo = "emacs-go-tag";
|
||||
rev = "51b032465405a62f84d9181168a570610ba04085";
|
||||
sha256 = "0158c3yjw21skwa03qmh3xpg9wg7rnk6xbxqx5vxi24205zsz0kd";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/fc4cd3fd8fb0707912e205b9d71789ea8126c442/recipes/go-tag";
|
||||
sha256 = "18ff41i0gr708fl4gzzspf9cc09nv4wy21wsn609yhwlh7w0vs1f";
|
||||
name = "go-tag";
|
||||
};
|
||||
packageRequires = [ emacs go-mode ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/go-tag";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
godoctor = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "godoctor";
|
||||
|
@ -15936,12 +15978,12 @@
|
|||
goto-chg = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "goto-chg";
|
||||
version = "1.7";
|
||||
version = "1.7.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "emacs-evil";
|
||||
repo = "goto-chg";
|
||||
rev = "171b1331022caf12d8c3593e9b5075f87ee958d4";
|
||||
sha256 = "1jcnrin4j1x8p63fd9r37dq1vr5a7a1nvzk6kp0bdsgn9vbjmapc";
|
||||
rev = "6cb244922b733358fd6985b36c4b87ef2e177293";
|
||||
sha256 = "0miscmk5gg7mqqwjb5mlrkbpsx4pny2w3rpr90f7yiv30rf83b5j";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/cf1fc176430fe3ab55ce537a0efc59780bb812be/recipes/goto-chg";
|
||||
|
@ -16104,12 +16146,12 @@
|
|||
grails-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "grails-mode";
|
||||
version = "1.0.2";
|
||||
version = "2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Groovy-Emacs-Modes";
|
||||
repo = "groovy-emacs-modes";
|
||||
rev = "f8e9628916d4d41e1816b53d02f0b5a00c499555";
|
||||
sha256 = "1myb15n207yl2cgacmn105r1xbjq076paq6anvw53smy3fhw9sh9";
|
||||
rev = "d7b362e6186d263ec3eefc141dbb5b27a8773f24";
|
||||
sha256 = "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/grails-mode";
|
||||
|
@ -16383,22 +16425,22 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
groovy-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
groovy-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
|
||||
melpaBuild {
|
||||
pname = "groovy-mode";
|
||||
version = "1.0.2";
|
||||
version = "2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Groovy-Emacs-Modes";
|
||||
repo = "groovy-emacs-modes";
|
||||
rev = "f8e9628916d4d41e1816b53d02f0b5a00c499555";
|
||||
sha256 = "1myb15n207yl2cgacmn105r1xbjq076paq6anvw53smy3fhw9sh9";
|
||||
rev = "d7b362e6186d263ec3eefc141dbb5b27a8773f24";
|
||||
sha256 = "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/3fe318b4e51a280a55c01fa30455e4a180df8bd6/recipes/groovy-mode";
|
||||
sha256 = "1pxw7rdn56klmr6kw21lhzh7zhp338gyf54ypsml64ibzr1x9kal";
|
||||
name = "groovy-mode";
|
||||
};
|
||||
packageRequires = [];
|
||||
packageRequires = [ emacs s ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/groovy-mode";
|
||||
license = lib.licenses.free;
|
||||
|
@ -16533,12 +16575,12 @@
|
|||
guix = callPackage ({ bui, dash, emacs, fetchFromGitHub, fetchurl, geiser, lib, magit-popup, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "guix";
|
||||
version = "0.3.3";
|
||||
version = "0.3.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alezost";
|
||||
repo = "guix.el";
|
||||
rev = "54bd174b514c5de11e82c4263ac2723addb0fe87";
|
||||
sha256 = "1i5kwzwlb6lx65rgixm8mbdi6x03n0hb4hbc7j76lar4j58ypwz2";
|
||||
rev = "a43828f6e5d6dc4e623a4b78e0dfdddbf5b20185";
|
||||
sha256 = "0c19njb5cg6g3fav9322hkbl4h9zwcbymhc5wr0k9yqi7pv8gz0v";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b3d8c73e8a946b8265487a0825d615d80aa3337d/recipes/guix";
|
||||
|
@ -21002,12 +21044,12 @@
|
|||
js-auto-format-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "js-auto-format-mode";
|
||||
version = "1.0.4";
|
||||
version = "1.0.5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ybiquitous";
|
||||
repo = "js-auto-format-mode";
|
||||
rev = "cad63f1760e765298cc91e3503ac46c8771da4be";
|
||||
sha256 = "1pg4ghfi0fzmnwrw3y4z3gy031psxvzjydwm4jbdrm33ais7919g";
|
||||
rev = "7872e6f1d8280830c70cae8f1e3edb8049aba295";
|
||||
sha256 = "0a9rbs0pjx953rbblmia9jznxykz5qa9q5wzkj341z6vfq9rq3rf";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/2d3be16771b5b5fde639da3ee97890620354ee7a/recipes/js-auto-format-mode";
|
||||
|
@ -23647,12 +23689,12 @@
|
|||
meghanada = callPackage ({ company, emacs, fetchFromGitHub, fetchurl, flycheck, lib, melpaBuild, yasnippet }:
|
||||
melpaBuild {
|
||||
pname = "meghanada";
|
||||
version = "0.8.4";
|
||||
version = "0.9.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mopemope";
|
||||
repo = "meghanada-emacs";
|
||||
rev = "555b8b9ea8ef56dda645ea605b38501cb4222b12";
|
||||
sha256 = "1z3vvasah4gq6byq4ibkihy5mbch5zzxnn0gy86jldapwi1z74sq";
|
||||
rev = "98ad6a5361c725319a355522d2d1ba0e0fbb7cde";
|
||||
sha256 = "06iryz4dbldc9vxy67g977hih8r1bfvjld53lvwnjsc7r3x9i07q";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/4c75c69b2f00be9a93144f632738272c1e375785/recipes/meghanada";
|
||||
|
@ -25364,11 +25406,11 @@
|
|||
}) {};
|
||||
notmuch = callPackage ({ fetchgit, fetchurl, lib, melpaBuild }: melpaBuild {
|
||||
pname = "notmuch";
|
||||
version = "0.25.3";
|
||||
version = "0.26pre1";
|
||||
src = fetchgit {
|
||||
url = "git://git.notmuchmail.org/git/notmuch";
|
||||
rev = "ae55a86639f86ad1b547e961f71b1bde2180752d";
|
||||
sha256 = "0kq2j23381qr50zkvx68yciq1xag20fzidgy5jd69bd7z6gziq90";
|
||||
rev = "1ed211d042d5f413731f812b5af7e82819a6e8ae";
|
||||
sha256 = "140c3bhh24dy2cfsvgf9y7h02sjp6cjv8qam6kd8wjlrd3y9zd80";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/b19f21ed7485036e799ccd88edbf7896a379d759/recipes/notmuch";
|
||||
|
@ -25633,6 +25675,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ob-coffeescript = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ob-coffeescript";
|
||||
version = "1.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "brantou";
|
||||
repo = "ob-coffeescript";
|
||||
rev = "b70f3d822c707cb02333fcb739ba4874614cad2a";
|
||||
sha256 = "0284v3km41427q7dr0wmvf3zhbsgzj0j2r9zny0g3n85qvyk0rgd";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/ba1a808c77653bac1948d6c44bd1db09301ffeff/recipes/ob-coffeescript";
|
||||
sha256 = "05q1wnabw52kd3fpcpinpxs9z6xmi4n1p19jbcz0bgjpnw05s27p";
|
||||
name = "ob-coffeescript";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/ob-coffeescript";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ob-http = callPackage ({ cl-lib ? null, fetchFromGitHub, fetchurl, lib, melpaBuild, s }:
|
||||
melpaBuild {
|
||||
pname = "ob-http";
|
||||
|
@ -25654,6 +25717,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ob-hy = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ob-hy";
|
||||
version = "1.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "brantou";
|
||||
repo = "ob-hy";
|
||||
rev = "a3512f274709dc4ab6c18d7955d361f8715505f0";
|
||||
sha256 = "1i796041svy7njjl3aqaxzjydmm24q688vpxvqd0pj5hyajqdgqw";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/12a7a7dba169010a3a047f961010236a203c16c2/recipes/ob-hy";
|
||||
sha256 = "18a8fpda0f28wxmjprhd9dmz7bpk1j3iayl20lqffrcal6m4f1h7";
|
||||
name = "ob-hy";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/ob-hy";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ob-prolog = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "ob-prolog";
|
||||
|
@ -32959,12 +33043,12 @@
|
|||
shx = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "shx";
|
||||
version = "0.0.12";
|
||||
version = "0.0.13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "riscy";
|
||||
repo = "shx-for-emacs";
|
||||
rev = "aa45e7b586b1215ca1af05c14984ce872571b5f7";
|
||||
sha256 = "0ya7vbp71vmvli35rwcwspbclss5ngr1ck9074i2gg1dzrqyxijn";
|
||||
rev = "33383bd359d795df2d7ef725b5349c953f5a6aa8";
|
||||
sha256 = "1arwsb6as8jpah0bs3b92a3kdnbfkhnsm1jglspfh4lqpafmx5vf";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/7a2ff78ae3c4289ebf9e06cdfd8f8082c395a16f/recipes/shx";
|
||||
|
@ -33817,6 +33901,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
solidity-mode = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild }:
|
||||
melpaBuild {
|
||||
pname = "solidity-mode";
|
||||
version = "0.1.8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "emacs-solidity";
|
||||
rev = "b5d95ef678305ca70b17e94fc2ee4289a8328048";
|
||||
sha256 = "04l3hvfpgqiaxdxh8s2cg2rx4cy50i7a411q81g8661fx60c6h6p";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/bb9df5ec0692352b6494d435d11166f4ea26c99e/recipes/solidity-mode";
|
||||
sha256 = "1qdzdivrf5yaa80p61b9r1gryw112v5l2m2jkvkc7glhkhrcvwsx";
|
||||
name = "solidity-mode";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/solidity-mode";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
sos = callPackage ({ fetchFromGitHub, fetchurl, lib, melpaBuild, org }:
|
||||
melpaBuild {
|
||||
pname = "sos";
|
||||
|
@ -34743,12 +34848,12 @@
|
|||
swift-mode = callPackage ({ emacs, fetchFromGitHub, fetchurl, lib, melpaBuild, seq }:
|
||||
melpaBuild {
|
||||
pname = "swift-mode";
|
||||
version = "4.0.0";
|
||||
version = "4.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "chrisbarrett";
|
||||
repo = "swift-mode";
|
||||
rev = "18c3dc47dfece59640ad501266f2e47b918f2a14";
|
||||
sha256 = "0qk962xzxm8si1h5p7vdnqw7xcaxdjxsaz1yad11pvn9l2b2zpzq";
|
||||
rev = "8c45f69a078c41619a7a3db6d54a732c3fad8e3f";
|
||||
sha256 = "1isy71vkws3ywm4iwa85dk12810az3h85n6bimd36dfqbhfwdrli";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/19cb133191cd6f9623e99e958d360113595e756a/recipes/swift-mode";
|
||||
|
@ -38675,8 +38780,8 @@
|
|||
version = "1.80";
|
||||
src = fetchhg {
|
||||
url = "https://www.yatex.org/hgrepos/yatex/";
|
||||
rev = "16763e5b7481";
|
||||
sha256 = "1mrcc9amz0kflm570bd2cprhin0z8lr668k2s56mj6shixb61dwh";
|
||||
rev = "feef2aa1f50f";
|
||||
sha256 = "0453y7a9lq28bmbrrcbsnsrwnhjphq4s4vcr9ncb5252m6fnwdyl";
|
||||
};
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/e28710244a1bef8f56156fe1c271520896a9c694/recipes/yatex";
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{ callPackage }: {
|
||||
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "org";
|
||||
version = "20171225";
|
||||
version = "20180102";
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/elpa/org-20171225.tar";
|
||||
sha256 = "1wp1mbp0b8vygrlx0bb79d9zb91kca13nlhrxh59h9w496jj30dy";
|
||||
url = "https://orgmode.org/elpa/org-20180102.tar";
|
||||
sha256 = "1jz92wv637x1kp726kgcc29s4s4rscfhb7rhhnr69ny83r1hlczi";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
|
@ -14,10 +14,10 @@
|
|||
}) {};
|
||||
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "org-plus-contrib";
|
||||
version = "20171225";
|
||||
version = "20180102";
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/elpa/org-plus-contrib-20171225.tar";
|
||||
sha256 = "10d44sqm9sh8gjy7xlnpqhyq35yxdijjm2322khc5bylvq60ianc";
|
||||
url = "https://orgmode.org/elpa/org-plus-contrib-20180102.tar";
|
||||
sha256 = "02ajqc8k44w2gskjazkglmn2v0jsxfns0wq3pgslhb7ychs3yrlv";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "focuswriter-${version}";
|
||||
version = "1.6.7";
|
||||
version = "1.6.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
|
||||
sha256 = "10rqzinr6yd6ca06rklg34kdc08a3xgygfzmprsfg7gdsybfay5z";
|
||||
sha256 = "1d2q99xa7dhdpqkipapzi1r1mvynf70s7sgdczd59kn0d8sr3map";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig qmake qttools ];
|
||||
|
|
|
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
|||
- Simple project management
|
||||
- Plugin interface
|
||||
'';
|
||||
homepage = http://www.geany.org/;
|
||||
homepage = https://www.geany.org/;
|
||||
license = "GPL";
|
||||
maintainers = [];
|
||||
platforms = platforms.all;
|
||||
|
|
|
@ -299,12 +299,12 @@ in
|
|||
|
||||
phpstorm = buildPhpStorm rec {
|
||||
name = "phpstorm-${version}";
|
||||
version = "2017.3"; /* updated by script */
|
||||
version = "2017.3.2";
|
||||
description = "Professional IDE for Web and PHP developers";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||
sha256 = "1byhlm5bnp6ic4n2xg17v4g34ipygy50i9xj4292b0xw7srxh910"; /* updated by script */
|
||||
sha256 = "1grkqvj4j33d8hmy11ipkcci20sw7jpnc5zl28a9g85f2pzvsvs0";
|
||||
};
|
||||
wmClass = "jetbrains-phpstorm";
|
||||
update-channel = "PS2017.3";
|
||||
|
|
|
@ -20,15 +20,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "nano-${version}";
|
||||
version = "2.9.1";
|
||||
version = "2.9.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/nano/${name}.tar.xz";
|
||||
sha256 = "0z5sxji8jh8sh0g3inbzndhsrbm4qyqlvjrxl5wkxbr61lnxa5k3";
|
||||
sha256 = "0m9xm085pi0fhmmshgppipjimr1jkxksbyg8pa5cwaap3d2vgk2f";
|
||||
};
|
||||
|
||||
patches = [ ./nano-2.9.1-darwin.patch ];
|
||||
|
||||
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
--- a/lib/stat.c
|
||||
+++ b/lib/stat.c
|
||||
@@ -48,4 +48,6 @@ orig_stat (const char *filename, struct stat *buf)
|
||||
#include "sys/stat.h"
|
||||
|
||||
+#include "stat-time.h"
|
||||
+
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
|
@ -124,7 +124,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib;
|
||||
{ description = "Set of integrated tools for the R language";
|
||||
homepage = http://www.rstudio.com/;
|
||||
homepage = https://www.rstudio.com/;
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ ehmry changlinli ciil ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -7,13 +7,13 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [ ncurses ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.cjmweb.net/vbindiff/${name}.tar.gz";
|
||||
url = "https://www.cjmweb.net/vbindiff/${name}.tar.gz";
|
||||
sha256 = "0gcqy4ggp60qc6blq1q1gc90xmhip1m6yvvli4hdqlz9zn3mlpbx";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "A terminal visual binary diff viewer";
|
||||
homepage = http://www.cjmweb.net/vbindiff/;
|
||||
homepage = https://www.cjmweb.net/vbindiff/;
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
|
|
|
@ -2,15 +2,15 @@
|
|||
libharu, opencv, vigra, postgresql }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "saga-5.0.0";
|
||||
name = "saga-6.2.0";
|
||||
|
||||
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/saga-gis/SAGA%20-%205/SAGA%20-%205.0.0/saga-5.0.0.tar.gz";
|
||||
sha256 = "9be997209737e80262d9f13fd9b9797194a9f2facb10e5b9bd756d8cda675089";
|
||||
url = "mirror://sourceforge/project/saga-gis/SAGA%20-%206/SAGA%20-%206.2.0/saga-6.2.0.tar.gz";
|
||||
sha256 = "91b030892c894ba02eb4292ebfc9ccbf4acf3062118f2a89a9a11208773fa280";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -14,8 +14,8 @@ let
|
|||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "7.0.7-14";
|
||||
sha256 = "04hpc9i6fp09iy0xkidlfhfqr7zg45izqqj5fx93n3dxalq65xqw";
|
||||
version = "7.0.7-19";
|
||||
sha256 = "1naib6hspmq7d4gfpsksx78gc1lq3p2v3i9pxkkdvr9p9j15c4az";
|
||||
patches = [];
|
||||
};
|
||||
in
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, pkgconfig, libtool
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkgconfig, libtool
|
||||
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg
|
||||
, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp
|
||||
, ApplicationServices
|
||||
|
@ -14,8 +14,8 @@ let
|
|||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "6.9.9-26";
|
||||
sha256 = "10rcq7b9hhz50m4yqnm4g3iai7lr9jkglb7sm49ycw59arrkmwnw";
|
||||
version = "6.9.9-28";
|
||||
sha256 = "132kdl7jlkghfg3smdab14c29cpvrx65ibipxkmwg1nc88ycqivh";
|
||||
patches = [];
|
||||
}
|
||||
# Freeze version on mingw so we don't need to port the patch too often.
|
||||
|
@ -36,13 +36,10 @@ stdenv.mkDerivation rec {
|
|||
name = "imagemagick-${version}";
|
||||
inherit (cfg) version;
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"mirror://imagemagick/releases/ImageMagick-${version}.tar.xz"
|
||||
# the original source above removes tarballs quickly
|
||||
"http://distfiles.macports.org/ImageMagick/ImageMagick-${version}.tar.xz"
|
||||
"https://bintray.com/homebrew/mirror/download_file?file_path=imagemagick-${version}.tar.xz"
|
||||
];
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick";
|
||||
rev = cfg.version;
|
||||
inherit (cfg) sha256;
|
||||
};
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ buildPythonPackage {
|
|||
|
||||
meta = {
|
||||
description = "Display Calibration and Characterization powered by Argyll CMS";
|
||||
homepage = http://displaycal.net/;
|
||||
homepage = https://displaycal.net/;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = [stdenv.lib.maintainers.marcweber];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
|
|
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "A minimal image viewer using raw XLib";
|
||||
homepage = http://www.johnhawthorn.com/meh/;
|
||||
homepage = https://www.johnhawthorn.com/meh/;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
|
|||
version = "1.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
||||
url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
||||
sha256 = "17kkpzkmzfnigs26jjyd75iy58qffjsclif81cmviq73lzmqy0b1";
|
||||
};
|
||||
|
||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://photoqt.org/;
|
||||
homepage = https://photoqt.org/;
|
||||
description = "Simple, yet powerful and good looking image viewer";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
|
|
|
@ -26,7 +26,7 @@ in
|
|||
lib.optionals stdenv.isLinux [ "-DINSTALL_UDEV_RULES=ON" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://github.com/airspy/airspyone_host;
|
||||
homepage = https://github.com/airspy/airspyone_host;
|
||||
description = "Host tools and driver library for the AirSpy SDR";
|
||||
license = licenses.free;
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.12.0";
|
||||
version = "3.14.0";
|
||||
name = "calibre-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||
sha256 = "0l7r5ny9a36yg22fqzz3as6wh1xqpa3hrlx2gy25yp649sbkd9vq";
|
||||
sha256 = "1367jh82mhjjlvyd30mfz3qwscg60l0gimakvzpbkrah918kfk51";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildGoPackage rec {
|
||||
name = "hugo-${version}";
|
||||
version = "0.30.2";
|
||||
version = "0.32.2";
|
||||
|
||||
goPackagePath = "github.com/gohugoio/hugo";
|
||||
|
||||
|
@ -10,7 +10,7 @@ buildGoPackage rec {
|
|||
owner = "gohugoio";
|
||||
repo = "hugo";
|
||||
rev = "v${version}";
|
||||
sha256 = "12dii2d0pirkj264857d5y83bdllk1knk5sjf31v0m9c25fapci0";
|
||||
sha256 = "0k62sg9rvr4aqzh1r60m456cw8mj6kxjpri2nnj4c2dxmvll8qhr";
|
||||
};
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
{ stdenv, lib, fetchzip, patchelf, freeglut, libXmu, libXi, libX11, libICE, mesa, libSM, libXext, dialog, makeWrapper }:
|
||||
let
|
||||
lpath = stdenv.lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE mesa libSM libXext ];
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "iceSL-${version}";
|
||||
version = "2.1.10";
|
||||
|
||||
src = if stdenv.system == "x86_64-linux" then fetchzip {
|
||||
url = "https://gforge.inria.fr/frs/download.php/file/37268/icesl${version}-amd64.zip";
|
||||
sha256 = "0dv3mq6wy46xk9blzzmgbdxpsjdaxid3zadfrysxlhmgl7zb2cn2";
|
||||
} else if stdenv.system == "i686-linux" then fetchzip {
|
||||
url = "https://gforge.inria.fr/frs/download.php/file/37267/icesl${version}-i386.zip";
|
||||
sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr";
|
||||
} else throw "Unsupported architecture";
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
installPhase = ''
|
||||
cp -r ./ $out
|
||||
mkdir $out/oldbin
|
||||
mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${lpath}" \
|
||||
$out/oldbin/IceSL-slicer
|
||||
makeWrapper $out/oldbin/IceSL-slicer $out/bin/icesl --prefix PATH : ${dialog}/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "IceSL is a GPU-accelerated procedural modeler and slicer for 3D printing.";
|
||||
homepage = http://shapeforge.loria.fr/icesl/index.html;
|
||||
license = licenses.inria-icesl;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ mgttlinger ];
|
||||
};
|
||||
}
|
|
@ -11,7 +11,7 @@ bundlerEnv rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "Simple, blog aware, static site generator";
|
||||
homepage = http://jekyllrb.com/;
|
||||
homepage = https://jekyllrb.com/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ pesterhazy ];
|
||||
platforms = platforms.unix;
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
{ stdenv, fetchurl, automake, autoconf, intltool, pkgconfig, gtk2, vte
|
||||
, libxslt, docbook_xml_dtd_412, docbook_xml_xslt, libxml2, findXMLCatalogs
|
||||
}:
|
||||
|
||||
let version = "0.3.1"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "lxterminal-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/lxde/lxterminal/archive/${version}.tar.gz";
|
||||
sha256 = "e91f15c8a726d5c13227263476583137a2639d4799c021ca0726c9805021b54c";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
"--enable-man"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
automake autoconf intltool pkgconfig
|
||||
libxslt docbook_xml_dtd_412 docbook_xml_xslt libxml2 findXMLCatalogs
|
||||
];
|
||||
|
||||
buildInputs = [ gtk2 vte ];
|
||||
|
||||
patches = [
|
||||
./respect-xml-catalog-files-var.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "The standard terminal emulator of LXDE";
|
||||
longDescription = ''
|
||||
LXTerminal is the standard terminal emulator of LXDE. The terminal is a
|
||||
desktop-independent VTE-based terminal emulator for LXDE without any
|
||||
unnecessary dependencies.
|
||||
'';
|
||||
homepage = https://wiki.lxde.org/en/LXTerminal;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [ stdenv.lib.maintainers.velovix ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index be626c5..b449b1b 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
|
||||
[
|
||||
AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
|
||||
AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
|
||||
- if $jh_found_xmlcatalog && \
|
||||
- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
|
||||
+ # empty argument forces libxml to use XML_CATALOG_FILES variable
|
||||
+ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
|
||||
AC_MSG_RESULT([found])
|
||||
ifelse([$3],,,[$3
|
||||
])dnl
|
|
@ -101,7 +101,7 @@ in pythonPackages.buildPythonApplication rec {
|
|||
checkPhase = "nosetests";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://octoprint.org/;
|
||||
homepage = https://octoprint.org/;
|
||||
description = "The snappy web interface for your 3D printer";
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
{ stdenv, lib, pkgconfig, fetchurl, buildPythonApplication
|
||||
, autoreconfHook, wrapGAppsHook
|
||||
, intltool, yelp_tools, itstool, libxmlxx3
|
||||
, python, pygobject3, gtk3, gnome3, substituteAll
|
||||
, at_spi2_atk, at_spi2_core, pyatspi, dbus, dbus-python, pyxdg
|
||||
, xkbcomp, gsettings_desktop_schemas, liblouis
|
||||
, speechd, brltty, setproctitle, gst_all_1, gst-python
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
version = "3.26.0";
|
||||
majorVersion = builtins.concatStringsSep "." (take 2 (splitString "." version));
|
||||
in buildPythonApplication rec {
|
||||
name = "orca-${version}";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/orca/${majorVersion}/${name}.tar.xz";
|
||||
sha256 = "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
xkbcomp = "${xkbcomp}/bin/xkbcomp";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook wrapGAppsHook pkgconfig libxmlxx3
|
||||
intltool yelp_tools itstool
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pygobject3 pyatspi dbus-python pyxdg brltty liblouis speechd gst-python setproctitle
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python gtk3 at_spi2_atk at_spi2_core dbus gsettings_desktop_schemas
|
||||
gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
|
||||
];
|
||||
|
||||
# Run intltoolize to create po/Makefile.in.in
|
||||
preConfigure = ''
|
||||
intltoolize
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = https://wiki.gnome.org/Projects/Orca;
|
||||
description = "Screen reader";
|
||||
longDescription = ''
|
||||
A free, open source, flexible and extensible screen reader that provides
|
||||
access to the graphical desktop via speech and refreshable braille.
|
||||
It works with applications and toolkits that support the Assistive
|
||||
Technology Service Provider Interface (AT-SPI). That includes the GNOME
|
||||
Gtk+ toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and
|
||||
WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued.
|
||||
|
||||
Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
|
||||
'';
|
||||
maintainers = with maintainers; [ berce ] ++ gnome3.maintainers;
|
||||
license = licenses.lgpl21;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
--- a/src/orca/orca.py
|
||||
+++ b/src/orca/orca.py
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
def _setXmodmap(xkbmap):
|
||||
"""Set the keyboard map using xkbcomp."""
|
||||
- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
|
||||
+ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
|
||||
stdin=subprocess.PIPE, stdout=None, stderr=None)
|
||||
p.communicate(xkbmap)
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
"""
|
||||
|
||||
global _originalXmodmap
|
||||
- _originalXmodmap = subprocess.check_output(['xkbcomp', os.environ['DISPLAY'], '-'])
|
||||
+ _originalXmodmap = subprocess.check_output(['@xkbcomp@', os.environ['DISPLAY'], '-'])
|
||||
|
||||
def _restoreXmodmap(keyList=[]):
|
||||
"""Restore the original xmodmap values for the keys in keyList.
|
||||
@@ -309,7 +309,7 @@
|
||||
|
||||
global _capsLockCleared
|
||||
_capsLockCleared = False
|
||||
- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
|
||||
+ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
|
||||
stdin=subprocess.PIPE, stdout=None, stderr=None)
|
||||
p.communicate(_originalXmodmap)
|
||||
|
|
@ -2,32 +2,29 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qtpass-${version}";
|
||||
version = "1.1.6";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "IJHack";
|
||||
repo = "QtPass";
|
||||
rev = "v${version}";
|
||||
sha256 = "0jq5a1cvqvsjwld0nldl6kmcz9g59hiccmbg98xwji04n8174y7j";
|
||||
sha256 = "0pp38b3fifkfwqcb6vi194ccgb8j3zc8j8jq8ww5ib0wvhldzsg8";
|
||||
};
|
||||
|
||||
patches = [ ./hidpi.patch ];
|
||||
|
||||
buildInputs = [ git gnupg pass qtbase qtsvg qttools ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper qmake ];
|
||||
|
||||
preConfigure = ''
|
||||
qmakeFlags="$qmakeFlags DESTDIR=$out"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out/bin
|
||||
mv $out/qtpass $out/bin
|
||||
install -D {,$out/share/applications/}qtpass.desktop
|
||||
install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg
|
||||
runHook postInstall
|
||||
postPatch = ''
|
||||
substituteInPlace qtpass.pro --replace "SUBDIRS += src tests main" "SUBDIRS += src main"
|
||||
substituteInPlace qtpass.pro --replace "main.depends = tests" "main.depends = src"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
install -D qtpass.desktop $out/share/applications/qtpass.desktop
|
||||
install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg
|
||||
wrapProgram $out/bin/qtpass \
|
||||
--suffix PATH : ${git}/bin \
|
||||
--suffix PATH : ${gnupg}/bin \
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/main/main.cpp b/main/main.cpp
|
||||
index 8a18409c..1cddd911 100644
|
||||
--- a/main/main.cpp
|
||||
+++ b/main/main.cpp
|
||||
@@ -35,7 +35,7 @@
|
||||
* @return
|
||||
*/
|
||||
int main(int argc, char *argv[]) {
|
||||
- qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
|
||||
+ QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
QString text = "";
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
if (i > 1)
|
|
@ -76,7 +76,7 @@ EOF
|
|||
|
||||
meta = with lib; {
|
||||
description = "Cross-platform open source Redis DB management tool";
|
||||
homepage = http://redisdesktop.com/;
|
||||
homepage = https://redisdesktop.com/;
|
||||
license = licenses.lgpl21;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ cstrahan ];
|
||||
|
|
|
@ -11,33 +11,26 @@ let
|
|||
url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
|
||||
sha256 = "0b56iglg8g45biddwsdn1hmx9gsz4kxr64civwyy7f69f022ppab";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
in stdenv.mkDerivation {
|
||||
# https://www.rescuetime.com/updates/linux_release_notes.html
|
||||
name = "rescuetime-2.10.0.1322";
|
||||
inherit src;
|
||||
buildInputs = [ dpkg makeWrapper ];
|
||||
# avoid https://github.com/NixOS/patchelf/issues/99
|
||||
dontStrip = true;
|
||||
unpackPhase = ''
|
||||
mkdir pkg
|
||||
dpkg-deb -x $src pkg
|
||||
sourceRoot=pkg
|
||||
'';
|
||||
installPhase = let
|
||||
|
||||
lib = p: stdenv.lib.makeLibraryPath [ p ];
|
||||
|
||||
in ''
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp usr/bin/rescuetime $out/bin
|
||||
|
||||
${patchelf}/bin/patchelf \
|
||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${lib.makeLibraryPath [ qt4 libXtst libXext libX11 libXScrnSaver ]}" \
|
||||
$out/bin/rescuetime
|
||||
|
||||
wrapProgram $out/bin/rescuetime \
|
||||
--prefix LD_PRELOAD : ${lib qt4}/libQtGui.so.4:${lib qt4}/libQtCore.so.4:${lib libXtst}/libXtst.so.6:${lib libXext}/libXext.so.6:${lib libX11}/libX11.so.6:${lib libXScrnSaver}/libXss.so.1
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Helps you understand your daily habits so you can focus and be more productive";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, makeWrapper, pkgconfig, qmake
|
||||
, curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib
|
||||
, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit
|
||||
, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -32,24 +32,25 @@ let
|
|||
googlemaps = stdenv.mkDerivation rec {
|
||||
name = "googlemaps-${version}";
|
||||
|
||||
version = "2017-09-17";
|
||||
version = "2017-12-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vladest";
|
||||
repo = "googlemaps";
|
||||
rev = "1b857c02504dd52b1aa442418b8dcea78ced3f35";
|
||||
sha256 = "14icmc925g4abwwdrldjc387aiyvcp3ia5z7mfh9qa09bv829a84";
|
||||
rev = "79f3511d60dc9640de02a5f24656094c8982b26d";
|
||||
sha256 = "11334w0bnfb97sv23vvj2b5hcwvr0171hxldn91jms9y12l5j15d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
|
||||
buildInputs = [ qtbase qtlocation ];
|
||||
buildInputs = [ qtbase qtlocation libXcomposite ];
|
||||
|
||||
pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out $(dirname ${pluginsSubdir})
|
||||
mv plugins ${pluginsSubdir}
|
||||
mkdir -p $out $(dirname ${pluginsSubdir})
|
||||
mkdir -p ${pluginsSubdir}
|
||||
mv *.so ${pluginsSubdir}
|
||||
mv lib $out/
|
||||
'';
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication rec {
|
|||
quadkonsole, etc. in that the main focus is arranging terminals in grids
|
||||
(tabs is the most common default method, which Terminator also supports).
|
||||
'';
|
||||
homepage = http://gnometerminator.blogspot.no/p/introduction.html;
|
||||
homepage = https://gnometerminator.blogspot.no/p/introduction.html;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ bjornfor globin ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A command-line time tracker";
|
||||
homepage = http://tasktools.org/projects/timewarrior.html;
|
||||
homepage = https://tasktools.org/projects/timewarrior.html;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ matthiasbeyer ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
{ stdenv, fetchFromGitHub, pythonPackages }:
|
||||
{ stdenv, fetchFromGitHub, python3Packages }:
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
version = "0.15.0";
|
||||
python3Packages.buildPythonApplication rec {
|
||||
version = "0.16.2";
|
||||
name = "toot-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ihabunek";
|
||||
repo = "toot";
|
||||
rev = "${version}";
|
||||
sha256 = "08k913gw0ip2q686z9k63bcn1n5s4w6b7jj6jmmamm427xmibkph";
|
||||
sha256 = "19n6rmm44y24zvkpk56vd2xmx49sn6wc5qayi1jm83jlnlbbwfh7";
|
||||
};
|
||||
|
||||
checkInputs = with pythonPackages; [ pytest ];
|
||||
checkInputs = with python3Packages; [ pytest ];
|
||||
|
||||
propagatedBuildInputs = with pythonPackages;
|
||||
propagatedBuildInputs = with python3Packages;
|
||||
[ requests beautifulsoup4 future ];
|
||||
|
||||
checkPhase = ''
|
||||
|
|
|
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "Extract URLs from text";
|
||||
homepage = http://packages.qa.debian.org/u/urlview.html;
|
||||
homepage = https://packages.qa.debian.org/u/urlview.html;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||
};
|
||||
|
|
|
@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
|
|||
maintainers = with maintainers; [ raskin garbas ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
downloadPage = "http://vifm.info/downloads.shtml";
|
||||
homepage = http://vifm.info/;
|
||||
downloadPage = "https://vifm.info/downloads.shtml";
|
||||
homepage = https://vifm.info/;
|
||||
inherit version;
|
||||
updateWalker = true;
|
||||
};
|
||||
|
|
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "Prints or set the window manager name property of the root window";
|
||||
homepage = http://tools.suckless.org/wmname;
|
||||
homepage = https://tools.suckless.org/wmname;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# This program used to come with xorg releases, but now I could only find it
|
||||
# at http://www.x.org/releases/individual/.
|
||||
# at https://www.x.org/releases/individual/.
|
||||
# That is why this expression is not inside pkgs.xorg
|
||||
|
||||
{stdenv, fetchurl, makeWrapper, libX11, pkgconfig, libXaw}:
|
||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.x.org/;
|
||||
homepage = https://www.x.org/;
|
||||
description = "Allows testing the fonts available in an X server";
|
||||
license = stdenv.lib.licenses.free;
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
{ stdenv, fetchFromGitHub, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xkbmon-${version}";
|
||||
version = "0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xkbmon";
|
||||
repo = "xkbmon";
|
||||
rev = version;
|
||||
sha256 = "1smyqsd9cpbzqaplm221a8mq0nham6rg6hjsm9g5gph94xmk6d67";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
installPhase = "install -D -t $out/bin xkbmon";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/xkbmon/xkbmon;
|
||||
description = "Command-line keyboard layout monitor for X11";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.romildo ];
|
||||
};
|
||||
}
|
|
@ -3,11 +3,14 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xterm-330";
|
||||
name = "xterm-331";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://invisible-mirror.net/archives/xterm/${name}.tgz";
|
||||
sha256 = "1psnfmqd23v9gxj8a98nzrgvymrk0p1whwqi92gy15bbkzrgkvks";
|
||||
urls = [
|
||||
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
|
||||
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
|
||||
];
|
||||
sha256 = "047gk58hvj64974sg259ss5gixj7pac6halmjfz4cc6r1yimds4s";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -56,7 +59,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
homepage = http://invisible-island.net/xterm;
|
||||
license = "BSD";
|
||||
license = with stdenv.lib.licenses; [ mit ];
|
||||
maintainers = with stdenv.lib.maintainers; [viric vrthra];
|
||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||
};
|
||||
|
|
|
@ -16,7 +16,7 @@ in symlinkJoin {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = http://pwmt.org/projects/zathura/;
|
||||
homepage = https://pwmt.org/projects/zathura/;
|
||||
description = "A highly customizable and functional PDF viewer";
|
||||
longDescription = ''
|
||||
Zathura is a highly customizable and functional PDF viewer based on the
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -6,10 +6,10 @@ rec {
|
|||
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
version = "57.0.3";
|
||||
version = "57.0.4";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "1f887ab6bb16ef69bce56b689e761b3e09fc106b4bee7842be2c8e7eac05981f9922e9c3a8bd22b4935545cbbc10bf0a0c79df7800cd3c80fd4137070c9bfd09";
|
||||
sha512 = "58846037aebbf14b85e6b3a46dbe617c780c6916e437ea4ee32a2502a6b55e3689921a0be28b920dedf2f966195df04ac8e45411caeb2601a168ec08b4827cf0";
|
||||
};
|
||||
|
||||
patches =
|
||||
|
|
|
@ -12,7 +12,10 @@ stdenv.mkDerivation rec {
|
|||
version = "2.8.9dev.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2";
|
||||
urls = [
|
||||
"ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2"
|
||||
"https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2"
|
||||
];
|
||||
sha256 = "1j0vx871ghkm7fgrafnvd2ml3ywcl8d3gyhq02fhfb851c88lc84";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,37 +1,36 @@
|
|||
{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeWrapper, wrapGAppsHook
|
||||
, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, pyopengl, cssutils, glib_networking
|
||||
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
|
||||
, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav
|
||||
, qtwebkit-plugins ? null
|
||||
, attrs
|
||||
{ stdenv, lib, fetchurl, fetchzip, python3Packages
|
||||
, makeWrapper, wrapGAppsHook, qtbase, glib_networking
|
||||
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
|
||||
, libxslt, gst_all_1 ? null
|
||||
, withPdfReader ? true
|
||||
, withMediaPlayback ? true
|
||||
, withWebEngineDefault ? true
|
||||
}:
|
||||
|
||||
assert (! withWebEngineDefault) -> qtwebkit-plugins != null;
|
||||
assert withMediaPlayback -> gst_all_1 != null;
|
||||
|
||||
let
|
||||
pdfjs = stdenv.mkDerivation rec {
|
||||
name = "pdfjs-${version}";
|
||||
version = "1.7.225";
|
||||
|
||||
src = fetchurl {
|
||||
src = fetchzip {
|
||||
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
|
||||
sha256 = "1n8ylmv60r0qbw2vilp640a87l4lgnrsi15z3iihcs6dj1n1yy67";
|
||||
sha256 = "0bsmbz7bbh0zpd70dlhss4fjdw7zq356091wld9s7kxnb2rixqd8";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
||||
buildCommand = ''
|
||||
mkdir $out
|
||||
unzip -d $out $src
|
||||
cp -r $src $out
|
||||
'';
|
||||
};
|
||||
|
||||
in buildPythonApplication rec {
|
||||
name = "qutebrowser-${version}${fix_postfix}";
|
||||
fix_postfix = "";
|
||||
version = "1.0.4";
|
||||
in python3Packages.buildPythonApplication rec {
|
||||
name = "qutebrowser-${version}${versionPostfix}";
|
||||
namePrefix = "";
|
||||
version = "1.0.4";
|
||||
versionPostfix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz";
|
||||
|
@ -43,21 +42,25 @@ in buildPythonApplication rec {
|
|||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
|
||||
glib_networking
|
||||
]
|
||||
++ lib.optional (! withWebEngineDefault) qtwebkit-plugins;
|
||||
] ++ lib.optionals withMediaPlayback (with gst_all_1; [
|
||||
gst-plugins-base gst-plugins-good
|
||||
gst-plugins-bad gst-plugins-ugly gst-libav
|
||||
]) ++ lib.optional (!withWebEngineDefault) python3Packages.qtwebkit-plugins;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
|
||||
makeWrapper wrapGAppsHook asciidoc
|
||||
docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyyaml pyqt5 jinja2 pygments pypeg2 cssutils pyopengl attrs
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
pyyaml pyqt5 jinja2 pygments
|
||||
pypeg2 cssutils pyopengl attrs
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s,/usr/share/qutebrowser,$out/share/qutebrowser,g" qutebrowser/utils/standarddir.py
|
||||
'' + lib.optionalString withPdfReader ''
|
||||
sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
|
||||
'';
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
editor and also easily configurable during runtime. Vimb is mostly
|
||||
keyboard driven and does not detract you from your daily work.
|
||||
'';
|
||||
homepage = http://fanglingsu.github.io/vimb/;
|
||||
homepage = https://fanglingsu.github.io/vimb/;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = [ stdenv.lib.maintainers.rickynils ];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
{ stdenv, fetchurl, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses
|
||||
, asciidoc, docbook_xml_dtd_45, libxslt, docbook_xml_xslt, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "newsboat-${version}";
|
||||
version = "2.10.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://newsboat.org/releases/${version}/${name}.tar.xz";
|
||||
sha256 = "1x4nxx1kvmrcm8jy73dvg56h4z15y3sach2vr13cw8rsbi7v99px";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace Makefile --replace "|| true" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkgconfig asciidoc docbook_xml_dtd_45 libxslt docbook_xml_xslt ]
|
||||
++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
|
||||
|
||||
buildInputs = [ stfl sqlite curl gettext libxml2 json_c ncurses ];
|
||||
|
||||
installFlags = [ "DESTDIR=$(out)" "prefix=" ];
|
||||
|
||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
for prog in $out/bin/*; do
|
||||
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://newsboat.org/;
|
||||
description = "A fork of Newsbeuter, an RSS/Atom feed reader for the text console.";
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue