···817817## Using community maintained Rust toolchains {#using-community-maintained-rust-toolchains}
818818819819::: {.note}
820820-Note: The following projects cannot be used within nixpkgs since [IFD](#ssec-import-from-derivation) is disallowed.
820820+The following projects cannot be used within Nixpkgs since [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs.
821821To package things that require Rust nightly, `RUSTC_BOOTSTRAP = true;` can sometimes be used as a hack.
822822:::
823823
+1-1
lib/fileset/README.md
···176176177177Arguments:
178178- (+) Such paths are usually produced by derivations, which means `toSource` would either:
179179- - Require IFD if `builtins.path` is used as the underlying primitive
179179+ - Require [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) if `builtins.path` is used as the underlying primitive
180180 - Require importing the entire `root` into the store such that derivations can be used to do the filtering
181181- (+) The convenient path coercion like `union ./foo ./bar` wouldn't work for absolute paths, requiring more verbose alternate interfaces:
182182 - `let root = "/nix/store/...-source"; in union "${root}/foo" "${root}/bar"`
+15-12
lib/strings.nix
···854854 assert (lib.isBool flag);
855855 mesonOption feature (if flag then "enabled" else "disabled");
856856857857- /* Create an --{enable,disable}-<feat> string that can be passed to
857857+ /* Create an --{enable,disable}-<feature> string that can be passed to
858858 standard GNU Autoconf scripts.
859859860860 Example:
···863863 enableFeature false "shared"
864864 => "--disable-shared"
865865 */
866866- enableFeature = enable: feat:
867867- assert isString feat; # e.g. passing openssl instead of "openssl"
868868- "--${if enable then "enable" else "disable"}-${feat}";
866866+ enableFeature = flag: feature:
867867+ assert lib.isBool flag;
868868+ assert lib.isString feature; # e.g. passing openssl instead of "openssl"
869869+ "--${if flag then "enable" else "disable"}-${feature}";
869870870870- /* Create an --{enable-<feat>=<value>,disable-<feat>} string that can be passed to
871871+ /* Create an --{enable-<feature>=<value>,disable-<feature>} string that can be passed to
871872 standard GNU Autoconf scripts.
872873873874 Example:
···876877 enableFeatureAs false "shared" (throw "ignored")
877878 => "--disable-shared"
878879 */
879879- enableFeatureAs = enable: feat: value: enableFeature enable feat + optionalString enable "=${value}";
880880+ enableFeatureAs = flag: feature: value:
881881+ enableFeature flag feature + optionalString flag "=${value}";
880882881881- /* Create an --{with,without}-<feat> string that can be passed to
883883+ /* Create an --{with,without}-<feature> string that can be passed to
882884 standard GNU Autoconf scripts.
883885884886 Example:
···887889 withFeature false "shared"
888890 => "--without-shared"
889891 */
890890- withFeature = with_: feat:
891891- assert isString feat; # e.g. passing openssl instead of "openssl"
892892- "--${if with_ then "with" else "without"}-${feat}";
892892+ withFeature = flag: feature:
893893+ assert isString feature; # e.g. passing openssl instead of "openssl"
894894+ "--${if flag then "with" else "without"}-${feature}";
893895894894- /* Create an --{with-<feat>=<value>,without-<feat>} string that can be passed to
896896+ /* Create an --{with-<feature>=<value>,without-<feature>} string that can be passed to
895897 standard GNU Autoconf scripts.
896898897899 Example:
···900902 withFeatureAs false "shared" (throw "ignored")
901903 => "--without-shared"
902904 */
903903- withFeatureAs = with_: feat: value: withFeature with_ feat + optionalString with_ "=${value}";
905905+ withFeatureAs = flag: feature: value:
906906+ withFeature flag feature + optionalString flag "=${value}";
904907905908 /* Create a fixed width string with additional prefix to match
906909 required width.
+2
nixos/doc/manual/release-notes/rl-2311.section.md
···189189190190- `odoo` now defaults to 16, updated from 15.
191191192192+- `varnish` was upgraded from 7.2.x to 7.4.x, see https://varnish-cache.org/docs/7.3/whats-new/upgrading-7.3.html and https://varnish-cache.org/docs/7.4/whats-new/upgrading-7.4.html for upgrade notes. The current LTS version is still offered as `varnish60`.
193193+192194- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
193195194196- `services.keyd` changed API. Now you can create multiple configuration files.
···368368369369### Import From Derivation
370370371371-Import From Derivation (IFD) is disallowed in Nixpkgs for performance reasons:
372372-[Hydra] evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical.
373373-374374-[Hydra]: https://github.com/NixOS/hydra
371371+[Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs for performance reasons:
372372+[Hydra](https://github.com/NixOS/hydra) evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical.
375373376374Import From Derivation can be worked around in some cases by committing generated intermediate files to version control and reading those instead.
377377-378378-<!-- TODO: remove the following and link to Nix manual once https://github.com/NixOS/nix/pull/7332 is merged -->
379379-380380-See also [NixOS Wiki: Import From Derivation].
381381-382382-[NixOS Wiki: Import From Derivation]: https://nixos.wiki/wiki/Import_From_Derivation
383375384376## Sources
385377
+2
pkgs/applications/misc/pdfstudio/common.nix
···55, version
66, desktopName
77, longDescription
88+, broken ? false
89, buildFHSEnv
910, extraBuildInputs ? [ ]
1011, jdk
···8586 '';
86878788 meta = with lib; {
8989+ inherit broken;
8890 homepage = "https://www.qoppa.com/${pname}/";
8991 description = "An easy to use, full-featured PDF editing software";
9092 longDescription = longDescription;
···11+From e7d9098e81289ae99d07ec3eac1fec1d303b8fe4 Mon Sep 17 00:00:00 2001
22+From: Thiago Kenji Okada <thiagokokada@gmail.com>
33+Date: Thu, 5 Oct 2023 15:23:35 +0100
44+Subject: [PATCH] drop ambient capabilities
55+66+Within NixOS the only possibility to gain cap_sys_nice is using the
77+security.wrapper infrastructure. However to pass the capabilities to the
88+wrapped program, they are raised to the ambient set. To fix this we make
99+sure to drop the ambient capabilities during sway startup and realtime
1010+setup. Otherwise all programs started by sway also gain cap_sys_nice,
1111+which is not something we want.
1212+1313+Co-authored-by: Rouven Czerwinski <rouven@czerwinskis.de>
1414+---
1515+ sway/realtime.c | 3 +++
1616+ 1 file changed, 3 insertions(+)
1717+1818+diff --git a/sway/realtime.c b/sway/realtime.c
1919+index 11154af0..06f872a8 100644
2020+--- a/sway/realtime.c
2121++++ b/sway/realtime.c
2222+@@ -3,6 +3,7 @@
2323+ #include <unistd.h>
2424+ #include <pthread.h>
2525+ #include "sway/server.h"
2626++#include "sys/prctl.h"
2727+ #include "log.h"
2828+2929+ static void child_fork_callback(void) {
3030+@@ -10,6 +11,8 @@ static void child_fork_callback(void) {
3131+3232+ param.sched_priority = 0;
3333+3434++ prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0);
3535++
3636+ int ret = pthread_setschedparam(pthread_self(), SCHED_OTHER, ¶m);
3737+ if (ret != 0) {
3838+ sway_log(SWAY_ERROR, "Failed to reset scheduler policy on fork");
3939+--
4040+2.42.0
4141+
+4
pkgs/by-name/README.md
···33The structure of this directory maps almost directly to top-level package attributes.
44This is the recommended way to add new top-level packages to Nixpkgs [when possible](#limitations).
5566+Packages found in the named-based structure do not need to be explicitly added to the
77+`top-level/all-packages.nix` file unless they require overriding the default value
88+of an implicit attribute (see below).
99+610## Example
711812The top-level package `pkgs.some-package` may be declared by setting up this file structure: