···4455## Basic usage {#sec-citrix-base}
6677-The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.
77+The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.
8899## Citrix Self-service {#sec-citrix-selfservice}
1010···19192020## Custom certificates {#sec-citrix-custom-certs}
21212222-The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
2222+The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
23232424```nix
2525with import <nixpkgs> { config.allowUnfree = true; };
+1-1
doc/builders/packages/ibus.section.md
···4455## Activating the engine {#sec-ibus-typing-booster-activate}
6677-IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/documentation.html).
77+IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/).
8899On NixOS, you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module:
1010
+2-2
doc/languages-frameworks/gnome.section.md
···34343535### GdkPixbuf loaders {#ssec-gnome-gdk-pixbuf-loaders}
36363737-GTK applications typically use [GdkPixbuf](https://developer.gnome.org/gdk-pixbuf/stable/) to load images. But `gdk-pixbuf` package only supports basic bitmap formats like JPEG, PNG or TIFF, requiring to use third-party loader modules for other formats. This is especially painful since GTK itself includes SVG icons, which cannot be rendered without a loader provided by `librsvg`.
3737+GTK applications typically use [GdkPixbuf](https://gitlab.gnome.org/GNOME/gdk-pixbuf/) to load images. But `gdk-pixbuf` package only supports basic bitmap formats like JPEG, PNG or TIFF, requiring to use third-party loader modules for other formats. This is especially painful since GTK itself includes SVG icons, which cannot be rendered without a loader provided by `librsvg`.
38383939Unlike other libraries mentioned in this section, GdkPixbuf only supports a single value in its controlling environment variable `GDK_PIXBUF_MODULE_FILE`. It is supposed to point to a cache file containing information about the available loaders. Each loader package will contain a `lib/gdk-pixbuf-2.0/2.10.0/loaders.cache` file describing the default loaders in `gdk-pixbuf` package plus the loader contained in the package itself. If you want to use multiple third-party loaders, you will need to create your own cache file manually. Fortunately, this is pretty rare as [not many loaders exist](https://gitlab.gnome.org/federico/gdk-pixbuf-survey/blob/master/src/modules.md).
4040···70707171### GTK Themes {#ssec-gnome-themes}
72727373-Previously, a GTK theme needed to be in `XDG_DATA_DIRS`. This is no longer necessary for most programs since GTK incorporated Adwaita theme. Some programs (for example, those designed for [elementary HIG](https://elementary.io/docs/human-interface-guidelines#human-interface-guidelines)) might require a special theme like `pantheon.elementary-gtk-theme`.
7373+Previously, a GTK theme needed to be in `XDG_DATA_DIRS`. This is no longer necessary for most programs since GTK incorporated Adwaita theme. Some programs (for example, those designed for [elementary HIG](https://docs.elementary.io/hig)) might require a special theme like `pantheon.elementary-gtk-theme`.
74747575### GObject introspection typelibs {#ssec-gnome-typelibs}
7676
···33, enableWideVine, ungoogled
44}:
5566-with lib;
77-86mkChromiumDerivation (base: rec {
97 name = "chromium-browser";
108 packageName = "chromium";
···76747775 meta = {
7876 description = "An open source web browser from Google"
7979- + optionalString ungoogled ", with dependencies on Google web services removed";
7777+ + lib.optionalString ungoogled ", with dependencies on Google web services removed";
8078 longDescription = ''
8179 Chromium is an open source web browser from Google that aims to build a
8280 safer, faster, and more stable way for all Internet users to experience
···8684 homepage = if ungoogled
8785 then "https://github.com/Eloston/ungoogled-chromium"
8886 else "https://www.chromium.org/";
8989- maintainers = with maintainers; if ungoogled
8787+ maintainers = with lib.maintainers; if ungoogled
9088 then [ squalus primeos michaeladler ]
9189 else [ primeos thefloweringash ];
9292- license = if enableWideVine then licenses.unfree else licenses.bsd3;
9393- platforms = platforms.linux;
9090+ license = if enableWideVine then lib.licenses.unfree else lib.licenses.bsd3;
9191+ platforms = lib.platforms.linux;
9492 mainProgram = "chromium";
9593 hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium")
9694 then ["aarch64-linux" "x86_64-linux"]
···2525, pkgsBuildBuild
2626}:
27272828-with lib;
2929-3028# k3s is a kinda weird derivation. One of the main points of k3s is the
3129# simplicity of it being one binary that can perform several tasks.
3230# However, when you have a good package manager (like nix), that doesn't
···7371 # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
7472 criCtlVersion = "1.26.0-rc.0-k3s1";
75737676- baseMeta = {
7474+ baseMeta = with lib; {
7775 description = "A lightweight Kubernetes distribution";
7876 license = licenses.asl20;
7977 homepage = "https://k3s.io";
···11-{ lib, fetchzip }:
11+{ lib, stdenvNoCC, fetchurl }:
2233-let
33+stdenvNoCC.mkDerivation rec {
44 pname = "unfonts-core";
55 version = "1.0.2-080608";
66-in fetchzip {
77- name = "${pname}-${version}";
88- url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
99- hash = "sha256-k9C7d/SbVLWFzRnDWpOIMtY6cAEIcaLcbxQAqjwuWds=";
1061111- postFetch = ''
1212- tar -xzf $downloadedFile --strip-components=1
77+ src = fetchurl {
88+ url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
99+ hash = "sha256-OwpydPmqt+jw8ZOMAacOFYF2bVG0lLoUVoPzesVXkY4=";
1010+ };
1111+1212+ dontBuild = true;
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1317 install -m444 -Dt $out/share/fonts/truetype *.ttf
1818+1919+ runHook postInstall
1420 '';
15211622 meta = with lib; {
···2026 The Un-fonts come from the HLaTeX as type1 fonts in 1998 by Koaunghi Un, he made type1 fonts to use with Korean TeX (HLaTeX) in the late 1990's and released it under the GPL license.
21272228 They were converted to TrueType with the FontForge (PfaEdit) by Won-kyu Park in 2003.
2323- '';
2929+ '';
2430 license = licenses.gpl2;
2531 platforms = platforms.all;
2632 maintainers = [ maintainers.ehmry ];
···2233rustPlatform.buildRustPackage rec {
44 pname = "cocogitto";
55- version = "5.2.0";
55+ version = "5.3.0";
6677 src = fetchFromGitHub {
88 owner = "oknozor";
99 repo = pname;
1010 rev = version;
1111- sha256 = "sha256-ZjDZMI84z8riRtidZVeCktwJUMkZU28E23MveJSD7xY=";
1111+ sha256 = "sha256-BqyV4hJw7H9yN5Kj/XwhYS6hElXdKUJEUi5M/PNlPO0=";
1212 };
13131414- cargoSha256 = "sha256-oaWWAVTKxrshfvqE+HMQ1WeeEz8lOE7qc6RrgSjDtdU=";
1414+ cargoHash = "sha256-MA3XW2tPn0qVx7ve+UqCoG4nQ7UyuvXEebrPuLKqS4g=";
15151616 # Test depend on git configuration that would likly exist in a normal user enviroment
1717 # and might be failing to create the test repository it works in.
···7788let version = "0.32"; in
991010-with lib;
1111-1210stdenv.mkDerivation {
1311 pname = "bup";
1412 inherit version;
···3129 postPatch = ''
3230 patchShebangs .
3331 substituteInPlace Makefile --replace "-Werror" ""
3434- '' + optionalString par2Support ''
3232+ '' + lib.optionalString par2Support ''
3533 substituteInPlace cmd/fsck-cmd.py --replace "'par2'" "'${par2cmdline}/bin/par2'"
3634 '';
3735···4947 --prefix PATH : ${git}/bin
5048 '';
51495252- meta = {
5050+ meta = with lib; {
5351 homepage = "https://github.com/bup/bup";
5452 description = "Efficient file backup system based on the git packfile format";
5553 license = licenses.gpl2Plus;
+1-2
pkgs/tools/backup/luckybackup/default.nix
···33, rsync, ssh
44}:
5566-with lib;
76mkDerivation rec {
87 pname = "luckybackup";
98 version = "0.5.0";
···2625 done
2726 '';
28272929- meta = {
2828+ meta = with lib; {
3029 description = "A powerful, fast and reliable backup & sync tool";
3130 longDescription = ''
3231 luckyBackup is an application for data back-up and synchronization
···11{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
2233-with lib;
44-53buildGoModule rec {
64 pname = "flannel";
75 version = "0.20.2";
···23212422 passthru.tests = { inherit (nixosTests) flannel; };
25232626- meta = {
2424+ meta = with lib; {
2725 description = "Network fabric for containers, designed for Kubernetes";
2826 license = licenses.asl20;
2927 homepage = "https://github.com/flannel-io/flannel";
-2
pkgs/tools/networking/logmein-hamachi/default.nix
···11{ lib, stdenv, fetchurl }:
2233-with lib;
44-53let
64 arch =
75 if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+2-4
pkgs/tools/networking/ndjbdns/default.nix
···11{ lib, stdenv, fetchFromGitHub, autoreconfHook, systemd, pkg-config }:
2233-with lib;
44-53stdenv.mkDerivation {
64 version = "1.06";
75 pname = "ndjbdns";
···15131614 nativeBuildInputs = [ autoreconfHook pkg-config ];
1715 buildInputs = [ ]
1818- ++ optional stdenv.isLinux systemd;
1616+ ++ lib.optional stdenv.isLinux systemd;
19172020- meta = {
1818+ meta = with lib; {
2119 description = "A brand new release of the Djbdns";
2220 longDescription = ''
2321 Djbdns is a fully‐fledged Domain Name System(DNS), originally written by the eminent author of qmail, Dr. D J Bernstein.
+2-4
pkgs/tools/networking/ngrok/default.nix
···11{ lib, stdenv, fetchurl }:
2233-with lib;
44-53let versions = lib.importJSON ./versions.json;
64 arch = if stdenv.isi686 then "386"
75 else if stdenv.isx86_64 then "amd64"
···3735 # Stripping causes SEGFAULT on x86_64-darwin
3836 dontStrip = true;
39374040- meta = {
3838+ meta = with lib; {
4139 description = "Allows you to expose a web server running on your local machine to the internet";
4240 homepage = "https://ngrok.com/";
4343- sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
4141+ sourceProvenance = with sourceTypes; [ binaryNativeCode ];
4442 license = licenses.unfree;
4543 platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
4644 maintainers = with maintainers; [ bobvanderlinden brodes ];
+12-13
pkgs/tools/networking/openssh/common.nix
···3030, linkOpenssl ? true
3131}:
32323333-with lib;
3433stdenv.mkDerivation rec {
3534 inherit pname version src;
3635···5756 # This is not the same as the libkrb5 from the inputs! pkgs.libkrb5 is
5857 # needed here to access krb5-config in order to cross compile. See:
5958 # https://github.com/NixOS/nixpkgs/pull/107606
6060- ++ optional withKerberos pkgs.libkrb5
5959+ ++ lib.optional withKerberos pkgs.libkrb5
6160 ++ extraNativeBuildInputs;
6261 buildInputs = [ zlib openssl libedit ]
6363- ++ optional withFIDO libfido2
6464- ++ optional withKerberos libkrb5
6565- ++ optional stdenv.isLinux pam;
6262+ ++ lib.optional withFIDO libfido2
6363+ ++ lib.optional withKerberos libkrb5
6464+ ++ lib.optional stdenv.isLinux pam;
66656766 preConfigure = ''
6867 # Setting LD causes `configure' and `make' to disagree about which linker
···8079 "--with-libedit=yes"
8180 "--disable-strip"
8281 (if stdenv.isLinux then "--with-pam" else "--without-pam")
8383- ] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
8484- ++ optional withFIDO "--with-security-key-builtin=yes"
8585- ++ optional withKerberos (assert libkrb5 != null; "--with-kerberos5=${libkrb5}")
8686- ++ optional stdenv.isDarwin "--disable-libutil"
8787- ++ optional (!linkOpenssl) "--without-openssl"
8282+ ] ++ lib.optional (etcDir != null) "--sysconfdir=${etcDir}"
8383+ ++ lib.optional withFIDO "--with-security-key-builtin=yes"
8484+ ++ lib.optional withKerberos (assert libkrb5 != null; "--with-kerberos5=${libkrb5}")
8585+ ++ lib.optional stdenv.isDarwin "--disable-libutil"
8686+ ++ lib.optional (!linkOpenssl) "--without-openssl"
8887 ++ extraConfigureFlags;
89889089 ${if stdenv.hostPlatform.isStatic then "NIX_LDFLAGS" else null}= [ "-laudit" ] ++ lib.optionals withKerberos [ "-lkeyutils" ];
···97969897 doCheck = true;
9998 enableParallelChecking = false;
100100- nativeCheckInputs = optional (!stdenv.isDarwin) hostname;
9999+ nativeCheckInputs = lib.optional (!stdenv.isDarwin) hostname;
101100 preCheck = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
102101 # construct a dummy HOME
103102 export HOME=$(realpath ../dummy-home)
···145144 # integration tests hard to get working on darwin with its shaky
146145 # sandbox
147146 # t-exec tests fail on musl
148148- checkTarget = optional (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "t-exec"
147147+ checkTarget = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "t-exec"
149148 # other tests are less demanding of the environment
150149 ++ [ "unit" "file-tests" "interop-tests" ];
151150···165164 borgbackup-integration = nixosTests.borgbackup;
166165 };
167166168168- meta = {
167167+ meta = with lib; {
169168 description = "An implementation of the SSH protocol${extraDesc}";
170169 homepage = "https://www.openssh.com/";
171170 changelog = "https://www.openssh.com/releasenotes.html";
+1-3
pkgs/tools/networking/snabb/default.nix
···33, fetchFromGitHub
44}:
5566-with lib;
77-86stdenv.mkDerivation rec {
97 pname = "snabb";
108 version = "2022.10";
···2119 cp src/snabb $out/bin
2220 '';
23212424- meta = {
2222+ meta = with lib; {
2523 homepage = "https://github.com/SnabbCo/snabbswitch";
2624 description = "Simple and fast packet networking toolkit";
2725 longDescription = ''