Merge master into haskell-updates
This commit is contained in:
commit
2918b2c876
1
.github/workflows/check-nix-format.yml
vendored
1
.github/workflows/check-nix-format.yml
vendored
@ -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
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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"
|
||||
|
@ -328,7 +328,7 @@ rec {
|
||||
# BSDs
|
||||
|
||||
x86_64-freebsd = {
|
||||
config = "x86_64-unknown-freebsd13";
|
||||
config = "x86_64-unknown-freebsd";
|
||||
useLLVM = true;
|
||||
};
|
||||
|
||||
|
@ -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 = { }; };
|
||||
|
@ -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; },
|
||||
}:
|
||||
|
||||
|
@ -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 ++ ... */);
|
||||
|
@ -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";
|
||||
|
@ -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`.
|
||||
|
||||
|
@ -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; };
|
||||
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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].
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -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):
|
||||
|
@ -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")"
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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).
|
||||
|
@ -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 ]
|
||||
)
|
||||
}'';
|
||||
|
||||
|
@ -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 ? {},
|
||||
|
@ -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")
|
||||
|
||||
|
@ -22,4 +22,4 @@ foldl
|
||||
};
|
||||
})
|
||||
{ }
|
||||
[ 26 27 28 ]
|
||||
[ 27 28 29 ]
|
||||
|
@ -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"
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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" ];
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 \
|
||||
|
@ -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";
|
||||
|
@ -1,6 +1,4 @@
|
||||
{ lib
|
||||
, vscode-utils
|
||||
}:
|
||||
{ lib, vscode-utils }:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ lib, vscode-utils, terraform-ls }:
|
||||
{
|
||||
lib,
|
||||
vscode-utils,
|
||||
terraform-ls,
|
||||
}:
|
||||
vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
mktplcRef = {
|
||||
name = "terraform";
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
{ lib, vscode-utils, jq, moreutils }:
|
||||
{
|
||||
lib,
|
||||
vscode-utils,
|
||||
jq,
|
||||
moreutils,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
|
@ -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.";
|
||||
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ lib, vscode-utils, xsel }:
|
||||
{
|
||||
lib,
|
||||
vscode-utils,
|
||||
xsel,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, vscode-utils
|
||||
, lua-language-server
|
||||
{
|
||||
lib,
|
||||
vscode-utils,
|
||||
lua-language-server,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
|
@ -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}
|
||||
''
|
||||
)
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
with import <nixpkgs>{};
|
||||
callPackage (import ./updateSettings.nix) {} {
|
||||
with import <nixpkgs> { };
|
||||
callPackage (import ./updateSettings.nix) { } {
|
||||
settings = {
|
||||
a = "fdsdf";
|
||||
};
|
||||
|
@ -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.
|
||||
|
@ -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; });
|
||||
})
|
||||
|
@ -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
|
||||
;
|
||||
}
|
||||
|
@ -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
|
||||
];
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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}"
|
||||
} "$@"
|
||||
''
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
})
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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" ];
|
||||
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -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=";
|
||||
}
|
||||
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -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;
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -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 = ''
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user