···1{ lib }:
23rec {
4- /* Automatically convert an attribute set to command-line options.
00000056- This helps protect against malformed command lines and also to reduce
7- boilerplate related to command-line construction for simple use cases.
000000000089- `toGNUCommandLine` returns a list of nix strings.
10- `toGNUCommandLineShell` returns an escaped shell string.
0000000000000000000001112- Example:
13- cli.toGNUCommandLine {} {
14- data = builtins.toJSON { id = 0; };
15- X = "PUT";
16- retry = 3;
17- retry-delay = null;
18- url = [ "https://example.com/foo" "https://example.com/bar" ];
19- silent = false;
20- verbose = true;
21- }
22- => [
23- "-X" "PUT"
24- "--data" "{\"id\":0}"
25- "--retry" "3"
26- "--url" "https://example.com/foo"
27- "--url" "https://example.com/bar"
28- "--verbose"
29- ]
3031- cli.toGNUCommandLineShell {} {
32- data = builtins.toJSON { id = 0; };
33- X = "PUT";
34- retry = 3;
35- retry-delay = null;
36- url = [ "https://example.com/foo" "https://example.com/bar" ];
37- silent = false;
38- verbose = true;
39- }
40- => "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
41 */
42 toGNUCommandLineShell =
43 options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
···1{ lib }:
23rec {
4+ /**
5+ Automatically convert an attribute set to command-line options.
6+7+ This helps protect against malformed command lines and also to reduce
8+ boilerplate related to command-line construction for simple use cases.
9+10+ `toGNUCommandLine` returns a list of nix strings.
1112+ `toGNUCommandLineShell` returns an escaped shell string.
13+14+15+ # Inputs
16+17+ `options`
18+19+ : 1\. Function argument
20+21+ `attrs`
22+23+ : 2\. Function argument
2425+26+ # Examples
27+ :::{.example}
28+ ## `lib.cli.toGNUCommandLineShell` usage example
29+30+ ```nix
31+ cli.toGNUCommandLine {} {
32+ data = builtins.toJSON { id = 0; };
33+ X = "PUT";
34+ retry = 3;
35+ retry-delay = null;
36+ url = [ "https://example.com/foo" "https://example.com/bar" ];
37+ silent = false;
38+ verbose = true;
39+ }
40+ => [
41+ "-X" "PUT"
42+ "--data" "{\"id\":0}"
43+ "--retry" "3"
44+ "--url" "https://example.com/foo"
45+ "--url" "https://example.com/bar"
46+ "--verbose"
47+ ]
4849+ cli.toGNUCommandLineShell {} {
50+ data = builtins.toJSON { id = 0; };
51+ X = "PUT";
52+ retry = 3;
53+ retry-delay = null;
54+ url = [ "https://example.com/foo" "https://example.com/bar" ];
55+ silent = false;
56+ verbose = true;
57+ }
58+ => "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
59+ ```
00000006061+ :::
00000000062 */
63 toGNUCommandLineShell =
64 options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
+221-80
lib/customisation.nix
···15rec {
161718- /* `overrideDerivation drv f` takes a derivation (i.e., the result
19- of a call to the builtin function `derivation`) and returns a new
20- derivation in which the attributes of the original are overridden
21- according to the function `f`. The function `f` is called with
22- the original derivation attributes.
02324- `overrideDerivation` allows certain "ad-hoc" customisation
25- scenarios (e.g. in ~/.config/nixpkgs/config.nix). For instance,
26- if you want to "patch" the derivation returned by a package
27- function in Nixpkgs to build another version than what the
28- function itself provides.
2930- For another application, see build-support/vm, where this
31- function is used to build arbitrary derivations inside a QEMU
32- virtual machine.
3334- Note that in order to preserve evaluation errors, the new derivation's
35- outPath depends on the old one's, which means that this function cannot
36- be used in circular situations when the old derivation also depends on the
37- new one.
3839- You should in general prefer `drv.overrideAttrs` over this function;
40- see the nixpkgs manual for more information on overriding.
0000000004142- Example:
43- mySed = overrideDerivation pkgs.gnused (oldAttrs: {
44- name = "sed-4.2.2-pre";
45- src = fetchurl {
46- url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
47- hash = "sha256-MxBJRcM2rYzQYwJ5XKxhXTQByvSg5jZc5cSHEZoB2IY=";
48- };
49- patches = [];
50- });
00000000000005152- Type:
53- overrideDerivation :: Derivation -> ( Derivation -> AttrSet ) -> Derivation
54 */
55 overrideDerivation = drv: f:
56 let
···67 });
686970- /* `makeOverridable` takes a function from attribute set to attribute set and
71- injects `override` attribute which can be used to override arguments of
72- the function.
07374- Please refer to documentation on [`<pkg>.overrideDerivation`](#sec-pkg-overrideDerivation) to learn about `overrideDerivation` and caveats
75- related to its use.
7677- Example:
78- nix-repl> x = {a, b}: { result = a + b; }
000000000000000007980- nix-repl> y = lib.makeOverridable x { a = 1; b = 2; }
8182- nix-repl> y
83- { override = «lambda»; overrideDerivation = «lambda»; result = 3; }
8485- nix-repl> y.override { a = 10; }
86- { override = «lambda»; overrideDerivation = «lambda»; result = 12; }
08788- Type:
89- makeOverridable :: (AttrSet -> a) -> AttrSet -> a
90 */
91 makeOverridable = f:
92 let
···120 else result);
121122123- /* Call the package function in the file `fn` with the required
0124 arguments automatically. The function is called with the
125 arguments `args`, but any missing arguments are obtained from
126 `autoArgs`. This function is intended to be partially
···147148 <!-- TODO: Apply "Example:" tag to the examples above -->
149150- Type:
151- callPackageWith :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a
000000000000000000152 */
153 callPackageWith = autoArgs: fn: args:
154 let
···210 else abort "lib.customisation.callPackageWith: ${error}";
211212213- /* Like callPackage, but for a function that returns an attribute
214- set of derivations. The override function is added to the
215- individual attributes.
0216217- Type:
218- callPackagesWith :: AttrSet -> ((AttrSet -> AttrSet) | Path) -> AttrSet -> AttrSet
000000000000000000219 */
220 callPackagesWith = autoArgs: fn: args:
221 let
···233 else mapAttrs mkAttrOverridable pkgs;
234235236- /* Add attributes to each output of a derivation without changing
237- the derivation itself and check a given condition when evaluating.
000000238239- Type:
240- extendDerivation :: Bool -> Any -> Derivation -> Derivation
0000000000000241 */
242 extendDerivation = condition: passthru: drv:
243 let
···269 outPath = assert condition; drv.outPath;
270 };
271272- /* Strip a derivation of all non-essential attributes, returning
273- only those needed by hydra-eval-jobs. Also strictly evaluate the
274- result to ensure that there are no thunks kept alive to prevent
275- garbage collection.
000000276277- Type:
278- hydraJob :: (Derivation | Null) -> (Derivation | Null)
00000279 */
280 hydraJob = drv:
281 let
···443 };
444 in self;
445446- /* backward compatibility with old uncurried form; deprecated */
00000000000000000000000000000447 makeScopeWithSplicing =
448 splicePackages: newScope: otherSplices: keep: extra: f:
449 makeScopeWithSplicing'
450 { inherit splicePackages newScope; }
451 { inherit otherSplices keep extra f; };
452453- /* Like makeScope, but aims to support cross compilation. It's still ugly, but
454- hopefully it helps a little bit.
000455456- Type:
457- makeScopeWithSplicing' ::
458- { splicePackages :: Splice -> AttrSet
459- , newScope :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a
460- }
461- -> { otherSplices :: Splice, keep :: AttrSet -> AttrSet, extra :: AttrSet -> AttrSet }
462- -> AttrSet
463464- Splice ::
465- { pkgsBuildBuild :: AttrSet
466- , pkgsBuildHost :: AttrSet
467- , pkgsBuildTarget :: AttrSet
468- , pkgsHostHost :: AttrSet
469- , pkgsHostTarget :: AttrSet
470- , pkgsTargetTarget :: AttrSet
471- }
0472 */
473 makeScopeWithSplicing' =
474 { splicePackages
···15rec {
161718+ /**
19+ `overrideDerivation drv f` takes a derivation (i.e., the result
20+ of a call to the builtin function `derivation`) and returns a new
21+ derivation in which the attributes of the original are overridden
22+ according to the function `f`. The function `f` is called with
23+ the original derivation attributes.
2425+ `overrideDerivation` allows certain "ad-hoc" customisation
26+ scenarios (e.g. in ~/.config/nixpkgs/config.nix). For instance,
27+ if you want to "patch" the derivation returned by a package
28+ function in Nixpkgs to build another version than what the
29+ function itself provides.
3031+ For another application, see build-support/vm, where this
32+ function is used to build arbitrary derivations inside a QEMU
33+ virtual machine.
3435+ Note that in order to preserve evaluation errors, the new derivation's
36+ outPath depends on the old one's, which means that this function cannot
37+ be used in circular situations when the old derivation also depends on the
38+ new one.
3940+ You should in general prefer `drv.overrideAttrs` over this function;
41+ see the nixpkgs manual for more information on overriding.
42+43+44+ # Inputs
45+46+ `drv`
47+48+ : 1\. Function argument
49+50+ `f`
5152+ : 2\. Function argument
53+54+ # Type
55+56+ ```
57+ overrideDerivation :: Derivation -> ( Derivation -> AttrSet ) -> Derivation
58+ ```
59+60+ # Examples
61+ :::{.example}
62+ ## `lib.customisation.overrideDerivation` usage example
63+64+ ```nix
65+ mySed = overrideDerivation pkgs.gnused (oldAttrs: {
66+ name = "sed-4.2.2-pre";
67+ src = fetchurl {
68+ url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
69+ hash = "sha256-MxBJRcM2rYzQYwJ5XKxhXTQByvSg5jZc5cSHEZoB2IY=";
70+ };
71+ patches = [];
72+ });
73+ ```
7475+ :::
076 */
77 overrideDerivation = drv: f:
78 let
···89 });
909192+ /**
93+ `makeOverridable` takes a function from attribute set to attribute set and
94+ injects `override` attribute which can be used to override arguments of
95+ the function.
9697+ Please refer to documentation on [`<pkg>.overrideDerivation`](#sec-pkg-overrideDerivation) to learn about `overrideDerivation` and caveats
98+ related to its use.
99100+101+ # Inputs
102+103+ `f`
104+105+ : 1\. Function argument
106+107+ # Type
108+109+ ```
110+ makeOverridable :: (AttrSet -> a) -> AttrSet -> a
111+ ```
112+113+ # Examples
114+ :::{.example}
115+ ## `lib.customisation.makeOverridable` usage example
116+117+ ```nix
118+ nix-repl> x = {a, b}: { result = a + b; }
119120+ nix-repl> y = lib.makeOverridable x { a = 1; b = 2; }
121122+ nix-repl> y
123+ { override = «lambda»; overrideDerivation = «lambda»; result = 3; }
124125+ nix-repl> y.override { a = 10; }
126+ { override = «lambda»; overrideDerivation = «lambda»; result = 12; }
127+ ```
128129+ :::
0130 */
131 makeOverridable = f:
132 let
···160 else result);
161162163+ /**
164+ Call the package function in the file `fn` with the required
165 arguments automatically. The function is called with the
166 arguments `args`, but any missing arguments are obtained from
167 `autoArgs`. This function is intended to be partially
···188189 <!-- TODO: Apply "Example:" tag to the examples above -->
190191+192+ # Inputs
193+194+ `autoArgs`
195+196+ : 1\. Function argument
197+198+ `fn`
199+200+ : 2\. Function argument
201+202+ `args`
203+204+ : 3\. Function argument
205+206+ # Type
207+208+ ```
209+ callPackageWith :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a
210+ ```
211 */
212 callPackageWith = autoArgs: fn: args:
213 let
···269 else abort "lib.customisation.callPackageWith: ${error}";
270271272+ /**
273+ Like callPackage, but for a function that returns an attribute
274+ set of derivations. The override function is added to the
275+ individual attributes.
276277+278+ # Inputs
279+280+ `autoArgs`
281+282+ : 1\. Function argument
283+284+ `fn`
285+286+ : 2\. Function argument
287+288+ `args`
289+290+ : 3\. Function argument
291+292+ # Type
293+294+ ```
295+ callPackagesWith :: AttrSet -> ((AttrSet -> AttrSet) | Path) -> AttrSet -> AttrSet
296+ ```
297 */
298 callPackagesWith = autoArgs: fn: args:
299 let
···311 else mapAttrs mkAttrOverridable pkgs;
312313314+ /**
315+ Add attributes to each output of a derivation without changing
316+ the derivation itself and check a given condition when evaluating.
317+318+319+ # Inputs
320+321+ `condition`
322323+ : 1\. Function argument
324+325+ `passthru`
326+327+ : 2\. Function argument
328+329+ `drv`
330+331+ : 3\. Function argument
332+333+ # Type
334+335+ ```
336+ extendDerivation :: Bool -> Any -> Derivation -> Derivation
337+ ```
338 */
339 extendDerivation = condition: passthru: drv:
340 let
···366 outPath = assert condition; drv.outPath;
367 };
368369+ /**
370+ Strip a derivation of all non-essential attributes, returning
371+ only those needed by hydra-eval-jobs. Also strictly evaluate the
372+ result to ensure that there are no thunks kept alive to prevent
373+ garbage collection.
374+375+376+ # Inputs
377+378+ `drv`
379380+ : 1\. Function argument
381+382+ # Type
383+384+ ```
385+ hydraJob :: (Derivation | Null) -> (Derivation | Null)
386+ ```
387 */
388 hydraJob = drv:
389 let
···551 };
552 in self;
553554+ /**
555+ backward compatibility with old uncurried form; deprecated
556+557+558+ # Inputs
559+560+ `splicePackages`
561+562+ : 1\. Function argument
563+564+ `newScope`
565+566+ : 2\. Function argument
567+568+ `otherSplices`
569+570+ : 3\. Function argument
571+572+ `keep`
573+574+ : 4\. Function argument
575+576+ `extra`
577+578+ : 5\. Function argument
579+580+ `f`
581+582+ : 6\. Function argument
583+ */
584 makeScopeWithSplicing =
585 splicePackages: newScope: otherSplices: keep: extra: f:
586 makeScopeWithSplicing'
587 { inherit splicePackages newScope; }
588 { inherit otherSplices keep extra f; };
589590+ /**
591+ Like makeScope, but aims to support cross compilation. It's still ugly, but
592+ hopefully it helps a little bit.
593+594+ # Type
595596+ ```
597+ makeScopeWithSplicing' ::
598+ { splicePackages :: Splice -> AttrSet
599+ , newScope :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a
600+ }
601+ -> { otherSplices :: Splice, keep :: AttrSet -> AttrSet, extra :: AttrSet -> AttrSet }
602+ -> AttrSet
603604+ Splice ::
605+ { pkgsBuildBuild :: AttrSet
606+ , pkgsBuildHost :: AttrSet
607+ , pkgsBuildTarget :: AttrSet
608+ , pkgsHostHost :: AttrSet
609+ , pkgsHostTarget :: AttrSet
610+ , pkgsTargetTarget :: AttrSet
611+ }
612+ ```
613 */
614 makeScopeWithSplicing' =
615 { splicePackages
···6869- [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable).
700071- [pyLoad](https://pyload.net/), a FOSS download manager written in Python. Available as [services.pyload](#opt-services.pyload.enable)
7273- [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
···77- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
7879- [pretalx](https://github.com/pretalx/pretalx), a conference planning tool. Available as [services.pretalx](#opt-services.pretalx.enable).
008081- [rspamd-trainer](https://gitlab.com/onlime/rspamd-trainer), script triggered by a helper which reads mails from a specific mail inbox and feeds them into rspamd for spam/ham training.
82
···6869- [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable).
7071+- [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition.
72+73- [pyLoad](https://pyload.net/), a FOSS download manager written in Python. Available as [services.pyload](#opt-services.pyload.enable)
7475- [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
···79- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
8081- [pretalx](https://github.com/pretalx/pretalx), a conference planning tool. Available as [services.pretalx](#opt-services.pretalx.enable).
82+83+- [dnsproxy](https://github.com/AdguardTeam/dnsproxy), a simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support. Available as [services.dnsproxy](#opt-services.dnsproxy.enable).
8485- [rspamd-trainer](https://gitlab.com/onlime/rspamd-trainer), script triggered by a helper which reads mails from a specific mail inbox and feeds them into rspamd for spam/ham training.
86
···58 # Hyper-V support.
59 "hv_storvsc"
60 ] ++ lib.optionals pkgs.stdenv.hostPlatform.isAarch [
61- # Most of the following falls into two categories:
62- # - early KMS / early display
63- # - early storage (e.g. USB) support
64-65- # Allows using framebuffer configured by the initial boot firmware
66- "simplefb"
67-68 # Allwinner support
69-70 # Required for early KMS
71 "sun4i-drm"
72 "sun8i-mixer" # Audio, but required for kms
···75 "pwm-sun4i"
7677 # Broadcom
78-79 "vc4"
80 ] ++ lib.optionals pkgs.stdenv.isAarch64 [
81 # Most of the following falls into two categories:
···58 # Hyper-V support.
59 "hv_storvsc"
60 ] ++ lib.optionals pkgs.stdenv.hostPlatform.isAarch [
000000061 # Allwinner support
062 # Required for early KMS
63 "sun4i-drm"
64 "sun8i-mixer" # Audio, but required for kms
···67 "pwm-sun4i"
6869 # Broadcom
070 "vc4"
71 ] ++ lib.optionals pkgs.stdenv.isAarch64 [
72 # Most of the following falls into two categories:
+5-1
nixos/modules/services/misc/tandoor-recipes.nix
···20 manage = pkgs.writeShellScript "manage" ''
21 set -o allexport # Export the following env vars
22 ${lib.toShellVars env}
23- exec ${pkg}/bin/tandoor-recipes "$@"
00024 '';
25in
26{
···82 Restart = "on-failure";
8384 User = "tandoor_recipes";
085 DynamicUser = true;
86 StateDirectory = "tandoor-recipes";
87 WorkingDirectory = "/var/lib/tandoor-recipes";
···20 manage = pkgs.writeShellScript "manage" ''
21 set -o allexport # Export the following env vars
22 ${lib.toShellVars env}
23+ eval "$(${config.systemd.package}/bin/systemctl show -pUID,GID,MainPID tandoor-recipes.service)"
24+ exec ${pkgs.util-linux}/bin/nsenter \
25+ -t $MainPID -m -S $UID -G $GID \
26+ ${pkg}/bin/tandoor-recipes "$@"
27 '';
28in
29{
···85 Restart = "on-failure";
8687 User = "tandoor_recipes";
88+ Group = "tandoor_recipes";
89 DynamicUser = true;
90 StateDirectory = "tandoor-recipes";
91 WorkingDirectory = "/var/lib/tandoor-recipes";
···1-sane-desc does not include unsupported .desc entries like EPSON V300 PHOTO,
2-which can be supported by the (unfree) epkowa driver.
3-But we need those entries so that unprivileged users which have installed epkowa
4-can use the scanner.
5-diff --git a/tools/sane-desc.c b/tools/sane-desc.c
6-index 7a8645dea..9c9719fef 100644
7---- a/tools/sane-desc.c
8-+++ b/tools/sane-desc.c
9-@@ -3243,10 +3243,6 @@ create_usbids_table (void)
10-11- for (model = mfg->model; model; model = model->next)
12- {
13-- if ((model->status == status_unsupported)
14-- || (model->status == status_unknown))
15-- continue;
16--
17- if (model->usb_vendor_id && model->usb_product_id)
18- {
19- first_usbid = add_usbid (first_usbid, mfg->name,
···15# Updates
16171. Update the URL in `./fetch.sh`.
18-2. Run `callPackage ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/maui`
19 from the top of the Nixpkgs tree.
203. Use `nixpkgs-review wip` to check that everything builds.
214. Commit the changes and open a pull request.
···15# Updates
16171. Update the URL in `./fetch.sh`.
18+2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/maui`
19 from the top of the Nixpkgs tree.
203. Use `nixpkgs-review wip` to check that everything builds.
214. Commit the changes and open a pull request.
···5}:
67buildPythonPackage {
8- pname = "Flask-Silk";
9 version = "unstable-2018-06-28";
1011 # master fixes flask import syntax and has no major changes
···5}:
67buildPythonPackage {
8+ pname = "flask-silk";
9 version = "unstable-2018-06-28";
1011 # master fixes flask import syntax and has no major changes
···1-{ fetchFromGitHub, skawarePackages }:
23-with skawarePackages;
4let
5 version = "2.9.4.0";
600000007 # Maintainer of manpages uses following versioning scheme: for every
8 # upstream $version he tags manpages release as ${version}.1, and,
9 # in case of extra fixes to manpages, new tags in form ${version}.2,
10 # ${version}.3 and so on are created.
11- manpages = fetchFromGitHub {
12- owner = "flexibeast";
13- repo = "execline-man-pages";
14- rev = "v2.9.1.0.1";
15- sha256 = "nZzzQFMUPmIgPS3aAIgcORr/TSpaLf8UtzBUFD7blt8=";
016 };
1718-in buildPackage {
19- inherit version;
20-21- pname = "execline";
22- sha256 = "mrVdVhU536dv9Kl5BvqZX8SiiOPeUiXLGp2PqenrxJs=";
23-24 description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
2526- outputs = [ "bin" "man" "lib" "dev" "doc" "out" ];
2728 # TODO: nsss support
29 configureFlags = [
···62 -o "$bin/bin/execlineb" \
63 ${./execlineb-wrapper.c} \
64 -lskarnet
65- mkdir -p $man/share/
66- cp -vr ${manpages}/man* $man/share
67 '';
68}
···1+{ lib, fetchFromGitHub, skawarePackages, skalibs }:
203let
4 version = "2.9.4.0";
56+in skawarePackages.buildPackage {
7+ inherit version;
8+9+ pname = "execline";
10+ # ATTN: also check whether there is a new manpages version
11+ sha256 = "mrVdVhU536dv9Kl5BvqZX8SiiOPeUiXLGp2PqenrxJs=";
12+13 # Maintainer of manpages uses following versioning scheme: for every
14 # upstream $version he tags manpages release as ${version}.1, and,
15 # in case of extra fixes to manpages, new tags in form ${version}.2,
16 # ${version}.3 and so on are created.
17+ manpages = skawarePackages.buildManPages {
18+ pname = "execline-man-pages";
19+ version = "2.9.3.0.5";
20+ sha256 = "0fcjrj4xp7y7n1c55k45rxr5m7zpv6cbhrkxlxymd4j603i9jh6d";
21+ description = "Port of the documentation for the execline suite to mdoc";
22+ maintainers = [ lib.maintainers.sternenseemann ];
23 };
2400000025 description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
2627+ outputs = [ "bin" "lib" "dev" "doc" "out" ];
2829 # TODO: nsss support
30 configureFlags = [
···63 -o "$bin/bin/execlineb" \
64 ${./execlineb-wrapper.c} \
65 -lskarnet
0066 '';
67}
···1-{ skawarePackages }:
23-with skawarePackages;
4-5-buildPackage {
6 pname = "s6-portable-utils";
7 version = "2.3.0.3";
8 sha256 = "PkSSBV0WDCX7kBU/DvwnfX1Sv5gbvj6i6d/lHEk1Yf8=";
00000000910 description = "A set of tiny general Unix utilities optimized for simplicity and small size";
11
···1+{ lib, skawarePackages, skalibs }:
23+skawarePackages.buildPackage {
004 pname = "s6-portable-utils";
5 version = "2.3.0.3";
6 sha256 = "PkSSBV0WDCX7kBU/DvwnfX1Sv5gbvj6i6d/lHEk1Yf8=";
7+8+ manpages = skawarePackages.buildManPages {
9+ pname = "s6-portable-utils-man-pages";
10+ version = "2.3.0.2.2";
11+ sha256 = "0zbxr6jqrx53z1gzfr31nm78wjfmyjvjx7216l527nxl9zn8nnv1";
12+ description = "Port of the documentation for the s6-portable-utils suite to mdoc";
13+ maintainers = [ lib.maintainers.somasis ];
14+ };
1516 description = "A set of tiny general Unix utilities optimized for simplicity and small size";
17
···78 extraNativeBuildInputs ? [],
79 extraPropagatedBuildInputs ? [],
80 extraCmakeFlags ? [],
081 ...
82 } @ args: let
00083 # FIXME(later): this is wrong for cross, some of these things really need to go into nativeBuildInputs,
84 # but cross is currently very broken anyway, so we can figure this out later.
85- deps = map (dep: self.${dep}) (dependencies.${pname} or []);
8687 defaultArgs = {
88 inherit version src;
···109 "extraNativeBuildInputs"
110 "extraPropagatedBuildInputs"
111 "extraCmakeFlags"
0112 "meta"
113 ];
114
···78 extraNativeBuildInputs ? [],
79 extraPropagatedBuildInputs ? [],
80 extraCmakeFlags ? [],
81+ excludeDependencies ? [],
82 ...
83 } @ args: let
84+ depNames = dependencies.${pname} or [];
85+ filteredDepNames = builtins.filter (dep: !(builtins.elem dep excludeDependencies)) depNames;
86+87 # FIXME(later): this is wrong for cross, some of these things really need to go into nativeBuildInputs,
88 # but cross is currently very broken anyway, so we can figure this out later.
89+ deps = map (dep: self.${dep}) filteredDepNames;
9091 defaultArgs = {
92 inherit version src;
···113 "extraNativeBuildInputs"
114 "extraPropagatedBuildInputs"
115 "extraCmakeFlags"
116+ "excludeDependencies"
117 "meta"
118 ];
119
···1112 extraNativeBuildInputs = [pkg-config];
13 extraBuildInputs = [qtwebview discount flatpak fwupd];
14+15+ # The PackageKit backend doesn't work for us and causes Discover
16+ # to freak out when loading. Disable it to not confuse users.
17+ excludeDependencies = ["packagekit-qt"];
18}