···119119```
120120121121Then, run more phases up until the failure is reached.
122122-For example, if the failure is in the build phase, the following phases would be required:
122122+If the failure is in the build or check phase, the following phases would be required:
123123124124```bash
125125-phases="${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase" genericBuild
125125+phases="${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase" genericBuild
126126+```
127127+128128+Use this command to run all install phases:
129129+```bash
130130+phases="${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase" genericBuild
126131```
127132128128-Re-run a single phase as many times as necessary to examine the failure like so:
133133+Single phase can be re-run as many times as necessary to examine the failure like so:
129134130135```bash
131136phases="buildPhase" genericBuild
+1-1
lib/fileset/default.nix
···312312 lib.fileset.fromSource: The source origin of the argument is of type ${typeOf path}, but it should be a path instead.''
313313 else if ! pathExists path then
314314 throw ''
315315- lib.fileset.fromSource: The source origin (${toString path}) of the argument does not exist.''
315315+ lib.fileset.fromSource: The source origin (${toString path}) of the argument is a path that does not exist.''
316316 else if isFiltered then
317317 _fromSourceFilter path source.filter
318318 else
+4-4
lib/fileset/internal.nix
···381381382382 # Turn a fileset into a source filter function suitable for `builtins.path`
383383 # Only directories recursively containing at least one files are recursed into
384384- # Type: Path -> fileset -> (String -> String -> Bool)
384384+ # Type: fileset -> (String -> String -> Bool)
385385 _toSourceFilter = fileset:
386386 let
387387 # Simplify the tree, necessary to make sure all empty directories are null
···753753754754 resultingTree =
755755 _differenceTree
756756- positive._internalBase
757757- positive._internalTree
758758- negativeTreeWithPositiveBase;
756756+ positive._internalBase
757757+ positive._internalTree
758758+ negativeTreeWithPositiveBase;
759759 in
760760 # If the first file set is empty, we can never have any files in the result
761761 if positive._internalIsEmptyWithoutBase then
+6-1
lib/fileset/tests.sh
···10641064## lib.fileset.fromSource
1065106510661066# Check error messages
10671067-expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
1068106710681068+# String-like values are not supported
10691069expectFailure 'fromSource (lib.cleanSource "")' 'lib.fileset.fromSource: The source origin of the argument is a string-like value \(""\), but it should be a path instead.
10701070\s*Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.'
1071107110721072+# Wrong type
10731073+expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
10721074expectFailure 'fromSource (lib.cleanSource null)' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
10751075+10761076+# fromSource on non-existent paths gives an error
10771077+expectFailure 'fromSource ./a' 'lib.fileset.fromSource: The source origin \('"$work"'/a\) of the argument is a path that does not exist.'
1073107810741079# fromSource on a path works and is the same as coercing that path
10751080mkdir a
···11+# OCS Inventory Agent {#module-services-ocsinventory-agent}
22+33+[OCS Inventory NG](https://ocsinventory-ng.org/) or Open Computers and Software inventory
44+is an application designed to help IT administrator to keep track of the hardware and software
55+configurations of computers that are installed on their network.
66+77+OCS Inventory collects information about the hardware and software of networked machines
88+through the **OCS Inventory Agent** program.
99+1010+This NixOS module enables you to install and configure this agent so that it sends information from your computer to the OCS Inventory server.
1111+1212+For more technical information about OCS Inventory Agent, refer to [the Wiki documentation](https://wiki.ocsinventory-ng.org/03.Basic-documentation/Setting-up-the-UNIX-agent-manually-on-client-computers/).
1313+1414+1515+## Basic Usage {#module-services-ocsinventory-agent-basic-usage}
1616+1717+A minimal configuration looks like this:
1818+1919+```nix
2020+{
2121+ services.ocsinventory-agent = {
2222+ enable = true;
2323+ settings = {
2424+ server = "https://ocsinventory.localhost:8080/ocsinventory";
2525+ tag = "01234567890123";
2626+ };
2727+ };
2828+}
2929+```
3030+3131+This configuration will periodically run the ocsinventory-agent SystemD service.
3232+3333+The OCS Inventory Agent will inventory the computer and then sends the results to the specified OCS Inventory Server.
···2828 xorg.libICE
2929 xorg.libSM
3030 zlib
3131+ libudev0-shim
3132 # qsys requirements
3233 xorg.libXtst
3334 xorg.libXi
···5354 xorg.libX11
5455 xorg.libXext
5556 xorg.libXrender
5656- libudev0-shim
5757 libxcrypt-legacy
5858 ];
5959···9595 # LD_PRELOAD fixes issues in the licensing system that cause memory corruption and crashes when
9696 # starting most operations in many containerized environments, including WSL2, Docker, and LXC
9797 # (a similiar fix involving LD_PRELOADing tcmalloc did not solve the issue in my situation)
9898- # we use the name so that quartus can load the 64 bit verson and modelsim can load the 32 bit version
9998 # https://community.intel.com/t5/Intel-FPGA-Software-Installation/Running-Quartus-Prime-Standard-on-WSL-crashes-in-libudev-so/m-p/1189032
10099 #
101100 # But, as can be seen in the above resource, LD_PRELOADing libudev breaks
···103102 # `(vlog-2163) Macro `<protected> is undefined.`), so only use LD_PRELOAD
104103 # for non-ModelSim wrappers.
105104 if [ "$NIXPKGS_IS_MODELSIM_WRAPPER" != 1 ]; then
106106- export LD_PRELOAD=''${LD_PRELOAD:+$LD_PRELOAD:}libudev.so.0
105105+ export LD_PRELOAD=''${LD_PRELOAD:+$LD_PRELOAD:}/usr/lib/libudev.so.0
107106 fi
108107 '';
109108
···115115116116 nameArray = builtins.map(a: a.name) (lib.optionals usesNixExtensions nixExtensions);
117117118118- requiresSigning = browser ? MOZ_REQUIRE_SIGNING
119119- -> toString browser.MOZ_REQUIRE_SIGNING != "";
120120-121118 # Check that every extension has a unqiue .name attribute
122119 # and an extid attribute
123120 extensions = if nameArray != (lib.unique nameArray) then
124121 throw "Firefox addon name needs to be unique"
125125- else if requiresSigning && !lib.hasSuffix "esr" browser.name then
126126- throw "Nix addons are only supported without signature enforcement (eg. Firefox ESR)"
122122+ else if browser.requireSigning || !browser.allowAddonSideload then
123123+ throw "Nix addons are only supported with signature enforcement disabled and addon sideloading enabled (eg. LibreWolf)"
127124 else builtins.map (a:
128125 if ! (builtins.hasAttr "extid" a) then
129129- throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"
126126+ throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchFirefoxAddon"
130127 else
131128 a
132129 ) (lib.optionals usesNixExtensions nixExtensions);
···3535mapAliases ({
3636 abodepy = jaraco-abode; # added 2023-02-01
3737 acebinf = throw "acebinf has been removed because it is abandoned and broken."; # Added 2023-05-19
3838+ adafruit-nrfutil = throw "adafruit-nrfutil has been promoted to a top-level attribute."; # Added 2023-11-19
3839 aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
3940 aionotify = throw "aionotify has been removed because is unmaintained and incompatible with python3.11."; # Added 2023-10-27
4041 aiosenseme = throw "aiosenseme has been removed, because it does no longer work with the latest firmware and has become unmaintained"; # Added 2023-07-05