Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-05-01 18:01:22 +00:00 committed by GitHub
commit 67f8ba4a30
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
134 changed files with 1566 additions and 991 deletions

View File

@ -37,6 +37,7 @@ jobs:
pkgs/development/cuda-modules pkgs/development/cuda-modules
pkgs/test/cuda pkgs/test/cuda
pkgs/top-level/cuda-packages.nix pkgs/top-level/cuda-packages.nix
NIX_FMT_PATHS_VSCODE_EXTS: pkgs/applications/editors/vscode/extensions
# Iterate over all environment variables beginning with NIX_FMT_PATHS_. # Iterate over all environment variables beginning with NIX_FMT_PATHS_.
run: | run: |
for env_var in "${!NIX_FMT_PATHS_@}"; do for env_var in "${!NIX_FMT_PATHS_@}"; do

View File

@ -13,7 +13,7 @@ let
"x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin"
# FreeBSD # FreeBSD
"i686-freebsd13" "x86_64-freebsd13" "i686-freebsd" "x86_64-freebsd"
# Genode # Genode
"aarch64-genode" "i686-genode" "x86_64-genode" "aarch64-genode" "i686-genode" "x86_64-genode"

View File

@ -328,7 +328,7 @@ rec {
# BSDs # BSDs
x86_64-freebsd = { x86_64-freebsd = {
config = "x86_64-unknown-freebsd13"; config = "x86_64-unknown-freebsd";
useLLVM = true; useLLVM = true;
}; };

View File

@ -326,11 +326,7 @@ rec {
# the normalized name for macOS. # the normalized name for macOS.
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; }; macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
ios = { execFormat = macho; families = { inherit darwin; }; }; ios = { execFormat = macho; families = { inherit darwin; }; };
# A tricky thing about FreeBSD is that there is no stable ABI across freebsd = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; };
# versions. That means that putting in the version as part of the
# config string is paramount.
freebsd12 = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; version = 12; };
freebsd13 = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; version = 13; };
linux = { execFormat = elf; families = { }; }; linux = { execFormat = elf; families = { }; };
netbsd = { execFormat = elf; families = { inherit bsd; }; }; netbsd = { execFormat = elf; families = { inherit bsd; }; };
none = { execFormat = unknown; families = { }; }; none = { execFormat = unknown; families = { }; };

View File

@ -40,7 +40,7 @@ lib.runTests (
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ]; testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ];
testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ]; testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ];
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd13" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ]; testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
testmips = mseteq mips [ "mips-none" "mips64-none" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ]; testmips = mseteq mips [ "mips-none" "mips64-none" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
testmmix = mseteq mmix [ "mmix-mmixware" ]; testmmix = mseteq mmix [ "mmix-mmixware" ];
testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ]; testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ];
@ -48,11 +48,11 @@ lib.runTests (
testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ]; testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ];
testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ]; testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ];
tests390x = mseteq s390x [ "s390x-linux" "s390x-none" ]; tests390x = mseteq s390x [ "s390x-linux" "s390x-none" ];
testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd13" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ]; testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]; testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ]; testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ];
testfreebsd = mseteq freebsd [ "i686-freebsd13" "x86_64-freebsd13" ]; testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ]; testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ];
testredox = mseteq redox [ "x86_64-redox" ]; testredox = mseteq redox [ "x86_64-redox" ];
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);

View File

@ -2071,12 +2071,6 @@
githubId = 135230; githubId = 135230;
name = "Aycan iRiCAN"; name = "Aycan iRiCAN";
}; };
ayes-web = {
email = "ayes2022@protonmail.com";
github = "ayes-web";
githubId = 52951851;
name = "ayes-web";
};
aynish = { aynish = {
github = "Chickensoupwithrice"; github = "Chickensoupwithrice";
githubId = 22575913; githubId = 22575913;
@ -2264,6 +2258,12 @@
githubId = 576355; githubId = 576355;
name = "Bas van Dijk"; name = "Bas van Dijk";
}; };
BatteredBunny = {
email = "ayes2022@protonmail.com";
github = "BatteredBunny";
githubId = 52951851;
name = "BatteredBunny";
};
BattleCh1cken = { BattleCh1cken = {
email = "BattleCh1cken@larkov.de"; email = "BattleCh1cken@larkov.de";
github = "BattleCh1cken"; github = "BattleCh1cken";

View File

@ -10,13 +10,13 @@ In addition to numerous new and upgraded packages, this release has the followin
- `cryptsetup` has been upgraded from 2.6.1 to 2.7.0. Cryptsetup is a critical component enabling LUKS-based (but not only) full disk encryption. - `cryptsetup` has been upgraded from 2.6.1 to 2.7.0. Cryptsetup is a critical component enabling LUKS-based (but not only) full disk encryption.
Take the time to review [the release notes](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.7.0/docs/v2.7.0-ReleaseNotes). Take the time to review [the release notes](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.7.0/docs/v2.7.0-ReleaseNotes).
One of the highlight is that it is now possible to use hardware OPAL-based encryption of your disk with `cryptsetup`, it has a lot of caveats, see the above notes for the full details. One of the highlights is that it is now possible to use hardware OPAL-based encryption of your disk with `cryptsetup`. It has a lot of caveats, see the above notes for the full details.
- `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. - `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.
- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available. - `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available.
- The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available. - (TODO not sure what path to use here) The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
- NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS. - 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. - This can be disabled through the `environment.stub-ld.enable` option.
@ -34,9 +34,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier. - `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier.
- `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs. - `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs.
- Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`. - `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
- The PipeWire and WirePlumber modules have removed support for using - `pipewire` and `wireplumber` modules have removed support for using
`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`. `environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
`services.pipewire.wireplumber.configPackages` for WirePlumber instead." `services.pipewire.wireplumber.configPackages` for WirePlumber instead."
@ -45,7 +45,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/) Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/)
and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124). and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124).
- A new option `systemd.sysusers.enable` was added. If enabled, users and - `systemd.sysusers.enable` option was added. If enabled, users and
groups are created with systemd-sysusers instead of with a custom perl script. groups are created with systemd-sysusers instead of with a custom perl script.
- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `hardware.nvidia-container-toolkit.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature. - `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `hardware.nvidia-container-toolkit.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
@ -69,16 +69,16 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
} }
``` ```
- The initial Incus LTS release (v6.0.x) is now available through `virtualisation.incus` as the default. Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported. - `virtialisation.incus` now defaults to the newly-added `incus-lts` release (v6.0.x). Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
- Canonical LXD has been upgraded to v5.21.x, an LTS release. The LTS release is now the only supported LXD release. Users are encouraged to [migrate to Incus](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for better support on NixOS. - Canonical `lxd` has been upgraded to v5.21.x, an LTS release. The LTS release is now the only supported LXD release. Users are encouraged to [migrate to Incus](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for better support on NixOS.
- lua interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs - `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
anymore, we patch LUA_ROOT instead which is more respectful to upstream. anymore, we patch LUA_ROOT instead which is more respectful to upstream.
- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary. - `plasma6` is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
- The desktop mode of Lomiri (formerly known as Unity8), using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there. - `lomiri` (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
## New Services {#sec-release-24.05-new-services} ## New Services {#sec-release-24.05-new-services}
@ -100,7 +100,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu), Linux kernel driver to expose the SMU (System Management Unit) for certain AMD Ryzen Processors. Includes the userspace program `monitor_cpu`. Available at [hardward.cpu.amd.ryzen-smu](#opt-hardware.cpu.amd.ryzen-smu.enable) - [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu), Linux kernel driver to expose the SMU (System Management Unit) for certain AMD Ryzen Processors. Includes the userspace program `monitor_cpu`. Available at [hardward.cpu.amd.ryzen-smu](#opt-hardware.cpu.amd.ryzen-smu.enable)
- systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable). - `systemd`'s `gateway`, `upload`, and `remote` services, which provide ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable). - [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
@ -127,7 +127,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- [db-rest](https://github.com/derhuerst/db-rest), a wrapper around Deutsche Bahn's internal API for public transport data. Available as [services.db-rest](#opt-services.db-rest.enable). - [db-rest](https://github.com/derhuerst/db-rest), a wrapper around Deutsche Bahn's internal API for public transport data. Available as [services.db-rest](#opt-services.db-rest.enable).
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable). - [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares. The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server software.
- [mautrix-meta](https://github.com/mautrix/meta), a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Available as services.mautrix-meta - [mautrix-meta](https://github.com/mautrix/meta), a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Available as services.mautrix-meta
@ -139,7 +139,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable). - [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
- A self-hosted management server for the [Netbird](https://netbird.io). Available as [services.netbird.server](#opt-services.netbird.server.enable). - [Netbird](https://netbird.io), an open-source VPN management platform, now has a self-hosted management server. Available as [services.netbird.server](#opt-services.netbird.server.enable).
- [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable). - [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
@ -151,9 +151,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable). - [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable). - [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix](#opt-services.pretix.enable).
- [microsocks](https://github.com/rofl0r/microsocks), a tiny, portable SOCKS5 server with very moderate resource usage. Available as [services.microsocks]($opt-services-microsocks.enable). - [microsocks](https://github.com/rofl0r/microsocks), a tiny, portable SOCKS5 server with very moderate resource usage. Available as [services.microsocks](#opt-services.microsocks.enable).
- [inadyn](https://github.com/troglobit/inadyn), a Dynamic DNS client with built-in support for multiple providers. Available as [services.inadyn](#opt-services.inadyn.enable). - [inadyn](https://github.com/troglobit/inadyn), a Dynamic DNS client with built-in support for multiple providers. Available as [services.inadyn](#opt-services.inadyn.enable).
@ -163,21 +163,21 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`. - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite]($opt-services.wyoming.satellite.enable). - [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable).
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable). - [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
- binfmt option for AppImage-run to support running [AppImage](https://appimage.org/)'s seamlessly on NixOS.. Available as [programs.appimage.binfmt](#opt-programs.appimage.binfmt). - [AppImage](https://appimage.org/), a tool to package desktop applications, now has a `binfmt` option to support running AppImages seamlessly on NixOS. Available as [programs.appimage.binfmt](#opt-programs.appimage.binfmt).
- [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable). - [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable) - [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer. - [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer. Available as [services.rustdesk-server](#opt-services.rustdesk-server.enable).
- [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend. - [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend. Available as [services.scrutiny](#opt-services.scrutiny.enable).
- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis]($opt-services-davis.enable). - [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis](#opt-services.davis.enable).
- [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable) - [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable)
@ -208,7 +208,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
defaulting to `/etc/ssh/authorized_keys.d/%u`. defaulting to `/etc/ssh/authorized_keys.d/%u`.
::: {.warning} ::: {.warning}
Users of {manpage}`pam_ssh_agent_auth(8)` must take care that the pubkeys they use (for instance with `sudo`) Users of {manpage}`pam_ssh_agent_auth(8)` must take care that the pubkeys they use (for instance with `sudo`)
are listed in [`sshAgentAuth.authorizedKeysFiles`].. are listed in [`sshAgentAuth.authorizedKeysFiles`].
::: :::
::: {.note} ::: {.note}
Previously, all `services.openssh.authorizedKeysFiles` were trusted, including `~/.ssh/authorized_keys`, Previously, all `services.openssh.authorizedKeysFiles` were trusted, including `~/.ssh/authorized_keys`,
@ -226,7 +226,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope. - `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
- `appimageTools.wrapAppImage` now create the binary at `$out/bin/${pname}` rather than `$out/bin/${pname}-${version}`, which will break downstream workarounds. - `appimageTools.wrapAppImage` now creates the binary at `$out/bin/${pname}` rather than `$out/bin/${pname}-${version}`, which will break downstream workarounds.
- `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details. - `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
@ -246,16 +246,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
being updated and will be removed in the future. being updated and will be removed in the future.
- The option `services.postgresql.ensureUsers._.ensurePermissions` has been removed as it's - The option `services.postgresql.ensureUsers._.ensurePermissions` has been removed as it is
not declarative and is broken with newer postgresql versions. Consider using not declarative and is broken with newer postgresql versions. Consider using
[](#opt-services.postgresql.ensureUsers._.ensureDBOwnership) [](#opt-services.postgresql.ensureUsers._.ensureDBOwnership)
instead or a tool that's more suited for managing the data inside a postgresql database. instead or a tool that is more suited for managing the data inside a postgresql database.
- `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details. - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}` - `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`
- `neo4j` has been updated to version 5, you may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/) - `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
- `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades. - `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.

View File

@ -19,7 +19,9 @@ let
[Startup] [Startup]
sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled} sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled}
devices_off_on_screensaver = ${toPyBoolStr cfg.devicesOffOnScreensaver} devices_off_on_screensaver = ${toPyBoolStr cfg.devicesOffOnScreensaver}
mouse_battery_notifier = ${toPyBoolStr cfg.mouseBatteryNotifier} battery_notifier = ${toPyBoolStr (cfg.mouseBatteryNotifier || cfg.batteryNotifier.enable)}
battery_notifier_freq = ${builtins.toString cfg.batteryNotifier.frequency}
battery_notifier_percent = ${builtins.toString cfg.batteryNotifier.percentage}
[Statistics] [Statistics]
key_statistics = ${toPyBoolStr cfg.keyStatistics} key_statistics = ${toPyBoolStr cfg.keyStatistics}
@ -86,6 +88,41 @@ in
''; '';
}; };
batteryNotifier = mkOption {
description = ''
Settings for device battery notifications.
'';
default = {};
type = types.submodule {
options = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Mouse battery notifier.
'';
};
frequency = mkOption {
type = types.int;
default = 600;
description = ''
How often battery notifications should be shown (in seconds).
A value of 0 disables notifications.
'';
};
percentage = mkOption {
type = types.int;
default = 33;
description = ''
At what battery percentage the device should reach before
sending notifications.
'';
};
};
};
};
keyStatistics = mkOption { keyStatistics = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -107,6 +144,13 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
warnings = flatten [
(optional cfg.mouseBatteryNotifier ''
The option openrazer.mouseBatteryNotifier is deprecated.
Please use openrazer.batteryNotifier instead to enable and configure battery notifications.
'')
];
boot.extraModulePackages = [ kernelPackages.openrazer ]; boot.extraModulePackages = [ kernelPackages.openrazer ];
boot.kernelModules = drivers; boot.kernelModules = drivers;
@ -127,15 +171,15 @@ in
systemd.user.services.openrazer-daemon = { systemd.user.services.openrazer-daemon = {
description = "Daemon to manage razer devices in userspace"; description = "Daemon to manage razer devices in userspace";
unitConfig.Documentation = "man:openrazer-daemon(8)"; unitConfig.Documentation = "man:openrazer-daemon(8)";
# Requires a graphical session so the daemon knows when the screensaver # Requires a graphical session so the daemon knows when the screensaver
# starts. See the 'devicesOffOnScreensaver' option. # starts. See the 'devicesOffOnScreensaver' option.
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ];
serviceConfig = { serviceConfig = {
Type = "dbus"; Type = "dbus";
BusName = "org.razer"; BusName = "org.razer";
ExecStart = "${daemonExe} --foreground"; ExecStart = "${daemonExe} --foreground";
Restart = "always"; Restart = "always";
}; };
}; };
}; };

View File

