diff --git a/lib/modules.nix b/lib/modules.nix index 6c8033322a5..41a5fb89fde 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -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 diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b60d5643434..a2db508d4d2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -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"; diff --git a/nixos/doc/manual/development/releases.xml b/nixos/doc/manual/development/releases.xml index d4e5ff3f431..863110a1c7c 100755 --- a/nixos/doc/manual/development/releases.xml +++ b/nixos/doc/manual/development/releases.xml @@ -70,7 +70,7 @@ - Bump the system.defaultChannel attribute in + Bump the system.nixos.defaultChannel attribute in nixos/modules/misc/version.nix diff --git a/nixos/doc/manual/release-notes/rl-1509.xml b/nixos/doc/manual/release-notes/rl-1509.xml index e500c9d6342..734bc076b85 100644 --- a/nixos/doc/manual/release-notes/rl-1509.xml +++ b/nixos/doc/manual/release-notes/rl-1509.xml @@ -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 -system.stateVersion = "14.12"; +system.nixos.stateVersion = "14.12"; - The new option ensures that certain + The new option ensures that certain configuration changes that could break existing systems (such as the sshd host key setting) will maintain compatibility with the specified NixOS release. NixOps sets the state version of existing diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 74b61a64667..a198c2d49b5 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -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 diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix index 74c86443ab9..33d8a786169 100644 --- a/nixos/modules/misc/version.nix +++ b/nixos/modules/misc/version.nix @@ -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. 16.03.1160.f2d4ee1)."; }; - nixos.release = mkOption { + release = mkOption { readOnly = true; type = types.str; default = trivial.release; description = "The NixOS release (e.g. 16.03)."; }; - nixos.versionSuffix = mkOption { + versionSuffix = mkOption { internal = true; type = types.str; default = trivial.versionSuffix; description = "The NixOS version suffix (e.g. 1160.f2d4ee1)."; }; - 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. Emu)."; @@ -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 diff --git a/nixos/modules/programs/shell.nix b/nixos/modules/programs/shell.nix index d8845fd8f44..3504a8a924b 100644 --- a/nixos/modules/programs/shell.nix +++ b/nixos/modules/programs/shell.nix @@ -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. diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 56b7bf00448..8820a6da8c0 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -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" ]) diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix index 21a131b90a8..66c9330c355 100644 --- a/nixos/modules/services/databases/mysql.nix +++ b/nixos/modules/services/databases/mysql.nix @@ -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 = { diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index f022e0863df..4ad4728ccda 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -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 diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix index 10901e10222..f7441988b27 100644 --- a/nixos/modules/services/misc/matrix-synapse.nix +++ b/nixos/modules/services/misc/matrix-synapse.nix @@ -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 = '' diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index 39a4fd6beff..e2122ddb8ed 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -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"; diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix index 391f4bdebba..97ee05046ff 100644 --- a/nixos/modules/services/networking/radicale.nix +++ b/nixos/modules/services/networking/radicale.nix @@ -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 - system.stateVersion < 17.09 and version 2.x + system.nixos.stateVersion < 17.09 and version 2.x otherwise. ''; }; diff --git a/nixos/modules/services/web-servers/caddy.nix b/nixos/modules/services/web-servers/caddy.nix index 2124a42f01a..fe65fba42a4 100644 --- a/nixos/modules/services/web-servers/caddy.nix +++ b/nixos/modules/services/web-servers/caddy.nix @@ -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 = '' diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 1facf419ed0..92e68b72664 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -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@" diff --git a/nixos/modules/virtualisation/amazon-options.nix b/nixos/modules/virtualisation/amazon-options.nix index 349fd3adfc9..9ecdcf23e5f 100644 --- a/nixos/modules/virtualisation/amazon-options.nix +++ b/nixos/modules/virtualisation/amazon-options.nix @@ -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. diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 248c2fc1fb2..c3044ea124c 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -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"; }; }; } diff --git a/nixos/tests/radicale.nix b/nixos/tests/radicale.nix index 8ac0639c6a8..e3843038541 100644 --- a/nixos/tests/radicale.nix +++ b/nixos/tests/radicale.nix @@ -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"; }; }; diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 149f7804a79..480b749d201 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -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 diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix index 09558ff4c47..b9323ece1f4 100644 --- a/pkgs/applications/misc/plover/default.nix +++ b/pkgs/applications/misc/plover/default.nix @@ -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 ]; }; } diff --git a/pkgs/applications/misc/rtl-sdr/default.nix b/pkgs/applications/misc/rtl-sdr/default.nix index f1c3cbc5557..92e96a7fb5e 100644 --- a/pkgs/applications/misc/rtl-sdr/default.nix +++ b/pkgs/applications/misc/rtl-sdr/default.nix @@ -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 ]; diff --git a/pkgs/data/fonts/rounded-mgenplus/default.nix b/pkgs/data/fonts/rounded-mgenplus/default.nix new file mode 100644 index 00000000000..c6cb61b7bd1 --- /dev/null +++ b/pkgs/data/fonts/rounded-mgenplus/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix index 6b1e15bbc99..ae9aa047ba0 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix @@ -59,6 +59,7 @@ in stdenv.mkDerivation rec { }) (substituteAll { src = ./fix-paths.patch; + inherit (gnome3) libgnomekbd; inherit unzip; }) ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch index 7b7ff85a7c8..32a0cc476da 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch @@ -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) { diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix index ad39a4fde31..90a16bcf7f9 100644 --- a/pkgs/development/libraries/hwloc/default.nix +++ b/pkgs/development/libraries/hwloc/default.nix @@ -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 = [ diff --git a/pkgs/development/libraries/physics/geant4/datasets-hook.sh b/pkgs/development/libraries/physics/geant4/datasets-hook.sh new file mode 100644 index 00000000000..14e3b8f2fc3 --- /dev/null +++ b/pkgs/development/libraries/physics/geant4/datasets-hook.sh @@ -0,0 +1,5 @@ +@name@ () { + export G4@envvar@DATA="@out@/data" +} + +postHooks+=(@name@) diff --git a/pkgs/development/libraries/physics/geant4/datasets.nix b/pkgs/development/libraries/physics/geant4/datasets.nix new file mode 100644 index 00000000000..88f2dc2cd6d --- /dev/null +++ b/pkgs/development/libraries/physics/geant4/datasets.nix @@ -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"; + } + ]) diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 794d0b24c77..87af069c18a 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -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; + }; +} diff --git a/pkgs/development/libraries/physics/geant4/fetch.nix b/pkgs/development/libraries/physics/geant4/fetch.nix index 0e5dd54c6ae..7dc4c865627 100644 --- a/pkgs/development/libraries/physics/geant4/fetch.nix +++ b/pkgs/development/libraries/physics/geant4/fetch.nix @@ -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"; + }; + }; + } diff --git a/pkgs/development/libraries/physics/geant4/setup-hook.sh b/pkgs/development/libraries/physics/geant4/geant4-hook.sh similarity index 100% rename from pkgs/development/libraries/physics/geant4/setup-hook.sh rename to pkgs/development/libraries/physics/geant4/geant4-hook.sh diff --git a/pkgs/development/libraries/soxt/default.nix b/pkgs/development/libraries/soxt/default.nix new file mode 100644 index 00000000000..13f037960b0 --- /dev/null +++ b/pkgs/development/libraries/soxt/default.nix @@ -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; + }; +} diff --git a/pkgs/development/python-modules/sasmodels/default.nix b/pkgs/development/python-modules/sasmodels/default.nix index d33de9c2a73..d84e8329903 100644 --- a/pkgs/development/python-modules/sasmodels/default.nix +++ b/pkgs/development/python-modules/sasmodels/default.nix @@ -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; diff --git a/pkgs/development/tools/build-managers/pants/default.nix b/pkgs/development/tools/build-managers/pants/default.nix index 54e6d38f716..b99bc4f6b75 100644 --- a/pkgs/development/tools/build-managers/pants/default.nix +++ b/pkgs/development/tools/build-managers/pants/default.nix @@ -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 = { diff --git a/pkgs/development/tools/sunxi-tools/default.nix b/pkgs/development/tools/sunxi-tools/default.nix index 59252a93863..0bddd0d3e17 100644 --- a/pkgs/development/tools/sunxi-tools/default.nix +++ b/pkgs/development/tools/sunxi-tools/default.nix @@ -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"; diff --git a/pkgs/misc/themes/materia-theme/default.nix b/pkgs/misc/themes/materia-theme/default.nix index 69a874d07c3..4b6d364a856 100644 --- a/pkgs/misc/themes/materia-theme/default.nix +++ b/pkgs/misc/themes/materia-theme/default.nix @@ -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 ''; diff --git a/pkgs/os-specific/linux/compsize/default.nix b/pkgs/os-specific/linux/compsize/default.nix new file mode 100644 index 00000000000..a18011836f9 --- /dev/null +++ b/pkgs/os-specific/linux/compsize/default.nix @@ -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; + }; +} diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 4ba182ea5a5..fb28bba1c32 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -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; diff --git a/pkgs/os-specific/linux/libsmbios/default.nix b/pkgs/os-specific/linux/libsmbios/default.nix index 62898675f2b..c61fa683c75 100644 --- a/pkgs/os-specific/linux/libsmbios/default.nix +++ b/pkgs/os-specific/linux/libsmbios/default.nix @@ -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; diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix index 19173de41e5..b7e3116b672 100644 --- a/pkgs/tools/misc/youtube-dl/default.nix +++ b/pkgs/tools/misc/youtube-dl/default.nix @@ -8,7 +8,7 @@ , generateManPage ? false , ffmpegSupport ? true , rtmpSupport ? true -, phantomjsSupport ? !targetPlatform.isDarwin # phantomjs2 is broken on darwin +, phantomjsSupport ? false , hlsEncryptedSupport ? true , makeWrapper }: diff --git a/pkgs/tools/text/xsv/default.nix b/pkgs/tools/text/xsv/default.nix index 23f172f4ebe..960449cd022 100644 --- a/pkgs/tools/text/xsv/default.nix +++ b/pkgs/tools/text/xsv/default.nix @@ -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; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a73c7fbddd2..6fd4b6bd902 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };