Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-12-28 15:05:53 +00:00
committed by GitHub
166 changed files with 12498 additions and 8540 deletions
+9
View File
@@ -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:
+5 -5
View File
@@ -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}
+10 -8
View File
@@ -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
+12
View File
@@ -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:
+1
View File
@@ -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
+2 -2
View File
@@ -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
{
+2 -2
View File
@@ -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 ];
};
}
+5 -1
View File
@@ -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;
File diff suppressed because it is too large Load Diff
+91
View File
@@ -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\"")
'';
}
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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'] = {}
+9 -1
View File
@@ -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
+3 -3
View File
@@ -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
+15 -23
View File
@@ -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}";
+34
View File
@@ -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";
};
}
+3 -3
View File
@@ -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;
+3 -3
View File
@@ -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 = ''
+17 -10
View File
@@ -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 = [
+39 -9
View File
@@ -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"
+5 -5
View File
@@ -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}");
};
+29 -17
View File
@@ -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";
+3 -3
View File
@@ -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}"
+6 -6
View File
@@ -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=";
@@ -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;
};
}
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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; [
+2 -2
View File
@@ -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 ];
+1
View File
@@ -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;
};
}
+2 -2
View File
@@ -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; [
+1 -1
View File
@@ -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
View File
@@ -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";
};
}
+3 -3
View File
@@ -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";
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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
+7 -4
View File
@@ -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 = {
+117 -117
View File
@@ -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="
+93
View File
@@ -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";
};
})
+2 -2
View File
@@ -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";
};
+2 -2
View File
@@ -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;
};
+2 -2
View File
@@ -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; };
};
};
+2 -2
View File
@@ -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=";
+3 -3
View File
@@ -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
+90 -3
View File
@@ -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 = ''
+2 -2
View File
@@ -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;
+3 -3
View File
@@ -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 = [
+2 -2
View File
@@ -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" ];
+10 -10
View File
@@ -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=";
};
}
+2 -2
View File
@@ -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 = [
+44
View File
@@ -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";
};
}
+2 -2
View File
@@ -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
+7 -4
View File
@@ -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" ];
};
})
+3 -3
View File
@@ -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;
+3 -3
View File
@@ -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=";
}
);
+7 -7
View File
@@ -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";
};
}
})
+3 -3
View File
@@ -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"
+2 -2
View File
@@ -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 = [
+1 -1
View File
@@ -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;
};
};
@@ -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