@ -1,8 +1,31 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
let let
inherit (lib)
attrValues
concatMapStrings
concatStringsSep
const
elem
filterAttrs
isString
literalExpression
mapAttrs
mapAttrsToList
mkAfter
mkBefore
mkDefault
mkEnableOption
mkIf
mkMerge
mkOption
mkPackageOption
mkRemovedOptionModule
mkRenamedOptionModule
optionalString
types
versionAtLeast
;
cfg = config.services.postgresql; cfg = config.services.postgresql;
@ -24,7 +47,7 @@ let
if true == value then "yes" if true == value then "yes"
else if false == value then "no" else if false == value then "no"
else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'" else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
else toString value; else builtins.toString value;
# The main PostgreSQL configuration file. # The main PostgreSQL configuration file.
configFile = pkgs.writeTextDir "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") (filterAttrs (const (x: x != null)) cfg.settings))); configFile = pkgs.writeTextDir "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") (filterAttrs (const (x: x != null)) cfg.settings)));
@ -439,7 +462,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = map ({ name, ensureDBOwnership, ... }: { assertions = map ({ name, ensureDBOwnership, ... }: {
assertion = ensureDBOwnership -> builtins.elem name cfg.ensureDatabases; assertion = ensureDBOwnership -> elem name cfg.ensureDatabases;
message = '' message = ''
For each database user defined with `services.postgresql.ensureUsers` and For each database user defined with `services.postgresql.ensureUsers` and
`ensureDBOwnership = true;`, a database with the same name must be defined `ensureDBOwnership = true;`, a database with the same name must be defined
@ -537,7 +560,7 @@ in
# Wait for PostgreSQL to be ready to accept connections. # Wait for PostgreSQL to be ready to accept connections.
postStart = postStart =
'' ''
PSQL="psql --port=${toString cfg.settings.port}" PSQL="psql --port=${builtins.toString cfg.settings.port}"
while ! $PSQL -d postgres -c "" 2> /dev/null; do while ! $PSQL -d postgres -c "" 2> /dev/null; do
if ! kill -0 "$MAINPID"; then exit 1; fi if ! kill -0 "$MAINPID"; then exit 1; fi

View File

@ -56,8 +56,8 @@ in
}; };
devRootTokenID = mkOption { devRootTokenID = mkOption {
type = types.str; type = types.nullOr types.str;
default = false; default = null;
description = '' description = ''
Initial root token. This only applies when {option}`services.vault.dev` is true Initial root token. This only applies when {option}`services.vault.dev` is true
''; '';

View File

@ -352,7 +352,8 @@ let
# The acme-challenge location doesn't need to be added if we are not using any automated # The acme-challenge location doesn't need to be added if we are not using any automated
# certificate provisioning and can also be omitted when we use a certificate obtained via a DNS-01 challenge # certificate provisioning and can also be omitted when we use a certificate obtained via a DNS-01 challenge
acmeLocation = optionalString (vhost.enableACME || (vhost.useACMEHost != null && config.security.acme.certs.${vhost.useACMEHost}.dnsProvider == null)) acmeName = if vhost.useACMEHost != null then vhost.useACMEHost else vhostName;
acmeLocation = optionalString ((vhost.enableACME || vhost.useACMEHost != null) && config.security.acme.certs.${acmeName}.dnsProvider == null)
# Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx) # Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx)
# We use ^~ here, so that we don't check any regexes (which could # We use ^~ here, so that we don't check any regexes (which could
# otherwise easily override this intended match accidentally). # otherwise easily override this intended match accidentally).

View File

@ -9,7 +9,7 @@ let
cfg = config.virtualisation.incus; cfg = config.virtualisation.incus;
preseedFormat = pkgs.formats.yaml { }; preseedFormat = pkgs.formats.yaml { };
serverBinPath = ''${pkgs.qemu_kvm}/libexec:${ serverBinPath = ''/run/wrappers/bin:${pkgs.qemu_kvm}/libexec:${
lib.makeBinPath ( lib.makeBinPath (
with pkgs; with pkgs;
[ [
@ -33,30 +33,41 @@ let
gzip gzip
iproute2 iproute2
iptables iptables
iw
kmod kmod
libnvidia-container
libxfs
lvm2 lvm2
minio minio
minio-client
nftables nftables
qemu_kvm
qemu-utils qemu-utils
qemu_kvm
rsync rsync
squashfs-tools-ng
squashfsTools squashfsTools
sshfs
swtpm swtpm
systemd systemd
thin-provisioning-tools thin-provisioning-tools
util-linux util-linux
virtiofsd virtiofsd
xdelta
xz xz
]
++ lib.optionals config.security.apparmor.enable [
apparmor-bin-utils
(writeShellScriptBin "apparmor_parser" '' (writeShellScriptBin "apparmor_parser" ''
exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@" exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
'') '')
] ]
++ lib.optionals config.services.ceph.client.enable [ ceph-client ]
++ lib.optionals config.virtualisation.vswitch.enable [ config.virtualisation.vswitch.package ]
++ lib.optionals config.boot.zfs.enabled [ ++ lib.optionals config.boot.zfs.enabled [
config.boot.zfs.package config.boot.zfs.package
"${config.boot.zfs.package}/lib/udev" "${config.boot.zfs.package}/lib/udev"
] ]
++ lib.optionals config.virtualisation.vswitch.enable [ config.virtualisation.vswitch.package ]
) )
}''; }'';

View File

@ -27,11 +27,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bitwig-studio"; pname = "bitwig-studio";
version = "5.1.6"; version = "5.1.8";
src = fetchurl { src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb"; url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "sha256-U1Qp7/7kAr1IEcv256I2J/sb5MYxfR20Pi5N8WaVh2U="; sha256 = "sha256-KxNLae/uTYL1m/X+/7wr7hhKfw31NpB9Mw9RzfrTuus=";
}; };
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ]; nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];

View File

@ -6,16 +6,16 @@
buildGoModule rec { buildGoModule rec {
pname = "lnd"; pname = "lnd";
version = "0.17.4-beta"; version = "0.17.5-beta";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lightningnetwork"; owner = "lightningnetwork";
repo = "lnd"; repo = "lnd";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-O6cGK4UMKrZpYqtghjjqqLBStLG5GEi/Q5liR557I8s="; hash = "sha256-q/mzF6LPW/ThgqfGgjtax8GvoC3JEpg0IetfSTo1XYk=";
}; };
vendorHash = "sha256-eaQmM5bfsUmzTiUALX543VBQRJK+TqW2i28npwSrn3Q="; vendorHash = "sha256-unT0zJrOEmKHpoUsrBHKfn5IziGlaqEtMfkeo/74Rfc=";
subPackages = [ "cmd/lncli" "cmd/lnd" ]; subPackages = [ "cmd/lncli" "cmd/lnd" ];

View File

@ -7,6 +7,7 @@
, gperf , gperf
, libmicrohttpd , libmicrohttpd
, libsodium , libsodium
, lz4
, openssl , openssl
, readline , readline
, secp256k1 , secp256k1
@ -16,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ton"; pname = "ton";
version = "2024.03"; version = "2024.04";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ton-blockchain"; owner = "ton-blockchain";
repo = "ton"; repo = "ton";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-AVg33aZAyedmNIFqQJm4Nn6luLxK4mKgnIRmNU7j2C0="; hash = "sha256-hh8D4IZX6RS/RXdhVONhgetqp89kpTC2IwDQ2KHdKsE=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
gperf gperf
libmicrohttpd libmicrohttpd
libsodium libsodium
lz4
openssl openssl
readline readline
secp256k1 secp256k1

View File

@ -1,22 +1,21 @@
{ lib { lib, vscode-utils }:
, vscode-utils }:
let let
inherit (vscode-utils) buildVscodeMarketplaceExtension; inherit (vscode-utils) buildVscodeMarketplaceExtension;
in in
buildVscodeMarketplaceExtension { buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "vscode-wakatime"; name = "vscode-wakatime";
publisher = "WakaTime"; publisher = "WakaTime";
version = "18.0.5"; version = "18.0.5";
hash = "sha256-vWqGxMbxKqd4UgKK0sOKadMTDf6Y3TQxfWsc93MHjFs="; hash = "sha256-vWqGxMbxKqd4UgKK0sOKadMTDf6Y3TQxfWsc93MHjFs=";
}; };
meta = { meta = {
description = '' description = ''
Visual Studio Code plugin for automatic time tracking and metrics generated Visual Studio Code plugin for automatic time tracking and metrics generated
from your programming activity from your programming activity
''; '';
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
}; };
} }

View File

@ -1,11 +1,19 @@
{ lib, stdenv, vscode-utils, callPackage }: {
lib,
stdenv,
vscode-utils,
callPackage,
}:
let let
version = "1.50.0"; version = "1.50.0";
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; }; rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
arch = arch =
if stdenv.isLinux then "linux" if stdenv.isLinux then
else if stdenv.isDarwin then "darwin" "linux"
else throw "Unsupported system: ${stdenv.system}"; else if stdenv.isDarwin then
"darwin"
else
throw "Unsupported system: ${stdenv.system}";
analysisDir = "server/analysis_binaries/${arch}"; analysisDir = "server/analysis_binaries/${arch}";
in in
vscode-utils.buildVscodeMarketplaceExtension rec { vscode-utils.buildVscodeMarketplaceExtension rec {
@ -23,7 +31,10 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
meta = { meta = {
description = "The official VSCode plugin for ReScript"; description = "The official VSCode plugin for ReScript";
homepage = "https://github.com/rescript-lang/rescript-vscode"; homepage = "https://github.com/rescript-lang/rescript-vscode";
maintainers = [ lib.maintainers.dlip lib.maintainers.jayesh-bhoot ]; maintainers = [
lib.maintainers.dlip
lib.maintainers.jayesh-bhoot
];
license = lib.licenses.mit; license = lib.licenses.mit;
}; };
} }

View File

@ -1,4 +1,13 @@
{ lib, stdenv, fetchFromGitHub, bash, ocaml, ocamlPackages, dune_3, version }: {
lib,
stdenv,
fetchFromGitHub,
bash,
ocaml,
ocamlPackages,
dune_3,
version,
}:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "rescript-editor-analysis"; pname = "rescript-editor-analysis";
@ -11,7 +20,11 @@ stdenv.mkDerivation {
hash = "sha256-+Ht8qWwxtFWHFMiV/aoZIs2S3SxkOWgdwSKN+akp/LU="; hash = "sha256-+Ht8qWwxtFWHFMiV/aoZIs2S3SxkOWgdwSKN+akp/LU=";
}; };
nativeBuildInputs = [ ocaml dune_3 ocamlPackages.cppo ]; nativeBuildInputs = [
ocaml
dune_3
ocamlPackages.cppo
];
# Skip testing phases because they need to download and install node modules # Skip testing phases because they need to download and install node modules
postPatch = '' postPatch = ''
@ -28,7 +41,10 @@ stdenv.mkDerivation {
meta = { meta = {
description = "Analysis binary for the ReScript VSCode plugin"; description = "Analysis binary for the ReScript VSCode plugin";
homepage = "https://github.com/rescript-lang/rescript-vscode"; homepage = "https://github.com/rescript-lang/rescript-vscode";
maintainers = [ lib.maintainers.dlip lib.maintainers.jayesh-bhoot ]; maintainers = [
lib.maintainers.dlip
lib.maintainers.jayesh-bhoot
];
license = lib.licenses.mit; license = lib.licenses.mit;
}; };
} }

View File

