Merge d9dd002a29 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2025-05-27 00:22:33 +00:00
committed by GitHub
254 changed files with 2987 additions and 1289 deletions
+4
View File
@@ -40,6 +40,10 @@ In order to do so, add yourself to the
[`maintainer-list.nix`](./maintainer-list.nix), and then to the desired
package's `meta.maintainers` list, and send a PR with the changes.
If you're adding yourself as a maintainer as part of another PR (in which
you become a maintainer of a package, for example), make your change to
`maintainer-list.nix` in a separate commit.
### How to lose maintainer status
Maintainers who have become inactive on a given package can be removed. This
+17
View File
@@ -3486,6 +3486,11 @@
githubId = 50839;
name = "Brian Jones";
};
bokicoder = {
github = "bokicoder";
githubId = 193465580;
name = "bokicoder";
};
boldikoller = {
email = "boldi.koller@wtss.eu";
github = "boldikoller";
@@ -5669,6 +5674,12 @@
githubId = 4971975;
name = "Janne Heß";
};
dashietm = {
email = "fabio.lenherr@gmail.com";
github = "DashieTM";
githubId = 72016555;
name = "Fabio Lenherr";
};
dasisdormax = {
email = "dasisdormax@mailbox.org";
github = "dasisdormax";
@@ -13638,6 +13649,12 @@
github = "L0L1P0P1";
githubId = 73695812;
};
l0r3v = {
email = "l0r3v@pasqui.casa";
github = "l0r3v";
githubId = 27364685;
name = "Lorenzo Pasqui";
};
l1npengtul = {
email = "l1npengtul@l1npengtul.lol";
github = "l1npengtul";
@@ -48,43 +48,43 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [scanservjs](https://github.com/sbs20/scanservjs/), a web UI for SANE scanners. Available at [services.scanservjs](#opt-services.scanservjs.enable).
- [Kimai](https://www.kimai.org/), a web-based multi-user time-tracking application. Available as [services.kimai](options.html#opt-services.kimai).
- [Kimai](https://www.kimai.org/), a web-based multi-user time-tracking application. Available as [services.kimai](#opt-services.kimai.sites).
- [Kismet](https://www.kismetwireless.net/), a Wi-Fi, Bluetooth, and RF monitoring application supporting a wide range of hardware. Available as [services.kismet](#opt-services.kismet.enable).
- [vwifi](https://github.com/Raizo62/vwifi), a Wi-Fi simulator daemon leveraging the `mac80211_hwsim` and `vhost_vsock` kernel modules for efficient simulation of multi-node Wi-Fi networks. Available as [services.vwifi](#opt-services.vwifi.client.enable).
- [Oncall](https://oncall.tools), a web-based calendar tool designed for scheduling and managing on-call shifts. Available as [services.oncall](options.html#opt-services.oncall).
- [Oncall](https://oncall.tools), a web-based calendar tool designed for scheduling and managing on-call shifts. Available as [services.oncall](#opt-services.oncall.enable).
- [Homer](https://homer-demo.netlify.app/), a very simple static homepage for your server. Available as [services.homer](options.html#opt-services.homer).
- [Homer](https://homer-demo.netlify.app/), a very simple static homepage for your server. Available as [services.homer](#opt-services.homer.enable).
- [Ghidra](https://ghidra-sre.org/), a software reverse engineering (SRE) suite of tools. Available as [programs.ghidra](options.html#opt-programs.ghidra).
- [Ghidra](https://ghidra-sre.org/), a software reverse engineering (SRE) suite of tools. Available as [programs.ghidra](#opt-programs.ghidra.enable).
- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](options.html#opt-services.omnom.enable).
- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](#opt-services.omnom.enable).
- [Yggdrasil-Jumper](https://github.com/one-d-wide/yggdrasil-jumper), an independent project that aims to transparently reduce latency of a connection over Yggdrasil network, utilizing NAT traversal to automatically bypass intermediary nodes. Available as [services.yggdrasil-jumper](#opt-services.yggdrasil-jumper.enable).
- [xpad-noone](https://github.com/medusalix/xpad-noone) is the original upstream xpad driver from the Linux kernel with support for Xbox One controllers removed — especially useful for people who want to use an XBox One controller under the `xone` driver and an Xbox 360 controller under the `xpad` driver at the same time. Available as [hardware.xpad-noone](options.html#hardware.xpad-noone).
- [xpad-noone](https://github.com/medusalix/xpad-noone) is the original upstream xpad driver from the Linux kernel with support for Xbox One controllers removed — especially useful for people who want to use an XBox One controller under the `xone` driver and an Xbox 360 controller under the `xpad` driver at the same time. Available as [hardware.xpad-noone](#opt-hardware.xpad-noone.enable).
- [uMurmur](https://umurmur.net), minimalistic Mumble server primarily targeted to run on embedded computers. Available as [services.umurmur](options.html#opt-services.umurmur).
- [uMurmur](https://umurmur.net), minimalistic Mumble server primarily targeted to run on embedded computers. Available as [services.umurmur](#opt-services.umurmur.enable).
- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable).
- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](#opt-services.zenohd.enable).
- [ytdl-sub](https://github.com/jmbannon/ytdl-sub), a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as [services.ytdl-sub](options.html#opt-services.ytdl-sub.instances).
- [ytdl-sub](https://github.com/jmbannon/ytdl-sub), a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as [services.ytdl-sub](#opt-services.ytdl-sub.instances).
- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](#opt-services.marytts.enable).
- [Continuwuity](https://continuwuity.org/), a federated chat server implementing the Matrix protocol, forked from Conduwuit. Available as [services.matrix-continuwuity](#opt-services.matrix-continuwuity.enable).
- [Reposilite](https://reposilite.com), a lightweight and easy-to-use repository manager for Maven-based artifacts in the JVM ecosystem. Available as [services.reposilite](options.html#opt-services.reposilite).
- [Reposilite](https://reposilite.com), a lightweight and easy-to-use repository manager for Maven-based artifacts in the JVM ecosystem. Available as [services.reposilite](#opt-services.reposilite.enable).
- [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
- [networking.modemmanager](#opt-networking.modemmanager.enable) has been split out of [networking.networkmanager](#opt-networking.networkmanager.enable). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
- [Routinator 3000](https://nlnetlabs.nl/projects/routing/routinator/), a full-featured RPKI Relying Party software package that runs as a service which periodically downloads and verifies RPKI data.
- [Routinator 3000](https://nlnetlabs.nl/projects/routing/routinator/), a full-featured RPKI Relying Party software package that runs as a service which periodically downloads and verifies RPKI data. Available as [services.routinator](#opt-services.routinator.enable).
- [doh-server](https://github.com/m13253/dns-over-https), a high performance DNS over HTTPS server. Available as [services.doh-server](options.html#opt-services.doh-server.enable).
- [doh-server](https://github.com/m13253/dns-over-https), a high performance DNS over HTTPS server. Available as [services.doh-server](#opt-services.doh-server.enable).
- [ncps](https://github.com/kalbasit/ncps), a Nix binary cache proxy service implemented in Go using [go-nix](https://github.com/nix-community/go-nix). Available as [services.ncps](options.html#opt-services.ncps.enable).
- [ncps](https://github.com/kalbasit/ncps), a Nix binary cache proxy service implemented in Go using [go-nix](https://github.com/nix-community/go-nix). Available as [services.ncps](#opt-services.ncps.enable).
- [Readeck](https://readeck.org/), a read-it later web-application. Available as [services.readeck](#opt-services.readeck.enable).
@@ -102,21 +102,21 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [Pinchflat](https://github.com/kieraneglin/pinchflat), a selfhosted YouTube media manager used to track channels and download videos on release. Available as [services.pinchflat](#opt-services.pinchflat.enable).
- [Amazon CloudWatch Agent](https://github.com/aws/amazon-cloudwatch-agent), the official telemetry collector for AWS CloudWatch and AWS X-Ray. Available as [services.amazon-cloudwatch-agent](options.html#opt-services.amazon-cloudwatch-agent.enable).
- [Amazon CloudWatch Agent](https://github.com/aws/amazon-cloudwatch-agent), the official telemetry collector for AWS CloudWatch and AWS X-Ray. Available as [services.amazon-cloudwatch-agent](#opt-services.amazon-cloudwatch-agent.enable).
- [Fluent Bit](https://github.com/fluent/fluent-bit), a fast Log, Metrics and Traces Processor and Forwarder. Available as [services.fluent-bit](#opt-services.fluent-bit.enable).
- [Bat](https://github.com/sharkdp/bat), a {manpage}`cat(1)` clone with wings. Available as [programs.bat](options.html#opt-programs.bat).
- [Bat](https://github.com/sharkdp/bat), a {manpage}`cat(1)` clone with wings. Available as [programs.bat](#opt-programs.bat.enable).
- [Autotier](https://github.com/45Drives/autotier), a passthrough FUSE filesystem. Available as [services.autotierfs](options.html#opt-services.autotierfs.enable).
- [Autotier](https://github.com/45Drives/autotier), a passthrough FUSE filesystem. Available as [services.autotierfs](#opt-services.autotierfs.enable).
- [PostgREST](https://postgrest.org), a standalone web server that turns your PostgreSQL database directly into a RESTful API. Available as [services.postgrest](options.html#opt-services.postgrest.enable).
- [PostgREST](https://postgrest.org), a standalone web server that turns your PostgreSQL database directly into a RESTful API. Available as [services.postgrest](#opt-services.postgrest.enable).
- [postgres-websockets](https://github.com/diogob/postgres-websockets), a middleware that adds websockets capabilities on top of PostgreSQL's asynchronous notifications using LISTEN and NOTIFY commands. Available as [services.postgres-websockets](options.html#opt-services.postgres-websockets.enable).
- [postgres-websockets](https://github.com/diogob/postgres-websockets), a middleware that adds websockets capabilities on top of PostgreSQL's asynchronous notifications using LISTEN and NOTIFY commands. Available as [services.postgres-websockets](#opt-services.postgres-websockets.enable).
- [µStreamer](https://github.com/pikvm/ustreamer), a lightweight MJPEG-HTTP streamer. Available as [services.ustreamer](options.html#opt-services.ustreamer).
- [µStreamer](https://github.com/pikvm/ustreamer), a lightweight MJPEG-HTTP streamer. Available as [services.ustreamer](#opt-services.ustreamer.enable).
- [Whoogle Search](https://github.com/benbusby/whoogle-search), a self-hosted, ad-free, privacy-respecting metasearch engine. Available as [services.whoogle-search](options.html#opt-services.whoogle-search.enable).
- [Whoogle Search](https://github.com/benbusby/whoogle-search), a self-hosted, ad-free, privacy-respecting metasearch engine. Available as [services.whoogle-search](#opt-services.whoogle-search.enable).
- [autobrr](https://autobrr.com), a modern download automation tool for torrents and usenets. Available as [services.autobrr](#opt-services.autobrr.enable).
@@ -124,31 +124,31 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [Froide-Govplan](https://github.com/okfde/froide-govplan), a web application government planer. Available as [services.froide-govplan](#opt-services.froide-govplan.enable).
- [agorakit](https://github.com/agorakit/agorakit), an organization tool for citizens' collectives. Available with [services.agorakit](options.html#opt-services.agorakit.enable).
- [agorakit](https://github.com/agorakit/agorakit), an organization tool for citizens' collectives. Available with [services.agorakit](#opt-services.agorakit.enable).
- [vivid](https://github.com/sharkdp/vivid), a generator for `LS_COLOR`. Available as [programs.vivid](#opt-programs.vivid.enable).
- [matrix-alertmanager](https://github.com/jaywink/matrix-alertmanager), a bot to receive Alertmanager webhook events and forward them to chosen Matrix rooms. Available as [services.matrix-alertmanager](options.html#opt-services.matrix-alertmanager.enable).
- [matrix-alertmanager](https://github.com/jaywink/matrix-alertmanager), a bot to receive Alertmanager webhook events and forward them to chosen Matrix rooms. Available as [services.matrix-alertmanager](#opt-services.matrix-alertmanager.enable).
- [waagent](https://github.com/Azure/WALinuxAgent), the Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. Available with [services.waagent](options.html#opt-services.waagent.enable).
- [waagent](https://github.com/Azure/WALinuxAgent), the Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. Available with [services.waagent](#opt-services.waagent.enable).
- [nfc-nci](https://github.com/StarGate01/ifdnfc-nci), an alternative NFC stack and PC/SC driver for the NXP PN54x chipset, commonly found in Lenovo systems as NXP1001 (NPC300). Available as [hardware.nfc-nci](#opt-hardware.nfc-nci.enable).
- [grav](https://getgrav.org/), a modern flat-file CMS. Available with [services.grav](options.html#opt-services.grav.enable).
- [grav](https://getgrav.org/), a modern flat-file CMS. Available with [services.grav](#opt-services.grav.enable).
- [duckdns](https://www.duckdns.org), free dynamic DNS. Available with [services.duckdns](options.html#opt-services.duckdns.enable).
- [duckdns](https://www.duckdns.org), free dynamic DNS. Available with [services.duckdns](#opt-services.duckdns.enable).
- [Zoxide](https://github.com/ajeetdsouza/zoxide), a smarter cd command, inspired by z and autojump. Available as [programs.zoxide](options.html#opt-programs.zoxide.enable).
- [Zoxide](https://github.com/ajeetdsouza/zoxide), a smarter cd command, inspired by z and autojump. Available as [programs.zoxide](#opt-programs.zoxide.enable).
- [victorialogs](https://docs.victoriametrics.com/victorialogs/), log database from VictoriaMetrics. Available as [services.victorialogs](#opt-services.victorialogs.enable).
- [gokapi](https://github.com/Forceu/Gokapi), Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported. Available with [services.gokapi](options.html#opt-services.gokapi.enable).
- [gokapi](https://github.com/Forceu/Gokapi), Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported. Available with [services.gokapi](#opt-services.gokapi.enable).
- [nostr-rs-relay](https://git.sr.ht/~gheartsfield/nostr-rs-relay/), This is a nostr relay, written in Rust. Available as [services.nostr-rs-relay](options.html#opt-services.nostr-rs-relay.enable).
- [nostr-rs-relay](https://git.sr.ht/~gheartsfield/nostr-rs-relay/), This is a nostr relay, written in Rust. Available as [services.nostr-rs-relay](#opt-services.nostr-rs-relay.enable).
- [haven](https://github.com/bitvora/haven), is a high availability vault for events on nostr. Available as [services.haven](options.html#opt-services.haven.enable).
- [haven](https://github.com/bitvora/haven), is a high availability vault for events on nostr. Available as [services.haven](#opt-services.haven.enable).
- [strfry](https://github.com/hoytech/strfry), a relay for the nostr protocol. Available as [services.strfry](options.html#opt-services.strfry.enable).
- [strfry](https://github.com/hoytech/strfry), a relay for the nostr protocol. Available as [services.strfry](#opt-services.strfry.enable).
- [Prometheus Node Cert Exporter](https://github.com/amimof/node-cert-exporter), a prometheus exporter to check for SSL cert expiry. Available as [services.prometheus.exporters.node-cert](#opt-services.prometheus.exporters.node-cert.enable).
@@ -172,9 +172,9 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [Fider](https://fider.io/), an open platform to collect and prioritize feedback. Available as [services.fider](#opt-services.fider.enable).
- [PDS](https://github.com/bluesky-social/pds), Personal Data Server for [bsky](https://bsky.social/). Available as [services.pds](option.html#opt-services.pds).
- [PDS](https://github.com/bluesky-social/pds), Personal Data Server for [bsky](https://bsky.social/). Available as [services.pds](#opt-services.pds.enable).
- [Anubis](https://github.com/TecharoHQ/anubis), a scraper defense software. Available as [services.anubis](options.html#opt-services.anubis).
- [Anubis](https://github.com/TecharoHQ/anubis), a scraper defense software. Available as [services.anubis](#opt-services.anubis.defaultOptions).
- [synapse-auto-compressor](https://github.com/matrix-org/rust-synapse-compress-state?tab=readme-ov-file#automated-tool-synapse_auto_compressor), a rust-based matrix-synapse state compressor for postgresql. Available as [services.synapse-auto-compressor](#opt-services.synapse-auto-compressor.enable).
@@ -204,15 +204,15 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [LiteLLM](https://github.com/BerriAI/litellm), a LLM Gateway to provide model access, fallbacks and spend tracking across 100+ LLMs. All in the OpenAI format. Available as [services.litellm](#opt-services.litellm.enable).
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](option.html#opt-services.buffyboard).
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](#opt-services.buffyboard.enable).
- [KanBoard](https://github.com/kanboard/kanboard), a project management tool that focuses on the Kanban methodology. Available as [services.kanboard](#opt-services.kanboard.enable).
- [git-worktree-switcher](https://github.com/mateusauler/git-worktree-switcher), switch between git worktrees with speed. Available as [programs.git-worktree-switcher](#opt-programs.git-worktree-switcher.enable).
- [GLPI-Agent](https://github.com/glpi-project/glpi-agent), GLPI Agent. Available as [services.glpiAgent](options.html#opt-services.glpiAgent.enable).
- [GLPI-Agent](https://github.com/glpi-project/glpi-agent), GLPI Agent. Available as [services.glpiAgent](#opt-services.glpiAgent.enable).
- [pgBackRest](https://pgbackrest.org), a reliable backup and restore solution for PostgreSQL. Available as [services.pgbackrest](options.html#opt-services.pgbackrest.enable).
- [pgBackRest](https://pgbackrest.org), a reliable backup and restore solution for PostgreSQL. Available as [services.pgbackrest](#opt-services.pgbackrest.enable).
- [Recyclarr](https://github.com/recyclarr/recyclarr) a TRaSH Guides synchronizer for Sonarr and Radarr. Available as [services.recyclarr](#opt-services.recyclarr.enable).
@@ -232,7 +232,7 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [bitbox-bridge](https://github.com/BitBoxSwiss/bitbox-bridge), a bridge software that connects BitBox hardware wallets to computers & web wallets like [Rabby](https://rabby.io/). Allows one to interact & transact with smart contracts, Web3 websites & financial services without storing private keys anywhere other than the hardware wallet. Available as [services.bitbox-bridge](#opt-services.bitbox-bridge.enable).
- [GoDNS](https://github.com/TimothyYe/godns), a dynamic DNS client written in Go, which supports multiple DNS providers. Available as [services.godns](option.html#opt-services.godns.enable).
- [GoDNS](https://github.com/TimothyYe/godns), a dynamic DNS client written in Go, which supports multiple DNS providers. Available as [services.godns](#opt-services.godns.enable).
- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes. Available as [services.cook-cli](#opt-services.cook-cli.enable).
@@ -258,7 +258,7 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- 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.11, `pkgs.nextcloud30` will be installed by default.
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud31` will be installed by default.
- Please note that an upgrade from v29 (or older) to v31 directly is not possible. Please upgrade to `nextcloud30` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud30;`](options.html#opt-services.nextcloud.package).
- Please note that an upgrade from v29 (or older) to v31 directly is not possible. Please upgrade to `nextcloud30` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud30;`](#opt-services.nextcloud.package).
- `services.cloudflare-dyndns.apiTokenFile` now must be just your Cloudflare api token. Previously it was supposed to be a file of the form `CLOUDFLARE_API_TOKEN=...`.
@@ -446,7 +446,7 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [`system.stateVersion`](#opt-system.stateVersion) is now validated and must be in the `"YY.MM"` format, ideally corresponding to a prior NixOS release.
- [`hardware.xone`](options.html#opt-hardware.xone.enable) will also enable [`hardware.xpad-noone`](options.html#opt-hardware.xpad-noone.enable) to provide Xbox 360 driver by default.
- [`hardware.xone`](#opt-hardware.xone.enable) will also enable [`hardware.xpad-noone`](#opt-hardware.xpad-noone.enable) to provide Xbox 360 driver by default.
- `services.mysql` now supports easy cluster setup via [`services.mysql.galeraCluster`](#opt-services.mysql.galeraCluster.enable) option.
@@ -515,6 +515,8 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- `bind.cacheNetworks` now only controls access for recursive queries, where it previously controlled access for all queries.
- The [Starship](https://starship.rs) module now automatically loads the starship prompt when using [`xonsh`](https://xon.sh).
- [`services.mongodb.enableAuth`](#opt-services.mongodb.enableAuth) now uses the newer [mongosh](https://github.com/mongodb-js/mongosh) shell instead of the legacy shell to configure the initial superuser. You can configure the mongosh package to use through the [`services.mongodb.mongoshPackage`](#opt-services.mongodb.mongoshPackage) option.
- There is a new set of NixOS test tools for testing virtual Wi-Fi networks in many different topologies. See the {option}`services.vwifi` module, {option}`services.kismet` NixOS test, and [manual](https://nixos.org/manual/nixpkgs/unstable/#sec-nixos-test-wifi) for documentation and examples.
@@ -523,7 +525,7 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- Exposed the `paperless-manage` script package via the `services.paperless.manage` read-only option.
- New options for the declarative configuration of the user space part of ALSA have been introduced under [hardware.alsa](options.html#opt-hardware.alsa.enable), including setting the default capture and playback device, defining sound card aliases and volume controls.
- New options for the declarative configuration of the user space part of ALSA have been introduced under [hardware.alsa](#opt-hardware.alsa.enable), including setting the default capture and playback device, defining sound card aliases and volume controls.
Note: these are intended for users not running a sound server like PulseAudio or PipeWire, but having ALSA as their only sound system.
- `services.k3s` now provides the `autoDeployCharts` option that allows to automatically deploy Helm charts via the k3s Helm controller.
+51 -13
View File
@@ -39,6 +39,14 @@
This partition layout is unsuitable for UEFI.
#### `legacy+boot`
The image is partitioned using MBR and:
- creates a FAT32 BOOT partition from 1MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
- creates a primary ext4 partition starting after the boot partition and extending to the full disk image
This partition layout is unsuitable for UEFI.
#### `legacy+gpt`
This partition table type uses GPT and:
@@ -106,7 +114,7 @@
additionalSpace ? "512M",
# size of the boot partition, is only used if partitionTableType is
# either "efi" or "hybrid"
# either "efi", "hybrid", or "legacy+boot"
# This will be undersized slightly, as this is actually the offset of
# the end of the partition. Generally it will be 1MiB smaller.
bootSize ? "256M",
@@ -197,6 +205,7 @@
assert (
lib.assertOneOf "partitionTableType" partitionTableType [
"legacy"
"legacy+boot"
"legacy+gpt"
"efi"
"efixbootldr"
@@ -260,6 +269,7 @@ let
{
# switch-case
legacy = "1";
"legacy+boot" = "2";
"legacy+gpt" = "2";
efi = "2";
efixbootldr = "3";
@@ -276,6 +286,14 @@ let
mkpart primary ext4 1MiB 100% \
print
'';
"legacy+boot" = ''
parted --script $diskImage -- \
mklabel msdos \
mkpart primary fat32 1MiB $bootSizeMiB \
set 1 boot on \
mkpart primary ext4 $bootSizeMiB 100% \
print
'';
"legacy+gpt" = ''
parted --script $diskImage -- \
mklabel gpt \
@@ -540,6 +558,12 @@ let
# Add the 1MiB aligned reserved space (includes MBR)
reservedSpace=$(( mebibyte ))
''
else if partitionTableType == "legacy+boot" then
''
# The explanation from the above "efi" case applies here too,
# but gptSpace is not needed without a GPT.
reservedSpace=$(( bootSize ))
''
else
''
reservedSpace=0
@@ -694,6 +718,11 @@ let
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
''}
${lib.optionalString (partitionTableType == "legacy+boot") ''
mkdir -p /mnt/boot
mkfs.vfat -n BOOT /dev/vda1
mount /dev/vda1 /mnt/boot
''}
# Install a configuration.nix
mkdir -p /mnt/etc/nixos
@@ -702,19 +731,28 @@ let
''}
${lib.optionalString installBootLoader ''
# In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
# Use this option to create a symlink from vda to any arbitrary device you want.
${lib.optionalString (config.boot.loader.grub.enable) (
lib.concatMapStringsSep " " (
device:
lib.optionalString (device != "/dev/vda") ''
mkdir -p "$(dirname ${device})"
ln -s /dev/vda ${device}
''
) config.boot.loader.grub.devices
)}
# In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
# Use this option to create a symlink from vda to any arbitrary device you want.
${lib.optionalString (config.boot.loader.grub.enable) (
lib.concatMapStringsSep " " (
device:
lib.optionalString (device != "/dev/vda") ''
mkdir -p "$(dirname ${device})"
ln -s /dev/vda ${device}
''
) config.boot.loader.grub.devices
)}
${
let
limine = config.boot.loader.limine;
in
lib.optionalString (limine.enable && limine.biosSupport && limine.biosDevice != "/dev/vda") ''
mkdir -p "$(dirname ${limine.biosDevice})"
ln -s /dev/vda ${limine.biosDevice}
''
}
# Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
# Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
# NOTE: systemd-boot-builder.py calls nix-env --list-generations which
# clobbers $HOME/.nix-defexpr/channels/nixos This would cause a folder
+9 -1
View File
@@ -477,7 +477,7 @@ let
(mkIf config.isNormalUser {
group = mkDefault "users";
createHome = mkDefault true;
home = mkDefault "/home/${config.name}";
home = mkDefault "${cfg.defaultUserHome}/${config.name}";
homeMode = mkDefault "700";
useDefaultShell = mkDefault true;
isSystemUser = mkDefault false;
@@ -753,6 +753,14 @@ in
'';
};
users.defaultUserHome = mkOption {
type = types.str;
default = "/home";
description = ''
The default home directory for normal users.
'';
};
# systemd initrd
boot.initrd.systemd.users = mkOption {
description = ''
+6 -1
View File
@@ -17,10 +17,15 @@ in
Your user needs to be in the `feedbackd` group to trigger effects
'';
package = lib.mkPackageOption pkgs "feedbackd" { };
theme-package = lib.mkPackageOption pkgs "feedbackd-device-themes" {
nullable = true;
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
environment.systemPackages = [
cfg.package
] ++ (if cfg.theme-package != null then [ cfg.theme-package ] else [ ]);
services.dbus.packages = [ cfg.package ];
services.udev.packages = [ cfg.package ];
+2 -2
View File
@@ -19,10 +19,10 @@ in
package = lib.mkPackageOption pkgs "nh" { };
flake = lib.mkOption {
type = lib.types.nullOr lib.types.path;
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
The path that will be used for the `NH_FLAKE` environment variable.
The string that will be used for the `NH_FLAKE` environment variable.
`NH_FLAKE` is used by nh as the default flake for performing actions, such as
`nh os switch`. This behaviour can be overriden per-command with environment
+1 -1
View File
@@ -217,7 +217,7 @@ in
# /etc/default/useradd: configuration for useradd.
"default/useradd".source = pkgs.writeText "useradd" ''
GROUP=100
HOME=/home
HOME=${config.users.defaultUserHome}
SHELL=${utils.toShellPath config.users.defaultUserShell}
'';
};
+12
View File
@@ -158,6 +158,18 @@ in
eval "$(${cfg.package}/bin/starship init zsh)"
fi
'';
# use `config` instead of `${initOption}` because `programs.xonsh` doesn't have `shellInit` or `promptInit`
programs.xonsh.config = ''
if $TERM != "dumb":
# don't set STARSHIP_CONFIG automatically if there's a user-specified
# config file. starship appears to use a hardcoded config location
# rather than one inside an XDG folder:
# https://github.com/starship/starship/blob/686bda1706e5b409129e6694639477a0f8a3f01b/src/configure.rs#L651
if not `$HOME/.config/starship.toml`:
$STARSHIP_CONFIG = ('${settingsFile}')
execx($(${cfg.package}/bin/starship init xonsh))
'';
};
meta.maintainers = pkgs.starship.meta.maintainers;
@@ -247,7 +247,7 @@ in
# Since we're using DynamicUser, we can't add the e.g. nginx user to
# a postgrest group, so the unix socket must be world-readable to make it useful.
services.postgrest.settings.service-unix-socket-mode = "666";
services.postgrest.settings.server-unix-socket-mode = "666";
systemd.services.postgrest = {
description = "PostgREST";
+1 -1
View File
@@ -87,7 +87,7 @@ in
default = { };
example = lib.literalExpression ''
{
root = {
"-" = {
spec = "LABEL=root";
hashTableSizeMB = 2048;
verbosity = "crit";
@@ -7,6 +7,7 @@
let
cfg = config.services.prowlarr;
servarr = import ./settings-options.nix { inherit lib pkgs; };
isCustomDataDir = cfg.dataDir != "/var/lib/prowlarr";
in
{
options = {
@@ -16,7 +17,12 @@ in
dataDir = lib.mkOption {
type = lib.types.str;
default = "/var/lib/prowlarr";
description = "The directory where Prowlarr stores its data files.";
description = ''
The directory where Prowlarr stores its data files.
Note: A bind mount will be used to mount the directory at the expected location
if a different value than `/var/lib/prowlarr` is used.
'';
};
package = lib.mkPackageOption pkgs "prowlarr" { };
@@ -30,22 +36,6 @@ in
settings = servarr.mkServarrSettingsOptions "prowlarr" 9696;
environmentFiles = servarr.mkServarrEnvironmentFiles "prowlarr";
user = lib.mkOption {
type = lib.types.str;
default = "prowlarr";
description = ''
User account under which Prowlarr runs.
'';
};
group = lib.mkOption {
type = lib.types.str;
default = "prowlarr";
description = ''
Group under which Prowlarr runs.
'';
};
};
};
@@ -55,38 +45,36 @@ in
description = "Prowlarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings;
environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings // {
HOME = "/var/empty";
};
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
DynamicUser = true;
StateDirectory = "prowlarr";
EnvironmentFile = cfg.environmentFiles;
ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'";
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=/var/lib/prowlarr";
Restart = "on-failure";
};
};
tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = {
inherit (cfg) user group;
tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = lib.mkIf isCustomDataDir {
user = "root";
group = "root";
mode = "0700";
};
mounts = lib.optional isCustomDataDir {
what = cfg.dataDir;
where = "/var/lib/private/prowlarr";
options = "bind";
wantedBy = [ "local-fs.target" ];
};
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.server.port ];
};
users.users = lib.mkIf (cfg.user == "prowlarr") {
prowlarr = {
isSystemUser = true;
group = cfg.group;
home = cfg.dataDir;
};
};
users.groups = lib.mkIf (cfg.group == "prowlarr") {
prowlarr = { };
};
};
}
+3 -1
View File
@@ -299,7 +299,8 @@ in
];
SystemCallArchitectures = "native";
MemoryDenyWriteExecute = true;
AmbientCapabilities = "";
PrivateMounts = true;
PrivateUsers = true;
PrivateTmp = true;
PrivateDevices = true;
@@ -313,6 +314,7 @@ in
ProtectSystem = "strict";
ProtectControlGroups = "strict";
LockPersonality = true;
RemoveIPC = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
RestrictNamespaces = true;
@@ -239,6 +239,14 @@ in
'';
};
enableDefaultPlugins = mkOption {
type = types.bool;
default = true;
description = ''
Enable a set of recommended plugins.
'';
};
dhcp = mkOption {
type = types.enum [
"dhcpcd"
@@ -660,7 +668,7 @@ in
useDHCP = false;
})
{
(mkIf cfg.enableDefaultPlugins {
networkmanager.plugins = with pkgs; [
networkmanager-fortisslvpn
networkmanager-iodine
@@ -670,7 +678,7 @@ in
networkmanager-vpnc
networkmanager-sstp
];
}
})
(mkIf cfg.enableStrongSwan {
networkmanager.plugins = [ pkgs.networkmanager_strongswan ];
@@ -886,10 +886,10 @@ in
"+${pkgs.writers.writeBash "syncthing-copy-keys" ''
install -dm700 -o ${cfg.user} -g ${cfg.group} ${cfg.configDir}
${optionalString (cfg.cert != null) ''
install -Dm400 -o ${cfg.user} -g ${cfg.group} ${toString cfg.cert} ${cfg.configDir}/cert.pem
install -Dm644 -o ${cfg.user} -g ${cfg.group} ${toString cfg.cert} ${cfg.configDir}/cert.pem
''}
${optionalString (cfg.key != null) ''
install -Dm400 -o ${cfg.user} -g ${cfg.group} ${toString cfg.key} ${cfg.configDir}/key.pem
install -Dm600 -o ${cfg.user} -g ${cfg.group} ${toString cfg.key} ${cfg.configDir}/key.pem
''}
''}";
ExecStart = ''
@@ -102,7 +102,7 @@ in
}) cfg.servedNetworks;
systemd.tmpfiles.rules = [
"a+ /var/lib/zerotier-one - - - - u:zeronsd:x"
"a+ /var/lib/zerotier-one - - - - mask::x,u:zeronsd:x"
"a+ /var/lib/zerotier-one/authtoken.secret - - - - mask::r,u:zeronsd:r"
];
+2 -2
View File
@@ -81,7 +81,7 @@ in
extraUtilsCommands = lib.mkIf (!systemd.enable) ''
copy_bin_and_libs ${pkgs.jose}/bin/jose
copy_bin_and_libs ${pkgs.curl}/bin/curl
copy_bin_and_libs ${pkgs.bash}/bin/bash
copy_bin_and_libs ${pkgs.bashNonInteractive}/bin/bash
copy_bin_and_libs ${pkgs.tpm2-tools}/bin/.tpm2-wrapped
mv $out/bin/{.tpm2-wrapped,tpm2}
@@ -95,7 +95,7 @@ in
done
for BIN in $out/bin/clevis{,-decrypt{,-null,-tang,-tpm2}}; do
sed -i $BIN -e 's,${pkgs.bash},,' -e 's,${pkgs.coreutils},,'
sed -i $BIN -e 's,${pkgs.bashNonInteractive},,' -e 's,${pkgs.coreutils},,'
done
sed -i $out/bin/clevis-decrypt-tpm2 -e 's,tpm2_,tpm2 ,'
+8 -1
View File
@@ -1,4 +1,9 @@
{ config, lib, ... }:
{
config,
lib,
options,
...
}:
{
###### interface
@@ -15,6 +20,8 @@
instances) have no console of any kind, emergency mode doesn't
make sense, and it's better to continue with the boot insofar
as possible.
For initrd emergency access, use ${options.boot.initrd.systemd.emergencyAccess} instead.
'';
};
@@ -412,27 +412,42 @@ def main():
efi_disk = find_disk_device(efi_partition)
efibootmgr_output = subprocess.check_output([efibootmgr], stderr=subprocess.STDOUT, universal_newlines=True)
create_flag = '-c'
# Check the output of `efibootmgr` to find if limine is already installed and present in the boot record
if matches := re.findall(r'Boot[0-9a-fA-F]{4}\*? Limine', efibootmgr_output):
create_flag = '-C' # if present, keep the same boot order
limine_boot_entry = None
if matches := re.findall(r'Boot([0-9a-fA-F]{4})\*? Limine', efibootmgr_output):
limine_boot_entry = matches[0]
efibootmgr_output = subprocess.check_output([
efibootmgr,
create_flag,
'-d', efi_disk,
'-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
'-l', f'\\efi\\limine\\{boot_file}',
'-L', 'Limine',
], stderr=subprocess.STDOUT, universal_newlines=True)
# If there's already a Limine entry, replace it
if limine_boot_entry:
boot_order = re.findall(r'BootOrder: ((?:[0-9a-fA-F]{4},?)*)', efibootmgr_output)[0]
efibootmgr_output = subprocess.check_output([
efibootmgr,
'-b', limine_boot_entry,
'-B',
], stderr=subprocess.STDOUT, universal_newlines=True)
efibootmgr_output = subprocess.check_output([
efibootmgr,
'-c',
'-b', limine_boot_entry,
'-d', efi_disk,
'-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
'-l', f'\\efi\\limine\\{boot_file}',
'-L', 'Limine',
'-o', boot_order,
], stderr=subprocess.STDOUT, universal_newlines=True)
else:
efibootmgr_output = subprocess.check_output([
efibootmgr,
'-c',
'-d', efi_disk,
'-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
'-l', f'\\efi\\limine\\{boot_file}',
'-L', 'Limine',
], stderr=subprocess.STDOUT, universal_newlines=True)
for line in efibootmgr_output.split('\n'):
if matches := re.findall(r'Boot([0-9a-fA-F]{4}) has same label Limine', line):
subprocess.run(
[efibootmgr, '-b', matches[0], '-B'],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
if config('biosSupport'):
if cpu_family != 'x86':
raise Exception(f'Unsupported CPU family for BIOS install: {cpu_family}')
@@ -258,6 +258,8 @@ in
Can also be set to a hashed super user password to allow
authenticated access to the emergency mode.
For emergency access after initrd, use `${options.systemd.enableEmergencyMode}` instead.
'';
default = false;
};
+39 -5
View File
@@ -62,8 +62,20 @@ let
};
selectPartitionTableLayout =
{ useEFIBoot, useDefaultFilesystems }:
if useDefaultFilesystems then if useEFIBoot then "efi" else "legacy" else "none";
{
useEFIBoot,
useDefaultFilesystems,
useBIOSBoot,
}:
if useDefaultFilesystems then
if useEFIBoot then
"efi"
else if useBIOSBoot then
"legacy+boot"
else
"legacy"
else
"none";
driveCmdline =
idx:
@@ -337,7 +349,9 @@ let
format = "qcow2";
onlyNixStore = false;
label = rootFilesystemLabel;
partitionTableType = selectPartitionTableLayout { inherit (cfg) useDefaultFilesystems useEFIBoot; };
partitionTableType = selectPartitionTableLayout {
inherit (cfg) useBIOSBoot useDefaultFilesystems useEFIBoot;
};
installBootLoader = cfg.installBootLoader;
touchEFIVars = cfg.useEFIBoot;
diskSize = "auto";
@@ -431,8 +445,17 @@ in
virtualisation.bootPartition = mkOption {
type = types.nullOr types.path;
default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null;
defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null'';
default =
if cfg.useEFIBoot then
"/dev/disk/by-label/${espFilesystemLabel}"
else if cfg.useBIOSBoot then
"/dev/disk/by-label/BOOT"
else
null;
defaultText = literalExpression ''
if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}"
else if cfg.useBIOSBoot then "/dev/disk/by-label/BOOT"
else null'';
example = "/dev/disk/by-label/esp";
description = ''
The path (inside the VM) to the device containing the EFI System Partition (ESP).
@@ -929,6 +952,14 @@ in
'';
};
virtualisation.useBIOSBoot = mkEnableOption null // {
description = ''
If enabled for legacy MBR VMs, the VM image will have a separate boot
partition mounted at /boot.
useBIOSBoot is ignored if useEFIBoot == true.
'';
};
virtualisation.useEFIBoot = mkOption {
type = types.bool;
default = false;
@@ -1128,6 +1159,9 @@ in
`useBootLoader` useless. You might want to disable one of those options.
'';
# Install Limine on the bootloader device
boot.loader.limine.biosDevice = cfg.bootLoaderDevice;
# In UEFI boot, we use a EFI-only partition table layout, thus GRUB will fail when trying to install
# legacy and UEFI. In order to avoid this, we have to put "nodev" to force UEFI-only installs.
# Otherwise, we set the proper bootloader device for this.
+1 -1
View File
@@ -1126,7 +1126,7 @@ in
prosody = handleTest ./xmpp/prosody.nix { };
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix { };
proxy = handleTest ./proxy.nix { };
prowlarr = handleTest ./prowlarr.nix { };
prowlarr = runTest ./prowlarr.nix;
pt2-clone = handleTest ./pt2-clone.nix { };
pykms = handleTest ./pykms.nix { };
public-inbox = handleTest ./public-inbox.nix { };
-1
View File
@@ -11,7 +11,6 @@ import ./make-test-python.nix (
meta = with pkgs.lib.maintainers; {
maintainers = [
bjornfor
coconnor
domenkozar
];
};
+28
View File
@@ -0,0 +1,28 @@
{ lib, ... }:
{
name = "bios";
meta.maintainers = with lib.maintainers; [
lzcunt
phip1611
programmerlexi
];
meta.platforms = [
"i686-linux"
"x86_64-linux"
];
nodes.machine =
{ ... }:
{
virtualisation.useBootLoader = true;
virtualisation.useBIOSBoot = true;
boot.loader.limine.enable = true;
boot.loader.limine.efiSupport = false;
boot.loader.timeout = 0;
};
testScript = ''
machine.start()
with subtest('Machine boots correctly'):
machine.wait_for_unit('multi-user.target')
'';
}
+1
View File
@@ -3,6 +3,7 @@
...
}:
{
bios = runTest ./bios.nix;
checksum = runTest ./checksum.nix;
secureBoot = runTest ./secure-boot.nix;
specialisations = runTest ./specialisations.nix;
+2 -2
View File
@@ -36,8 +36,8 @@ import ./make-test-python.nix (
node.succeed("curl --fail http://localhost:9001")
test_mealie(sqlite)
simple.send_monitor_command("quit")
simple.wait_for_shutdown()
sqlite.send_monitor_command("quit")
sqlite.wait_for_shutdown()
test_mealie(postgres)
'';
}
+2 -2
View File
@@ -25,8 +25,8 @@ import ../make-test-python.nix (
testScript =
builtins.replaceStrings
[ "@@pam_ccreds@@" "@@pam_krb5@@" ]
[ pkgs.pam_ccreds.outPath pkgs.pam_krb5.outPath ]
[ "@@pam@@" "@@pam_ccreds@@" "@@pam_krb5@@" ]
[ pkgs.pam.outPath pkgs.pam_ccreds.outPath pkgs.pam_krb5.outPath ]
(builtins.readFile ./test_chfn.py);
}
)
+7 -7
View File
@@ -1,17 +1,17 @@
expected_lines = {
"account required pam_unix.so",
"account required @@pam@@/lib/security/pam_unix.so",
"account sufficient @@pam_krb5@@/lib/security/pam_krb5.so",
"auth [default=die success=done] @@pam_ccreds@@/lib/security/pam_ccreds.so action=validate use_first_pass",
"auth [default=ignore success=1 service_err=reset] @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
"auth required pam_deny.so",
"auth required @@pam@@/lib/security/pam_deny.so",
"auth sufficient @@pam_ccreds@@/lib/security/pam_ccreds.so action=store use_first_pass",
"auth sufficient pam_rootok.so",
"auth sufficient pam_unix.so likeauth try_first_pass",
"auth sufficient @@pam@@/lib/security/pam_rootok.so",
"auth sufficient @@pam@@/lib/security/pam_unix.so likeauth try_first_pass",
"password sufficient @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
"password sufficient pam_unix.so nullok yescrypt",
"password sufficient @@pam@@/lib/security/pam_unix.so nullok yescrypt",
"session optional @@pam_krb5@@/lib/security/pam_krb5.so",
"session required pam_env.so conffile=/etc/pam/environment readenv=0",
"session required pam_unix.so",
"session required @@pam@@/lib/security/pam_env.so conffile=/etc/pam/environment readenv=0",
"session required @@pam@@/lib/security/pam_unix.so",
}
actual_lines = set(machine.succeed("cat /etc/pam.d/chfn").splitlines())
+31 -13
View File
@@ -1,22 +1,40 @@
import ./make-test-python.nix (
{ lib, ... }:
{ lib, config, ... }:
{
name = "prowlarr";
meta.maintainers = with lib.maintainers; [ ];
{
name = "prowlarr";
meta.maintainers = with lib.maintainers; [ ];
nodes.machine =
{ pkgs, ... }:
{
services.prowlarr.enable = true;
nodes.machine =
{ pkgs, ... }:
{
services.prowlarr.enable = true;
specialisation.customDataDir = {
inheritParentConfig = true;
configuration.services.prowlarr.dataDir = "/srv/prowlarr";
};
};
testScript = ''
testScript = ''
def verify_prowlarr_works():
machine.wait_for_unit("prowlarr.service")
machine.wait_for_open_port(9696)
response = machine.succeed("curl --fail http://localhost:9696/")
assert '<title>Prowlarr</title>' in response, "Login page didn't load successfully"
machine.succeed("[ -d /var/lib/prowlarr ]")
'';
}
)
with subtest("Prowlarr starts and responds to requests"):
verify_prowlarr_works()
with subtest("Prowlarr data directory migration works"):
machine.systemctl("stop prowlarr.service")
machine.succeed("mkdir -p /tmp/prowlarr-migration")
machine.succeed("mv /var/lib/prowlarr/* /tmp/prowlarr-migration")
machine.succeed("${config.nodes.machine.system.build.toplevel}/specialisation/customDataDir/bin/switch-to-configuration test")
machine.wait_for_unit("var-lib-private-prowlarr.mount")
machine.succeed("mv /tmp/prowlarr-migration/* /var/lib/prowlarr")
machine.systemctl("restart prowlarr.service")
# Check that we're using a bind mount when using a non-default dataDir
machine.succeed("findmnt /var/lib/private/prowlarr | grep /srv/prowlarr")
verify_prowlarr_works()
'';
}
+2
View File
@@ -113,6 +113,8 @@ Now that this is out of the way. To add a package to Nixpkgs:
- Add yourself as the maintainer of the package.
- If this is your first time contributing (welcome!), [add yourself to the maintainers list](../maintainers/README.md#how-to-become-a-maintainer) in a separate commit.
- All other [`meta`](https://nixos.org/manual/nixpkgs/stable/#chap-meta) attributes are optional, but its still a good idea to provide at least the `description`, `homepage` and [`license`](https://nixos.org/manual/nixpkgs/stable/#sec-meta-license).
- The exact syntax and semantics of the Nix expression language, including the built-in functions, are [Nix language reference](https://nixos.org/manual/nix/stable/language/).
@@ -42,13 +42,13 @@ let
in
stdenv.mkDerivation rec {
pname = "strawberry";
version = "1.2.10";
version = "1.2.11";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
hash = "sha256-ByZHyHkMlU571QSu1bbYZC7aEX4Jc8N3j05WbXRQaBY=";
hash = "sha256-AhNx2CdfE7ff3+L47X6lYPD8GA7imkDIJD5ESndn/cc=";
};
# the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
@@ -1,88 +0,0 @@
diff --git a/src/cpp/core/json/JsonRpc.cpp b/src/cpp/core/json/JsonRpc.cpp
index d034ffe..4b08486 100644
--- a/src/cpp/core/json/JsonRpc.cpp
+++ b/src/cpp/core/json/JsonRpc.cpp
@@ -193,7 +193,7 @@ void JsonRpcResponse::setAfterResponse(
bool JsonRpcResponse::hasAfterResponse() const
{
- return afterResponse_;
+ return !afterResponse_.empty();
}
diff --git a/src/cpp/session/modules/rmarkdown/NotebookExec.cpp b/src/cpp/session/modules/rmarkdown/NotebookExec.cpp
index 5631a1f..0e3030b 100644
--- a/src/cpp/session/modules/rmarkdown/NotebookExec.cpp
+++ b/src/cpp/session/modules/rmarkdown/NotebookExec.cpp
@@ -193,7 +193,7 @@ void ChunkExecContext::connect()
// leave an execution lock in this folder so it won't be moved if the notebook
// is saved while executing
- auto lock = make_unique<ScopedFileLock>(
+ auto lock = rstudio::core::make_unique<ScopedFileLock>(
FileLock::createDefault(),
outputPath_.completePath(kExecutionLock));
locks_.push_back(std::move(lock));
@@ -204,7 +204,7 @@ void ChunkExecContext::connect()
initializeOutput();
// capture conditions
- auto pConditionCapture = make_unique<ConditionCapture>();
+ auto pConditionCapture = rstudio::core::make_unique<ConditionCapture>();
pConditionCapture->connect();
captures_.push_back(std::move(pConditionCapture));
connections_.push_back(events().onCondition.connect(
@@ -234,7 +234,7 @@ void ChunkExecContext::connect()
boost::bind(&ChunkExecContext::onFileOutput, this, _1, _2,
_3, ChunkOutputPlot, _4)));
- auto pPlotCapture = make_unique<PlotCapture>();
+ auto pPlotCapture = rstudio::core::make_unique<PlotCapture>();
if (figWidth > 0 || figHeight > 0)
{
// user specified plot size, use it
@@ -261,7 +261,7 @@ void ChunkExecContext::connect()
boost::bind(&ChunkExecContext::onFileOutput, this, _1, _2, _3,
ChunkOutputHtml, 0)));
- auto pHtmlCapture = make_unique<HtmlCapture>();
+ auto pHtmlCapture = rstudio::core::make_unique<HtmlCapture>();
error = pHtmlCapture->connectHtmlCapture(
outputPath_,
outputPath_.getParent().completePath(kChunkLibDir),
@@ -316,14 +316,14 @@ void ChunkExecContext::connect()
prevCharWidth_ = r::options::getOptionWidth();
r::options::setOptionWidth(charWidth_);
- auto pDirCapture = make_unique<DirCapture>();
+ auto pDirCapture = rstudio::core::make_unique<DirCapture>();
error = pDirCapture->connectDir(docId_, workingDir_);
if (error)
LOG_ERROR(error);
captures_.push_back(std::move(pDirCapture));
// begin capturing errors
- auto pErrorCapture = make_unique<ErrorCapture>();
+ auto pErrorCapture = rstudio::core::make_unique<ErrorCapture>();
pErrorCapture->connect();
captures_.push_back(std::move(pErrorCapture));
@@ -341,7 +341,7 @@ void ChunkExecContext::connect()
boost::bind(&ChunkExecContext::onFileOutput, this, _1, _2, _3,
ChunkOutputData, 0)));
- auto pDataCapture = make_unique<DataCapture>();
+ auto pDataCapture = rstudio::core::make_unique<DataCapture>();
error = pDataCapture->connectDataCapture(
outputPath_,
options_.mergedOptions());
@@ -661,7 +661,7 @@ void ChunkExecContext::initializeOutput()
// leave an execution lock in this folder so it won't be moved if the notebook
// is saved while executing
- auto lock = make_unique<ScopedFileLock>(
+ auto lock = rstudio::core::make_unique<ScopedFileLock>(
FileLock::createDefault(),
outputPath.completePath(kExecutionLock));
locks_.push_back(std::move(lock));
+117 -65
View File
@@ -1,47 +1,50 @@
{
lib,
stdenv,
runCommand,
fetchzip,
server ? false, # build server version
fetchFromGitHub,
fetchNpmDeps,
fetchYarnDeps,
fetchzip,
replaceVars,
cmake,
boost186,
zlib,
openssl,
R,
fontconfig,
quarto,
libuuid,
hunspellDicts,
runCommand,
ant,
cacert,
cmake,
git,
jdk,
gnumake,
pandoc,
llvmPackages,
yaml-cpp,
soci,
sqlite,
apple-sdk_11,
xcbuild,
makeWrapper,
nodejs,
npmHooks,
fetchNpmDeps,
xcbuild,
yarn,
yarnConfigHook,
fetchYarnDeps,
zip,
git,
makeWrapper,
apple-sdk_11,
boost187,
electron_34,
server ? false, # build server version
fontconfig,
gnumake,
hunspellDicts,
libuuid,
llvmPackages,
openssl,
pam,
pandoc,
quarto,
R,
soci,
sqlite,
zlib,
nixosTests,
}:
let
# Note: we shouldn't use the latest electron here, since the node-abi dependency might
# need to be updated every time the latest electron gets a new abi version number
electron = electron_34;
mathJaxSrc = fetchzip {
@@ -53,8 +56,8 @@ let
quartoSrc = fetchFromGitHub {
owner = "quarto-dev";
repo = "quarto";
rev = "7d1582d06250216d18696145879415e473a2ae4d";
hash = "sha256-AaE9EDT3tJieI403QGxAf+A/PEw1rmUdhdpy4WNf40o=";
rev = "8ee12b5d6bd49c7b212eae894bd011ffbeea1c48";
hash = "sha256-pTrWedYeG2SWQ4jl2fstKjsweWhj4aAvVDiSfkdU3No=";
};
hunspellDictionaries = lib.filter lib.isDerivation (lib.unique (lib.attrValues hunspellDicts));
@@ -76,62 +79,106 @@ let
in
stdenv.mkDerivation rec {
pname = "RStudio";
version = "2024.12.1+563";
RSTUDIO_VERSION_MAJOR = lib.versions.major version;
RSTUDIO_VERSION_MINOR = lib.versions.minor version;
RSTUDIO_VERSION_PATCH = lib.versions.patch version;
RSTUDIO_VERSION_SUFFIX = "+" + toString (lib.tail (lib.splitString "+" version));
version = "2025.05.0+496";
src = fetchFromGitHub {
owner = "rstudio";
repo = "rstudio";
tag = "v${version}";
hash = "sha256-fguomJHs7FBffYfMlgWgnjLWK3uDZYX4Ip4asKZ8XVQ=";
hash = "sha256-yZy/fEYln/jGxErwJiWFgr9w0GvwtMwzpmmHf71chBQ=";
};
# sources fetched into _deps via cmake's FetchContent
extSrcs = stdenv.mkDerivation {
name = "${pname}-${version}-ext-srcs";
inherit src;
nativeBuildInputs = [
cacert
cmake
git
];
installPhase = ''
runHook preInstall
# this will fail, since this is not meant to be a cmake entrypoint
# but it will fetch the dependencies regardless
cmake -S src/cpp/ext -B build || true
mkdir -p "$out"
cp -r build/_deps/*-src "$out/"
find "$out" -name .git -print0 | xargs -0 rm -rf
runHook postInstall
'';
dontConfigure = true;
dontBuild = true;
dontFixup = true;
outputHash = "sha256-YW+l0/RZf8ek217pfWTwsR4PTugMGHyW+vaZEwGjMas=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
nativeBuildInputs =
[
cmake
git
ant
jdk
nodejs
yarn
yarnConfigHook
zip
git
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
]
++ lib.optionals (!server) [
makeWrapper
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
npmHooks.npmConfigHook
makeWrapper
];
buildInputs =
[
boost186
zlib
boost187
libuuid
openssl
R
libuuid
yaml-cpp
soci
sqlite.dev
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_11 ]
++ lib.optionals server [ pam ]
++ lib.optionals (!server) [ fontconfig ];
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
]
++ lib.optionals (!server) [
fontconfig
]
++ lib.optionals server [
pam
zlib
];
cmakeFlags =
[
(lib.cmakeFeature "RSTUDIO_TARGET" (if server then "Server" else "Electron"))
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_SOCI" true)
# don't try fetching the external dependencies already fetched in extSrcs
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_BOOST" true)
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_YAML_CPP" true)
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_SOCI" true)
(lib.cmakeBool "RSTUDIO_DISABLE_CHECK_FOR_UPDATES" true)
(lib.cmakeBool "QUARTO_ENABLED" true)
(lib.cmakeBool "RSTUDIO_ENABLE_COPILOT" false) # copilot-language-server is unfree
(lib.cmakeBool "RSTUDIO_CRASHPAD_ENABLED" false) # This is a NOOP except on x86_64-darwin
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" (
(placeholder "out") + (if stdenv.hostPlatform.isDarwin then "/Applications" else "/lib/rstudio")
))
@@ -140,8 +187,17 @@ stdenv.mkDerivation rec {
(lib.cmakeBool "RSTUDIO_INSTALL_FREEDESKTOP" stdenv.hostPlatform.isLinux)
];
# on Darwin, cmake uses find_library to locate R instead of using the PATH
env.NIX_LDFLAGS = "-L${R}/lib/R/lib";
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
# on Darwin, cmake uses find_library to locate R instead of using the PATH
NIX_LDFLAGS = "-L${R}/lib/R/lib";
RSTUDIO_VERSION_MAJOR = lib.versions.major version;
RSTUDIO_VERSION_MINOR = lib.versions.minor version;
RSTUDIO_VERSION_PATCH = lib.versions.patch version;
RSTUDIO_VERSION_SUFFIX = "+" + toString (lib.tail (lib.splitString "+" version));
};
patches = [
# Hack RStudio to only use the input R and provided libclang.
@@ -154,10 +210,7 @@ stdenv.mkDerivation rec {
./ignore-etc-os-release.patch
./dont-yarn-install.patch
./boost-1.86.patch
./fix-darwin.patch
# needed for rebuilding for later electron versions
./update-nan-and-node-abi.patch
];
postPatch = ''
@@ -172,7 +225,7 @@ stdenv.mkDerivation rec {
yarnOfflineCache = fetchYarnDeps {
yarnLock = quartoSrc + "/yarn.lock";
hash = "sha256-48Q2MkfzXZSL3ly56WSjRVwU3fgRD8xivQobStBkk6Y=";
hash = "sha256-F+gqVNNhLmyrC+tJuElw7cpx5z/WLHOiYow/y86KR5c=";
};
dontYarnInstallDeps = true; # will call manually in preConfigure
@@ -187,14 +240,16 @@ stdenv.mkDerivation rec {
npmDeps = fetchNpmDeps {
name = "rstudio-${version}-npm-deps";
inherit src;
patches = [ ./update-nan-and-node-abi.patch ];
postPatch = "cd ${npmRoot}";
hash = "sha256-9VHse+nxr5A1EWuszQ6cnJAMqYiHFqHQ4OJ/TJq+XoI=";
hash = "sha256-ispV6FJdtOELtFNIZDn1lKbwvO/iTO8mrZ8nIOs2uhs=";
};
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
preConfigure = ''
# populate the directories used by cmake's FetchContent
mkdir -p build/_deps
cp -r "$extSrcs"/* build/_deps
chmod -R u+w build/_deps
# set up node_modules directory inside quarto so that panmirror can be built
mkdir src/gwt/lib/quarto
cp -r --no-preserve=all ${quartoSrc}/* src/gwt/lib/quarto
@@ -221,12 +276,7 @@ stdenv.mkDerivation rec {
mkdir -p dependencies/common/node
# node used by cmake
# version in cmake/globals.cmake (RSTUDIO_NODE_VERSION)
ln -s ${nodejs} dependencies/common/node/20.15.1
# node used at runtime
# version in cmake/globals.cmake (RSTUDIO_INSTALLED_NODE_VERSION)
# upstream uses the -patched suffix for the runtime node directory
ln -s ${nodejs} dependencies/common/node/20.15.1-patched
ln -s ${nodejs} dependencies/common/node/22.13.1
${lib.optionalString (!server) ''
pushd $npmRoot
@@ -301,12 +351,13 @@ stdenv.mkDerivation rec {
passthru = {
inherit server;
tests = {
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
inherit (nixosTests) rstudio-server;
};
};
meta = {
changelog = "https://github.com/rstudio/rstudio/tree/${src.rev}/version/news";
description = "Set of integrated tools for the R language";
homepage = "https://www.rstudio.com/";
license = lib.licenses.agpl3Only;
@@ -316,6 +367,7 @@ stdenv.mkDerivation rec {
tomasajt
];
mainProgram = "rstudio" + lib.optionalString server "-server";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
# rstudio-server on darwin is only partially supported by upstream
platforms = lib.platforms.linux ++ lib.optionals (!server) lib.platforms.darwin;
};
}
@@ -1,70 +0,0 @@
diff --git a/src/node/desktop/package-lock.json b/src/node/desktop/package-lock.json
index a210521..9543abb 100644
--- a/src/node/desktop/package-lock.json
+++ b/src/node/desktop/package-lock.json
@@ -18,7 +18,7 @@
"line-reader": "0.4.0",
"lodash.debounce": "4.0.8",
"net-ipc": "2.2.0",
- "node-abi": "3.71.0",
+ "node-abi": "^3.74.0",
"node-addon-api": "8.3.0",
"node-system-fonts": "1.0.1",
"properties-reader": "2.3.0",
@@ -56,7 +56,7 @@
"json-schema-to-typescript": "14.1.0",
"lint-staged": "15.2.10",
"mocha": "10.8.2",
- "nan": "2.22.0",
+ "nan": "^2.22.1",
"node-loader": "2.1.0",
"nyc": "17.1.0",
"prettier": "3.3.3",
@@ -9538,9 +9538,9 @@
}
},
"node_modules/nan": {
- "version": "2.22.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
- "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==",
+ "version": "2.22.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.1.tgz",
+ "integrity": "sha512-pfRR4ZcNTSm2ZFHaztuvbICf+hyiG6ecA06SfAxoPmuHjvMu0KUIae7Y8GyVkbBqeEIidsmXeYooWIX9+qjfRQ==",
"license": "MIT"
},
"node_modules/nanoid": {
@@ -9667,9 +9667,9 @@
}
},
"node_modules/node-abi": {
- "version": "3.71.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
- "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
+ "version": "3.74.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
+ "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
"license": "MIT",
"dependencies": {
"semver": "^7.3.5"
diff --git a/src/node/desktop/package.json b/src/node/desktop/package.json
index 8b8ef47..287d879 100644
--- a/src/node/desktop/package.json
+++ b/src/node/desktop/package.json
@@ -54,7 +54,7 @@
"json-schema-to-typescript": "14.1.0",
"lint-staged": "15.2.10",
"mocha": "10.8.2",
- "nan": "2.22.0",
+ "nan": "^2.22.1",
"node-loader": "2.1.0",
"nyc": "17.1.0",
"prettier": "3.3.3",
@@ -76,7 +76,7 @@
"line-reader": "0.4.0",
"lodash.debounce": "4.0.8",
"net-ipc": "2.2.0",
- "node-abi": "3.71.0",
+ "node-abi": "^3.74.0",
"node-addon-api": "8.3.0",
"node-system-fonts": "1.0.1",
"properties-reader": "2.3.0",
@@ -8162,6 +8162,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
mini-keymap = buildVimPlugin {
pname = "mini.keymap";
version = "2025-05-20";
src = fetchFromGitHub {
owner = "echasnovski";
repo = "mini.keymap";
rev = "2aa0a66d6cbf15c9cea331d976ac4d4b9f01621e";
sha256 = "18samb1yjvmw2yjl0l4csl484aqah71qr19zspx46z5dk3jib908";
};
meta.homepage = "https://github.com/echasnovski/mini.keymap/";
meta.hydraPlatforms = [ ];
};
mini-map = buildVimPlugin {
pname = "mini.map";
version = "2025-04-01";
@@ -626,6 +626,7 @@ https://github.com/echasnovski/mini.icons/,HEAD,
https://github.com/echasnovski/mini.indentscope/,HEAD,
https://github.com/echasnovski/mini.jump/,HEAD,
https://github.com/echasnovski/mini.jump2d/,HEAD,
https://github.com/echasnovski/mini.keymap/,HEAD,
https://github.com/echasnovski/mini.map/,HEAD,
https://github.com/echasnovski/mini.misc/,HEAD,
https://github.com/echasnovski/mini.move/,HEAD,
@@ -4044,15 +4044,7 @@ let
};
};
redhat.vscode-xml = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "redhat";
name = "vscode-xml";
version = "0.29.0";
hash = "sha256-I6ZRtt43Qo3m8OfmjkVfBIaNWWvLULlwnJZqIp/WEuI=";
};
meta.license = lib.licenses.epl20;
};
redhat.vscode-xml = callPackage ./redhat.vscode-xml { };
redhat.vscode-yaml = buildVscodeMarketplaceExtension {
mktplcRef = {
@@ -4389,8 +4381,8 @@ let
mktplcRef = {
publisher = "shopify";
name = "ruby-lsp";
version = "0.9.24";
hash = "sha256-nlPqdn7tOQhr4Z/8N0aHAnkqKtYrpQCzwRGsseT8K5g=";
version = "0.9.26";
hash = "sha256-DKtrXdCRLZn7GzOGkp3mrH5Y5me5cE9NqpWTWCv8ZqY=";
};
meta = {
description = "VS Code plugin for connecting with the Ruby LSP";
@@ -0,0 +1,49 @@
{
lib,
stdenvNoCC,
vscode-utils,
vscode-extension-update-script,
}:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef =
let
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-FnMTpDXC/UIMPfcBbpZRo/T0LljFP0+syv2aTZjOczc=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-bPkRzOpd7nlIg3oLvrfIrcvrxJqnRhNZNzgao8ga+OM=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-UnRWxjmicfizn8SUspkhjjiYDJDFGI4ItIPLTnRZEy0=";
};
};
in
{
publisher = "redhat";
name = "vscode-xml";
version = "0.29.0";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
passthru.updateScript = vscode-extension-update-script {
extraArgs = [
"--override-filename"
"pkgs/applications/editors/vscode/extensions/redhat.vscode-xml/default.nix"
];
};
meta = {
license = lib.licenses.epl20;
platforms = [
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
};
}
@@ -9,13 +9,13 @@
}:
mkLibretroCore {
core = "citra";
version = "0-unstable-2025-05-07";
version = "0-unstable-2025-05-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "citra";
rev = "b1f9fe0c3d4d6c4e133a710bc172d9adcb40c706";
hash = "sha256-EI8N+tjA6UsEq7sKIZ/zxeugW/oyCF+cPKX2HTjVqNI=";
rev = "8e634afee9e870620b40efedaef77478cd1f3c99";
hash = "sha256-pf0fgamSg2OHxvft36+Y4wPF9hjyZOQXEtMWs0dkNRM=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -82,14 +82,14 @@ let
];
in
mkDerivation rec {
version = "3.40.6";
version = "3.40.7";
pname = "qgis-ltr-unwrapped";
src = fetchFromGitHub {
owner = "qgis";
repo = "QGIS";
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
hash = "sha256-pw5XxaGDsyQfeJL582Iic2sg5j8AUPvM+I53YLB4aG4=";
hash = "sha256-XC3UVKtOokFH9MDnz7M1+aTfNFVQKGYV2jTThE69jQs=";
};
passthru = {
+2 -2
View File
@@ -82,14 +82,14 @@ let
];
in
mkDerivation rec {
version = "3.42.2";
version = "3.42.3";
pname = "qgis-unwrapped";
src = fetchFromGitHub {
owner = "qgis";
repo = "QGIS";
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
hash = "sha256-kWy+FBiqPMt8GLGWSJBQp0uD5l1IE/2KmDGdxKapg78=";
hash = "sha256-NZLtifHcJAe0Q08i3nTu4H1fWO9gALCcqjaPwb0t8QM=";
};
passthru = {
@@ -110,6 +110,9 @@ stdenv.mkDerivation {
# Firefox uses "relrhack" to manually process relocations from a fixed offset
patchelfFlags = [ "--no-clobber-old-sections" ];
# don't break code signing
dontFixup = stdenv.hostPlatform.isDarwin;
installPhase =
if stdenv.hostPlatform.isDarwin then
''
@@ -1110,6 +1110,15 @@
"spdx": "MPL-2.0",
"vendorHash": "sha256-KezwDRmQQj0MnmsVlrX1OhNG6oMgw8fCxX5VFGdUynw="
},
"routeros": {
"hash": "sha256-/tTd8EzA1/Js7S3eGg3L9AY9dyoIA3lFSU6VlT6p4us=",
"homepage": "https://registry.terraform.io/providers/terraform-routeros/routeros",
"owner": "terraform-routeros",
"repo": "terraform-provider-routeros",
"rev": "v1.85.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-DDmJ/mEOd94E7DqLKjT6Y4XkpVdXyKeAaE/Wj6M3vuw="
},
"rundeck": {
"hash": "sha256-cf+0qXpgxIsc/JbB7+u3MpmWFwUmpsinp1uARRhuBw0=",
"homepage": "https://registry.terraform.io/providers/rundeck/rundeck",
@@ -0,0 +1,21 @@
diff --git a/src/core/sipe-xml.c b/src/core/sipe-xml.c
index cfc5311..c38f6e8 100644
--- a/src/core/sipe-xml.c
+++ b/src/core/sipe-xml.c
@@ -29,6 +29,7 @@
#include <time.h>
#include "libxml/parser.h"
+#include "libxml/xmlerror.h"
#include "libxml/c14n.h"
#include "libxml/xmlversion.h"
@@ -154,7 +155,7 @@ static void callback_error(void *user_data, const char *msg, ...)
g_free(errmsg);
}
-static void callback_serror(void *user_data, xmlErrorPtr error)
+static void callback_serror(void *user_data, const xmlError *error)
{
struct _parser_data *pd = user_data;
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
url = "https://repo.or.cz/siplcs.git/patch/583a734e63833f03d11798b7b0d59a17d08ae60f";
sha256 = "Ai6Czpy/FYvBi4GZR7yzch6OcouJgfreI9HcojhGVV4=";
})
./0001-fix-libxml-error-signature.patch
];
nativeBuildInputs = [ intltool ];
@@ -1,26 +1,23 @@
{
lib,
stdenv,
mkDerivation,
fetchFromGitHub,
cmake,
fuse,
fuse3,
readline,
pkg-config,
qtbase,
qttools,
wrapQtAppsHook,
qt6,
}:
mkDerivation rec {
stdenv.mkDerivation rec {
pname = "android-file-transfer";
version = "4.4";
version = "4.5";
src = fetchFromGitHub {
owner = "whoozle";
repo = "android-file-transfer-linux";
rev = "v${version}";
sha256 = "sha256-1euoWM9KMauOkAp7g1FvY4olMiOg+La/Uk1QlQ3mKi8=";
sha256 = "sha256-G+ErwZ/F8Cl8WLSzC+5LrEWWqNZL3xDMBvx/gjkgAXk=";
};
patches = [ ./darwin-dont-vendor-dependencies.patch ];
@@ -29,12 +26,12 @@ mkDerivation rec {
cmake
readline
pkg-config
wrapQtAppsHook
qt6.wrapQtAppsHook
];
buildInputs = [
fuse
qtbase
qttools
fuse3
qt6.qtbase
qt6.qttools
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "android-udev-rules";
version = "20250314";
version = "20250525";
src = fetchFromGitHub {
owner = "M0Rf30";
repo = "android-udev-rules";
rev = version;
hash = "sha256-QADyZ3FHVuxX/PfsRt2ijwJRCksQb1Hz5lSgYJlyb1Q=";
hash = "sha256-4ODU9EoVYV+iSu6+M9ePed45QkOZgWkDUlFTlWJ8ttQ=";
};
installPhase = ''
+3 -3
View File
@@ -7,17 +7,17 @@
}:
rustPlatform.buildRustPackage rec {
pname = "atac";
version = "0.20.0";
version = "0.20.1";
src = fetchFromGitHub {
owner = "Julien-cpsn";
repo = "ATAC";
rev = "v${version}";
hash = "sha256-Hw93XI//d+ubVZvNPpq6z2P5XLSzw/EqzrrifSEmWUM=";
hash = "sha256-1Y32uz/GF981mRpVNRsix1xTz3kLihMdnzd4i/QGE7s=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-OrTPHfMFF5A9SGBcjcNIOC/JGLtkJzSk9EEVcv6NwOs=";
cargoHash = "sha256-s7Iu0ZxahQekG02oCvI0WH0OiqAez+l7wvJq1xCQINY=";
nativeBuildInputs = [ pkg-config ];
+5 -6
View File
@@ -12,19 +12,20 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bashunit";
version = "0.19.0";
version = "0.19.1";
src = fetchFromGitHub {
owner = "TypedDevs";
repo = "bashunit";
tag = finalAttrs.version;
hash = "sha256-EoCCqESzmCW12AuAqA3qh2VcE8gyUPIGJEoCcZhMA/Y=";
hash = "sha256-LoPtWf4Vo7hodWa0WJmqYDW7p7xJDrRZ5/qwUy/rB3U=";
forceFetchGit = true; # needed to include the tests directory for the check phase
};
nativeBuildInputs = [ makeBinaryWrapper ];
postConfigure = ''
patchShebangs src tests build.sh bashunit
patchShebangs tests build.sh bashunit
substituteInPlace Makefile \
--replace-fail "SHELL=/bin/bash" "SHELL=${lib.getExe bash}"
'';
@@ -41,9 +42,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
# some tests are currently broken on linux and it is not easy to disable them
# reenable them after https://github.com/TypedDevs/bashunit/pull/397 has been merged
doCheck = false;
doCheck = true;
nativeCheckInputs = [ which ];
checkPhase = ''
runHook preCheck
+9 -7
View File
@@ -11,13 +11,13 @@
flutter329.buildFlutterApplication rec {
pname = "butterfly";
version = "2.3.0";
version = "2.3.1";
src = fetchFromGitHub {
owner = "LinwoodDev";
repo = "Butterfly";
tag = "v${version}";
hash = "sha256-ih+oADHEBB8fOt1Uoxc98BNr6BuoONnFNt8wHQxgpfA=";
hash = "sha256-/lwMKanoSM8oARBqQJ3hL23Z5sobLDwtL5RsxFgN5ew=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
@@ -26,15 +26,14 @@ flutter329.buildFlutterApplication rec {
gitHashes = {
dart_leap = "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI=";
lw_file_system = "sha256-l04sXm9FXHF0ZUdQplnGoih483PczMQvlFF0r/UEuao=";
lw_file_system = "sha256-YWAInZw2FQzqGnopZr4oB1ZM5q0gjM65fvC4uhzl7gE=";
networker = "sha256-/3jFIZj66hWbTcIQx9OB5QRrukcBT4zpek+56AVaGIA=";
lw_file_system_api = "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II=";
lw_sysapi = "sha256-OYVHBiAshYKRH/6BEcY+BXm9VIfSAFnFBOBWlQIO5Tc=";
material_leap = "sha256-l04sXm9FXHF0ZUdQplnGoih483PczMQvlFF0r/UEuao=";
lw_sysapi = "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc=";
material_leap = "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE=";
networker_crypto = "sha256-nI0luldloScjjix75kR5yOE1ZX8KFxMIC2N4whKlXUg=";
networker_socket = "sha256-5y1oy0IYDs7nhiIx653vI5Gfh5jrVewkRFxB1mjxlE4=";
perfect_freehand = "sha256-eBiid097rkF82n65Yg6a4VkKPv+70HIOYJT+9sCD//U=";
network_info_plus = "sha256-fOh/Qm7T65jDtckMTB3ZP2xT7UH6Wi/x5i61xXNbWac=";
swamp_api = "sha256-ONaCXeMwEEHDvVmbo3o66O3CTCx4xGR3T5ZtSEwPvaw=";
reorderable_grid = "sha256-g30DSPL/gsk0r8c2ecoKU4f1P3BF15zLnBVO6RXvDGQ=";
};
@@ -54,7 +53,10 @@ flutter329.buildFlutterApplication rec {
cat $src/app/pubspec.lock | yq > $out
'';
updateScript = _experimental-update-script-combinators.sequence [
(gitUpdater { rev-prefix = "v"; })
(gitUpdater {
ignoredVersions = ".*rc.*";
rev-prefix = "v";
})
(_experimental-update-script-combinators.copyAttrOutputToFile "butterfly.pubspecSource" ./pubspec.lock.json)
];
};
+44 -45
View File
@@ -14,11 +14,11 @@
"dependency": "transitive",
"description": {
"name": "analyzer",
"sha256": "f4c21c94eb4623b183c1014a470196b3910701bea9b926e6c91270d756e6fc60",
"sha256": "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.4.1"
"version": "7.4.5"
},
"animations": {
"dependency": "direct main",
@@ -34,11 +34,11 @@
"dependency": "direct main",
"description": {
"name": "archive",
"sha256": "a7f37ff061d7abc2fcf213554b9dcaca713c5853afa5c065c44888bc9ccaf813",
"sha256": "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.6"
"version": "4.0.7"
},
"args": {
"dependency": "direct main",
@@ -197,7 +197,7 @@
"relative": true
},
"source": "path",
"version": "2.3.0"
"version": "2.3.1"
},
"camera": {
"dependency": "direct main",
@@ -213,21 +213,21 @@
"dependency": "transitive",
"description": {
"name": "camera_android_camerax",
"sha256": "26673643ed8f4a468a81ebd7ca760bc1d8c4c741df6d731cc958585ac1983126",
"sha256": "9fb44e73e0fea3647a904dc26d38db24055e5b74fc68fd2b6d3abfa1bd20f536",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.6.15"
"version": "0.6.17"
},
"camera_avfoundation": {
"dependency": "transitive",
"description": {
"name": "camera_avfoundation",
"sha256": "a33cd9a250296271cdf556891b7c0986a93772426f286595eccd5f45b185933c",
"sha256": "ca36181194f429eef3b09de3c96280f2400693f9735025f90d1f4a27465fdd72",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.9.18+14"
"version": "0.9.19"
},
"camera_platform_interface": {
"dependency": "transitive",
@@ -313,11 +313,11 @@
"dependency": "direct main",
"description": {
"name": "connectivity_plus",
"sha256": "04bf81bb0b77de31557b58d052b24b3eee33f09a6e7a8c68a3e247c7df19ec27",
"sha256": "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.1.3"
"version": "6.1.4"
},
"connectivity_plus_platform_interface": {
"dependency": "transitive",
@@ -404,11 +404,11 @@
"dependency": "transitive",
"description": {
"name": "dart_style",
"sha256": "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac",
"sha256": "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.1"
"version": "3.1.0"
},
"dbus": {
"dependency": "transitive",
@@ -424,11 +424,11 @@
"dependency": "transitive",
"description": {
"name": "device_info_plus",
"sha256": "306b78788d1bb569edb7c55d622953c2414ca12445b41c9117963e03afc5c513",
"sha256": "0c6396126421b590089447154c5f98a5de423b70cfb15b1578fd018843ee6f53",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "11.3.3"
"version": "11.4.0"
},
"device_info_plus_platform_interface": {
"dependency": "transitive",
@@ -610,11 +610,11 @@
"dependency": "direct main",
"description": {
"name": "flutter_bloc",
"sha256": "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc",
"sha256": "cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.1.0"
"version": "9.1.1"
},
"flutter_driver": {
"dependency": "direct dev",
@@ -790,11 +790,11 @@
"dependency": "direct main",
"description": {
"name": "go_router",
"sha256": "f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3",
"sha256": "0b1e06223bee260dee31a171fb1153e306907563a0b0225e8c1733211911429a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "14.8.1"
"version": "15.1.2"
},
"graphs": {
"dependency": "transitive",
@@ -810,11 +810,11 @@
"dependency": "direct main",
"description": {
"name": "http",
"sha256": "fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f",
"sha256": "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
"version": "1.4.0"
},
"http_multi_server": {
"dependency": "transitive",
@@ -986,8 +986,8 @@
"dependency": "direct main",
"description": {
"path": "packages/lw_file_system",
"ref": "d5c41c874b0758cb8fb623cdd095c032f04f5740",
"resolved-ref": "d5c41c874b0758cb8fb623cdd095c032f04f5740",
"ref": "08f472ba88112647b4a7b94dff57d74ed897e062",
"resolved-ref": "08f472ba88112647b4a7b94dff57d74ed897e062",
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
},
"source": "git",
@@ -1008,8 +1008,8 @@
"dependency": "direct main",
"description": {
"path": "packages/lw_sysapi",
"ref": "ebf47114a4d63fc06a6be0dbbfd5594ed82e7ee5",
"resolved-ref": "ebf47114a4d63fc06a6be0dbbfd5594ed82e7ee5",
"ref": "82ef4b4f68a18e55226b3030293e26c28b4964c2",
"resolved-ref": "82ef4b4f68a18e55226b3030293e26c28b4964c2",
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
},
"source": "git",
@@ -1049,8 +1049,8 @@
"dependency": "direct main",
"description": {
"path": "packages/material_leap",
"ref": "d5c41c874b0758cb8fb623cdd095c032f04f5740",
"resolved-ref": "d5c41c874b0758cb8fb623cdd095c032f04f5740",
"ref": "792044f51747d7d078203904e460d4ef504a9db9",
"resolved-ref": "792044f51747d7d078203904e460d4ef504a9db9",
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
},
"source": "git",
@@ -1089,13 +1089,12 @@
"network_info_plus": {
"dependency": "direct main",
"description": {
"path": "packages/network_info_plus/network_info_plus",
"ref": "9bd0c023f2dc209576dc66bf989048ba218127b6",
"resolved-ref": "9bd0c023f2dc209576dc66bf989048ba218127b6",
"url": "https://github.com/CodeDoctorDE/plus_plugins.git"
"name": "network_info_plus",
"sha256": "f926b2ba86aa0086a0dfbb9e5072089bc213d854135c1712f1d29fc89ba3c877",
"url": "https://pub.dev"
},
"source": "git",
"version": "6.1.3"
"source": "hosted",
"version": "6.1.4"
},
"network_info_plus_platform_interface": {
"dependency": "transitive",
@@ -1405,11 +1404,11 @@
"dependency": "transitive",
"description": {
"name": "provider",
"sha256": "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310",
"sha256": "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.1.4"
"version": "6.1.5"
},
"pub_semver": {
"dependency": "transitive",
@@ -1536,21 +1535,21 @@
"dependency": "direct main",
"description": {
"name": "share_plus",
"sha256": "fce43200aa03ea87b91ce4c3ac79f0cecd52e2a7a56c7a4185023c271fbfa6da",
"sha256": "b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.1.4"
"version": "11.0.0"
},
"share_plus_platform_interface": {
"dependency": "transitive",
"description": {
"name": "share_plus_platform_interface",
"sha256": "cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b",
"sha256": "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.0.2"
"version": "6.0.0"
},
"shared_preferences": {
"dependency": "direct main",
@@ -1893,11 +1892,11 @@
"dependency": "transitive",
"description": {
"name": "url_launcher_web",
"sha256": "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9",
"sha256": "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.0"
"version": "2.4.1"
},
"url_launcher_windows": {
"dependency": "transitive",
@@ -1993,11 +1992,11 @@
"dependency": "transitive",
"description": {
"name": "web_socket",
"sha256": "bfe6f435f6ec49cb6c01da1e275ae4228719e59a6b067048c51e72d9d63bcc4b",
"sha256": "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.0"
"version": "1.0.1"
},
"web_socket_channel": {
"dependency": "transitive",
@@ -2023,11 +2022,11 @@
"dependency": "transitive",
"description": {
"name": "win32",
"sha256": "dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f",
"sha256": "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.12.0"
"version": "5.13.0"
},
"win32_registry": {
"dependency": "transitive",
@@ -1,17 +1,16 @@
diff --git a/playlists/dynamicplaylists.cpp b/playlists/dynamicplaylists.cpp
index 07b6dce3..6a3f97c9 100644
index b85e93b5..3c29f775 100644
--- a/playlists/dynamicplaylists.cpp
+++ b/playlists/dynamicplaylists.cpp
@@ -211,11 +211,6 @@ void DynamicPlaylists::start(const QString &name)
return;
}
@@ -205,11 +205,6 @@ void DynamicPlaylists::start(const QString& name)
return;
}
- if (Utils::findExe("perl").isEmpty()) {
- emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
- return;
- }
- if (Utils::findExe("perl").isEmpty()) {
- emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
- return;
- }
-
QString fName(Utils::dataDir(rulesDir, false)+name+constExtension);
QString fName(Utils::dataDir(rulesDir, false) + name + constExtension);
if (!QFile::exists(fName)) {
if (!QFile::exists(fName)) {
+25 -11
View File
@@ -4,7 +4,7 @@
fetchFromGitHub,
cmake,
pkg-config,
qt5,
qt6,
perl,
# Cantata doesn't build with cdparanoia enabled so we disable that
@@ -22,6 +22,7 @@
taglib_1,
taglib_extras,
withHttpStream ? true,
gst_all_1,
withReplaygain ? true,
ffmpeg,
speex,
@@ -33,7 +34,7 @@
udisks2,
withDynamic ? true,
withHttpServer ? true,
withLibVlc ? false,
withLibVlc ? true,
libvlc,
withStreams ? true,
}:
@@ -53,6 +54,14 @@ let
withUdisks = (withTaglib && withDevices && stdenv.hostPlatform.isLinux);
gst = with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
gst-plugins-good
gst-plugins-bad
];
options = [
{
names = [ "CDDB" ];
@@ -100,7 +109,7 @@ let
{
names = [ "HTTP_STREAM_PLAYBACK" ];
enable = withHttpStream;
pkgs = [ qt5.qtmultimedia ];
pkgs = [ qt6.qtmultimedia ];
}
{
names = [ "LAME" ];
@@ -153,13 +162,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "cantata";
version = "2.5.0";
version = "3.3.1";
src = fetchFromGitHub {
owner = "CDrummond";
owner = "nullobsi";
repo = "cantata";
rev = "v${finalAttrs.version}";
hash = "sha256-UaZEKZvCA50WsdQSSJQQ11KTK6rM4ouCHDX7pn3NlQw=";
hash = "sha256-4lkfY+87lEE2A863JogG5PtO5SyGn7Hb8shQljSqq3Q=";
};
patches = [
@@ -174,24 +183,29 @@ stdenv.mkDerivation (finalAttrs: {
'';
buildInputs = [
qt5.qtbase
qt5.qtsvg
qt6.qtbase
qt6.qtsvg
qt6.qtwayland
(perl.withPackages (ppkgs: with ppkgs; [ URI ]))
] ++ lib.flatten (builtins.catAttrs "pkgs" (builtins.filter (e: e.enable) options));
nativeBuildInputs = [
cmake
pkg-config
qt5.qttools
qt5.wrapQtAppsHook
qt6.qttools
qt6.wrapQtAppsHook
];
cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
qtWrapperArgs = lib.optionals (withHttpStream && !withLibVlc) [
"--prefix GST_PLUGIN_PATH : ${lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gst}"
];
meta = {
description = "Graphical client for MPD";
mainProgram = "cantata";
homepage = "https://github.com/cdrummond/cantata";
homepage = "https://github.com/nullobsi/cantata";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ peterhoeg ];
# Technically, Cantata should run on Darwin/Windows so if someone wants to
+2 -2
View File
@@ -30,14 +30,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "chatty";
version = "0.8.7";
version = "0.8.8";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "Chatty";
tag = "v${finalAttrs.version}";
hash = "sha256-VQgEXegP4SjniueyVQNx6Jt8/cHUpUcHP0yEa1cF00w=";
hash = "sha256-pLdl44nLRFLH76499JcaKgXRpf51wqFm174gUa7noKc=";
};
nativeBuildInputs = [
+10 -1
View File
@@ -1,7 +1,16 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "anyhow"
version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
[[package]]
name = "chroot-realpath"
version = "0.1.0"
dependencies = [
"anyhow",
]
@@ -4,6 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
anyhow = "1.0.98"
[profile.release]
opt-level = "z"
+12 -10
View File
@@ -1,24 +1,26 @@
use std::env;
use std::io::{stdout, Error, ErrorKind, Write};
use std::io::{stdout, Write};
use std::os::unix::ffi::OsStrExt;
use std::os::unix::fs;
fn main() -> std::io::Result<()> {
use anyhow::{bail, Context, Result};
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() != 3 {
return Err(Error::new(
ErrorKind::InvalidInput,
format!("Usage: {} <chroot> <path>", args[0]),
));
bail!("Usage: {} <chroot> <path>", args[0]);
}
fs::chroot(&args[1])?;
std::env::set_current_dir("/")?;
fs::chroot(&args[1]).context("Failed to chroot")?;
std::env::set_current_dir("/").context("Failed to change directory")?;
let path = std::fs::canonicalize(&args[2])?;
let path = std::fs::canonicalize(&args[2])
.with_context(|| format!("Failed to canonicalize {}", args[2]))?;
stdout().write_all(path.into_os_string().as_bytes())?;
stdout()
.write_all(path.into_os_string().as_bytes())
.context("Failed to write output")?;
Ok(())
}
+6 -3
View File
@@ -7,12 +7,12 @@
appimageTools.wrapType2 rec {
pname = "cider-2";
version = "2.6.1";
version = "3.0.2";
src = requireFile {
name = "cider-linux-x64.AppImage";
url = "https://cidercollective.itch.io/cider";
sha256 = "0qjhsssccxiq92zs04zhi53bkaf2qwfq7ryic1w9sha59ffyxqbf";
sha256 = "1rfraf1r1zmp163kn8qg833qxrxmx1m1hycw8q9hc94d0hr62l2x";
};
nativeBuildInputs = [ makeWrapper ];
@@ -42,7 +42,10 @@ appimageTools.wrapType2 rec {
homepage = "https://cider.sh";
license = lib.licenses.unfree;
mainProgram = "cider-2";
maintainers = with lib.maintainers; [ itsvic-dev ];
maintainers = with lib.maintainers; [
itsvic-dev
l0r3v
];
platforms = [ "x86_64-linux" ];
};
}
+4 -4
View File
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
"@anthropic-ai/claude-code": "^1.0.2"
"@anthropic-ai/claude-code": "^1.0.3"
}
},
"node_modules/@anthropic-ai/claude-code": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.2.tgz",
"integrity": "sha512-6p7RMXEcVfymsJ7v0GyMfA3gcD2AbFVSb9b1Py4tbxM2ensjyaSx3wVQW2QiFk+9mhoRkYc0ETVnJ1x/G0LW7g==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.3.tgz",
"integrity": "sha512-a4aBhcXGG7k4YtyF2aYVKt08h48BG+F12RA/G3K1vb6unl9CAvWDP/A7xudtCOzxFKxLwxctrn74pHEdpmHSPw==",
"hasInstallScript": true,
"license": "SEE LICENSE IN README.md",
"bin": {
+3 -3
View File
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "claude-code";
version = "1.0.2";
version = "1.0.3";
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
hash = "sha256-mQv2o9uaOZiZSdkNmLiqJs66fe9fiHfEmrXQZwmME34=";
hash = "sha256-LjDxVv6KSTuRZhCHztvf81E5DQbkqs8cbrnbbGkCeQU=";
};
npmDepsHash = "sha256-Diii1tBBzYlB4svlphtu1VAOoijoq9WudxtJFSXXbbE=";
npmDepsHash = "sha256-muMukVEj6uXkupSoyp41FihsLth0ENgfzBlD5CwlE2w=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+2 -2
View File
@@ -18,14 +18,14 @@
python3Packages.buildPythonApplication rec {
pname = "cobang";
version = "1.6.2";
version = "1.7.1";
pyproject = false; # Built with meson
src = fetchFromGitHub {
owner = "hongquan";
repo = "CoBang";
tag = "v${version}";
hash = "sha256-M32bGVPOkbx93gDPQcin+Dv9P8zfx1Ory+DTJY+bypI=";
hash = "sha256-rBGz9g6+6jguJggBQKlyOWoME3VHOP8Gq4VtYywoVdI=";
};
# https://github.com/hongquan/CoBang/issues/117
+10 -9
View File
@@ -49,26 +49,26 @@
}:
let
pname = "cursor";
version = "0.49.6";
version = "0.50.5";
inherit (stdenvNoCC) hostPlatform;
sources = {
x86_64-linux = fetchurl {
url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/x64/Cursor-0.49.6-x86_64.AppImage";
hash = "sha256-WH4/Zw0VJmRGyRzMlkThkhZ4fGysMKBUSIPCTsyGS4w=";
url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/x64/Cursor-0.50.5-x86_64.AppImage";
hash = "sha256-DUWIgQYD3Wj6hF7NBb00OGRynKmXcFldWFUA6W8CZeM=";
};
aarch64-linux = fetchurl {
url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/arm64/Cursor-0.49.6-aarch64.AppImage";
hash = "sha256-cpNoff6mDRkT2RicaDlxzqVP9BNe6UEGgJVHr1xMiv0=";
url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/arm64/Cursor-0.50.5-aarch64.AppImage";
hash = "sha256-51zTYg4A+4ZUbGZ6/Qp3d5aL8IafewGOUYbXWGG8ILY=";
};
x86_64-darwin = fetchurl {
url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/x64/Cursor-darwin-x64.dmg";
hash = "sha256-fAaLY9YTIuNThFl5OsIMHavy2xwDgYooL4xTSp4Cwzw=";
url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/x64/Cursor-darwin-x64.dmg";
hash = "sha256-C2+z3WXi3Ma3PzlU8BrcuJFGMx8YosNdxuSqR5tJdBE=";
};
aarch64-darwin = fetchurl {
url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/arm64/Cursor-darwin-arm64.dmg";
hash = "sha256-DNN2+gfs9u0tZmh75J258d2TL6ErIYludMgPJZcgfb8=";
url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/arm64/Cursor-darwin-arm64.dmg";
hash = "sha256-Gz+aYDaDMDx46R7HA8u5vZwkXx9q//uu4hNyyRmrq9s=";
};
};
@@ -191,6 +191,7 @@ stdenvNoCC.mkDerivation {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
aspauldingcode
prince213
];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "cursor";
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl yq coreutils common-updater-scripts
#!nix-shell -i bash -p curl jq coreutils common-updater-scripts
set -eu -o pipefail
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; code-cursor.version or (lib.getVersion code-cursor)" | tr -d '"')
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
SDL2,
SDL2_image,
pkg-config,
@@ -14,6 +15,7 @@
SDL2_mixer,
SDL2_ttf,
python3,
xorg,
}:
stdenv.mkDerivation rec {
@@ -38,6 +40,7 @@ stdenv.mkDerivation rec {
zlib
curl
python3
xorg.libX11
];
cmakeFlags = [
@@ -54,6 +57,16 @@ stdenv.mkDerivation rec {
pkg-config
];
patches = [
# Fixes a broken build due to a renamed inner struct of SDL_ttf.
# Should be removable as soon as upstream releases v. 3.5.3.
(fetchpatch {
name = "fix-sdl-ttf_font_rename.patch";
url = "https://github.com/gerstrong/Commander-Genius/commit/e8af0d16970d75e94392f57de0992dfddc509bc3.patch";
hash = "sha256-bcCzXzh9yDngwHMfQTrnvyDal4YBiBcMTtKTgt9BtDk=";
})
];
postPatch = ''
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(sdl2-config --cflags)"
sed -i 's,APPDIR games,APPDIR bin,' src/install.cmake
+42 -21
View File
@@ -10,26 +10,7 @@
}:
let
attrsToPlugins =
attrs:
builtins.map (
{
name,
repo,
version,
}:
"${name}:${repo}"
) attrs;
attrsToSources =
attrs:
builtins.map (
{
name,
repo,
version,
}:
"${repo}@${version}"
) attrs;
attrsToSources = attrs: builtins.map ({ repo, version, ... }: "${repo}@${version}") attrs;
in
buildGoModule rec {
pname = "coredns";
@@ -53,7 +34,47 @@ buildGoModule rec {
# Override the go-modules fetcher derivation to fetch plugins
modBuildPhase = ''
for plugin in ${builtins.toString (attrsToPlugins externalPlugins)}; do echo $plugin >> plugin.cfg; done
cp plugin.cfg plugin.cfg.orig
${
(lib.concatMapStringsSep "\n" (
plugin:
let
position = plugin.position or "end-of-file";
formatPlugin = { name, repo, ... }: "${name}:${repo}";
in
if position == "end-of-file" then
"echo '${formatPlugin plugin}' >> plugin.cfg"
else if position == "start-of-file" then
"sed -i '1i ${formatPlugin plugin}' plugin.cfg"
else if lib.hasAttrByPath [ "before" ] position then
''
if ! grep -q '^${position.before}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} before ${position.before} in plugin.cfg: ${position.before} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.before}:/i ${formatPlugin plugin}' plugin.cfg
''
else if lib.hasAttrByPath [ "after" ] position then
''
if ! grep -q '^${position.after}:' plugin.cfg; then
echo 'Failed to insert ${plugin.name} after ${position.after} in plugin.cfg: ${position.after} is not in plugin.cfg'
exit 1
fi
sed -i '/^${position.after}:/a ${formatPlugin plugin}' plugin.cfg
''
else
throw ''
Unsupported position value in externalPlugin:
${builtins.toJSON plugin}.
Valid values for position attr are:
- position = "end-of-file" (the default)
- position = "start-of-file"
- position.before = "{other plugin}"
- position.after = "{other plugin}"
''
) externalPlugins)
}
diff -u plugin.cfg.orig plugin.cfg || true
for src in ${builtins.toString (attrsToSources externalPlugins)}; do go get $src; done
GOOS= GOARCH= go generate
go mod vendor
+3
View File
@@ -13,6 +13,7 @@
libpng,
pngpp,
libwebp,
libX11,
}:
let
@@ -55,6 +56,7 @@ stdenv.mkDerivation rec {
libpng
pngpp
libwebp
libX11
];
strictDeps = true;
@@ -114,6 +116,7 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [
siraben
tomodachi94
viluon
];
mainProgram = "craftos";
};
+5 -5
View File
@@ -17,7 +17,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
version = "25.0.4";
version = "25.0.5";
src =
let
@@ -30,10 +30,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
x86_64-linux = "sha256-ALtJIld7gT4pj+jGRkwMloq6B/ZBOMYZxws9N7xNNZg=";
aarch64-linux = "sha256-Ka+jEI6y1BRqV83yDvu1yDzJfpUIxKKD+zehVHcNQ/o=";
x86_64-darwin = "sha256-P8f0NlMjh/46RChQy8JIm71msqX023K2QaFEic2Br9M=";
aarch64-darwin = "sha256-a9H9M1j6iPcrVcfDxCZHeZj6e55QH3XochXaL2OStlI=";
x86_64-linux = "sha256-8JkvI6OZGP1Ot2TEP2n4hj3s9As7holT+thVf0BvOMQ=";
aarch64-linux = "sha256-cZQFEbogSxuIaS/z/tFQcvs08J0Omi21zLqb0eFQNw0=";
x86_64-darwin = "sha256-LueOQZIKB/r6gtlj0+xwoJXMRTFvbSY+RTwAB74KiYo=";
aarch64-darwin = "sha256-L6bOyvhlsT4sXL1QDhlJtb8DFfDVw21ixyRenOVdCxU=";
};
in
fetchurl {
+2 -2
View File
@@ -10,13 +10,13 @@
buildGoModule rec {
pname = "ddev";
version = "1.24.5";
version = "1.24.6";
src = fetchFromGitHub {
owner = "ddev";
repo = "ddev";
rev = "v${version}";
hash = "sha256-CyYGmxYJ5ef+H1qt0CiFcGOslBwkeHqdDQcmuqu4g9M=";
hash = "sha256-vOf500/HdOWn24MdXDfbetqAyKbEsaut707O+Rndks8=";
};
nativeBuildInputs = [
+30
View File
@@ -0,0 +1,30 @@
{
buildNpmPackage,
fetchFromGitHub,
gitUpdater,
lib,
}:
buildNpmPackage rec {
pname = "defuddle-cli";
version = "0.6.4";
src = fetchFromGitHub {
owner = "kepano";
repo = "defuddle-cli";
tag = "${version}";
hash = "sha256-28XmpFKzBKNhRkPOGaacJVw8hjQUZq2nwuR0vNo8aW0=";
};
npmDepsHash = "sha256-rRo+ty/E09OS+cWDnKQkROEdDc0hiB5g1h/+NbJe+/M=";
passthru.updateScript = gitUpdater { };
meta = {
description = "Command line utility to extract clean html, markdown and metadata from web pages";
homepage = "https://github.com/kepano/defuddle-cli";
license = lib.licenses.mit;
mainProgram = "defuddle";
maintainers = with lib.maintainers; [ surfaceflinger ];
};
}
@@ -0,0 +1,63 @@
{
lib,
fetchFromGitHub,
stdenv,
python3,
makeWrapper,
}:
let
pythonEnv = python3.buildEnv.override {
extraLibs = with python3.pkgs; [
tkinter
requests
pillow
(watchdog.overrideAttrs {
disabledTests = [
"test_select_fd" # Avoid `Too many open files` error. See https://github.com/gorakhargosh/watchdog/issues/1095
];
})
semantic-version
psutil
];
ignoreCollisions = true;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "edmarketconnector";
version = "5.13.1";
src = fetchFromGitHub {
owner = "EDCD";
repo = "EDMarketConnector";
tag = "Release/${finalAttrs.version}";
hash = "sha256-50OPbAXrDKodN0o6UibGUmMqQ/accF2/gNHnms+8rOI=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstallPhase
mkdir -p $out/share/icons/hicolor/512x512/apps/
ln -s ${finalAttrs.src}/io.edcd.EDMarketConnector.png $out/share/icons/hicolor/512x512/apps/io.edcd.EDMarketConnector.png
mkdir -p "$out/share/applications/"
ln -s "${finalAttrs.src}/io.edcd.EDMarketConnector.desktop" "$out/share/applications/"
makeWrapper ${pythonEnv}/bin/python $out/bin/edmarketconnector \
--add-flags "${finalAttrs.src}/EDMarketConnector.py $@"
runHook postInstallPhase
'';
meta = {
homepage = "https://github.com/EDCD/EDMarketConnector";
description = "Uploads Elite: Dangerous market data to popular trading tools";
longDescription = "Downloads commodity market and other station data from the game Elite: Dangerous for use with all popular online and offline trading tools.";
changelog = "https://github.com/EDCD/EDMarketConnector/releases/tag/Release%2F${finalAttrs.version}";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.x86_64;
mainProgram = "edmarketconnector";
maintainers = with lib.maintainers; [ jiriks74 ];
};
})
@@ -0,0 +1,62 @@
{
cmake,
extra-cmake-modules,
fancontrol-gui,
fetchFromGitHub,
lib,
libgcc,
libsForQt5,
nix-update-script,
stdenv,
testers,
}:
stdenv.mkDerivation rec {
pname = "fancontrol-gui";
version = "0.8";
src = fetchFromGitHub {
owner = "Maldela";
repo = "fancontrol-gui";
tag = "v${version}";
hash = "sha256-hJaU8SL0b6GmTONGSIzUzzbex6KxHf2Np0bCX8YSSVM=";
};
buildInputs = with libsForQt5; [
libgcc
kcmutils
kdeclarative
kio
plasma-framework
qt5.qtdeclarative
qt5.qtquickcontrols
qt5.qtquickcontrols2
];
nativeBuildInputs = [
cmake
extra-cmake-modules
libsForQt5.wrapQtAppsHook
];
patches = [
./version.patch
];
passthru = {
tests.version = testers.testVersion {
package = fancontrol-gui;
command = "env QT_QPA_PLATFORM=minimal ${lib.getExe fancontrol-gui} --version";
};
updateScript = nix-update-script { };
};
meta = {
description = "GUI for fancontrol with QT and KDE framework 5";
homepage = "https://github.com/Maldela/fancontrol-gui";
changelog = "https://github.com/Maldela/fancontrol-gui/releases/tag/v${version}";
license = lib.licenses.gpl2Plus;
mainProgram = "fancontrol_gui";
maintainers = with lib.maintainers; [ dashietm ];
platforms = lib.platforms.linux;
};
}
@@ -0,0 +1,13 @@
diff --git a/fancontrol-gui/src/main.cpp b/fancontrol-gui/src/main.cpp
index 9f33fa0..ae0deb6 100644
--- a/fancontrol-gui/src/main.cpp
+++ b/fancontrol-gui/src/main.cpp
@@ -81,7 +81,7 @@ int main(int argc, char *argv[])
auto about = KAboutData(QStringLiteral("org.kde.fancontrol.gui"),
i18n("Fancontrol-GUI"),
- QStringLiteral("0.7"),
+ QStringLiteral("0.8"),
i18n("Graphical user interface for fancontrol"),
KAboutLicense::KAboutLicense::GPL_V2,
QStringLiteral("Copyright (C) 2015 Malte Veerman"),
@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitLab,
meson,
ninja,
json-glib,
feedbackd,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "feedbackd-device-themes";
version = "0.8.3";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "agx";
repo = "feedbackd-device-themes";
rev = "v${finalAttrs.version}";
hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY=";
};
nativeBuildInputs = [
meson
ninja
json-glib # Provides json-glib-validate
];
nativeCheckInputs = [
feedbackd # Provides fbd-theme-validate
];
mesonFlags = [
(lib.mesonOption "validate" (if finalAttrs.doCheck then "enabled" else "disabled"))
];
doCheck = true;
passthru = {
updateScript = nix-update-script { };
};
strictDeps = true;
meta = with lib; {
description = "Device specific feedback themes for Feedbackd";
homepage = "https://gitlab.freedesktop.org/agx/feedbackd-device-themes";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
pacman99
Luflosi
];
platforms = platforms.linux;
};
})
+16 -17
View File
@@ -20,21 +20,13 @@
dbus,
gmobile,
umockdev,
feedbackd-device-themes,
nix-update-script,
}:
let
themes = fetchFromGitLab {
domain = "source.puri.sm";
owner = "Librem5";
repo = "feedbackd-device-themes";
rev = "v0.4.0";
hash = "sha256-kY/+DyRxKEUzq7ctl6Va14AKUCpWU7NRQhJOwhtkJp8=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "feedbackd";
version = "0.8.1";
version = "0.8.2";
outputs = [
"out"
@@ -43,11 +35,11 @@ stdenv.mkDerivation (finalAttrs: {
];
src = fetchFromGitLab {
domain = "source.puri.sm";
owner = "Librem5";
domain = "gitlab.freedesktop.org";
owner = "agx";
repo = "feedbackd";
rev = "v${finalAttrs.version}";
hash = "sha256-J2BNDF9TyW+srW0pGbGt4/Uw4KPVf/Ke+HJVBldmfCA=";
hash = "sha256-Hd+kHLr+d1+mg9BbD1pCfVZuwmf7Hk02xmDTmR3foh4=";
};
depsBuildBuild = [
@@ -93,7 +85,6 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = ''
mkdir -p $out/lib/udev/rules.d
sed "s|/usr/libexec/|$out/libexec/|" < $src/data/90-feedbackd.rules > $out/lib/udev/rules.d/90-feedbackd.rules
cp ${themes}/data/* $out/share/feedbackd/themes/
'';
postFixup = ''
@@ -111,10 +102,18 @@ stdenv.mkDerivation (finalAttrs: {
updateScript = nix-update-script { };
};
strictDeps = true;
meta = with lib; {
description = "Daemon to provide haptic (and later more) feedback on events";
homepage = "https://source.puri.sm/Librem5/feedbackd";
license = licenses.gpl3Plus;
description = "Theme based Haptic, Visual and Audio Feedback";
homepage = "https://gitlab.freedesktop.org/agx/feedbackd/";
license = with licenses; [
# feedbackd
gpl3Plus
# libfeedback library
lgpl21Plus
];
maintainers = with maintainers; [
pacman99
Luflosi
+3 -3
View File
@@ -22,19 +22,19 @@
stdenv.mkDerivation (finalAttrs: {
pname = "flare";
version = "0.16.0";
version = "0.16.1";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "schmiddi-on-mobile";
repo = "flare";
tag = finalAttrs.version;
hash = "sha256-SasvP3P/QAPqcrJ4L2EO9XlrekGJXv3RjQjj+3VUGxM=";
hash = "sha256-5phXBsXi0kbTb4RVzbB4LS9b+S2M3U2l/6QYoSHo114=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-l+ADDPOOfWyVxDdZrMxVWRS0wI69lP+hjAm5PFdCGsM=";
hash = "sha256-sI+zV1YW9RhtYRgUWiFKN8Iw9a5qkktOo0hFwyimPI8=";
};
nativeBuildInputs = [
+18 -5
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
meson,
ninja,
gettext,
@@ -16,6 +17,7 @@
gsettings-desktop-schemas,
gtk4,
adwaita-icon-theme,
libarchive,
desktop-file-utils,
nix-update-script,
wrapGAppsHook4,
@@ -27,17 +29,26 @@
webkitgtk_6_0,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "font-manager";
version = "0.9.2";
version = "0.9.4";
src = fetchFromGitHub {
owner = "FontManager";
repo = "font-manager";
rev = version;
hash = "sha256-x7ZRC/xwF6Y2BhbtApVZ4hPZGNGaJiilqpxLyax9r2g=";
tag = finalAttrs.version;
hash = "sha256-hggRvwMy/D2jc98CQPc7GChTV9+zYbYHPMENf/8Uq9s=";
};
patches = [
# TODO: drop this patch when updating beyond version 0.9.4
(fetchpatch {
name = "fix-reproducible-build-issue.patch";
url = "https://github.com/FontManager/font-manager/commit/cc0c148d90741e39615e3380d283f684a052dd94.patch";
hash = "sha256-bRn+jVjBu6ZqmQCErgcqxv6OyFa4hkPYB5bvK7rEibA=";
})
];
nativeBuildInputs = [
pkg-config
meson
@@ -61,6 +72,7 @@ stdenv.mkDerivation rec {
gsettings-desktop-schemas # for font settings
gtk4
adwaita-icon-theme
libarchive
]
++ lib.optionals withWebkit [
glib-networking # for SSL so that Google Fonts can load
@@ -77,6 +89,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://fontmanager.github.io/";
changelog = "https://github.com/FontManager/font-manager/raw/refs/tags/${finalAttrs.version}/CHANGELOG";
description = "Simple font management for GTK desktop environments";
mainProgram = "font-manager";
longDescription = ''
@@ -92,4 +105,4 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}
})
+18 -18
View File
@@ -61,8 +61,8 @@
},
{
"pname": "fantomas",
"version": "7.0.0",
"hash": "sha256-v4bXmvjZOYxl5RSIHuqVfDzBQdRz5SrmzZtD6SeEYTY="
"version": "7.0.1",
"hash": "sha256-2aGD6Kjh83gmssRqqZ/Uihi7VbNqNUelX4otIfCuhTI="
},
{
"pname": "Fantomas.Client",
@@ -76,8 +76,8 @@
},
{
"pname": "fsharp-analyzers",
"version": "0.30.0",
"hash": "sha256-7oaSwpHAU1opzpz4szLU/gDaJC/ww9eiFkPu0nr4Mj4="
"version": "0.31.0",
"hash": "sha256-PoAvaXbXsmvVw870UsnqdD20HoBHO7u4bzoaz5DXfzM="
},
{
"pname": "FSharp.Analyzers.Build",
@@ -86,13 +86,13 @@
},
{
"pname": "FSharp.Analyzers.SDK",
"version": "0.30.0",
"hash": "sha256-UlMSSAQTSSF2hnGOXABpPWZnav6DU3FMtOkJYO/Sl+M="
"version": "0.31.0",
"hash": "sha256-ws2nu1EyEESFqui/3l4+ucATy0Ag/XjjPvLZprcbC5c="
},
{
"pname": "FSharp.Compiler.Service",
"version": "43.9.201",
"hash": "sha256-YYo2O873Za3uXXdeOFCkIAToF8Txae1W2d5PuJ3dy/Y="
"version": "43.9.300",
"hash": "sha256-dBo6juX2cLAAEIlGwRdYrR13dMTtbvBPhyFpUj+Rogc="
},
{
"pname": "FSharp.Control.AsyncSeq",
@@ -106,8 +106,8 @@
},
{
"pname": "FSharp.Core",
"version": "9.0.201",
"hash": "sha256-38Y0QFg/knogSJtxDVpVXKo5n4zAo8zaffeT6tbhahk="
"version": "9.0.300",
"hash": "sha256-eBGcd/OwlGuW2009Fb/ym813OWI9tHJXCY6oi4iGOyA="
},
{
"pname": "FSharp.Data.Adaptive",
@@ -206,8 +206,8 @@
},
{
"pname": "Ionide.Analyzers",
"version": "0.14.4",
"hash": "sha256-yzEao/iNQ11A7WV54cU7OSJTPTvkr+YXaOdrTogy4JA="
"version": "0.14.5",
"hash": "sha256-0bJGA3+8+FC3C6e1l4j0mrRO2uujQOf2C3Qa+JxkH3o="
},
{
"pname": "Ionide.KeepAChangelog.Tasks",
@@ -221,18 +221,18 @@
},
{
"pname": "Ionide.ProjInfo",
"version": "0.70.2",
"hash": "sha256-Y606emyiJ+ZgS5NH578WURySaVc/yo2OA7rWbOH57jA="
"version": "0.71.1",
"hash": "sha256-54LnHaowj5xpUdkI3UgIzNVdxNmVqNCNMiJo8k1LMGI="
},
{
"pname": "Ionide.ProjInfo.FCS",
"version": "0.70.2",
"hash": "sha256-ufDkvztQZCtGTdegsIFIbixWTvIJwmNwhis2kb2OFU8="
"version": "0.71.1",
"hash": "sha256-UtAh4f6ee+c0cMkomP0ayo1mOUqWdFwMtBxK/DWioFE="
},
{
"pname": "Ionide.ProjInfo.ProjectSystem",
"version": "0.70.2",
"hash": "sha256-3C+vn7ROgGWxjaHaACaUENYcAt9jYrnquBebQ2eo1y0="
"version": "0.71.1",
"hash": "sha256-zSVY/uRc4HoEEB9YDSJtDlDDHdZD+zBca3RrXJaRoBM="
},
{
"pname": "LinkDotNet.StringBuilder",
+2 -2
View File
@@ -9,13 +9,13 @@
buildDotnetModule (finalAttrs: {
pname = "fsautocomplete";
version = "0.77.7";
version = "0.78.1";
src = fetchFromGitHub {
owner = "fsharp";
repo = "FsAutoComplete";
tag = "v${finalAttrs.version}";
hash = "sha256-eyGWUSAtFT/48QOZ6k7+htLhLjGrc4scgp2VLBu3bcE=";
hash = "sha256-l+xC7OXOEE3gSfbsqcTF26/29dsr/cin8moRoaDSKBM=";
};
nugetDeps = ./deps.json;
+2 -2
View File
@@ -29,14 +29,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "furnace";
version = "0.6.8.1";
version = "0.6.8.2";
src = fetchFromGitHub {
owner = "tildearrow";
repo = "furnace";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-R4yQqTPVNx5i9AeY06T0QdNN22ImLvD0bH96r5ojPLo=";
hash = "sha256-lhtuNYZySq5MHJiNIMNmUmGLjwE8696tpNyUoAvY94E=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
+1
View File
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication {
dependencies = [
python3Packages.requests
python3Packages.pysocks
yt-dlp
];
+10
View File
@@ -6,6 +6,7 @@
pkg-config,
byacc,
flex,
fetchpatch,
}:
stdenv.mkDerivation rec {
@@ -19,6 +20,15 @@ stdenv.mkDerivation rec {
hash = "sha256-N5dzGhyXPDWcm/cNUSUQt4rR+PzaD1OUssRO3Sdfmoo=";
};
patches = [
# Darwin builds are fixed in master, but the change is unreleased.
(fetchpatch {
name = "darwin-build-fix.patch";
url = "https://github.com/herrhotzenplotz/gcli/commit/720e372250fd363bdd90e9452907508563e30f93.patch";
hash = "sha256-TpjIisje20YObN2wf8iQlwHlY5kg0S7xTkUWxAmK+po=";
})
];
nativeBuildInputs = [
pkg-config
byacc
+3 -3
View File
@@ -9,18 +9,18 @@
buildNpmPackage (finalAttrs: {
pname = "glitchtip-frontend";
version = "4.2.10";
version = "5.0.1";
src = fetchFromGitLab {
owner = "glitchtip";
repo = "glitchtip-frontend";
tag = "v${finalAttrs.version}";
hash = "sha256-6ZOwAP6VB/uBrV6Yjc9jvzTNdfInekbLO/9PO57S9X8=";
hash = "sha256-mqwPCp7C5n2fOE8kgUnW3SYuuaY8ZkJtuhYXP4HevnM=";
};
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
hash = "sha256-uEyET3y8LfjTasaJ+Hl206/Q7ov69mA7oNa0mhgcUEQ=";
hash = "sha256-Jzwarti+WwKecWn3fPcF9LV+mbU22rgiTP7mslyoqRk=";
};
postPatch = ''
+18 -3
View File
@@ -3,6 +3,7 @@
python313,
fetchFromGitLab,
fetchFromGitHub,
fetchPypi,
rustPlatform,
callPackage,
stdenv,
@@ -14,7 +15,19 @@ let
python = python313.override {
self = python;
packageOverrides = final: prev: {
django = final.django_5;
django = final.django_5_2;
django-csp = prev.django-csp.overridePythonAttrs rec {
version = "4.0";
src = fetchPypi {
inherit version;
pname = "django_csp";
hash = "sha256-snAQu3Ausgo9rTKReN8rYaK4LTOLcPvcE8OjvShxKDM=";
};
};
django-ninja-cursor-pagination = prev.django-ninja-cursor-pagination.overridePythonAttrs {
# checks are failing with django 5
doCheck = false;
};
symbolic = prev.symbolic.overridePythonAttrs rec {
version = "10.2.1";
src = fetchFromGitHub {
@@ -55,7 +68,9 @@ let
django-import-export
django-ipware
django-ninja
django-ninja-cursor-pagination
django-organizations
django-postgres-partition
django-prometheus
django-redis
django-storages
@@ -87,14 +102,14 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "glitchtip";
version = "4.2.10";
version = "5.0.1";
pyproject = true;
src = fetchFromGitLab {
owner = "glitchtip";
repo = "glitchtip-backend";
tag = "v${finalAttrs.version}";
hash = "sha256-EGk/mhDlqGrJm/j5rTKeKRkJ/fRTspwtPJ+5OHwplfM=";
hash = "sha256-vfsuJn6lpaesK40nqCdJMCDiaaqS1EdZdvgmy9jPuo8=";
};
propagatedBuildInputs = pythonPackages;
+2 -2
View File
@@ -11,12 +11,12 @@
stdenv.mkDerivation rec {
pname = "glpng";
version = "1.46";
version = "1.47";
src = fetchFromRepoOrCz {
repo = "glpng";
rev = "v${version}";
hash = "sha256-C7EHaBN0PE/HJB6zcIaYU63+o7/MEz4WU1xr/kIOanM=";
hash = "sha256-mwh0E8OZKBf6UcRScAeco8dfQ4LJ+7TG0IPuRi3Mzfc=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -276,11 +276,11 @@ let
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "136.0.7103.114";
version = "137.0.7151.41";
src = fetchurl {
url = "http://dl.google.com/release2/chrome/iwktnyywqpn7dye3zjzgosvevq_136.0.7103.114/GoogleChrome-136.0.7103.114.dmg";
hash = "sha256-myJawlgVBQlLtgBfSfCL5XfdnH8d7xd+j8JV2+2MZ/s=";
url = "http://dl.google.com/release2/chrome/acracoudzvaateoc4hi5umv6pobq_137.0.7151.41/GoogleChrome-137.0.7151.41.dmg";
hash = "sha256-egOl4mjsIxjWxYTLI38U2LqrIs85+cmZG9oEXe/bF7Q=";
};
dontPatch = true;
+3 -3
View File
@@ -7,13 +7,13 @@
lib,
}:
let
version = "0.10.5";
version = "0.10.6";
src = fetchFromGitHub {
repo = "gose";
owner = "stv0g";
tag = "v${version}";
hash = "sha256-8ghz2CpHNUUUpxg7VFi4DwDFa0GlPKaRJ3zC4XC0IyA=";
hash = "sha256-H+15d0wCfL+jd+xjKSOrimLIAG1Mh8vO+5MaHaVocJg=";
};
frontend = buildNpmPackage {
@@ -37,7 +37,7 @@ buildGoModule {
inherit version;
inherit src;
vendorHash = "sha256-6AfLoIRDO3diKZ9yFpVVIsRUFxQfLbmk91Cs5336OIE=";
vendorHash = "sha256-HsYF4v7RUzGDJvZEoq0qTo9iPGJoqK4YqTsXSv8SwKQ=";
env.CGO_ENABLED = 0;
+5 -5
View File
@@ -1,12 +1,12 @@
{
"name": "@withgraphite/graphite-cli",
"version": "1.6.1",
"version": "1.6.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@withgraphite/graphite-cli",
"version": "1.6.1",
"version": "1.6.2",
"hasInstallScript": true,
"license": "None",
"dependencies": {
@@ -21,9 +21,9 @@
}
},
"node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
+3 -3
View File
@@ -8,14 +8,14 @@
buildNpmPackage rec {
pname = "graphite-cli";
version = "1.6.1";
version = "1.6.2";
src = fetchurl {
url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
hash = "sha256-r7tChs0vsg60LXFf9WZjthqMxXGgohNL4ojdjXNZcCo=";
hash = "sha256-k8zZyzLXQkII87QXjoXYlcQPj09PcMCuNy2NFPT2tHY=";
};
npmDepsHash = "sha256-DoK3GaGIwei9kumvAwfgaIY9iw+Z6ysFzUm5dMVV2W4=";
npmDepsHash = "sha256-HSiitFpXcIWkE/t0LtuDH9Z4fDgyFWc0/gdIsuvVq9I=";
postPatch = ''
ln -s ${./package-lock.json} package-lock.json
+2 -2
View File
@@ -9,12 +9,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "guile-mqtt";
version = "0.2.1";
version = "1.0.0";
# building from git repo requires nyacc>=2.01.3
src = fetchurl {
url = "https://github.com/mdjurfeldt/guile-mqtt/releases/download/v${finalAttrs.version}/guile-mqtt-${finalAttrs.version}.tar.gz";
hash = "sha256-+qfrUw8yIY8iObEVLbg6bOfiQNR5Lkw2n9oHMr3JQ5k=";
hash = "sha256-6+U3FHewbdI8l7r4pVCrd0DNKPy4BHHy2m/hcQ7ByBQ=";
};
strictDeps = true;
+3 -3
View File
@@ -7,17 +7,17 @@
rustPlatform.buildRustPackage rec {
pname = "heatseeker";
version = "1.7.2";
version = "1.7.3";
src = fetchFromGitHub {
owner = "rschmitt";
repo = "heatseeker";
rev = "v${version}";
sha256 = "sha256-SU5HLAFA7IHnVhsmVtxskteeKKIEvvVSqHIeEk5BkfA=";
sha256 = "sha256-ZKwRXtfIYEblsGjSSiVCl9XztM43rzBofQpPNGMPu+w=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-1DquXOdtSGXSU9bYzSW1J3ElpUIYB71NVBcGxnREy/k=";
cargoHash = "sha256-X4OTzgInh0D+EYCPkN2qyizzhARIOGwxJ2N9ZcrX/Ak=";
# https://github.com/rschmitt/heatseeker/issues/42
# I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
@@ -15,14 +15,14 @@
stdenv.mkDerivation rec {
pname = "helio-workstation";
version = "3.15";
version = "3.16";
src = fetchFromGitHub {
owner = "helio-fm";
repo = "helio-workstation";
rev = version;
fetchSubmodules = true;
hash = "sha256-SDK3lLcMCmxu1FwkPduNzlgmDU7LKitPqIvsr6rOYDc=";
hash = "sha256-JzJA9Y710upgzvsgPEV9QzpRUTYI0i2yi6thnUAcrL0=";
};
buildInputs = [
+3 -3
View File
@@ -130,13 +130,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "hydra";
version = "0-unstable-2025-04-16";
version = "0-unstable-2025-04-23";
src = fetchFromGitHub {
owner = "NixOS";
repo = "hydra";
rev = "bdde73acbd66c569e8171b42b810adf92a56f76a";
hash = "sha256-1hj8JJ4ngqzJ8Xt3WvCBnQmwTnzzaZaQlCJcPWQvvM4=";
rev = "455f1a0665c6ca55df2a17679f6103402a9e9431";
hash = "sha256-rn9ZE4ERml8ZkT9ziDrqGEJfzr0rJlzYfu2PHL71oiI=";
};
outputs = [
+2 -2
View File
@@ -41,13 +41,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "icewm";
version = "3.7.4";
version = "3.7.5";
src = fetchFromGitHub {
owner = "ice-wm";
repo = "icewm";
tag = finalAttrs.version;
hash = "sha256-lrYMx7UlVXQg6HlyajuxpV9liHXka0K/pJLrquTX2XQ=";
hash = "sha256-YGEgAO/H21yfv75LnCKYqCRtQtV6bqA7HRFXxDIll/c=";
};
strictDeps = true;
+26
View File
@@ -0,0 +1,26 @@
diff --git a/admin/gildas-env.sh b/admin/gildas-env.sh
index acb06f9..b25ecd5 100644
--- a/admin/gildas-env.sh
+++ b/admin/gildas-env.sh
@@ -441,7 +441,7 @@ EOF
# Now search for Numpy
if python -c "import numpy" > /dev/null 2>&1; then
NUMPY_PRESENT=yes
- NUMPY_INC_DIR=`python -c "import numpy; print(numpy.__path__[0] + '/core/include')"`
+ NUMPY_INC_DIR=`python -c "import numpy; print(numpy.get_include())"`
if [ -e "$NUMPY_INC_DIR/numpy/arrayobject.h" ]; then
NUMPY_INC_PRESENT=yes
else
diff --git a/utilities/etc/setup.py.src b/utilities/etc/setup.py.src
index 9a4da86..110a0d1 100644
--- a/utilities/etc/setup.py.src
+++ b/utilities/etc/setup.py.src
@@ -75,7 +75,7 @@ mod_extras = mod_extras.split()
if (os.environ.get('NUMPY_PRESENT') == "yes"):
import numpy
- mod_inc_dirs.append(numpy.__path__[0] + '/core/include')
+ mod_inc_dirs.append(numpy.get_include())
else:
raise Exception("Numpy python package should be present. Aborting.")
+3
View File
@@ -59,6 +59,9 @@ stdenv.mkDerivation (finalAttrs: {
./clang.patch
# Replace hardcoded cpp with GAG_CPP (see below).
./cpp-darwin.patch
# Fix the numpy header detection with numpy > 2.0.0
# Patch submitted upstream, it will be included in the next release.
./numpy-header.patch
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
+3 -3
View File
@@ -9,13 +9,13 @@
}:
buildGoModule rec {
pname = "immich-go";
version = "0.26.2";
version = "0.26.3";
src = fetchFromGitHub {
owner = "simulot";
repo = "immich-go";
tag = "v${version}";
hash = "sha256-mC7C5B2e57xWrqbyaLM2n79BgdmlgiF2TxTmxT/McSA=";
hash = "sha256-M7hvT7y11X6BN6WJqTIlb5b5x7kaa7MAdhbztZAvJ48=";
# Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
# The intention here is to write the information into files in the `src`'s
@@ -32,7 +32,7 @@ buildGoModule rec {
'';
};
vendorHash = "sha256-z9gS8i9GatDq4flomPcBUpf7b/6BJZ42lGOmpfpdmao=";
vendorHash = "sha256-7zOW1nRhxh+jpGNxAxgepC67NCBA3IIfcOKmniGjkwM=";
# options used by upstream:
# https://github.com/simulot/immich-go/blob/v0.25.0/.goreleaser.yaml
-1
View File
@@ -80,7 +80,6 @@ stdenv.mkDerivation (finalAttrs: {
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.mit;
maintainers = with maintainers; [
coconnor
earldouglas
nequissimus
];
+1 -1
View File
@@ -60,7 +60,7 @@ let
extraInstallCommands = ''
wrapProgram $out/bin/joplin-desktop \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}"
install -Dm644 ${appimageContents}/joplin.desktop $out/share/applications/joplin.desktop
install -Dm644 ${appimageContents}/joplin.png $out/share/pixmaps/joplin.png
substituteInPlace $out/share/applications/joplin.desktop \
+2 -2
View File
@@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "kanboard";
version = "1.2.44";
version = "1.2.45";
src = fetchFromGitHub {
owner = "kanboard";
repo = "kanboard";
tag = "v${finalAttrs.version}";
hash = "sha256-0vMHNB0wEyjp8oNWh1PZ2oT/Lpk/eiXrDNA5Dzv8xqI=";
hash = "sha256-MGQ+FJcdRx4VZppLnoB9lCC1eIoetbToyvBsWRBRSu4=";
};
dontBuild = true;

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