Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-10-25 00:16:33 +00:00 committed by GitHub
commit ac2e249e7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
204 changed files with 11371 additions and 3673 deletions

View File

@ -392,14 +392,10 @@ Here is a Git history diagram showing the flow of commits between the three bran
} }%%
gitGraph
commit id:" "
branch staging-next
branch staging
commit id:" "
branch staging-next
checkout master
checkout staging
checkout master
commit id:" "
checkout staging-next
merge master id:"automatic"
checkout staging
merge staging-next id:"automatic "
@ -659,9 +655,11 @@ This goes hand in hand with [Writing good commit messages](#writing-good-commit-
For the code quality assessment, you cannot do anything yourself as only the committer can do this and they already have your code to look at.
In order to minimise the need for back and forth though, do take a look over your code changes yourself and try to put yourself into the shoes of someone who didn't just write that code.
Would you immediately know what the code does by glancing at it?
Would you immediately know what the code does or why it is needed by glancing at it?
If not, reviewers will notice this and will ask you to clarify the code by refactoring it and/or adding a few explanations in code comments.
Doing this preemptively can save you and the committer a lot of time.
To better convey the "story" of your change, consider dividing your change into multiple atomic commits.
There is a balance to strike however: over-fragmentation causes friction.
The code artefacts are the hardest for committers to assess because PRs touch all sorts of components: applications, libraries, NixOS modules, editor plugins and many many other things.
Any individual committer can only really assess components that they themselves know how to use however and yet they must still be convinced somehow.
@ -689,7 +687,9 @@ Ask them nicely whether they still intend to review your PR and find yourself an
### How can I get a committer to look at my PR?
- Simply wait. Reviewers frequently browse open PRs and may happen to run across yours and take a look.
- Improve skimmability: use a simple descriptive PR title (details go in commit titles) outlining _what_ is done and _why_.
- Improve discoverability: apply all relevant labels, tick all relevant PR body checkboxes.
- Wait. Reviewers frequently browse open PRs and may happen to run across yours and take a look.
- Get non-committers to review/approve. Many committers filter open PRs for low-hanging fruit that are already been reviewed.
- [@-mention](https://github.blog/news-insights/mention-somebody-they-re-notified/) someone and ask them nicely
- Post in one of the channels made for this purpose if there has been no activity for at least one week
@ -710,7 +710,7 @@ Don't worry about it.
If there is a build failure however and it happened due to a package related to your change, you need to investigate it of course.
If ofBorg reveals the build to be broken on some platform and you don't have access to that platform, you should set your package's `meta.broken` accordingly.
When in any doubt, please simply ask via a comment in your PR or through one of the help channels.
When in any doubt, please ask via a comment in your PR or through one of the help channels.
## I received a review on my PR, how do I get it over the finish line?
@ -730,6 +730,13 @@ There may be constraints you had to work with which they're not aware of or qual
There are some further pitfalls and realities which this section intends to make you aware of.
### Aim to reduce cycles
Please be prepared for it to take a while before the reviewer gets back to you after you respond.
This is simply the reality of community projects at the scale of Nixpkgs.
As such, make sure to respond to _all_ feedback, either by applying suggested changes or argue in favor of something else or no change.
It wastes everyone time waiting for a couple of days just for the reviewer to remind you to address something they asked for.
### A reviewer requested a bunch of insubstantial changes on my PR
The people involved in Nixpkgs care about code quality because, once in Nixpkgs, it needs to be maintained for many years to come.
@ -742,11 +749,11 @@ It is convention to mark review comments that are not critical to the PR as nitp
As the PR author, you should still take a look at these as they will often reveal best practices and unwritten rules that usually have good reasons behind them and you may want to incorporate them into your modus operandi.
Please keep in mind that reviewers almost always mean well here.
Their intent is not to denounce your code, they simply want your code to be as good as it can be.
Their intent is not to denounce your code, they want your code to be as good as it can be.
Through their experience, they may also take notice of a seemingly insignificant issues that have caused significant burden before.
Sometimes however, they can also get a bit carried away and become too perfectionistic.
If you feel some of the requests are unreasonable or merely a matter of personal preference, try to nicely remind the reviewers that you may not intend this code to be 100% perfect or that you have different taste in some regards and press them on whether they think that these requests are *critical* to the PR's success.
If you feel some of the requests are unreasonable, out of scope, or merely a matter of personal preference, try to nicely remind the reviewers that you may not intend this code to be 100% perfect or that you have different taste in some regards and press them on whether they think that these requests are *critical* to the PR's success.
While we do have a set of [official standards for the Nix community](https://github.com/NixOS/rfcs/), we don't have standards for everything and there are often multiple valid ways to achieve the same goal.
Unless there are standards forbidding the patterns used in your code or there are serious technical, maintainability or readability issues with your code, you can insist to keep the code the way you made it and disregard the requests.
@ -768,9 +775,11 @@ If someone left an approving review on your PR and didn't merge a few days later
Please see it as your responsibility to actively remind reviewers of your open PRs.
The easiest way to do so is to simply cause them a Github notification.
Github notifies people involved in the PR when you add a comment to your PR, push your PR or re-request their review.
The easiest way to do so is to cause them a Github notification.
Github notifies people involved in the PR whenever you add a comment to your PR, push your PR or re-request their review.
Doing any of that will get you people's attention again.
Everyone deserves proper attention, and yes that includes you!
However please be mindful that committers can sadly not always give everyone the attention they deserve.
It may very well be the case that you have to do this every time you need the committer to follow up upon your PR.
Again, this is a community project so please be mindful of people's circumstances here; be nice when requesting reviews again.

View File

@ -428,7 +428,26 @@ NOTE: It is highly recommended to use a pinned version of pnpm (i.e. `pnpm_8` or
In case you are patching `package.json` or `pnpm-lock.yaml`, make sure to pass `finalAttrs.patches` to the function as well (i.e. `inherit (finalAttrs) patches`.
`pnpm.configHook` supports adding additional `pnpm install` flags via `pnpmInstallFlags` which can be set to a Nix string array.
`pnpm.configHook` supports adding additional `pnpm install` flags via `pnpmInstallFlags` which can be set to a Nix string array:
```nix
{
pnpm,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "foo";
version = "0-unstable-1980-01-01";
src = ...;
pnpmInstallFlags = [ "--shamefully-hoist" ];
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pnpmInstallFlags;
};
})
```
#### Dealing with `sourceRoot` {#javascript-pnpm-sourceRoot}
@ -459,16 +478,16 @@ Assuming the following directory structure, we can define `sourceRoot` and `pnpm
#### PNPM Workspaces {#javascript-pnpm-workspaces}
If you need to use a PNPM workspace for your project, then set `pnpmWorkspace = "<workspace project name>"` in your `pnpm.fetchDeps` call,
which will make PNPM only install dependencies for that workspace package.
If you need to use a PNPM workspace for your project, then set `pnpmWorkspaces = [ "<workspace project name 1>" "<workspace project name 2>" ]`, etc, in your `pnpm.fetchDeps` call,
which will make PNPM only install dependencies for those workspace packages.
For example:
```nix
...
pnpmWorkspace = "@astrojs/language-server";
pnpmWorkspaces = [ "@astrojs/language-server" ];
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pnpmWorkspace;
inherit (finalAttrs) pnpmWorkspaces;
...
}
```
@ -476,7 +495,7 @@ pnpmDeps = pnpm.fetchDeps {
The above would make `pnpm.fetchDeps` call only install dependencies for the `@astrojs/language-server` workspace package.
Note that you do not need to set `sourceRoot` to make this work.
Usually in such cases, you'd want to use `pnpm --filter=$pnpmWorkspace build` to build your project, as `npmHooks.npmBuildHook` probably won't work. A `buildPhase` based on the following example will probably fit most workspace projects:
Usually in such cases, you'd want to use `pnpm --filter=<pnpm workspace name> build` to build your project, as `npmHooks.npmBuildHook` probably won't work. A `buildPhase` based on the following example will probably fit most workspace projects:
```nix
buildPhase = ''

View File

@ -9431,6 +9431,13 @@
github = "istoph";
githubId = 114227790;
};
itepastra = {
name = "Noa Aarts";
github = "itepastra";
githubId = 27058689;
email = "itepastra@gmail.com";
keys = [ { fingerprint = "E681 4CAF 06AE B076 D55D 3E32 A16C DCBF 1472 541F"; } ];
};
ius = {
email = "j.de.gram@gmail.com";
name = "Joerie de Gram";
@ -9726,6 +9733,12 @@
githubId = 3874017;
name = "Jappie Klooster";
};
jappie3 = {
name = "Jappie3";
matrix = "@jappie:jappie.dev";
github = "Jappie3";
githubId = 42720120;
};
jaredmontoya = {
name = "Jared Montoya";
github = "jaredmontoya";
@ -14484,7 +14497,7 @@
};
moraxyc = {
name = "Moraxyc Xu";
email = "nix@qaq.li";
email = "i@qaq.li";
github = "Moraxyc";
githubId = 69713071;
};
@ -18857,6 +18870,12 @@
githubId = 10908495;
name = "Ran Xiao";
};
ryan4yin = {
email = "xiaoyin_c@qq.com";
github = "ryan4yin";
githubId = 22363274;
name = "Ryan Yin";
};
ryanartecona = {
email = "ryanartecona@gmail.com";
github = "ryanartecona";

View File

@ -1,16 +1,16 @@
name,rockspec,ref,server,version,luaversion,maintainers
alt-getopt,,,,,,arobyn
ansicolors,,,,,,Freed-Wu
bit32,,,,5.3.0-1,5.1,lblasc
argparse,,,,,,
basexx,,,,,,
binaryheap,,,,,,vcunat
bit32,,,,5.3.0-1,5.1,lblasc
busted,,,,,,
busted-htest,,,,,,mrcjkb
cassowary,,,,,,alerque
cldr,,,,,,alerque
compat53,,,,,,vcunat
commons.nvim,,,,,,mrcjkb
compat53,,,,,,vcunat
cosmo,,,,,,
coxpcall,,,,1.17.0-1,,
cqueues,,,,,,vcunat
@ -50,6 +50,7 @@ lua-cjson,,,,,,
lua-cmsgpack,,,,,,
lua-curl,,,,,,
lua-ffi-zlib,,,,,,
lua-iconv,,,,7.0.0,,
lua-lsp,,,,,,
lua-messagepack,,,,,,
lua-protobuf,,,,,,lockejan
@ -62,6 +63,8 @@ lua-rtoml,https://raw.githubusercontent.com/lblasc/lua-rtoml/main/lua-rtoml-0.2-
lua-subprocess,https://raw.githubusercontent.com/0x0ade/lua-subprocess/master/subprocess-scm-1.rockspec,,,,5.1,scoder12
lua-term,,,,,,
lua-toml,,,,,,
lua-utils.nvim,,,,,,mrcjkb
lua-yajl,,,,,,pstn
lua-zlib,,,,,,koral
lua_cliargs,,,,,,
luabitop,https://raw.githubusercontent.com/teto/luabitop/master/luabitop-1.0.2-3.rockspec,,,,,
@ -97,12 +100,9 @@ luaunbound,,,,,,
luaunit,,,,,,lockejan
luautf8,,,,,,pstn
luazip,,,,,,
lua-utils.nvim,,,,,,mrcjkb
lua-yajl,,,,,,pstn
lua-iconv,,,,7.0.0,,
lush.nvim,,,https://luarocks.org/dev,,,teto
luuid,,,,20120509-2,,
luv,,,,1.48.0-2,,
lush.nvim,,,https://luarocks.org/dev,,,teto
lyaml,,,,,,lblasc
lz.n,,,,,,mrcjkb
lze,,,,,,birdee
@ -112,8 +112,8 @@ markdown,,,,,,
mediator_lua,,,,,,
middleclass,,,,,,
mimetypes,,,,,,
mpack,,,,,,
moonscript,https://raw.githubusercontent.com/leafo/moonscript/master/moonscript-dev-1.rockspec,,,,,arobyn
mpack,,,,,,
neorg,,,,,,GaetanLepage
neotest,,,,,,mrcjkb
nlua,,,,,,teto
@ -126,10 +126,10 @@ plenary.nvim,https://raw.githubusercontent.com/nvim-lua/plenary.nvim/master/plen
psl,,,,0.3,,
rapidjson,,,,,,
rest.nvim,,,,,5.1,teto
rocks.nvim,,,,,,mrcjkb
rocks-git.nvim,,,,,,mrcjkb
rocks-config.nvim,,,,,,mrcjkb
rocks-dev.nvim,,,,,,mrcjkb
rocks-git.nvim,,,,,,mrcjkb
rocks.nvim,,,,,,mrcjkb
rtp.nvim,,,,,,mrcjkb
rustaceanvim,,,,,,mrcjkb
say,,,,,,
@ -139,10 +139,10 @@ std._debug,,,,,,
std.normalize,,,,,,
stdlib,,,,41.2.2,,vyp
teal-language-server,,,http://luarocks.org/dev,,,
telescope.nvim,,,,,5.1,
telescope-manix,,,,,,
telescope.nvim,,,,,5.1,
tiktoken_core,,,,,,natsukium
tl,,,,,,mephistophiles
tl,,,,0.15.3-1,,mephistophiles
toml-edit,,,,,5.1,mrcjkb
tree-sitter-norg,,,,,5.1,mrcjkb
vstruct,,,,,,

1 name rockspec ref server version luaversion maintainers
2 alt-getopt arobyn
3 ansicolors Freed-Wu
bit32 5.3.0-1 5.1 lblasc
4 argparse
5 basexx
6 binaryheap vcunat
7 bit32 5.3.0-1 5.1 lblasc
8 busted
9 busted-htest mrcjkb
10 cassowary alerque
11 cldr alerque
compat53 vcunat
12 commons.nvim mrcjkb
13 compat53 vcunat
14 cosmo
15 coxpcall 1.17.0-1
16 cqueues vcunat
50 lua-cmsgpack
51 lua-curl
52 lua-ffi-zlib
53 lua-iconv 7.0.0
54 lua-lsp
55 lua-messagepack
56 lua-protobuf lockejan
63 lua-subprocess https://raw.githubusercontent.com/0x0ade/lua-subprocess/master/subprocess-scm-1.rockspec 5.1 scoder12
64 lua-term
65 lua-toml
66 lua-utils.nvim mrcjkb
67 lua-yajl pstn
68 lua-zlib koral
69 lua_cliargs
70 luabitop https://raw.githubusercontent.com/teto/luabitop/master/luabitop-1.0.2-3.rockspec
100 luaunit lockejan
101 luautf8 pstn
102 luazip
103 lua-utils.nvim lush.nvim https://luarocks.org/dev mrcjkb teto
lua-yajl pstn
lua-iconv 7.0.0
104 luuid 20120509-2
105 luv 1.48.0-2
lush.nvim https://luarocks.org/dev teto
106 lyaml lblasc
107 lz.n mrcjkb
108 lze birdee
112 mediator_lua
113 middleclass
114 mimetypes
mpack
115 moonscript https://raw.githubusercontent.com/leafo/moonscript/master/moonscript-dev-1.rockspec arobyn
116 mpack
117 neorg GaetanLepage
118 neotest mrcjkb
119 nlua teto
126 psl 0.3
127 rapidjson
128 rest.nvim 5.1 teto
rocks.nvim mrcjkb
rocks-git.nvim mrcjkb
129 rocks-config.nvim mrcjkb
130 rocks-dev.nvim mrcjkb
131 rocks-git.nvim mrcjkb
132 rocks.nvim mrcjkb
133 rtp.nvim mrcjkb
134 rustaceanvim mrcjkb
135 say
139 std.normalize
140 stdlib 41.2.2 vyp
141 teal-language-server http://luarocks.org/dev
telescope.nvim 5.1
142 telescope-manix
143 telescope.nvim 5.1
144 tiktoken_core natsukium
145 tl 0.15.3-1 mephistophiles
146 toml-edit 5.1 mrcjkb
147 tree-sitter-norg 5.1 mrcjkb
148 vstruct

View File

@ -81,11 +81,13 @@ newPkgs() {
# could eat too much memory for a standard 4GiB machine.
local -a list
for i in 1 2; do
local l="$($MKTEMP)"
local l
l="$($MKTEMP)"
list[$i]="$l"
toRemove+=("$l")
local expr="$($MKTEMP)"
local expr
expr="$($MKTEMP)"
toRemove+=("$expr")
nixexpr "${!i}" > "$expr"

View File

@ -90,16 +90,30 @@ Hello, world!
Most pre-built executables will not work on NixOS. There are two notable
exceptions: flatpaks and AppImages. For flatpaks see the [dedicated
section](#module-services-flatpak). AppImages will not run "as-is" on NixOS.
First you need to install `appimage-run`: add to `/etc/nixos/configuration.nix`
section](#module-services-flatpak). AppImages can run "as-is" on NixOS.
First you need to enable AppImage support: add to `/etc/nixos/configuration.nix`
```nix
{
environment.systemPackages = [ pkgs.appimage-run ];
programs.appimage.enable = true;
programs.appimage.binfmt = true;
}
```
Then instead of running the AppImage "as-is", run `appimage-run foo.appimage`.
Then you can run the AppImage "as-is" or with `appimage-run foo.appimage`.
If there are shared libraries missing add them with
```nix
{
programs.appimage.package = pkgs.appimage-run.override {
extraPkgs = pkgs: [
# missing libraries here, e.g.: `pkgs.libepoxy`
];
}
}
```
To make other pre-built executables work on NixOS, you need to package them
with Nix and special helpers like `autoPatchelfHook` or `buildFHSEnv`. See

View File

@ -48,7 +48,7 @@
- The Rust rewrite of the `switch-to-configuration` program is now used for system activation by default.
If you experience any issues, please report them.
The original Perl script can still be used for now by setting `system.switch.enableNg` to `false`.
The original Perl script is deprecated and is planned for removal in the 25.05 release. It will remain accessible until then by setting `system.switch.enableNg` to `false`.
- Support for mounting filesystems from block devices protected with [dm-verity](https://docs.kernel.org/admin-guide/device-mapper/verity.html)
was added through the `boot.initrd.systemd.dmVerity` option.
@ -104,6 +104,8 @@
- [Flood](https://flood.js.org/), a beautiful WebUI for various torrent clients. Available as [services.flood](options.html#opt-services.flood).
- [Niri](https://github.com/YaLTeR/niri), a scrollable-tiling Wayland compositor. Available as [programs.niri](options.html#opt-programs.niri.enable).
- [Firefly-iii Data Importer](https://github.com/firefly-iii/data-importer), a data importer for Firefly-III. Available as [services.firefly-iii-data-importer](options.html#opt-services.firefly-iii-data-importer)
- [QGroundControl], a ground station support and configuration manager for the PX4 and APM Flight Stacks. Available as [programs.qgroundcontrol](options.html#opt-programs.qgroundcontrol.enable).
@ -188,7 +190,7 @@
- [Fedimint](https://github.com/fedimint/fedimint), a module based system for building federated applications (Federated E-Cash Mint). Available as [services.fedimintd](#opt-services.fedimintd).
- [Zapret](https://github.com/bol-van/zapret), a DPI bypass tool. Available as [services.zapret](option.html#opt-services.zapret).
- [Zapret](https://github.com/bol-van/zapret), a DPI bypass tool. Available as [services.zapret](options.html#opt-services.zapret).
- [tiny-dfr](https://github.com/WhatAmISupposedToPutHere/tiny-dfr), a dynamic function row daemon for the Touch Bar found on some Apple laptops. Available as [hardware.apple.touchBar.enable](options.html#opt-hardware.apple.touchBar.enable).
@ -710,6 +712,9 @@
- Mikutter was removed because the package was broken and had no maintainers.
- The new option `services.getty.autologinOnce` was added to limit the automatic login to once per boot and on the first tty only.
When using full disk encryption, this option allows to unlock the system without retyping the passphrase while keeping the other ttys protected.
- Gollum was upgraded to major version 6. Read their [migration notes](https://github.com/gollum/gollum/wiki/6.0-Release-Notes).
- The hooks `yarnConfigHook` and `yarnBuildHook` were added. These should replace `yarn2nix.mkYarnPackage` and other `yarn2nix` related tools. The motivation to get rid of `yarn2nix` tools is the fact that they are too complex and hard to maintain, and they rely upon too much Nix evaluation which is problematic if import-from-derivation is not allowed (see more details at [#296856](https://github.com/NixOS/nixpkgs/issues/296856). The transition from `mkYarnPackage` to `yarn{Config,Build}Hook` is tracked at [#324246](https://github.com/NixOS/nixpkgs/issues/324246).

View File

@ -312,6 +312,7 @@
./programs/wayland/hyprland.nix
./programs/wayland/labwc.nix
./programs/wayland/miracle-wm.nix
./programs/wayland/niri.nix
./programs/wayland/river.nix
./programs/wayland/sway.nix
./programs/wayland/uwsm.nix

View File

@ -0,0 +1,55 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.niri;
in
{
options.programs.niri = {
enable = lib.mkEnableOption "Niri, a scrollable-tiling Wayland compositor";
package = lib.mkPackageOption pkgs "niri" { };
};
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
environment.systemPackages = [ cfg.package ];
services = {
displayManager.sessionPackages = [ cfg.package ];
# Recommended by upstream
# https://github.com/YaLTeR/niri/wiki/Important-Software#portals
gnome.gnome-keyring.enable = lib.mkDefault true;
};
systemd.packages = [ cfg.package ];
xdg.portal = {
enable = lib.mkDefault true;
configPackages = [ cfg.package ];
# Recommended by upstream, required for screencast support
# https://github.com/YaLTeR/niri/wiki/Important-Software#portals
extraPortals = [ pkgs.xdg-desktop-portal-gnome ];
};
}
(import ./wayland-session.nix {
inherit lib pkgs;
enableWlrPortal = false;
enableXWayland = false;
})
]
);
meta.maintainers = with lib.maintainers; [
getchoo
sodiboo
];
}

View File

@ -144,7 +144,19 @@ in
services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
# https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/contrib/wlroots-portals.conf
# https://github.com/emersion/xdg-desktop-portal-wlr/pull/315
xdg.portal.config.sway = {
# Use xdg-desktop-portal-gtk for every portal interface...
default = "gtk";
# ... except for the ScreenCast, Screenshot and Secret
"org.freedesktop.impl.portal.ScreenCast" = "wlr";
"org.freedesktop.impl.portal.Screenshot" = "wlr";
# ignore inhibit bc gtk portal always returns as success,
# despite sway/the wlr portal not having an implementation,
# stopping firefox from using wayland idle-inhibit
"org.freedesktop.impl.portal.Inhibit" = "none";
};
}
(import ./wayland-session.nix {

View File

@ -37,7 +37,7 @@ in
config = lib.mkIf cfg.enable {
systemd.services.bazarr = {
description = "bazarr";
description = "Bazarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];

View File

@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
with lib;
@ -8,10 +13,8 @@ let
cfg = config.services.ntp;
stateDir = "/var/lib/ntp";
configFile = pkgs.writeText "ntp.conf" ''
driftfile ${stateDir}/ntp.drift
driftfile /var/lib/ntp/ntp.drift
restrict default ${toString cfg.restrictDefault}
restrict -6 default ${toString cfg.restrictDefault}
@ -25,7 +28,12 @@ let
${cfg.extraConfig}
'';
ntpFlags = [ "-c" "${configFile}" "-u" "ntp:ntp" ] ++ cfg.extraFlags;
ntpFlags = [
"-c"
"${configFile}"
"-u"
"ntp:ntp"
] ++ cfg.extraFlags;
in
@ -58,7 +66,14 @@ in
recommended in section 6.5.1.1.3, answer "No" of
https://support.ntp.org/Support/AccessRestrictions
'';
default = [ "limited" "kod" "nomodify" "notrap" "noquery" "nopeer" ];
default = [
"limited"
"kod"
"nomodify"
"notrap"
"noquery"
"nopeer"
];
};
restrictSource = mkOption {
@ -69,7 +84,13 @@ in
The default flags allow peers to be added by ntpd from configured
pool(s), but not by other means.
'';
default = [ "limited" "kod" "nomodify" "notrap" "noquery" ];
default = [
"limited"
"kod"
"nomodify"
"notrap"
"noquery"
];
};
servers = mkOption {
@ -96,14 +117,13 @@ in
type = types.listOf types.str;
description = "Extra flags passed to the ntpd command.";
example = literalExpression ''[ "--interface=eth0" ]'';
default = [];
default = [ ];
};
};
};
###### implementation
config = mkIf config.services.ntp.enable {
@ -113,34 +133,57 @@ in
environment.systemPackages = [ pkgs.ntp ];
services.timesyncd.enable = mkForce false;
systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "ntpd.service"; };
systemd.services.systemd-timedated.environment = {
SYSTEMD_TIMEDATED_NTP_SERVICES = "ntpd.service";
};
users.users.ntp =
{ isSystemUser = true;
group = "ntp";
description = "NTP daemon user";
home = stateDir;
};
users.groups.ntp = {};
systemd.services.ntpd =
{ description = "NTP Daemon";
wantedBy = [ "multi-user.target" ];
wants = [ "time-sync.target" ];
before = [ "time-sync.target" ];
preStart =
''
mkdir -m 0755 -p ${stateDir}
chown ntp ${stateDir}
'';
serviceConfig = {
ExecStart = "@${ntp}/bin/ntpd ntpd -g ${builtins.toString ntpFlags}";
Type = "forking";
};
users.users.ntp = {
isSystemUser = true;
group = "ntp";
description = "NTP daemon user";
home = "/var/lib/ntp";
};
users.groups.ntp = { };
systemd.services.ntpd = {
description = "NTP Daemon";
wantedBy = [ "multi-user.target" ];
wants = [ "time-sync.target" ];
before = [ "time-sync.target" ];
serviceConfig = {
ExecStart = "@${ntp}/bin/ntpd ntpd -g ${builtins.toString ntpFlags}";
Type = "forking";
StateDirectory = "ntp";
# Hardening options
PrivateDevices = true;
PrivateIPC = true;
PrivateTmp = true;
ProtectClock = false;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = true;
RestrictNamespaces = true;
RestrictRealtime = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
AmbientCapabilities = [
"CAP_SYS_TIME"
];
ProtectControlGroups = true;
ProtectProc = "invisible";
ProcSubset = "pid";
RestrictSUIDSGID = true;
};
};
};

View File

@ -26,12 +26,15 @@ let
ifaceArg = concatStringsSep " -N " (map (i: "-i${i}") (splitString " " iface));
driverArg = optionalString (suppl.driver != null) "-D${suppl.driver}";
bridgeArg = optionalString (suppl.bridge!="") "-b${suppl.bridge}";
confFileArg = optionalString (suppl.configFile.path!=null) "-c${suppl.configFile.path}";
extraConfFile = pkgs.writeText "supplicant-extra-conf-${replaceStrings [" "] ["-"] iface}" ''
${optionalString suppl.userControlled.enable "ctrl_interface=DIR=${suppl.userControlled.socketDir} GROUP=${suppl.userControlled.group}"}
${optionalString suppl.configFile.writable "update_config=1"}
${suppl.extraConf}
'';
confArgs = escapeShellArgs
(if suppl.configFile.path == null
then [ "-c${extraConfFile}" ]
else [ "-c${suppl.configFile.path}" "-I${extraConfFile}" ]);
in
{ description = "Supplicant ${iface}${optionalString (iface=="WLAN"||iface=="LAN") " %I"}";
wantedBy = [ "multi-user.target" ] ++ deps;
@ -51,7 +54,7 @@ let
''}
'';
serviceConfig.ExecStart = "${pkgs.wpa_supplicant}/bin/wpa_supplicant -s ${driverArg} ${confFileArg} -I${extraConfFile} ${bridgeArg} ${suppl.extraCmdArgs} ${if (iface=="WLAN"||iface=="LAN") then "-i%I" else (if (iface=="DBUS") then "-u" else ifaceArg)}";
serviceConfig.ExecStart = "${pkgs.wpa_supplicant}/bin/wpa_supplicant -s ${driverArg} ${confArgs} ${bridgeArg} ${suppl.extraCmdArgs} ${if (iface=="WLAN"||iface=="LAN") then "-i%I" else (if (iface=="DBUS") then "-u" else ifaceArg)}";
};

View File

@ -7,14 +7,26 @@ let
baseArgs = [
"--login-program" "${cfg.loginProgram}"
] ++ optionals (cfg.autologinUser != null) [
] ++ optionals (cfg.autologinUser != null && !cfg.autologinOnce) [
"--autologin" cfg.autologinUser
] ++ optionals (cfg.loginOptions != null) [
"--login-options" cfg.loginOptions
] ++ cfg.extraArgs;
gettyCmd = args:
"@${pkgs.util-linux}/sbin/agetty agetty ${escapeShellArgs baseArgs} ${args}";
"${lib.getExe' pkgs.util-linux "agetty"} ${escapeShellArgs baseArgs} ${args}";
autologinScript = ''
otherArgs="--noclear --keep-baud $TTY 115200,38400,9600 $TERM";
${lib.optionalString cfg.autologinOnce ''
autologged="/run/agetty.autologged"
if test "$TTY" = tty1 && ! test -f "$autologged"; then
touch "$autologged"
exec ${gettyCmd "$otherArgs --autologin ${cfg.autologinUser}"}
fi
''}
exec ${gettyCmd "$otherArgs"}
'';
in
@ -40,6 +52,16 @@ in
'';
};
autologinOnce = mkOption {
type = types.bool;
default = false;
description = ''
If enabled the automatic login will only happen in the first tty
once per boot. This can be useful to avoid retyping the account
password on systems with full disk encrypted.
'';
};
loginProgram = mkOption {
type = types.path;
default = "${pkgs.shadow}/bin/login";
@ -106,9 +128,11 @@ in
systemd.services."getty@" =
{ serviceConfig.ExecStart = [
"" # override upstream default with an empty ExecStart
(gettyCmd "--noclear --keep-baud %I 115200,38400,9600 $TERM")
# override upstream default with an empty ExecStart
""
(pkgs.writers.writeDash "getty" autologinScript)
];
environment.TTY = "%I";
restartIfChanged = false;
};

View File

@ -9,6 +9,8 @@ in
(lib.mkRenamedOptionModule [ "services" "youtrack" "port" ] [ "services" "youtrack" "environmentalParameters" "listen-port" ])
(lib.mkRemovedOptionModule [ "services" "youtrack" "maxMemory" ] "Please instead use `services.youtrack.generalParameters`.")
(lib.mkRemovedOptionModule [ "services" "youtrack" "maxMetaspaceSize" ] "Please instead use `services.youtrack.generalParameters`.")
(lib.mkRemovedOptionModule [ "services" "youtrack" "extraParams" ] "Please migrate to `services.youtrack.generalParameters`.")
(lib.mkRemovedOptionModule [ "services" "youtrack" "jvmOpts" ] "Please migrate to `services.youtrack.generalParameters`.")
];
options.services.youtrack = {
@ -22,33 +24,15 @@ in
type = lib.types.str;
};
extraParams = lib.mkOption {
default = {};
description = ''
Extra parameters to pass to youtrack.
Use to configure YouTrack 2022.x, deprecated with YouTrack 2023.x. Use `services.youtrack.generalParameters`.
https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html
for more information.
'';
example = lib.literalExpression ''
{
"jetbrains.youtrack.overrideRootPassword" = "tortuga";
}
'';
type = lib.types.attrsOf lib.types.str;
visible = false;
};
package = lib.mkOption {
description = ''
Package to use.
'';
type = lib.types.package;
default = null;
relatedPackages = [ "youtrack_2022_3" "youtrack" ];
default = pkgs.youtrack;
defaultText = lib.literalExpression "pkgs.youtrack";
};
statePath = lib.mkOption {
description = ''
Path were the YouTrack state is stored.
@ -67,19 +51,6 @@ in
type = lib.types.nullOr lib.types.str;
};
jvmOpts = lib.mkOption {
description = ''
Extra options to pass to the JVM.
Only has a use with YouTrack 2022.x, deprecated with YouTrack 2023.x. Use `serivces.youtrack.generalParameters`.
See https://www.jetbrains.com/help/youtrack/standalone/Configure-JVM-Options.html
for more information.
'';
type = lib.types.separatedString " ";
example = "--J-XX:MetaspaceSize=250m";
default = "";
visible = false;
};
autoUpgrade = lib.mkOption {
type = lib.types.bool;
default = true;
@ -90,7 +61,6 @@ in
type = with lib.types; listOf str;
description = ''
General configuration parameters and other JVM options.
Only has an effect for YouTrack 2023.x.
See https://www.jetbrains.com/help/youtrack/server/2023.3/youtrack-java-start-parameters.html#general-parameters
for more information.
'';
@ -121,7 +91,6 @@ in
};
description = ''
Environmental configuration parameters, set imperatively. The values doesn't get removed, when removed in Nix.
Only has an effect for YouTrack 2023.x.
See https://www.jetbrains.com/help/youtrack/server/2023.3/youtrack-java-start-parameters.html#environmental-parameters
for more information.
'';
@ -135,90 +104,47 @@ in
};
config = lib.mkIf cfg.enable {
warnings = lib.optional (lib.versions.major cfg.package.version <= "2022")
"YouTrack 2022.x is deprecated. See https://nixos.org/manual/nixos/unstable/index.html#module-services-youtrack for details on how to upgrade."
++ lib.optional (cfg.extraParams != {} && (lib.versions.major cfg.package.version >= "2023"))
"'services.youtrack.extraParams' is deprecated and has no effect on YouTrack 2023.x and newer. Please migrate to 'services.youtrack.generalParameters'"
++ lib.optional (cfg.jvmOpts != "" && (lib.versions.major cfg.package.version >= "2023"))
"'services.youtrack.jvmOpts' is deprecated and has no effect on YouTrack 2023.x and newer. Please migrate to 'services.youtrack.generalParameters'";
# XXX: Drop all version feature switches at the point when we consider YT 2022.3 as outdated.
services.youtrack.package = lib.mkDefault (
if lib.versionAtLeast config.system.stateVersion "24.11" then pkgs.youtrack
else pkgs.youtrack_2022_3
);
services.youtrack.generalParameters = lib.optional (lib.versions.major cfg.package.version >= "2023")
"-Ddisable.configuration.wizard.on.upgrade=${lib.boolToString cfg.autoUpgrade}"
++ (lib.mapAttrsToList (k: v: "-D${k}=${v}") cfg.extraParams);
services.youtrack.generalParameters = [ "-Ddisable.configuration.wizard.on.upgrade=${lib.boolToString cfg.autoUpgrade}" ];
systemd.services.youtrack = let
service_jar = let
mergeAttrList = lib.foldl' lib.mergeAttrs {};
stdParams = mergeAttrList [
(lib.optionalAttrs (cfg.environmentalParameters ? base-url && cfg.environmentalParameters.base-url != null) {
"jetbrains.youtrack.baseUrl" = cfg.environmentalParameters.base-url;
})
{
"java.aws.headless" = "true";
"jetbrains.youtrack.disableBrowser" = "true";
}
];
extraAttr = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-D${k}=${v}") (stdParams // cfg.extraParams));
in {
environment.HOME = cfg.statePath;
environment.YOUTRACK_JVM_OPTS = "${extraAttr}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ unixtools.hostname ];
serviceConfig = {
jvmoptions = pkgs.writeTextFile {
name = "youtrack.jvmoptions";
text = (lib.concatStringsSep "\n" cfg.generalParameters);
};
package = cfg.package.override {
statePath = cfg.statePath;
};
in {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ unixtools.hostname ];
preStart = ''
# This detects old (i.e. <= 2022.3) installations that were not migrated yet
# and migrates them to the new state directory style
if [[ -d ${cfg.statePath}/teamsysdata ]] && [[ ! -d ${cfg.statePath}/2022_3 ]]
then
mkdir -p ${cfg.statePath}/2022_3
mv ${cfg.statePath}/teamsysdata ${cfg.statePath}/2022_3
mv ${cfg.statePath}/.youtrack ${cfg.statePath}/2022_3
fi
mkdir -p ${cfg.statePath}/{backups,conf,data,logs,temp}
${pkgs.coreutils}/bin/ln -fs ${jvmoptions} ${cfg.statePath}/conf/youtrack.jvmoptions
${package}/bin/youtrack configure ${lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "--${name}=${toString value}") cfg.environmentalParameters )}
'';
serviceConfig = lib.mkMerge [
{
Type = "simple";
User = "youtrack";
Group = "youtrack";
Restart = "on-failure";
ExecStart = ''${cfg.package}/bin/youtrack ${cfg.jvmOpts} ${cfg.environmentalParameters.listen-address}:${toString cfg.environmentalParameters.listen-port}'';
};
};
service_zip = let
jvmoptions = pkgs.writeTextFile {
name = "youtrack.jvmoptions";
text = (lib.concatStringsSep "\n" cfg.generalParameters);
};
package = cfg.package.override {
statePath = cfg.statePath;
};
in {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ unixtools.hostname ];
preStart = ''
# This detects old (i.e. <= 2022.3) installations that were not migrated yet
# and migrates them to the new state directory style
if [[ -d ${cfg.statePath}/teamsysdata ]] && [[ ! -d ${cfg.statePath}/2022_3 ]]
then
mkdir -p ${cfg.statePath}/2022_3
mv ${cfg.statePath}/teamsysdata ${cfg.statePath}/2022_3
mv ${cfg.statePath}/.youtrack ${cfg.statePath}/2022_3
fi
mkdir -p ${cfg.statePath}/{backups,conf,data,logs,temp}
${pkgs.coreutils}/bin/ln -fs ${jvmoptions} ${cfg.statePath}/conf/youtrack.jvmoptions
${package}/bin/youtrack configure ${lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "--${name}=${toString value}") cfg.environmentalParameters )}
'';
serviceConfig = lib.mkMerge [
{
Type = "simple";
User = "youtrack";
Group = "youtrack";
Restart = "on-failure";
ExecStart = "${package}/bin/youtrack run";
}
(lib.mkIf (cfg.statePath == "/var/lib/youtrack") {
StateDirectory = "youtrack";
})
];
};
in if (lib.versions.major cfg.package.version >= "2023") then service_zip else service_jar;
ExecStart = "${package}/bin/youtrack run";
}
(lib.mkIf (cfg.statePath == "/var/lib/youtrack") {
StateDirectory = "youtrack";
})
];
};
users.users.youtrack = {
description = "Youtrack service user";

View File

@ -1218,6 +1218,7 @@ in
++ lib.optional cfg.recommendedZstdSettings pkgs.nginxModules.zstd;
services.nginx.virtualHosts.localhost = mkIf cfg.statusPage {
serverAliases = [ "127.0.0.1" ] ++ lib.optional config.networking.enableIPv6 "[::1]";
listenAddresses = lib.mkDefault ([
"0.0.0.0"
] ++ lib.optional enableIPv6 "[::]");

View File

@ -1,13 +1,19 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
perlWrapped = pkgs.perl.withPackages (
p: with p; [
ConfigIniFiles
FileSlurp
]
);
in
{
options.system.switch = {
enable = lib.mkOption {
type = lib.types.bool;
@ -36,6 +42,17 @@ in
config = lib.mkMerge [
(lib.mkIf (config.system.switch.enable && !config.system.switch.enableNg) {
warnings = [
''
The Perl implementation of switch-to-configuration will be deprecated
and removed in the 25.05 release of NixOS. Please migrate to the
newer implementation by removing `system.switch.enableNg = false`
from your configuration. If you are unable to migrate due to any
issues with the new implementation, please create an issue and tag
the maintainers of `switch-to-configuration-ng`.
''
];
system.activatableSystemBuilderCommands = ''
mkdir $out/bin
substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \

View File

@ -715,6 +715,7 @@ in {
nsd = handleTest ./nsd.nix {};
ntfy-sh = handleTest ./ntfy-sh.nix {};
ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix {};
ntpd = handleTest ./ntpd.nix {};
ntpd-rs = handleTest ./ntpd-rs.nix {};
nvidia-container-toolkit = runTest ./nvidia-container-toolkit.nix;
nvmetcfg = handleTest ./nvmetcfg.nix {};

View File

@ -18,16 +18,21 @@ makeTest {
meta = with maintainers; {
maintainers = [ urbas ];
};
nodes.machine = { ... }:
nodes.machine = { lib, pkgs, ... }:
{
imports = [ ../modules/profiles/headless.nix ../modules/virtualisation/amazon-init.nix ];
services.openssh.enable = true;
system.switch.enable = true;
networking.hostName = "";
environment.etc."ec2-metadata/user-data" = {
text = ''
#!/usr/bin/bash
echo successful > /tmp/evidence
# Emulate running nixos-rebuild switch, just without any building.
# https://github.com/nixos/nixpkgs/blob/4c62505847d88f16df11eff3c81bf9a453a4979e/nixos/modules/virtualisation/amazon-init.nix#L55
/run/current-system/bin/switch-to-configuration test
'';
};
};

25
nixos/tests/ntpd.nix Normal file
View File

@ -0,0 +1,25 @@
import ./make-test-python.nix (
{ lib, ... }:
{
name = "ntpd";
meta = {
maintainers = with lib.maintainers; [ pyrox0 ];
};
nodes.machine = {
services.ntp = {
enable = true;
};
};
testScript = ''
start_all()
machine.wait_for_unit('ntpd.service')
machine.wait_for_console_text('Listen normally on 10 eth*')
machine.succeed('systemctl is-active ntpd.service')
machine.succeed('ntpq -p')
'';
}
)

View File

@ -1,61 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, autoconf-archive
, alsa-lib
, fftw
, iniparser
, libpulseaudio
, pipewire
, ncurses
, pkgconf
, SDL2
, libGL
, withSDL2 ? false
, withPipewire ? true
}:
stdenv.mkDerivation rec {
pname = "cava";
version = "0.10.2";
src = fetchFromGitHub {
owner = "karlstav";
repo = "cava";
rev = version;
hash = "sha256-y6RslsU/zmr0Ai/rnr73N3OtjuBcWa3JCwh9P5GkNss=";
};
buildInputs = [
alsa-lib
fftw
libpulseaudio
ncurses
iniparser
] ++ lib.optionals withSDL2 [
SDL2
libGL
] ++ lib.optionals withPipewire [
pipewire
];
nativeBuildInputs = [
autoreconfHook
autoconf-archive
pkgconf
];
preAutoreconf = ''
echo ${version} > version
'';
meta = with lib; {
description = "Console-based Audio Visualizer for Alsa";
homepage = "https://github.com/karlstav/cava";
license = licenses.mit;
maintainers = with maintainers; [ offline mirrexagon ];
platforms = platforms.linux;
mainProgram = "cava";
};
}

File diff suppressed because it is too large Load Diff

View File

@ -16,13 +16,13 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "psst";
version = "unstable-2024-08-19";
version = "unstable-2024-10-07";
src = fetchFromGitHub {
owner = "jpochyla";
repo = pname;
rev = "11bef15e66a3c9b0b991207d09a67c071b3dda02";
hash = "sha256-lKxWIUDouUUul7CpuTy30z/cLJAjFE9e0J1zyZ/PnIo=";
rev = "38d1c75d59848c54cb88896a93e05da3c71c7df4";
hash = "sha256-iMtrZ1Mto3j4lFXI2Sm2R85+m8LpR7V1WoJ3X5JyF60=";
};
cargoLock = {

View File

@ -1,9 +1,9 @@
diff --git a/psst-core/build.rs b/psst-core/build.rs
deleted file mode 100644
index e05191d..0000000
index cac2c23..0000000
--- a/psst-core/build.rs
+++ /dev/null
@@ -1,39 +0,0 @@
@@ -1,41 +0,0 @@
-use std::{env, fs, io::Write};
-
-fn main() {
@ -13,12 +13,14 @@ index e05191d..0000000
- let mut fh = fs::File::create(outfile).unwrap();
- write!(fh, r#""{}""#, chrono::Local::now()).ok();
-
- let git_config = gix_config::File::from_git_dir("../.git/".into()).expect("Git Config not found!");
- let git_config =
- gix_config::File::from_git_dir("../.git/".into()).expect("Git Config not found!");
- // Get Git's 'Origin' URL
- let mut remote_url = git_config
- .raw_value("remote", Some("origin".as_ref()), "url")
- .raw_value("remote.origin.url")
- .expect("Couldn't extract origin url!")
- .to_string();
-
- // Check whether origin is accessed via ssh
- if remote_url.contains('@') {
- // If yes, strip the `git@` prefix and split the domain and path
@ -44,7 +46,7 @@ index e05191d..0000000
- write!(file, r#""{}""#, remote_url).ok();
-}
diff --git a/psst-core/src/lib.rs b/psst-core/src/lib.rs
index fcbd491..8f6e6f0 100644
index 2faa317..7d7501d 100644
--- a/psst-core/src/lib.rs
+++ b/psst-core/src/lib.rs
@@ -2,9 +2,9 @@
@ -54,7 +56,7 @@ index fcbd491..8f6e6f0 100644
-pub const GIT_VERSION: &str = git_version!();
-pub const BUILD_TIME: &str = include!(concat!(env!("OUT_DIR"), "/build-time.txt"));
-pub const REMOTE_URL: &str = include!(concat!(env!("OUT_DIR"), "/remote-url.txt"));
+pub const GIT_VERSION: &str = "11bef15e66a3c9b0b991207d09a67c071b3dda02";
+pub const GIT_VERSION: &str = "38d1c75d59848c54cb88896a93e05da3c71c7df4";
+pub const BUILD_TIME: &str = "1970-01-01 00:00:00";
+pub const REMOTE_URL: &str = "https://github.com/jpochyla/psst";

View File

@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
bsd2 # libtiled and tmxviewer
gpl2Plus # all the rest
];
maintainers = with maintainers; [ dywedir ];
maintainers = with maintainers; [ dywedir ryan4yin ];
platforms = platforms.linux;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -491,12 +491,12 @@
};
dtd = buildGrammar {
language = "dtd";
version = "0.0.0+rev=809266e";
version = "0.0.0+rev=cd1316e";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "809266ed1694d64dedc168a18893cc254e3edf7e";
hash = "sha256-Kxmk9v2oTTYtoLQ2n0LyNziouG56ZSgcirS8JukUmZE=";
rev = "cd1316e476ec40da6ce1fb5749c9d7e6b4f1090c";
hash = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw=";
};
location = "dtd";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
@ -526,12 +526,12 @@
};
editorconfig = buildGrammar {
language = "editorconfig";
version = "0.0.0+rev=f5b5ac3";
version = "0.0.0+rev=777f774";
src = fetchFromGitHub {
owner = "ValdezFOmar";
repo = "tree-sitter-editorconfig";
rev = "f5b5ac3f718523fe9d5ee926f64eb177306afdb6";
hash = "sha256-l5ryC0wINO/oN8FNrngR7QnDAhiX65y0Hw5AExvAfBo=";
rev = "777f774d6381f1bb84adffa02a4e476fb61486ae";
hash = "sha256-7CN2fT5wwsuSwQzq7uBj26OPYRtZ6rwLNz99SKhBU74=";
};
meta.homepage = "https://github.com/ValdezFOmar/tree-sitter-editorconfig";
};
@ -614,12 +614,12 @@
};
erlang = buildGrammar {
language = "erlang";
version = "0.0.0+rev=f1919a3";
version = "0.0.0+rev=4095e99";
src = fetchFromGitHub {
owner = "WhatsApp";
repo = "tree-sitter-erlang";
rev = "f1919a34af3a9c79402c4a3d6c52986e9c2ea949";
hash = "sha256-0e01hr/QDZI+NSRoiTSQZftvpdCHKc6ZkEyxxbKIQyA=";
rev = "4095e9993acc89cb311ab1be8614c21b1cf768a4";
hash = "sha256-+mp0h7qaJN30eqNIDJem5iOnnWATR1X4D6dB4gyGlfM=";
};
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
};
@ -846,12 +846,12 @@
};
gitcommit = buildGrammar {
language = "gitcommit";
version = "0.0.0+rev=67ab180";
version = "0.0.0+rev=db0e0c4";
src = fetchFromGitHub {
owner = "gbprod";
repo = "tree-sitter-gitcommit";
rev = "67ab180883ba5ce3f5b0a5f4288cc6d9f9d83a5d";
hash = "sha256-5ieeIuUcaky3gWcrCrPXEGzfqom3Kv6rR8CEaWk797k=";
rev = "db0e0c4fb9095fdc42a7af34019c0616c071e9eb";
hash = "sha256-rMLYEU4WdCInfNNAOuESCceavgWTy9NS8kgkTRaK1OE=";
};
meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
};
@ -1574,12 +1574,12 @@
};
lua = buildGrammar {
language = "lua";
version = "0.0.0+rev=99fc677";
version = "0.0.0+rev=34e60e7";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "tree-sitter-lua";
rev = "99fc677e6971c425e8d407f59c77ab897e585c92";
hash = "sha256-Q2LtrifoKf16N1dRBf2xLi12kpMkcFncZL4jaVbtK3M=";
rev = "34e60e7f45fc313463c68090d88d742a55d1bd7a";
hash = "sha256-v+fFcIOv+bu+2IGI/Lh/Xbqd5BzbBjaa51ECd0hG7Ow=";
};
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
};
@ -1640,24 +1640,24 @@
};
markdown = buildGrammar {
language = "markdown";
version = "0.0.0+rev=be81c59";
version = "0.0.0+rev=5cdc549";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "be81c59efc552bd875650fe078bf6b78d57330ca";
hash = "sha256-gqZYUJWijD0UQAQeElx/VxAILI2WZtvC/+Eno3AiCTU=";
rev = "5cdc549ab8f461aff876c5be9741027189299cec";
hash = "sha256-dLj233xHPCJbawUVqkxxhHXbu/CrJIHcCyLXTgsWMFo=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "0.0.0+rev=be81c59";
version = "0.0.0+rev=5cdc549";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "be81c59efc552bd875650fe078bf6b78d57330ca";
hash = "sha256-gqZYUJWijD0UQAQeElx/VxAILI2WZtvC/+Eno3AiCTU=";
rev = "5cdc549ab8f461aff876c5be9741027189299cec";
hash = "sha256-dLj233xHPCJbawUVqkxxhHXbu/CrJIHcCyLXTgsWMFo=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@ -2634,12 +2634,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=a8b10c7";
version = "0.0.0+rev=f551a8f";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "a8b10c76759a372d0f92bb070b4f5c993e0ce5f9";
hash = "sha256-wfoov9KfIadouF3HTJ9hOpnIouCHvDffgSrXow8zQ5I=";
rev = "f551a8fa69dc9aea479b93fae34c3ea7be15f931";
hash = "sha256-U+PnjYITbHOT+EtoF0lI8LNhcc811ZEqFjRTsSMtprA=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -2745,12 +2745,12 @@
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=a6ec57a";
version = "0.0.0+rev=d351cb3";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "a6ec57ad4d12c68d952ba1f869bd373a7ac95832";
hash = "sha256-mdBrUgq8uux7p/DEm4jBNtB5a4UFDTrNRXX4hexKN7s=";
rev = "d351cb321c28f0a3e66242ef2f61b1f890ec4b44";
hash = "sha256-7b9wNyHF2ZKMhMcqaFVb1xGcxWdZOS5k1CBvg4RVqXE=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -2891,12 +2891,12 @@
};
tlaplus = buildGrammar {
language = "tlaplus";
version = "0.0.0+rev=da9cf97";
version = "0.0.0+rev=8a8413f";
src = fetchFromGitHub {
owner = "tlaplus-community";
repo = "tree-sitter-tlaplus";
rev = "da9cf9793686e236327aadfbad449414c895bf84";
hash = "sha256-VlYgKg9K/veFqxHWqF3nEYsrRGub2xK9txFK71Kn9JA=";
rev = "8a8413f1d08e7ee40b347206d26eac4324db9fd9";
hash = "sha256-k34gkAd0ueXEAww/Hc1mtBfn0Kp1pIBQtjDZ9GQeB4Q=";
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};
@ -3160,12 +3160,12 @@
};
vimdoc = buildGrammar {
language = "vimdoc";
version = "0.0.0+rev=2249c44";
version = "0.0.0+rev=59c5392";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vimdoc";
rev = "2249c44ecd3f5cf22da3dcccfb74f816ddb29245";
hash = "sha256-v+XSWGm2Wdn9/rxNFMqXYACkGn6AvxZdxkClLuKnWGU=";
rev = "59c539286e7487b267bc7808b16833f9e3ad6793";
hash = "sha256-YDeyD9z/pXISAD7IVfzEenNy2qPORLMqG466c+6yQf0=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
};
@ -3248,16 +3248,27 @@
};
xml = buildGrammar {
language = "xml";
version = "0.0.0+rev=809266e";
version = "0.0.0+rev=cd1316e";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "809266ed1694d64dedc168a18893cc254e3edf7e";
hash = "sha256-Kxmk9v2oTTYtoLQ2n0LyNziouG56ZSgcirS8JukUmZE=";
rev = "cd1316e476ec40da6ce1fb5749c9d7e6b4f1090c";
hash = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw=";
};
location = "xml";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
};
xresources = buildGrammar {
language = "xresources";
version = "0.0.0+rev=630af80";
src = fetchFromGitHub {
owner = "ValdezFOmar";
repo = "tree-sitter-xresources";
rev = "630af80f563ede09a652a808277950c36306e3a3";
hash = "sha256-kQmswwZgevQFayhU0Q+UnLh+lnjgvr+m48FtYWUv3Bw=";
};
meta.homepage = "https://github.com/ValdezFOmar/tree-sitter-xresources";
};
yaml = buildGrammar {
language = "yaml";
version = "0.0.0+rev=7b03fee";

View File

@ -200,19 +200,6 @@ in
blink-cmp = callPackage ./blink-cmp { };
# The GitHub repository returns 404, which breaks the update script
vim-pony = buildVimPlugin {
pname = "vim-pony";
version = "2018-07-27";
src = fetchFromGitHub {
owner = "jakwings";
repo = "vim-pony";
rev = "b26f01a869000b73b80dceabd725d91bfe175b75";
sha256 = "0if8g94m3xmpda80byfxs649w2is9ah1k8v3028nblan73zlc8x8";
};
meta.homepage = "https://github.com/jakwings/vim-pony/";
};
chadtree = super.chadtree.overrideAttrs {
buildInputs = [
python3
@ -1240,6 +1227,19 @@ in
nvimRequireCheck = "lean";
};
LeaderF = super.LeaderF.overrideAttrs {
nativeBuildInputs = [ python3.pkgs.setuptools ];
buildInputs = [ python3 ];
# rm */build/ to prevent dependencies on gcc
# strip the *.so to keep files small
buildPhase = ''
patchShebangs .
./install.sh
rm autoload/leaderf/fuzzyMatch_C/build/ -r
'';
stripDebugList = [ "autoload/leaderf/python" ];
};
leap-ast-nvim = super.leap-ast-nvim.overrideAttrs {
dependencies = with self; [
leap-nvim
@ -1248,6 +1248,17 @@ in
nvimRequireCheck = "leap-ast";
};
leetcode-nvim = super.leetcode-nvim.overrideAttrs {
dependencies = with self; [
nui-nvim
plenary-nvim
telescope-nvim
];
doInstallCheck = true;
nvimRequireCheck = "leetcode";
};
lens-vim = super.lens-vim.overrideAttrs {
# remove duplicate g:lens#animate in doc/lens.txt
# https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
@ -2510,6 +2521,19 @@ in
dependencies = with self; [ denops-vim ];
};
# The GitHub repository returns 404, which breaks the update script
vim-pony = buildVimPlugin {
pname = "vim-pony";
version = "2018-07-27";
src = fetchFromGitHub {
owner = "jakwings";
repo = "vim-pony";
rev = "b26f01a869000b73b80dceabd725d91bfe175b75";
sha256 = "0if8g94m3xmpda80byfxs649w2is9ah1k8v3028nblan73zlc8x8";
};
meta.homepage = "https://github.com/jakwings/vim-pony/";
};
vim-sensible = super.vim-sensible.overrideAttrs {
patches = [ ./patches/vim-sensible/fix-nix-store-path-regex.patch ];
};
@ -2675,17 +2699,6 @@ in
nvimRequireCheck = "yazi";
};
leetcode-nvim = super.leetcode-nvim.overrideAttrs {
dependencies = with self; [
nui-nvim
plenary-nvim
telescope-nvim
];
doInstallCheck = true;
nvimRequireCheck = "leetcode";
};
YouCompleteMe = super.YouCompleteMe.overrideAttrs {
buildPhase = ''
substituteInPlace plugin/youcompleteme.vim \
@ -2716,18 +2729,6 @@ in
--replace "'zoxide_executable', 'zoxide'" "'zoxide_executable', '${zoxide}/bin/zoxide'"
'';
};
LeaderF = super.LeaderF.overrideAttrs {
nativeBuildInputs = [ python3.pkgs.setuptools ];
buildInputs = [ python3 ];
# rm */build/ to prevent dependencies on gcc
# strip the *.so to keep files small
buildPhase = ''
patchShebangs .
./install.sh
rm autoload/leaderf/fuzzyMatch_C/build/ -r
'';
stripDebugList = [ "autoload/leaderf/python" ];
};
}
// (
let

File diff suppressed because it is too large Load Diff

View File

@ -7,28 +7,28 @@
}:
let
version = "0.11.8";
version = "0.12.0";
sources = {
"x86_64-linux" = {
arch = "linux-x64";
url = "https://download.visualjj.com/visualjj-linux-x64-${version}.vsix";
hash = "sha256-L46ORW4iZnZ1GNQSU4opp1bTIh036j9JNmkATjTt/qM=";
hash = "sha256-7zIe5yTSpAhkG4S+k2SAnp4ZOrbbSsdxExpRfMG5EAo=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
url = "https://download.visualjj.com/visualjj-darwin-x64-${version}.vsix";
hash = "sha256-h15HMZiV/bCVgoajEBe8XLSmFD7EsU2JVlpqiN6ntjQ=";
hash = "sha256-0mBNcrfDUqdPfQyc38/Z8YppFP8u9tbxpOLWrQriviE=";
};
"aarch64-linux" = {
arch = "linux-arm64";
url = "https://download.visualjj.com/visualjj-linux-arm64-${version}.vsix";
hash = "sha256-1h/xBMFXtHn/QA0FpZcuUFKxU65AMvaqds6Q9aNaW3s=";
hash = "sha256-YvKTs+kA4PghQkduq3aIx20bnGv1VnCtMqLmkLADfbE=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
url = "https://download.visualjj.com/visualjj-darwin-arm64-${version}.vsix";
hash = "sha256-9SagMPdkB8d2GeGR/R1EmH5y6VNZtYydst9S82kAQlA=";
hash = "sha256-gV8VKwPBsgUCDd/A02ASNozuBl/tt5FW0xKOgVKVgAM=";
};
};
in

View File

@ -67,6 +67,7 @@ let
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
khaneliman
timstott
savannidgerinel
sebtm

View File

@ -73,7 +73,10 @@ stdenv.mkDerivation {
description = "1Password command-line tool";
homepage = "https://developer.1password.com/docs/cli/";
downloadPage = "https://app-updates.agilebits.com/product_history/CLI2";
maintainers = with maintainers; [ joelburget ];
maintainers = with maintainers; [
joelburget
khaneliman
];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
inherit mainProgram platforms;

View File

@ -18,13 +18,13 @@ let
in
stdenv.mkDerivation rec {
pname = "makehuman";
version = "1.2.0";
version = "1.3.0";
source = fetchFromGitHub {
owner = "makehumancommunity";
repo = "makehuman";
rev = "v${version}";
hash = "sha256-mCv6H0B7b4uxozpNHkKsG+Is2H0QYEJnnzKCHixhBpY=";
hash = "sha256-x0v/SkwtOl1lkVi2TRuIgx2Xgz4JcWD3He7NhU44Js4=";
name = "${pname}-source";
};
@ -36,39 +36,6 @@ stdenv.mkDerivation rec {
name = "${pname}-assets-source";
};
patches = [
# work with numpy>=1.24
(fetchpatch {
name = "fix-compile_targets.py-when-using-numpy-1.24.0-or-newer";
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/220.patch";
hash = "sha256-ip7U83cCBrl+4gM1GZ2QQIER5Qur6HRu3a/TnHqk//g=";
})
# crash related to collections.Callable -> collections.abc.Callable
(fetchpatch {
name = "remove-unnecessary-compatibility-test";
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/188.patch";
hash = "sha256-HGrk3n7rhV4YgK8mNUdfHwQl8dFT8yuzjxorvwfMmJw=";
})
# some OpenGL issue causing blank windows on recent Qt
(fetchpatch {
name = "qt-opengl-update-from-qglwidget-to-qopenglwidget-to-fix-blank";
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/197.patch";
hash = "sha256-fEqBwg1Jd36nKWIT9XPr6Buj1N3AmTQg2LBaoX3eTxw=";
})
# multisampling issue
(fetchpatch {
name = "switch-default-for-multisampling-and-disable-sample-buffers";
url = "https://github.com/makehumancommunity/makehuman/commit/c47b884028a24eb190d097e7523a3059e439cb6f.patch";
hash = "sha256-tknQHX9qQYH15gyOLNhxfO3bsFVIv3Z1F7ZXD1IT1h4=";
})
# PyQt >= 5.12
(fetchpatch {
name = "fix-scrolling-issue-on-pyqt5>=5.12";
url = "https://github.com/makehumancommunity/makehuman/commit/02c4269a2d4c57f68159fe8f437a8b1978b99099.patch";
hash = "sha256-yR5tZcELX0N83PW/vS6yB5xKoZcHhVp48invlu7quWM=";
})
];
srcs = [
source
assets

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "ola";
version = "unstable-2020-07-17";
version = "0.10.9";
src = fetchFromGitHub {
owner = "OpenLightingProject";
repo = "ola";
rev = "e2cd699c7792570500578fd092fb6bfb3d511023"; # HEAD of "0.10" branch
sha256 = "17a3z3zhx00rjk58icd3zlqfw3753f3y8bwy2sza0frdim09lqr4";
rev = "refs/tags/${version}";
hash = "sha256-8w8ZT3D/+8Pxl9z2KTXeydVxE5xiPjxZevgmMFgrblU=";
};
nativeBuildInputs = [ autoreconfHook bison flex pkg-config perl ];

View File

@ -5,13 +5,13 @@
xmrig.overrideAttrs (oldAttrs: rec {
pname = "xmrig-mo";
version = "6.22.0-mo3";
version = "6.22.1-mo1";
src = fetchFromGitHub {
owner = "MoneroOcean";
repo = "xmrig";
rev = "v${version}";
hash = "sha256-3KFyCs9Kf0i7IkG1piP/DRj1jTj1VmXbAk/U3Wt4jh0=";
hash = "sha256-CwGHSrnxzKCLKJC7MmqWATqTUNehhRECcX4g/e9oGSI=";
};
meta = with lib; {

View File

@ -86,11 +86,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
version = "6.3.2";
version = "6.4.0";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${lib.versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
sha256 = "sha256-7W2iUilSK4awrtgZc/c40oivzlyz3RN5U5TUicqavsc=";
sha256 = "sha256-0h6Mz3B7fADGL5tGbrKNYpVIAvRu7Xx0n9OvjOeVCds=";
};
# just patch interpreter

View File

@ -1,7 +1,6 @@
{ stdenv, lib, fetchpatch
, recompressTarball
, buildPackages
, buildPlatform
, pkgsBuildBuild
# Channel data:
, channel, upstream-info

View File

@ -1,52 +1,39 @@
{ lib
, python3
, fetchFromGitHub
, fetchpatch
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "cloudflare-dyndns";
version = "4.1";
format = "pyproject";
version = "5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "kissgyorgy";
repo = pname;
repo = "cloudflare-dyndns";
rev = "v${version}";
hash = "sha256-6Q5fpJ+HuQ+hc3xTtB5tR43pn9WZ0nZZR723iLAkpis=";
hash = "sha256-tI6qdNxIMEuAR+BcqsRi2EBXTQnfdDLKW7Y+fbcmlao=";
};
nativeBuildInputs = with python3.pkgs; [
build-system = with python3.pkgs; [
poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
dependencies = with python3.pkgs; [
attrs
click
cloudflare
pydantic_1
pydantic
requests
httpx
truststore
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
patches = [
# Switch to poetry-core, https://github.com/kissgyorgy/cloudflare-dyndns/pull/22
(fetchpatch {
name = "switch-to-poetry-core.patch";
url = "https://github.com/kissgyorgy/cloudflare-dyndns/commit/741ed1ccb3373071ce15683a3b8ddc78d64866f8.patch";
sha256 = "sha256-mjSah0DWptZB6cjhP6dJg10BpJylPSQ2K4TKda7VmHw=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'click = "^7.0"' 'click = "*"' \
--replace 'attrs = "^21.1.0"' 'attrs = "*"'
'';
disabledTests = [
"test_get_ipv4"
];

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "k0sctl";
version = "0.19.0";
version = "0.19.1";
src = fetchFromGitHub {
owner = "k0sproject";
repo = "k0sctl";
rev = "refs/tags/v${version}";
hash = "sha256-86MLQdXc10bvDFeq3ImD19ytjVPVD19eJzicIo6oJZc=";
hash = "sha256-6mvSVbSTPFiAIDxNQUmgFmS+3v3RUh10Y552u9bHOn0=";
};
vendorHash = "sha256-eKim5F8bKC1UOY+lOo0NSHOzXuMOcnBjkjm3/vDkGEM=";
vendorHash = "sha256-Hl/eSFbwFiuSaaPh5blWFfz6m4VNrS5mYL8ehQlb90I=";
ldflags = [
"-s"

View File

@ -14,13 +14,13 @@
let
package = buildGoModule rec {
pname = "opentofu";
version = "1.8.3";
version = "1.8.4";
src = fetchFromGitHub {
owner = "opentofu";
repo = "opentofu";
rev = "v${version}";
hash = "sha256-+1ctvUz1Prhon+w5fGO+IQCYl7uEMZwAYMfQut7fmO4=";
hash = "sha256-YUN+JBYn8Bq4glZNBdlr++WJgGpGSKK1PjWqaduF8bg=";
};
vendorHash = "sha256-cM2DSP2ss3vleUhPBIdyxKeWJxtHpdjL5b5HVS/iC6o=";

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "talosctl";
version = "1.8.0";
version = "1.8.1";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "talos";
rev = "v${version}";
hash = "sha256-Ezie6RQsigmJgdvnSVk6awuUu2kODSio9DNg4bow76M=";
hash = "sha256-6WHeiVH/vZHiM4bqq3T5lC0ARldJyZtIErPeDgrZgxc=";
};
vendorHash = "sha256-9qkealjjdBO659fdWdgFii3ThPRwKpYasB03L3Bktqs=";
vendorHash = "sha256-aTtvVpL979BUvSBwBqRqCWSWIBBmmty9vBD97Q5P4+E=";
ldflags = [ "-s" "-w" ];

View File

@ -9,54 +9,54 @@ let
versions =
if stdenv.hostPlatform.isLinux then
{
stable = "0.0.71";
ptb = "0.0.111";
canary = "0.0.503";
development = "0.0.30";
stable = "0.0.72";
ptb = "0.0.112";
canary = "0.0.508";
development = "0.0.32";
}
else
{
stable = "0.0.322";
ptb = "0.0.141";
canary = "0.0.612";
development = "0.0.53";
stable = "0.0.323";
ptb = "0.0.142";
canary = "0.0.617";
development = "0.0.55";
};
version = versions.${branch};
srcs = rec {
x86_64-linux = {
stable = fetchurl {
url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
hash = "sha256-PMcavgUhL8c1YFaWsooZObDa7APMqCD1IaysED5fWac=";
hash = "sha256-IAvlxs6oEdO//qVWwH0cBJEbDxyPLG6HHwmOgqMzRRU=";
};
ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
hash = "sha256-mms/qTA3XS+R5CDFWFS2RxiHOWnpU348nYagt9L2k2w=";
hash = "sha256-wJIVKrP+F6IKeE7rT8vAmWRTtvWj9h3vKJDsPu8x2kQ=";
};
canary = fetchurl {
url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
hash = "sha256-Z0dv/jM0RipRI73vO9O5qqE0xf8qJtljZ3Zjr0Tf/KA=";
hash = "sha256-zvjIVXZtYl9GdDCvKyuU+9+rNhRX4fGLpw9jPKEpFCs=";
};
development = fetchurl {
url = "https://development.dl2.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
hash = "sha256-HxMJQd5fM1VNfrBey4SbnnBkFQYZgbxg4YTy6FIC9Ps=";
hash = "sha256-Ec2kdoVA5NImT4afXi4GZ9GQF8NjT+h7qM7K3w3qrjU=";
};
};
x86_64-darwin = {
stable = fetchurl {
url = "https://stable.dl2.discordapp.net/apps/osx/${version}/Discord.dmg";
hash = "sha256-RLAdcCcRrUtDSdaj/RdVLJGvufpIjZoMAKxp0Jyu17A=";
hash = "sha256-9ySE75TjVDLdPSWAawsVpOgCtL/Di+J3fKUEDH5/Oog=";
};
ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
hash = "sha256-EVwosCb/34W4+dx/u/5aq3pl6FqU1QiFT17yPydtGBU=";
hash = "sha256-69ioQKRoQ1RTO39BdVppOuwQb/6ylnSy1luMAX5TCeQ=";
};
canary = fetchurl {
url = "https://canary.dl2.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
hash = "sha256-xvrsohxoCTODG3Au5E773SEX5UXbBJ98J2Eb3Vtybfw=";
hash = "sha256-L/nnwHNPni93axBvXS4MH/NuoQbl7Ugva2sozVg6GEk=";
};
development = fetchurl {
url = "https://development.dl2.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
hash = "sha256-DhY8s7Mhzos0ygB/WuoE07WK6hoIh/FcETeIsffw+e0=";
hash = "sha256-tZbFrb6OFEa3/IrjzHCcQultFgrMIvaNTmzNj3RHUgQ=";
};
};
aarch64-darwin = x86_64-darwin;

View File

@ -1,9 +1,9 @@
{
"version" = "1.11.81";
"version" = "1.11.82";
"hashes" = {
"desktopSrcHash" = "sha256-Dr1Bu05UzfqXDceBC6GP3A3Actt5ycUZlJ+MSLYkDZ0=";
"desktopYarnHash" = "19ly8as7y1a1vwaxzmziwia3idnndf1iyz0l160zc213pd3nzabz";
"webSrcHash" = "sha256-NaoBGyoHyCfmcOOokkQL6DrLxVQufVdZP/pgVMY6CPA=";
"webYarnHash" = "1ap2cjxz5332sm7b1fv0530pibgrfman90i7msyr6a1zfvvds0cc";
"desktopSrcHash" = "sha256-XG8q37N4PehYKPyoedgsIIBp2jrSHtoSJKaGrsxaIM8=";
"desktopYarnHash" = "11130y915pa356fikk3i96w81ms41284x11d4xm1xw8385smjbgq";
"webSrcHash" = "sha256-2W3noZfVnxpxwihimH6mlTxFpBpAdvXtLLfVHRiToxE=";
"webYarnHash" = "1rmimxkd70ynrf29s67336vv43g2i6ry8bibc06zb8qyicg6ld83";
};
}

View File

@ -1,9 +1,9 @@
{ hostPlatform, callPackage }:
{ stdenv, callPackage }:
{
signal-desktop =
if hostPlatform.system == "aarch64-linux" then
if stdenv.hostPlatform.system == "aarch64-linux" then
callPackage ./signal-desktop-aarch64.nix { }
else if hostPlatform.isDarwin then
else if stdenv.hostPlatform.isDarwin then
callPackage ./signal-desktop-darwin.nix { }
else
callPackage ./signal-desktop.nix { };

View File

@ -1,14 +1,19 @@
{ lib, stdenv, fetchFromGitHub, copyPkgconfigItems, makePkgconfigItem }:
{ lib, stdenv, fetchFromGitHub, copyPkgconfigItems, makePkgconfigItem
, version ? "2.1.0"
}:
stdenv.mkDerivation rec {
pname = "cadical";
version = "2.1.0";
inherit version;
src = fetchFromGitHub {
owner = "arminbiere";
repo = "cadical";
rev = "rel-${version}";
sha256 = "sha256-sSvJgHxsRaJ/xHEK32fox0MFI7u+pj5ERLfNn2s8kC8=";
hash = {
"2.1.0" = "sha256-sSvJgHxsRaJ/xHEK32fox0MFI7u+pj5ERLfNn2s8kC8=";
"2.0.0" = "sha256-qoeEM9SdpuFuBPeQlCzuhPLcJ+bMQkTUTGiT8QdU8rc=";
}.${version};
};
outputs = [ "out" "dev" "lib" ];

View File

@ -10,7 +10,7 @@
}:
let
version = "5.13.29";
version = "5.13.30";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
rev = "v${version}";
hash = "sha256-8XUpUpsd2q/1N28ZAPt7rW0pJu0WzE6oVSOwdJxhSBk=";
hash = "sha256-HBY9YJk7LvhCGAuXsWpugD5uSitLc1f/F4Ms4PxhZUo=";
};
cargoHash = "sha256-KtdbYzXHpdg0Rf4ENrWpP0+vG3+HlLVi7MLeXp9HoVw=";
cargoHash = "sha256-XMlVGr88RWwfJ2gHTSxdOxgUDlf51ra/opL66Dkd1p4=";
nativeBuildInputs = [ pkg-config ];

View File

@ -57,24 +57,24 @@
let
pname = "gitkraken";
version = "10.4.0";
version = "10.4.1";
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
srcs = {
x86_64-linux = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
hash = "sha256-JGWDOAkJEnhvUyQOFsmoeW9Izj0IuHNpYGlYAMiWPj0=";
hash = "sha256-ZvLDGhBnWjjWqzwqJOz91X8hr94jkXtMA8CL2hh9mlI=";
};
x86_64-darwin = fetchzip {
url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
hash = "sha256-yCDE6QJMgU2Mgr/kUDnbKwQ3MpgVcdjAK7fnTAjSL54=";
hash = "sha256-21VwDFw2dyySoc4NC/RR3k/VtksqaZ5vkdx0z5MKqLc=";
};
aarch64-darwin = fetchzip {
url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
hash = "sha256-nh+tO++QvPx9jyZuxNrH7rHFXZqVnu5jyiki3oWdw7E=";
hash = "sha256-N8WMbJFC74tIeJ6Yyk58nT+sIBYN/7PNLdYNxGSB2yM=";
};
};

View File

@ -26,11 +26,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gpu-screen-recorder";
version = "4.2.1";
version = "4.2.3";
src = fetchurl {
url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.${finalAttrs.version}.tar.gz";
hash = "sha256-eCjAlPEg8lkL8T0lgxr0F8ouFGwqfsRxDSQuG6RbpZE=";
hash = "sha256-M2bk1WwLlbwspEoPIRMix17ihi72UuRWwiKBdPfim2M=";
};
sourceRoot = ".";
@ -59,11 +59,12 @@ stdenv.mkDerivation (finalAttrs: {
];
mesonFlags = [
# Install the upstream systemd unit
(lib.mesonBool "systemd" true)
# Enable Wayland support
(lib.mesonBool "portal" true)
# Handle by the module
(lib.mesonBool "capabilities" false)
(lib.mesonBool "systemd" false)
(lib.mesonBool "nvidia_suspend_fix" false)
];

View File

@ -23,11 +23,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gpu-screen-recorder-gtk";
version = "4.2.1";
version = "4.2.3";
src = fetchurl {
url = "https://dec05eba.com/snapshot/gpu-screen-recorder-gtk.git.${finalAttrs.version}.tar.gz";
hash = "sha256-qk5bI23fypvv0yN9Ql7TOerBhoRzj65EcoAy3lMGMqc=";
hash = "sha256-pMUjglgRM51hjPbt6VP0aqM0oo7IiyPXTY/kLwwdR/k=";
};
sourceRoot = ".";

View File

@ -1,11 +1,11 @@
{ lib
, fetchFromGitHub
, hostPlatform
, stdenv
, lld
}:
let
arch = hostPlatform.qemuArch;
arch = stdenv.hostPlatform.qemuArch;
target = ./. + "/${arch}-unknown-none.json";
@ -15,7 +15,7 @@ assert lib.assertMsg (builtins.pathExists target) "Target spec not found";
let
cross = import ../../../.. {
system = hostPlatform.system;
system = stdenv.hostPlatform.system;
crossSystem = lib.systems.examples."${arch}-embedded" // {
rust.rustcTarget = "${arch}-unknown-none";
rust.platform = lib.importJSON target;

View File

@ -86,7 +86,11 @@ stdenv.mkDerivation (finalAttrs: {
inherit (finalAttrs.src.meta) homepage;
description = "Blazing fast wayland wallpaper utility";
license = licenses.bsd3;
maintainers = with maintainers; [ wozeparrot fufexan ];
maintainers = with maintainers; [
fufexan
khaneliman
wozeparrot
];
inherit (wayland.meta) platforms;
broken = stdenv.hostPlatform.isDarwin;
mainProgram = "hyprpaper";

View File

@ -61,7 +61,10 @@ stdenv.mkDerivation (finalAttrs: {
description = "Wlroots-compatible Wayland color picker that does not suck";
homepage = "https://github.com/hyprwm/hyprpicker";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ fufexan ];
maintainers = with lib.maintainers; [
fufexan
khaneliman
];
platforms = wayland.meta.platforms;
mainProgram = "hyprpicker";
};

View File

@ -91,7 +91,10 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://github.com/hyprwm/xdg-desktop-portal-hyprland/releases/tag/v${finalAttrs.version}";
mainProgram = "hyprland-share-picker";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ fufexan ];
maintainers = with lib.maintainers; [
fufexan
khaneliman
];
platforms = lib.platforms.linux;
};
})

View File

@ -134,6 +134,7 @@ let
else if targetPlatform.isLoongArch64 then "${sharedLibraryLoader}/lib/ld-linux-loongarch*.so.1"
else if targetPlatform.isDarwin then "/usr/lib/dyld"
else if targetPlatform.isFreeBSD then "${sharedLibraryLoader}/libexec/ld-elf.so.1"
else if targetPlatform.isOpenBSD then "${sharedLibraryLoader}/libexec/ld.so"
else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
else "";

View File

@ -9,7 +9,7 @@
let
appName = "AeroSpace.app";
version = "0.14.2-Beta";
version = "0.15.2-Beta";
in
stdenv.mkDerivation {
pname = "aerospace";
@ -18,7 +18,7 @@ stdenv.mkDerivation {
src = fetchzip {
url = "https://github.com/nikitabobko/AeroSpace/releases/download/v${version}/AeroSpace-v${version}.zip";
hash = "sha256-v2D/IV9Va0zbGHEwSGt6jvDqQYqha290Lm6u+nZTS3A=";
sha256 = "sha256-jOSUtVSiy/S4nsgvfZZqZjxsppqNi90edn8rcTa+pFQ=";
};
nativeBuildInputs = [ installShellFiles ];

View File

@ -12,7 +12,7 @@ let
self = python3;
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
};
version = "0.59.0";
version = "0.60.0";
in
python3.pkgs.buildPythonApplication {
pname = "aider-chat";
@ -20,60 +20,100 @@ python3.pkgs.buildPythonApplication {
pyproject = true;
src = fetchFromGitHub {
owner = "paul-gauthier";
owner = "Aider-AI";
repo = "aider";
rev = "refs/tags/v${version}";
hash = "sha256-20LicYj1j5gGzhF+SxPUKu858nHZgwDF1JxXeHRtYe0=";
hash = "sha256-0jAdUcGGJzxvTKY/56an0oLEghZHz6fdNLg8cPer1Qc=";
};
pythonRelaxDeps = true;
build-system = with python3.pkgs; [ setuptools-scm ];
dependencies =
with python3.pkgs;
[
aiohappyeyeballs
backoff
beautifulsoup4
configargparse
diff-match-patch
diskcache
flake8
gitpython
grep-ast
importlib-resources
json5
jsonschema
jiter
litellm
networkx
numpy
packaging
pathspec
pexpect
pillow
playwright
prompt-toolkit
ptyprocess
pypager
pypandoc
pyperclip
pyyaml
psutil
rich
scipy
sounddevice
soundfile
streamlit
tokenizers
watchdog
pydub
]
++ lib.optionals (!tensorflow.meta.broken) [
llama-index-core
llama-index-embeddings-huggingface
];
dependencies = with python3.pkgs; [
aiohappyeyeballs
aiohttp
aiosignal
annotated-types
anyio
attrs
backoff
beautifulsoup4
certifi
cffi
charset-normalizer
click
configargparse
diff-match-patch
diskcache
distro
filelock
flake8
frozenlist
fsspec
gitdb
gitpython
grep-ast
h11
httpcore
httpx
huggingface-hub
idna
importlib-resources
jinja2
jiter
json5
jsonschema
jsonschema-specifications
litellm
markdown-it-py
markupsafe
mccabe
mdurl
multidict
networkx
numpy
openai
packaging
pathspec
pexpect
pillow
prompt-toolkit
psutil
ptyprocess
pycodestyle
pycparser
pydantic
pydantic-core
pydub
pyflakes
pygments
pypandoc
pyperclip
python-dotenv
pyyaml
referencing
regex
requests
rich
rpds-py
scipy
smmap
sniffio
sounddevice
soundfile
soupsieve
tiktoken
tokenizers
tqdm
tree-sitter
tree-sitter-languages
typing-extensions
urllib3
wcwidth
yarl
zipp
];
buildInputs = [ portaudio ];

View File

@ -68,7 +68,10 @@ rustPlatform.buildRustPackage rec {
description = "Wayland-native, highly customizable runner";
homepage = "https://github.com/kirottu/anyrun";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ NotAShelf ];
maintainers = with lib.maintainers; [
khaneliman
NotAShelf
];
mainProgram = "anyrun";
};
}

View File

@ -1,19 +1,20 @@
{ lib
, stdenvNoCC
, fetchurl
, undmg
, writeShellApplication
, curl
, common-updater-scripts
{
lib,
stdenvNoCC,
fetchurl,
undmg,
writeShellApplication,
curl,
common-updater-scripts,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "arc-browser";
version = "1.63.1-54714";
version = "1.65.0-54911";
src = fetchurl {
url = "https://releases.arc.net/release/Arc-${finalAttrs.version}.dmg";
hash = "sha256-jL8iAh+e8Z72VG9XQbswjyTPtjO2Pm8ealRte8xr1PQ=";
hash = "sha256-7p1FizITL4GVvlDTV91nwYQZ7LKEd4snJQX0NvB81Qo=";
};
nativeBuildInputs = [ undmg ];
@ -23,8 +24,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
mkdir -p $out/Applications/Arc.app
cp -R . $out/Applications/Arc.app
mkdir -p "$out/Applications/Arc.app"
cp -R . "$out/Applications/Arc.app"
runHook postInstall
'';
@ -33,9 +34,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
passthru.updateScript = lib.getExe (writeShellApplication {
name = "arc-browser-update-script";
runtimeInputs = [ curl common-updater-scripts ];
runtimeInputs = [
curl
common-updater-scripts
];
text = ''
set -euo pipefail
redirect_url="$(curl -s -L -f "https://releases.arc.net/release/Arc-latest.dmg" -o /dev/null -w '%{url_effective}')"
# The url scheme is: https://releases.arc.net/release/Arc-1.23.4-56789.dmg
# We strip everything before 'Arc-' and after '.dmg'
@ -50,7 +53,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
homepage = "https://arc.net/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ donteatoreo ];
platforms = [ "aarch64-darwin" "x86_64-darwin" ];
platforms = [
"aarch64-darwin"
"x86_64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
pname
version
src
pnpmWorkspace
pnpmWorkspaces
prePnpmInstall
;
hash = "sha256-/X8ZoWK5kBPm/8clBDP+B9A5ofXnH2svmy4kMc2t5iA=";
@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
# Must specify to download "@astrojs/yaml2ts" depencendies
# https://pnpm.io/filtering#--filter-package_name-1
pnpmWorkspace = "@astrojs/language-server...";
pnpmWorkspaces = [ "@astrojs/language-server..." ];
prePnpmInstall = ''
# Warning section for "pnpm@v8"
# https://pnpm.io/cli/install#--filter-package_selector

View File

@ -19,9 +19,9 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-yJ81oGd9aNsWQMLvDSgMVVH1//Mw/SVFYFIPsJTQYzE=";
};
pnpmWorkspace = "bash-language-server";
pnpmWorkspaces = [ "bash-language-server" ];
pnpmDeps = pnpm_8.fetchDeps {
inherit (finalAttrs) pname version src pnpmWorkspace;
inherit (finalAttrs) pname version src pnpmWorkspaces;
hash = "sha256-W25xehcxncBs9QgQBt17F5YHK0b+GDEmt27XzTkyYWg=";
};

View File

@ -117,7 +117,7 @@ python3Packages.buildPythonApplication rec {
description = "Dynamic Tracing Tools for Linux";
homepage = "https://iovisor.github.io/bcc/";
license = licenses.asl20;
maintainers = with maintainers; [ ragge mic92 thoughtpolice martinetd ];
maintainers = with maintainers; [ ragge mic92 thoughtpolice martinetd ryan4yin ];
platforms = platforms.linux;
};
}

View File

@ -7,7 +7,7 @@
let
pname = "beekeeper-studio";
version = "4.6.2";
version = "4.6.8";
plat = {
aarch64-linux = "-arm64";
@ -15,8 +15,8 @@ let
}.${stdenv.hostPlatform.system};
hash = {
aarch64-linux = "sha256-ZxqwxCON21S+RPG0/M2TtcI2Ave7ZT05lKQdyysQFUk=";
x86_64-linux = "sha256-8sGFNoAsX+X3IJDXpwlYRt78nokauPYz88yDEYy6NP8=";
aarch64-linux = "sha256-EKGL+aeuCcBuSh+VtkdgFhI1LccuvO8WHoqbZ/JdX7c=";
x86_64-linux = "sha256-LyO9xCqZG5gNAvCIX9wacSb59wiLjXPDta+Fipu24fk=";
}.${stdenv.hostPlatform.system};
src = fetchurl {

View File

@ -1,7 +1,6 @@
{
lib,
stdenv,
targetPlatform,
fetchurl,
python312,
SDL2,
@ -30,7 +29,7 @@ let
hash = "sha256-o1Yg0C5k07NZzc9jQrHXR+kkQl8HZ55U9/fqcpe3Iyw=";
};
}
.${targetPlatform.system} or (throw "${targetPlatform.system} is unsupported.");
.${stdenv.targetPlatform.system} or (throw "${stdenv.targetPlatform.system} is unsupported.");
in
stdenv.mkDerivation (finalAttrs: {
pname = "bombsquad";

View File

@ -84,7 +84,10 @@ buildNpmPackage rec {
description = "Elegant Facebook Messenger desktop app";
homepage = "https://github.com/sindresorhus/caprine";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ astronaut0212 ];
maintainers = with lib.maintainers; [
astronaut0212
khaneliman
];
inherit (electron.meta) platforms;
};
}

View File

@ -2,18 +2,18 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-rdme";
version = "1.4.4";
version = "1.4.5";
src = fetchCrate {
inherit pname version;
hash = "sha256-AARkXr6qOq9u/nmcmCnA4P+Q+MPPChCXoRaYiLwCNPs=";
hash = "sha256-IB+n9abFeWLgJLdo3NjffcGrIxXhNdZ2moyfIG+gMoc=";
};
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
Security
];
cargoHash = "sha256-myTh+zOtAt9h/irld7OHSXKMv0V+LAR4h/afYKvXeXg=";
cargoHash = "sha256-mD95+Q6xaL0LFk5841LBrQqzFU7KFJbUgHB96zXy2KU=";
meta = with lib; {
description = "Cargo command to create the README.md from your crate's documentation";

View File

@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
autoconf-archive,
alsa-lib,
fftw,
iniparser,
libGL,
libpulseaudio,
libtool,
ncurses,
pipewire,
pkgconf,
portaudio,
SDL2,
versionCheckHook,
withSDL2 ? false,
withPipewire ? stdenv.hostPlatform.isLinux,
}:
stdenv.mkDerivation rec {
pname = "cava";
version = "0.10.2";
src = fetchFromGitHub {
owner = "karlstav";
repo = "cava";
rev = version;
hash = "sha256-y6RslsU/zmr0Ai/rnr73N3OtjuBcWa3JCwh9P5GkNss=";
};
buildInputs =
[
fftw
iniparser
libpulseaudio
libtool
ncurses
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
portaudio
]
++ lib.optionals withSDL2 [
libGL
SDL2
]
++ lib.optionals withPipewire [
pipewire
];
nativeBuildInputs = [
autoreconfHook
autoconf-archive
pkgconf
versionCheckHook
];
doInstallCheck = true;
versionCheckProgramArg = "-v";
preAutoreconf = ''
echo ${version} > version
'';
meta = with lib; {
description = "Console-based Audio Visualizer for Alsa";
homepage = "https://github.com/karlstav/cava";
license = licenses.mit;
maintainers = with maintainers; [
offline
mirrexagon
];
platforms = platforms.unix;
mainProgram = "cava";
};
}

View File

@ -11,6 +11,7 @@
yaml-cpp,
elfutils,
libunwind,
versionCheckHook,
enableLibcxx ? false,
debug ? false,
}:
@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
"-DCUSTOM_COMPILE_OPTIONS=-Wno-error=sign-compare"
"-DGIT_VERSION=${finalAttrs.version}"
];
buildInputs = [
@ -72,6 +74,10 @@ stdenv.mkDerivation (finalAttrs: {
dontFixup = debug;
dontStrip = debug;
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "--version";
meta = {
description = "Customizable automatic UML diagram generator for C++ based on Clang";
longDescription = ''
@ -84,5 +90,6 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://clang-uml.github.io/";
license = lib.licenses.asl20;
platforms = lib.platforms.all;
mainProgram = "clang-uml";
};
})

View File

@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "cliqr";
version = "0.1.25";
src = fetchFromGitHub {
owner = "paepckehh";
repo = "cliqr";
rev = "refs/tags/v${version}";
hash = "sha256-iPNI92kCNFXRiV5NV7Yj0gznwNeFoW02yh6QLrkBYO0=";
};
vendorHash = null;
ldflags = [
"-s"
"-w"
];
meta = {
changelog = "https://github.com/paepckehh/cliqr/releases/tag/v${version}";
homepage = "https://paepcke.de/cliqr";
description = "Transfer, share data & secrets via console qr codes";
license = lib.licenses.bsd3;
mainProgram = "cliqr";
maintainers = with lib.maintainers; [ paepcke ];
};
}

View File

@ -8,11 +8,11 @@
}:
let
pname = "cursor";
version = "0.41.3";
version = "0.42.3";
appKey = "230313mzl4w4u92";
src = fetchurl {
url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.41.3-build-240925fkhcqg263-x86_64.AppImage";
hash = "sha256-WtfyiNGnUn8g1HR0TQPyn3SMJmjqe+otAYeyokMIO+w=";
url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.42.3-build-241016kxu9umuir-x86_64.AppImage";
hash = "sha256-GWkilBlpXube//jbxRjmKJjYcmB42nhMY8K0OgkvtwA=";
};
appimageContents = appimageTools.extractType2 { inherit version pname src; };
in

View File

@ -14,14 +14,14 @@
},
"stable": {
"candidateHashFilenames": [
"factorio_linux_2.0.9.tar.xz"
"factorio_linux_2.0.10.tar.xz"
],
"name": "factorio_alpha_x64-2.0.9.tar.xz",
"name": "factorio_alpha_x64-2.0.10.tar.xz",
"needsAuth": true,
"sha256": "34c21cd3cbe91b65483786ccb4467b5d4766c748cbbddd2ce3b30d319d163e3b",
"sha256": "07508fc5112f95ef5d5afedea66863ea326e039bd872b772b934ed08545c399b",
"tarDirectory": "x64",
"url": "https://factorio.com/get-download/2.0.9/alpha/linux64",
"version": "2.0.9"
"url": "https://factorio.com/get-download/2.0.10/alpha/linux64",
"version": "2.0.10"
}
},
"demo": {
@ -62,14 +62,14 @@
},
"stable": {
"candidateHashFilenames": [
"factorio-space-age_linux_2.0.9.tar.xz"
"factorio-space-age_linux_2.0.10.tar.xz"
],
"name": "factorio_expansion_x64-2.0.9.tar.xz",
"name": "factorio_expansion_x64-2.0.10.tar.xz",
"needsAuth": true,
"sha256": "6369d23550a7a721d3de1d34253e8321ee601fa759d1fb5efac9abc28aa7509d",
"sha256": "f7d346578c812314be8b72fbf6fd291c53d23ecc2dc6556a8948d26b3b95d71e",
"tarDirectory": "x64",
"url": "https://factorio.com/get-download/2.0.9/expansion/linux64",
"version": "2.0.9"
"url": "https://factorio.com/get-download/2.0.10/expansion/linux64",
"version": "2.0.10"
}
},
"headless": {
@ -87,15 +87,15 @@
},
"stable": {
"candidateHashFilenames": [
"factorio-headless_linux_2.0.9.tar.xz",
"factorio_headless_x64_2.0.9.tar.xz"
"factorio-headless_linux_2.0.10.tar.xz",
"factorio_headless_x64_2.0.10.tar.xz"
],
"name": "factorio_headless_x64-2.0.9.tar.xz",
"name": "factorio_headless_x64-2.0.10.tar.xz",
"needsAuth": false,
"sha256": "f499077b3e2c1313452c350f1faf17db31cae2a0fa738f69166e97c3caa3c86d",
"sha256": "2d7dd212fa6f715218a5e33bad7d593af8998fa7bf7ce727343159ee1f8c23f4",
"tarDirectory": "x64",
"url": "https://factorio.com/get-download/2.0.9/headless/linux64",
"version": "2.0.9"
"url": "https://factorio.com/get-download/2.0.10/headless/linux64",
"version": "2.0.10"
}
}
}

View File

@ -11,6 +11,7 @@
, libnotify
, slurp
, wl-clipboard
, bash
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@ -31,6 +32,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
scdoc
];
buildInputs = [ bash ];
makeFlags = [
"PREFIX=$(out)"
];

View File

@ -10,11 +10,11 @@
}:
stdenv.mkDerivation rec {
pname = "guile-goblins";
version = "0.13.0";
version = "0.14.0";
src = fetchurl {
url = "https://spritely.institute/files/releases/guile-goblins/guile-goblins-${version}.tar.gz";
hash = "sha256-efmyOtPAz1ZPdMCuVaGALR6e0lg7gcjt81BUMBVUKug=";
hash = "sha256-jR+pWk7NXvOF0CvDwa1rYg0yu5ktyq440qyRgivqHr8=";
};
strictDeps = true;

View File

@ -43,7 +43,10 @@ stdenv.mkDerivation (finalAttrs: {
description = "Hyprland's idle daemon";
homepage = "https://github.com/hyprwm/hypridle";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ iogamaster ];
maintainers = with lib.maintainers; [
iogamaster
khaneliman
];
mainProgram = "hypridle";
platforms = [
"aarch64-linux"

View File

@ -207,6 +207,7 @@ customStdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [
fufexan
johnrtitor
khaneliman
wozeparrot
];
mainProgram = "Hyprland";

View File

@ -7,6 +7,8 @@
, slurp
, wl-clipboard
, libnotify
, withFreeze ? true
, hyprpicker
, makeWrapper
}:
@ -28,9 +30,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
install -Dm755 hyprshot -t "$out/bin"
wrapProgram "$out/bin/hyprshot" \
--prefix PATH ":" ${lib.makeBinPath [
--prefix PATH ":" ${lib.makeBinPath ([
hyprland jq grim slurp wl-clipboard libnotify
]}
] ++ lib.optionals withFreeze [ hyprpicker ])}
runHook postInstall
'';

View File

@ -13,7 +13,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "i2p";
version = "2.6.1";
version = "2.7.0";
src = fetchzip {
urls = [
@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
"https://files.i2p-projekt.de/"
"https://download.i2p2.no/releases/"
]);
hash = "sha256-ntjTXdpgcTReEVxzDEoq9r3NAqS7q4m+rlJXp7is1k0=";
hash = "sha256-gw1i6jrmTfz9CZlCjtOUdH5R4vD57ysDeQxyyWifieg=";
};
strictDeps = true;

View File

@ -14,16 +14,16 @@
rustPlatform.buildRustPackage {
pname = "inv-sig-helper";
version = "0-unstable-2024-08-17";
version = "0-unstable-2024-09-24";
src = fetchFromGitHub {
owner = "iv-org";
repo = "inv_sig_helper";
rev = "215d32c76e5e9e598de6e4f8542316f80dd92f57";
hash = "sha256-Ge0XoWrscyZSrkmtDPkAnv96IVylKZTcgGgonbFV43I=";
rev = "5025e49e6106f93ec06d0e3fd542a51e1c44c25a";
hash = "sha256-fMRjkZRMvcro3pOO20l5zRDOwn/E5KTVBOiDmcGROz4=";
};
cargoHash = "sha256-JVpLUhNJ7/4WZwLn/zOurpP8kF5WblF3nphJh6keHG8=";
cargoHash = "sha256-AisolMo++xMDesdfafeGx37r7sGbk0P0vMsHq0YTUL4=";
nativeBuildInputs = [
pkg-config

View File

@ -141,6 +141,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
cp *.so "$out/bin"
cp *.embd "$out/bin"
${lib.optionalString metalSupport ''
cp *.metal "$out/bin"
''}
${lib.optionalString (!koboldLiteSupport) ''
rm "$out/bin/kcpp_docs.embd"
rm "$out/bin/klite.embd"

View File

@ -34,6 +34,7 @@ buildGoModule rec {
maintainers = with maintainers; [
Br1ght0ne
equirosa
khaneliman
paveloom
starsep
];

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "less";
version = "661";
version = "668";
# Only tarballs on the website are valid releases,
# other versions, e.g. git tags are considered snapshots.
src = fetchurl {
url = "https://www.greenwoodsoftware.com/less/less-${finalAttrs.version}.tar.gz";
hash = "sha256-K18BZyFuPvD/ywwxw3Tih+sDXk4iPV2uMVwng7bnOO0=";
hash = "sha256-KBn1VWTYbVQqu+yv2C/2HoGaPuyWf6o2zT5o8VlqRLg=";
};
buildInputs = [

View File

@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "opnborg";
version = "0.1.18";
src = fetchFromGitHub {
owner = "paepckehh";
repo = "opnborg";
rev = "v${version}";
hash = "sha256-eRJLdrNspkdpb24Bz7GjvcC+1iwRVXyG6Rjqf3fGkZY=";
};
vendorHash = "sha256-REXJryUcu+/AdVx1aK0nJ98Wq/EdhrZqL24kC1wK6mc=";
ldflags = [
"-s"
"-w"
];
meta = {
changelog = "https://github.com/paepckehh/opnborg/releases/tag/v${version}";
homepage = "https://paepcke.de/opnborg";
description = "Sefhosted OPNSense Appliance Backup & Configuration Management Portal";
license = lib.licenses.bsd3;
mainProgram = "opnborg";
maintainers = with lib.maintainers; [ paepcke ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "orchard";
version = "0.24.0";
version = "0.24.1";
src = fetchFromGitHub {
owner = "cirruslabs";
repo = pname;
rev = version;
hash = "sha256-N54wkqe05Hm9o+kQmWTJREoU+0GnivaVTJngtBDL8+U=";
hash = "sha256-6w/UcifseoajAOKZnn0GJiUzXAmLNGKLDCZkeZLK8NI=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;

View File

@ -7,13 +7,13 @@
}:
stdenv.mkDerivation rec {
pname = "oscar";
version = "1.5.1";
version = "1.5.3";
src = fetchFromGitLab {
owner = "pholy";
repo = "OSCAR-code";
rev = "v${version}";
hash = "sha256-FBHbPtMZeIgcR1pQflfEWK2FS8bquctXaeY/yaZofHg=";
rev = "${version}";
hash = "sha256-ukd2pni4qEwWxG4lr8KUliZO/R2eziTTuSvDo8uigxQ=";
};
buildInputs = [

View File

@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
yarnConfigHook,
yarnBuildHook,
yarnInstallHook,
nodejs,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "patch-package";
version = "8.0.0";
src = fetchFromGitHub {
owner = "ds300";
repo = "patch-package";
rev = "v${finalAttrs.version}";
hash = "sha256-QuCgdQGqy27wyLUI6w6p8EWLn1XA7QbkjpLJwFXSex8=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-WF9gJkj4wyrBeGPIzTOw3nG6Se7tFb0YLcAM8Uv9YNI=";
};
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
yarnInstallHook
nodejs
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Fix broken node modules instantly";
mainProgram = "patch-package";
homepage = "https://github.com/ds300/patch-package";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pyrox0 ];
};
})

View File

@ -1,5 +1,6 @@
{
lib,
stdenv,
buildBazelPackage,
fetchFromGitHub,
bazel_6,
@ -8,25 +9,39 @@
libcap,
}:
let
system = stdenv.hostPlatform.system;
registry = fetchFromGitHub {
owner = "bazelbuild";
repo = "bazel-central-registry";
rev = "ef34e6bfad5a6ab54080ddcc83a4d65849855e3a";
hash = "sha256-PhacBegQDwWZqZeoZjoLR4akhVV3QrSPr1KflCuied0=";
};
in
buildBazelPackage rec {
pname = "perf_data_converter";
version = "0-unstable-2024-07-25";
version = "0-unstable-2024-10-14";
src = fetchFromGitHub {
owner = "google";
repo = "perf_data_converter";
rev = "571052793d8c49fd3e93121af548cc8ebd8920f0";
hash = "sha256-yoWOCSYAfnDVDQ6uwZ30P4p3pgvfmjVQiN9gu5auusY=";
rev = "f76cd4dd1e85bb54d60ea3fe69f92168fdf94edb";
hash = "sha256-AScXL74K0Eiajdib56+7ay3K/MMWbmeUWkRWMaEJRC8=";
};
bazel = bazel_6;
bazelFlags = [
"--java_runtime_version=local_jdk"
"--tool_java_runtime_version=local_jdk"
"--registry"
"file://${registry}"
];
fetchAttrs = {
hash = "sha256-Qm6Ng9cXvKx043P7qyNHyyMvdGK9aNarX1ZKeCp3mgY=";
hash =
{
aarch64-linux = "sha256-gSRSkLGZhHe8o3byZVFsUxXPM+xzetOPhfzkAVTGAUs=";
x86_64-linux = "sha256-ZYjFpdH0oYrJguw16DSJWiXjhfJusG+inShbx/BOrcY=";
}
.${system} or (throw "No hash for system: ${system}");
};
nativeBuildInputs = [ jdk ];

3297
pkgs/by-name/po/pop-launcher/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,64 @@
{ rustPlatform
, fetchFromGitHub
, lib
, fd
, libqalculate
{
stdenv,
rustPlatform,
fetchFromGitHub,
lib,
just,
pkg-config,
fd,
libqalculate,
libxkbcommon,
}:
rustPlatform.buildRustPackage rec {
pname = "pop-launcher";
version = "1.2.1";
version = "1.2.4";
src = fetchFromGitHub {
owner = "pop-os";
repo = "launcher";
rev = version;
hash = "sha256-BQAO9IodZxGgV8iBmUaOF0yDbAMVDFslKCqlh3pBnb0=";
hash = "sha256-CLpquNgdtnGMlMpGLv72WZmizalvYPfMWlE/qLprVrs=";
};
nativeBuildInputs = [
just
pkg-config
];
buildInputs = [
libxkbcommon
];
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"cosmic-client-toolkit-0.1.0" = "sha256-6XM6kcM2CEGAziCkal4uO0EL1nEWOKb3rFs7hFh6r7Y=";
"switcheroo-control-0.1.0" = "sha256-mklNPKVMO6iFrxki2DwiL5K78KiWpGxksisYldaASIE=";
};
};
cargoBuildFlags = [
"--package"
"pop-launcher-bin"
];
cargoTestFlags = [
"--package"
"pop-launcher-bin"
];
dontUseJustBuild = true;
dontUseJustCheck = true;
justFlags = [
"--set"
"base-dir"
(placeholder "out")
"--set"
"target-dir"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release"
];
postPatch = ''
substituteInPlace justfile --replace-fail '#!/usr/bin/env' "#!$(command -v env)"
substituteInPlace src/lib.rs \
--replace-fail '/usr/lib/pop-launcher' "$out/share/pop-launcher"
substituteInPlace plugins/src/scripts/mod.rs \
@ -29,28 +71,6 @@ rustPlatform.buildRustPackage rec {
--replace-fail '/usr/bin/gnome-terminal' 'gnome-terminal'
'';
cargoHash = "sha256-cTvrq0fH057UIx/O9u8zHMsg+psMGg1q9klV5OMxtok=";
cargoBuildFlags = [ "--package" "pop-launcher-bin" ];
postInstall = ''
mv $out/bin/pop-launcher{-bin,}
plugins_dir=$out/share/pop-launcher/plugins
scripts_dir=$out/share/pop-launcher/scripts
mkdir -p $plugins_dir $scripts_dir
for plugin in $(find plugins/src -mindepth 1 -maxdepth 1 -type d -printf '%f\n'); do
mkdir $plugins_dir/$plugin
cp plugins/src/$plugin/*.ron $plugins_dir/$plugin
ln -sf $out/bin/pop-launcher $plugins_dir/$plugin/$(echo $plugin | sed 's/_/-/')
done
for script in scripts/*; do
cp -r $script $scripts_dir
done
'';
meta = with lib; {
description = "Modular IPC-based desktop launcher service";
homepage = "https://github.com/pop-os/launcher";

View File

@ -1,19 +1,32 @@
{ lib, rustPlatform, fetchCrate }:
{
lib,
stdenv,
rustPlatform,
fetchCrate,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "preserves-tools";
version = "4.994.0";
version = "4.996.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-+I2uxdAe4SHg8ZLRvkIUr862FH6GvCwnyhxcCPD3JBA=";
hash = "sha256-Uyh5mXCypX3TDxxJtnTe6lBoVI8aqdG56ywn7htDGUY=";
};
cargoHash = "sha256-09uxXD9EZzzk42tBYbuqaLRFyGmOUuvC7G0XMDjsK6E=";
cargoHash = "sha256-rDo/jA4b+GV90SKM82JcGTX1pcAQUeBrLvGwU/geGOw=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd preserves-tool \
--bash <($out/bin/preserves-tool completions bash) \
--fish <($out/bin/preserves-tool completions fish) \
--zsh <($out/bin/preserves-tool completions zsh)
'';
meta = {
description =
"Command-line utilities for working with Preserves documents";
description = "Command-line utilities for working with Preserves documents";
homepage = "https://preserves.dev/doc/preserves-tool.html";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ehmry ];

View File

@ -6,18 +6,18 @@
buildGoModule rec {
pname = "pulumi-esc";
version = "0.10.0";
version = "0.11.0";
src = fetchFromGitHub {
owner = "pulumi";
repo = "esc";
rev = "v${version}";
hash = "sha256-SeHO8N8NwAF4f6Eo46V2mBElVgJc5ijVrjsBHWtUMc0=";
hash = "sha256-/H2HFjq/CpY5/xj9tqr+1Qo1nD06joahvbIiu16DLrs=";
};
subPackages = "cmd/esc";
vendorHash = "sha256-xJtlTyhGyoxefE2pFcLGHMapn9L2F/PKuNt49J41viE=";
vendorHash = "sha256-T9DUgfYpu1xXekMxzlr2VwmPSkD/sPml+G0KaFeeAWA=";
ldflags = [
"-s"

View File

@ -5,7 +5,6 @@
, dotnetCorePackages
, openssl
, zlib
, hostPlatform
, nix-update-script
}:
@ -30,7 +29,7 @@ buildDotnetModule rec {
patches = [ ./add-runtime-identifier.patch ];
postPatch = ''
substituteInPlace pupdate.csproj \
--replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid hostPlatform.system}"
--replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
'';
projectFile = "pupdate.csproj";

View File

@ -0,0 +1,74 @@
{
lib,
python3Packages,
fetchFromGitHub,
pkg-config,
gobject-introspection,
wrapGAppsHook3,
gtk3,
gst_all_1,
gtksourceview,
}:
python3Packages.buildPythonApplication rec {
pname = "pychess";
version = "1.0.5";
src = fetchFromGitHub {
owner = "pychess";
repo = "pychess";
rev = "${version}";
hash = "sha256-hxc+vYvCeiM0+oOu1peI9qkZg5PeIsDMCiydJQAuzOk=";
};
nativeBuildInputs = [
pkg-config
gobject-introspection
wrapGAppsHook3
];
buildInputs = [
gtk3
gst_all_1.gst-plugins-base
gtksourceview
];
propagatedBuildInputs = with python3Packages; [
pygobject3
pycairo
sqlalchemy
pexpect
psutil
websockets
ptyprocess
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
preBuild = ''
export HOME=$(mktemp -d)
export PYTHONPATH=./lib:$PYTHONPATH
python pgn2ecodb.py
python create_theme_preview.py
'';
postInstall = ''
cp -r $out/share/pychess/* $out/lib/python*/
'';
# No tests available.
doCheck = false;
meta = {
description = "Advanced GTK chess client written in Python";
homepage = "https://pychess.github.io/";
mainProgram = "pychess";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ lgbishop ];
};
}

View File

@ -8,7 +8,7 @@
python3Packages.buildPythonApplication rec {
pname = "rockcraft";
version = "1.5.3";
version = "1.6.0";
src = fetchFromGitHub {
owner = "canonical";

View File

@ -1,14 +1,20 @@
{ lib, stdenv, fetchFromGitHub, libusb1, pkg-config }:
{
lib,
stdenv,
fetchFromGitHub,
libusb1,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "rpiboot";
version = "20221215-105525";
version = "20240926-102326";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "usbboot";
rev = version;
hash = "sha256-Y77IrDblXmnpZleJ3zTyiGDYLZ7gNxASXpqUzwS1NCU=";
hash = "sha256-9m7PAw1WNQlfqOr5hDXrCsZlZLBmvoGUT58NN2cVolw=";
};
buildInputs = [ libusb1 ];
@ -22,16 +28,27 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin
mkdir -p $out/share/rpiboot
cp rpiboot $out/bin
cp -r msd $out/share/rpiboot
cp -r msd firmware eeprom-erase mass-storage-gadget* recovery* secure-boot* rpi-imager-embedded $out/share/rpiboot
'';
meta = with lib; {
meta = {
homepage = "https://github.com/raspberrypi/usbboot";
changelog = "https://github.com/raspberrypi/usbboot/blob/${version}/debian/changelog";
description = "Utility to boot a Raspberry Pi CM/CM3/CM4/Zero over USB";
mainProgram = "rpiboot";
license = licenses.asl20;
maintainers = with maintainers; [ cartr flokli ];
platforms = [ "aarch64-linux" "aarch64-darwin" "armv7l-linux" "armv6l-linux" "x86_64-linux" "x86_64-darwin" ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
cartr
flokli
stv0g
];
platforms = [
"aarch64-linux"
"aarch64-darwin"
"armv7l-linux"
"armv6l-linux"
"x86_64-linux"
"x86_64-darwin"
];
};
}

View File

@ -937,8 +937,21 @@ fn do_user_switch(parent_exe: String) -> anyhow::Result<()> {
Ok(())
}
fn usage(argv0: &str) -> ! {
eprintln!(
r#"Usage: {} [switch|boot|test|dry-activate]
switch: make the configuration the boot default and activate now
boot: make the configuration the boot default
test: activate the configuration, but don't make it the boot default
dry-activate: show what would be done if this configuration were activated
"#,
argv0
);
std::process::exit(1);
}
/// Performs switch-to-configuration functionality for the entire system
fn do_system_switch() -> anyhow::Result<()> {
fn do_system_switch(action: Action) -> anyhow::Result<()> {
let out = PathBuf::from(required_env("OUT")?);
let toplevel = PathBuf::from(required_env("TOPLEVEL")?);
let distro_id = required_env("DISTRO_ID")?;
@ -946,25 +959,6 @@ fn do_system_switch() -> anyhow::Result<()> {
let locale_archive = required_env("LOCALE_ARCHIVE")?;
let new_systemd = PathBuf::from(required_env("SYSTEMD")?);
let mut args = std::env::args();
let argv0 = args.next().ok_or(anyhow!("no argv[0]"))?;
let Some(Ok(action)) = args.next().map(|a| Action::from_str(&a)) else {
eprintln!(
r#"Usage: {} [switch|boot|test|dry-activate]
switch: make the configuration the boot default and activate now
boot: make the configuration the boot default
test: activate the configuration, but don't make it the boot default
dry-activate: show what would be done if this configuration were activated
"#,
argv0
.split(std::path::MAIN_SEPARATOR_STR)
.last()
.unwrap_or("switch-to-configuration")
);
std::process::exit(1);
};
let action = ACTION.get_or_init(|| action);
// The action that is to be performed (like switch, boot, test, dry-activate) Also exposed via
@ -1082,22 +1076,6 @@ won't take effect until you reboot the system.
.subscribe()
.context("Failed to subscribe to systemd dbus messages")?;
// Wait for the system to have finished booting.
loop {
let system_state: String = systemd
.get("org.freedesktop.systemd1.Manager", "SystemState")
.context("Failed to get system state")?;
match system_state.as_str() {
"running" | "degraded" | "maintenance" => break,
_ => {
_ = dbus_conn
.process(Duration::from_millis(500))
.context("Failed to process dbus messages")?
}
}
}
let _systemd_reload_status = systemd_reload_status.clone();
let reloading_token = systemd
.match_signal(
@ -1939,13 +1917,26 @@ won't take effect until you reboot the system.
}
fn main() -> anyhow::Result<()> {
match (
unsafe { nix::libc::geteuid() },
std::env::var("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE").ok(),
) {
(0, None) => do_system_switch(),
(1..=u32::MAX, None) => bail!("This program does not support being ran outside of the switch-to-configuration environment"),
(_, Some(parent_exe)) => do_user_switch(parent_exe),
match std::env::var("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE").ok() {
Some(parent_exe) => do_user_switch(parent_exe),
None => {
let mut args = std::env::args();
let argv0 = args.next().ok_or(anyhow!("no argv[0]"))?;
let argv0 = argv0
.split(std::path::MAIN_SEPARATOR_STR)
.last()
.unwrap_or("switch-to-configuration");
let Some(Ok(action)) = args.next().map(|a| Action::from_str(&a)) else {
usage(&argv0);
};
if unsafe { nix::libc::geteuid() } == 0 {
do_system_switch(action)
} else {
bail!("{} must be run as the root user", argv0);
}
}
}
}

View File

@ -1,28 +0,0 @@
diff --git a/src/core/vscore.cpp b/src/core/vscore.cpp
index 73e2eafc..66a01326 100644
--- a/src/core/vscore.cpp
+++ b/src/core/vscore.cpp
@@ -1779,6 +1779,12 @@ void VSCore::isPortableInit() {
}
#endif
+void __attribute__((weak)) VSLoadPluginsNix(void (*load)(VSCore *core, const std::filesystem::path &), VSCore *);
+
+static void VSLoadPluginsNixCallback(VSCore *core, const std::filesystem::path &path) {
+ core->loadAllPluginsInPath(path);
+}
+
VSCore::VSCore(int flags) :
numFilterInstances(1),
numFunctionInstances(0),
@@ -1890,6 +1896,10 @@ VSCore::VSCore(int flags) :
#endif
}
+ if (VSLoadPluginsNix != nullptr) {
+ VSLoadPluginsNix(VSLoadPluginsNixCallback, this);
+ };
+
VSMap *settings = readSettings(configFile);
const char *error = vs_internal_vsapi.mapGetError(settings);
if (error) {

View File

@ -8,7 +8,6 @@
runCommandCC,
runCommand,
vapoursynth,
writeText,
buildEnv,
zimg,
libass,
@ -29,8 +28,6 @@ stdenv.mkDerivation rec {
hash = "sha256-T2bCVNH0dLM9lFYChXzvD6AJM3xEtOVCb2tI10tIXJs=";
};
patches = [ ./nix-plugin-loader.patch ];
nativeBuildInputs = [
pkg-config
autoreconfHook
@ -53,6 +50,7 @@ stdenv.mkDerivation rec {
];
enableParallelBuilding = true;
doInstallCheck = true;
passthru = rec {
# If vapoursynth is added to the build inputs of mpv and then
@ -66,7 +64,6 @@ stdenv.mkDerivation rec {
lib
python3
buildEnv
writeText
runCommandCC
stdenv
runCommand
@ -83,6 +80,14 @@ stdenv.mkDerivation rec {
};
};
postPatch = ''
# Export weak symbol nixPluginDir to permit override of default plugin path
sed -E -i \
-e 's/(VS_PATH_PLUGINDIR)/(nixPluginDir ? nixPluginDir : \1)/g' \
-e '1i\extern char const __attribute__((weak)) nixPluginDir[];' \
src/core/vscore.cpp
'';
postInstall = ''
wrapProgram $out/bin/vspipe \
--prefix PYTHONPATH : $out/${python3.sitePackages}
@ -92,6 +97,18 @@ stdenv.mkDerivation rec {
mkdir $out/lib/vapoursynth
'';
installCheckPhase = ''
runHook preInstallCheck
libv="$out/lib/libvapoursynth${stdenv.hostPlatform.extensions.sharedLibrary}"
if ! $NM -g -P "$libv" | grep -q '^nixPluginDir w'; then
echo "Weak symbol nixPluginDir is missing from $libv." >&2
exit 1
fi
runHook postInstallCheck
'';
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin; # see https://github.com/NixOS/nixpkgs/pull/189446 for partial fix
description = "Video processing framework with the future in mind";

View File

@ -2,7 +2,6 @@
lib,
python3,
buildEnv,
writeText,
runCommandCC,
stdenv,
runCommand,
@ -35,29 +34,19 @@ let
paths = deepPlugins;
};
pluginLoader =
let
source = writeText "vapoursynth-nix-plugins.cpp" ''
#include <filesystem>
struct VSCore;
void VSLoadPluginsNix(void (*load)(VSCore *, const std::filesystem::path &), VSCore *core) {
${lib.concatMapStrings (
path: ''load(core, std::filesystem::u8path("${path}/lib/vapoursynth"));''
) deepPlugins}
}
'';
in
runCommandCC "vapoursynth-plugin-loader"
# Override default plugin path through nixPluginDir symbol
nixPlugins =
runCommandCC "libvapoursynth-nix-plugins${ext}"
{
executable = true;
preferLocalBuild = true;
allowSubstitutes = false;
src = ''
char const nixPluginDir[] = "${pluginsEnv}/lib/vapoursynth";
'';
}
''
mkdir -p $out/lib
$CXX -std=c++17 -shared -fPIC ${source} -o "$out/lib/libvapoursynth-nix-plugins${ext}"
$CC -x c -shared -fPIC - -o "$out" <<<"$src"
'';
ext = stdenv.hostPlatform.extensions.sharedLibrary;
@ -123,9 +112,7 @@ runCommand "${vapoursynth.name}-with-plugins"
${vapoursynth}/$binaryFile
done
ln -s \
${pluginLoader}/lib/libvapoursynth-nix-plugins${ext} \
$out/lib/libvapoursynth-nix-plugins${ext}
ln -s ${nixPlugins} $out/lib/libvapoursynth-nix-plugins${ext}
ln -s ${vapoursynth}/include $out/include
ln -s ${vapoursynth}/lib/vapoursynth/* $out/lib/vapoursynth
ln -s \

View File

@ -91,6 +91,7 @@ buildGoModule rec {
ivan
leona
shawn8901
ryan4yin
];
changelog = "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v${version}";
mainProgram = "victoria-metrics";

View File

@ -2,20 +2,23 @@
lib,
fetchFromGitHub,
rustPlatform,
libxkbcommon
libxkbcommon,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "wayfreeze";
version = "0-unstable-2024-05-23";
version = "0-unstable-2024-09-20";
src = fetchFromGitHub {
owner = "Jappie3";
repo = "wayfreeze";
rev = "069dea0b832bd5b7a7872a57bd53f51cd377f206";
hash = "sha256-3btFzZbkHT6kBBA3M7OwFsD710VpMiHSXIpHmvCD/es=";
rev = "dcbe2690ce41a286ef1eed54747bac47cee6dc2c";
hash = "sha256-XlZSVN/kTSA5X/kTpD/Hr5YBXdfh8gJPq5Da4tL0Gpk=";
};
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
cargoHash = "sha256-3OjZhWAgfmMZ0OGeRawk3KZpPqz1QCVkwsyGM+E7o88=";
buildInputs = [
@ -26,7 +29,10 @@ rustPlatform.buildRustPackage {
description = "Tool to freeze the screen of a Wayland compositor";
homepage = "https://github.com/Jappie3/wayfreeze";
license = licenses.agpl3Only;
maintainers = with lib.maintainers; [ purrpurrn ];
maintainers = with lib.maintainers; [
purrpurrn
jappie3 /* upstream dev */
];
mainProgram = "wayfreeze";
platforms = platforms.linux;
};

View File

@ -46,11 +46,12 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/sxyazi/yazi";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
xyenon
matthiasbeyer
linsui
eljamm
khaneliman
linsui
matthiasbeyer
uncenter
xyenon
];
mainProgram = "yazi";
};

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