@ -1,8 +1,9 @@
{ graphviz {
, jre graphviz,
, lib jre,
, makeWrapper lib,
, vscode-utils makeWrapper,
vscode-utils,
}: }:
vscode-utils.buildVscodeMarketplaceExtension rec { vscode-utils.buildVscodeMarketplaceExtension rec {
@ -13,13 +14,9 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
hash = "sha256-TvApcBBI+Egu7t4tJuEYTs6mhvABOY2eXVb57O4gWfs="; hash = "sha256-TvApcBBI+Egu7t4tJuEYTs6mhvABOY2eXVb57O4gWfs=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [ makeWrapper ];
makeWrapper
];
buildInputs = [ buildInputs = [ graphviz ];
graphviz
];
postInstall = '' postInstall = ''
wrapProgram $out/share/vscode/extensions/contextmapper.context-mapper-vscode-extension/lsp/bin/context-mapper-lsp \ wrapProgram $out/share/vscode/extensions/contextmapper.context-mapper-vscode-extension/lsp/bin/context-mapper-lsp \

View File

@ -3514,8 +3514,8 @@ let
mktplcRef = { mktplcRef = {
name = "wikitext"; name = "wikitext";
publisher = "RoweWilsonFrederiskHolme"; publisher = "RoweWilsonFrederiskHolme";
version = "3.8.0"; version = "3.8.1";
sha256 = "30540a85163e797028eec9bc3db1866bbf473e98615bf6ade6d1d672017ebe52"; hash = "sha256-piwS3SPjx10nsjN5axC+EN0MEDf0r2lVFllqQzciOfc=";
}; };
meta = { meta = {
description = "Extension that helps users view and write MediaWiki's Wikitext files"; description = "Extension that helps users view and write MediaWiki's Wikitext files";

View File

@ -1,6 +1,4 @@
{ lib { lib, vscode-utils }:
, vscode-utils
}:
vscode-utils.buildVscodeMarketplaceExtension { vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {

View File

@ -1,4 +1,8 @@
{ lib, vscode-utils, terraform-ls }: {
lib,
vscode-utils,
terraform-ls,
}:
vscode-utils.buildVscodeMarketplaceExtension rec { vscode-utils.buildVscodeMarketplaceExtension rec {
mktplcRef = { mktplcRef = {
name = "terraform"; name = "terraform";

View File

@ -1,4 +1,10 @@
{ lib, vscode-utils, plantuml, jq, moreutils }: {
lib,
vscode-utils,
plantuml,
jq,
moreutils,
}:
vscode-utils.buildVscodeMarketplaceExtension { vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
@ -7,7 +13,10 @@ vscode-utils.buildVscodeMarketplaceExtension {
version = "2.17.4"; version = "2.17.4";
hash = "sha256-fnz6ubB73i7rJcv+paYyNV1r4cReuyFPjgPM0HO40ug="; hash = "sha256-fnz6ubB73i7rJcv+paYyNV1r4cReuyFPjgPM0HO40ug=";
}; };
nativeBuildInputs = [ jq moreutils ]; nativeBuildInputs = [
jq
moreutils
];
postInstall = '' postInstall = ''
cd "$out/$installPrefix" cd "$out/$installPrefix"
jq '.contributes.configuration.properties."plantuml.java".default = "${plantuml}/bin/plantuml"' package.json | sponge package.json jq '.contributes.configuration.properties."plantuml.java".default = "${plantuml}/bin/plantuml"' package.json | sponge package.json
@ -15,13 +24,10 @@ vscode-utils.buildVscodeMarketplaceExtension {
meta = { meta = {
description = "A Visual Studio Code extension for supporting Rich PlantUML"; description = "A Visual Studio Code extension for supporting Rich PlantUML";
downloadPage = downloadPage = "https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml";
"https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml";
homepage = "https://github.com/qjebbs/vscode-plantuml"; homepage = "https://github.com/qjebbs/vscode-plantuml";
changelog = changelog = "https://marketplace.visualstudio.com/items/jebbs.plantuml/changelog";
"https://marketplace.visualstudio.com/items/jebbs.plantuml/changelog";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = [ lib.maintainers.victormignot ]; maintainers = [ lib.maintainers.victormignot ];
}; };
} }

View File

@ -4,7 +4,12 @@ with vscode-utils;
let let
buildVscodeLanguagePack = { language, version ? "1.76.2023030809", sha256 }: buildVscodeLanguagePack =
{
language,
version ? "1.76.2023030809",
sha256,
}:
buildVscodeMarketplaceExtension { buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "vscode-language-pack-${language}"; name = "vscode-language-pack-${language}";
@ -15,7 +20,6 @@ let
license = lib.licenses.mit; license = lib.licenses.mit;
}; };
}; };
in in
# See list of core language packs at https://github.com/Microsoft/vscode-loc # See list of core language packs at https://github.com/Microsoft/vscode-loc

View File

@ -1,4 +1,11 @@
{ publisher, name, version, arch ? "", sha256 ? "", hash ? "" }: {
publisher,
name,
version,
arch ? "",
sha256 ? "",
hash ? "",
}:
let let
archurl = (if arch == "" then "" else "?targetPlatform=${arch}"); archurl = (if arch == "" then "" else "?targetPlatform=${arch}");
in in

View File

@ -1,56 +1,59 @@
{ lib {
, icu lib,
, openssl icu,
, patchelf openssl,
, stdenv patchelf,
, vscode-utils stdenv,
vscode-utils,
}: }:
let let
inherit (stdenv.hostPlatform) system; inherit (stdenv.hostPlatform) system;
inherit (vscode-utils) buildVscodeMarketplaceExtension; inherit (vscode-utils) buildVscodeMarketplaceExtension;
extInfo = { extInfo =
x86_64-linux = { {
arch = "linux-x64"; x86_64-linux = {
hash = "sha256-7m85Zl9oV40le3nkNPzoKu/AAf8XhQpI8sBMsQXmBg8="; arch = "linux-x64";
binaries = [ hash = "sha256-7m85Zl9oV40le3nkNPzoKu/AAf8XhQpI8sBMsQXmBg8=";
"components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/servicehub-controller-net60.linux-x64/Microsoft.ServiceHub.Controller" binaries = [
"components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-code-servicehost.linux-x64/Microsoft.VisualStudio.Code.ServiceHost" "components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/servicehub-controller-net60.linux-x64/Microsoft.ServiceHub.Controller"
"components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-reliability-monitor.linux-x64/Microsoft.VisualStudio.Reliability.Monitor" "components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-code-servicehost.linux-x64/Microsoft.VisualStudio.Code.ServiceHost"
"components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-server.linux-x64/Microsoft.VisualStudio.Code.Server" "components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-reliability-monitor.linux-x64/Microsoft.VisualStudio.Reliability.Monitor"
]; "components/vs-green-server/platforms/linux-x64/node_modules/@microsoft/visualstudio-server.linux-x64/Microsoft.VisualStudio.Code.Server"
}; ];
aarch64-linux = { };
arch = "linux-arm64"; aarch64-linux = {
hash = "sha256-39D55EdwE4baDYbHc9GD/1XoxGbQkUkS1H2uysJHlxw="; arch = "linux-arm64";
binaries = [ hash = "sha256-39D55EdwE4baDYbHc9GD/1XoxGbQkUkS1H2uysJHlxw=";
"components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/servicehub-controller-net60.linux-arm64/Microsoft.ServiceHub.Controller" binaries = [
"components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-code-servicehost.linux-arm64/Microsoft.VisualStudio.Code.ServiceHost" "components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/servicehub-controller-net60.linux-arm64/Microsoft.ServiceHub.Controller"
"components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-reliability-monitor.linux-arm64/Microsoft.VisualStudio.Reliability.Monitor" "components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-code-servicehost.linux-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-server.linux-arm64/Microsoft.VisualStudio.Code.Server" "components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-reliability-monitor.linux-arm64/Microsoft.VisualStudio.Reliability.Monitor"
]; "components/vs-green-server/platforms/linux-arm64/node_modules/@microsoft/visualstudio-server.linux-arm64/Microsoft.VisualStudio.Code.Server"
}; ];
x86_64-darwin = { };
arch = "darwin-x64"; x86_64-darwin = {
hash = "sha256-gfhJX07R+DIw9FbzaEE0JZwEmDeifiq4vHyMHZZ1udM="; arch = "darwin-x64";
binaries = [ hash = "sha256-gfhJX07R+DIw9FbzaEE0JZwEmDeifiq4vHyMHZZ1udM=";
"components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/servicehub-controller-net60.darwin-x64/Microsoft.ServiceHub.Controller" binaries = [
"components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-code-servicehost.darwin-x64/Microsoft.VisualStudio.Code.ServiceHost" "components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/servicehub-controller-net60.darwin-x64/Microsoft.ServiceHub.Controller"
"components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-reliability-monitor.darwin-x64/Microsoft.VisualStudio.Reliability.Monitor" "components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-code-servicehost.darwin-x64/Microsoft.VisualStudio.Code.ServiceHost"
"components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-server.darwin-x64/Microsoft.VisualStudio.Code.Server" "components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-reliability-monitor.darwin-x64/Microsoft.VisualStudio.Reliability.Monitor"
]; "components/vs-green-server/platforms/darwin-x64/node_modules/@microsoft/visualstudio-server.darwin-x64/Microsoft.VisualStudio.Code.Server"
}; ];
aarch64-darwin = { };
arch = "darwin-arm64"; aarch64-darwin = {
hash = "sha256-vogstgCWvI9csNF9JfJ41XPR1POy842g2yhWqIDoHLw="; arch = "darwin-arm64";
binaries = [ hash = "sha256-vogstgCWvI9csNF9JfJ41XPR1POy842g2yhWqIDoHLw=";
"components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/servicehub-controller-net60.darwin-arm64/Microsoft.ServiceHub.Controller" binaries = [
"components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-code-servicehost.darwin-arm64/Microsoft.VisualStudio.Code.ServiceHost" "components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/servicehub-controller-net60.darwin-arm64/Microsoft.ServiceHub.Controller"
"components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-reliability-monitor.darwin-arm64/Microsoft.VisualStudio.Reliability.Monitor" "components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-code-servicehost.darwin-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-server.darwin-arm64/Microsoft.VisualStudio.Code.Server" "components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-reliability-monitor.darwin-arm64/Microsoft.VisualStudio.Reliability.Monitor"
]; "components/vs-green-server/platforms/darwin-arm64/node_modules/@microsoft/visualstudio-server.darwin-arm64/Microsoft.VisualStudio.Code.Server"
}; ];
}.${system} or (throw "Unsupported system: ${system}"); };
}
.${system} or (throw "Unsupported system: ${system}");
in in
buildVscodeMarketplaceExtension { buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
@ -61,50 +64,55 @@ buildVscodeMarketplaceExtension {
}; };
sourceRoot = "extension"; # This has more than one folder. sourceRoot = "extension"; # This has more than one folder.
nativeBuildInputs = [ nativeBuildInputs = [ patchelf ];
patchelf
];
postPatch = '' postPatch =
declare ext_unique_id ''
ext_unique_id="$(basename "$out" | head -c 32)" declare ext_unique_id
ext_unique_id="$(basename "$out" | head -c 32)"
patchelf_add_icu_as_needed() { patchelf_add_icu_as_needed() {
declare elf="''${1?}" declare elf="''${1?}"
declare icu_major_v="${ declare icu_major_v="${lib.head (lib.splitVersion (lib.getVersion icu.name))}"
lib.head (lib.splitVersion (lib.getVersion icu.name))
}"
for icu_lib in icui18n icuuc icudata; do for icu_lib in icui18n icuuc icudata; do
patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf" patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
done done
} }
patchelf_common() { patchelf_common() {
declare elf="''${1?}" declare elf="''${1?}"
patchelf_add_icu_as_needed "$elf" patchelf_add_icu_as_needed "$elf"
patchelf --add-needed "libssl.so" "$elf" patchelf --add-needed "libssl.so" "$elf"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lib.makeLibraryPath [stdenv.cc.cc openssl icu.out]}:\$ORIGIN" \ --set-rpath "${
"$elf" lib.makeLibraryPath [
} stdenv.cc.cc
openssl
icu.out
]
}:\$ORIGIN" \
"$elf"
}
substituteInPlace dist/extension.js \ substituteInPlace dist/extension.js \
--replace 'e.extensionPath,"cache"' 'require("os").tmpdir(),"'"$ext_unique_id"'"' \ --replace 'e.extensionPath,"cache"' 'require("os").tmpdir(),"'"$ext_unique_id"'"' \
--replace 't.setExecuteBit=async function(e){if("win32"!==process.platform){const t=i.join(e[a.SERVICEHUB_CONTROLLER_COMPONENT_NAME],"Microsoft.ServiceHub.Controller"),n=i.join(e[a.SERVICEHUB_HOST_COMPONENT_NAME],(0,a.getServiceHubHostEntrypointName)()),r=[(0,a.getServerPath)(e),t,n,(0,c.getReliabilityMonitorPath)(e)];await Promise.all(r.map((e=>(0,o.chmod)(e,"0755"))))}}' 't.setExecuteBit=async function(e){}' --replace 't.setExecuteBit=async function(e){if("win32"!==process.platform){const t=i.join(e[a.SERVICEHUB_CONTROLLER_COMPONENT_NAME],"Microsoft.ServiceHub.Controller"),n=i.join(e[a.SERVICEHUB_HOST_COMPONENT_NAME],(0,a.getServiceHubHostEntrypointName)()),r=[(0,a.getServerPath)(e),t,n,(0,c.getReliabilityMonitorPath)(e)];await Promise.all(r.map((e=>(0,o.chmod)(e,"0755"))))}}' 't.setExecuteBit=async function(e){}'
'' ''
+ (lib.concatStringsSep "\n" (map + (lib.concatStringsSep "\n" (
(bin: '' map (bin: ''
chmod +x "${bin}" chmod +x "${bin}"
'') '') extInfo.binaries
extInfo.binaries)) ))
+ lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map + lib.optionalString stdenv.isLinux (
(bin: '' lib.concatStringsSep "\n" (
patchelf_common "${bin}" map (bin: ''
'') patchelf_common "${bin}"
extInfo.binaries)); '') extInfo.binaries
)
);
meta = { meta = {
changelog = "https://marketplace.visualstudio.com/items/ms-dotnettools.csdevkit/changelog"; changelog = "https://marketplace.visualstudio.com/items/ms-dotnettools.csdevkit/changelog";
@ -112,6 +120,11 @@ buildVscodeMarketplaceExtension {
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit";
license = lib.licenses.unfree; license = lib.licenses.unfree;
maintainers = [ lib.maintainers.ggg ]; maintainers = [ lib.maintainers.ggg ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
}; };
} }

View File

@ -1,11 +1,11 @@
{ lib {
, vscode-utils lib,
, patchelf vscode-utils,
, icu patchelf,
, stdenv icu,
, openssl stdenv,
, coreutils openssl,
, coreutils,
}: }:
let let
inherit (stdenv.hostPlatform) system; inherit (stdenv.hostPlatform) system;
@ -26,31 +26,32 @@ let
".debugger/x86_64/vsdbg" ".debugger/x86_64/vsdbg"
]; ];
in in
{ {
x86_64-linux = { x86_64-linux = {
arch = "linux-x64"; arch = "linux-x64";
hash = "sha256-si4HKGVIHu44QNlNI2WEnMff9+QZOMWiBfWQaaFGyQE="; hash = "sha256-si4HKGVIHu44QNlNI2WEnMff9+QZOMWiBfWQaaFGyQE=";
binaries = linuxBins; binaries = linuxBins;
}; };
aarch64-linux = { aarch64-linux = {
arch = "linux-arm64"; arch = "linux-arm64";
hash = "sha256-1IXkSRgCHOLD4VeCdqyy54MXCBUX5RDDb3pf7GQH5jA="; hash = "sha256-1IXkSRgCHOLD4VeCdqyy54MXCBUX5RDDb3pf7GQH5jA=";
binaries = linuxBins; binaries = linuxBins;
}; };
x86_64-darwin = { x86_64-darwin = {
arch = "darwin-x64"; arch = "darwin-x64";
hash = "sha256-AAbYjZ+YYyGEXSLkiFfluLf7P4OzPhmHzK44N5XT9UI="; hash = "sha256-AAbYjZ+YYyGEXSLkiFfluLf7P4OzPhmHzK44N5XT9UI=";
binaries = darwinBins; binaries = darwinBins;
}; };
aarch64-darwin = { aarch64-darwin = {
arch = "darwin-arm64"; arch = "darwin-arm64";
hash = "sha256-1m47kX0Jo+UvthNfgdoPdBBOcDyCA8DfP+zRk3SicR0="; hash = "sha256-1m47kX0Jo+UvthNfgdoPdBBOcDyCA8DfP+zRk3SicR0=";
binaries = darwinBins ++ [ binaries = darwinBins ++ [
".debugger/arm64/vsdbg-ui" ".debugger/arm64/vsdbg-ui"
".debugger/arm64/vsdbg" ".debugger/arm64/vsdbg"
]; ];
}; };
}.${system} or (throw "Unsupported system: ${system}"); }
.${system} or (throw "Unsupported system: ${system}");
in in
buildVscodeMarketplaceExtension { buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
@ -60,16 +61,13 @@ buildVscodeMarketplaceExtension {
inherit (extInfo) hash arch; inherit (extInfo) hash arch;
}; };
nativeBuildInputs = [ nativeBuildInputs = [ patchelf ];
patchelf
];
postPatch = '' postPatch =
''
patchelf_add_icu_as_needed() { patchelf_add_icu_as_needed() {
declare elf="''${1?}" declare elf="''${1?}"
declare icu_major_v="${ declare icu_major_v="${lib.head (lib.splitVersion (lib.getVersion icu.name))}"
lib.head (lib.splitVersion (lib.getVersion icu.name))
}"
for icu_lib in icui18n icuuc icudata; do for icu_lib in icui18n icuuc icudata; do
patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf" patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
@ -82,7 +80,13 @@ buildVscodeMarketplaceExtension {
patchelf_add_icu_as_needed "$elf" patchelf_add_icu_as_needed "$elf"
patchelf --add-needed "libssl.so" "$elf" patchelf --add-needed "libssl.so" "$elf"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lib.makeLibraryPath [stdenv.cc.cc openssl icu.out]}:\$ORIGIN" \ --set-rpath "${
lib.makeLibraryPath [
stdenv.cc.cc
openssl
icu.out
]
}:\$ORIGIN" \
"$elf" "$elf"
} }
@ -90,22 +94,29 @@ buildVscodeMarketplaceExtension {
--replace 'uname -m' '${lib.getExe' coreutils "uname"} -m' --replace 'uname -m' '${lib.getExe' coreutils "uname"} -m'
'' ''
+ (lib.concatStringsSep "\n" (map + (lib.concatStringsSep "\n" (
(bin: '' map (bin: ''
chmod +x "${bin}" chmod +x "${bin}"
'') '') extInfo.binaries
extInfo.binaries)) ))
+ lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map + lib.optionalString stdenv.isLinux (
(bin: '' lib.concatStringsSep "\n" (
patchelf_common "${bin}" map (bin: ''
'') patchelf_common "${bin}"
extInfo.binaries)); '') extInfo.binaries
)
);
meta = { meta = {
description = "Official C# support for Visual Studio Code"; description = "Official C# support for Visual Studio Code";
homepage = "https://github.com/dotnet/vscode-csharp"; homepage = "https://github.com/dotnet/vscode-csharp";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ggg ]; maintainers = with lib.maintainers; [ ggg ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
}; };
} }

View File

