Merge branch 'master' into haskell-updates

This commit is contained in:
Malte Brandy 2021-06-17 19:13:59 +02:00
commit 4b2e95ca2a
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
437 changed files with 5173 additions and 2696 deletions

14
.github/CODEOWNERS vendored
View file

@ -82,13 +82,13 @@
/pkgs/development/interpreters/python/conda @DavHau
# Haskell
/doc/languages-frameworks/haskell.section.md @cdepillabout @sternenseemann @maralorn
/maintainers/scripts/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann @maralorn
/pkgs/development/haskell-modules @cdepillabout @sternenseemann @maralorn
/pkgs/test/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/release-haskell.nix @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn
/doc/languages-frameworks/haskell.section.md @cdepillabout @sternenseemann @maralorn @expipiplus1
/maintainers/scripts/haskell @cdepillabout @sternenseemann @maralorn @expipiplus1
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann @maralorn @expipiplus1
/pkgs/development/haskell-modules @cdepillabout @sternenseemann @maralorn @expipiplus1
/pkgs/test/haskell @cdepillabout @sternenseemann @maralorn @expipiplus1
/pkgs/top-level/release-haskell.nix @cdepillabout @sternenseemann @maralorn @expipiplus1
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn @expipiplus1
# Perl
/pkgs/development/interpreters/perl @volth @stigtsp

View file

