Merge branch 'master' into staging-next
minor conflict: rust update vs. darwin fixes for it (not tested but seems quite OK)
This commit is contained in:
commit
90094b0468
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@ -96,8 +96,8 @@
|
|||||||
/pkgs/development/ruby-modules @alyssais
|
/pkgs/development/ruby-modules @alyssais
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
/pkgs/development/compilers/rust @Mic92 @LnL7
|
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
||||||
/pkgs/build-support/rust @andir
|
/pkgs/build-support/rust @andir @zowoq
|
||||||
|
|
||||||
# Darwin-related
|
# Darwin-related
|
||||||
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
|
/pkgs/stdenv/darwin @NixOS/darwin-maintainers
|
||||||
|
2
.github/workflows/editorconfig.yml
vendored
2
.github/workflows/editorconfig.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
- name: Fetch editorconfig-checker
|
- name: Fetch editorconfig-checker
|
||||||
if: env.GIT_DIFF
|
if: env.GIT_DIFF
|
||||||
env:
|
env:
|
||||||
ECC_VERSION: "2.1.0"
|
ECC_VERSION: "2.2.0"
|
||||||
ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
|
ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
|
||||||
run: |
|
run: |
|
||||||
curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \
|
curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \
|
||||||
|
@ -42,4 +42,16 @@
|
|||||||
type = (builtins.readDir parent).${base} or null;
|
type = (builtins.readDir parent).${base} or null;
|
||||||
in file == /. || type == "directory";
|
in file == /. || type == "directory";
|
||||||
in go (if isDir then file else parent);
|
in go (if isDir then file else parent);
|
||||||
|
|
||||||
|
|
||||||
|
# listFilesRecursive: Path -> [ Path ]
|
||||||
|
#
|
||||||
|
# Given a directory, return a flattened list of all files within it recursively.
|
||||||
|
listFilesRecursive = dir: lib.flatten (lib.mapAttrsToList (name: type:
|
||||||
|
if type == "directory" then
|
||||||
|
lib.filesystem.listFilesRecursive (dir + "/${name}")
|
||||||
|
else
|
||||||
|
dir + "/${name}"
|
||||||
|
) (builtins.readDir dir));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -315,6 +315,16 @@ rec {
|
|||||||
*/
|
*/
|
||||||
escapeNixString = s: escape ["$"] (builtins.toJSON s);
|
escapeNixString = s: escape ["$"] (builtins.toJSON s);
|
||||||
|
|
||||||
|
/* Turn a string into an exact regular expression
|
||||||
|
|
||||||
|
Type: string -> string
|
||||||
|
|
||||||
|
Example:
|
||||||
|
escapeRegex "[^a-z]*"
|
||||||
|
=> "\\[\\^a-z]\\*"
|
||||||
|
*/
|
||||||
|
escapeRegex = escape (stringToCharacters "\\[{()^$?*+|.");
|
||||||
|
|
||||||
/* Quotes a string if it can't be used as an identifier directly.
|
/* Quotes a string if it can't be used as an identifier directly.
|
||||||
|
|
||||||
Type: string -> string
|
Type: string -> string
|
||||||
@ -386,8 +396,6 @@ rec {
|
|||||||
/* Cut a string with a separator and produces a list of strings which
|
/* Cut a string with a separator and produces a list of strings which
|
||||||
were separated by this separator.
|
were separated by this separator.
|
||||||
|
|
||||||
NOTE: this function is not performant and should never be used.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
splitString "." "foo.bar.baz"
|
splitString "." "foo.bar.baz"
|
||||||
=> [ "foo" "bar" "baz" ]
|
=> [ "foo" "bar" "baz" ]
|
||||||
@ -396,26 +404,11 @@ rec {
|
|||||||
*/
|
*/
|
||||||
splitString = _sep: _s:
|
splitString = _sep: _s:
|
||||||
let
|
let
|
||||||
sep = addContextFrom _s _sep;
|
sep = builtins.unsafeDiscardStringContext _sep;
|
||||||
s = addContextFrom _sep _s;
|
s = builtins.unsafeDiscardStringContext _s;
|
||||||
sepLen = stringLength sep;
|
splits = builtins.filter builtins.isString (builtins.split (escapeRegex sep) s);
|
||||||
sLen = stringLength s;
|
|
||||||
lastSearch = sLen - sepLen;
|
|
||||||
startWithSep = startAt:
|
|
||||||
substring startAt sepLen s == sep;
|
|
||||||
|
|
||||||
recurse = index: startAt:
|
|
||||||
let cutUntil = i: [(substring startAt (i - startAt) s)]; in
|
|
||||||
if index <= lastSearch then
|
|
||||||
if startWithSep index then
|
|
||||||
let restartAt = index + sepLen; in
|
|
||||||
cutUntil index ++ recurse restartAt restartAt
|
|
||||||
else
|
|
||||||
recurse (index + 1) startAt
|
|
||||||
else
|
|
||||||
cutUntil sLen;
|
|
||||||
in
|
in
|
||||||
recurse 0 0;
|
map (v: addContextFrom _sep (addContextFrom _s v)) splits;
|
||||||
|
|
||||||
/* Return a string without the specified prefix, if the prefix matches.
|
/* Return a string without the specified prefix, if the prefix matches.
|
||||||
|
|
||||||
|
@ -154,6 +154,20 @@ runTests {
|
|||||||
expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ];
|
expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testSplitStringsRegex = {
|
||||||
|
expr = strings.splitString "\\[{}]()^$?*+|." "A\\[{}]()^$?*+|.B";
|
||||||
|
expected = [ "A" "B" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
testSplitStringsDerivation = {
|
||||||
|
expr = take 3 (strings.splitString "/" (derivation {
|
||||||
|
name = "name";
|
||||||
|
builder = "builder";
|
||||||
|
system = "system";
|
||||||
|
}));
|
||||||
|
expected = ["" "nix" "store"];
|
||||||
|
};
|
||||||
|
|
||||||
testSplitVersionSingle = {
|
testSplitVersionSingle = {
|
||||||
expr = versions.splitVersion "1";
|
expr = versions.splitVersion "1";
|
||||||
expected = [ "1" ];
|
expected = [ "1" ];
|
||||||
|
@ -7419,6 +7419,12 @@
|
|||||||
githubId = 1387224;
|
githubId = 1387224;
|
||||||
name = "Richard Szibele";
|
name = "Richard Szibele";
|
||||||
};
|
};
|
||||||
|
rtburns-jpl = {
|
||||||
|
email = "rtburns@jpl.nasa.gov";
|
||||||
|
github = "rtburns-jpl";
|
||||||
|
githubId = 47790121;
|
||||||
|
name = "Ryan Burns";
|
||||||
|
};
|
||||||
rtreffer = {
|
rtreffer = {
|
||||||
email = "treffer+nixos@measite.de";
|
email = "treffer+nixos@measite.de";
|
||||||
github = "rtreffer";
|
github = "rtreffer";
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
The test itself can be run interactively. This is particularly useful when
|
The test itself can be run interactively. This is particularly useful when
|
||||||
developing or debugging a test:
|
developing or debugging a test:
|
||||||
<screen>
|
<screen>
|
||||||
<prompt>$ </prompt>nix-build nixos/tests/login.nix -A driver
|
<prompt>$ </prompt>nix-build nixos/tests/login.nix -A driverInteractive
|
||||||
<prompt>$ </prompt>./result/bin/nixos-test-driver
|
<prompt>$ </prompt>./result/bin/nixos-test-driver
|
||||||
starting VDE switch for network 1
|
starting VDE switch for network 1
|
||||||
<prompt>></prompt>
|
<prompt>></prompt>
|
||||||
@ -30,7 +30,7 @@ starting VDE switch for network 1
|
|||||||
<para>
|
<para>
|
||||||
To just start and experiment with the VMs, run:
|
To just start and experiment with the VMs, run:
|
||||||
<screen>
|
<screen>
|
||||||
<prompt>$ </prompt>nix-build nixos/tests/login.nix -A driver
|
<prompt>$ </prompt>nix-build nixos/tests/login.nix -A driverInteractive
|
||||||
<prompt>$ </prompt>./result/bin/nixos-run-vms
|
<prompt>$ </prompt>./result/bin/nixos-run-vms
|
||||||
</screen>
|
</screen>
|
||||||
The script <command>nixos-run-vms</command> starts the virtual machines
|
The script <command>nixos-run-vms</command> starts the virtual machines
|
||||||
|
@ -17,9 +17,9 @@ rec {
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
||||||
|
|
||||||
testDriver = let
|
mkTestDriver = let
|
||||||
testDriverScript = ./test-driver/test-driver.py;
|
testDriverScript = ./test-driver/test-driver.py;
|
||||||
in stdenv.mkDerivation {
|
in qemu_pkg: stdenv.mkDerivation {
|
||||||
name = "nixos-test-driver";
|
name = "nixos-test-driver";
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
@ -47,10 +47,12 @@ rec {
|
|||||||
# TODO: copy user script part into this file (append)
|
# TODO: copy user script part into this file (append)
|
||||||
|
|
||||||
wrapProgram $out/bin/nixos-test-driver \
|
wrapProgram $out/bin/nixos-test-driver \
|
||||||
--prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \
|
--prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils ]}" \
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testDriver = mkTestDriver qemu_test;
|
||||||
|
testDriverInteractive = mkTestDriver qemu_kvm;
|
||||||
|
|
||||||
# Run an automated test suite in the given virtual network.
|
# Run an automated test suite in the given virtual network.
|
||||||
# `driver' is the script that runs the network.
|
# `driver' is the script that runs the network.
|
||||||
@ -113,7 +115,11 @@ rec {
|
|||||||
# Generate convenience wrappers for running the test driver
|
# Generate convenience wrappers for running the test driver
|
||||||
# interactively with the specified network, and for starting the
|
# interactively with the specified network, and for starting the
|
||||||
# VMs from the command line.
|
# VMs from the command line.
|
||||||
driver = let warn = if skipLint then lib.warn "Linting is disabled!" else lib.id; in warn (runCommand testDriverName
|
driver = testDriver:
|
||||||
|
let
|
||||||
|
warn = if skipLint then lib.warn "Linting is disabled!" else lib.id;
|
||||||
|
in
|
||||||
|
warn (runCommand testDriverName
|
||||||
{ buildInputs = [ makeWrapper];
|
{ buildInputs = [ makeWrapper];
|
||||||
testScript = testScript';
|
testScript = testScript';
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
@ -148,7 +154,7 @@ rec {
|
|||||||
meta = (drv.meta or {}) // t.meta;
|
meta = (drv.meta or {}) // t.meta;
|
||||||
};
|
};
|
||||||
|
|
||||||
test = passMeta (runTests driver);
|
test = passMeta (runTests (driver testDriver));
|
||||||
|
|
||||||
nodeNames = builtins.attrNames nodes;
|
nodeNames = builtins.attrNames nodes;
|
||||||
invalidNodeNames = lib.filter
|
invalidNodeNames = lib.filter
|
||||||
@ -165,7 +171,9 @@ rec {
|
|||||||
''
|
''
|
||||||
else
|
else
|
||||||
test // {
|
test // {
|
||||||
inherit nodes driver test;
|
inherit nodes test;
|
||||||
|
driver = driver testDriver;
|
||||||
|
driverInteractive = driver testDriverInteractive;
|
||||||
};
|
};
|
||||||
|
|
||||||
runInMachine =
|
runInMachine =
|
||||||
|
@ -30,11 +30,12 @@ with lib;
|
|||||||
cairo = super.cairo.override { x11Support = false; };
|
cairo = super.cairo.override { x11Support = false; };
|
||||||
dbus = super.dbus.override { x11Support = false; };
|
dbus = super.dbus.override { x11Support = false; };
|
||||||
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
|
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
|
||||||
|
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
|
||||||
networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
|
networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
|
||||||
networkmanager-openconnect = super.networkmanager-openconnect.override { withGnome = false; };
|
networkmanager-openconnect = super.networkmanager-openconnect.override { withGnome = false; };
|
||||||
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
||||||
|
networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
|
||||||
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
||||||
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
|
|
||||||
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
||||||
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
||||||
}));
|
}));
|
||||||
|
@ -45,6 +45,46 @@ in
|
|||||||
CacheDirectory = "jellyfin";
|
CacheDirectory = "jellyfin";
|
||||||
ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
|
ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
|
|
||||||
|
# Security options:
|
||||||
|
|
||||||
|
NoNewPrivileges = true;
|
||||||
|
|
||||||
|
AmbientCapabilities = "";
|
||||||
|
CapabilityBoundingSet = "";
|
||||||
|
|
||||||
|
# ProtectClock= adds DeviceAllow=char-rtc r
|
||||||
|
DeviceAllow = "";
|
||||||
|
|
||||||
|
LockPersonality = true;
|
||||||
|
|
||||||
|
PrivateTmp = true;
|
||||||
|
PrivateDevices = true;
|
||||||
|
PrivateUsers = true;
|
||||||
|
|
||||||
|
ProtectClock = true;
|
||||||
|
ProtectControlGroups = true;
|
||||||
|
ProtectHostname = true;
|
||||||
|
ProtectKernelLogs = true;
|
||||||
|
ProtectKernelModules = true;
|
||||||
|
ProtectKernelTunables = true;
|
||||||
|
|
||||||
|
RemoveIPC = true;
|
||||||
|
|
||||||
|
RestrictNamespaces = true;
|
||||||
|
# AF_NETLINK needed because Jellyfin monitors the network connection
|
||||||
|
RestrictAddressFamilies = [ "AF_NETLINK" "AF_INET" "AF_INET6" ];
|
||||||
|
RestrictRealtime = true;
|
||||||
|
RestrictSUIDSGID = true;
|
||||||
|
|
||||||
|
SystemCallArchitectures = "native";
|
||||||
|
SystemCallErrorNumber = "EPERM";
|
||||||
|
SystemCallFilter = [
|
||||||
|
"@system-service"
|
||||||
|
|
||||||
|
"~@chown" "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@module"
|
||||||
|
"~@obsolete" "~@privileged" "~@setuid"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ let
|
|||||||
networkmanager-openconnect
|
networkmanager-openconnect
|
||||||
networkmanager-openvpn
|
networkmanager-openvpn
|
||||||
networkmanager-vpnc
|
networkmanager-vpnc
|
||||||
|
networkmanager-sstp
|
||||||
] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
|
] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
|
||||||
|
|
||||||
delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
|
delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
|
||||||
@ -386,6 +387,9 @@ in {
|
|||||||
|
|
||||||
"NetworkManager/VPN/nm-iodine-service.name".source =
|
"NetworkManager/VPN/nm-iodine-service.name".source =
|
||||||
"${networkmanager-iodine}/lib/NetworkManager/VPN/nm-iodine-service.name";
|
"${networkmanager-iodine}/lib/NetworkManager/VPN/nm-iodine-service.name";
|
||||||
|
|
||||||
|
"NetworkManager/VPN/nm-sstp-service.name".source =
|
||||||
|
"${networkmanager-sstp}/lib/NetworkManager/VPN/nm-sstp-service.name";
|
||||||
}
|
}
|
||||||
// optionalAttrs (cfg.appendNameservers != [] || cfg.insertNameservers != [])
|
// optionalAttrs (cfg.appendNameservers != [] || cfg.insertNameservers != [])
|
||||||
{
|
{
|
||||||
|
@ -116,6 +116,10 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
|
|||||||
users.users.root.initialHashedPassword = mkOverride 150 "";
|
users.users.root.initialHashedPassword = mkOverride 150 "";
|
||||||
|
|
||||||
services.xserver.displayManager.job.logToJournal = true;
|
services.xserver.displayManager.job.logToJournal = true;
|
||||||
|
|
||||||
|
# Make sure we use the Guest Agent from the QEMU package for testing
|
||||||
|
# to reduce the closure size required for the tests.
|
||||||
|
services.qemuGuest.package = pkgs.qemu_test.ga;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,11 @@ in {
|
|||||||
default = false;
|
default = false;
|
||||||
description = "Whether to enable the qemu guest agent.";
|
description = "Whether to enable the qemu guest agent.";
|
||||||
};
|
};
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.qemu.ga;
|
||||||
|
description = "The QEMU guest agent package.";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (
|
config = mkIf cfg.enable (
|
||||||
@ -25,7 +30,7 @@ in {
|
|||||||
systemd.services.qemu-guest-agent = {
|
systemd.services.qemu-guest-agent = {
|
||||||
description = "Run the QEMU Guest Agent";
|
description = "Run the QEMU Guest Agent";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.qemu.ga}/bin/qemu-ga";
|
ExecStart = "${cfg.package}/bin/qemu-ga";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RestartSec = 0;
|
RestartSec = 0;
|
||||||
};
|
};
|
||||||
|
@ -7,16 +7,16 @@
|
|||||||
}:
|
}:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "polkadot";
|
pname = "polkadot";
|
||||||
version = "0.8.24";
|
version = "0.8.25";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "paritytech";
|
owner = "paritytech";
|
||||||
repo = "polkadot";
|
repo = "polkadot";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "15q5scajxrf82k8nxysah8cs3yl2p09xzzwlkxvjkcn08r3zhig6";
|
sha256 = "1jdklmysr25rlwgx7pz0jw66j1w60h98kqghzjhr90zhynzh39lz";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "0qp20g5c15qzp2n1nzwqbnn2wx6c905vh652nvkm7sb1d901iiqi";
|
cargoSha256 = "08yfafrspkd1g1mhlfwngbknkxjkyymbcga8n2rdsk7mz0hm0vgy";
|
||||||
|
|
||||||
cargoPatches = [ ./substrate-wasm-builder-runner.patch ];
|
cargoPatches = [ ./substrate-wasm-builder-runner.patch ];
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
description = "Polkadot Node Implementation";
|
description = "Polkadot Node Implementation";
|
||||||
homepage = "https://polkadot.network";
|
homepage = "https://polkadot.network";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ akru andresilva ];
|
maintainers = with maintainers; [ akru andresilva RaghavSood ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -13,49 +13,111 @@ self: super: let
|
|||||||
in {
|
in {
|
||||||
inherit buildPlugin;
|
inherit buildPlugin;
|
||||||
|
|
||||||
# Deprecated alias
|
abl-expert = buildPlugin rec {
|
||||||
m3d-fio = self.m33-fio; # added 2016-08-13
|
pname = "ABL_Expert";
|
||||||
|
version = "0.6";
|
||||||
|
|
||||||
m33-fio = buildPlugin rec {
|
src = fetchgit {
|
||||||
pname = "M33-Fio";
|
url = "https://framagit.org/razer/Octoprint_ABL_Expert/";
|
||||||
version = "1.21";
|
rev = version;
|
||||||
|
sha256 = "0ij3rvdwya1sbymwm5swlh2j4jagb6fal945g88zrzh5xf26hzjh";
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "donovan6000";
|
|
||||||
repo = "M33-Fio";
|
|
||||||
rev = "V${version}";
|
|
||||||
sha256 = "1la3611kkqn8yiwjn6cizc45ri8pnk6ckld1na4nk6mqk88jvjq7";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
meta = with stdenv.lib; {
|
||||||
./m33-fio-one-library.patch
|
description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
|
||||||
];
|
homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ WhittlesJr ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
postPatch = ''
|
bedlevelvisualizer = buildPlugin rec {
|
||||||
rm -rf octoprint_m33fio/static/libraries/*
|
pname = "BedLevelVisualizer";
|
||||||
(
|
version = "0.1.15";
|
||||||
cd 'shared library source'
|
|
||||||
make
|
src = fetchFromGitHub {
|
||||||
)
|
owner = "jneilliii";
|
||||||
'';
|
repo = "OctoPrint-${pname}";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1bq39fnarnpk8phxfbpx6l4n9anf358z1cgid5r89nadmn2a0cny";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = with super; [ numpy ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "OctoPrint plugin for the Micro 3D printer";
|
description = "Displays 3D mesh of bed topography report";
|
||||||
homepage = "https://github.com/donovan6000/M33-Fio";
|
homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer";
|
||||||
license = licenses.gpl3;
|
license = licenses.agpl3;
|
||||||
maintainers = with maintainers; [ abbradar ];
|
maintainers = with maintainers; [ lovesegfault ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
curaenginelegacy = buildPlugin rec {
|
||||||
|
pname = "CuraEngineLegacy";
|
||||||
|
version = "1.1.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "OctoPrint";
|
||||||
|
repo = "OctoPrint-${pname}";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1a7pxlmj1a7blkv97sn1k390pbjcxx2860011pbjcdnli74zpvv5";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Plugin for slicing via Cura Legacy from within OctoPrint";
|
||||||
|
homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ gebner ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
displaylayerprogress = buildPlugin rec {
|
||||||
|
pname = "OctoPrint-DisplayLayerProgress";
|
||||||
|
version = "1.24.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "OllisGit";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
|
||||||
|
homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ j0hax ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gcodeeditor = buildPlugin rec {
|
||||||
|
pname = "GcodeEditor";
|
||||||
|
version = "0.2.9";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ieatacid";
|
||||||
|
repo = "OctoPrint-${pname}";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1yjj9lmxbzmzrn7gahw9lj7554fphalbjjp8ns0rr9py3rshwxkm";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Edit gcode on OctoPrint";
|
||||||
|
homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ WhittlesJr ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mqtt = buildPlugin rec {
|
mqtt = buildPlugin rec {
|
||||||
pname = "MQTT";
|
pname = "MQTT";
|
||||||
version = "0.8.6";
|
version = "0.8.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "OctoPrint";
|
owner = "OctoPrint";
|
||||||
repo = "OctoPrint-MQTT";
|
repo = "OctoPrint-MQTT";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0y1jnfplcy8mh3szrfbbvngl02j49cbdizglrfsry4fvqg50zjxd";
|
sha256 = "0k82h7wafbcqdvk5wjw4dp9lydwszfj1lf8vvymwbqdn7pf5h0dy";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with super; [ paho-mqtt ];
|
propagatedBuildInputs = with super; [ paho-mqtt ];
|
||||||
@ -68,77 +130,30 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
titlestatus = buildPlugin rec {
|
printtimegenius = buildPlugin rec {
|
||||||
pname = "TitleStatus";
|
pname = "PrintTimeGenius";
|
||||||
version = "0.0.4";
|
version = "2.2.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "MoonshineSG";
|
owner = "eyal0";
|
||||||
repo = "OctoPrint-TitleStatus";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "1l78xrabn5hcly2mgxwi17nwgnp2s6jxi9iy4wnw8k8icv74ag7k";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Show printers status in window title";
|
|
||||||
homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ abbradar ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
stlviewer = buildPlugin rec {
|
|
||||||
pname = "STLViewer";
|
|
||||||
version = "0.4.2";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jneilliii";
|
|
||||||
repo = "OctoPrint-STLViewer";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "A simple stl viewer tab for OctoPrint";
|
|
||||||
homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ abbradar ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
curaenginelegacy = buildPlugin rec {
|
|
||||||
pname = "CuraEngineLegacy";
|
|
||||||
version = "1.0.2";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "OctoPrint";
|
|
||||||
repo = "OctoPrint-${pname}";
|
repo = "OctoPrint-${pname}";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1cdb276wfyf3wcfj5g3migd6b6aqmkrxncrqjfcfx4j4k3xac965";
|
sha256 = "04zfgd3x3lbriyzwhpqnwdcfdm19fsqgsb7l2ix5d0ssmqxwg2r6";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# PrintTimeGenius ships with marlin-calc binaries for multiple architectures
|
||||||
|
rm */analyzers/marlin-calc*
|
||||||
|
sed 's@"{}.{}".format(binary_base_name, machine)@"${pkgs.marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./printtimegenius-logging.patch
|
||||||
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Plugin for slicing via Cura Legacy from within OctoPrint";
|
description = "Better print time estimation for OctoPrint";
|
||||||
homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
|
homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ gebner ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
touchui = buildPlugin rec {
|
|
||||||
pname = "TouchUI";
|
|
||||||
version = "0.3.14";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "BillyBlaze";
|
|
||||||
repo = "OctoPrint-${pname}";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "033b9nk3kpnmjw9nggcaxy39hcgfviykcy2cx0j6m411agvmqbzf";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
|
|
||||||
homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
|
|
||||||
license = licenses.agpl3;
|
license = licenses.agpl3;
|
||||||
maintainers = with maintainers; [ gebner ];
|
maintainers = with maintainers; [ gebner ];
|
||||||
};
|
};
|
||||||
@ -168,81 +183,15 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
printtimegenius = buildPlugin rec {
|
|
||||||
pname = "PrintTimeGenius";
|
|
||||||
version = "2.2.1";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "eyal0";
|
|
||||||
repo = "OctoPrint-${pname}";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "1dr93vbpxgxw3b1q4rwam8f4dmiwr5vnfr9796g6jx8xkpfzzy1h";
|
|
||||||
};
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
# PrintTimeGenius ships with marlin-calc binaries for multiple architectures
|
|
||||||
rm */analyzers/marlin-calc*
|
|
||||||
sed 's@"{}.{}".format(binary_base_name, machine)@"${pkgs.marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./printtimegenius-logging.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Better print time estimation for OctoPrint";
|
|
||||||
homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ gebner ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
abl-expert = buildPlugin rec {
|
|
||||||
pname = "ABL_Expert";
|
|
||||||
version = "2019-12-21";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://framagit.org/razer/Octoprint_ABL_Expert/";
|
|
||||||
rev = "f11fbe05088ad618bfd9d064ac3881faec223f33";
|
|
||||||
sha256 = "026r4prkyvwzxag5pv36455q7s3gaig37nmr2nbvhwq3d2lbi5s4";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
|
|
||||||
homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ WhittlesJr ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gcodeeditor = buildPlugin rec {
|
|
||||||
pname = "GcodeEditor";
|
|
||||||
version = "0.2.6";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "ieatacid";
|
|
||||||
repo = "OctoPrint-${pname}";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "0c6p78r3vd6ys3kld308pyln09zjbr9yif1ljvcx6wlml2i5l1vh";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Edit gcode on OctoPrint";
|
|
||||||
homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
|
|
||||||
license = licenses.agpl3;
|
|
||||||
maintainers = with maintainers; [ WhittlesJr ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
simpleemergencystop = buildPlugin rec {
|
simpleemergencystop = buildPlugin rec {
|
||||||
pname = "SimpleEmergencyStop";
|
pname = "SimpleEmergencyStop";
|
||||||
version = "0.2.5";
|
version = "1.0.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Sebclem";
|
owner = "Sebclem";
|
||||||
repo = "OctoPrint-${pname}";
|
repo = "OctoPrint-${pname}";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "10wadv09wv2h96igvq3byw9hz1si82n3c7v5y0ii3j7hm2d06y8p";
|
sha256 = "0hhh5grmn32abkix1b9fr1d0pcpdi2r066iypcxdxcza9qzwjiyi";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -253,22 +202,79 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
displaylayerprogress = buildPlugin rec {
|
stlviewer = buildPlugin rec {
|
||||||
pname = "OctoPrint-DisplayLayerProgress";
|
pname = "STLViewer";
|
||||||
version = "1.24.0";
|
version = "0.4.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "OllisGit";
|
owner = "jneilliii";
|
||||||
repo = pname;
|
repo = "OctoPrint-STLViewer";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n";
|
sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
|
description = "A simple stl viewer tab for OctoPrint";
|
||||||
homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
|
homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
|
||||||
license = licenses.agpl3;
|
license = licenses.agpl3;
|
||||||
maintainers = with maintainers; [ j0hax ];
|
maintainers = with maintainers; [ abbradar ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
themeify = buildPlugin rec {
|
||||||
|
pname = "Themeify";
|
||||||
|
version = "1.2.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Birkbjo";
|
||||||
|
repo = "Octoprint-${pname}";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0j1qs6kyh947npdy7pqda25fjkqinpas3sy0qyscqlxi558lhvx2";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Beautiful themes for OctoPrint";
|
||||||
|
homepage = "https://github.com/birkbjo/OctoPrint-Themeify";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ lovesegfault ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
titlestatus = buildPlugin rec {
|
||||||
|
pname = "TitleStatus";
|
||||||
|
version = "0.0.5";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MoonshineSG";
|
||||||
|
repo = "OctoPrint-TitleStatus";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "10nxjrixg0i6n6x8ghc1ndshm25c97bvkcis5j9kmlkkzs36i2c6";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Show printers status in window title";
|
||||||
|
homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ abbradar ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
touchui = buildPlugin rec {
|
||||||
|
pname = "TouchUI";
|
||||||
|
version = "0.3.16";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "BillyBlaze";
|
||||||
|
repo = "OctoPrint-${pname}";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1jlqjirc4ygl4k7jp93l2h6b18jap3mzz8sf2g61j9w0kgv9l365";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
|
||||||
|
homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
maintainers = with maintainers; [ gebner ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -293,13 +299,13 @@ in {
|
|||||||
|
|
||||||
octoprint-dashboard = buildPlugin rec {
|
octoprint-dashboard = buildPlugin rec {
|
||||||
pname = "OctoPrint-Dashboard";
|
pname = "OctoPrint-Dashboard";
|
||||||
version = "1.15.1";
|
version = "1.15.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "StefanCohen";
|
owner = "StefanCohen";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1psk069g8xdpgbzmna51dh978vrildh33dn7kbbi5y31ry5c3gx6";
|
sha256 = "0p94jwd7kagh3sixhcrqmsgbay4aaf9l1pgyi2b45jym8pvld5n4";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
91
pkgs/applications/misc/wayst/default.nix
Normal file
91
pkgs/applications/misc/wayst/default.nix
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, pkgconfig
|
||||||
|
, freetype
|
||||||
|
, fontconfig
|
||||||
|
, libGL
|
||||||
|
, libX11
|
||||||
|
, libXrandr
|
||||||
|
, libxcb
|
||||||
|
, libxkbcommon
|
||||||
|
, utf8proc
|
||||||
|
, wayland
|
||||||
|
|
||||||
|
, libnotify
|
||||||
|
, xdg_utils
|
||||||
|
, makeDesktopItem
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
desktopName = "Wayst";
|
||||||
|
name = "wayst";
|
||||||
|
exec = "wayst";
|
||||||
|
icon = "wayst";
|
||||||
|
terminal = "false";
|
||||||
|
categories = "System;TerminalEmulator";
|
||||||
|
comment = "A simple terminal emulator";
|
||||||
|
extraEntries = ''
|
||||||
|
GenericName=Terminal
|
||||||
|
Keywords=wayst;terminal;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "wayst";
|
||||||
|
version = "unstable-2020-10-12";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "91861";
|
||||||
|
repo = pname;
|
||||||
|
rev = "b8c7ca00a785a748026ed1ba08bf3d19916ced18";
|
||||||
|
hash = "sha256-wHAU1yxukxApzhLLLctZ/AYqF7t21HQc5omPBZyxra0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
makeFlags = [ "INSTALL_DIR=\${out}/bin" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
fontconfig
|
||||||
|
libX11
|
||||||
|
freetype
|
||||||
|
libGL
|
||||||
|
libxcb
|
||||||
|
libxkbcommon
|
||||||
|
libXrandr
|
||||||
|
utf8proc
|
||||||
|
wayland
|
||||||
|
];
|
||||||
|
|
||||||
|
# This patch forces the Makefile to use utf8proc
|
||||||
|
# The makefile relies on ldconfig to find the utf8proc libraries
|
||||||
|
# which is not possible on nixpkgs
|
||||||
|
patches = [ ./utf8proc.patch ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/settings.c \
|
||||||
|
--replace xdg-open ${xdg_utils}/bin/xdg-open
|
||||||
|
substituteInPlace src/main.c \
|
||||||
|
--replace notify-send ${libnotify}/bin/notify-send
|
||||||
|
'';
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
ln -s ${desktopItem}/share/applications/* $out/share/applications
|
||||||
|
install -D icons/wayst.svg $out/share/icons/hicolor/scalable/apps/wayst.svg
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A simple terminal emulator";
|
||||||
|
homepage = "https://github.com/91861/wayst";
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ berbiche ];
|
||||||
|
};
|
||||||
|
}
|
24
pkgs/applications/misc/wayst/utf8proc.patch
Normal file
24
pkgs/applications/misc/wayst/utf8proc.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
commit caa5a6bed31937f2d1b322da204e11eae57a720f
|
||||||
|
Author: Nicolas Berbiche <nicolas@normie.dev>
|
||||||
|
Date: Tue Oct 20 18:14:44 2020 -0400
|
||||||
|
|
||||||
|
PATCH: use nixpkgs utf8proc
|
||||||
|
|
||||||
|
This patch forces the Makefile to use utf8proc from `buildInputs`.
|
||||||
|
The Makefile relies on ldconfig to find the utf8proc libraries,
|
||||||
|
which is not possible with nixpkgs.
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index caccdf7..90b11ea 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -29,7 +29,7 @@ else
|
||||||
|
LDFLAGS = -O2 -flto
|
||||||
|
endif
|
||||||
|
|
||||||
|
-ifeq ($(shell ldconfig -p | grep libutf8proc.so > /dev/null || echo fail),fail)
|
||||||
|
+ifeq (false,fail)
|
||||||
|
$(info libutf8proc not found. Support for language-specific combining characters and unicode normalization will be disabled.)
|
||||||
|
CFLAGS += -DNOUTF8PROC
|
||||||
|
else
|
||||||
|
|
@ -319,15 +319,8 @@ let
|
|||||||
NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
|
NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
|
||||||
|
|
||||||
buildPhase = let
|
buildPhase = let
|
||||||
# Build paralelism: on Hydra the build was frequently running into memory
|
|
||||||
# exhaustion, and even other users might be running into similar issues.
|
|
||||||
# -j is halved to avoid memory problems, and -l is slightly increased
|
|
||||||
# so that the build gets slight preference before others
|
|
||||||
# (it will often be on "critical path" and at risk of timing out)
|
|
||||||
buildCommand = target: ''
|
buildCommand = target: ''
|
||||||
ninja -C "${buildPath}" \
|
ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}"
|
||||||
-j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \
|
|
||||||
"${target}"
|
|
||||||
(
|
(
|
||||||
source chrome/installer/linux/common/installer.include
|
source chrome/installer/linux/common/installer.include
|
||||||
PACKAGE=$packageName
|
PACKAGE=$packageName
|
||||||
|
@ -352,15 +352,8 @@ let
|
|||||||
NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
|
NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
|
||||||
|
|
||||||
buildPhase = let
|
buildPhase = let
|
||||||
# Build paralelism: on Hydra the build was frequently running into memory
|
|
||||||
# exhaustion, and even other users might be running into similar issues.
|
|
||||||
# -j is halved to avoid memory problems, and -l is slightly increased
|
|
||||||
# so that the build gets slight preference before others
|
|
||||||
# (it will often be on "critical path" and at risk of timing out)
|
|
||||||
buildCommand = target: ''
|
buildCommand = target: ''
|
||||||
ninja -C "${buildPath}" \
|
ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}"
|
||||||
-j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \
|
|
||||||
"${target}"
|
|
||||||
(
|
(
|
||||||
source chrome/installer/linux/common/installer.include
|
source chrome/installer/linux/common/installer.include
|
||||||
PACKAGE=$packageName
|
PACKAGE=$packageName
|
||||||
|
@ -9,13 +9,13 @@ assert pulseaudioSupport -> libpulseaudio != null;
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "gqrx";
|
pname = "gqrx";
|
||||||
version = "2.12.1";
|
version = "2.13";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "csete";
|
owner = "csete";
|
||||||
repo = "gqrx";
|
repo = "gqrx";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "00alf3q6y313xpx6p7v43vqsphd2x4am4q362lw21bcy9wc4jidw";
|
sha256 = "034y8w2cwv35ibqnqb9bdgscsrcp6rr02fgscbfi3gky3n0qddcy";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
assert blas.implementation == "openblas" && lapack.implementation == "openblas";
|
assert blas.implementation == "openblas" && lapack.implementation == "openblas";
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "19.11";
|
version = "20.10";
|
||||||
gitLabRev = "v${version}";
|
gitLabRev = "v${version}";
|
||||||
|
|
||||||
python = python3.withPackages (ps : with ps; [ six pyparsing ]);
|
python = python3.withPackages (ps : with ps; [ six pyparsing ]);
|
||||||
@ -20,18 +20,13 @@ in stdenv.mkDerivation {
|
|||||||
owner = "Molcas";
|
owner = "Molcas";
|
||||||
repo = "OpenMolcas";
|
repo = "OpenMolcas";
|
||||||
rev = gitLabRev;
|
rev = gitLabRev;
|
||||||
sha256 = "1wwqhkyyi7pw5x1ghnp83ir17zl5jsj7phhqxapybyi3bmg0i00q";
|
sha256 = "1w8av44dx5r9yp2xhf9ypdrhappvk984wrd5pa1ww0qv6j2446ic";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ (fetchpatch {
|
patches = [
|
||||||
name = "Fix-MPI-INT-size"; # upstream patch, fixes a Fortran compiler error
|
# Required to handle openblas multiple outputs
|
||||||
url = "https://gitlab.com/Molcas/OpenMolcas/commit/860e3350523f05ab18e49a428febac8a4297b6e4.patch";
|
./openblasPath.patch
|
||||||
sha256 = "0h96h5ikbi5l6ky41nkxmxfhjiykkiifq7vc2s3fdy1r1siv09sb";
|
];
|
||||||
}) (fetchpatch {
|
|
||||||
name = "fix-cisandbox"; # upstream patch, fixes a Fortran compiler error
|
|
||||||
url = "https://gitlab.com/Molcas/OpenMolcas/commit/d871590c8ce4689cd94cdbbc618954c65589393d.patch";
|
|
||||||
sha256 = "0dgz1w2rkglnis76spai3m51qa72j4bz6ppnk5zmzrr6ql7gwpgg";
|
|
||||||
})];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ perl cmake texlive.combined.scheme-minimal makeWrapper ];
|
nativeBuildInputs = [ perl cmake texlive.combined.scheme-minimal makeWrapper ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -55,7 +50,7 @@ in stdenv.mkDerivation {
|
|||||||
"-DTOOLS=ON"
|
"-DTOOLS=ON"
|
||||||
"-DHDF5=ON"
|
"-DHDF5=ON"
|
||||||
"-DFDE=ON"
|
"-DFDE=ON"
|
||||||
"-DOPENBLASROOT=${openblas}"
|
"-DOPENBLASROOT=${openblas.dev}"
|
||||||
];
|
];
|
||||||
|
|
||||||
GAROOT=globalarrays;
|
GAROOT=globalarrays;
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 276ae4e2..db13e6e3 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -1507,7 +1507,6 @@ if (LINALG STREQUAL "OpenBLAS")
|
||||||
|
NAMES openblas
|
||||||
|
PATHS ${OPENBLASROOT}
|
||||||
|
PATH_SUFFIXES lib
|
||||||
|
- NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
|
|
||||||
|
if (NOT LIBOPENBLAS)
|
@ -109,7 +109,7 @@ self = stdenv.mkDerivation {
|
|||||||
nativeBuildInputs = [ pkgconfig ]
|
nativeBuildInputs = [ pkgconfig ]
|
||||||
++ stdenv.lib.optional (!versionAtLeast "8.6") gnumake42
|
++ stdenv.lib.optional (!versionAtLeast "8.6") gnumake42
|
||||||
;
|
;
|
||||||
buildInputs = [ ncurses ocamlPackages.ocaml ocamlPackages.findlib ]
|
buildInputs = [ ncurses ]
|
||||||
++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
|
++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
|
||||||
++ stdenv.lib.optional (!versionAtLeast "8.12") ocamlPackages.num
|
++ stdenv.lib.optional (!versionAtLeast "8.12") ocamlPackages.num
|
||||||
++ stdenv.lib.optionals buildIde
|
++ stdenv.lib.optionals buildIde
|
||||||
@ -117,7 +117,10 @@ self = stdenv.mkDerivation {
|
|||||||
then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
|
then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
|
||||||
else [ ocamlPackages.lablgtk ]);
|
else [ ocamlPackages.lablgtk ]);
|
||||||
|
|
||||||
propagatedBuildInputs = stdenv.lib.optional (versionAtLeast "8.12") ocamlPackages.num;
|
propagatedBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
|
||||||
|
++ stdenv.lib.optional (versionAtLeast "8.12") ocamlPackages.num;
|
||||||
|
|
||||||
|
propagatedUserEnvPkgs = [ ocamlPackages.ocaml ocamlPackages.findlib ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
UNAME=$(type -tp uname)
|
UNAME=$(type -tp uname)
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, python, zlib, pkgconfig, glib
|
{ stdenv, fetchurl, fetchpatch, python, zlib, pkgconfig, glib
|
||||||
, ncurses, perl, pixman, vde2, alsaLib, texinfo, flex
|
, perl, pixman, vde2, alsaLib, texinfo, flex
|
||||||
, bison, lzo, snappy, libaio, gnutls, nettle, curl
|
, bison, lzo, snappy, libaio, gnutls, nettle, curl
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, attr, libcap, libcap_ng
|
, attr, libcap, libcap_ng
|
||||||
, CoreServices, Cocoa, Hypervisor, rez, setfile
|
, CoreServices, Cocoa, Hypervisor, rez, setfile
|
||||||
, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
|
, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
|
||||||
, seccompSupport ? stdenv.isLinux, libseccomp
|
, seccompSupport ? stdenv.isLinux, libseccomp
|
||||||
, pulseSupport ? !stdenv.isDarwin, libpulseaudio
|
, alsaSupport ? stdenv.lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner
|
||||||
, sdlSupport ? !stdenv.isDarwin, SDL2
|
, pulseSupport ? !stdenv.isDarwin && !nixosTestRunner, libpulseaudio
|
||||||
, gtkSupport ? !stdenv.isDarwin && !xenSupport, gtk3, gettext, vte, wrapGAppsHook
|
, sdlSupport ? !stdenv.isDarwin && !nixosTestRunner, SDL2
|
||||||
, vncSupport ? true, libjpeg, libpng
|
, gtkSupport ? !stdenv.isDarwin && !xenSupport && !nixosTestRunner, gtk3, gettext, vte, wrapGAppsHook
|
||||||
, smartcardSupport ? true, libcacard
|
, vncSupport ? !nixosTestRunner, libjpeg, libpng
|
||||||
, spiceSupport ? !stdenv.isDarwin, spice, spice-protocol
|
, smartcardSupport ? !nixosTestRunner, libcacard
|
||||||
|
, spiceSupport ? !stdenv.isDarwin && !nixosTestRunner, spice, spice-protocol
|
||||||
|
, ncursesSupport ? !nixosTestRunner, ncurses
|
||||||
, usbredirSupport ? spiceSupport, usbredir
|
, usbredirSupport ? spiceSupport, usbredir
|
||||||
, xenSupport ? false, xen
|
, xenSupport ? false, xen
|
||||||
, cephSupport ? false, ceph
|
, cephSupport ? false, ceph
|
||||||
@ -29,7 +31,7 @@
|
|||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
let
|
let
|
||||||
audio = optionalString (hasSuffix "linux" stdenv.hostPlatform.system) "alsa,"
|
audio = optionalString alsaSupport "alsa,"
|
||||||
+ optionalString pulseSupport "pa,"
|
+ optionalString pulseSupport "pa,"
|
||||||
+ optionalString sdlSupport "sdl,";
|
+ optionalString sdlSupport "sdl,";
|
||||||
|
|
||||||
@ -50,10 +52,11 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
|
nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
|
||||||
++ optionals gtkSupport [ wrapGAppsHook ];
|
++ optionals gtkSupport [ wrapGAppsHook ];
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ zlib glib ncurses perl pixman
|
[ zlib glib perl pixman
|
||||||
vde2 texinfo makeWrapper lzo snappy
|
vde2 texinfo makeWrapper lzo snappy
|
||||||
gnutls nettle curl
|
gnutls nettle curl
|
||||||
]
|
]
|
||||||
|
++ optionals ncursesSupport [ ncurses ]
|
||||||
++ optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile ]
|
++ optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile ]
|
||||||
++ optionals seccompSupport [ libseccomp ]
|
++ optionals seccompSupport [ libseccomp ]
|
||||||
++ optionals numaSupport [ numactl ]
|
++ optionals numaSupport [ numactl ]
|
||||||
|
@ -1,33 +1,29 @@
|
|||||||
{ stdenv, fetchFromGitHub, python3, sass, glib, gdk-pixbuf, libxml2,
|
{ stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
|
||||||
inkscape, optipng, gtk-engine-murrine
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "20180913";
|
version = "20200910";
|
||||||
pname = "numix-solarized-gtk-theme";
|
pname = "numix-solarized-gtk-theme";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Ferdi265";
|
owner = "Ferdi265";
|
||||||
repo = "numix-solarized-gtk-theme";
|
repo = "numix-solarized-gtk-theme";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1kda0lyqi3cxh163fbj8yyi6jj6pf0y980k4s0cmyi3hkh4cqyd5";
|
sha256 = "05h1563sy6sfz76jadxsf730mav6bbjsk9xnadv49r16b8n8p9a9";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ python3 sass glib gdk-pixbuf libxml2 inkscape optipng ];
|
nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
|
substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
|
||||||
substituteInPlace scripts/render-assets.sh \
|
|
||||||
--replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
|
|
||||||
--replace /usr/bin/optipng ${optipng}/bin/optipng
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = "true";
|
buildPhase = "true";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
HOME="$NIX_BUILD_ROOT" # shut up inkscape's warnings
|
||||||
for theme in *.colors; do
|
for theme in *.colors; do
|
||||||
make THEME="''${theme/.colors/}" install
|
make THEME="''${theme/.colors/}" install
|
||||||
done
|
done
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, autoreconfHook
|
{ stdenv, fetchFromGitHub, autoreconfHook
|
||||||
, asciidoctor, pkgconfig, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
|
, asciidoctor, pkgconfig, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
|
||||||
, json_c, kmod, which, utillinux, systemd, keyutils
|
, json_c, kmod, which, utillinux, udev, keyutils
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ json_c kmod utillinux systemd keyutils
|
[ json_c kmod utillinux udev keyutils
|
||||||
];
|
];
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
|
@ -392,6 +392,13 @@ rec {
|
|||||||
propagatedBuildInputs = [ async ];
|
propagatedBuildInputs = [ async ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
async_interactive = janePackage {
|
||||||
|
pname = "async_interactive";
|
||||||
|
hash = "1ma24pi3hqzrs1k12sc0aarhf42fap8nl1h7id6k01wp6s3yqi5d";
|
||||||
|
meta.description = "Utilities for building simple command-line based user interfaces";
|
||||||
|
propagatedBuildInputs = [ async ];
|
||||||
|
};
|
||||||
|
|
||||||
re2 = janePackage {
|
re2 = janePackage {
|
||||||
pname = "re2";
|
pname = "re2";
|
||||||
hash = "0hmizznlzilynn5kh6149bbpkfw2l0xi7zi1y1fxfww2ma3wpim0";
|
hash = "0hmizznlzilynn5kh6149bbpkfw2l0xi7zi1y1fxfww2ma3wpim0";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, buildDunePackage
|
, buildDunePackage
|
||||||
, fetchFromGitHub
|
, fetchurl
|
||||||
|
|
||||||
, ppx_fields_conv
|
, ppx_fields_conv
|
||||||
, ppx_sexp_conv
|
, ppx_sexp_conv
|
||||||
@ -8,35 +8,36 @@
|
|||||||
, cohttp-lwt
|
, cohttp-lwt
|
||||||
, ezjsonm
|
, ezjsonm
|
||||||
, hmap
|
, hmap
|
||||||
|
, sexplib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "opium_kernel";
|
pname = "opium_kernel";
|
||||||
version = "0.17.1";
|
version = "0.18.0";
|
||||||
|
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
minimumOCamlVersion = "4.04.1";
|
minimumOCamlVersion = "4.04.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchurl {
|
||||||
owner = "rgrinberg";
|
url = "https://github.com/rgrinberg/opium/releases/download/${version}/opium-${version}.tbz";
|
||||||
repo = "opium";
|
sha256 = "0a2y9gw55psqhqli3a5ps9mfdab8r46fnbj882r2sp366sfcy37q";
|
||||||
rev = "v${version}";
|
};
|
||||||
sha256 = "03xzh0ik6k3c0yn1w1avph667vdagwclzimwwrlf9qdxnzxvcnp3";
|
|
||||||
};
|
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ppx_sexp_conv ppx_fields_conv
|
ppx_sexp_conv ppx_fields_conv
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
hmap cohttp-lwt ezjsonm
|
hmap cohttp-lwt ezjsonm sexplib
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Sinatra like web toolkit for OCaml based on cohttp & lwt";
|
description = "Sinatra like web toolkit for OCaml based on cohttp & lwt";
|
||||||
homepage = "https://github.com/rgrinberg/opium";
|
homepage = "https://github.com/rgrinberg/opium";
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = [ lib.maintainers.pmahoney ];
|
maintainers = [ lib.maintainers.pmahoney ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,13 +20,16 @@ buildPythonPackage rec {
|
|||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
substituteInPlace setup.py \
|
substituteInPlace setup.py \
|
||||||
--replace "ecdsa==0.13" "ecdsa>=0.13"
|
--replace "ecdsa==0.13" "ecdsa>=0.13" \
|
||||||
|
--replace "base58==1.0.3" "base58>=1.0.3"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Tests needs a BlockIO API key to run properly
|
# Tests needs a BlockIO API key to run properly
|
||||||
# https://github.com/BlockIo/block_io-python/blob/79006bc8974544b70a2d8e9f19c759941d32648e/test.py#L18
|
# https://github.com/BlockIo/block_io-python/blob/79006bc8974544b70a2d8e9f19c759941d32648e/test.py#L18
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "block_io" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Integrate Bitcoin, Dogecoin and Litecoin in your Python applications using block.io";
|
description = "Integrate Bitcoin, Dogecoin and Litecoin in your Python applications using block.io";
|
||||||
homepage = "https://github.com/BlockIo/block_io-python";
|
homepage = "https://github.com/BlockIo/block_io-python";
|
||||||
|
38
pkgs/development/python-modules/yamale/default.nix
Normal file
38
pkgs/development/python-modules/yamale/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, isPy3k
|
||||||
|
, pytest
|
||||||
|
, pyyaml
|
||||||
|
, ruamel_yaml
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "yamale";
|
||||||
|
version = "3.0.4";
|
||||||
|
|
||||||
|
disabled = !isPy3k;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "23andMe";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1xjvah4r3gpwk4zxql3c9jpllb34k175fm6iq1zvsd2vv2fwf8s2";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
pyyaml
|
||||||
|
ruamel_yaml
|
||||||
|
];
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
pytest
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A schema and validator for YAML.";
|
||||||
|
homepage = "https://github.com/23andMe/Yamale";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ rtburns-jpl ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,16 +1,16 @@
|
|||||||
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
|
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "13.4.1";
|
version = "13.5.0";
|
||||||
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
|
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
|
||||||
docker_x86_64 = fetchurl {
|
docker_x86_64 = fetchurl {
|
||||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
|
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
|
||||||
sha256 = "0yc4yfqhh51p0nz0sl2qfp48n431qgp23wn3aqq3jg4fh9578prb";
|
sha256 = "1cahv98hhwcc0czg7c86sqk0r6kw3gxnx8j6mqp1zm19aa30sabk";
|
||||||
};
|
};
|
||||||
|
|
||||||
docker_arm = fetchurl {
|
docker_arm = fetchurl {
|
||||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
|
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
|
||||||
sha256 = "1n50izz21dmd14qm6y9fsgwf5f0r9829dv79mvlqxmh1q87acm93";
|
sha256 = "1wk7xn8jap8699cpgqkpgxmd908qjxlsfjswknrha1n8y2c5bjgx";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
@ -30,7 +30,7 @@ buildGoPackage rec {
|
|||||||
owner = "gitlab-org";
|
owner = "gitlab-org";
|
||||||
repo = "gitlab-runner";
|
repo = "gitlab-runner";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "10k3xn3fapwx52s3r3pk972k1s7793cgja7g1fvm06pic8l7q05g";
|
sha256 = "0qfzdbhj68lq5pa1hvb703yx9grh3hvnnw6jb4bj4fckncd3avgm";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./fix-shell-path.patch ];
|
patches = [ ./fix-shell-path.patch ];
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "editorconfig-checker";
|
pname = "editorconfig-checker";
|
||||||
version = "2.1.0";
|
version = "2.2.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "editorconfig-checker";
|
owner = "editorconfig-checker";
|
||||||
repo = "editorconfig-checker";
|
repo = "editorconfig-checker";
|
||||||
rev = "${version}";
|
rev = "${version}";
|
||||||
sha256 = "09v8gqwcaay3bqbidparmg20dy0mvlrzh34591hanbrx3cwhrz3f";
|
sha256 = "18gz94h2x1z6g6r7v9cdixkbcaigd7cl08af6smlkaa89j0aki32";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "132blcdw3lywxhqslkcpwwvkzl4cpbbkhb7ba8mrvfgl5kvfm1q0";
|
vendorSha256 = "1z4j8vm9mnhjhhmhlj0ycs8b1wpm7lhsfqjnk7w8gfapvj3yfk6h";
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
13
pkgs/development/web/nodejs/v15.nix
Normal file
13
pkgs/development/web/nodejs/v15.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ callPackage, openssl, python3, enableNpm ? true }:
|
||||||
|
|
||||||
|
let
|
||||||
|
buildNodejs = callPackage ./nodejs.nix {
|
||||||
|
inherit openssl;
|
||||||
|
python = python3;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
buildNodejs {
|
||||||
|
inherit enableNpm;
|
||||||
|
version = "15.0.0";
|
||||||
|
sha256 = "0yrlzxrqb5j0qyj4qgzfxyvvd7c76hpslkiswj3cjcq70qbql4zn";
|
||||||
|
}
|
@ -86,11 +86,11 @@ in
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "minecraft-launcher";
|
pname = "minecraft-launcher";
|
||||||
|
|
||||||
version = "2.1.17627";
|
version = "2.1.17785";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
|
url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
|
||||||
sha256 = "04zjjyy0psfxfibzbac9w0kkgqwfpf1qmbj5gspyvhaib7k8may0";
|
sha256 = "1r70myf6hqcnkd6v2m2r8cpj060vsjdyp4rfw6d93vwsyqi90jkc";
|
||||||
};
|
};
|
||||||
|
|
||||||
icon = fetchurl {
|
icon = fetchurl {
|
||||||
|
@ -27,13 +27,13 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${prefix}jack2-${version}";
|
name = "${prefix}jack2-${version}";
|
||||||
version = "1.9.14";
|
version = "1.9.16";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jackaudio";
|
owner = "jackaudio";
|
||||||
repo = "jack2";
|
repo = "jack2";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1prxg1l8wrxfp2mh7l4mvjvmml6816fciq1la88ylhwm1qnfvnax";
|
sha256 = "0pzgrjy5fi2nif2j442fs3j2bbshxpnmq9kzwcqz54wx1w8fzdfr";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig python makeWrapper wafHook ];
|
nativeBuildInputs = [ pkgconfig python makeWrapper wafHook ];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub
|
{ stdenv, fetchFromGitHub, fetchpatch
|
||||||
, meson, ninja, pkgconfig, gettext, libxslt, docbook_xsl_ns
|
, meson, ninja, pkgconfig, gettext, libxslt, docbook_xsl_ns
|
||||||
, libcap, systemd, libidn2
|
, libcap, libidn2
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
@ -22,18 +22,27 @@ in stdenv.mkDerivation rec {
|
|||||||
sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
|
sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Proposed upstream patch to reduce dependency on systemd: https://github.com/iputils/iputils/pull/297
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/iputils/iputils/commit/13d6aefd57fd471ecad06e19073dcc44608dff5e.patch";
|
||||||
|
sha256 = "1n62zxmzp7hgz9qapbbpqv3fxqvc3qyd2a73jhp357x6by84kj49";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"-DBUILD_RARPD=true"
|
"-DBUILD_RARPD=true"
|
||||||
"-DBUILD_TRACEROUTE6=true"
|
"-DBUILD_TRACEROUTE6=true"
|
||||||
"-DBUILD_TFTPD=true"
|
"-DBUILD_TFTPD=true"
|
||||||
"-DNO_SETCAP_OR_SUID=true"
|
"-DNO_SETCAP_OR_SUID=true"
|
||||||
"-Dsystemdunitdir=etc/systemd/system"
|
"-Dsystemdunitdir=etc/systemd/system"
|
||||||
|
"-DINSTALL_SYSTEMD_UNITS=true"
|
||||||
]
|
]
|
||||||
# Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
|
# Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
|
||||||
++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
|
++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
|
nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
|
||||||
buildInputs = [ libcap systemd ]
|
buildInputs = [ libcap ]
|
||||||
++ optional (!stdenv.hostPlatform.isMusl) libidn2;
|
++ optional (!stdenv.hostPlatform.isMusl) libidn2;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -21,18 +21,18 @@ let
|
|||||||
sources = name: system: {
|
sources = name: system: {
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
|
url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
|
||||||
sha256 = "0pvw0mbrx2i3v46lhjnka962gcl4ym0b9hp0xw56hpdd2abc58f6";
|
sha256 = "1lkmilj873ia8kigyfmqfjnlpi7jzq3q4m0ip3lr0a111nr3wi4m";
|
||||||
};
|
};
|
||||||
|
|
||||||
x86_64-linux = {
|
x86_64-linux = {
|
||||||
url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
|
url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
|
||||||
sha256 = "0p5vbg5s3xsi3y7x4s3v3mxcw87x349h6bz6w7xgc141l4g08vh3";
|
sha256 = "0q20vaqr9rrzcp57jrskcmbdvqrfpr4lscki85824fdlpklc00ga";
|
||||||
};
|
};
|
||||||
}.${system};
|
}.${system};
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "google-cloud-sdk";
|
pname = "google-cloud-sdk";
|
||||||
version = "314.0.0";
|
version = "315.0.0";
|
||||||
|
|
||||||
src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
|
src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
|
||||||
|
|
||||||
|
64
pkgs/tools/networking/network-manager/sstp/default.nix
Normal file
64
pkgs/tools/networking/network-manager/sstp/default.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{ stdenv
|
||||||
|
, autoreconfHook
|
||||||
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
|
, file
|
||||||
|
, glib
|
||||||
|
, gnome3
|
||||||
|
, gtk3
|
||||||
|
, intltool
|
||||||
|
, libnma
|
||||||
|
, libsecret
|
||||||
|
, networkmanager
|
||||||
|
, pkgconfig
|
||||||
|
, ppp
|
||||||
|
, sstp
|
||||||
|
, substituteAll
|
||||||
|
, withGnome ? true }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pname = "NetworkManager-sstp";
|
||||||
|
version = "unstable-2020-04-20";
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "enaess";
|
||||||
|
repo = "network-manager-sstp";
|
||||||
|
rev = "735d8ca078f933e085029f60a737e3cf1d8c29a8";
|
||||||
|
sha256 = "0aahfhy2ch951kzj6gnd8p8hv2s5yd5y10wrmj68djhnx2ml8cd3";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ sstp networkmanager glib ppp ]
|
||||||
|
++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ file intltool autoreconfHook pkgconfig ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i 's#/sbin/pppd#${ppp}/bin/pppd#' src/nm-sstp-service.c
|
||||||
|
sed -i 's#/sbin/sstpc#${sstp}/bin/sstpc#' src/nm-sstp-service.c
|
||||||
|
'';
|
||||||
|
|
||||||
|
# glib-2.62 deprecations
|
||||||
|
NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
|
||||||
|
|
||||||
|
preConfigure = "intltoolize";
|
||||||
|
configureFlags = [
|
||||||
|
"--without-libnm-glib"
|
||||||
|
"--with-gnome=${if withGnome then "yes" else "no"}"
|
||||||
|
"--enable-absolute-paths"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
updateScript = gnome3.updateScript {
|
||||||
|
packageName = pname;
|
||||||
|
attrPath = "networkmanager-sstp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "NetworkManager's sstp plugin";
|
||||||
|
inherit (networkmanager.meta) maintainers platforms;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
};
|
||||||
|
}
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "sstp-client";
|
pname = "sstp-client";
|
||||||
version = "1.0.12";
|
version = "1.0.13";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/sstp-client/sstp-client/${version}/sstp-client-${version}.tar.gz";
|
url = "mirror://sourceforge/sstp-client/sstp-client/sstp-client-${version}.tar.gz";
|
||||||
sha256 = "1zv7rx6wh9rhbyg9pg6759by8hc6n4162zrrw0y812cnaw3b8zj8";
|
sha256 = "06rjyncmgdy212xf9l9z6mfh4gdmgk7l4y841gb8lpbrl3y5h4ln";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase =
|
patchPhase =
|
||||||
|
@ -3427,6 +3427,8 @@ in
|
|||||||
|
|
||||||
wayland-utils = callPackage ../tools/wayland/wayland-utils { };
|
wayland-utils = callPackage ../tools/wayland/wayland-utils { };
|
||||||
|
|
||||||
|
wayst = callPackage ../applications/misc/wayst { };
|
||||||
|
|
||||||
wev = callPackage ../tools/misc/wev { };
|
wev = callPackage ../tools/misc/wev { };
|
||||||
|
|
||||||
wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
|
wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
|
||||||
@ -5104,10 +5106,13 @@ in
|
|||||||
nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
|
nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
|
||||||
enableNpm = false;
|
enableNpm = false;
|
||||||
};
|
};
|
||||||
|
nodejs-15_x = callPackage ../development/web/nodejs/v15.nix { };
|
||||||
|
nodejs-slim-15_x = callPackage ../development/web/nodejs/v15.nix {
|
||||||
|
enableNpm = false;
|
||||||
|
};
|
||||||
# Update this when adding the newest nodejs major version!
|
# Update this when adding the newest nodejs major version!
|
||||||
nodejs_latest = nodejs-14_x;
|
nodejs_latest = nodejs-15_x;
|
||||||
nodejs-slim_latest = nodejs-slim-14_x;
|
nodejs-slim_latest = nodejs-slim-15_x;
|
||||||
|
|
||||||
nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
|
nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
|
||||||
nodejs = pkgs.nodejs_latest;
|
nodejs = pkgs.nodejs_latest;
|
||||||
@ -5727,6 +5732,8 @@ in
|
|||||||
|
|
||||||
networkmanager_strongswan = callPackage ../tools/networking/network-manager/strongswan { };
|
networkmanager_strongswan = callPackage ../tools/networking/network-manager/strongswan { };
|
||||||
|
|
||||||
|
networkmanager-sstp = callPackage ../tools/networking/network-manager/sstp { };
|
||||||
|
|
||||||
networkmanagerapplet = callPackage ../tools/networking/network-manager/applet { };
|
networkmanagerapplet = callPackage ../tools/networking/network-manager/applet { };
|
||||||
|
|
||||||
libnma = callPackage ../tools/networking/network-manager/libnma { };
|
libnma = callPackage ../tools/networking/network-manager/libnma { };
|
||||||
@ -9659,11 +9666,11 @@ in
|
|||||||
# So this commit doesn't remove the 1.45.2 release.
|
# So this commit doesn't remove the 1.45.2 release.
|
||||||
rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
|
rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
|
||||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
|
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
|
||||||
llvmPackages = llvmPackages_10;
|
llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_10;
|
||||||
};
|
};
|
||||||
rust_1_47 = callPackage ../development/compilers/rust/1_47.nix {
|
rust_1_47 = callPackage ../development/compilers/rust/1_47.nix {
|
||||||
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
|
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
|
||||||
llvmPackages = llvmPackages_11;
|
llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_11;
|
||||||
};
|
};
|
||||||
rust = rust_1_47;
|
rust = rust_1_47;
|
||||||
|
|
||||||
@ -28003,6 +28010,8 @@ in
|
|||||||
|
|
||||||
yadm = callPackage ../applications/version-management/yadm { };
|
yadm = callPackage ../applications/version-management/yadm { };
|
||||||
|
|
||||||
|
yamale = with python3Packages; toPythonApplication yamale;
|
||||||
|
|
||||||
yamdi = callPackage ../tools/video/yamdi { };
|
yamdi = callPackage ../tools/video/yamdi { };
|
||||||
|
|
||||||
yandex-disk = callPackage ../tools/filesystems/yandex-disk { };
|
yandex-disk = callPackage ../tools/filesystems/yandex-disk { };
|
||||||
@ -28334,4 +28343,5 @@ in
|
|||||||
cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {};
|
cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {};
|
||||||
|
|
||||||
psftools = callPackage ../os-specific/linux/psftools {};
|
psftools = callPackage ../os-specific/linux/psftools {};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7687,6 +7687,8 @@ in {
|
|||||||
|
|
||||||
yahooweather = callPackage ../development/python-modules/yahooweather { };
|
yahooweather = callPackage ../development/python-modules/yahooweather { };
|
||||||
|
|
||||||
|
yamale = callPackage ../development/python-modules/yamale { };
|
||||||
|
|
||||||
yamllint = callPackage ../development/python-modules/yamllint { };
|
yamllint = callPackage ../development/python-modules/yamllint { };
|
||||||
|
|
||||||
yamlordereddictloader = callPackage ../development/python-modules/yamlordereddictloader { };
|
yamlordereddictloader = callPackage ../development/python-modules/yamlordereddictloader { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user