@ -1,19 +1,20 @@
{ lib {
, vscode-utils lib,
, icu vscode-utils,
, python3 icu,
python3,
# When `true`, the python default setting will be fixed to specified. # When `true`, the python default setting will be fixed to specified.
# Use version from `PATH` for default setting otherwise. # Use version from `PATH` for default setting otherwise.
# Defaults to `false` as we expect it to be project specific most of the time. # Defaults to `false` as we expect it to be project specific most of the time.
, pythonUseFixed ? false pythonUseFixed ? false,
# For updateScript # For updateScript
, writeScript writeScript,
, bash bash,
, curl curl,
, coreutils coreutils,
, gnused gnused,
, jq jq,
, nix nix,
}: }:
vscode-utils.buildVscodeMarketplaceExtension rec { vscode-utils.buildVscodeMarketplaceExtension rec {
@ -33,33 +34,37 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
jedi-language-server jedi-language-server
]; ];
postPatch = '' postPatch =
# remove bundled python deps and use libs from nixpkgs ''
rm -r pythonFiles/lib # remove bundled python deps and use libs from nixpkgs
mkdir -p pythonFiles/lib/python/ rm -r pythonFiles/lib
ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy pythonFiles/lib/python/ mkdir -p pythonFiles/lib/python/
buildPythonPath "$propagatedBuildInputs" ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy pythonFiles/lib/python/
for i in pythonFiles/*.py; do buildPythonPath "$propagatedBuildInputs"
patchPythonScript "$i" for i in pythonFiles/*.py; do
done patchPythonScript "$i"
'' + lib.optionalString pythonUseFixed '' done
# Patch `packages.json` so that nix's *python* is used as default value for `python.pythonPath`. ''
substituteInPlace "./package.json" \ + lib.optionalString pythonUseFixed ''
--replace "\"default\": \"python\"" "\"default\": \"${python3.interpreter}\"" # Patch `packages.json` so that nix's *python* is used as default value for `python.pythonPath`.
''; substituteInPlace "./package.json" \
--replace "\"default\": \"python\"" "\"default\": \"${python3.interpreter}\""
'';
passthru.updateScript = writeScript "update" '' passthru.updateScript = writeScript "update" ''
#! ${bash}/bin/bash #! ${bash}/bin/bash
set -eu -o pipefail set -eu -o pipefail
export PATH=${lib.makeBinPath [ export PATH=${
curl lib.makeBinPath [
coreutils curl
gnused coreutils
jq gnused
nix jq
]} nix
]
}
api=$(curl -s 'https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery' \ api=$(curl -s 'https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery' \
-H 'accept: application/json;api-version=3.0-preview.1' \ -H 'accept: application/json;api-version=3.0-preview.1' \
@ -82,7 +87,14 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
homepage = "https://github.com/Microsoft/vscode-python"; homepage = "https://github.com/Microsoft/vscode-python";
changelog = "https://github.com/microsoft/vscode-python/releases"; changelog = "https://github.com/microsoft/vscode-python/releases";
license = lib.licenses.mit; license = lib.licenses.mit;
platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; platforms = [
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.jfchevrette ]; "x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
maintainers = [
lib.maintainers.jraygauthier
lib.maintainers.jfchevrette
];
}; };
} }

View File

@ -1,4 +1,9 @@
{ lib, vscode-utils, jq, moreutils }: {
lib,
vscode-utils,
jq,
moreutils,
}:
vscode-utils.buildVscodeMarketplaceExtension { vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {

View File

@ -1,7 +1,8 @@
{ lib {
, nixosTests lib,
, vscode-utils nixosTests,
, useLocalExtensions ? false vscode-utils,
useLocalExtensions ? false,
}: }:
# Note that useLocalExtensions requires that vscode-server is not running # Note that useLocalExtensions requires that vscode-server is not running
# on host. If it is, you'll need to remove $HOME/.vscode-server, # on host. If it is, you'll need to remove $HOME/.vscode-server,
@ -92,7 +93,9 @@ buildVscodeMarketplaceExtension {
--replace '# Start the server\n' '${patch}' --replace '# Start the server\n' '${patch}'
''; '';
passthru.tests = { inherit (nixosTests) vscode-remote-ssh; }; passthru.tests = {
inherit (nixosTests) vscode-remote-ssh;
};
meta = { meta = {
description = "Use any remote machine with a SSH server as your development environment."; description = "Use any remote machine with a SSH server as your development environment.";

View File

@ -1,8 +1,19 @@
{ lib, vscode-utils {
, fetchurl, writeScript, runtimeShell lib,
, jq, clang-tools vscode-utils,
, gdbUseFixed ? true, gdb # The gdb default setting will be fixed to specified. Use version from `PATH` otherwise. fetchurl,
, autoPatchelfHook, makeWrapper, stdenv, lttng-ust, libkrb5, zlib writeScript,
runtimeShell,
jq,
clang-tools,
gdbUseFixed ? true,
gdb, # The gdb default setting will be fixed to specified. Use version from `PATH` otherwise.
autoPatchelfHook,
makeWrapper,
stdenv,
lttng-ust,
libkrb5,
zlib,
}: }:
/* /*
@ -94,7 +105,13 @@ vscode-utils.buildVscodeMarketplaceExtension {
description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging."; description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools"; homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
license = lib.licenses.unfree; license = lib.licenses.unfree;
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.stargate01 ]; maintainers = [
platforms = [ "x86_64-linux" "aarch64-linux" ]; lib.maintainers.jraygauthier
lib.maintainers.stargate01
];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
}; };
} }

View File

@ -1,4 +1,8 @@
{ lib, vscode-utils, xsel }: {
lib,
vscode-utils,
xsel,
}:
vscode-utils.buildVscodeMarketplaceExtension { vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {

View File

@ -1,16 +1,17 @@
{ lib {
, fetchFromGitHub lib,
, vscode-utils fetchFromGitHub,
, jq vscode-utils,
, rust-analyzer jq,
, nodePackages rust-analyzer,
, moreutils nodePackages,
, esbuild moreutils,
, pkg-config esbuild,
, libsecret pkg-config,
, stdenv libsecret,
, darwin stdenv,
, setDefaultServerPath ? true darwin,
setDefaultServerPath ? true,
}: }:
let let
@ -29,26 +30,32 @@ let
hash = "sha256-Oj/RPMridKpYt3eRqUIPg9YNrj6npG8THIGuWjsamnE="; hash = "sha256-Oj/RPMridKpYt3eRqUIPg9YNrj6npG8THIGuWjsamnE=";
}; };
build-deps = nodePackages."rust-analyzer-build-deps-../../applications/editors/vscode/extensions/rust-lang.rust-analyzer/build-deps"; build-deps =
nodePackages."rust-analyzer-build-deps-../../applications/editors/vscode/extensions/rust-lang.rust-analyzer/build-deps";
# FIXME: Making a new derivation to link `node_modules` and run `npm run package` # FIXME: Making a new derivation to link `node_modules` and run `npm run package`
# will cause a build failure. # will cause a build failure.
vsix = build-deps.override { vsix = build-deps.override {
src = "${src}/editors/code"; src = "${src}/editors/code";
outputs = [ "vsix" "out" ]; outputs = [
"vsix"
"out"
];
inherit releaseTag; inherit releaseTag;
nativeBuildInputs = [ nativeBuildInputs =
jq [
moreutils jq
esbuild moreutils
# Required by `keytar`, which is a dependency of `vsce`. esbuild
pkg-config # Required by `keytar`, which is a dependency of `vsce`.
libsecret pkg-config
] ++ lib.optionals stdenv.isDarwin [ libsecret
darwin.apple_sdk.frameworks.AppKit ]
darwin.apple_sdk.frameworks.Security ++ lib.optionals stdenv.isDarwin [
]; darwin.apple_sdk.frameworks.AppKit
darwin.apple_sdk.frameworks.Security
];
# Follows https://github.com/rust-lang/rust-analyzer/blob/41949748a6123fd6061eb984a47f4fe780525e63/xtask/src/dist.rs#L39-L65 # Follows https://github.com/rust-lang/rust-analyzer/blob/41949748a6123fd6061eb984a47f4fe780525e63/xtask/src/dist.rs#L39-L65
postRebuild = '' postRebuild = ''
@ -65,7 +72,6 @@ let
echo y | npx vsce package -o $vsix/${pname}.zip echo y | npx vsce package -o $vsix/${pname}.zip
''; '';
}; };
in in
vscode-utils.buildVscodeExtension { vscode-utils.buildVscodeExtension {
inherit version vsix; inherit version vsix;
@ -75,7 +81,10 @@ vscode-utils.buildVscodeExtension {
vscodeExtPublisher = publisher; vscodeExtPublisher = publisher;
vscodeExtName = pname; vscodeExtName = pname;
nativeBuildInputs = lib.optionals setDefaultServerPath [ jq moreutils ]; nativeBuildInputs = lib.optionals setDefaultServerPath [
jq
moreutils
];
preInstall = lib.optionalString setDefaultServerPath '' preInstall = lib.optionalString setDefaultServerPath ''
jq '.contributes.configuration.properties."rust-analyzer.server.path".default = $s' \ jq '.contributes.configuration.properties."rust-analyzer.server.path".default = $s' \
@ -86,9 +95,11 @@ vscode-utils.buildVscodeExtension {
meta = { meta = {
description = "An alternative rust language server to the RLS"; description = "An alternative rust language server to the RLS";
homepage = "https://github.com/rust-lang/rust-analyzer"; homepage = "https://github.com/rust-lang/rust-analyzer";
license = [ lib.licenses.mit lib.licenses.asl20 ]; license = [
lib.licenses.mit
lib.licenses.asl20
];
maintainers = [ ]; maintainers = [ ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
}; };
} }

View File

@ -1,6 +1,7 @@
{ lib {
, vscode-utils lib,
, lua-language-server vscode-utils,
lua-language-server,
}: }:
vscode-utils.buildVscodeMarketplaceExtension { vscode-utils.buildVscodeMarketplaceExtension {

View File

@ -1,39 +1,43 @@
# Updates the vscode setting file base on a nix expression # Updates the vscode setting file base on a nix expression
# should run from the workspace root. # should run from the workspace root.
{ writeShellScriptBin {
, lib writeShellScriptBin,
, jq lib,
jq,
}: }:
##User Input ##User Input
{ settings ? {} {
# if marked as true will create an empty json file if does not exist settings ? { },
, createIfDoesNotExists ? true # if marked as true will create an empty json file if does not exist
, vscodeSettingsFile ? ".vscode/settings.json" createIfDoesNotExists ? true,
, userSettingsFolder ? "" vscodeSettingsFile ? ".vscode/settings.json",
, symlinkFromUserSetting ? false userSettingsFolder ? "",
symlinkFromUserSetting ? false,
}: }:
let let
updateVSCodeSettingsCmd = '' updateVSCodeSettingsCmd = ''
( (
echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...'
oldSettings=$(cat ${vscodeSettingsFile}) oldSettings=$(cat ${vscodeSettingsFile})
echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile} echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile}
)''; )'';
createEmptySettingsCmd = ''mkdir -p .vscode && echo "{}" > ${vscodeSettingsFile}''; createEmptySettingsCmd = ''mkdir -p .vscode && echo "{}" > ${vscodeSettingsFile}'';
fileName = builtins.baseNameOf vscodeSettingsFile; fileName = builtins.baseNameOf vscodeSettingsFile;
symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting ''&& mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
'' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
in in
writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}'' writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}'' (
(lib.optionalString (settings != {}) lib.optionalString (settings != { }) (
(if createIfDoesNotExists then '' if createIfDoesNotExists then
[ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd} ''
${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd}
'' ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
else ''[ -f "${vscodeSettingsFile}" ] && ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} ''
'' else
) ''
[ -f "${vscodeSettingsFile}" ] && ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
''
) )
)

View File

@ -1,5 +1,5 @@
with import <nixpkgs>{}; with import <nixpkgs> { };
callPackage (import ./updateSettings.nix) {} { callPackage (import ./updateSettings.nix) { } {
settings = { settings = {
a = "fdsdf"; a = "fdsdf";
}; };

View File

@ -1,5 +1,20 @@
{ pkgs, lib, stdenv, fetchFromGitHub, runCommand, rustPlatform, makeWrapper, llvmPackages {
, buildNpmPackage, cmake, nodejs, unzip, python3, pkg-config, libsecret, darwin pkgs,
lib,
stdenv,
fetchFromGitHub,
runCommand,
rustPlatform,
makeWrapper,
llvmPackages,
buildNpmPackage,
cmake,
nodejs,
unzip,
python3,
pkg-config,
libsecret,
darwin,
}: }:
assert lib.versionAtLeast python3.version "3.5"; assert lib.versionAtLeast python3.version "3.5";
let let
@ -31,9 +46,7 @@ let
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
env = lib.optionalAttrs stdenv.isDarwin { env = lib.optionalAttrs stdenv.isDarwin { NIX_LDFLAGS = "-llldb -lc++abi"; };
NIX_LDFLAGS = "-llldb -lc++abi";
};
buildAndTestSubdir = "adapter"; buildAndTestSubdir = "adapter";
@ -76,12 +89,15 @@ let
pkg-config pkg-config
]; ];
buildInputs = [ buildInputs =
libsecret [ libsecret ]
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ++ lib.optionals stdenv.isDarwin (
Security with darwin.apple_sdk.frameworks;
AppKit [
]); Security
AppKit
]
);
dontNpmBuild = true; dontNpmBuild = true;
@ -103,14 +119,25 @@ let
"/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver" "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver"
else else
"${lldb.out}/bin/lldb-server"; "${lldb.out}/bin/lldb-server";
in
in stdenv.mkDerivation { stdenv.mkDerivation {
pname = "vscode-extension-${publisher}-${pname}"; pname = "vscode-extension-${publisher}-${pname}";
inherit src version vscodeExtUniqueId vscodeExtPublisher vscodeExtName; inherit
src
version
vscodeExtUniqueId
vscodeExtPublisher
vscodeExtName
;
installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}"; installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}";
nativeBuildInputs = [ cmake nodejs unzip makeWrapper ]; nativeBuildInputs = [
cmake
nodejs
unzip
makeWrapper
];
patches = [ ./cmake-build-extension-only.patch ]; patches = [ ./cmake-build-extension-only.patch ];
@ -120,12 +147,14 @@ in stdenv.mkDerivation {
--replace "1.9.2" ${version} --replace "1.9.2" ${version}
''; '';
postConfigure = '' postConfigure =
cp -r ${nodeDeps}/lib/node_modules . ''
'' + lib.optionalString stdenv.isDarwin '' cp -r ${nodeDeps}/lib/node_modules .
export HOME="$TMPDIR/home" ''
mkdir $HOME + lib.optionalString stdenv.isDarwin ''
''; export HOME="$TMPDIR/home"
mkdir $HOME
'';
cmakeFlags = [ cmakeFlags = [
# Do not append timestamp to version. # Do not append timestamp to version.

View File

@ -1,5 +1,9 @@
# Patched lldb for Rust language support. # Patched lldb for Rust language support.
{ fetchFromGitHub, runCommand, llvmPackages }: {
fetchFromGitHub,
runCommand,
llvmPackages,
}:
let let
llvmSrc = fetchFromGitHub { llvmSrc = fetchFromGitHub {
owner = "vadimcn"; owner = "vadimcn";
@ -8,8 +12,9 @@ let
rev = "4c267c83cbb55fedf2e0b89644dc1db320fdfde7"; rev = "4c267c83cbb55fedf2e0b89644dc1db320fdfde7";
hash = "sha256-jM//ej6AxnRYj+8BAn4QrxHPT6HiDzK5RqHPSg3dCcw="; hash = "sha256-jM//ej6AxnRYj+8BAn4QrxHPT6HiDzK5RqHPSg3dCcw=";
}; };
in (llvmPackages.lldb.overrideAttrs (oldAttrs: rec { in
passthru = (oldAttrs.passthru or {}) // { (llvmPackages.lldb.overrideAttrs (oldAttrs: rec {
passthru = (oldAttrs.passthru or { }) // {
inherit llvmSrc; inherit llvmSrc;
}; };
@ -23,7 +28,8 @@ in (llvmPackages.lldb.overrideAttrs (oldAttrs: rec {
echo "'lldb --version' returns: $versionOutput" echo "'lldb --version' returns: $versionOutput"
echo "$versionOutput" | grep -q 'rust-enabled' echo "$versionOutput" | grep -q 'rust-enabled'
''; '';
})).override({ })).override
monorepoSrc = llvmSrc; ({
libllvm = llvmPackages.libllvm.override({ monorepoSrc = llvmSrc; }); monorepoSrc = llvmSrc;
}) libllvm = llvmPackages.libllvm.override ({ monorepoSrc = llvmSrc; });
})

View File

@ -1,77 +1,101 @@
{ stdenv, lib, buildEnv, writeShellScriptBin, fetchurl, vscode, unzip, jq }: {
stdenv,
lib,
buildEnv,
writeShellScriptBin,
fetchurl,
vscode,
unzip,
jq,
}:
let let
buildVscodeExtension = a@{ buildVscodeExtension =
name, a@{
src, name,
# Same as "Unique Identifier" on the extension's web page. src,
# For the moment, only serve as unique extension dir. # Same as "Unique Identifier" on the extension's web page.
vscodeExtPublisher, # For the moment, only serve as unique extension dir.
vscodeExtName, vscodeExtPublisher,
vscodeExtUniqueId, vscodeExtName,
configurePhase ? '' vscodeExtUniqueId,
runHook preConfigure configurePhase ? ''
runHook postConfigure runHook preConfigure
'', runHook postConfigure
buildPhase ?'' '',
runHook preBuild buildPhase ? ''
runHook postBuild runHook preBuild
'', runHook postBuild
dontPatchELF ? true, '',
dontStrip ? true, dontPatchELF ? true,
nativeBuildInputs ? [], dontStrip ? true,
passthru ? { }, nativeBuildInputs ? [ ],
... passthru ? { },
}: ...
stdenv.mkDerivation ((removeAttrs a [ "vscodeExtUniqueId" ]) // { }:
stdenv.mkDerivation (
(removeAttrs a [ "vscodeExtUniqueId" ])
// {
name = "vscode-extension-${name}"; name = "vscode-extension-${name}";
passthru = passthru // { passthru = passthru // {
inherit vscodeExtPublisher vscodeExtName vscodeExtUniqueId; inherit vscodeExtPublisher vscodeExtName vscodeExtUniqueId;
}; };
inherit configurePhase buildPhase dontPatchELF dontStrip; inherit
configurePhase
buildPhase
dontPatchELF
dontStrip
;
# Some .vsix files contain other directories (e.g., `package`) that we don't use. # Some .vsix files contain other directories (e.g., `package`) that we don't use.
# If other directories are present but `sourceRoot` is unset, the unpacker phase fails. # If other directories are present but `sourceRoot` is unset, the unpacker phase fails.
sourceRoot = "extension"; sourceRoot = "extension";
installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}"; installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}";
nativeBuildInputs = [ unzip ] ++ nativeBuildInputs; nativeBuildInputs = [ unzip ] ++ nativeBuildInputs;
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p "$out/$installPrefix" mkdir -p "$out/$installPrefix"
find . -mindepth 1 -maxdepth 1 | xargs -d'\n' mv -t "$out/$installPrefix/" find . -mindepth 1 -maxdepth 1 | xargs -d'\n' mv -t "$out/$installPrefix/"
runHook postInstall runHook postInstall
''; '';
}
);
}); fetchVsixFromVscodeMarketplace =
mktplcExtRef: fetchurl (import ./mktplcExtRefToFetchArgs.nix mktplcExtRef);
fetchVsixFromVscodeMarketplace = mktplcExtRef: buildVscodeMarketplaceExtension =
fetchurl (import ./mktplcExtRefToFetchArgs.nix mktplcExtRef); a@{
name ? "",
buildVscodeMarketplaceExtension = a@{ src ? null,
name ? "", vsix ? null,
src ? null, mktplcRef,
vsix ? null, ...
mktplcRef, }:
... assert "" == name;
}: assert "" == name; assert null == src; assert null == src;
buildVscodeExtension ((removeAttrs a [ "mktplcRef" "vsix" ]) // { buildVscodeExtension (
name = "${mktplcRef.publisher}-${mktplcRef.name}-${mktplcRef.version}"; (removeAttrs a [
version = mktplcRef.version; "mktplcRef"
src = if (vsix != null) "vsix"
then vsix ])
else fetchVsixFromVscodeMarketplace mktplcRef; // {
vscodeExtPublisher = mktplcRef.publisher; name = "${mktplcRef.publisher}-${mktplcRef.name}-${mktplcRef.version}";
vscodeExtName = mktplcRef.name; version = mktplcRef.version;
vscodeExtUniqueId = "${mktplcRef.publisher}.${mktplcRef.name}"; src = if (vsix != null) then vsix else fetchVsixFromVscodeMarketplace mktplcRef;
}); vscodeExtPublisher = mktplcRef.publisher;
vscodeExtName = mktplcRef.name;
vscodeExtUniqueId = "${mktplcRef.publisher}.${mktplcRef.name}";
}
);
mktplcRefAttrList = [ mktplcRefAttrList = [
"name" "name"
@ -82,14 +106,18 @@ let
"arch" "arch"
]; ];
mktplcExtRefToExtDrv = ext: mktplcExtRefToExtDrv =
buildVscodeMarketplaceExtension (removeAttrs ext mktplcRefAttrList // { ext:
mktplcRef = builtins.intersectAttrs (lib.genAttrs mktplcRefAttrList (_: null)) ext; buildVscodeMarketplaceExtension (
}); removeAttrs ext mktplcRefAttrList
// {
mktplcRef = builtins.intersectAttrs (lib.genAttrs mktplcRefAttrList (_: null)) ext;
}
);
extensionFromVscodeMarketplace = mktplcExtRefToExtDrv; extensionFromVscodeMarketplace = mktplcExtRefToExtDrv;
extensionsFromVscodeMarketplace = mktplcExtRefList: extensionsFromVscodeMarketplace =
builtins.map extensionFromVscodeMarketplace mktplcExtRefList; mktplcExtRefList: builtins.map extensionFromVscodeMarketplace mktplcExtRefList;
vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
inherit lib extensionsFromVscodeMarketplace writeShellScriptBin; inherit lib extensionsFromVscodeMarketplace writeShellScriptBin;
@ -102,7 +130,13 @@ let
}; };
vscodeEnv = import ./vscodeEnv.nix { vscodeEnv = import ./vscodeEnv.nix {
inherit lib buildEnv writeShellScriptBin extensionsFromVscodeMarketplace jq; inherit
lib
buildEnv
writeShellScriptBin
extensionsFromVscodeMarketplace
jq
;
vscodeDefault = vscode; vscodeDefault = vscode;
}; };
@ -139,9 +173,16 @@ let
toExtensionJson = extensions: builtins.toJSON (map toExtensionJsonEntry extensions); toExtensionJson = extensions: builtins.toJSON (map toExtensionJsonEntry extensions);
in in
{ {
inherit fetchVsixFromVscodeMarketplace buildVscodeExtension inherit
buildVscodeMarketplaceExtension extensionFromVscodeMarketplace fetchVsixFromVscodeMarketplace
extensionsFromVscodeMarketplace buildVscodeExtension
vscodeWithConfiguration vscodeExts2nix vscodeEnv buildVscodeMarketplaceExtension
toExtensionJsonEntry toExtensionJson; extensionFromVscodeMarketplace
extensionsFromVscodeMarketplace
vscodeWithConfiguration
vscodeExts2nix
vscodeEnv
toExtensionJsonEntry
toExtensionJson
;
} }

View File

@ -1,47 +1,58 @@
#Use vscodeWithConfiguration and vscodeExts2nix to create a vscode executable. When the executable exits, it updates the mutable extension file, which is imported when evaluated by Nix later. #Use vscodeWithConfiguration and vscodeExts2nix to create a vscode executable. When the executable exits, it updates the mutable extension file, which is imported when evaluated by Nix later.
{ lib {
, buildEnv lib,
, writeShellScriptBin buildEnv,
, extensionsFromVscodeMarketplace writeShellScriptBin,
, vscodeDefault extensionsFromVscodeMarketplace,
, jq vscodeDefault,
jq,
}: }:
##User input ##User input
{ vscode ? vscodeDefault {
, nixExtensions ? [] vscode ? vscodeDefault,
, vscodeExtsFolderName ? ".vscode-exts" nixExtensions ? [ ],
# will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file vscodeExtsFolderName ? ".vscode-exts",
, settings ? {} # will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file
, createSettingsIfDoesNotExists ? true settings ? { },
, launch ? {} createSettingsIfDoesNotExists ? true,
, createLaunchIfDoesNotExists ? true launch ? { },
# will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file createLaunchIfDoesNotExists ? true,
, keybindings ? {} # will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file
, createKeybindingsIfDoesNotExists ? true keybindings ? { },
, user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir'' createKeybindingsIfDoesNotExists ? true,
# if file exists will use it and import the extensions in it into this derivation else will use empty extensions list user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir'',
# this file will be created/updated by vscodeExts2nix when vscode exists # if file exists will use it and import the extensions in it into this derivation else will use empty extensions list
, mutableExtensionsFile # this file will be created/updated by vscodeExts2nix when vscode exists
mutableExtensionsFile,
}: }:
let let
mutableExtensionsFilePath = toString mutableExtensionsFile; mutableExtensionsFilePath = toString mutableExtensionsFile;
mutableExtensions = lib.optionals (builtins.pathExists mutableExtensionsFile) (import mutableExtensionsFilePath); mutableExtensions = lib.optionals (builtins.pathExists mutableExtensionsFile) (
vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { import mutableExtensionsFilePath
inherit lib writeShellScriptBin extensionsFromVscodeMarketplace; );
vscodeDefault = vscode; vscodeWithConfiguration =
} import ./vscodeWithConfiguration.nix
{ {
inherit nixExtensions mutableExtensions vscodeExtsFolderName user-data-dir; inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
}; vscodeDefault = vscode;
}
{
inherit
nixExtensions
mutableExtensions
vscodeExtsFolderName
user-data-dir
;
};
updateSettings = import ./updateSettings.nix { inherit lib writeShellScriptBin jq; }; updateSettings = import ./updateSettings.nix { inherit lib writeShellScriptBin jq; };
userSettingsFolder = "${ user-data-dir }/User"; userSettingsFolder = "${user-data-dir}/User";
updateSettingsCmd = updateSettings { updateSettingsCmd = updateSettings {
settings = { settings = {
"extensions.autoCheckUpdates" = false; "extensions.autoCheckUpdates" = false;
"extensions.autoUpdate" = false; "extensions.autoUpdate" = false;
"update.mode" = "none"; "update.mode" = "none";
} // settings; } // settings;
inherit userSettingsFolder; inherit userSettingsFolder;
createIfDoesNotExists = createSettingsIfDoesNotExists; createIfDoesNotExists = createSettingsIfDoesNotExists;
@ -62,14 +73,16 @@ let
symlinkFromUserSetting = (user-data-dir != ""); symlinkFromUserSetting = (user-data-dir != "");
}; };
vscodeExts2nix = import ./vscodeExts2nix.nix { vscodeExts2nix =
inherit lib writeShellScriptBin; import ./vscodeExts2nix.nix
vscodeDefault = vscodeWithConfiguration; {
} inherit lib writeShellScriptBin;
{ vscodeDefault = vscodeWithConfiguration;
extensionsToIgnore = nixExtensions; }
extensions = mutableExtensions; {
}; extensionsToIgnore = nixExtensions;
extensions = mutableExtensions;
};
code = writeShellScriptBin "code" '' code = writeShellScriptBin "code" ''
${updateSettingsCmd}/bin/vscodeNixUpdate-settings ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
${updateLaunchCmd}/bin/vscodeNixUpdate-launch ${updateLaunchCmd}/bin/vscodeNixUpdate-launch
@ -81,5 +94,11 @@ let
in in
buildEnv { buildEnv {
name = "vscodeEnv"; name = "vscodeEnv";
paths = [ code vscodeExts2nix updateSettingsCmd updateLaunchCmd updateKeybindingsCmd ]; paths = [
code
vscodeExts2nix
updateSettingsCmd
updateLaunchCmd
updateKeybindingsCmd
];
} }

View File

@ -1,11 +1,13 @@
with import <nixpkgs>{}; with import <nixpkgs> { };
callPackage (import ./vscodeEnv.nix) { callPackage (import ./vscodeEnv.nix)
extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace; {
vscodeDefault = vscode; extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
} { vscodeDefault = vscode;
mutableExtensionsFile = ./extensions.nix; }
settings = { {
a = "fdsdf"; mutableExtensionsFile = ./extensions.nix;
t = "test"; settings = {
}; a = "fdsdf";
} t = "test";
};
}

View File

@ -1,14 +1,16 @@
# based on the passed vscode will stdout a nix expression with the installed vscode extensions # based on the passed vscode will stdout a nix expression with the installed vscode extensions
{ lib {
, vscodeDefault lib,
, writeShellScriptBin vscodeDefault,
writeShellScriptBin,
}: }:
##User input ##User input
{ vscode ? vscodeDefault {
, extensionsToIgnore ? [] vscode ? vscodeDefault,
# will use those extensions to get sha256 if still exists when executed. extensionsToIgnore ? [ ],
, extensions ? [] # will use those extensions to get sha256 if still exists when executed.
extensions ? [ ],
}: }:
let let
mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix; mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
@ -17,22 +19,32 @@ writeShellScriptBin "vscodeExts2nix" ''
echo '[' echo '['
for line in $(${vscode}/bin/code --list-extensions --show-versions \ for line in $(${vscode}/bin/code --list-extensions --show-versions \
${lib.optionalString (extensionsToIgnore != []) '' ${
| grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : "${e.publisher}.${e.name}") extensionsToIgnore}\)' lib.optionalString (extensionsToIgnore != [ ]) ''
''} | grep -v -i '^\(${
lib.concatMapStringsSep "\\|" (e: "${e.publisher}.${e.name}") extensionsToIgnore
}\)'
''
}
) ; do ) ; do
[[ $line =~ ([^.]*)\.([^@]*)@(.*) ]] [[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
name=''${BASH_REMATCH[2]} name=''${BASH_REMATCH[2]}
publisher=''${BASH_REMATCH[1]} publisher=''${BASH_REMATCH[1]}
version=''${BASH_REMATCH[3]} version=''${BASH_REMATCH[3]}
extensions="${lib.concatMapStringsSep "." (e : "${e.publisher}${e.name}@${e.sha256}") extensions}" extensions="${lib.concatMapStringsSep "." (e: "${e.publisher}${e.name}@${e.sha256}") extensions}"
reCurrentExt=$publisher$name"@([^.]*)" reCurrentExt=$publisher$name"@([^.]*)"
if [[ $extensions =~ $reCurrentExt ]]; then if [[ $extensions =~ $reCurrentExt ]]; then
sha256=''${BASH_REMATCH[1]} sha256=''${BASH_REMATCH[1]}
else else
sha256=$( sha256=$(
nix-prefetch-url "${(mktplcExtRefToFetchArgs {publisher = ''"$publisher"''; name = ''"$name"''; version = ''"$version"'';}).url}" 2> /dev/null nix-prefetch-url "${
(mktplcExtRefToFetchArgs {
publisher = ''"$publisher"'';
name = ''"$name"'';
version = ''"$version"'';
}).url
}" 2> /dev/null
) )
fi fi

View File

@ -1,54 +1,61 @@
# wrapper over vscode to control extensions per project (extensions folder will be created in execution path) # wrapper over vscode to control extensions per project (extensions folder will be created in execution path)
{ lib {
, writeShellScriptBin lib,
, extensionsFromVscodeMarketplace writeShellScriptBin,
, vscodeDefault extensionsFromVscodeMarketplace,
vscodeDefault,
}: }:
## User input ## User input
{ vscode ? vscodeDefault {
# extensions to be symlinked into the project's extensions folder vscode ? vscodeDefault,
, nixExtensions ? [] # extensions to be symlinked into the project's extensions folder
# extensions to be copied into the project's extensions folder nixExtensions ? [ ],
, mutableExtensions ? [] # extensions to be copied into the project's extensions folder
, vscodeExtsFolderName ? ".vscode-exts" mutableExtensions ? [ ],
, user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"'' vscodeExtsFolderName ? ".vscode-exts",
user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"'',
}: }:
let let
nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions; nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions; mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions;
mutableExtsPaths = lib.forEach mutExtsDrvs ( e: mutableExtsPaths = lib.forEach mutExtsDrvs (e: {
{
origin = "${e}/share/vscode/extensions/${e.vscodeExtUniqueId}"; origin = "${e}/share/vscode/extensions/${e.vscodeExtUniqueId}";
target = ''${vscodeExtsFolderName}/${e.vscodeExtUniqueId}-${(lib.findSingle (ext: "${ext.publisher}.${ext.name}" == e.vscodeExtUniqueId) "" "m" mutableExtensions ).version}''; target = ''${vscodeExtsFolderName}/${e.vscodeExtUniqueId}-${
} (lib.findSingle (
); ext: "${ext.publisher}.${ext.name}" == e.vscodeExtUniqueId
) "" "m" mutableExtensions).version
}'';
});
#removed not defined extensions #removed not defined extensions
rmExtensions = lib.optionalString (nixExtensions++mutableExtensions != []) '' rmExtensions = lib.optionalString (nixExtensions ++ mutableExtensions != [ ]) ''
find ${vscodeExtsFolderName} -mindepth 1 -maxdepth 1 ${ find ${vscodeExtsFolderName} -mindepth 1 -maxdepth 1 ${
lib.concatMapStringsSep " " (e : "! -iname ${e.publisher}.${e.name} ") nixExtensions lib.concatMapStringsSep " " (e: "! -iname ${e.publisher}.${e.name} ") nixExtensions
+ + lib.concatMapStringsSep " " (
lib.concatMapStringsSep " " (e : "! -iname ${e.publisher}.${e.name}-${e.version} ") mutableExtensions e: "! -iname ${e.publisher}.${e.name}-${e.version} "
} -exec rm -rf {} \; ) mutableExtensions
} -exec rm -rf {} \;
''; '';
#copy mutable extension out of the nix store #copy mutable extension out of the nix store
cpExtensions = '' cpExtensions = ''
${lib.concatMapStringsSep "\n" (e : "ln -sfn ${e}/share/vscode/extensions/* ${vscodeExtsFolderName}/") nixExtsDrvs} ${lib.concatMapStringsSep "\n" (
${lib.concatMapStringsSep "\n" (ePath : '' e: "ln -sfn ${e}/share/vscode/extensions/* ${vscodeExtsFolderName}/"
) nixExtsDrvs}
${lib.concatMapStringsSep "\n" (ePath: ''
if [ ! -d ${ePath.target} ]; then if [ ! -d ${ePath.target} ]; then
cp -a ${ePath.origin} ${ePath.target} cp -a ${ePath.origin} ${ePath.target}
chmod -R u+rwx ${ePath.target} chmod -R u+rwx ${ePath.target}
fi fi
'') mutableExtsPaths} '') mutableExtsPaths}
''; '';
in in
writeShellScriptBin "code" '' writeShellScriptBin "code" ''
if ! [[ "$@" =~ "--list-extension" ]]; then if ! [[ "$@" =~ "--list-extension" ]]; then
mkdir -p "${vscodeExtsFolderName}" mkdir -p "${vscodeExtsFolderName}"
${rmExtensions} ${rmExtensions}
${cpExtensions} ${cpExtensions}
fi fi
${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${ ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${
lib.optionalString (user-data-dir != "") "--user-data-dir ${user-data-dir}" lib.optionalString (user-data-dir != "") "--user-data-dir ${user-data-dir}"
} "$@" } "$@"
'' ''

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gum"; pname = "gum";
version = "0.13.0"; version = "0.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "charmbracelet"; owner = "charmbracelet";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-NgMEgSfHVLCEKZ3MmNV571ySMUD8wj+kq5EccGrxtZc="; hash = "sha256-TpLaZ/935S57K60NdgJXVY+YQEedralZMoQHWRgkH+A=";
}; };
vendorHash = "sha256-fmc6nbS/Xmn/YRwToRH7EhP4SFRMf8hjZ/rLtaP/USo="; vendorHash = "sha256-UgpOHZ/CEnGsmUTyNrhh+qDmKEplr18b/OrO2qcIhF4=";
nativeBuildInputs = [ nativeBuildInputs = [
installShellFiles installShellFiles

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kn"; pname = "kn";
version = "1.13.0"; version = "1.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "knative"; owner = "knative";
repo = "client"; repo = "client";
rev = "knative-v${version}"; rev = "knative-v${version}";
sha256 = "sha256-irMipYDYMyA0l9d7tI1wS7XsxGWjBzTvxmhpKM1gLW8="; sha256 = "sha256-sUMQrBAOhpMxMawOdvLFSUrcU9od6pmT7NabSywoQn8=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "temporal"; pname = "temporal";
version = "1.23.0"; version = "1.23.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "temporalio"; owner = "temporalio";
repo = "temporal"; repo = "temporal";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4e8z4k7loL9vVYe5jut1X/5qDboChQxZtPO1ZBHNb7o="; hash = "sha256-yu5EfW5ThTJx6ouCBoEEq9wU4MtlFGqqRaHMgIPaRqY=";
}; };
vendorHash = "sha256-4xwdVFE0CGcOA8Efj4ECionPP9rbzT02zyr2HR143AM="; vendorHash = "sha256-INmc/qbayjI+umkoGL8ih/iC7xqUkO1kfIZN5cQn/bw=";
excludedPackages = [ "./build" ]; excludedPackages = [ "./build" ];

View File

@ -2,7 +2,7 @@
callPackage ./generic.nix { } rec { callPackage ./generic.nix { } rec {
pname = "signal-desktop-beta"; pname = "signal-desktop-beta";
dir = "Signal Beta"; dir = "Signal Beta";
version = "7.6.0-beta.3"; version = "7.7.0-beta.1";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
hash = "sha256-BbXogNB2BxFQTpvHw0JVOaCV2PQHEQbafSavVcBd/Fg="; hash = "sha256-oswS1aRkpiTNSpQ6CqfJnoM412RRwraeht4iqq8L1Bk=";
} }

View File

@ -25,15 +25,15 @@
, xorg , xorg
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "whatsapp-for-linux"; pname = "whatsapp-for-linux";
version = "1.6.4"; version = "1.6.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "eneshecan"; owner = "eneshecan";
repo = pname; repo = "whatsapp-for-linux";
rev = "v${version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-DU9tvIvDfOtBydR68yeRMFYdMjiBrOobCDXIZMmm7pQ="; hash = "sha256-DU9tvIvDfOtBydR68yeRMFYdMjiBrOobCDXIZMmm7pQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -68,12 +68,12 @@ stdenv.mkDerivation rec {
xorg.libXtst xorg.libXtst
]; ];
meta = with lib; { meta = {
homepage = "https://github.com/eneshecan/whatsapp-for-linux"; homepage = "https://github.com/eneshecan/whatsapp-for-linux";
description = "Whatsapp desktop messaging app"; description = "Whatsapp desktop messaging app";
mainProgram = "whatsapp-for-linux"; mainProgram = "whatsapp-for-linux";
license = licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with maintainers; [ bartuka ]; maintainers = with lib.maintainers; [ bartuka ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} })

View File

@ -5,14 +5,14 @@
let let
description = "Desktop sharing application, providing remote support and online meetings"; description = "Desktop sharing application, providing remote support and online meetings";
in stdenv.mkDerivation rec { in stdenv.mkDerivation (finalAttrs: {
pname = "anydesk"; pname = "anydesk";
version = "6.3.2"; version = "6.3.2";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"https://download.anydesk.com/linux/anydesk-${version}-amd64.tar.gz" "https://download.anydesk.com/linux/anydesk-${finalAttrs.version}-amd64.tar.gz"
"https://download.anydesk.com/linux/generic-linux/anydesk-${version}-amd64.tar.gz" "https://download.anydesk.com/linux/generic-linux/anydesk-${finalAttrs.version}-amd64.tar.gz"
]; ];
hash = "sha256-nSY4qHRsEvQk4M3JDHalAk3C6Y21WlfDQ2Gpp6/jjMs="; hash = "sha256-nSY4qHRsEvQk4M3JDHalAk3C6Y21WlfDQ2Gpp6/jjMs=";
}; };
@ -54,7 +54,7 @@ in stdenv.mkDerivation rec {
postFixup = '' postFixup = ''
patchelf \ patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--set-rpath "${lib.makeLibraryPath buildInputs}" \ --set-rpath "${lib.makeLibraryPath finalAttrs.buildInputs}" \
$out/bin/anydesk $out/bin/anydesk
# pangox is not actually necessary (it was only added as a part of gtkglext) # pangox is not actually necessary (it was only added as a part of gtkglext)
@ -77,12 +77,12 @@ in stdenv.mkDerivation rec {
}; };
}; };
meta = with lib; { meta = {
inherit description; inherit description;
homepage = "https://www.anydesk.com"; homepage = "https://www.anydesk.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ shyim cheriimoya ]; maintainers = with lib.maintainers; [ shyim cheriimoya ];
}; };
} })

View File

@ -5,12 +5,12 @@
}: }:
let let
version = "6.7.5"; version = "6.7.6";
pname = "timeular"; pname = "timeular";
src = fetchurl { src = fetchurl {
url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage"; url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
hash = "sha256-b/I34f8fGgPr4+fZJ+2cb+Xi/AvotxNHYg7IaLTByPk="; hash = "sha256-wQUR2jLJi1peXqXJJj/72X9xNaD2DzNiB0mGFiaEWBE=";
}; };
appimageContents = appimageTools.extractType2 { appimageContents = appimageTools.extractType2 {

View File

@ -2,10 +2,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "igv"; pname = "igv";
version = "2.17.3"; version = "2.17.4";
src = fetchzip { src = fetchzip {
url = "https://data.broadinstitute.org/igv/projects/downloads/${lib.versions.majorMinor version}/IGV_${version}.zip"; url = "https://data.broadinstitute.org/igv/projects/downloads/${lib.versions.majorMinor version}/IGV_${version}.zip";
sha256 = "sha256-SGqkWBv4nol0+lnGN7wBHJvndcIqZ5+Wt1wAcXA42cU="; sha256 = "sha256-LF/rwm/XlLHAJjiAlQVTmx5l+5Np2b5rPjoCdN/qERU=";
}; };
installPhase = '' installPhase = ''

View File

@ -77,6 +77,7 @@ let
mpv-cheatsheet = callPackage ./mpv-cheatsheet.nix { }; mpv-cheatsheet = callPackage ./mpv-cheatsheet.nix { };
mpv-osc-modern = callPackage ./mpv-osc-modern.nix { }; mpv-osc-modern = callPackage ./mpv-osc-modern.nix { };
mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { }; mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { };
mpv-slicing = callPackage ./mpv-slicing.nix { };
mpv-webm = callPackage ./mpv-webm.nix { }; mpv-webm = callPackage ./mpv-webm.nix { };
mpvacious = callPackage ./mpvacious.nix { }; mpvacious = callPackage ./mpvacious.nix { };
quack = callPackage ./quack.nix { }; quack = callPackage ./quack.nix { };
@ -88,6 +89,7 @@ let
thumbfast = callPackage ./thumbfast.nix { }; thumbfast = callPackage ./thumbfast.nix { };
thumbnail = callPackage ./thumbnail.nix { }; thumbnail = callPackage ./thumbnail.nix { };
uosc = callPackage ./uosc.nix { }; uosc = callPackage ./uosc.nix { };
videoclip = callPackage ./videoclip.nix { };
visualizer = callPackage ./visualizer.nix { }; visualizer = callPackage ./visualizer.nix { };
vr-reversal = callPackage ./vr-reversal.nix { }; vr-reversal = callPackage ./vr-reversal.nix { };
webtorrent-mpv-hook = callPackage ./webtorrent-mpv-hook.nix { }; webtorrent-mpv-hook = callPackage ./webtorrent-mpv-hook.nix { };

View File

@ -0,0 +1,32 @@
{
lib,
buildLua,
fetchFromGitHub,
ffmpeg,
}:
buildLua {
pname = "mpv-slicing";
version = "0-unstable-2017-11-25";
src = fetchFromGitHub {
owner = "Kagami";
repo = "mpv_slicing";
rev = "d09c11227704c8d5bdaa2c799ef64dce881c63a7";
hash = "sha256-MKoM0f74/XoctiHQVOB3LzFWtJXpsREfQh5icaebCJo=";
};
postPatch = ''
substituteInPlace slicing.lua \
--replace-fail ffmpeg ${lib.getExe ffmpeg}
'';
passthru.scriptName = "slicing.lua";
meta = {
description = "A lua script to cut fragments of the video in uncompressed RGB format";
homepage = "https://github.com/Kagami/mpv_slicing";
license = lib.licenses.cc0;
maintainers = with lib.maintainers; [ tomasajt ];
};
}

View File

@ -0,0 +1,40 @@
{ lib
, fetchFromGitHub
, curl
, xclip
, wl-clipboard
, stdenv
, buildLua
, unstableGitUpdater
}:
buildLua {
pname = "videoclip";
version = "0-unstable-2024-03-08";
src = fetchFromGitHub {
owner = "Ajatt-Tools";
repo = "videoclip";
rev = "0e3f2245b03e888c14c093a50261e0f54ecdf8e8";
hash = "sha256-Sg6LHU9OVmVx3cTs8Y0WL8wACb5BlVyeBRccoX+7BXY=";
};
patchPhase = ''
substituteInPlace platform.lua \
--replace \'curl\' \'${lib.getExe curl}\' \
'' + lib.optionalString stdenv.isLinux ''
--replace xclip ${lib.getExe xclip} \
--replace wl-copy ${lib.getExe' wl-clipboard "wl-copy"}
'';
scriptPath = ".";
passthru.scriptName = "videoclip";
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "Easily create videoclips with mpv";
homepage = "https://github.com/Ajatt-Tools/videoclip";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ BatteredBunny ];
};
}

View File

@ -14,12 +14,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "vdr-softhddevice"; pname = "vdr-softhddevice";
version = "2.1.2"; version = "2.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ua0lnj"; owner = "ua0lnj";
repo = "vdr-plugin-softhddevice"; repo = "vdr-plugin-softhddevice";
sha256 = "sha256-y6b0nOf597uxS9zDh0NQOwLN81nk4U7lHK2CalyVi8s="; sha256 = "sha256-1yCDNfUdQLgJ0WWyx0q3Hi0yxb6zxaK7wMzLD9jXweI=";
rev = "v${version}"; rev = "v${version}";
}; };

View File

@ -2,12 +2,12 @@
let let
pname = "anytype"; pname = "anytype";
version = "0.40.2"; version = "0.40.8";
name = "Anytype-${version}"; name = "Anytype-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage"; url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
name = "Anytype-${version}.AppImage"; name = "Anytype-${version}.AppImage";
hash = "sha256-RO8rYH0wHPxwey1ICAVK1jURs7b+oxLXRlychgi6c1c="; hash = "sha256-Rvl52nKrOWQfT2qgssEpFjQCjva54zPvm6aEXmO0NTc=";
}; };
appimageContents = appimageTools.extractType2 { inherit name src; }; appimageContents = appimageTools.extractType2 { inherit name src; };
in appimageTools.wrapType2 { in appimageTools.wrapType2 {

View File

@ -7,13 +7,13 @@
buildGoModule rec { buildGoModule rec {
pname = "dmarc-report-converter"; pname = "dmarc-report-converter";
version = "0.7.1"; version = "0.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tierpod"; owner = "tierpod";
repo = "dmarc-report-converter"; repo = "dmarc-report-converter";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-cP96tiBpMFNEHuIF0sovi+Q4yW8wMUqr138RyMOFoho="; hash = "sha256-93sNEBV7MxZr6tqPaFKgY0KA1J3W0HoCiIDZg268Smc=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -11,11 +11,11 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "gpt4all"; pname = "gpt4all";
version = "2.7.3"; version = "2.7.4";
src = fetchFromGitHub { src = fetchFromGitHub {
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-hIfeADP3tiooGZr/OMVFIkOAniMWXj9AsVzMPlVbucE="; hash = "sha256-G22d2Q6z7DmPHM/DEE7iyJ8SWRZdoVdSWw+gnPVHdEg=";
owner = "nomic-ai"; owner = "nomic-ai";
repo = "gpt4all"; repo = "gpt4all";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
@ -23,11 +23,6 @@ stdenv.mkDerivation (finalAttrs: {
sourceRoot = "${finalAttrs.src.name}/gpt4all-chat"; sourceRoot = "${finalAttrs.src.name}/gpt4all-chat";
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'set(CMAKE_INSTALL_PREFIX ''${CMAKE_BINARY_DIR}/install)' ""
'';
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
qt6.wrapQtAppsHook qt6.wrapQtAppsHook

View File

@ -7,20 +7,20 @@
let let
pname = "hoppscotch"; pname = "hoppscotch";
version = "24.3.1-2"; version = "24.3.2-1";
src = fetchurl { src = fetchurl {
aarch64-darwin = { aarch64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-F4vQwdNObIE8Fx75TfwI0QxbY5n2syT4sEIhgAu2Z5c="; hash = "sha256-/Sa51x/Hy4mOxNL+6r+5sk/cF4iBbup9UBaWqzsnrBM=";
}; };
x86_64-darwin = { x86_64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg";
hash = "sha256-itC6PdNdzcw5Lv/hQkT0AsTGQ8kmTwT6cipyaAynph8="; hash = "sha256-6vm3pQPg5OKRtP6W1CNQxy4fi9niw4Y4nXjargwHxuA=";
}; };
x86_64-linux = { x86_64-linux = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage"; url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage";
hash = "sha256-vj9UYizRmyIK9mLNSW/qFc/QmnWNhniqJf3gG66WPb0="; hash = "sha256-iGD/9alVwSsIhbSl9HZXdB5MQNSjn18YdgebyoizriE=";
}; };
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");

View File

@ -18,14 +18,14 @@
nixosTests, nixosTests,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "keydb"; pname = "keydb";
version = "6.3.4"; version = "6.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "snapchat"; owner = "snapchat";
repo = "keydb"; repo = "keydb";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-j6qgK6P3Fv+b6k9jwKQ5zW7XLkKbXXcmHKBCQYvwEIU="; hash = "sha256-j6qgK6P3Fv+b6k9jwKQ5zW7XLkKbXXcmHKBCQYvwEIU=";
}; };
@ -94,13 +94,13 @@ stdenv.mkDerivation rec {
passthru.tests.redis = nixosTests.redis; passthru.tests.redis = nixosTests.redis;
passthru.serverBin = "keydb-server"; passthru.serverBin = "keydb-server";
meta = with lib; { meta = {
homepage = "https://keydb.dev"; homepage = "https://keydb.dev";
description = "A Multithreaded Fork of Redis"; description = "A Multithreaded Fork of Redis";
license = licenses.bsd3; license = lib.licenses.bsd3;
platforms = platforms.all; platforms = lib.platforms.all;
changelog = "https://github.com/Snapchat/KeyDB/raw/v${version}/00-RELEASENOTES"; changelog = "https://github.com/Snapchat/KeyDB/raw/v${finalAttrs.version}/00-RELEASENOTES";
maintainers = teams.helsinki-systems.members; maintainers = lib.teams.helsinki-systems.members;
mainProgram = "keydb-cli"; mainProgram = "keydb-cli";
}; };
} })

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kor"; pname = "kor";
version = "0.3.7"; version = "0.3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yonahd"; owner = "yonahd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-wjq4IkF3agmculIH+WfBAGd0ciJBX9aj4EsmUvje9Aw="; hash = "sha256-4lXLmh8BP7h6k8Tt/oklvv7fmDvmdKQP0P7gaCM2TK0=";
}; };
vendorHash = "sha256-UN3Zf8eo6kMNNzkGsnqyDVMgE2QXRn4wg+XULu/uBGE="; vendorHash = "sha256-ScV12Xb+tVluXC2Jat44atkKXZIzIcUdZ+lyD1Y3dIM=";
preCheck = '' preCheck = ''
HOME=$(mktemp -d) HOME=$(mktemp -d)

View File

@ -8,15 +8,17 @@
, zug , zug
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "lager"; pname = "lager";
version = "0.1.0"; version = "0.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "arximboldi"; owner = "arximboldi";
repo = "lager"; repo = "lager";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-KTHrVV/186l4klwlcfDwFsKVoOVqWCUPzHnIbWuatbg="; hash = "sha256-KTHrVV/186l4klwlcfDwFsKVoOVqWCUPzHnIbWuatbg=";
}; };
buildInputs = [ buildInputs = [
boost boost
immer immer
@ -28,10 +30,11 @@ stdenv.mkDerivation rec {
cmakeFlags = [ cmakeFlags = [
"-Dlager_BUILD_EXAMPLES=OFF" "-Dlager_BUILD_EXAMPLES=OFF"
]; ];
meta = with lib; {
homepage = "https://github.com/arximboldi/lager"; meta = {
homepage = "https://github.com/arximboldi/lager";
description = "C++ library for value-oriented design using the unidirectional data-flow architecture Redux for C++"; description = "C++ library for value-oriented design using the unidirectional data-flow architecture Redux for C++";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ nek0 ]; maintainers = with lib.maintainers; [ nek0 ];
}; };
} })

View File

@ -10,7 +10,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "live555"; pname = "live555";
version = "2024.04.14"; version = "2024.04.19";
src = fetchurl { src = fetchurl {
urls = [ urls = [
@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
"https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz" "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
"mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz" "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
]; ];
hash = "sha256-mR5rKGKtTwMq3p+xAAGdo0DNNnIe4KHladLPlnhVhNY="; hash = "sha256-5sLr/sZ3LB83CEJx5OUjarx/Dh/ESJ+YaXY0QCAN3MI=";
}; };
patches = [ patches = [
@ -54,8 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
config.linux config.linux
'' ''
# condition from icu/base.nix # condition from icu/base.nix
+ lib.optionalString (stdenv.hostPlatform.libc == "glibc" + lib.optionalString (lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" ]) ''
|| stdenv.hostPlatform.libc == "musl") ''
substituteInPlace liveMedia/include/Locale.hh \ substituteInPlace liveMedia/include/Locale.hh \
--replace '<xlocale.h>' '<locale.h>' --replace '<xlocale.h>' '<locale.h>'
''; '';

View File

@ -6,11 +6,11 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "lunar-client"; pname = "lunar-client";
version = "3.2.5"; version = "3.2.6";
src = fetchurl { src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage"; url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
hash = "sha512-flve07l13w4aRPPMhbf1Nbaxy6i1ljxx2J/9vg4WLQK4k09PVJKGn6b8nxe5d90LCYMhwEHfEvrHFB/tNFKJ9w=="; hash = "sha512-JZ6fXUDurLxe6acRRXTHot2GTUqMaSwy7N5K4cmFmOn4s8W2aXek+o8med3ytaxoTd6FmibXmCxrjnOVMHBRGA==";
}; };
extraInstallCommands = extraInstallCommands =

View File

@ -7,18 +7,18 @@
let let
pname = "pinact"; pname = "pinact";
version = "0.1.2"; version = "0.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "suzuki-shunsuke"; owner = "suzuki-shunsuke";
repo = "pinact"; repo = "pinact";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-OQo21RHk0c+eARKrA2qB4NAWWanb94DOZm4b9lqDz8o="; hash = "sha256-ifUnF7u4/vMy89xb7sk4tPKQYdFBYAIHc0GYVBMWvWM=";
}; };
in in
buildGoModule { buildGoModule {
inherit pname version src; inherit pname version src;
vendorHash = "sha256-g7rdIE+w/pn70i8fOmAo/QGjpla3AUWm7a9MOhNmrgE="; vendorHash = "sha256-ht4eV62w9AWKYahrd83LmBI+Tu2Q64YA3t90N4BR1e4=";
doCheck = true; doCheck = true;

View File

@ -7,7 +7,7 @@
testers, testers,
}: }:
bundlerApp { (bundlerApp {
pname = "bolt"; pname = "bolt";
gemdir = ./.; gemdir = ./.;
@ -42,4 +42,6 @@ bundlerApp {
maintainers = with lib.maintainers; [ uvnikita anthonyroussel ]; maintainers = with lib.maintainers; [ uvnikita anthonyroussel ];
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
}; };
} }).overrideAttrs (old: {
name = "puppet-bolt-${(import ./gemset.nix).bolt.version}";
})

View File

@ -1,24 +1,39 @@
{ lib, stdenv, fetchurl, bison, mpi, flex, zlib}: {
lib,
stdenv,
fetchFromGitLab,
bison,
mpi,
flex,
zlib,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
version = "6.1.1";
pname = "scotch"; pname = "scotch";
src_name = "scotch_${version}"; version = "6.1.1";
buildInputs = [ bison mpi flex zlib ]; buildInputs = [
bison
mpi
flex
zlib
];
src = fetchurl { src = fetchFromGitLab {
url = "https://gforge.inria.fr/frs/download.php/file/34618/${src_name}.tar.gz"; domain = "gitlab.inria.fr";
sha256 = "sha256-OQUvWf9HSkppzvwlzzyvhClACIneugEO5kA8oYj4sxE="; owner = "scotch";
repo = "scotch";
rev = "v${finalAttrs.version}";
hash = "sha256-GUV6s+P56OAJq9AMe+LZOMPICQO/RuIi+hJAecmO5Wc=";
}; };
sourceRoot = "${src_name}/src";
preConfigure = '' preConfigure = ''
cd src
ln -s Make.inc/Makefile.inc.x86-64_pc_linux2 Makefile.inc ln -s Make.inc/Makefile.inc.x86-64_pc_linux2 Makefile.inc
''; '';
buildFlags = [ "scotch ptscotch" ]; buildFlags = [ "scotch ptscotch" ];
installFlags = [ "prefix=\${out}" ]; installFlags = [ "prefix=\${out}" ];
meta = { meta = {
@ -32,5 +47,4 @@ stdenv.mkDerivation rec {
maintainers = [ lib.maintainers.bzizou ]; maintainers = [ lib.maintainers.bzizou ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
}; };
} })

View File

@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "shell-gpt";
version = "1.4.3";
pyproject = true;
src = fetchFromGitHub {
owner = "TheR1D";
repo = "shell_gpt";
rev = "refs/tags/${version}";
hash = "sha256-T37L4U1kOrrIQJ2znq2UupD3pyit9xd8rAsEwUvGiQ8=";
};
pythonRelaxDeps = [
"requests"
"rich"
"distro"
"typer"
"instructor"
];
build-system = with python3.pkgs; [ hatchling ];
nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
propagatedBuildInputs = with python3.pkgs; [
click
distro
instructor
openai
rich
typer
];
# Tests want to read the OpenAI API key from stdin
doCheck = false;
meta = with lib; {
description = "Access ChatGPT from your terminal";
homepage = "https://github.com/TheR1D/shell_gpt";
changelog = "https://github.com/TheR1D/shell_gpt/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ mglolenstine ];
mainProgram = "sgpt";
};
}

View File

@ -6,11 +6,11 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "silverbullet"; pname = "silverbullet";
version = "0.7.6"; version = "0.7.7";
src = fetchurl { src = fetchurl {
url = "https://github.com/silverbulletmd/silverbullet/releases/download/${finalAttrs.version}/silverbullet.js"; url = "https://github.com/silverbulletmd/silverbullet/releases/download/${finalAttrs.version}/silverbullet.js";
hash = "sha256-bnD9iZVRIg6otgDi4yNWySqmJsJJIVnjFGsTrGCMw/o="; hash = "sha256-EhHPysliRi1bv/skS4+ljQW6qFsijmSup1+7/fVfFdg=";
}; };
dontUnpack = true; dontUnpack = true;

View File

@ -59,14 +59,14 @@ let
]; ];
py = python3.withPackages python-deps; py = python3.withPackages python-deps;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "syslog-ng"; pname = "syslog-ng";
version = "4.7.1"; version = "4.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "syslog-ng"; owner = "syslog-ng";
repo = "syslog-ng"; repo = "syslog-ng";
rev = "syslog-ng-${version}"; rev = "syslog-ng-${finalAttrs.version}";
hash = "sha256-runFMUxQv7B023I38QfGqn89ZbzA5vMXHOOkYwMxArI="; hash = "sha256-runFMUxQv7B023I38QfGqn89ZbzA5vMXHOOkYwMxArI=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -117,11 +117,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = with lib; { meta = {
homepage = "https://www.syslog-ng.com"; homepage = "https://www.syslog-ng.com";
description = "Next-generation syslogd with advanced networking and filtering capabilities"; description = "Next-generation syslogd with advanced networking and filtering capabilities";
license = with licenses; [ gpl2Plus lgpl21Plus ]; license = with lib.licenses; [ gpl2Plus lgpl21Plus ];
maintainers = with maintainers; [ vifino ]; maintainers = with lib.maintainers; [ vifino ];
platforms = platforms.linux; platforms = lib.platforms.linux;
}; };
} })

View File

@ -27,11 +27,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "unciv"; pname = "unciv";
version = "4.11.8"; version = "4.11.9";
src = fetchurl { src = fetchurl {
url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar"; url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
hash = "sha256-iNcz6kfzlr1f1kC6xo1htyT46JjgEMeo21JIfOBxeQw="; hash = "sha256-fAosJmEAQGA1QAyabcmqwuDeqUM+t3mNIfSOrAwc5hg=";
}; };
dontUnpack = true; dontUnpack = true;

View File

@ -2,12 +2,12 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "cascadia-code"; pname = "cascadia-code";
version = "2111.01"; version = "2404.23";
src = fetchzip { src = fetchzip {
url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip"; url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
stripRoot = false; stripRoot = false;
hash = "sha256-v9Vm5X80wEvorMhIlRw3MnyuSOdBpTl9ibBPpmm1vig="; hash = "sha256-Z2AzBeNiM6mc1OHCJRv0rUvH8WRygyQGSOvwbAISYHE=";
}; };
installPhase = '' installPhase = ''
@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
homepage = "https://github.com/microsoft/cascadia-code"; homepage = "https://github.com/microsoft/cascadia-code";
changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt"; changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt";
license = licenses.ofl; license = licenses.ofl;
maintainers = [ ]; maintainers = with maintainers; [ ryanccn ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -274,7 +274,7 @@ in stdenv.mkDerivation (finalAttrs: {
# Platforms with host tools from # Platforms with host tools from
# https://doc.rust-lang.org/nightly/rustc/platform-support.html # https://doc.rust-lang.org/nightly/rustc/platform-support.html
"x86_64-darwin" "i686-darwin" "aarch64-darwin" "x86_64-darwin" "i686-darwin" "aarch64-darwin"
"i686-freebsd13" "x86_64-freebsd13" "i686-freebsd" "x86_64-freebsd"
"x86_64-solaris" "x86_64-solaris"
"aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux" "aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux"
"loongarch64-linux" "powerpc64-linux" "powerpc64le-linux" "loongarch64-linux" "powerpc64-linux" "powerpc64le-linux"

View File

@ -19,12 +19,12 @@
let let
versionMap = { versionMap = {
"2.4.2" = {
sha256 = "sha256-/APLUtEqr+h1nmMoRQogG73fibFwcaToPznoC0Pd7w8=";
};
"2.4.3" = { "2.4.3" = {
sha256 = "sha256-icmq35K4KtPHSj1PFYoDiJPeoOTzlNyvyWNYPDC3w/I="; sha256 = "sha256-icmq35K4KtPHSj1PFYoDiJPeoOTzlNyvyWNYPDC3w/I=";
}; };
"2.4.4" = {
sha256 = "sha256-ipMmJ7Px2OlhjxzcIl7csAJFaARpfiyH0UBoN2ShBtU=";
};
}; };
# Collection of pre-built SBCL binaries for platforms that need them for # Collection of pre-built SBCL binaries for platforms that need them for
# bootstrapping. Ideally these are to be avoided. If ECL (or any other # bootstrapping. Ideally these are to be avoided. If ECL (or any other

View File

@ -65,6 +65,6 @@ useStdenv.mkDerivation {
homepage = "https://codeberg.org/ngn/k"; homepage = "https://codeberg.org/ngn/k";
license = lib.licenses.agpl3Only; license = lib.licenses.agpl3Only;
maintainers = [ lib.maintainers.sternenseemann ]; maintainers = [ lib.maintainers.sternenseemann ];
platforms = [ "x86_64-linux" "x86_64-freebsd13" ]; platforms = [ "x86_64-linux" "x86_64-freebsd" ];
}; };
} }

View File

@ -98,6 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
# fails with Out of Memory Error # fails with Out of Memory Error
"test/sql/copy/parquet/batched_write/batch_memory_usage.test" "test/sql/copy/parquet/batched_write/batch_memory_usage.test"
# wants http connection # wants http connection
"test/sql/copy/csv/recursive_query_csv.test"
"test/sql/copy/csv/test_mixed_lines.test" "test/sql/copy/csv/test_mixed_lines.test"
] ++ lib.optionals stdenv.isAarch64 [ ] ++ lib.optionals stdenv.isAarch64 [
"test/sql/aggregate/aggregates/test_kurtosis.test" "test/sql/aggregate/aggregates/test_kurtosis.test"

View File

@ -1,5 +1,5 @@
{ {
"version": "0.10.1", "version": "0.10.2",
"rev": "4a89d97db8a5a23a15f3025c8d2d2885337c2637", "rev": "1601d94f94a7e0d2eb805a94803eb1e3afbbe4ed",
"hash": "sha256-/j/DaUzsfACI5Izr4lblkYmIEmKsOXr760UTwC0l/qg=" "hash": "sha256-CTZ90KJvLPQqu1FYciEWsxJbvybCjeBsi/12bkfVd9Q="
} }

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, fontconfig, autoreconfHook, DiskArbitration { lib, stdenv, fetchurl, fetchpatch, pkg-config, fontconfig, autoreconfHook, DiskArbitration
, withJava ? false, jdk, ant , withJava ? false, jdk17, ant, stripJavaArchivesHook
, withAACS ? false, libaacs , withAACS ? false, libaacs
, withBDplus ? false, libbdplus , withBDplus ? false, libbdplus
, withMetadata ? true, libxml2 , withMetadata ? true, libxml2
@ -19,23 +19,18 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkg-config autoreconfHook ] nativeBuildInputs = [ pkg-config autoreconfHook ]
++ lib.optionals withJava [ ant ]; ++ lib.optionals withJava [ jdk17 ant stripJavaArchivesHook ];
buildInputs = [ fontconfig ] buildInputs = [ fontconfig ]
++ lib.optional withJava jdk
++ lib.optional withMetadata libxml2 ++ lib.optional withMetadata libxml2
++ lib.optional withFonts freetype ++ lib.optional withFonts freetype
++ lib.optional stdenv.isDarwin DiskArbitration; ++ lib.optional stdenv.isDarwin DiskArbitration;
propagatedBuildInputs = lib.optional withAACS libaacs; propagatedBuildInputs = lib.optional withAACS libaacs;
NIX_LDFLAGS = lib.optionalString withAACS "-L${libaacs}/lib -laacs" env.NIX_LDFLAGS = lib.optionalString withAACS "-L${libaacs}/lib -laacs"
+ lib.optionalString withBDplus " -L${libbdplus}/lib -lbdplus"; + lib.optionalString withBDplus " -L${libbdplus}/lib -lbdplus";
preConfigure = lib.optionalString withJava ''
export JDK_HOME="${jdk.home}"
'';
configureFlags = lib.optional (!withJava) "--disable-bdjava-jar" configureFlags = lib.optional (!withJava) "--disable-bdjava-jar"
++ lib.optional (!withMetadata) "--without-libxml2" ++ lib.optional (!withMetadata) "--without-libxml2"
++ lib.optional (!withFonts) "--without-freetype"; ++ lib.optional (!withFonts) "--without-freetype";

View File

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
description = "A portable and efficient API to determine the call-chain of a program"; description = "A portable and efficient API to determine the call-chain of a program";
maintainers = with maintainers; [ orivej ]; maintainers = with maintainers; [ orivej ];
# https://github.com/libunwind/libunwind#libunwind # https://github.com/libunwind/libunwind#libunwind
platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd13" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd13" "x86_64-linux" "x86_64-solaris" ]; platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd" "x86_64-linux" "x86_64-solaris" ];
license = licenses.mit; license = licenses.mit;
}; };
} }

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "python-qt"; pname = "python-qt";
version = "3.5.1"; version = "3.5.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "MeVisLab"; owner = "MeVisLab";
repo = "pythonqt"; repo = "pythonqt";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-IED6UFk8UTle7g/yPC0nXOEgJwrs6sB/Dk3OTyVgHPo="; hash = "sha256-Mpi1pAPS/UuzaBK7I1kI0HlS3dphcKiVXIPuJwdEDXM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -109,6 +109,8 @@ stdenv.mkDerivation rec {
"--disable-monolithic" "--disable-monolithic"
"--enable-mediactrl" "--enable-mediactrl"
"--with-nanosvg" "--with-nanosvg"
"--disable-rpath"
"--enable-repro-build"
(if compat28 then "--enable-compat28" else "--disable-compat28") (if compat28 then "--enable-compat28" else "--disable-compat28")
(if compat30 then "--enable-compat30" else "--disable-compat30") (if compat30 then "--enable-compat30" else "--disable-compat30")
] ++ lib.optional unicode "--enable-unicode" ] ++ lib.optional unicode "--enable-unicode"

View File

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiortm"; pname = "aiortm";
version = "0.8.12"; version = "0.8.13";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "MartinHjelmare"; owner = "MartinHjelmare";
repo = "aiortm"; repo = "aiortm";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-X7MqBDmVfLy5ajqhFcvA8oCaoxy3zLusXkB659qWR5E="; hash = "sha256-JoolmxZFN0UG8wAMxMAYL8APFjpEcMECirCKUA/UBlY=";
}; };
postPatch = '' postPatch = ''

View File

@ -1,25 +1,27 @@
{ lib {
, buildPythonPackage lib,
, fetchFromGitHub anyio,
, hatchling buildPythonPackage,
, anyio dirty-equals,
, distro distro,
, dirty-equals fetchFromGitHub,
, httpx google-auth,
, google-auth hatch-fancy-pypi-readme,
, sniffio hatchling,
, pydantic httpx,
, pytest-asyncio pydantic,
, respx pytest-asyncio,
, tokenizers pytestCheckHook,
, typing-extensions pythonOlder,
, pytestCheckHook respx,
, pythonOlder sniffio,
tokenizers,
typing-extensions,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "anthropic"; pname = "anthropic";
version = "0.19.1"; version = "0.25.6";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -28,14 +30,15 @@ buildPythonPackage rec {
owner = "anthropics"; owner = "anthropics";
repo = "anthropic-sdk-python"; repo = "anthropic-sdk-python";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-D9asbwZ9puOuIK6w7cWJ2HmC3JYjamUZPOxVKWq+Va4="; hash = "sha256-83TufOgu6W9UvoCEUgDiw6gXDAdwyIKEALVF0hjj6wk=";
}; };
nativeBuildInputs = [ build-system = [
hatchling hatchling
hatch-fancy-pypi-readme
]; ];
propagatedBuildInputs = [ dependencies = [
anyio anyio
distro distro
httpx httpx
@ -56,13 +59,21 @@ buildPythonPackage rec {
respx respx
]; ];
pythonImportsCheck = [ "anthropic" ];
disabledTests = [
# Test require network access
"test_copy_build_request"
];
disabledTestPaths = [ disabledTestPaths = [
# require network access # Test require network access
"tests/api_resources" "tests/api_resources"
]; ];
pythonImportsCheck = [ pytestFlagsArray = [
"anthropic" "-W"
"ignore::DeprecationWarning"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -366,7 +366,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "boto3-stubs"; pname = "boto3-stubs";
version = "1.34.94"; version = "1.34.95";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -374,7 +374,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "boto3_stubs"; pname = "boto3_stubs";
inherit version; inherit version;
hash = "sha256-ZyKwsCQpPrN3E7jsNdAuLELEi0NhWoVExAKXLbBTQS0="; hash = "sha256-QSAGsn7nB+m1GghLAqySsUOvijtWcnWCr+wqds6Tw7Y=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -6,6 +6,7 @@
, packaging , packaging
, setuptools , setuptools
, dbus-next , dbus-next
, rubicon-objc
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -30,6 +31,8 @@ buildPythonPackage rec {
packaging packaging
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
dbus-next dbus-next
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
rubicon-objc
]; ];
# no tests available, do the imports check instead # no tests available, do the imports check instead
@ -45,6 +48,5 @@ buildPythonPackage rec {
changelog = "https://github.com/samschott/desktop-notifier/releases/tag/v${version}"; changelog = "https://github.com/samschott/desktop-notifier/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ sfrijters ]; maintainers = with maintainers; [ sfrijters ];
platforms = platforms.linux;
}; };
} }

View File

@ -6,7 +6,9 @@
, duckdb , duckdb
, hypothesis , hypothesis
, ipython-sql , ipython-sql
, pandas
, poetry-core , poetry-core
, pytest-remotedata
, snapshottest , snapshottest
, sqlalchemy , sqlalchemy
, typing-extensions , typing-extensions
@ -14,20 +16,18 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "duckdb-engine"; pname = "duckdb-engine";
version = "0.11.2"; version = "0.12.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "duckdb_engine"; repo = "duckdb_engine";
owner = "Mause"; owner = "Mause";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-yW1gaZ0B6JNX98KzAxf146goniNmWnkMUmJRrScot1w="; hash = "sha256-cm0vbz0VZ2Ws6FDWJO16q4KZW2obs0CBNrfY9jmR+6A=";
}; };
patches = [ ./remote_data.patch ];
nativeBuildInputs = [ nativeBuildInputs = [
poetry-core poetry-core
]; ];
@ -42,24 +42,27 @@ buildPythonPackage rec {
''; '';
disabledTests = [ disabledTests = [
# this test tries to download the httpfs extension
"test_preload_extension"
"test_motherduck"
# test should be skipped based on sqlalchemy version but isn't and fails # test should be skipped based on sqlalchemy version but isn't and fails
"test_commit" "test_commit"
# rowcount no longer generates an attribute error.
"test_rowcount"
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook pytestCheckHook
];
checkInputs = [
hypothesis hypothesis
ipython-sql ipython-sql
# TODO(cpcloud): include pandas here when it supports sqlalchemy 2.0 pandas
pytest-remotedata
snapshottest snapshottest
typing-extensions typing-extensions
]; ];
pytestFlagsArray = [
"-m" "'not remote_data'"
];
pythonImportsCheck = [ pythonImportsCheck = [
"duckdb_engine" "duckdb_engine"
]; ];

View File

@ -1,24 +0,0 @@
diff --git a/duckdb_engine/tests/test_basic.py b/duckdb_engine/tests/test_basic.py
index 302636f..ed20f12 100644
--- a/duckdb_engine/tests/test_basic.py
+++ b/duckdb_engine/tests/test_basic.py
@@ -183,7 +183,6 @@ def test_get_views(engine: Engine) -> None:
@mark.skipif(os.uname().machine == "aarch64", reason="not supported on aarch64")
-@mark.remote_data
def test_preload_extension() -> None:
duckdb.default_connection.execute("INSTALL httpfs")
engine = create_engine(
diff --git a/duckdb_engine/tests/test_integration.py b/duckdb_engine/tests/test_integration.py
index 349c976..bf3dbaa 100644
--- a/duckdb_engine/tests/test_integration.py
+++ b/duckdb_engine/tests/test_integration.py
@@ -24,7 +24,6 @@ def test_integration(engine: Engine) -> None:
conn.execute(text("select * from test_df"))
-@mark.remote_data
@mark.skipif(
"dev" in duckdb.__version__, reason="md extension not available for dev builds" # type: ignore[attr-defined]
)

View File

@ -25,7 +25,7 @@ buildPythonPackage rec {
# 2. default to extension autoload & autoinstall disabled # 2. default to extension autoload & autoinstall disabled
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \ --replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \
--replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "" --replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "pass"
''; '';
env = { env = {
@ -34,8 +34,6 @@ buildPythonPackage rec {
OVERRIDE_GIT_DESCRIBE="v${version}-0-g${rev}"; OVERRIDE_GIT_DESCRIBE="v${version}-0-g${rev}";
}; };
dontPretendSetuptoolsSCMVersion = true;
nativeBuildInputs = [ nativeBuildInputs = [
pybind11 pybind11
setuptools-scm setuptools-scm

View File

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "flake8-bugbear"; pname = "flake8-bugbear";
version = "24.4.21"; version = "24.4.26";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "PyCQA"; owner = "PyCQA";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-6jKVKVJuNpdKLzl2dTkr1cvArGWCWvuhyjww05r9W/c="; hash = "sha256-jJ4/l2nzjqJDCe1pFrdkMvB5WJ+GJarOHgGZSzCS6nc=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -33,6 +33,6 @@ buildPythonPackage rec {
homepage = "https://github.com/BYU-PRISM/GEKKO"; homepage = "https://github.com/BYU-PRISM/GEKKO";
changelog = "https://github.com/BYU-PRISM/GEKKO/releases/tag/v${version}"; changelog = "https://github.com/BYU-PRISM/GEKKO/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ ayes-web ]; maintainers = with maintainers; [ BatteredBunny ];
}; };
} }

View File

@ -2,20 +2,22 @@
, stdenv , stdenv
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, pytestCheckHook
, pythonOlder
, setuptools
, fiona , fiona
, packaging , packaging
, pandas , pandas
, pyproj , pyproj
, pytestCheckHook
, pythonOlder
, rtree , rtree
, shapely , shapely
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "geopandas"; pname = "geopandas";
version = "0.14.3"; version = "0.14.4";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -23,9 +25,13 @@ buildPythonPackage rec {
owner = "geopandas"; owner = "geopandas";
repo = "geopandas"; repo = "geopandas";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-qAINoqnCVfpg2mQhnu0qT/5EjUB+9a3//H8vJJnyj6A="; hash = "sha256-FBhPcae8bnNnsfr14I1p22VhoOf9USF9DAcrAqx+zso=";
}; };
build-system = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
fiona fiona
packaging packaging

View File

@ -1,24 +1,50 @@
{ lib {
, python3 lib,
, fetchPypi aiohttp,
, buildPythonPackage anthropic,
buildPythonPackage,
docstring-parser,
fetchFromGitHub,
openai,
poetry-core,
pydantic,
pytest-examples,
pytest-asyncio,
pytestCheckHook,
fastapi,
diskcache,
redis,
pythonOlder,
pythonRelaxDepsHook,
rich,
tenacity,
typer,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "instructor"; pname = "instructor";
version = "0.6.8"; version = "1.2.3";
pyproject = true; pyproject = true;
src = fetchPypi { disabled = pythonOlder "3.9";
inherit pname version;
hash = "sha256-4mHXPes1NdYu53XEN7gq626cKy9ju1M7U6n6akfbuVo="; src = fetchFromGitHub {
owner = "jxnl";
repo = "instructor";
rev = "refs/tags/${version}";
hash = "sha256-LmorlFKIG7iPAK4pDbQqjxjiwB1md3u52B4u5WlqqTk=";
}; };
nativeBuildInputs = [ pythonRelaxDeps = [
python3.pkgs.poetry-core "docstring-parser"
"pydantic"
]; ];
propagatedBuildInputs = with python3.pkgs; [ build-system = [ poetry-core ];
nativeBuildInputs = [ pythonRelaxDepsHook ];
dependencies = [
aiohttp aiohttp
docstring-parser docstring-parser
openai openai
@ -28,8 +54,31 @@ buildPythonPackage rec {
typer typer
]; ];
nativeCheckInputs = [
anthropic
fastapi
redis
diskcache
pytest-asyncio
pytest-examples
pytestCheckHook
];
pythonImportsCheck = [ "instructor" ]; pythonImportsCheck = [ "instructor" ];
disabledTests = [
# Tests require OpenAI API key
"test_partial"
"successfully"
];
disabledTestPaths = [
# Tests require OpenAI API key
"tests/test_distil.py"
"tests/test_new_client.py"
"tests/llm/"
];
meta = with lib; { meta = with lib; {
description = "Structured outputs for llm"; description = "Structured outputs for llm";
homepage = "https://github.com/jxnl/instructor"; homepage = "https://github.com/jxnl/instructor";

View File

@ -18,7 +18,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "langchain-community"; pname = "langchain-community";
version = "0.0.33"; version = "0.0.34";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -26,7 +26,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "langchain_community"; pname = "langchain_community";
inherit version; inherit version;
hash = "sha256-u1bbwe8RygnyWEaOETaHga3akhnhRAc+MM2mlJbTQrI="; hash = "sha256-lumoB9m0d3gg31qXCZb2vzrVYyE3vw9NhjvYMr3rKw8=";
}; };
build-system = [ poetry-core ]; build-system = [ poetry-core ];

View File

@ -158,6 +158,8 @@ buildPythonPackage rec {
# AssertionErrors # AssertionErrors
"test_callback_handlers" "test_callback_handlers"
"test_generic_fake_chat_model" "test_generic_fake_chat_model"
# Test is outdated
"test_serializable_mapping"
]; ];
pythonImportsCheck = [ "langchain" ]; pythonImportsCheck = [ "langchain" ];

View File

@ -1,12 +1,14 @@
{ {
lib, lib,
stdenv, stdenv,
anthropic,
attr, attr,
buildPythonPackage, buildPythonPackage,
fastapi, fastapi,
fetchFromGitHub, fetchFromGitHub,
freezegun, freezegun,
httpx, httpx,
instructor,
orjson, orjson,
poetry-core, poetry-core,
pydantic, pydantic,
@ -20,7 +22,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "langsmith"; pname = "langsmith";
version = "0.1.48"; version = "0.1.51";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -29,7 +31,7 @@ buildPythonPackage rec {
owner = "langchain-ai"; owner = "langchain-ai";
repo = "langsmith-sdk"; repo = "langsmith-sdk";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-n24rlulncJHNyHFqszEbALGfnT7+tTGjLjwR7Fw1smI="; hash = "sha256-31DC5SqI2V7d3iC5LlZgU5xB0Lh6GrBFFF3A+HEbUKg=";
}; };
sourceRoot = "${src.name}/python"; sourceRoot = "${src.name}/python";
@ -48,9 +50,11 @@ buildPythonPackage rec {
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
anthropic
fastapi fastapi
freezegun freezegun
httpx httpx
instructor
pytest-asyncio pytest-asyncio
pytestCheckHook pytestCheckHook
uvicorn uvicorn
@ -81,6 +85,7 @@ buildPythonPackage rec {
"tests/unit_tests/test_client.py" "tests/unit_tests/test_client.py"
# Tests require a Langsmith API key # Tests require a Langsmith API key
"tests/evaluation/test_evaluation.py" "tests/evaluation/test_evaluation.py"
"tests/external/test_instructor_evals.py"
]; ];
pythonImportsCheck = [ "langsmith" ]; pythonImportsCheck = [ "langsmith" ];

View File

@ -1,4 +1,5 @@
{ lib { lib
, stdenv
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, makePythonPath , makePythonPath
@ -17,6 +18,7 @@
, pyro5 , pyro5
, requests , requests
, rich , rich
, rubicon-objc
, setuptools , setuptools
, survey , survey
, typing-extensions , typing-extensions
@ -59,6 +61,8 @@ buildPythonPackage rec {
typing-extensions typing-extensions
watchdog watchdog
xattr xattr
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
rubicon-objc
]; ];
makeWrapperArgs = [ makeWrapperArgs = [
@ -71,6 +75,9 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
]; ];
# ModuleNotFoundError: No module named '_watchdog_fsevents'
doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64);
preCheck = '' preCheck = ''
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
''; '';
@ -90,6 +97,19 @@ buildPythonPackage rec {
"test_locking_multiprocess" "test_locking_multiprocess"
# OSError: [Errno 95] Operation not supported # OSError: [Errno 95] Operation not supported
"test_move_preserves_xattrs" "test_move_preserves_xattrs"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
# maetral daemon does not start but worked in real environment
"test_catching_non_ignored_events"
"test_connection"
"test_event_handler"
"test_fs_ignore_tree_creation"
"test_lifecycle"
"test_notify_level"
"test_notify_snooze"
"test_receiving_events"
"test_remote_exceptions"
"test_start_already_running"
"test_stop"
]; ];
pythonImportsCheck = [ pythonImportsCheck = [
@ -104,7 +124,6 @@ buildPythonPackage rec {
homepage = "https://maestral.app"; homepage = "https://maestral.app";
changelog = "https://github.com/samschott/maestral/releases/tag/v${version}"; changelog = "https://github.com/samschott/maestral/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ peterhoeg sfrijters ]; maintainers = with maintainers; [ natsukium peterhoeg sfrijters ];
platforms = platforms.unix;
}; };
} }

View File

@ -1,11 +1,43 @@
{ lib { lib
, buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, poetry-core
, pytest-xdist
, pytestCheckHook
, pythonOlder
, pythonRelaxDepsHook
, cairo , cairo
, ffmpeg , ffmpeg
, texliveInfraOnly , texliveInfraOnly
, python3 , click
, click-default-group
, cloup
, colour
, grpcio
, grpcio-tools
, importlib-metadata
, isosurfaces
, jupyterlab
, manimpango
, mapbox-earcut
, moderngl
, moderngl-window
, networkx
, numpy
, pillow
, pycairo
, pydub
, pygments
, rich
, scipy
, screeninfo
, skia-pathops
, srt
, svgelements
, tqdm
, watchdog
}: }:
let let
@ -42,13 +74,11 @@ let
babel-english gnu-freefont mathastext cbfonts-fd babel-english gnu-freefont mathastext cbfonts-fd
]); ]);
python = python3; in buildPythonPackage rec {
in python.pkgs.buildPythonApplication rec {
pname = "manim"; pname = "manim";
pyproject = true; pyproject = true;
version = "0.18.1"; version = "0.18.1";
disabled = python3.pythonOlder "3.9"; disabled = pythonOlder "3.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ManimCommunity"; owner = "ManimCommunity";
@ -57,7 +87,7 @@ in python.pkgs.buildPythonApplication rec {
hash = "sha256-o+Wl3NMK6yopcsRVFtZuUE9c1GABa5d8rbQNHDJ4OiQ="; hash = "sha256-o+Wl3NMK6yopcsRVFtZuUE9c1GABa5d8rbQNHDJ4OiQ=";
}; };
nativeBuildInputs = with python.pkgs; [ nativeBuildInputs = [
poetry-core poetry-core
pythonRelaxDepsHook pythonRelaxDepsHook
]; ];
@ -81,7 +111,7 @@ in python.pkgs.buildPythonApplication rec {
buildInputs = [ cairo ]; buildInputs = [ cairo ];
propagatedBuildInputs = with python.pkgs; [ propagatedBuildInputs = [
click click
click-default-group click-default-group
cloup cloup
@ -101,7 +131,6 @@ in python.pkgs.buildPythonApplication rec {
pycairo pycairo
pydub pydub
pygments pygments
pysrt
rich rich
scipy scipy
screeninfo screeninfo
@ -122,10 +151,9 @@ in python.pkgs.buildPythonApplication rec {
nativeCheckInputs = [ nativeCheckInputs = [
ffmpeg ffmpeg
manim-tinytex manim-tinytex
] ++ (with python.pkgs; [
pytest-xdist pytest-xdist
pytestCheckHook pytestCheckHook
]); ];
# about 55 of ~600 tests failing mostly due to demand for display # about 55 of ~600 tests failing mostly due to demand for display
disabledTests = import ./failing_tests.nix; disabledTests = import ./failing_tests.nix;

View File

@ -17,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mashumaro"; pname = "mashumaro";
version = "3.12"; version = "3.13";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "Fatal1ty"; owner = "Fatal1ty";
repo = "mashumaro"; repo = "mashumaro";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-sSwj/8j+vPX7M8l2h4bPs8WnjzIN2WIpyd7/NcGaExg="; hash = "sha256-ETK1rHKlByQkqibejiZmXF6c4eIiMazLa8XY2OH30q4=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

Some files were not shown because too many files have changed in this diff Show More