···11+22+# lib/deprecated
33+44+Do not add any new functions to this directory.
55+66+This directory contains the `lib.misc` sublibrary, which - as a location - is deprecated.
77+Furthermore, some of the functions inside are of *dubious* utility, and should perhaps be avoided,
88+while some functions *may still be needed*.
99+1010+This directory does not play a role in the deprecation process for library functions.
1111+They should be deprecated in place, by putting a `lib.warn` or `lib.warnIf` call around the function.
+49-1
lib/lists.nix
···44{ lib }:
55let
66 inherit (lib.strings) toInt;
77- inherit (lib.trivial) compare min id warn;
77+ inherit (lib.trivial) compare min id warn pipe;
88 inherit (lib.attrsets) mapAttrs;
99in
1010rec {
···332332 :::
333333 */
334334 imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
335335+336336+ /**
337337+ Filter a list for elements that satisfy a predicate function.
338338+ The predicate function is called with both the index and value for each element.
339339+ It must return `true`/`false` to include/exclude a given element in the result.
340340+ This function is strict in the result of the predicate function for each element.
341341+ This function has O(n) complexity.
342342+343343+ Also see [`builtins.filter`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-filter) (available as `lib.lists.filter`),
344344+ which can be used instead when the index isn't needed.
345345+346346+ # Inputs
347347+348348+ `ipred`
349349+350350+ : The predicate function, it takes two arguments:
351351+ - 1. (int): the index of the element.
352352+ - 2. (a): the value of the element.
353353+354354+ It must return `true`/`false` to include/exclude a given element from the result.
355355+356356+ `list`
357357+358358+ : The list to filter using the predicate.
359359+360360+ # Type
361361+ ```
362362+ ifilter0 :: (int -> a -> bool) -> [a] -> [a]
363363+ ```
364364+365365+ # Examples
366366+ :::{.example}
367367+ ## `lib.lists.ifilter0` usage example
368368+369369+ ```nix
370370+ ifilter0 (i: v: i == 0 || v > 2) [ 1 2 3 ]
371371+ => [ 1 3 ]
372372+ ```
373373+ :::
374374+ */
375375+ ifilter0 =
376376+ ipred:
377377+ input:
378378+ map (idx: elemAt input idx) (
379379+ filter (idx: ipred idx (elemAt input idx)) (
380380+ genList (x: x) (length input)
381381+ )
382382+ );
335383336384 /**
337385 Map and concatenate the result.
···50505151- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `virtualisation.containers.cdi.dynamic.nvidia.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
52525353-- A new option `system.etc.overlay.enable` was added. If enabled, `/etc` is
5353+- `system.etc.overlay.enable` option was added. If enabled, `/etc` is
5454 mounted via an overlayfs instead of being created by a custom perl script.
55555656- NixOS AMIs are now uploaded regularly to a new AWS Account.
···237237238238- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`
239239240240-- `neo4j` has been updated to 5, you may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/)
240240+- `neo4j` has been updated to version 5, you may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/)
241241242242- `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.
243243···251251252252- `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
253253 This was done so that secrets aren't stored in the world-readable nix store.
254254- To migrate, you will have create a file with the same exact string, and change
254254+ To migrate, you will have to create a file with the same exact string, and change
255255 your module options to point to that file. For example, `services.aria2.rpcSecret =
256256 "mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
257257 where the file `secret_file` contains the string `mysecret`.
258258259259- `openssh`, `openssh_hpn` and `openssh_gssapi` are now compiled without support for the DSA signature algorithm as it is being deprecated upstream. Users still relying on DSA keys should consider upgrading
260260- to another signature algorithm. It is however possible, for the time being, to restore the DSA keys support using `override` to set `dsaKeysSupport = true`.
260260+ to another signature algorithm. However, for the time being it is possible to restore DSA key support using `override` to set `dsaKeysSupport = true`.
261261262262-- `buildGoModule` now throws error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
262262+- `buildGoModule` now throws an error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
263263264264-- Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
264264+- `services.invidious.settings.db.user`, the default database username, has changed from `kemal` to `invidious`. Setups involving an externally-provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
265265266266- `writeReferencesToFile` is deprecated in favour of the new trivial build helper `writeClosure`. The latter accepts a list of paths and has an unambiguous name and cleaner implementation.
267267268268- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
269269270270-- `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the freeform type and option named `services.paperless.settings`.
270270+- `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the free-form type and option named `services.paperless.settings`.
271271272272-- `davfs2`' `services.davfs2.extraConfig` setting has been deprecated and converted to the freeform type option named `services.davfs2.settings` according to RFC42.
272272+- `davfs2`' `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
273273274274-- `services.homepage-dashboard` now takes it's configuration using native Nix expressions, rather than dumping templated configurations into `/var/lib/homepage-dashboard` where they were previously managed manually. There are now new options which allow the configuration of bookmarks, services, widgets and custom CSS/JS natively in Nix.
274274+- `services.homepage-dashboard` now takes its configuration using native Nix expressions, rather than dumping templated configurations into `/var/lib/homepage-dashboard` where they were previously managed manually. There are now new options which allow the configuration of bookmarks, services, widgets and custom CSS/JS natively in Nix.
275275276276- `hare` may now be cross-compiled. For that to work, however, `haredoc` needed to stop being built together with it. Thus, the latter is now its own package with the name of `haredoc`.
277277278278-- The legacy and long deprecated systemd target `network-interfaces.target` has been removed. Use `network.target` instead.
278278+- `network-interfaces.target` system target was removed as it has been deprecated for a long time. Use `network.target` instead.
279279280280- `azure-cli` now has extension support. For example, to install the `aks-preview` extension, use
281281282282 ```nix
283283 environment.systemPackages = [
284284- (azure-cli.withExtensions [ azure-cli.extensions.aks-preview ]);
284284+ (azure-cli.withExtensions [ azure-cli.extensions.aks-preview ])
285285 ];
286286 ```
287287 To make the `azure-cli` immutable and prevent clashes in case `azure-cli` is also installed via other package managers, some configuration files were moved into the derivation.
···401401 upgrade NetBox by changing `services.netbox.package`. Database migrations
402402 will be run automatically.
403403404404-- The executable file names for `firefox-devedition`, `firefox-beta`, `firefox-esr` now matches their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
404404+- `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
405405406406- switch-to-configuration does not directly call systemd-tmpfiles anymore.
407407 Instead, the new artificial sysinit-reactivation.target is introduced which
···472472473473- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
474474475475-- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
475475+- (TODO awaiting feedback on code-casing package names) Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
476476477477-- MATE has been updated to 1.28.
477477+- (TODO awaiting feedback on code-casing package names) MATE has been updated to 1.28.
478478 - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
479479 - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
480480 - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
481481482482-- The Budgie module installs gnome-terminal by default (instead of mate-terminal).
482482+- The (TODO awaiting feedback on code-casing package names) Budgie module installs gnome-terminal by default (instead of mate-terminal).
483483484484- New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned.
485485···491491- The Matrix homeserver [Synapse](https://element-hq.github.io/synapse/) module now supports configuring UNIX domain socket [listeners](#opt-services.matrix-synapse.settings.listeners) through the `path` option.
492492 The default replication worker on the main instance has been migrated away from TCP sockets to UNIX domain sockets.
493493494494-- The initrd ssh daemon module got a new option to add authorized keys via a list of files using `boot.initrd.network.ssh.authorizedKeyFiles`.
494494+- `boot.initrd.network.ssh.authorizedKeyFiles` is a new option in the initrd ssh daemon module, for adding authorized keys via list of files.
495495496496- Programs written in [Nim](https://nim-lang.org/) are built with libraries selected by lockfiles.
497497 The `nimPackages` and `nim2Packages` sets have been removed.
···509509510510- `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
511511512512-- [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
512512+- (TODO awaiting feedback on code-casing package names) [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
513513514514-- Garage has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
514514+- (TODO awaiting feedback on code-casing package names) Garage has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
515515516516- The EC2 image module now enables the [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) by default.
517517···546546- New options were added to the dnsdist module to enable and configure a DNSCrypt endpoint (see `services.dnsdist.dnscrypt.enable`, etc.).
547547 The module can generate the DNSCrypt provider key pair, certificates and also performs their rotation automatically with no downtime.
548548549549-- With a bump to `sonarr` v4, existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
549549+- `sonarr` bumped to v4. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
550550551551- The Yama LSM is now enabled by default in the kernel, which prevents ptracing
552552 non-child processes. This means you will not be able to attach gdb to an
···556556- The netbird module now allows running multiple tunnels in parallel through [`services.netbird.tunnels`](#opt-services.netbird.tunnels).
557557558558- [Nginx virtual hosts](#opt-services.nginx.virtualHosts) using `forceSSL` or
559559- `globalRedirect` can now have redirect codes other than 301 through
559559+ `globalRedirect` can now have redirect codes other than 301 through `redirectCode`.
560560561561- `bacula` now allows to configure `TLS` for encrypted communication.
562562-563563- `redirectCode`.
564562565563- `libjxl` 0.9.0 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
566564567567-- The source of the `mockgen` package has changed to the [go.uber.org/mock](https://github.com/uber-go/mock) fork because [the original repository is no longer maintained](https://github.com/golang/mock#gomock).
565565+- `mockgen` package source has changed to the [go.uber.org/mock](https://github.com/uber-go/mock) fork because [the original repository is no longer maintained](https://github.com/golang/mock#gomock).
568566569567- `security.pam.enableSSHAgentAuth` was renamed to `security.pam.sshAgentAuth.enable` and an `authorizedKeysFiles`
570568 option was added, to control which `authorized_keys` files are trusted. It defaults to the previous behaviour,
···581579582580- `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
583581584584-- `services.kavita` now uses the freeform option `services.kavita.settings` for the application settings file.
582582+- `services.kavita` now uses the free-form option `services.kavita.settings` for the application settings file.
585583 The options `services.kavita.ipAdresses` and `services.kavita.port` now exist at `services.kavita.settings.IpAddresses`
586584 and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with
587585 512+ bits instead of 128+ bits.
···592590593591- `services.soju` now has a wrapper for the `sojuctl` command, pointed at the service config file. It also has the new option `adminSocket.enable`, which creates a unix admin socket at `/run/soju/admin`.
594592595595-- Gitea 1.21 upgrade has several breaking changes, including:
593593+- `gitea` upgrade to 1.21 has several breaking changes, including:
596594 - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
597595 - New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command.
598596···604602605603- The `services.networkmanager.extraConfig` was renamed to `services.networkmanager.settings` and was changed to use the ini type instead of using a multiline string.
606604607607-- The module `services.github-runner` has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
605605+- `services.github-runner` module has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
608606609607- The `services.slskd` has been refactored to include more configuation options in
610610- the freeform `services.slskd.settings` option, and some defaults (including listen ports)
608608+ the free-form `services.slskd.settings` option, and some defaults (including listen ports)
611609 have been changed to match the upstream defaults. Additionally, disk logging is now
612610 disabled by default, and the log rotation timer has been removed.
613611 The nginx virtualhost option is now of the `vhost-options` type.
···234234 */
235235 excludeShellChecks ? [ ],
236236 /*
237237+ Extra command-line flags to pass to ShellCheck.
238238+239239+ Type: [String]
240240+ */
241241+ extraShellCheckFlags ? [ ],
242242+ /*
237243 Bash options to activate with `set -o` at the start of the script.
238244239245 Defaults to `[ "errexit" "nounset" "pipefail" ]`.
···282288 # but we still want to use writeShellApplication on those platforms
283289 let
284290 shellcheckSupported = lib.meta.availableOn stdenv.buildPlatform shellcheck-minimal.compiler;
285285- excludeOption = lib.optionalString (excludeShellChecks != [ ]) "--exclude '${lib.concatStringsSep "," excludeShellChecks}'";
291291+ excludeFlags = lib.optionals (excludeShellChecks != [ ]) [ "--exclude" (lib.concatStringsSep "," excludeShellChecks) ];
286292 shellcheckCommand = lib.optionalString shellcheckSupported ''
287293 # use shellcheck which does not include docs
288294 # pandoc takes long to build and documentation isn't needed for just running the cli
289289- ${lib.getExe shellcheck-minimal} ${excludeOption} "$target"
295295+ ${lib.getExe shellcheck-minimal} ${lib.escapeShellArgs (excludeFlags ++ extraShellCheckFlags)} "$target"
290296 '';
291297 in
292298 if checkPhase == null then ''
···2525 sha256 = "BpHqJfnGOeTE7tkFJBx0Wk8ryalmf4KNTit/Coh026E=";
2626 };
27272828- # Why do we have splicing and yet do `nativeBuildInputs = with self; ...`?
2929- # See note in ../netbsd/default.nix.
3030-3128 compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isFreeBSD) self.compat;
3232-3329 freebsd-lib = import ./lib { inherit version; };
34303535- # Overridden arguments avoid cross package-set splicing issues,
3636- # otherwise would just use implicit
3737- # `lib.packagesFromDirectoryRecursive` auto-call.
3131+ # The manual callPackages below should in principle be unnecessary, but are
3232+ # necessary. See note in ../netbsd/default.nix
38333934 compat = self.callPackage ./pkgs/compat/package.nix {
4035 inherit stdenv;
···11+{ makeSetupHook, writeText, stat }:
22+33+# stat isn't in POSIX, and NetBSD stat supports a completely
44+# different range of flags than GNU stat, so including it in PATH
55+# breaks stdenv. Work around that with a hook that will point
66+# NetBSD's build system and NetBSD stat without including it in
77+# PATH.
88+99+makeSetupHook {
1010+ name = "netbsd-stat-hook";
1111+} (writeText "netbsd-stat-hook-impl" ''
1212+ makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
1313+'')
1414+
+19
pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix
···11+{ mkDerivation
22+, bsdSetupHook, netbsdSetupHook
33+, makeMinimal
44+, install, mandoc, groff, rsync
55+}:
66+77+# Don't add this to nativeBuildInputs directly.
88+# Use statHook instead. See note in stat/hook.nix
99+1010+mkDerivation {
1111+ path = "usr.bin/stat";
1212+ version = "9.2";
1313+ sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x";
1414+ nativeBuildInputs = [
1515+ bsdSetupHook netbsdSetupHook
1616+ makeMinimal
1717+ install mandoc groff rsync
1818+ ];
1919+}
···11+diff --git a/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp b/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp
22+index aee499e9..13fa89d4 100644
33+--- a/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp
44++++ b/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp
55+@@ -105,7 +105,7 @@ bool BundleResourceContainer::GetStat(int index,
66+ const_cast<mz_zip_archive*>(&m_ZipArchive), index)
77+ ? true
88+ : false;
99+- stat.modifiedTime = zipStat.m_time;
1010++ stat.modifiedTime = 0;
1111+ stat.crc32 = zipStat.m_crc32;
1212+ // This will limit the size info from uint64 to uint32 on 32-bit
1313+ // architectures. We don't care because we assume resources > 2GB
1414+diff --git a/external/CppMicroServices/third_party/miniz.c b/external/CppMicroServices/third_party/miniz.c
1515+index 6b0ebd7a..fa2aebca 100644
1616+--- a/external/CppMicroServices/third_party/miniz.c
1717++++ b/external/CppMicroServices/third_party/miniz.c
1818+@@ -170,7 +170,7 @@
1919+ // If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or
2020+ // get/set file times, and the C run-time funcs that get/set times won't be called.
2121+ // The current downside is the times written to your archives will be from 1979.
2222+-//#define MINIZ_NO_TIME
2323++#define MINIZ_NO_TIME
2424+2525+ // Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's.
2626+ //#define MINIZ_NO_ARCHIVE_APIS
+18-30
pkgs/os-specific/linux/sgx/sdk/default.nix
···11{ lib
22, stdenv
33, fetchFromGitHub
44-, fetchpatch
54, autoconf
65, automake
76, binutils
···2726stdenv.mkDerivation rec {
2827 pname = "sgx-sdk";
2928 # Version as given in se_version.h
3030- version = "2.21.100.1";
2929+ version = "2.23.100.2";
3130 # Version as used in the Git tag
3232- versionTag = "2.21";
3131+ versionTag = "2.23";
33323433 src = fetchFromGitHub {
3534 owner = "intel";
3635 repo = "linux-sgx";
3736 rev = "sgx_${versionTag}";
3838- hash = "sha256-Yo2G0H0XUI2p9W7lDRLkFHw2t8X1220brGohQJ0r2WY=";
3737+ hash = "sha256-i+fE6xKiuljG8LY8TIHgrW15DVpdp46bZdNo/BjgT/I=";
3938 fetchSubmodules = true;
4039 };
4140···4645 '';
47464847 patches = [
4949- # Fix missing pthread_compat.h, see https://github.com/intel/linux-sgx/pull/784
5050- (fetchpatch {
5151- url = "https://github.com/intel/linux-sgx/commit/254b58f922a6bd49c308a4f47f05f525305bd760.patch";
5252- sha256 = "sha256-sHU++K7NJ+PdITx3y0PwstA9MVh10rj2vrLn01N9F4w=";
5353- })
4848+ # There's a `make preparation` step that downloads some prebuilt binaries
4949+ # and applies some patches to the in-repo git submodules. This patch removes
5050+ # the parts that download things, since we can't do that inside the sandbox.
5151+ ./disable-downloads.patch
5252+5353+ # This patch disable mtime in bundled zip file for reproducible builds.
5454+ #
5555+ # Context: The `aesm_service` binary depends on a vendored library called
5656+ # `CppMicroServices`. At build time, this lib creates and then bundles
5757+ # service resources into a zip file and then embeds this zip into the
5858+ # binary. Without changes, the `aesm_service` will be different after every
5959+ # build because the embedded zip file contents have different modified times.
6060+ ./cppmicroservices-no-mtime.patch
5461 ];
55625656- # There's a `make preparation` step that downloads some prebuilt binaries and
5757- # applies some patches to the in-repo git submodules. We can't just run it,
5858- # since it downloads things, so this step just extracts the patching steps.
5963 postPatch = ''
6064 patchShebangs linux/installer/bin/build-installpkg.sh \
6165 linux/installer/common/sdk/createTarball.sh \
6266 linux/installer/common/sdk/install.sh \
6367 external/sgx-emm/create_symlink.sh
64686565- echo "Running 'make preparation' but without download steps"
6666-6767- # Seems to download something. Build currently uses ipp-crypto and not
6868- # sgxssl so probably not an issue.
6969- # $ ./external/dcap_source/QuoteVerification/prepare_sgxssl.sh nobuild
7070-7171- pushd external/openmp/openmp_code
7272- git apply ../0001-Enable-OpenMP-in-SGX.patch >/dev/null 2>&1 \
7373- || git apply ../0001-Enable-OpenMP-in-SGX.patch --check -R
7474- popd
7575-7676- pushd external/protobuf/protobuf_code
7777- git apply ../sgx_protobuf.patch >/dev/null 2>&1 \
7878- || git apply ../sgx_protobuf.patch --check -R
7979- popd
8080-8181- ./external/sgx-emm/create_symlink.sh
6969+ make preparation
8270 '';
83718472 # We need `cmake` as a build input but don't use it to kick off the build phase
···300288 meta = with lib; {
301289 description = "Intel SGX SDK for Linux built with IPP Crypto Library";
302290 homepage = "https://github.com/intel/linux-sgx";
303303- maintainers = with maintainers; [ sbellem arturcygan veehaitch ];
291291+ maintainers = with maintainers; [ phlip9 sbellem arturcygan veehaitch ];
304292 platforms = [ "x86_64-linux" ];
305293 license = with licenses; [ bsd3 ];
306294 };
···352352 command-line tool to connect to Azure and execute administrative
353353 commands on Azure resources. It allows the execution of commands
354354 through a terminal using interactive command-line prompts or a script.
355355+356356+ `azure-cli` has extension support. For example, to install the `aks-preview` extension, use
357357+358358+ ```nix
359359+ environment.systemPackages = [
360360+ (azure-cli.withExtensions [ azure-cli.extensions.aks-preview ])
361361+ ];
362362+ ```
363363+364364+ To make the `azure-cli` immutable and prevent clashes in case `azure-cli` is also installed via other package managers,
365365+ some configuration files were moved into the derivation. This can be disabled by overriding `withImmutableConfig = false`
366366+ when building `azure-cli`.
355367 '';
356368 changelog = "https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/docs-ref-conceptual/release-notes-azure-cli.md";
357369 sourceProvenance = [ sourceTypes.fromSource ];
+1-1
pkgs/tools/backup/zfsbackup/default.nix
···2626 description = "Backup ZFS snapshots to cloud storage such as Google, Amazon, Azure, etc";
2727 homepage = "https://github.com/someone1/zfsbackup-go";
2828 license = licenses.mit;
2929- maintainers = with maintainers; [ xfix ];
2929+ maintainers = with maintainers; [ ];
3030 platforms = platforms.linux;
3131 mainProgram = "zfsbackup-go";
3232 };
···44, boehmgc, libGLU, libGL, mesa, ncurses, readline, gsl, libsigsegv
55, python3, qtbase, qtsvg, boost
66, zlib, perl, curl
77-, texliveSmall, texinfo
77+, texinfo
88+, texlive
99+, texliveSmall
810, darwin
911}:
10121111-stdenv.mkDerivation rec {
1212- version = "2.88";
1313+stdenv.mkDerivation (finalAttrs: {
1414+ version = "2.89";
1315 pname = "asymptote";
14161517 outputs = [ "out" "man" "info" "doc" "tex" ];
16181719 src = fetchurl {
1818- url = "mirror://sourceforge/asymptote/${version}/asymptote-${version}.src.tgz";
1919- hash = "sha256-DecadD+m7pORuH3Sdcs/5M3vUbN6rhSkFoNN0Soq9bs=";
2020+ url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz";
2121+ hash = "sha256-9k5itO5PhfGnhkDE8eim+Y6R9U7ayrGXJ8fKvpSlf1s=";
2022 };
21232222- patches = [
2323- (fetchpatch {
2424- # partial fix for macOS XDR/V3D support (LDFLAGS change seems like an unrelated bugfix)
2525- name = "restore-LDFLAGS-dont-look-for-tirpc-under-MacOS.patch";
2626- url = "https://github.com/vectorgraphics/asymptote/commit/7e17096b22d18d133d1bc5916b6e32c0cb24ad10.patch";
2727- hash = "sha256-olCFzqfZwWOAjqlB5lDPXYRHU9i3VQNgoR0cO5TmW98=";
2828- })
2929- ];
2424+ # override with TeX Live containers to avoid building sty, docs from source
2525+ texContainer = null;
2626+ texdocContainer = null;
30273128 nativeBuildInputs = [
3229 autoreconfHook
···3734 wrapQtAppsHook
3835 cmake
3936 pkg-config
4040- ];
3737+ ] ++ lib.optional (finalAttrs.texContainer == null || finalAttrs.texdocContainer == null)
3838+ (texliveSmall.withPackages (ps: with ps; [ epsf cm-super ps.texinfo media9 ocgx2 collection-latexextra ]));
41394240 buildInputs = [
4341 ghostscriptX imagemagick fftw eigen
4442 boehmgc ncurses readline gsl libsigsegv
4543 zlib perl curl qtbase qtsvg boost
4646- (texliveSmall.withPackages (ps: with ps; [ epsf cm-super ps.texinfo media9 ocgx2 collection-latexextra ]))
4744 (python3.withPackages (ps: with ps; [ cson numpy pyqt5 ]))
4845 ] ++ lib.optionals stdenv.isLinux [ libtirpc ];
4946···57545855 dontWrapQtApps = true;
59566060- # Do not build $tex/ls-R which will be generated by texlive.combine
5757+ # do not build $tex/ls-R which will be generated by texlive.withPackages
5858+ # do not build and install sty and docs, if provided by tex/texdoc texlive containers
5959+ # (this is an optimisation to make texliveMedium and texliveFull independent of texliveSmall)
6160 preConfigure = ''
6261 HOME=$TMP
6362 substituteInPlace Makefile.in \
6464- --replace-fail 'install: install-notexhash install-texhash' 'install: install-notexhash install-asy'
6565- prependToVar configureFlags "--with-latex=$tex/tex/latex" "--with-context=$tex/tex/context/third"
6363+ --replace-fail ' install-texhash' '''
6464+ if [[ -n $texContainer ]] ; then
6565+ sed -i Makefile.in -e '/(\(latex\|context\)dir)/d'
6666+ substituteInPlace Makefile.in \
6767+ --replace-fail 'asy sty' 'asy'
6868+ else
6969+ prependToVar configureFlags "--with-latex=$tex/tex/latex" "--with-context=$tex/tex/context/third"
7070+ fi
7171+ if [[ -n $texdocContainer ]] ; then
7272+ substituteInPlace Makefile.in \
7373+ --replace-fail ' install-man' ''' \
7474+ --replace-fail 'docdir = $(DESTDIR)@docdir@' 'docdir = $(TMP)/doc'
7575+ fi
6676 '';
67776878 # do not use bundled libgc.so
···7686 rm "$out"/bin/xasy
7787 makeQtWrapper "$out"/share/asymptote/GUI/xasy.py "$out"/bin/xasy --prefix PATH : "$out"/bin
78887979- mv "$info"/share/info/asymptote/*.info "$info"/share/info/
8080- sed -i -e 's|(asymptote/asymptote)|(asymptote)|' "$info"/share/info/asymptote.info
8181- rmdir "$info"/share/info/asymptote
8282- rm -f "$info"/share/info/dir
8989+ if [[ -z $texdocContainer ]] ; then
9090+ mv "$info"/share/info/asymptote/*.info "$info"/share/info/
9191+ sed -i -e 's|(asymptote/asymptote)|(asymptote)|' "$info"/share/info/asymptote.info
9292+ rmdir "$info"/share/info/asymptote
9393+ rm -f "$info"/share/info/dir
9494+ fi
9595+ install -Dt $out/share/emacs/site-lisp/${finalAttrs.pname} $out/share/asymptote/*.el
9696+ '';
9797+9898+ # fixupPhase crashes if the outputs are not directories
9999+ preFixup = ''
100100+ if [[ -n $texContainer ]] ; then
101101+ mkdir -p "$tex"
102102+ fi
103103+ if [[ -n $texdocContainer ]] ; then
104104+ mkdir -p "$doc" "$man" "$info"
105105+ fi
106106+ '';
831078484- install -Dt $out/share/emacs/site-lisp/${pname} $out/share/asymptote/*.el
108108+ postFixup = ''
109109+ if [[ -n $texContainer ]] ; then
110110+ rmdir "$tex"
111111+ ln -s "$texContainer" "$tex"
112112+ fi
113113+ if [[ -n $texdocContainer ]] ; then
114114+ mkdir -p "$man/share" "$info/share"
115115+ ln -s "$texdocContainer" "$doc/share"
116116+ ln -s "$texdocContainer/doc/man" "$man/share"
117117+ ln -s "$texdocContainer/doc/info" "$info/share"
118118+ fi
85119 '';
8612087121 dontUseCmakeConfigure = true;
···98132 maintainers = [ maintainers.raskin ];
99133 platforms = platforms.linux ++ platforms.darwin;
100134 };
101101-}
135135+})
+2-2
pkgs/tools/misc/broadlink-cli/default.nix
···2233python3Packages.buildPythonApplication rec {
44 pname = "broadlink-cli";
55- version = "0.18.3";
55+ version = "0.19.0";
6677 # the tools are available as part of the source distribution from GH but
88 # not pypi, so we have to fetch them here.
···1010 owner = "mjg59";
1111 repo = "python-broadlink";
1212 rev = "refs/tags/${version}";
1313- sha256 = "sha256-8bSlMA5Nb3hqpVMeHlgb8AkKt5JrfEiyKjobxRBdmNM=";
1313+ sha256 = "sha256-fqhi4K8Ceh8Rs0ExteCfAuVfEamFjMCjCFm6DRAJDmI=";
1414 };
15151616 format = "other";
···3131 origurl = repourl
3232 if '/' in name or ' ' in name:
3333 name = os.path.split(path)[-1].removesuffix('.yaml')
3434- name = name.replace('_', '-')
3434+ name = name.replace('_', '-').lower()
3535 if name in PLUGINS.keys():
3636 raise ValueError(f'Duplicate plugin {name}, refusing to continue')
3737 repodir = os.path.join(TMP, 'maubot-plugins', name)