Merge d9dd002a29 into haskell-updates
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
|
||||
|
||||
@@ -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 ,'
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
@@ -11,7 +11,6 @@ import ./make-test-python.nix (
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
bjornfor
|
||||
coconnor
|
||||
domenkozar
|
||||
];
|
||||
};
|
||||
|
||||
@@ -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')
|
||||
'';
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
bios = runTest ./bios.nix;
|
||||
checksum = runTest ./checksum.nix;
|
||||
secureBoot = runTest ./secure-boot.nix;
|
||||
specialisations = runTest ./specialisations.nix;
|
||||
|
||||
@@ -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)
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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
@@ -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()
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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 it’s 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));
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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",
|
||||
|
||||
+21
@@ -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 ];
|
||||
|
||||
+9
-12
@@ -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 = ''
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
];
|
||||
};
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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(())
|
||||
}
|
||||
|
||||
@@ -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
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
Generated
+18
-18
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ''
|
||||
|
||||
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication {
|
||||
|
||||
dependencies = [
|
||||
python3Packages.requests
|
||||
python3Packages.pysocks
|
||||
yt-dlp
|
||||
];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -80,7 +80,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [
|
||||
coconnor
|
||||
earldouglas
|
||||
nequissimus
|
||||
];
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user