@ -46,9 +46,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 20.09 release](https://hydra.nixos.org/jobset/nixos/release-20.09)
* [Continuous package builds for the NixOS 21.05 release](https://hydra.nixos.org/jobset/nixos/release-21.05)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 20.09 release](https://hydra.nixos.org/job/nixos/release-20.09/tested#tabs-constituents)
* [Tests for the NixOS 21.05 release](https://hydra.nixos.org/job/nixos/release-21.05/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are

View file

@ -8,12 +8,30 @@ Programs in the GNOME universe are written in various languages but they all use
[GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`.
On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` GIO module to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`.
Some applications will also require `gsettings-desktop-schemas` for things like reading proxy configuration or user interface customization. This dependency is often not mentioned by upstream, you should grep for `org.gnome.desktop` and `org.gnome.system` to see if the schemas are needed.
### GIO modules {#ssec-gnome-gio-modules}
GLibs [GIO](https://developer.gnome.org/gio/stable/ch01.html) library supports several [extension points](https://developer.gnome.org/gio/stable/extending-gio.html). Notably, they allow:
* implementing settings backends (already [mentioned](#ssec-gnome-settings))
* adding TLS support
* proxy settings
* virtual file systems
The modules are typically installed to `lib/gio/modules/` directory of a package and you need to add them to `GIO_EXTRA_MODULES` if you need any of those features.
In particular, we recommend:
* adding `dconf.lib` for any software on Linux that reads [GSettings](#ssec-gnome-settings) (even transitivily through e.g. GTKs file manager)
* adding `glib-networking` for any software that accesses network using GIO or libsoup glib-networking contains a module that implements TLS support and loads system-wide proxy settings
To allow software to use various virtual file systems, `gvfs` package can be also added. But that is usually an optional feature so we typically use `gvfs` from the system (e.g. installed globally using NixOS module).
### GdkPixbuf loaders {#ssec-gnome-gdk-pixbuf-loaders}
GTK applications typically use [GdkPixbuf](https://developer.gnome.org/gdk-pixbuf/stable/) to load images. But `gdk-pixbuf` package only supports basic bitmap formats like JPEG, PNG or TIFF, requiring to use third-party loader modules for other formats. This is especially painful since GTK itself includes SVG icons, which cannot be rendered without a loader provided by `librsvg`.

View file

@ -318,6 +318,12 @@
githubId = 4296804;
name = "Alex Franchuk";
};
agbrooks = {
email = "andrewgrantbrooks@gmail.com";
github = "agbrooks";
githubId = 19290901;
name = "Andrew Brooks";
};
aherrmann = {
email = "andreash87@gmx.ch";
github = "aherrmann";
@ -790,6 +796,12 @@
githubId = 718812;
name = "Antoine R. Dumont";
};
arezvov = {
email = "alex@rezvov.ru";
github = "arezvov";
githubId = 58516559;
name = "Alexander Rezvov";
};
arianvp = {
email = "arian.vanputten@gmail.com";
github = "arianvp";
@ -896,6 +908,12 @@
githubId = 869771;
name = "Kirill Boltaev";
};
ashley = {
email = "personavinny@protonmail.com";
github = "paranoidcat";
githubId = 84152630;
name = "Ashley Chiara";
};
asppsa = {
email = "asppsa@gmail.com";
github = "asppsa";
@ -3727,6 +3745,16 @@
githubId = 1176131;
name = "George Whewell";
};
georgyo = {
email = "george@shamm.as";
github = "georgyo";
githubId = 19374;
name = "George Shammas";
keys = [{
longkeyid = "rsa4096/0x82BB70D541AE2DB4";
fingerprint = "D0CF 440A A703 E0F9 73CB A078 82BB 70D5 41AE 2DB4";
}];
};
gerschtli = {
email = "tobias.happ@gmx.de";
github = "Gerschtli";
@ -7263,6 +7291,11 @@
githubId = 628342;
name = "Tim Steinbach";
};
nessdoor = {
name = "Tomas Antonio Lopez";
email = "entropy.overseer@protonmail.com";
githubId = 25993494;
};
netcrns = {
email = "jason.wing@gmx.de";
github = "netcrns";

View file

@ -40,6 +40,14 @@
<link xlink:href="options.html#opt-services.sourcehut.enable">services.sourcehut</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://download.pureftpd.org/pub/ucarp/README">ucarp</link>,
an userspace implementation of the Common Address Redundancy
Protocol (CARP). Available as
<link xlink:href="options.html#opt-networking.ucarp.enable">networking.ucarp</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="backward-incompatibilities">
@ -232,6 +240,75 @@
<literal>services.x2goserver</literal>
</para>
</listitem>
<listitem>
<para>
The following dotnet-related packages have been removed for
being unmaintaned. Please use <literal>fetchNuGet</literal>
for specific packages.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Autofac
</para>
</listitem>
<listitem>
<para>
SystemValueTuple
</para>
</listitem>
<listitem>
<para>
MicrosoftDiaSymReader
</para>
</listitem>
<listitem>
<para>
MicrosoftDiaSymReaderPortablePdb
</para>
</listitem>
<listitem>
<para>
SystemCollectionsImmutable
</para>
</listitem>
<listitem>
<para>
SystemCollectionsImmutable131
</para>
</listitem>
<listitem>
<para>
SystemReflectionMetadata
</para>
</listitem>
<listitem>
<para>
NUnit350
</para>
</listitem>
<listitem>
<para>
Deedle
</para>
</listitem>
<listitem>
<para>
ExcelDna
</para>
</listitem>
<listitem>
<para>
GitVersionTree
</para>
</listitem>
<listitem>
<para>
NDeskOptions
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</section>
<section xml:id="other-notable-changes">

View file

@ -18,6 +18,10 @@ In addition to numerous new and upgraded packages, this release has the followin
development. Available as
[services.sourcehut](options.html#opt-services.sourcehut.enable).
* [ucarp](https://download.pureftpd.org/pub/ucarp/README), an userspace
implementation of the Common Address Redundancy Protocol (CARP). Available as
[networking.ucarp](options.html#opt-networking.ucarp.enable).
## Backward Incompatibilities
* The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
@ -66,4 +70,19 @@ In addition to numerous new and upgraded packages, this release has the followin
* `programs.x2goserver` is now `services.x2goserver`
* The following dotnet-related packages have been removed for being unmaintaned.
Please use `fetchNuGet` for specific packages.
- Autofac
- SystemValueTuple
- MicrosoftDiaSymReader
- MicrosoftDiaSymReaderPortablePdb
- SystemCollectionsImmutable
- SystemCollectionsImmutable131
- SystemReflectionMetadata
- NUnit350
- Deedle
- ExcelDna
- GitVersionTree
- NDeskOptions
## Other Notable Changes

View file

@ -973,7 +973,7 @@ def subtest(name: str) -> Iterator[None]:
if __name__ == "__main__":
arg_parser = argparse.ArgumentParser()
arg_parser = argparse.ArgumentParser(prog="nixos-test-driver")
arg_parser.add_argument(
"-K",
"--keep-vm-state",

View file

@ -16,13 +16,19 @@ rec {
inherit pkgs;
mkTestDriver =
# Reifies and correctly wraps the python test driver for
# the respective qemu version and with or without ocr support
pythonTestDriver = {
qemu_pkg ? pkgs.qemu_test
, enableOCR ? false
}:
let
testDriverScript = ./test-driver/test-driver.py;
in
qemu_pkg: stdenv.mkDerivation {
name = "nixos-test-driver";
testDriverScript = ./test-driver/test-driver.py;
ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
in stdenv.mkDerivation {
inherit name;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ (python3.withPackages (p: [ p.ptpython p.colorama ])) ];
@ -35,7 +41,7 @@ rec {
buildPhase = ''
python <<EOF
from pydoc import importfile
with open('driver-exports', 'w') as fp:
with open('driver-symbols', 'w') as fp:
fp.write(','.join(dir(importfile('${testDriverScript}'))))
EOF
'';
@ -57,20 +63,17 @@ rec {
# TODO: copy user script part into this file (append)
wrapProgram $out/bin/nixos-test-driver \
--argv0 ${name} \
--prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils ]}" \
${lib.optionalString enableOCR
"--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
install -m 0644 -vD driver-exports $out/nix-support/driver-exports
install -m 0644 -vD driver-symbols $out/nix-support/driver-symbols
'';
};
# Run an automated test suite in the given virtual network.
runTests = {
# the script that runs the network
driver,
# a source position in the format of builtins.unsafeGetAttrPos
# for meta.position
pos,
}:
runTests = { driver, pos }:
stdenv.mkDerivation {
name = "vm-test-run-${driver.testName}";
@ -87,10 +90,99 @@ rec {
inherit driver;
};
inherit pos;
inherit pos; # for better debugging
};
# Generate convenience wrappers for running the test driver
# has vlans, vms and test script defaulted through env variables
# also instantiates test script with nodes, if it's a function (contract)
setupDriverForTest = {
testScript
, testName
, nodes
, qemu_pkg ? pkgs.qemu_test
, enableOCR ? false
, skipLint ? false
, passthru ? {}
}:
let
# FIXME: get this pkg from the module system
testDriver = pythonTestDriver { inherit qemu_pkg enableOCR;};
testDriverName =
let
# A standard store path to the vm monitor is built like this:
# /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor
# The max filename length of a unix domain socket is 108 bytes.
# This means $name can at most be 50 bytes long.
maxTestNameLen = 50;
testNameLen = builtins.stringLength testName;
in with builtins;
if testNameLen > maxTestNameLen then
abort
("The name of the test '${testName}' must not be longer than ${toString maxTestNameLen} " +
"it's currently ${toString testNameLen} characters long.")
else
"nixos-test-driver-${testName}";
vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
nodeHostNames = map (c: c.config.system.name) (lib.attrValues nodes);
invalidNodeNames = lib.filter
(node: builtins.match "^[A-z_]([A-z0-9_]+)?$" node == null)
(builtins.attrNames nodes);
testScript' =
# Call the test script with the computed nodes.
if lib.isFunction testScript
then testScript { inherit nodes; }
else testScript;
in
if lib.length invalidNodeNames > 0 then
throw ''
Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
All machines are referenced as python variables in the testing framework which will break the
script when special characters are used.
Please stick to alphanumeric chars and underscores as separation.
''
else lib.warnIf skipLint "Linting is disabled" (runCommand testDriverName
{
inherit testName;
nativeBuildInputs = [ makeWrapper ];
testScript = testScript';
preferLocalBuild = true;
passthru = passthru // {
inherit nodes;
};
}
''
mkdir -p $out/bin
echo -n "$testScript" > $out/test-script
${lib.optionalString (!skipLint) ''
PYFLAKES_BUILTINS="$(
echo -n ${lib.escapeShellArg (lib.concatStringsSep "," nodeHostNames)},
< ${lib.escapeShellArg "${testDriver}/nix-support/driver-symbols"}
)" ${python3Packages.pyflakes}/bin/pyflakes $out/test-script
''}
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
wrapProgram $out/bin/nixos-test-driver \
--add-flags "''${vms[*]}" \
--run "export testScript=\"\$(${coreutils}/bin/cat $out/test-script)\"" \
--set VLANS '${toString vlans}'
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
wrapProgram $out/bin/nixos-run-vms \
--add-flags "''${vms[*]}" \
--set tests 'start_all(); join_all();' \
--set VLANS '${toString vlans}'
'');
# Make a full-blown test
makeTest =
{ testScript
, enableOCR ? false
@ -106,128 +198,47 @@ rec {
, ...
} @ t:
let
# A standard store path to the vm monitor is built like this:
# /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor
# The max filename length of a unix domain socket is 108 bytes.
# This means $name can at most be 50 bytes long.
maxTestNameLen = 50;
testNameLen = builtins.stringLength name;
ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
# Generate convenience wrappers for running the test driver
# interactively with the specified network, and for starting the
# VMs from the command line.
mkDriver = qemu_pkg:
nodes = qemu_pkg:
let
build-vms = import ./build-vms.nix {
inherit system pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ (pkgs.lib.optional (qemu_pkg != null)
extraConfigurations = extraConfigurations ++ [(
{
virtualisation.qemu.package = qemu_pkg;
}
) ++ [(
{
# Ensure we do not use aliases. Ideally this is only set
# when the test framework is used by Nixpkgs NixOS tests.
nixpkgs.config.allowAliases = false;
}
)];
};
# FIXME: get this pkg from the module system
testDriver = mkTestDriver (if qemu_pkg == null then pkgs.qemu_test else qemu_pkg);
nodes = build-vms.buildVirtualNetwork (
t.nodes or (if t ? machine then { machine = t.machine; } else { })
);
vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
testScript' =
# Call the test script with the computed nodes.
if lib.isFunction testScript
then testScript { inherit nodes; }
else testScript;
testDriverName = with builtins;
if testNameLen > maxTestNameLen then
abort
("The name of the test '${name}' must not be longer than ${toString maxTestNameLen} " +
"it's currently ${toString testNameLen} characters long.")
else
"nixos-test-driver-${name}";
in
lib.warnIf skipLint "Linting is disabled" (runCommand testDriverName
{
nativeBuildInputs = [ makeWrapper ];
testScript = testScript';
preferLocalBuild = true;
testName = name;
passthru = passthru // {
inherit nodes;
};
}
''
mkdir -p $out/bin
build-vms.buildVirtualNetwork (
t.nodes or (if t ? machine then { machine = t.machine; } else { })
);
echo -n "$testScript" > $out/test-script
${lib.optionalString (!skipLint) ''
PYFLAKES_BUILTINS="$(
echo -n ${lib.escapeShellArg (lib.concatStringsSep "," nodeHostNames)},
< ${lib.escapeShellArg "${testDriver}/nix-support/driver-exports"}
)" ${python3Packages.pyflakes}/bin/pyflakes $out/test-script
''}
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
wrapProgram $out/bin/nixos-test-driver \
--add-flags "''${vms[*]}" \
${lib.optionalString enableOCR
"--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
--run "export testScript=\"\$(${coreutils}/bin/cat $out/test-script)\"" \
--set VLANS '${toString vlans}'
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
wrapProgram $out/bin/nixos-run-vms \
--add-flags "''${vms[*]}" \
${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \
--set tests 'start_all(); join_all();' \
--set VLANS '${toString vlans}'
''); # "
passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
meta = (drv.meta or { }) // t.meta;
driver = setupDriverForTest {
inherit testScript enableOCR skipLint;
testName = name;
qemu_pkg = pkgs.qemu_test;
nodes = nodes pkgs.qemu_test;
};
driverInteractive = setupDriverForTest {
inherit testScript enableOCR skipLint;
testName = name;
qemu_pkg = pkgs.qemu;
nodes = nodes pkgs.qemu;
};
driver = mkDriver null;
driverInteractive = mkDriver pkgs.qemu;
test = passMeta (runTests { inherit driver pos; });
nodeNames = builtins.attrNames driver.nodes;
invalidNodeNames = lib.filter
(node: builtins.match "^[A-z_]([A-z0-9_]+)?$" node == null)
nodeNames;
nodeHostNames = map (c: c.config.system.name) (lib.attrValues driver.nodes);
test =
let
passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
meta = (drv.meta or { }) // t.meta;
};
in passMeta (runTests { inherit driver pos; });
in
if lib.length invalidNodeNames > 0 then
throw ''
Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
All machines are referenced as python variables in the testing framework which will break the
script when special characters are used.
Please stick to alphanumeric chars and underscores as separation.
''
else
test // {
inherit test driver driverInteractive;
inherit (driver) nodes;
inherit test driver driverInteractive nodes;
};
runInMachine =
@ -235,7 +246,7 @@ rec {
, machine
, preBuild ? ""
, postBuild ? ""
, qemu ? pkgs.qemu_test
, qemu_pkg ? pkgs.qemu_test
, ... # ???
}:
let
@ -272,6 +283,8 @@ rec {
client.succeed("sync") # flush all data before pulling the plug
'';
testDriver = pythonTestDriver { inherit qemu_pkg; };
vmRunCommand = writeText "vm-run" ''
xchg=vm-state-client/xchg
${coreutils}/bin/mkdir $out
@ -290,7 +303,7 @@ rec {
unset xchg
export tests='${testScript}'
${mkTestDriver qemu}/bin/nixos-test-driver --keep-vm-state ${vm.config.system.build.vm}/bin/run-*-vm
${testDriver}/bin/nixos-test-driver --keep-vm-state ${vm.config.system.build.vm}/bin/run-*-vm
''; # */
in

View file

@ -839,6 +839,7 @@
./services/networking/tox-node.nix
./services/networking/toxvpn.nix
./services/networking/tvheadend.nix
./services/networking/ucarp.nix
./services/networking/unbound.nix
./services/networking/unifi.nix
./services/networking/v2ray.nix

View file

@ -12,7 +12,6 @@ in {
config = mkIf cfg.enable {
systemd.user.services.espanso = {
description = "Espanso daemon";
path = with pkgs; [ espanso libnotify xclip ];
serviceConfig = {
ExecStart = "${pkgs.espanso}/bin/espanso daemon";
Restart = "on-failure";

View file

@ -143,6 +143,13 @@ in {
List of additional Matrix plugins to make available.
'';
};
withJemalloc = mkOption {
type = types.bool;
default = false;
description = ''
Whether to preload jemalloc to reduce memory fragmentation and overall usage.
'';
};
no_tls = mkOption {
type = types.bool;
default = false;
@ -720,7 +727,11 @@ in {
--keys-directory ${cfg.dataDir} \
--generate-keys
'';
environment.PYTHONPATH = makeSearchPathOutput "lib" cfg.package.python.sitePackages [ pluginsEnv ];
environment = {
PYTHONPATH = makeSearchPathOutput "lib" cfg.package.python.sitePackages [ pluginsEnv ];
} // optionalAttrs (cfg.withJemalloc) {
LD_PRELOAD = "${pkgs.jemalloc}/lib/libjemalloc.so";
};
serviceConfig = {
Type = "notify";
User = "matrix-synapse";

View file

@ -94,7 +94,7 @@ let
description = "Name of the datasource. Required.";
};
type = mkOption {
type = types.enum ["graphite" "prometheus" "cloudwatch" "elasticsearch" "influxdb" "opentsdb" "mysql" "mssql" "postgres" "loki"];
type = types.str;
description = "Datasource type. Required.";
};
access = mkOption {

View file

@ -2,7 +2,7 @@
let
inherit (lib) mkEnableOption mkIf mkOption types;
inherit (pkgs) solanum;
inherit (pkgs) solanum util-linux;
cfg = config.services.solanum;
configFile = pkgs.writeText "solanum.conf" cfg.config;
@ -78,12 +78,20 @@ in
config = mkIf cfg.enable (lib.mkMerge [
{
environment.etc."solanum/ircd.conf".source = configFile;
systemd.services.solanum = {
description = "Solanum IRC daemon";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
restartTriggers = [
configFile
];
serviceConfig = {
ExecStart = "${solanum}/bin/solanum -foreground -logfile /dev/stdout -configfile ${configFile} -pidfile /run/solanum/ircd.pid";
ExecStart = "${solanum}/bin/solanum -foreground -logfile /dev/stdout -configfile /etc/solanum/ircd.conf -pidfile /run/solanum/ircd.pid";
ExecReload = "${util-linux}/bin/kill -HUP $MAINPID";
DynamicUser = true;
User = "solanum";
StateDirectory = "solanum";

View file

@ -41,6 +41,10 @@ let
Warning: If you are using <literal>NixOps</literal> then don't use this
option since it will replace the key required for deployment via ssh.
'';
example = [
"ssh-rsa AAAAB3NzaC1yc2etc/etc/etcjwrsh8e596z6J0l7 example@host"
"ssh-ed25519 AAAAC3NzaCetcetera/etceteraJZMfk3QPfQ foo@bar"
];
};
keyFiles = mkOption {
@ -252,7 +256,17 @@ in
authorizedKeysFiles = mkOption {
type = types.listOf types.str;
default = [];
description = "Files from which authorized keys are read.";
description = ''
Specify the rules for which files to read on the host.
This is an advanced option. If you're looking to configure user
keys, you can generally use <xref linkend="opt-users.users._name_.openssh.authorizedKeys.keys"/>
or <xref linkend="opt-users.users._name_.openssh.authorizedKeys.keyFiles"/>.
These are paths relative to the host root file system or home
directories and they are subject to certain token expansion rules.
See AuthorizedKeysFile in man sshd_config for details.
'';
};
authorizedKeysCommand = mkOption {

View file

@ -0,0 +1,183 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.networking.ucarp;
ucarpExec = concatStringsSep " " (
[
"${cfg.package}/bin/ucarp"
"--interface=${cfg.interface}"
"--srcip=${cfg.srcIp}"
"--vhid=${toString cfg.vhId}"
"--passfile=${cfg.passwordFile}"
"--addr=${cfg.addr}"
"--advbase=${toString cfg.advBase}"
"--advskew=${toString cfg.advSkew}"
"--upscript=${cfg.upscript}"
"--downscript=${cfg.downscript}"
"--deadratio=${toString cfg.deadratio}"
]
++ (optional cfg.preempt "--preempt")
++ (optional cfg.neutral "--neutral")
++ (optional cfg.shutdown "--shutdown")
++ (optional cfg.ignoreIfState "--ignoreifstate")
++ (optional cfg.noMcast "--nomcast")
++ (optional (cfg.extraParam != null) "--xparam=${cfg.extraParam}")
);
in {
options.networking.ucarp = {
enable = mkEnableOption "ucarp, userspace implementation of CARP";
interface = mkOption {
type = types.str;
description = "Network interface to bind to.";
example = "eth0";
};
srcIp = mkOption {
type = types.str;
description = "Source (real) IP address of this host.";
};
vhId = mkOption {
type = types.ints.between 1 255;
description = "Virtual IP identifier shared between CARP hosts.";
example = 1;
};
passwordFile = mkOption {
type = types.str;
description = "File containing shared password between CARP hosts.";
example = "/run/keys/ucarp-password";
};
preempt = mkOption {
type = types.bool;
description = ''
Enable preemptive failover.
Thus, this host becomes the CARP master as soon as possible.
'';
default = false;
};
neutral = mkOption {
type = types.bool;
description = "Do not run downscript at start if the host is the backup.";
default = false;
};
addr = mkOption {
type = types.str;
description = "Virtual shared IP address.";
};
advBase = mkOption {
type = types.ints.unsigned;
description = "Advertisement frequency in seconds.";
default = 1;
};
advSkew = mkOption {
type = types.ints.unsigned;
description = "Advertisement skew in seconds.";
default = 0;
};
upscript = mkOption {
type = types.path;
description = ''
Command to run after become master, the interface name, virtual address
and optional extra parameters are passed as arguments.
'';
example = ''
pkgs.writeScript "upscript" '''
#!/bin/sh
$\{pkgs.iproute2\}/bin/ip addr add "$2"/24 dev "$1"
''';
'';
};
downscript = mkOption {
type = types.path;
description = ''
Command to run after become backup, the interface name, virtual address
and optional extra parameters are passed as arguments.
'';
example = ''
pkgs.writeScript "downscript" '''
#!/bin/sh
$\{pkgs.iproute2\}/bin/ip addr del "$2"/24 dev "$1"
''';
'';
};
deadratio = mkOption {
type = types.ints.unsigned;
description = "Ratio to consider a host as dead.";
default = 3;
};
shutdown = mkOption {
type = types.bool;
description = "Call downscript at exit.";
default = false;
};
ignoreIfState = mkOption {
type = types.bool;
description = "Ignore interface state, e.g., down or no carrier.";
default = false;
};
noMcast = mkOption {
type = types.bool;
description = "Use broadcast instead of multicast advertisements.";
default = false;
};
extraParam = mkOption {
type = types.nullOr types.str;
description = "Extra parameter to pass to the up/down scripts.";
default = null;
};
package = mkOption {
type = types.package;
description = ''
Package that should be used for ucarp.
Please note that the default package, pkgs.ucarp, has not received any
upstream updates for a long time and can be considered as unmaintained.
'';
default = pkgs.ucarp;
defaultText = "pkgs.ucarp";
};
};
config = mkIf cfg.enable {
systemd.services.ucarp = {
description = "ucarp, userspace implementation of CARP";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "exec";
ExecStart = ucarpExec;
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
ProtectClock = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
MemoryDenyWriteExecute = true;
RestrictRealtime = true;
};
};
};
meta.maintainers = with lib.maintainers; [ oxzi ];
}

View file

@ -433,6 +433,7 @@ in
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
ucarp = handleTest ./ucarp.nix {};
ucg = handleTest ./ucg.nix {};
udisks2 = handleTest ./udisks2.nix {};
unbound = handleTest ./unbound.nix {};

View file

@ -15,36 +15,33 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Test ext4 + overlayfs
machine.succeed(
"""
mkfs.ext4 -F -L overlay-ext4 /dev/vdb
mount -t ext4 /dev/vdb /tmp/mnt
mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged
# Setup some existing files
echo 'Replace' > /tmp/mnt/lower/replace.txt
echo 'Append' > /tmp/mnt/lower/append.txt
echo 'Overwrite' > /tmp/mnt/lower/overwrite.txt
mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged
# Test new
echo 'New' > /tmp/mnt/merged/new.txt
[[ "\$(cat /tmp/mnt/merged/new.txt)" == "New" ]]
# Test replace
[[ "\$(cat /tmp/mnt/merged/replace.txt)" == "Replace" ]]
echo 'Replaced' > /tmp/mnt/merged/replace-tmp.txt
mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt
[[ "\$(cat /tmp/mnt/merged/replace.txt)" == "Replaced" ]]
# Overwrite
[[ "\$(cat /tmp/mnt/merged/overwrite.txt)" == "Overwrite" ]]
echo 'Overwritten' > /tmp/mnt/merged/overwrite.txt
[[ "\$(cat /tmp/mnt/merged/overwrite.txt)" == "Overwritten" ]]
# Test append
[[ "\$(cat /tmp/mnt/merged/append.txt)" == "Append" ]]
echo 'ed' >> /tmp/mnt/merged/append.txt
#"cat /tmp/mnt/merged/append.txt && exit 1
[[ "\$(cat /tmp/mnt/merged/append.txt)" == "Append\ned" ]]
umount /tmp/mnt/merged
umount /tmp/mnt
udevadm settle
"""
'mkfs.ext4 -F -L overlay-ext4 /dev/vdb',
'mount -t ext4 /dev/vdb /tmp/mnt',
'mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged',
# Setup some existing files
'echo Replace > /tmp/mnt/lower/replace.txt',
'echo Append > /tmp/mnt/lower/append.txt',
'echo Overwrite > /tmp/mnt/lower/overwrite.txt',
'mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged',
# Test new
'echo New > /tmp/mnt/merged/new.txt',
'[[ "$(cat /tmp/mnt/merged/new.txt)" == New ]]',
# Test replace
'[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replace ]]',
'echo Replaced > /tmp/mnt/merged/replace-tmp.txt',
'mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt',
'[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replaced ]]',
# Overwrite
'[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwrite ]]',
'echo Overwritten > /tmp/mnt/merged/overwrite.txt',
'[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwritten ]]',
# Test append
'[[ "$(cat /tmp/mnt/merged/append.txt)" == Append ]]',
'echo ed >> /tmp/mnt/merged/append.txt',
'[[ "$(cat /tmp/mnt/merged/append.txt)" == "Append\ned" ]]',
'umount /tmp/mnt/merged',
'umount /tmp/mnt',
'udevadm settle',
)
'';
})

View file

@ -16,6 +16,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
networking.firewall.allowedTCPPorts = [ ircPort ];
services.solanum = {
enable = true;
motd = ''
The default MOTD doesn't contain the word "nixos" in it.
This one does.
'';
};
};
} // lib.listToAttrs (builtins.map (client: lib.nameValuePair client {
@ -48,6 +52,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
${client}.wait_for_unit("ii")
${client}.wait_for_file("${iiDir}/${server}/out")
''
# look for the custom text in the MOTD.
''
${client}.wait_until_succeeds("grep 'nixos' ${iiDir}/${server}/out")
''
# wait until first PING from server arrives before joining,
# so we don't try it too early
''

66
nixos/tests/ucarp.nix Normal file
View file

@ -0,0 +1,66 @@
import ./make-test-python.nix ({ pkgs, lib, ...} :
let
addrShared = "192.168.0.1";
addrHostA = "192.168.0.10";
addrHostB = "192.168.0.11";
mkUcarpHost = addr: { config, pkgs, lib, ... }: {
networking.interfaces.eth1.ipv4.addresses = lib.mkForce [
{ address = addr; prefixLength = 24; }
];
networking.ucarp = {
enable = true;
interface = "eth1";
srcIp = addr;
vhId = 1;
passwordFile = "${pkgs.writeText "ucarp-pass" "secure"}";
addr = addrShared;
upscript = pkgs.writeScript "upscript" ''
#!/bin/sh
${pkgs.iproute2}/bin/ip addr add "$2"/24 dev "$1"
'';
downscript = pkgs.writeScript "downscript" ''
#!/bin/sh
${pkgs.iproute2}/bin/ip addr del "$2"/24 dev "$1"
'';
};
};
in {
name = "ucarp";
meta.maintainers = with lib.maintainers; [ oxzi ];
nodes = {
hostA = mkUcarpHost addrHostA;
hostB = mkUcarpHost addrHostB;
};
testScript = ''
def is_master(host):
ipOutput = host.succeed("ip addr show dev eth1")
return "inet ${addrShared}/24" in ipOutput
start_all()
# First, let both hosts start and let a master node be selected
for host, peer in [(hostA, "${addrHostB}"), (hostB, "${addrHostA}")]:
host.wait_for_unit("ucarp.service")
host.succeed(f"ping -c 1 {peer}")
hostA.sleep(5)
hostA_master, hostB_master = is_master(hostA), is_master(hostB)
assert hostA_master != hostB_master, "only one master node is allowed"
master_host = hostA if hostA_master else hostB
backup_host = hostB if hostA_master else hostA
# Let's crash the master host and let the backup take over
master_host.crash()
backup_host.sleep(5)
assert is_master(backup_host), "backup did not take over"
'';
})

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "bchoppr";
version = "1.10.6";
version = "1.10.8";
src = fetchFromGitHub {
owner = "sjaehn";
repo = pname;
rev = version;
sha256 = "sha256-iCDAIV2p1OkZxOMo8A6zBrOGd49FXAGqLZWk0Kbvgec=";
sha256 = "sha256-F2J9TBONluhBuoEnpff3tLZEHFDbmllILqbZvu+PGGI=";
};
nativeBuildInputs = [ pkg-config ];

View file

@ -13,17 +13,17 @@
rustPlatform.buildRustPackage rec {
pname = "helvum";
version = "0.2.0";
version = "0.2.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "ryuukyu";
repo = pname;
rev = version;
sha256 = "sha256-sQ4epL3QNOLHuR/dr/amHgiaxV/1SWeb3eijnjAAR3w=";
sha256 = "sha256-ZnpdGXK8N8c/s4qC2NXcn0Pdqrqr47iOWvVwXD9pn1A=";
};
cargoSha256 = "sha256-uNTSU06Fz/ud04K40e98rb7o/uAht0DsiJOXeHX72vw=";
cargoSha256 = "sha256-2v2L20rUWftXdhhuE3wiRrDIuSg6VFxfpWYMRaMUyTU=";
nativeBuildInputs = [ clang copyDesktopItems pkg-config ];
buildInputs = [ glib gtk4 pipewire ];

View file

@ -17,11 +17,13 @@
mkDerivation rec {
pname = "hqplayer-desktop";
version = "4.12.0-34";
version = "4.12.1-35";
src = fetchurl {
# FIXME: use the fc34 sources when we get glibc 2.33 in nixpkgs
# c.f. https://github.com/NixOS/nixpkgs/pull/111616
url = "https://www.signalyst.eu/bins/hqplayer/fc33/hqplayer4desktop-${version}.fc33.x86_64.rpm";
sha256 = "sha256-9kLKmi5lNtnRm9b4HnO01cO/C+Sg0DcKD64N5WBbYOE=";
sha256 = "sha256-DLnZNX+uAan9dhPLMvINeXsIn3Yv2CgsvyTcX0hbEK8=";
};
unpackPhase = ''
@ -47,6 +49,8 @@ mkDerivation rec {
dontBuild = true;
installPhase = ''
runHook preInstall
# main executable
mkdir -p $out/bin
cp ./usr/bin/* $out/bin
@ -62,16 +66,16 @@ mkDerivation rec {
# pixmaps
mkdir -p $out/share/pixmaps
cp ./usr/share/pixmaps/* $out/share/pixmaps
runHook postInstall
'';
postInstall = ''
for desktopFile in $out/share/applications/*; do
substituteInPlace "$desktopFile" \
--replace '/usr/bin/' '$out/bin/' \
--replace '/usr/share/doc/' '$out/share/doc/'
--replace /usr/bin/ $out/bin/ \
--replace /usr/share/doc/ $out/share/doc/
done
gunzip $out/share/doc/${pname}/*.gz
'';
postFixup = ''
@ -81,7 +85,6 @@ mkDerivation rec {
meta = with lib; {
homepage = "https://www.signalyst.com/custom.html";
description = "High-end upsampling multichannel software HD-audio player";
changelog = "https://www.signalyst.eu/bins/${pname}/fc33/hqplayer4desktop-${version}fc33.x86_64.changes";
license = licenses.unfree;
maintainers = with maintainers; [ lovesegfault ];
};

View file

@ -4,6 +4,7 @@
, fetchFromGitHub
, nix-update-script
, qmake
, pkg-config
, qtbase
, qtmultimedia
, libvorbis
@ -12,21 +13,16 @@
mkDerivation rec {
pname = "ptcollab";
version = "0.4.0";
version = "0.4.1";
src = fetchFromGitHub {
owner = "yuxshao";
repo = "ptcollab";
rev = "v${version}";
sha256 = "1yfnf47saxxj17x0vyxihr343kp7gz3fashzky79j80sqlm6ng85";
sha256 = "sha256-98v9it9M5FXCsOpWvO10uKYmEH15v1FEH1hH73XHa7w=";
};
postPatch = ''
substituteInPlace src/editor.pro \
--replace '/usr/include/rtmidi' '${rtmidi}/include/rtmidi'
'';
nativeBuildInputs = [ qmake ];
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [ qtbase qtmultimedia libvorbis rtmidi ];

View file

@ -1,6 +1,7 @@
{ stdenv
, lib
, fetchFromGitHub
, nix-update-script
, autoreconfHook
, perl
, pkg-config
@ -15,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "sidplayfp";
version = "2.1.1";
version = "2.2.0";
src = fetchFromGitHub {
owner = "libsidplayfp";
repo = "sidplayfp";
rev = "v${version}";
sha256 = "0s3xmg3yzfqbsnlh2y46w7b5jim5zq7mshs6hx03q8wdr75cvwh4";
sha256 = "sha256-hN7225lhuYyo4wPDiiEc9FaPg90pZ13mLw93V8tb/P0=";
};
nativeBuildInputs = [ autoreconfHook perl pkg-config ];
@ -37,6 +38,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "A SID player using libsidplayfp";
homepage = "https://github.com/libsidplayfp/sidplayfp";

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "charge-lnd";
version = "0.1.2";
version = "0.1.3";
src = fetchFromGitHub {
owner = "accumulator";
repo = pname;
rev = "v${version}";
sha256 = "1m1ic69aj2vlnjlp4ckan8n67r01nfysvq4w6nny32wjkr0zvphr";
sha256 = "0npn45qbbsbzj5qy9kwx662hml1y610ysmfl89sda02l6wf1sp3y";
};
propagatedBuildInputs = with python3Packages; [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "ergo";
version = "4.0.11";
version = "4.0.12";
src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
sha256 = "sha256-GzpYwytkWZBEIVmsOmK5RTJ7lPUfDeC1204FbK4O+XQ=";
sha256 = "sha256-cIMaCouzuI7UQ6UY4caGcTzA+Xp7vLdoOwIfGG+ahsU=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -4,6 +4,7 @@ let
# A list of binaries to put into separate outputs
bins = [
"geth"
"clef"
];
in buildGoModule rec {

View file

@ -10,18 +10,18 @@
, darwin
}:
rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
rustPlatform.buildRustPackage rec {
pname = "openethereum";
version = "3.2.5";
version = "3.2.6";
src = fetchFromGitHub {
owner = "openethereum";
repo = "openethereum";
rev = "v${version}";
sha256 = "1g48fkznvr9fs3j9zy2d9pcwnahmyghxg2b9bsn2mxpyczmfqrki";
sha256 = "0lxps3cyg8dzb9qr1kg91s9jc3mnm6hxybwcbhva38pcq4yc40xc";
};
cargoSha256 = "02nlm5ariv4dr6b3rckzs7hw1xrl83yvhimrzb0g5l0j0sxh1nhc";
cargoSha256 = "08yrpls3szmw6vy2c4d6b1k907ga0809ylvyx0zb6f8mp8z7ahl2";
nativeBuildInputs = [ cmake pkg-config ];

View file

@ -1,7 +1,12 @@
import ./generic.nix (rec {
version = "27.2";
sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
patches = [
patches = fetchpatch: [
./tramp-detect-wrapped-gvfsd.patch
(fetchpatch {
name = "fix-aarch64-darwin-triplet.patch";
url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
sha256 = "sha256-RF9b5PojFUAjh2TDUW4+HaWveV30Spy1iAXhaWf1ZVg=";
})
];
})

View file

@ -10,7 +10,7 @@
, Xaw3d, libXcursor, pkg-config, gettext, libXft, dbus, libpng, libjpeg, giflib
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
, alsa-lib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
, jansson, harfbuzz
, sigtool, jansson, harfbuzz
, dontRecurseIntoAttrs ,emacsPackagesFor
, libgccjit, targetPlatform, makeWrapper # native-comp params
, systemd ? null
@ -46,10 +46,10 @@ assert withXwidgets -> withGTK3 && webkitgtk != null;
let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
NATIVE_FULL_AOT = "1";
LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
} // lib.optionalAttrs stdenv.isDarwin {
CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
} // {
inherit pname version patches;
inherit pname version;
patches = patches fetchpatch;
src = fetchurl {
url = "mirror://gnu/emacs/${name}.tar.xz";
@ -118,8 +118,8 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
++ lib.optional (withX && withMotif) motif
++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
++ lib.optionals withNS [ AppKit GSS ImageIO ]
++ lib.optionals nativeComp [ libgccjit ]
;
++ lib.optionals stdenv.isDarwin [ sigtool ]
++ lib.optionals nativeComp [ libgccjit ];
hardeningDisable = [ "format" ];
@ -138,7 +138,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
++ lib.optional withXwidgets "--with-xwidgets"
++ lib.optional nativeComp "--with-native-compilation"
++ lib.optional withImageMagick "--with-imagemagick"
;
;
installTargets = [ "tags" "install" ];

View file

@ -3,13 +3,13 @@
, vmopts ? null
}:
{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }:
{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }@args:
with lib;
let loName = toLower product;
hiName = toUpper product;
execName = concatStringsSep "-" (init (splitString "-" name));
mainProgram = concatStringsSep "-" (init (splitString "-" name));
vmoptsName = loName
+ ( if (with stdenv.hostPlatform; (is32bit || isDarwin))
then ""
@ -18,15 +18,17 @@ let loName = toLower product;
in
with stdenv; lib.makeOverridable mkDerivation rec {
inherit name src meta;
inherit name src;
meta = args.meta // { inherit mainProgram; };
desktopItem = makeDesktopItem {
name = execName;
exec = execName;
name = mainProgram;
exec = mainProgram;
comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
desktopName = product;
genericName = meta.description;
categories = "Development;";
icon = execName;
icon = mainProgram;
extraEntries = ''
StartupWMClass=${wmClass}
'';
@ -64,13 +66,13 @@ with stdenv; lib.makeOverridable mkDerivation rec {
installPhase = ''
mkdir -p $out/{bin,$name,share/pixmaps,libexec/${name}}
cp -a . $out/$name
ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${execName}.png
ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${mainProgram}.png
mv bin/fsnotifier* $out/libexec/${name}/.
jdk=${jdk.home}
item=${desktopItem}
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${mainProgram}" \
--prefix PATH : "$out/libexec/${name}:${lib.optionalString (stdenv.isDarwin) "${jdk}/jdk/Contents/Home/bin:"}${lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([
# Some internals want libstdc++.so.6

View file

@ -19,11 +19,11 @@ let
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in stdenv.mkDerivation rec {
pname = "poke";
version = "1.2";
version = "1.3";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
hash = "sha256-9hz42ltkwBoTWTc3JarRyiV/NcHJJp5NUN0GZBg932I=";
hash = "sha256-unhjA0obCABLDuj4i9qUFgcH6aeB1VVvVVtQdYPPDxs=";
};
postPatch = ''
@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
] ++ lib.optional guiSupport makeWrapper;
buildInputs = [ boehmgc readline ]
++ lib.optional guiSupport tk
++ lib.optionals guiSupport [ tk tcl.tclPackageHook tcllib ]
++ lib.optional miSupport json_c
++ lib.optional nbdSupport libnbd
++ lib.optional textStylingSupport gettext
@ -57,11 +57,6 @@ in stdenv.mkDerivation rec {
doCheck = !isCross;
checkInputs = lib.optionals (!isCross) [ dejagnu ];
postFixup = lib.optionalString guiSupport ''
wrapProgram "$out/bin/poke-gui" \
--prefix TCLLIBPATH ' ' ${tcllib}/lib/tcllib${tcllib.version}
'';
meta = with lib; {
description = "Interactive, extensible editor for binary data";
homepage = "http://www.jemarch.net/poke";

View file

@ -175,7 +175,8 @@ in stdenv.mkDerivation rec {
ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
'' + lib.optionalString wrapPythonDrv ''
wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin"
wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin" \
--set NIX_PYTHONPATH "${python3}/${python3.sitePackages}"
'' + lib.optionalString (guiSupport == "gtk3") ''
rewrap () {

View file

@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "7.0.11-9";
version = "7.0.11-12";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
sha256 = "sha256-eL9zFrgkLb3pS8/UlQB5+p50UG8j3Q7TNDwcO/3BuXo=";
sha256 = "sha256-vTCfpHcja0z/aplcunUDlg/90EbfrR/xQ9bzdG0n2RY=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "avocode";
version = "4.14.0";
version = "4.14.1";
src = fetchurl {
url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
sha256 = "sha256-BDW87UVN1Jub0sJFvtkZr5ssz835Yf2CNn5kHCn70cE=";
sha256 = "sha256-OXSxfNCwbZ1RjjoxDlsREtKtbzlQcuPylvD1/ehfgsI=";
};
libPath = lib.makeLibraryPath (with xorg; [

View file

@ -10,11 +10,11 @@
mkDerivation rec {
pname = "krita";
version = "4.4.3";
version = "4.4.5";
src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
sha256 = "0rwghzci2wn2jmisvnzs23yxc2z3d4dcx2qbbhcvjyi3q8ij61nl";
sha256 = "sha256-S/1ygIcNEGCgDREj2Db8Gltb+KAoZ2Z58CaM1ef7dWg=";
};
nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ];

View file

@ -20,7 +20,7 @@
}:
let
version = "4.1.2";
version = "4.1.3";
libsecp256k1_name =
if stdenv.isLinux then "libsecp256k1.so.0"
@ -36,7 +36,7 @@ let
owner = "spesmilo";
repo = "electrum";
rev = version;
sha256 = "0zvv8nmjzw5pchykz5p28483nby4lp4ah7iqr08pv36gy89l51v5";
sha256 = "1nkcybalkfna9zn33dxm13ic3brj50cfzwspjl349rgyar07j781";
extraPostFetch = ''
mv $out ./all
@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication {
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "05m6vbd4sfjk536kwa5wa3kv21jxxqnglx0ddvnmxfhf98371bhk";
sha256 = "1mlwpmgfm3n45agx65jzsi4dr8nxf95x7nl01jnwa3qk5krrv4cf";
};
postUnpack = ''

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "free42";
version = "3.0.3";
version = "3.0.4";
src = fetchFromGitHub {
owner = "thomasokken";
repo = pname;
rev = "v${version}";
sha256 = "sha256-2TOYvZBI2EW9xjbjA4Bh+TgjbyEXRzOByalLYBW8Ba8=";
sha256 = "sha256-ZoW5gBAUp/5U8Is3Nhx+SHY4d0F3PGOS1/WOokKRnCU=";
};
nativeBuildInputs = [ copyDesktopItems pkg-config ];

View file

@ -2,11 +2,11 @@
buildPythonApplication rec {
pname = "gallery_dl";
version = "1.17.4";
version = "1.17.5";
src = fetchPypi {
inherit pname version;
sha256 = "4df80fd923b03b2413a3d1c50e32c3006d100ed5acc1400ace69d8dc2162d293";
sha256 = "9d64bca2bf0cdecaff1336e0656917eb9028586fee4ac342761d6cb9a0cdb4f9";
};
propagatedBuildInputs = [ requests ];

View file

@ -0,0 +1,66 @@
{ lib, stdenv, fetchurl, copyDesktopItems, makeDesktopItem, unzip, jre8 }:
stdenv.mkDerivation rec {
pname = "jquake";
version = "1.6.1";
src = fetchurl {
url = "https://fleneindre.github.io/downloads/JQuake_${version}_linux.zip";
sha256 = "0nw6xjc3i1b8rk15arc5d0ji2bycc40rz044qd03vzxvh0h8yvgl";
};
nativeBuildInputs = [ unzip copyDesktopItems ];
sourceRoot = ".";
postPatch = ''
# JQuake emits a lot of debug-like messages in console, but I
# don't think it's in our interest to void them by default. Log them at
# the appropriate level.
sed -i "/^java/ s/$/\ | logger -p user.debug/" JQuake.sh
# By default, an 'errors.log' file is created in the current directory.
# cd into a temporary directory and let it be created there.
substituteInPlace JQuake.sh \
--replace "java -jar " "exec ${jre8.outPath}/bin/java -jar $out/lib/" \
--replace "[JAR FOLDER]" "\$(mktemp -p /tmp -d jquake-errlog-XXX)"
'';
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
chmod +x JQuake.sh
mkdir -p $out/{bin,lib}
mv JQuake.sh $out/bin/JQuake
mv {JQuake.jar,JQuake_lib} $out/lib
mv sounds $out/lib
mkdir -p $out/share/licenses/jquake
mv LICENSE* $out/share/licenses/jquake
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "JQuake";
desktopName = "JQuake";
exec = "JQuake";
comment = "Real-time earthquake map of Japan";
})
];
meta = with lib; {
description = "Real-time earthquake map of Japan";
homepage = "http://jquake.net";
downloadPage = "https://jquake.net/?down";
changelog = "https://jquake.net/?docu";
maintainers = with maintainers; [ nessdoor ];
license = licenses.unfree;
platforms = platforms.linux;
};
}

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "logseq";
version = "0.1.3";
version = "0.1.8";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
sha256 = "1akg3xjbh01nb7l06qpvz3xsjj64kf042xjnapn60jlgg5y34vbm";
sha256 = "0q8lci72rzzc04wnfqry31zav07srw0iymjlq5mxygsq4h9bcq01";
name = "${pname}-${version}.AppImage";
};

View file

@ -33,6 +33,22 @@ let
(mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051")
(mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
# Requires websocket-client <1.0, >=0.57. Cannot do mkOverride b/c differing underscore/hyphen in pypi source name
(
self: super: {
websocket-client = super.websocket-client.overridePythonAttrs (
oldAttrs: rec {
version = "0.58.0";
src = oldAttrs.src.override {
pname = "websocket_client";
inherit version;
sha256 = "63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f";
};
}
);
}
)
# Octoprint needs zeroconf >=0.24 <0.25. While this should be done in
# the mkOverride aboves, this package also has broken tests, so we need
# a proper override.
@ -134,7 +150,7 @@ let
tornado
unidecode
watchdog
websocket_client
websocket-client
werkzeug
wrapt
zeroconf

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "spicetify-cli";
version = "1.2.1";
version = "2.2.6";
src = fetchFromGitHub {
owner = "khanhas";
repo = pname;
rev = "v${version}";
sha256 = "sha256-HASFaPqm/A1QQ4nkd2hgeyqWplwE1RTrWA937rJA5Oo=";
sha256 = "sha256-9g6rkSDjE7x/YprPX0dkzqgpjgED5qBpUUQoVv6fGkk=";
};
vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";

View file

@ -0,0 +1,79 @@
{ lib
, stdenv
, fetchgit
, autoreconfHook
, pkg-config
, wxGTK30-gtk3
, wxmac
, ffmpeg
, proj
, perl532
, unscii
, python
, libGL
, libGLU
, xlibsWrapper
, docbook2x
, docbook5
, Carbon
, Cocoa
}:
let
perlenv = perl532.withPackages (perlPackages: with perlPackages; [ LocalePO ] );
in
stdenv.mkDerivation rec {
pname = "survex";
version = "1.2.44";
nativeBuildInputs = [ docbook5 docbook2x autoreconfHook pkg-config perlenv python ];
buildInputs = [
libGL libGLU ffmpeg proj
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
wxmac Carbon Cocoa
] ++ lib.optionals stdenv.hostPlatform.isLinux [
wxGTK30-gtk3 xlibsWrapper
];
src = fetchgit {
url = "git://git.survex.com/survex";
rev = version;
sha256 = "11gaqmabrf3av665jy3mr0m8hg76fmvnd0g3rghzmyh8d8v6xk34";
};
enableParallelBuilding = true;
# Docs rely on sgmltools-lite, a package that would be quite complex to
# provide as it is quite old. So this preConfigure hook effectively disables
# the doc generation. An example of packaging sgmltools-lite from Gentoo can
# be found here:
# https://gitweb.gentoo.org/repo/gentoo.git/tree/app-text/sgmltools-lite/sgmltools-lite-3.0.3-r15.ebuild?id=0b8b716331049599ea3299981e3a9ea6e258c5e0
postPatch = ''
patchShebangs .
echo "" > doc/Makefile.am
# substituteInPlace doc/Makefile --replace "docbook2man" "docbook2man --sgml" # Will be needed once sgmltools-lite is packaged.
for perltool in './extract-msgs.pl' './gettexttomsg.pl' '$(srcdir)/gdtconvert' '$(srcdir)/gen_img2aven'; do
substituteInPlace src/Makefile.am \
--replace "$perltool" "${perlenv}/bin/perl $perltool"
done
substituteInPlace lib/Makefile.am \
--replace '$(srcdir)/make-pixel-font' '${perlenv}/bin/perl $(srcdir)/make-pixel-font'
substituteInPlace lib/make-pixel-font --replace /usr/share/unifont/unifont.hex ${unscii.extra}/share/fonts/misc/unifont.hex
'';
meta = with lib; {
description = "Free Software/Open Source software package for mapping caves";
longDescription = ''
Survex is a Free Software/Open Source software package for mapping caves,
licensed under the GPL. It is designed to be portable and can be run on a
variety of platforms, including Linux/Unix, macOS, and Microsoft Windows.
'';
homepage = "https://survex.com/";
changelog = "https://github.com/ojwb/survex/blob/${version}/NEWS";
license = licenses.gpl2Plus;
maintainers = [ maintainers.matthewcroughan ];
platforms = platforms.all;
};
}

View file

@ -59,7 +59,7 @@ python3Packages.buildPythonApplication rec {
python-Levenshtein
pyxdg
requests
websocket_client
websocket-client
];
checkInputs = with python3Packages; [

View file

@ -0,0 +1,56 @@
{ lib
, fetchFromGitHub
, buildGoModule
, unixODBC
, icu
}:
buildGoModule rec {
pname = "usql";
version = "0.9.1";
src = fetchFromGitHub {
owner = "xo";
repo = "usql";
rev = "v${version}";
sha256 = "sha256-fcKn4kHIRvMdgGFKDNQg49YxLc0Y5j/8VwKoDLiXbEU=";
};
vendorSha256 = "sha256-uAV8NLnqXjIDILfnbbkVr2BOIucQ8vX89KI5yIkVtus=";
buildInputs = [ unixODBC icu ];
# These tags and flags are copied from build-release.sh
buildFlags = [ "-tags" ];
buildFlagsArray = [
"most"
"sqlite_app_armor"
"sqlite_fts5"
"sqlite_introspect"
"sqlite_json1"
"sqlite_stat4"
"sqlite_userauth"
"sqlite_vtable"
"sqlite_icu"
"no_adodb"
];
ldflags = [
"-s"
"-w"
"-X github.com/xo/usql/text.CommandVersion=${version}"
];
# All the checks currently require docker instances to run the databases.
doCheck = false;
meta = with lib; {
description = "Universal command-line interface for SQL databases";
homepage = "https://github.com/xo/usql";
license = licenses.mit;
maintainers = with maintainers; [ georgyo ];
# usql does not build on ARM.
platforms = [ "x86_64-linux" "x86_64-darwin" ];
};
}

View file

@ -1,17 +1,26 @@
{ buildPythonApplication
{ stdenv
, lib
, buildPythonApplication
, fetchFromGitHub
, dateutil
, pyyaml
, pandas
, requests
, lxml
, openpyxl
, xlrd
, h5py
, fonttools
, lxml
, pandas
, psycopg2
, pyshp
, fonttools
, pyyaml
, pdfminer
, vobject
, tabulate
, wcwidth
, zstandard
, setuptools
, withPcap ? true, dpkt ? null, dnslib ? null
, git
, withPcap ? true, dpkt, dnslib
}:
buildPythonApplication rec {
pname = "visidata";
@ -25,19 +34,62 @@ buildPythonApplication rec {
};
propagatedBuildInputs = [
# from visidata/requirements.txt
# packages not (yet) present in nixpkgs are commented
dateutil
pyyaml
pandas
requests
lxml
openpyxl
xlrd
h5py
fonttools
lxml
pandas
psycopg2
pyshp
#mapbox-vector-tile
#pypng
fonttools
#sas7bdat
#xport
#savReaderWriter
pyyaml
#namestand
#datapackage
pdfminer
#tabula
vobject
tabulate
wcwidth
zstandard
setuptools
] ++ lib.optionals withPcap [ dpkt dnslib ];
doCheck = false;
checkInputs = [
git
];
# check phase uses the output bin, which is not possible when cross-compiling
doCheck = stdenv.buildPlatform == stdenv.hostPlatform;
checkPhase = ''
# disable some tests which require access to the network
rm tests/load-http.vd # http
rm tests/graph-cursor-nosave.vd # http
rm tests/messenger-nosave.vd # dns
# disable some tests which expect Python == 3.6 (not our current version)
# see https://github.com/saulpw/visidata/issues/1014
rm tests/describe.vd
rm tests/describe-error.vd
rm tests/edit-type.vd
# tests use git to compare outputs to references
git init -b "test-reference"
git config user.name "nobody"; git config user.email "no@where"
git add .; git commit -m "test reference"
substituteInPlace dev/test.sh --replace "bin/vd" "$out/bin/vd"
bash dev/test.sh
'';
meta = {
inherit version;

View file

@ -90,11 +90,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.25.68";
version = "1.25.72";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "OBf42L6pctflNLjtcbnw2wKo7TisRSMF3SriDPFlB6I=";
sha256 = "7bvcLKc/ZyVSTGOsRIO9qgHc8dSYOJaoEHJw7V2Vl/M=";
};
dontConfigure = true;

View file

@ -18,9 +18,9 @@
}
},
"beta": {
"version": "92.0.4515.51",
"sha256": "0x9c5fy95wnri9z0s8pbwyq1lw684n7d70l1s2rp5yxh0snannxg",
"sha256bin64": "036km5dp7asq5n86qx7c9119mdch7sl89lhq1ffss0f4mzcq42yd",
"version": "92.0.4515.59",
"sha256": "0lpmd4sybr9qxqj7ab25xjliaw2dk9njnik51gdffrrwphv9qdxb",
"sha256bin64": "0qq9a3pzyn5d6bagx3py86ksl8n488lmlrmadgam2gb7421jq71a",
"deps": {
"gn": {
"version": "2021-05-07",
@ -31,15 +31,15 @@
}
},
"dev": {
"version": "93.0.4535.3",
"sha256": "19iy4p59n0pg9s39g614y4yxh5f6h86bcp471qdnm6fvzmzcxd18",
"sha256bin64": "16q9s8l20bmr2n0y3pi505l5hbhbmpi8kh47aylj5gzk1nr30a8r",
"version": "93.0.4542.2",
"sha256": "0sfyi52kaxg5mllcvn61285fjnj72vglv9fjf36ri93v6gh34rgw",
"sha256bin64": "0hk31b9nk834gykv977dv7f1hyl7jp527bx5ldxhwcy27333h1hr",
"deps": {
"gn": {
"version": "2021-05-07",
"version": "2021-06-11",
"url": "https://gn.googlesource.com/gn",
"rev": "39a87c0b36310bdf06b692c098f199a0d97fc810",
"sha256": "0x63jr5hssm9dl6la4q5ahy669k4gxvbapqxi5w32vv107jrj8v4"
"rev": "e0c476ffc83dc10897cb90b45c03ae2539352c5c",
"sha256": "01p5w57kksihzg9nb5096a74cw2rp8zzgdjcjm1pgrqvd1mxpjm4"
}
}
},

View file

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "lagrange";
version = "1.5.0";
version = "1.5.2";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
sha256 = "sha256-W7uSyApTKBTE7bgprgCd8T5dKQ/nLYKIzFxjDMCRmZQ=";
sha256 = "sha256-NjiTjY2YuxUs/Wny7aDqHGw/2ML1fenjHrl089rLXFI=";
fetchSubmodules = true;
};

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "fn";
version = "0.6.6";
version = "0.6.7";
src = fetchFromGitHub {
owner = "fnproject";
repo = "cli";
rev = version;
sha256 = "12s3xgrr11n8kfwsh8xpwcza1pr6b200dmc9h8igjy3s3cgg6sh7";
sha256 = "sha256-50tPR+x3U4XJB6lthEiZjOy2pD8LprSE41ZpH2Px8JY=";
};
vendorSha256 = null;

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "k9s";
version = "0.24.8";
version = "0.24.9";
src = fetchFromGitHub {
owner = "derailed";
repo = "k9s";
rev = "v${version}";
sha256 = "sha256-6RGm2uiYvsdpWdhNwDTw4z1O6uNErkWTuyOiwKIvXOY=";
sha256 = "sha256-9/P6OaSZDJ98EQ9DM4Oib0T1sC1K3WxUXh4IQU3qXbs=";
};
buildFlagsArray = ''
@ -18,7 +18,7 @@ buildGoModule rec {
-X github.com/derailed/k9s/cmd.commit=${src.rev}
'';
vendorSha256 = "sha256-lzxGTubm+qQes5QKaamfmSkXs4qquHHjIhts8YmKlYI=";
vendorSha256 = "sha256-hqmymxP4zK8GVqOxzB6vRfFyo+VIeI1suBu64/oEVig=";
doCheck = false;

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kube3d";
version = "4.4.5";
version = "4.4.6";
src = fetchFromGitHub {
owner = "rancher";
repo = "k3d";
rev = "v${version}";
sha256 = "sha256-nT/17R1Gky9509U077tgwS7iQKRMJUk8rwQiHSHcP+s=";
sha256 = "sha256-gId7zDrtkTjFN59yaFyeYwrDZV24hkkV+4dPr8Jr22E=";
};
vendorSha256 = null;

View file

@ -1,27 +1,71 @@
{ lib, fetchFromGitHub, buildGoModule }:
{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
buildGoModule {
pname = "linkerd-unstable";
version = "2020-05-01";
let generic = { channel, version, sha256, vendorSha256 }:
buildGoModule rec {
pname = "linkerd-${channel}";
inherit version vendorSha256;
src = fetchFromGitHub {
owner = "linkerd";
repo = "linkerd2";
rev = "9e9f3bb1e2aeab8cf20f98f5cad159bbb6f24883";
sha256 = "1pvj31wz1klwhcqga1m8kixdqsxwmppp9ix6r3wpp4dwfig45fm0";
src = fetchFromGitHub {
owner = "linkerd";
repo = "linkerd2";
rev = "${channel}-${version}";
inherit sha256;
};
subPackages = [ "cli" ];
runVend = true;
preBuild = ''
env GOFLAGS="" go generate ./pkg/charts/static
env GOFLAGS="" go generate ./jaeger/static
env GOFLAGS="" go generate ./multicluster/static
env GOFLAGS="" go generate ./viz/static
'';
buildFlagsArray = [
"-tags=prod"
];
ldflags = [
"-s" "-w"
"-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
mv $out/bin/cli $out/bin/linkerd
installShellCompletion --cmd linkerd \
--bash <($out/bin/linkerd completion bash) \
--zsh <($out/bin/linkerd completion zsh) \
--fish <($out/bin/linkerd completion fish)
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/linkerd version --client | grep ${src.rev} > /dev/null
'';
meta = with lib; {
description = "A simple Kubernetes service mesh that improves security, observability and reliability";
downloadPage = "https://github.com/linkerd/linkerd2/";
homepage = "https://linkerd.io/";
license = licenses.asl20;
maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ];
};
};
vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz";
doCheck = false;
subPackages = [ "cli/cmd" ];
meta = with lib; {
description = "A service mesh for Kubernetes and beyond";
homepage = "https://linkerd.io/";
license = licenses.asl20;
maintainers = with maintainers; [ Gonzih ];
broken = true;
};
}
in
{
stable = generic {
channel = "stable";
version = "2.10.2";
sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0=";
vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s=";
};
edge = generic {
channel = "edge";
version = "21.6.2";
sha256 = "sha256-kgdKH+cIYRg5A3+wrJJ7jcY6Xl206EwBYa37PT3xn1k";
vendorSha256 = "sha256-QVLg1ZRsNQPM4lERVHpZLbd+I32JZ1pbGNSGIVTbseg=";
};
}

View file

@ -1,23 +1,19 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "terraform-docs";
version = "0.13.0";
version = "0.14.1";
src = fetchFromGitHub {
owner = "terraform-docs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-lx+yp0ybgZfmxvPM2BY2yq39qA6XebcKGrFd0AJa4yg=";
sha256 = "sha256-Jm0ySxn4GFW4iAH3tOIvclcDGJMKzH7m7fhWnAf4+gs=";
};
vendorSha256 = "sha256-qoZUgSSr7jsDVVPBUyfN5Uw4CnH9EnD/4tX+TCSNV0Q=";
vendorSha256 = "sha256-IzmAlthE6SVvGHj72wrY1/KLehOv8Ck9VaTv5jMpt48=";
subPackages = [ "." ];
preBuild = ''
buildFlagsArray+=("-ldflags" "-X main.version=${version}")
'';
meta = with lib; {
description = "A utility to generate documentation from Terraform modules in various output formats";
homepage = "https://github.com/terraform-docs/terraform-docs/";

View file

@ -156,6 +156,43 @@ rec {
# Constructor for other terraform versions
mkTerraform = attrs: pluggable (generic attrs);
terraform_0_12 = mkTerraform {
version = "0.12.31";
sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
patches = [
./provider-path.patch
(fetchpatch {
name = "fix-mac-mojave-crashes.patch";
url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
})
];
passthru = { inherit plugins; };
};
terraform_0_13 = mkTerraform {
version = "0.13.7";
sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
patches = [ ./provider-path.patch ];
passthru = { inherit plugins; };
};
terraform_0_14 = mkTerraform {
version = "0.14.11";
sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
patches = [ ./provider-path.patch ];
passthru = { inherit plugins; };
};
terraform_0_15 = mkTerraform {
version = "0.15.5";
sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d";
vendorSha256 = "12hrpxay6k3kz89ihyhl91c4lw4wp821ppa245w9977fq09fhnx0";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
};
terraform_1_0 = mkTerraform {
version = "1.0.0";
sha256 = "sha256-ddcT/I2Qn1pKFyhXgh+CcD3fSv2steSNmjyyiS2SE/o=";

View file

@ -27,10 +27,10 @@ in {
pname = "discord-canary";
binaryName = "DiscordCanary";
desktopName = "Discord Canary";
version = "0.0.124";
version = "0.0.125";
src = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "060ypr9rn5yl8iwh4v3ax1v6501yaq72sx50q47sm0wyxn7gpv91";
sha256 = "0ly5a6l7rvl54mc39xma14jrcrf11q3ndnkkr16by5hy3palmz9g";
};
};
}.${branch}

View file

@ -0,0 +1,62 @@
{ mkDerivation
, lib
, fetchFromGitLab
, cmake
, extra-cmake-modules
, pkg-config
, qtquickcontrols2
, qtmultimedia
, qtlocation
, qqc2-desktop-style
, kirigami2
, knotifications
, zxing-cpp
, qxmpp
, gst_all_1
}:
mkDerivation rec {
pname = "kaidan";
version = "0.8.0";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "network";
repo = pname;
rev = "v${version}";
sha256 = "070njci5zyzahmz3nqyp660chxnqx1mxp31w17syfllvrw403qmg";
};
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
buildInputs = with gst_all_1; [
qtquickcontrols2
qtmultimedia
qtlocation
qqc2-desktop-style
kirigami2
knotifications
zxing-cpp
qxmpp
gstreamer
gst-plugins-bad
gst-plugins-base
gst-plugins-good
];
postInstall = ''
qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
'';
meta = with lib; {
description = "User-friendly and modern chat app, using XMPP";
homepage = "https://www.kaidan.im";
license = with licenses; [
gpl3Plus
mit
asl20
cc-by-sa-40
];
maintainers = with maintainers; [ astro ];
platforms = with platforms; linux;
};
}

View file

@ -13,13 +13,13 @@
mkDerivation rec {
pname = "kdeltachat";
version = "unstable-2021-06-06";
version = "unstable-2021-06-14";
src = fetchFromSourcehut {
owner = "~link2xt";
repo = "kdeltachat";
rev = "321c19b7415e837acc4e66d535e82518618bc096";
sha256 = "19py9mxpjz09fhyyvxf75s77nq0jwwfiljq9289192p61grk6625";
rev = "25da4228768e260ea9f67d5aa10558e7cf9cf7ee";
sha256 = "17igh34cbd0w5mzra4k779nxc5s8hk6sj25h308w079y0b21lf7w";
};
nativeBuildInputs = [

View file

@ -28,7 +28,7 @@ let
else "");
in stdenv.mkDerivation rec {
pname = "signal-desktop";
version = "5.4.1"; # Please backport all updates to the stable channel.
version = "5.5.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1f1narpqj8gcyi4r574nqm1cbyi3azk1y7d1j300scr51gk74fq6";
sha256 = "0l12hwwv0ks2hgp1xc5nmn5rcqzwxdpjqhwysix550m26bz4jczp";
};
nativeBuildInputs = [

View file

@ -42,11 +42,11 @@ let
pname = "slack";
x86_64-darwin-version = "4.16.0";
x86_64-darwin-sha256 = "078f49sgazfa99vn0yyacfya3jl2vhqz7kgxh0qp56b66pnzwbxz";
x86_64-darwin-version = "4.17.0";
x86_64-darwin-sha256 = "0r5cafxw73qnn14ljprn7w8bfn67zbkcniq60k9pf2zbqgb4cyj9";
x86_64-linux-version = "4.16.0";
x86_64-linux-sha256 = "0dj5k7r044mibis0zymh6wryhbw2fzsch30nddfrnn6ij89hhirv";
x86_64-linux-version = "4.17.0";
x86_64-linux-sha256 = "07ccms58pq27ilkyhcf6cgwb7qrddwil5kgy8yv95ljikqzi5rxi";
version = {
x86_64-darwin = x86_64-darwin-version;

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
env = "${buildEnv {
name = "wee-slack-env";
paths = with python3Packages; [
websocket_client
websocket-client
six
];
}}/${python3Packages.python.sitePackages}";

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, openssl ? null, gpgme ? null
, gpgSupport ? true, sslSupport ? true }:
, gpgSupport ? true, sslSupport ? true, fetchpatch }:
assert gpgSupport -> gpgme != null;
assert sslSupport -> openssl != null;
@ -15,6 +15,17 @@ stdenv.mkDerivation rec {
sha256 = "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd";
};
patches = [
(fetchpatch {
# patch upstream bug https://sylpheed.sraoss.jp/redmine/issues/306
name = "patch-libsylph_ssl_c.patch";
url = "https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/mail/sylpheed/patches/patch-libsylph_ssl_c?rev=1.4&content-type=text/plain";
sha256 = "sha256-k9OwPtHrEjaxXdH0trNqXgJMhR8kjgtei9pi6OFvILk=";
})
];
patchFlags = [ "-p0" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 ]

View file

@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
};
propagatedBuildInputs = with python3Packages; [
gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket_client
gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client
gevent-websocket rencode bitcoinlib maxminddb pyopenssl
];

View file

@ -10,6 +10,7 @@
, openssl
, xclip
, xdotool
, makeWrapper
}:
rustPlatform.buildRustPackage rec {
@ -28,6 +29,7 @@ rustPlatform.buildRustPackage rec {
nativeBuildInputs = [
extra-cmake-modules
pkg-config
makeWrapper
];
buildInputs = [
@ -35,6 +37,7 @@ rustPlatform.buildRustPackage rec {
libXtst
libXi
libnotify
xclip
openssl
xdotool
];
@ -42,6 +45,11 @@ rustPlatform.buildRustPackage rec {
# Some tests require networking
doCheck = false;
postInstall = ''
wrapProgram $out/bin/espanso \
--prefix PATH : ${lib.makeBinPath [ libnotify xclip ]}
'';
meta = with lib; {
description = "Cross-platform Text Expander written in Rust";
homepage = "https://espanso.org";

View file

@ -7,11 +7,11 @@ let
inherit (python3Packages) python pygobject3;
in stdenv.mkDerivation rec {
pname = "gnumeric";
version = "1.12.49";
version = "1.12.50";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "kcBy7JXDLgCxVv/oAVyTsyuO3zaPkEFDYZPPoy6E7Vc=";
sha256 = "dYgZuhvWmDgp+efG1xp/ogzXWjZSonHluwA9XYvMFLg=";
};
configureFlags = [ "--disable-component" ];

View file

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "pappl";
version = "1.0.2";
version = "1.0.3";
src = fetchFromGitHub {
owner = "michaelrsweet";
repo = pname;
rev = "v${version}";
sha256 = "sha256-L4ptgAJAvyTUCVl6YotA8DnlISc9PwZM0WjXyOvxGJg=";
sha256 = "sha256-B3g6R0/li+5D4odFG21qj+SR3K4PFnzzxIGCwbk1buo=";
};
outputs = [ "out" "dev" ];

View file

@ -5,15 +5,20 @@
python3Packages.buildPythonApplication rec {
pname = "truvari";
version = "2.0.2";
version = "2.1.1";
src = fetchFromGitHub {
owner = "spiralgenetics";
repo = "truvari";
rev = "v${version}";
sha256 = "0lp1wnldjv92k4ncga1h0icb0dpjsrx427vggg40x04a7kp9lwx0";
sha256 = "14nsdbj063qm175xxixs34cihvsiskc9gym8pg7gbwsh13k5a00h";
};
postPatch = ''
substituteInPlace setup.py \
--replace 'python-Levenshtein==0.12.1' 'python-Levenshtein>=0.12.1'
'';
propagatedBuildInputs = with python3Packages; [
pyvcf
python-Levenshtein

View file

@ -17,14 +17,14 @@ let
};
in
stdenv.mkDerivation rec {
version = "14.31.38";
version = "14.31.39";
pname = "jmol";
src = let
baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
in fetchurl {
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
sha256 = "sha256-yXJ1KtTH3bi24GFiVXu8zzQkreDkqbCxgm7fVoSJepg=";
sha256 = "sha256-ss+QvBsmivqNdjXW45Sv9h/JXuZpryCGmRTsUgcDlRE=";
};
patchPhase = ''

View file

@ -1,86 +1,75 @@
{ mkDerivation, lib, fetchpatch, fetchFromGitHub, qmake, pkg-config
, qtbase, qtsvg, qttools, qtserialport, boost, libgit2
{ mkDerivation
, lib
, fetchFromGitHub
, qmake
, pkg-config
, qtbase
, qtsvg
, qttools
, qtserialport
, boost
, libgit2
}:
let
# build number corresponding to a release, has no further relation
# see https://github.com/fritzing/fritzing-app/releases/tag/CD-498
fritzingBuild = "498";
# fritzingBuild = "498";
# version 0.9.6 is properly tagged, hope it continues
# SHA256 of the fritzing-parts HEAD on the master branch,
# which contains the latest stable parts definitions
partsSha = "e79a69765026f3fda8aab1b3e7a4952c28047a62";
partsSha = "6f04697be286768bc9e4d64f8707e8e40cbcafcb";
in
mkDerivation rec {
pname = "fritzing";
version = "0.9.4-${fritzingBuild}";
version = "0.9.6";
src = fetchFromGitHub {
owner = "fritzing";
owner = pname;
repo = "fritzing-app";
rev = "CD-${fritzingBuild}";
sha256 = "0aljj2wbmm1vd64nhj6lh9qy856pd5avlgydsznya2vylyz20p34";
rev = version;
sha256 = "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs";
};
parts = fetchFromGitHub {
owner = "fritzing";
owner = pname;
repo = "fritzing-parts";
name = "fritzing-parts";
rev = partsSha;
sha256 = "0spka33a5qq34aq79j01arw1aly4vh0hzv7mahryhdlcdk22qqvc";
sha256 = "1f4w0hz44n4iw1rc5vhcgzvlji54rf4yr8bvzkqv99hn2xf5pjgs";
};
buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
nativeBuildInputs = [ qmake pkg-config qttools ];
patches = [(fetchpatch {
name = "fix-libgit2-version.patch";
url = "https://github.com/fritzing/fritzing-app/commit/472951243d70eeb40a53b1f7e16e6eab0588d079.patch";
sha256 = "0v1zi609cjnqac80xgnk23n54z08g1lia37hbzfl8jcq9sn9adak";
})];
postPatch = ''
substituteInPlace phoenix.pro \
--replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
substituteInPlace tools/linux_release_script/release.sh \
--replace 'git status' 'echo >/dev/null' \
--replace 'git clean' 'echo >/dev/null' \
--replace 'git clone' 'echo >/dev/null' \
--replace 'release_folder="' 'release_folder="$out" #' \
--replace './Fritzing -db' '# run after fixup'
substituteInPlace src/fapplication.cpp \
--replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
'';
buildPhase = ''
bash tools/linux_release_script/release.sh ${version}
'';
installPhase = ''
rm "$out/Fritzing" # remove script file
mkdir "$out/bin"
mv "$out/lib/Fritzing" "$out/bin/Fritzing"
mkdir --parents "$out/share/applications" "$out/share/metainfo"
mv --target-directory="$out/share/applications" "$out/org.fritzing.Fritzing.desktop"
mv --target-directory="$out/share/metainfo" "$out/org.fritzing.Fritzing.appdata.xml"
cp --recursive --no-target-directory "$parts" "$out/fritzing-parts"
mkdir parts
cp -a ${parts}/* parts/
'';
postFixup = ''
# generate the parts.db file
QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" -db "$out/fritzing-parts/parts.db" -pp "$out/fritzing-parts" -folder "$out"
QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" \
-db "$out/share/fritzing/parts/parts.db" \
-pp "$out/fritzing/parts" \
-folder "$out/share/fritzing"
'';
qmakeFlags = [ "phoenix.pro" ];
meta = {
meta = with lib; {
description = "An open source prototyping tool for Arduino-based projects";
homepage = "https://fritzing.org/";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.robberer ];
platforms = lib.platforms.linux;
license = with licenses; [ gpl3 cc-by-sa-30 ];
maintainers = with maintainers; [ robberer ];
platforms = platforms.linux;
};
}

View file

@ -1,11 +1,11 @@
{ lib, stdenv, fetchurl, gmp, mpfr, boost }:
stdenv.mkDerivation {
name = "gappa-1.3.5";
name = "gappa-1.4.0";
src = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/file/38044/gappa-1.3.5.tar.gz";
sha256 = "0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w";
url = "https://gforge.inria.fr/frs/download.php/file/38044/gappa-1.4.0.tar.gz";
sha256 = "sha256-/IDIf5XnFBqVllgH5GtQ6C8g7vxheaVcXNoZiXlsPGA=";
};
buildInputs = [ gmp mpfr boost.dev ];

View file

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-gNJ5I8ZjsqLHEPiujNVJhi4E+MBChXBidMNK48jKF9E=";
};
nativeBuildInputs = [ installShellFiles tcl ];
nativeBuildInputs = [ installShellFiles tcl tcllib ];
buildInputs = [ zlib openssl readline sqlite which ed ]
++ lib.optional stdenv.isDarwin libiconv;
@ -38,10 +38,6 @@ stdenv.mkDerivation rec {
configureFlags = [ "--disable-internal-sqlite" ]
++ lib.optional withJson "--json";
preCheck = ''
export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
'';
preBuild = ''
export USER=nonexistent-but-specified-user
'';

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "diff-so-fancy";
version = "1.4.1";
version = "1.4.2";
src = fetchFromGitHub {
owner = "so-fancy";
repo = "diff-so-fancy";
rev = "v${version}";
sha256 = "sha256-bV22x459QerWg4MVLWsXPDhM38QWG6BE+dVmKIFfDiE=";
sha256 = "sha256-1kBarsRiuB8fv7VLlWfpotPfHeMrfmIXHXTFu8TzC2A=";
};
nativeBuildInputs = [
@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
diff-so-fancy builds on the good-lookin' output of git contrib's
diff-highlight to upgrade your diffs' appearances.
'';
maintainers = with maintainers; [ fpletz globin ];
maintainers = with maintainers; [ fpletz globin ma27 ];
};
}

View file

@ -4,11 +4,11 @@
buildPythonApplication rec {
pname = "git-machete";
version = "3.1.1";
version = "3.2.0";
src = fetchPypi {
inherit pname version;
sha256 = "00f1rq80vya464dkvf3mzs9zpvkz15ki8srwg08snsm5kb7amwlm";
sha256 = "1bssk0jqspmsvr8kha9l5cslyhjvc50y30wdgavbca256lv75gh8";
};
nativeBuildInputs = [ installShellFiles pbr ];

View file

@ -2,7 +2,7 @@
, curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
, openssh, pcre2
, asciidoctor, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xsl_ns, docbook_xml_dtd_45
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
, libxslt, tcl, tk, makeWrapper, libiconv
, svnSupport, subversionClient, perlLibs, smtpPerlLibs
, perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform
@ -68,8 +68,8 @@ stdenv.mkDerivation {
'';
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
++ lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
docbook_xsl docbook_xsl_ns docbook_xml_dtd_45 libxslt ];
++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_45 libxslt ];
buildInputs = [curl openssl zlib expat cpio libiconv]
++ lib.optionals perlSupport [ perlPackages.perl ]
++ lib.optionals guiSupport [tcl tk]
@ -78,7 +78,7 @@ stdenv.mkDerivation {
++ lib.optionals withLibsecret [ pkg-config glib libsecret ];
# required to support pthread_cancel()
NIX_LDFLAGS = lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s"
+ lib.optionalString (stdenv.isFreeBSD) "-lthr";
configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
@ -148,7 +148,7 @@ stdenv.mkDerivation {
}
# Install git-subtree.
make -C contrib/subtree install ${lib.optionalString withManual "USE_ASCIIDOCTOR=1 install-doc"}
make -C contrib/subtree install ${lib.optionalString withManual "install-doc"}
rm -rf contrib/subtree
# Install contrib stuff.
@ -233,7 +233,7 @@ stdenv.mkDerivation {
'')
+ lib.optionalString withManual ''# Install man pages
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES USE_ASCIIDOCTOR=1 PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
-C Documentation ''
+ (if guiSupport then ''

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "glab";
version = "1.18.0";
version = "1.18.1";
src = fetchFromGitHub {
owner = "profclems";
repo = pname;
rev = "v${version}";
sha256 = "sha256-/WKfMmaFjnzRWCJZEZF/CguU0K7FOtgvKNMSQGvjODQ=";
sha256 = "sha256-ahP5y5i0SMj2+mP4RYc7MLZGElX5eLgKwiVhBYGOX2g=";
};
vendorSha256 = "sha256-PCkVjLdOdOhJGNSkVPFK/ONRdJT7MS0COjYgPNT5dNw=";
vendorSha256 = "sha256-ssVmqcJ/DxUqAkHm9tn4RwWuKzTHvxoqJquXPIRy4b8=";
runVend = true;
# Tests are trying to access /homeless-shelter

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "lefthook";
version = "0.7.5";
version = "0.7.6";
src = fetchFromGitHub {
rev = "v${version}";
owner = "evilmartians";
repo = "lefthook";
sha256 = "sha256-IKrutZJhs2iuwhXoV+81rDoaSi/xdYRpIlF1YjGFGY4=";
sha256 = "sha256-qCj6FsbzxnMISCITKFcIIYtqMiHzSNYNjlpgpE9S/Ss=";
};
vendorSha256 = "sha256-Rp67FnFU27u85t02MIs7wZQoOa8oGsHVVPQ9OdIyTJg=";

View file

@ -1,55 +1,21 @@
{ lib, stdenv, fetchurl, fetchpatch, ed }:
{ lib, stdenv, fetchurl, fetchpatch, buildPackages, diffutils, ed }:
stdenv.mkDerivation rec {
name = "rcs-5.9.4";
pname = "rcs";
version = "5.10.0";
src = fetchurl {
url = "mirror://gnu/rcs/${name}.tar.xz";
sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86";
url = "mirror://gnu/rcs/${pname}-${version}.tar.xz";
sha256 = "sha256-Og2flYx60wPkdehjRlSXTtvm3rOkVEkfOFfcGIm6xcU";
};
buildInputs = [ ed ];
ac_cv_path_ED = "${ed}/bin/ed";
DIFF = "${diffutils}/bin/diff";
DIFF3 = "${diffutils}/bin/diff3";
patches = lib.optionals stdenv.isDarwin [
# This failure appears unrelated to the subject of the test. This
# test seems to rely on a bash bug where `test $x -nt $y` ignores
# subsecond values in timetamps. This bug has been fixed in Bash
# 5, and seemingly doesn't affect Darwin.
./disable-t810.patch
(fetchpatch {
url = "https://raw.githubusercontent.com/macports/macports-ports/b76d1e48dac/editors/nano/files/secure_snprintf.patch";
extraPrefix = "";
sha256 = "1wy9pjw3vvp8fv8a7pmkqmiapgacfx54qj9fvsc5gwry0vv7vnc3";
})
# Expected to appear in the next release
(fetchpatch {
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3fff7c990b8df4174045834b9c1210e7736ff5a4/rcs/noreturn.patch";
sha256 = "10zniqrd6xagf3q03i1vksl0vd9nla3qcj0840n3m8z6jd4aypcx";
})
];
doCheck = true;
checkFlags = [ "VERBOSE=1" ];
checkPhase = ''
# If neither LOGNAME or USER are set, rcs will default to
# getlogin(), which is unreliable on macOS. It will often return
# things like `_spotlight`, or `_mbsetupuser`. macOS sets both
# environment variables in user sessions, so this is unlikely to
# affect regular usage.
export LOGNAME=$(id -un)
print_logs_and_fail() {
grep -nH -e . -r tests/*.d/{out,err}
return 1
}
make $checkFlags check || print_logs_and_fail
'';
disallowedReferences =
lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform)
[ buildPackages.diffutils buildPackages.ed ];
NIX_CFLAGS_COMPILE = "-std=c99";

View file

@ -1,10 +0,0 @@
--- rcs-5.9.4-orig/tests/Makefile.in 2015-01-22 19:40:36.000000000 +0900
+++ rcs-5.9.4/tests/Makefile.in 2019-04-16 20:04:30.557626000 +0900
@@ -1372,7 +1372,6 @@
t803 \
t804 \
t805 \
- t810 \
t900 \
t999

View file

@ -4,13 +4,13 @@
with lib;
stdenv.mkDerivation rec {
pname = "ccextractor";
version = "0.88";
version = "0.89";
src = fetchFromGitHub {
owner = "CCExtractor";
repo = pname;
rev = "v${version}";
sha256 = "1sya45hvv4d46bk7541yimmafgvgyhkpsvwfz9kv6pm4yi1lz6nb";
sha256 = "sha256-847yt6pUTsDnVbrMQQPJ0pqu6UnKmYmr8UtR8+TP11A=";
};
sourceRoot = "source/src";

View file

@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
requests
iso-639
iso3166
websocket_client
websocket-client
isodate
]) ++ [
rtmpdump

View file

@ -1,6 +1,6 @@
{ lib
, fetchFromGitHub
, buildGoPackage
, buildGoModule
, btrfs-progs
, go-md2man
, installShellFiles
@ -8,19 +8,20 @@
, nixosTests
}:
buildGoPackage rec {
buildGoModule rec {
pname = "containerd";
version = "1.5.1";
version = "1.5.2";
outputs = [ "out" "man" ];
src = fetchFromGitHub {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
sha256 = "sha256-jVyg+fyMuDnV/TM0Z2t+Cr17a6XBv11aWijhsqMnA5s=";
sha256 = "sha256-RDLAmPBjDHCx9al+gstUTrvKc/L0vAm8IEd/mvX5Als=";
};
goPackagePath = "github.com/containerd/containerd";
outputs = [ "out" "man" ];
vendorSha256 = null;
nativeBuildInputs = [ go-md2man installShellFiles util-linux ];
@ -28,11 +29,9 @@ buildGoPackage rec {
buildFlags = [ "VERSION=v${version}" "REVISION=${src.rev}" ];
BUILDTAGS = [ ]
++ lib.optional (btrfs-progs == null) "no_btrfs";
BUILDTAGS = lib.optionals (btrfs-progs == null) [ "no_btrfs" ];
buildPhase = ''
cd go/src/${goPackagePath}
patchShebangs .
make binaries man $buildFlags
'';

View file

@ -3,7 +3,7 @@
, mock, pytest, nose
, pyyaml, backports_ssl_match_hostname, colorama, docopt
, dockerpty, docker, ipaddress, jsonschema, requests
, six, texttable, websocket_client, cached-property
, six, texttable, websocket-client, cached-property
, enum34, functools32, paramiko, distro, python-dotenv
}:
@ -22,7 +22,7 @@ buildPythonApplication rec {
checkInputs = [ mock pytest nose ];
propagatedBuildInputs = [
pyyaml colorama dockerpty docker
ipaddress jsonschema requests six texttable websocket_client
ipaddress jsonschema requests six texttable websocket-client
docopt cached-property paramiko distro python-dotenv
] ++ lib.optional (pythonOlder "3.7") backports_ssl_match_hostname
++ lib.optional (pythonOlder "3.4") enum34

View file

@ -6,7 +6,7 @@
buildGoPackage rec {
pname = "docker-slim";
version = "1.35.2";
version = "1.36.0";
goPackagePath = "github.com/docker-slim/docker-slim";
@ -14,7 +14,7 @@ buildGoPackage rec {
owner = "docker-slim";
repo = "docker-slim";
rev = version;
sha256 = "sha256-Pg3vPvnEo1OkCakwkwS/HaFnvmpjuHHlGqIjddO6jwQ=";
sha256 = "sha256-4wSQ5R0haVnbtWk2im83A1FzrJDHVEFLqnkROGNF4q8=";
};
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];

View file

@ -1,6 +1,6 @@
{ lib
, fetchFromGitHub
, buildGoPackage
, buildGoModule
, go-md2man
, installShellFiles
, pkg-config
@ -14,7 +14,7 @@
, nixosTests
}:
buildGoPackage rec {
buildGoModule rec {
pname = "runc";
version = "1.0.0-rc95";
@ -25,7 +25,7 @@ buildGoPackage rec {
sha256 = "sha256-q4sXcvJO9gyo7m0vlaMrwh7ZZHYa58FJy3GatWndS6M=";
};
goPackagePath = "github.com/opencontainers/runc";
vendorSha256 = null;
outputs = [ "out" "man" ];
nativeBuildInputs = [ go-md2man installShellFiles makeWrapper pkg-config which ];
@ -36,7 +36,6 @@ buildGoPackage rec {
buildPhase = ''
runHook preBuild
cd go/src/${goPackagePath}
patchShebangs .
make ${toString makeFlags} runc man
runHook postBuild

View file

@ -15,11 +15,11 @@ with lib;
buildGoPackage rec {
pname = "singularity";
version = "3.7.4";
version = "3.8.0";
src = fetchurl {
url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
sha256 = "sha256-wmY2movydH9E4HWYWMP8OyMluXWogYsmaPC5exJNAWQ=";
sha256 = "sha256-6WCLDgqMgFIYu+eV6RdkhIN7L3/LleVGm4U7OAmiQS4=";
};
goPackagePath = "github.com/sylabs/singularity";

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "i3-balance-workspace";
version = "1.8.4";
version = "1.8.5";
src = fetchPypi {
inherit pname version;
sha256 = "bb220eb373e290312b0aafe3d7b1cc1cca34c93189a4fca5bee93ef39aafbe3d";
sha256 = "7b5d72b756f79878a058484825bb343b100433e00a01f80c9c6d1ccc9f4af57a";
};
propagatedBuildInputs = [ i3ipc ];

View file

@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
version = "2.13.c.3";
version = "2.13.c.4";
pname = "i3lock-color";
src = fetchFromGitHub {
owner = "PandorasFox";
repo = "i3lock-color";
rev = version;
sha256 = "0spldmis8fvnclwwi9xvnq2rq3hmpbiv3ck5p9pjf40ismvsi16k";
sha256 = "sha256-bbjkvgSKD57sdOtPYGLAKpQoIsJnF6s6ySq4dTWC3tI=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, meson, ninja, pkg-config, git
{ lib, stdenv, fetchurl, meson, ninja, pkg-config
, cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland
, wayland-protocols, wf-config, wlroots, mesa
}:

View file

@ -6,7 +6,7 @@ var_templates_list=(
accumulateRoles
for var in "${var_templates_list[@]}"; do
mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
mangleVarListGeneric ":" "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
done
export NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@=1

View file

@ -99,7 +99,7 @@ in stdenv.mkDerivation {
inherit description platforms;
license = lib.licenses.isc;
maintainers = with lib.maintainers;
[ pmahoney Profpatsch ] ++ maintainers;
[ pmahoney Profpatsch qyliss ] ++ maintainers;
};
}

View file

@ -13,7 +13,9 @@ accumulateRoles() {
fi
}
mangleVarList() {
mangleVarListGeneric() {
local sep="$1"
shift
local var="$1"
shift
local -a role_suffixes=("$@")
@ -25,11 +27,15 @@ mangleVarList() {
for suffix in "${role_suffixes[@]}"; do
local inputVar="${var}${suffix}"
if [ -v "$inputVar" ]; then
export ${outputVar}+="${!outputVar:+ }${!inputVar}"
export ${outputVar}+="${!outputVar:+$sep}${!inputVar}"
fi
done
}
mangleVarList() {
mangleVarListGeneric " " "$@"
}
mangleVarBool() {
local var="$1"
shift

View file

@ -1,53 +1,59 @@
{ lib, stdenv, fetchurl, unzip
, bdftopcf, mkfontscale, fontforge
, bdftopcf, mkfontscale, fonttosfnt
}:
stdenv.mkDerivation {
pname = "dina-font";
version = "2.92";
outputs = [ "out" "bdf" ];
src = fetchurl {
url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
};
nativeBuildInputs =
[ unzip bdftopcf mkfontscale fontforge ];
[ unzip bdftopcf mkfontscale fonttosfnt ];
patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
postPatch = ''
sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf
'';
buildPhase = ''
runHook preBuild
newName() {
test "''${1:5:1}" = i && _it=Italic || _it=
case ''${1:6:3} in
400) test -z $it && _weight=Medium ;;
700) _weight=Bold ;;
esac
_pt=''${1%.bdf}
_pt=''${_pt#*-}
echo "Dina$_weight$_it$_pt"
test "''${1:5:1}" = i && _it=Italic || _it=
case ''${1:6:3} in
400) test -z $it && _weight=Medium ;;
700) _weight=Bold ;;
esac
_pt=''${1%.bdf}
_pt=''${_pt#*-}
echo "Dina$_weight$_it$_pt"
}
# convert bdf fonts to pcf
for i in *.bdf; do
bdftopcf -t -o $(newName "$i").pcf "$i"
for f in *.bdf; do
name=$(newName "$f")
bdftopcf -t -o "$name.pcf" "$f"
fonttosfnt -v -o "$name.otb" "$f"
done
gzip -n -9 *.pcf
# convert bdf fonts to otb
for i in *.bdf; do
fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")"
done
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb
install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
mkfontdir "$out/share/fonts/misc"
mkfontdir "$bdf/share/fonts/misc"
'';
outputs = [ "out" "bdf" ];
runHook postInstall
'';
meta = with lib; {
description = "A monospace bitmap font aimed at programmers";

View file

@ -2,7 +2,7 @@
let
pname = "spleen";
version = "1.9.0";
version = "1.9.1";
in fetchurl {
name = "${pname}-${version}";
url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@ -19,7 +19,7 @@ in fetchurl {
# create fonts.dir so NixOS xorg module adds to fp
${mkfontscale}/bin/mkfontdir "$d"
'';
sha256 = "sha256-hNPbYiU+v7kCYKVyOn+uc5cSlu9bWsC4CwFvfH6StWM=";
sha256 = "sha256-6Imsa0ku8On63di0DOo0QxBa0t+tbtPRxM531EIiG94=";
meta = with lib; {
description = "Monospaced bitmap fonts";

View file

@ -2,6 +2,11 @@
, fontforge, SDL, SDL_image, mkfontscale
}:
let
perlenv = perl.withPackages (p: with p; [
TextCharWidth
]);
in
stdenv.mkDerivation rec {
pname = "unscii";
version = "1.1";
@ -12,11 +17,23 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs =
[ (perl.withPackages (p: [ p.TextCharWidth ]))
[ perlenv
bdftopcf fontforge SDL SDL_image
mkfontscale
];
# Fixes shebang -> wrapper problem on Darwin
postPatch = ''
for perltool in *.pl; do
substituteInPlace Makefile \
--replace "./$perltool" "${perlenv}/bin/perl ./$perltool"
done
'';
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
preConfigure = ''
patchShebangs .
'';

View file

@ -30,13 +30,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "gnome-music";
version = "40.0";
version = "40.1.1";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1djqhd4jccvk352hwxjhiwjgbnv1qnpv450f2c6w6581vcn9pq38";
sha256 = "IMtnPhHC8xQ9NYjPyrmhInkQgOun3GASypTBhglVjVE=";
};
nativeBuildInputs = [

View file

@ -44,13 +44,13 @@
stdenv.mkDerivation rec {
pname = "evince";
version = "40.1";
version = "40.2";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0bfg7prmjk3z8irx1nfkkqph3igg3cy4pwd7pcxjxbshqdin6rks";
sha256 = "D/fseTdqipesTNJ00y6ATH4jbvLS1dP2Rt5uuIKmPHc=";
};
postPatch = ''

View file

@ -13,11 +13,11 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extensions";
version = "40.1";
version = "40.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "T7/OCtQ1e+5zrn3Bjqoe9MqnOF5PlPavuN/HJR/RqL8=";
sha256 = "qFGN1Mg6eE+o05pe1gC/gdY3oY7r5ZDjticYPgv5FPg=";
};
patches = [

View file

@ -5,9 +5,9 @@
mkXfceDerivation {
category = "xfce";
pname = "xfce4-settings";
version = "4.16.1";
version = "4.16.2";
sha256 = "0mjhglfsqmiycpv98l09n2556288g2713n4pvxn0srivm017fdir";
sha256 = "09npyqxsbrvz60bkbardqrizd5rvray5hkp84qgjzc10z4qrnk0f";
postPatch = ''
for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do

View file

@ -1,6 +1,6 @@
{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, rebar3-proper, lib }:
let
version = "0.16.0";
version = "0.17.0";
owner = "erlang-ls";
repo = "erlang_ls";
deps = import ./rebar-deps.nix {
@ -17,7 +17,7 @@ in rebar3Relx {
inherit version;
src = fetchFromGitHub {
inherit owner repo;
sha256 = "0l09yhj3rsb9zj4cs6a1bcfmi6zbyb3xk1lv494xbyiv5d61vkwm";
sha256 = "0szg9hx436cvy80sh94dzmf2rainnw3fjc84bv3hlzjwwzmxj9aw";
rev = version;
};
releaseType = "escript";

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