diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4f5e7132ce44..b0db7947afdb 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6017,6 +6017,12 @@ githubId = 127353; name = "Geoffrey Huntley"; }; + gigglesquid = { + email = "jack.connors@protonmail.com"; + github = "gigglesquid"; + githubId = 3685154; + name = "Jack connors"; + }; gila = { email = "jeffry.molanus@gmail.com"; github = "gila"; diff --git a/nixos/modules/programs/atop.nix b/nixos/modules/programs/atop.nix index 9d5843bd670e..a5f4d990bdbe 100644 --- a/nixos/modules/programs/atop.nix +++ b/nixos/modules/programs/atop.nix @@ -123,8 +123,8 @@ in boot.extraModulePackages = [ (lib.mkIf cfg.netatop.enable cfg.netatop.package) ]; systemd = let - mkSystemd = type: cond: name: restartTriggers: { - ${name} = lib.mkIf cond { + mkSystemd = type: name: restartTriggers: { + ${name} = { inherit restartTriggers; wantedBy = [ (if type == "services" then "multi-user.target" else if type == "timers" then "timers.target" else null) ]; }; @@ -134,42 +134,44 @@ in in { packages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ]; - services = - mkService cfg.atopService.enable "atop" [ atop ] - // lib.mkIf cfg.atopService.enable { - # always convert logs to newer version first - # XXX might trigger TimeoutStart but restarting atop.service will - # convert remainings logs and start eventually - atop.serviceConfig.ExecStartPre = pkgs.writeShellScript "atop-update-log-format" '' - set -e -u - shopt -s nullglob - for logfile in "$LOGPATH"/atop_* - do - ${atop}/bin/atopconvert "$logfile" "$logfile".new - # only replace old file if version was upgraded to avoid - # false positives for atop-rotate.service - if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new - then - ${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile" - else - ${pkgs.coreutils}/bin/rm -f "$logfile".new - fi - done - ''; - } - // mkService cfg.atopacctService.enable "atopacct" [ atop ] - // mkService cfg.netatop.enable "netatop" [ cfg.netatop.package ] - // mkService cfg.atopgpu.enable "atopgpu" [ atop ]; - timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ]; + services = lib.mkMerge [ + (lib.mkIf cfg.atopService.enable (lib.recursiveUpdate + (mkService "atop" [ atop ]) + { + # always convert logs to newer version first + # XXX might trigger TimeoutStart but restarting atop.service will + # convert remainings logs and start eventually + atop.preStart = '' + set -e -u + shopt -s nullglob + for logfile in "$LOGPATH"/atop_* + do + ${atop}/bin/atopconvert "$logfile" "$logfile".new + # only replace old file if version was upgraded to avoid + # false positives for atop-rotate.service + if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new + then + ${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile" + else + ${pkgs.coreutils}/bin/rm -f "$logfile".new + fi + done + ''; + })) + (lib.mkIf cfg.atopacctService.enable (mkService "atopacct" [ atop ])) + (lib.mkIf cfg.netatop.enable (mkService "netatop" [ cfg.netatop.package ])) + (lib.mkIf cfg.atopgpu.enable (mkService "atopgpu" [ atop ])) + ]; + timers = lib.mkIf cfg.atopRotateTimer.enable (mkTimer "atop-rotate" [ atop ]); }; security.wrappers = lib.mkIf cfg.setuidWrapper.enable { - atop = - { setuid = true; - owner = "root"; - group = "root"; - source = "${atop}/bin/atop"; - }; + atop = { + setuid = true; + owner = "root"; + group = "root"; + source = "${atop}/bin/atop"; + }; }; } ); diff --git a/nixos/modules/services/cluster/patroni/default.nix b/nixos/modules/services/cluster/patroni/default.nix index 83b372f59497..9bf3a285836c 100644 --- a/nixos/modules/services/cluster/patroni/default.nix +++ b/nixos/modules/services/cluster/patroni/default.nix @@ -6,9 +6,6 @@ let defaultGroup = "patroni"; format = pkgs.formats.yaml { }; - #boto doesn't support python 3.10 yet - patroni = pkgs.patroni.override { pythonPackages = pkgs.python39Packages; }; - configFileName = "patroni-${cfg.scope}-${cfg.name}.yaml"; configFile = format.generate configFileName cfg.settings; in @@ -224,7 +221,7 @@ in script = '' ${concatStringsSep "\n" (attrValues (mapAttrs (name: path: ''export ${name}="$(< ${escapeShellArg path})"'') cfg.environmentFiles))} - exec ${patroni}/bin/patroni ${configFile} + exec ${pkgs.patroni}/bin/patroni ${configFile} ''; serviceConfig = mkMerge [ @@ -252,7 +249,7 @@ in ''; environment.systemPackages = [ - patroni + pkgs.patroni cfg.postgresqlPackage (mkIf cfg.raft pkgs.python310Packages.pysyncobj) ]; diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix index a40b939a16c7..a35ca4168074 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agents.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix @@ -1,64 +1,49 @@ { config, lib, pkgs, ... }: -with lib; - let cfg = config.services.buildkite-agents; - mkHookOption = { name, description, example ? null }: { - inherit name; - value = mkOption { - default = null; - description = lib.mdDoc description; - type = types.nullOr types.lines; - } // (lib.optionalAttrs (example != null) { inherit example; }); - }; - mkHookOptions = hooks: listToAttrs (map mkHookOption hooks); - - hooksDir = cfg: let - mkHookEntry = name: value: '' - cat > $out/${name} <<'EOF' - #! ${pkgs.runtimeShell} - set -e - ${value} - EOF - chmod 755 $out/${name} + hooksDir = hooks: + let + mkHookEntry = name: text: '' + ln --symbolic ${pkgs.writeShellApplication { inherit name text; }}/bin/${name} $out/${name} + ''; + in + pkgs.runCommandLocal "buildkite-agent-hooks" { } '' + mkdir $out + ${lib.concatStringsSep "\n" (lib.mapAttrsToList mkHookEntry hooks)} ''; - in pkgs.runCommand "buildkite-agent-hooks" { preferLocalBuild = true; } '' - mkdir $out - ${concatStringsSep "\n" (mapAttrsToList mkHookEntry (filterAttrs (n: v: v != null) cfg.hooks))} - ''; buildkiteOptions = { name ? "", config, ... }: { options = { - enable = mkOption { + enable = lib.mkOption { default = true; - type = types.bool; + type = lib.types.bool; description = lib.mdDoc "Whether to enable this buildkite agent"; }; - package = mkOption { + package = lib.mkOption { default = pkgs.buildkite-agent; - defaultText = literalExpression "pkgs.buildkite-agent"; + defaultText = lib.literalExpression "pkgs.buildkite-agent"; description = lib.mdDoc "Which buildkite-agent derivation to use"; - type = types.package; + type = lib.types.package; }; - dataDir = mkOption { + dataDir = lib.mkOption { default = "/var/lib/buildkite-agent-${name}"; description = lib.mdDoc "The workdir for the agent"; - type = types.str; + type = lib.types.str; }; - runtimePackages = mkOption { + runtimePackages = lib.mkOption { default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]; - defaultText = literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]"; + defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]"; description = lib.mdDoc "Add programs to the buildkite-agent environment"; - type = types.listOf types.package; + type = lib.types.listOf lib.types.package; }; - tokenPath = mkOption { - type = types.path; + tokenPath = lib.mkOption { + type = lib.types.path; description = lib.mdDoc '' The token from your Buildkite "Agents" page. @@ -67,25 +52,25 @@ let ''; }; - name = mkOption { - type = types.str; + name = lib.mkOption { + type = lib.types.str; default = "%hostname-${name}-%n"; description = lib.mdDoc '' The name of the agent as seen in the buildkite dashboard. ''; }; - tags = mkOption { - type = types.attrsOf (types.either types.str (types.listOf types.str)); - default = {}; - example = { queue = "default"; docker = "true"; ruby2 ="true"; }; + tags = lib.mkOption { + type = lib.types.attrsOf (lib.types.either lib.types.str (lib.types.listOf lib.types.str)); + default = { }; + example = { queue = "default"; docker = "true"; ruby2 = "true"; }; description = lib.mdDoc '' Tags for the agent. ''; }; - extraConfig = mkOption { - type = types.lines; + extraConfig = lib.mkOption { + type = lib.types.lines; default = ""; example = "debug=true"; description = lib.mdDoc '' @@ -93,8 +78,8 @@ let ''; }; - privateSshKeyPath = mkOption { - type = types.nullOr types.path; + privateSshKeyPath = lib.mkOption { + type = lib.types.nullOr lib.types.path; default = null; ## maximum care is taken so that secrets (ssh keys and the CI token) ## don't end up in the Nix store. @@ -108,67 +93,25 @@ let ''; }; - hooks = mkHookOptions [ - { name = "checkout"; - description = '' - The `checkout` hook script will replace the default checkout routine of the - bootstrap.sh script. You can use this hook to do your own SCM checkout - behaviour - ''; } - { name = "command"; - description = '' - The `command` hook script will replace the default implementation of running - the build command. - ''; } - { name = "environment"; - description = '' - The `environment` hook will run before all other commands, and can be used - to set up secrets, data, etc. Anything exported in hooks will be available - to the build script. + hooks = lib.mkOption { + type = lib.types.attrsOf lib.types.lines; + default = { }; + example = lib.literalExpression '' + { + environment = ''' + export SECRET_VAR=`head -1 /run/keys/secret` + '''; + }''; + description = lib.mdDoc '' + "Agent" hooks to install. + See for possible options. + ''; + }; - Note: the contents of this file will be copied to the world-readable - Nix store. - ''; - example = '' - export SECRET_VAR=`head -1 /run/keys/secret` - ''; } - { name = "post-artifact"; - description = '' - The `post-artifact` hook will run just after artifacts are uploaded - ''; } - { name = "post-checkout"; - description = '' - The `post-checkout` hook will run after the bootstrap script has checked out - your projects source code. - ''; } - { name = "post-command"; - description = '' - The `post-command` hook will run after the bootstrap script has run your - build commands - ''; } - { name = "pre-artifact"; - description = '' - The `pre-artifact` hook will run just before artifacts are uploaded - ''; } - { name = "pre-checkout"; - description = '' - The `pre-checkout` hook will run just before your projects source code is - checked out from your SCM provider - ''; } - { name = "pre-command"; - description = '' - The `pre-command` hook will run just before your build command runs - ''; } - { name = "pre-exit"; - description = '' - The `pre-exit` hook will run just before your build job finishes - ''; } - ]; - - hooksPath = mkOption { - type = types.path; - default = hooksDir config; - defaultText = literalMD "generated from {option}`services.buildkite-agents..hooks`"; + hooksPath = lib.mkOption { + type = lib.types.path; + default = hooksDir config.hooks; + defaultText = lib.literalMD "generated from {option}`services.buildkite-agents..hooks`"; description = lib.mdDoc '' Path to the directory storing the hooks. Consider using {option}`services.buildkite-agents..hooks.` @@ -176,10 +119,10 @@ let ''; }; - shell = mkOption { - type = types.str; + shell = lib.mkOption { + type = lib.types.str; default = "${pkgs.bash}/bin/bash -e -c"; - defaultText = literalExpression ''"''${pkgs.bash}/bin/bash -e -c"''; + defaultText = lib.literalExpression ''"''${pkgs.bash}/bin/bash -e -c"''; description = lib.mdDoc '' Command that buildkite-agent 3 will execute when it spawns a shell. ''; @@ -190,9 +133,9 @@ let mapAgents = function: lib.mkMerge (lib.mapAttrsToList function enabledAgents); in { - options.services.buildkite-agents = mkOption { - type = types.attrsOf (types.submodule buildkiteOptions); - default = {}; + options.services.buildkite-agents = lib.mkOption { + type = lib.types.attrsOf (lib.types.submodule buildkiteOptions); + default = { }; description = lib.mdDoc '' Attribute set of buildkite agents. The attribute key is combined with the hostname and a unique integer to @@ -213,23 +156,24 @@ in }; }); config.users.groups = mapAgents (name: cfg: { - "buildkite-agent-${name}" = {}; + "buildkite-agent-${name}" = { }; }); config.systemd.services = mapAgents (name: cfg: { - "buildkite-agent-${name}" = - { description = "Buildkite Agent"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - path = cfg.runtimePackages ++ [ cfg.package pkgs.coreutils ]; - environment = config.networking.proxy.envVars // { - HOME = cfg.dataDir; - NIX_REMOTE = "daemon"; - }; + "buildkite-agent-${name}" = { + description = "Buildkite Agent"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = cfg.runtimePackages ++ [ cfg.package pkgs.coreutils ]; + environment = config.networking.proxy.envVars // { + HOME = cfg.dataDir; + NIX_REMOTE = "daemon"; + }; - ## NB: maximum care is taken so that secrets (ssh keys and the CI token) - ## don't end up in the Nix store. - preStart = let + ## NB: maximum care is taken so that secrets (ssh keys and the CI token) + ## don't end up in the Nix store. + preStart = + let sshDir = "${cfg.dataDir}/.ssh"; tagStr = name: value: if lib.isList value @@ -237,44 +181,39 @@ in else "${name}=${value}"; tagsStr = lib.concatStringsSep "," (lib.mapAttrsToList tagStr cfg.tags); in - optionalString (cfg.privateSshKeyPath != null) '' - mkdir -m 0700 -p "${sshDir}" - install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa" - '' + '' - cat > "${cfg.dataDir}/buildkite-agent.cfg" < "${cfg.dataDir}/buildkite-agent.cfg" <' are mutually exclusive. - ''; - } - ]); - - imports = [ - (mkRemovedOptionModule [ "services" "buildkite-agent"] "services.buildkite-agent has been upgraded from version 2 to version 3 and moved to an attribute set at services.buildkite-agents. Please consult the 20.03 release notes for more information.") - ]; + config.assertions = mapAgents (name: cfg: [{ + assertion = cfg.hooksPath != hooksDir cfg.hooks -> cfg.hooks == { }; + message = '' + Options `services.buildkite-agents.${name}.hooksPath' and + `services.buildkite-agents.${name}.hooks.' are mutually exclusive. + ''; + }]); } diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix index 76deb0f0aa1d..47b5ccb68cc6 100644 --- a/nixos/tests/kernel-generic.nix +++ b/nixos/tests/kernel-generic.nix @@ -9,7 +9,7 @@ let testsForLinuxPackages = linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: { name = "kernel-${linuxPackages.kernel.version}"; meta = with pkgs.lib.maintainers; { - maintainers = [ nequissimus atemu ]; + maintainers = [ nequissimus atemu ma27 ]; }; nodes.machine = { ... }: @@ -33,6 +33,11 @@ let linux_6_1_hardened linux_6_3_hardened linux_6_4_hardened + linux_rt_5_4 + linux_rt_5_10 + linux_rt_5_15 + linux_rt_6_1 + linux_libre linux_testing; }; diff --git a/pkgs/applications/blockchains/gridcoin-research/default.nix b/pkgs/applications/blockchains/gridcoin-research/default.nix new file mode 100644 index 000000000000..2e1b6563afe4 --- /dev/null +++ b/pkgs/applications/blockchains/gridcoin-research/default.nix @@ -0,0 +1,73 @@ +{ fetchFromGitHub +, stdenv +, makeDesktopItem +, lib +, openssl +, boost +, curl +, libevent +, libzip +, qrencode +, qtbase +, qttools +, wrapQtAppsHook +, autoreconfHook +, pkg-config +, libtool +, miniupnpc +, hexdump +}: + +stdenv.mkDerivation rec { + pname = "gridcoin-research"; + version = "5.4.5.0"; + + src = fetchFromGitHub { + owner = "gridcoin-community"; + repo = "Gridcoin-Research"; + rev = "${version}"; + sha256 = "1a174m7821c7d3yh9lyh0r3ds6qn06x16aa1qxcbrqyxxc127yky"; + }; + + nativeBuildInputs = [ + pkg-config + wrapQtAppsHook + autoreconfHook + libtool + hexdump + ]; + + buildInputs = [ + qttools + qtbase + qrencode + libevent + libzip + openssl + boost + miniupnpc + curl + ]; + + configureFlags = [ + "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + "--with-qrencode" + "--with-boost-libdir=${boost.out}/lib" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "A POS-based cryptocurrency that rewards users for participating on the BOINC network"; + longDescription = '' + A POS-based cryptocurrency that rewards users for participating on the BOINC network, + using peer-to-peer technology to operate with no central authority - managing transactions, + issuing money and contributing to scientific research are carried out collectively by the network + ''; + homepage = "https://gridcoin.us/"; + license = licenses.mit; + maintainers = with maintainers; [ gigglesquid ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/notesnook/default.nix b/pkgs/applications/misc/notesnook/default.nix new file mode 100644 index 000000000000..55bd926fb7fa --- /dev/null +++ b/pkgs/applications/misc/notesnook/default.nix @@ -0,0 +1,76 @@ +{ lib, stdenv, appimageTools, fetchurl, undmg }: + +let + pname = "notesnook"; + version = "2.5.7"; + + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + suffix = { + x86_64-linux = "linux_x86_64.AppImage"; + x86_64-darwin = "mac_x64.dmg"; + aarch64-darwin = "mac_arm64.dmg"; + }.${system} or throwSystem; + + src = fetchurl { + url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}"; + hash = { + x86_64-linux = "sha256-M/59pjhuKF/MOMpT9/qrlThHO0V8e49cfiaWMkEWHNg="; + x86_64-darwin = "sha256-cluIizmweIMU6RIFxoEQ3DYChRVEuVLxrPjwfFfeq1w="; + aarch64-darwin = "sha256-cbBnKrb8poyDL1D+32UrOl3RXt8Msncw440qra9+Gs0="; + }.${system} or throwSystem; + }; + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; + + meta = with lib; { + description = "A fully open source & end-to-end encrypted note taking alternative to Evernote."; + longDescription = '' + Notesnook is a free (as in speech) & open source note taking app + focused on user privacy & ease of use. To ensure zero knowledge + principles, Notesnook encrypts everything on your device using + XChaCha20-Poly1305 & Argon2. + ''; + homepage = "https://notesnook.com"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ j0lol ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; + }; + + linux = appimageTools.wrapType2 rec { + inherit pname version src meta; + + profile = '' + export LC_ALL=C.UTF-8 + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = '' + mv $out/bin/{${pname}-${version},${pname}} + install -Dm444 ${appimageContents}/notesnook.desktop -t $out/share/applications + install -Dm444 ${appimageContents}/notesnook.png -t $out/share/pixmaps + substituteInPlace $out/share/applications/notesnook.desktop \ + --replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname}' + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "Notesnook.app"; + + installPhase = '' + mkdir -p $out/Applications/Notesnook.app + cp -R . $out/Applications/Notesnook.app + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix index 899468fbb557..abb5d0b96096 100644 --- a/pkgs/applications/misc/xastir/default.nix +++ b/pkgs/applications/misc/xastir/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config , curl, db, libgeotiff , xorg, motif, pcre -, perl, proj, rastermagick, shapelib +, perl, proj, graphicsmagick, shapelib , libax25 }: @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { buildInputs = [ curl db libgeotiff xorg.libXpm xorg.libXt motif pcre - perl proj rastermagick shapelib + perl proj graphicsmagick shapelib libax25 ]; diff --git a/pkgs/desktops/expidus/default.nix b/pkgs/desktops/expidus/default.nix new file mode 100644 index 000000000000..770050ba2878 --- /dev/null +++ b/pkgs/desktops/expidus/default.nix @@ -0,0 +1,4 @@ +{ callPackage }: +{ + file-manager = callPackage ./file-manager {}; +} diff --git a/pkgs/desktops/expidus/file-manager/default.nix b/pkgs/desktops/expidus/file-manager/default.nix new file mode 100644 index 000000000000..ab22441984ee --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/default.nix @@ -0,0 +1,41 @@ +{ lib, flutter, fetchFromGitHub }: +flutter.buildFlutterApplication rec { + pname = "expidus-file-manager"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "ExpidusOS"; + repo = "file-manager"; + rev = version; + sha256 = "sha256-aAPmwzNPgu08Ov9NyRW5bcj3jQzG9rpWwrABRyK2Weg="; + }; + + depsListFile = ./deps.json; + vendorHash = "sha256-mPGrpMUguM9XAYWH8lBQuytxZ3J0gS2XOMPkKyFMLbc="; + + postInstall = '' + rm $out/bin/file_manager + ln -s $out/app/file_manager $out/bin/expidus-file-manager + + mkdir -p $out/share/applications + mv $out/app/data/com.expidusos.file_manager.desktop $out/share/applications + + mkdir -p $out/share/icons + mv $out/app/data/com.expidusos.file_manager.png $out/share/icons + + mkdir -p $out/share/metainfo + mv $out/app/data/com.expidusos.file_manager.metainfo.xml $out/share/metainfo + + substituteInPlace "$out/share/applications/com.expidusos.file_manager.desktop" \ + --replace "Exec=file_manager" "Exec=$out/bin/expidus-file-manager" \ + --replace "Icon=com.expidusos.file_manager" "Icon=$out/share/icons/com.expidusos.file_manager.png" + ''; + + meta = with lib; { + description = "ExpidusOS File Manager"; + homepage = "https://expidusos.com"; + license = licenses.gpl3; + maintainers = with maintainers; [ RossComputerGuy ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; +} diff --git a/pkgs/desktops/expidus/file-manager/deps.json b/pkgs/desktops/expidus/file-manager/deps.json new file mode 100644 index 000000000000..eb6c23b4e672 --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/deps.json @@ -0,0 +1,1023 @@ +[ + { + "name": "file_manager", + "version": "0.1.2+1", + "kind": "root", + "source": "root", + "dependencies": [ + "collection", + "flutter", + "flutter_localizations", + "libtokyo", + "libtokyo_flutter", + "path_provider", + "url_launcher", + "bitsdojo_window", + "xdg_directories", + "udisks", + "path", + "shared_preferences", + "open_file_plus", + "permission_handler", + "win32", + "path_provider_windows", + "path_provider_platform_interface", + "ffi", + "sentry_flutter", + "pubspec", + "filesize", + "intl", + "provider", + "flutter_markdown", + "flutter_test", + "flutter_lints" + ] + }, + { + "name": "flutter_lints", + "version": "2.0.1", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "lints" + ] + }, + { + "name": "lints", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "flutter_test", + "version": "0.0.0", + "kind": "dev", + "source": "sdk", + "dependencies": [ + "flutter", + "test_api", + "path", + "fake_async", + "clock", + "stack_trace", + "vector_math", + "async", + "boolean_selector", + "characters", + "collection", + "js", + "matcher", + "material_color_utilities", + "meta", + "source_span", + "stream_channel", + "string_scanner", + "term_glyph" + ] + }, + { + "name": "term_glyph", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "string_scanner", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.9.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "path", + "version": "1.8.3", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "collection", + "version": "1.17.1", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "stream_channel", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "async", + "version": "2.11.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "meta", + "version": "1.9.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "material_color_utilities", + "version": "0.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "matcher", + "version": "0.12.15", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "meta", + "stack_trace", + "term_glyph", + "test_api" + ] + }, + { + "name": "test_api", + "version": "0.5.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph", + "matcher" + ] + }, + { + "name": "stack_trace", + "version": "1.11.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "boolean_selector", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "js", + "version": "0.6.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "characters", + "version": "1.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "vector_math", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "clock", + "version": "1.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "fake_async", + "version": "1.3.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "clock", + "collection" + ] + }, + { + "name": "flutter", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "characters", + "collection", + "js", + "material_color_utilities", + "meta", + "vector_math", + "sky_engine" + ] + }, + { + "name": "sky_engine", + "version": "0.0.99", + "kind": "transitive", + "source": "sdk", + "dependencies": [] + }, + { + "name": "flutter_markdown", + "version": "0.6.15", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "markdown", + "meta", + "path" + ] + }, + { + "name": "markdown", + "version": "7.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "meta" + ] + }, + { + "name": "args", + "version": "2.4.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "provider", + "version": "6.0.5", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "flutter", + "nested" + ] + }, + { + "name": "nested", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter" + ] + }, + { + "name": "intl", + "version": "0.18.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "clock", + "meta", + "path" + ] + }, + { + "name": "filesize", + "version": "2.0.1", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "pubspec", + "version": "2.3.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "path", + "pub_semver", + "yaml", + "uri" + ] + }, + { + "name": "uri", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "matcher", + "quiver" + ] + }, + { + "name": "quiver", + "version": "3.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "matcher" + ] + }, + { + "name": "yaml", + "version": "3.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner" + ] + }, + { + "name": "pub_semver", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "sentry_flutter", + "version": "7.7.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "sentry", + "package_info_plus", + "meta" + ] + }, + { + "name": "package_info_plus", + "version": "3.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi", + "flutter", + "flutter_web_plugins", + "http", + "meta", + "path", + "package_info_plus_platform_interface", + "win32" + ] + }, + { + "name": "win32", + "version": "3.1.4", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "ffi" + ] + }, + { + "name": "ffi", + "version": "2.0.2", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "package_info_plus_platform_interface", + "version": "2.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "plugin_platform_interface" + ] + }, + { + "name": "plugin_platform_interface", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "http", + "version": "0.13.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "http_parser", + "meta" + ] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "flutter_web_plugins", + "version": "0.0.0", + "kind": "transitive", + "source": "sdk", + "dependencies": [ + "flutter", + "js", + "characters", + "collection", + "material_color_utilities", + "meta", + "vector_math" + ] + }, + { + "name": "sentry", + "version": "7.7.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "http", + "meta", + "stack_trace", + "uuid" + ] + }, + { + "name": "uuid", + "version": "3.0.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "crypto" + ] + }, + { + "name": "crypto", + "version": "3.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "path_provider_platform_interface", + "version": "2.0.6", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "platform", + "plugin_platform_interface" + ] + }, + { + "name": "platform", + "version": "3.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "path_provider_windows", + "version": "2.1.6", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "ffi", + "flutter", + "path", + "path_provider_platform_interface", + "win32" + ] + }, + { + "name": "permission_handler", + "version": "10.2.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "permission_handler_android", + "permission_handler_apple", + "permission_handler_windows", + "permission_handler_platform_interface" + ] + }, + { + "name": "permission_handler_platform_interface", + "version": "3.9.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "plugin_platform_interface" + ] + }, + { + "name": "permission_handler_windows", + "version": "0.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "permission_handler_platform_interface" + ] + }, + { + "name": "permission_handler_apple", + "version": "9.0.8", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "permission_handler_platform_interface" + ] + }, + { + "name": "permission_handler_android", + "version": "10.2.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "permission_handler_platform_interface" + ] + }, + { + "name": "open_file_plus", + "version": "3.4.1", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "ffi" + ] + }, + { + "name": "shared_preferences", + "version": "2.1.1", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_android", + "shared_preferences_foundation", + "shared_preferences_linux", + "shared_preferences_platform_interface", + "shared_preferences_web", + "shared_preferences_windows" + ] + }, + { + "name": "shared_preferences_windows", + "version": "2.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "flutter", + "path", + "path_provider_platform_interface", + "path_provider_windows", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_platform_interface", + "version": "2.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "file", + "version": "6.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "shared_preferences_web", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_linux", + "version": "2.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "flutter", + "path", + "path_provider_linux", + "path_provider_platform_interface", + "shared_preferences_platform_interface" + ] + }, + { + "name": "path_provider_linux", + "version": "2.1.11", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "ffi", + "flutter", + "path", + "path_provider_platform_interface", + "xdg_directories" + ] + }, + { + "name": "xdg_directories", + "version": "1.0.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "meta", + "path", + "process" + ] + }, + { + "name": "process", + "version": "4.2.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "file", + "path", + "platform" + ] + }, + { + "name": "shared_preferences_foundation", + "version": "2.2.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_platform_interface" + ] + }, + { + "name": "shared_preferences_android", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "shared_preferences_platform_interface" + ] + }, + { + "name": "udisks", + "version": "0.4.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "dbus" + ] + }, + { + "name": "dbus", + "version": "0.7.8", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "ffi", + "meta", + "xml" + ] + }, + { + "name": "xml", + "version": "6.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta", + "petitparser" + ] + }, + { + "name": "petitparser", + "version": "5.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "bitsdojo_window", + "version": "0.1.5", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "bitsdojo_window_platform_interface", + "bitsdojo_window_windows", + "bitsdojo_window_macos", + "bitsdojo_window_linux" + ] + }, + { + "name": "bitsdojo_window_linux", + "version": "0.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "bitsdojo_window_platform_interface", + "ffi" + ] + }, + { + "name": "bitsdojo_window_platform_interface", + "version": "0.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "meta", + "plugin_platform_interface" + ] + }, + { + "name": "bitsdojo_window_macos", + "version": "0.1.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "bitsdojo_window_platform_interface", + "ffi" + ] + }, + { + "name": "bitsdojo_window_windows", + "version": "0.1.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "bitsdojo_window_platform_interface", + "win32", + "ffi" + ] + }, + { + "name": "url_launcher", + "version": "6.1.11", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_android", + "url_launcher_ios", + "url_launcher_linux", + "url_launcher_macos", + "url_launcher_platform_interface", + "url_launcher_web", + "url_launcher_windows" + ] + }, + { + "name": "url_launcher_windows", + "version": "3.0.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_platform_interface", + "version": "2.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "plugin_platform_interface" + ] + }, + { + "name": "url_launcher_web", + "version": "2.0.17", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "flutter_web_plugins", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_macos", + "version": "3.0.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_linux", + "version": "3.0.5", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_ios", + "version": "6.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "url_launcher_android", + "version": "6.0.35", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "url_launcher_platform_interface" + ] + }, + { + "name": "path_provider", + "version": "2.0.15", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "flutter", + "path_provider_android", + "path_provider_foundation", + "path_provider_linux", + "path_provider_platform_interface", + "path_provider_windows" + ] + }, + { + "name": "path_provider_foundation", + "version": "2.2.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "path_provider_platform_interface" + ] + }, + { + "name": "path_provider_android", + "version": "2.0.27", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "path_provider_platform_interface" + ] + }, + { + "name": "libtokyo_flutter", + "version": "0.1.0", + "kind": "direct", + "source": "git", + "dependencies": [ + "flutter", + "material_theme_builder", + "libtokyo", + "path", + "intl", + "filesize" + ] + }, + { + "name": "libtokyo", + "version": "0.1.0", + "kind": "direct", + "source": "git", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "material_theme_builder", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "flutter", + "material_color_utilities" + ] + }, + { + "name": "flutter_localizations", + "version": "0.0.0", + "kind": "direct", + "source": "sdk", + "dependencies": [ + "flutter", + "intl", + "characters", + "clock", + "collection", + "js", + "material_color_utilities", + "meta", + "path", + "vector_math" + ] + } +] diff --git a/pkgs/development/python-modules/django-cacheops/default.nix b/pkgs/development/python-modules/django-cacheops/default.nix index f7ce71a84f64..566eb06f5043 100644 --- a/pkgs/development/python-modules/django-cacheops/default.nix +++ b/pkgs/development/python-modules/django-cacheops/default.nix @@ -55,12 +55,17 @@ buildPythonPackage rec { preCheck = '' redis-server & + REDIS_PID=$! while ! redis-cli --scan ; do echo waiting for redis to be ready sleep 1 done ''; + postCheck = '' + kill $REDIS_PID + ''; + DJANGO_SETTINGS_MODULE = "tests.settings"; meta = with lib; { @@ -69,7 +74,5 @@ buildPythonPackage rec { changelog = "https://github.com/Suor/django-cacheops/blob/${version}/CHANGELOG"; license = licenses.bsd3; maintainers = with maintainers; [ onny ]; - # Times out for unknown reasons - broken = stdenv.isDarwin; }; } diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix index 0a2610ffd2e7..fe9ec6a865f9 100644 --- a/pkgs/development/tools/misc/binutils/default.nix +++ b/pkgs/development/tools/misc/binutils/default.nix @@ -18,6 +18,7 @@ in , zlib , enableGold ? withGold stdenv.targetPlatform +, enableGoldDefault ? false , enableShared ? !stdenv.hostPlatform.isStatic # WARN: Enabling all targets increases output size to a multiple. , withAllTargets ? false @@ -26,6 +27,7 @@ in # WARN: configure silently disables ld.gold if it's unsupported, so we need to # make sure that intent matches result ourselves. assert enableGold -> withGold stdenv.targetPlatform; +assert enableGoldDefault -> enableGold; let @@ -217,8 +219,10 @@ stdenv.mkDerivation (finalAttrs: { "--with-lib-path=:" ] ++ lib.optionals withAllTargets [ "--enable-targets=all" ] - ++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ] - ++ (if enableShared + ++ lib.optionals enableGold [ + "--enable-gold${lib.optionalString enableGoldDefault "=default"}" + "--enable-plugins" + ] ++ (if enableShared then [ "--enable-shared" "--disable-static" ] else [ "--disable-shared" "--enable-static" ]) ; diff --git a/pkgs/development/tools/misc/hydra/unstable.nix b/pkgs/development/tools/misc/hydra/unstable.nix index 242df1d44c7d..f4dc16a7c493 100644 --- a/pkgs/development/tools/misc/hydra/unstable.nix +++ b/pkgs/development/tools/misc/hydra/unstable.nix @@ -123,13 +123,13 @@ let in stdenv.mkDerivation rec { pname = "hydra"; - version = "2023-06-25"; + version = "2023-07-17"; src = fetchFromGitHub { owner = "NixOS"; repo = "hydra"; - rev = "526e8bd7441d1beb271ff89bbca3604077ecffdb"; - sha256 = "sha256-VRNI3H/WUTi7VTNLwO/I0gMnJ6ZMYRbBfgdsAj+TmP4="; + rev = "d135b123cde78576e99e919a5db0428cb70fcd1e"; + sha256 = "sha256-wjHHcJr1liYKESUtCjIdvC+USjd9EWjEFssvIKiEuVU="; }; buildInputs = [ diff --git a/pkgs/games/ezquake/default.nix b/pkgs/games/ezquake/default.nix index 90ddb6d6452e..e9b173909a85 100644 --- a/pkgs/games/ezquake/default.nix +++ b/pkgs/games/ezquake/default.nix @@ -1,21 +1,23 @@ { lib, stdenv, fetchFromGitHub, curl, expat -, jansson, libpng, libjpeg, libGLU, libGL, libXxf86vm, pcre -, pkg-config, SDL2, vim, speex }: +, jansson, libpng, libjpeg, libGLU, libGL +, libsndfile, libXxf86vm, pcre, pkg-config, SDL2 +, vim, speex }: stdenv.mkDerivation rec { pname = "ezquake"; - version = "3.2.3"; + version = "3.6.2"; src = fetchFromGitHub { - owner = "ezQuake"; + owner = "QW-Group"; repo = pname + "-source"; rev = version; - sha256 = "sha256-EBhKmoX11JavTG6tPfg15FY2lqOFfzSDg3058OWfcYQ="; + fetchSubmodules = true; + hash = "sha256-mi/VDSZ+ybEAaZOhBGh/cSnrRUAB/h+WQZ4Aml0UfW4="; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ - expat curl jansson libpng libjpeg libGLU libGL libXxf86vm pcre SDL2 vim speex + expat curl jansson libpng libjpeg libGLU libGL libsndfile libXxf86vm pcre SDL2 vim speex ]; installPhase = with lib; let @@ -30,7 +32,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with lib; { - homepage = "http://ezquake.github.io/"; + homepage = "https://ezquake.com/"; description = "A modern QuakeWorld client focused on competitive online play"; license = licenses.gpl2; platforms = platforms.linux; diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix index 65aef6940383..acdaa6796d65 100644 --- a/pkgs/os-specific/linux/bcc/default.nix +++ b/pkgs/os-specific/linux/bcc/default.nix @@ -1,13 +1,26 @@ -{ lib, stdenv, fetchFromGitHub -, makeWrapper, cmake, llvmPackages -, flex, bison, elfutils, python, luajit, netperf, iperf, libelf -, bash, libbpf, nixosTests -, audit +{ audit +, bash +, bison +, cmake +, elfutils +, fetchFromGitHub +, flex +, iperf +, lib +, libbpf +, llvmPackages +, luajit +, makeWrapper +, netperf +, nixosTests +, python3 +, stdenv +, zip }: -python.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "bcc"; - version = "0.26.0"; + version = "0.28.0"; disabled = !stdenv.isLinux; @@ -15,7 +28,7 @@ python.pkgs.buildPythonApplication rec { owner = "iovisor"; repo = "bcc"; rev = "v${version}"; - sha256 = "sha256-zx38tPwuuGU6px9pRNN5JtvBysK9fStOvoqe7cLo7LM="; + sha256 = "sha256-+ecSaVroDC2bWbio4JsuwEvHQdCMpxLt7hIkeREMJs8="; }; format = "other"; @@ -31,8 +44,16 @@ python.pkgs.buildPythonApplication rec { ./fix-deadlock-detector-import.patch ]; - propagatedBuildInputs = [ python.pkgs.netaddr ]; - nativeBuildInputs = [ makeWrapper cmake flex bison llvmPackages.llvm.dev ]; + propagatedBuildInputs = [ python3.pkgs.netaddr ]; + nativeBuildInputs = [ + bison + cmake + flex + llvmPackages.llvm.dev + makeWrapper + python3.pkgs.setuptools + zip + ]; cmakeFlags = [ "-DBCC_KERNEL_MODULES_DIR=/run/booted-system/kernel-modules/lib/modules" @@ -59,6 +80,10 @@ python.pkgs.buildPythonApplication rec { --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ ''; + preInstall = '' + # required for setuptool during install + export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH + ''; postInstall = '' mkdir -p $out/bin $out/share rm -r $out/share/bcc/tools/old diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 972235c7f852..f941ca9f007a 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -57,13 +57,4 @@ name = "export-rt-sched-migrate"; patch = ./export-rt-sched-migrate.patch; }; - - CVE-2023-32233 = rec { - name = "CVE-2023-32233"; - patch = fetchpatch { - name = name + ".patch"; - url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=c1592a89942e9678f7d9c8030efa777c0d57edab"; - hash = "sha256-DYPWgraXPNeFkjtuDYkFXHnCJ4yDewrukM2CCAqC2BE="; - }; - }; } diff --git a/pkgs/servers/pufferpanel/default.nix b/pkgs/servers/pufferpanel/default.nix index f8c61ea17691..f1079a03fcec 100644 --- a/pkgs/servers/pufferpanel/default.nix +++ b/pkgs/servers/pufferpanel/default.nix @@ -1,43 +1,40 @@ { lib -, buildGoModule , fetchFromGitHub -, makeWrapper -, fetchzip , fetchpatch -, pathDeps ? [ ] +, applyPatches +, buildGoModule +, buildNpmPackage +, makeWrapper +, go-swag , nixosTests }: buildGoModule rec { pname = "pufferpanel"; - version = "2.6.6"; + version = "2.6.7"; - patches = [ - # Bump go-sqlite3 version to avoid a GNU C compiler error. - (fetchpatch { - url = "https://github.com/PufferPanel/PufferPanel/commit/dd7fc80c33c7618c98311af09c78c25b77658aef.patch"; - hash = "sha256-ygMrhJoba8swoRBBii7BEiLihqOebLUtSH7os7W3s+k="; - }) + src = applyPatches { + src = fetchFromGitHub { + owner = "PufferPanel"; + repo = "PufferPanel"; + rev = "v${version}"; + hash = "sha256-ay9NNcK+6QFobe/rwtZF8USl0vMbDZBg5z57fjA5VLw="; + }; + patches = [ + # Bump sha1cd package, otherwise i686-linux fails to build. + ./bump-sha1cd.patch - # Fix errors in tests. - (fetchpatch { - url = "https://github.com/PufferPanel/PufferPanel/commit/ad6ab4b4368e1111292fadfb3d9f058fa399fa21.patch"; - hash = "sha256-BzGfcWhzRrCHKkAhWf0uvXiiiutWqthn/ed7bN2hR8U="; - }) + # Seems to be an anti-feature. Startup is the only place where user/group is + # hardcoded and checked. + # + # There is no technical reason PufferPanel cannot run as a different user, + # especially for simple commands like `pufferpanel version`. + ./disable-group-checks.patch - # Bump sha1cd package, otherwise i686-linux fails to build. - ./bump-sha1cd.patch - - # Seems to be an anti-feature. Startup is the only place where user/group is - # hardcoded and checked. - # - # There is no technical reason PufferPanel cannot run as a different user, - # especially for simple commands like `pufferpanel version`. - ./disable-group-checks.patch - - # Some tests do not have network requests stubbed :( - ./skip-network-tests.patch - ]; + # Some tests do not have network requests stubbed :( + ./skip-network-tests.patch + ]; + }; ldflags = [ "-s" @@ -46,50 +43,50 @@ buildGoModule rec { "-X=github.com/pufferpanel/pufferpanel/v2.Version=${version}-nixpkgs" ]; - src = fetchFromGitHub { - owner = "pufferpanel"; - repo = pname; - rev = "v${version}"; - hash = "sha256-0Vyi47Rkpe3oODHfsl/7tCerENpiEa3EWBHhfTO/uu4="; + frontend = buildNpmPackage { + pname = "pufferpanel-frontend"; + inherit version; + + src = "${src}/client"; + + npmDepsHash = "sha256-oWFXtV/dxzHv3sfIi01l1lHE5tcJgpVq87XgS6Iy62g="; + + NODE_OPTIONS = "--openssl-legacy-provider"; + npmBuildFlags = [ "--" "--dest=${placeholder "out"}" ]; + dontNpmInstall = true; }; - # PufferPanel is split into two parts: the backend daemon and the - # frontend. - # Getting the frontend to build in the Nix environment fails even - # with all the proper node_modules populated. To work around this, - # we just download the built frontend and package that. - frontend = fetchzip { - url = "https://github.com/PufferPanel/PufferPanel/releases/download/v${version}/pufferpanel_${version}_linux_arm64.zip"; - hash = "sha256-z7HWhiEBma37OMGEkTGaEbnF++Nat8wAZE2UeOoaO/U="; - stripRoot = false; - postFetch = '' - mv $out $TMPDIR/subdir - mv $TMPDIR/subdir/www $out - ''; - }; - - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper go-swag ]; vendorHash = "sha256-Esfk7SvqiWeiobXSI+4wYVEH9yVkB+rO7bxUQ5TzvG4="; proxyVendor = true; - postFixup = '' - mkdir -p $out/share/pufferpanel - cp -r ${src}/assets/email $out/share/pufferpanel/templates - cp -r ${frontend} $out/share/pufferpanel/www + # Generate code for Swagger documentation endpoints (see web/swagger/docs.go). + # Note that GOROOT embedded in go-swag is empty by default since it is built + # with -trimpath (see https://go.dev/cl/399214). It looks like go-swag skips + # file paths that start with $GOROOT, thus all files when it is empty. + preBuild = '' + GOROOT=''${GOROOT-$(go env GOROOT)} swag init --output web/swagger --generalInfo web/loader.go + ''; - # Rename cmd to pufferpanel and remove other binaries. - mv $out/bin $TMPDIR/bin - mkdir $out/bin - mv $TMPDIR/bin/cmd $out/bin/pufferpanel + installPhase = '' + runHook preInstall + + # Set up directory structure similar to the official PufferPanel releases. + mkdir -p $out/share/pufferpanel + cp "$GOPATH"/bin/cmd $out/share/pufferpanel/pufferpanel + cp -r $frontend $out/share/pufferpanel/www + cp -r $src/assets/email $out/share/pufferpanel/email + cp web/swagger/swagger.{json,yaml} $out/share/pufferpanel # Wrap the binary with the path to the external files, but allow setting # custom paths if needed. - wrapProgram $out/bin/pufferpanel \ + makeWrapper $out/share/pufferpanel/pufferpanel $out/bin/pufferpanel \ --set-default GIN_MODE release \ - --set-default PUFFER_PANEL_EMAIL_TEMPLATES $out/share/pufferpanel/templates/emails.json \ - --set-default PUFFER_PANEL_WEB_FILES $out/share/pufferpanel/www \ - --prefix PATH : ${lib.escapeShellArg (lib.makeBinPath pathDeps)} + --set-default PUFFER_PANEL_EMAIL_TEMPLATES $out/share/pufferpanel/email/emails.json \ + --set-default PUFFER_PANEL_WEB_FILES $out/share/pufferpanel/www + + runHook postInstall ''; passthru.tests = { diff --git a/pkgs/tools/X11/sxhkd/default.nix b/pkgs/tools/X11/sxhkd/default.nix index 50e82643ac28..ab15c38168e2 100644 --- a/pkgs/tools/X11/sxhkd/default.nix +++ b/pkgs/tools/X11/sxhkd/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , asciidoc , libxcb , xcbutil @@ -19,6 +20,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OelMqenk0tiWMLraekS/ggGf6IsXP7Sz7bv75NvnNvI="; }; + patches = [ + (fetchpatch { + # Fixes an issue with overlapping chords when using multiple keyboard layouts. + name = "sxhkd-mod5.patch"; + url = "https://github.com/baskerville/sxhkd/pull/307/commits/35e64f1d7b54c97ccc02e84e278012dae9bc3941.patch"; + hash = "sha256-bvXWEEITbHC/h0nXQx99SXjvkI/KO36XXNSa1O8KSY0="; + }) + ]; + nativeBuildInputs = [ asciidoc ]; @@ -36,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Simple X hotkey daemon"; homepage = "https://github.com/baskerville/sxhkd"; license = licenses.bsd2; - maintainers = with maintainers; [ vyp AndersonTorres ]; + maintainers = with maintainers; [ vyp AndersonTorres ncfavier ]; platforms = platforms.linux; }; }) diff --git a/pkgs/tools/misc/uutils-coreutils/default.nix b/pkgs/tools/misc/uutils-coreutils/default.nix index 6dd38e6d87be..92ecedbb1f94 100644 --- a/pkgs/tools/misc/uutils-coreutils/default.nix +++ b/pkgs/tools/misc/uutils-coreutils/default.nix @@ -12,19 +12,19 @@ stdenv.mkDerivation rec { pname = "uutils-coreutils"; - version = "0.0.19"; + version = "0.0.20"; src = fetchFromGitHub { owner = "uutils"; repo = "coreutils"; rev = version; - sha256 = "sha256-ysMSO6VaiaL4Sh5F0VbeAQYOo78lhVQjewZ5lwaCLRM="; + sha256 = "sha256-Xr+RcWvAHyMMaHhcd3ArGeRZzpL76v7fXiHUSSxgj10="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; - hash = "sha256-cBocRWIpG2BQZDPJq4cNNYrFg/MBR3o58fXGHanTn30="; + hash = "sha256-3hUEDE+Yup/+u/ACyAWXYTLerOqB/jtOzECdI540Ag0="; }; nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8ffc72e80cb2..d9a638b4f986 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9874,6 +9874,8 @@ with pkgs; node2nix = nodePackages.node2nix; + notesnook = callPackage ../applications/misc/notesnook { }; + openipmi = callPackage ../tools/system/openipmi { }; ox = callPackage ../applications/editors/ox { }; @@ -18390,7 +18392,7 @@ with pkgs; in if linker == "lld" then llvmPackages.bintools-unwrapped else if linker == "cctools" then darwin.binutils-unwrapped else if linker == "bfd" then binutils-unwrapped - else if linker == "gold" then binutils-unwrapped + else if linker == "gold" then binutils-unwrapped.override { enableGoldDefault = true; } else null; bintoolsNoLibc = wrapBintoolsWith { bintools = bintools-unwrapped; @@ -18474,12 +18476,11 @@ with pkgs; bpftools = callPackage ../os-specific/linux/bpftools { }; bcc = callPackage ../os-specific/linux/bcc { - python = python3; - llvmPackages = llvmPackages_14; + llvmPackages = llvmPackages_16; }; bpftrace = callPackage ../os-specific/linux/bpftrace { - llvmPackages = llvmPackages_14; + llvmPackages = llvmPackages_16; }; bpm-tools = callPackage ../tools/audio/bpm-tools { }; @@ -35956,9 +35957,7 @@ with pkgs; xaos = libsForQt5.callPackage ../applications/graphics/xaos { }; - xastir = callPackage ../applications/misc/xastir { - rastermagick = imagemagick6; - }; + xastir = callPackage ../applications/misc/xastir { }; xautomation = callPackage ../tools/X11/xautomation { }; @@ -36473,6 +36472,10 @@ with pkgs; go-exploitdb = callPackage ../tools/security/go-exploitdb { }; + gridcoin-research = libsForQt5.callPackage ../applications/blockchains/gridcoin-research { + boost = boost179; + }; + groestlcoin = libsForQt5.callPackage ../applications/blockchains/groestlcoin { stdenv = darwin.apple_sdk_11_0.stdenv; withGui = true; @@ -38007,6 +38010,8 @@ with pkgs; enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { }); + expidus = recurseIntoAttrs (callPackage ../desktops/expidus {}); + gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { }); gnome = recurseIntoAttrs (callPackage ../desktops/gnome { }); diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index d0710f6ef363..8e144eac1204 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -127,7 +127,6 @@ in { kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.request_key_helper - kernelPatches.CVE-2023-32233 ]; };