Merge master into staging-next
This commit is contained in:
@@ -96,4 +96,5 @@ swift.section.md
|
||||
tcl.section.md
|
||||
texlive.section.md
|
||||
vim.section.md
|
||||
neovim.section.md
|
||||
```
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
```
|
||||
@@ -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
@@ -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": [
|
||||
|
||||
@@ -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''`.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
{
|
||||
|
||||
@@ -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/,,
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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}");
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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/
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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; };
|
||||
|
||||
@@ -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/";
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 =
|
||||
{
|
||||
|
||||
@@ -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))
|
||||
@@ -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;
|
||||
|
||||
@@ -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
Executable
+24
@@ -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
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user