···77You can create a custom Typst environment with a selected set of packages from **Typst Universe** using the following code. It is also possible to specify a Typst package with a specific version (e.g., `cetz_0_3_0`). A package without a version number will always refer to its latest version.
8899```nix
1010-typst.withPackages (p: with p; [
1111- polylux_0_4_0
1212- cetz_0_3_0
1313-])
1010+typst.withPackages (
1111+ p: with p; [
1212+ polylux_0_4_0
1313+ cetz_0_3_0
1414+ ]
1515+)
1416```
15171618### Handling Outdated Package Hashes {#typst-handling-outdated-package-hashes}
···1820Since **Typst Universe** does not provide a way to fetch a package with a specific hash, the package hashes in `nixpkgs` can sometimes be outdated. To resolve this issue, you can manually override the package source using the following approach:
19212022```nix
2121-typst.withPackages.override (old: {
2222- typstPackages = old.typstPackages.extend (_: previous: {
2323- polylux_0_4_0 = previous.polylux_0_4_0.overrideAttrs (oldPolylux: {
2424- src = oldPolylux.src.overrideAttrs {
2525- outputHash = YourUpToDatePolyluxHash;
2626- };
2727- });
2828- });
2929-}) (p: with p; [
3030- polylux_0_4_0
3131- cetz_0_3_0
3232-])
2323+typst.withPackages.override
2424+ (old: {
2525+ typstPackages = old.typstPackages.extend (
2626+ _: previous: {
2727+ polylux_0_4_0 = previous.polylux_0_4_0.overrideAttrs (oldPolylux: {
2828+ src = oldPolylux.src.overrideAttrs {
2929+ outputHash = YourUpToDatePolyluxHash;
3030+ };
3131+ });
3232+ }
3333+ );
3434+ })
3535+ (
3636+ p: with p; [
3737+ polylux_0_4_0
3838+ cetz_0_3_0
3939+ ]
4040+ )
3341```
34423543## Custom Packages {#typst-custom-packages}
···3947Here's how to define a custom Typst package:
40484149```nix
4242-{ buildTypstPackage, typstPackages, fetchzip }:
5050+{
5151+ buildTypstPackage,
5252+ typstPackages,
5353+}:
43544455buildTypstPackage (finalAttrs: {
4556 pname = "my-typst-package";
4657 version = "0.0.1";
4747- src = fetchzip { ... };
5858+ src = ./.;
4859 typstDeps = with typstPackages; [ cetz_0_3_0 ];
4960})
5061```
···11/*
22 Technical details
3344- `make-disk-image` has a bit of magic to minimize the amount of work to do in a virtual machine.
44+ `make-disk-image` has a bit of magic to minimize the amount of work to do in a virtual machine. It also might arguably have too much, or at least too specific magic, so please consider to work towards the effort of unifying our image builders, as outlined in https://github.com/NixOS/nixpkgs/issues/324817 before adding more.
5566 It relies on the [LKL (Linux Kernel Library) project](https://github.com/lkl/linux) which provides Linux kernel as userspace library.
77···447447 mkdir -p $root
448448449449 # Copy arbitrary other files into the image
450450- # Semi-shamelessly copied from make-etc.sh. I (@copumpkin) shall factor this stuff out as part of
451451- # https://github.com/NixOS/nixpkgs/issues/23052.
450450+ # Semi-shamelessly copied from make-etc.sh.
452451 set -f
453452 sources_=(${lib.concatStringsSep " " sources})
454453 targets_=(${lib.concatStringsSep " " targets})
···116116 platforms = platforms.linux; # Darwin probably works too but I haven't tested it
117117 license = licenses.gpl2;
118118 maintainers = with maintainers; [
119119- copumpkin
120119 raitobezarius
121120 ];
122121 };
···66 catch2,
77 cmake,
88 ninja,
99- cudaPackages_11_8,
99+ cudaPackages_11,
1010 cudaPackages_12,
1111 boost,
1212 fmt_9,
···2424 # The runtime closure, thankfully, is quite small as it does not
2525 # include the CUDA libraries.
2626 cudaPackageSets = [
2727- cudaPackages_11_8
2727+ cudaPackages_11
2828 cudaPackages_12
2929 ];
3030
+20-21
pkgs/by-name/de/deno/package.nix
···55 fetchFromGitHub,
66 rustPlatform,
77 cmake,
88+ yq,
89 protobuf,
910 installShellFiles,
1011 librusty_v8 ? callPackage ./librusty_v8.nix {
···1819let
1920 canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
2021in
2121-rustPlatform.buildRustPackage rec {
2222+rustPlatform.buildRustPackage (finalAttrs: {
2223 pname = "deno";
2323- version = "2.2.8";
2424+ version = "2.2.10";
24252526 src = fetchFromGitHub {
2627 owner = "denoland";
2728 repo = "deno";
2828- tag = "v${version}";
2929- hash = "sha256-pGhqfQR+42XUY0v99fvSyLQPlvzCWntq4qS9vyuJEpY=";
2929+ tag = "v${finalAttrs.version}";
3030+ hash = "sha256-6Tuoxvatfm3edkUiMDGmCZdl/jLKr7WH8WCXR14jKT4=";
3031 };
31323233 useFetchCargoVendor = true;
3333- cargoHash = "sha256-FJ3wPkL1Pgw6S66n5hyQfUZWTVXs4oZ0bJJaN22OxoY=";
3434+ cargoHash = "sha256-wH+y93loozkgCZZeCR1EVNGBUPY/+OYwZRFeAIcVNTg=";
34353536 postPatch = ''
3637 # Use patched nixpkgs libffi in order to fix https://github.com/libffi/libffi/pull/857
3737- substituteInPlace Cargo.toml --replace-fail "libffi = \"=3.2.0\"" "libffi = { version = \"3.2.0\", features = [\"system\"] }"
3838+ tomlq -ti '.workspace.dependencies.libffi = { "version": .workspace.dependencies.libffi, "features": ["system"] }' Cargo.toml
3839 '';
39404041 # uses zlib-ng but can't dynamically link yet
4142 # https://github.com/rust-lang/libz-sys/issues/158
4242- nativeBuildInputs =
4343- [
4444- rustPlatform.bindgenHook
4545- # required by libz-ng-sys crate
4646- cmake
4747- # required by deno_kv crate
4848- protobuf
4949- installShellFiles
5050- ]
5151- ++ lib.optionals stdenv.hostPlatform.isDarwin [
5252- lld
5353- ];
4343+ nativeBuildInputs = [
4444+ rustPlatform.bindgenHook
4545+ # for tomlq to adjust Cargo.toml
4646+ yq
4747+ # required by libz-ng-sys crate
4848+ cmake
4949+ # required by deno_kv crate
5050+ protobuf
5151+ installShellFiles
5252+ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ lld ];
54535554 configureFlags = lib.optionals stdenv.cc.isClang [
5655 # This never worked with clang, but became a hard error recently: https://github.com/llvm/llvm-project/commit/3d5b610c864c8f5980eaa16c22b71ff1cf462fae
···8988 installCheckPhase = lib.optionalString canExecute ''
9089 runHook preInstallCheck
9190 $out/bin/deno --help
9292- $out/bin/deno --version | grep "deno ${version}"
9191+ $out/bin/deno --version | grep "deno ${finalAttrs.version}"
9392 runHook postInstallCheck
9493 '';
9594···98979998 meta = with lib; {
10099 homepage = "https://deno.land/";
101101- changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
100100+ changelog = "https://github.com/denoland/deno/releases/tag/v${finalAttrs.version}";
102101 description = "Secure runtime for JavaScript and TypeScript";
103102 longDescription = ''
104103 Deno aims to be a productive and secure scripting environment for the modern programmer.
···122121 "aarch64-darwin"
123122 ];
124123 };
125125-}
124124+})
···1717 # include version in the name so we invalidate the FOD
1818 name = "${pname}-${version}";
1919 src = sources.${pname};
2020- hash = "sha256-5TMHytHLIjdzY6O1+V9do/JCfxFfBkYD+bd+FNLlrMk=";
2020+ hash = "sha256-FgzmWw8FZb+DNSf2n6H14Rq07+x1LzG9hX4hFetuqDw=";
2121 };
22222323 extraNativeBuildInputs = [
···11+diff --git a/samba/filepropertiesplugin/qml/MissingSambaPage.qml b/samba/filepropertiesplugin/qml/MissingSambaPage.qml
22+index 4419b25..f16e70b 100644
13--- a/samba/filepropertiesplugin/qml/MissingSambaPage.qml
24+++ b/samba/filepropertiesplugin/qml/MissingSambaPage.qml
33-@@ -16,7 +16,7 @@ Item {
44-55+@@ -17,7 +17,7 @@ Item {
56 icon.name: "dialog-error"
6777-- text: xi18nc("@info", "The <application>Samba</application> file sharing service must be installed before folders can be shared.")
88-- explanation: i18n("Because this distro does not include PackageKit, we cannot show you a nice \"Install it\" button, and you will have to use your package manager to install the <command>samba</command> server package manually.")
99-+ text: xi18nc("@info", "File sharing service unavailable")
88+ text: xi18nc("@info", "File sharing service unavailable")
99+- explanation: i18n("Please ensure the Samba service is enabled and running.\nIf you haven't disabled it manually, consider reporting a bug to your distribution.")
1010+ explanation: i18n("Please enable the `services.samba.enable` and `services.samba.usershares.enable` options in your NixOS configuration.")
1111- }
1212- }
1111+1212+ helpfulAction: Kirigami.Action {
1313+ icon.name: "mail-message-new"
···392392 cargo-inspect = throw "'cargo-inspect' has been removed due to lack of upstream maintenance. Upstream recommends cargo-expand."; # Added 2025-01-26
393393 cargo-web = throw "'cargo-web' has been removed due to lack of upstream maintenance"; # Added 2025-01-26
394394 cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
395395+ centerim = throw "centerim has been removed due to upstream disappearing"; # Added 2025-04-18
395396 certmgr-selfsigned = certmgr; # Added 2023-11-30
396397 cgal_4 = throw "cgal_4 has been removed as it is obsolete use cgal instead"; # Added 2024-12-30
397398 cgal_5 = cgal; # Added 2024-12-30
···851852 isl_0_17 = throw "isl_0_17 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-11-20
852853 iso-flags-png-320x420 = lib.warnOnInstantiate "iso-flags-png-320x420 has been renamed to iso-flags-png-320x240" iso-flags-png-320x240; # Added 2024-07-17
853854 itktcl = tclPackages.itktcl; # Added 2024-10-02
855855+ iv = throw "iv has been removed as it was no longer required for neuron and broken"; # Added 2025-04-18
854856 ix = throw "ix has been removed from Nixpkgs, as the ix.io pastebin has been offline since Dec. 2023"; # Added 2025-04-11
855857856858 ### J ###