Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-05-02 00:13:10 +00:00 committed by GitHub
commit 2918b2c876
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
502 changed files with 10626 additions and 16198 deletions

View File

@ -37,6 +37,7 @@ jobs:
pkgs/development/cuda-modules
pkgs/test/cuda
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_.
run: |
for env_var in "${!NIX_FMT_PATHS_@}"; do

View File

@ -8,7 +8,7 @@ Programs in the GNOME universe are written in various languages but they all use
[GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`.
On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
On Linux, GSettings API is implemented using [dconf](https://gitlab.gnome.org/GNOME/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`.
@ -76,11 +76,11 @@ Previously, a GTK theme needed to be in `XDG_DATA_DIRS`. This is no longer neces
### GObject introspection typelibs {#ssec-gnome-typelibs}
[GObject introspection](https://wiki.gnome.org/Projects/GObjectIntrospection) allows applications to use C libraries in other languages easily. It does this through `typelib` files searched in `GI_TYPELIB_PATH`.
[GObject introspection](https://gitlab.gnome.org/GNOME/gobject-introspection) allows applications to use C libraries in other languages easily. It does this through `typelib` files searched in `GI_TYPELIB_PATH`.
### Various plug-ins {#ssec-gnome-plugins}
If your application uses [GStreamer](https://gstreamer.freedesktop.org/) or [Grilo](https://wiki.gnome.org/Projects/Grilo), you should set `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH`, respectively.
If your application uses [GStreamer](https://gstreamer.freedesktop.org/) or [Grilo](https://gitlab.gnome.org/GNOME/grilo), you should set `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH`, respectively.
## Onto `wrapGAppsHook` {#ssec-gnome-hooks}

View File

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

View File

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

View File

@ -326,11 +326,7 @@ rec {
# the normalized name for macOS.
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
ios = { execFormat = macho; families = { inherit darwin; }; };
# A tricky thing about FreeBSD is that there is no stable ABI across
# 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; };
freebsd = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; };
linux = { execFormat = elf; families = { }; };
netbsd = { execFormat = elf; families = { inherit bsd; }; };
none = { execFormat = unknown; families = { }; };

View File

@ -2,7 +2,7 @@
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
nix ? pkgs-nixVersions.stable,
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.unstable ],
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.latest ],
pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; },
}:

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" ];
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" ];
testmmix = mseteq mmix [ "mmix-mmixware" ];
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" ];
testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-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" ];
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" ];
testredox = mseteq redox [ "x86_64-redox" ];
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);

View File

@ -2071,12 +2071,6 @@
githubId = 135230;
name = "Aycan iRiCAN";
};
ayes-web = {
email = "ayes2022@protonmail.com";
github = "ayes-web";
githubId = 52951851;
name = "ayes-web";
};
aynish = {
github = "Chickensoupwithrice";
githubId = 22575913;
@ -2264,6 +2258,12 @@
githubId = 576355;
name = "Bas van Dijk";
};
BatteredBunny = {
email = "ayes2022@protonmail.com";
github = "BatteredBunny";
githubId = 52951851;
name = "BatteredBunny";
};
BattleCh1cken = {
email = "BattleCh1cken@larkov.de";
github = "BattleCh1cken";
@ -7702,6 +7702,12 @@
githubId = 10654650;
name = "Guillaume Koenig";
};
guitargeek = {
email = "jonas.rembser@cern.ch";
github = "guitargeek";
githubId = 6578603;
name = "Jonas Rembser";
};
guserav = {
github = "guserav";
githubId = 28863828;
@ -15097,6 +15103,13 @@
githubId = 104593071;
name = "Oliver Schmidt";
};
osslate = {
email = "fionn@kelleher.email";
github = "osslate";
githubId = 773673;
matrix = "@osslate:fsfe.org";
name = "Fionn Kelleher";
};
ostrolucky = {
email = "gabriel.ostrolucky@gmail.com";
github = "ostrolucky";
@ -15264,6 +15277,12 @@
githubId = 1788628;
name = "pandaman";
};
pandapip1 = {
email = "gavinnjohn@gmail.com";
github = "Pandapip1";
githubId = 45835846;
name = "Gavin John";
};
panicgh = {
email = "nbenes.gh@xandea.de";
github = "panicgh";

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.
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.
- `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.
- This can be disabled through the `environment.stub-ld.enable` option.
@ -30,9 +30,13 @@ In addition to numerous new and upgraded packages, this release has the followin
To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
- Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
- `nixVersions.unstable` was removed. Instead the following attributes are provided:
- `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.
- The PipeWire and WirePlumber modules have removed support for using
- `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
- `pipewire` and `wireplumber` modules have removed support for using
`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
@ -41,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/)
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.
- `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.
@ -65,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.
- 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}
@ -96,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)
- 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).
@ -123,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).
- [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
@ -135,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).
- 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).
@ -147,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).
- [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).
@ -159,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`.
- [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).
- 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).
- [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)
@ -204,7 +208,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
defaulting to `/etc/ssh/authorized_keys.d/%u`.
::: {.warning}
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}
Previously, all `services.openssh.authorizedKeysFiles` were trusted, including `~/.ssh/authorized_keys`,
@ -222,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.
- `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.
@ -242,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
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
[](#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.
- `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.
@ -351,11 +355,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `gtest` package has been updated past v1.13.0, which requires C++14 or higher.
- The latest available version of Nextcloud is v28 (available as `pkgs.nextcloud28`). The installation logic is as follows:
- Nextcloud 26 has been removed since it's not maintained anymore by upstream.
- The latest available version of Nextcloud is v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud28` will be installed by default.
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
- Please note that an upgrade from v26 (or older) to v28 directly is not possible. Please upgrade to `nextcloud27` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud27;`](options.html#opt-services.nextcloud.package).
- Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
- Known warnings after the upgrade are documented in [](#module-services-nextcloud-known-warnings).
- The vendored third party libraries have been mostly removed from `cudaPackages.nsight_systems`, which we now only ship for `cudaPackages_11_8` and later due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.

View File

@ -47,7 +47,7 @@ with lib;
gst_all_1 = super.gst_all_1 // {
gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableX11 = false; };
gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
};
imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };

View File

@ -19,7 +19,9 @@ let
[Startup]
sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled}
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]
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 {
type = types.bool;
default = false;
@ -107,6 +144,13 @@ in
};
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.kernelModules = drivers;
@ -127,15 +171,15 @@ in
systemd.user.services.openrazer-daemon = {
description = "Daemon to manage razer devices in userspace";
unitConfig.Documentation = "man:openrazer-daemon(8)";
# Requires a graphical session so the daemon knows when the screensaver
# starts. See the 'devicesOffOnScreensaver' option.
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "dbus";
BusName = "org.razer";
ExecStart = "${daemonExe} --foreground";
Restart = "always";
# Requires a graphical session so the daemon knows when the screensaver
# starts. See the 'devicesOffOnScreensaver' option.
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "dbus";
BusName = "org.razer";
ExecStart = "${daemonExe} --foreground";
Restart = "always";
};
};
};

View File

