forked from mirrors/nixpkgs
Merge master into staging
This commit is contained in:
commit
658b7c3f2e
|
@ -310,6 +310,7 @@ rec {
|
|||
|
||||
in opt //
|
||||
{ value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
|
||||
inherit (res.defsFinal') highestPrio;
|
||||
definitions = map (def: def.value) res.defsFinal;
|
||||
files = map (def: def.file) res.defsFinal;
|
||||
inherit (res) isDefined;
|
||||
|
@ -317,7 +318,7 @@ rec {
|
|||
|
||||
# Merge definitions of a value of a given type.
|
||||
mergeDefinitions = loc: type: defs: rec {
|
||||
defsFinal =
|
||||
defsFinal' =
|
||||
let
|
||||
# Process mkMerge and mkIf properties.
|
||||
defs' = concatMap (m:
|
||||
|
@ -325,15 +326,20 @@ rec {
|
|||
) defs;
|
||||
|
||||
# Process mkOverride properties.
|
||||
defs'' = filterOverrides defs';
|
||||
defs'' = filterOverrides' defs';
|
||||
|
||||
# Sort mkOrder properties.
|
||||
defs''' =
|
||||
# Avoid sorting if we don't have to.
|
||||
if any (def: def.value._type or "" == "order") defs''
|
||||
then sortProperties defs''
|
||||
else defs'';
|
||||
in defs''';
|
||||
if any (def: def.value._type or "" == "order") defs''.values
|
||||
then sortProperties defs''.values
|
||||
else defs''.values;
|
||||
in {
|
||||
values = defs''';
|
||||
inherit (defs'') highestPrio;
|
||||
};
|
||||
|
||||
defsFinal = defsFinal'.values;
|
||||
|
||||
# Type-check the remaining definitions, and merge them.
|
||||
mergedValue = foldl' (res: def:
|
||||
|
@ -416,13 +422,18 @@ rec {
|
|||
|
||||
Note that "z" has the default priority 100.
|
||||
*/
|
||||
filterOverrides = defs:
|
||||
filterOverrides = defs: (filterOverrides' defs).values;
|
||||
|
||||
filterOverrides' = defs:
|
||||
let
|
||||
defaultPrio = 100;
|
||||
getPrio = def: if def.value._type or "" == "override" then def.value.priority else defaultPrio;
|
||||
highestPrio = foldl' (prio: def: min (getPrio def) prio) 9999 defs;
|
||||
strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def;
|
||||
in concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
||||
in {
|
||||
values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
||||
inherit highestPrio;
|
||||
};
|
||||
|
||||
/* Sort a list of properties. The sort priority of a property is
|
||||
1000 by default, but can be overridden by wrapping the property
|
||||
|
|
|
@ -43,6 +43,11 @@
|
|||
github = "ChengCat";
|
||||
name = "Yucheng Zhang";
|
||||
};
|
||||
CrazedProgrammer = {
|
||||
email = "crazedprogrammer@gmail.com";
|
||||
github = "CrazedProgrammer";
|
||||
name = "CrazedProgrammer";
|
||||
};
|
||||
CrystalGamma = {
|
||||
email = "nixos@crystalgamma.de";
|
||||
github = "CrystalGamma";
|
||||
|
@ -2501,6 +2506,11 @@
|
|||
github = "mmlb";
|
||||
name = "Manuel Mendez";
|
||||
};
|
||||
mnacamura = {
|
||||
email = "m.nacamura@gmail.com";
|
||||
github = "mnacamura";
|
||||
name = "Mitsuhiro Nakamura";
|
||||
};
|
||||
moaxcp = {
|
||||
email = "moaxcp@gmail.com";
|
||||
github = "moaxcp";
|
||||
|
@ -3771,6 +3781,11 @@
|
|||
github = "titanous";
|
||||
name = "Jonathan Rudenberg";
|
||||
};
|
||||
tmplt = {
|
||||
email = "tmplt@dragons.rocks";
|
||||
github = "tmplt";
|
||||
name = "Viktor";
|
||||
};
|
||||
tnias = {
|
||||
email = "phil@grmr.de";
|
||||
github = "tnias";
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">
|
||||
Bump the <literal>system.defaultChannel</literal> attribute in
|
||||
Bump the <literal>system.nixos.defaultChannel</literal> attribute in
|
||||
<literal>nixos/modules/misc/version.nix</literal> </link>
|
||||
</para>
|
||||
</listitem>
|
||||
|
|
|
@ -433,9 +433,9 @@ system.autoUpgrade.enable = true;
|
|||
default. If you have existing systems with such host keys and want to
|
||||
continue to use them, please set
|
||||
<programlisting>
|
||||
system.stateVersion = "14.12";
|
||||
system.nixos.stateVersion = "14.12";
|
||||
</programlisting>
|
||||
The new option <option>system.stateVersion</option> ensures that certain
|
||||
The new option <option>system.nixos.stateVersion</option> ensures that certain
|
||||
configuration changes that could break existing systems (such as the
|
||||
<command>sshd</command> host key setting) will maintain compatibility with
|
||||
the specified NixOS release. NixOps sets the state version of existing
|
||||
|
|
|
@ -628,7 +628,7 @@ $bootLoaderConfig
|
|||
# compatible, in order to avoid breaking some software such as database
|
||||
# servers. You should change this only after NixOS release notes say you
|
||||
# should.
|
||||
system.stateVersion = "${\(qw(@release@))}"; # Did you read the comment?
|
||||
system.nixos.stateVersion = "${\(qw(@release@))}"; # Did you read the comment?
|
||||
|
||||
}
|
||||
EOF
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ options, config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -12,29 +12,29 @@ in
|
|||
|
||||
{
|
||||
|
||||
options.system = {
|
||||
options.system.nixos = {
|
||||
|
||||
nixos.version = mkOption {
|
||||
version = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
description = "The full NixOS version (e.g. <literal>16.03.1160.f2d4ee1</literal>).";
|
||||
};
|
||||
|
||||
nixos.release = mkOption {
|
||||
release = mkOption {
|
||||
readOnly = true;
|
||||
type = types.str;
|
||||
default = trivial.release;
|
||||
description = "The NixOS release (e.g. <literal>16.03</literal>).";
|
||||
};
|
||||
|
||||
nixos.versionSuffix = mkOption {
|
||||
versionSuffix = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
default = trivial.versionSuffix;
|
||||
description = "The NixOS version suffix (e.g. <literal>1160.f2d4ee1</literal>).";
|
||||
};
|
||||
|
||||
nixos.revision = mkOption {
|
||||
revision = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
|
||||
|
@ -43,7 +43,7 @@ in
|
|||
description = "The Git revision from which this NixOS configuration was built.";
|
||||
};
|
||||
|
||||
nixos.codeName = mkOption {
|
||||
codeName = mkOption {
|
||||
readOnly = true;
|
||||
type = types.str;
|
||||
description = "The NixOS release code name (e.g. <literal>Emu</literal>).";
|
||||
|
@ -76,6 +76,9 @@ in
|
|||
|
||||
config = {
|
||||
|
||||
warnings = lib.optional (options.system.nixos.stateVersion.highestPrio > 1000)
|
||||
"You don't have `system.nixos.stateVersion` explicitly set. Expect things to break.";
|
||||
|
||||
system.nixos = {
|
||||
# These defaults are set here rather than up there so that
|
||||
# changing them would not rebuild the manual
|
||||
|
|
|
@ -40,7 +40,7 @@ in
|
|||
|
||||
# Subscribe the root user to the NixOS channel by default.
|
||||
if [ "$USER" = root -a ! -e $HOME/.nix-channels ]; then
|
||||
echo "${config.system.defaultChannel} nixos" > $HOME/.nix-channels
|
||||
echo "${config.system.nixos.defaultChannel} nixos" > $HOME/.nix-channels
|
||||
fi
|
||||
|
||||
# Create the per-user garbage collector roots directory.
|
||||
|
|
|
@ -204,6 +204,8 @@ with lib;
|
|||
(mkRenamedOptionModule [ "system" "nixosVersionSuffix" ] [ "system" "nixos" "versionSuffix" ])
|
||||
(mkRenamedOptionModule [ "system" "nixosRevision" ] [ "system" "nixos" "revision" ])
|
||||
(mkRenamedOptionModule [ "system" "nixosLabel" ] [ "system" "nixos" "label" ])
|
||||
(mkRenamedOptionModule [ "system" "stateVersion" ] [ "system" "nixos" "stateVersion" ])
|
||||
(mkRenamedOptionModule [ "system" "defaultChannel" ] [ "system" "nixos" "defaultChannel" ])
|
||||
|
||||
# Users
|
||||
(mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ])
|
||||
|
|
|
@ -218,7 +218,7 @@ in
|
|||
config = mkIf config.services.mysql.enable {
|
||||
|
||||
services.mysql.dataDir =
|
||||
mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql"
|
||||
mkDefault (if versionAtLeast config.system.nixos.stateVersion "17.09" then "/var/lib/mysql"
|
||||
else "/var/mysql");
|
||||
|
||||
users.extraUsers.mysql = {
|
||||
|
|
|
@ -147,7 +147,7 @@ in
|
|||
};
|
||||
superUser = mkOption {
|
||||
type = types.str;
|
||||
default= if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root";
|
||||
default= if versionAtLeast config.system.nixos.stateVersion "17.09" then "postgres" else "root";
|
||||
internal = true;
|
||||
description = ''
|
||||
NixOS traditionally used 'root' as superuser, most other distros use 'postgres'.
|
||||
|
@ -166,14 +166,14 @@ in
|
|||
|
||||
services.postgresql.package =
|
||||
# Note: when changing the default, make it conditional on
|
||||
# ‘system.stateVersion’ to maintain compatibility with existing
|
||||
# ‘system.nixos.stateVersion’ to maintain compatibility with existing
|
||||
# systems!
|
||||
mkDefault (if versionAtLeast config.system.stateVersion "17.09" then pkgs.postgresql96
|
||||
else if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql95
|
||||
mkDefault (if versionAtLeast config.system.nixos.stateVersion "17.09" then pkgs.postgresql96
|
||||
else if versionAtLeast config.system.nixos.stateVersion "16.03" then pkgs.postgresql95
|
||||
else pkgs.postgresql94);
|
||||
|
||||
services.postgresql.dataDir =
|
||||
mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/postgresql/${config.services.postgresql.package.psqlSchema}"
|
||||
mkDefault (if versionAtLeast config.system.nixos.stateVersion "17.09" then "/var/lib/postgresql/${config.services.postgresql.package.psqlSchema}"
|
||||
else "/var/db/postgresql");
|
||||
|
||||
services.postgresql.authentication = mkAfter
|
||||
|
|
|
@ -342,7 +342,7 @@ in {
|
|||
};
|
||||
database_type = mkOption {
|
||||
type = types.enum [ "sqlite3" "psycopg2" ];
|
||||
default = if versionAtLeast config.system.stateVersion "18.03"
|
||||
default = if versionAtLeast config.system.nixos.stateVersion "18.03"
|
||||
then "psycopg2"
|
||||
else "sqlite3";
|
||||
description = ''
|
||||
|
|
|
@ -14,7 +14,7 @@ let
|
|||
(optionalString (cfg.defaultMode == "norouting") "--routing=none")
|
||||
] ++ cfg.extraFlags);
|
||||
|
||||
defaultDataDir = if versionAtLeast config.system.stateVersion "17.09" then
|
||||
defaultDataDir = if versionAtLeast config.system.nixos.stateVersion "17.09" then
|
||||
"/var/lib/ipfs" else
|
||||
"/var/lib/ipfs/.ipfs";
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ let
|
|||
confFile = pkgs.writeText "radicale.conf" cfg.config;
|
||||
|
||||
# This enables us to default to version 2 while still not breaking configurations of people with version 1
|
||||
defaultPackage = if versionAtLeast config.system.stateVersion "17.09" then {
|
||||
defaultPackage = if versionAtLeast config.system.nixos.stateVersion "17.09" then {
|
||||
pkg = pkgs.radicale2;
|
||||
text = "pkgs.radicale2";
|
||||
} else {
|
||||
|
@ -35,7 +35,7 @@ in
|
|||
defaultText = defaultPackage.text;
|
||||
description = ''
|
||||
Radicale package to use. This defaults to version 1.x if
|
||||
<literal>system.stateVersion < 17.09</literal> and version 2.x
|
||||
<literal>system.nixos.stateVersion < 17.09</literal> and version 2.x
|
||||
otherwise.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -66,7 +66,7 @@ in {
|
|||
description = "Caddy web server";
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment = mkIf (versionAtLeast config.system.stateVersion "17.09")
|
||||
environment = mkIf (versionAtLeast config.system.nixos.stateVersion "17.09")
|
||||
{ CADDYPATH = cfg.dataDir; };
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
|
|
|
@ -405,15 +405,6 @@ lustrateRoot () {
|
|||
|
||||
|
||||
|
||||
|
||||
# Try to resume - all modules are loaded now.
|
||||
if test -e /sys/power/tuxonice/resume; then
|
||||
if test -n "$(cat /sys/power/tuxonice/resume)"; then
|
||||
echo 0 > /sys/power/tuxonice/user_interface/enabled
|
||||
echo 1 > /sys/power/tuxonice/do_resume || echo "failed to resume..."
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -e /sys/power/resume -a -e /sys/power/disk; then
|
||||
if test -n "@resumeDevice@" && waitDevice "@resumeDevice@"; then
|
||||
resumeDev="@resumeDevice@"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
options = {
|
||||
ec2 = {
|
||||
hvm = lib.mkOption {
|
||||
default = lib.versionAtLeast config.system.stateVersion "17.03";
|
||||
default = lib.versionAtLeast config.system.nixos.stateVersion "17.03";
|
||||
internal = true;
|
||||
description = ''
|
||||
Whether the EC2 instance is a HVM instance.
|
||||
|
|
|
@ -606,8 +606,8 @@ in
|
|||
{ config, pkgs, ... }:
|
||||
{ services.postgresql.enable = true;
|
||||
services.postgresql.package = pkgs.postgresql96;
|
||||
|
||||
system.stateVersion = "17.03";
|
||||
|
||||
system.nixos.stateVersion = "17.03";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ in
|
|||
});
|
||||
})
|
||||
];
|
||||
system.stateVersion = "17.03";
|
||||
system.nixos.stateVersion = "17.03";
|
||||
};
|
||||
radicale1_export = lib.recursiveUpdate radicale1 {
|
||||
services.radicale.extraArgs = [
|
||||
|
@ -54,7 +54,7 @@ in
|
|||
services.radicale.extraArgs = [ "--verify-storage" ];
|
||||
};
|
||||
radicale2 = lib.recursiveUpdate (common args) {
|
||||
system.stateVersion = "17.09";
|
||||
system.nixos.stateVersion = "17.09";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ let
|
|||
|
||||
cmakeFlags = [
|
||||
"-DLUA_PRG=${luaPackages.lua}/bin/lua"
|
||||
"-DGPERF_PRG=${gperf}/bin/gperf"
|
||||
];
|
||||
|
||||
# triggers on buffer overflow bug while running tests
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
dev = with python36Packages; buildPythonPackage rec {
|
||||
name = "plover-${version}";
|
||||
version = "4.0.0.dev6";
|
||||
version = "4.0.0.dev8";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "OpenSteno Plover stenography software";
|
||||
|
@ -34,14 +34,14 @@
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
|
||||
sha256 = "067rkpqnjjxwyv9cwh9i925ndba6fvj6q0r56lizy0l26b4jc8rp";
|
||||
sha256 = "1wxkmik1zyw5gqig5r0cas5v6f5408fbnximzw610rdisqy09rxp";
|
||||
};
|
||||
|
||||
# I'm not sure why we don't find PyQt5 here but there's a similar
|
||||
# sed on many of the platforms Plover builds for
|
||||
postPatch = "sed -i /PyQt5/d setup.cfg";
|
||||
|
||||
buildInputs = [ pytest mock ];
|
||||
propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs ];
|
||||
checkInputs = [ pytest mock ];
|
||||
propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "rtl-sdr-${version}";
|
||||
version = "0.5.3";
|
||||
version = "0.5.4";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://git.osmocom.org/rtl-sdr.git";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "1dh52xcvxkjb3mj80wlm20grz8cqf5wipx2ksi91ascz12b5pym6";
|
||||
sha256 = "0c56a9dhlqgs6y15ns0mn4r5giz0x6y7x151jcq755f711pc3y01";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
37
pkgs/data/fonts/rounded-mgenplus/default.nix
Normal file
37
pkgs/data/fonts/rounded-mgenplus/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ stdenv, fetchurl, p7zip }:
|
||||
|
||||
let
|
||||
pname = "rounded-mgenplus";
|
||||
version = "20150602";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://osdn.jp/downloads/users/8/8598/${name}.7z";
|
||||
sha256 = "1k15xvzd3s5ppp151wv31wrfq2ri8v96xh7i71i974rxjxj6gspc";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ p7zip ];
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
||||
unpackPhase = ''
|
||||
7z x $src
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Japanese font based on Rounded M+ and Noto Sans Japanese";
|
||||
homepage = http://jikasei.me/font/rounded-mgenplus/;
|
||||
license = licenses.ofl;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ mnacamura ];
|
||||
};
|
||||
}
|
|
@ -59,6 +59,7 @@ in stdenv.mkDerivation rec {
|
|||
})
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit (gnome3) libgnomekbd;
|
||||
inherit unzip;
|
||||
})
|
||||
];
|
||||
|
|
|
@ -9,3 +9,14 @@
|
|||
null,
|
||||
GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
|
||||
null);
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -1019,7 +1019,7 @@
|
||||
if (xkbVariant.length > 0)
|
||||
description = description + '\t' + xkbVariant;
|
||||
|
||||
- Util.spawn(['gkbd-keyboard-display', '-l', description]);
|
||||
+ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
|
||||
},
|
||||
|
||||
_containerGetPreferredWidth: function(container, for_height, alloc) {
|
||||
|
|
|
@ -7,11 +7,11 @@ assert x11Support -> libX11 != null && cairo != null;
|
|||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "hwloc-1.11.9";
|
||||
name = "hwloc-1.11.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.open-mpi.org/software/hwloc/v1.11/downloads/${name}.tar.bz2";
|
||||
sha256 = "0r2im1s5lp7zjwqalcqcnlxx0dsky1bnx5waf2r3rmj888c36hrr";
|
||||
sha256 = "1ryibcng40xcq22lsj85fn2vcvrksdx9rr3wwxpq8dw37lw0is1b";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
@name@ () {
|
||||
export G4@envvar@DATA="@out@/data"
|
||||
}
|
||||
|
||||
postHooks+=(@name@)
|
103
pkgs/development/libraries/physics/geant4/datasets.nix
Normal file
103
pkgs/development/libraries/physics/geant4/datasets.nix
Normal file
|
@ -0,0 +1,103 @@
|
|||
{ stdenv, fetchurl, }:
|
||||
|
||||
let
|
||||
mkDataset = { name, version, sha256, envvar}:
|
||||
stdenv.mkDerivation {
|
||||
inherit name version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://geant4-data.web.cern.ch/geant4-data/datasets/${name}.${version}.tar.gz";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
preferLocalBuild = true;
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/data
|
||||
mv ./* $out/data
|
||||
'';
|
||||
|
||||
inherit envvar;
|
||||
setupHook = ./datasets-hook.sh;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Data files for the Geant4 toolkit";
|
||||
homepage = "https://geant4.web.cern.ch/support/download";
|
||||
license = licenses.g4sl;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (map (a: { inherit (a) name; value = mkDataset a; }) [
|
||||
{
|
||||
name = "G4NDL";
|
||||
version = "4.5";
|
||||
sha256 = "cba928a520a788f2bc8229c7ef57f83d0934bb0c6a18c31ef05ef4865edcdf8e";
|
||||
envvar = "NEUTRONHP";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4EMLOW";
|
||||
version = "7.3";
|
||||
sha256 = "583aa7f34f67b09db7d566f904c54b21e95a9ac05b60e2bfb794efb569dba14e";
|
||||
envvar = "LE";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4PhotonEvaporation";
|
||||
version = "5.2";
|
||||
sha256 = "83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f";
|
||||
envvar = "LEVELGAMMA";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4RadioactiveDecay";
|
||||
version = "5.2";
|
||||
sha256 = "99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d";
|
||||
envvar = "RADIOACTIVE";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4SAIDDATA";
|
||||
version = "1.1";
|
||||
sha256 = "a38cd9a83db62311922850fe609ecd250d36adf264a88e88c82ba82b7da0ed7f";
|
||||
envvar = "SAIDXS";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4NEUTRONXS";
|
||||
version = "1.4";
|
||||
sha256 = "57b38868d7eb060ddd65b26283402d4f161db76ed2169437c266105cca73a8fd";
|
||||
envvar = "NEUTRONXS";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4ABLA";
|
||||
version = "3.1";
|
||||
sha256 = "7698b052b58bf1b9886beacdbd6af607adc1e099fc730ab6b21cf7f090c027ed";
|
||||
envvar = "ABLA";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4PII";
|
||||
version = "1.3";
|
||||
sha256 = "6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926";
|
||||
envvar = "PII";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4ENSDFSTATE";
|
||||
version = "2.2";
|
||||
sha256 = "dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6";
|
||||
envvar = "ENSDFSTATE";
|
||||
}
|
||||
|
||||
{
|
||||
name = "G4RealSurface";
|
||||
version = "2.1";
|
||||
sha256 = "2a287adbda1c0292571edeae2082a65b7f7bd6cf2bf088432d1d6f889426dcf3";
|
||||
envvar = "REALSURFACE";
|
||||
}
|
||||
])
|
|
@ -24,9 +24,14 @@
|
|||
# For enableXM.
|
||||
, motif ? null # motif or lesstif
|
||||
|
||||
# For enableInventor
|
||||
, coin3d
|
||||
, soxt
|
||||
, libXpm ? null
|
||||
|
||||
# For enableQT, enableXM, enableOpenGLX11, enableRaytracerX11.
|
||||
, libGLU_combined ? null
|
||||
, xlibsWrapper ? null
|
||||
, libGLU_combined ? null
|
||||
, xlibsWrapper ? null
|
||||
, libXmu ? null
|
||||
}:
|
||||
|
||||
|
@ -43,6 +48,7 @@ assert enableXM -> motif != null;
|
|||
assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libGLU_combined != null;
|
||||
assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> xlibsWrapper != null;
|
||||
assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libXmu != null;
|
||||
assert enableInventor -> libXpm != null;
|
||||
|
||||
let
|
||||
buildGeant4 =
|
||||
|
@ -52,18 +58,11 @@ let
|
|||
inherit version src;
|
||||
name = "geant4-${version}";
|
||||
|
||||
# The data directory holds not just interaction cross section data, but other
|
||||
# files which the installer needs to write, so we link to the previously installed
|
||||
# data instead. This assumes the default data installation location of $out/share.
|
||||
preConfigure = ''
|
||||
mkdir -p $out/share/Geant4-${version}
|
||||
ln -s ${g4data}/Geant4-${version}/data $out/share/Geant4-${version}/data
|
||||
'';
|
||||
|
||||
multiThreadingFlag = if multiThreadingCapable then "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}" else "";
|
||||
|
||||
cmakeFlags = ''
|
||||
${multiThreadingFlag}
|
||||
-DGEANT4_INSTALL_DATA=OFF
|
||||
-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}
|
||||
-DGEANT4_USE_G3TOG4=${if enableG3toG4 then "ON" else "OFF"}
|
||||
-DGEANT4_USE_QT=${if enableQT then "ON" else "OFF"}
|
||||
|
@ -74,24 +73,31 @@ let
|
|||
-DGEANT4_USE_SYSTEM_CLHEP=${if clhep != null then "ON" else "OFF"}
|
||||
-DGEANT4_USE_SYSTEM_EXPAT=${if expat != null then "ON" else "OFF"}
|
||||
-DGEANT4_USE_SYSTEM_ZLIB=${if zlib != null then "ON" else "OFF"}
|
||||
-DINVENTOR_INCLUDE_DIR=${coin3d}/include
|
||||
-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so
|
||||
'';
|
||||
|
||||
g4data = installData {
|
||||
inherit version src;
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
buildInputs = [ cmake clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu ];
|
||||
propagatedBuildInputs = [ g4data clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu ];
|
||||
buildInputs = [ cmake clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu libXpm coin3d soxt ];
|
||||
propagatedBuildInputs = [ clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu libXpm coin3d soxt ];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
postFixup = ''
|
||||
# Don't try to export invalid environment variables.
|
||||
sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh
|
||||
'';
|
||||
|
||||
setupHook = ./geant4-hook.sh;
|
||||
|
||||
passthru = {
|
||||
data = import ./datasets.nix { inherit stdenv fetchurl; };
|
||||
};
|
||||
|
||||
# Set the myriad of envars required by Geant4 if we use a nix-shell.
|
||||
shellHook = ''
|
||||
source $out/nix-support/setup-hook
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "A toolkit for the simulation of the passage of particles through matter";
|
||||
longDescription = ''
|
||||
Geant4 is a toolkit for the simulation of the passage of particles through matter.
|
||||
|
@ -99,44 +105,12 @@ let
|
|||
The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278.
|
||||
'';
|
||||
homepage = http://www.geant4.org;
|
||||
license = stdenv.lib.licenses.g4sl;
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
license = licenses.g4sl;
|
||||
maintainers = with maintainers; [ tmplt ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
};
|
||||
|
||||
installData =
|
||||
{ version, src }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit version src;
|
||||
name = "g4data-${version}";
|
||||
|
||||
cmakeFlags = ''
|
||||
-DGEANT4_INSTALL_DATA="ON"
|
||||
'';
|
||||
|
||||
buildInputs = [ cmake expat ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
buildPhase = ''
|
||||
make G4EMLOW G4NDL G4NEUTRONXS G4PII G4SAIDDATA PhotonEvaporation RadioactiveDecay RealSurface
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/Geant4-${version}
|
||||
cp -R data/ $out/Geant4-${version}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Data files for the Geant4 toolkit";
|
||||
homepage = http://www.geant4.org;
|
||||
license = stdenv.lib.licenses.g4sl;
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
};
|
||||
|
||||
fetchGeant4 = import ./fetch.nix {
|
||||
inherit stdenv fetchurl;
|
||||
};
|
||||
|
@ -146,5 +120,9 @@ in {
|
|||
inherit (fetchGeant4.v10_0_2) version src;
|
||||
multiThreadingCapable = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
v10_4_1 = buildGeant4 {
|
||||
inherit (fetchGeant4.v10_4_1) version src;
|
||||
multiThreadingCapable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,7 +13,17 @@ in {
|
|||
src = fetchurl{
|
||||
url = "http://geant4.cern.ch/support/source/geant4.10.00.p02.tar.gz";
|
||||
sha256 = "9d615200901f1a5760970e8f5970625ea146253e4f7c5ad9df2a9cf84549e848";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
v10_4_1 = fetch {
|
||||
version = "10.4.1";
|
||||
|
||||
src = fetchurl{
|
||||
url = "http://cern.ch/geant4-data/releases/geant4.10.04.p01.tar.gz";
|
||||
sha256 = "a3eb13e4f1217737b842d3869dc5b1fb978f761113e74bd4eaf6017307d234dd";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
|
21
pkgs/development/libraries/soxt/default.nix
Normal file
21
pkgs/development/libraries/soxt/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ fetchurl, stdenv, coin3d, motif, xlibsWrapper, libGLU_combined }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "soxt-${version}";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://bitbucket.org/Coin3D/coin/downloads/SoXt-${version}.tar.gz";
|
||||
sha256= "f5443aadafe8e2222b9b5a23d1f228bb0f3e7d98949b8ea8676171b7ea5bf013";
|
||||
};
|
||||
|
||||
buildInputs = [ coin3d motif xlibsWrapper libGLU_combined ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.coin3d.org/;
|
||||
license = licenses.bsd3;
|
||||
description = "A GUI binding for using Open Inventor with Xt/Motif";
|
||||
maintainers = with maintainers; [ tmplt ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -1,20 +1,26 @@
|
|||
{lib, fetchgit, buildPythonPackage, pytest, numpy, scipy, matplotlib, docutils}:
|
||||
{ lib, fetchFromGitHub, buildPythonPackage, pytest, numpy, scipy, matplotlib, docutils
|
||||
, pyopencl, opencl-headers
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sasmodels";
|
||||
version = "0.96";
|
||||
pname = "sasmodels-unstable";
|
||||
version = "2018-04-27";
|
||||
|
||||
buildInputs = [pytest];
|
||||
propagatedBuildInputs = [docutils matplotlib numpy scipy];
|
||||
|
||||
preCheck = ''export HOME=$(mktemp -d)'';
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/SasView/sasmodels.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "11qaaqdc23qzb75zs48fkypksmcb332vl0pkjqr5bijxxymgm7nw";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SasView";
|
||||
repo = "sasmodels";
|
||||
rev = "33969b656596e8b6cc8ce934cd1f8062f7b11cf2";
|
||||
sha256 = "00rvhafg08qvx0k9mzn1ppdkc9i5yfn2gr3hidrf416srf8zgb85";
|
||||
};
|
||||
|
||||
buildInputs = [ opencl-headers ];
|
||||
checkInputs = [ pytest ];
|
||||
propagatedBuildInputs = [ docutils matplotlib numpy scipy pyopencl ];
|
||||
|
||||
checkPhase = ''
|
||||
HOME=$(mktemp -d) py.test -c ./pytest.ini
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Library of small angle scattering models";
|
||||
homepage = http://sasview.org;
|
||||
|
|
|
@ -4,7 +4,7 @@ with stdenv.lib;
|
|||
with pythonPackages;
|
||||
|
||||
let
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
in buildPythonApplication rec {
|
||||
inherit version;
|
||||
pname = "pantsbuild.pants";
|
||||
|
@ -12,7 +12,7 @@ in buildPythonApplication rec {
|
|||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "7c0a1206594c615fce0a7f6daa4ea1028645bc20afa5599c2cf0ad7c06223fa7";
|
||||
sha256 = "0ahvcj33xribypgyh515mb3ack1djr0cq27nlyk0qhwgwv6acfnj";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
|
@ -27,7 +27,7 @@ in buildPythonApplication rec {
|
|||
twitter-common-collections setproctitle ansicolors packaging pathspec
|
||||
scandir twitter-common-dirutil psutil requests pystache pex docutils
|
||||
markdown pygments twitter-common-confluence fasteners pywatchman
|
||||
futures cffi subprocess32 contextlib2 faulthandler pyopenssl
|
||||
futures cffi subprocess32 contextlib2 faulthandler pyopenssl wheel
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -1,26 +1,23 @@
|
|||
{ stdenv, fetchFromGitHub, pkgconfig, libusb }:
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, libusb, zlib }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "sunxi-tools-1.3";
|
||||
name = "sunxi-tools-20171130";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linux-sunxi";
|
||||
repo = "sunxi-tools";
|
||||
rev = "be1b4c7400161b90437432076360c1f99970f54f";
|
||||
sha256 = "02pqaaahra4wbv325264qh5i17mxwicmjx9nm33nw2dpmfmg9xhr";
|
||||
rev = "5c1971040c6c44caefb98e371bfca9e18d511da9";
|
||||
sha256 = "0qzm515i3dfn82a6sf7372080zb02d365z52bh0b1q711r4dvjgp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ libusb ];
|
||||
buildInputs = [ libusb zlib ];
|
||||
|
||||
buildPhase = ''
|
||||
make all misc
|
||||
'';
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp bin2fex fex2bin phoenix_info sunxi-bootinfo sunxi-fel sunxi-fexc sunxi-nand-part sunxi-pio $out/bin
|
||||
'';
|
||||
buildFlags = [ "tools" "misc" ];
|
||||
|
||||
installTargets = [ "install-tools" "install-misc" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tools for Allwinner A10 devices";
|
||||
|
|
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ gnome3.glib libxml2 bc ];
|
||||
|
||||
buildInputs = [ gnome3.gnome-themes-standard gdk_pixbuf librsvg ];
|
||||
buildInputs = [ gnome3.gnome-themes-extra gdk_pixbuf librsvg ];
|
||||
|
||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
||||
|
||||
|
@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
|
|||
-e "s|if .*which gnome-shell.*;|if true;|" \
|
||||
-e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${gnome3.version}|"
|
||||
mkdir -p $out/share/themes
|
||||
./install.sh --dest $out/share/themes
|
||||
# name is used internally by the package installation script
|
||||
name= ./install.sh --dest $out/share/themes
|
||||
rm $out/share/themes/*/COPYING
|
||||
'';
|
||||
|
||||
|
|
30
pkgs/os-specific/linux/compsize/default.nix
Normal file
30
pkgs/os-specific/linux/compsize/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{ stdenv, fetchFromGitHub, btrfs-progs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "compsize-${version}";
|
||||
version = "2018-04-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kilobyte";
|
||||
repo = "compsize";
|
||||
rev = "903f772e37fc0ac6d6cf94ddbc98c691763c1e62";
|
||||
sha256 = "0jps8n0xsdh4mcww5q29rzysbv50iq6rmihxrf99lzgrw0sw5m7k";
|
||||
};
|
||||
|
||||
buildInputs = [ btrfs-progs ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share/man/man8
|
||||
install -m 0755 compsize $out/bin
|
||||
install -m 0444 compsize.8 $out/share/man/man8
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "btrfs: Find compression type/ratio on a file or set of files";
|
||||
homepage = https://github.com/kilobyte/compsize;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ CrazedProgrammer ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -1,26 +1,6 @@
|
|||
{ stdenv, fetchurl, fetchpatch, pkgs }:
|
||||
|
||||
let
|
||||
|
||||
makeTuxonicePatch = { version, kernelVersion, sha256,
|
||||
url ? "http://tuxonice.nigelcunningham.com.au/downloads/all/tuxonice-for-linux-${kernelVersion}-${version}.patch.bz2" }:
|
||||
{ name = "tuxonice-${kernelVersion}";
|
||||
patch = stdenv.mkDerivation {
|
||||
name = "tuxonice-${version}-for-${kernelVersion}.patch";
|
||||
src = fetchurl {
|
||||
inherit url sha256;
|
||||
};
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
source $stdenv/setup
|
||||
bunzip2 -c $src > $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
rec {
|
||||
|
||||
bridge_stp_helper =
|
||||
{ name = "bridge-stp-helper";
|
||||
patch = ./bridge-stp-helper.patch;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, help2man, gettext
|
||||
, libxml2, perl, doxygen }:
|
||||
, libxml2, perl, python3, doxygen }:
|
||||
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -15,7 +15,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ autoreconfHook doxygen gettext libxml2 help2man perl pkgconfig ];
|
||||
|
||||
configureFlags = [ "--disable-python" "--disable-graphviz" ];
|
||||
buildInputs = [ python3 ];
|
||||
|
||||
configureFlags = [ "--disable-graphviz" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
, generateManPage ? false
|
||||
, ffmpegSupport ? true
|
||||
, rtmpSupport ? true
|
||||
, phantomjsSupport ? !targetPlatform.isDarwin # phantomjs2 is broken on darwin
|
||||
, phantomjsSupport ? false
|
||||
, hlsEncryptedSupport ? true
|
||||
, makeWrapper }:
|
||||
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
{ stdenv, fetchFromGitHub, rustPlatform }:
|
||||
|
||||
with rustPlatform;
|
||||
|
||||
buildRustPackage rec {
|
||||
rustPlatform.buildRustPackage rec {
|
||||
name = "xsv-${version}";
|
||||
version = "0.12.2";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BurntSushi";
|
||||
repo = "xsv";
|
||||
rev = "${version}";
|
||||
sha256 = "0z1z3b6nzaid510jaikkawvpmv4kjphzz84p0hppq6vcp5jy00s2";
|
||||
rev = version;
|
||||
sha256 = "17v1nw36mrarrd5yv4xd3mpc1d7lvhd5786mqkzyyraf78pjg045";
|
||||
};
|
||||
|
||||
cargoSha256 = "0pdzh2xr40dgwravh3i58g602bpszj6c8inggzgmq2kfk8ck6rgj";
|
||||
cargoSha256 = "1qk5wkjm3d4dz5fldlq7rjlm602v0l04hxrbar2j6vhcz9w2r4n6";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A fast CSV toolkit written in Rust";
|
||||
homepage = https://github.com/BurntSushi/xsv;
|
||||
license = with licenses; [ unlicense ];
|
||||
license = with licenses; [ unlicense /* or */ mit ];
|
||||
maintainers = [ maintainers.jgertm ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
|
|
@ -1061,6 +1061,8 @@ with pkgs;
|
|||
inherit (darwin.apple_sdk.frameworks) Foundation AddressBook;
|
||||
};
|
||||
|
||||
compsize = callPackage ../os-specific/linux/compsize { };
|
||||
|
||||
coturn = callPackage ../servers/coturn { };
|
||||
|
||||
coursier = callPackage ../development/tools/coursier {};
|
||||
|
@ -4707,6 +4709,8 @@ with pkgs;
|
|||
|
||||
rnv = callPackage ../tools/text/xml/rnv { };
|
||||
|
||||
rounded-mgenplus = callPackage ../data/fonts/rounded-mgenplus { };
|
||||
|
||||
roundup = callPackage ../tools/misc/roundup { };
|
||||
|
||||
routino = callPackage ../tools/misc/routino { };
|
||||
|
@ -8652,6 +8656,8 @@ with pkgs;
|
|||
|
||||
coin3d = callPackage ../development/libraries/coin3d { };
|
||||
|
||||
soxt = callPackage ../development/libraries/soxt { };
|
||||
|
||||
CoinMP = callPackage ../development/libraries/CoinMP { };
|
||||
|
||||
cointop = callPackage ../applications/misc/cointop { };
|
||||
|
|
Loading…
Reference in a new issue