Unverified Commit a4744117 authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into staging-next

parents 5ce921d6 cdd619c9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -144,4 +144,4 @@ All new projects should use the CUDA redistributables available in [`cudaPackage
| Find libraries | `configurePhase` | Missing dependency on a `dev` output | Add the missing dependency | The `dev` output typically contain CMake configuration files |
| Find libraries | `buildPhase` or `patchelf` | Missing dependency on a `lib` or `static` output | Add the missing dependency | The `lib` or `static` output typically contain the libraries |

In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddOpenGLRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddOpenGLRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.
In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddDriverRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddDriverRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.
+6 −0
Original line number Diff line number Diff line
@@ -20962,6 +20962,12 @@
    githubId = 15619766;
    name = "wldhx";
  };
  w-lfchen = {
    email = "w-lfchen@posteo.net";
    github = "w-lfchen";
    githubId = 115360611;
    name = "Wölfchen";
  };
  wmertens = {
    email = "Wout.Mertens@gmail.com";
    github = "wmertens";
+3 −0
Original line number Diff line number Diff line
@@ -456,3 +456,6 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
  The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.

- The oil shell's c++ version is now available as `oils-for-unix`. The python version is still available as `oil`

- `documentation.man.mandoc` now by default uses `MANPATH` to set the directories where mandoc will search for manual pages.
  This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
+1 −1
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ in
            show-trace = true;

            system-features = [ "big-parallel" "kvm" "recursive-nix" ];
            sandbox-paths = { "/bin/sh" = "''${pkgs.busybox-sandbox-shell.out}/bin/busybox"; };
            sandbox-paths = [ "/bin/sh=''${pkgs.busybox-sandbox-shell.out}/bin/busybox" ];
          }
        '';
        description = lib.mdDoc ''
+27 −7
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ let
      )
      output
  );

  makeLeadingSlashes = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path);
in
{
  meta.maintainers = [ lib.maintainers.sternenseemann ];
@@ -29,6 +31,7 @@ in
        type = with lib.types; listOf str;
        default = [ "share/man" ];
        example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
        apply = makeLeadingSlashes;
        description = ''
          Change the paths included in the MANPATH environment variable,
          i. e. the directories where {manpage}`man(1)`
@@ -41,6 +44,28 @@ in
        '';
      };

      cachePath = lib.mkOption {
        type = with lib.types; listOf str;
        default = cfg.manPath;
        defaultText = lib.literalExpression "config.documentation.man.mandoc.manPath";
        example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
        apply = makeLeadingSlashes;
        description = ''
          Change the paths where mandoc {manpage}`makewhatis(8)`generates the
          manual page index caches. {option}`documentation.man.generateCaches`
          should be enabled to allow cache generation. This list should only
          include the paths to manpages installed in the system configuration,
          i. e. /run/current-system/sw/share/man. {manpage}`makewhatis(8)`
          creates a database in each directory using the files
          `mansection/[arch/]title.section` and `catsection/[arch/]title.0`
          in it. If a directory contains no manual pages, no database is
          created in that directory.
          This option only needs to be set manually if extra paths should be
          indexed or {option}`documentation.man.manPath` contains paths that
          can't be indexed.
        '';
      };

      package = lib.mkOption {
        type = lib.types.package;
        default = pkgs.mandoc;
@@ -178,19 +203,14 @@ in
      # TODO(@sternenseemman): fix symlinked directories not getting indexed,
      # see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
      extraSetup = lib.mkIf config.documentation.man.generateCaches ''
        for man_path in ${
          lib.concatMapStringsSep " " (path:
            "$out/" + lib.escapeShellArg path
            ) cfg.manPath} ${lib.concatMapStringsSep " " (path:
            lib.escapeShellArg path) cfg.settings.manpath
          }
        for man_path in ${lib.concatMapStringsSep " " (path: "$out" + lib.escapeShellArg path) cfg.cachePath}
        do
          [[ -d "$man_path" ]] && ${makewhatis} -T utf8 $man_path
        done
      '';

      # tell mandoc the paths containing man pages
      profileRelativeSessionVariables."MANPATH" = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path) cfg.manPath;
      profileRelativeSessionVariables."MANPATH" = lib.mkIf (cfg.manPath != [ ]) cfg.manPath;
    };
  };
}
Loading