@ -1,8 +1,31 @@
{ config, lib, pkgs, ... }:
with lib;
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;
@ -24,7 +47,7 @@ let
if true == value then "yes"
else if false == value then "no"
else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
else toString value;
else builtins.toString value;
# 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)));
@ -439,7 +462,7 @@ in
config = mkIf cfg.enable {
assertions = map ({ name, ensureDBOwnership, ... }: {
assertion = ensureDBOwnership -> builtins.elem name cfg.ensureDatabases;
assertion = ensureDBOwnership -> elem name cfg.ensureDatabases;
message = ''
For each database user defined with `services.postgresql.ensureUsers` and
`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.
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
if ! kill -0 "$MAINPID"; then exit 1; fi

View File

@ -97,50 +97,50 @@ in
logs = {
main = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
network = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
bus = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
update = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
other = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
all = mkOption {
type = types.enum [ "error" "notice" "info" "debug"];
type = types.enum [ "none" "error" "notice" "info" "debug"];
default = "info";
description = ''
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (error|notice|info|debug) [all:notice].
Only write log for matching AREAs (main|network|bus|update|other|all) below or equal to LEVEL (none|error|notice|info|debug) [all:notice].
'';
};
};

View File

@ -224,7 +224,7 @@ in
and users are replaced by dummy users), so tests are complemented by a
logrotate-checkconf service that is enabled by default.
This extra check can be disabled by disabling it at the systemd level with the
{option}`services.systemd.services.logrotate-checkconf.enable` option.
{option}`systemd.services.logrotate-checkconf.enable` option.
Conversely there are still things that might make this check fail incorrectly
(e.g. a file path where we don't have access to intermediate directories):

View File

@ -534,14 +534,11 @@ in {
hyperkittyApiKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
secretKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
mailmanWebCfgTmp=$(mktemp)
jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \
install -m 0440 -o root -g mailman \
<(jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \
--arg archiver_key "$hyperkittyApiKey" \
--arg secret_key "$secretKey" \
>"$mailmanWebCfgTmp"
chown root:mailman "$mailmanWebCfgTmp"
chmod 440 "$mailmanWebCfgTmp"
mv -n "$mailmanWebCfgTmp" "$mailmanWebCfg"
--arg secret_key "$secretKey") \
"$mailmanWebCfg"
fi
hyperkittyApiKey="$(jq -r .MAILMAN_ARCHIVER_KEY "$mailmanWebCfg")"

View File

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

View File

@ -5,7 +5,7 @@ self-hostable cloud platform. The server setup can be automated using
[services.nextcloud](#opt-services.nextcloud.enable). A
desktop client is packaged at `pkgs.nextcloud-client`.
The current default by NixOS is `nextcloud28` which is also the latest
The current default by NixOS is `nextcloud29` which is also the latest
major version available.
## Basic usage {#module-services-nextcloud-basic-usage}
@ -184,6 +184,32 @@ Alternatively, extra apps can also be declared with the [](#opt-services.nextclo
When using this setting, apps can no longer be managed statefully because this can lead to Nextcloud updating apps
that are managed by Nix. If you want automatic updates it is recommended that you use web interface to install apps.
## Known warnings {#module-services-nextcloud-known-warnings}
### Failed to get an iterator for log entries: Logreader application only supports "file" log_type {#module-services-nextcloud-warning-logreader}
This is because
* our module writes logs into the journal (`journalctl -t Nextcloud`)
* the Logreader application that allows reading logs in the admin panel is enabled
by default and requires logs written to a file.
The logreader application doesn't work, as it was the case before. The only change is that
it complains loudly now. So nothing actionable here by default. Alternatively you can
* disable the logreader application to shut up the "error".
We can't really do that by default since whether apps are enabled/disabled is part
of the application's state and tracked inside the database.
* set [](#opt-services.nextcloud.settings.log_type) to "file" to be able to view logs
from the admin panel.
### Your web server is not properly set up to resolve `.well-known` URLs, failed on: `/.well-known/caldav` {#module-services-nextcloud-warning-wellknown-caldav}
This warning appearing seems to be an upstream issue and is being sorted out
in [nextcloud/server#45033](https://github.com/nextcloud/server/issues/45033).
## Maintainer information {#module-services-nextcloud-maintainer-info}
As stated in the previous paragraph, we must provide a clean upgrade-path for Nextcloud

View File

@ -819,7 +819,8 @@ in {
++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11"))
++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05"))
++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11"))
++ (optional (versionOlder cfg.package.version "28") (upgradeWarning 27 "24.05"));
++ (optional (versionOlder cfg.package.version "28") (upgradeWarning 27 "24.05"))
++ (optional (versionOlder cfg.package.version "29") (upgradeWarning 28 "24.11"));
services.nextcloud.package = with pkgs;
mkDefault (
@ -832,10 +833,12 @@ in {
else if versionOlder stateVersion "23.05" then nextcloud25
else if versionOlder stateVersion "23.11" then nextcloud26
else if versionOlder stateVersion "24.05" then nextcloud27
else nextcloud28
else nextcloud29
);
services.nextcloud.phpPackage = pkgs.php82;
services.nextcloud.phpPackage =
if versionOlder cfg.package.version "29" then pkgs.php82
else pkgs.php83;
services.nextcloud.phpOptions = mkMerge [
(mapAttrs (const mkOptionDefault) defaultPHPSettings)

View File

@ -352,7 +352,8 @@ let
# 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
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)
# We use ^~ here, so that we don't check any regexes (which could
# otherwise easily override this intended match accidentally).

View File

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

View File

@ -1,5 +1,5 @@
# NixOS tests for gnome-desktop-testing-runner using software
# See https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
# See https://github.com/NixOS/nixpkgs/issues/34987
{ system ? builtins.currentSystem,
config ? {},

View File

@ -119,11 +119,11 @@ in
with subtest("Libreswan is ready"):
alice.wait_for_unit("ipsec")
bob.wait_for_unit("ipsec")
alice.succeed("ipsec verify 1>&2")
alice.succeed("ipsec checkconfig")
with subtest("Alice and Bob can start the tunnel"):
alice.execute("ipsec auto --start tunnel >&2 &")
bob.succeed("ipsec auto --start tunnel")
alice.execute("ipsec start tunnel >&2 &")
bob.succeed("ipsec start tunnel")
# apparently this is needed to "wake" the tunnel
bob.execute("ping -c1 alice")

View File

@ -22,4 +22,4 @@ foldl
};
})
{ }
[ 26 27 28 ]
[ 27 28 29 ]

View File

@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, ... }:
let inherit (import ./ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
snakeOilPrivateKey snakeOilPublicKey snakeOilEd25519PrivateKey snakeOilEd25519PublicKey;
in {
name = "openssh";
meta = with pkgs.lib.maintainers; {
@ -108,6 +108,31 @@ in {
};
};
server-no-openssl =
{ ... }:
{
programs.ssh.package = pkgs.opensshPackages.openssh.override {
linkOpenssl = false;
};
services.openssh = {
enable = true;
hostKeys = [
{ type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; }
];
settings = {
# Must not specify the OpenSSL provided algorithms.
Ciphers = [ "chacha20-poly1305@openssh.com" ];
KexAlgorithms = [
"curve25519-sha256"
"curve25519-sha256@libssh.org"
];
};
};
users.users.root.openssh.authorizedKeys.keys = [
snakeOilEd25519PublicKey
];
};
server-no-pam =
{ pkgs, ... }:
{
@ -139,6 +164,7 @@ in {
server_allowed_users.wait_for_unit("sshd", timeout=30)
server_localhost_only.wait_for_unit("sshd", timeout=30)
server_match_rule.wait_for_unit("sshd", timeout=30)
server_no_openssl.wait_for_unit("sshd", timeout=30)
server_no_pam.wait_for_unit("sshd", timeout=30)
server_lazy.wait_for_unit("sshd.socket", timeout=30)
@ -230,6 +256,16 @@ in {
timeout=30
)
with subtest("no-openssl"):
client.succeed(
"cat ${snakeOilEd25519PrivateKey} > privkey.snakeoil"
)
client.succeed("chmod 600 privkey.snakeoil")
client.succeed(
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server-no-openssl true",
timeout=30
)
with subtest("no-pam"):
client.succeed(
"cat ${snakeOilPrivateKey} > privkey.snakeoil"

View File

@ -12,4 +12,16 @@ pkgs:
"yNTYAAABBBChdA2BmwcG49OrQN33f/sj+OHL5sJhwVl2Qim0vkUJQCry1zFpKTa"
"9ZcDMiWaEhoAR6FGoaGI04ff7CS+1yybQ= snakeoil"
];
snakeOilEd25519PrivateKey = pkgs.writeText "privkey.snakeoil" ''
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACAYBTIWo1J4PkY4/7AhVyPT8xvAUI67tp+yYFFRdSm7+QAAAJC89yCivPcg
ogAAAAtzc2gtZWQyNTUxOQAAACAYBTIWo1J4PkY4/7AhVyPT8xvAUI67tp+yYFFRdSm7+Q
AAAEDJmKp3lX6Pz0unTc0QZwrHb8Eyr9fJUopE9d2/+q+eCxgFMhajUng+Rjj/sCFXI9Pz
G8BQjru2n7JgUVF1Kbv5AAAACnRvbUBvemRlc2sBAgM=
-----END OPENSSH PRIVATE KEY-----
'';
snakeOilEd25519PublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgFMhajUng+Rjj/sCFXI9PzG8BQjru2n7JgUVF1Kbv5 snakeoil";
}

View File

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
The features can be activated and configured through the Universal Access
panel of the GNOME Control Center.
'';
homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
homepage = "https://gitlab.gnome.org/Archive/mousetweaks";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.johnazoidberg ];

View File

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

View File

@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "View and edit tags for various audio files";
mainProgram = "easytag";
homepage = "https://wiki.gnome.org/Apps/EasyTAG";
homepage = "https://gitlab.gnome.org/GNOME/easytag";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
platforms = platforms.linux;

View File

@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Listen to your favorite podcasts";
mainProgram = "gnome-podcasts";
homepage = "https://wiki.gnome.org/Apps/Podcasts";
homepage = "https://apps.gnome.org/Podcasts/";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.unix;

View File

@ -14,17 +14,17 @@
rustPlatform.buildRustPackage rec {
pname = "listenbrainz-mpd";
version = "2.3.4";
version = "2.3.5";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "elomatreb";
repo = "listenbrainz-mpd";
rev = "v${version}";
hash = "sha256-QHhSrmBNvUTffPzjns670Tn3Z3UDcDvarq605Qx9k4w=";
hash = "sha256-z3SVpPCWZqCVXPKbPxZAKGtk8Z/Tf5PULn0dWsKlVrE=";
};
cargoHash = "sha256-vtU439Pd3zWx+qakh1xTENQhun7S+WsJMndXqPWrPWU=";
cargoHash = "sha256-eCdUrxt9edJm6K3f8V8bjgYWMq3mgj/ZfUZYWE3ZBqw=";
nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ];

View File

@ -102,7 +102,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
description = "A modern music player for GNOME";
homepage = "https://wiki.gnome.org/Apps/Lollypop";
homepage = "https://gitlab.gnome.org/World/lollypop";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lovesegfault ];
platforms = platforms.linux;

View File

@ -5,13 +5,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "10.60";
version = "10.71";
pname = "monkeys-audio";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${
builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
hash = "sha256-llOo9G65UDDCzaSahq5qssw6SmOJ5C9qS2bdXB/pKF0=";
hash = "sha256-YHPC+dHfvRSr6GldWSlgCGt/wuO/WXQGRliarnM8/AU=";
stripRoot = false;
};
nativeBuildInputs = [

View File

@ -26,11 +26,11 @@
stdenv.mkDerivation rec {
pname = "qmmp";
version = "2.1.6";
version = "2.1.7";
src = fetchurl {
url = "https://qmmp.ylsoftware.com/files/qmmp/2.1/${pname}-${version}.tar.bz2";
hash = "sha256-knqo5yCkcO/bFmM++z+SdiWzpDKK9ooV0wqlcIKj7so=";
hash = "sha256-5qdnvGFgFEk+00tjnVhqW29AyyjCfiFQOyYyVmAjHnM=";
};
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "qsynth";
version = "0.9.13";
version = "0.9.90";
src = fetchurl {
url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
hash = "sha256-SvgZrdS6BwWhNgbovcfhpQKVcu0iwr4dDqeIckuo1fk=";
hash = "sha256-5lqmoUku4/8oKxlQio1nJtMu1kn42iK8mi0K3s9y70M=";
};
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];

View File

@ -113,7 +113,7 @@ stdenv.mkDerivation rec {
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Rhythmbox";
homepage = "https://gitlab.gnome.org/GNOME/rhythmbox";
description = "A music playing application for GNOME";
license = licenses.gpl2Plus;
platforms = platforms.linux;

View File

@ -1,32 +1,21 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
, alsa-lib, asio, avahi, boost179, flac, libogg, libvorbis, libopus, soxr
, IOKit, AudioToolbox
, aixlog, popl
, pulseaudioSupport ? false, libpulseaudio
, nixosTests }:
assert pulseaudioSupport -> libpulseaudio != null;
stdenv.mkDerivation rec {
pname = "snapcast";
version = "0.27.0";
version = "0.28.0";
src = fetchFromGitHub {
owner = "badaix";
repo = "snapcast";
rev = "v${version}";
sha256 = "sha256-dlK1xQQqst4VQjioC7MZzqXwMC+JfqtvnD5lrOqGhYI=";
sha256 = "sha256-XxpiLojs1TI3qM7yXS+OPcHKo6pLcfJ+Eop7GjQ4HQw=";
};
patches = [
# Can be removed with next release after 0.27.0
(fetchpatch {
name = "include-cstdint.patch";
url = "https://github.com/badaix/snapcast/commit/481f08199ca31c60c9a3475f1064e6b06a503d12.patch";
hash = "sha256-klpvmBpBAlBMtcgnNfW6X6vDbJFnOuOsPUDXcNf5tGc=";
})
];
nativeBuildInputs = [ cmake pkg-config ];
# snapcast also supports building against tremor but as we have libogg, that's
# not needed

View File

@ -41,13 +41,13 @@
stdenv.mkDerivation rec {
pname = "sonic-pi";
version = "4.5.0";
version = "4.5.1";
src = fetchFromGitHub {
owner = "sonic-pi-net";
repo = pname;
rev = "v${version}";
hash = "sha256-s9B3OBwiUdCJyxbeQXeidv38pzmvC442Byl+llabqp0=";
hash = "sha256-JMextQY0jLShWmqRQoVAbqIzDhA1mOzI7vfsG7+jjX0=";
};
mixFodDeps = beamPackages.fetchMixDeps {

View File

@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A Gnome CD Ripper";
mainProgram = "sound-juicer";
homepage = "https://wiki.gnome.org/Apps/SoundJuicer";
homepage = "https://gitlab.gnome.org/GNOME/sound-juicer";
maintainers = [ maintainers.bdimcheff ];
license = licenses.gpl2Plus;
platforms = platforms.linux;

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "virtual-ans";
version = "3.0.2c";
version = "3.0.3";
src = fetchzip {
url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n";
sha256 = "sha256-tqR7icgURUFOyLJ8+mS17JRf2gK53I2FW/2m8IJPtJE=";
};
nativeBuildInputs = [

View File

@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
of backing up the Right Way (encrypted, off-site, and regular) \
and uses duplicity as the backend.
'';
homepage = "https://wiki.gnome.org/Apps/DejaDup";
homepage = "https://apps.gnome.org/DejaDup/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;

View File

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "lnd";
version = "0.17.4-beta";
version = "0.17.5-beta";
src = fetchFromGitHub {
owner = "lightningnetwork";
repo = "lnd";
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" ];

View File

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

View File

@ -176,7 +176,7 @@ stdenv.mkDerivation rec {
currently recommend running gnome-builder inside a nix-shell with
appropriate dependencies loaded.
'';
homepage = "https://wiki.gnome.org/Apps/Builder";
homepage = "https://apps.gnome.org/Builder/";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

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

View File

@ -1,11 +1,19 @@
{ lib, stdenv, vscode-utils, callPackage }:
{
lib,
stdenv,
vscode-utils,
callPackage,
}:
let
version = "1.50.0";
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
arch =
if stdenv.isLinux then "linux"
else if stdenv.isDarwin then "darwin"
else throw "Unsupported system: ${stdenv.system}";
if stdenv.isLinux then
"linux"
else if stdenv.isDarwin then
"darwin"
else
throw "Unsupported system: ${stdenv.system}";
analysisDir = "server/analysis_binaries/${arch}";
in
vscode-utils.buildVscodeMarketplaceExtension rec {
@ -23,7 +31,10 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
meta = {
description = "The official VSCode plugin for ReScript";
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;
};
}

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 {
pname = "rescript-editor-analysis";
@ -11,7 +20,11 @@ stdenv.mkDerivation {
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
postPatch = ''
@ -28,7 +41,10 @@ stdenv.mkDerivation {
meta = {
description = "Analysis binary for the ReScript VSCode plugin";
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;
};
}

View File

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

View File

@ -3446,6 +3446,8 @@ let
};
};
reditorsupport.r = callPackage ./reditorsupport.r { };
reloadedextensions.reloaded-cpp = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "reloaded-cpp";
@ -3514,8 +3516,8 @@ let
mktplcRef = {
name = "wikitext";
publisher = "RoweWilsonFrederiskHolme";
version = "3.8.0";
sha256 = "30540a85163e797028eec9bc3db1866bbf473e98615bf6ade6d1d672017ebe52";
version = "3.8.1";
hash = "sha256-piwS3SPjx10nsjN5axC+EN0MEDf0r2lVFllqQzciOfc=";
};
meta = {
description = "Extension that helps users view and write MediaWiki's Wikitext files";
@ -4571,6 +4573,22 @@ let
};
};
vue.volar = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "volar";
publisher = "Vue";
version = "2.0.16";
hash = "sha256-RTBbF7qahYP4L7SZ/5aCM/e5crZAyyPRcgL48FVL1jk=";
};
meta = {
changelog = "https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md";
description = "The official Vue VSCode extension";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Vue.volar";
homepage = "https://github.com/vuejs/language-tools";
license = lib.licenses.mit;
};
};
vspacecode.whichkey = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "whichkey";
@ -4583,6 +4601,22 @@ let
};
};
vue.vscode-typescript-vue-plugin = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-typescript-vue-plugin";
publisher = "Vue";
version = "1.8.27";
hash = "sha256-ym1+WPKBcn4h9lqSFVehfiDoGUEviOSEVXVLhHcYvfc=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/Vue.vscode-typescript-vue-plugin/changelog";
description = "Vue VSCode extension for TypeScript";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin";
homepage = "https://github.com/vuejs/language-tools";
license = lib.licenses.mit;
};
};
waderyan.gitblame = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "gitblame";

View File

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

View File

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

View File

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

View File

@ -4,7 +4,12 @@ with vscode-utils;
let
buildVscodeLanguagePack = { language, version ? "1.76.2023030809", sha256 }:
buildVscodeLanguagePack =
{
language,
version ? "1.76.2023030809",
sha256,
}:
buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-language-pack-${language}";
@ -15,7 +20,6 @@ let
license = lib.licenses.mit;
};
};
in
# 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
archurl = (if arch == "" then "" else "?targetPlatform=${arch}");
in

View File

@ -1,56 +1,59 @@
{ lib
, icu
, openssl
, patchelf
, stdenv
, vscode-utils
{
lib,
icu,
openssl,
patchelf,
stdenv,
vscode-utils,
}:
let
inherit (stdenv.hostPlatform) system;
inherit (vscode-utils) buildVscodeMarketplaceExtension;
extInfo = {
x86_64-linux = {
arch = "linux-x64";
hash = "sha256-7m85Zl9oV40le3nkNPzoKu/AAf8XhQpI8sBMsQXmBg8=";
binaries = [
"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-code-servicehost.linux-x64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-39D55EdwE4baDYbHc9GD/1XoxGbQkUkS1H2uysJHlxw=";
binaries = [
"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-code-servicehost.linux-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-gfhJX07R+DIw9FbzaEE0JZwEmDeifiq4vHyMHZZ1udM=";
binaries = [
"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-code-servicehost.darwin-x64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-vogstgCWvI9csNF9JfJ41XPR1POy842g2yhWqIDoHLw=";
binaries = [
"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-code-servicehost.darwin-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"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}");
extInfo =
{
x86_64-linux = {
arch = "linux-x64";
hash = "sha256-7m85Zl9oV40le3nkNPzoKu/AAf8XhQpI8sBMsQXmBg8=";
binaries = [
"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-code-servicehost.linux-x64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-39D55EdwE4baDYbHc9GD/1XoxGbQkUkS1H2uysJHlxw=";
binaries = [
"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-code-servicehost.linux-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-gfhJX07R+DIw9FbzaEE0JZwEmDeifiq4vHyMHZZ1udM=";
binaries = [
"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-code-servicehost.darwin-x64/Microsoft.VisualStudio.Code.ServiceHost"
"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";
hash = "sha256-vogstgCWvI9csNF9JfJ41XPR1POy842g2yhWqIDoHLw=";
binaries = [
"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-code-servicehost.darwin-arm64/Microsoft.VisualStudio.Code.ServiceHost"
"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}");
in
buildVscodeMarketplaceExtension {
mktplcRef = {
@ -61,50 +64,55 @@ buildVscodeMarketplaceExtension {
};
sourceRoot = "extension"; # This has more than one folder.
nativeBuildInputs = [
patchelf
];
nativeBuildInputs = [ patchelf ];
postPatch = ''
declare ext_unique_id
ext_unique_id="$(basename "$out" | head -c 32)"
postPatch =
''
declare ext_unique_id
ext_unique_id="$(basename "$out" | head -c 32)"
patchelf_add_icu_as_needed() {
declare elf="''${1?}"
declare icu_major_v="${
lib.head (lib.splitVersion (lib.getVersion icu.name))
}"
patchelf_add_icu_as_needed() {
declare elf="''${1?}"
declare icu_major_v="${lib.head (lib.splitVersion (lib.getVersion icu.name))}"
for icu_lib in icui18n icuuc icudata; do
patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
done
}
for icu_lib in icui18n icuuc icudata; do
patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
done
}
patchelf_common() {
declare elf="''${1?}"
patchelf_common() {
declare elf="''${1?}"
patchelf_add_icu_as_needed "$elf"
patchelf --add-needed "libssl.so" "$elf"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lib.makeLibraryPath [stdenv.cc.cc openssl icu.out]}:\$ORIGIN" \
"$elf"
}
patchelf_add_icu_as_needed "$elf"
patchelf --add-needed "libssl.so" "$elf"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${
lib.makeLibraryPath [
stdenv.cc.cc
openssl
icu.out
]
}:\$ORIGIN" \
"$elf"
}
substituteInPlace dist/extension.js \
--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){}'
substituteInPlace dist/extension.js \
--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){}'
''
+ (lib.concatStringsSep "\n" (map
(bin: ''
chmod +x "${bin}"
'')
extInfo.binaries))
+ lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map
(bin: ''
patchelf_common "${bin}"
'')
extInfo.binaries));
''
+ (lib.concatStringsSep "\n" (
map (bin: ''
chmod +x "${bin}"
'') extInfo.binaries
))
+ lib.optionalString stdenv.isLinux (
lib.concatStringsSep "\n" (
map (bin: ''
patchelf_common "${bin}"
'') extInfo.binaries
)
);
meta = {
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";
license = lib.licenses.unfree;
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
, patchelf
, icu
, stdenv
, openssl
, coreutils
,
{
lib,
vscode-utils,
patchelf,
icu,
stdenv,
openssl,
coreutils,
}:
let
inherit (stdenv.hostPlatform) system;
@ -26,31 +26,32 @@ let
".debugger/x86_64/vsdbg"
];
in
{
x86_64-linux = {
arch = "linux-x64";
hash = "sha256-si4HKGVIHu44QNlNI2WEnMff9+QZOMWiBfWQaaFGyQE=";
binaries = linuxBins;
};
aarch64-linux = {
arch = "linux-arm64";
hash = "sha256-1IXkSRgCHOLD4VeCdqyy54MXCBUX5RDDb3pf7GQH5jA=";
binaries = linuxBins;
};
x86_64-darwin = {
arch = "darwin-x64";
hash = "sha256-AAbYjZ+YYyGEXSLkiFfluLf7P4OzPhmHzK44N5XT9UI=";
binaries = darwinBins;
};
aarch64-darwin = {
arch = "darwin-arm64";
hash = "sha256-1m47kX0Jo+UvthNfgdoPdBBOcDyCA8DfP+zRk3SicR0=";
binaries = darwinBins ++ [
".debugger/arm64/vsdbg-ui"
".debugger/arm64/vsdbg"
];
};
}.${system} or (throw "Unsupported system: ${system}");
{
x86_64-linux = {
arch = "linux-x64";
hash = "sha256-si4HKGVIHu44QNlNI2WEnMff9+QZOMWiBfWQaaFGyQE=";
binaries = linuxBins;
};
aarch64-linux = {
arch = "linux-arm64";
hash = "sha256-1IXkSRgCHOLD4VeCdqyy54MXCBUX5RDDb3pf7GQH5jA=";
binaries = linuxBins;
};
x86_64-darwin = {
arch = "darwin-x64";
hash = "sha256-AAbYjZ+YYyGEXSLkiFfluLf7P4OzPhmHzK44N5XT9UI=";
binaries = darwinBins;
};
aarch64-darwin = {
arch = "darwin-arm64";
hash = "sha256-1m47kX0Jo+UvthNfgdoPdBBOcDyCA8DfP+zRk3SicR0=";
binaries = darwinBins ++ [
".debugger/arm64/vsdbg-ui"
".debugger/arm64/vsdbg"
];
};
}
.${system} or (throw "Unsupported system: ${system}");
in
buildVscodeMarketplaceExtension {
mktplcRef = {
@ -60,16 +61,13 @@ buildVscodeMarketplaceExtension {
inherit (extInfo) hash arch;
};
nativeBuildInputs = [
patchelf
];
nativeBuildInputs = [ patchelf ];
postPatch = ''
postPatch =
''
patchelf_add_icu_as_needed() {
declare elf="''${1?}"
declare icu_major_v="${
lib.head (lib.splitVersion (lib.getVersion icu.name))
}"
declare icu_major_v="${lib.head (lib.splitVersion (lib.getVersion icu.name))}"
for icu_lib in icui18n icuuc icudata; do
patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
@ -82,7 +80,13 @@ buildVscodeMarketplaceExtension {
patchelf_add_icu_as_needed "$elf"
patchelf --add-needed "libssl.so" "$elf"
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"
}
@ -90,22 +94,29 @@ buildVscodeMarketplaceExtension {
--replace 'uname -m' '${lib.getExe' coreutils "uname"} -m'
''
+ (lib.concatStringsSep "\n" (map
(bin: ''
+ (lib.concatStringsSep "\n" (
map (bin: ''
chmod +x "${bin}"
'')
extInfo.binaries))
+ lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map
(bin: ''
patchelf_common "${bin}"
'')
extInfo.binaries));
'') extInfo.binaries
))
+ lib.optionalString stdenv.isLinux (
lib.concatStringsSep "\n" (
map (bin: ''
patchelf_common "${bin}"
'') extInfo.binaries
)
);
meta = {
description = "Official C# support for Visual Studio Code";
homepage = "https://github.com/dotnet/vscode-csharp";
license = lib.licenses.mit;
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
, icu
, python3
{
lib,
vscode-utils,
icu,
python3,
# When `true`, the python default setting will be fixed to specified.
# Use version from `PATH` for default setting otherwise.
# Defaults to `false` as we expect it to be project specific most of the time.
, pythonUseFixed ? false
pythonUseFixed ? false,
# For updateScript
, writeScript
, bash
, curl
, coreutils
, gnused
, jq
, nix
writeScript,
bash,
curl,
coreutils,
gnused,
jq,
nix,
}:
vscode-utils.buildVscodeMarketplaceExtension rec {
@ -33,33 +34,37 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
jedi-language-server
];
postPatch = ''
# remove bundled python deps and use libs from nixpkgs
rm -r pythonFiles/lib
mkdir -p pythonFiles/lib/python/
ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy pythonFiles/lib/python/
buildPythonPath "$propagatedBuildInputs"
for i in pythonFiles/*.py; do
patchPythonScript "$i"
done
'' + lib.optionalString pythonUseFixed ''
# 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}\""
'';
postPatch =
''
# remove bundled python deps and use libs from nixpkgs
rm -r pythonFiles/lib
mkdir -p pythonFiles/lib/python/
ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy pythonFiles/lib/python/
buildPythonPath "$propagatedBuildInputs"
for i in pythonFiles/*.py; do
patchPythonScript "$i"
done
''
+ lib.optionalString pythonUseFixed ''
# 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" ''
#! ${bash}/bin/bash
set -eu -o pipefail
export PATH=${lib.makeBinPath [
curl
coreutils
gnused
jq
nix
]}
export PATH=${
lib.makeBinPath [
curl
coreutils
gnused
jq
nix
]
}
api=$(curl -s 'https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery' \
-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";
changelog = "https://github.com/microsoft/vscode-python/releases";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.jfchevrette ];
platforms = [
"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 {
mktplcRef = {

View File

@ -1,7 +1,8 @@
{ lib
, nixosTests
, vscode-utils
, useLocalExtensions ? false
{
lib,
nixosTests,
vscode-utils,
useLocalExtensions ? false,
}:
# Note that useLocalExtensions requires that vscode-server is not running
# on host. If it is, you'll need to remove $HOME/.vscode-server,
@ -92,7 +93,9 @@ buildVscodeMarketplaceExtension {
--replace '# Start the server\n' '${patch}'
'';
passthru.tests = { inherit (nixosTests) vscode-remote-ssh; };
passthru.tests = {
inherit (nixosTests) vscode-remote-ssh;
};
meta = {
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
, 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
{
lib,
vscode-utils,
fetchurl,
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.";
homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.stargate01 ];
platforms = [ "x86_64-linux" "aarch64-linux" ];
maintainers = [
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 {
mktplcRef = {

View File

@ -0,0 +1,42 @@
{
lib,
vscode-utils,
jq,
moreutils,
python311Packages,
R,
rPackages,
}:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "r";
publisher = "reditorsupport";
version = "2.8.2";
hash = "sha256-FPL/JjW452KRchcQ0iHXRJarZXvS3B8PvZhXjf3rMhQ=";
};
nativeBuildInputs = [
jq
moreutils
];
buildInputs = [
python311Packages.radian
R
rPackages.languageserver
];
postInstall = ''
cd "$out/$installPrefix"
jq '.contributes.configuration.properties."r.rpath.mac".default = "${lib.getExe' R "R"}"' package.json | sponge package.json
jq '.contributes.configuration.properties."r.rpath.linux".default = "${lib.getExe' R "R"}"' package.json | sponge package.json
jq '.contributes.configuration.properties."r.rterm.mac".default = "${lib.getExe python311Packages.radian}"' package.json | sponge package.json
jq '.contributes.configuration.properties."r.rterm.linux".default = "${lib.getExe python311Packages.radian}"' package.json | sponge package.json
'';
meta = {
changelog = "https://marketplace.visualstudio.com/items/REditorSupport.r/changelog";
description = "A Visual Studio Code extension for the R programming language";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=REditorSupport.r";
homepage = "https://github.com/REditorSupport/vscode-R";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.pandapip1 ];
};
}

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,9 @@
# Patched lldb for Rust language support.
{ fetchFromGitHub, runCommand, llvmPackages }:
{
fetchFromGitHub,
runCommand,
llvmPackages,
}:
let
llvmSrc = fetchFromGitHub {
owner = "vadimcn";
@ -8,8 +12,9 @@ let
rev = "4c267c83cbb55fedf2e0b89644dc1db320fdfde7";
hash = "sha256-jM//ej6AxnRYj+8BAn4QrxHPT6HiDzK5RqHPSg3dCcw=";
};
in (llvmPackages.lldb.overrideAttrs (oldAttrs: rec {
passthru = (oldAttrs.passthru or {}) // {
in
(llvmPackages.lldb.overrideAttrs (oldAttrs: rec {
passthru = (oldAttrs.passthru or { }) // {
inherit llvmSrc;
};
@ -23,7 +28,8 @@ in (llvmPackages.lldb.overrideAttrs (oldAttrs: rec {
echo "'lldb --version' returns: $versionOutput"
echo "$versionOutput" | grep -q 'rust-enabled'
'';
})).override({
monorepoSrc = llvmSrc;
libllvm = llvmPackages.libllvm.override({ monorepoSrc = llvmSrc; });
})
})).override
({
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
buildVscodeExtension = a@{
name,
src,
# Same as "Unique Identifier" on the extension's web page.
# For the moment, only serve as unique extension dir.
vscodeExtPublisher,
vscodeExtName,
vscodeExtUniqueId,
configurePhase ? ''
runHook preConfigure
runHook postConfigure
'',
buildPhase ?''
runHook preBuild
runHook postBuild
'',
dontPatchELF ? true,
dontStrip ? true,
nativeBuildInputs ? [],
passthru ? { },
...
}:
stdenv.mkDerivation ((removeAttrs a [ "vscodeExtUniqueId" ]) // {
buildVscodeExtension =
a@{
name,
src,
# Same as "Unique Identifier" on the extension's web page.
# For the moment, only serve as unique extension dir.
vscodeExtPublisher,
vscodeExtName,
vscodeExtUniqueId,
configurePhase ? ''
runHook preConfigure
runHook postConfigure
'',
buildPhase ? ''
runHook preBuild
runHook postBuild
'',
dontPatchELF ? true,
dontStrip ? true,
nativeBuildInputs ? [ ],
passthru ? { },
...
}:
stdenv.mkDerivation (
(removeAttrs a [ "vscodeExtUniqueId" ])
// {
name = "vscode-extension-${name}";
name = "vscode-extension-${name}";
passthru = passthru // {
inherit vscodeExtPublisher vscodeExtName vscodeExtUniqueId;
};
passthru = passthru // {
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.
# If other directories are present but `sourceRoot` is unset, the unpacker phase fails.
sourceRoot = "extension";
# 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.
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"
find . -mindepth 1 -maxdepth 1 | xargs -d'\n' mv -t "$out/$installPrefix/"
mkdir -p "$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:
fetchurl (import ./mktplcExtRefToFetchArgs.nix mktplcExtRef);
buildVscodeMarketplaceExtension = a@{
name ? "",
src ? null,
vsix ? null,
mktplcRef,
...
}: assert "" == name; assert null == src;
buildVscodeExtension ((removeAttrs a [ "mktplcRef" "vsix" ]) // {
name = "${mktplcRef.publisher}-${mktplcRef.name}-${mktplcRef.version}";
version = mktplcRef.version;
src = if (vsix != null)
then vsix
else fetchVsixFromVscodeMarketplace mktplcRef;
vscodeExtPublisher = mktplcRef.publisher;
vscodeExtName = mktplcRef.name;
vscodeExtUniqueId = "${mktplcRef.publisher}.${mktplcRef.name}";
});
buildVscodeMarketplaceExtension =
a@{
name ? "",
src ? null,
vsix ? null,
mktplcRef,
...
}:
assert "" == name;
assert null == src;
buildVscodeExtension (
(removeAttrs a [
"mktplcRef"
"vsix"
])
// {
name = "${mktplcRef.publisher}-${mktplcRef.name}-${mktplcRef.version}";
version = mktplcRef.version;
src = if (vsix != null) then vsix else fetchVsixFromVscodeMarketplace mktplcRef;
vscodeExtPublisher = mktplcRef.publisher;
vscodeExtName = mktplcRef.name;
vscodeExtUniqueId = "${mktplcRef.publisher}.${mktplcRef.name}";
}
);
mktplcRefAttrList = [
"name"
@ -82,14 +106,18 @@ let
"arch"
];
mktplcExtRefToExtDrv = ext:
buildVscodeMarketplaceExtension (removeAttrs ext mktplcRefAttrList // {
mktplcRef = builtins.intersectAttrs (lib.genAttrs mktplcRefAttrList (_: null)) ext;
});
mktplcExtRefToExtDrv =
ext:
buildVscodeMarketplaceExtension (
removeAttrs ext mktplcRefAttrList
// {
mktplcRef = builtins.intersectAttrs (lib.genAttrs mktplcRefAttrList (_: null)) ext;
}
);
extensionFromVscodeMarketplace = mktplcExtRefToExtDrv;
extensionsFromVscodeMarketplace = mktplcExtRefList:
builtins.map extensionFromVscodeMarketplace mktplcExtRefList;
extensionsFromVscodeMarketplace =
mktplcExtRefList: builtins.map extensionFromVscodeMarketplace mktplcExtRefList;
vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
inherit lib extensionsFromVscodeMarketplace writeShellScriptBin;
@ -102,7 +130,13 @@ let
};
vscodeEnv = import ./vscodeEnv.nix {
inherit lib buildEnv writeShellScriptBin extensionsFromVscodeMarketplace jq;
inherit
lib
buildEnv
writeShellScriptBin
extensionsFromVscodeMarketplace
jq
;
vscodeDefault = vscode;
};
@ -139,9 +173,16 @@ let
toExtensionJson = extensions: builtins.toJSON (map toExtensionJsonEntry extensions);
in
{
inherit fetchVsixFromVscodeMarketplace buildVscodeExtension
buildVscodeMarketplaceExtension extensionFromVscodeMarketplace
extensionsFromVscodeMarketplace
vscodeWithConfiguration vscodeExts2nix vscodeEnv
toExtensionJsonEntry toExtensionJson;
inherit
fetchVsixFromVscodeMarketplace
buildVscodeExtension
buildVscodeMarketplaceExtension
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.
{ lib
, buildEnv
, writeShellScriptBin
, extensionsFromVscodeMarketplace
, vscodeDefault
, jq
{
lib,
buildEnv,
writeShellScriptBin,
extensionsFromVscodeMarketplace,
vscodeDefault,
jq,
}:
##User input
{ vscode ? vscodeDefault
, nixExtensions ? []
, vscodeExtsFolderName ? ".vscode-exts"
# will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file
, settings ? {}
, createSettingsIfDoesNotExists ? true
, launch ? {}
, createLaunchIfDoesNotExists ? true
# will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file
, keybindings ? {}
, createKeybindingsIfDoesNotExists ? true
, user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir''
# if file exists will use it and import the extensions in it into this derivation else will use empty extensions list
# this file will be created/updated by vscodeExts2nix when vscode exists
, mutableExtensionsFile
{
vscode ? vscodeDefault,
nixExtensions ? [ ],
vscodeExtsFolderName ? ".vscode-exts",
# will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file
settings ? { },
createSettingsIfDoesNotExists ? true,
launch ? { },
createLaunchIfDoesNotExists ? true,
# will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file
keybindings ? { },
createKeybindingsIfDoesNotExists ? true,
user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir'',
# if file exists will use it and import the extensions in it into this derivation else will use empty extensions list
# this file will be created/updated by vscodeExts2nix when vscode exists
mutableExtensionsFile,
}:
let
mutableExtensionsFilePath = toString mutableExtensionsFile;
mutableExtensions = lib.optionals (builtins.pathExists mutableExtensionsFile) (import mutableExtensionsFilePath);
vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
vscodeDefault = vscode;
}
{
inherit nixExtensions mutableExtensions vscodeExtsFolderName user-data-dir;
};
mutableExtensions = lib.optionals (builtins.pathExists mutableExtensionsFile) (
import mutableExtensionsFilePath
);
vscodeWithConfiguration =
import ./vscodeWithConfiguration.nix
{
inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
vscodeDefault = vscode;
}
{
inherit
nixExtensions
mutableExtensions
vscodeExtsFolderName
user-data-dir
;
};
updateSettings = import ./updateSettings.nix { inherit lib writeShellScriptBin jq; };
userSettingsFolder = "${ user-data-dir }/User";
userSettingsFolder = "${user-data-dir}/User";
updateSettingsCmd = updateSettings {
settings = {
"extensions.autoCheckUpdates" = false;
"extensions.autoUpdate" = false;
"update.mode" = "none";
"extensions.autoCheckUpdates" = false;
"extensions.autoUpdate" = false;
"update.mode" = "none";
} // settings;
inherit userSettingsFolder;
createIfDoesNotExists = createSettingsIfDoesNotExists;
@ -62,14 +73,16 @@ let
symlinkFromUserSetting = (user-data-dir != "");
};
vscodeExts2nix = import ./vscodeExts2nix.nix {
inherit lib writeShellScriptBin;
vscodeDefault = vscodeWithConfiguration;
}
{
extensionsToIgnore = nixExtensions;
extensions = mutableExtensions;
};
vscodeExts2nix =
import ./vscodeExts2nix.nix
{
inherit lib writeShellScriptBin;
vscodeDefault = vscodeWithConfiguration;
}
{
extensionsToIgnore = nixExtensions;
extensions = mutableExtensions;
};
code = writeShellScriptBin "code" ''
${updateSettingsCmd}/bin/vscodeNixUpdate-settings
${updateLaunchCmd}/bin/vscodeNixUpdate-launch
@ -81,5 +94,11 @@ let
in
buildEnv {
name = "vscodeEnv";
paths = [ code vscodeExts2nix updateSettingsCmd updateLaunchCmd updateKeybindingsCmd ];
paths = [
code
vscodeExts2nix
updateSettingsCmd
updateLaunchCmd
updateKeybindingsCmd
];
}

View File

@ -1,11 +1,13 @@
with import <nixpkgs>{};
callPackage (import ./vscodeEnv.nix) {
extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
vscodeDefault = vscode;
} {
mutableExtensionsFile = ./extensions.nix;
settings = {
a = "fdsdf";
t = "test";
};
}
with import <nixpkgs> { };
callPackage (import ./vscodeEnv.nix)
{
extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
vscodeDefault = vscode;
}
{
mutableExtensionsFile = ./extensions.nix;
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
{ lib
, vscodeDefault
, writeShellScriptBin
{
lib,
vscodeDefault,
writeShellScriptBin,
}:
##User input
{ vscode ? vscodeDefault
, extensionsToIgnore ? []
# will use those extensions to get sha256 if still exists when executed.
, extensions ? []
{
vscode ? vscodeDefault,
extensionsToIgnore ? [ ],
# will use those extensions to get sha256 if still exists when executed.
extensions ? [ ],
}:
let
mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
@ -17,22 +19,32 @@ writeShellScriptBin "vscodeExts2nix" ''
echo '['
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
[[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
name=''${BASH_REMATCH[2]}
publisher=''${BASH_REMATCH[1]}
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"@([^.]*)"
if [[ $extensions =~ $reCurrentExt ]]; then
sha256=''${BASH_REMATCH[1]}
else
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

View File

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

View File

@ -115,7 +115,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Access, organize and share your photos";
mainProgram = "gnome-photos";
homepage = "https://wiki.gnome.org/Apps/Photos";
homepage = "https://gitlab.gnome.org/GNOME/gnome-photos";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Gthumb";
homepage = "https://gitlab.gnome.org/GNOME/gthumb";
description = "Image browser and viewer for GNOME";
mainProgram = "gthumb";
platforms = platforms.linux;

View File

@ -14,14 +14,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
version = "566";
version = "572";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "refs/tags/v${version}";
hash = "sha256-0vz2UnfU7yZIy1S+KOXLFrlQDuPCbpSw1GYEK8YZ/Qc=";
hash = "sha256-mLb4rUsoMDxl7lPrrRJq/bWSqZlgg94efHJzgykZJ/g=";
};
nativeBuildInputs = [

View File

@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/OCRFeeder";
homepage = "https://gitlab.gnome.org/GNOME/ocrfeeder";
description = "Complete Optical Character Recognition and Document Analysis and Recognition program";
maintainers = with maintainers; [ doronbehar ];
license = licenses.gpl3Plus;

View File

@ -35,8 +35,6 @@
, gsettings-desktop-schemas
}:
# for dependencies see https://wiki.gnome.org/Apps/Shotwell/BuildingAndInstalling
stdenv.mkDerivation (finalAttrs: {
pname = "shotwell";
version = "0.32.6";
@ -97,9 +95,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "Popular photo organizer for the GNOME desktop";
mainProgram = "shotwell";
homepage = "https://wiki.gnome.org/Apps/Shotwell";
homepage = "https://gitlab.gnome.org/GNOME/shotwell";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [];
maintainers = with maintainers; [ bobby285271 ];
platforms = platforms.linux;
};
})

View File

@ -11,11 +11,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "texturepacker";
version = "7.2.0";
version = "7.3.0";
src = fetchurl {
url = "https://www.codeandweb.com/download/texturepacker/${finalAttrs.version}/TexturePacker-${finalAttrs.version}.deb";
hash = "sha256-64aAg8V61MwJjFLYcf/nv5Bp7W0+cQBZac2e1HzkJBw=";
hash = "sha256-0i6LDrLBvTFKC5kW2PXP3Be6boUIJZ0fd1JG6FoS1kQ=";
};
nativeBuildInputs = [

View File

@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Small GTK application to allow to keep a diary of your life";
mainProgram = "almanah";
homepage = "https://wiki.gnome.org/Apps/Almanah_Diary";
homepage = "https://gitlab.gnome.org/GNOME/almanah";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = teams.gnome.members;

View File

@ -1,14 +1,12 @@
{ lib, stdenv, fetchFromSourcehut, python3, help2man }:
{ lib, stdenv, fetchzip, python3, help2man }:
stdenv.mkDerivation rec {
pname = "fead";
version = "0.1.3";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~cnx";
repo = pname;
rev = version;
sha256 = "sha256-cW0GxyvC9url2QAAWD0M2pR4gBiPA3eeAaw77TwMV/0=";
src = fetchzip {
url = "https://trong.loang.net/~cnx/fead/snapshot/fead-${version}.tar.gz";
hash = "sha256-cbU379Zz+mwRqEHiDUlGvWheLkkr0YidHeVs/1Leg38=";
};
nativeBuildInputs = [ help2man ];
@ -29,9 +27,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Advert generator from web feeds";
homepage = "https://git.sr.ht/~cnx/fead";
homepage = "https://trong.loang.net/~cnx/fead";
license = licenses.agpl3Plus;
changelog = "https://git.sr.ht/~cnx/fead/refs/${version}";
changelog = "https://trong.loang.net/~cnx/fead/tag?h=${version}";
maintainers = with maintainers; [ McSinyx ];
mainProgram = "fead";
};

View File

@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Tool for writing an ISO file to multiple USB devices at once";
mainProgram = "gnome-multi-writer";
homepage = "https://wiki.gnome.org/Apps/MultiWriter";
homepage = "https://gitlab.gnome.org/GNOME/gnome-multi-writer";
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;

View File

@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Recipe management application for GNOME";
mainProgram = "gnome-recipes";
homepage = "https://wiki.gnome.org/Apps/Recipes";
homepage = "https://gitlab.gnome.org/GNOME/recipes";
maintainers = teams.gnome.members;
license = licenses.gpl3Plus;
platforms = platforms.unix;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gum";
version = "0.13.0";
version = "0.14.0";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = pname;
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 = [
installShellFiles

View File

@ -18,14 +18,14 @@
mkDerivation rec {
pname = "qcad";
version = "3.29.4.1";
version = "3.29.6.2";
src = fetchFromGitHub {
name = "qcad-${version}-src";
owner = "qcad";
repo = "qcad";
rev = "v${version}";
hash = "sha256-00lPgiE3hsP3SL96ygBP91CaAWi1IGOYUO7zC/ORG1U=";
hash = "sha256-NKWuvhVGtlhWOfV0MWyViTgk0luA8mvnwQS0TZj7Ulc=";
};
patches = [

View File

@ -72,7 +72,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
description = "A new GNOME web browser";
mainProgram = "eolie";
homepage = "https://wiki.gnome.org/Apps/Eolie";
homepage = "https://gitlab.gnome.org/World/eolie";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ samdroid-apps ];
platforms = platforms.linux;

View File

@ -208,8 +208,8 @@ stdenv.mkDerivation rec {
# fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024
# indicates the system fonts.conf being used instead.
FONTCONFIG_FILE=$MB_IN_STORE/fontconfig/fonts.conf
sed -i "$FONTCONFIG_FILE" \
-e "s,<dir>fonts</dir>,<dir>$MB_IN_STORE/fonts</dir>,"
substituteInPlace "$FONTCONFIG_FILE" \
--replace-fail '<dir prefix="cwd">fonts</dir>' "<dir>$MB_IN_STORE/fonts</dir>"
mkdir -p $out/bin

View File

@ -199,8 +199,8 @@ stdenv.mkDerivation rec {
''}
# Fixup paths to pluggable transports.
sed -i TorBrowser/Data/Tor/torrc-defaults \
-e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g"
substituteInPlace TorBrowser/Data/Tor/torrc-defaults \
--replace-fail './TorBrowser' "$TBB_IN_STORE/TorBrowser"
# Fixup obfs transport. Work around patchelf failing to set
# interpreter for pre-compiled Go binaries by invoking the interpreter
@ -263,8 +263,8 @@ stdenv.mkDerivation rec {
# fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024
# indicates the system fonts.conf being used instead.
FONTCONFIG_FILE=$TBB_IN_STORE/fontconfig/fonts.conf
sed -i "$FONTCONFIG_FILE" \
-e "s,<dir>fonts</dir>,<dir>$TBB_IN_STORE/fonts</dir>,"
substituteInPlace "$FONTCONFIG_FILE" \
--replace-fail '<dir prefix="cwd">fonts</dir>' "<dir>$TBB_IN_STORE/fonts</dir>"
# Hard-code paths to geoip data files. TBB resolves the geoip files
# relative to torrc-defaults_path but if we do not hard-code them

View File

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

View File

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

View File

@ -21,7 +21,7 @@ let
categories = [ "Network" ];
});
appimageContents = appimageTools.extractType2 {
appimageContents = appimageTools.extract {
inherit pname version src;
};
@ -31,7 +31,6 @@ appimageTools.wrapType2 {
extraInstallCommands = ''
mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps
ln -sf hamsket-${version} $out/bin/${pname}
install -Dm644 ${appimageContents}/usr/share/icons/hicolor/256x256/apps/hamsket*.png $out/share/icons/hicolor/256x256/apps/${pname}.png
install -Dm644 ${desktopItem}/share/applications/* $out/share/applications
'';

View File

@ -2,7 +2,7 @@
callPackage ./generic.nix { } rec {
pname = "signal-desktop-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";
hash = "sha256-BbXogNB2BxFQTpvHw0JVOaCV2PQHEQbafSavVcBd/Fg=";
hash = "sha256-oswS1aRkpiTNSpQ6CqfJnoM412RRwraeht4iqq8L1Bk=";
}

View File

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

View File

@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
PKG_CONFIG_LIBEDATASERVERUI_1_2_UIMODULEDIR = "${placeholder "out"}/lib/evolution-data-server/ui-modules";
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Evolution";
homepage = "https://gitlab.gnome.org/GNOME/evolution";
description = "Personal information management application that provides integrated mail, calendaring and address book functionality";
mainProgram = "evolution";
maintainers = teams.gnome.members;

View File

@ -5,14 +5,14 @@
let
description = "Desktop sharing application, providing remote support and online meetings";
in stdenv.mkDerivation rec {
in stdenv.mkDerivation (finalAttrs: {
pname = "anydesk";
version = "6.3.2";
src = fetchurl {
urls = [
"https://download.anydesk.com/linux/anydesk-${version}-amd64.tar.gz"
"https://download.anydesk.com/linux/generic-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-${finalAttrs.version}-amd64.tar.gz"
];
hash = "sha256-nSY4qHRsEvQk4M3JDHalAk3C6Y21WlfDQ2Gpp6/jjMs=";
};
@ -54,7 +54,7 @@ in stdenv.mkDerivation rec {
postFixup = ''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--set-rpath "${lib.makeLibraryPath buildInputs}" \
--set-rpath "${lib.makeLibraryPath finalAttrs.buildInputs}" \
$out/bin/anydesk
# 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;
homepage = "https://www.anydesk.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ shyim cheriimoya ];
maintainers = with lib.maintainers; [ shyim cheriimoya ];
};
}
})

View File

@ -76,13 +76,13 @@ let
in
stdenv.mkDerivation rec {
pname = "freerdp";
version = "2.11.5";
version = "2.11.7";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = version;
hash = "sha256-WyYBIiIQNDHydJqU3jWNItJU2/sYnRpGHCXE9Xhom5M=";
hash = "sha256-w+xyMNFmKylSheK0yAGl8J6MXly/HUjjAfR9Qq3s/kA=";
};
postPatch = ''

View File

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Gnote";
homepage = "https://gitlab.gnome.org/GNOME/gnote";
description = "A note taking application";
mainProgram = "gnote";
maintainers = with maintainers; [ jfvillablanca ];

View File

@ -77,7 +77,7 @@ python3Packages.buildPythonApplication rec {
"Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
'';
homepage = "https://wiki.gnome.org/Apps/GTG";
homepage = "https://github.com/getting-things-gnome/gtg";
downloadPage = "https://github.com/getting-things-gnome/gtg/releases";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ oyren ];

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
cairo clutter-gtk ];
meta = with lib; {
homepage = "https://wiki.gnome.org/action/show/Apps/Pinpoint";
homepage = "https://gitlab.gnome.org/Archive/pinpoint";
description = "A tool for making hackers do excellent presentations";
license = licenses.lgpl21;
platforms = platforms.linux;

View File

@ -27,13 +27,13 @@
stdenv.mkDerivation rec {
pname = "planify";
version = "4.6";
version = "4.7";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
hash = "sha256-vyw8SjI8EM9giYpAsCNppgSydPEBNz2sbFahEKmKe6w=";
hash = "sha256-5hiVTU1w3Rk/BdxYwDB0Y+EZFnSAaEWtx19IB1ak1yY=";
};
nativeBuildInputs = [

View File

@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Project management tool for the GNOME desktop";
mainProgram = "planner";
homepage = "https://wiki.gnome.org/Apps/Planner";
homepage = "https://gitlab.gnome.org/World/planner";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ amiloradovsky ];
platforms = lib.platforms.unix;

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