commit
54757b35c1
@ -1,31 +0,0 @@ |
||||
{ config, lib, ... }: |
||||
with lib; |
||||
|
||||
{ |
||||
meta = { |
||||
maintainers = [ maintainers.joachifm ]; |
||||
doc = ./hidepid.xml; |
||||
}; |
||||
|
||||
options = { |
||||
security.hideProcessInformation = mkOption { |
||||
type = types.bool; |
||||
default = false; |
||||
description = '' |
||||
Restrict process information to the owning user. |
||||
''; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf config.security.hideProcessInformation { |
||||
users.groups.proc.gid = config.ids.gids.proc; |
||||
users.groups.proc.members = [ "polkituser" ]; |
||||
|
||||
boot.specialFileSystems."/proc".options = [ "hidepid=2" "gid=${toString config.ids.gids.proc}" ]; |
||||
systemd.services.systemd-logind.serviceConfig.SupplementaryGroups = [ "proc" ]; |
||||
|
||||
# Disable cgroupsv2, which doesn't work with hidepid. |
||||
# https://github.com/NixOS/nixpkgs/pull/104094#issuecomment-729996203 |
||||
systemd.enableUnifiedCgroupHierarchy = false; |
||||
}; |
||||
} |
@ -1,28 +0,0 @@ |
||||
<chapter xmlns="http://docbook.org/ns/docbook" |
||||
xmlns:xlink="http://www.w3.org/1999/xlink" |
||||
xmlns:xi="http://www.w3.org/2001/XInclude" |
||||
version="5.0" |
||||
xml:id="sec-hidepid"> |
||||
<title>Hiding process information</title> |
||||
<para> |
||||
Setting |
||||
<programlisting> |
||||
<xref linkend="opt-security.hideProcessInformation"/> = true; |
||||
</programlisting> |
||||
ensures that access to process information is restricted to the owning user. |
||||
This implies, among other things, that command-line arguments remain private. |
||||
Unless your deployment relies on unprivileged users being able to inspect the |
||||
process information of other users, this option should be safe to enable. |
||||
</para> |
||||
<para> |
||||
Members of the <literal>proc</literal> group are exempt from process |
||||
information hiding. |
||||
</para> |
||||
<para> |
||||
To allow a service <replaceable>foo</replaceable> to run without process |
||||
information hiding, set |
||||
<programlisting> |
||||
<link linkend="opt-systemd.services._name_.serviceConfig">systemd.services.<replaceable>foo</replaceable>.serviceConfig</link>.SupplementaryGroups = [ "proc" ]; |
||||
</programlisting> |
||||
</para> |
||||
</chapter> |
@ -0,0 +1,54 @@ |
||||
{ config, pkgs, lib, ... }: |
||||
|
||||
with lib; |
||||
let |
||||
cfg = config.services.zrepl; |
||||
format = pkgs.formats.yaml { }; |
||||
configFile = format.generate "zrepl.yml" cfg.settings; |
||||
in |
||||
{ |
||||
meta.maintainers = with maintainers; [ cole-h ]; |
||||
|
||||
options = { |
||||
services.zrepl = { |
||||
enable = mkEnableOption "zrepl"; |
||||
|
||||
settings = mkOption { |
||||
default = { }; |
||||
description = '' |
||||
Configuration for zrepl. See <link |
||||
xlink:href="https://zrepl.github.io/configuration.html"/> |
||||
for more information. |
||||
''; |
||||
type = types.submodule { |
||||
freeformType = format.type; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
### Implementation ### |
||||
|
||||
config = mkIf cfg.enable { |
||||
environment.systemPackages = [ pkgs.zrepl ]; |
||||
|
||||
# zrepl looks for its config in this location by default. This |
||||
# allows the use of e.g. `zrepl signal wakeup <job>` without having |
||||
# to specify the storepath of the config. |
||||
environment.etc."zrepl/zrepl.yml".source = configFile; |
||||
|
||||
systemd.packages = [ pkgs.zrepl ]; |
||||
systemd.services.zrepl = { |
||||
requires = [ "local-fs.target" ]; |
||||
wantedBy = [ "zfs.target" ]; |
||||
after = [ "zfs.target" ]; |
||||
|
||||
path = [ config.boot.zfs.package ]; |
||||
restartTriggers = [ configFile ]; |
||||
|
||||
serviceConfig = { |
||||
Restart = "on-failure"; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,178 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
eachGeth = config.services.geth; |
||||
|
||||
gethOpts = { config, lib, name, ...}: { |
||||
|
||||
options = { |
||||
|
||||
enable = lib.mkEnableOption "Go Ethereum Node"; |
||||
|
||||
port = mkOption { |
||||
type = types.port; |
||||
default = 30303; |
||||
description = "Port number Go Ethereum will be listening on, both TCP and UDP."; |
||||
}; |
||||
|
||||
http = { |
||||
enable = lib.mkEnableOption "Go Ethereum HTTP API"; |
||||
address = mkOption { |
||||
type = types.str; |
||||
default = "127.0.0.1"; |
||||
description = "Listen address of Go Ethereum HTTP API."; |
||||
}; |
||||
|
||||
port = mkOption { |
||||
type = types.port; |
||||
default = 8545; |
||||
description = "Port number of Go Ethereum HTTP API."; |
||||
}; |
||||
|
||||
apis = mkOption { |
||||
type = types.nullOr (types.listOf types.str); |
||||
default = null; |
||||
description = "APIs to enable over WebSocket"; |
||||
example = ["net" "eth"]; |
||||
}; |
||||
}; |
||||
|
||||
websocket = { |
||||
enable = lib.mkEnableOption "Go Ethereum WebSocket API"; |
||||
address = mkOption { |
||||
type = types.str; |
||||
default = "127.0.0.1"; |
||||
description = "Listen address of Go Ethereum WebSocket API."; |
||||
}; |
||||
|
||||
port = mkOption { |
||||
type = types.port; |
||||
default = 8546; |
||||
description = "Port number of Go Ethereum WebSocket API."; |
||||
}; |
||||
|
||||
apis = mkOption { |
||||
type = types.nullOr (types.listOf types.str); |
||||
default = null; |
||||
description = "APIs to enable over WebSocket"; |
||||
example = ["net" "eth"]; |
||||
}; |
||||
}; |
||||
|
||||
metrics = { |
||||
enable = lib.mkEnableOption "Go Ethereum prometheus metrics"; |
||||
address = mkOption { |
||||
type = types.str; |
||||
default = "127.0.0.1"; |
||||
description = "Listen address of Go Ethereum metrics service."; |
||||
}; |
||||
|
||||
port = mkOption { |
||||
type = types.port; |
||||
default = 6060; |
||||
description = "Port number of Go Ethereum metrics service."; |
||||
}; |
||||
}; |
||||
|
||||
network = mkOption { |
||||
type = types.nullOr (types.enum [ "goerli" "rinkeby" "yolov2" "ropsten" ]); |
||||
default = null; |
||||
description = "The network to connect to. Mainnet (null) is the default ethereum network."; |
||||
}; |
||||
|
||||
syncmode = mkOption { |
||||
type = types.enum [ "fast" "full" "light" ]; |
||||
default = "fast"; |
||||
description = "Blockchain sync mode."; |
||||
}; |
||||
|
||||
gcmode = mkOption { |
||||
type = types.enum [ "full" "archive" ]; |
||||
default = "full"; |
||||
description = "Blockchain garbage collection mode."; |
||||
}; |
||||
|
||||
maxpeers = mkOption { |
||||
type = types.int; |
||||
default = 50; |
||||
description = "Maximum peers to connect to."; |
||||
}; |
||||
|
||||
extraArgs = mkOption { |
||||
type = types.listOf types.str; |
||||
description = "Additional arguments passed to Go Ethereum."; |
||||
default = []; |
||||
}; |
||||
|
||||
package = mkOption { |
||||
default = pkgs.go-ethereum.geth; |
||||
type = types.package; |
||||
description = "Package to use as Go Ethereum node."; |
||||
}; |
||||
}; |
||||
}; |
||||
in |
||||
|
||||
{ |
||||
|
||||
###### interface |
||||
|
||||
options = { |
||||
services.geth = mkOption { |
||||
type = types.attrsOf (types.submodule gethOpts); |
||||
default = {}; |
||||
description = "Specification of one or more geth instances."; |
||||
}; |
||||
}; |
||||
|
||||
###### implementation |
||||
|
||||
config = mkIf (eachGeth != {}) { |
||||
|
||||
environment.systemPackages = flatten (mapAttrsToList (gethName: cfg: [ |
||||
cfg.package |
||||
]) eachGeth); |
||||
|
||||
systemd.services = mapAttrs' (gethName: cfg: ( |
||||
nameValuePair "geth-${gethName}" (mkIf cfg.enable { |
||||
description = "Go Ethereum node (${gethName})"; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
after = [ "network.target" ]; |
||||
|
||||
serviceConfig = { |
||||
DynamicUser = true; |
||||
Restart = "always"; |
||||
StateDirectory = "goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}"; |
||||
|
||||
# Hardening measures |
||||
PrivateTmp = "true"; |
||||
ProtectSystem = "full"; |
||||
NoNewPrivileges = "true"; |
||||
PrivateDevices = "true"; |
||||
MemoryDenyWriteExecute = "true"; |
||||
}; |
||||
|
||||
script = '' |
||||
${cfg.package}/bin/geth \ |
||||
--nousb \ |
||||
--ipcdisable \ |
||||
${optionalString (cfg.network != null) ''--${cfg.network}''} \ |
||||
--syncmode ${cfg.syncmode} \ |
||||
--gcmode ${cfg.gcmode} \ |
||||
--port ${toString cfg.port} \ |
||||
--maxpeers ${toString cfg.maxpeers} \ |
||||
${if cfg.http.enable then ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}'' else ""} \ |
||||
${optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}''} \ |
||||
${if cfg.websocket.enable then ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}'' else ""} \ |
||||
${optionalString (cfg.websocket.apis != null) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}''} \ |
||||
${optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \ |
||||
${lib.escapeShellArgs cfg.extraArgs} \ |
||||
--datadir /var/lib/goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network} |
||||
''; |
||||
}))) eachGeth; |
||||
|
||||
}; |
||||
|
||||
} |
@ -0,0 +1,41 @@ |
||||
import ./make-test-python.nix ({ pkgs, ... }: { |
||||
name = "geth"; |
||||
meta = with pkgs.lib; { |
||||
maintainers = with maintainers; [bachp ]; |
||||
}; |
||||
|
||||
machine = { ... }: { |
||||
services.geth."mainnet" = { |
||||
enable = true; |
||||
http = { |
||||
enable = true; |
||||
}; |
||||
}; |
||||
services.geth."testnet" = { |
||||
enable = true; |
||||
port = 30304; |
||||
network = "goerli"; |
||||
http = { |
||||
enable = true; |
||||
port = 18545; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
testScript = '' |
||||
start_all() |
||||
|
||||
machine.wait_for_unit("geth-mainnet.service") |
||||
machine.wait_for_unit("geth-testnet.service") |
||||
machine.wait_for_open_port(8545) |
||||
machine.wait_for_open_port(18545) |
||||
|
||||
machine.succeed( |
||||
'geth attach --exec "eth.chainId()" http://localhost:8545 | grep \'"0x0"\' ' |
||||
) |
||||
|
||||
machine.succeed( |
||||
'geth attach --exec "eth.chainId()" http://localhost:18545 | grep \'"0x5"\' ' |
||||
) |
||||
''; |
||||
}) |
@ -1,10 +0,0 @@ |
||||
import ./make-test-python.nix ({ pkgs, ... }: { |
||||
name = "jq"; |
||||
meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; }; |
||||
|
||||
nodes.jq = { pkgs, ... }: { environment.systemPackages = [ pkgs.jq ]; }; |
||||
|
||||
testScript = '' |
||||
assert "world" in jq.succeed('echo \'{"values":["hello","world"]}\'| jq \'.values[1]\''') |
||||
''; |
||||
}) |
@ -1,16 +0,0 @@ |
||||
import ./make-test-python.nix ({ pkgs, ...} : { |
||||
name = "sbt-extras"; |
||||
meta = with pkgs.lib.maintainers; { |
||||
maintainers = [ nequissimus ]; |
||||
}; |
||||
|
||||
machine = { pkgs, ... }: |
||||
{ |
||||
environment.systemPackages = [ pkgs.sbt-extras ]; |
||||
}; |
||||
|
||||
testScript = |
||||
'' |
||||
machine.succeed("(sbt -h)") |
||||
''; |
||||
}) |
@ -1,18 +0,0 @@ |
||||
import ./make-test-python.nix ({ pkgs, ...} : { |
||||
name = "sbt"; |
||||
meta = with pkgs.lib.maintainers; { |
||||
maintainers = [ nequissimus ]; |
||||
}; |
||||
|
||||
machine = { pkgs, ... }: |
||||
{ |
||||
environment.systemPackages = [ pkgs.sbt ]; |
||||
}; |
||||
|
||||
testScript = |
||||
'' |
||||
machine.succeed( |
||||
"(sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${pkgs.sbt.version} (this may take some time)'" |
||||
) |
||||
''; |
||||
}) |
@ -0,0 +1,33 @@ |
||||
{ lib, stdenv, fetchurl |
||||
, libX11, libXft, libclthreads, libclxclient, libjack2, libpng, libsndfile, zita-resampler |
||||
}: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "ebumeter"; |
||||
version = "0.4.2"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2"; |
||||
sha256 = "1wm9j1phmpicrp7jdsvdbc3mghdd92l61yl9qbps0brq2ljjyd5s"; |
||||
}; |
||||
|
||||
buildInputs = [ |
||||
libX11 libXft libclthreads libclxclient libjack2 libpng libsndfile zita-resampler |
||||
]; |
||||
|
||||
preConfigure = '' |
||||
cd source |
||||
''; |
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ]; |
||||
|
||||
enableParallelBuilding = true; |
||||
|
||||
meta = with lib; { |
||||
description = "Level metering according to the EBU R-128 recommendation"; |
||||
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html"; |
||||
license = licenses.gpl2Plus; |
||||
maintainers = with maintainers; [ orivej ]; |
||||
platforms = platforms.linux; |
||||
}; |
||||
} |
@ -1,15 +0,0 @@ |
||||
Dump temacs in an empty environment to prevent -dev paths from ending
|
||||
up in the dumped image.
|
||||
|
||||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
|
||||
ln -f temacs$(EXEEXT) $@
|
||||
else
|
||||
unset EMACS_HEAP_EXEC; \
|
||||
- LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
|
||||
+ env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
|
||||
ifneq ($(PAXCTL_dumped),)
|
||||
$(PAXCTL_dumped) $@
|
||||
endif
|
@ -1,16 +0,0 @@ |
||||
Dump temacs in an empty environment to prevent -dev paths from ending
|
||||
up in the dumped image.
|
||||
|
||||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
index fd05a45df5..13f529c253 100644
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -570,7 +570,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) \
|
||||
lisp.mk $(etc)/DOC $(lisp) \
|
||||
$(lispsource)/international/charprop.el ${charsets}
|
||||
ifeq ($(DUMPING),unexec)
|
||||
- LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
|
||||
+ env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
|
||||
ifneq ($(PAXCTL_dumped),)
|
||||
$(PAXCTL_dumped) emacs$(EXEEXT)
|
||||
endif
|
@ -0,0 +1,71 @@ |
||||
{ stdenv |
||||
, lib |
||||
, fetchFromGitHub |
||||
, cmake |
||||
, libxml2 |
||||
, libpeas |
||||
, glib |
||||
, gtk3 |
||||
, gtksourceview4 |
||||
, gspell |
||||
, xapps |
||||
, pkg-config |
||||
, meson |
||||
, ninja |
||||
, wrapGAppsHook |
||||
, intltool |
||||
, itstool }: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "xed-editor"; |
||||
version = "2.8.4"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "linuxmint"; |
||||
repo = "xed"; |
||||
rev = version; |
||||
sha256 = "1hqr4157kp110p01jygqnnzj86zxlfiq4b53j345vqpx0f80c340"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ |
||||
meson |
||||
cmake |
||||
pkg-config |
||||
intltool |
||||
itstool |
||||
ninja |
||||
wrapGAppsHook |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
libxml2 |
||||
glib |
||||
gtk3 |
||||
gtksourceview4 |
||||
libpeas |
||||
gspell |
||||
xapps |
||||
]; |
||||
|
||||
postInstall = '' |
||||
glib-compile-schemas $out/share/glib-2.0/schemas |
||||
''; |
||||
|
||||
doInstallCheck = true; |
||||
installCheckPhase = '' |
||||
if [[ "$($out/bin/xed --version)" == "xed - Version ${version}" ]] ; then |
||||
echo "${pname} smoke test passed" |
||||
else |
||||
echo "${pname} smoke test failed" |
||||
return 1 |
||||
fi |
||||
''; |
||||
|
||||
meta = with lib; { |
||||
description = "Light weight text editor from Linux Mint"; |
||||
homepage = "https://github.com/linuxmint/xed"; |
||||
license = licenses.gpl2Only; |
||||
platforms = platforms.linux; |
||||
maintainers = with maintainers; [ tu-maurice ]; |
||||
}; |
||||
} |
@ -0,0 +1,32 @@ |
||||
{ lib |
||||
, stdenv |
||||
, fetchFromGitHub |
||||
, pkg-config |
||||
, meson |
||||
, ninja |
||||
, libX11 |
||||
, libXext |
||||
}: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "9menu"; |
||||
version = "unstable-2021-02-24"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "arnoldrobbins"; |
||||
repo = pname; |
||||
rev = "00cbf99c48dc580ca28f81ed66c89a98b7a182c8"; |
||||
sha256 = "arca8Gbr4ytiCk43cifmNj7SUrDgn1XB26zAhZrVDs0="; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ pkg-config meson ninja ]; |
||||
buildInputs = [ libX11 libXext ]; |
||||
|
||||
meta = with lib; { |
||||
homepage = "https://github.com/arnoldrobbins/9menu"; |
||||
description = "Simple X11 menu program for running commands"; |
||||
license = licenses.gpl3Plus; |
||||
maintainers = with maintainers; [ AndersonTorres ]; |
||||
platforms = libX11.meta.platforms; |
||||
}; |
||||
} |
@ -0,0 +1,58 @@ |
||||
{ lib |
||||
, fetchgit |
||||
, python3 |
||||
, glib |
||||
, gobject-introspection |
||||
, meson |
||||
, ninja |
||||
, pkg-config |
||||
, wrapGAppsHook |
||||
, atk |
||||
, libhandy |
||||
, libnotify |
||||
, pango |
||||
}: |
||||
|
||||
python3.pkgs.buildPythonApplication rec { |
||||
pname = "caerbannog"; |
||||
version = "0.3"; |
||||
format = "other"; |
||||
|
||||
src = fetchgit { |
||||
url = "https://git.sr.ht/~craftyguy/caerbannog"; |
||||
rev = version; |
||||
sha256 = "0wqkb9zcllxm3fdsr5lphknkzy8r1cr80f84q200hbi99qql1dxh"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ |
||||
glib |
||||
gobject-introspection |
||||
meson |
||||
ninja |
||||
pkg-config |
||||
wrapGAppsHook |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
atk |
||||
gobject-introspection |
||||
libhandy |
||||
libnotify |
||||
pango |
||||
]; |
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [ |
||||
anytree |
||||
fuzzyfinder |
||||
gpgme |
||||
pygobject3 |
||||
]; |
||||
|
||||
meta = with lib; { |
||||
description = "Mobile-friendly Gtk frontend for password-store"; |
||||
homepage = "https://sr.ht/~craftyguy/caerbannog/"; |
||||
changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}"; |
||||
license = licenses.gpl3Plus; |
||||
maintainers = with maintainers; [ dotlambda ]; |
||||
}; |
||||
} |
@ -0,0 +1,159 @@ |
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
new file mode 100644
|
||||
index 0000000..3528c6c
|
||||
--- /dev/null
|
||||
+++ b/Cargo.lock
|
||||
@@ -0,0 +1,153 @@
|
||||
+# This file is automatically @generated by Cargo.
|
||||
+# It is not intended for manual editing.
|
||||
+[[package]]
|
||||
+name = "ansi_term"
|
||||
+version = "0.12.1"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
|
||||
+dependencies = [
|
||||
+ "winapi",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "bitflags"
|
||||
+version = "1.2.1"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "cfg-if"
|
||||
+version = "1.0.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "getrandom"
|
||||
+version = "0.2.2"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
|
||||
+dependencies = [
|
||||
+ "cfg-if",
|
||||
+ "libc",
|
||||
+ "wasi",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "libc"
|
||||
+version = "0.2.86"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "lscolors"
|
||||
+version = "0.7.1"
|
||||
+dependencies = [
|
||||
+ "ansi_term",
|
||||
+ "tempfile",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "ppv-lite86"
|
||||
+version = "0.2.10"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "rand"
|
||||
+version = "0.8.3"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
|
||||
+dependencies = [
|
||||
+ "libc",
|
||||
+ "rand_chacha",
|
||||
+ "rand_core",
|
||||
+ "rand_hc",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "rand_chacha"
|
||||
+version = "0.3.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
|
||||
+dependencies = [
|
||||
+ "ppv-lite86",
|
||||
+ "rand_core",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "rand_core"
|
||||
+version = "0.6.2"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
|
||||
+dependencies = [
|
||||
+ "getrandom",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "rand_hc"
|
||||
+version = "0.3.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
|
||||
+dependencies = [
|
||||
+ "rand_core",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "redox_syscall"
|
||||
+version = "0.2.5"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
|
||||
+dependencies = [
|
||||
+ "bitflags",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "remove_dir_all"
|
||||
+version = "0.5.3"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
|
||||
+dependencies = [
|
||||
+ "winapi",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "tempfile"
|
||||
+version = "3.2.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
|
||||
+dependencies = [
|
||||
+ "cfg-if",
|
||||
+ "libc",
|
||||
+ "rand",
|
||||
+ "redox_syscall",
|
||||
+ "remove_dir_all",
|
||||
+ "winapi",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wasi"
|
||||
+version = "0.10.2+wasi-snapshot-preview1"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "winapi"
|
||||
+version = "0.3.9"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
+dependencies = [
|
||||
+ "winapi-i686-pc-windows-gnu",
|
||||
+ "winapi-x86_64-pc-windows-gnu",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "winapi-i686-pc-windows-gnu"
|
||||
+version = "0.4.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "winapi-x86_64-pc-windows-gnu"
|
||||
+version = "0.4.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
@ -0,0 +1,26 @@ |
||||
{ lib, rustPlatform, fetchFromGitHub }: |
||||
|
||||
rustPlatform.buildRustPackage rec { |
||||
pname = "lscolors"; |
||||
version = "0.7.1"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "sharkdp"; |
||||
repo = pname; |
||||
rev = "v${version}"; |
||||
sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04"; |
||||
}; |
||||
|
||||
cargoPatches = [ |
||||
./cargo.lock.patch |
||||
]; |
||||
|
||||
cargoSha256 = "02k23idwy0sb4lnjrwnyah3qp22zj161ilbc13p75k0hdijfaxl5"; |
||||
|
||||
meta = with lib; { |
||||
description = "Rust library and tool to colorize paths using LS_COLORS"; |
||||
homepage = "https://github.com/sharkdp/lscolors"; |
||||
license = with licenses; [ asl20 mit ]; |
||||
maintainers = with maintainers; [ SuperSandro2000 ]; |
||||
}; |
||||
} |
@ -0,0 +1,17 @@ |
||||
diff --git a/python/lib/lng.py b/python/lib/lng.py
|
||||
index a390d920..00c3527e 100755
|
||||
--- a/python/lib/lng.py
|
||||
+++ b/python/lib/lng.py
|
||||
@@ -12,11 +12,7 @@ class Lang(object):
|
||||
|
||||
class iLang(object):
|
||||
def __init__(self):
|
||||
- if(os.environ["DEBIAN_PACKAGE"] == "TRUE"):
|
||||
- languages = os.listdir('/usr/share/locale')
|
||||
- else:
|
||||
- languages = os.listdir(Variables.playonlinux_env+'/lang/locale')
|
||||
-
|
||||
+ languages = os.listdir('@out@/share/playonlinux/lang/locale')
|
||||
if(os.environ["POL_OS"] == "Mac"):
|
||||
wxLocale = wx.Locale().FindLanguageInfo(os.environ["RLANG"])
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue