During Quicklisp import: <del> - `+` in names are converted to `_plus{_,}`: `cl+ssl`->`cl_plus_ssl`, `alexandria+`->`alexandria_plus` - `.` to `_dot_`: `iolib.base`->`iolib_dot_base` </del> <ins> - `+` in names is converted to `_plus{_,}`: `cl+ssl`->`cl_plus_ssl`, `alexandria+`->`alexandria_plus` - `.` in names is converted to `_dot_`: `iolib.base`->`iolib_dot_base` </ins> - names starting with a number have a `_` prepended (`3d-vectors`->`_3d-vectors`) - `_` in names is converted to `__` for reversibility ## Defining packages manually inside Nixpkgs {#lisp-defining-packages-inside} <del> New packages, that for some reason are not in Quicklisp, and so cannot be auto-imported, can be written in the `packages.nix` file. </del> <ins> Packages that for some reason are not in Quicklisp, and so cannot be auto-imported, or don't work straight from the import, are defined in the `packages.nix` file. </ins> In that file, use the `build-asdf-system` function, which is a wrapper around `mkDerivation` for building ASDF systems. Various other hacks are present, such as `build-with-compile-into-pwd` for systems which create files during <del> compilation. </del> <ins> compilation (such as cl-unicode). </ins> <del> The `build-asdf-system` function is documented with comments in `nix-cl.nix`. Also, `packages.nix` is full of examples of how to use it. </del> <ins> The `build-asdf-system` function is documented [here](#lisp-defining-packages-outside). Also, `packages.nix` is full of examples of how to use it. </ins> ## Defining packages manually outside Nixpkgs {#lisp-defining-packages-outside} Lisp derivations (`abcl`, `sbcl` etc.) also export the `buildASDFSystem` <del> function, which is the same as `build-asdf-system`, except for the `lisp` argument which is set to the given CL implementation. </del> <ins> function, which is similar to `build-asdf-system` from `packages.nix`, but is part of the public API. It takes the following arguments: - `pname`: the package name - `version`: the package version - `src`: the package source - `patches`: patches to apply to the source before build - `nativeLibs`: native libraries used by CFFI and grovelling - `javaLibs`: Java libraries for ABCL - `lispLibs`: dependencies on other packages build with `buildASDFSystem` - `systems`: list of systems to build </ins> It can be used to define packages outside Nixpkgs, and, for example, add them <del> into the package scope with `withOverrides` which will be discussed later on. </del> <ins> into the package scope with `withOverrides`. </ins> ### Including an external package in scope {#lisp-including-external-pkg-in-scope}


}) ``` <del> ## Overriding packages in scope {#lisp-overriding-packages-in-scope} Packages can be woven into a new scope by using `withOverrides`: ``` let sbcl' = sbcl.withOverrides (self: super: { alexandria = super.alexandria.overrideLispAttrs (oldAttrs: rec { pname = "alexandria"; version = "1.4"; src = fetchFromGitLab { domain = "gitlab.common-lisp.net"; owner = "alexandria"; repo = "alexandria"; rev = "v${version}"; hash = "sha256-1Hzxt65dZvgOFIljjjlSGgKYkj+YBLwJCACi5DZsKmQ="; }; }); }); in builtins.elemAt sbcl'.pkgs.bordeaux-threads.lispLibs 0 ``` </del> ### Dealing with slashy systems {#lisp-dealing-with-slashy-systems} Slashy (secondary) systems should not exist in their own packages! Instead, they


}) ``` <del> See the respective section on using `withOverrides` for how to weave it back into `ecl.pkgs`. </del> <ins> See the [respective section](#lisp-including-external-pkg-in-scope) on using `withOverrides` for how to weave it back into `ecl.pkgs`. </ins> Note that sometimes the slashy systems might not only have more dependencies than the main one, but create a circular dependency between `.asd`


implementations (`abcl`, `ecl`, `sbcl` etc.): ``` <del> sbcl.withPackages (ps: [ ps.alexandria ps.bordeaux-threads ]) </del> <ins> nix-shell -p 'sbcl.withPackages (ps: [ ps.alexandria ps.bordeaux-threads ])' </ins> ``` <del> Such a wrapper can then be executed like this: </del> <ins> Such a wrapper can then be used like this: </ins> ``` <del> result/bin/sbcl </del> <ins> $ sbcl * (load (sb-ext:posix-getenv "ASDF")) * (asdf:load-system 'alexandria) * (asdf:load-system 'bordeaux-threads) </ins> ``` ### Loading ASDF {#lisp-loading-asdf}


<ins> # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "aho-corasick" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c" dependencies = [ "memchr", ] [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bindgen" version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", "lazycell", "peeking_take_while", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", "syn 1.0.109", ] [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" [[package]] name = "bitmaps" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" dependencies = [ "typenum", ] [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "cairo-rs" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b" dependencies = [ "bitflags 2.3.3", "cairo-sys-rs", "glib", "libc", "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "cc" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "libc", ] [[package]] name = "cexpr" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ "nom", ] [[package]] name = "cfg-expr" version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ "smallvec", "target-lexicon", ] [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clang-sys" version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", ] [[package]] name = "convert_case" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" dependencies = [ "unicode-segmentation", ] [[package]] name = "cookie-factory" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "field-offset" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset 0.9.0", "rustc_version", ] [[package]] name = "futures" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", "futures-executor", "futures-io", "futures-sink", "futures-task", "futures-util", ] [[package]] name = "futures-channel" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", ] [[package]] name = "futures-core" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", "futures-util", ] [[package]] name = "futures-io" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-macro" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", "syn 2.0.28", ] [[package]] name = "futures-sink" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-util" version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", "futures-io", "futures-macro", "futures-sink", "futures-task", "memchr", "pin-project-lite", "pin-utils", "slab", ] [[package]] name = "gdk-pixbuf" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", "once_cell", ] [[package]] name = "gdk-pixbuf-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", "system-deps", ] [[package]] name = "gdk4" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8965ed5455cbfa1eb45c14a3b971cbacb43481913a3a5b9078b2ef0d9a01bd4b" dependencies = [ "cairo-rs", "gdk-pixbuf", "gdk4-sys", "gio", "glib", "libc", "pango", ] [[package]] name = "gdk4-sys" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aeffd4a7d68046c28666d817071bf025254aaed4df35099443f0c306ca6177f3" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gio-sys", "glib-sys", "gobject-sys", "libc", "pango-sys", "pkg-config", "system-deps", ] [[package]] name = "gettext-rs" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364" dependencies = [ "gettext-sys", "locale_config", ] [[package]] name = "gettext-sys" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d" dependencies = [ "cc", "temp-dir", ] [[package]] name = "gio" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524" dependencies = [ "futures-channel", "futures-core", "futures-io", "futures-util", "gio-sys", "glib", "libc", "once_cell", "pin-project-lite", "smallvec", "thiserror", ] [[package]] name = "gio-sys" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", "winapi", ] [[package]] name = "glib" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7" dependencies = [ "bitflags 2.3.3", "futures-channel", "futures-core", "futures-executor", "futures-task", "futures-util", "gio-sys", "glib-macros", "glib-sys", "gobject-sys", "libc", "log", "memchr", "once_cell", "smallvec", "thiserror", ] [[package]] name = "glib-macros" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0" dependencies = [ "heck", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", "syn 2.0.28", ] [[package]] name = "glib-sys" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", "system-deps", ] [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gobject-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "graphene-rs" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" dependencies = [ "glib", "graphene-sys", "libc", ] [[package]] name = "graphene-sys" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" dependencies = [ "glib-sys", "libc", "pkg-config", "system-deps", ] [[package]] name = "gsk4" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53b3b9e8090acb325d08cde84b30fc29b963a75fbac93160e9c5a30d2b335742" dependencies = [ "cairo-rs", "gdk4", "glib", "graphene-rs", "gsk4-sys", "libc", "pango", ] [[package]] name = "gsk4-sys" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0770d1ede7189092748c4ef5b6921264eb945fd2318a58e8f59dc273000810f8" dependencies = [ "cairo-sys-rs", "gdk4-sys", "glib-sys", "gobject-sys", "graphene-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "gtk4" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0973f9b9ade10fc22403810b7283d47b533033715f2aaa36288cd3bf90d63efc" dependencies = [ "cairo-rs", "field-offset", "futures-channel", "gdk-pixbuf", "gdk4", "gio", "glib", "graphene-rs", "gsk4", "gtk4-macros", "gtk4-sys", "libc", "pango", ] [[package]] name = "gtk4-macros" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae9f2c4530f3168fe506b0be7bc15f7a93ef38d020edb27d81a921a26cbca851" dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "gtk4-sys" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19fde71ef2e78ac8fb18073c345b5f29609048d4045a345613645aa1163243c1" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", "gio-sys", "glib-sys", "gobject-sys", "graphene-sys", "gsk4-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "im-rc" version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" dependencies = [ "bitmaps", "rand_core", "rand_xoshiro", "sized-chunks", "typenum", "version_check", ] [[package]] name = "indexmap" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lazycell" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libadwaita" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253" dependencies = [ "gdk-pixbuf", "gdk4", "gio", "glib", "gtk4", "libadwaita-sys", "libc", "pango", ] [[package]] name = "libadwaita-sys" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7" dependencies = [ "gdk4-sys", "gio-sys", "glib-sys", "gobject-sys", "gtk4-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "libc" version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libspa" version = "0.6.0" source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23" dependencies = [ "bitflags 2.3.3", "cc", "convert_case", "cookie-factory", "libc", "libspa-sys", "nix", "nom", "system-deps", ] [[package]] name = "libspa-sys" version = "0.6.0" source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23" dependencies = [ "bindgen", "cc", "system-deps", ] [[package]] name = "locale_config" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" dependencies = [ "lazy_static", "objc", "objc-foundation", "regex", "winapi", ] [[package]] name = "log" version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ "libc", ] [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ "autocfg", ] [[package]] name = "memoffset" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "nix" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", "pin-utils", "static_assertions", ] [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "objc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", ] [[package]] name = "objc-foundation" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" dependencies = [ "block", "objc", "objc_id", ] [[package]] name = "objc_id" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" dependencies = [ "objc", ] [[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "pango" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1" dependencies = [ "gio", "glib", "libc", "once_cell", "pango-sys", ] [[package]] name = "pango-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", ] [[package]] name = "peeking_take_while" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pin-project-lite" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pipewire" version = "0.6.0" source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23" dependencies = [ "anyhow", "bitflags 2.3.3", "libc", "libspa", "libspa-sys", "nix", "once_cell", "pipewire-sys", "thiserror", ] [[package]] name = "pipewire-sys" version = "0.6.0" source = "git+https://gitlab.freedesktop.org/saivert/pipewire-rs?branch=misc_fixes#46bfbd8bdf0ad3ff1d25d02b2e36f97333c78e23" dependencies = [ "bindgen", "libspa-sys", "system-deps", ] [[package]] name = "pkg-config" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "proc-macro-crate" version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", "toml_edit", ] [[package]] name = "proc-macro-error" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", "syn 1.0.109", "version_check", ] [[package]] name = "proc-macro-error-attr" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", "quote", "version_check", ] [[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] name = "pwvucontrol" version = "0.1.0" dependencies = [ "anyhow", "futures", "gettext-rs", "glib", "gtk4", "im-rc", "libadwaita", "log", "once_cell", "pipewire", "wireplumber", ] [[package]] name = "quote" version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "rand_xoshiro" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ "rand_core", ] [[package]] name = "regex" version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc_version" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver", ] [[package]] name = "semver" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "serde" version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" [[package]] name = "serde_spanned" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] [[package]] name = "shlex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "sized-chunks" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" dependencies = [ "bitmaps", "typenum", ] [[package]] name = "slab" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] [[package]] name = "smallvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "syn" version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "system-deps" version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3" dependencies = [ "cfg-expr", "heck", "pkg-config", "toml", "version-compare", ] [[package]] name = "target-lexicon" version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "temp-dir" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" [[package]] name = "thiserror" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", "syn 2.0.28", ] [[package]] name = "toml" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" dependencies = [ "serde", "serde_spanned", "toml_datetime", "toml_edit", ] [[package]] name = "toml_datetime" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_edit" version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", "winnow", ] [[package]] name = "typenum" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicode-ident" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-segmentation" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "version-compare" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winnow" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64" dependencies = [ "memchr", ] [[package]] name = "wireplumber" version = "0.1.0" source = "git+https://github.com/saivert/wireplumber.rs.git?branch=use_pipewire_from_git#8dbf383ce54dee7b8d578b87c13f3507a65291f8" dependencies = [ "bitflags 1.3.2", "gio", "glib", "libc", "libspa-sys", "pipewire-sys", "pkg-config", "semver", "wireplumber-sys", ] [[package]] name = "wireplumber-sys" version = "0.1.0" source = "git+https://github.com/saivert/wireplumber.rs.git?branch=use_pipewire_from_git#8dbf383ce54dee7b8d578b87c13f3507a65291f8" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", "libspa-sys", "pipewire-sys", "system-deps", ] </ins>


<ins> { lib , stdenv , fetchFromGitHub , cargo , desktop-file-utils , meson , ninja , pkg-config , rustPlatform , rustc , wrapGAppsHook4 , cairo , gdk-pixbuf , glib , gtk4 , libadwaita , pango , pipewire , wireplumber }: stdenv.mkDerivation rec { pname = "pwvucontrol"; version = "0.2"; src = fetchFromGitHub { owner = "saivert"; repo = "pwvucontrol"; rev = version; hash = "sha256-jBvMLewBZi4LyX//YUyJQjqPvxnKqlpuLZAm9zpDMrA="; }; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; outputHashes = { "libspa-0.6.0" = "sha256-CVLQ9JXRMo78/kay1TpRgRuk5v/Z5puPVMzLA30JRk8="; "wireplumber-0.1.0" = "sha256-wkku9vqIMdV+HTkWCPXKH2KM1Xzf0xApC5zrVmgxhsA="; }; }; nativeBuildInputs = [ cargo desktop-file-utils meson ninja pkg-config rustPlatform.bindgenHook rustPlatform.cargoSetupHook rustc wrapGAppsHook4 ]; buildInputs = [ cairo gdk-pixbuf glib gtk4 libadwaita pango pipewire wireplumber ]; meta = with lib; { description = "Pipewire Volume Control"; homepage = "https://github.com/saivert/pwvucontrol"; license = licenses.gpl3Plus; maintainers = with maintainers; [ figsoda ]; mainProgram = "pwvucontrol"; platforms = platforms.linux; }; } </ins>


