Merge master into staging-next

This commit is contained in:
github-actions[bot]
2025-01-13 00:15:45 +00:00
committed by GitHub
58 changed files with 1521 additions and 853 deletions
+1
View File
@@ -96,4 +96,5 @@ swift.section.md
tcl.section.md
texlive.section.md
vim.section.md
neovim.section.md
```
+107
View File
@@ -0,0 +1,107 @@
# Neovim {#neovim}
Install `neovim-unwrapped` to get a barebone neovim to configure imperatively.
Neovim can be configured to include your favorite plugins and additional libraries by installing `neovim` instead.
See the next section for more details.
## Custom configuration {#neovim-custom-configuration}
For Neovim the `configure` argument can be overridden to achieve the same:
```nix
neovim.override {
configure = {
customRC = ''
# here your custom configuration goes!
'';
};
}
```
If you want to use `neovim-qt` as a graphical editor, you can configure it by overriding Neovim in an overlay
or passing it an overridden Neovim:
```nix
neovim-qt.override {
neovim = neovim.override {
configure = {
customRC = ''
# your custom configuration
'';
};
};
}
```
### Specificities for some plugins {#neovim-plugin-specificities}
#### Treesitter {#neovim-plugin-treesitter}
By default `nvim-treesitter` encourages you to download, compile and install
the required Treesitter grammars at run time with `:TSInstall`. This works
poorly on NixOS. Instead, to install the `nvim-treesitter` plugins with a set
of precompiled grammars, you can use the `nvim-treesitter.withPlugins` function:
```nix
(pkgs.neovim.override {
configure = {
packages.myPlugins = with pkgs.vimPlugins; {
start = [
(nvim-treesitter.withPlugins (
plugins: with plugins; [
nix
python
]
))
];
};
};
})
```
To enable all grammars packaged in nixpkgs, use `pkgs.vimPlugins.nvim-treesitter.withAllGrammars`.
### Testing Neovim plugins {#testing-neovim-plugins}
#### neovimRequireCheck {#testing-neovim-plugins-neovim-require-check}
`neovimRequireCheck` is a simple test which checks if Neovim can requires lua modules without errors. This is often enough to catch missing dependencies.
It accepts a single string for a module, or a list of module strings to test.
- `nvimRequireCheck = MODULE;`
- `nvimRequireCheck = [ MODULE1 MODULE2 ];`
When `nvimRequireCheck` is not specified, we will search the plugin's directory for lua modules to attempt loading. This quick smoke test can catch obvious dependency errors that might be missed.
The check hook will fail the build if any modules cannot be loaded. This encourages inspecting the logs to identify potential issues.
To only check a specific module, add it manually to the plugin definition [overrides](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
```nix
gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
nvimRequireCheck = "gitsigns";
};
```
Some plugins will have lua modules that require a user configuration to function properly or can contain optional lua modules that we dont want to test requiring.
We can skip specific modules using `nvimSkipModule`. Similar to `nvimRequireCheck`, it accepts a single string or a list of strings.
- `nvimSkipModule = MODULE;`
- `nvimSkipModule = [ MODULE1 MODULE2 ];`
```nix
asyncrun-vim = super.asyncrun-vim.overrideAttrs {
nvimSkipModule = [
# vim plugin with optional toggleterm integration
"asyncrun.toggleterm"
"asyncrun.toggleterm2"
];
};
```
In rare cases, we might not want to actually test loading lua modules for a plugin. In those cases, we can disable `neovimRequireCheck` with `doCheck = false;`.
This can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
```nix
vim-test = super.vim-test.overrideAttrs {
# Vim plugin with a test lua file
doCheck = false;
};
```
+2 -100
View File
@@ -1,7 +1,6 @@
# Vim {#vim}
Both Neovim and Vim can be configured to include your favorite plugins
and additional libraries.
Vim can be configured to include your favorite plugins and additional libraries.
Loading can be deferred; see examples.
@@ -19,7 +18,7 @@ build-time features are configurable. It has nothing to do with user configurati
and both the `vim` and `vim-full` packages can be customized as explained in the next section.
:::
## Custom configuration {#custom-configuration}
## Custom configuration {#vim-custom-configuration}
Adding custom .vimrc lines can be done using the following code:
@@ -39,32 +38,6 @@ You can also omit `name` to customize Vim itself. See the
[definition of `vimUtils.makeCustomizable`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-utils.nix#L408)
for all supported options.
For Neovim the `configure` argument can be overridden to achieve the same:
```nix
neovim.override {
configure = {
customRC = ''
# here your custom configuration goes!
'';
};
}
```
If you want to use `neovim-qt` as a graphical editor, you can configure it by overriding Neovim in an overlay
or passing it an overridden Neovim:
```nix
neovim-qt.override {
neovim = neovim.override {
configure = {
customRC = ''
# your custom configuration
'';
};
};
}
```
## Managing plugins with Vim packages {#managing-plugins-with-vim-packages}
@@ -166,33 +139,6 @@ in
If your package requires building specific parts, use instead `pkgs.vimUtils.buildVimPlugin`.
### Specificities for some plugins {#vim-plugin-specificities}
#### Treesitter {#vim-plugin-treesitter}
By default `nvim-treesitter` encourages you to download, compile and install
the required Treesitter grammars at run time with `:TSInstall`. This works
poorly on NixOS. Instead, to install the `nvim-treesitter` plugins with a set
of precompiled grammars, you can use `nvim-treesitter.withPlugins` function:
```nix
(pkgs.neovim.override {
configure = {
packages.myPlugins = with pkgs.vimPlugins; {
start = [
(nvim-treesitter.withPlugins (
plugins: with plugins; [
nix
python
]
))
];
};
};
})
```
To enable all grammars packaged in nixpkgs, use `pkgs.vimPlugins.nvim-treesitter.withAllGrammars`.
## Managing plugins with vim-plug {#managing-plugins-with-vim-plug}
To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim
@@ -232,50 +178,6 @@ To add a new plugin, run `nix-shell -p vimPluginsUpdater --run 'vim-plugins-upda
Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `vimPluginsUpdater` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of the Language Server Protocol integration with Vim/Neovim.
### Testing Neovim plugins {#testing-neovim-plugins}
#### neovimRequireCheck {#testing-neovim-plugins-neovim-require-check}
`neovimRequireCheck` is a simple test which checks if Neovim can requires lua modules without errors. This is often enough to catch missing dependencies.
It accepts a single string for a module, or a list of module strings to test.
- `nvimRequireCheck = MODULE;`
- `nvimRequireCheck = [ MODULE1 MODULE2 ];`
When `nvimRequireCheck` is not specified, we will search the plugin's directory for lua modules to attempt loading. This quick smoke test can catch obvious dependency errors that might be missed.
The check hook will fail the build if any failures are detected to encourage inspecting the logs to identify potential issues.
If you would like to only check a specific module, this can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
```nix
gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
nvimRequireCheck = "gitsigns";
};
```
Some plugins will have lua modules that require a user configuration to function properly or can contain optional lua modules that we dont want to test requiring.
We can skip specific modules using `nvimSkipModule`. Similar to `nvimRequireCheck`, it accepts a single string or a list of strings.
- `nvimSkipModule = MODULE;`
- `nvimSkipModule = [ MODULE1 MODULE2 ];`
```nix
asyncrun-vim = super.asyncrun-vim.overrideAttrs {
nvimSkipModule = [
# vim plugin with optional toggleterm integration
"asyncrun.toggleterm"
"asyncrun.toggleterm2"
];
};
```
In rare cases, we might not want to actually test loading lua modules for a plugin. In those cases, we can disable `neovimRequireCheck` with `doCheck = false;`.
This can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
```nix
vim-test = super.vim-test.overrideAttrs {
# Vim plugin with a test lua file
doCheck = false;
};
```
### Plugin optional configuration {#vim-plugin-required-snippet}
+13 -4
View File
@@ -2,6 +2,12 @@
"chap-release-notes": [
"release-notes.html#chap-release-notes"
],
"neovim": [
"index.html#neovim"
],
"neovim-custom-configuration": [
"index.html#neovim-custom-configuration"
],
"nixpkgs-manual": [
"index.html#nixpkgs-manual"
],
@@ -3763,7 +3769,8 @@
"vim": [
"index.html#vim"
],
"custom-configuration": [
"vim-custom-configuration": [
"index.html#vim-custom-configuration",
"index.html#custom-configuration"
],
"managing-plugins-with-vim-packages": [
@@ -3772,10 +3779,12 @@
"what-if-your-favourite-vim-plugin-isnt-already-packaged": [
"index.html#what-if-your-favourite-vim-plugin-isnt-already-packaged"
],
"vim-plugin-specificities": [
"index.html#vim-plugin-specificities"
"neovim-plugin-specificities": [
"index.html#neovim-plugin-specificities",
"neovim-plugin-specificities#vim-plugin-specificities"
],
"vim-plugin-treesitter": [
"neovim-plugin-treesitter": [
"index.html#neovim-plugin-treesitter",
"index.html#vim-plugin-treesitter"
],
"managing-plugins-with-vim-plug": [
+7
View File
@@ -13862,6 +13862,13 @@
githubId = 1678126;
name = "Marco A L Barbosa";
};
malik = {
name = "Malik";
email = "abdelmalik.najhi@stud.hs-kempten.de";
github = "malikwirin";
githubId = 117918464;
keys = [ { fingerprint = "B5ED 595C 8C7E 133C 6B68 63C8 CFEF 1E35 0351 F72D"; } ];
};
malo = {
email = "mbourgon@gmail.com";
github = "malob";
@@ -49,6 +49,8 @@
- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable)
- [ytdl-sub](https://github.com/jmbannon/ytdl-sub), a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as [services.ytdl-sub](options.html#opt-services.ytdl-sub.instances).
- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
- [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
@@ -172,6 +174,8 @@
- `nodePackages.copy-webpack-plugin` has been removed, as it should be installed in projects that use it instead.
- `himalaya` has been updated from `v1.0.0-beta.4` to `v1.1.0`, which introduces breaking changes. Check out the [release notes](https://github.com/pimalaya/himalaya/releases) for details.
- `linuxPackages.nvidiaPackages.dc_520` has been removed since it is marked broken and there are better newer alternatives.
- `programs.less.lessopen` is now null by default. To restore the previous behaviour, set it to `''|${lib.getExe' pkgs.lesspipe "lesspipe.sh"} %s''`.
+1
View File
@@ -893,6 +893,7 @@
./services/misc/workout-tracker.nix
./services/misc/whisparr.nix
./services/misc/xmrig.nix
./services/misc/ytdl-sub.nix
./services/misc/zoneminder.nix
./services/misc/zookeeper.nix
./services/monitoring/alerta.nix
+33 -11
View File
@@ -61,17 +61,17 @@ let
# HTTP Connector
server.http.enabled=${lib.boolToString cfg.http.enable}
server.http.listen_address=${cfg.http.listenAddress}
server.http.advertised_address=${cfg.http.listenAddress}
server.http.advertised_address=${cfg.http.advertisedAddress}
# HTTPS Connector
server.https.enabled=${lib.boolToString cfg.https.enable}
server.https.listen_address=${cfg.https.listenAddress}
server.https.advertised_address=${cfg.https.listenAddress}
server.https.advertised_address=${cfg.https.advertisedAddress}
# BOLT Connector
server.bolt.enabled=${lib.boolToString cfg.bolt.enable}
server.bolt.listen_address=${cfg.bolt.listenAddress}
server.bolt.advertised_address=${cfg.bolt.listenAddress}
server.bolt.advertised_address=${cfg.bolt.advertisedAddress}
server.bolt.tls_level=${cfg.bolt.tlsLevel}
# SSL Policies
@@ -99,10 +99,8 @@ let
# Extra Configuration
${cfg.extraServerConfig}
'';
in
{
imports = [
(lib.mkRenamedOptionModule
[ "services" "neo4j" "host" ]
@@ -160,7 +158,6 @@ in
###### interface
options.services.neo4j = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
@@ -248,6 +245,16 @@ in
'';
};
advertisedAddress = lib.mkOption {
type = lib.types.str;
default = cfg.bolt.listenAddress;
defaultText = lib.literalExpression "config.${opt.bolt.listenAddress}";
description = ''
Neo4j advertised address for BOLT traffic. The advertised address is
expressed in the format `<ip-address>:<port-number>`.
'';
};
sslPolicy = lib.mkOption {
type = lib.types.str;
default = "legacy";
@@ -379,6 +386,16 @@ in
expressed in the format `<ip-address>:<port-number>`.
'';
};
advertisedAddress = lib.mkOption {
type = lib.types.str;
default = cfg.http.listenAddress;
defaultText = lib.literalExpression "config.${opt.http.listenAddress}";
description = ''
Neo4j advertised address for HTTP traffic. The advertised address is
expressed in the format `<ip-address>:<port-number>`.
'';
};
};
https = {
@@ -401,6 +418,16 @@ in
'';
};
advertisedAddress = lib.mkOption {
type = lib.types.str;
default = cfg.https.listenAddress;
defaultText = lib.literalExpression "config.${opt.https.listenAddress}";
description = ''
Neo4j advertised address for HTTPS traffic. The advertised address is
expressed in the format `<ip-address>:<port-number>`.
'';
};
sslPolicy = lib.mkOption {
type = lib.types.str;
default = "legacy";
@@ -440,7 +467,6 @@ in
}:
{
options = {
allowKeyGeneration = lib.mkOption {
type = lib.types.bool;
default = false;
@@ -590,13 +616,11 @@ in
default value.
'';
};
};
config.directoriesToCreate = lib.optionals (
certDirOpt.highestPrio >= 1500 && options.baseDirectory.highestPrio >= 1500
) (map (opt: opt.value) (lib.filter isDefaultPathOption (lib.attrValues options)));
}
)
);
@@ -610,7 +634,6 @@ in
for further details.
'';
};
};
###### implementation
@@ -630,7 +653,6 @@ in
lib.attrValues cfg.ssl.policies
);
in
lib.mkIf cfg.enable {
assertions = [
{
+155
View File
@@ -0,0 +1,155 @@
{
config,
lib,
pkgs,
utils,
...
}:
let
cfg = config.services.ytdl-sub;
settingsFormat = pkgs.formats.yaml { };
in
{
meta.maintainers = with lib.maintainers; [ defelo ];
options.services.ytdl-sub = {
package = lib.mkPackageOption pkgs "ytdl-sub" { };
user = lib.mkOption {
type = lib.types.str;
default = "ytdl-sub";
description = "User account under which ytdl-sub runs.";
};
group = lib.mkOption {
type = lib.types.str;
default = "ytdl-sub";
description = "Group under which ytdl-sub runs.";
};
instances = lib.mkOption {
default = { };
description = "Configuration for ytdl-sub instances.";
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
enable = lib.mkEnableOption "ytdl-sub instance";
schedule = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "How often to run ytdl-sub. See {manpage}`systemd.time(7)` for the format.";
default = null;
example = "0/6:0";
};
config = lib.mkOption {
type = settingsFormat.type;
description = "Configuration for ytdl-sub. See <https://ytdl-sub.readthedocs.io/en/latest/config_reference/config_yaml.html> for more information.";
default = { };
example = {
presets."YouTube Playlist" = {
download = "{subscription_value}";
output_options = {
output_directory = "YouTube";
file_name = "{channel}/{playlist_title}/{playlist_index_padded}_{title}.{ext}";
maintain_download_archive = true;
};
};
};
};
subscriptions = lib.mkOption {
type = settingsFormat.type;
description = "Subscriptions for ytdl-sub. See <https://ytdl-sub.readthedocs.io/en/latest/config_reference/subscription_yaml.html> for more information.";
default = { };
example = {
"YouTube Playlist" = {
"Some Playlist" = "https://www.youtube.com/playlist?list=...";
};
};
};
};
config = {
config.configuration.working_directory = "/run/ytdl-sub/${utils.escapeSystemdPath name}";
};
}
)
);
};
};
config = lib.mkIf (cfg.instances != { }) {
systemd.services =
let
mkService =
name: instance:
let
configFile = settingsFormat.generate "config.yaml" instance.config;
subscriptionsFile = settingsFormat.generate "subscriptions.yaml" instance.subscriptions;
in
lib.nameValuePair "ytdl-sub-${utils.escapeSystemdPath name}" {
inherit (instance) enable;
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
startAt = lib.optional (instance.schedule != null) instance.schedule;
serviceConfig = {
User = cfg.user;
Group = cfg.group;
RuntimeDirectory = "ytdl-sub/${utils.escapeSystemdPath name}";
StateDirectory = "ytdl-sub/${utils.escapeSystemdPath name}";
WorkingDirectory = "/var/lib/ytdl-sub/${utils.escapeSystemdPath name}";
ExecStart = "${lib.getExe cfg.package} --config ${configFile} sub ${subscriptionsFile}";
# Hardening
CapabilityBoundingSet = [ "" ];
DeviceAllow = [ "" ];
LockPersonality = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
};
};
in
lib.mapAttrs' mkService cfg.instances;
users.users = lib.mkIf (cfg.user == "ytdl-sub") {
ytdl-sub = {
isSystemUser = true;
group = cfg.group;
};
};
users.groups = lib.mkIf (cfg.group == "ytdl-sub") {
ytdl-sub = { };
};
};
}
@@ -3763,6 +3763,18 @@ final: prev:
meta.homepage = "https://github.com/earthly/earthly.vim/";
};
easy-dotnet-nvim = buildVimPlugin {
pname = "easy-dotnet.nvim";
version = "2025-01-11";
src = fetchFromGitHub {
owner = "GustavEikaas";
repo = "easy-dotnet.nvim";
rev = "b689ea29d112e91d33cdf11ba702dfc9adfb10de";
sha256 = "1vc4qr9h97rmhmhsfviihx8kv7c2d0kzvvfnq7qqpmfgw44xjq0x";
};
meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/";
};
echodoc-vim = buildVimPlugin {
pname = "echodoc.vim";
version = "2022-11-27";
@@ -72,8 +72,11 @@ vimUtils.buildVimPlugin {
inherit avante-nvim-lib;
};
doInstallCheck = true;
nvimRequireCheck = "avante";
nvimSkipModule = [
# Requires setup with corresponding provider
"avante.providers.azure"
"avante.providers.copilot"
];
meta = {
description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
@@ -16,7 +16,6 @@ let
tag = "v${version}";
hash = "sha256-MfHI4efAdaoCU8si6YFdznZmSTprthDq3YKuF91z7ss=";
};
libExt = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
blink-fuzzy-lib = rustPlatform.buildRustPackage {
inherit version src;
pname = "blink-fuzzy-lib";
@@ -35,10 +34,14 @@ in
vimUtils.buildVimPlugin {
pname = "blink.cmp";
inherit version src;
preInstall = ''
mkdir -p target/release
ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy.${libExt} target/release/libblink_cmp_fuzzy.${libExt}
'';
preInstall =
let
ext = stdenv.hostPlatform.extensions.sharedLibrary;
in
''
mkdir -p target/release
ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy${ext} target/release/libblink_cmp_fuzzy${ext}
'';
patches = [
(replaceVars ./force-version.patch { inherit (src) tag; })
@@ -61,6 +64,9 @@ vimUtils.buildVimPlugin {
redxtech
];
};
doInstallCheck = true;
nvimRequireCheck = "blink-cmp";
nvimSkipModule = [
# Module for reproducing issues
"repro"
];
}
@@ -51,9 +51,6 @@ vimUtils.buildVimPlugin {
cp ${codesnap-lib}/lib/libgenerator.${extension} $out/lua/generator.so
'';
doInstallCheck = true;
nvimRequireCheck = "codesnap";
passthru = {
updateScript = nix-update-script {
attrPath = "vimPlugins.codesnap-nvim.codesnap-lib";
@@ -54,9 +54,6 @@ vimUtils.buildVimPlugin {
runHook postInstall
'';
doInstallCheck = true;
nvimRequireCheck = "cord";
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
@@ -3,6 +3,7 @@
fetchFromGitHub,
rustPlatform,
vimUtils,
stdenv,
}:
let
version = "0.3.1-unstable-2023-07-06";
@@ -30,11 +31,18 @@ vimUtils.buildVimPlugin {
inherit src version;
pname = "moveline-nvim";
preInstall = ''
mkdir -p lua
ln -s ${moveline-lib}/lib/libmoveline.so lua/moveline.so
'';
preInstall =
# https://github.com/neovim/neovim/issues/21749
# Need to still copy generated library as `so` because neovim doesn't check for `dylib`
let
ext = stdenv.hostPlatform.extensions.sharedLibrary;
in
''
mkdir -p lua
ln -s ${moveline-lib}/lib/libmoveline${ext} lua/moveline.so
'';
# Plugin generates a non lua file output that needs to be manually required
nvimRequireCheck = "moveline";
meta = {
@@ -42,8 +50,5 @@ vimUtils.buildVimPlugin {
homepage = "https://github.com/willothy/moveline.nvim";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ redxtech ];
badPlatforms = [
lib.systems.inspect.patterns.isDarwin
];
};
}
@@ -42,8 +42,6 @@ vimUtils.buildVimPlugin {
ln -s ${spectre_oxi}/lib/libspectre_oxi.* $out/lua/spectre_oxi.so
'';
nvimRequireCheck = "spectre";
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
@@ -43,6 +43,11 @@ vimUtils.buildVimPlugin {
pname = "sg.nvim";
inherit version src;
checkInputs = with vimPlugins; [
telescope-nvim
nvim-cmp
];
dependencies = [ vimPlugins.plenary-nvim ];
postInstall = ''
@@ -50,6 +55,11 @@ vimUtils.buildVimPlugin {
ln -s ${sg-nvim-rust}/{bin,lib}/* $out/target/debug
'';
nvimSkipModule = [
# Dependent on active fuzzy search state
"sg.cody.fuzzy"
];
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
@@ -59,7 +69,6 @@ vimUtils.buildVimPlugin {
# needed for the update script
inherit sg-nvim-rust;
};
nvimRequireCheck = "sg";
meta = {
description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
@@ -57,8 +57,6 @@ vimUtils.buildVimPlugin {
propagatedBuildInputs = [ sniprun-bin ];
nvimRequireCheck = "sniprun";
passthru = {
updateScript = nix-update-script {
attrPath = "vimPlugins.sniprun.sniprun-bin";
@@ -157,5 +157,4 @@ in
license = licenses.asl20;
maintainers = with maintainers; [ figsoda ];
};
nvimRequireCheck = "nvim-treesitter";
}
@@ -1015,6 +1015,17 @@ in
nvimSkipModule = "dropbar.menu";
};
easy-dotnet-nvim = super.easy-dotnet-nvim.overrideAttrs {
dependencies = with self; [
plenary-nvim
telescope-nvim
];
checkInputs = with self; [
# Pickers, can use telescope or fzf-lua
fzf-lua
];
};
efmls-configs-nvim = super.efmls-configs-nvim.overrideAttrs {
dependencies = [ self.nvim-lspconfig ];
};
@@ -311,6 +311,7 @@ https://github.com/Mofiqul/dracula.nvim/,HEAD,
https://github.com/stevearc/dressing.nvim/,,
https://github.com/Bekaboo/dropbar.nvim/,HEAD,
https://github.com/earthly/earthly.vim/,HEAD,
https://github.com/GustavEikaas/easy-dotnet.nvim/,HEAD,
https://github.com/Shougo/echodoc.vim/,,
https://github.com/sainnhe/edge/,,
https://github.com/edgedb/edgedb-vim/,,
+17 -7
View File
@@ -7,6 +7,7 @@
SDL2_ttf,
copyDesktopItems,
expat,
fetchurl,
flac,
fontconfig,
glm,
@@ -18,7 +19,6 @@
libpulseaudio,
makeDesktopItem,
makeWrapper,
papirus-icon-theme,
pkg-config,
portaudio,
portmidi,
@@ -28,6 +28,7 @@
rapidjson,
sqlite,
utf8proc,
versionCheckHook,
which,
writeScript,
zlib,
@@ -156,7 +157,10 @@ stdenv.mkDerivation rec {
# to the final package after we figure out how they work
installPhase =
let
icon = "${papirus-icon-theme}/share/icons/Papirus/32x32/apps/mame.svg";
icon = fetchurl {
url = "https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-icon-theme/refs/heads/master/Papirus/32x32/apps/mame.svg";
hash = "sha256-s44Xl9UGizmddd/ugwABovM8w35P0lW9ByB69MIpG+E=";
};
in
''
runHook preInstall
@@ -188,6 +192,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = [ "-h" ];
passthru.updateScript = writeScript "mame-update-script" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts jq
@@ -198,7 +206,7 @@ stdenv.mkDerivation rec {
update-source-version mame "''${latest_version/mame0/0.}"
'';
meta = with lib; {
meta = {
homepage = "https://www.mamedev.org/";
description = "Multi-purpose emulation framework";
longDescription = ''
@@ -216,13 +224,15 @@ stdenv.mkDerivation rec {
focus.
'';
changelog = "https://github.com/mamedev/mame/releases/download/mame${srcVersion}/whatsnew_${srcVersion}.txt";
license = with licenses; [
license = with lib.licenses; [
bsd3
gpl2Plus
];
maintainers = with maintainers; [ thiagokokada ];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [
thiagokokada
DimitarNestorov
];
platforms = lib.platforms.unix;
mainProgram = "mame";
};
}
@@ -5,17 +5,19 @@
fetchFromGitHub,
buildPackages,
installShellFiles,
versionCheckHook,
makeWrapper,
enableCmount ? true,
fuse,
fuse3,
macfuse-stubs,
librclone,
nix-update-script,
}:
buildGoModule rec {
pname = "rclone";
version = "1.68.2";
version = "1.69.0";
outputs = [
"out"
@@ -26,10 +28,10 @@ buildGoModule rec {
owner = "rclone";
repo = "rclone";
tag = "v${version}";
hash = "sha256-3Al58jg+pYP46VbpIRbYBhMOG6m7OQaC0pxKawX12E8=";
hash = "sha256-cJNlRubL6RFaYIr0WrDONqgmz75vNIIDHMqBpf5So5Q=";
};
vendorHash = "sha256-PCj/f/oeLEAC/yFmR5dSyoLb45Z1fPLAASBaM251+Mc=";
vendorHash = "sha256-+tugs0vNuIVUQPU3a3mF3e+zfi1IQuqjDm52D85o8NE=";
subPackages = [ "." ];
@@ -83,8 +85,18 @@ buildGoModule rec {
--suffix PATH : "${lib.makeBinPath [ fuse3 ]}"
'';
passthru.tests = {
inherit librclone;
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
versionCheckProgramArg = [ "version" ];
passthru = {
tests = {
inherit librclone;
};
updateScript = nix-update-script { };
};
meta = with lib; {
+6 -6
View File
@@ -12,12 +12,12 @@
nix-update-script,
}:
let
version = "24.12.0";
version = "25.1.0";
src = fetchFromGitHub {
owner = "actualbudget";
repo = "actual-server";
tag = "v${version}";
hash = "sha256-qCATfpYjDlR2LaalkF0/b5tD4HDE4aNDrLvTC4g0ctY=";
hash = "sha256-zpZNITXd9QOJNRz8RbAuHH1hrrWPEGsrROGWJuYXqrc=";
};
yarn_20 = yarn.override { nodejs = nodejs_20; };
@@ -77,10 +77,10 @@ let
outputHashMode = "recursive";
outputHash =
{
x86_64-linux = "sha256-Rz+iKw4JDWtZOrCjs9sbHVw/bErAEY4TfoG+QfGKY94=";
aarch64-linux = "sha256-JGpRoIQrEI6crczHD62ZQO08GshBbzJC0dONYD69K/I=";
aarch64-darwin = "sha256-v2qzKmtqBdU6igyHat+NyL/XTzWgq/CKlNpai/iFHyQ=";
x86_64-darwin = "sha256-0ksWLlF/a58KY/8NgOQ5aPOLoXzqDqO3lhkmFvT17Bk=";
x86_64-linux = "sha256-N31aAAkznncKlygyeH5A3TrnOinXVz7CTQ8/G4QX6hY=";
aarch64-linux = "sha256-j7BFAKXi+TKIlmHBjbx6rwaKuAo6gnOlv6FV8rnlld0=";
aarch64-darwin = "sha256-YpUQYOLJHYxWuE6ToLFkXWEloAau9bLBvdbpNh8jRZQ=";
x86_64-darwin = "sha256-AioO82Y6mK0blSQRhhZZtWmduUcYwyVAewcXEVClJUg=";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
+2 -2
View File
@@ -22,14 +22,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "curtail";
version = "1.11.1";
version = "1.12.0";
format = "other";
src = fetchFromGitHub {
owner = "Huluti";
repo = "Curtail";
tag = version;
sha256 = "sha256-IpN1NMIT13icYnflkcZW+aSzw0Nau8UIOP38Kzji3bg=";
sha256 = "sha256-+TnGCLRJsdqdChqonHGuA4kUEiB9Mfc2aQttyt+uFnM=";
};
nativeBuildInputs = [
@@ -26,7 +26,7 @@ Signed-off-by: Tristan Ross <tristan.ross@midstall.com>
diff --git a/config/eu-common.am b/config/eu-common.am
new file mode 100644
index 000000000..9cc7f6969
index 00000000..9cc7f696
--- /dev/null
+++ b/config/eu-common.am
@@ -0,0 +1,148 @@
@@ -179,7 +179,7 @@ index 000000000..9cc7f6969
+print-%:
+ @echo $*=$($*)
diff --git a/config/eu.am b/config/eu.am
index e6c241f9d..3aa6048aa 100644
index 0b7dab5b..3aa6048a 100644
--- a/config/eu.am
+++ b/config/eu.am
@@ -1,4 +1,5 @@
@@ -194,7 +194,7 @@ index e6c241f9d..3aa6048aa 100644
##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
-AM_CPPFLAGS = -iquote . -I$(srcdir) -I$(top_srcdir)/lib -I..
-
-# Drop the 'u' flag that automake adds by default. It is incompatible
-# with deterministic archives.
@@ -310,12 +310,13 @@ index e6c241f9d..3aa6048aa 100644
-
-print-%:
- @echo $*=$($*)
+AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+include $(top_srcdir)/config/eu-common.am
diff --git a/src/Makefile.am b/src/Makefile.am
index 1d592d4de..5fcebc21d 100644
index 97a0c61a..5bb8c078 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -16,10 +16,12 @@
@@ -16,14 +16,15 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
@@ -323,9 +324,15 @@ index 1d592d4de..5fcebc21d 100644
+include $(top_srcdir)/config/eu-common.am
DEFS += $(YYDEBUG) -DDEBUGPRED=@DEBUGPRED@ \
-DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
-DEFAULT_INCLUDES =
-AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
- -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \
- -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm -I../debuginfod
+DEFAULT_INCLUDES = -I$(top_builddir)
+AM_CPPFLAGS = -I$(top_srcdir)/lib -I.. \
+ -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
-I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \
-I$(srcdir)/../libdwfl -I$(srcdir)/../libasm -I../debuginfod
+ -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \
+ -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm -I../debuginfod
AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw $(STACK_USAGE_NO_ERROR)
+41
View File
@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
buildGoModule rec {
pname = "hcdiag";
version = "0.5.5";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "hcdiag";
tag = "v${version}";
hash = "sha256-ZzSGBw7DRh/VSDtXoMgJpGWVmJUF2G2yZaae+fKklMc=";
};
vendorHash = "sha256-MJg6mqG1bn941LqIr0TQhcgWBCwUtfujdpqf4rgCrWM=";
nativeInstallCheckHooks = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Collects and bundles product and platform diagnostics supporting Consul, Nomad, TFE, and Vault";
homepage = "https://github.com/hashicorp/hcdiag";
changelog = "https://github.com/hashicorp/hcdiag/raw/v${version}/CHANGELOG.md";
license = lib.licenses.mpl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
mainProgram = "hcdiag";
};
}
+49 -32
View File
@@ -2,8 +2,9 @@
, rustPlatform
, fetchFromGitHub
, stdenv
, buildPackages
, pkg-config
, darwin
, apple-sdk
, installShellFiles
, installShellCompletions ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
, installManPages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
@@ -11,57 +12,73 @@
, gpgme
, buildNoDefaultFeatures ? false
, buildFeatures ? []
}:
, withNoDefaultFeatures ? buildNoDefaultFeatures
, withFeatures ? buildFeatures
}@args:
rustPlatform.buildRustPackage rec {
# Learn more about available cargo features at:
# - <https://pimalaya.org/himalaya/cli/latest/installation.html#cargo>
inherit buildNoDefaultFeatures buildFeatures;
let
version = "1.1.0";
hash = "sha256-gdrhzyhxRHZkALB3SG/aWOdA5iMYkel3Cjk5VBy3E4M=";
cargoHash = "sha256-MLPXcPA90YZY55jwC7XUZ6KVJf4Pn8w19iT5E2HqZV0=";
noDefaultFeatures = lib.warnIf
(args ? buildNoDefaultFeatures)
"buildNoDefaultFeatures is deprecated in favour of withNoDefaultFeatures and will be removed in the next release"
withNoDefaultFeatures;
features = lib.warnIf
(args ? buildFeatures)
"buildFeatures is deprecated in favour of withFeatures and will be removed in the next release"
withFeatures;
in
rustPlatform.buildRustPackage {
inherit version cargoHash;
pname = "himalaya";
version = "1.0.0-beta.4";
src = fetchFromGitHub {
owner = "soywod";
repo = pname;
inherit hash;
owner = "pimalaya";
repo = "himalaya";
rev = "v${version}";
hash = "sha256-NrWBg0sjaz/uLsNs8/T4MkUgHOUvAWRix1O5usKsw6o=";
};
cargoHash = "sha256-YS8IamapvmdrOPptQh2Ef9Yold0IK1XIeGs0kDIQ5b8=";
NIX_LDFLAGS = lib.optionals stdenv.hostPlatform.isDarwin [
"-F${darwin.apple_sdk.frameworks.AppKit}/Library/Frameworks"
"-framework"
"AppKit"
];
buildNoDefaultFeatures = noDefaultFeatures;
buildFeatures = features;
nativeBuildInputs = [ pkg-config ]
++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) pkg-config
++ lib.optional (installManPages || installShellCompletions) installShellFiles;
buildInputs = [ ]
++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa Security ])
++ lib.optional (builtins.elem "notmuch" buildFeatures) notmuch
++ lib.optional (builtins.elem "pgp-gpg" buildFeatures) gpgme;
++ lib.optional stdenv.hostPlatform.isDarwin apple-sdk
++ lib.optional (builtins.elem "notmuch" withFeatures) notmuch
++ lib.optional (builtins.elem "pgp-gpg" withFeatures) gpgme;
postInstall = lib.optionalString installManPages ''
mkdir -p $out/man
$out/bin/himalaya man $out/man
installManPage $out/man/*
# most of the tests are lib side
doCheck = false;
postInstall = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
mkdir -p $out/share/{applications,completions,man}
cp assets/himalaya.desktop "$out"/share/applications/
${emulator} "$out"/bin/himalaya man "$out"/share/man
${emulator} "$out"/bin/himalaya completion bash > "$out"/share/completions/himalaya.bash
${emulator} "$out"/bin/himalaya completion elvish > "$out"/share/completions/himalaya.elvish
${emulator} "$out"/bin/himalaya completion fish > "$out"/share/completions/himalaya.fish
${emulator} "$out"/bin/himalaya completion powershell > "$out"/share/completions/himalaya.powershell
${emulator} "$out"/bin/himalaya completion zsh > "$out"/share/completions/himalaya.zsh
'' + lib.optionalString installManPages ''
installManPage "$out"/share/man/*
'' + lib.optionalString installShellCompletions ''
installShellCompletion --cmd himalaya \
--bash <($out/bin/himalaya completion bash) \
--fish <($out/bin/himalaya completion fish) \
--zsh <($out/bin/himalaya completion zsh)
installShellCompletion "$out"/share/completions/himalaya.{bash,fish,zsh}
'';
meta = with lib; {
description = "CLI to manage emails";
mainProgram = "himalaya";
homepage = "https://pimalaya.org/himalaya/cli/latest/";
changelog = "https://github.com/soywod/himalaya/blob/v${version}/CHANGELOG.md";
homepage = "https://github.com/pimalaya/himalaya";
changelog = "https://github.com/pimalaya/himalaya/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ soywod toastal yanganto ];
maintainers = with maintainers; [ soywod yanganto ];
};
}
+2 -2
View File
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "ipmiutil";
version = "3.2.0";
version = "3.2.1";
src = fetchurl {
url = "mirror://sourceforge/project/ipmiutil/ipmiutil-${version}.tar.gz";
sha256 = "0xhanz27qnd92qvmjyb72314pf06a113nnwnirnsxrhy7inxnb9y";
sha256 = "sha256-BIEbLmV/+YzTHkS5GnAMnzPEyd2To2yPyYfeH0fCQCQ=";
};
buildInputs = [ openssl ];
+3 -3
View File
@@ -49,7 +49,7 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "ipxe";
version = "1.21.1-unstable-2024-12-18";
version = "1.21.1-unstable-2025-01-10";
nativeBuildInputs = [
gnu-efi
@@ -67,8 +67,8 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "ipxe";
repo = "ipxe";
rev = "83ba34076ad4ca79be81a71f25303b340c60e7b8";
hash = "sha256-nzAU9ZaUa+D6tBv2mq8mXRGCY7dDeSURPVUjJ1Jy7Vg=";
rev = "d88eb0a1935942cdeccd3efee38f9765d2f1c235";
hash = "sha256-R6ytWBqs0ntOtlc8K4C3gXtDRBa1hf7kpWTRZz9/h4s=";
};
# Calling syslinux on a FAT image isn't going to work on Aarch64.
+24 -2
View File
@@ -11,8 +11,8 @@ stdenv.mkDerivation {
inherit meta pname version;
src = fetchurl {
url = "https://releases.lmstudio.ai/darwin/arm64/${version}/${rev}/LM-Studio-${version}-arm64.dmg";
hash = "sha256-XPaXIWd/Xl3i5dS+5WY9OEIB9PNWe5y9C1MwoZMDht0=";
url = "https://installers.lmstudio.ai/darwin/arm64/${version}-${rev}/LM-Studio-${version}-${rev}-arm64.dmg";
hash = "sha256-x4IRT1PjBz9eafmwNRyLVq+4/Rkptz6RVWDFdRrGnGY=";
};
nativeBuildInputs = [ undmg ];
@@ -25,4 +25,26 @@ stdenv.mkDerivation {
cp -r *.app $out/Applications
runHook postInstall
'';
# LM Studio ships Scripts inside the App Bundle, which may be messed up by standard fixups
dontFixup = true;
# undmg doesn't support APFS and 7zz does break the xattr. Took that approach from https://github.com/NixOS/nixpkgs/blob/a3c6ed7ad2649c1a55ffd94f7747e3176053b833/pkgs/by-name/in/insomnia/package.nix#L52
unpackCmd = ''
echo "Creating temp directory"
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
function finish {
echo "Ejecting temp directory"
/usr/bin/hdiutil detach $mnt -force
rm -rf $mnt
}
# Detach volume when receiving SIG "0"
trap finish EXIT
# Mount DMG file
echo "Mounting DMG file into \"$mnt\""
/usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
# Copy content to local dir for later use
echo 'Copying extracted content into "sourceRoot"'
cp -a $mnt/LM\ Studio.app $PWD/
'';
}
+2 -2
View File
@@ -8,8 +8,8 @@
}:
let
src = fetchurl {
url = "https://releases.lmstudio.ai/linux/x86/${version}/${rev}/LM_Studio-${version}.AppImage";
hash = "sha256-ylUS6WrGavNW1WbroBnCLeeMBeBX41ontwKeQLug6/s=";
url = "https://installers.lmstudio.ai/linux/x64/${version}-${rev}/LM-Studio-${version}-${rev}-x64.AppImage";
hash = "sha256-laROBUr1HLoaQT6rYhhhulR1KZuKczNomKbrXXkDANY=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
+2 -2
View File
@@ -6,8 +6,8 @@
}:
let
pname = "lmstudio";
version = "0.3.5";
rev = "2";
version = "0.3.6";
rev = "8";
meta = {
description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
homepage = "https://lmstudio.ai/";
+54
View File
@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "maskprocessor";
version = "0.73";
src = fetchFromGitHub {
owner = "hashcat";
repo = "maskprocessor";
tag = "v${finalAttrs.version}";
hash = "sha256-LVtMz5y0PbKKuc92W5xW0C84avigR7vS1XL/aXkUYe8=";
};
# upstream Makefile is terrible, this simplifies everything.
buildPhase = ''
runHook preBuild
$CC -o maskprocessor src/mp.c -W -Wall -std=c99 -O2 -s -DLINUX
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm544 -t $out/bin maskprocessor
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/hashcat/maskprocessor";
description = "High-Performance word generator with a per-position configureable charset";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
changelog = "https://github.com/hashcat/maskprocessor/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [ ethancedwards8 ];
mainProgram = "maskprocessor";
};
})
+49
View File
@@ -0,0 +1,49 @@
{
lib,
python3,
fetchFromGitHub,
cargo,
rustPlatform,
rustc,
versionCheckHook,
nix-update-script,
}:
python3.pkgs.buildPythonApplication rec {
pname = "migrate-to-uv";
version = "0.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "mkniewallner";
repo = "migrate-to-uv";
tag = version;
hash = "sha256-LA2tzTD3e6IPmeYHWKFD+PIsl6hsvfpYDKhN9upttHI=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src pname version;
hash = "sha256-aiUCLRHCntJKZGCNdyfFCyRdIP+9Fr8yVzaDVct9Dv8=";
};
build-system = [
cargo
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
rustc
];
nativeCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Migrate a project from Poetry/Pipenv/pip-tools/pip to uv package manager";
homepage = "https://mkniewallner.github.io/migrate-to-uv/";
changelog = "https://github.com/mkniewallner/migrate-to-uv/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ malik ];
mainProgram = "migrate-to-uv";
};
}
+31 -22
View File
@@ -19,7 +19,9 @@
cudaPackages,
darwin,
autoAddDriverRunpath,
versionCheckHook,
# passthru
nixosTests,
testers,
ollama,
@@ -41,13 +43,13 @@ assert builtins.elem acceleration [
let
pname = "ollama";
# don't forget to invalidate all hashes each update
version = "0.5.1";
version = "0.5.4";
src = fetchFromGitHub {
owner = "ollama";
repo = "ollama";
rev = "v${version}";
hash = "sha256-llsK/rMK1jf2uneqgon9gqtZcbC9PuCDxoYfC7Ta6PY=";
tag = "v${version}";
hash = "sha256-JyP7A1+u9Vs6ynOKDwun1qLBsjN+CVHIv39Hh2TYa2U=";
fetchSubmodules = true;
};
@@ -169,14 +171,10 @@ goBuild {
++ lib.optionals enableCuda cudaLibs
++ lib.optionals stdenv.hostPlatform.isDarwin metalFrameworks;
patches = [
# ollama's build script is unable to find hipcc
./rocm.patch
];
# replace inaccurate version number with actual release version
postPatch = ''
# replace inaccurate version number with actual release version
substituteInPlace version/version.go --replace-fail 0.0.0 '${version}'
substituteInPlace version/version.go \
--replace-fail 0.0.0 '${version}'
'';
overrideModAttrs = (
@@ -186,25 +184,28 @@ goBuild {
}
);
preBuild = ''
preBuild =
let
dist_cmd =
if cudaRequested then
"dist_cuda_v${cudaMajorVersion}"
else if rocmRequested then
"dist_rocm"
else
"dist";
in
# build llama.cpp libraries for ollama
make -j $NIX_BUILD_CORES
'';
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
# copy libggml_*.so and runners into lib
# https://github.com/ollama/ollama/blob/v0.4.4/llama/make/gpu.make#L90
mkdir -p $out/lib
cp -r dist/*/lib/* $out/lib/
'';
''
make ${dist_cmd} -j $NIX_BUILD_CORES
'';
postFixup =
# the app doesn't appear functional at the moment, so hide it
''
# the app doesn't appear functional at the moment, so hide it
mv "$out/bin/app" "$out/bin/.ollama-app"
''
# expose runtime libraries necessary to use the gpu
+ lib.optionalString (enableRocm || enableCuda) ''
# expose runtime libraries necessary to use the gpu
wrapProgram "$out/bin/ollama" ${wrapperArgs}
'';
@@ -215,6 +216,14 @@ goBuild {
"-X=github.com/ollama/ollama/server.mode=release"
];
__darwinAllowLocalNetworking = true;
nativeInstallCheck = [
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
tests =
{
-13
View File
@@ -1,13 +0,0 @@
diff --git a/llama/make/Makefile.rocm b/llama/make/Makefile.rocm
index 4ab176b4..cd8be223 100644
--- a/llama/make/Makefile.rocm
+++ b/llama/make/Makefile.rocm
@@ -15,7 +15,7 @@ ifeq ($(OS),windows)
GPU_COMPILER:=$(GPU_COMPILER_WIN)
else ifeq ($(OS),linux)
GPU_LIB_DIR_LINUX := $(HIP_PATH)/lib
- GPU_COMPILER_LINUX := $(shell X=$$(which hipcc 2>/dev/null) && echo $$X)
+ GPU_COMPILER_LINUX := $(HIP_PATH)/bin/hipcc
GPU_COMPILER:=$(GPU_COMPILER_LINUX)
ROCM_TRANSITIVE_LIBS_INITIAL = $(sort $(shell ldd $(GPU_LIBS) | grep "=>" | cut -f2 -d= | cut -f2 -d' ' | grep -e rocm -e amdgpu -e libtinfo -e libnuma -e libelf))
GPU_TRANSITIVE_LIBS = $(sort $(shell readlink -f $(ROCM_TRANSITIVE_LIBS_INITIAL)) $(ROCM_TRANSITIVE_LIBS_INITIAL))
+2 -2
View File
@@ -9,13 +9,13 @@
buildGoModule rec {
pname = "openlinkhub";
version = "0.4.4";
version = "0.4.5";
src = fetchFromGitHub {
owner = "jurkovic-nikola";
repo = "OpenLinkHub";
tag = version;
hash = "sha256-MpG2RJdzDGaoXfN8YdxqXttpsjAEslN5xGdkWyDWX/c=";
hash = "sha256-67dnZr83QCAy7fWrrbdSV3Yh8ProewZsL6Gv8Bnc3f4=";
};
proxyVendor = true;
+10 -64
View File
@@ -4,48 +4,20 @@
fetchFromGitHub,
flutter324,
mpv,
libass,
ffmpeg,
libplacebo,
libunwind,
shaderc,
vulkan-loader,
lcms,
libdovi,
libdvdnav,
libdvdread,
mujs,
libbluray,
lua,
rubberband,
libuchardet,
zimg,
alsa-lib,
openal,
pipewire,
libpulseaudio,
libcaca,
libdrm,
libgbm,
libXScrnSaver,
nv-codec-headers-11,
libXpresent,
libva,
libvdpau,
pkg-config,
makeDesktopItem,
wrapGAppsHook3,
copyDesktopItems,
}:
flutter324.buildFlutterApplication rec {
pname = "pilipalax";
version = "1.0.22-beta.12+174";
version = "1.1.0-beta.5";
src = fetchFromGitHub {
owner = "orz12";
repo = "PiliPalaX";
tag = version;
hash = "sha256-Qjqyg9y5R70hODGfVClS505dJwexL0BbUm6lXSHzhJs=";
tag = "${version}+180";
hash = "sha256-bKs0EZjJCJvtVOZYl3GqXPE2MxX7DRjMwtmFUcNgrOQ=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
@@ -61,48 +33,20 @@ flutter324.buildFlutterApplication rec {
];
nativeBuildInputs = [
pkg-config
autoPatchelfHook
wrapGAppsHook3
copyDesktopItems
];
buildInputs = [
mpv
libass
ffmpeg
libplacebo
libunwind
shaderc
vulkan-loader
lcms
libdovi
libdvdnav
libdvdread
mujs
libbluray
lua
rubberband
libuchardet
zimg
alsa-lib
openal
pipewire
libpulseaudio
libcaca
libdrm
libgbm
libXScrnSaver
libXpresent
nv-codec-headers-11
libva
libvdpau
];
gitHashes = {
ns_danmaku = "sha256-OHlKscybKSLS1Jd1S99rCjHMZfuJXjkQB8U2Tx5iWeA=";
auto_orientation = "sha256-0QOEW8+0PpBIELmzilZ8+z7ozNRxKgI0BzuBS8c1Fng=";
mime = "sha256-tqFOH85YTyxtp0LbknScx66CvN4SwYKU6YxYQMNeVs4=";
canvas_danmaku = "sha256-HjTGFdbPeAGuGdgoTbW9q/soYey+DkPKdZrSKloQ6jA=";
fl_pip = "sha256-vBIxU/FjcGPBpnHP/wZMEI8VX71RWuUi9LQJ89dBnvg=";
flutter_floating = "sha256-V+RhmCD/Vb/G2Zr8FPgwSzzYlAcJcbqy0sYXyhXRwP8=";
};
postInstall = ''
@@ -110,9 +54,11 @@ flutter324.buildFlutterApplication rec {
'';
extraWrapProgramArgs = ''
--prefix LD_LIBRARY_PATH : "$out/app/${pname}/lib"
--prefix LD_LIBRARY_PATH : $out/app/pilipalax/lib
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Third-party BiliBili client developed with Flutter";
homepage = "https://github.com/orz12/PiliPalaX";
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl jq yq nix bash coreutils common-updater-scripts
set -eou pipefail
ROOT="$(dirname "$(readlink -f "$0")")"
latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/orz12/PiliPalaX/releases/latest | jq --raw-output .tag_name)
latestVersion=$(echo "$latestTag" | awk -F'+' '{print $1}')
RunNumber=$(echo "$latestTag" | grep -o '[^+]*$')
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; pilipalax.version or (lib.getVersion pilipalax)" | tr -d '"')
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "package is up-to-date: $currentVersion"
exit 0
fi
sed -i "s/\(tag = \"\${version}+\)[0-9]\+/\1${RunNumber}/" "$ROOT/package.nix"
hash=$(nix hash convert --hash-algo sha256 --to sri $(nix-prefetch-url --unpack "https://github.com/orz12/PiliPalaX/archive/refs/tags/${latestTag}.tar.gz"))
update-source-version pilipalax $latestVersion $hash
curl https://raw.githubusercontent.com/orz12/PiliPalaX/${latestTag}/pubspec.lock | yq . >$ROOT/pubspec.lock.json
+81
View File
@@ -0,0 +1,81 @@
{
lib,
stdenvNoCC,
fetchurl,
unzip,
writeShellApplication,
curl,
cacert,
gnugrep,
common-updater-scripts,
versionCheckHook,
writeShellScript,
xcbuild,
coreutils,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rapidapi";
version = "4.2.8-4002008002";
src = fetchurl {
url = "https://cdn-builds.paw.cloud/paw/RapidAPI-${finalAttrs.version}.zip";
hash = "sha256-ApBOYMOjpQJvUe+JsEAnyK7xpIZNt6qkX/2KUIT6S8g=";
};
dontPatch = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
dontUnpack = true;
nativeBuildInputs = [ unzip ];
sourceRoot = "RapidAPI.app";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
unzip -d $out/Applications $src
runHook postInstall
'';
passthru.updateScript = lib.getExe (writeShellApplication {
name = "rapidapi-update-script";
runtimeInputs = [
curl
cacert
gnugrep
common-updater-scripts
];
text = ''
url="https://paw.cloud/download"
version=$(curl -Ls -o /dev/null -w "%{url_effective}" "$url" | grep -oP '\d+\.\d+\.\d+-\d+')
update-source-version rapidapi "$version"
'';
});
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = writeShellScript "version-check" ''
marketing_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1" | ${coreutils}/bin/tr -d '"')
build_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleVersion" "$1")
echo $marketing_version-$build_version
'';
versionCheckProgramArg = [ "${placeholder "out"}/Applications/RapidAPI.app/Contents/Info.plist" ];
doInstallCheck = true;
meta = {
description = "Full-featured HTTP client that lets you test and describe the APIs you build or consume";
homepage = "https://paw.cloud";
changelog = "https://paw.cloud/updates/${lib.head (lib.splitString "-" finalAttrs.version)}";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ DimitarNestorov ];
platforms = [
"aarch64-darwin"
"x86_64-darwin"
];
};
})
+12 -8
View File
@@ -3,15 +3,19 @@
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
let
version = "1.1.7.1";
tag = "v${version}";
in
buildGoModule {
pname = "superfile";
version = "1.1.7";
inherit version;
src = fetchFromGitHub {
owner = "yorukot";
repo = "superfile";
rev = "v${version}";
hash = "sha256-p5rTwGgiVdZoUWg6PYcmDlfED4/Z6+3lR4VBdWaaz9Q=";
inherit tag;
hash = "sha256-v7EfMgOsc6FSGIjYkF+44t0wl34WFmokOtzNOAOneBc=";
};
vendorHash = "sha256-MdOdQQZhiuOJtnj5n1uVbJV6KIs0aa1HLZpFmvxxsWY=";
@@ -21,12 +25,12 @@ buildGoModule rec {
"-w"
];
meta = with lib; {
meta = {
description = "Pretty fancy and modern terminal file manager";
homepage = "https://github.com/yorukot/superfile";
changelog = "https://github.com/yorukot/superfile/blob/${src.rev}/changelog.md";
license = licenses.mit;
maintainers = with maintainers; [
changelog = "https://github.com/yorukot/superfile/blob/${tag}/changelog.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
momeemt
redyf
];
+3 -3
View File
@@ -6,14 +6,14 @@
rustPlatform.buildRustPackage rec {
pname = "svdtools";
version = "0.3.21";
version = "0.4.0";
src = fetchCrate {
inherit version pname;
hash = "sha256-0ciEhtCJEerzyAcB/3xXnaStXBTi5SWcMplGlft9eeY=";
hash = "sha256-cZLLpFYjKIF4bhZJWXFUpTSKSUOWkLZ0DTQ0PpZnPIg=";
};
cargoHash = "sha256-+YBFjsPY3w+zjLtIB9GQXkuGy1ZHNT86clsQYiXeTJU=";
cargoHash = "sha256-Pt810QwfO+b6L5GYtzDAxIIuD/qv9inGMJAGjVIVUtM=";
meta = with lib; {
description = "Tools to handle vendor-supplied, often buggy SVD files";
+8 -10
View File
@@ -7,16 +7,14 @@
vala,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "tiramisu";
# FIXME: once a newer release in upstream is available
version = "2.0-unstable-2023-03-29";
version = "2.0.20240610";
src = fetchFromGitHub {
owner = "Sweets";
repo = "tiramisu";
# FIXME: use the current HEAD commit as upstream has no releases since 2021
rev = "5dddd83abd695bfa15640047a97a08ff0a8d9f9b";
tag = finalAttrs.version;
hash = "sha256-owYk/YFwJbqO6/dbGKPE8SnmmH4KvH+o6uWptqQtpfI=";
};
@@ -29,7 +27,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
meta = {
description = "Desktop notifications, the UNIX way";
longDescription = ''
tiramisu is a notification daemon based on dunst that outputs notifications
@@ -37,12 +35,12 @@ stdenv.mkDerivation rec {
prefer.
'';
homepage = "https://github.com/Sweets/tiramisu";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
wishfort36
moni
];
mainProgram = "tiramisu";
};
}
})
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "tootik";
version = "0.14.0";
version = "0.15.0";
src = fetchFromGitHub {
owner = "dimkr";
repo = "tootik";
tag = version;
hash = "sha256-9R/3rvFJTXvIfJF698yZ0wMmsN2T3I/Kj1nfOOZoOkI=";
hash = "sha256-Onl64ps8rfLVnZYQ2KPzS+mslgeNz2wpJuabwsqhXlM=";
};
vendorHash = "sha256-ADor2SEEPkWZVwpNEeb8ijUPAA6jZfD7QXJIIZ6BdD0=";
vendorHash = "sha256-GSi+sQz7kgp1YHEzH/Y7rOOEEhhvzd75cVhSow3URaU=";
nativeBuildInputs = [ openssl ];
+2 -2
View File
@@ -9,12 +9,12 @@
stdenv.mkDerivation rec {
pname = "unifi-controller";
version = "8.6.9";
version = "9.0.108";
# see https://community.ui.com/releases / https://www.ui.com/download/unifi
src = fetchurl {
url = "https://dl.ui.com/unifi/${version}/unifi_sysvinit_all.deb";
hash = "sha256-004ZJEoj23FyFEBznqrpPzQ9E6DYpD7gBxa3ewSunIo=";
hash = "sha256-p+t4W8mR+CtmSXZqxpP1U55iHhKz7sXcL3Pu+0peNrU=";
};
nativeBuildInputs = [ dpkg ];
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "usage";
version = "1.7.4";
version = "2.0.3";
src = fetchFromGitHub {
owner = "jdx";
repo = "usage";
rev = "v${version}";
hash = "sha256-+Wt/ZOwj9LHgt0EOFF554TGf2tZyuRoXAPpCebPZfNY=";
hash = "sha256-bS8wMtmD7UPctP+8yDm8KylLIPzPuk6dt9ilWQzFvY0=";
};
cargoHash = "sha256-w8GWvMjC6Plho+zw542Q00hU/KZMdyyoP/rGAg72h1s=";
cargoHash = "sha256-z/McKMlLvr/YBzXSCLFZk9PSIBnrweU7tIPjTwTeiuQ=";
postPatch = ''
substituteInPlace ./examples/mounted.sh \
+37
View File
@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
nix-update-script,
php,
}:
stdenvNoCC.mkDerivation rec {
pname = "wavelog";
version = "1.9.1";
src = fetchFromGitHub {
owner = "wavelog";
repo = pname;
tag = version;
hash = "sha256-BYCRqb27QWOo74w3O6tfZGEDF3UInsgshsIm9uxOm+8=";
};
installPhase = ''
runHook preInstall
cp -R . $out
runHook postInstall
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Webbased Amateur Radio Logging Software";
license = lib.licenses.mit;
homepage = "https://www.wavelog.org";
platforms = php.meta.platforms;
maintainers = with lib.maintainers; [ ethancedwards8 ];
};
}
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "wxsqlite3";
version = "4.10.0";
version = "4.10.1";
src = fetchFromGitHub {
owner = "utelle";
repo = "wxsqlite3";
rev = "v${version}";
hash = "sha256-1U8UF5FYKoigOLDMq1/nlchAdb8NeJhC6JluFDWNQ2M=";
hash = "sha256-pCmhDmJLR+2GZJEyF7zW4BtSz7mTJ/WZXQB+KXaqIkA=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -40,7 +40,7 @@
libxkbcommon,
luajit,
lz4,
libgbm,
mesa,
mint-x-icons,
openjpeg,
openssl,
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
libsndfile
libtiff
lz4
libgbm
mesa
openssl
systemd
udev
@@ -1,7 +1,6 @@
{
lib,
buildPythonPackage,
pythonOlder,
fetchFromGitHub,
chex,
jaxlib,
@@ -17,8 +16,6 @@ buildPythonPackage rec {
version = "0.1.5";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "google-deepmind";
repo = "distrax";
@@ -26,7 +23,7 @@ buildPythonPackage rec {
hash = "sha256-A1aCL/I89Blg9sNmIWQru4QJteUTN6+bhgrEJPmCrM0=";
};
buildInputs = [
dependencies = [
chex
jaxlib
numpy
@@ -42,6 +39,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "distrax" ];
disabledTests = [
# NotImplementedError: Primitive 'square' does not have a registered inverse.
"test_against_tfp_bijectors_square"
"test_log_dets_square__with_device"
"test_log_dets_square__without_device"
"test_log_dets_square__without_jit"
# AssertionError on numerical values
# Reported upstream in https://github.com/google-deepmind/distrax/issues/267
"test_method_with_input_unnormalized_probs__with_device"
@@ -90,10 +93,15 @@ buildPythonPackage rec {
"distrax/_src/utils/hmm_test.py"
];
meta = with lib; {
meta = {
description = "Probability distributions in JAX";
homepage = "https://github.com/deepmind/distrax";
license = licenses.asl20;
maintainers = with maintainers; [ onny ];
changelog = "https://github.com/google-deepmind/distrax/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ onny ];
badPlatforms = [
# SystemError: nanobind::detail::nb_func_error_except(): exception could not be translated!
lib.systems.inspect.patterns.isDarwin
];
};
}
@@ -1,45 +0,0 @@
{
lib,
buildPythonPackage,
fetchPypi,
pytestCheckHook,
docopt,
six,
wcwidth,
pygments,
}:
buildPythonPackage rec {
pname = "prompt-toolkit";
version = "1.0.18";
src = fetchPypi {
pname = "prompt_toolkit";
inherit version;
sha256 = "dd4fca02c8069497ad931a2d09914c6b0d1b50151ce876bc15bde4c747090126";
};
propagatedBuildInputs = [
docopt
six
wcwidth
pygments
];
nativeCheckInputs = [ pytestCheckHook ];
disabledTests = [ "test_pathcompleter_can_expanduser" ];
meta = with lib; {
description = "Python library for building powerful interactive command lines";
longDescription = ''
prompt_toolkit could be a replacement for readline, but it can be
much more than that. It is cross-platform, everything that you build
with it should run fine on both Unix and Windows systems. Also ships
with a nice interactive Python shell (called ptpython) built on top.
'';
homepage = "https://github.com/jonathanslenders/python-prompt-toolkit";
maintainers = [ ];
license = licenses.bsd3;
};
}
@@ -17,16 +17,16 @@
rustPlatform.buildRustPackage rec {
pname = "sqlx-cli";
version = "0.8.2";
version = "0.8.3";
src = fetchFromGitHub {
owner = "launchbadge";
repo = "sqlx";
rev = "v${version}";
hash = "sha256-hxqd0TrsKANCPgQf6JUP0p1BYhZdqfnWbtCQCBxF8Gs=";
hash = "sha256-kAZUconMYUF9gZbLSg7KW3fVb7pkTq/d/yQyVzscxRw=";
};
cargoHash = "sha256-jDwfFHC19m20ECAo5VbFI6zht4gnZMYqTKsbyoVJJZU=";
cargoHash = "sha256-HDiWT13tknEC+Z4nVe4ZDFMP3y5VtRXozRLd68T9BuE=";
buildNoDefaultFeatures = true;
buildFeatures = [
+3 -3
View File
@@ -18,13 +18,13 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "t-rec";
version = "0.7.6";
version = "0.7.7";
src = fetchFromGitHub {
owner = "sassman";
repo = "t-rec-rs";
rev = "v${version}";
sha256 = "sha256-o1fO0N65L6Z6W6aBNhS5JqDHIc1MRQx0yECGzVSCsbo=";
sha256 = "sha256-lOsagLiaGRvJKtBJAfDgmtZvPSF2EAdGrVXSPQCj7zs=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
wrapProgram "$out/bin/t-rec" --prefix PATH : "${binPath}"
'';
cargoHash = "sha256-3NExPlHNcoYVkpOzWCyd66chJpeDzQLRJUruSLAwGNw=";
cargoHash = "sha256-orgSmGtZwTqlWSpUjU17QRgDlbheo2DbS1YI7l4MhmM=";
meta = with lib; {
description = "Blazingly fast terminal recorder that generates animated gif images for the web written in rust";
@@ -93,6 +93,8 @@ in {
pgrouting = super.callPackage ./pgrouting.nix { };
pgx_ulid = super.callPackage ./pgx_ulid.nix { };
pg_partman = super.callPackage ./pg_partman.nix { };
pg_relusage = super.callPackage ./pg_relusage.nix { };
@@ -0,0 +1,48 @@
{
lib,
buildPgrxExtension,
fetchFromGitHub,
nix-update-script,
postgresql,
util-linux,
}:
buildPgrxExtension rec {
inherit postgresql;
pname = "pgx_ulid";
version = "0.2.0";
src = fetchFromGitHub {
owner = "pksunkara";
repo = "pgx_ulid";
tag = "v${version}";
hash = "sha256-VdLWwkUA0sVs5Z/Lyf5oTRhcHVzPmhgnYQhIM8MWJ0c=";
};
cargoHash = "sha256-Gn+SjzGaxnGKJYI9+WyE1+TzlF/2Ne43aKbXrSzfQKM=";
postInstall = ''
# Upstream renames the extension when packaging
# https://github.com/pksunkara/pgx_ulid/blob/084778c3e2af08d16ec5ec3ef4e8f345ba0daa33/.github/workflows/release.yml#L81
# Upgrade scripts should be added later, so we also rename them with wildcard
# https://github.com/pksunkara/pgx_ulid/issues/49
${util-linux}/bin/rename pgx_ulid ulid $out/share/postgresql/extension/pgx_ulid*
'';
# pgrx tests try to install the extension into postgresql nix store
doCheck = false;
passthru = {
updateScript = nix-update-script { };
};
meta = {
# Support for PostgreSQL 13 was removed in 0.2.0: https://github.com/pksunkara/pgx_ulid/blob/084778c3e2af08d16ec5ec3ef4e8f345ba0daa33/CHANGELOG.md?plain=1#L6
broken = lib.versionOlder postgresql.version "14";
description = "ULID Postgres extension written in Rust";
homepage = "https://github.com/pksunkara/pgx_ulid";
changelog = "https://github.com/pksunkara/pgx_ulid/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ myypo ];
};
}
+55 -13
View File
@@ -1,41 +1,83 @@
{
lib,
fetchFromGitHub,
python3Packages,
python3,
httpie,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
let
python = python3.override {
self = python;
packageOverrides = _: super: {
prompt-toolkit = super.prompt-toolkit.overridePythonAttrs (old: rec {
version = "1.0.18";
src = old.src.override {
inherit version;
hash = "sha256-3U/KAsgGlJetkxotCZFMaw0bUBUc6Ha8Fb3kx0cJASY=";
};
});
};
};
in
python.pkgs.buildPythonApplication rec {
pname = "http-prompt";
version = "2.1.0";
pyproject = true;
src = fetchFromGitHub {
rev = "v${version}";
tag = "v${version}";
repo = "http-prompt";
owner = "httpie";
sha256 = "sha256-e4GyuxCeXYNsnBXyjIJz1HqSrqTGan0N3wxUFS+Hvkw=";
hash = "sha256-e4GyuxCeXYNsnBXyjIJz1HqSrqTGan0N3wxUFS+Hvkw=";
};
propagatedBuildInputs = with python3Packages; [
build-system = [ python.pkgs.setuptools ];
dependencies = with python.pkgs; [
click
httpie
parsimonious
(python.pkgs.callPackage ../../../development/python-modules/prompt-toolkit/1.nix { })
prompt-toolkit
pygments
six
pyyaml
];
checkPhase = ''
$out/bin/${pname} --version | grep -q "${version}"
'';
pythonImportsCheck = [ "http_prompt" ];
meta = with lib; {
nativeCheckInputs = [
python.pkgs.mock
python.pkgs.pexpect
python.pkgs.pytest-cov-stub
python.pkgs.pytestCheckHook
versionCheckHook
];
disabledTests = [
# require network access
"test_get_and_tee"
"test_get_image"
"test_get_querystring"
"test_post_form"
"test_post_json"
"test_spec_from_http"
"test_spec_from_http_only"
# executable path is hardcoded
"test_help"
"test_interaction"
"test_version"
"test_vi_mode"
];
versionCheckProgramArg = [ "--version" ];
meta = {
description = "Interactive command-line HTTP client featuring autocomplete and syntax highlighting";
mainProgram = "http-prompt";
homepage = "https://github.com/eliangcs/http-prompt";
license = licenses.mit;
maintainers = with maintainers; [ matthiasbeyer ];
platforms = platforms.linux ++ platforms.darwin;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ matthiasbeyer ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}