Merge branch 'master' into haskell-updates
This commit is contained in:
commit
4b2e95ca2a
437 changed files with 5173 additions and 2696 deletions
14
.github/CODEOWNERS
vendored
14
.github/CODEOWNERS
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
||||
GLib’s [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. GTK’s 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`.
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 {
|
||||
|
|
183
nixos/modules/services/networking/ucarp.nix
Normal file
183
nixos/modules/services/networking/ucarp.nix
Normal 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 ];
|
||||
}
|
|
@ -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 {};
|
||||
|
|
|
@ -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',
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -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
66
nixos/tests/ucarp.nix
Normal 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"
|
||||
'';
|
||||
})
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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; [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -4,6 +4,7 @@ let
|
|||
# A list of binaries to put into separate outputs
|
||||
bins = [
|
||||
"geth"
|
||||
"clef"
|
||||
];
|
||||
|
||||
in buildGoModule rec {
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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=";
|
||||
})
|
||||
];
|
||||
})
|
||||
|
|
|
@ -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" ];
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 () {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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; [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
66
pkgs/applications/misc/jquake/default.nix
Normal file
66
pkgs/applications/misc/jquake/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=";
|
||||
|
|
79
pkgs/applications/misc/survex/default.nix
Normal file
79
pkgs/applications/misc/survex/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -59,7 +59,7 @@ python3Packages.buildPythonApplication rec {
|
|||
python-Levenshtein
|
||||
pyxdg
|
||||
requests
|
||||
websocket_client
|
||||
websocket-client
|
||||
];
|
||||
|
||||
checkInputs = with python3Packages; [
|
||||
|
|
56
pkgs/applications/misc/usql/default.nix
Normal file
56
pkgs/applications/misc/usql/default.nix
Normal 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" ];
|
||||
};
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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=";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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/";
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
|||
env = "${buildEnv {
|
||||
name = "wee-slack-env";
|
||||
paths = with python3Packages; [
|
||||
websocket_client
|
||||
websocket-client
|
||||
six
|
||||
];
|
||||
}}/${python3Packages.python.sitePackages}";
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ''
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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";
|
||||
|
|
|
@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
requests
|
||||
iso-639
|
||||
iso3166
|
||||
websocket_client
|
||||
websocket-client
|
||||
isodate
|
||||
]) ++ [
|
||||
rtmpdump
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
}:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 .
|
||||
'';
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue