Merge staging-next into staging
This commit is contained in:
commit
38efe39e21
@ -141,6 +141,7 @@
|
|||||||
./programs/light.nix
|
./programs/light.nix
|
||||||
./programs/mosh.nix
|
./programs/mosh.nix
|
||||||
./programs/mininet.nix
|
./programs/mininet.nix
|
||||||
|
./programs/msmtp.nix
|
||||||
./programs/mtr.nix
|
./programs/mtr.nix
|
||||||
./programs/nano.nix
|
./programs/nano.nix
|
||||||
./programs/neovim.nix
|
./programs/neovim.nix
|
||||||
|
104
nixos/modules/programs/msmtp.nix
Normal file
104
nixos/modules/programs/msmtp.nix
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.msmtp;
|
||||||
|
|
||||||
|
in {
|
||||||
|
meta.maintainers = with maintainers; [ pacien ];
|
||||||
|
|
||||||
|
options = {
|
||||||
|
programs.msmtp = {
|
||||||
|
enable = mkEnableOption "msmtp - an SMTP client";
|
||||||
|
|
||||||
|
setSendmail = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to set the system sendmail to msmtp's.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
defaults = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
default = {};
|
||||||
|
example = {
|
||||||
|
aliases = "/etc/aliases";
|
||||||
|
port = 587;
|
||||||
|
tls = true;
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Default values applied to all accounts.
|
||||||
|
See msmtp(1) for the available options.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
accounts = mkOption {
|
||||||
|
type = with types; attrsOf attrs;
|
||||||
|
default = {};
|
||||||
|
example = {
|
||||||
|
"default" = {
|
||||||
|
host = "smtp.example";
|
||||||
|
auth = true;
|
||||||
|
user = "someone";
|
||||||
|
passwordeval = "cat /secrets/password.txt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Named accounts and their respective configurations.
|
||||||
|
The special name "default" allows a default account to be defined.
|
||||||
|
See msmtp(1) for the available options.
|
||||||
|
|
||||||
|
Use `programs.msmtp.extraConfig` instead of this attribute set-based
|
||||||
|
option if ordered account inheritance is needed.
|
||||||
|
|
||||||
|
It is advised to use the `passwordeval` setting to read the password
|
||||||
|
from a secret file to avoid having it written in the world-readable
|
||||||
|
nix store. The password file must end with a newline (`\n`).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Extra lines to add to the msmtp configuration verbatim.
|
||||||
|
See msmtp(1) for the syntax and available options.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ pkgs.msmtp ];
|
||||||
|
|
||||||
|
services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
|
||||||
|
program = "sendmail";
|
||||||
|
source = "${pkgs.msmtp}/bin/sendmail";
|
||||||
|
setuid = false;
|
||||||
|
setgid = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."msmtprc".text = let
|
||||||
|
mkValueString = v:
|
||||||
|
if v == true then "on"
|
||||||
|
else if v == false then "off"
|
||||||
|
else generators.mkValueStringDefault {} v;
|
||||||
|
mkKeyValueString = k: v: "${k} ${mkValueString v}";
|
||||||
|
mkInnerSectionString =
|
||||||
|
attrs: concatStringsSep "\n" (mapAttrsToList mkKeyValueString attrs);
|
||||||
|
mkAccountString = name: attrs: ''
|
||||||
|
account ${name}
|
||||||
|
${mkInnerSectionString attrs}
|
||||||
|
'';
|
||||||
|
in ''
|
||||||
|
defaults
|
||||||
|
${mkInnerSectionString cfg.defaults}
|
||||||
|
|
||||||
|
${concatStringsSep "\n" (mapAttrsToList mkAccountString cfg.accounts)}
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@ -162,15 +162,16 @@ in
|
|||||||
(mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
|
(mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.etc."ssmtp/ssmtp.conf".source =
|
# careful here: ssmtp REQUIRES all config lines to end with a newline char!
|
||||||
let
|
environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue {
|
||||||
toStr = value:
|
mkKeyValue = mkKeyValueDefault {
|
||||||
|
mkValueString = value:
|
||||||
if value == true then "YES"
|
if value == true then "YES"
|
||||||
else if value == false then "NO"
|
else if value == false then "NO"
|
||||||
else builtins.toString value
|
else mkValueStringDefault {} value
|
||||||
;
|
;
|
||||||
in
|
} "=";
|
||||||
pkgs.writeText "ssmtp.conf" (concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toStr value}") cfg.settings));
|
} cfg.settings;
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.ssmtp];
|
environment.systemPackages = [pkgs.ssmtp];
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ with lib;
|
|||||||
let
|
let
|
||||||
dataDir = "/var/lib/matrix-appservice-discord";
|
dataDir = "/var/lib/matrix-appservice-discord";
|
||||||
registrationFile = "${dataDir}/discord-registration.yaml";
|
registrationFile = "${dataDir}/discord-registration.yaml";
|
||||||
appDir = "${pkgs.matrix-appservice-discord}/lib/node_modules/matrix-appservice-discord";
|
appDir = "${pkgs.matrix-appservice-discord}/${pkgs.matrix-appservice-discord.passthru.nodeAppDir}";
|
||||||
cfg = config.services.matrix-appservice-discord;
|
cfg = config.services.matrix-appservice-discord;
|
||||||
# TODO: switch to configGen.json once RFC42 is implemented
|
# TODO: switch to configGen.json once RFC42 is implemented
|
||||||
settingsFile = pkgs.writeText "matrix-appservice-discord-settings.json" (builtins.toJSON cfg.settings);
|
settingsFile = pkgs.writeText "matrix-appservice-discord-settings.json" (builtins.toJSON cfg.settings);
|
||||||
@ -22,12 +22,6 @@ in {
|
|||||||
default = {
|
default = {
|
||||||
database = {
|
database = {
|
||||||
filename = "${dataDir}/discord.db";
|
filename = "${dataDir}/discord.db";
|
||||||
|
|
||||||
# TODO: remove those old config keys once the following issues are solved:
|
|
||||||
# * https://github.com/Half-Shot/matrix-appservice-discord/issues/490
|
|
||||||
# * https://github.com/Half-Shot/matrix-appservice-discord/issues/498
|
|
||||||
userStorePath = "${dataDir}/user-store.db";
|
|
||||||
roomStorePath = "${dataDir}/room-store.db";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# empty values necessary for registration file generation
|
# empty values necessary for registration file generation
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, opencascade }:
|
{ stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, opencascade
|
||||||
|
, Cocoa }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "smesh";
|
pname = "smesh";
|
||||||
@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ninja ];
|
nativeBuildInputs = [ cmake ninja ];
|
||||||
buildInputs = [ opencascade ];
|
buildInputs = [ opencascade ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Extension to OCE providing advanced meshing features";
|
description = "Extension to OCE providing advanced meshing features";
|
||||||
|
57
pkgs/development/ocaml-modules/arp/default.nix
Normal file
57
pkgs/development/ocaml-modules/arp/default.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, cstruct, ipaddr, macaddr, logs, lwt, duration
|
||||||
|
, mirage-time, mirage-protocols, mirage-profile
|
||||||
|
, alcotest, ethernet, fmt, mirage-vnetif, mirage-random
|
||||||
|
, mirage-random-test, mirage-clock-unix, mirage-time-unix
|
||||||
|
, bisect_ppx
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "arp";
|
||||||
|
version = "2.3.1";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.06";
|
||||||
|
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "1nzm3fbkvz702g8f60fs49736lpffwchy64i1l1raxm9b4lmdk3p";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
bisect_ppx
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cstruct
|
||||||
|
ipaddr
|
||||||
|
macaddr
|
||||||
|
logs
|
||||||
|
mirage-time
|
||||||
|
mirage-protocols
|
||||||
|
lwt
|
||||||
|
duration
|
||||||
|
mirage-profile
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
mirage-profile
|
||||||
|
mirage-random
|
||||||
|
mirage-random-test
|
||||||
|
mirage-vnetif
|
||||||
|
mirage-clock-unix
|
||||||
|
mirage-random
|
||||||
|
mirage-time-unix
|
||||||
|
ethernet
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Address Resolution Protocol purely in OCaml";
|
||||||
|
license = licenses.isc;
|
||||||
|
homepage = "https://github.com/mirage/arp";
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
33
pkgs/development/ocaml-modules/dns/certify.nix
Normal file
33
pkgs/development/ocaml-modules/dns/certify.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ buildDunePackage, dns, dns-tsig, dns-mirage, randomconv, x509
|
||||||
|
, mirage-random, mirage-time, mirage-clock, mirage-stack
|
||||||
|
, logs, mirage-crypto-pk, mirage-crypto-rng, tls, lwt
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-certify";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
dns
|
||||||
|
dns-tsig
|
||||||
|
dns-mirage
|
||||||
|
randomconv
|
||||||
|
x509
|
||||||
|
mirage-random
|
||||||
|
mirage-time
|
||||||
|
mirage-clock
|
||||||
|
mirage-stack
|
||||||
|
logs
|
||||||
|
mirage-crypto-pk
|
||||||
|
mirage-crypto-rng
|
||||||
|
tls
|
||||||
|
lwt
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "MirageOS let's encrypt certificate retrieval";
|
||||||
|
};
|
||||||
|
}
|
48
pkgs/development/ocaml-modules/dns/cli.nix
Normal file
48
pkgs/development/ocaml-modules/dns/cli.nix
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{ buildDunePackage, dns, dns-tsig, dns-client, dns-server, dns-certify
|
||||||
|
, rresult, bos, cmdliner, fpath, x509, mirage-crypto, mirage-crypto-pk
|
||||||
|
, mirage-crypto-rng, hex, ptime, mtime, logs, fmt, ipaddr, lwt
|
||||||
|
, randomconv, alcotest
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-cli";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.08";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2;
|
||||||
|
|
||||||
|
# no need to propagate as this is primarily
|
||||||
|
# an executable package
|
||||||
|
buildInputs = [
|
||||||
|
dns
|
||||||
|
dns-tsig
|
||||||
|
dns-client
|
||||||
|
dns-server
|
||||||
|
dns-certify
|
||||||
|
rresult
|
||||||
|
bos
|
||||||
|
cmdliner
|
||||||
|
fpath
|
||||||
|
x509
|
||||||
|
mirage-crypto
|
||||||
|
mirage-crypto-pk
|
||||||
|
mirage-crypto-rng
|
||||||
|
hex
|
||||||
|
ptime
|
||||||
|
mtime
|
||||||
|
logs
|
||||||
|
fmt
|
||||||
|
ipaddr
|
||||||
|
lwt
|
||||||
|
randomconv
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "Unix command line utilities using uDNS";
|
||||||
|
};
|
||||||
|
}
|
18
pkgs/development/ocaml-modules/dns/mirage.nix
Normal file
18
pkgs/development/ocaml-modules/dns/mirage.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ buildDunePackage, dns, mirage-stack, ipaddr, lwt }:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-mirage";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
dns
|
||||||
|
mirage-stack
|
||||||
|
ipaddr
|
||||||
|
lwt
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "An opinionated Domain Name System (DNS) library";
|
||||||
|
};
|
||||||
|
}
|
32
pkgs/development/ocaml-modules/dns/resolver.nix
Normal file
32
pkgs/development/ocaml-modules/dns/resolver.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ buildDunePackage, dns, dns-server, dns-mirage, lru, duration
|
||||||
|
, randomconv, lwt, mirage-time, mirage-clock, mirage-random
|
||||||
|
, alcotest
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-resolver";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
dns
|
||||||
|
dns-server
|
||||||
|
dns-mirage
|
||||||
|
lru
|
||||||
|
duration
|
||||||
|
randomconv
|
||||||
|
lwt
|
||||||
|
mirage-time
|
||||||
|
mirage-clock
|
||||||
|
mirage-random
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "DNS resolver business logic";
|
||||||
|
};
|
||||||
|
}
|
34
pkgs/development/ocaml-modules/dns/server.nix
Normal file
34
pkgs/development/ocaml-modules/dns/server.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{ buildDunePackage, dns, dns-mirage, randomconv, duration, lwt
|
||||||
|
, mirage-time, mirage-clock, mirage-stack, metrics
|
||||||
|
, alcotest, mirage-crypto-rng, dns-tsig, base64
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-server";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
dns
|
||||||
|
dns-mirage
|
||||||
|
randomconv
|
||||||
|
duration
|
||||||
|
lwt
|
||||||
|
mirage-time
|
||||||
|
mirage-clock
|
||||||
|
mirage-stack
|
||||||
|
metrics
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
mirage-crypto-rng
|
||||||
|
dns-tsig
|
||||||
|
base64
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "DNS server, primary and secondary";
|
||||||
|
};
|
||||||
|
}
|
33
pkgs/development/ocaml-modules/dns/stub.nix
Normal file
33
pkgs/development/ocaml-modules/dns/stub.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ buildDunePackage, dns, dns-client, dns-mirage, dns-resolver, dns-tsig
|
||||||
|
, dns-server, duration, randomconv, lwt, mirage-time, mirage-clock
|
||||||
|
, mirage-random, mirage-stack, metrics
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-stub";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
dns
|
||||||
|
dns-client
|
||||||
|
dns-mirage
|
||||||
|
dns-resolver
|
||||||
|
dns-tsig
|
||||||
|
dns-server
|
||||||
|
duration
|
||||||
|
randomconv
|
||||||
|
lwt
|
||||||
|
mirage-time
|
||||||
|
mirage-clock
|
||||||
|
mirage-random
|
||||||
|
mirage-stack
|
||||||
|
metrics
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "DNS stub resolver";
|
||||||
|
};
|
||||||
|
}
|
22
pkgs/development/ocaml-modules/dns/tsig.nix
Normal file
22
pkgs/development/ocaml-modules/dns/tsig.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ buildDunePackage, dns, mirage-crypto, base64, alcotest }:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "dns-tsig";
|
||||||
|
|
||||||
|
inherit (dns) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
mirage-crypto
|
||||||
|
dns
|
||||||
|
base64
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = dns.meta // {
|
||||||
|
description = "TSIG support for DNS";
|
||||||
|
};
|
||||||
|
}
|
42
pkgs/development/ocaml-modules/ethernet/default.nix
Normal file
42
pkgs/development/ocaml-modules/ethernet/default.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, rresult, cstruct, ppx_cstruct, mirage-net, mirage-protocols
|
||||||
|
, mirage-profile, macaddr, fmt, lwt, logs
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "ethernet";
|
||||||
|
version = "2.2.0";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.06";
|
||||||
|
|
||||||
|
# necessary due to cstruct
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "0qzisqibx2gd8rh330n642mk5wz229199rnlrs7x8cr5pnymif7z";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
ppx_cstruct
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
rresult
|
||||||
|
cstruct
|
||||||
|
mirage-net
|
||||||
|
mirage-protocols
|
||||||
|
macaddr
|
||||||
|
mirage-profile
|
||||||
|
fmt
|
||||||
|
lwt
|
||||||
|
logs
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "OCaml Ethernet (IEEE 802.3) layer, used in MirageOS";
|
||||||
|
homepage = "https://github.com/mirage/ethernet";
|
||||||
|
license = licenses.isc;
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
26
pkgs/development/ocaml-modules/lwt-dllist/default.nix
Normal file
26
pkgs/development/ocaml-modules/lwt-dllist/default.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl, lwt }:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "lwt-dllist";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.03";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "0g111f8fq9k1hwccpkhylkp83f73mlz4xnxxr3rf9xpi2f8fh7j9";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
lwt
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Mutable doubly-linked list with Lwt iterators";
|
||||||
|
homepage = "https://github.com/mirage/lwt-dllist";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
@ -4,13 +4,15 @@
|
|||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "mirage-console";
|
pname = "mirage-console";
|
||||||
version = "3.0.2";
|
version = "4.0.0";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.08";
|
||||||
|
|
||||||
useDune2 = true;
|
useDune2 = true;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/mirage/mirage-console/releases/download/v${version}/mirage-console-v${version}.tbz";
|
url = "https://github.com/mirage/mirage-console/releases/download/v${version}/mirage-console-v${version}.tbz";
|
||||||
sha256 = "1fygk7pvlmwx6vd0h4cv9935xxhi64k2dgym41wf6qfkxgpp31lm";
|
sha256 = "11nwfd4kmmdzkrkhbakdi3cxhk8vi98l17960rgcf85c602gw6vp";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ lwt mirage-device mirage-flow ];
|
propagatedBuildInputs = [ lwt mirage-device mirage-flow ];
|
||||||
|
17
pkgs/development/ocaml-modules/mirage-console/unix.nix
Normal file
17
pkgs/development/ocaml-modules/mirage-console/unix.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ buildDunePackage, mirage-console, lwt, cstruct, cstruct-lwt }:
|
||||||
|
|
||||||
|
buildDunePackage {
|
||||||
|
pname = "mirage-console-unix";
|
||||||
|
|
||||||
|
inherit (mirage-console) version src useDune2 minimumOCamlVersion;
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
mirage-console
|
||||||
|
cstruct
|
||||||
|
cstruct-lwt
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = mirage-console.meta // {
|
||||||
|
description = "Implementation of Mirage consoles for Unix";
|
||||||
|
};
|
||||||
|
}
|
50
pkgs/development/ocaml-modules/mirage-nat/default.nix
Normal file
50
pkgs/development/ocaml-modules/mirage-nat/default.nix
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, ipaddr, cstruct, lwt, rresult, logs, lru
|
||||||
|
, tcpip, ethernet, stdlib-shims
|
||||||
|
, alcotest, mirage-clock-unix
|
||||||
|
, ppx_deriving
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "mirage-nat";
|
||||||
|
version = "2.2.3";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.06";
|
||||||
|
|
||||||
|
# due to cstruct
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "0cy95j184hi8fm1h6z6x1brjfrmbq3zjy2mqz99m8ys9vwkb63ma";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
ppx_deriving
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
ipaddr
|
||||||
|
cstruct
|
||||||
|
lwt
|
||||||
|
rresult
|
||||||
|
logs
|
||||||
|
lru
|
||||||
|
tcpip
|
||||||
|
ethernet
|
||||||
|
stdlib-shims
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
mirage-clock-unix
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Mirage-nat is a library for network address translation to be used with MirageOS";
|
||||||
|
homepage = "https://github.com/mirage/${pname}";
|
||||||
|
license = licenses.isc;
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, cstruct, mirage-random
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "mirage-random-test";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.06";
|
||||||
|
|
||||||
|
# due to cstruct
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "1jmjyb9a4v7l0xxgdwpr9zshzr8xk3hybra6y2dp51anbwk8kv46";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cstruct
|
||||||
|
mirage-random
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Stub random device implementation for testing";
|
||||||
|
homepage = "https://github.com/mirage/mirage-random";
|
||||||
|
license = licenses.isc;
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
40
pkgs/development/ocaml-modules/mirage-vnetif/default.nix
Normal file
40
pkgs/development/ocaml-modules/mirage-vnetif/default.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, lwt, mirage-time, mirage-clock, mirage-net
|
||||||
|
, cstruct, ipaddr, macaddr, mirage-profile
|
||||||
|
, duration, logs
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "mirage-vnetif";
|
||||||
|
version = "0.5.0";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.06";
|
||||||
|
|
||||||
|
# due to cstruct
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "0cpqwf51v2cpz41dfqxabf3bsabwyl6a0h0v2ncrn33q58i60m5q";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
lwt
|
||||||
|
mirage-net
|
||||||
|
mirage-time
|
||||||
|
mirage-clock
|
||||||
|
cstruct
|
||||||
|
ipaddr
|
||||||
|
macaddr
|
||||||
|
mirage-profile
|
||||||
|
duration
|
||||||
|
logs
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Virtual network interface and software switch for Mirage";
|
||||||
|
homepage = "https://github.com/mirage/${pname}";
|
||||||
|
license = licenses.isc;
|
||||||
|
mantainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,25 +1,34 @@
|
|||||||
{ lib, buildDunePackage, ocaml
|
{ lib, buildDunePackage, alcotest
|
||||||
, functoria, mirage-runtime
|
, functoria, mirage-runtime, bos
|
||||||
|
, ipaddr, astring, logs, stdlib-shims
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "mirage";
|
pname = "mirage";
|
||||||
inherit (mirage-runtime) version src;
|
inherit (mirage-runtime) version src;
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.08";
|
||||||
|
|
||||||
useDune2 = true;
|
useDune2 = true;
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ functoria mirage-runtime ];
|
propagatedBuildInputs = [
|
||||||
|
ipaddr
|
||||||
|
functoria
|
||||||
|
mirage-runtime
|
||||||
|
bos
|
||||||
|
astring
|
||||||
|
logs
|
||||||
|
stdlib-shims
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
doCheck = true;
|
||||||
runHook preInstall
|
checkInputs = [
|
||||||
dune install --prefix=$out --libdir=$dev/lib/ocaml/${ocaml.version}/site-lib/ ${pname}
|
alcotest
|
||||||
runHook postInstall
|
];
|
||||||
'';
|
|
||||||
|
|
||||||
meta = mirage-runtime.meta // {
|
meta = mirage-runtime.meta // {
|
||||||
description = "The MirageOS library operating system";
|
description = "The MirageOS library operating system";
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
41
pkgs/development/ocaml-modules/pcap-format/default.nix
Normal file
41
pkgs/development/ocaml-modules/pcap-format/default.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, ppx_cstruct, ppx_tools
|
||||||
|
, cstruct, ounit, mmap
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "pcap-format";
|
||||||
|
version = "0.5.2";
|
||||||
|
|
||||||
|
minimumOCamlVersion = "4.03";
|
||||||
|
|
||||||
|
# due to cstruct
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/ocaml-pcap/releases/download/${version}/${pname}-${version}.tbz";
|
||||||
|
sha256 = "14c5rpgglyz41jic0fg0xa22d2w1syb86kva22y9fi7aqj9vm31f";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
ppx_tools
|
||||||
|
ppx_cstruct
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cstruct
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
ounit
|
||||||
|
mmap
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Decode and encode PCAP (packet capture) files";
|
||||||
|
homepage = "https://mirage.github.io/ocaml-pcap";
|
||||||
|
license = licenses.isc;
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
};
|
||||||
|
}
|
70
pkgs/development/ocaml-modules/tcpip/default.nix
Normal file
70
pkgs/development/ocaml-modules/tcpip/default.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{ lib, buildDunePackage, fetchurl
|
||||||
|
, bisect_ppx, ppx_cstruct
|
||||||
|
, rresult, cstruct, cstruct-lwt, mirage-net, mirage-clock
|
||||||
|
, mirage-random, mirage-stack, mirage-protocols, mirage-time
|
||||||
|
, ipaddr, macaddr, macaddr-cstruct, mirage-profile, fmt
|
||||||
|
, lwt, lwt-dllist, logs, duration, randomconv, ethernet
|
||||||
|
, alcotest, mirage-flow, mirage-vnetif, pcap-format
|
||||||
|
, mirage-clock-unix, arp, ipaddr-cstruct, mirage-random-test
|
||||||
|
, lru
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildDunePackage rec {
|
||||||
|
pname = "tcpip";
|
||||||
|
version = "6.0.0";
|
||||||
|
|
||||||
|
useDune2 = true;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
|
||||||
|
sha256 = "0wbrs8jz1vw3zdrqmqcwawxh4yhc2gy30rw7gz4w116cblkvnb8s";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
bisect_ppx
|
||||||
|
ppx_cstruct
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
rresult
|
||||||
|
cstruct
|
||||||
|
cstruct-lwt
|
||||||
|
mirage-net
|
||||||
|
mirage-clock
|
||||||
|
mirage-random
|
||||||
|
mirage-random-test
|
||||||
|
mirage-stack
|
||||||
|
mirage-protocols
|
||||||
|
mirage-time
|
||||||
|
ipaddr
|
||||||
|
macaddr
|
||||||
|
macaddr-cstruct
|
||||||
|
mirage-profile
|
||||||
|
fmt
|
||||||
|
lwt
|
||||||
|
lwt-dllist
|
||||||
|
logs
|
||||||
|
duration
|
||||||
|
randomconv
|
||||||
|
ethernet
|
||||||
|
lru
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkInputs = [
|
||||||
|
alcotest
|
||||||
|
mirage-flow
|
||||||
|
mirage-vnetif
|
||||||
|
pcap-format
|
||||||
|
mirage-clock-unix
|
||||||
|
arp
|
||||||
|
ipaddr-cstruct
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "OCaml TCP/IP networking stack, used in MirageOS";
|
||||||
|
homepage = "https://github.com/mirage/mirage-tcpip";
|
||||||
|
maintainers = [ maintainers.sternenseemann ];
|
||||||
|
license = licenses.isc;
|
||||||
|
};
|
||||||
|
}
|
@ -10,7 +10,6 @@
|
|||||||
, python
|
, python
|
||||||
, cmake
|
, cmake
|
||||||
, swig
|
, swig
|
||||||
, ninja
|
|
||||||
, smesh
|
, smesh
|
||||||
, freetype
|
, freetype
|
||||||
, libGL
|
, libGL
|
||||||
@ -20,6 +19,7 @@
|
|||||||
, pytest
|
, pytest
|
||||||
, makeFontsConf
|
, makeFontsConf
|
||||||
, freefont_ttf
|
, freefont_ttf
|
||||||
|
, Cocoa
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -38,7 +38,6 @@ let
|
|||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
swig
|
swig
|
||||||
ninja
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -49,7 +48,7 @@ let
|
|||||||
libGL
|
libGL
|
||||||
libGLU
|
libGLU
|
||||||
libX11
|
libX11
|
||||||
];
|
] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
six
|
six
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, python, fetchFromGitHub, cmake, swig, ninja,
|
{ stdenv, python, fetchFromGitHub, cmake, swig, ninja
|
||||||
opencascade, smesh, freetype, libGL, libGLU, libX11 }:
|
, opencascade, smesh, freetype, libGL, libGLU, libX11
|
||||||
|
, Cocoa }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pythonocc-core";
|
pname = "pythonocc-core";
|
||||||
@ -12,11 +13,17 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1jk4y7f75z9lyawffpfkr50qw5452xzi1imcdlw9pdvf4i0y86k3";
|
sha256 = "1jk4y7f75z9lyawffpfkr50qw5452xzi1imcdlw9pdvf4i0y86k3";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake swig ninja ];
|
postPatch = ''
|
||||||
|
substituteInPlace CMakeLists.txt \
|
||||||
|
--replace "/usr/X11R6/lib/libGL.dylib" "${libGL}/lib/libGL.dylib" \
|
||||||
|
--replace "/usr/X11R6/lib/libGLU.dylib" "${libGLU}/lib/libGLU.dylib"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake swig ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
python opencascade smesh
|
python opencascade smesh
|
||||||
freetype libGL libGLU libX11
|
freetype libGL libGLU libX11
|
||||||
];
|
] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-Wno-dev"
|
"-Wno-dev"
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{
|
{ lib
|
||||||
lib
|
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, cloudpickle
|
, cloudpickle
|
||||||
@ -12,7 +11,7 @@
|
|||||||
, scipy
|
, scipy
|
||||||
, matplotlib
|
, matplotlib
|
||||||
, xarray
|
, xarray
|
||||||
, pytest
|
, pytestCheckHook
|
||||||
, flaky
|
, flaky
|
||||||
, isPy3k
|
, isPy3k
|
||||||
}:
|
}:
|
||||||
@ -24,7 +23,7 @@ buildPythonPackage rec {
|
|||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "spyder-ide";
|
owner = "spyder-ide";
|
||||||
repo = "spyder-kernels";
|
repo = "spyder-kernels";
|
||||||
rev = "v0.5.2";
|
rev = "v${version}";
|
||||||
sha256 = "1yan589g0470y61bcyjy3wj13i94ndyffckqdyrg97vw2qhfrisb";
|
sha256 = "1yan589g0470y61bcyjy3wj13i94ndyffckqdyrg97vw2qhfrisb";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -45,23 +44,23 @@ buildPythonPackage rec {
|
|||||||
scipy
|
scipy
|
||||||
matplotlib
|
matplotlib
|
||||||
xarray
|
xarray
|
||||||
pytest
|
pytestCheckHook
|
||||||
flaky
|
flaky
|
||||||
];
|
];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
export JUPYTER_RUNTIME_DIR=$(mktemp -d)
|
||||||
|
'';
|
||||||
|
|
||||||
# skipped tests:
|
# skipped tests:
|
||||||
# turtle requires graphics
|
# turtle requires graphics
|
||||||
# cython test fails, I don't think this can ever access cython?
|
# cython test fails, I don't think this can ever access cython?
|
||||||
# umr pathlist test assumes standard directories, not compatible with nix
|
# umr pathlist test assumes standard directories, not compatible with nix
|
||||||
checkPhase = ''
|
disabledTests = [
|
||||||
export JUPYTER_RUNTIME_DIR=$(mktemp -d)
|
"test_turtle_launc"
|
||||||
pytest -x -vv -k '\
|
"test_umr_skip_cython"
|
||||||
not test_turtle_launch \
|
"test_umr_pathlist"
|
||||||
and not test_umr_skip_cython \
|
];
|
||||||
and not test_umr_pathlist' \
|
|
||||||
-W 'ignore::DeprecationWarning' \
|
|
||||||
spyder_kernels
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Jupyter kernels for Spyder's console";
|
description = "Jupyter kernels for Spyder's console";
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "flow";
|
pname = "flow";
|
||||||
version = "0.139.0";
|
version = "0.141.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "facebook";
|
owner = "facebook";
|
||||||
repo = "flow";
|
repo = "flow";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "0ix98dq7g13jdfxgq0d8v2cvfnl2l2gz04j8h05sqzahbpxqv97w";
|
sha256 = "1hbq55gi834zapmly0gmg3kpqa1zwxcw4gll4g6vgzr0pfa0bwb2";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -1,23 +1,25 @@
|
|||||||
{ stdenv, fetchurl, jre }:
|
{ stdenv, fetchurl, jre, makeWrapper }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "clojure-lsp";
|
pname = "clojure-lsp";
|
||||||
version = "20201207T142850";
|
version = "20201228T020543";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
|
url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/release-${version}/${pname}.jar";
|
||||||
sha256 = "0fxplldpxslm7f5xxazkl09gsj0ysppaal72hmlqbdj6rbgxlrnk";
|
sha256 = "0jkpw7dx7976p63c08bp43fiwk6f2h2nxj9vv1zr103hgywpplri";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
|
|
||||||
installPhase = ''
|
buildInputs = [ makeWrapper ];
|
||||||
install -Dm755 $src $out/bin/clojure-lsp
|
|
||||||
sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/clojure-lsp
|
|
||||||
'';
|
|
||||||
|
|
||||||
# verify shebang patch
|
installPhase = ''
|
||||||
installCheckPhase = "PATH= clojure-lsp --version";
|
install -Dm644 $src $out/share/java/${pname}.jar
|
||||||
|
makeWrapper ${jre}/bin/java $out/bin/${pname} \
|
||||||
|
--add-flags "-jar $out/share/java/${pname}.jar" \
|
||||||
|
--add-flags "-Xmx2g" \
|
||||||
|
--add-flags "-server"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Language Server Protocol (LSP) for Clojure";
|
description = "Language Server Protocol (LSP) for Clojure";
|
||||||
@ -26,5 +28,4 @@ stdenv.mkDerivation rec {
|
|||||||
maintainers = [ maintainers.ericdallo ];
|
maintainers = [ maintainers.ericdallo ];
|
||||||
platforms = jre.meta.platforms;
|
platforms = jre.meta.platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
# coreutils is for sha1sum
|
# coreutils is for sha1sum
|
||||||
pathAdd = stdenv.lib.concatMapStringsSep ":" (x: x + "/bin")
|
pathAdd = stdenv.lib.concatMapStringsSep ":" (x: x + "/bin")
|
||||||
[ wine perl which coreutils zenity curl cabextract unzip p7zip gnused gnugrep bash ];
|
(stdenv.lib.filter (x: x != null)
|
||||||
|
[ wine perl which coreutils zenity curl cabextract unzip p7zip gnused gnugrep bash ]);
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=$(out)" ];
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
@ -1,29 +1,80 @@
|
|||||||
{ pkgs, nodejs, stdenv }:
|
{ lib, mkYarnPackage, fetchFromGitHub, runCommand, makeWrapper, python, nodejs }:
|
||||||
|
|
||||||
|
assert lib.versionAtLeast nodejs.version "12.0.0";
|
||||||
|
|
||||||
let
|
let
|
||||||
nodePackages = import ./node-composition.nix {
|
nodeSources = runCommand "node-sources" {} ''
|
||||||
inherit pkgs nodejs;
|
tar --no-same-owner --no-same-permissions -xf "${nodejs.src}"
|
||||||
inherit (stdenv.hostPlatform) system;
|
mv node-* $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
in mkYarnPackage rec {
|
||||||
|
pname = "matrix-appservice-discord";
|
||||||
|
|
||||||
|
# when updating, run `./generate.sh <git release tag>`
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Half-Shot";
|
||||||
|
repo = "matrix-appservice-discord";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0pca4jxxl4b8irvb1bacsrzjg8m7frq9dnx1knnd2n6ia3f3x545";
|
||||||
};
|
};
|
||||||
|
|
||||||
in nodePackages."matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2".override {
|
packageJSON = ./package.json;
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
yarnNix = ./yarn-dependencies.nix;
|
||||||
|
|
||||||
|
pkgConfig = {
|
||||||
|
better-sqlite3 = {
|
||||||
|
buildInputs = [ python ];
|
||||||
|
postInstall = ''
|
||||||
|
# build native sqlite bindings
|
||||||
|
npm run build-release --offline --nodedir="${nodeSources}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
# compile TypeScript sources
|
||||||
|
yarn --offline build
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
checkPhase = ''
|
||||||
|
yarn --offline test
|
||||||
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# compile Typescript sources
|
OUT_JS_DIR="$out/${passthru.nodeAppDir}/build"
|
||||||
npm run build
|
|
||||||
|
|
||||||
# server wrapper
|
# server wrapper
|
||||||
makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord" \
|
makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}" \
|
||||||
--add-flags "$out/lib/node_modules/matrix-appservice-discord/build/src/discordas.js"
|
--add-flags "$OUT_JS_DIR/src/discordas.js"
|
||||||
|
|
||||||
# admin tools wrappers
|
# admin tools wrappers
|
||||||
for toolPath in $out/lib/node_modules/matrix-appservice-discord/build/tools/*; do
|
for toolPath in $OUT_JS_DIR/tools/*; do
|
||||||
makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord-$(basename $toolPath .js)" \
|
makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}-$(basename $toolPath .js)" \
|
||||||
--add-flags "$toolPath"
|
--add-flags "$toolPath"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# other metadata generated and inherited from ./node-package.nix
|
# don't generate the dist tarball
|
||||||
meta.maintainers = with stdenv.lib.maintainers; [ pacien ];
|
# (`doDist = false` does not work in mkYarnPackage)
|
||||||
|
distPhase = ''
|
||||||
|
true
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
nodeAppDir = "libexec/${pname}/deps/${pname}";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A bridge between Matrix and Discord";
|
||||||
|
homepage = "https://github.com/Half-Shot/matrix-appservice-discord";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = with lib.maintainers; [ pacien ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
##!/usr/bin/env nix-shell
|
#!/usr/bin/env nix-shell
|
||||||
##! nix-shell -i bash -p nodePackages.node2nix
|
#!nix-shell -I nixpkgs=../../../ -i bash -p wget yarn2nix
|
||||||
|
|
||||||
node2nix \
|
set -euo pipefail
|
||||||
--nodejs-12 \
|
|
||||||
--node-env ../../development/node-packages/node-env.nix \
|
if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
|
||||||
--development \
|
echo "Regenerates the Yarn dependency lock files for the matrix-appservice-discord package."
|
||||||
--input package.json \
|
echo "Usage: $0 <git release tag>"
|
||||||
--output node-packages.nix \
|
exit 1
|
||||||
--composition node-composition.nix
|
fi
|
||||||
|
|
||||||
|
SRC_REPO="https://raw.githubusercontent.com/Half-Shot/matrix-appservice-discord/$1"
|
||||||
|
|
||||||
|
wget "$SRC_REPO/package.json" -O package.json
|
||||||
|
wget "$SRC_REPO/yarn.lock" -O yarn.lock
|
||||||
|
yarn2nix --lockfile=yarn.lock > yarn-dependencies.nix
|
||||||
|
rm yarn.lock
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
# This file has been generated by node2nix 1.8.0. Do not edit!
|
|
||||||
|
|
||||||
{pkgs ? import <nixpkgs> {
|
|
||||||
inherit system;
|
|
||||||
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
|
|
||||||
|
|
||||||
let
|
|
||||||
nodeEnv = import ../../development/node-packages/node-env.nix {
|
|
||||||
inherit (pkgs) stdenv python2 util-linux runCommand writeTextFile;
|
|
||||||
inherit nodejs;
|
|
||||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
import ./node-packages.nix {
|
|
||||||
inherit (pkgs) fetchurl fetchgit;
|
|
||||||
inherit nodeEnv;
|
|
||||||
}
|
|
5251
pkgs/servers/matrix-appservice-discord/node-packages.nix
generated
5251
pkgs/servers/matrix-appservice-discord/node-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,77 @@
|
|||||||
[
|
{
|
||||||
{ "matrix-appservice-discord": "git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2" }
|
"name": "matrix-appservice-discord",
|
||||||
]
|
"version": "1.0.0",
|
||||||
|
"description": "A bridge between Matrix and Discord",
|
||||||
|
"main": "discordas.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
|
||||||
|
"lint": "tslint --project ./tsconfig.json -t stylish",
|
||||||
|
"coverage": "nyc mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
|
||||||
|
"build": "tsc",
|
||||||
|
"postinstall": "npm run build",
|
||||||
|
"start": "npm run-script build && node ./build/src/discordas.js -c config.yaml",
|
||||||
|
"debug": "npm run-script build && node --inspect ./build/src/discordas.js -c config.yaml",
|
||||||
|
"addbot": "node ./build/tools/addbot.js",
|
||||||
|
"adminme": "node ./build/tools/adminme.js",
|
||||||
|
"usertool": "node ./build/tools/userClientTools.js",
|
||||||
|
"directoryfix": "node ./build/tools/addRoomsToDirectory.js",
|
||||||
|
"ghostfix": "node ./build/tools/ghostfix.js",
|
||||||
|
"chanfix": "node ./build/tools/chanfix.js"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/Half-Shot/matrix-appservice-discord.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"matrix",
|
||||||
|
"discord",
|
||||||
|
"bridge",
|
||||||
|
"application-service",
|
||||||
|
"as"
|
||||||
|
],
|
||||||
|
"author": "Half-Shot",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/Half-Shot/matrix-appservice-discord/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/Half-Shot/matrix-appservice-discord#readme",
|
||||||
|
"dependencies": {
|
||||||
|
"better-discord.js": "git://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117",
|
||||||
|
"better-sqlite3": "^7.1.0",
|
||||||
|
"command-line-args": "^5.1.1",
|
||||||
|
"command-line-usage": "^6.1.0",
|
||||||
|
"escape-html": "^1.0.3",
|
||||||
|
"escape-string-regexp": "^4.0.0",
|
||||||
|
"js-yaml": "^3.14.0",
|
||||||
|
"marked": "^1.2.2",
|
||||||
|
"matrix-bot-sdk": "0.5.4",
|
||||||
|
"matrix-discord-parser": "0.1.5",
|
||||||
|
"mime": "^2.4.6",
|
||||||
|
"node-html-parser": "^1.2.19",
|
||||||
|
"p-queue": "^6.4.0",
|
||||||
|
"pg-promise": "^10.5.6",
|
||||||
|
"prom-client": "^12.0.0",
|
||||||
|
"winston": "^3.2.1",
|
||||||
|
"winston-daily-rotate-file": "^4.5.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@istanbuljs/nyc-config-typescript": "^1.0.1",
|
||||||
|
"@types/chai": "^4.2.11",
|
||||||
|
"@types/command-line-args": "^5.0.0",
|
||||||
|
"@types/js-yaml": "^3.12.4",
|
||||||
|
"@types/marked": "^1.1.0",
|
||||||
|
"@types/mime": "^2.0.2",
|
||||||
|
"@types/mocha": "^7.0.2",
|
||||||
|
"@types/node": "^12",
|
||||||
|
"@types/better-sqlite3": "^5.4.1",
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"mocha": "^8.0.1",
|
||||||
|
"nyc": "^15.1.0",
|
||||||
|
"proxyquire": "^1.7.11",
|
||||||
|
"source-map-support": "^0.5.19",
|
||||||
|
"ts-node": "^8.10.2",
|
||||||
|
"tslint": "^5.20.1",
|
||||||
|
"typescript": "^3.9.5",
|
||||||
|
"why-is-node-running": "^2.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
4317
pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
Normal file
4317
pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,14 +11,14 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "broot";
|
pname = "broot";
|
||||||
version = "1.0.8";
|
version = "1.1.10";
|
||||||
|
|
||||||
src = fetchCrate {
|
src = fetchCrate {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "06881c8qnh917y2mn5q5qlf86idz17xi2dapsad3m1zbdr53c25j";
|
sha256 = "04nidx43w4nnccgbrw30wg9ai8p7hbklxpn1gc6gr2325yhqvwhl";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "1k5qm4h028172r7i2pz5l8886qviy7ni83qxn10a8d5hsgalarvx";
|
cargoSha256 = "1bzq0dsdnmxniwnb6989wlhih28c4lyd11sci821whs11lhlfpz0";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
makeWrapper
|
makeWrapper
|
||||||
|
@ -1,22 +1,23 @@
|
|||||||
{ stdenv, fetchurl, python }:
|
{ stdenv, fetchFromGitHub, python3 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2012-05-31";
|
version = "2020-12-17";
|
||||||
pname = "woof";
|
pname = "woof";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "http://www.home.unix-ag.org/simon/woof-${version}.py";
|
owner = "simon-budig";
|
||||||
sha256 = "d84353d07f768321a1921a67193510bf292cf0213295e8c7689176f32e945572";
|
repo = "woof";
|
||||||
|
rev = "4aab9bca5b80379522ab0bdc5a07e4d652c375c5";
|
||||||
|
sha256 = "0ypd2fs8isv6bqmlrdl2djgs5lnk91y1c3rn4ar6sfkpsqp9krjn";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python ];
|
propagatedBuildInputs = [ python3 ];
|
||||||
|
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
|
|
||||||
installPhase =
|
installPhase = ''
|
||||||
''
|
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp $src $out/bin/woof
|
cp $src/woof $out/bin/woof
|
||||||
chmod +x $out/bin/woof
|
chmod +x $out/bin/woof
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,31 +1,29 @@
|
|||||||
{ stdenv
|
{ lib
|
||||||
, lib
|
|
||||||
, buildPythonApplication
|
, buildPythonApplication
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, setuptools_scm
|
, setuptools_scm
|
||||||
, vdf
|
, vdf
|
||||||
, wine
|
, steam-run
|
||||||
, winetricks
|
, winetricks
|
||||||
, zenity
|
, zenity
|
||||||
, pytest
|
, pytestCheckHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "protontricks";
|
pname = "protontricks";
|
||||||
version = "1.4.2";
|
version = "1.4.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Matoking";
|
owner = "Matoking";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0ri4phi1rna9snrxa6gl23walyack09mgax7zpjqfpxivwls3ach";
|
sha256 = "0a5727igwafwvj8rr5lv0lx8rlfji3qkzmrbp0d15w5dc4fhknp0";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fix interpreter in mock run.sh for tests
|
patches = [
|
||||||
postPatch = ''
|
# Use steam-run to run Proton binaries
|
||||||
substituteInPlace tests/conftest.py \
|
./steam-run.patch
|
||||||
--replace '#!/bin/bash' '#!${stdenv.shell}' \
|
];
|
||||||
'';
|
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
|
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
|
||||||
@ -34,22 +32,30 @@ buildPythonApplication rec {
|
|||||||
nativeBuildInputs = [ setuptools_scm ];
|
nativeBuildInputs = [ setuptools_scm ];
|
||||||
propagatedBuildInputs = [ vdf ];
|
propagatedBuildInputs = [ vdf ];
|
||||||
|
|
||||||
# The wine install shipped with Proton must run under steam's
|
|
||||||
# chrootenv, but winetricks and zenity break when running under
|
|
||||||
# it. See https://github.com/NixOS/nix/issues/902.
|
|
||||||
#
|
|
||||||
# The current workaround is to use wine from nixpkgs
|
|
||||||
makeWrapperArgs = [
|
makeWrapperArgs = [
|
||||||
"--set STEAM_RUNTIME 0"
|
"--prefix PATH : ${lib.makeBinPath [
|
||||||
"--set-default WINE ${wine}/bin/wine"
|
steam-run
|
||||||
"--set-default WINESERVER ${wine}/bin/wineserver"
|
(winetricks.override {
|
||||||
"--prefix PATH : ${lib.makeBinPath [ winetricks zenity ]}"
|
# Remove default build of wine to reduce closure size.
|
||||||
|
# Falls back to wine in PATH when --no-runtime is passed.
|
||||||
|
wine = null;
|
||||||
|
})
|
||||||
|
zenity
|
||||||
|
]}"
|
||||||
];
|
];
|
||||||
|
|
||||||
checkInputs = [ pytest ];
|
checkInputs = [ pytestCheckHook ];
|
||||||
checkPhase = "pytest";
|
disabledTests = [
|
||||||
|
# Steam runtime is hard-coded with steam-run.patch and can't be configured
|
||||||
|
"test_run_steam_runtime_not_found"
|
||||||
|
"test_unknown_steam_runtime_detected"
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
# Steam runtime 2 currently isn't supported
|
||||||
|
# See https://github.com/NixOS/nixpkgs/issues/100655
|
||||||
|
"test_run_winetricks_steam_runtime_v2"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
|
description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
|
||||||
homepage = "https://github.com/Matoking/protontricks";
|
homepage = "https://github.com/Matoking/protontricks";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
|
254
pkgs/tools/package-management/protontricks/steam-run.patch
Normal file
254
pkgs/tools/package-management/protontricks/steam-run.patch
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
|
||||||
|
index 6506dae..2f762c9 100755
|
||||||
|
--- a/src/protontricks/cli.py
|
||||||
|
+++ b/src/protontricks/cli.py
|
||||||
|
@@ -14,7 +14,7 @@ import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from . import __version__
|
||||||
|
-from .steam import (find_proton_app, find_steam_path, find_steam_runtime_path,
|
||||||
|
+from .steam import (find_proton_app, find_steam_path,
|
||||||
|
get_steam_apps, get_steam_lib_paths)
|
||||||
|
from .winetricks import get_winetricks_path
|
||||||
|
from .gui import select_steam_app_with_gui
|
||||||
|
@@ -75,8 +75,7 @@ def main(args=None):
|
||||||
|
"WINE: path to a custom 'wine' executable\n"
|
||||||
|
"WINESERVER: path to a custom 'wineserver' executable\n"
|
||||||
|
"STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam "
|
||||||
|
- "Runtime, valid path = custom Steam Runtime path, "
|
||||||
|
- "empty = enable automatically (default)"
|
||||||
|
+ "Runtime, empty = enable automatically (default)"
|
||||||
|
),
|
||||||
|
formatter_class=argparse.RawTextHelpFormatter
|
||||||
|
)
|
||||||
|
@@ -133,14 +132,10 @@ def main(args=None):
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
|
# 2. Find Steam Runtime if enabled
|
||||||
|
- steam_runtime_path = None
|
||||||
|
+ steam_runtime = False
|
||||||
|
|
||||||
|
if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime:
|
||||||
|
- steam_runtime_path = find_steam_runtime_path(steam_root=steam_root)
|
||||||
|
-
|
||||||
|
- if not steam_runtime_path:
|
||||||
|
- print("Steam Runtime was enabled but couldn't be found!")
|
||||||
|
- sys.exit(-1)
|
||||||
|
+ steam_runtime = True
|
||||||
|
else:
|
||||||
|
logger.info("Steam Runtime disabled.")
|
||||||
|
|
||||||
|
@@ -194,7 +189,7 @@ def main(args=None):
|
||||||
|
winetricks_path=winetricks_path,
|
||||||
|
proton_app=proton_app,
|
||||||
|
steam_app=steam_app,
|
||||||
|
- steam_runtime_path=steam_runtime_path,
|
||||||
|
+ steam_runtime=steam_runtime,
|
||||||
|
command=[winetricks_path, "--gui"]
|
||||||
|
)
|
||||||
|
return
|
||||||
|
@@ -261,7 +256,7 @@ def main(args=None):
|
||||||
|
winetricks_path=winetricks_path,
|
||||||
|
proton_app=proton_app,
|
||||||
|
steam_app=steam_app,
|
||||||
|
- steam_runtime_path=steam_runtime_path,
|
||||||
|
+ steam_runtime=steam_runtime,
|
||||||
|
command=[winetricks_path] + args.winetricks_command)
|
||||||
|
elif args.command:
|
||||||
|
run_command(
|
||||||
|
@@ -269,7 +264,7 @@ def main(args=None):
|
||||||
|
proton_app=proton_app,
|
||||||
|
steam_app=steam_app,
|
||||||
|
command=args.command,
|
||||||
|
- steam_runtime_path=steam_runtime_path,
|
||||||
|
+ steam_runtime=steam_runtime,
|
||||||
|
# Pass the command directly into the shell *without*
|
||||||
|
# escaping it
|
||||||
|
cwd=steam_app.install_path,
|
||||||
|
diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
|
||||||
|
index 215b31d..aa545b8 100644
|
||||||
|
--- a/src/protontricks/steam.py
|
||||||
|
+++ b/src/protontricks/steam.py
|
||||||
|
@@ -11,7 +11,7 @@ from .util import lower_dict
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
"COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
|
||||||
|
- "find_steam_proton_app", "find_proton_app", "find_steam_runtime_path",
|
||||||
|
+ "find_steam_proton_app", "find_proton_app",
|
||||||
|
"find_appid_proton_prefix", "get_steam_lib_paths", "get_steam_apps",
|
||||||
|
"get_custom_proton_installations"
|
||||||
|
)
|
||||||
|
@@ -245,37 +245,6 @@ def find_steam_path():
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
|
-def find_steam_runtime_path(steam_root):
|
||||||
|
- """
|
||||||
|
- Find the Steam Runtime either using the STEAM_RUNTIME env or
|
||||||
|
- steam_root
|
||||||
|
- """
|
||||||
|
- env_steam_runtime = os.environ.get("STEAM_RUNTIME", "")
|
||||||
|
-
|
||||||
|
- if env_steam_runtime == "0":
|
||||||
|
- # User has disabled Steam Runtime
|
||||||
|
- logger.info("STEAM_RUNTIME is 0. Disabling Steam Runtime.")
|
||||||
|
- return None
|
||||||
|
- elif env_steam_runtime and Path(env_steam_runtime).is_dir():
|
||||||
|
- # User has a custom Steam Runtime
|
||||||
|
- logger.info(
|
||||||
|
- "Using custom Steam Runtime at %s", env_steam_runtime)
|
||||||
|
- return Path(env_steam_runtime)
|
||||||
|
- elif env_steam_runtime in ["1", ""]:
|
||||||
|
- # User has enabled Steam Runtime or doesn't have STEAM_RUNTIME set;
|
||||||
|
- # default to enabled Steam Runtime in either case
|
||||||
|
- steam_runtime_path = steam_root / "ubuntu12_32" / "steam-runtime"
|
||||||
|
-
|
||||||
|
- logger.info(
|
||||||
|
- "Using default Steam Runtime at %s", str(steam_runtime_path))
|
||||||
|
- return steam_runtime_path
|
||||||
|
-
|
||||||
|
- logger.error(
|
||||||
|
- "Path in STEAM_RUNTIME doesn't point to a valid Steam Runtime!")
|
||||||
|
-
|
||||||
|
- return None
|
||||||
|
-
|
||||||
|
-
|
||||||
|
APPINFO_STRUCT_HEADER = "<4sL"
|
||||||
|
APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
|
||||||
|
|
||||||
|
diff --git a/src/protontricks/util.py b/src/protontricks/util.py
|
||||||
|
index a850427..390fc01 100644
|
||||||
|
--- a/src/protontricks/util.py
|
||||||
|
+++ b/src/protontricks/util.py
|
||||||
|
@@ -6,7 +6,7 @@ import stat
|
||||||
|
from pathlib import Path
|
||||||
|
from subprocess import check_output, run, PIPE
|
||||||
|
|
||||||
|
-__all__ = ("get_runtime_library_paths", "create_wine_bin_dir", "run_command")
|
||||||
|
+__all__ = ("create_wine_bin_dir", "run_command")
|
||||||
|
|
||||||
|
logger = logging.getLogger("protontricks")
|
||||||
|
|
||||||
|
@@ -25,70 +25,10 @@ def lower_dict(d):
|
||||||
|
return {k.lower(): v for k, v in d.items()}
|
||||||
|
|
||||||
|
|
||||||
|
-def get_host_library_paths():
|
||||||
|
- """
|
||||||
|
- Get host library paths to use when creating the LD_LIBRARY_PATH environment
|
||||||
|
- variable for use with newer Steam Runtime installations
|
||||||
|
- """
|
||||||
|
- # The traditional Steam Runtime does the following when running the
|
||||||
|
- # `run.sh --print-steam-runtime-library-paths` command.
|
||||||
|
- # Since that command is unavailable with newer Steam Runtime releases,
|
||||||
|
- # do it ourselves here.
|
||||||
|
- result = run(
|
||||||
|
- ["/sbin/ldconfig", "-XNv"],
|
||||||
|
- check=True, stdout=PIPE, stderr=PIPE
|
||||||
|
- )
|
||||||
|
- lines = result.stdout.decode("utf-8").split("\n")
|
||||||
|
- paths = [
|
||||||
|
- line.split(":")[0] for line in lines
|
||||||
|
- if line.startswith("/") and ":" in line
|
||||||
|
- ]
|
||||||
|
-
|
||||||
|
- return ":".join(paths)
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-def get_runtime_library_paths(steam_runtime_path, proton_app):
|
||||||
|
- """
|
||||||
|
- Get LD_LIBRARY_PATH value to run a command using Steam Runtime
|
||||||
|
- """
|
||||||
|
- if proton_app.required_tool_app:
|
||||||
|
- # bwrap based Steam Runtime is used for Proton installations that
|
||||||
|
- # use separate Steam runtimes
|
||||||
|
- # TODO: Try to run the Wine binaries inside an user namespace somehow.
|
||||||
|
- # Newer Steam Runtime environments may rely on a newer glibc than what
|
||||||
|
- # is available on the host system, which may cause potential problems
|
||||||
|
- # otherwise.
|
||||||
|
- runtime_root = next(
|
||||||
|
- proton_app.required_tool_app.install_path.glob("*/files/")
|
||||||
|
- )
|
||||||
|
- return "".join([
|
||||||
|
- str(proton_app.install_path / "dist" / "lib"), os.pathsep,
|
||||||
|
- str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
|
||||||
|
- get_host_library_paths(), os.pathsep,
|
||||||
|
- str(runtime_root / "i686-pc-linux-gnu" / "lib"), os.pathsep,
|
||||||
|
- str(runtime_root / "x86_64-pc-linux-gnu" / "lib")
|
||||||
|
- ])
|
||||||
|
-
|
||||||
|
- # Traditional LD_LIBRARY_PATH based Steam Runtime is used otherwise
|
||||||
|
- steam_runtime_paths = check_output([
|
||||||
|
- str(steam_runtime_path / "run.sh"),
|
||||||
|
- "--print-steam-runtime-library-paths"
|
||||||
|
- ])
|
||||||
|
- steam_runtime_paths = str(steam_runtime_paths, "utf-8")
|
||||||
|
- # Add Proton installation directory first into LD_LIBRARY_PATH
|
||||||
|
- # so that libwine.so.1 is picked up correctly (see issue #3)
|
||||||
|
- return "".join([
|
||||||
|
- str(proton_app.install_path / "dist" / "lib"), os.pathsep,
|
||||||
|
- str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
|
||||||
|
- steam_runtime_paths
|
||||||
|
- ])
|
||||||
|
-
|
||||||
|
-
|
||||||
|
WINE_SCRIPT_TEMPLATE = (
|
||||||
|
- "#!/bin/bash\n"
|
||||||
|
+ "#!/bin/sh\n"
|
||||||
|
"# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n"
|
||||||
|
- "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n"
|
||||||
|
- "exec \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
|
||||||
|
+ "exec steam-run \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -149,7 +89,7 @@ def create_wine_bin_dir(proton_app):
|
||||||
|
|
||||||
|
def run_command(
|
||||||
|
winetricks_path, proton_app, steam_app, command,
|
||||||
|
- steam_runtime_path=None,
|
||||||
|
+ steam_runtime=False,
|
||||||
|
**kwargs):
|
||||||
|
"""Run an arbitrary command with the correct environment variables
|
||||||
|
for the given Proton app
|
||||||
|
@@ -157,7 +97,7 @@ def run_command(
|
||||||
|
The environment variables are set for the duration of the call
|
||||||
|
and restored afterwards
|
||||||
|
|
||||||
|
- If 'steam_runtime_path' is provided, run the command using Steam Runtime
|
||||||
|
+ If 'steam_runtime' is provided, run the command using Steam Runtime
|
||||||
|
"""
|
||||||
|
# Make a copy of the environment variables to restore later
|
||||||
|
environ_copy = os.environ.copy()
|
||||||
|
@@ -200,7 +140,7 @@ def run_command(
|
||||||
|
os.environ.pop("WINEARCH", "")
|
||||||
|
|
||||||
|
wine_bin_dir = None
|
||||||
|
- if steam_runtime_path:
|
||||||
|
+ if steam_runtime:
|
||||||
|
if proton_app.required_tool_app:
|
||||||
|
runtime_name = proton_app.required_tool_app.name
|
||||||
|
logger.info(
|
||||||
|
@@ -217,8 +157,6 @@ def run_command(
|
||||||
|
# that load the underlying Proton Wine executables with Steam Runtime
|
||||||
|
# and Proton libraries instead of system libraries
|
||||||
|
wine_bin_dir = create_wine_bin_dir(proton_app=proton_app)
|
||||||
|
- os.environ["PROTON_LD_LIBRARY_PATH"] = \
|
||||||
|
- get_runtime_library_paths(steam_runtime_path, proton_app)
|
||||||
|
os.environ["PATH"] = "".join([
|
||||||
|
str(wine_bin_dir), os.pathsep, os.environ["PATH"]
|
||||||
|
])
|
||||||
|
diff --git a/tests/test_cli.py b/tests/test_cli.py
|
||||||
|
index 19e1137..2ef56d6 100644
|
||||||
|
--- a/tests/test_cli.py
|
||||||
|
+++ b/tests/test_cli.py
|
||||||
|
@@ -114,9 +114,6 @@ class TestCLIRun:
|
||||||
|
assert str(command.args[0]).endswith(".local/bin/winetricks")
|
||||||
|
assert command.args[1] == "winecfg"
|
||||||
|
assert command.env["PATH"].startswith(str(wine_bin_dir))
|
||||||
|
- assert (
|
||||||
|
- "fake_steam_runtime/lib64" in command.env["PROTON_LD_LIBRARY_PATH"]
|
||||||
|
- )
|
||||||
|
assert command.env["WINE"] == str(wine_bin_dir / "wine")
|
||||||
|
assert command.env["WINELOADER"] == str(wine_bin_dir / "wine")
|
||||||
|
assert command.env["WINESERVER"] == str(wine_bin_dir / "wineserver")
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"amd64": {
|
"amd64": {
|
||||||
"path": "pool/main/e/enpass/enpass_6.0.1.239_amd64.deb",
|
"path": "pool/main/e/enpass/enpass_6.5.1.723_amd64.deb",
|
||||||
"sha256": "408a2bb318564307607f13b52fec7667f425c01ac40cbe345ebfa191ab1479ba",
|
"sha256": "d9bb408fa2253ce44ab5396898f7db13291ce23ae58964f4a27ade38bd5067bf",
|
||||||
"version": "6.0.1.239"
|
"version": "6.5.1.723"
|
||||||
},
|
},
|
||||||
"i386": {
|
"i386": {
|
||||||
"path": "pool/main/e/enpass/enpass_5.6.9_i386.deb",
|
"path": "pool/main/e/enpass/enpass_5.6.9_i386.deb",
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
, glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype
|
, glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype
|
||||||
, gtk3, pango
|
, gtk3, pango
|
||||||
, makeWrapper , python2Packages, lib
|
, makeWrapper , python2Packages, lib
|
||||||
, lsof, curl, libuuid, cups, mesa
|
, lsof, curl, libuuid, cups, mesa, lzma, libxkbcommon
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -38,6 +38,8 @@ let
|
|||||||
curl
|
curl
|
||||||
libuuid
|
libuuid
|
||||||
cups
|
cups
|
||||||
|
lzma
|
||||||
|
libxkbcommon
|
||||||
]);
|
]);
|
||||||
package = stdenv.mkDerivation {
|
package = stdenv.mkDerivation {
|
||||||
|
|
||||||
@ -49,11 +51,12 @@ let
|
|||||||
url = "${baseUrl}/${data.path}";
|
url = "${baseUrl}/${data.path}";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "a well known password manager";
|
description = "A well known password manager";
|
||||||
homepage = "https://www.enpass.io/";
|
homepage = "https://www.enpass.io/";
|
||||||
license = lib.licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" "i686-linux"];
|
platforms = [ "x86_64-linux" "i686-linux"];
|
||||||
|
maintainers = with maintainers; [ ewok ];
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [makeWrapper dpkg];
|
buildInputs = [makeWrapper dpkg];
|
||||||
|
@ -3,16 +3,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "tectonic";
|
pname = "tectonic";
|
||||||
version = "0.3.3";
|
version = "0.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tectonic-typesetting";
|
owner = "tectonic-typesetting";
|
||||||
repo = "tectonic";
|
repo = "tectonic";
|
||||||
rev = "tectonic@${version}";
|
rev = "tectonic@${version}";
|
||||||
sha256 = "1ncczcchyphprkrb8spya400gi212a6akx18fm3j4xdhmg9caj3f";
|
sha256 = "1p93428ln3sfsflc7spjpfcgy81c4z5y0xhwv5mkgzf55g8nrin1";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "11xvq0l9xrppcplkshd5wxv90s97x4iavhzbdk9px992zl0m6ar6";
|
cargoSha256 = "0jzngl1iwrq20cx3l0mwdrrddvyw977rwb75nz1k4hkxjnicc1ga";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
@ -7437,7 +7437,9 @@ in
|
|||||||
|
|
||||||
smenu = callPackage ../tools/misc/smenu { };
|
smenu = callPackage ../tools/misc/smenu { };
|
||||||
|
|
||||||
smesh = callPackage ../development/libraries/smesh {};
|
smesh = callPackage ../development/libraries/smesh {
|
||||||
|
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||||
|
};
|
||||||
|
|
||||||
smu = callPackage ../tools/text/smu { };
|
smu = callPackage ../tools/text/smu { };
|
||||||
|
|
||||||
@ -26375,13 +26377,10 @@ in
|
|||||||
|
|
||||||
steamcmd = steamPackages.steamcmd;
|
steamcmd = steamPackages.steamcmd;
|
||||||
|
|
||||||
protontricks = callPackage ../tools/package-management/protontricks {
|
protontricks = python3Packages.callPackage ../tools/package-management/protontricks {
|
||||||
inherit (python3Packages) buildPythonApplication pytest setuptools_scm vdf;
|
inherit steam-run;
|
||||||
|
inherit winetricks;
|
||||||
inherit (gnome3) zenity;
|
inherit (gnome3) zenity;
|
||||||
wine = wineWowPackages.minimal;
|
|
||||||
winetricks = winetricks.override {
|
|
||||||
wine = wineWowPackages.minimal;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stepmania = callPackage ../games/stepmania {
|
stepmania = callPackage ../games/stepmania {
|
||||||
|
@ -34,6 +34,8 @@ let
|
|||||||
|
|
||||||
apron = callPackage ../development/ocaml-modules/apron { };
|
apron = callPackage ../development/ocaml-modules/apron { };
|
||||||
|
|
||||||
|
arp = callPackage ../development/ocaml-modules/arp { };
|
||||||
|
|
||||||
asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
|
asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
|
||||||
|
|
||||||
astring = callPackage ../development/ocaml-modules/astring { };
|
astring = callPackage ../development/ocaml-modules/astring { };
|
||||||
@ -205,8 +207,22 @@ let
|
|||||||
|
|
||||||
dns = callPackage ../development/ocaml-modules/dns { };
|
dns = callPackage ../development/ocaml-modules/dns { };
|
||||||
|
|
||||||
|
dns-certify = callPackage ../development/ocaml-modules/dns/certify.nix { };
|
||||||
|
|
||||||
|
dns-cli = callPackage ../development/ocaml-modules/dns/cli.nix { };
|
||||||
|
|
||||||
dns-client = callPackage ../development/ocaml-modules/dns/client.nix { };
|
dns-client = callPackage ../development/ocaml-modules/dns/client.nix { };
|
||||||
|
|
||||||
|
dns-mirage = callPackage ../development/ocaml-modules/dns/mirage.nix { };
|
||||||
|
|
||||||
|
dns-resolver = callPackage ../development/ocaml-modules/dns/resolver.nix { };
|
||||||
|
|
||||||
|
dns-server = callPackage ../development/ocaml-modules/dns/server.nix { };
|
||||||
|
|
||||||
|
dns-stub = callPackage ../development/ocaml-modules/dns/stub.nix { };
|
||||||
|
|
||||||
|
dns-tsig = callPackage ../development/ocaml-modules/dns/tsig.nix { };
|
||||||
|
|
||||||
dolmen = callPackage ../development/ocaml-modules/dolmen { };
|
dolmen = callPackage ../development/ocaml-modules/dolmen { };
|
||||||
|
|
||||||
dolog = callPackage ../development/ocaml-modules/dolog { };
|
dolog = callPackage ../development/ocaml-modules/dolog { };
|
||||||
@ -270,6 +286,8 @@ let
|
|||||||
|
|
||||||
estring = callPackage ../development/ocaml-modules/estring { };
|
estring = callPackage ../development/ocaml-modules/estring { };
|
||||||
|
|
||||||
|
ethernet = callPackage ../development/ocaml-modules/ethernet { };
|
||||||
|
|
||||||
ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
|
ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
|
||||||
|
|
||||||
ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
|
ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
|
||||||
@ -501,6 +519,8 @@ let
|
|||||||
|
|
||||||
lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
|
lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
|
||||||
|
|
||||||
|
lwt-dllist = callPackage ../development/ocaml-modules/lwt-dllist { };
|
||||||
|
|
||||||
lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
|
lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
|
||||||
|
|
||||||
lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
|
lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
|
||||||
@ -561,6 +581,8 @@ let
|
|||||||
|
|
||||||
mirage-console = callPackage ../development/ocaml-modules/mirage-console { };
|
mirage-console = callPackage ../development/ocaml-modules/mirage-console { };
|
||||||
|
|
||||||
|
mirage-console-unix = callPackage ../development/ocaml-modules/mirage-console/unix.nix { };
|
||||||
|
|
||||||
mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { };
|
mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { };
|
||||||
|
|
||||||
mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { };
|
mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { };
|
||||||
@ -583,6 +605,8 @@ let
|
|||||||
|
|
||||||
mirage-logs = callPackage ../development/ocaml-modules/mirage-logs { };
|
mirage-logs = callPackage ../development/ocaml-modules/mirage-logs { };
|
||||||
|
|
||||||
|
mirage-nat = callPackage ../development/ocaml-modules/mirage-nat { };
|
||||||
|
|
||||||
mirage-net = callPackage ../development/ocaml-modules/mirage-net { };
|
mirage-net = callPackage ../development/ocaml-modules/mirage-net { };
|
||||||
|
|
||||||
mirage-profile = callPackage ../development/ocaml-modules/mirage-profile { };
|
mirage-profile = callPackage ../development/ocaml-modules/mirage-profile { };
|
||||||
@ -591,6 +615,8 @@ let
|
|||||||
|
|
||||||
mirage-random = callPackage ../development/ocaml-modules/mirage-random { };
|
mirage-random = callPackage ../development/ocaml-modules/mirage-random { };
|
||||||
|
|
||||||
|
mirage-random-test = callPackage ../development/ocaml-modules/mirage-random-test { };
|
||||||
|
|
||||||
mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { };
|
mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { };
|
||||||
|
|
||||||
mirage-stack = callPackage ../development/ocaml-modules/mirage-stack { };
|
mirage-stack = callPackage ../development/ocaml-modules/mirage-stack { };
|
||||||
@ -605,6 +631,8 @@ let
|
|||||||
|
|
||||||
mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
|
mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
|
||||||
|
|
||||||
|
mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { };
|
||||||
|
|
||||||
mlgmp = callPackage ../development/ocaml-modules/mlgmp { };
|
mlgmp = callPackage ../development/ocaml-modules/mlgmp { };
|
||||||
|
|
||||||
mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { };
|
mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { };
|
||||||
@ -788,6 +816,8 @@ let
|
|||||||
|
|
||||||
parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
|
parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
|
||||||
|
|
||||||
|
pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
|
||||||
|
|
||||||
pgsolver = callPackage ../development/ocaml-modules/pgsolver { };
|
pgsolver = callPackage ../development/ocaml-modules/pgsolver { };
|
||||||
|
|
||||||
phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { };
|
phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { };
|
||||||
@ -826,6 +856,8 @@ let
|
|||||||
|
|
||||||
spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
|
spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
|
||||||
|
|
||||||
|
tcpip = callPackage ../development/ocaml-modules/tcpip { };
|
||||||
|
|
||||||
tsort = callPackage ../development/ocaml-modules/tsort { };
|
tsort = callPackage ../development/ocaml-modules/tsort { };
|
||||||
|
|
||||||
tuntap = callPackage ../development/ocaml-modules/tuntap { };
|
tuntap = callPackage ../development/ocaml-modules/tuntap { };
|
||||||
|
@ -1041,7 +1041,9 @@ in {
|
|||||||
|
|
||||||
cachy = callPackage ../development/python-modules/cachy { };
|
cachy = callPackage ../development/python-modules/cachy { };
|
||||||
|
|
||||||
cadquery = callPackage ../development/python-modules/cadquery { };
|
cadquery = callPackage ../development/python-modules/cadquery {
|
||||||
|
inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
|
||||||
|
};
|
||||||
|
|
||||||
caffe = toPythonModule (pkgs.caffe.override {
|
caffe = toPythonModule (pkgs.caffe.override {
|
||||||
pythonSupport = true;
|
pythonSupport = true;
|
||||||
@ -6025,8 +6027,10 @@ in {
|
|||||||
|
|
||||||
python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
|
python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
|
||||||
|
|
||||||
pythonocc-core =
|
pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
|
||||||
toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
|
inherit (pkgs.xorg) libX11;
|
||||||
|
inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
|
||||||
|
});
|
||||||
|
|
||||||
python-olm = callPackage ../development/python-modules/python-olm { };
|
python-olm = callPackage ../development/python-modules/python-olm { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user