pwdsafety = callPackage ../tools/security/pwdsafety { }; <ins> pwvucontrol = callPackage ../applications/audio/pwvucontrol { }; </ins> pyload-ng = callPackage ../applications/networking/pyload-ng {}; pyrosimple = callPackage ../applications/networking/p2p/pyrosimple { };


<del> { lib, stdenv, fetchFromGitHub, autoreconfHook, alsa-lib, fftw, libpulseaudio, ncurses, iniparser }: </del> <ins> { lib , stdenv , fetchFromGitHub , autoreconfHook , alsa-lib , fftw , iniparser , libpulseaudio , ncurses , pkgconf }: </ins> stdenv.mkDerivation rec { pname = "cava"; <del> version = "0.9.0"; </del> <ins> version = "0.9.1"; src = fetchFromGitHub { owner = "karlstav"; repo = "cava"; rev = version; hash = "sha256-W/2B9iTcO2F2vHQzcbg/6pYBwe+rRNfADdOiw4NY9Jk="; }; </ins> buildInputs = [ alsa-lib


iniparser ]; <del> src = fetchFromGitHub { owner = "karlstav"; repo = "cava"; rev = version; sha256 = "sha256-mIgkvgVcbRdE29lSLojIzIsnwZgnQ+B2sgScDWrLyd8="; }; </del> <ins> nativeBuildInputs = [ autoreconfHook pkgconf ]; </ins> <del> nativeBuildInputs = [ autoreconfHook ]; </del> <ins> preAutoreconf = '' echo ${version} > version ''; </ins> meta = with lib; { description = "Console-based Audio Visualizer for Alsa";


- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment. <del> - `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_testing`, and is therefore no longer available. </del> <ins> - `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available. </ins> - NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS. - This can be disabled through the `environment.stub-ld.enable` option.


# Function for waiting for device(s) to appear. waitDevice() { local device="$1" <del> # Split device string using ':' as a delimiter as bcachefs # uses this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3 local IFS=':' </del> <ins> # Split device string using ':' as a delimiter, bcachefs uses # this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3 local IFS # bcachefs is the only known use for this at the moment # Preferably, the 'UUID=' syntax should be enforced, but # this is kept for compatibility reasons if [ "$fsType" = bcachefs ]; then IFS=':'; fi </ins> # USB storage devices tend to appear with some delay.  It would be # great if we had a way to synchronously wait for them, but


inherit assertions; # needed for systemd-remount-fs system.fsPackages = [ pkgs.bcachefs-tools ]; <del> # FIXME: Remove this line when the default kernel has bcachefs </del> <ins> # FIXME: Remove this line when the LTS (default) kernel is at least version 6.7 </ins> boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; <del> systemd.services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems); </del> <ins> services.udev.packages = [ pkgs.bcachefs-tools ]; systemd = { packages = [ pkgs.bcachefs-tools ]; services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems); }; </ins> } (lib.mkIf ((lib.elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {


, rustPlatform , makeWrapper , writeScript <ins> , python3 </ins> , fuseSupport ? false }:


pname = "bcachefs-tools"; version = "1.4.1"; src = fetchFromGitHub { owner = "koverstreet"; repo = "bcachefs-tools";


udev ] ++ lib.optional fuseSupport fuse3; <ins> # FIXME: Try enabling this once the default linux kernel is at least 6.7 </ins> doCheck = false; # needs bcachefs module loaded on builder checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ]; makeFlags = [ <del> "DESTDIR=${placeholder "out"}" "PREFIX=" </del> <ins> "PREFIX=${placeholder "out"}" </ins> "VERSION=${finalAttrs.version}" "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools" ];


rm tests/test_fuse.py ''; <ins> # Tries to install to the 'systemd-minimal' and 'udev' nix installation paths installFlags = [ "PKGCONFIG_SERVICEDIR=$(out)/lib/systemd/system" "PKGCONFIG_UDEVDIR=$(out)/lib/udev" ]; postInstall = '' substituteInPlace $out/libexec/bcachefsck_all  --replace "/usr/bin/python3" "${python3}/bin/python3" ''; </ins> passthru = { tests = { smoke-test = nixosTests.bcachefs;


''; linux_latest_hardened = linuxPackages_latest_hardened; <del> # Added 2023-11-18 linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_testing', or any other linux kernel with bcachefs support"; linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_testing', or any other linux kernel with bcachefs support"; </del> <ins> # Added 2023-11-18, modified 2024-01-09 linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support"; linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support"; </ins> lld_6 = throw "lld_6 has been removed from nixpkgs"; # Added 2024-01-08 lld_7 = throw "lld_7 has been removed from nixpkgs"; # Added 2023-11-19


<ins> { lib , stdenv , fetchFromGitHub }: # Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan stdenv.mkDerivation (finalAttrs: { pname = "zcfan"; version = "1.2.1"; src = fetchFromGitHub { owner = "cdown"; repo = "zcfan"; rev = finalAttrs.version; hash = "sha256-XngchR06HP2iExKJVe+XKBDgsv98AEYWOkl1a/Hktgs="; }; postPatch = '' substituteInPlace Makefile  --replace "/usr/local" $out ''; doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck $out/bin/${finalAttrs.pname} -h runHook postInstallCheck ''; meta = with lib; { description = "A zero-configuration fan daemon for ThinkPads"; homepage = "https://github.com/cdown/zcfan"; changelog = "https://github.com/cdown/zcfan/tags/${finalAttrs.version}"; license = licenses.mit; maintainers = with maintainers; [ kashw2 ]; platforms = platforms.linux; }; }) </ins>


github = "Detegr"; githubId = 724433; }; <ins> detroyejr = { name = "Jonathan De Troye"; email = "detroyejr@outlook.com"; github = "detroyejr"; githubId = 12815411; }; </ins> Dettorer = { name = "Paul Hervot"; email = "paul.hervot@dettorer.net";


<ins> { alsa-lib , autoPatchelfHook , buildFHSEnv , dbus , elfutils , expat , extraEnv ? { } , fetchFromGitLab , fetchurl , glib , glibc , lib , libGL , libapparmor , libbsd , libedit , libffi_3_3 , libgcrypt , libglvnd , makeShellWrapper , sqlite , squashfsTools , stdenv , tcp_wrappers , udev , waylandpp , writeShellScript , xkeyboard_config , xorg , xz , zstd }: let pname = "plex-desktop"; version = "1.96.0"; rev = "69"; meta = { homepage = "https://plex.tv/"; description = "Streaming media player for Plex"; longDescription = '' Plex for Linux is your client for playback on the Linux desktop. It features the point and click interface you see in your browser but uses a more powerful playback engine as well as some other advance features. ''; maintainers = with lib.maintainers; [ detroyejr ]; license = lib.licenses.unfree; platforms = [ "x86_64-linux" ]; mainProgram = "plex-desktop"; }; # The latest unstable version isn't compatible with libraries that ship in the snap. libglvnd-1_4_0 = libglvnd.overrideAttrs { src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "glvnd"; repo = "libglvnd"; rev = "v1.4.0"; sha256 = "sha256-Y6JHRygXcZtnrdnqi1Lzyvh/635gwZWnMeW9aRCpxxs"; }; }; plex-desktop = stdenv.mkDerivation { inherit pname version meta; src = fetchurl { url = "https://api.snapcraft.io/api/v1/snaps/download/qc6MFRM433ZhI1XjVzErdHivhSOhlpf0_${rev}.snap"; hash = "sha512-rECc8rK1ENAL5mXdabO8ynudCaSzz0yygOyg4gMbCtddgqwSOanP24/oguzPLr3zdRMC3VSf9B3hr2BGQ54tzg=="; }; nativeBuildInputs = [ squashfsTools ]; buildInputs = [ alsa-lib autoPatchelfHook dbus elfutils expat glib glibc libGL libapparmor libbsd libedit libffi_3_3 libgcrypt makeShellWrapper sqlite squashfsTools stdenv.cc.cc tcp_wrappers udev waylandpp xorg.libXinerama xz zstd ]; unpackPhase = '' runHook preUnpack unsquashfs "$src" cd squashfs-root runHook postUnpack ''; dontWrapQtApps = true; installPhase = '' runHook preInstall cp -r . $out ln -s ${libedit}/lib/libedit.so.0 $out/lib/libedit.so.2 rm $out/usr/lib/x86_64-linux-gnu/libasound.so.2 ln -s ${alsa-lib}/lib/libasound.so.2 $out/usr/lib/x86_64-linux-gnu/libasound.so.2 rm $out/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 ln -s ${alsa-lib}/lib/libasound.so.2.0.0 $out/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 runHook postInstall ''; }; in buildFHSEnv { name = "${pname}-${version}"; targetPkgs = pkgs: [ xkeyboard_config ]; extraInstallCommands = '' mkdir -p $out/share/applications $out/share/icons/hicolor/scalable/apps install -m 444 -D ${plex-desktop}/meta/gui/plex-desktop.desktop $out/share/applications/plex-desktop.desktop substituteInPlace $out/share/applications/plex-desktop.desktop  --replace-fail  'Icon=''${SNAP}/meta/gui/icon.png'  'Icon=${plex-desktop}/meta/gui/icon.png'  --replace-fail  'Exec=plex-desktop'  'Exec=plex-desktop-${version}' ''; runScript = writeShellScript "plex-desktop.sh" '' # Widevine won't download unless this directory exists. mkdir -p $HOME/.cache/plex/ PLEX_USR_PATH=${lib.makeSearchPath "usr/lib/x86_64-linux-gnu"  [ plex-desktop ]} set -o allexport LD_LIBRARY_PATH=${lib.makeLibraryPath [ plex-desktop libglvnd-1_4_0 ]}:$PLEX_USR_PATH LIBGL_DRIVERS_PATH=$PLEX_USR_PATH/dri ${lib.toShellVars extraEnv} exec ${plex-desktop}/Plex.sh ''; } </ins>


<ins> #!/usr/bin/env nix-shell #! nix-shell -i bash -p curl jq git gnused gnugrep # executing this script without arguments will # - find the newest stable plex-desktop version avaiable on snapcraft (https://snapcraft.io/plex-desktop) # - read the current plex-desktop version from the current nix expression # - update the nix expression if the versions differ # - try to build the updated version, exit if that fails # - give instructions for upstreaming # As an optional argument you can specify the snapcraft channel to update to. # Default is `stable` and only stable updates should be pushed to nixpkgs. For # testing you may specify `candidate` or `edge`. channel="${1:-stable}" # stable/candidate/edge nixpkgs="$(git rev-parse --show-toplevel)" plex_nix="$nixpkgs/pkgs/by-name/pl/plex-desktop/package.nix" # # find the newest stable plex-desktop version avaiable on snapcraft # # create bash array from snap info snap_info=($( curl -s -H 'X-Ubuntu-Series: 16'  "https://api.snapcraft.io/api/v1/snaps/details/plex-desktop?channel=$channel"  | jq --raw-output  '.revision,.download_sha512,.version,.last_updated' )) # "revision" is the actual version identifier on snapcraft, the "version" is # just for human consumption. Revision is just an integer that gets increased # by one every (stable or unstable) release. revision="${snap_info[0]}" # We need to escape the slashes hash="$(nix-hash --to-sri --type sha512 ${snap_info[1]} | sed 's|/|/|g')" upstream_version="${snap_info[2]}" last_updated="${snap_info[3]}" echo "Latest $channel release is $upstream_version from $last_updated." # # read the current plex-desktop version from the currently *committed* nix expression # current_version=$( grep 'versions*=' "$plex_nix"  | sed -Ene 's/.*"(.*)".*/1/p' ) echo "Current version: $current_version" # # update the nix expression if the versions differ # if [[ "$current_version" == "$upstream_version" ]]; then echo "Plex is already up-to-date" exit 0 fi echo "Updating from ${current_version} to ${upstream_version}, released on ${last_updated}" # search-and-replace revision, hash and version sed --regexp-extended  -e 's/revs*=s*"[0-9]+"s*;/rev = "'"${revision}"'";/'  -e 's/hashs*=s*"[^"]*"s*;/hash = "'"${hash}"'";/'  -e 's/versions*=s*".*"s*;/version = "'"${upstream_version}"'";/'  -i "$plex_nix" # # try to build the updated version # if ! nix-build -A plex-desktop "$nixpkgs"; then echo "The updated plex-desktop failed to build." exit 1 fi # Commit changes git add "$plex_nix" git commit -m "plex-desktop: ${current_version} -> ${upstream_version}" </ins>


githubId = 29855073; name = "Michael Colicchia"; }; <ins> massimogengarelli = { email = "massimo.gengarelli@gmail.com"; github = "massix"; githubId = 585424; name = "Massimo Gengarelli"; }; </ins> matejc = { email = "cotman.matej@gmail.com"; github = "matejc";


<ins> { buildGoModule , fetchFromGitHub , lib , pkg-config , webkitgtk , glib , fuse , installShellFiles }: let pname = "onedriver"; version = "0.13.0-2"; src = fetchFromGitHub { owner = "jstaf"; repo = "onedriver"; rev = "v${version}"; hash = "sha256-Bcjgmx9a4pTRhkzR3tbOB6InjvuH71qomv4t+nRNc+w="; }; in buildGoModule { inherit pname version src; vendorHash = "sha256-OOiiKtKb+BiFkoSBUQQfqm4dMfDW3Is+30Kwcdg8LNA="; nativeBuildInputs = [ pkg-config installShellFiles ]; buildInputs = [ webkitgtk glib fuse ]; ldflags = [ "-X github.com/jstaf/onedriver/cmd/common.commit=v${version}" ]; subPackages = [ "cmd/onedriver" "cmd/onedriver-launcher" ]; postInstall = '' echo "Running postInstall" install -Dm644 ./resources/onedriver.svg $out/share/icons/onedriver/onedriver.svg install -Dm644 ./resources/onedriver.png $out/share/icons/onedriver/onedriver.png install -Dm644 ./resources/onedriver-128.png $out/share/icons/onedriver/onedriver-128.png install -Dm644 ./resources/onedriver.desktop $out/share/applications/onedriver.desktop mkdir -p $out/share/man/man1 installManPage ./resources/onedriver.1 substituteInPlace $out/share/applications/onedriver.desktop  --replace "/usr/bin/onedriver-launcher" "$out/bin/onedriver-launcher"  --replace "/usr/share/icons" "$out/share/icons" ''; meta = with lib; { description = "A network filesystem for Linux"; longDescription = '' onedriver is a network filesystem that gives your computer direct access to your files on Microsoft OneDrive. This is not a sync client. Instead of syncing files, onedriver performs an on-demand download of files when your computer attempts to use them. onedriver allows you to use files on OneDrive as if they were files on your local computer. ''; inherit (src.meta) homepage; license = licenses.gpl3Plus; maintainers = [ maintainers.massimogengarelli ]; platforms = platforms.linux; }; } </ins>


, fetchzip , fetchFromGitHub , butler <del> , electron_11 </del> <ins> , electron </ins> , steam-run , makeWrapper , copyDesktopItems


}: stdenvNoCC.mkDerivation rec { pname = "itch"; <del> version = "25.6.2"; </del> <ins> version = "26.1.2"; # TODO: Using kitch instead of itch, revert when possible </ins> src = fetchzip { <del> url = "https://broth.itch.ovh/${pname}/linux-amd64/${version}/itch.zip"; </del> <ins> url = "https://broth.itch.ovh/k${pname}/linux-amd64/${version}/archive/default#.zip"; </ins> stripRoot = false; <del> sha256 = "sha256-F/vaYBHCygseiKNMJ+jBy31YDIFqYToAETGUl/pkHII="; </del> <ins> sha256 = "sha256-thXe+glpltSiKNGIRgvOZQZPJWfDHWo3dLdziyp2BM4="; </ins> }; itch-setup = fetchzip {


fetchFromGitHub { owner = "itchio"; repo = pname; <del> rev = "v25.6.1-canary"; # Use ${version} if possible hash = "sha256-iBp7K7AW97SOlRa8N8TW2LcVtmUi9JU00fYUuPwKORc="; </del> <ins> rev = "v${version}-canary"; sha256 = "sha256-veZiKs9qHge+gCEpJ119bAT56ssXJAH3HBcYkEHqBFg="; </ins> sparseCheckout = [ sparseCheckout ]; } + sparseCheckout;


installPhase = '' runHook preInstall <ins> # TODO: Remove when the next stable Itch is stabilized substituteInPlace ./resources/app/package.json  --replace "kitch" "itch" </ins> mkdir -p $out/bin $out/share/${pname}/resources/app cp -r resources/app "$out/share/${pname}/resources/"


postFixup = '' makeWrapper ${steam-run}/bin/steam-run $out/bin/${pname}  <del> --add-flags ${electron_11}/bin/electron  </del> <ins> --add-flags ${electron}/bin/electron  </ins> --add-flags $out/share/${pname}/resources/app  --set BROTH_USE_LOCAL butler,itch-setup  --prefix PATH : ${butler}/bin/:${itch-setup}


buildGoModule rec { pname = "katana"; <del> version = "1.0.3"; </del> <ins> version = "1.0.4"; </ins> src = fetchFromGitHub { owner = "projectdiscovery"; repo = pname; rev = "refs/tags/v${version}"; <del> hash = "sha256-0OXpA+sa97YjbHhIq3Uj65OWg53PH9y2cY8bjCqC3tQ="; </del> <ins> hash = "sha256-wpGRpgRJtywkTJ3YBk5TzXc2taPPWjOhj+Kg8hAgm7M="; </ins> }; <del> vendorHash = "sha256-rb0fNAOP4y2yvJb7FIlAIfXF0uw0eLKgup75f9cwT6U="; CGO_ENABLED = 0; </del> <ins> vendorHash = "sha256-qqivaKipe7lfUq3Neod8JMvtMVQN4O03JpDMSMHf8YY="; </ins> subPackages = [ "cmd/katana" ];


options = { devices = mkOption { type = types.listOf types.str; <ins> default = [ ]; </ins> example = [ "/dev/input/by-id/usb-0000_0000-event-kbd" ]; <del> description = mdDoc "Paths to keyboard devices."; </del> <ins> description = mdDoc '' Paths to keyboard devices. An empty list, the default value, lets kanata detect which input devices are keyboards and intercept them all. ''; </ins> }; config = mkOption { type = types.lines;


}; config = mkIf cfg.enable { <ins> warnings = let keyboardsWithEmptyDevices = filterAttrs (name: keyboard: keyboard.devices == [ ]) cfg.keyboards; existEmptyDevices = length (attrNames keyboardsWithEmptyDevices) > 0; moreThanOneKeyboard = length (attrNames cfg.keyboards) > 1; in optional (existEmptyDevices && moreThanOneKeyboard) "One device can only be intercepted by one kanata instance.  Setting services.kanata.keyboards.${head (attrNames keyboardsWithEmptyDevices)}.devices = [ ] and using more than one services.kanata.keyboards may cause a race condition."; </ins> hardware.uinput.enable = true; systemd.services = mapAttrs' mkService cfg.keyboards;


firewall-nftables = handleTest ./firewall.nix { nftables = true; }; fish = handleTest ./fish.nix {}; flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {}; <ins> floorp = handleTest ./firefox.nix { firefoxPackage = pkgs.floorp; }; </ins> fluentd = handleTest ./fluentd.nix {}; fluidd = handleTest ./fluidd.nix {}; fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};


{ pname , version <ins> , packageVersion ? version </ins> , meta , updateScript ? null , binaryName ? "firefox"


buildStdenv.mkDerivation { pname = "${pname}-unwrapped"; <del> inherit version; </del> <ins> version = packageVersion; </ins> inherit src unpackPhase meta;


passthru = { inherit application extraPatches; inherit updateScript; <del> inherit version; </del> inherit alsaSupport; inherit binaryName; inherit jackSupport;


inherit tests; inherit gtk3; inherit wasiSysRoot; <ins> version = packageVersion; </ins> } // extraPassthru; hardeningDisable = [ "format" ]; # -Werror=format-security


<ins> { stdenv , lib , fetchFromGitHub , buildMozillaMach , nixosTests }: ((buildMozillaMach rec { pname = "floorp"; packageVersion = "11.5.0"; applicationName = "Floorp"; binaryName = "floorp"; version = "155.4.0"; src = fetchFromGitHub { owner = "Floorp-Projects"; repo = "Floorp"; fetchSubmodules = true; rev = "v${packageVersion}"; hash = "sha256-adK3LAu3cDh6d+GvtnkWmSnxansnSZoIgtA9TAqIMyA="; }; extraConfigureFlags = [ "--with-app-name=${pname}" "--with-app-basename=${applicationName}" "--with-branding=browser/branding/official" "--with-distribution-id=app.floorp.Floorp" "--with-unsigned-addon-scopes=app,system" "--allow-addon-sideload" ]; meta = { description = "A fork of Firefox, focused on keeping the Open, Private and Sustainable Web alive, built in Japan"; homepage = "https://floorp.app/"; maintainers = with lib.maintainers; [ christoph-heiss ]; platforms = lib.platforms.unix; badPlatforms = lib.platforms.darwin; broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". # not in `badPlatforms` because cross-compilation on 64-bit machine might work. maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115) license = lib.licenses.mpl20; }; tests = [ nixosTests.floorp ]; }).override { privacySupport = true; enableOfficialBranding = false; }).overrideAttrs (prev: { MOZ_REQUIRE_SIGNING = ""; }) </ins>


flex-ndax = callPackage ../applications/radio/flex-ndax { }; <ins> floorp-unwrapped = callPackage ../applications/networking/browsers/floorp { }; floorp = wrapFirefox floorp-unwrapped { }; </ins> fluxbox = callPackage ../applications/window-managers/fluxbox { }; hackedbox = callPackage ../applications/window-managers/hackedbox { };


<ins> { lib , rustPlatform , fetchFromGitHub , pkg-config , wrapGAppsHook , atk , cairo , gdk-pixbuf , glib , gtk3 , pango , stdenv , darwin , wayland , gtk-layer-shell , unstableGitUpdater }: rustPlatform.buildRustPackage rec { pname = "anyrun"; version = "0-unstable-2023-12-01"; src = fetchFromGitHub { owner = "kirottu"; repo = "anyrun"; rev = "e14da6c37337ffa3ee1bc66965d58ef64c1590e5"; hash = "sha256-hI9+KBShsSfvWX7bmRa/1VI20WGat3lDXmbceMZzMS4="; }; cargoHash = "sha256-apOQc9Z6YANoaeKcbNxBfAv7mmGFB+CagrYRPgC5wLY="; strictDeps = true; enableParallelBuilding = true; doCheck = true; nativeBuildInputs = [ pkg-config wrapGAppsHook ]; buildInputs = [ atk cairo gdk-pixbuf glib gtk3 gtk-layer-shell pango ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ] ++ lib.optionals stdenv.isLinux [ wayland ]; preFixup = '' gappsWrapperArgs+=( --prefix ANYRUN_PLUGINS : $out/lib ) ''; postInstall = '' install -Dm444 anyrun/res/style.css examples/config.ron -t $out/share/doc/${pname}/examples/ ''; passthru.updateScript = unstableGitUpdater { }; meta = { description = "A wayland-native, highly customizable runner"; homepage = "https://github.com/kirottu/anyrun"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ eclairevoyant NotAShelf ]; mainProgram = "anyrun"; }; } </ins>


<ins> { lib , stdenv , fetchFromGitHub , unstableGitUpdater , curl , gtkmm3 , glibmm , gnutls , yajl , pkg-config }: stdenv.mkDerivation (finalAttrs: { pname = "samrewritten"; version = "unstable-2023-05-23"; src = fetchFromGitHub { owner = "PaulCombal"; repo = "SamRewritten"; # The latest release is too old, use latest commit instead rev = "39d524a72678a226bf9140db6b97641f554563c3"; hash = "sha256-sS/lVY5EWXdTOg7cDWPbi/n5TNt+pRAF1x7ZEaYG4wM="; }; makeFlags = [ "PREFIX=$(out)" ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ curl gtkmm3 glibmm gnutls yajl ]; passthru.updateScript = unstableGitUpdater { }; meta = { description = "Steam Achievement Manager For Linux. Rewritten in C++"; homepage = "https://github.com/PaulCombal/SamRewritten"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ ludovicopiero ]; platforms = lib.platforms.linux; }; }) </ins>


clippy, mkShell, makeWrapper, <ins> runCommand, </ins> }: let runtimeExprPath = ./src/eval.nix; nixpkgsLibPath = ../../../lib; <ins> # Needed to make Nix evaluation work inside nix builds initNix = '' export TEST_ROOT=$(pwd)/test-tmp export NIX_CONF_DIR=$TEST_ROOT/etc export NIX_LOCALSTATE_DIR=$TEST_ROOT/var export NIX_LOG_DIR=$TEST_ROOT/var/log/nix export NIX_STATE_DIR=$TEST_ROOT/var/nix export NIX_STORE_DIR=$TEST_ROOT/store # Ensure that even if tests run in parallel, we don't get an error # We'd run into https://github.com/NixOS/nix/issues/2706 unless the store is initialised first nix-store --init ''; </ins> package = rustPlatform.buildRustPackage { name = "nixpkgs-check-by-name";


makeWrapper ]; env.NIX_CHECK_BY_NAME_EXPR_PATH = "${runtimeExprPath}"; <del> # Needed to make Nix evaluation work inside the nix build preCheck = '' export TEST_ROOT=$(pwd)/test-tmp export NIX_CONF_DIR=$TEST_ROOT/etc export NIX_LOCALSTATE_DIR=$TEST_ROOT/var export NIX_LOG_DIR=$TEST_ROOT/var/log/nix export NIX_STATE_DIR=$TEST_ROOT/var/nix export NIX_STORE_DIR=$TEST_ROOT/store export NIXPKGS_LIB_PATH=${nixpkgsLibPath} # Ensure that even if tests run in parallel, we don't get an error # We'd run into https://github.com/NixOS/nix/issues/2706 unless the store is initialised first nix-store --init ''; </del> <ins> env.NIXPKGS_LIB_PATH = "${nixpkgsLibPath}"; preCheck = initNix; </ins> postCheck = '' cargo fmt --check cargo clippy -- -D warnings


env.NIXPKGS_LIB_PATH = toString nixpkgsLibPath; inputsFrom = [ package ]; }; <ins> # Tests the tool on the current Nixpkgs tree, this is a good sanity check passthru.tests.nixpkgs = runCommand "test-nixpkgs-check-by-name" { nativeBuildInputs = [ package nix ]; nixpkgsPath = lib.cleanSource ../../..; } '' ${initNix} nixpkgs-check-by-name --base "$nixpkgsPath" "$nixpkgsPath" touch $out ''; </ins> }; in package


// so the UsesByName ratchet is already as tight as it can be NonAttributeSet => Success(Tight), NonCallPackage => Success(Tight), <del> // This is an odd case when _internalCallByNamePackageFile is used to define a package. </del> <ins> // This is the case when the `pkgs/by-name`-internal _internalCallByNamePackageFile // is used for a package outside `pkgs/by-name` </ins> CallPackage(CallPackageInfo { call_package_variant: Auto, .. <del> }) => NixpkgsProblem::InternalCallPackageUsed { attr_name: attribute_name.clone(), </del> <ins> }) => { // With the current detection mechanism, this also triggers for aliases // to pkgs/by-name packages, and there's no good method of // distinguishing alias vs non-alias. // Using `config.allowAliases = false` at least currently doesn't work // because there's nothing preventing people from defining aliases that // are present even with that disabled. // In the future we could kind of abuse this behavior to have better // enforcement of conditional aliases, but for now we just need to not // give an error. Success(Tight) </ins> } <del> .into(), </del> // Only derivations can be in pkgs/by-name, // so this attribute doesn't qualify CallPackage(CallPackageInfo {


text: String, io_error: io::Error, }, <del> InternalCallPackageUsed { attr_name: String, }, </del> MovedOutOfByName { package_name: String, call_package_path: Option<PathBuf>,


subpath.display(), text, ), <del> NixpkgsProblem::InternalCallPackageUsed { attr_name } => write!( f, "pkgs.{attr_name}: This attribute is defined using `_internalCallByNamePackageFile`, which is an internal function not intended for manual use.", ), </del> NixpkgsProblem::MovedOutOfByName { package_name, call_package_path, empty_arg } => { let call_package_arg = if let Some(path) = &call_package_path {


<ins> self: super: { baz = self.foo; } </ins>


<ins> import <test-nixpkgs> { root = ./.; } </ins>


<del> pkgs.foo: This attribute is defined using `_internalCallByNamePackageFile`, which is an internal function not intended for manual use. </del>


else [ ]; <ins> # A list optionally containing the `aliases.nix` file from the test case as an overlay # But only if config.allowAliases is not false optionalAliasesOverlay = if (config.allowAliases or true) && builtins.pathExists (root + "/aliases.nix") then [ (import (root + "/aliases.nix")) ] else [ ]; </ins> # All the overlays in the right order, including the user-supplied ones allOverlays = [ autoCalledPackages ] ++ optionalAllPackagesOverlay <ins> ++ optionalAliasesOverlay </ins> ++ overlays; # Apply all the overlays in order to the base fixed-point function pkgsFun


inherit pname; version = "0.85.0"; src = nushell.src; <del> cargoHash = "sha256-OKtktjBOujvljAX260TbC2sQWZOiGgU+sXsbYRhGPRM="; </del> <ins> cargoHash = "sha256-WS8VRpJnn/VWS7GUkGowFf51ifUx0SbEZzcoTfx2dp0="; </ins> nativeBuildInputs = [ pkg-config ]; <del> buildInputs = [ IOKit Foundation ]; </del> <ins> buildInputs = lib.optionals stdenv.isDarwin [ IOKit Foundation ]; </ins> cargoBuildFlags = [ "--package nu_plugin_formats" ]; doCheck = false; meta = with lib; {


inherit pname; version = "0.85.0"; src = nushell.src; <del> cargoHash = "sha256-Fj70uKYzEKxeZeNrqlwM7ZFJ+K1tz10RqLndrdY40CE="; </del> <ins> cargoHash = "sha256-6luY3SIRRd9vaY9KIJcj8Q974FW0LtAvRjVpdpzkdLo="; </ins> nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; cargoBuildFlags = [ "--package nu_plugin_gstat" ];


src = nushell.src; <del> cargoHash = "sha256-8iUqOdGWm2kDW72ptlCBIqqe4zjckN09MOQD77kCf5Y="; </del> <ins> cargoHash = "sha256-xyty3GfI+zNkuHs7LYHBctqXUHZ4/MNNcnnfYvI18do="; </ins> buildInputs = lib.optionals stdenv.isDarwin [ IOKit CoreFoundation ];


{ lib , bash , fetchFromGitHub <del> , fetchpatch </del> , installShellFiles , nix-update-script , nixosTests


rustPlatform.buildRustPackage rec { pname = "sudo-rs"; <del> version = "0.2.0"; </del> <ins> version = "0.2.1"; </ins> src = fetchFromGitHub { owner = "memorysafety"; repo = "sudo-rs"; rev = "v${version}"; <del> hash = "sha256-Kk5D3387hdl6eGWTSV003r+XajuDh6YgHuqYlj9NnaQ="; </del> <ins> hash = "sha256-EQEdNDUXEMMiFZKuu9LR9ywjvKWyM5bWcRHHUB9+gp4="; </ins> }; <del> cargoHash = "sha256-yeMK37tOgJcs9pW3IclpR5WMXx0gMDJ2wcmInxJYbQ8="; </del> <ins> cargoHash = "sha256-Zs9/A7u4yMLKY4cAUCnsqRHgkxI8R3w1JwkAd2lw0eo="; </ins> nativeBuildInputs = [ installShellFiles pandoc ]; buildInputs = [ pam ]; <del> patches = [ (fetchpatch { # @R-VdP's patch to work with NixOS' suid wrappers name = "Skip self_check when executed as root.patch"; url = "https://github.com/R-VdP/sudo-rs/commit/a44541dcb36b94f938daaed66b3ff06cfc1c2b40.patch"; hash = "sha256-PdmOqp/NDjFy8ve4jEOi58e0N9xUnaVKioQwdC5Jf1U="; }) ]; </del> # Don't attempt to generate the docs in a (pan)Docker container postPatch = '' substituteInPlace util/generate-docs.sh


import ./generic.nix ( rec { <del> version = "3.4.2"; </del> <ins> version = "3.4.4"; </ins> testing = false; preConfigure = ''


src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz"; <del> sha256 = "0pd96g1qcp2wgdnvk79hljjrpr6xjk0159lks47n181a3yirzf4x"; </del> <ins> sha256 = "0l4h7amhsmgpnii8rgwi32nd7ajsifk2xckjd39pfzwdifacw5yw"; </ins> }; config = configWithPlatform stdenv.platform;


stdenv.mkDerivation (finalAttrs: { pname = "stretchly"; <del> version = "1.15.1"; </del> <ins> version = "1.16.0"; </ins> src = fetchurl { url = "https://github.com/hovancik/stretchly/releases/download/v${finalAttrs.version}/stretchly-${finalAttrs.version}.tar.xz"; <del> hash = "sha256-suTH6o7vtUr2DidPXAwqrya5/WukQOFmS/34LaiWDBs="; </del> <ins> hash = "sha256-gOMUXGldtZUfqLABJHfbToYe0pcAn8dRWEFxCi/gY9Y="; </ins> }; icon = fetchurl {


<ins> { lib , buildGoModule , fetchFromGitHub }: buildGoModule rec { pname = "bitmagnet"; version = "0.0.6"; src = fetchFromGitHub { owner = "bitmagnet-io"; repo = "bitmagnet"; rev = "v${version}"; hash = "sha256-+KAIHg8M2CM+GRRv+htmev8MFe/Y1sJ8p+um/c7kI7c="; }; vendorHash = "sha256-ydiZ3KMEiVkmdzhHjYYLJ7wuiKmwlMEn4OWrKSOnaSo="; ldflags = [ "-s" "-w" ]; meta = { description = "A self-hosted BitTorrent indexer, DHT crawler, and torrent search engine"; longDescription = '' A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration. ''; homepage = "https://bitmagnet.io/"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ eclairevoyant ]; mainProgram = "bitmagnet"; }; } </ins>


}; preBuild = '' <del> makeFlags="V=1 DISABLE_JBIG=1 CUPSFILTER=$out/lib/cups/filter CUPSPPD=$out/share/cups/model" </del> <ins> makeFlags="V=1 CUPSFILTER=$out/lib/cups/filter CUPSPPD=$out/share/cups/model" </ins> ''; buildInputs = [cups zlib];


<del> { lib , aiohttp , beautifulsoup4 , buildPythonPackage , fetchFromGitHub , pkce , poetry-core , pythonOlder }: buildPythonPackage rec { pname = "pymyq"; version = "3.1.13"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "Python-MyQ"; repo = "Python-MyQ"; rev = "refs/tags/v${version}"; hash = "sha256-kW03swRXZdkh45I/up/FIxv0WGBRqTlDt1X71Ow/hrg="; }; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ aiohttp beautifulsoup4 pkce ]; # Project has no tests doCheck = false; pythonImportsCheck = [ "pymyq" ]; meta = with lib; { description = "Python wrapper for MyQ API"; homepage = "https://github.com/Python-MyQ/Python-MyQ"; changelog = "https://github.com/Python-MyQ/Python-MyQ/releases/tag/v${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; } </del>


<ins> { lib , aiohttp , beautifulsoup4 , buildPythonPackage , fetchFromGitHub , pkce , poetry-core , pythonOlder }: buildPythonPackage rec { pname = "python-myq"; version = "3.1.13"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "Python-MyQ"; repo = "Python-MyQ"; rev = "refs/tags/v${version}"; hash = "sha256-kW03swRXZdkh45I/up/FIxv0WGBRqTlDt1X71Ow/hrg="; }; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ aiohttp beautifulsoup4 pkce ]; # Project has no tests doCheck = false; pythonImportsCheck = [ "pymyq" ]; meta = with lib; { description = "Python wrapper for MyQ API"; homepage = "https://github.com/Python-MyQ/Python-MyQ"; changelog = "https://github.com/Python-MyQ/Python-MyQ/releases/tag/v${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; } </ins>


sqlalchemy ]; "myq" = ps: with ps; [ <del> ]; # missing inputs: python-myq </del> <ins> python-myq ]; </ins> "mysensors" = ps: with ps; [ aiohttp-cors janus


"mullvad" "mutesync" "my" <ins> "myq" </ins> "mysensors" "mystrom" "mythicbeastsdns"


pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0 pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04 PyMVGLive = pymvglive; # added 2023-02-19 <ins> pymyq = python-myq; # added 2023-10-20 </ins> pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09 pyramid_beaker = pyramid-beaker; # added 2023-08-23 pyramid_chameleon = pyramid-chameleon; # added 2023-08-23


pymvglive = callPackage ../development/python-modules/pymvglive { }; <del> pymyq = callPackage ../development/python-modules/pymyq { }; </del> <ins> python-myq = callPackage ../development/python-modules/python-myq { }; </ins> pymysensors = callPackage ../development/python-modules/pymysensors { };


, glibcLocales # The GraalVM derivation to use , graalvmDrv <del> , name ? "${args.pname}-${args.version}" </del> , executable ? args.pname # JAR used as input for GraalVM derivation, defaults to src , jar ? args.src


"-H:Name=${executable}" "-march=compatibility" "--verbose" <ins> "-J-Dsun.stdout.encoding=UTF-8" "-J-Dsun.stderr.encoding=UTF-8" </ins> ] # Extra arguments to be passed to the native-image , extraNativeImageBuildArgs ? [ ] # XMX size of GraalVM during build , graalvmXmx ? "-J-Xmx6g" <del> # Locale to be used by GraalVM compiler , LC_ALL ? "en_US.UTF-8" </del> , meta ? { } , ... } @ args:


]; in stdenv.mkDerivation ({ <del> inherit dontUnpack LC_ALL jar; </del> <ins> inherit dontUnpack jar; </ins> nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales ];


doInstallCheck = true; installCheckPhase = '' <del> $out/bin/bb --version | grep '${version}' $out/bin/bb '(+ 1 2)' | grep '3' $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]' </del> <ins> $out/bin/bb --version | fgrep '${version}' $out/bin/bb '(+ 1 2)' | fgrep '3' $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | fgrep '[1 2]' $out/bin/bb '(prn "bépo àê")' | fgrep 'bépo àê' </ins> ''; # As of v1.2.174, this will remove references to ${graalvmDrv}/conf/chronology,


<ins> { lib , buildPythonPackage , pythonOlder , fetchPypi , ptpython , ipython , setuptools , setuptools-scm , setuptools-generate }: let pname = "repl-python-wakatime"; version = "0.0.6"; in buildPythonPackage { inherit pname version; format = "pyproject"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; hash = "sha256-s2UelniMn4+wWILbVIIKidRCFaOvo/nNNofA7yf2+9c="; }; nativeBuildInputs = [ setuptools setuptools-scm setuptools-generate ]; propagatedBuildInputs = [ ptpython ipython ]; pythonImportsCheck = [ "repl_python_wakatime" ]; meta = with lib; { description = "Python REPL plugin for automatic time tracking and metrics generated from your programming activity"; homepage = "https://github.com/wakatime/repl-python-wakatime"; license = licenses.gpl3Only; maintainers = with maintainers; [ jfvillablanca ]; }; } </ins>


repeated-test = callPackage ../development/python-modules/repeated-test { }; <ins> repl-python-wakatime = callPackage ../development/python-modules/repl-python-wakatime { }; </ins> repocheck = callPackage ../development/python-modules/repocheck { }; reportengine = callPackage ../development/python-modules/reportengine { };


{ lib , fetchFromGitHub }: rec { <del> version = "3.5.1"; </del> <ins> version = "3.6.1"; </ins> format = "setuptools"; src = fetchFromGitHub { owner = "openrazer"; repo = "openrazer"; rev = "v${version}"; <del> hash = "sha256-6YU2tl17LpDZe9pQ1a+B2SGIhqGdwME3Db6umVz7RLc="; </del> <ins> hash = "sha256-bboTRZqJq5tKeBQuiEQAXxTHYvoldDQlwbfehjDA8EE="; </ins> }; meta = with lib; {


, sha256 , odd-unstable ? true , patchlevel-unstable ? true <ins> , passthru ? { } , meta ? { } </ins> , ... } @ args:


concatAttrLists = attrsets: zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets; <del> template = rec { inherit pname version; </del> <ins> template = { </ins> nativeBuildInputs = [ pkg-config xfce4-dev-tools wrapGAppsHook ]; buildInputs = [ hicolor-icon-theme ]; configureFlags = [ "--enable-maintainer-mode" ];


pos = builtins.unsafeGetAttrPos "pname" args; <del> passthru.updateScript = gitUpdater { inherit rev-prefix odd-unstable patchlevel-unstable; }; </del> <ins> passthru = { updateScript = gitUpdater { inherit rev-prefix odd-unstable patchlevel-unstable; }; } // passthru; </ins> meta = with lib; { homepage = "https://gitlab.xfce.org/${category}/${pname}"; license = licenses.gpl2Plus; # some libraries are under LGPLv2+ platforms = platforms.linux; <del> }; </del> <ins> } // meta; </ins> }; <del> publicArgs = removeAttrs args [ "category" "pname" "sha256" ]; </del> <ins> publicArgs = removeAttrs args [ "category" "sha256" ]; </ins> in <del> stdenv.mkDerivation (recursiveUpdate template publicArgs // concatAttrLists [ template args ]) </del> <ins> stdenv.mkDerivation (publicArgs // template // concatAttrLists [ template args ]) </ins> # TODO [ AndersonTorres ]: verify if it allows using hash attribute as an option to sha256


{ lib, stdenv, fetchurl, pkg-config, libsamplerate, libsndfile, fftw <ins> , lv2, jdk </ins> , vamp-plugin-sdk, ladspaH, meson, ninja, darwin }: stdenv.mkDerivation rec { pname = "rubberband"; <del> version = "3.1.0"; </del> <ins> version = "3.3.0"; </ins> src = fetchurl { url = "https://breakfastquay.com/files/releases/${pname}-${version}.tar.bz2"; <del> sha256 = "sha256-uVp22lzbOWZ3DGARXs2Dj4QGESD4hMO/3JBPdZMeyao="; </del> <ins> hash = "sha256-2e+J4rjvn4WxOsPC+uww4grPLJ86nIxFzmN/K8leV2w="; </ins> }; <del> nativeBuildInputs = [ pkg-config meson ninja ]; buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH ] ++ lib.optionals stdenv.isDarwin </del> <ins> nativeBuildInputs = [ pkg-config meson ninja jdk ]; buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH lv2 ] ++ lib.optionals stdenv.isDarwin </ins> (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo]); makeFlags = [ "AR:=$(AR)" ]; <ins> # TODO: package boost-test, so we can run the test suite. (Currently it fails # to find libboost_unit_test_framework.a.) mesonFlags = [ "-Dtests=disabled" ]; doCheck = false; </ins> meta = with lib; { description = "High quality software library for audio time-stretching and pitch-shifting"; homepage = "https://breakfastquay.com/rubberband/";


<ins> { lib, stdenvNoCC, fetchFromGitHub, zsh, revolver, installShellFiles, testers, nix-update-script, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "zunit"; version = "0.8.2"; src = fetchFromGitHub { owner = "zunit-zsh"; repo = "zunit"; rev = "v${finalAttrs.version}"; hash = "sha256-GkBewb795piCaniZJZpGEZFhKaNs8p8swV5z34OegPY="; deepClone = true; # Needed in order to get "tests" folder }; strictDeps = true; doCheck = true; doInstallCheck = true; nativeBuildInputs = [ zsh installShellFiles ]; nativeCheckInputs = [ revolver ]; buildInputs = [ zsh revolver ]; postPatch = '' for i in $(find src/ -type f -print); do substituteInPlace $i  --replace-warn " revolver " " ${lib.getExe revolver} " done ''; buildPhase = '' runHook preBuild zsh build.zsh runHook postBuild ''; checkPhase = '' runHook preCheck HOME="$TEMPDIR" zsh zunit runHook postCheck ''; installPhase = '' runHook preInstall install -Dm755 zunit $out/bin/zunit runHook postInstall ''; postInstall = '' installShellCompletion --cmd zunit --zsh zunit.zsh-completion ''; installCheckPhase = '' runHook preInstallCheck PATH=$PATH:$out/bin zunit --help runHook postInstallCheck ''; passthru = { tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; updateScript = nix-update-script { }; }; meta = { description = "Powerful testing framework for ZSH projects"; homepage = "https://zunit.xyz/"; downloadPage = "https://github.com/zunit-zsh/zunit/releases"; license = lib.licenses.mit; mainProgram = "zunit"; inherit (zsh.meta) platforms; maintainers = with lib.maintainers; [ d-brasher ]; }; }) </ins>


in stdenv.mkDerivation rec { pname = "openshadinglanguage"; <del> version = "1.12.13.0"; </del> <ins> version = "1.12.14.0"; </ins> src = fetchFromGitHub { owner = "AcademySoftwareFoundation"; repo = "OpenShadingLanguage"; rev = "v${version}"; <del> hash = "sha256-EVV7YHovWwbRju+uv8IK2wpcpoK1ndZ8yNRHzU8LUuE="; </del> <ins> hash = "sha256-x8t7uC4q29MkTCIS1rK0ICw78u5zZG+/zyhwttLOBr4="; </ins> }; cmakeFlags = [


osl = libsForQt5.callPackage ../development/compilers/osl { boost = boost179; <ins> libclang = llvmPackages_15.libclang; clang = if stdenv.cc.libcxx != null then (overrideLibcxx llvmPackages_15.stdenv).cc else clang_15; llvm = llvm_15; </ins> }; osqp = callPackage ../development/libraries/science/math/osqp { };


<del> { lib, fetchurl, buildPythonApplication, libjack2, pydbus, pyliblo, pyqt5, which, bash, qt5 }: </del> <ins> { lib, fetchurl, buildPythonApplication, libjack2, pyliblo, pyqt5, which, bash, qt5 }: </ins> buildPythonApplication rec { pname = "raysession"; <del> version = "0.13.1"; </del> <ins> version = "0.14.2"; </ins> src = fetchurl { url = "https://github.com/Houston4444/RaySession/releases/download/v${version}/RaySession-${version}-source.tar.gz"; <del> sha256 = "sha256-iiFRtX43u9BHe7a4ojza7kav+dMW9e05dPi7Gf9d1GM="; </del> <ins> sha256 = "sha256-qEN3zBK/goRLIZaU06XXm8H5yj4Qjj/NH+bkHkjhLaw="; </ins> }; postPatch = ''


qt5.wrapQtAppsHook ]; buildInputs = [ libjack2 bash ]; <del> propagatedBuildInputs = [ pydbus pyliblo pyqt5 ]; </del> <ins> propagatedBuildInputs = [ pyliblo pyqt5 ]; </ins> dontWrapQtApps = true; # The program is a python script.


<del> { config, lib, pkgs, ... }: </del> <ins> { config, lib, ... }: </ins> with lib;


mkTable = { ipVer, dest, ipSet, forwardPorts, dmzHost }: let <del> # nftables does not support both port and port range as values in a dnat map. # e.g. "dnat th dport map { 80 : 10.0.0.1 . 80, 443 : 10.0.0.2 . 900-1000 }" # So we split them. fwdPorts = filter (x: length (splitString "-" x.destination) == 1) forwardPorts; fwdPortsRange = filter (x: length (splitString "-" x.destination) > 1) forwardPorts; </del> # nftables maps for port forward # l4proto . dport : addr . port <del> toFwdMap = forwardPorts: toNftSet (map </del> <ins> fwdMap = toNftSet (map </ins> (fwd: with (splitIPPorts fwd.destination); "${fwd.proto} . ${toNftRange fwd.sourcePort} : ${IP} . ${ports}" ) forwardPorts); <del> fwdMap = toFwdMap fwdPorts; fwdRangeMap = toFwdMap fwdPortsRange; </del> # nftables maps for port forward loopback dnat # daddr . l4proto . dport : addr . port <del> toFwdLoopDnatMap = forwardPorts: toNftSet (concatMap </del> <ins> fwdLoopDnatMap = toNftSet (concatMap </ins> (fwd: map (loopbackip: with (splitIPPorts fwd.destination);


) fwd.loopbackIPs) forwardPorts); <del> fwdLoopDnatMap = toFwdLoopDnatMap fwdPorts; fwdLoopDnatRangeMap = toFwdLoopDnatMap fwdPortsRange; </del> # nftables set for port forward loopback snat # daddr . l4proto . dport


type nat hook prerouting priority dstnat; ${optionalString (fwdMap != "") '' <del> iifname "${cfg.externalInterface}" dnat meta l4proto . th dport map { ${fwdMap} } comment "port forward" ''} ${optionalString (fwdRangeMap != "") '' iifname "${cfg.externalInterface}" dnat meta l4proto . th dport map { ${fwdRangeMap} } comment "port forward" </del> <ins> iifname "${cfg.externalInterface}" meta l4proto { tcp, udp } dnat meta l4proto . th dport map { ${fwdMap} } comment "port forward" </ins> ''} ${optionalString (fwdLoopDnatMap != "") '' <del> dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatMap} } comment "port forward loopback from other hosts behind NAT" ''} ${optionalString (fwdLoopDnatRangeMap != "") '' dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatRangeMap} } comment "port forward loopback from other hosts behind NAT" </del> <ins> meta l4proto { tcp, udp } dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatMap} } comment "port forward loopback from other hosts behind NAT" </ins> ''} ${optionalString (dmzHost != null) ''


type nat hook output priority mangle; ${optionalString (fwdLoopDnatMap != "") '' <del> dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatMap} } comment "port forward loopback from the host itself" ''} ${optionalString (fwdLoopDnatRangeMap != "") '' dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatRangeMap} } comment "port forward loopback from the host itself" </del> <ins> meta l4proto { tcp, udp } dnat ${ipVer} daddr . meta l4proto . th dport map { ${fwdLoopDnatMap} } comment "port forward loopback from the host itself" </ins> ''} } '';


lihop = "Leroy Hopson <nixos@leroy.geek.nz>"; linquize = "Linquize <linquize@yahoo.com.hk>"; linus = "Linus Arver <linusarver@gmail.com>"; <ins> lluchs = "Lukas Werling <lukas.werling@gmail.com>"; </ins> lnl7 = "Daiderd Jordan <daiderd@gmail.com>"; loskutov = "Ignat Loskutov <ignat.loskutov@gmail.com>"; lovek323 = "Jason O'Conal <jason@oconal.id.au>";


, gstreamer, gst-plugins-base, libxml2 , glib, gtk3, pango, gdk_pixbuf, cairo, atk, gnome3 , nss, nspr <del> , patchelf </del> <ins> , patchelf, makeWrapper , proprietaryCodecs ? true, vivaldi-ffmpeg-codecs ? null </ins> }: stdenv.mkDerivation rec { name = "${product}-${version}"; product = "vivaldi"; <del> version = "1.10.867.38-1"; </del> <ins> version = "1.10.867.48-1"; </ins> src = fetchurl { url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb"; <del> sha256 = "1h3iygzvw3rb5kmn0pam6gqy9baq6l630yllff1vnvychdg8d9vi"; </del> <ins> sha256 = "1han45swvv0y2i2kg7xhml1wj5zyrf2c2hc5b07kqsjkfg9iz1lc"; </ins> }; unpackPhase = ''


tar -xvf data.tar.xz ''; <del> nativeBuildInputs = [ patchelf ]; </del> <ins> nativeBuildInputs = [ patchelf makeWrapper ]; </ins> buildInputs = [ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb


atk alsaLib dbus_libs cups gtk3 gdk_pixbuf libexif ffmpeg systemd freetype fontconfig libXrender libuuid expat glib nss nspr gstreamer libxml2 gst-plugins-base pango cairo gnome3.gconf <del> ]; </del> <ins> ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs; </ins> libPath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.is64bit)


--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)"  --set-rpath "${libPath}"  opt/vivaldi/vivaldi-bin <ins> '' + stdenv.lib.optionalString proprietaryCodecs '' sed -i '/^VIVALDI_FFMPEG_FOUND/ a  checkffmpeg "${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so"' opt/vivaldi/vivaldi '' + '' </ins> echo "Finished patching Vivaldi binaries" '';


"$out"/opt/vivaldi/product_logo_''${d}.png  "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png done <ins> wrapProgram "$out/bin/vivaldi"  --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ </ins> ''; meta = with stdenv.lib; {


<ins> { stdenv, fetchurl, fetchpatch , dbus_glib, gtk2, gtk3, libexif, libpulseaudio, libXScrnSaver, ninja, nss , pciutils, pkgconfig, python2, xdg_utils }: stdenv.mkDerivation rec { name = "${product}-${version}"; product = "vivaldi-ffmpeg-codecs"; version = "59.0.3071.104"; src = fetchurl { url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; sha512 = "419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf"; }; buildInputs = [ ]; nativeBuildInputs = [ dbus_glib gtk2 gtk3 libexif libpulseaudio libXScrnSaver ninja nss pciutils pkgconfig python2 xdg_utils ]; configurePhase = '' runHook preConfigure local args="ffmpeg_branding="ChromeOS" proprietary_codecs=true enable_hevc_demuxing=true use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false use_cups=false use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false is_clang=false is_component_build=true is_debug=false symbol_level=0" python tools/gn/bootstrap/bootstrap.py -v -s --no-clean --gn-gen-args "$args" out/Release/gn gen out/Release -v --args="$args" runHook postConfigure ''; buildPhase = '' ninja -C out/Release -v libffmpeg.so ''; dontStrip = true; installPhase = '' mkdir -p "$out/lib" cp out/Release/libffmpeg.so "$out/lib/libffmpeg.so" ''; meta = with stdenv.lib; { description = "Additional support for proprietary codecs for Vivaldi"; homepage    = "https://ffmpeg.org/"; license     = licenses.lgpl21; maintainers = with maintainers; [ lluchs ]; platforms   = [ "x86_64-linux" ]; }; } </ins>


<ins> #!/usr/bin/env nix-shell #!nix-shell -i bash -p libarchive curl common-updater-scripts set -eu -o pipefail cd "$(dirname "${BASH_SOURCE[0]}")" root=../../../../.. export NIXPKGS_ALLOW_UNFREE=1 version() { (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"') } vivaldi_version_old=$(version vivaldi) vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+.[0-9]+.[0-9]+.[0-9]+-[0-9]+)_amd64.deb.*/1/p') if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then echo "nothing to do, vivaldi $vivaldi_version is current" exit fi # Download vivaldi and save hash and file path. url="https://downloads.vivaldi.com/stable/vivaldi-stable_${vivaldi_version}_amd64.deb" mapfile -t prefetch < <(nix-prefetch-url --print-path "$url") hash=${prefetch[0]} path=${prefetch[1]} echo "vivaldi: $vivaldi_version_old -> $vivaldi_version" (cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash") # Check vivaldi-ffmpeg-codecs version. chromium_version_old=$(version vivaldi-ffmpeg-codecs) chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep -A2 -i '^chrome/' | grep '^[0-9]+.[0-9]+.[1-9][0-9]+.[0-9]+') if [[ "$chromium_version" != "$chromium_version_old" ]]; then echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version" (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version") fi </ins>


vivaldi = callPackage ../applications/networking/browsers/vivaldi {}; <ins> vivaldi-ffmpeg-codecs = callPackage ../applications/networking/browsers/vivaldi/ffmpeg-codecs.nix {}; </ins> openmpt123 = callPackage ../applications/audio/openmpt123 {}; opusfile = callPackage ../applications/audio/opusfile { };


cabextract --lowercase viewer1.cab # rename to more standard names <ins> # handle broken macOS file-system </ins> mv andalemo.ttf  Andale_Mono.ttf mv ariblk.ttf    Arial_Black.ttf <del> mv arial.ttf     Arial.ttf </del> <ins> mv arial.ttf     Arial.ttf.tmp mv Arial.ttf.tmp Arial.ttf </ins> mv arialbd.ttf   Arial_Bold.ttf mv arialbi.ttf   Arial_Bold_Italic.ttf mv ariali.ttf    Arial_Italic.ttf


mv courbd.ttf    Courier_New_Bold.ttf mv couri.ttf     Courier_New_Italic.ttf mv courbi.ttf    Courier_New_Bold_Italic.ttf <del> mv georgia.ttf   Georgia.ttf </del> <ins> mv georgia.ttf   Georgia.ttf.tmp mv Georgia.ttf.tmp   Georgia.ttf </ins> mv georgiab.ttf  Georgia_Bold.ttf mv georgiai.ttf  Georgia_Italic.ttf mv georgiaz.ttf  Georgia_Bold_Italic.ttf <del> mv impact.ttf    Impact.ttf mv tahoma.ttf    Tahoma.ttf </del> <ins> mv impact.ttf    Impact.ttf.tmp mv Impact.ttf.tmp    Impact.ttf mv tahoma.ttf    Tahoma.ttf.tmp mv Tahoma.ttf.tmp    Tahoma.ttf </ins> mv times.ttf     Times_New_Roman.ttf mv timesbd.ttf   Times_New_Roman_Bold.ttf mv timesbi.ttf   Times_New_Roman_Bold_Italic.ttf


mv trebucbd.ttf  Trebuchet_MS_Bold.ttf mv trebucit.ttf  Trebuchet_MS_Italic.ttf mv trebucbi.ttf  Trebuchet_MS_Italic.ttf <del> mv verdana.ttf   Verdana.ttf </del> <ins> mv verdana.ttf   Verdana.ttf.tmp mv Verdana.ttf.tmp   Verdana.ttf </ins> mv verdanab.ttf  Verdana_Bold.ttf mv verdanai.ttf  Verdana_Italic.ttf mv verdanaz.ttf  Verdana_Bold_Italic.ttf <del> mv webdings.ttf  Webdings.ttf </del> <ins> mv webdings.ttf  Webdings.ttf.tmp mv Webdings.ttf.tmp  Webdings.ttf </ins> install -m444 -Dt $out/share/fonts/truetype *.ttf