Merge staging-next into staging
This commit is contained in:
@@ -589,6 +589,15 @@
|
||||
- nixos/modules/services/x11/desktop-managers/xfce.nix
|
||||
- nixos/tests/xfce.nix
|
||||
- pkgs/desktops/xfce/**/*
|
||||
- pkgs/by-name/ga/garcon/**/*
|
||||
- pkgs/by-name/li/libxfce4*/**/*
|
||||
- pkgs/by-name/th/thunar/**/*
|
||||
- pkgs/by-name/th/thunar-*/**/*
|
||||
- pkgs/by-name/tu/tumbler/**/*
|
||||
- pkgs/by-name/xf/xfce4-*/**/*
|
||||
- pkgs/by-name/xf/xfconf/**/*
|
||||
- pkgs/by-name/xf/xfdesktop/**/*
|
||||
- pkgs/by-name/xf/xfwm4/**/*
|
||||
|
||||
"6.topic: zig":
|
||||
- any:
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- `xfce.mkXfceDerivation` has been deprecated, please use `stdenv.mkDerivation`
|
||||
directly. You can migrate by adding `pkg-config`, `xfce4-dev-tools`, and
|
||||
`wrapGAppsHook3` to your `nativeBuildInputs` and `--enable-maintainer-mode`
|
||||
to your `configureFlags`.
|
||||
- `xfce.mkXfceDerivation` has been deprecated (i.e. conditioned behind `nixpkgs.config.allowAliases`)
|
||||
and will be removed in NixOS 26.11, please use `stdenv.mkDerivation` directly. You can migrate by
|
||||
adding `pkg-config`, `xfce4-dev-tools`, and `wrapGAppsHook3` to your `nativeBuildInputs` and
|
||||
`--enable-maintainer-mode` to your `configureFlags`.
|
||||
|
||||
- `corepack_latest` has been removed, as Corepack is no longer distributed with Node.js.
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
- `services.openssh.settings.AcceptEnv` now explicitly defined as an option that takes a list of strings, to facilitate option merging. Setting it to a string value is no longer supported.
|
||||
|
||||
- Xfce panel plugins have been moved to top level (e.g. if you previously added `pkgs.xfce.xfce4-whiskermenu-plugin` to `environment.systemPackages`, you will need to change it to `pkgs.xfce4-whiskermenu-plugin`).
|
||||
- All Xfce packages have been moved to top level (e.g. if you previously added `pkgs.xfce.xfce4-whiskermenu-plugin` to `environment.systemPackages`, you will need to change it to `pkgs.xfce4-whiskermenu-plugin`). The `xfce` scope will be removed in NixOS 26.11.
|
||||
|
||||
## Other Notable Changes {#sec-nixpkgs-release-26.05-notable-changes}
|
||||
|
||||
|
||||
@@ -10850,12 +10850,6 @@
|
||||
githubId = 2332070;
|
||||
name = "Serge Baltic";
|
||||
};
|
||||
hyphon81 = {
|
||||
email = "zero812n@gmail.com";
|
||||
github = "hyphon81";
|
||||
githubId = 12491746;
|
||||
name = "Masato Yonekawa";
|
||||
};
|
||||
hyshka = {
|
||||
name = "Bryan Hyshka";
|
||||
email = "bryan@hyshka.com";
|
||||
@@ -10905,10 +10899,11 @@
|
||||
keys = [ { fingerprint = "DF90 9D58 BEE4 E73A 1B8C 5AF3 35D3 9F9A 9A1B C8DA"; } ];
|
||||
};
|
||||
iamanaws = {
|
||||
email = "nixpkgs.yjzaw@slmail.me";
|
||||
github = "Iamanaws";
|
||||
email = "iamanaws@httpd.dev";
|
||||
github = "iamanaws";
|
||||
githubId = 78835633;
|
||||
name = "Angel J";
|
||||
keys = [ { fingerprint = "CF10 DCBB 9318 BE1D 6040 4222 272C 61AB 190D ED28"; } ];
|
||||
};
|
||||
iammrinal0 = {
|
||||
email = "nixpkgs@mrinalpurohit.in";
|
||||
@@ -20944,6 +20939,12 @@
|
||||
githubId = 66107;
|
||||
name = "Daniel Poelzleithner";
|
||||
};
|
||||
poeschel = {
|
||||
email = "poeschel@mailbox.org";
|
||||
github = "poeschel";
|
||||
githubId = 703724;
|
||||
name = "Lars Pöschel";
|
||||
};
|
||||
pogobanane = {
|
||||
email = "mail@peter-okelmann.de";
|
||||
github = "pogobanane";
|
||||
@@ -26129,6 +26130,7 @@
|
||||
};
|
||||
thegu5 = {
|
||||
name = "Gus";
|
||||
matrix = "@gus:gu5.org";
|
||||
github = "thegu5";
|
||||
githubId = 58223632;
|
||||
};
|
||||
|
||||
@@ -26,14 +26,14 @@ example settings:
|
||||
|
||||
Some Xfce programs are not installed automatically. To install them
|
||||
manually (system wide), put them into your
|
||||
[](#opt-environment.systemPackages) from `pkgs.xfce`.
|
||||
[](#opt-environment.systemPackages).
|
||||
|
||||
## Thunar {#sec-xfce-thunar-plugins}
|
||||
|
||||
Thunar (the Xfce file manager) is automatically enabled when Xfce is
|
||||
enabled. To enable Thunar without enabling Xfce, use the configuration
|
||||
option [](#opt-programs.thunar.enable) instead of adding
|
||||
`pkgs.xfce.thunar` to [](#opt-environment.systemPackages).
|
||||
`pkgs.thunar` to [](#opt-environment.systemPackages).
|
||||
|
||||
If you'd like to add extra plugins to Thunar, add them to
|
||||
[](#opt-programs.thunar.plugins). You shouldn't just add them to
|
||||
|
||||
@@ -62,6 +62,12 @@
|
||||
"module-boot-plymouth-tpm2-totp-quick-start-enable": [
|
||||
"index.html#module-boot-plymouth-tpm2-totp-quick-start-enable"
|
||||
],
|
||||
"module-services-tandoor-recipes-migrating-media-option-1": [
|
||||
"index.html#module-services-tandoor-recipes-migrating-media-option-1"
|
||||
],
|
||||
"module-services-tandoor-recipes-migrating-media-option-2": [
|
||||
"index.html#module-services-tandoor-recipes-migrating-media-option-2"
|
||||
],
|
||||
"sec-override-nixos-test": [
|
||||
"index.html#sec-override-nixos-test"
|
||||
],
|
||||
@@ -1122,6 +1128,12 @@
|
||||
"module-services-samba-configuring-file-share": [
|
||||
"index.html#module-services-samba-configuring-file-share"
|
||||
],
|
||||
"module-services-tandoor-recipes": [
|
||||
"index.html#module-services-tandoor-recipes"
|
||||
],
|
||||
"module-services-tandoor-recipes-migrating-media": [
|
||||
"index.html#module-services-tandoor-recipes-migrating-media"
|
||||
],
|
||||
"module-services-litestream": [
|
||||
"index.html#module-services-litestream"
|
||||
],
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
|
||||
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
|
||||
|
||||
- `services.tandoor-recipes` now uses a sub-directory for media files by default starting with `26.05`. Existing setups should move media files out of the data directory and adjust `services.tandoor-recipes.extraConfig.MEDIA_ROOT` accordingly. See [Migrating media files for pre 26.05 installations](#module-services-tandoor-recipes-migrating-media).
|
||||
|
||||
- `services.kubernetes.addons.dns.coredns` has been renamed to `services.kubernetes.addons.dns.corednsImage` and now expects a
|
||||
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with dockerTools.buildImage is used, instead
|
||||
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
|
||||
|
||||
@@ -709,6 +709,7 @@
|
||||
./services/hardware/usbmuxd.nix
|
||||
./services/hardware/usbrelayd.nix
|
||||
./services/hardware/vdr.nix
|
||||
./services/home-automation/deye-dummycloud.nix
|
||||
./services/home-automation/ebusd.nix
|
||||
./services/home-automation/esphome.nix
|
||||
./services/home-automation/evcc.nix
|
||||
|
||||
@@ -22,7 +22,7 @@ in
|
||||
default = [ ];
|
||||
type = lib.types.listOf lib.types.package;
|
||||
description = "List of thunar plugins to install.";
|
||||
example = lib.literalExpression "with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]";
|
||||
example = lib.literalExpression "with pkgs; [ thunar-archive-plugin thunar-volman ]";
|
||||
};
|
||||
|
||||
};
|
||||
@@ -30,7 +30,7 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable (
|
||||
let
|
||||
package = pkgs.xfce.thunar.override { thunarPlugins = cfg.plugins; };
|
||||
package = pkgs.thunar.override { thunarPlugins = cfg.plugins; };
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
@@ -37,11 +37,11 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs.xfce; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
tumbler
|
||||
];
|
||||
|
||||
services.dbus.packages = with pkgs.xfce; [
|
||||
services.dbus.packages = with pkgs; [
|
||||
tumbler
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.deye-dummycloud;
|
||||
in
|
||||
{
|
||||
options.services.deye-dummycloud = {
|
||||
enable = lib.mkEnableOption "the deye-dummycloud service";
|
||||
|
||||
mqttBrokerUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "mqtt://localhost";
|
||||
description = "MQTT broker URL";
|
||||
};
|
||||
mqttUsername = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = "MQTT username";
|
||||
};
|
||||
mqttPassword = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = "MQTT password";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.deye-dummycloud = {
|
||||
description = "Dummycloud server for DEYE microinverters and bridge to mqtt";
|
||||
wants = [ "network.target" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "${pkgs.deye-dummycloud}/lib/node_modules/deye-dummycloud";
|
||||
ExecStart = "${pkgs.nodejs}/bin/node app.js";
|
||||
Restart = "always";
|
||||
User = "deye-dummycloud";
|
||||
DynamicUser = true;
|
||||
ProtectSystem = "full";
|
||||
ProtectHome = true;
|
||||
Environment = [
|
||||
"MQTT_BROKER_URL=${cfg.mqttBrokerUrl}"
|
||||
"MQTT_USERNAME=${cfg.mqttUsername}"
|
||||
"MQTT_PASSWORD=${cfg.mqttPassword}"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.deye-dummycloud ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
# Tandoor Recipes {#module-services-tandoor-recipes}
|
||||
|
||||
## Dealing with `MEDIA_ROOT` for installations prior 26.05 {#module-services-tandoor-recipes-migrating-media}
|
||||
|
||||
See https://github.com/NixOS/nixpkgs/issues/338339 for some background.
|
||||
|
||||
### Option 1: Migrate media to new `MEDIA_ROOT` {#module-services-tandoor-recipes-migrating-media-option-1}
|
||||
|
||||
1. Stop the currently running service: `systemctl stop tandoor-recipes.service`
|
||||
2. Create a media folder. NixOS `26.05` creates the media path at `/var/lib/tandoor-recipes/media` by default, but you may choose any other path as well. `mkdir -p /var/lib/tandoor-recipes/media`
|
||||
3. Move existing media to the new path: `mv /var/lib/tandoor-recipes/{files,recipes} /var/lib/tandoor-recipes/media`
|
||||
4. Set `services.tandoor-recipes.extraConfig.MEDIA_ROOT = "/var/lib/tandoor-recipes/media";` in your NixOS configuration (not needed if `system.stateVersion >= 26.05`).
|
||||
5. Rebuild and switch!
|
||||
|
||||
These changes can be reverted by moving the files back into the state directory.
|
||||
|
||||
### Option 2: Keep existing directory (may be insecure) {#module-services-tandoor-recipes-migrating-media-option-2}
|
||||
|
||||
To keep the existing directory, set `services.tandoor-recipes.extraConfig.MEDIA_ROOT = "/var/lib/tandoor-recipes";`.
|
||||
@@ -7,13 +7,15 @@
|
||||
let
|
||||
cfg = config.services.tandoor-recipes;
|
||||
pkg = cfg.package;
|
||||
stateDir = "/var/lib/tandoor-recipes";
|
||||
useNewMediaRoot = lib.versionAtLeast config.system.stateVersion "26.05";
|
||||
|
||||
# SECRET_KEY through an env file
|
||||
env = {
|
||||
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
|
||||
DEBUG = "0";
|
||||
DEBUG_TOOLBAR = "0";
|
||||
MEDIA_ROOT = "/var/lib/tandoor-recipes";
|
||||
MEDIA_ROOT = "${stateDir}${lib.optionalString useNewMediaRoot "/media"}";
|
||||
}
|
||||
// lib.optionalAttrs (config.time.timeZone != null) {
|
||||
TZ = config.time.timeZone;
|
||||
@@ -26,12 +28,15 @@ let
|
||||
# UID is a read-only shell variable
|
||||
eval "$(${config.systemd.package}/bin/systemctl show -pUID,GID,MainPID tandoor-recipes.service | tr '[:upper:]' '[:lower:]')"
|
||||
exec ${pkgs.util-linux}/bin/nsenter \
|
||||
-t $mainpid -m -S $uid -G $gid --wdns=${env.MEDIA_ROOT} \
|
||||
-t $mainpid -m -S $uid -G $gid --wdns=${stateDir} \
|
||||
${pkg}/bin/tandoor-recipes "$@"
|
||||
'';
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ jvanbruegge ];
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ jvanbruegge ];
|
||||
doc = ./tandoor-recipes.md;
|
||||
};
|
||||
|
||||
options.services.tandoor-recipes = {
|
||||
enable = lib.mkOption {
|
||||
@@ -101,6 +106,10 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
warnings = lib.mkIf (!useNewMediaRoot && !(cfg.extraConfig ? MEDIA_ROOT)) [
|
||||
"`services.tandoor-recipes.extraConfig.MEDIA_ROOT` is unset. This is considered insecure for `system.stateVersion` < 26.05. See https://nixos.org/manual/nixos/unstable/#module-services-tandoor-recipes-migrating-media for migration instructions."
|
||||
];
|
||||
|
||||
users.users = lib.mkIf (cfg.user == "tandoor_recipes") {
|
||||
tandoor_recipes = {
|
||||
inherit (cfg) group;
|
||||
@@ -126,8 +135,11 @@ in
|
||||
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "tandoor-recipes";
|
||||
WorkingDirectory = env.MEDIA_ROOT;
|
||||
StateDirectory = [
|
||||
"tandoor-recipes"
|
||||
]
|
||||
++ lib.optional (env.MEDIA_ROOT == "/var/lib/tandoor-recipes/media") "tandoor-recipes/media";
|
||||
WorkingDirectory = stateDir;
|
||||
RuntimeDirectory = "tandoor-recipes";
|
||||
|
||||
BindReadOnlyPaths = [
|
||||
|
||||
@@ -571,16 +571,6 @@ in
|
||||
services.prometheus.exporters.postfix.group = mkDefault config.services.postfix.setgidGroup;
|
||||
})
|
||||
]
|
||||
++ [
|
||||
(mkIf config.services.prometheus.exporters.deluge.enable {
|
||||
system.activationScripts = {
|
||||
deluge-exported.text = ''
|
||||
mkdir -p /etc/deluge-exporter
|
||||
echo "DELUGE_PASSWORD=$(cat ${config.services.prometheus.exporters.deluge.delugePasswordFile})" > /etc/deluge-exporter/password
|
||||
'';
|
||||
};
|
||||
})
|
||||
]
|
||||
++ (mapAttrsToList (
|
||||
name: conf:
|
||||
mkExporterConf {
|
||||
|
||||
@@ -68,10 +68,20 @@ in
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
script = ''
|
||||
passwordfile="$CREDENTIALS_DIRECTORY/password-file"
|
||||
if [ -e "$passwordfile" ]; then
|
||||
export DELUGE_PASSWORD="$(cat "$passwordfile")"
|
||||
fi
|
||||
|
||||
exec ${pkgs.prometheus-deluge-exporter}/bin/deluge-exporter
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-deluge-exporter}/bin/deluge-exporter
|
||||
'';
|
||||
LoadCredential = lib.mkIf (config.services.prometheus.exporters.deluge.delugePasswordFile != null) [
|
||||
"password-file:${config.services.prometheus.exporters.deluge.delugePasswordFile}"
|
||||
];
|
||||
|
||||
Environment = [
|
||||
"LISTEN_PORT=${toString cfg.port}"
|
||||
"LISTEN_ADDRESS=${toString cfg.listenAddress}"
|
||||
@@ -86,9 +96,6 @@ in
|
||||
++ lib.optionals cfg.exportPerTorrentMetrics [
|
||||
"PER_TORRENT_METRICS=1"
|
||||
];
|
||||
EnvironmentFile = lib.optionalString (
|
||||
cfg.delugePasswordFile != null
|
||||
) "/etc/deluge-exporter/password";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -599,7 +599,7 @@ in
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.str;
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
p2p_disabled=1
|
||||
|
||||
@@ -101,7 +101,7 @@ in
|
||||
|
||||
environment.xfce.excludePackages = mkOption {
|
||||
default = [ ];
|
||||
example = literalExpression "[ pkgs.xfce.xfce4-volumed-pulse ]";
|
||||
example = literalExpression "[ pkgs.xfce4-volumed-pulse ]";
|
||||
type = types.listOf types.package;
|
||||
description = "Which packages XFCE should exclude from the default environment";
|
||||
};
|
||||
@@ -118,7 +118,7 @@ in
|
||||
adwaita-icon-theme
|
||||
hicolor-icon-theme
|
||||
tango-icon-theme
|
||||
xfce.xfce4-icon-theme
|
||||
xfce4-icon-theme
|
||||
|
||||
desktop-file-utils
|
||||
shared-mime-info # for update-mime-database
|
||||
@@ -133,37 +133,37 @@ in
|
||||
garcon
|
||||
libxfce4ui
|
||||
|
||||
xfce.mousepad
|
||||
xfce.parole
|
||||
xfce.ristretto
|
||||
xfce.xfce4-appfinder
|
||||
xfce.xfce4-notifyd
|
||||
xfce.xfce4-screenshooter
|
||||
xfce.xfce4-session
|
||||
xfce.xfce4-settings
|
||||
xfce.xfce4-taskmanager
|
||||
xfce.xfce4-terminal
|
||||
mousepad
|
||||
parole
|
||||
ristretto
|
||||
xfce4-appfinder
|
||||
xfce4-notifyd
|
||||
xfce4-screenshooter
|
||||
xfce4-session
|
||||
xfce4-settings
|
||||
xfce4-taskmanager
|
||||
xfce4-terminal
|
||||
]
|
||||
# TODO: NetworkManager doesn't belong here
|
||||
++ lib.optional config.networking.networkmanager.enable networkmanagerapplet
|
||||
++ lib.optional config.powerManagement.enable xfce.xfce4-power-manager
|
||||
++ lib.optional config.powerManagement.enable xfce4-power-manager
|
||||
++ lib.optionals (config.services.pulseaudio.enable || config.services.pipewire.pulse.enable) [
|
||||
pavucontrol
|
||||
# volume up/down keys support:
|
||||
# xfce4-pulseaudio-plugin includes all the functionalities of xfce4-volumed-pulse
|
||||
# but can only be used with xfce4-panel, so for no-desktop usage we still include
|
||||
# xfce4-volumed-pulse
|
||||
(if cfg.noDesktop then xfce.xfce4-volumed-pulse else xfce4-pulseaudio-plugin)
|
||||
(if cfg.noDesktop then xfce4-volumed-pulse else xfce4-pulseaudio-plugin)
|
||||
]
|
||||
++ lib.optionals cfg.enableXfwm [
|
||||
xfce.xfwm4
|
||||
xfce.xfwm4-themes
|
||||
xfwm4
|
||||
xfwm4-themes
|
||||
]
|
||||
++ lib.optionals (!cfg.noDesktop) [
|
||||
xfce4-panel
|
||||
xfce.xfdesktop
|
||||
xfdesktop
|
||||
]
|
||||
++ lib.optional cfg.enableScreensaver xfce.xfce4-screensaver
|
||||
++ lib.optional cfg.enableScreensaver xfce4-screensaver
|
||||
) excludePackages;
|
||||
|
||||
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-gtk2;
|
||||
@@ -188,7 +188,7 @@ in
|
||||
desktopNames = [ "XFCE" ];
|
||||
bgSupport = !cfg.noDesktop;
|
||||
start = ''
|
||||
${pkgs.runtimeShell} ${pkgs.xfce.xfce4-session.xinitrc} &
|
||||
${pkgs.runtimeShell} ${pkgs.xfce4-session.xinitrc} &
|
||||
waitPID=$!
|
||||
'';
|
||||
}
|
||||
@@ -238,12 +238,12 @@ in
|
||||
programs.zsh.vteIntegration = mkDefault true;
|
||||
|
||||
# Systemd services
|
||||
systemd.packages = utils.removePackagesByName (with pkgs.xfce; [
|
||||
systemd.packages = utils.removePackagesByName (with pkgs; [
|
||||
xfce4-notifyd
|
||||
]) excludePackages;
|
||||
|
||||
security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver;
|
||||
|
||||
xdg.portal.configPackages = mkDefault [ pkgs.xfce.xfce4-session ];
|
||||
xdg.portal.configPackages = mkDefault [ pkgs.xfce4-session ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1294,7 +1294,10 @@ in
|
||||
privatebin = runTest ./privatebin.nix;
|
||||
privoxy = runTest ./privoxy.nix;
|
||||
prometheus = import ./prometheus { inherit runTest; };
|
||||
prometheus-exporters = handleTest ./prometheus-exporters.nix { };
|
||||
prometheus-exporters = import ./prometheus-exporters.nix {
|
||||
inherit runTest;
|
||||
inherit (pkgs) lib;
|
||||
};
|
||||
prosody = runTest ./xmpp/prosody.nix;
|
||||
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix { };
|
||||
prowlarr = runTest ./prowlarr.nix;
|
||||
@@ -1552,6 +1555,7 @@ in
|
||||
szurubooru = handleTest ./szurubooru.nix { };
|
||||
taler = handleTest ./taler { };
|
||||
tandoor-recipes = runTest ./tandoor-recipes.nix;
|
||||
tandoor-recipes-media = runTest ./tandoor-recipes-media.nix;
|
||||
tandoor-recipes-script-name = runTest ./tandoor-recipes-script-name.nix;
|
||||
tang = runTest ./tang.nix;
|
||||
taskchampion-sync-server = runTest ./taskchampion-sync-server.nix;
|
||||
|
||||
+1815
-1695
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,91 @@
|
||||
{ ... }:
|
||||
{
|
||||
name = "tandoor-recipes-media";
|
||||
|
||||
nodes.machine = {
|
||||
services.tandoor-recipes = {
|
||||
enable = true;
|
||||
# This setting is not recommended, but it's an easy way serve the media
|
||||
# folder in this test.
|
||||
extraConfig = {
|
||||
GUNICORN_MEDIA = true;
|
||||
};
|
||||
};
|
||||
|
||||
specialisation.oldVersion.configuration = {
|
||||
system.stateVersion = "25.11";
|
||||
services.tandoor-recipes = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
GUNICORN_MEDIA = true;
|
||||
# Explicitly set insecure value (skips warning)
|
||||
MEDIA_ROOT = "/var/lib/tandoor-recipes";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
specialisation.oldVersionOverrideMedia.configuration = {
|
||||
system.stateVersion = "25.11";
|
||||
services.tandoor-recipes = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
GUNICORN_MEDIA = true;
|
||||
MEDIA_ROOT = "/var/lib/tandoor-recipes/media";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
specBase = "${nodes.machine.system.build.toplevel}/specialisation";
|
||||
oldVersion = "${specBase}/oldVersion";
|
||||
oldVersionOverrideMedia = "${specBase}/oldVersionOverrideMedia";
|
||||
in
|
||||
# python
|
||||
''
|
||||
def wait_for_tandoor():
|
||||
machine.wait_for_unit("tandoor-recipes.service")
|
||||
machine.wait_for_open_port(8080)
|
||||
|
||||
|
||||
def stop_and_rm():
|
||||
machine.systemctl("stop tandoor-recipes")
|
||||
machine.succeed("rm -r /var/lib/tandoor-recipes")
|
||||
|
||||
|
||||
db_path = "http://localhost:8080/media/db.sqlite3"
|
||||
|
||||
|
||||
# The media folder shouldn't contain the database. Subsequently it
|
||||
# should **not** get served, resulting in a 404. Previously the
|
||||
# database was located in the media folder. Therefore serving the media
|
||||
# folder would expose the database. See #338339.
|
||||
wait_for_tandoor()
|
||||
machine.succeed(f"curl --head {db_path} | grep \"HTTP/1.1 404 Not Found\"")
|
||||
|
||||
|
||||
# Switch to NixOS 24.11 to check if the setup still functions the same
|
||||
# as before.
|
||||
stop_and_rm()
|
||||
machine.succeed("${oldVersion}/bin/switch-to-configuration test")
|
||||
|
||||
# With the old setup the media folder should contain the database.
|
||||
# Subsequently it should get served, resulting in a 200.
|
||||
wait_for_tandoor()
|
||||
machine.succeed(f"curl --head {db_path} | grep \"HTTP/1.1 200 OK\"")
|
||||
|
||||
|
||||
# Switch to NixOS 24.11 with the MEDIA_ROOT already set to
|
||||
# /var/lib/tandoor-recipes/media.
|
||||
stop_and_rm()
|
||||
machine.succeed("${oldVersionOverrideMedia}/bin/switch-to-configuration test")
|
||||
|
||||
# With MEDIA_ROOT being set to /var/lib/tandoor-recipes/media the media
|
||||
# folder shouldn't contain the database. Subsequently it should **not**
|
||||
# get served, resulting in a 404.
|
||||
wait_for_tandoor()
|
||||
machine.succeed(f"curl --head {db_path} | grep \"HTTP/1.1 404 Not Found\"")
|
||||
'';
|
||||
}
|
||||
@@ -109,7 +109,7 @@ let
|
||||
# times out after spending many hours
|
||||
#wezterm.pkg = p: p.wezterm;
|
||||
|
||||
xfce4-terminal.pkg = p: p.xfce.xfce4-terminal;
|
||||
xfce4-terminal.pkg = p: p.xfce4-terminal;
|
||||
|
||||
xterm.pkg = p: p.xterm;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
services.xserver.desktopManager.xfce.enable = true;
|
||||
environment.systemPackages = [ pkgs.xfce4-whiskermenu-plugin ];
|
||||
|
||||
programs.thunar.plugins = [ pkgs.xfce.thunar-archive-plugin ];
|
||||
programs.thunar.plugins = [ pkgs.thunar-archive-plugin ];
|
||||
programs.ydotool.enable = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ let
|
||||
inherit tiling_wm;
|
||||
};
|
||||
stableVersion = {
|
||||
version = "2025.2.2.7"; # "Android Studio Otter 2 Feature Drop | 2025.2.2"
|
||||
sha256Hash = "sha256-pvnUDYeFbxOnw2dP9BeKFushnTHmpDrBwmnNWDx8pbQ=";
|
||||
version = "2025.2.2.8"; # "Android Studio Otter 2 Feature Drop | 2025.2.2 Patch 1"
|
||||
sha256Hash = "sha256-xs9ABQ9f8/gtxcoiZkf/xEtmTOj6rb4Ty+w70/+C4Ss=";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "2025.2.3.6"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 RC 1"
|
||||
|
||||
@@ -13,6 +13,7 @@ from packaging import version
|
||||
|
||||
updates_url = "https://www.jetbrains.com/updates/updates.xml"
|
||||
current_path = pathlib.Path(__file__).parent
|
||||
ides_file_path = current_path.joinpath("..").joinpath("ides.json").resolve()
|
||||
versions_file_path = current_path.joinpath("versions.json").resolve()
|
||||
fromVersions = {}
|
||||
toVersions = {}
|
||||
@@ -72,8 +73,8 @@ def get_url(template, version_or_build_number, version_number):
|
||||
return None
|
||||
|
||||
|
||||
def update_product(name, product):
|
||||
update_channel = product["update-channel"]
|
||||
def update_product(name, ide, version_info):
|
||||
update_channel = ide["updateChannel"]
|
||||
logging.info("Updating %s", name)
|
||||
channel = channels.get(update_channel)
|
||||
if channel is None:
|
||||
@@ -93,17 +94,17 @@ def update_product(name, product):
|
||||
else:
|
||||
version_or_build_number = new_build_number
|
||||
version_number = new_version.split(' ')[0]
|
||||
download_url = get_url(product["url-template"], version_or_build_number, version_number)
|
||||
download_url = get_url(version_info["url-template"], version_or_build_number, version_number)
|
||||
if not download_url:
|
||||
raise Exception(f"No valid url for {name} version {version_or_build_number}")
|
||||
product["url"] = download_url
|
||||
if "sha256" not in product or product.get("build_number") != new_build_number:
|
||||
fromVersions[name] = product["version"]
|
||||
version_info["url"] = download_url
|
||||
if "sha256" not in version_info or version_info.get("build_number") != new_build_number:
|
||||
fromVersions[name] = version_info["version"]
|
||||
toVersions[name] = new_version
|
||||
logging.info("Found a newer version %s with build number %s.", new_version, new_build_number)
|
||||
product["version"] = new_version
|
||||
product["build_number"] = new_build_number
|
||||
product["sha256"] = download_sha256(download_url)
|
||||
version_info["version"] = new_version
|
||||
version_info["build_number"] = new_build_number
|
||||
version_info["sha256"] = download_sha256(download_url)
|
||||
else:
|
||||
logging.info("Already at the latest version %s with build number %s.", new_version, new_build_number)
|
||||
except Exception as e:
|
||||
@@ -112,16 +113,19 @@ def update_product(name, product):
|
||||
logging.warning("It may be out-of-date. Fix the error and rerun.")
|
||||
|
||||
|
||||
def update_products(products):
|
||||
for name, product in products.items():
|
||||
update_product(name, product)
|
||||
def update_products(versioned_products, ides):
|
||||
for name, version_info in versioned_products.items():
|
||||
update_product(name, ides[name], version_info)
|
||||
|
||||
|
||||
with open(versions_file_path, "r") as versions_file:
|
||||
versions = json.load(versions_file)
|
||||
|
||||
for products in versions.values():
|
||||
update_products(products)
|
||||
with open(ides_file_path, "r") as ides_file:
|
||||
ides = json.load(ides_file)
|
||||
|
||||
for versioned_products in versions.values():
|
||||
update_products(versioned_products, ides)
|
||||
|
||||
with open(versions_file_path, "w") as versions_file:
|
||||
json.dump(versions, versions_file, indent=2)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"x86_64-linux": {
|
||||
"aqua": {
|
||||
"update-channel": "Aqua RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/aqua/aqua-{version}.tar.gz",
|
||||
"version": "2024.3.2",
|
||||
"sha256": "de073e8a3734a2c4ef984b3e1bd68f5de72a6180e73400889510439ac3f419aa",
|
||||
@@ -9,7 +8,6 @@
|
||||
"build_number": "243.23654.154"
|
||||
},
|
||||
"clion": {
|
||||
"update-channel": "CLion RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "91474a3c35a9b3d50f43f0549098317b65aa881f2f80c3345f8dee7587d31f9e",
|
||||
@@ -17,7 +15,6 @@
|
||||
"build_number": "252.28238.22"
|
||||
},
|
||||
"datagrip": {
|
||||
"update-channel": "DataGrip RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.tar.gz",
|
||||
"version": "2025.3",
|
||||
"sha256": "010ad3a676cfe984e7498d1eb4f84686d7a110acbde4f9d288f53967255340e6",
|
||||
@@ -25,7 +22,6 @@
|
||||
"build_number": "253.28294.259"
|
||||
},
|
||||
"dataspell": {
|
||||
"update-channel": "DataSpell RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz",
|
||||
"version": "2025.2.3",
|
||||
"sha256": "1e4bc499da1ce8c63e8a4526159c20ef8a797315dc6d3ab4c8eb109f323faba6",
|
||||
@@ -33,7 +29,6 @@
|
||||
"build_number": "252.27397.129"
|
||||
},
|
||||
"gateway": {
|
||||
"update-channel": "Gateway RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "5a84a4dbc5fc1aa03fa1bf142e1eae51e265f6d17ec38c50932b83e629a4366c",
|
||||
@@ -41,7 +36,6 @@
|
||||
"build_number": "252.28238.6"
|
||||
},
|
||||
"goland": {
|
||||
"update-channel": "GoLand RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/go/goland-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "7b748b7f5af267e8bd4d90d44bbeea8cb58b262115d884d2cd567af8d9d753c1",
|
||||
@@ -49,7 +43,6 @@
|
||||
"build_number": "252.28238.32"
|
||||
},
|
||||
"idea-community": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "995c334cc3e143f13467abafef07a1ccf7d06275512bb6f4c91123948786ab7c",
|
||||
@@ -57,7 +50,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"idea": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "dc92cd3850ba256d2cb1c9d884f9579f613f6fa747f628361458d21f66687393",
|
||||
@@ -65,7 +57,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"mps": {
|
||||
"update-channel": "MPS RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
|
||||
"version": "2025.2.1",
|
||||
"sha256": "cfbe530d0385cf3e9ccc2f18f43db25525e0024abdbcd3203bd66fb77fc6f3b4",
|
||||
@@ -73,7 +64,6 @@
|
||||
"build_number": "252.26199.587"
|
||||
},
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "4f102bb85add2527e46695f3b866c0e315423e19bc45e0adb0de0fe577a1efe6",
|
||||
@@ -82,7 +72,6 @@
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "7f49a014f53f0f6f7c46f6710b131f390302287f4046b606331d88081cdb551f",
|
||||
@@ -90,7 +79,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"pycharm": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "b1e47419e5844c38e7a7a9be9e5260c75cea6aa8423f2584dc1727f792d5feb4",
|
||||
@@ -98,7 +86,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz",
|
||||
"version": "2025.3.0.3",
|
||||
"sha256": "f09d5e060df110316e8abdedc397e6475e5d46d3f99b422d06de69f6e7025dbc",
|
||||
@@ -106,7 +93,6 @@
|
||||
"build_number": "253.28294.237"
|
||||
},
|
||||
"ruby-mine": {
|
||||
"update-channel": "RubyMine RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "9d42262fa938e072a83828bd643c6d702b07e4a45c095315500a2a60d7bb805c",
|
||||
@@ -114,7 +100,6 @@
|
||||
"build_number": "252.28238.3"
|
||||
},
|
||||
"rust-rover": {
|
||||
"update-channel": "RustRover RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "01ec30397ec61ac6dcb66cb037ea69b2be8a7e079020e50513f2e1e102ccfc84",
|
||||
@@ -122,7 +107,6 @@
|
||||
"build_number": "252.28238.28"
|
||||
},
|
||||
"webstorm": {
|
||||
"update-channel": "WebStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "535167a94350f355e8d4b63624df25c9eca58e5f570df596c7ca8ab630f3c485",
|
||||
@@ -130,7 +114,6 @@
|
||||
"build_number": "252.28238.10"
|
||||
},
|
||||
"writerside": {
|
||||
"update-channel": "Writerside EAP",
|
||||
"url-template": "https://download.jetbrains.com/writerside/writerside-{version}.tar.gz",
|
||||
"version": "2024.3 EAP",
|
||||
"sha256": "d49e58020d51ec4ccdbdffea5d42b5a2d776a809fc00789cef5abda7b23bd3f6",
|
||||
@@ -140,7 +123,6 @@
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"aqua": {
|
||||
"update-channel": "Aqua RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/aqua/aqua-{version}-aarch64.tar.gz",
|
||||
"version": "2024.3.2",
|
||||
"sha256": "d2a3c781756a83ccea63dc6d9aebf85f819de1edb5bcd4e5a1a161eaa0779c84",
|
||||
@@ -148,7 +130,6 @@
|
||||
"build_number": "243.23654.154"
|
||||
},
|
||||
"clion": {
|
||||
"update-channel": "CLion RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "bff9d778fdfa41dc69019f05b01a9f242caa4406432f63b9d599799790f62655",
|
||||
@@ -156,7 +137,6 @@
|
||||
"build_number": "252.28238.22"
|
||||
},
|
||||
"datagrip": {
|
||||
"update-channel": "DataGrip RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.tar.gz",
|
||||
"version": "2025.3",
|
||||
"sha256": "52a2e70f8903ee70ceb7fd45216f5d3ac35718ba066b30cb084c6bcacf9a5098",
|
||||
@@ -164,7 +144,6 @@
|
||||
"build_number": "253.28294.259"
|
||||
},
|
||||
"dataspell": {
|
||||
"update-channel": "DataSpell RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.3",
|
||||
"sha256": "4bebb406617b4179791d4b6560dc50355760773ef37f6ce9f27bd0d1fd638750",
|
||||
@@ -172,7 +151,6 @@
|
||||
"build_number": "252.27397.129"
|
||||
},
|
||||
"gateway": {
|
||||
"update-channel": "Gateway RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "62cb3723786e66aec656561cc37f31bf232346be303184e3e73018e85b252430",
|
||||
@@ -180,7 +158,6 @@
|
||||
"build_number": "252.28238.6"
|
||||
},
|
||||
"goland": {
|
||||
"update-channel": "GoLand RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "c9bdfe1a106c470ee335d779ab59f61898098d4769dac8c2975113dba6d8dcf5",
|
||||
@@ -188,7 +165,6 @@
|
||||
"build_number": "252.28238.32"
|
||||
},
|
||||
"idea-community": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "4c57a783f31ee6f2c82d8c43bb5d0334a9afbc8bfb4542e732048c41f61e63a0",
|
||||
@@ -196,7 +172,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"idea": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "6203b9dbc2461abc59604a7fb319d8e06948b2886489ae03499e98f4c1a0a57c",
|
||||
@@ -204,7 +179,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"mps": {
|
||||
"update-channel": "MPS RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
|
||||
"version": "2025.2.1",
|
||||
"sha256": "cfbe530d0385cf3e9ccc2f18f43db25525e0024abdbcd3203bd66fb77fc6f3b4",
|
||||
@@ -212,7 +186,6 @@
|
||||
"build_number": "252.26199.587"
|
||||
},
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "9dbf2ef4f69039f82ed1c4f279a22d5e1cb88051bcf5670e7c4d5bf0263295e9",
|
||||
@@ -221,7 +194,6 @@
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "67b61a3e788b043d93b3cc3e0dd3cea350e6d170402fd94adaf792cfc57e5462",
|
||||
@@ -229,7 +201,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"pycharm": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "7037672c6913f643ec4979ca5f16791588e001ffd39f830d874587f79e358be2",
|
||||
@@ -237,7 +208,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz",
|
||||
"version": "2025.3.0.3",
|
||||
"sha256": "eb3727a2c4159e185b839b0ee0c2ee7383d4bc5a8ef3c1f41dbd59ae7cb705d6",
|
||||
@@ -245,7 +215,6 @@
|
||||
"build_number": "253.28294.237"
|
||||
},
|
||||
"ruby-mine": {
|
||||
"update-channel": "RubyMine RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "1dd8720dbb32a9ae6ed9856834baf5242aa8296ed179fee3e5b7be432f993155",
|
||||
@@ -253,7 +222,6 @@
|
||||
"build_number": "252.28238.3"
|
||||
},
|
||||
"rust-rover": {
|
||||
"update-channel": "RustRover RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "8e424e01a38faebbfd7fa36cdae51e233551f921a666e36a0a0a6a04e686fa0a",
|
||||
@@ -261,7 +229,6 @@
|
||||
"build_number": "252.28238.28"
|
||||
},
|
||||
"webstorm": {
|
||||
"update-channel": "WebStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "d4a474c7434878906ed9d3c92572ac61c6fe8eb7dc48653677e2ead1785f4551",
|
||||
@@ -269,7 +236,6 @@
|
||||
"build_number": "252.28238.10"
|
||||
},
|
||||
"writerside": {
|
||||
"update-channel": "Writerside EAP",
|
||||
"url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.tar.gz",
|
||||
"version": "2024.3 EAP",
|
||||
"sha256": "6067f6f73c4a178e2d0ae42bd18669045d85b5b5ed2c9115c2488ba7aa2a3d88",
|
||||
@@ -279,7 +245,6 @@
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"aqua": {
|
||||
"update-channel": "Aqua RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/aqua/aqua-{version}.dmg",
|
||||
"version": "2024.3.2",
|
||||
"sha256": "423d492e9849beb7edbbd1771650a04e8df9f469bf1789b41bc5878c84cee393",
|
||||
@@ -287,7 +252,6 @@
|
||||
"build_number": "243.23654.154"
|
||||
},
|
||||
"clion": {
|
||||
"update-channel": "CLion RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "234b93f26fbb411393dbfd7d1084ff8e8d35b745778d4b9ed1ecba670dafe0fb",
|
||||
@@ -295,7 +259,6 @@
|
||||
"build_number": "252.28238.22"
|
||||
},
|
||||
"datagrip": {
|
||||
"update-channel": "DataGrip RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.dmg",
|
||||
"version": "2025.3",
|
||||
"sha256": "4a92e083ddc6edb7ff1639705d6bd3cf8d47d960659a9aa71e19b95fafad8d07",
|
||||
@@ -303,7 +266,6 @@
|
||||
"build_number": "253.28294.259"
|
||||
},
|
||||
"dataspell": {
|
||||
"update-channel": "DataSpell RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/dataspell-{version}.dmg",
|
||||
"version": "2025.2.3",
|
||||
"sha256": "7d1a60c4367a1e1bd43aec494177c4c30744cb5bf904a3c71d2a3d13439a7b12",
|
||||
@@ -311,7 +273,6 @@
|
||||
"build_number": "252.27397.129"
|
||||
},
|
||||
"gateway": {
|
||||
"update-channel": "Gateway RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "a0a4314c5f08331a82420580bf3e26df19b52573cda3ecac354d8ac49caf191d",
|
||||
@@ -319,7 +280,6 @@
|
||||
"build_number": "252.28238.6"
|
||||
},
|
||||
"goland": {
|
||||
"update-channel": "GoLand RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/go/goland-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "b900b868b748b78c01c5da949e8bcc0df277caa2e3efcc50898641aadaf485f2",
|
||||
@@ -327,7 +287,6 @@
|
||||
"build_number": "252.28238.32"
|
||||
},
|
||||
"idea-community": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "ff48a1e60869342a91db867fa482a49d4cdf38476496911c109f34a7e8d6523d",
|
||||
@@ -335,7 +294,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"idea": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "c0d6731d60bdcdaaea5c0474c296e39cc336f424da872c6ed022e8f139d779ee",
|
||||
@@ -343,7 +301,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"mps": {
|
||||
"update-channel": "MPS RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos.dmg",
|
||||
"version": "2025.2.1",
|
||||
"sha256": "e0b2644918ffe76b10001fc7904a58b2ec88cda2d317b10508d3bac784a490b2",
|
||||
@@ -351,7 +308,6 @@
|
||||
"build_number": "252.26199.587"
|
||||
},
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "2a765be05bd2176899297ba0599735c2a13d1065e9d65895a6ead7ed850f0254",
|
||||
@@ -360,7 +316,6 @@
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "08ba97a278031ff1942ddefb18d8acf7582f0bb4a28ccdf5d65721bfb80ca456",
|
||||
@@ -368,7 +323,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"pycharm": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "00eccdeb39bd8eeaed1b98ad99f542fbc3851389f9e7d19355d05dfd979eb669",
|
||||
@@ -376,7 +330,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg",
|
||||
"version": "2025.3.0.3",
|
||||
"sha256": "e8261d30d549f1809228c84e4b31d2cae337cb7bc35cd6da4e0f801e4d2f52db",
|
||||
@@ -384,7 +337,6 @@
|
||||
"build_number": "253.28294.237"
|
||||
},
|
||||
"ruby-mine": {
|
||||
"update-channel": "RubyMine RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "7dedc215b849194f8814380a4e622e117346fb52fc3f102bfa53332d33c9433b",
|
||||
@@ -392,7 +344,6 @@
|
||||
"build_number": "252.28238.3"
|
||||
},
|
||||
"rust-rover": {
|
||||
"update-channel": "RustRover RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "1f149d98d41b3929e3e920d5465eaa9963312d93f106d8821d0c51721ae2609c",
|
||||
@@ -400,7 +351,6 @@
|
||||
"build_number": "252.28238.28"
|
||||
},
|
||||
"webstorm": {
|
||||
"update-channel": "WebStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "1f3779bf695758e830126a95734360bd640794ec278c250fad9a71969de4ee39",
|
||||
@@ -408,7 +358,6 @@
|
||||
"build_number": "252.28238.10"
|
||||
},
|
||||
"writerside": {
|
||||
"update-channel": "Writerside EAP",
|
||||
"url-template": "https://download.jetbrains.com/writerside/writerside-{version}.dmg",
|
||||
"version": "2024.3 EAP",
|
||||
"sha256": "0c78b8035497c855aea5666256716778abd46dadf68f51e4f91c0db01f62b280",
|
||||
@@ -418,7 +367,6 @@
|
||||
},
|
||||
"aarch64-darwin": {
|
||||
"aqua": {
|
||||
"update-channel": "Aqua RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/aqua/aqua-{version}-aarch64.dmg",
|
||||
"version": "2024.3.2",
|
||||
"sha256": "43974cdbbb71aaf5bfcfaf2cfd0e69e9920dda3973e64671936c1d52b267494d",
|
||||
@@ -426,7 +374,6 @@
|
||||
"build_number": "243.23654.154"
|
||||
},
|
||||
"clion": {
|
||||
"update-channel": "CLion RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "b0496540a133c82c64ac959f1d4542fe331bd63403fd230e23adf4bc957c84af",
|
||||
@@ -434,7 +381,6 @@
|
||||
"build_number": "252.28238.22"
|
||||
},
|
||||
"datagrip": {
|
||||
"update-channel": "DataGrip RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.dmg",
|
||||
"version": "2025.3",
|
||||
"sha256": "16a5df01852648a82082fb667bbed6fcb43e15ef9a91e35a0be422dd37d07180",
|
||||
@@ -442,7 +388,6 @@
|
||||
"build_number": "253.28294.259"
|
||||
},
|
||||
"dataspell": {
|
||||
"update-channel": "DataSpell RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg",
|
||||
"version": "2025.2.3",
|
||||
"sha256": "ad8a2d8403c7d44f66d0905ab6d28a3e888e78b9cc140725e7ca744257c6ce58",
|
||||
@@ -450,7 +395,6 @@
|
||||
"build_number": "252.27397.129"
|
||||
},
|
||||
"gateway": {
|
||||
"update-channel": "Gateway RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "af0a82a46ecad837ee6c86d97623e58d377eed7d5ee56c7af5765071e0b0c12e",
|
||||
@@ -458,7 +402,6 @@
|
||||
"build_number": "252.28238.6"
|
||||
},
|
||||
"goland": {
|
||||
"update-channel": "GoLand RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "91faea3e0aff80e16a27cacaec1c39ef13eac2b3da1b0f0aa1af667be96f4c78",
|
||||
@@ -466,7 +409,6 @@
|
||||
"build_number": "252.28238.32"
|
||||
},
|
||||
"idea-community": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "52065492d433f0ea9df4debd5f0683154ab4dab5846394cabc8a49903d70e5bc",
|
||||
@@ -474,7 +416,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"idea": {
|
||||
"update-channel": "IntelliJ IDEA RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "6ec8cf520556c75e91a3cae1c54f464dee3609c4d7efef3bb307b129c7d9cb63",
|
||||
@@ -482,7 +423,6 @@
|
||||
"build_number": "252.28238.7"
|
||||
},
|
||||
"mps": {
|
||||
"update-channel": "MPS RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos-aarch64.dmg",
|
||||
"version": "2025.2.1",
|
||||
"url": "https://download.jetbrains.com/mps/2025.2/MPS-2025.2.1-macos-aarch64.dmg",
|
||||
@@ -490,7 +430,6 @@
|
||||
"build_number": "252.26199.587"
|
||||
},
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "8320ce229c03277f53a836bc19b796e9241bb00e3e40d4f048290baa27aa9a90",
|
||||
@@ -499,7 +438,6 @@
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "040a4ed6bb7563972d844c450f615d0d11385e524fbbfdbfc9fc68d78811e994",
|
||||
@@ -507,7 +445,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"pycharm": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "71da1283259bc59897e5bb43c6c3771a72d026419ed4d79192889ea3885ac0de",
|
||||
@@ -515,7 +452,6 @@
|
||||
"build_number": "252.28238.29"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg",
|
||||
"version": "2025.3.0.3",
|
||||
"sha256": "ff03408013ce86ffd437204d635401a4ca673ee15596e3d93cd9c69e63e7e7c3",
|
||||
@@ -523,7 +459,6 @@
|
||||
"build_number": "253.28294.237"
|
||||
},
|
||||
"ruby-mine": {
|
||||
"update-channel": "RubyMine RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "8527cb286ea5d9cd612538cb55354dc689b7f7fe5ec0b81a8f1a4a2279e94351",
|
||||
@@ -531,7 +466,6 @@
|
||||
"build_number": "252.28238.3"
|
||||
},
|
||||
"rust-rover": {
|
||||
"update-channel": "RustRover RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "7927f48c24ff1e9b235f3f6bbcd74fb1fad907035146a04c55ef62ccdf90c087",
|
||||
@@ -539,7 +473,6 @@
|
||||
"build_number": "252.28238.28"
|
||||
},
|
||||
"webstorm": {
|
||||
"update-channel": "WebStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg",
|
||||
"version": "2025.2.5",
|
||||
"sha256": "729d519244a4be15add4b0963ebf84fb9c3f3f2f7d1eab3ad925ef79fe359773",
|
||||
@@ -547,7 +480,6 @@
|
||||
"build_number": "252.28238.10"
|
||||
},
|
||||
"writerside": {
|
||||
"update-channel": "Writerside EAP",
|
||||
"url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.dmg",
|
||||
"version": "2024.3 EAP",
|
||||
"sha256": "9d86ef50b4c6d2a07d236219e9b05c0557241fb017d52ac395719bdb425130f5",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"aqua": {
|
||||
"product": "Aqua",
|
||||
"updateChannel": "Aqua RELEASE",
|
||||
"wmClass": "jetbrains-aqua",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -12,6 +13,7 @@
|
||||
},
|
||||
"clion": {
|
||||
"product": "CLion",
|
||||
"updateChannel": "CLion RELEASE",
|
||||
"wmClass": "jetbrains-clion",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -23,6 +25,7 @@
|
||||
},
|
||||
"datagrip": {
|
||||
"product": "DataGrip",
|
||||
"updateChannel": "DataGrip RELEASE",
|
||||
"wmClass": "jetbrains-datagrip",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -34,6 +37,7 @@
|
||||
},
|
||||
"dataspell": {
|
||||
"product": "DataSpell",
|
||||
"updateChannel": "DataSpell RELEASE",
|
||||
"wmClass": "jetbrains-dataspell",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -45,6 +49,7 @@
|
||||
},
|
||||
"gateway": {
|
||||
"product": "JetBrains Gateway",
|
||||
"updateChannel": "Gateway RELEASE",
|
||||
"productShort": "Gateway",
|
||||
"wmClass": "jetbrains-gateway",
|
||||
"meta": {
|
||||
@@ -57,6 +62,7 @@
|
||||
},
|
||||
"goland": {
|
||||
"product": "Goland",
|
||||
"updateChannel": "GoLand RELEASE",
|
||||
"wmClass": "jetbrains-goland",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -68,6 +74,7 @@
|
||||
},
|
||||
"idea": {
|
||||
"product": "IntelliJ IDEA",
|
||||
"updateChannel": "IntelliJ IDEA RELEASE",
|
||||
"productShort": "IDEA",
|
||||
"wmClass": "jetbrains-idea",
|
||||
"meta": {
|
||||
@@ -80,6 +87,7 @@
|
||||
},
|
||||
"idea-community": {
|
||||
"product": "IntelliJ IDEA CE",
|
||||
"updateChannel": "IntelliJ IDEA RELEASE",
|
||||
"productShort": "IDEA",
|
||||
"wmClass": "jetbrains-idea-ce",
|
||||
"meta": {
|
||||
@@ -92,6 +100,7 @@
|
||||
},
|
||||
"idea-oss": {
|
||||
"product": "IntelliJ IDEA Open Source",
|
||||
"updateChannel": "IntelliJ IDEA RELEASE",
|
||||
"productShort": "IDEA",
|
||||
"wmClass": "jetbrains-idea-ce",
|
||||
"meta": {
|
||||
@@ -104,6 +113,7 @@
|
||||
},
|
||||
"mps": {
|
||||
"product": "MPS",
|
||||
"updateChannel": "MPS RELEASE",
|
||||
"wmClass": "jetbrains-MPS",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -115,6 +125,7 @@
|
||||
},
|
||||
"phpstorm": {
|
||||
"product": "PhpStorm",
|
||||
"updateChannel": "PhpStorm RELEASE",
|
||||
"wmClass": "jetbrains-phpstorm",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -127,6 +138,7 @@
|
||||
"pycharm": {
|
||||
"product": "PyCharm",
|
||||
"productShort": "PyCharm",
|
||||
"updateChannel": "PyCharm RELEASE",
|
||||
"wmClass": "jetbrains-pycharm",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -139,6 +151,7 @@
|
||||
"pycharm-community": {
|
||||
"product": "PyCharm CE",
|
||||
"productShort": "PyCharm",
|
||||
"updateChannel": "PyCharm RELEASE",
|
||||
"wmClass": "jetbrains-pycharm-ce",
|
||||
"meta": {
|
||||
"isOpenSource": true,
|
||||
@@ -151,6 +164,7 @@
|
||||
"pycharm-oss": {
|
||||
"product": "PyCharm Open Source",
|
||||
"productShort": "PyCharm",
|
||||
"updateChannel": "PyCharm RELEASE",
|
||||
"wmClass": "jetbrains-pycharm-ce",
|
||||
"meta": {
|
||||
"isOpenSource": true,
|
||||
@@ -162,6 +176,7 @@
|
||||
},
|
||||
"rider": {
|
||||
"product": "Rider",
|
||||
"updateChannel": "Rider RELEASE",
|
||||
"wmClass": "jetbrains-rider",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -173,6 +188,7 @@
|
||||
},
|
||||
"ruby-mine": {
|
||||
"product": "RubyMine",
|
||||
"updateChannel": "RubyMine RELEASE",
|
||||
"wmClass": "jetbrains-rubymine",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -184,6 +200,7 @@
|
||||
},
|
||||
"rust-rover": {
|
||||
"product": "RustRover",
|
||||
"updateChannel": "RustRover RELEASE",
|
||||
"wmClass": "jetbrains-rustrover",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -195,6 +212,7 @@
|
||||
},
|
||||
"webstorm": {
|
||||
"product": "WebStorm",
|
||||
"updateChannel": "WebStorm RELEASE",
|
||||
"wmClass": "jetbrains-webstorm",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
@@ -206,6 +224,7 @@
|
||||
},
|
||||
"writerside": {
|
||||
"product": "Writerside",
|
||||
"updateChannel": "Writerside EAP",
|
||||
"wmClass": "jetbrains-writerside",
|
||||
"meta": {
|
||||
"isOpenSource": false,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
)
|
||||
|
||||
-private val mavenTelemetryDependencies = listOf("com.fasterxml.jackson.core:jackson-core:2.16.0")
|
||||
+private val mavenTelemetryDependencies = listOf("com.fasterxml.jackson.core:jackson-core:2.17.0")
|
||||
+private val mavenTelemetryDependencies = listOf("com.fasterxml.jackson.core:jackson-core:2.19.0")
|
||||
|
||||
object BundledMavenDownloader {
|
||||
private val mutex = Mutex()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--- a/src/main/java/org/jetbrains/jpsBootstrap/KotlinCompiler.kt
|
||||
+++ b/src/main/java/org/jetbrains/jpsBootstrap/KotlinCompiler.kt
|
||||
@@ -14,19 +14,7 @@
|
||||
"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies"
|
||||
@@ -30,25 +30,7 @@
|
||||
|
||||
|
||||
fun downloadAndExtractKotlinCompiler(communityRoot: BuildDependenciesCommunityRoot): Path {
|
||||
- // We already have kotlin JPS in the classpath, fetch version from it
|
||||
@@ -10,12 +10,18 @@
|
||||
- info("Kotlin compiler version is $kotlincVersion")
|
||||
-
|
||||
- val kotlincUrl = getUriForMavenArtifact(
|
||||
- KOTLIN_IDE_MAVEN_REPOSITORY_URL,
|
||||
- getMavenRepositoryUrl(),
|
||||
- "org.jetbrains.kotlin",
|
||||
- "kotlin-dist-for-ide",
|
||||
- kotlincVersion,
|
||||
- "jar")
|
||||
- val kotlincDist = downloadFileToCacheLocation(communityRoot, kotlincUrl)
|
||||
- val kotlincDist = if (shouldUseMavenLocal()) {
|
||||
- val path = kotlincUrl.toPath()
|
||||
- check(path.exists()) { "kotlin-dist-for-ide was not found in the local Maven repository" }
|
||||
- path
|
||||
- } else {
|
||||
- downloadFileToCacheLocation(communityRoot, kotlincUrl)
|
||||
- }
|
||||
- val kotlinc = extractFileToCacheLocation(communityRoot, kotlincDist)
|
||||
+ val kotlinc = Path.of("KOTLIN_PATH_HERE")
|
||||
verbose("Kotlin compiler is at $kotlinc")
|
||||
|
||||
@@ -46,60 +46,58 @@
|
||||
return URI.create("${base}/${groupStr}/${artifactId}/${version}/${artifactId}-${version}${classifierStr}.${packaging}")
|
||||
--- a/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
|
||||
+++ b/platform/build-scripts/downloader/src/org/jetbrains/intellij/build/dependencies/JdkDownloader.kt
|
||||
@@ -59,11 +59,7 @@
|
||||
@@ -71,9 +71,7 @@
|
||||
infoLog: (String) -> Unit,
|
||||
): Path {
|
||||
val effectiveVariation = if (isMusl) null else variation
|
||||
- val jdkUrl = getUrl(communityRoot = communityRoot, os = os, arch = arch, isMusl = isMusl, jdkBuildNumber = jdkBuildNumber, variation = effectiveVariation)
|
||||
- val jdkArchive = downloadFileToCacheLocation(url = jdkUrl.toString(), communityRoot = communityRoot)
|
||||
- val jdkExtracted = BuildDependenciesDownloader.extractFileToCacheLocation(communityRoot = communityRoot,
|
||||
- archiveFile = jdkArchive,
|
||||
- BuildDependenciesExtractOptions.STRIP_ROOT)
|
||||
- val jdkArchive = downloadFileToCacheLocation(url = jdkUrl, communityRoot = communityRoot)
|
||||
- val jdkExtracted = extractFileToCacheLocation(communityRoot = communityRoot, archiveFile = jdkArchive, stripRoot = true)
|
||||
+ val jdkExtracted = Path.of("JDK_PATH_HERE")
|
||||
val jdkHome = if (os == OS.MACOSX) jdkExtracted.resolve("Contents").resolve("Home") else jdkExtracted
|
||||
infoLog("JPS-bootstrap JDK (jdkHome=$jdkHome, executable=${getJavaExecutable(jdkHome)})")
|
||||
return jdkHome
|
||||
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
|
||||
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
|
||||
@@ -46,7 +46,7 @@
|
||||
@@ -62,7 +62,7 @@
|
||||
/**
|
||||
* If `true`, a separate *[org.jetbrains.intellij.build.impl.LinuxDistributionBuilder.NO_RUNTIME_SUFFIX].tar.gz artifact without a runtime will be produced.
|
||||
* If `true`, a separate `*[org.jetbrains.intellij.build.impl.LinuxDistributionBuilder.NO_RUNTIME_SUFFIX].tar.gz` artifact without a runtime will be produced.
|
||||
*/
|
||||
- var buildArtifactWithoutRuntime = false
|
||||
+ var buildArtifactWithoutRuntime = true
|
||||
- var buildArtifactWithoutRuntime: Boolean = false
|
||||
+ var buildArtifactWithoutRuntime: Boolean = true
|
||||
|
||||
/**
|
||||
* Set both properties if a .snap package should be produced.
|
||||
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.kt
|
||||
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.kt
|
||||
@@ -50,7 +50,7 @@
|
||||
@@ -76,7 +76,7 @@
|
||||
val distBinDir = targetPath.resolve("bin")
|
||||
val sourceBinDir = context.paths.communityHomeDir.resolve("bin/linux")
|
||||
addNativeLauncher(distBinDir, targetPath, arch)
|
||||
addNativeLauncher(distBinDir = distBinDir, targetPath = targetPath, arch = arch, context = context)
|
||||
- copyFileToDir(NativeBinaryDownloader.getRestarter(context, OsFamily.LINUX, arch), distBinDir)
|
||||
+ copyFileToDir(sourceBinDir.resolve("${arch.dirName}/restarter"), distBinDir)
|
||||
copyFileToDir(sourceBinDir.resolve("${arch.dirName}/fsnotifier"), distBinDir)
|
||||
generateBuildTxt(context, targetPath)
|
||||
copyDistFiles(context, targetPath, OsFamily.LINUX, arch)
|
||||
@@ -85,6 +85,8 @@
|
||||
generateBuildTxt(context = context, targetDirectory = targetPath)
|
||||
copyDistFiles(context = context, newDir = targetPath, os = OsFamily.LINUX, arch = arch, libcImpl = targetLibcImpl)
|
||||
@@ -132,6 +132,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+
|
||||
+ return@executeStep
|
||||
+
|
||||
val runtimeDir = context.bundledRuntime.extract(os = OsFamily.LINUX, arch = arch)
|
||||
updateExecutablePermissions(runtimeDir, executableFileMatchers)
|
||||
val tarGzPath = buildTarGz(arch = arch, runtimeDir = runtimeDir, unixDistPath = osAndArchSpecificDistPath, suffix = suffix(arch))
|
||||
@@ -383,7 +385,8 @@
|
||||
}
|
||||
|
||||
private suspend fun addNativeLauncher(distBinDir: Path, targetPath: Path, arch: JvmArchitecture) {
|
||||
- val (execPath, licensePath) = NativeBinaryDownloader.getLauncher(context, OsFamily.LINUX, arch)
|
||||
+ val execPath = Path.of("XPLAT_LAUNCHER_PREBUILT_PATH_HERE/Linux-${arch.archName}/xplat-launcher")
|
||||
+ val licensePath = Path.of("XPLAT_LAUNCHER_PREBUILT_PATH_HERE/license/xplat-launcher-third-party-licenses.html")
|
||||
copyFile(execPath, distBinDir.resolve(context.productProperties.baseFileName))
|
||||
copyFile(licensePath, targetPath.resolve("license/launcher-third-party-libraries.html"))
|
||||
}
|
||||
val runtimeDir = context.bundledRuntime.extract(OsFamily.LINUX, arch, targetLibcImpl)
|
||||
updateExecutablePermissions(runtimeDir, executableFileMatchers)
|
||||
@@ -422,7 +424,8 @@
|
||||
}
|
||||
|
||||
private suspend fun addNativeLauncher(distBinDir: Path, targetPath: Path, arch: JvmArchitecture, context: BuildContext) {
|
||||
- val (execPath, licensePath) = NativeBinaryDownloader.getLauncher(context, OsFamily.LINUX, arch)
|
||||
+ val execPath = Path.of("XPLAT_LAUNCHER_PREBUILT_PATH_HERE/Linux-${arch.archName}/xplat-launcher")
|
||||
+ val licensePath = Path.of("XPLAT_LAUNCHER_PREBUILT_PATH_HERE/license/xplat-launcher-third-party-licenses.html")
|
||||
copyFile(execPath, distBinDir.resolve(context.productProperties.baseFileName))
|
||||
copyFile(licensePath, targetPath.resolve("license/launcher-third-party-libraries.html"))
|
||||
}
|
||||
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
|
||||
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt
|
||||
@@ -9,6 +9,8 @@
|
||||
@@ -122,20 +120,32 @@
|
||||
}
|
||||
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/kotlin/KotlinCompilerDependencyDownloader.kt
|
||||
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/kotlin/KotlinCompilerDependencyDownloader.kt
|
||||
@@ -23,31 +23,11 @@
|
||||
@@ -44,45 +44,11 @@
|
||||
|
||||
|
||||
object KotlinCompilerDependencyDownloader {
|
||||
fun downloadAndExtractKotlinCompiler(communityRoot: BuildDependenciesCommunityRoot): Path {
|
||||
- val kotlinJpsPluginVersion = getKotlinJpsPluginVersion(communityRoot)
|
||||
- val kotlinDistUrl = getUriForMavenArtifact(MAVEN_REPOSITORY_URL, ARTIFACT_GROUP_ID, "kotlin-dist-for-ide", kotlinJpsPluginVersion, "jar")
|
||||
- val kotlinDistJar = downloadFileToCacheLocation(communityRoot, kotlinDistUrl)
|
||||
- val kotlinDistUrl = getUriForMavenArtifact(getMavenRepositoryUrl(), ARTIFACT_GROUP_ID, "kotlin-dist-for-ide", kotlinJpsPluginVersion, "jar")
|
||||
- val kotlinDistJar = if (shouldUseMavenLocal()) {
|
||||
- val path = kotlinDistUrl.toPath()
|
||||
- check(path.exists()) { "kotlin-dist-for-ide was not found in the local Maven repository" }
|
||||
- path
|
||||
- } else {
|
||||
- downloadFileToCacheLocation(communityRoot, kotlinDistUrl)
|
||||
- }
|
||||
- return extractFileToCacheLocation(communityRoot, kotlinDistJar)
|
||||
+ return Path.of("KOTLIN_PATH_HERE")
|
||||
}
|
||||
|
||||
suspend fun downloadKotlinJpsPlugin(communityRoot: BuildDependenciesCommunityRoot): Path = withContext(Dispatchers.IO) {
|
||||
- val kotlinJpsPluginVersion = getKotlinJpsPluginVersion(communityRoot)
|
||||
- val kotlinJpsPluginUrl = getUriForMavenArtifact(MAVEN_REPOSITORY_URL, ARTIFACT_GROUP_ID, "kotlin-jps-plugin-classpath", kotlinJpsPluginVersion, "jar")
|
||||
- val kotlinJpsPluginUrl = getUriForMavenArtifact(getMavenRepositoryUrl(), ARTIFACT_GROUP_ID, "kotlin-jps-plugin-classpath", kotlinJpsPluginVersion, "jar")
|
||||
-
|
||||
- if (shouldUseMavenLocal()) {
|
||||
- val kotlinJpsPluginJar = kotlinJpsPluginUrl.toPath()
|
||||
- check(kotlinJpsPluginJar.exists()) { "kotlin-jps-plugin-classpath was not found in the local Maven repository" }
|
||||
- return@withContext kotlinJpsPluginJar
|
||||
- }
|
||||
-
|
||||
- val cacheLocation = getTargetFile(communityRoot, kotlinJpsPluginUrl.toString())
|
||||
- if (cacheLocation.exists()) {
|
||||
@@ -148,7 +158,9 @@
|
||||
- println(" * Downloading $kotlinJpsPluginUrl")
|
||||
- val tmpLocation = Files.createTempFile(cacheLocation.parent, cacheLocation.name, ".tmp")
|
||||
- retryWithExponentialBackOff {
|
||||
- FileUtils.copyURLToFile(kotlinJpsPluginUrl.toURL(), tmpLocation.toFile())
|
||||
- kotlinJpsPluginUrl.toURL().openStream().use {
|
||||
- Files.copy(it, tmpLocation, StandardCopyOption.REPLACE_EXISTING)
|
||||
- }
|
||||
- }
|
||||
- Files.move(tmpLocation, cacheLocation, StandardCopyOption.ATOMIC_MOVE)
|
||||
- return@withContext cacheLocation
|
||||
|
||||
@@ -38,14 +38,13 @@ fetchurl {
|
||||
## How to update stuff:
|
||||
- Run ./bin/update_bin.py, this will update binary IDEs, and automatically commit them
|
||||
- Source builds need a bit more effort, as they **aren't automated at the moment**:
|
||||
- Run ./source/update.py ./source/sources.json ./bin/versions.json. This will update the source version to the version of their corresponding binary packages.
|
||||
- Run ./source/update.py ./source/sources.json. This will update the source version to the latest available version.
|
||||
- Run these commands respectively:
|
||||
- `nix build .#jetbrains.idea-oss.src.src && ./source/build_maven.py source/idea_maven_artefacts.json result/` for IDEA
|
||||
- `nix build .#jetbrains.pycharm-oss.src.src && ./source/build_maven.py source/pycharm_maven_artefacts.json result/` for PyCharm
|
||||
- Update `brokenPlugins` timestamp and hash (from https://web.archive.org/web/*/https://plugins.jetbrains.com/files/brokenPlugins.json)
|
||||
- Make sure the Kotlin version used is correct.
|
||||
- Check the recommended Kotlin version in `.idea/kotlinc.xml` in the IDEA source root
|
||||
- Do a test build
|
||||
- Notice that sometimes a newer Kotlin version is required to build from source, if build fails, first check the recommended Kotlin version in `.idea/kotlinc.xml` in the IDEA source root
|
||||
- Feel free to update the Kotlin version to a compatible one
|
||||
- If it succeeds, make a commit
|
||||
- make a PR/merge
|
||||
- If it fails, ping/message GenericNerdyUsername or the nixpkgs Jetbrains maintainer team
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -9,6 +9,7 @@
|
||||
stdenv,
|
||||
stdenvNoCC,
|
||||
rustPlatform,
|
||||
callPackage,
|
||||
|
||||
ant,
|
||||
cmake,
|
||||
@@ -37,14 +38,14 @@
|
||||
|
||||
let
|
||||
kotlin' = kotlin.overrideAttrs (oldAttrs: {
|
||||
version = "2.1.10";
|
||||
version = "2.2.20";
|
||||
src = fetchurl {
|
||||
url = oldAttrs.src.url;
|
||||
sha256 = "sha256-xuniY2iJgo4ZyIEdWriQhiU4yJ3CoxAZVt/uPCqLprE=";
|
||||
hash = "sha256-gfAmTJBztcu9s/+EGM8sXawHaHn8FW+hpkYvWlrMRCA=";
|
||||
};
|
||||
});
|
||||
|
||||
jbr = jetbrains.jdk-no-jcef-17;
|
||||
jbr = jetbrains.jdk-no-jcef;
|
||||
|
||||
ideaSrc = fetchFromGitHub {
|
||||
owner = "jetbrains";
|
||||
@@ -134,25 +135,7 @@ let
|
||||
];
|
||||
};
|
||||
|
||||
jpsRepo =
|
||||
runCommand "jps-bootstrap-repository"
|
||||
{
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = jpsHash;
|
||||
nativeBuildInputs = [
|
||||
ant
|
||||
jbr
|
||||
];
|
||||
}
|
||||
''
|
||||
ant -Duser.home=$out -Dbuild.dir=/build/tmp -f ${src}/platform/jps-bootstrap/jps-bootstrap-classpath.xml
|
||||
find $out -type f \( \
|
||||
-name \*.lastUpdated \
|
||||
-o -name resolver-status.properties \
|
||||
-o -name _remote.repositories \) \
|
||||
-delete
|
||||
'';
|
||||
jpsRepo = callPackage ./jps_repo.nix { inherit jpsHash src jbr; };
|
||||
|
||||
jps-bootstrap = stdenvNoCC.mkDerivation {
|
||||
pname = "jps-bootstrap";
|
||||
@@ -169,7 +152,8 @@ let
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
ant -Duser.home=${jpsRepo} -Dbuild.dir=/build/out -f jps-bootstrap-classpath.xml
|
||||
BUILD_HOME=$(mktemp -d)
|
||||
ant -Duser.home=${jpsRepo} -Dbuild.dir="$BUILD_HOME" -f jps-bootstrap-classpath.xml
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
@@ -177,8 +161,8 @@ let
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/java/
|
||||
cp /build/out/jps-bootstrap.classes.jar $out/share/java/jps-bootstrap.jar
|
||||
cp -r /build/out/jps-bootstrap.out.lib $out/share/java/jps-bootstrap-classpath
|
||||
cp "$BUILD_HOME/jps-bootstrap.classes.jar" $out/share/java/jps-bootstrap.jar
|
||||
cp -r "$BUILD_HOME/jps-bootstrap.out.lib" $out/share/java/jps-bootstrap-classpath
|
||||
makeWrapper ${jbr}/bin/java $out/bin/jps-bootstrap \
|
||||
--add-flags "-cp $out/share/java/jps-bootstrap-classpath/'*' org.jetbrains.jpsBootstrap.JpsBootstrapMain"
|
||||
|
||||
@@ -190,7 +174,12 @@ let
|
||||
mkRepoEntry = entry: {
|
||||
name = ".m2/repository/" + entry.path;
|
||||
path = fetchurl {
|
||||
urls = map (url: "${url}/${entry.url}") repositories;
|
||||
urls = lib.concatMap (url: [
|
||||
"https://cache-redirector.jetbrains.com/${url}/${entry.url}"
|
||||
"https://${url}/${entry.url}"
|
||||
]) repositories;
|
||||
# Do not try to retry 4xx errors
|
||||
curlOptsList = [ "--no-retry-all-errors" ];
|
||||
sha256 = entry.hash;
|
||||
};
|
||||
};
|
||||
@@ -198,25 +187,26 @@ let
|
||||
|
||||
kotlin-jps-plugin-classpath =
|
||||
let
|
||||
repoUrl = "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies";
|
||||
groupId = builtins.replaceStrings [ "." ] [ "/" ] "org.jetbrains.kotlin";
|
||||
repoBaseUrl = "packages.jetbrains.team/maven/p/ij/intellij-dependencies";
|
||||
repoUrls = [
|
||||
"https://cache-redirector.jetbrains.com/${repoBaseUrl}"
|
||||
"https://${repoBaseUrl}"
|
||||
];
|
||||
groupId = "org/jetbrains/kotlin";
|
||||
artefactId = "kotlin-jps-plugin-classpath";
|
||||
version = kotlin-jps-plugin.version;
|
||||
in
|
||||
fetchurl {
|
||||
url =
|
||||
repoUrl
|
||||
+ "/"
|
||||
+ groupId
|
||||
+ "/"
|
||||
+ artefactId
|
||||
+ "/"
|
||||
+ version
|
||||
+ "/"
|
||||
+ artefactId
|
||||
+ "-"
|
||||
+ version
|
||||
+ ".jar";
|
||||
urls = map (
|
||||
url:
|
||||
lib.concatStringsSep "/" [
|
||||
url
|
||||
groupId
|
||||
artefactId
|
||||
version
|
||||
"${artefactId}-${version}.jar"
|
||||
]
|
||||
) repoUrls;
|
||||
hash = kotlin-jps-plugin.hash;
|
||||
};
|
||||
|
||||
@@ -232,16 +222,14 @@ let
|
||||
"OpenSourceCommunityInstallersBuildTarget";
|
||||
|
||||
xplat-launcher = fetchzip {
|
||||
url = "https://cache-redirector.jetbrains.com/intellij-dependencies/org/jetbrains/intellij/deps/launcher/242.22926/launcher-242.22926.tar.gz";
|
||||
urls = [
|
||||
"https://cache-redirector.jetbrains.com/intellij-dependencies/org/jetbrains/intellij/deps/launcher/242.22926/launcher-242.22926.tar.gz"
|
||||
"https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/intellij/deps/launcher/242.22926/launcher-242.22926.tar.gz"
|
||||
];
|
||||
hash = "sha256-ttrQZUbBvvyH1BSVt1yWOoD82WwRi/hkoRfrsdCjwTA=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
brokenPlugins = fetchurl {
|
||||
url = "https://web.archive.org/web/20250509141038/https://downloads.marketplace.jetbrains.com/files/brokenPlugins.json";
|
||||
hash = "sha256-FzYANZSTasCdVEu9jLF1+2PEH8SadUddaIaec5vhKH8=";
|
||||
};
|
||||
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "${buildType}-oss";
|
||||
@@ -261,6 +249,9 @@ stdenvNoCC.mkDerivation rec {
|
||||
../patches/bump-jackson-core-in-source.patch
|
||||
];
|
||||
|
||||
# Regarding brokenPlugins.json:
|
||||
# We provide an empty brokenPlugins.json because the original file is 2.8 MB in size and can't be reliably
|
||||
# downloaded without hash changes. The file is not important for the IDEs to function properly.
|
||||
postPatch = ''
|
||||
cp ${restarter}/bin/restarter bin/linux/amd64/restarter
|
||||
cp ${fsnotifier}/bin/fsnotifier bin/linux/amd64/fsnotifier
|
||||
@@ -275,7 +266,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
--replace-fail 'JDK_PATH_HERE' '${jbr}/lib/openjdk'
|
||||
substituteInPlace \
|
||||
platform/build-scripts/src/org/jetbrains/intellij/build/impl/brokenPlugins.kt \
|
||||
--replace-fail 'BROKEN_PLUGINS_HERE' '${brokenPlugins}'
|
||||
--replace-fail 'BROKEN_PLUGINS_HERE' '${./brokenPlugins.json}'
|
||||
substituteInPlace \
|
||||
platform/build-scripts/src/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.kt \
|
||||
--replace-fail 'XPLAT_LAUNCHER_PREBUILT_PATH_HERE' '${xplat-launcher}'
|
||||
@@ -290,8 +281,8 @@ stdenvNoCC.mkDerivation rec {
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
ln -s "$repo"/.m2 /build/.m2
|
||||
export JPS_BOOTSTRAP_COMMUNITY_HOME=/build/source
|
||||
ln -s "$repo"/.m2 ../.m2
|
||||
export JPS_BOOTSTRAP_COMMUNITY_HOME="$PWD"
|
||||
jps-bootstrap \
|
||||
-Dbuild.number=${buildNumber} \
|
||||
-Djps.kotlin.home=${kotlin'} \
|
||||
@@ -300,7 +291,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
-Dintellij.build.skip.build.steps=mac_artifacts,mac_dmg,mac_sit,windows_exe_installer,windows_sign,repair_utility_bundle_step,sources_archive \
|
||||
-Dintellij.build.unix.snaps=false \
|
||||
--java-argfile-target=java_argfile \
|
||||
/build/source \
|
||||
"$PWD" \
|
||||
${targetClass} \
|
||||
${targetName}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 -p python3 python3.pkgs.xmltodict
|
||||
import os
|
||||
import urllib
|
||||
from argparse import ArgumentParser
|
||||
from xmltodict import parse
|
||||
from json import dump
|
||||
@@ -22,11 +23,28 @@ def ensure_is_list(x):
|
||||
return x
|
||||
|
||||
def add_entries(sources, targets, hashes):
|
||||
for num, artefact in enumerate(sources):
|
||||
for artefact in sources:
|
||||
target = None
|
||||
base_jar_name = os.path.basename(urllib.parse.urlparse(artefact["@url"]).path)
|
||||
for candidate in targets:
|
||||
if candidate["@url"].endswith(base_jar_name + "!/"):
|
||||
target = candidate
|
||||
break
|
||||
if target is None:
|
||||
raise ValueError(f"Did not find target for source {artefact}")
|
||||
|
||||
url = artefact["@url"].removeprefix("file://$MAVEN_REPOSITORY$/")
|
||||
if url == artefact["@url"]:
|
||||
raise ValueError(f"Unexpected artefact URL {url}")
|
||||
|
||||
path = target["@url"].removeprefix("jar://$MAVEN_REPOSITORY$/").removesuffix("!/")
|
||||
if path == target["@url"]:
|
||||
raise ValueError(f"Unexpected target path {path}")
|
||||
|
||||
hashes.append({
|
||||
"url": artefact["@url"][26:],
|
||||
"url": url,
|
||||
"hash": artefact["sha256sum"],
|
||||
"path": targets[num]["@url"][25:-2]
|
||||
"path": path
|
||||
})
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,26 @@
|
||||
{
|
||||
runCommand,
|
||||
ant,
|
||||
jbr,
|
||||
|
||||
jpsHash,
|
||||
src,
|
||||
}:
|
||||
runCommand "jps-bootstrap-repository"
|
||||
{
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = jpsHash;
|
||||
nativeBuildInputs = [
|
||||
ant
|
||||
jbr
|
||||
];
|
||||
}
|
||||
''
|
||||
ant -Duser.home=$out -Dbuild.dir=$(mktemp -d) -f ${src}/platform/jps-bootstrap/jps-bootstrap-classpath.xml
|
||||
find $out -type f \( \
|
||||
-name \*.lastUpdated \
|
||||
-o -name resolver-status.properties \
|
||||
-o -name _remote.repositories \) \
|
||||
-delete
|
||||
''
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,52 +1,56 @@
|
||||
{
|
||||
"idea-oss": {
|
||||
"version": "2025.1.1.1",
|
||||
"buildNumber": "251.25410.129",
|
||||
"version": "2025.3.1",
|
||||
"buildNumber": "253.29346.138",
|
||||
"buildType": "idea",
|
||||
"ideaHash": "sha256-9YatnO+9Pcrlx7EXmq4wMVdeR3DzJF2fsQOvRWH11tk=",
|
||||
"androidHash": "sha256-ueMdEkXt/x5WIex163iwTlOm5bvZNluNO7SNxs+bPYs=",
|
||||
"jpsHash": "sha256-aOYCwDSso0X/7f5tWfP+veoQhCvd6tEDk9lq4YX/cb0=",
|
||||
"ideaHash": "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU=",
|
||||
"androidHash": "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY=",
|
||||
"jpsHash": "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk=",
|
||||
"restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=",
|
||||
"mvnDeps": "idea_maven_artefacts.json",
|
||||
"repositories": [
|
||||
"https://cache-redirector.jetbrains.com/repo1.maven.org/maven2",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ij/intellij-dependencies",
|
||||
"https://cache-redirector.jetbrains.com/dl.google.com/dl/android/maven2",
|
||||
"https://cache-redirector.jetbrains.com/download.jetbrains.com/teamcity-repository",
|
||||
"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/grazi/grazie-platform-public",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/kpm/public",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ki/maven",
|
||||
"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/public/p/compose/dev"
|
||||
"repo1.maven.org/maven2",
|
||||
"packages.jetbrains.team/maven/p/ij/intellij-dependencies",
|
||||
"dl.google.com/dl/android/maven2",
|
||||
"download.jetbrains.com/teamcity-repository",
|
||||
"maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies",
|
||||
"packages.jetbrains.team/maven/p/grazi/grazie-platform-public",
|
||||
"packages.jetbrains.team/maven/p/kpm/public",
|
||||
"packages.jetbrains.team/maven/p/ki/maven",
|
||||
"maven.pkg.jetbrains.space/public/p/compose/dev",
|
||||
"packages.jetbrains.team/maven/p/amper/amper",
|
||||
"packages.jetbrains.team/maven/p/kt/bootstrap"
|
||||
],
|
||||
"kotlin-jps-plugin": {
|
||||
"version": "2.1.10",
|
||||
"hash": "sha256-Bu5eCHxls6EoIgzadiEY31plAcxZ6DA2a10CXAtPqV4="
|
||||
"version": "2.2.20",
|
||||
"hash": "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ="
|
||||
}
|
||||
},
|
||||
"pycharm-oss": {
|
||||
"version": "2025.1.1.1",
|
||||
"buildNumber": "251.25410.159",
|
||||
"version": "2025.3.1",
|
||||
"buildNumber": "253.29346.142",
|
||||
"buildType": "pycharm",
|
||||
"ideaHash": "sha256-0VHoFk9/xKei4jvkEvl+9KiJwCoVPKh7g5EBSXQ+Ios=",
|
||||
"androidHash": "sha256-af1RJeU7BJTtYTvZRNcH77/Tn4j4lLsRRJUGS80rM4U=",
|
||||
"jpsHash": "sha256-aOYCwDSso0X/7f5tWfP+veoQhCvd6tEDk9lq4YX/cb0=",
|
||||
"ideaHash": "sha256-eAq/lgv6ZcN9SR2E1KYnnhDHe/rBQ3GqqbbF6GstDoU=",
|
||||
"androidHash": "sha256-quMCzrjCKIo1pkzw4PWewAs5tz7A2aq7TI5zd+QaaUY=",
|
||||
"jpsHash": "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk=",
|
||||
"restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=",
|
||||
"mvnDeps": "pycharm_maven_artefacts.json",
|
||||
"repositories": [
|
||||
"https://cache-redirector.jetbrains.com/repo1.maven.org/maven2",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ij/intellij-dependencies",
|
||||
"https://cache-redirector.jetbrains.com/dl.google.com/dl/android/maven2",
|
||||
"https://cache-redirector.jetbrains.com/download.jetbrains.com/teamcity-repository",
|
||||
"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/grazi/grazie-platform-public",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/kpm/public",
|
||||
"https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ki/maven",
|
||||
"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/public/p/compose/dev"
|
||||
"repo1.maven.org/maven2",
|
||||
"packages.jetbrains.team/maven/p/ij/intellij-dependencies",
|
||||
"dl.google.com/dl/android/maven2",
|
||||
"download.jetbrains.com/teamcity-repository",
|
||||
"maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies",
|
||||
"packages.jetbrains.team/maven/p/grazi/grazie-platform-public",
|
||||
"packages.jetbrains.team/maven/p/kpm/public",
|
||||
"packages.jetbrains.team/maven/p/ki/maven",
|
||||
"maven.pkg.jetbrains.space/public/p/compose/dev",
|
||||
"packages.jetbrains.team/maven/p/amper/amper",
|
||||
"packages.jetbrains.team/maven/p/kt/bootstrap"
|
||||
],
|
||||
"kotlin-jps-plugin": {
|
||||
"version": "2.1.10",
|
||||
"hash": "sha256-Bu5eCHxls6EoIgzadiEY31plAcxZ6DA2a10CXAtPqV4="
|
||||
"version": "2.2.20",
|
||||
"hash": "sha256-+jGghK2+yq+YFm5zT7ob+WTgTiJnHXAjDtlZjOzSISQ="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,21 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
# ! nix-shell -i python3 -p python3 python3.pkgs.xmltodict
|
||||
#! nix-shell -i python3 -p python3 python3.pkgs.packaging python3.pkgs.xmltodict python3.pkgs.requests nurl
|
||||
import os
|
||||
import subprocess
|
||||
import pprint
|
||||
import pathlib
|
||||
import requests
|
||||
import json
|
||||
import re
|
||||
from argparse import ArgumentParser
|
||||
from xmltodict import parse
|
||||
from json import dump, loads
|
||||
from sys import stdout
|
||||
from packaging import version
|
||||
|
||||
UPDATES_URL = "https://www.jetbrains.com/updates/updates.xml"
|
||||
IDES_FILE_PATH = pathlib.Path(__file__).parent.joinpath("..").joinpath("ides.json").resolve()
|
||||
|
||||
|
||||
def convert_hash_to_sri(base32: str) -> str:
|
||||
result = subprocess.run(["nix-hash", "--to-sri", "--type", "sha256", base32], capture_output=True, check=True, text=True)
|
||||
@@ -19,6 +28,38 @@ def ensure_is_list(x):
|
||||
return x
|
||||
|
||||
|
||||
def one_or_more(x):
|
||||
return x if isinstance(x, list) else [x]
|
||||
|
||||
|
||||
# TODO: Code duplication to update_bin.py - eventually refactor or merge scripts
|
||||
def download_channels():
|
||||
print(f"Checking for updates from {UPDATES_URL}")
|
||||
updates_response = requests.get(UPDATES_URL)
|
||||
updates_response.raise_for_status()
|
||||
root = parse(updates_response.text)
|
||||
products = root["products"]["product"]
|
||||
return {
|
||||
channel["@name"]: channel
|
||||
for product in products
|
||||
if "channel" in product
|
||||
for channel in one_or_more(product["channel"])
|
||||
}
|
||||
|
||||
|
||||
# TODO: Code duplication to update_bin.py - eventually refactor or merge scripts
|
||||
def build_version(build):
|
||||
build_number = build["@fullNumber"] if "@fullNumber" in build else build["@number"]
|
||||
return version.parse(build_number)
|
||||
|
||||
|
||||
# TODO: Code duplication to update_bin.py - eventually refactor or merge scripts
|
||||
def latest_build(channel):
|
||||
builds = one_or_more(channel["build"])
|
||||
latest = max(builds, key=build_version)
|
||||
return latest
|
||||
|
||||
|
||||
def jar_repositories(root_path: str) -> list[str]:
|
||||
repositories = []
|
||||
file_contents = parse(open(root_path + "/.idea/jarRepositories.xml").read())
|
||||
@@ -29,7 +70,11 @@ def jar_repositories(root_path: str) -> list[str]:
|
||||
for option in ensure_is_list(options):
|
||||
for item in option['option']:
|
||||
if item['@name'] == 'url':
|
||||
repositories.append(item['@value'])
|
||||
repositories.append(
|
||||
# Remove protocol and cache-redirector server, we only want the original URL. We try both the original
|
||||
# URL and the URL via the cache-redirector for download in build.nix
|
||||
re.sub(r'^https?://', '', item['@value']).removeprefix("cache-redirector.jetbrains.com/")
|
||||
)
|
||||
|
||||
return repositories
|
||||
|
||||
@@ -45,7 +90,7 @@ def kotlin_jps_plugin_info(root_path: str) -> (str, str):
|
||||
version = option['@value']
|
||||
|
||||
print(f"* Prefetching Kotlin JPS Plugin version {version}...")
|
||||
prefetch = subprocess.run(["nix-prefetch-url", "--type", "sha256", f"https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/{version}/kotlin-jps-plugin-classpath-{version}.jar"], capture_output=True, check=True, text=True)
|
||||
prefetch = subprocess.run(["nix-prefetch-url", "--type", "sha256", f"https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/kotlin/kotlin-jps-plugin-classpath/{version}/kotlin-jps-plugin-classpath-{version}.jar"], capture_output=True, check=True, text=True)
|
||||
|
||||
return (version, convert_hash_to_sri(prefetch.stdout.strip()))
|
||||
|
||||
@@ -80,34 +125,87 @@ def prefetch_android(variant: str, buildNumber: str) -> str:
|
||||
return convert_hash_to_sri(prefetch.stdout.strip())
|
||||
|
||||
|
||||
def get_args() -> (str, str):
|
||||
def generate_restarter_hash(nixpkgs_path: str, root_path: str) -> str:
|
||||
print("* Generating restarter Cargo hash...")
|
||||
root_name = pathlib.Path(root_path).name
|
||||
output = subprocess.run(["nurl", "--expr", f'''
|
||||
(import {nixpkgs_path} {{}}).rustPlatform.buildRustPackage {{
|
||||
name = "restarter";
|
||||
src = {root_path};
|
||||
sourceRoot = "{root_name}/native/restarter";
|
||||
cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
|
||||
}}
|
||||
'''], capture_output=True, check=True, text=True)
|
||||
return output.stdout.strip()
|
||||
|
||||
|
||||
def generate_jps_hash(nixpkgs_path: str, root_path: str) -> str:
|
||||
print("* Generating jps repo hash...")
|
||||
jps_repo_nix = pathlib.Path(__file__).parent.joinpath("jps_repo.nix").resolve()
|
||||
output = subprocess.run(["nurl", "--expr", f'''
|
||||
(import {nixpkgs_path} {{}}).callPackage {jps_repo_nix} {{
|
||||
jbr = (import {nixpkgs_path} {{}}).jetbrains.jdk-no-jcef;
|
||||
src = {root_path};
|
||||
jpsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
|
||||
}}
|
||||
'''], capture_output=True, check=True, text=True)
|
||||
return output.stdout.strip()
|
||||
|
||||
|
||||
def get_args() -> str:
|
||||
parser = ArgumentParser(
|
||||
description="Updates the IDEA / PyCharm source build infomations"
|
||||
)
|
||||
parser.add_argument("out", help="File to output json to")
|
||||
parser.add_argument("path", help="Path to the bin/versions.json file")
|
||||
args = parser.parse_args()
|
||||
return args.path, args.out
|
||||
return args.out
|
||||
|
||||
|
||||
# TODO: Code duplication to update_bin.py - eventually refactor or merge scripts
|
||||
def get_latest_versions(channels: dict, ides: dict, name: str) -> (str, str):
|
||||
update_channel = ides[name]['updateChannel']
|
||||
print(f"Fetching latest {name} (channel: {update_channel}) release...")
|
||||
channel = channels[update_channel]
|
||||
|
||||
build = latest_build(channel)
|
||||
new_version = build["@version"]
|
||||
new_build_number = ""
|
||||
if "@fullNumber" not in build:
|
||||
new_build_number = build["@number"]
|
||||
else:
|
||||
new_build_number = build["@fullNumber"]
|
||||
version_number = new_version.split(' ')[0]
|
||||
|
||||
print(f"* Version: {version_number} - Build: {new_build_number}")
|
||||
return version_number, new_build_number
|
||||
|
||||
|
||||
def main():
|
||||
versions_path, out = get_args()
|
||||
versions = loads(open(versions_path).read())
|
||||
idea_data = versions['x86_64-linux']['idea-oss']
|
||||
pycharm_data = versions['x86_64-linux']['pycharm-oss']
|
||||
out = get_args()
|
||||
|
||||
# source<jetbr.<editr.<applc.<pkgs <nixpkgs
|
||||
nixpkgs_path = pathlib.Path(__file__).parent.parent.parent.parent.parent.parent.resolve()
|
||||
assert nixpkgs_path.joinpath("pkgs").is_dir(), f"nixpkgs_path ({nixpkgs_path}) doesn't seem to point to the root of the repo, please check if things were moved."
|
||||
|
||||
channels = download_channels()
|
||||
with open(IDES_FILE_PATH, "r") as ides_file:
|
||||
ides = json.load(ides_file)
|
||||
|
||||
idea_version, idea_build = get_latest_versions(channels, ides, 'idea-oss')
|
||||
pycharm_version, pycharm_build = get_latest_versions(channels, ides, 'pycharm-oss')
|
||||
|
||||
result = { 'idea-oss': {}, 'pycharm-oss': {} }
|
||||
result['idea-oss']['version'] = idea_data['version']
|
||||
result['idea-oss']['buildNumber'] = idea_data['build_number']
|
||||
result['idea-oss']['version'] = idea_version
|
||||
result['idea-oss']['buildNumber'] = idea_build
|
||||
result['idea-oss']['buildType'] = 'idea'
|
||||
result['pycharm-oss']['version'] = pycharm_data['version']
|
||||
result['pycharm-oss']['buildNumber'] = pycharm_data['build_number']
|
||||
result['pycharm-oss']['version'] = pycharm_version
|
||||
result['pycharm-oss']['buildNumber'] = pycharm_build
|
||||
result['pycharm-oss']['buildType'] = 'pycharm'
|
||||
print('Fetching IDEA info...')
|
||||
result['idea-oss']['ideaHash'], ideaOutPath = prefetch_intellij_community('idea', result['idea-oss']['buildNumber'])
|
||||
result['idea-oss']['androidHash'] = prefetch_android('idea', result['idea-oss']['buildNumber'])
|
||||
result['idea-oss']['jpsHash'] = ''
|
||||
result['idea-oss']['restarterHash'] = ''
|
||||
result['idea-oss']['jpsHash'] = generate_jps_hash(nixpkgs_path, ideaOutPath)
|
||||
result['idea-oss']['restarterHash'] = generate_restarter_hash(nixpkgs_path, ideaOutPath)
|
||||
result['idea-oss']['mvnDeps'] = 'idea_maven_artefacts.json'
|
||||
result['idea-oss']['repositories'] = jar_repositories(ideaOutPath)
|
||||
result['idea-oss']['kotlin-jps-plugin'] = {}
|
||||
@@ -117,8 +215,8 @@ def main():
|
||||
print('Fetching PyCharm info...')
|
||||
result['pycharm-oss']['ideaHash'], pycharmOutPath = prefetch_intellij_community('pycharm', result['pycharm-oss']['buildNumber'])
|
||||
result['pycharm-oss']['androidHash'] = prefetch_android('pycharm', result['pycharm-oss']['buildNumber'])
|
||||
result['pycharm-oss']['jpsHash'] = ''
|
||||
result['pycharm-oss']['restarterHash'] = ''
|
||||
result['pycharm-oss']['jpsHash'] = generate_jps_hash(nixpkgs_path, pycharmOutPath)
|
||||
result['pycharm-oss']['restarterHash'] = generate_restarter_hash(nixpkgs_path, pycharmOutPath)
|
||||
result['pycharm-oss']['mvnDeps'] = 'pycharm_maven_artefacts.json'
|
||||
result['pycharm-oss']['repositories'] = jar_repositories(pycharmOutPath)
|
||||
result['pycharm-oss']['kotlin-jps-plugin'] = {}
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
ripgrep,
|
||||
hasVsceSign ? false,
|
||||
patchVSCodePath ? true,
|
||||
imagemagick,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (
|
||||
@@ -249,6 +250,7 @@ stdenv.mkDerivation (
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
imagemagick
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
autoPatchelfHook
|
||||
@@ -289,7 +291,13 @@ stdenv.mkDerivation (
|
||||
# These are named vscode.png, vscode-insiders.png, etc to match the name in upstream *.deb packages.
|
||||
+ ''
|
||||
mkdir -p "$out/share/pixmaps"
|
||||
cp "$out/lib/${libraryName}/resources/app/resources/linux/code.png" "$out/share/pixmaps/${iconName}.png"
|
||||
icon_file="$out/lib/${libraryName}/resources/app/resources/linux/code.png"
|
||||
cp "$icon_file" "$out/share/pixmaps/${iconName}.png"
|
||||
|
||||
# Dynamically determine size of icon and place in appropriate directory
|
||||
size=$(identify -format "%wx%h" "$icon_file")
|
||||
mkdir -p "$out/share/icons/hicolor/$size/apps"
|
||||
cp "$icon_file" "$out/share/icons/hicolor/$size/apps/${iconName}.png"
|
||||
''
|
||||
)
|
||||
# Override the previously determined VSCODE_PATH with the one we know to be correct
|
||||
|
||||
@@ -11,18 +11,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "age-plugin-tpm";
|
||||
version = "0.3.0";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Foxboron";
|
||||
repo = "age-plugin-tpm";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-yr1PSSmcUoOrQ8VMQEoaCLNvDO+3+6N7XXdNUyYVz9M=";
|
||||
hash = "sha256-Vr6simVW5nAWTa8Dro2gar2+O90T8u6h09wTnEnygss=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-VEx6qP02QcwETOQUkMsrqVb+cOElceXcTDaUr480ngs=";
|
||||
vendorHash = "sha256-CbgDGyVQ9MTYCe56M1VzMnap5P6Y9p4jnK8tyr3zh20=";
|
||||
|
||||
nativeCheckInputs = [
|
||||
age
|
||||
|
||||
@@ -12,44 +12,38 @@
|
||||
age-plugin-1p,
|
||||
makeWrapper,
|
||||
runCommand,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule (final: {
|
||||
pname = "age";
|
||||
version = "1.2.1";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FiloSottile";
|
||||
repo = "age";
|
||||
tag = "v${final.version}";
|
||||
hash = "sha256-9ZJdrmqBj43zSvStt0r25wjSfnvitdx3GYtM3urHcaA=";
|
||||
hash = "sha256-Qs/q3zQYV0PukABBPf/aU5V1oOhw95NG6K301VYJk8A=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ilRLEV7qOBZbqzg2XQi4kt0JAb/1ftT4JmahYT0zSRU=";
|
||||
vendorHash = "sha256-iVDkYXXR2pXlUVywPgVRNMORxOOEhAmzpSM0xqSQMSQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.Version=${final.version}"
|
||||
"-X main.Version=v${final.version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
];
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
preInstall = ''
|
||||
installManPage doc/*.1
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
if [[ "$("$out/bin/${final.pname}" --version)" == "${final.version}" ]]; then
|
||||
echo '${final.pname} smoke check passed'
|
||||
else
|
||||
echo '${final.pname} smoke check failed'
|
||||
return 1
|
||||
fi
|
||||
'';
|
||||
|
||||
# plugin test is flaky, see https://github.com/FiloSottile/age/issues/517
|
||||
checkFlags = [
|
||||
@@ -73,14 +67,12 @@ buildGoModule (final: {
|
||||
# convenience function for wrapping sops with plugins
|
||||
passthru.withPlugins =
|
||||
filter:
|
||||
runCommand "age-${final.version}-with-plugins"
|
||||
{
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
}
|
||||
''
|
||||
makeWrapper ${lib.getBin final.finalPackage}/bin/age $out/bin/age \
|
||||
--prefix PATH : "${lib.makeBinPath (filter final.passthru.plugins)}"
|
||||
'';
|
||||
runCommand "age-${final.version}-with-plugins" { nativeBuildInputs = [ makeWrapper ]; } ''
|
||||
makeWrapper ${lib.getBin final.finalPackage}/bin/age $out/bin/age \
|
||||
--prefix PATH : "${lib.makeBinPath (filter final.passthru.plugins)}"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/FiloSottile/age/releases/tag/v${final.version}";
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
buildGoModule {
|
||||
pname = "agneyastra";
|
||||
version = "0-unstable-2025-11-06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JA3G3R";
|
||||
repo = "agneyastra";
|
||||
# https://github.com/JA3G3R/agneyastra/issues/1
|
||||
rev = "16a90ecc7189e12261a24b88e6d6ac24b7f3b216";
|
||||
hash = "sha256-I3BzHS7D8ZVRLzx8TlUmebw96wTVwSkAAKsDqJ2Ekj8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-urAw78X6mY2O+rLdQvA6eubFk7XmzEzPQPKc/QudVTQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Firebase Misconfiguration Detection Toolkit";
|
||||
homepage = "https://github.com/JA3G3R/agneyastra";
|
||||
# https://github.com/JA3G3R/agneyastra/issues/2
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "agneyastra";
|
||||
};
|
||||
}
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-expand";
|
||||
version = "1.0.118";
|
||||
version = "1.0.119";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dtolnay";
|
||||
repo = "cargo-expand";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-+n4eiwcToXtWMPmvE41kOcZHzgugjekxQkodDagDjhI=";
|
||||
hash = "sha256-N48BUPnVnMJSiM3EzpSiDNLGZNWFW05toHRhokNO5gI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Di7Nnp8qYqpTkKmmUYoKxSkntepG80vVF2AkaN5yW+U=";
|
||||
cargoHash = "sha256-a8swmPQ+JuE/tqRYbV+kekZV8TloxszYq9k8VOGRBrM=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-leptos";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leptos-rs";
|
||||
repo = "cargo-leptos";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vQZpw0hnBQRXmt4KsThcVwLtRwSpbjaGfojCIgfOn7E=";
|
||||
hash = "sha256-aH7b9Dbz4vbh9X4RuhFdmu2U1sgGgbLUZxmwhVxW248=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-WlzkTZHWDkE2rhH+fi8+aa/mkjBEVwQK8cTxd2JUuZ8=";
|
||||
cargoHash = "sha256-P+mavyLehmujVKBRLmK80T/o7Lu8rl8E0LzV23c6fJA=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -33,13 +33,13 @@ lib.checkListOfEnum "${pname}: theme accent"
|
||||
stdenvNoCC.mkDerivation
|
||||
{
|
||||
inherit pname;
|
||||
version = "0-unstable-2025-11-15";
|
||||
version = "0-unstable-2025-12-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "Kvantum";
|
||||
rev = "1156e5437435282b47ac6856acd9d0feef1ed929";
|
||||
hash = "sha256-V5Upqkil9Q2MeEPtEAemirbJxnEyYcM3Z8jiyz//ccw=";
|
||||
rev = "71105d224fef95dd023691303477ce3eea487457";
|
||||
hash = "sha256-gcvCVZjVbj5fRZWaM+mZTwH/g158MH36JmMuMgCBuqQ=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
circt,
|
||||
llvm,
|
||||
python3,
|
||||
zstd,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = circt.pname + "-llvm";
|
||||
@@ -19,21 +20,27 @@ stdenv.mkDerivation {
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# This is needed for darwin builds
|
||||
zstd
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd llvm/llvm
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DLLVM_ENABLE_BINDINGS=OFF"
|
||||
"-DLLVM_ENABLE_OCAMLDOC=OFF"
|
||||
"-DLLVM_BUILD_EXAMPLES=OFF"
|
||||
"-DLLVM_OPTIMIZED_TABLEGEN=ON"
|
||||
"-DLLVM_ENABLE_PROJECTS=mlir"
|
||||
"-DLLVM_TARGETS_TO_BUILD=Native"
|
||||
|
||||
# This option is needed to install llvm-config
|
||||
"-DLLVM_INSTALL_UTILS=ON"
|
||||
# Based on utils/build-llvm.sh
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
(lib.cmakeBool "LLVM_BUILD_EXAMPLES" false)
|
||||
(lib.cmakeBool "LLVM_ENABLE_ASSERTIONS" true)
|
||||
(lib.cmakeBool "LLVM_ENABLE_BINDINGS" false)
|
||||
(lib.cmakeBool "LLVM_ENABLE_OCAMLDOC" false)
|
||||
(lib.cmakeFeature "LLVM_ENABLE_PROJECTS" "mlir")
|
||||
(lib.cmakeBool "LLVM_INSTALL_UTILS" true)
|
||||
(lib.cmakeBool "LLVM_INSTALL_GTEST" true)
|
||||
(lib.cmakeBool "LLVM_OPTIMIZED_TABLEGEN" true)
|
||||
(lib.cmakeFeature "LLVM_TARGETS_TO_BUILD" "host")
|
||||
];
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -9,8 +9,16 @@
|
||||
ninja,
|
||||
lit,
|
||||
z3,
|
||||
sv-lang,
|
||||
fmt,
|
||||
boost,
|
||||
mimalloc,
|
||||
gitUpdater,
|
||||
callPackage,
|
||||
versionCheckHook,
|
||||
|
||||
# sv-lang (slang) build is broken on darwin
|
||||
enableSlangFrontend ? stdenv.hostPlatform.isLinux,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -19,12 +27,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "circt";
|
||||
version = "1.131.0";
|
||||
version = "1.138.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "llvm";
|
||||
repo = "circt";
|
||||
rev = "firtool-${version}";
|
||||
hash = "sha256-im+w6vYsLdJ/i88mG/anFjPYgE1HfvJIemLEse0pzco=";
|
||||
hash = "sha256-yx6sk6FO7MHNuRFBMhOXTSjtDQ0B6XyhGHb4uHSXx/8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -36,16 +44,28 @@ stdenv.mkDerivation rec {
|
||||
git
|
||||
pythonEnv
|
||||
z3
|
||||
versionCheckHook
|
||||
];
|
||||
buildInputs = [
|
||||
circt-llvm
|
||||
]
|
||||
++ lib.optionals enableSlangFrontend [
|
||||
boost
|
||||
fmt
|
||||
mimalloc
|
||||
sv-lang
|
||||
];
|
||||
buildInputs = [ circt-llvm ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DMLIR_DIR=${circt-llvm.dev}/lib/cmake/mlir"
|
||||
|
||||
# Based on .github/workflows/buildAndTest.yml:211
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
||||
(lib.cmakeBool "LLVM_ENABLE_ASSERTIONS" false)
|
||||
(lib.cmakeFeature "MLIR_DIR" "${circt-llvm.dev}/lib/cmake/mlir")
|
||||
(lib.cmakeFeature "LLVM_DIR" "${circt-llvm.dev}/lib/cmake/llvm")
|
||||
# LLVM_EXTERNAL_LIT is executed by python3, the wrapped bash script will not work
|
||||
"-DLLVM_EXTERNAL_LIT=${lit}/bin/.lit-wrapped"
|
||||
"-DCIRCT_LLHD_SIM_ENABLED=OFF"
|
||||
(lib.cmakeFeature "LLVM_EXTERNAL_LIT" "${lit}/bin/.lit-wrapped")
|
||||
(lib.cmakeBool "CIRCT_SLANG_FRONTEND_ENABLED" enableSlangFrontend)
|
||||
(lib.cmakeBool "CIRCT_SLANG_BUILD_FROM_SOURCE" false)
|
||||
];
|
||||
|
||||
# cannot use lib.optionalString as it creates an empty string, disabling all tests
|
||||
@@ -76,6 +96,7 @@ stdenv.mkDerivation rec {
|
||||
"CIRCT :: circt-reduce/.*\\.mlir"
|
||||
"CIRCT :: circt-test/basic.mlir"
|
||||
"CIRCT :: firld/.*\\.mlir"
|
||||
"CIRCT :: Tools/domaintool/clock-spec-json.mlir"
|
||||
]
|
||||
++ [
|
||||
# Temporarily disable for bump: https://github.com/llvm/circt/issues/8000
|
||||
@@ -88,6 +109,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs tools/circt-test
|
||||
|
||||
substituteInPlace \
|
||||
lib/Tools/circt-verilog-lsp-server/VerilogServerImpl/CMakeLists.txt \
|
||||
lib/Conversion/ImportVerilog/CMakeLists.txt \
|
||||
--replace-fail "slang_slang" "slang::slang"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
@@ -103,7 +129,11 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "check-circt check-circt-integration";
|
||||
checkTarget = "check-circt check-circt-unit";
|
||||
|
||||
doInstallCheck = true;
|
||||
versionCheckProgram = "${placeholder "out"}/bin/firtool";
|
||||
versionCheckProgramArg = "--version";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
|
||||
@@ -11,16 +11,16 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clouddrive2";
|
||||
version = "0.9.17";
|
||||
version = "0.9.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${finalAttrs.version}/clouddrive-2-${os}-${arch}-${finalAttrs.version}.tgz";
|
||||
hash =
|
||||
{
|
||||
x86_64-linux = "sha256-AAGgtofApbyW/4TiqmC5tAPsiBIz1G2nYkbcvoKMO6k=";
|
||||
aarch64-linux = "sha256-r0Bx0sf4chVBbxZsg3AoaF+CmTjFniIFb3Fa4BNpk4E=";
|
||||
x86_64-darwin = "sha256-MtmYWGmv7+LimuWBlXdtBy1utkaDrjCjMrqtxlLSb/o=";
|
||||
aarch64-darwin = "sha256-/tfkjWXpzE8cxx665KHR4T+VAbymd0loEGLNK206Yag=";
|
||||
x86_64-linux = "sha256-FTddo953oYhAwSXTiLWIN2y3BV6Q+cy8sE6dNJKghiU=";
|
||||
aarch64-linux = "sha256-j23/P9CDb+0+gheMMbxE7NyHmnhHmPRWLc9SvD27pRs=";
|
||||
x86_64-darwin = "sha256-YiCkYrDldm5JcAheTCUC/gg1ZgMxMue/bcz1gEjXdy0=";
|
||||
aarch64-darwin = "sha256-CbzA38bkavPGJko0x/JqBxkx5CP7wM6iDEB2aejZrN4=";
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
makeWrapper,
|
||||
nodejs,
|
||||
pnpm_8,
|
||||
pnpm_10,
|
||||
fetchPnpmDeps,
|
||||
pnpmConfigHook,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "concurrently";
|
||||
version = "8.2.2";
|
||||
version = "9.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-cli-tools";
|
||||
repo = "concurrently";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-VoyVYBOBMguFKnG2VItk1L5BbF72nO7bYJpb7adqICs=";
|
||||
hash = "sha256-PKbrYgQ6D0vxMSxx+aHBo09NJZh5YYfb9Fx9L5Ue8vM=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
@@ -25,26 +26,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pname
|
||||
version
|
||||
src
|
||||
patches
|
||||
;
|
||||
pnpm = pnpm_8;
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-F1teWIABkK0mqZcK3RdGNKmexI/C59QWSrrD1jYbHt0=";
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-UVsmOneTICl3Ybmv7ebebkXmr1qwNh17dPhL0qlPgyg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "use-pnpm-8.patch";
|
||||
url = "https://github.com/open-cli-tools/concurrently/commit/0b67a1a5a335396340f4347886fb9d0968a57555.patch";
|
||||
hash = "sha256-mxid2Yl9S6+mpN7OLUCrJ1vS0bQ/UwNiGJ0DL6Zn//Q=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
nodejs
|
||||
pnpmConfigHook
|
||||
pnpm_8
|
||||
pnpm_10
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
@@ -55,6 +47,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
# remove unnecessary files
|
||||
CI=true pnpm --ignore-scripts --prod prune
|
||||
find -type f \( -name "*.ts" -o -name "*.map" \) -exec rm -rf {} +
|
||||
# https://github.com/pnpm/pnpm/issues/3645
|
||||
find node_modules -xtype l -delete
|
||||
|
||||
# remove non-deterministic files
|
||||
rm node_modules/{.modules.yaml,.pnpm-workspace-state-v1.json}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -63,10 +66,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
makeWrapper "${lib.getExe nodejs}" "$out/bin/concurrently" \
|
||||
--add-flags "$out/lib/concurrently/dist/bin/concurrently.js"
|
||||
ln -s "$out/bin/concurrently" "$out/bin/con"
|
||||
cp package.json "$out/lib/concurrently/"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgramArg = "--version";
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/open-cli-tools/concurrently/releases/tag/v${finalAttrs.version}";
|
||||
description = "Run commands concurrently";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ddns-go";
|
||||
version = "6.14.0";
|
||||
version = "6.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jeessy2";
|
||||
repo = "ddns-go";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jx9Mvb40lDWxZp47fbHs0M+f8VQCBnzHb0bQiLRby1M=";
|
||||
hash = "sha256-c+V+EgJvElL/Ga0z6420E50c59cmjn/IlkfyeATLDFs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-CtbbyI7sL1Ej4WDWkEZoRFngiwWpzSwvAKAWQwiMD1E=";
|
||||
vendorHash = "sha256-vpdT1apjuMvM6MmQfx1XBQtQznK7oxUjIdkgOXjUF6g=";
|
||||
|
||||
ldflags = [
|
||||
"-X main.version=${version}"
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
}:
|
||||
let
|
||||
pname = "dependabot-cli";
|
||||
version = "1.79.0";
|
||||
version = "1.80.0";
|
||||
|
||||
# `tag` is what `dependabot` uses to find the relevant docker images.
|
||||
tag = "nixpkgs-dependabot-cli-${version}";
|
||||
|
||||
# Get these hashes from
|
||||
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy --image-tag latest --final-image-name dependabot-update-job-proxy --final-image-tag ${tag}
|
||||
updateJobProxy.imageDigest = "sha256:e3361d9ba33ffcb1c72b2ac9feba766f0e941b0bf2b692029948f60262708ffa";
|
||||
updateJobProxy.hash = "sha256-1TPyyD2a4IN9UoAEZJCHFiOhsP/vIowuy0WfgSmRHpI=";
|
||||
updateJobProxy.imageDigest = "sha256:3a7868b09318bef45224e475c3a018deba34f65f451f3ddd5b852b440c65fb83";
|
||||
updateJobProxy.hash = "sha256-PVFo/PT7l3iR5FTt+jDrGVupc6zPoDpiw9Pxqp3yprU=";
|
||||
|
||||
# Get these hashes from
|
||||
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/dependabot/dependabot-updater-github-actions --image-tag latest --final-image-name dependabot-updater-github-actions --final-image-tag ${tag}
|
||||
updaterGitHubActions.imageDigest = "sha256:01cad8bab547d5041cf11cb2f0287f091695d5971d3f7fb93b97817727093a2c";
|
||||
updaterGitHubActions.hash = "sha256-whFMv7MeyKeFmCDaoG6CxxENcHDC4HNmuNuA3AQTJJI=";
|
||||
updaterGitHubActions.imageDigest = "sha256:a791d0ef463a059dc371ef62c6d1ac341a7e1197ed871a0a6451371a8710cd0e";
|
||||
updaterGitHubActions.hash = "sha256-uNqif7HesnXeiGOrc4sC2fgSAHNFJwVwrA3iIv8fVYc=";
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version;
|
||||
@@ -34,7 +34,7 @@ buildGoModule {
|
||||
owner = "dependabot";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JHuqgurzEO5XA7OHP32X9DcFpZbjbn/h5fZJXCUmOdE=";
|
||||
hash = "sha256-5SD4VIa11r2P9YbURby6Sgi58lv03UB9X5UDOZxjVLQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-dD48OKpuGAJAro7qV4tqpf/uENV2X1VQ2kUvAuJLXc0=";
|
||||
|
||||
+2250
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nodejs,
|
||||
}:
|
||||
|
||||
buildNpmPackage {
|
||||
pname = "deye-dummycloud";
|
||||
version = "c36009e";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Hypfer";
|
||||
repo = "deye-microinverter-cloud-free";
|
||||
rev = "c36009e5c1711aa0f76bd17d63e33322535a87f9";
|
||||
hash = "sha256-ARd2Vi305lErYAZ3FN+hXocHCHxC3gr6mbrPn032zxc=";
|
||||
};
|
||||
sourceRoot = "source/dummycloud";
|
||||
npmDepsHash = "sha256-zN+iE9M12osr72z9Jvp80SdLeGahz7drvF+kx7914AE=";
|
||||
|
||||
patches = [ ./0001-packge.json-Remove-dev-dependencies-for-repoducible-.patch ];
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
meta = {
|
||||
description = "A dummy cloud server for DEYE microinverters (Node.js) and bridge to mqtt";
|
||||
homepage = "https://github.com/Hypfer/deye-microinverter-cloud-free";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ poeschel ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "diylc";
|
||||
version = "5.6.0";
|
||||
version = "5.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/bancika/diy-layout-creator/releases/download/v${finalAttrs.version}/diylc-${finalAttrs.version}-universal.zip";
|
||||
hash = "sha256-y47md9kaiqpmx+ZNTm5PCHiNMMR9zjsvjc2xpVD6FAk=";
|
||||
hash = "sha256-0402HeOQrLJSor4bERyAkIO65kUYMLq2wo1ZgKLcMn4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
|
||||
python3Packages.buildPythonPackage {
|
||||
pname = "edl";
|
||||
version = "3.52.1-unstable-2025-09-10";
|
||||
version = "3.52.1-unstable-2025-12-17";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bkerler";
|
||||
repo = "edl";
|
||||
rev = "334028cd887a2960867750c403dbcad9cbe8c46b";
|
||||
rev = "dffc6833ad51fb7e561c7c2bd26057edd18d9f7a";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-OYrncVbCJkeONeztfj7cB3QW1Q0tlF1b/LeuMqKiblk=";
|
||||
hash = "sha256-wdcA+pw7kUA7kSWIv6Wi+vmFFWGuC5LLds1oeEeGpOE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
||||
@@ -33,14 +33,14 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fcft";
|
||||
version = "3.3.2";
|
||||
version = "3.3.3";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "dnkl";
|
||||
repo = "fcft";
|
||||
rev = version;
|
||||
hash = "sha256-a+lELkEjMtqeBYGj6yl+OoQ+I6neyJt6a1T83B2KWOk=";
|
||||
hash = "sha256-MkGlph9WpqH4daov5ZZPO2ua2mUbrsuo8Xk6GoKhoxg=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://gitlab.com/adhami3310/Footage";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ onny ];
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "github-backup";
|
||||
version = "0.58.0";
|
||||
version = "0.60.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "josegonzalez";
|
||||
repo = "python-github-backup";
|
||||
tag = version;
|
||||
hash = "sha256-i1o8GX3xxWft04sLspq9Oy2a46ldJeFqs5OgEjTti4E=";
|
||||
hash = "sha256-dK6qkso5GOV/eZRGcwOCKn8faMuTr7czTvISLioKgVs=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
||||
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
|
||||
};
|
||||
|
||||
# Fix linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
|
||||
patches = [ ./x11.patch ];
|
||||
patches = [ ./x11.patch ] ++ (lib.optional withMinecraftPatch ./window-position.patch);
|
||||
prePatch = lib.optionalString withMinecraftPatch ''
|
||||
patches+=(${minecraftPatches}/patches/*.patch)
|
||||
'';
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 807d9b0efe86e85a54cd2daf7da2ba1591b39f14 Mon Sep 17 00:00:00 2001
|
||||
From: uku <hi@uku.moe>
|
||||
Date: Sat, 27 Dec 2025 19:25:42 +0100
|
||||
Subject: [PATCH] fix: dismiss warning about window position being unavailable
|
||||
|
||||
In addition to the other glfw patches, this one is required on certain
|
||||
compositors such as niri and waywall to be able to launch Minecraft at
|
||||
all.
|
||||
---
|
||||
src/wl_window.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/wl_window.c b/src/wl_window.c
|
||||
index ad39b2e0..38f86a17 100644
|
||||
--- a/src/wl_window.c
|
||||
+++ b/src/wl_window.c
|
||||
@@ -2293,8 +2293,8 @@ void _glfwGetWindowPosWayland(_GLFWwindow* window, int* xpos, int* ypos)
|
||||
// A Wayland client is not aware of its position, so just warn and leave it
|
||||
// as (0, 0)
|
||||
|
||||
- _glfwInputError(GLFW_FEATURE_UNAVAILABLE,
|
||||
- "Wayland: The platform does not provide the window position");
|
||||
+ fprintf(stderr,
|
||||
+ "[GLFW] Wayland: The platform does not provide the window position\n");
|
||||
}
|
||||
|
||||
void _glfwSetWindowPosWayland(_GLFWwindow* window, int xpos, int ypos)
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
stdenv,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -36,11 +37,14 @@ buildGoModule rec {
|
||||
--zsh <($out/bin/glow completion zsh)
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Render markdown on the CLI, with pizzazz";
|
||||
homepage = "https://github.com/charmbracelet/glow";
|
||||
changelog = "https://github.com/charmbracelet/glow/releases/tag/v${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ higherorderlogic ];
|
||||
mainProgram = "glow";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "hexdino";
|
||||
version = "0.1.3";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Luz";
|
||||
repo = "hexdino";
|
||||
rev = version;
|
||||
hash = "sha256-glbyftCJiP0/5trW7DOcVCU2q4ZH3zFK96eyGuYR8eY=";
|
||||
hash = "sha256-M1lUm8rJj9c+9MgU7AJvk/ZVuTC1QYPsHRQxCQTc3WI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-NfVtNoTDGx3MGOe+bUOCgjSs8ZTfxMSCTp09sXOfUPs=";
|
||||
cargoHash = "sha256-IZhQ80iDO6l1FLAbq2l7QLpjoenkri3wBdQ6Mnz+BOI=";
|
||||
|
||||
meta = {
|
||||
description = "Hex editor with vim like keybindings written in Rust";
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "homebank";
|
||||
version = "5.9.6";
|
||||
version = "5.9.7";
|
||||
src = fetchurl {
|
||||
url = "https://www.gethomebank.org/public/sources/homebank-${version}.tar.gz";
|
||||
hash = "sha256-8DIL/gTysY/e1DcuuJ5qY6vXUBY4uUWNoSzUaCQ+t3o=";
|
||||
hash = "sha256-K4/fUSQpow7XpFfPWvR2dWwM/dyfznYA2rlcfwO+JuQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "hugo";
|
||||
version = "0.152.2";
|
||||
version = "0.153.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gohugoio";
|
||||
repo = "hugo";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nSWeCRhbaEgr54VDstBKnouUeWR1JjLXEqtYUcEMdyQ=";
|
||||
hash = "sha256-EJYBIElh1akj8/cYzd/5hUNJtmFK/BxgWTg5jo2/xS4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-3cIz3SWV/3vYhCgFEGAa+mOaUCzsJurkI2rPtVANE38=";
|
||||
vendorHash = "sha256-cTrqnZdRCLthZCpXqbfIS1quySyB2lWxbxP/4k2nASQ=";
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "inconsolata";
|
||||
version = "3.001";
|
||||
|
||||
@@ -12,11 +12,14 @@ stdenv.mkDerivation {
|
||||
owner = "google";
|
||||
repo = "fonts";
|
||||
rev = "0f203e3740b5eb77e0b179dff1e5869482676782";
|
||||
sha256 = "sha256-Q8eUJ0mkoB245Ifz5ulxx61x4+AqKhG0uqhWF2nSLpw=";
|
||||
hash = "sha256-4+aIjVO9/L4mCWGYqL1drFehHZTjRL25vTwh3c7GoFk=";
|
||||
rootDir = "ofl/inconsolata";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/static/*.ttf $src/ofl/inconsolata/*.ttf
|
||||
runHook preInstall
|
||||
install -m644 --target $out/share/fonts/truetype/inconsolata -D static/*.ttf *.ttf
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
||||
Generated
+117
-117
@@ -709,13 +709,13 @@
|
||||
"jar": "sha256-bNkZkTI917L7KMqT16wSr1qGovUyeeKzWCezAxP9C58=",
|
||||
"pom": "sha256-rECp8tDB7mMfw7CO+OLwvRS6IgEcp2/xvPZftWnq3zU="
|
||||
},
|
||||
"org/gradle/kotlin#gradle-kotlin-dsl-plugins/6.2.0": {
|
||||
"jar": "sha256-i/+sU1wrfiY/wwPwhdbgg9LZpE0nXWCmJbalFpmEDUs=",
|
||||
"module": "sha256-BC5gnbaQwxZ7aeWaIjNMWrASYYMeOMwILjch0KxdYcI=",
|
||||
"pom": "sha256-w/TTKxfHro5uyElSHN78u8uHwdBW4ISlrnzziO1rkqs="
|
||||
"org/gradle/kotlin#gradle-kotlin-dsl-plugins/6.4.1": {
|
||||
"jar": "sha256-JolZk48cG8O1VeIihdIEVdoPOrCAaEuSfBvK5VTZFNM=",
|
||||
"module": "sha256-QfjCNSMXc2dWDubRXMC9a8GqRP6x2BjXihzt2+IMC40=",
|
||||
"pom": "sha256-G9F/hR9bve0OCz16YZzBdxKrmEXqpFu8ypBxX86jEF8="
|
||||
},
|
||||
"org/gradle/kotlin/kotlin-dsl#org.gradle.kotlin.kotlin-dsl.gradle.plugin/6.2.0": {
|
||||
"pom": "sha256-tIUcmutueaoXqVKIMVxU+is1F8TNu8LaC38bcQwdLXE="
|
||||
"org/gradle/kotlin/kotlin-dsl#org.gradle.kotlin.kotlin-dsl.gradle.plugin/6.4.1": {
|
||||
"pom": "sha256-9FhdUWKX7VtEyA0nq82/XKA0aCx1B4E+8UAHLhDYts4="
|
||||
},
|
||||
"org/gradle/toolchains#foojay-resolver/1.0.0": {
|
||||
"jar": "sha256-eLhqR9/fdpfJvRXaeJg/2A2nJH1uAvwQa98H4DiLYKg=",
|
||||
@@ -819,146 +819,146 @@
|
||||
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
|
||||
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||
},
|
||||
"org/jetbrains/kotlin#abi-tools-api/2.2.0": {
|
||||
"jar": "sha256-hxeDiGZkLjvdR+yeAmC70wdujH6GvgXirahoMesq+Qo=",
|
||||
"pom": "sha256-UwmmvuGytgrDtfXTXMS2zDiKFzOA17jeqgIJ6wgUnpA="
|
||||
"org/jetbrains/kotlin#abi-tools-api/2.2.20": {
|
||||
"jar": "sha256-8chm6sXcCI8/0IEQCENAm/TxYSu7mY+6ofaFMlyuDVU=",
|
||||
"pom": "sha256-HOL7NczYP8vJCuXFmN/bsilS0IVHgElEpbIfLEbKwL0="
|
||||
},
|
||||
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.2.0": {
|
||||
"module": "sha256-5d0u34ivdW30d1ra13xS0AkDUav1EZLPGdP+YsZnyrg=",
|
||||
"pom": "sha256-Qejc6FcbX7TuAzURlYL+IoBQqP8ZPiRg1SmMX5Dj1nU="
|
||||
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.2.20": {
|
||||
"module": "sha256-n+aVWzf+KQtlFiXPnGgea6IKjxLEZYzOUCblk1BaMSk=",
|
||||
"pom": "sha256-P6gmRiy9hG0YAgLyLFGTQYy5zan2lcmUEjWpsbXBQdk="
|
||||
},
|
||||
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.2.0/gradle813": {
|
||||
"jar": "sha256-0M+f8jrTjCEO7QzCWlExWjhOYf3BWlP+uGwAvuaRqug="
|
||||
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.2.20/gradle813": {
|
||||
"jar": "sha256-OmlZW2x1+/ktMgFodFxpj/cRS4YHhBBQ1ISYgjAG6HE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-assignment-compiler-plugin-embeddable/2.2.0": {
|
||||
"jar": "sha256-caw8dQsO5FH6zdSYInQLKIi5f8rzMWruOxfTpMTvUro=",
|
||||
"pom": "sha256-Ge0cc5y8KCJVINrxd/QcDFq3ROAE1GjPMZRZI5t8MD8="
|
||||
"org/jetbrains/kotlin#kotlin-assignment-compiler-plugin-embeddable/2.2.20": {
|
||||
"jar": "sha256-07TapcbMI1Zfj7k2NI84xCGgRhFjdF02rt9E096UJQo=",
|
||||
"pom": "sha256-L/XBHfd+t6JZdmzdqed47WW6SFxYxhO7ppAoauzi3H0="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-assignment/2.2.0": {
|
||||
"module": "sha256-SBPTUS68DvnmX+RkM9IZ5dSSKw2TPc2FKySPpT+FNtA=",
|
||||
"pom": "sha256-At2wWVzbi4VkYars5gKXiASNycM52OYtZcotqU4CaZA="
|
||||
"org/jetbrains/kotlin#kotlin-assignment/2.2.20": {
|
||||
"module": "sha256-xbfmG95gHQM75qCyXhkxfc9u434wVC/XRsRr/3gBj1o=",
|
||||
"pom": "sha256-fh3mglHYFXQXuKIXn2YlW8m5zzFTPdkDukFVZlwwXGs="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-assignment/2.2.0/gradle813": {
|
||||
"jar": "sha256-d3zNZXeiOZfkssjiezjCQ6oCzQrsmYB8nLOdWnsJ4sQ="
|
||||
"org/jetbrains/kotlin#kotlin-assignment/2.2.20/gradle813": {
|
||||
"jar": "sha256-MYCcvl5312WyQRFT6huuR2cQQGoXfjmhC/ZKYSOgRfI="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-bom/2.0.21": {
|
||||
"pom": "sha256-1Ufg3iVCLZY+IsepRPO13pQ8akmClbUtv/49KJXNm+g="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-build-statistics/2.2.0": {
|
||||
"jar": "sha256-klfy37x4iCf2AnUPrijX6UWTLq2QQVP3f09sTE2Y5RE=",
|
||||
"pom": "sha256-8Uct+ZZDqe4VJrFEka0vaNz8Zunr9WywFuSFzaj69sI="
|
||||
"org/jetbrains/kotlin#kotlin-build-statistics/2.2.20": {
|
||||
"jar": "sha256-+2VKT1vFY2h1kXMSnfSRB60J3FtBcrAXda+z+nJXndU=",
|
||||
"pom": "sha256-tdU2T1fSH/FBgiBei2lf1oZNnYqleApu3EIJWEBHwRU="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-build-tools-api/2.2.0": {
|
||||
"jar": "sha256-HezZmyKUN3QfNqAIxnip2PrjBxbodyFRMI9W9owQ844=",
|
||||
"pom": "sha256-I6QFgttMPijHq6X8fpZHvI1e/d+dAFWp5CyaCJbVzjM="
|
||||
"org/jetbrains/kotlin#kotlin-build-tools-api/2.2.20": {
|
||||
"jar": "sha256-/ZlHs6F2Iahvq9lTr4fzS9K7f4sm2uksHte+dHL0TDs=",
|
||||
"pom": "sha256-AtR9SHfsMktJbZMTMkXNTTSLZSMDzyfvpj44ry+zzyo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.2.0": {
|
||||
"jar": "sha256-SofzwCcvFyhdYOmGQ+whn1Ppta1aI/O8TFQ6hkT4bxc=",
|
||||
"pom": "sha256-6DgEIFq2l7pyL0YiprG1GS70ejDL35ApdwFJQ3hQTv8="
|
||||
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.2.20": {
|
||||
"jar": "sha256-ZHiafwBWWSfy8/LRCfIwV009kwjtXW6Gv8qEPaZIfPc=",
|
||||
"pom": "sha256-4vQ157rwHeL/kNCoc3r4+b+X/BUuWVuGp2C6ZOjmnfY="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.2.0": {
|
||||
"jar": "sha256-svdD6luhL2ng815djUYGnXTI4oYQh1SKfg4Up4S8TPE=",
|
||||
"pom": "sha256-FqFd0ZfPJBNJT3iMuWFE2aFGJnw9b38cFbejweBSNGo="
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.2.20": {
|
||||
"jar": "sha256-HGw/gQv+akGry8NLOi72OfHj9K7tOpU6Swl07qT0GIk=",
|
||||
"pom": "sha256-Bf8CX3+wky+xH6HhzK71KPdgJ9lWaA+INdQ4VCdi4go="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-runner/2.2.0": {
|
||||
"jar": "sha256-kHBq6Gcd77oBQI3RxUG6MJEskHDN8d3aGMUero1nkwQ=",
|
||||
"pom": "sha256-iQfZfcaLv0CgrmZ5RZAvDtwWYdvPdDuuDf2nw7mp1Mg="
|
||||
"org/jetbrains/kotlin#kotlin-compiler-runner/2.2.20": {
|
||||
"jar": "sha256-+vloNPogBNeL2ORCD1go3j1CckJ9ZHR5gCTqbpz4XN0=",
|
||||
"pom": "sha256-kbsVJI9OqUS2Mw8xA/HrVF0TvditSuxDe3R6WG57F6k="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-client/2.2.0": {
|
||||
"jar": "sha256-ISk9oBbkuhKhKKwm/ZIKdOi4f1dM+bxDxgo9LnZFp64=",
|
||||
"pom": "sha256-HESKBvDKmGiVi+CHesnof8TgG8uTaHp8rBLTxNCd7uY="
|
||||
"org/jetbrains/kotlin#kotlin-daemon-client/2.2.20": {
|
||||
"jar": "sha256-cO983NwwEHe5s7ohqp6cVadq+z/73+9KtWKmd9GN+kw=",
|
||||
"pom": "sha256-ihNtDxPrmDpr40/x4WPJznmFXkuiF09Fy0KqpnVT91Q="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.2.0": {
|
||||
"jar": "sha256-omzI4thhkZfMTRFb6ndm6aqODx54duoETuG58wVlRgE=",
|
||||
"pom": "sha256-vSrk4skWBWVKilUn2nV/KyJ2WA0fXq6+q9M0OvjVxGc="
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.2.20": {
|
||||
"jar": "sha256-fFyM0vi+rdMoMjm7nKIZoMr6GvAmgrQHsYHhF5cY8vc=",
|
||||
"pom": "sha256-9Yhmv7yYZ8bWR1ec/3DUKHeZctvd2N5MJXh5y0N0FIk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.2.0": {
|
||||
"jar": "sha256-nRsH2uVVnD/JwtzhW9hcNtwedt/zd/ExJIm9ZmDBZUQ=",
|
||||
"pom": "sha256-uvxt1O1fRcLhvCgXfCxkDie/t8WQEZ6GW7nkCZOLrEA="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.2.20": {
|
||||
"jar": "sha256-T8MqG+ZFynQE4hskRSCI+T6OmT6v/Sbza9Ndv3XGB1I=",
|
||||
"pom": "sha256-sbbgEXktfKkv7K+/+sSlCPdvA5yfeuijI9GJKIgl9P4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.2.0": {
|
||||
"jar": "sha256-u6au4h0YX3LfiW80jw6nsRdcEc1mNzeZid+JnLSMl+E=",
|
||||
"module": "sha256-AmOgtdQFEGmmFjJYOK5CGmxNAG3JsVWnpCkmYIiAC6c=",
|
||||
"pom": "sha256-iG8sRJ+dvmQc0kPxk3FNegQlNrMCrEHHLVYOWmZmDIg="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.2.20": {
|
||||
"jar": "sha256-dgfuXHoMpT+lku58VA7oCJYqe62P7p7Xj+Z0hBRj2V0=",
|
||||
"module": "sha256-T8vx/H5Uzr/pC5peD7RpYv7Vwi03I52iNfXi37xtUog=",
|
||||
"pom": "sha256-C5E9oNIYhCAmOpBLtApkD9s1pTWnLwWC/llkHjoMSi4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.2.0/gradle813": {
|
||||
"jar": "sha256-u6au4h0YX3LfiW80jw6nsRdcEc1mNzeZid+JnLSMl+E="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.2.20/gradle813": {
|
||||
"jar": "sha256-dgfuXHoMpT+lku58VA7oCJYqe62P7p7Xj+Z0hBRj2V0="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.2.0": {
|
||||
"jar": "sha256-QY4hdjJ20qlGFr6ZCCanRdWdTF2WY48LviERDSxWSTs=",
|
||||
"pom": "sha256-w5AgQre9S2t3oY8+4f6ol9N7vroloD0Uqe7//hWCXn0="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.2.20": {
|
||||
"jar": "sha256-dtFu5ZzeHmpwVWtdQEhu+fEcFkOodJPBnE3zMWU4N9k=",
|
||||
"pom": "sha256-xRuhScfyk1nSWk7RIS4otpNOGkdW9VLAAHvxFE0onB0="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.2.0": {
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.2.20": {
|
||||
"jar": "sha256-7JacXwsJn4I4RiMiOPm9ZPPTdB5i6pBQrS5DL6150KA=",
|
||||
"module": "sha256-r+m2AUJwBIVJuyAySjGdYkoFoLnmtBfmm2kHldfPDUs=",
|
||||
"pom": "sha256-/ewxpJDZDsNuf5qj12xVDgqVq9Otg3lTvUn6E9pwFQ0="
|
||||
"module": "sha256-/IW7KUlsw/X5DHjHonejkw7xFg8IQ/iu1ke3TGejtJQ=",
|
||||
"pom": "sha256-NkQjJURfF7rCH1OGu0k4+D53K4NOWGBT1BRbGnXZ4oU="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/2.2.0": {
|
||||
"jar": "sha256-Z6FKxCSqGWo0ax3Jn0QqbVc0WCrXt+epzN8oqc0rIJs=",
|
||||
"module": "sha256-LC4w2DDqdpq6iX9PlvGeHoLY1qI/UzaJugn0GTMASYY=",
|
||||
"pom": "sha256-bBzMOzcGY8KHIUn12briW/fpLqcVFepzxSlwlzbKMYk="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/2.2.20": {
|
||||
"jar": "sha256-U6MhUoJjIGAYUgSaC291OMqLtX/QnYeszRGLxo1D+OQ=",
|
||||
"module": "sha256-EZdKVPSOCCXpdxML9u9qyZp/216yr53iZa9iTHY2g+U=",
|
||||
"pom": "sha256-3uDjB7pub1GQPH5DPehSZ10eMOfyLPJGWxglVSZR7fs="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.2.0": {
|
||||
"module": "sha256-Y3w/yuVyOnQnAmwO2z3GeW3T/nmQ3CKG1PdJbt9dKYU=",
|
||||
"pom": "sha256-E2FqOVx9n8Xc7iclKn9ocX2MaZTNEldL0dsxelGG1yE="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.2.20": {
|
||||
"module": "sha256-3CS/pH4EQigykOIfBpoFYUHR8IjWy57Kouqs4bR7a4w=",
|
||||
"pom": "sha256-ucP9Lr1UhNYMX+DbeqEIeDA+7d/JP5Qvc1wHupmBh8w="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.2.0/gradle813": {
|
||||
"jar": "sha256-g1xNwYoHMl9XkwUMfy52XSNcWWdJVo5HtZe0Sdhnlo0="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.2.20/gradle813": {
|
||||
"jar": "sha256-XTJbXCxdS8i/RBRdJOtNS+sGDRPRHr5IiYk27VzRVk4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.2.0": {
|
||||
"module": "sha256-ur08SXopcd/GjlAlT/lwZak6Ixg+jto8OY+E9gzsErI=",
|
||||
"pom": "sha256-2cRaL1cw6E6bhPpCxkoYdNy6ZmjyEsT+KXvqJdwAeHg="
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.2.20": {
|
||||
"module": "sha256-P7tFda43xKd2rrhtj/k8aqEbDPLadXScUyDiWFCwIp4=",
|
||||
"pom": "sha256-PG1GnpFfuzCWrEy4wvRsedAnw8WQ5lihBoihVx61eNg="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.2.0": {
|
||||
"jar": "sha256-8FcCw6bq725+hCNTvmT1jTMHGX4Vp/F5gE08VQcZ7mk=",
|
||||
"pom": "sha256-6R0DUNf9G+4pyP9OP9bxcZBS7P6V98wXZtnVwnD3iQk="
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.2.20": {
|
||||
"jar": "sha256-OYK+RbEpMOIYGbWJ2zcHyOhM4le/Ks5/xi/I3zaPWz4=",
|
||||
"pom": "sha256-CzAJtJQmv6F3qtlLSBCbjKVMck6i5sUGgmo6lc9ZEOE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-metadata-jvm/2.2.20": {
|
||||
"jar": "sha256-hSTqyQ9+jg8TZog/LGyCDJO/ph3z12hXyNPoA89nMV0=",
|
||||
"pom": "sha256-e2qAtqLSZ2oEIvaWg4EyMVQlUfYbMgxochz7nh9ZCdA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-native-utils/2.2.0": {
|
||||
"jar": "sha256-pOlvczba6EnznPK2NKU20CoqvfARS3M5Wty4yIGFDp4=",
|
||||
"pom": "sha256-DafPXrsb0m4u/IkRhLzqM8tPKxwpNYEnr1MGHNataZY="
|
||||
"org/jetbrains/kotlin#kotlin-native-utils/2.2.20": {
|
||||
"jar": "sha256-UBd3SirqQf+HEhNxFs1NgAP+mroSAMEG5lcw/rW7dEI=",
|
||||
"pom": "sha256-U+++4FpxIhiQYPXuXspodjnOr+KfXlmW3phiopxnJyU="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
|
||||
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
|
||||
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-reflect/2.2.0": {
|
||||
"jar": "sha256-Iw2RwuQQ48/KOk3HPSVUVfYv9SqsCRozOXpuML3pG/c=",
|
||||
"pom": "sha256-3u2DHvy2Y+TPPVEh5a55byAeN7gT0sfWB7Xx+Khv5S4="
|
||||
"org/jetbrains/kotlin#kotlin-reflect/2.2.20": {
|
||||
"jar": "sha256-ggkIOkp8TkdtmEKweDCPqWqW8Hpr2Z8F81hu4TKJqyY=",
|
||||
"pom": "sha256-TidHQGbbg/uixZB0KJunEr6MhRV83guQUCmkRcJ19bo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver-compiler-plugin-embeddable/2.2.0": {
|
||||
"jar": "sha256-nLzhQvhBilqrEZuD7Css9EMrWEgXAh2agVONB+o1RjE=",
|
||||
"pom": "sha256-C0K3d+h9Gx9pJ1VCnsAivFYv2Mbm1T9HgbFajVzSNqo="
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver-compiler-plugin-embeddable/2.2.20": {
|
||||
"jar": "sha256-WRNzsEtDtom0HgvIYqlslEx+DDHSMIH0aooe48a6Edc=",
|
||||
"pom": "sha256-iSompWD3bch9NVEw9Akk2ZtL1gB212R0Ff6YkYjSLA4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.2.0": {
|
||||
"module": "sha256-3uEJzwqU5jg9Kg7ur6nJJod92jgW1mhHQAqKFRdONzU=",
|
||||
"pom": "sha256-iqdjHKBnUr+DOPHNP4Uwf5oovoZu9xsyOUMM4XWukVo="
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.2.20": {
|
||||
"module": "sha256-c7Eee8xPZZeWcN8Vx1aADHOiHaH9EJL56sWfON+cVjE=",
|
||||
"pom": "sha256-LhNnvGXeGLQPpn2H9+JGXj4dYUviuLCdOQZRZ8JwK+M="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.2.0/gradle813": {
|
||||
"jar": "sha256-enrIy8I3Z8g9uGk9v10g6RN7Qz2zBFbbAvK2CkmoSyc="
|
||||
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.2.20/gradle813": {
|
||||
"jar": "sha256-YZ6b4NCK9+W0TRIkJQ0jXiLvimiKzISPO4kC+mZAQws="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-script-runtime/2.2.0": {
|
||||
"jar": "sha256-Ttl/0eDJux0JSO1eY8yRRWMTpZUYKVuSssFRSu9VYVA=",
|
||||
"pom": "sha256-5QdIv0Z09lRgPnsbuDBjTsmevZwzDeukytzuwHZ8u1Y="
|
||||
"org/jetbrains/kotlin#kotlin-script-runtime/2.2.20": {
|
||||
"jar": "sha256-XIvV3Xrh6i7rJ3j9vqoZpWIYSXX2yrigu2d55BkHMa4=",
|
||||
"pom": "sha256-IpOhQenagKfpjYXtKkkuldsMAWW86rC3Klzp4tkrCAc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/2.2.0": {
|
||||
"jar": "sha256-fJrISZ+pGyAep4NlN8Yl3VKoJUnlfms/F1zAx56atgQ=",
|
||||
"pom": "sha256-1M1vjH2tiOZ9iVzT23qNTH3I6N3Y6WeOH1619gHZsO0="
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/2.2.20": {
|
||||
"jar": "sha256-+5n/fwzZUtpo1UjT89ZErlB4sLlvybrwZewUZqKTuAU=",
|
||||
"pom": "sha256-iTjGIFKXW7uW3OotqaeNS2sk2vLwnTWMGnqEHxaMtzo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.2.0": {
|
||||
"jar": "sha256-ksfW7HxfBdisAcN+dHrGd9iS6ZusDeXlFmg7jzZAdys=",
|
||||
"pom": "sha256-VjapUSxI/NqPgm+ypKwXPCnW6zV0ZHE9VNJaTUbsbBM="
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.2.20": {
|
||||
"jar": "sha256-2GJhDAAzQuUIjKIcRAQix9ijcA4ZnWA/ehAnjESIR2E=",
|
||||
"pom": "sha256-PW9vFZH6P3r14jFlxowu4BclFYZFQ09eMBdF5kfHVhE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.2.0": {
|
||||
"jar": "sha256-HSbL3a7rb/1FgIU5bs6gsID8Io/gBtz4MD2ldxHzN0U=",
|
||||
"pom": "sha256-oeMpM4wq8LRweB0ECGnpsZdS+KTesi9D9qiR68dPH4I="
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.2.20": {
|
||||
"jar": "sha256-e3kSNZL//r81xhag/xBDMscc3mN6ZX4JrbXfbD+cA84=",
|
||||
"pom": "sha256-+l+wJ+4qSbPb/zh3VBtC+3CuzMN7oC4dOthipcZyVLc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.2.0": {
|
||||
"jar": "sha256-YKjHQtYfRPIxH73IqGt2fRcboJ2XvnLWukUNN/fj/b8=",
|
||||
"pom": "sha256-dii0nV53BennadESYAZtmmlXPW2Av4Iw0FRvWo54yJ4="
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.2.20": {
|
||||
"jar": "sha256-qR+5BJY0oyum09LpGgy5mD4KpOccDC4bKDg4qOBhYx8=",
|
||||
"pom": "sha256-0df8RWSBne6v6OvdcfbyGBf/xVjr0U9HpW6NyTaW3Rk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.8.21": {
|
||||
"jar": "sha256-M9FI2w4R3r0NkGd9KCQrztkH+cd3MAAP1ZeGcIkDnYY=",
|
||||
@@ -976,26 +976,26 @@
|
||||
"jar": "sha256-FcjArLMRSDwGjRaXUBllR0tw39gKx5WA7KOgPPUeSh0=",
|
||||
"pom": "sha256-MQ1tXGVBPjEQuUAr2AdfyuP0vlGdH9kHMTahj+cnvFc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib/2.2.0": {
|
||||
"jar": "sha256-ZdEthaO4ZcFg25FHhRcSpksQ2t1osi7qIqlb+KhnDco=",
|
||||
"module": "sha256-pbmP3NnbAX1ULhlyJdzuGNZYpW3h2yzEHhMZbWsXaaQ=",
|
||||
"pom": "sha256-jDyCEAfBNBFVhzm589U4LrgVUds4lc/7iVYeVsD03BY="
|
||||
"org/jetbrains/kotlin#kotlin-stdlib/2.2.20": {
|
||||
"jar": "sha256-iDbM/9NYX63amQEkSyDUKQHS881YEFjYQ04v+rzzo+c=",
|
||||
"module": "sha256-yRj1IU0CGnLjdn8nVul9EDpSbgTxQj2jZj79+1hH25U=",
|
||||
"pom": "sha256-SosIbmQxvPYjY39Ssv8ZLhrbkTg4dC5cDupwqN7kKcQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-tooling-core/2.2.0": {
|
||||
"org/jetbrains/kotlin#kotlin-tooling-core/2.2.20": {
|
||||
"jar": "sha256-dAFOxPPveM59p+Pmlk8sUmoxIdXFj++MopeeXzRFgvQ=",
|
||||
"pom": "sha256-Fiq+zmN9Egvzs1mfJIETV3zey68Q1bInq3cFLmYykpM="
|
||||
"pom": "sha256-jvep2QYs59w/xlVxXdAoqZRLeElhPgEYR8XWs7mSgXE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-io/2.2.0": {
|
||||
"jar": "sha256-h//zwBlwqqkBGr3lZbtSoXmqbckDjFh4koHtK2jVji0=",
|
||||
"pom": "sha256-NcfaTe0E3/GCIeDzgPo/NhIOvq2hOYOmEQtGWWaKbr0="
|
||||
"org/jetbrains/kotlin#kotlin-util-io/2.2.20": {
|
||||
"jar": "sha256-1DGva+puLcmInE/iawc84VfxEchgj+laGL/gi4F8/3Q=",
|
||||
"pom": "sha256-xqXQGEjNBAz8j3uuYjLXktcFwpOi2nJmrmJszbNdagM="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-klib-metadata/2.2.0": {
|
||||
"jar": "sha256-nOOw3gU8uf8HoPcXyhQvKQp05NGdkzLbImq+D+thyB4=",
|
||||
"pom": "sha256-XVJ2wbYor7xCBZ80CoTe/Uv7XroYJm3zdDYH5XftX4c="
|
||||
"org/jetbrains/kotlin#kotlin-util-klib-metadata/2.2.20": {
|
||||
"jar": "sha256-vuSQHKU6WiHA22RZAdKwcK/2gkAkF91XiODjWTZFcTs=",
|
||||
"pom": "sha256-vtAGUSIGX65328DEb/xBRqaFy7GLijApq9XaO/qhECc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-klib/2.2.0": {
|
||||
"jar": "sha256-FPB+vZrfvk6F+06/MSJSULL8P1Qo7OQ31O1j7D+prE0=",
|
||||
"pom": "sha256-NU7YchvXXwfcCyQbiFg+7oLCTZIdN+lrctmNpi1ISEo="
|
||||
"org/jetbrains/kotlin#kotlin-util-klib/2.2.20": {
|
||||
"jar": "sha256-7XyAlrK75HetF8MXjeuoyDr1MourNr/iEJEL1bQZI0w=",
|
||||
"pom": "sha256-2mwiR3qvQt2hbYWa2unj7Yq8khzLp/9RYTTMi9NZqpI="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.8.0": {
|
||||
"pom": "sha256-Ejnp2+E5fNWXE0KVayURvDrOe2QYQuQ3KgiNz6i5rVU="
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
fetchPnpmDeps,
|
||||
nodejs,
|
||||
writableTmpDirAsHomeHook,
|
||||
pnpmConfigHook,
|
||||
pnpm,
|
||||
unzip,
|
||||
patchelf,
|
||||
ripgrep,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "kilocode-cli";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kilo-Org";
|
||||
repo = "kilocode";
|
||||
tag = "cli-v${finalAttrs.version}";
|
||||
hash = "sha256-zEhv/tcKMR9D+aTVxaw3LBjbEBpuy4o0cpV/vowOFSY=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-fTCuTAEYNyqitBvOafQyi3BDqI/O7u7yEhSPH7FVDUg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
nodejs
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
writableTmpDirAsHomeHook
|
||||
pnpmConfigHook
|
||||
pnpm
|
||||
nodejs
|
||||
unzip
|
||||
patchelf
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
env.npm_config_manage_package_manager_versions = "false";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
node --run cli:bundle
|
||||
touch ./cli/dist/.env
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin/ $out/lib/node_modules/@kilocode/
|
||||
mv ./cli/dist $out/lib/node_modules/@kilocode/cli
|
||||
ln -s $out/lib/node_modules/@kilocode/cli/index.js $out/bin/kilocode
|
||||
chmod +x $out/bin/kilocode
|
||||
|
||||
pushd $out/lib/node_modules/@kilocode/cli
|
||||
rm node_modules/@vscode/ripgrep/bin/rg
|
||||
ln -s ${ripgrep}/bin/rg node_modules/@vscode/ripgrep/bin/rg
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
versionCheckProgramArg = "--version";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { extraArgs = [ "--version-regex=^cli-v(.+)$" ]; };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Terminal User Interface for Kilo Code";
|
||||
homepage = "https://kilocode.ai/cli";
|
||||
downloadPage = "https://www.npmjs.com/package/@kilocode/cli";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
xiaoxiangmoe
|
||||
];
|
||||
mainProgram = "kilocode";
|
||||
};
|
||||
})
|
||||
@@ -9,11 +9,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kshutdown";
|
||||
version = "6.0";
|
||||
version = "6.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/kshutdown/KShutdown/${finalAttrs.version}/kshutdown-source-${finalAttrs.version}.zip";
|
||||
hash = "sha256-GXs0Cb1gtlPy8fxy3CJ10t97BENMWFsRJHij+104BLA=";
|
||||
hash = "sha256-wV9CWS2I5DGt6oolXAyUqvN4OkV8M3MumflveGlNg5Y=";
|
||||
name = "kshutdown-source-${finalAttrs.version}.zip";
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
ncurses,
|
||||
pcre2,
|
||||
stdenv,
|
||||
@@ -54,8 +53,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = "less";
|
||||
maintainers = with lib.maintainers; [
|
||||
# not active
|
||||
# dtzWill is not active
|
||||
dtzWill
|
||||
mdaniels5757
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
imagemagick,
|
||||
imlib2,
|
||||
vips,
|
||||
xfce,
|
||||
xfwm4,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -212,7 +212,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
vips
|
||||
;
|
||||
inherit (enlightenment) efl;
|
||||
inherit (xfce) xfwm4;
|
||||
inherit xfwm4;
|
||||
ffmpeg = ffmpeg.override { withSvg = true; };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -27,13 +27,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libucl";
|
||||
version = "0.9.2";
|
||||
version = "0.9.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vstakhov";
|
||||
repo = "libucl";
|
||||
rev = version;
|
||||
sha256 = "sha256-esNEVBa660rl3Oo2SLaLrFThFkjbqtZ1r0tjMq3h6cM=";
|
||||
sha256 = "sha256-dub829xZ10sJ5qwegYUiGoyAVLiwg44GKSzz+BMLJis=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "matcha-rss-digest";
|
||||
version = "0.8.0";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "piqoni";
|
||||
repo = "matcha";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-AhXr9T2pvCuTTSU8vHhHELyNiU5EC4KR0fpOGrY02Zo=";
|
||||
hash = "sha256-ezwZmJVJjbrrWJAsZ3+CUZ7K4WpA1HLKL9V+kTZTfj8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-CURFy92K4aNF9xC8ik6RDadRAvlw8p3Xc+gWE2un6cc=";
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mktoc";
|
||||
version = "4.0.0";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KevinGimbel";
|
||||
repo = "mktoc";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Pq4o0t0cUrkXff+qSU5mlDo5A0nhFBuFk3Xz10AWDeo=";
|
||||
hash = "sha256-QiV0lPM5rRAVH+a15f3G8quoa26I8jHEvbtfTQU5FKM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-SdwNXstW61Yvp1V72nxl+9dijGJwyrdPYZo+q0UGYGg=";
|
||||
cargoHash = "sha256-Ny9g1TQUSGOBocFtzmxfFZp5K8t7z3JlEMHBTi69bLU=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
|
||||
@@ -1,35 +1,122 @@
|
||||
{
|
||||
buildGoModule,
|
||||
curl,
|
||||
dbmate,
|
||||
fetchFromGitHub,
|
||||
go,
|
||||
lib,
|
||||
minio,
|
||||
minio-client,
|
||||
python3,
|
||||
}:
|
||||
|
||||
let
|
||||
finalAttrs = {
|
||||
pname = "ncps";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kalbasit";
|
||||
repo = "ncps";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-A2HLbob9MHHCUNIC1OBwyFeE6KuEIdXW75hPSZMgicI=";
|
||||
hash = "sha256-3ncDDJ0vqmM6Aer/qnEgGZ/eglFmY0oAnMsLJseMQg8=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
"-X github.com/kalbasit/ncps/cmd.Version=v${finalAttrs.version}"
|
||||
];
|
||||
|
||||
vendorHash = "sha256-Plc1L23qOYj1evVIG+O3OxVAKVeEIA+Z6sP4Z/T1SxU=";
|
||||
# XXX: ncps is built with Go 1.25.5 that is available in release-25.11 but
|
||||
# master is currently still using 1.25.4 (update waiting in the
|
||||
# staging/staging-next branches.) This is a workaround for this issue and
|
||||
# will automatically becomes no-op once Go is updated.
|
||||
preBuild = lib.optionalString (go.version == "1.25.4") ''
|
||||
sed -e 's:go 1.25.5:go 1.25.4:g' -i go.mod
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-3YPKlz7+x7nYCqKmOroaiUyZGKIQMGFxcNyPnrA9Tio=";
|
||||
|
||||
doCheck = true;
|
||||
checkFlags = [ "-race" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
curl # used for checking MinIO health check
|
||||
dbmate # used for testing
|
||||
minio # S3-compatible storage for integration tests
|
||||
minio-client # mc CLI for MinIO setup
|
||||
python3 # used for generating the ports
|
||||
];
|
||||
|
||||
# Start MinIO before running tests to enable S3 integration tests
|
||||
preCheck = ''
|
||||
echo "🚀 Starting MinIO for S3 integration tests..."
|
||||
|
||||
# Create temporary directories for MinIO data and config
|
||||
export MINIO_DATA_DIR=$(mktemp -d)
|
||||
export HOME=$(mktemp -d)
|
||||
|
||||
# Configure MinIO credentials (must be set before starting MinIO)
|
||||
export MINIO_ROOT_USER=admin
|
||||
export MINIO_ROOT_PASSWORD=password
|
||||
export MINIO_REGION=us-east-1
|
||||
|
||||
# Generate random free ports using python
|
||||
# We bind to port 0, get the assigned port, and close the socket immediately.
|
||||
# In a Nix sandbox, the race condition risk (port being stolen between check and use) is negligible.
|
||||
export MINIO_PORT=$(python3 -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()')
|
||||
export CONSOLE_PORT=$(python3 -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()')
|
||||
|
||||
# Export S3 test environment variables
|
||||
export NCPS_TEST_S3_BUCKET="test-bucket"
|
||||
export NCPS_TEST_S3_ENDPOINT="http://127.0.0.1:$MINIO_PORT"
|
||||
export NCPS_TEST_S3_REGION="us-east-1"
|
||||
export NCPS_TEST_S3_ACCESS_KEY_ID="test-access-key"
|
||||
export NCPS_TEST_S3_SECRET_ACCESS_KEY="test-secret-key"
|
||||
|
||||
# Start MinIO server in background
|
||||
minio server "$MINIO_DATA_DIR" \
|
||||
--address "127.0.0.1:$MINIO_PORT" \
|
||||
--console-address "127.0.0.1:$CONSOLE_PORT" &
|
||||
export MINIO_PID=$!
|
||||
|
||||
# Wait for MinIO to be ready
|
||||
echo "⏳ Waiting for MinIO to be ready..."
|
||||
for i in {1..30}; do
|
||||
if curl -sf "$NCPS_TEST_S3_ENDPOINT/minio/health/live"; then
|
||||
echo "✅ MinIO is ready"
|
||||
break
|
||||
fi
|
||||
if [ $i -eq 30 ]; then
|
||||
echo "❌ MinIO failed to start"
|
||||
kill $MINIO_PID 2>/dev/null || true
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Setup admin alias
|
||||
mc alias set local "$NCPS_TEST_S3_ENDPOINT" "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"
|
||||
|
||||
# Create test bucket
|
||||
mc mb "local/$NCPS_TEST_S3_BUCKET" || true
|
||||
|
||||
# Create service account for tests
|
||||
mc admin user svcacct add \
|
||||
--access-key "$NCPS_TEST_S3_ACCESS_KEY_ID" \
|
||||
--secret-key "$NCPS_TEST_S3_SECRET_ACCESS_KEY" \
|
||||
local admin || true
|
||||
|
||||
echo "✅ MinIO configured for S3 integration tests"
|
||||
'';
|
||||
|
||||
# Stop MinIO after tests complete
|
||||
postCheck = ''
|
||||
echo "🛑 Stopping MinIO..."
|
||||
kill $MINIO_PID 2>/dev/null || true
|
||||
rm -rf "$MINIO_DATA_DIR"
|
||||
echo "✅ MinIO stopped and cleaned up"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/ncps
|
||||
cp -r db $out/share/ncps/db
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "netbird-dashboard";
|
||||
version = "2.23.0";
|
||||
version = "2.23.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netbirdio";
|
||||
repo = "dashboard";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BuoDcgc68qJGPruqSUB1IFOvuPOH0+6J+k044jJefsI=";
|
||||
hash = "sha256-zM8vSQzhJqOgqKyRW7NSh/dX6pA+BRj+bExuQYmcWR4=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-Ry9T4SdR3UWv/IDd99Ar+sFTMP1JAEg0QcAEM7uY4Hk=";
|
||||
npmDepsHash = "sha256-RIhVSRjqzFawXaRZHAUwGodnNerGz+I3GbPFsP5qESY=";
|
||||
npmFlags = [ "--legacy-peer-deps" ];
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nfs-ganesha";
|
||||
version = "9.2";
|
||||
version = "9.4";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "nfs-ganesha";
|
||||
repo = "nfs-ganesha";
|
||||
tag = "V${version}";
|
||||
hash = "sha256-2EAkr+zu7Jc2j/8BrJ/+Skv/D3rTSbh4A5JTRhWafEk=";
|
||||
hash = "sha256-Adax64aaioYfPg7SMtylS2wpYV52l8KgXBA8eJefGkY=";
|
||||
};
|
||||
|
||||
patches = lib.optional useDbus ./allow-bypassing-dbus-pkg-config-test.patch;
|
||||
|
||||
@@ -16,16 +16,16 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "onefetch";
|
||||
version = "2.25.0";
|
||||
version = "2.26.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "o2sh";
|
||||
repo = "onefetch";
|
||||
rev = version;
|
||||
hash = "sha256-ZaaSuHWkhJx0q1CBAiRhwoLeeyyoAj6/vP3AJwybjAo=";
|
||||
hash = "sha256-JT7iQRKOK/2Zh/IDMv1FM1szITeBaaMy+WuXHjpPkfY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-56Net4nNRndePhdsQPbmqiPHpOUGMmnQt6BuplQpvSU=";
|
||||
cargoHash = "sha256-VBbiOA/+SPcIvmhNQ71gUBOIWEWV1A86rljBfdAfhZM=";
|
||||
|
||||
cargoPatches = [
|
||||
# enable pkg-config feature of zstd
|
||||
|
||||
@@ -156,7 +156,8 @@ clangStdenv.mkDerivation rec {
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir $out/Applications
|
||||
mv $out/bin/*.app $out/Applications
|
||||
rmdir $out/bin
|
||||
rm $out/bin/* || true
|
||||
ln -s $out/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD $out/bin/openscad-unstable
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pkg";
|
||||
version = "2.1.4";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "freebsd";
|
||||
repo = "pkg";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-aqNJGor6gH/7XjwuT2uD7L89wn1kzsFKBMlitSVjUCM=";
|
||||
hash = "sha256-bx/BPldUZHX7KYM8bYRT/p/RcLKqAXqlnCihP8Ec7NY=";
|
||||
};
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "prometheus-borgmatic-exporter";
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxim-mityutko";
|
||||
repo = "borgmatic-exporter";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-QbpHSpcXJdmi6oiPTFT6XwNLtaXSAGavHeEoz3IV73I=";
|
||||
hash = "sha256-fhsGpQolZxX5VAAEV3hiLF7bo4pbVt9GWyertf2oeO0=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "prometheus-client" ];
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
version = "1.77.0";
|
||||
version = "1.78.0";
|
||||
hashes = {
|
||||
linux-aarch_64 = "sha256-2sY1n35HOW4jwGk48GQOHDmh2bd9V9GFT/UylKBIel0=";
|
||||
linux-ppcle_64 = "sha256-hYxdveN3RpUNLv4g3BMO4CAeYpV13hGmZEdS///yfE4=";
|
||||
linux-s390_64 = "sha256-7cnA9dXZTiYEhR6PwsBmRZ0UDmKrxoeGZqVjHUHKxQQ=";
|
||||
linux-x86_32 = "sha256-QVc2ANzOqoyLOAy1r+daY9OmbXrF1ebmB/oNS+gj70Q=";
|
||||
linux-x86_64 = "sha256-b+H3Llnxl0Cb7/TNolyay/noKrexz7IMGFvC5hlWwo4=";
|
||||
osx-aarch_64 = "sha256-5H2txiDsG21tpFB9meM7tKGw+IZzBC8IoBlPScxckhQ=";
|
||||
osx-x86_64 = "sha256-5H2txiDsG21tpFB9meM7tKGw+IZzBC8IoBlPScxckhQ=";
|
||||
windows-x86_32 = "sha256-YkUchHqd20lmICFIEdPv+pHpSx1D89im1BOTureQIco=";
|
||||
windows-x86_64 = "sha256-35/e+ampAdMFI/xFh3dDD2cR0qzvNAsJBjn6ui1J2hE=";
|
||||
linux-aarch_64 = "sha256-yVyvCriifgHlP4z/jolH9qiEGvqjV/pLBnm0r0VzGIY=";
|
||||
linux-ppcle_64 = "sha256-wD7g3cHI1rXb6RQemW7/D9w6qF3om09wckNToYHa1BU=";
|
||||
linux-s390_64 = "sha256-Dubkn+X+3fYOy+SeW6V5QxSqPizGPZBoXSSlqHun56k=";
|
||||
linux-x86_32 = "sha256-ALYeBWy/IjhmFOG0Llj5luCOtSYBKtgIsjdDKcIP6v8=";
|
||||
linux-x86_64 = "sha256-wC3U11e2eUByoWdcKp8jJjG2TD1TwewZ7/sFBIWagv8=";
|
||||
osx-aarch_64 = "sha256-sHInlUATIKcRMDlfGj2KZTS3MRAIzOjXj4y3zhdtqiY=";
|
||||
osx-x86_64 = "sha256-sHInlUATIKcRMDlfGj2KZTS3MRAIzOjXj4y3zhdtqiY=";
|
||||
windows-x86_32 = "sha256-bIUQUaveyBKreBwBFr9o3RtyQr3cb+/TfbGxp8WyuPg=";
|
||||
windows-x86_64 = "sha256-DHxx0rr2wfxfpRQlJ39BdI7kCUmO8rTX3JHvGKdSAeA=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pspg";
|
||||
version = "5.8.13";
|
||||
version = "5.8.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "okbob";
|
||||
repo = "pspg";
|
||||
rev = version;
|
||||
sha256 = "sha256-swsVxhvfLfK8QQfsL68f/bL3OThOZiqM/ceD7kjOghU=";
|
||||
sha256 = "sha256-DZsMZZO5NMutlzLT+wwtPNdnzAnka32ZMqgMvEuw9ag=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "pywhisker";
|
||||
version = "0.1.0-unstable-2025-09-16";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ShutdownRepo";
|
||||
repo = "pywhisker";
|
||||
rev = "dc35dba57bb4ad594f052d6598a855d192a37a3f";
|
||||
hash = "sha256-dXr/Vb7h+ZiO5VeOEx3tfXUq8sldrRofK5ENJDZcAb0=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
cryptography
|
||||
dsinternals
|
||||
impacket
|
||||
ldap3
|
||||
ldapdomaindump
|
||||
pyasn1
|
||||
rich
|
||||
six
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pywhisker" ];
|
||||
|
||||
# Project has no tests
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Tool for Shadow Credentials attacks";
|
||||
homepage = "https://github.com/ShutdownRepo/pywhisker";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "pywhisker";
|
||||
};
|
||||
}
|
||||
@@ -24,7 +24,7 @@ let
|
||||
in
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "rcu";
|
||||
version = "4.0.31";
|
||||
version = "4.0.32";
|
||||
|
||||
format = "other";
|
||||
|
||||
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
|
||||
let
|
||||
src-tarball = requireFile {
|
||||
name = "rcu-${version}-source.tar.gz";
|
||||
hash = "sha256-gOf6CaLqoGqJuTcyARdLnKiovPDFRtsABJgEEF7fx+A=";
|
||||
hash = "sha256-0sJyCRDV76HUy78RBO27AgkXGroL217GNwHp8HMSKx8=";
|
||||
url = "https://www.davisr.me/projects/rcu/";
|
||||
};
|
||||
in
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "reqable";
|
||||
version = "2.33.12";
|
||||
version = "3.0.30";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/reqable/reqable-app/releases/download/${finalAttrs.version}/reqable-app-linux-x86_64.deb";
|
||||
hash = "sha256-LCHeJUzTRjl/lh3PWygZV0Rd3AxJEGlTkVrI/5l+Go4=";
|
||||
hash = "sha256-tqeTcM0+RClOgWY72NJAFJAe62zbqAtdsIe//nZ3Kjs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -75,7 +75,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
preFixup = ''
|
||||
mkdir $out/bin
|
||||
makeWrapper $out/share/reqable/reqable $out/bin/reqable \
|
||||
--prefix LD_LIBRARY_PATH : $out/share/reqable/lib
|
||||
--prefix LD_LIBRARY_PATH : $out/share/reqable/lib \
|
||||
--set GIO_MODULE_DIR "${glib.out}/lib/gio/modules"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
@@ -83,10 +84,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = {
|
||||
description = "Generation API debugging and testing one-stop solution";
|
||||
homepage = "https://reqable.com";
|
||||
downloadPage = "https://github.com/reqable/reqable-app/releases";
|
||||
changelog = "https://github.com/reqable/reqable-app/releases/tag/${finalAttrs.version}";
|
||||
mainProgram = "reqable";
|
||||
license = lib.licenses.unfree;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ chillcicada ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rnr";
|
||||
version = "0.5.0";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ismaelgv";
|
||||
repo = "rnr";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-uuM8zh0wFSsySedXmdm8WGGR4HmUc5TCZ6socdztrZI=";
|
||||
sha256 = "sha256-vuYFh7k7dNCOnB5jqP8MIBIWFOVxRmv0+qvCXkJchtA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-lXo3BECHpiNMRMgd4XZy+b8QHbE0TZ5/P4cz+SgwqsY=";
|
||||
cargoHash = "sha256-2YvpO8K5Y8Ul2k0sJXWMgrHnGY8e1sEcIZNWIEpKfqs=";
|
||||
|
||||
meta = {
|
||||
description = "Command-line tool to batch rename files and directories";
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "sdl_gamecontrollerdb";
|
||||
version = "0-unstable-2025-12-11";
|
||||
version = "0-unstable-2025-12-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mdqinc";
|
||||
repo = "SDL_GameControllerDB";
|
||||
rev = "16ac3e553e23068e26819971f2cc6cd088a7f2f6";
|
||||
hash = "sha256-yXmgvkkIGcXUAnllUFb3AoKvyEbUN9YG05/VaPuFqCs=";
|
||||
rev = "547fb8019f8cf7c443244b918c5be05c9e5a53f3";
|
||||
hash = "sha256-mPVnxDuivh+jBf25jPo3wA/CHAgGkzAb2ybbRLmdE/o=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
buildGoModule {
|
||||
pname = "starlark";
|
||||
version = "0-unstable-2025-11-09";
|
||||
version = "0-unstable-2025-12-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "starlark-go";
|
||||
rev = "be02852a5e1f2f07f08e887a191e725154c029b8";
|
||||
hash = "sha256-Njq60qM+2AigXZB3AAWV5mpN2uxDXJSsjJTPlMvYw5k=";
|
||||
rev = "15019ee33dea8b618e081116e29a613c9aa050ea";
|
||||
hash = "sha256-BIWOmJwtTxjXTc48Mamm6uqPTNd7DMeURfQ2rYX4Ecs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";
|
||||
|
||||
@@ -16,13 +16,13 @@ let
|
||||
in
|
||||
buildNpmPackage rec {
|
||||
pname = "super-productivity";
|
||||
version = "16.6.1";
|
||||
version = "16.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "johannesjo";
|
||||
repo = "super-productivity";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-8FTgwyZOc/klAis+h5GG0lb1Rk/tvZpMeLuqWhAL4gI=";
|
||||
hash = "sha256-nr1umVoOQ9uzswgU16hpcTpaM6W8C3CZMG/O44WFtnw=";
|
||||
|
||||
postFetch = ''
|
||||
find $out -name package-lock.json -exec ${lib.getExe npm-lockfile-fix} -r {} \;
|
||||
@@ -65,7 +65,7 @@ buildNpmPackage rec {
|
||||
dontInstall = true;
|
||||
|
||||
outputHashMode = "recursive";
|
||||
hash = "sha256-BM1l3V1vDIbm0GGc5pc66Nsx3fqhqZLE9xI+LuI5KWA=";
|
||||
hash = "sha256-t22mdvx1rJFzXKFscnweggFCqTKheTAzElA4ksUQQ5k=";
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "systemctl-tui";
|
||||
version = "0.4.0";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rgwood";
|
||||
repo = "systemctl-tui";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1KYaw4q1+dPHImjjCnUPXNu7ihdEfNuzQfHfPi1uDOw=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-OzOc0osaKoRVuo+fBJOhsZAiFfm0ZHj6POUjRaIZGsc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-rOmoV8sHeoM2ypDlBbiLDIYHhFQZJ6T2D5VkSNW+uuc=";
|
||||
cargoHash = "sha256-MSpex0G1RJsI5RCrAlSgeY2/6flndwCjdtopWfuXNts=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
@@ -31,9 +31,9 @@ rustPlatform.buildRustPackage rec {
|
||||
meta = {
|
||||
description = "Simple TUI for interacting with systemd services and their logs";
|
||||
homepage = "https://crates.io/crates/systemctl-tui";
|
||||
changelog = "https://github.com/rgwood/systemctl-tui/releases/tag/v${version}";
|
||||
changelog = "https://github.com/rgwood/systemctl-tui/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ siph ];
|
||||
mainProgram = "systemctl-tui";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "talosctl";
|
||||
version = "1.11.6";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siderolabs";
|
||||
repo = "talos";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-RPmveQ52PqpD/OG/7SsJbKlZjggRU8uBqJyNmOszWtg=";
|
||||
hash = "sha256-u8/T01PWBGH3bJCNoC+FIzp8aH05ci4Kr3eHHWPDRkI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tGlGlTMIsBLQGvIYU/zEE0devM0j31ER8L8hacXvTz4=";
|
||||
vendorHash = "sha256-LLtbdKq028EEs8lMt3uiwMo2KMJ6nJKf6xFyLJlg+oM=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -62,7 +62,7 @@ let
|
||||
stdenv.cc.cc
|
||||
stdenv.cc.libc
|
||||
];
|
||||
version = "1.0.51";
|
||||
version = "1.498.21";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "tana";
|
||||
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/tanainc/tana-desktop-releases/releases/download/v${version}/tana_${version}_amd64.deb";
|
||||
hash = "sha256-ApRfy+aD4lp53HtShDTQGKuAsQnKdwFMDd19Np9/b9g=";
|
||||
hash = "sha256-6rX6UxOdSk29SYLwyVX6zkLuIxeKVfQfap1Q2zGpN7g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -166,7 +166,7 @@ python.pkgs.buildPythonPackage {
|
||||
updateScript = ./update.sh;
|
||||
|
||||
tests = {
|
||||
inherit (nixosTests) tandoor-recipes tandoor-recipes-script-name;
|
||||
inherit (nixosTests) tandoor-recipes tandoor-recipes-script-name tandoor-recipes-media;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
-1
@@ -7,7 +7,6 @@
|
||||
thunar,
|
||||
cmake,
|
||||
ninja,
|
||||
xfce,
|
||||
gitUpdater,
|
||||
}:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user