Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-03-31 18:20:54 +00:00
committed by GitHub
97 changed files with 1203 additions and 546 deletions
+5 -5
View File
@@ -60,10 +60,10 @@ jobs:
github_token: ${{ steps.app-token.outputs.token }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: ${{ failure() }}
with:
issue-number: 105153
body: |
env:
BODY_TEXT: |
Periodic merge from `${{ inputs.from }}` into [`${{ inputs.into }}`](https://github.com/NixOS/nixpkgs/tree/${{ inputs.into }}) has [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).
token: ${{ steps.app-token.outputs.token }}
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
gh pr comment 105153 --body "$BODY_TEXT"
+6
View File
@@ -9974,6 +9974,12 @@
githubId = 66037909;
name = "Graham J. Norris";
};
granddave = {
email = "davidisaksson93@gmail.com";
github = "Granddave";
githubId = 13297896;
name = "David Isaksson";
};
gravndal = {
email = "gaute.ravndal+nixos@gmail.com";
github = "gravndal";
@@ -108,6 +108,8 @@ Available extra Fcitx5 addons are:
- Anthy (`fcitx5-anthy`): Anthy is a system for
Japanese input method. It converts Hiragana text to Kana Kanji mixed text.
- Array (`fcitx5-array`): Array is a Chinese shape-based input method that
uses a grid of 30 keys.
- Chewing (`fcitx5-chewing`): Chewing is an
intelligent Zhuyin input method. It is one of the most popular input
methods among Traditional Chinese Unix users.
@@ -99,6 +99,10 @@ in
libayatana-common
ubports-click
])
# Qt5 qtwebengine is not secure: https://github.com/NixOS/nixpkgs/pull/435067
++ (with pkgs.lomiri-qt6; [
morph-browser
])
++ (with pkgs.lomiri; [
hfd-service
libusermetrics
@@ -125,10 +129,6 @@ in
lomiri-thumbnailer
lomiri-url-dispatcher
mediascanner2 # TODO possibly needs to be kicked off by graphical-session.target
# Qt5 qtwebengine is not secure: https://github.com/NixOS/nixpkgs/pull/435067
# morph-browser
# Adding another browser that is known-working until Morph Browser can migrate to Qt6
pkgs.epiphany
qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
teleports
]);
+1 -1
View File
@@ -991,7 +991,7 @@ in
moonraker = runTest ./moonraker.nix;
moosefs = runTest ./moosefs.nix;
mopidy = runTest ./mopidy.nix;
morph-browser = runTest ./morph-browser.nix;
morph-browser = discoverTests (import ./morph-browser.nix);
mosquitto = runTest ./mosquitto.nix;
movim = import ./web-apps/movim {
inherit runTest;
+10 -11
View File
@@ -507,16 +507,15 @@ in
machine.send_key("alt-f4")
# Morph is how we go online
# Qt5 qtwebengine is not secure: https://github.com/NixOS/nixpkgs/pull/435067
# with subtest("morph browser works"):
# open_starter()
# machine.send_chars("Morph\n")
# wait_for_text(r"(Bookmarks|address|site|visited any)")
# machine.screenshot("morph_open")
#
# # morph-browser has a separate VM test to test its basic functionalities
#
# machine.send_key("alt-f4")
with subtest("morph browser works"):
open_starter()
machine.send_chars("Morph\n")
wait_for_text(r"(Bookmarks|address|site|visited any)")
machine.screenshot("morph_open")
# morph-browser has a separate VM test to test its basic functionalities
machine.send_key("alt-f4")
# LSS provides DE settings
with subtest("system settings open"):
@@ -689,7 +688,7 @@ in
machine.screenshot("settings_lomiri-content-hub_peers")
# Select Gallery as content source
mouse_click(460, 80)
mouse_click(540, 80)
# Expect Gallery to be brought into the foreground, with its sharing page open
wait_for_text("Photos")
+68 -51
View File
@@ -1,64 +1,81 @@
{ pkgs, lib, ... }:
{
name = "morph-browser-standalone";
meta.maintainers = lib.teams.lomiri.members;
nodes.machine =
{ config, pkgs, ... }:
let
makeTest = import ./make-test-python.nix;
generic =
{
imports = [
./common/x11.nix
];
withQt6,
}:
makeTest (
{ pkgs, lib, ... }:
{
name = "morph-browser-${if withQt6 then "qt6" else "qt5"}-standalone";
meta.maintainers = lib.teams.lomiri.members;
services.xserver.enable = true;
nodes.machine =
{
config,
pkgs,
...
}:
{
imports = [
./common/x11.nix
];
environment = {
systemPackages = with pkgs.lomiri; [
suru-icon-theme
morph-browser
];
variables = {
UITK_ICON_THEME = "suru";
};
};
services.xserver.enable = true;
i18n.supportedLocales = [ "all" ];
environment = {
systemPackages = with (if withQt6 then pkgs.lomiri-qt6 else pkgs.lomiri); [
suru-icon-theme
morph-browser
];
variables = {
UITK_ICON_THEME = "suru";
};
};
fonts.packages = with pkgs; [
# Intended font & helps with OCR
ubuntu-classic
];
};
i18n.supportedLocales = [ "all" ];
enableOCR = true;
fonts.packages = with pkgs; [
# Intended font & helps with OCR
ubuntu-classic
];
};
testScript = ''
machine.wait_for_x()
enableOCR = true;
with subtest("morph browser launches"):
machine.succeed("morph-browser >&2 &")
machine.sleep(10)
machine.send_key("alt-f10")
machine.sleep(5)
machine.wait_for_text(r"Web Browser|New|sites|Bookmarks")
machine.screenshot("morph_open")
testScript = ''
machine.wait_for_x()
with subtest("morph browser displays HTML"):
machine.send_chars("file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html\n")
machine.wait_for_text("Valgrind Documentation")
machine.screenshot("morph_htmlcontent")
with subtest("morph browser launches"):
machine.succeed("morph-browser >&2 &")
machine.sleep(10)
machine.send_key("alt-f10")
machine.sleep(5)
machine.wait_for_text(r"Web Browser|New|sites|Bookmarks")
machine.screenshot("morph_open")
machine.succeed("pkill -f morph-browser")
with subtest("morph browser displays HTML"):
machine.send_chars("file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html\n")
machine.wait_for_text("Valgrind Documentation")
machine.screenshot("morph_htmlcontent")
# Get rid of saved tabs, to show localised start page
machine.succeed("rm -r /root/.local/share/morph-browser")
machine.succeed("pkill -f morph-browser")
with subtest("morph browser localisation works"):
machine.succeed("env LANG=de_DE.UTF-8 morph-browser >&2 &")
machine.sleep(10)
machine.send_key("alt-f10")
machine.sleep(5)
machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen")
machine.screenshot("morph_localised")
'';
# Get rid of saved tabs, to show localised start page
machine.succeed("rm -r /root/.local/share/morph-browser")
with subtest("morph browser localisation works"):
machine.succeed("env LANG=de_DE.UTF-8 morph-browser >&2 &")
machine.sleep(10)
machine.send_key("alt-f10")
machine.sleep(5)
machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen")
machine.screenshot("morph_localised")
'';
}
);
in
{
qt5 = generic { withQt6 = false; };
qt6 = generic { withQt6 = true; };
}
@@ -12,20 +12,20 @@ let
# update-script-start: urls
urls = {
x86_64-linux = {
url = "https://download.jetbrains.com/go/goland-2025.3.4.tar.gz";
hash = "sha256-S8IRWe+viRxtLrnCgQPR0J8QrOSr5yvtcOpwsjkq9DY=";
url = "https://download.jetbrains.com/go/goland-2026.1.tar.gz";
hash = "sha256-+TORnDso307j+WwFspoQRZ8IN2TFyy5uUvLyjiNhHiY=";
};
aarch64-linux = {
url = "https://download.jetbrains.com/go/goland-2025.3.4-aarch64.tar.gz";
hash = "sha256-yUI3hURv5jdQ2CrALp7wLShL7pGFa2d7BUSstwFd2mo=";
url = "https://download.jetbrains.com/go/goland-2026.1-aarch64.tar.gz";
hash = "sha256-inAjJw9xzpGjdo4pgoqQwM+ZyEnvLQZggPt4S/LGFxg=";
};
x86_64-darwin = {
url = "https://download.jetbrains.com/go/goland-2025.3.4.dmg";
hash = "sha256-e9CC9bZ02mxHr788w9SKB6VvhMJ02UbZn0K4IDLTgjw=";
url = "https://download.jetbrains.com/go/goland-2026.1.dmg";
hash = "sha256-zFAjXSdOaf3C2zQDDriOK9F2xOxGTrAyacVHUh0Sqck=";
};
aarch64-darwin = {
url = "https://download.jetbrains.com/go/goland-2025.3.4-aarch64.dmg";
hash = "sha256-9XW909OrBLhWuMX/doFFxychU97vP5uAC3bgTs2FaLg=";
url = "https://download.jetbrains.com/go/goland-2026.1-aarch64.dmg";
hash = "sha256-Zo48RMtVUweV541ImYxtQTBp4L4ZhyTDxFFwK+YyrZk=";
};
};
# update-script-end: urls
@@ -39,8 +39,8 @@ in
product = "Goland";
# update-script-start: version
version = "2025.3.4";
buildNumber = "253.32098.60";
version = "2026.1";
buildNumber = "261.22158.291";
# update-script-end: version
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
@@ -12,20 +12,20 @@ let
# update-script-start: urls
urls = {
x86_64-linux = {
url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.4.tar.gz";
hash = "sha256-rUFOzut21nrAoKq88W8naa61Y/ncA7pn0MO3rGmuBIY=";
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1.tar.gz";
hash = "sha256-OpSc/Xg4nWh9XRpVN8FLaV1Gwz8kbM+S9WVk27jJ7gY=";
};
aarch64-linux = {
url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.4-aarch64.tar.gz";
hash = "sha256-wjBhibJGItzDKkRtx4tXqM0Kqn4K8HNGdAVMGalm7Fw=";
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1-aarch64.tar.gz";
hash = "sha256-StoSzSx4fxeeB+PnZB5PCEzPJuWCa+HeY9u6hGGlUHg=";
};
x86_64-darwin = {
url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.4.dmg";
hash = "sha256-emlgbnHw1yaRHaiFjCL9EBYFffdWWNF7AFWyIERj0QA=";
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1.dmg";
hash = "sha256-KN4OVeR7TCA+PigHemh0eIT+y3hRKAGFJlEFmRc45Xg=";
};
aarch64-darwin = {
url = "https://download.jetbrains.com/webide/PhpStorm-2025.3.4-aarch64.dmg";
hash = "sha256-mxrTc5v4IIDgZzwMtbvdifmetoDacGNEhyVzPiVMSSw=";
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1-aarch64.dmg";
hash = "sha256-V3TQIvaYH3+NmWIDJFyTcO7Zwdd+TPP0TSFmX5pjEhM=";
};
};
# update-script-end: urls
@@ -39,8 +39,8 @@ mkJetBrainsProduct {
product = "PhpStorm";
# update-script-start: version
version = "2025.3.4";
buildNumber = "253.32098.40";
version = "2026.1";
buildNumber = "261.22158.283";
# update-script-end: version
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "o2em";
version = "0-unstable-2024-10-21";
version = "0-unstable-2026-03-31";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-o2em";
rev = "3ba4231c1dc8dcdf487428712856b790d2e4b8f3";
hash = "sha256-HhTkFm9Jte4wDPxTcXRgCg2tCfdQvo0M3nHRhlPmz/w=";
rev = "dee1076eb70c728d4ff47186aea9cd1c11ce7638";
hash = "sha256-djj7sEkUIoze1sZaZciIw7PdYDb1wETuZd4CFdZTiUM=";
};
makefile = "Makefile";
@@ -12,13 +12,13 @@
}:
mkLibretroCore {
core = "same_cdi";
version = "0-unstable-2025-01-31";
version = "0-unstable-2026-03-31";
src = fetchFromGitHub {
owner = "libretro";
repo = "same_cdi";
rev = "7ee1d8e9cb4307b7cd44ee1dd757e9b3f48f41d5";
hash = "sha256-EGE3NuO0gpZ8MKPypH8rFwJiv4QsdKuIyLKVuKTcvws=";
rev = "2184aa6d87a31fb6c64534b9b7b2d26e36bae757";
hash = "sha256-8QJtAyVF6KQmWSzQ6t5s4qmSVT8CmRx5uulq4c3LDRo=";
};
patches = [
+34
View File
@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "aegis-rs";
version = "0.5.0";
src = fetchFromGitHub {
owner = "Granddave";
repo = "aegis-rs";
tag = "v${finalAttrs.version}";
hash = "sha256-V6b9CDLjpyRb/MlbAswQ2kJFGeYDu9r2Y/8lBB+kLGc=";
};
cargoHash = "sha256-QYTmTJiwqslFM1VT+B+HtA8idvhKOPY4+ip/FqQGZ34=";
passthru.updateScript = nix-update-script { };
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
meta = {
description = "Aegis compatible OTP generator for the CLI";
homepage = "https://github.com/Granddave/aegis-rs";
changelog = "https://github.com/Granddave/aegis-rs/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ granddave ];
mainProgram = "aegis-rs";
};
})
@@ -15,8 +15,6 @@
intltool,
libayatana-common,
libgudev,
libqtdbusmock,
libqtdbustest,
librda,
libsForQt5,
lomiri,
@@ -91,8 +89,8 @@ stdenv.mkDerivation (finalAttrs: {
checkInputs = [
gtest
libqtdbusmock
libqtdbustest
libsForQt5.libqtdbusmock
libsForQt5.libqtdbustest
properties-cpp
];
@@ -16,8 +16,6 @@
libgee,
libnotify,
libpulseaudio,
libqtdbusmock,
libqtdbustest,
libsForQt5,
libxml2,
lomiri,
@@ -99,8 +97,8 @@ stdenv.mkDerivation (finalAttrs: {
dbus-test-runner
gtest
libsForQt5.qtbase
libqtdbusmock
libqtdbustest
libsForQt5.libqtdbusmock
libsForQt5.libqtdbustest
lomiri.gmenuharness
];
+3 -3
View File
@@ -3,7 +3,7 @@
stdenv,
buildNpmPackage,
fetchFromGitHub,
nodejs_latest,
nodejs_24,
versionCheckHook,
node-gyp,
python3,
@@ -13,10 +13,10 @@
let
buildNpmPackage' = buildNpmPackage.override {
nodejs = nodejs_latest;
nodejs = nodejs_24;
};
node-gyp' = node-gyp.override {
nodejs = nodejs_latest;
nodejs = nodejs_24;
};
in
buildNpmPackage' rec {
+2 -2
View File
@@ -6,7 +6,7 @@
nix-update-script,
versionCheckHook,
writeShellScript,
xcbuild,
re-plistbuddy,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = writeShellScript "version-check" ''
${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1"
${lib.getExe' re-plistbuddy "PlistBuddy"} -c "Print :CFBundleShortVersionString" "$1"
'';
versionCheckProgramArg = [
"${placeholder "out"}/Applications/BetterDisplay.app/Contents/Info.plist"
@@ -0,0 +1,54 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
zlib,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "burn-central-cli";
version = "0.4.0";
src = fetchFromGitHub {
owner = "tracel-ai";
repo = "burn-central-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-gZ92DFZPox6s4+EKPQ/uxWNV5+F7kYhSnv/Mtpur3Vo=";
};
buildAndTestSubdir = "crates/burn-central-cli";
cargoHash = "sha256-kUCjkkIog+xXFMTw8LAoHE/D6aBPR6S7Mtqg/Hjuw+o=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
# Pulled in by flate2
zlib
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Command-line tool for interacting with Burn Central";
longDescription = ''
The Burn Central CLI (burn) is the command-line tool for interacting
with Burn Central, the centralized platform for experiment tracking,
model sharing, and deployment for Burn users.
'';
homepage = "https://github.com/tracel-ai/burn-central-cli";
changelog = "https://github.com/tracel-ai/burn-central-cli/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ kilyanni ];
mainProgram = "burn";
};
})
+3 -4
View File
@@ -6,8 +6,7 @@
makeBinaryWrapper,
versionCheckHook,
writeShellScript,
coreutils,
xcbuild,
re-plistbuddy,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cyberduck";
@@ -36,8 +35,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = writeShellScript "version-check" ''
marketing_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1" | ${coreutils}/bin/tr -d '"')
build_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleVersion" "$1")
marketing_version=$(${lib.getExe' re-plistbuddy "PlistBuddy"} -c "Print :CFBundleShortVersionString" "$1")
build_version=$(${lib.getExe' re-plistbuddy "PlistBuddy"} -c "Print :CFBundleVersion" "$1")
echo $marketing_version.$build_version
'';
+5
View File
@@ -53,6 +53,11 @@ rustPlatform.buildRustPackage {
cargoHash = "sha256-p5kI7HlG6RVxCCEb/J0L2gh36jkm/atAV98ny3h4vqo=";
# Upstream tagged v2.0.6 with Cargo.toml already bumped to 2.0.7
postPatch = ''
substituteInPlace Cargo.toml --replace-fail 'version = "2.0.7"' 'version = "${version}"'
'';
env = {
RUSTFLAGS = "--cfg tracing_unstable";
LIBSQLITE3_SYS_USE_PKG_CONFIG = "1";
+3 -3
View File
@@ -74,16 +74,16 @@ let
in
buildGoModule (finalAttrs: {
pname = "elephant";
version = "2.20.2";
version = "2.20.3";
src = fetchFromGitHub {
owner = "abenz1267";
repo = "elephant";
rev = "v${finalAttrs.version}";
hash = "sha256-RvCzINnVISBT3d0F1DoIcQFbQsbRJISW9qZeKTzmNaA=";
hash = "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=";
};
vendorHash = "sha256-tO+5x2FIY1UBvWl9x3ZSpHwTWUlw1VNDTi9+2uY7xdU=";
vendorHash = "sha256-EWXZ+9/QDRpidpVHBcfJgp0xoc3YtRsiC/UTk1R+FSY=";
buildInputs = [ protobuf ];
nativeBuildInputs = [
+3 -4
View File
@@ -12,8 +12,7 @@
common-updater-scripts,
versionCheckHook,
writeShellScript,
coreutils,
xcbuild,
re-plistbuddy,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -71,8 +70,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = writeShellScript "version-check" ''
marketing_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleShortVersionString" "$1" | ${coreutils}/bin/tr -d '"')
build_version=$(${xcbuild}/bin/PlistBuddy -c "Print :CFBundleVersion" "$1")
marketing_version=$(${lib.getExe' re-plistbuddy "PlistBuddy"} -c "Print :CFBundleShortVersionString" "$1")
build_version=$(${lib.getExe' re-plistbuddy "PlistBuddy"} -c "Print :CFBundleVersion" "$1")
echo $marketing_version.$build_version
'';
+48
View File
@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
fmt,
cmake,
extra-cmake-modules,
gettext,
fcitx5,
sqlite,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fcitx5-array";
version = "0.9.6";
src = fetchFromGitHub {
owner = "ray2501";
repo = "fcitx5-array";
tag = finalAttrs.version;
hash = "sha256-YDFT/CawFiPN3kXzHMpenCzWMJSA1dFUhVe22EDfnU8=";
};
nativeBuildInputs = [
cmake
extra-cmake-modules
gettext
];
buildInputs = [
fmt
fcitx5
sqlite
];
strictDeps = true;
meta = {
description = "Array wrapper for Fcitx5";
homepage = "https://github.com/ray2501/fcitx5-array";
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
];
maintainers = with lib.maintainers; [ yanganto ];
platforms = lib.platforms.linux;
};
})
+27
View File
@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage {
pname = "ffmpreg";
version = "0.1.2-unstable-2026-03-25";
src = fetchFromGitHub {
owner = "yazaldefilimone";
repo = "ffmpreg";
rev = "a6fca970b98357ccd275acd797673ef7cf4ca02f";
hash = "sha256-p2dtNmJ7fXFzgsfg32Tmr6xr1wuZAHziNgMeUOfyjgw=";
};
cargoHash = "sha256-GxUBhFWoAq6zCDHWTiZ/pC6BWu4JcW71Sh9Du2H36wg=";
meta = {
description = "Experimental safe Rust-native multimedia toolkit for decoding, transforming, and encoding audio and video";
homepage = "https://github.com/yazaldefilimone/ffmpreg";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ aprl ];
mainProgram = "ffmpreg";
};
}
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "newt";
version = "1.10.3";
version = "1.10.4";
src = fetchFromGitHub {
owner = "fosrl";
repo = "newt";
tag = finalAttrs.version;
hash = "sha256-b/ZcU4N13+91tVhKMDPBaCGmBW11m5yQNgd1FaTxbsE=";
hash = "sha256-Dtzx/Rs7aa2GkG7Qq4pvGN4ghfS7EyVhx7rQh8sRlQU=";
};
vendorHash = "sha256-vy6Dqjek7pLdASbCrM9snq5Dt9lbwNJ0AuQboy1JWNQ=";
+2 -2
View File
@@ -29,7 +29,7 @@
gexiv2,
libwebp,
luajit,
openexr_2,
openexr,
suitesparse,
withLuaJIT ? lib.meta.availableOn stdenv.hostPlatform luajit,
gimp,
@@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
libraw
libwebp
gexiv2
openexr_2
openexr
suitesparse
]
++ lib.optionals stdenv.cc.isClang [
+3 -3
View File
@@ -18,16 +18,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gelly";
version = "0.19.0";
version = "1.0.0";
src = fetchFromGitHub {
owner = "Fingel";
repo = "gelly";
tag = "v${finalAttrs.version}";
hash = "sha256-pxyO5CVNfLHMrTKamyEBUj8QTg2bPTfS5FZ3YTmkkQk=";
hash = "sha256-ZmtofGQYC32pz9WWTvENTU1qSVOXDu+CneyX/YelvZU=";
};
cargoHash = "sha256-ZKeVAgQsBOhhNbqdHYRTtpq6+z+xa1Be4eFnrY71f+s=";
cargoHash = "sha256-dlMC+nUStrrjYlwxG+NVoqFOuTMcdaUL5a20dN3G5HQ=";
nativeBuildInputs = [
pkg-config
@@ -8,17 +8,17 @@
buildGoModule (finalAttrs: {
pname = "gitea-actions-runner";
version = "0.3.0";
version = "0.3.1";
src = fetchFromGitea {
domain = "gitea.com";
owner = "gitea";
repo = "act_runner";
rev = "v${finalAttrs.version}";
hash = "sha256-D2b0m3XEEEugjnrEzpYGxwD8hzpoPzIW9lNrCbgmKVc=";
hash = "sha256-D3/vJUQuNAgUWNyfL9QWmByZ9A/F4+pfA6GR0SDcMpQ=";
};
vendorHash = "sha256-EqU+YJrwKtA9LHa7DkRJ6er5GNocR8Gbhjjx72mPhqE=";
vendorHash = "sha256-XRXoChH2ApQS65xnzeGP4NIUL0RKovLWvVIAnBncT7Y=";
ldflags = [
"-s"
+3 -3
View File
@@ -10,16 +10,16 @@
}:
buildGo126Module (finalAttrs: {
pname = "goreleaser";
version = "2.14.3";
version = "2.15.0";
src = fetchFromGitHub {
owner = "goreleaser";
repo = "goreleaser";
rev = "v${finalAttrs.version}";
hash = "sha256-2zG7B6d+NZ1XJrObCfgBZyin5JDv6hKlvZ8C4ckAJ8Q=";
hash = "sha256-IoNa4D3OM0B+/6KNS/n0T1uQwDK34aFE/I6tsavKhVQ=";
};
vendorHash = "sha256-ImjoPvxkg35Fn4XdhTFLT2o4cDCjuyEOn1mDkMTjksk=";
vendorHash = "sha256-Yx0K3/6WuWRpP3sLoo+xnMDoJN+OtVZGtBbNaroMRy8=";
ldflags = [
"-s"
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "greenmask";
version = "0.2.17";
version = "0.2.18";
src = fetchFromGitHub {
owner = "GreenmaskIO";
repo = "greenmask";
tag = "v${finalAttrs.version}";
hash = "sha256-pH+e+CXC18jpAq/xLV5CE0BicxgPtLF7kBgUusebWDg=";
hash = "sha256-ZFlfX6JgJOaq+8OxSzhulRTkKabGoNsnBxFVpg81RDs=";
};
vendorHash = "sha256-t2U65GAGBGdMRXPTkCQCuXfLuqohA6erTlvAN/xx/ek=";
vendorHash = "sha256-SB71/Tf9Bw8AlTYGXOaRR8sdiwx8l9wQba93p6vAbAk=";
subPackages = [ "cmd/greenmask/" ];
+2 -2
View File
@@ -9,11 +9,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "hentai-at-home";
version = "1.6.4";
version = "1.6.5";
src = fetchzip {
url = "https://repo.e-hentai.org/hath/HentaiAtHome_${finalAttrs.version}_src.zip";
hash = "sha512-dcHWZiU0ySLlEhZeK1n2T/dyO6Wk9eS7CpZRSfzY3KvHrPBthQnaFrarSopPXJan1+zWROu1pEff1WSr5+HO4Q==";
hash = "sha512-oKyvzHZTPwSTcjsNOQ0LIl6rV+b7JDnuWbYKFogWWkyKcR/xDcNPNhUrKv8QLH6a1AQ2T8DYkxcJYnjhgsaovA==";
stripRoot = false;
};
+3 -2
View File
@@ -26,12 +26,13 @@ let
"java.security.jgss"
"java.sql"
"java.xml"
"jdk.zipfs"
];
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "i2p";
version = "2.10.0";
version = "2.11.0";
src = fetchzip {
urls = [
@@ -42,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
"https://files.i2p-projekt.de/"
"https://download.i2p2.no/releases/"
]);
hash = "sha256-Ogok7s5sawG27ucstG+NYiIAF66Pb3ExOYsL8mfNav8=";
hash = "sha256-NDiE3HhY18zZKLu1zkp3omwf8zmTJ9JPRIq34rDdpGc=";
};
strictDeps = true;
+1 -1
View File
@@ -38,6 +38,6 @@ stdenv.mkDerivation {
homepage = "https://www.openexr.com/";
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
insecure = true;
inherit (openexr_2.meta) knownVulnerabilities;
};
}
+4 -4
View File
@@ -5,8 +5,8 @@
}:
let
pname = "keto";
version = "25.4.0";
commit = "f5635433a56324f266ea414727bf7395bb2da429";
version = "26.2.0";
commit = "e4393662cd2e744deeb79de77669e07b6ccf51f3";
in
buildGoModule {
inherit pname version commit;
@@ -15,10 +15,10 @@ buildGoModule {
owner = "ory";
repo = "keto";
rev = "v${version}";
hash = "sha256-2DktCLYOj2azYBAhMVuqfU7QQ+eC3qDLtcp+fPljFAg=";
hash = "sha256-wRtz4RvJ7LxVnSLmXVZFGa9QXjcPnDNJxHKosbyTed0=";
};
vendorHash = "sha256-+zHvIf3CBMMqKVmQYzMRGQg9iGf9Khnhpgt95lA0BBA=";
vendorHash = "sha256-B27aC4yXS36eOoq53+RWp0vq1Oqw2aR+gOjv0m+b/I4=";
tags = [
"sqlite"
+7 -4
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "kratos";
version = "25.4.0";
version = "26.2.0";
src = fetchFromGitHub {
owner = "ory";
repo = "kratos";
rev = "v${finalAttrs.version}";
hash = "sha256-f/K86B5h7xM7Zsbr5w2rZgsyNlCSemrBkqtMRQq/Xws=";
hash = "sha256-u298vFFD/zc7ScdQ5rmvcHqkMMenMVIRC9GChfukml8=";
};
vendorHash = "sha256-ayL3V8TQ+9Tk2Wkhvn+Tft9AqxiFegznKXD0eBkFbhs=";
vendorHash = "sha256-qnG8hdWazKlIFfNPz2z5F7hhgZaTTttUBbg59T+N5OI=";
subPackages = [ "." ];
@@ -56,6 +56,9 @@ buildGoModule (finalAttrs: {
description = "API-first Identity and User Management system that is built according to cloud architecture best practices";
homepage = "https://www.ory.sh/kratos/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mrmebelman ];
maintainers = with lib.maintainers; [
mrmebelman
debtquity
];
};
})
+10 -4
View File
@@ -9,20 +9,21 @@
sqlite,
installShellFiles,
asciidoctor,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "listenbrainz-mpd";
version = "2.3.9";
version = "2.5.1";
src = fetchFromCodeberg {
owner = "elomatreb";
repo = "listenbrainz-mpd";
rev = "v${finalAttrs.version}";
hash = "sha256-j9MlvE2upocwC5xxroms3am6tqJX30sSw7PFNw8Ofog=";
hash = "sha256-087+l3calge6hKu3h84C98mIpW6qFAZwRMe4lkQCU4o=";
};
cargoHash = "sha256-1x3F2TqNlqwfPUvLwU8ac4aEeEwpIy5gEyxRBC0Q5YM=";
cargoHash = "sha256-SxXEathWAGqdgeJmIn5h9Zvv7Z3DGXa4htkODf/ANRQ=";
nativeBuildInputs = [
pkg-config
@@ -61,12 +62,17 @@ rustPlatform.buildRustPackage (finalAttrs: {
installManPage listenbrainz-mpd.1
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://codeberg.org/elomatreb/listenbrainz-mpd";
changelog = "https://codeberg.org/elomatreb/listenbrainz-mpd/src/tag/v${finalAttrs.version}/CHANGELOG.md";
description = "ListenBrainz submission client for MPD";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ DeeUnderscore ];
maintainers = with lib.maintainers; [
DeeUnderscore
Kladki
];
mainProgram = "listenbrainz-mpd";
};
})
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "mautrix-discord";
version = "0.7.5";
version = "0.7.6";
src = fetchFromGitHub {
owner = "mautrix";
repo = "discord";
rev = "v${version}";
hash = "sha256-puYPsHahXdKYR16hPnvYCrSGqnWc7sZ8HmmPlkysvs0=";
hash = "sha256-qpyySoYX+JMEKDf7Iv5WSZFOxkrmd3ihAaAXAKcZs9Q=";
};
vendorHash = "sha256-ffdR5OymFO7di4eOmL3zn6BvHgaLFBsmBkC4LKnw8Qg=";
vendorHash = "sha256-ZjY2+1M1LP/zBVG5+zfX4T8Lyjx/tpDwSxLlpsBG3iA=";
ldflags = [
"-s"
+3 -3
View File
@@ -10,7 +10,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mycelium";
version = "0.7.3";
version = "0.7.5";
sourceRoot = "${finalAttrs.src.name}/myceliumd";
@@ -18,10 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${finalAttrs.version}";
hash = "sha256-WB08dcQiz9byHNKu3ObyiQ99h18osOMeKe5hdvVaeqw=";
hash = "sha256-9PjYvzCHSOPlULbElJPVMnLFGTEy/FX56ZaRHUozqvE=";
};
cargoHash = "sha256-Wo+J0aVGiS4d1oipvrvV0abdWtHQj8iJozFM7Fj/jNs=";
cargoHash = "sha256-LSCa8euuOX4BgEDkNQlOdgiL0QzRRMlCoA9opSnPQbI=";
nativeBuildInputs = [ versionCheckHook ];
+2 -2
View File
@@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "nuclei-templates";
version = "10.4.0";
version = "10.4.1";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "nuclei-templates";
tag = "v${finalAttrs.version}";
hash = "sha256-XhzaBVNIKJ5khNNER69tqBYCMzc7G+pDiibgyNRWwEA=";
hash = "sha256-JHnHntfa1CPj3v0mlu7cLsOhmw+eFcd13jWU9E17mRY=";
};
installPhase = ''
+3 -3
View File
@@ -16,13 +16,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "opencode";
version = "1.3.7";
version = "1.3.10";
src = fetchFromGitHub {
owner = "anomalyco";
repo = "opencode";
tag = "v${finalAttrs.version}";
hash = "sha256-DL/3AFyYevK4SD3pC+goTHLrlD29dRoyL0QAlxZDLcU=";
hash = "sha256-/pVesY9fyfeAheT1gMvoVCaO9GlRHQB0H4HIB56pwnE=";
};
node_modules = stdenvNoCC.mkDerivation {
@@ -72,7 +72,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
# NOTE: Required else we get errors that our fixed-output derivation references store paths
dontFixup = true;
outputHash = "sha256-//yE+ngjobja2Y5yIcvW0oEVSu85nqNAvjWu5OyISGU=";
outputHash = "sha256-Q7eyK6GNYE5dBYooDHbIQSkfe4fs6L7tzCfbsIlYY7o=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "openfga";
version = "1.12.1";
version = "1.13.1";
src = fetchFromGitHub {
owner = "openfga";
repo = "openfga";
rev = "v${finalAttrs.version}";
hash = "sha256-uIdsHYrVp57HnIrJLv0VtysaehqrZLVTsPfrlJjmBco=";
hash = "sha256-fmTb5mRAbJGDfE4lLSFtfHuQv2pQn4fQnX7fTjq7KKs=";
};
vendorHash = "sha256-lQeUfLfYpk4HPyhpp/rKWVoWwPzKKyk/sHE1rgtcyxA=";
vendorHash = "sha256-sd1kDRicWb5ShEFDCJIjv4kk2dA5XwABH3Ii/P3uVvI=";
nativeBuildInputs = [ installShellFiles ];
+3 -3
View File
@@ -6,16 +6,16 @@
}:
buildGoModule (finalAttrs: {
pname = "hydra";
version = "25.4.0";
version = "26.2.0";
src = fetchFromGitHub {
owner = "ory";
repo = "hydra";
tag = "v${finalAttrs.version}";
hash = "sha256-vcbJiwWoq7WA7K5WpD68za1VecNwdzqfyXuPfUpa1QU=";
hash = "sha256-LnF1k/C9uPRY4xXeBCJPSQ8gxwwZx0N1e1s+Rhop5ic=";
};
vendorHash = "sha256-ADS1kBqSJXDwmCS4CCfiMvmlzzL39E0G4J2UEKXy2Qs=";
vendorHash = "sha256-KVCoDATyt5Qp0r3vGwdXqkjh0FEdNyKi6mXk99D6HD8=";
# `json1` not needed (see: https://github.com/ory/hydra/commit/93edc9ad894771c67f46ae2c57ee7e50382d73cd)
# `sqlite_omit_load_extension` consistency with upstream (see: https://github.com/ory/hydra/blob/master/.docker/Dockerfile-local-build#L20C58-L20C84). Will disable sqlite runtime extension loading (see: https://sqlite.org/loadext.html)
@@ -7,17 +7,17 @@
}:
buildGoModule (finalAttrs: {
pname = "lnreader";
version = "1.0";
pname = "pdf-cli";
version = "2.0";
src = fetchFromGitHub {
owner = "Yujonpradhananga";
repo = "CLI-PDF-EPUB-reader";
repo = "pdf-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-JeVS0wnShlD4+UfnMsuHMYi6R7pse4Gvh0PdREwmG6k=";
hash = "sha256-TvfSauT9UWjQjkzQtepEVyxm/LaiCANmxMtVmjiw8kI=";
};
vendorHash = "sha256-66rqTJeV6u4aVciifp41n2onx81w9KE0PGYHlVwsl54=";
vendorHash = "sha256-LCIv135ywuq494hZbrKdbqkGPSsSlSkVQ9hCE8i7www=";
nativeBuildInputs = [
pkg-config
@@ -34,10 +34,10 @@ buildGoModule (finalAttrs: {
meta = {
description = "Lightweight, fast and responsive terminal PDF/EPUB viewer with image support";
homepage = "https://github.com/Yujonpradhananga/CLI-PDF-EPUB-reader";
homepage = "https://github.com/Yujonpradhananga/pdf-cli";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ yujonpradhananga ];
mainProgram = "lnreader";
mainProgram = "pdf-cli";
platforms = lib.platforms.unix;
};
})
+2 -2
View File
@@ -56,8 +56,8 @@ stdenv.mkDerivation (finalAttrs: {
# version.
communityModules = fetchhg {
url = "https://hg.prosody.im/prosody-modules";
rev = "83355cfcad1d";
hash = "sha256-v8o2FMUY2dQEQ+G81Ec4RJ7J5Mz5CkXc4iabAAb13L4=";
rev = "ce716e5e0fee";
hash = "sha256-jjsHL9+lLwhFXO61h6SmQjwEdRJQ/zKgc1PDnH+wHxs=";
};
nativeBuildInputs = [ makeWrapper ];
+26
View File
@@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "re-plistbuddy";
version = "1.1.0";
src = fetchFromGitHub {
owner = "viraptor";
repo = "re-plistbuddy";
tag = version;
hash = "sha256-Iumrj0JLpdrS3cg3jAj/Wrbx7PthlCnTuRMYsYdywyw=";
};
cargoHash = "sha256-RyHM6CMxdhDJrg6mGt8jQCDLVjt0BiLYswelOHoellw=";
meta = {
description = "Open reimplementation of Apple's PlistBuddy and plutil";
homepage = "https://github.com/viraptor/re-plistbuddy";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ viraptor ];
platforms = lib.platforms.darwin;
};
}
+3 -3
View File
@@ -29,10 +29,10 @@ linkFarm "zig-packages" [
};
}
{
name = "wlroots-0.19.4-jmOlcqQMBABhKYH6NMSnoK1sohTbhc97_JP-hGg2UZaK";
name = "wlroots-0.20.0-jmOlcmtCBADS6eoJ6mkeiSNZkibrhD-c5Qwn-LiM86r1";
path = fetchzip {
url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.19.4.tar.gz";
hash = "sha256-g1LOSMMnjGJIS+U7zrx6FAoUyavqwaQ2UrDv6GxCQsY=";
url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.20.0.tar.gz";
hash = "sha256-QblQBVsDV2kSj31jqmVVi4hQUXuv8bsRgRMaCqlNxNM=";
};
}
{
+4 -4
View File
@@ -16,7 +16,7 @@
wayland,
wayland-protocols,
wayland-scanner,
wlroots_0_19,
wlroots_0_20,
xwayland,
zig_0_15,
withManpages ? true,
@@ -25,7 +25,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "river";
version = "0.4.1";
version = "0.4.2";
outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "river";
repo = "river";
tag = "v${finalAttrs.version}";
hash = "sha256-EGWLJY9VPdoc4LrXkWi8cNLkahorvDeAIfSOc5yDfbU=";
hash = "sha256-Nufonz39XphxPW1lERq2acVgE5mGmW+x1yimyS6O4tc=";
};
strictDeps = true;
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
wayland
wayland-protocols
wayland-scanner
wlroots_0_19
wlroots_0_20
]
++ lib.optionals xwaylandSupport [
libx11
+61
View File
@@ -0,0 +1,61 @@
{
lib,
rustPlatform,
fetchFromGitLab,
openssl,
nettle,
sqlite,
pkg-config,
installShellFiles,
gnupg,
gitMinimal,
libfaketime,
...
}:
rustPlatform.buildRustPackage rec {
pname = "sequoia-git";
version = "0.5.0";
src = fetchFromGitLab {
owner = "sequoia-pgp";
repo = "sequoia-git";
rev = "v${version}";
hash = "sha256-7ynaz48j/ebQAZ2QxeWwkf7kFP70HKtHCv4/wGxxaVY=";
};
cargoHash = "sha256-+sIH4zFLewNNkpd42co2B0rLrIsde5gsBDsqSSc0HZQ=";
buildInputs = [
openssl.dev
nettle.dev
sqlite.dev
];
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
installShellFiles
];
nativeCheckInputs = [
gnupg
gitMinimal
libfaketime
];
env.ASSET_OUT_DIR = "target";
postInstall = ''
installManPage ${env.ASSET_OUT_DIR}/man-pages/*.1
installShellCompletion --bash ${env.ASSET_OUT_DIR}/shell-completions/${meta.mainProgram}.bash
installShellCompletion --zsh ${env.ASSET_OUT_DIR}/shell-completions/_${meta.mainProgram}
installShellCompletion --fish ${env.ASSET_OUT_DIR}/shell-completions/${meta.mainProgram}.fish
'';
meta = {
homepage = "https://sequoia-pgp.gitlab.io/sequoia-git";
license = lib.licenses.lgpl2Plus;
maintainers = [ lib.maintainers.matthiasbeyer ];
mainProgram = "sq-git";
};
}
+2 -1
View File
@@ -64,7 +64,8 @@ stdenvNoCC.mkDerivation rec {
makeWrapper $out/lib/uppaal/uppaal $out/bin/uppaal \
--set JAVA_HOME ${jdk17} \
--set PATH $out/lib/uppaal:$PATH \
--prefix _JAVA_OPTIONS " " "-Dawt.useSystemAAFontSettings=gasp"
--prefix _JAVA_OPTIONS " " "-Dawt.useSystemAAFontSettings=gasp" \
--set _JAVA_AWT_WM_NONREPARENTING 1 # Java Swing renders a blank window on Wayland without this
runHook postInstall
'';
@@ -15,18 +15,21 @@
lomiri-ui-toolkit,
mesa,
pkg-config,
qqc2-suru-style,
qqc2-suru-style ? null,
qt5compat ? null,
qtbase,
qtdeclarative,
qtquickcontrols2,
qtsystems,
qtquickcontrols2 ? null,
qtsystems ? null,
qttools,
qtwebengine,
wrapQtAppsHook,
xvfb-run,
withDocumentation ? true,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
in
stdenv.mkDerivation (finalAttrs: {
@@ -42,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [
"out"
]
++ lib.optionals withDocumentation [
"doc"
];
@@ -55,16 +60,22 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace doc/CMakeLists.txt \
--replace-fail 'COMMAND ''${QDOC_BIN} -qt5' 'COMMAND ''${QDOC_BIN}'
''
+ lib.optionalString (!withDocumentation) ''
substituteInPlace CMakeLists.txt \
--replace-fail 'add_subdirectory(doc)' 'message(WARNING "[Nix] Not building documentation")'
'';
strictDeps = true;
strictDeps = !withQt6;
nativeBuildInputs = [
cmake
gettext
pkg-config
qttools # qdoc
wrapQtAppsHook
]
++ lib.optionals withDocumentation [
qttools # qdoc
];
buildInputs = [
@@ -79,9 +90,20 @@ stdenv.mkDerivation (finalAttrs: {
lomiri-content-hub
lomiri-ui-extras
lomiri-ui-toolkit
]
++ lib.optionals (!withQt6) [
# Not ported to Qt6 yet, explicitly disabled in the Qt6 build
# https://gitlab.com/ubports/development/core/morph-browser/-/blob/4f20c943e78694818d1b80b5563bd89901230e75/src/app/browserapplication.cpp#L196
qqc2-suru-style
# Folded into qtdeclarative in Qt6
qtquickcontrols2
# Will prolly want this in the future, but needs porting to Qt6
qtsystems
]
++ lib.optionals withQt6 [
qt5compat
];
nativeCheckInputs = [
@@ -92,11 +114,14 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "CLICK_MODE" false)
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "WERROR" true)
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "WERROR" (!withQt6)) # Porting WIP
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doCheck =
stdenv.buildPlatform.canExecute stdenv.hostPlatform
# Hard dependency on Qt5 still
&& (!withQt6);
disabledTests = [
# Don't care about linter failures
@@ -115,6 +140,8 @@ stdenv.mkDerivation (finalAttrs: {
lomiri-ui-toolkit
qtwebengine
qtdeclarative
]
++ lib.optionals (!withQt6) [
qtquickcontrols2
qtsystems
]
@@ -134,8 +161,9 @@ stdenv.mkDerivation (finalAttrs: {
updateScript = gitUpdater { };
tests = {
# Test of morph-browser itself
standalone = nixosTests.morph-browser;
standalone = if withQt6 then nixosTests.morph-browser.qt6 else nixosTests.morph-browser.qt5;
}
// lib.optionalAttrs withQt6 {
# Interactions between the Lomiri ecosystem and this browser
inherit (nixosTests.lomiri) desktop-basics desktop-appinteractions;
};
+46 -20
View File
@@ -3,16 +3,60 @@
lib,
pkgs,
ayatana-indicator-datetime,
useQt6 ? false,
libsForQt5,
qt6Packages,
}:
let
qtPackages = if useQt6 then qt6Packages else libsForQt5;
packages =
self:
let
inherit (self) callPackage;
in
{
#### Core Apps
morph-browser = callPackage ./applications/morph-browser {
# get_target_property() called with non-existent target "Qt6::qdoc".
withDocumentation = !useQt6;
};
#### Data
lomiri-schemas = callPackage ./data/lomiri-schemas { };
lomiri-sounds = callPackage ./data/lomiri-sounds { };
lomiri-wallpapers = callPackage ./data/lomiri-wallpapers { };
suru-icon-theme = callPackage ./data/suru-icon-theme { };
#### Development tools / libraries
cmake-extras = callPackage ./development/cmake-extras { };
deviceinfo = callPackage ./development/deviceinfo { };
gsettings-qt = callPackage ./development/gsettings-qt { };
lomiri-api = callPackage ./development/lomiri-api { };
lomiri-app-launch = callPackage ./development/lomiri-app-launch { };
#### QML / QML-related
lomiri-action-api = callPackage ./qml/lomiri-action-api {
# The dependency target "qmldoc" of target "doc" does not exist.
withDocumentation = !useQt6;
};
lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
#### Services
biometryd = callPackage ./services/biometryd { };
lomiri-content-hub = callPackage ./services/lomiri-content-hub {
# Check for working qdoc: not found
withDocumentation = !useQt6;
};
lomiri-download-manager = callPackage ./services/lomiri-download-manager {
# Check for working qdoc: not found
withDocumentation = !useQt6;
};
lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
lomiri-url-dispatcher = callPackage ./services/lomiri-url-dispatcher { };
}
// lib.optionalAttrs (!useQt6) {
#### Core Apps
lomiri = callPackage ./applications/lomiri { };
lomiri-calculator-app = callPackage ./applications/lomiri-calculator-app { };
@@ -27,55 +71,37 @@ let
lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { };
morph-browser = callPackage ./applications/morph-browser { };
teleports = callPackage ./applications/teleports { };
#### Data
lomiri-schemas = callPackage ./data/lomiri-schemas { };
lomiri-session = callPackage ./data/lomiri-session { };
lomiri-sounds = callPackage ./data/lomiri-sounds { };
lomiri-wallpapers = callPackage ./data/lomiri-wallpapers { };
suru-icon-theme = callPackage ./data/suru-icon-theme { };
#### Development tools / libraries
cmake-extras = callPackage ./development/cmake-extras { };
deviceinfo = callPackage ./development/deviceinfo { };
geonames = callPackage ./development/geonames { };
gmenuharness = callPackage ./development/gmenuharness { };
gsettings-qt = callPackage ./development/gsettings-qt { };
libusermetrics = callPackage ./development/libusermetrics { };
lomiri-api = callPackage ./development/lomiri-api { };
lomiri-app-launch = callPackage ./development/lomiri-app-launch { };
qtmir = callPackage ./development/qtmir { };
trust-store = callPackage ./development/trust-store { };
u1db-qt = callPackage ./development/u1db-qt { };
#### QML / QML-related
lomiri-action-api = callPackage ./qml/lomiri-action-api { };
lomiri-notifications = callPackage ./qml/lomiri-notifications { };
lomiri-push-qml = callPackage ./qml/lomiri-push-qml { };
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
qqc2-suru-style = callPackage ./qml/qqc2-suru-style { };
#### Services
biometryd = callPackage ./services/biometryd { };
lomiri-content-hub = callPackage ./services/lomiri-content-hub { };
hfd-service = callPackage ./services/hfd-service { };
lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
lomiri-history-service = callPackage ./services/lomiri-history-service { };
lomiri-indicator-datetime = ayatana-indicator-datetime.override { enableLomiriFeatures = true; };
lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
lomiri-polkit-agent = callPackage ./services/lomiri-polkit-agent { };
lomiri-telephony-service = callPackage ./services/lomiri-telephony-service { };
lomiri-thumbnailer = callPackage ./services/lomiri-thumbnailer { };
lomiri-url-dispatcher = callPackage ./services/lomiri-url-dispatcher { };
mediascanner2 = callPackage ./services/mediascanner2 { };
};
in
lib.makeScope libsForQt5.newScope packages
// lib.optionalAttrs config.allowAliases {
lib.makeScope qtPackages.newScope packages
// lib.optionalAttrs (config.allowAliases && !useQt6) {
content-hub = lib.warnOnInstantiate "`content-hub` was renamed to `lomiri-content-hub`." pkgs.lomiri.lomiri-content-hub; # Added on 2024-09-11
history-service = lib.warnOnInstantiate "`history-service` was renamed to `lomiri-history-service`." pkgs.lomiri.lomiri-history-service; # Added on 2024-11-11
lomiri-system-settings-security-privacy = lib.warnOnInstantiate "`lomiri-system-settings-security-privacy` upstream was merged into `lomiri-system-settings`. Please use `pkgs.lomiri.lomiri-system-settings-unwrapped` if you need to directly access the plugins that belonged to this project." pkgs.lomiri.lomiri-system-settings-unwrapped; # Added on 2024-08-08
@@ -7,11 +7,15 @@
cmake,
cmake-extras,
glib,
libglvnd,
pkg-config,
qtbase,
qtdeclarative,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "gsettings-qt";
version = "1.1.1";
@@ -39,6 +43,9 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
cmake-extras
glib
]
++ lib.optionals withQt6 [
libglvnd
];
# Library
@@ -60,6 +67,11 @@ stdenv.mkDerivation (finalAttrs: {
+ ''
substituteInPlace GSettings/CMakeLists.txt \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt\''${QT_VERSION_MAJOR}/qml" '${placeholder "out"}/${qtbase.qtQmlPrefix}'
''
# Need QtQuick.Window in QML2_IMPORT_PATH
+ ''
substituteInPlace tests/CMakeLists.txt \
--replace-fail 'QML2_IMPORT_PATH=' 'QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/${qtbase.qtQmlPrefix}:'
'';
preBuild =
@@ -69,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_WERROR" true)
];
@@ -96,7 +108,7 @@ stdenv.mkDerivation (finalAttrs: {
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"gsettings-qt"
"gsettings-qt${lib.optionalString withQt6 "6"}"
];
};
})
@@ -17,8 +17,12 @@
python3,
qtbase,
qtdeclarative,
withDocumentation ? true,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-api";
version = "0.3.0";
@@ -33,6 +37,8 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [
"out"
"dev"
]
++ lib.optionals withDocumentation [
"doc"
];
@@ -53,10 +59,12 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
doxygen
graphviz
pkg-config
qtdeclarative
]
++ lib.optionals withDocumentation [
doxygen
graphviz
];
buildInputs = [
@@ -76,7 +84,8 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck))
];
env.FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
@@ -95,7 +104,10 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
# https://gitlab.com/ubports/development/core/lomiri-api/-/issues/5
tests = lib.optionalAttrs (!withQt6) {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
updateScript = gitUpdater { };
};
@@ -113,10 +125,10 @@ stdenv.mkDerivation (finalAttrs: {
platforms = lib.platforms.linux;
pkgConfigModules = [
"liblomiri-api"
"lomiri-shell-api"
"lomiri-shell-application"
"lomiri-shell-launcher"
"lomiri-shell-notifications"
"lomiri-shell-api${lib.optionalString withQt6 "-qt6"}"
"lomiri-shell-application${lib.optionalString withQt6 "-qt6"}"
"lomiri-shell-launcher${lib.optionalString withQt6 "-qt6"}"
"lomiri-shell-notifications${lib.optionalString withQt6 "-qt6"}"
];
};
})
@@ -2,6 +2,7 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
testers,
cmake,
@@ -13,8 +14,12 @@
qtdeclarative,
qttools,
validatePkgConfig,
withDocumentation ? true,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-action-api";
version = "1.2.1";
@@ -26,9 +31,19 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-pwHvbiUvkAi7/XgpNfgrqcp3znFKSXlAAacB2XsHQkg=";
};
patches = [
(fetchpatch {
name = "0001-lomiri-action-api-fix-qt6-unit-tests.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-action-api/-/commit/8fadb3d75938403aca2dc0e9392370c0d9b45c3e.patch";
hash = "sha256-qqgFgw2YY6cPEbzGKI7r4fk/CgR9NRe1ZY2HUsKLNlo=";
})
];
outputs = [
"out"
"dev"
]
++ lib.optionals withDocumentation [
"doc"
];
@@ -46,11 +61,13 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
doxygen
pkg-config
qtdeclarative
qttools # qdoc
validatePkgConfig
]
++ lib.optionals withDocumentation [
doxygen
qttools # qdoc
];
buildInputs = [
@@ -64,9 +81,9 @@ stdenv.mkDerivation (finalAttrs: {
];
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_TESTING" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "GENERATE_DOCUMENTATION" true)
(lib.cmakeBool "GENERATE_DOCUMENTATION" withDocumentation)
# Use vendored libhud2, TODO package libhud2 separately?
(lib.cmakeBool "use_libhud2" false)
];
@@ -92,6 +109,8 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl3Only;
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [ "lomiri-action-qt-1" ];
pkgConfigModules = [
"lomiri-action-qt${lib.optionalString withQt6 "6"}-1"
];
};
})
@@ -1,29 +1,20 @@
From ca4c52a80532732243067eb00ec12b4ef84010a6 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Tue, 30 Jan 2024 19:46:09 +0100
Subject: [PATCH] Nixpkgs versioned QML path
---
src/LomiriToolkit/uctheme.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/LomiriToolkit/uctheme.cpp b/src/LomiriToolkit/uctheme.cpp
index a10c89344..4b0653589 100644
--- a/src/LomiriToolkit/uctheme.cpp
+++ b/src/LomiriToolkit/uctheme.cpp
@@ -180,6 +180,12 @@ QStringList themeSearchPath()
diff '--color=auto' -ruN a/src/LomiriToolkit/uctheme.cpp b/src/LomiriToolkit/uctheme.cpp
--- a/src/LomiriToolkit/uctheme.cpp 2025-12-04 00:43:06.543074583 +0100
+++ b/src/LomiriToolkit/uctheme.cpp 2025-12-04 00:45:35.424986792 +0100
@@ -192,6 +192,16 @@
pathList << QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
}
+ // append versioned QML import path from Nixpkgs
+ const QString nixpkgsQmlImportPath = QString::fromLocal8Bit(getenv("NIXPKGS_QT@qtVersion@_QML_IMPORT_PATH"));
+ if (!nixpkgsQmlImportPath.isEmpty()) {
+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
+ pathList << nixpkgsQmlImportPath.split(':', QString::SkipEmptyParts);
+#else
+ pathList << nixpkgsQmlImportPath.split(':', Qt::SkipEmptyParts);
+#endif
+ }
+
// append QML import path(s); we must explicitly support env override here
const QString qml2ImportPath = QString::fromLocal8Bit(getenv("QML2_IMPORT_PATH"));
if (!qml2ImportPath.isEmpty()) {
--
2.42.0
@@ -5,10 +5,14 @@
gitUpdater,
replaceVars,
testers,
bluez,
cmake,
dbus-test-runner,
dpkg,
gdb,
glib,
kdePackages,
libevdev,
lttng-ust,
mesa,
perl,
@@ -17,13 +21,15 @@
qmake,
qtbase,
qtdeclarative,
qtfeedback,
qtgraphicaleffects,
qtpim,
qtquickcontrols2,
qtfeedback ? null,
qtgraphicaleffects ? null,
qtpim ? null,
qtquickcontrols2 ? null,
qtsvg,
qtsystems,
qtsystems ? null,
qttools,
qt5compat ? null,
spirv-tools,
suru-icon-theme,
validatePkgConfig,
wrapQtAppsHook,
@@ -31,32 +37,47 @@
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
qtPluginPaths = listToQtVar qtbase.qtPluginPrefix [
qtbase
qtpim
qtsvg
];
qtQmlPaths = listToQtVar qtbase.qtQmlPrefix [
qtdeclarative
qtfeedback
qtgraphicaleffects
];
qtPluginPaths = listToQtVar qtbase.qtPluginPrefix (
[
qtbase
qtsvg
]
++ lib.optionals (!withQt6) [
# Will prolly want this in the future, but needs porting to Qt6
qtpim
]
);
qtQmlPaths = listToQtVar qtbase.qtQmlPrefix (
[
qtdeclarative
]
++ lib.optionals (!withQt6) [
# Deprecated in Qt6
qtgraphicaleffects
# Will prolly want this in the future, but needs porting to Qt6
qtfeedback
]
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-ui-toolkit";
version = "1.3.5903";
version = "1.3.5904";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-ui-toolkit";
rev = finalAttrs.version;
hash = "sha256-NdEYXv1LVblUgOu/P8z+vYnd/jNDS+/LFsh63ojJ2KA=";
hash = "sha256-lrytLk7+RpD3V4g9m7JruqOfLggJO9sGLzt5UrGbs/Q=";
};
outputs = [
"out"
"dev"
]
++ lib.optionals (!withQt6) [
"doc"
];
@@ -71,23 +92,6 @@ stdenv.mkDerivation (finalAttrs: {
postPatch = ''
patchShebangs documentation/docs.sh tests/
for subproject in po app-launch-profiler lomiri-ui-toolkit-launcher; do
substituteInPlace $subproject/$subproject.pro \
--replace-fail "\''$\''$[QT_INSTALL_PREFIX]" "$out" \
--replace-warn "\''$\''$[QT_INSTALL_LIBS]" "$out/lib"
done
# Install apicheck tool into bin
substituteInPlace apicheck/apicheck.pro \
--replace-fail "\''$\''$[QT_INSTALL_LIBS]/lomiri-ui-toolkit" "$out/bin"
substituteInPlace documentation/documentation.pro \
--replace-fail '/usr/share/doc' '$$PREFIX/share/doc' \
--replace-fail '$$[QT_INSTALL_DOCS]' '$$PREFIX/share/doc/lomiri-ui-toolkit'
# Causes redefinition error with our own fortify hardening
sed -i '/DEFINES += _FORTIFY_SOURCE/d' features/lomiri_common.prf
# Reverse dependencies (and their reverse dependencies too) access the function patched here to register their gettext catalogues,
# so hardcoding any prefix here will make only catalogues in that prefix work. APP_DIR envvar will override this, but with domains from multiple derivations being
# used in a single application (lomiri-system-settings), that's of not much use either.
@@ -113,19 +117,50 @@ stdenv.mkDerivation (finalAttrs: {
tests/unit/visual/tst_icon.{11,13}.qml \
tests/unit/visual/tst_imageprovider.11.qml \
--replace-fail '/usr/share' '${suru-icon-theme}/share'
''
+ lib.optionalString (!withQt6) ''
for subproject in po app-launch-profiler lomiri-ui-toolkit-launcher; do
substituteInPlace $subproject/$subproject.pro \
--replace-fail "\''$\''$[QT_INSTALL_PREFIX]" "$out" \
--replace-warn "\''$\''$[QT_INSTALL_LIBS]" "$out/lib"
done
# Install apicheck tool into bin
substituteInPlace apicheck/apicheck.pro \
--replace-fail "\''$\''$[QT_INSTALL_LIBS]/lomiri-ui-toolkit" "$out/bin"
substituteInPlace documentation/documentation.pro \
--replace-fail '/usr/share/doc' '$$PREFIX/share/doc' \
--replace-fail '$$[QT_INSTALL_DOCS]' '$$PREFIX/share/doc/lomiri-ui-toolkit'
# Causes redefinition error with our own fortify hardening
sed -i '/DEFINES += _FORTIFY_SOURCE/d' features/lomiri_common.prf
''
+ lib.optionalString withQt6 ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt\''${QT_VERSION_MAJOR}/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt\''${QT_VERSION_MAJOR}/plugins" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}"
'';
# With strictDeps, QMake only picks up Qt dependencies from nativeBuildInputs
# With strictDeps
# - QMake only picks up Qt dependencies from nativeBuildInputs
# - Qt6's CMake module seems to struggle with picking up other Qt modules from buildInputs
strictDeps = false;
nativeBuildInputs = [
perl
pkg-config
python3
qmake
qttools # qdoc, qhelpgenerator
validatePkgConfig
wrapQtAppsHook
]
++ lib.optionals withQt6 [
cmake
spirv-tools
]
++ lib.optionals (!withQt6) [
qmake
];
buildInputs = [
@@ -133,15 +168,34 @@ stdenv.mkDerivation (finalAttrs: {
lttng-ust
qtbase
qtdeclarative
qtpim
]
++ lib.optionals (!withQt6) [
# Folded into qtdeclarative in Qt6
qtquickcontrols2
# Will prolly want this in the future, but needs porting to Qt6
qtpim
qtsystems
]
++ lib.optionals withQt6 [
bluez
kdePackages.extra-cmake-modules
libevdev
];
propagatedBuildInputs = [
qtfeedback
qtgraphicaleffects
qtsvg
]
++ lib.optionals withQt6 [
# Qt5Compat.GraphicalEffects
qt5compat
]
++ lib.optionals (!withQt6) [
# Deprecated in Qt6
qtgraphicaleffects
# Will prolly want this in the future, but needs porting to Qt6
qtfeedback
];
nativeCheckInputs = [
@@ -152,7 +206,7 @@ stdenv.mkDerivation (finalAttrs: {
xvfb-run
];
qmakeFlags = [
qmakeFlags = lib.optionals (!withQt6) [
# Ubuntu UITK compatibility, for older / not-yet-migrated applications
"CONFIG+=ubuntu-uitk-compat"
"QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
@@ -180,12 +234,14 @@ stdenv.mkDerivation (finalAttrs: {
export UITK_BUILD_ROOT=$PWD
tests/xvfb.sh make check ''${enableParallelChecking:+-j''${NIX_BUILD_CORES}}
${lib.optionalString withQt6 "../"}tests/xvfb.sh make ${
if withQt6 then "test" else "check"
} ''${enableParallelChecking:+-j''${NIX_BUILD_CORES}}
runHook postCheck
'';
preInstall = ''
preInstall = lib.optionalString (!withQt6) ''
# wrapper script calls qmlplugindump, crashes due to lack of minimal platform plugin
# Could not find the Qt platform plugin "minimal" in ""
# Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
@@ -198,20 +254,24 @@ stdenv.mkDerivation (finalAttrs: {
done
'';
postInstall = ''
# Code loads Qt's qt_module.prf, which force-overrides all QMAKE_PKGCONFIG_* variables except PREFIX for QMake-generated pkg-config files
for pcFile in Lomiri{Gestures,Metrics,Toolkit}.pc; do
substituteInPlace $out/lib/pkgconfig/$pcFile \
--replace-fail "${lib.getLib qtbase}/lib" "\''${prefix}/lib" \
--replace-fail "${lib.getDev qtbase}/include" "\''${prefix}/include"
done
# These are all dev-related tools, but declaring a bin output also moves around the QML modules
moveToOutput "bin" "$dev"
'';
postInstall =
lib.optionalString (!withQt6) ''
# Code loads Qt's qt_module.prf, which force-overrides all QMAKE_PKGCONFIG_* variables except PREFIX for QMake-generated pkg-config files
for pcFile in Lomiri{Gestures,Metrics,Toolkit}${lib.optionalString withQt6 "-Qt6"}.pc; do
substituteInPlace $out/lib/pkgconfig/$pcFile \
--replace-fail "${lib.getLib qtbase}/lib" "\''${prefix}/lib" \
--replace-fail "${lib.getDev qtbase}/include" "\''${prefix}/include"
done
''
+ ''
# These are all dev-related tools, but declaring a bin output also moves around the QML modules
moveToOutput "bin" "$dev"
'';
postFixup = ''
for qtBin in $dev/bin/{apicheck,lomiri-ui-toolkit-launcher}; do
for qtBin in ${
if withQt6 then "$out/libexec/lomiri-ui-toolkit/qt6" else "$dev/bin"
}/apicheck $dev/bin/lomiri-ui-toolkit-launcher${lib.optionalString withQt6 "-qt6"}; do
wrapQtApp $qtBin
done
'';
@@ -246,9 +306,9 @@ stdenv.mkDerivation (finalAttrs: {
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"LomiriGestures"
"LomiriMetrics"
"LomiriToolkit"
"LomiriGestures${lib.optionalString withQt6 "-Qt6"}"
"LomiriMetrics${lib.optionalString withQt6 "-Qt6"}"
"LomiriToolkit${lib.optionalString withQt6 "-Qt6"}"
];
};
})
@@ -23,6 +23,11 @@
validatePkgConfig,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
qtQmlPaths = listToQtVar qtbase.qtQmlPrefix [ qtdeclarative ];
in
stdenv.mkDerivation (finalAttrs: {
pname = "biometryd";
version = "0.4.0";
@@ -60,6 +65,12 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace data/biometryd.pc.in \
--replace-fail 'libdir=''${exec_prefix}' 'libdir=''${prefix}' \
--replace-fail 'includedir=''${exec_prefix}' 'includedir=''${prefix}' \
# Suffix our QML2_IMPORT_PATH
substituteInPlace tests/CMakeLists.txt \
--replace-fail \
'QML2_IMPORT_PATH=''${CMAKE_BINARY_DIR}/src/biometry/qml;' \
'QML2_IMPORT_PATH=''${CMAKE_BINARY_DIR}/src/biometry/qml:${qtQmlPaths};'
''
+ lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt
@@ -96,14 +107,14 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_WERROR" true)
(lib.cmakeBool "WITH_HYBRIS" false)
];
preBuild = ''
# Generating plugins.qmltypes (also used in checkPhase?)
export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
export QT_PLUGIN_PATH=${listToQtVar qtbase.qtPluginPrefix [ qtbase ]}
'';
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@@ -23,14 +23,18 @@
properties-cpp,
qtbase,
qtdeclarative,
qtfeedback,
qtgraphicaleffects,
qtfeedback ? null,
qtgraphicaleffects ? null,
qttools,
validatePkgConfig,
wrapGAppsHook3,
xvfb-run,
withDocumentation ? true,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-content-hub";
version = "2.2.2";
@@ -45,8 +49,10 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [
"out"
"dev"
"doc"
"examples"
]
++ lib.optionals withDocumentation [
"doc"
];
patches = [
@@ -69,6 +75,11 @@ stdenv.mkDerivation (finalAttrs: {
# Don't override default theme search path (which honours XDG_DATA_DIRS) with a FHS assumption
substituteInPlace import/Lomiri/Content/contenthubplugin.cpp \
--replace-fail 'QIcon::setThemeSearchPaths(QStringList() << ("/usr/share/icons/"));' ""
''
# Need QtQuick.Window on QML2_IMPORT_PATH
+ ''
substituteInPlace tests/qml6-tests/CMakeLists.txt \
--replace-fail 'QML2_IMPORT_PATH=' 'QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/${qtbase.qtQmlPrefix}:'
'';
strictDeps = true;
@@ -78,9 +89,11 @@ stdenv.mkDerivation (finalAttrs: {
gettext
pkg-config
qtdeclarative # qmlplugindump
qttools # qdoc
validatePkgConfig
wrapGAppsHook3
]
++ lib.optionals withDocumentation [
qttools # qdoc
];
buildInputs = [
@@ -96,8 +109,13 @@ stdenv.mkDerivation (finalAttrs: {
properties-cpp
qtbase
qtdeclarative
qtfeedback
]
++ lib.optionals (!withQt6) [
# Deprecated in Qt6
qtgraphicaleffects
# Will prolly want this in the future, but needs porting to Qt6
qtfeedback
];
nativeCheckInputs = [
@@ -112,11 +130,13 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_DOC" true)
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" true) # in case something still depends on it
(lib.cmakeBool "ENABLE_WERROR" true)
(lib.cmakeBool "ENABLE_DOC" withDocumentation)
# in case something still depends on it
# no longer available in the Qt6 build
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" (!withQt6))
(lib.cmakeBool "ENABLE_WERROR" (!withQt6)) # Known issues on Qt6
];
preBuild =
@@ -128,12 +148,19 @@ stdenv.mkDerivation (finalAttrs: {
# Executes qmlplugindump
export QT_PLUGIN_PATH=${listToQtVar [ qtbase ] qtbase.qtPluginPrefix}
export QML2_IMPORT_PATH=${
listToQtVar [
qtdeclarative
lomiri-ui-toolkit
qtfeedback
qtgraphicaleffects
] qtbase.qtQmlPrefix
listToQtVar (
[
qtdeclarative
lomiri-ui-toolkit
]
++ lib.optionals (!withQt6) [
# Deprecated in Qt6
qtgraphicaleffects
# Will prolly want this in the future, but needs porting to Qt6
qtfeedback
]
) qtbase.qtQmlPrefix
}
'';
@@ -160,6 +187,8 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
}
// lib.optionalAttrs (!withQt6) {
# Tests content-hub functionality, up to the point where one app receives a content exchange request
# from another and changes into a mode to pick the content to send
vm = nixosTests.lomiri.desktop-appinteractions;
@@ -183,7 +212,7 @@ stdenv.mkDerivation (finalAttrs: {
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"liblomiri-content-hub"
"liblomiri-content-hub${lib.optionalString withQt6 "-qt6"}"
"liblomiri-content-hub-glib"
];
};
@@ -21,12 +21,16 @@
python3,
qtbase,
qtdeclarative,
qtscxml,
qttools,
validatePkgConfig,
wrapQtAppsHook,
xvfb-run,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-download-manager";
version = "0.3.0";
@@ -72,6 +76,9 @@ stdenv.mkDerivation (finalAttrs: {
validatePkgConfig
wrapQtAppsHook
]
++ lib.optionals withQt6 [
qtscxml
]
++ lib.optionals withDocumentation [
doxygen
graphviz
@@ -98,9 +105,9 @@ stdenv.mkDerivation (finalAttrs: {
checkInputs = [ gtest ];
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_DOC" withDocumentation)
(lib.cmakeBool "ENABLE_WERROR" true)
(lib.cmakeBool "ENABLE_WERROR" (!withQt6))
];
makeTargets = [ "all" ] ++ lib.optionals withDocumentation [ "doc" ];
@@ -129,7 +136,7 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl3Only;
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
pkgConfigModules = map (pc: pc + lib.optionalString withQt6 "-qt6") [
"ldm-common"
"lomiri-download-manager-client"
"lomiri-download-manager-common"
@@ -12,11 +12,11 @@
doxygen,
gettext,
glib,
gmenuharness,
gmenuharness ? null, # not ported to Qt6 yet
gtest,
intltool,
libsecret,
libqofono,
libqofono ? null, # not ported to Qt6 yet
libqtdbusmock,
libqtdbustest,
lomiri-api,
@@ -25,12 +25,15 @@
ofono,
pkg-config,
python3,
qtdeclarative,
qtbase,
qtdeclarative,
qttools,
validatePkgConfig,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-indicator-network";
version = "1.2.0";
@@ -45,6 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [
"out"
"dev"
]
++ lib.optionals (!withQt6) [
"doc"
];
@@ -59,26 +64,33 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
doxygen
gettext
intltool
pkg-config
qtdeclarative
qttools # qdoc
validatePkgConfig
]
++ lib.optionals (!withQt6) [
doxygen
intltool
qttools # qdoc
];
buildInputs = [
cmake-extras
lomiri-api
qtbase
]
++ lib.optionals withQt6 [
qtdeclarative
]
++ lib.optionals (!withQt6) [
dbus
glib
libqofono
libsecret
lomiri-api
lomiri-url-dispatcher
networkmanager
ofono
qtbase
];
nativeCheckInputs = [ (python3.withPackages (ps: with ps; [ python-dbusmock ])) ];
@@ -93,37 +105,45 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "BUILD_DOC" true)
(lib.cmakeBool "BUILD_LIBCONNECTIVITY_ONLY" false)
(lib.cmakeBool "BUILD_DOC" (!withQt6))
# Indicator is not ported to Qt6 yet
(lib.cmakeBool "BUILD_LIBCONNECTIVITY_ONLY" withQt6)
(lib.cmakeBool "ENABLE_COVERAGE" false)
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" (!lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "USE_SYSTEMD" true)
(lib.cmakeBool "ENABLE_UBUNTU_COMPAT" (!withQt6))
(lib.cmakeBool "GSETTINGS_COMPILE" (!withQt6))
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" (!withQt6))
(lib.cmakeBool "USE_SYSTEMD" (!withQt6))
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doCheck =
stdenv.buildPlatform.canExecute stdenv.hostPlatform
# Indicator is not ported to Qt6 yet, tests only cover indicator
&& !withQt6;
# Multiple tests spin up & speak to D-Bus, avoid cross-talk causing failures
enableParallelChecking = false;
postInstall = ''
postInstall = lib.optionalString (!withQt6) ''
substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
--replace-fail '/bin/false' '${lib.getExe' coreutils "false"}'
'';
passthru = {
ayatana-indicators = {
lomiri-indicator-network = [ "lomiri" ];
};
tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
}
// lib.optionalAttrs (!withQt6) {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-network;
};
updateScript = gitUpdater { };
}
// lib.optionalAttrs (!withQt6) {
ayatana-indicators = {
lomiri-indicator-network = [ "lomiri" ];
};
};
meta = {
@@ -135,6 +155,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.gpl3Only;
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [ "lomiri-connectivity-qt1" ];
pkgConfigModules = [ "lomiri-connectivity-qt${if withQt6 then "6" else "1"}" ];
};
})
@@ -28,6 +28,9 @@
wrapQtAppsHook,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-url-dispatcher";
version = "0.1.4";
@@ -93,7 +96,6 @@ stdenv.mkDerivation (finalAttrs: {
libapparmor
lomiri-app-launch
lomiri-ui-toolkit
qtdeclarative
sqlite
systemd
libxkbcommon
@@ -128,13 +130,19 @@ stdenv.mkDerivation (finalAttrs: {
wrapProgram $out/bin/lomiri-url-dispatcher-dump \
--prefix PATH : ${lib.makeBinPath [ sqlite ]}
''
# https://gitlab.com/ubports/development/core/lomiri-url-dispatcher/-/work_items/13
+ lib.optionalString withQt6 ''
rm $out/bin/lomiri-url-dispatcher-gui
rm -r $out/share/lomiri-url-dispatcher/gui
''
+ lib.optionalString (!withQt6) ''
mkdir -p $out/share/icons/hicolor/scalable/apps
ln -s $out/share/lomiri-url-dispatcher/gui/lomiri-url-dispatcher-gui.svg $out/share/icons/hicolor/scalable/apps/
# Calls qmlscene from PATH, needs Qt plugins & QML components
qtWrapperArgs+=(
--prefix PATH : ${lib.makeBinPath [ qtdeclarative.dev ]}
--prefix PATH : ${lib.makeBinPath [ (if withQt6 then qtdeclarative.out else qtdeclarative.dev) ]}
)
wrapQtApp $out/bin/lomiri-url-dispatcher-gui
'';
@@ -11,12 +11,12 @@
rebar3Relx rec {
releaseType = "escript";
pname = "elvis-erlang";
version = "4.2.3";
version = "5.0.2";
src = fetchFromGitHub {
owner = "inaka";
repo = "elvis";
hash = "sha256-4hStLm76HZmO3vk/RdeRGJPJ3gevUkjVO2jGpVff32Q=";
hash = "sha256-QGA9vAWMgRhKHKc0XdoAymssFJSMM/xYDvKY6NC0Yys=";
tag = version;
};
@@ -24,11 +24,11 @@ let
};
katana_code = builder {
name = "katana_code";
version = "2.4.1";
version = "2.4.3";
src = fetchHex {
pkg = "katana_code";
version = "2.4.1";
sha256 = "sha256-WO/GO12dq8giMMq1DN5/eyWSh6aQ7Wmfeaf6gPSbCzo=";
version = "2.4.3";
sha256 = "sha256-YUxjQ9uqRc7e8n0j6wkBo4PEa/61dwOaXmDK0XGGzO4=";
};
beamDeps = [ ];
};
@@ -44,11 +44,11 @@ let
};
elvis_core = builder {
name = "elvis_core";
version = "4.2.3";
version = "5.0.2";
src = fetchHex {
pkg = "elvis_core";
version = "4.2.3";
sha256 = "sha256-xy4xinPab51p3uDxh/h5dHH57kbPTdrO36LJ+byxjqA=";
version = "5.0.2";
sha256 = "sha256-SFa4TuS6ENxtjKBAoS2tZ5yXAuBRFIADvTsfsYUTxdc=";
};
beamDeps = [
katana_code
@@ -16,6 +16,9 @@
qtbase,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "libqtdbusmock";
version = "0.10.0";
@@ -68,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6"))
(lib.cmakeBool "ENABLE_QT6" withQt6)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@@ -95,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
platforms = lib.platforms.unix;
teams = [ lib.teams.lomiri ];
pkgConfigModules = [
"libqtdbusmock-1"
"libqtdbusmock${lib.optionalString withQt6 "-qt6"}-1"
];
};
})
@@ -16,6 +16,9 @@
qtbase,
}:
let
withQt6 = lib.strings.versionAtLeast qtbase.version "6";
in
stdenv.mkDerivation (finalAttrs: {
pname = "libqtdbustest";
version = "0.4.0";
@@ -79,6 +82,10 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT6" withQt6)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
enableParallelChecking = false;
@@ -104,7 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
teams = [ lib.teams.lomiri ];
mainProgram = "qdbus-simple-test-runner";
pkgConfigModules = [
"libqtdbustest-1"
"libqtdbustest-${if withQt6 then "qt6" else "1"}"
];
};
})
+15 -1
View File
@@ -75,6 +75,20 @@ stdenv.mkDerivation rec {
homepage = "https://www.openexr.com/";
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
insecure = true;
knownVulnerabilities = [
"CVE-2021-3598: ImfDeepScanLineInputFile Out-of-Bounds Read"
"CVE-2021-3605: rleUncompress Out-of-Bounds Read"
"CVE-2021-3933: Integer Overflow Vulnerability in File Processing on 32-bit Systems"
"CVE-2021-23169: copyIntoFrameBuffer Heap Buffer Overflow Leading to Arbitrary Code Execution"
"CVE-2021-23215: DwaCompressor Integer Overflow Leads to Heap Buffer Overflow"
"CVE-2021-26260: DwaCompressor Integer Overflow Leading to Heap Buffer Overflow"
"CVE-2021-26945: Integer Overflow Leading to Heap Buffer Overflow"
"CVE-2023-5841: Heap Overflow in Scanline Deep Data Parsing"
"CVE-2024-31047: convert Function Denial of Service"
"CVE-2025-12495: EXR File Parsing Heap-based Buffer Overflow Remote Code Execution"
"CVE-2025-12839: EXR File Parsing Heap-based Buffer Overflow Remote Code Execution"
"CVE-2025-12840: EXR File Parsing Heap-based Buffer Overflow Remote Code Execution"
"CVE-2026-27622: CompositeDeepScanLine integer-overflow leads to heap OOB write"
];
};
}
@@ -358,13 +358,13 @@
buildPythonPackage (finalAttrs: {
pname = "boto3-stubs";
version = "1.42.78";
version = "1.42.79";
pyproject = true;
src = fetchPypi {
pname = "boto3_stubs";
inherit (finalAttrs) version;
hash = "sha256-QjM1uM6ak15AQFSXhYnNuY2fodS9Rgc9aCG/HD+tjKc=";
hash = "sha256-Xx++FvmCk6Z85Zdp5nCThgXVnkRCIcGwijoNeMOVB3s=";
};
build-system = [ setuptools ];
@@ -10,16 +10,16 @@
uv-build,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "busylight-core";
version = "2.0.1";
version = "2.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "JnyJny";
repo = "busylight-core";
tag = "v${version}";
hash = "sha256-BJJkuArs7zRvnxVykcMzc/K+MC9r/NYy3wUfAUxrnNE=";
tag = "v${finalAttrs.version}";
hash = "sha256-as2IvaxyMjGKPGlBmz1cntAhbpuW+f3INtnNIcwpWh8=";
};
postPatch = ''
@@ -45,8 +45,8 @@ buildPythonPackage rec {
meta = {
description = "Library for interacting programmatically with USB-connected LED lights";
homepage = "https://github.com/JnyJny/busylight-core";
changelog = "https://github.com/JnyJny/busylight-core/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/JnyJny/busylight-core/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -1,30 +1,25 @@
{
lib,
buildPythonPackage,
flit-core,
construct,
fetchFromGitHub,
pytestCheckHook,
uv-build,
}:
buildPythonPackage rec {
pname = "construct-classes";
version = "0.2.2";
version = "0.2.3";
pyproject = true;
src = fetchFromGitHub {
owner = "matejcik";
repo = "construct-classes";
tag = "v${version}";
hash = "sha256-goOQMt/nVjWXYltpnKHtJaLOhR+gRTmtoUh7zVb7go4=";
hash = "sha256-xRYf6Tg4XyQN+g8uOaws46KKb0abD/M/5Q+SlnzEp/8=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv_build>=0.8.13,<0.9.0" "uv_build>=0.8.13"
'';
build-system = [ uv-build ];
build-system = [ flit-core ];
dependencies = [ construct ];
@@ -64,14 +64,14 @@
buildPythonPackage (finalAttrs: {
pname = "dvc";
version = "3.67.0";
version = "3.67.1";
pyproject = true;
src = fetchFromGitHub {
owner = "iterative";
repo = "dvc";
tag = finalAttrs.version;
hash = "sha256-JNwlZFDW/qRkGuGiXnqmp+Dfp1hod9ZfMwMJgWJ8X00=";
hash = "sha256-KzHaR7o3PUHMBrtSDWXvH7/YMPxSafPSGUnS9018XKg=";
};
pythonRelaxDeps = [
@@ -80,12 +80,17 @@ buildPythonPackage (finalAttrs: {
pytestCheckHook
sympy
];
# https://github.com/NixOS/nixpkgs/issues/255262
preCheck = ''
rm -rf freud
'';
disabledTests = [
# 4 tests fail with:
#
# AttributeError: module 'scipy.special' has no attribute 'sph_harm'
#
# See: https://github.com/glotzerlab/freud/issues/1408
"test_ld"
"test_multiple_l"
"test_qlmi"
@@ -15,13 +15,13 @@
buildPythonPackage (finalAttrs: {
pname = "google-cloud-workstations";
version = "0.7.0";
version = "0.8.0";
pyproject = true;
src = fetchPypi {
pname = "google_cloud_workstations";
inherit (finalAttrs) version;
hash = "sha256-poGhvPGpD+qOFacXsSqwaki5EZaTMQpAoXh7X0kqUsc=";
hash = "sha256-wuFFlOxCyTK0n39LB3XGwvoQ7FCSjUDJa3n6uElvSEQ=";
};
build-system = [ setuptools ];
@@ -4,7 +4,6 @@
aioresponses,
buildPythonPackage,
fetchFromGitHub,
habitipy,
hatch-regex-commit,
hatchling,
mashumaro,
@@ -19,7 +18,7 @@
buildPythonPackage rec {
pname = "habiticalib";
version = "0.4.6";
version = "0.4.7";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -28,7 +27,7 @@ buildPythonPackage rec {
owner = "tr4nt0r";
repo = "habiticalib";
tag = "v${version}";
hash = "sha256-Z3VJ0AaB4HeCOffV5B2WFIvGJXoCn1isNPMnERoUrp0=";
hash = "sha256-ZZY7UnA4d4JNHGLMtaEGobAgzAwYDgL2SUGfxGABxTs=";
};
build-system = [
@@ -36,9 +35,12 @@ buildPythonPackage rec {
hatchling
];
pythonRelaxDeps = [
"orjson"
];
dependencies = [
aiohttp
habitipy
mashumaro
orjson
pillow
@@ -52,8 +54,6 @@ buildPythonPackage rec {
syrupy
];
pytestFlags = [ "--snapshot-update" ];
pythonImportsCheck = [ "habiticalib" ];
disabledTests = [
@@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "iamdata";
version = "0.1.202603301";
version = "0.1.202603311";
pyproject = true;
src = fetchFromGitHub {
owner = "cloud-copilot";
repo = "iam-data-python";
tag = "v${finalAttrs.version}";
hash = "sha256-cJ+CvwbPLyZZazeKVZywBLsIChvZKZ8huQbEh3yIsto=";
hash = "sha256-r4BpJJq/2xopL16+JXss7Xj7XgebQTmKdDkc9KeEbU0=";
};
__darwinAllowLocalNetworking = true;
@@ -127,8 +127,8 @@ in
"sha256-Mvf3bBhrRRR+hoAsBPq7p9COJqVxV9LL+GrnikrHX2g=";
mypy-boto3-appstream =
buildMypyBoto3Package "appstream" "1.42.54"
"sha256-NrR4wQslCosBCvmAkGe7qJ3WNu428hD3+SZUk1Ga870=";
buildMypyBoto3Package "appstream" "1.42.79"
"sha256-EG6G33/7BTIjlEXxSa0ygnT80WytlAMCM/bAI9jz3Jg=";
mypy-boto3-appsync =
buildMypyBoto3Package "appsync" "1.42.6"
@@ -147,8 +147,8 @@ in
"sha256-jW+LgaUpdeCSJLnpNE13DSio9nFmp0icoLEMwxX44KU=";
mypy-boto3-autoscaling =
buildMypyBoto3Package "autoscaling" "1.42.33"
"sha256-F1+6Sd7kaCrZlulXzrFmF3RFUPEmRNvKeB1xQeSGgq4=";
buildMypyBoto3Package "autoscaling" "1.42.79"
"sha256-izdIT33QiFDXbe+VUes3ErQphuiCL+Q/c32qBjJzyDw=";
mypy-boto3-autoscaling-plans =
buildMypyBoto3Package "autoscaling-plans" "1.42.3"
@@ -459,8 +459,8 @@ in
"sha256-syjw4M02YXRXsJpM3e7OikE3sSTl/hIIJ3857PP2BII=";
mypy-boto3-ecs =
buildMypyBoto3Package "ecs" "1.42.69"
"sha256-+ysRw8dohrQWQGdBU5qzHpNr6DF/BcELn90WdUCNPes=";
buildMypyBoto3Package "ecs" "1.42.79"
"sha256-qNwhq5px+DbifDPRN0VeHk0j7AzWSxgiXkvKovyHIQE=";
mypy-boto3-efs =
buildMypyBoto3Package "efs" "1.42.3"
@@ -559,8 +559,8 @@ in
"sha256-NqNGcL3HfJgx2ScPLKMNNwpVS3bO4Cu7JpYlenSJwJg=";
mypy-boto3-gamelift =
buildMypyBoto3Package "gamelift" "1.42.75"
"sha256-Iv1OjFAKOny91w2G++yfwZLH8dMREz+1iF7+t8jgM1k=";
buildMypyBoto3Package "gamelift" "1.42.79"
"sha256-IYvjnVdbVYFkX7Qu3Sr9iaRFMeq/F7njuPW3EBWldlE=";
mypy-boto3-glacier =
buildMypyBoto3Package "glacier" "1.42.30"
@@ -762,8 +762,8 @@ in
"sha256-bCVvuhK3mpTeNDYDYaACVWgQMhKR9mIi9BbbCI0ynCA=";
mypy-boto3-lakeformation =
buildMypyBoto3Package "lakeformation" "1.42.45"
"sha256-CG1b4lkqvsQLguhkYuJ5CH5Gu0IrC1mbsYYQ2Itjys4=";
buildMypyBoto3Package "lakeformation" "1.42.79"
"sha256-tMre640822/6JE0YVSHud03xqS4VbgJy9RJsN3eIEhE=";
mypy-boto3-lambda =
buildMypyBoto3Package "lambda" "1.42.37"
@@ -806,8 +806,8 @@ in
"sha256-VGQzgnrUynTDjfYpEk+FR+PrljbULl0UpbeqbaPKqSc=";
mypy-boto3-logs =
buildMypyBoto3Package "logs" "1.42.77"
"sha256-2SCge72wHVg5703SucdtTdadJn9fnbnxiz8NhDXAWB0=";
buildMypyBoto3Package "logs" "1.42.79"
"sha256-CPFaU1Cz1OfBiOSh5jfPWIU64cV4k8Mf5cCM1S7ZlXw=";
mypy-boto3-lookoutequipment =
buildMypyBoto3Package "lookoutequipment" "1.42.3"
@@ -966,8 +966,8 @@ in
"sha256-h0urK602L1j2CtD1xsUOMaXizzc2CxbttMlaSNyQNoM=";
mypy-boto3-opensearch =
buildMypyBoto3Package "opensearch" "1.42.73"
"sha256-aRXlQy744sPCF4lUZTLaUXIzHtFUJEB9r6xaYQC6Ric=";
buildMypyBoto3Package "opensearch" "1.42.79"
"sha256-oGczBLqgxxiP+MeOt3p+5qbe32r6YzqRGJfe3CQ7srU=";
mypy-boto3-opensearchserverless =
buildMypyBoto3Package "opensearchserverless" "1.42.75"
@@ -1158,8 +1158,8 @@ in
"sha256-4/Q39UsUYaluauoaLm6BOej+Krl2VbO1xKKo1orRIkI=";
mypy-boto3-s3 =
buildMypyBoto3Package "s3" "1.42.67"
"sha256-OjqRiplJ8tb4Bx1JC4lo3c5jSqGVkGl1N+UYnL3KQD4=";
buildMypyBoto3Package "s3" "1.42.79"
"sha256-NTwMCEMM3fUVkiYYdeokwq64juVcyiMHLXbbZqkhoYg=";
mypy-boto3-s3control =
buildMypyBoto3Package "s3control" "1.42.37"
@@ -1170,8 +1170,8 @@ in
"sha256-juVfwdjPDNPaT5tvyXpzDtomugqxeu++AERLkVtFIxw=";
mypy-boto3-sagemaker =
buildMypyBoto3Package "sagemaker" "1.42.77"
"sha256-gm5z5bnS57ZsNpKroi91/KfYWxnAjgjPwB6IOZ6eSno=";
buildMypyBoto3Package "sagemaker" "1.42.79"
"sha256-HSSrvBgXk0HwS8ys2e8+euzupPc075axwh7WAduvvR8=";
mypy-boto3-sagemaker-a2i-runtime =
buildMypyBoto3Package "sagemaker-a2i-runtime" "1.42.3"
@@ -1,13 +1,13 @@
{ lib, fetchFromGitHub }:
rec {
version = "3.11.0";
version = "3.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "openrazer";
repo = "openrazer";
tag = "v${version}";
hash = "sha256-pk3nghd16jhdf7zokwMzBGwGtBU7ta4nSHsOoGxjD4w=";
hash = "sha256-Sgn+7DABsTnRTx/lh/++JPmfsQ7dM6frkyzG0F5k2gA=";
};
meta = {
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "pydrawise";
version = "2025.9.0";
version = "2026.3.0";
pyproject = true;
src = fetchFromGitHub {
owner = "dknowles2";
repo = "pydrawise";
tag = version;
hash = "sha256-eHy3pdzgN5CvKfsoa5ZdT9lor4AiZr8K1g/8qyzP3eo=";
hash = "sha256-h91J8gcc5qiBCYvOeFhSDtvdMKfuWUTys6uw5wmLehI=";
};
build-system = [
@@ -15,14 +15,14 @@
buildPythonPackage (finalAttrs: {
pname = "pyoverkiz";
version = "1.20.0";
version = "1.20.1";
pyproject = true;
src = fetchFromGitHub {
owner = "iMicknl";
repo = "python-overkiz-api";
tag = "v${finalAttrs.version}";
hash = "sha256-H1G85vleaV+ZWbjH3tozI6fvWPKxwrIVRIXiFwsUWOA=";
hash = "sha256-PaJ4AC0N82iGTsgP620uI6Iw9l0aHrR7UutWLYxrOYE=";
};
build-system = [ hatchling ];
@@ -0,0 +1,46 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
versioneer,
attrs,
pathspec,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "scantree";
version = "0.0.4";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-Fb1cskSDsE2yxwZTYE6Oo1IumAh9t+OKuEgvBTmEwKw=";
};
build-system = [
setuptools
versioneer
];
dependencies = [
attrs
pathspec
];
pythonImportsCheck = [
"scantree"
];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
description = "Flexible recursive directory iterator: scandir meets glob(\"**\", recursive=True)";
homepage = "https://github.com/andhus/scantree";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ wentasah ];
};
}
@@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "tencentcloud-sdk-python";
version = "3.1.64";
version = "3.1.67";
pyproject = true;
src = fetchFromGitHub {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = finalAttrs.version;
hash = "sha256-X8UCnuXhaPsBrtuFz8cLkvag86Fa5aO7YXuPmazZdVA=";
hash = "sha256-J5svdEmr8jGq7OstSRk/Sv/QsmwPanm0gemciOyHjHc=";
};
build-system = [ setuptools ];
@@ -1,16 +1,16 @@
diff --git a/src/dist/component/package.rs b/src/dist/component/package.rs
index dfccc661..85233f3b 100644
index dc545d4b62..4dd8ade86e 100644
--- a/src/dist/component/package.rs
+++ b/src/dist/component/package.rs
@@ -113,6 +113,7 @@ impl Package for DirectoryPackage {
@@ -130,6 +130,7 @@
} else {
builder.move_file(path.clone(), &src_path)?
}
+ nix_patchelf_if_needed(&target.prefix().path().join(path.clone()))
}
"dir" => {
ComponentPartKind::Dir => {
if self.copy {
@@ -135,6 +136,176 @@ impl Package for DirectoryPackage {
@@ -152,6 +153,176 @@
}
}
@@ -31,7 +31,7 @@ index dfccc661..85233f3b 100644
+ .parent()
+ .ok_or(anyhow!("failed to get parent directory"))?
+ .with_file_name("nix-support");
+ let mut file = std::fs::File::create(dest_lld_path)?;
+ let mut file = fs::File::create(dest_lld_path)?;
+ ld_wrapper_path.push("ld-wrapper.sh");
+
+ let wrapped_script = format!(
@@ -184,6 +184,6 @@ index dfccc661..85233f3b 100644
+ }
+}
+
#[derive(Debug)]
pub(crate) struct TarPackage<'a>(DirectoryPackage, temp::Dir<'a>);
/// Handle the async result of io operations
/// Replaces op.result with Ok(())
fn filter_result(op: &mut CompletedIo) -> io::Result<()> {
@@ -25,16 +25,16 @@ in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rustup";
version = "1.28.2";
version = "1.29.0";
src = fetchFromGitHub {
owner = "rust-lang";
repo = "rustup";
tag = finalAttrs.version;
hash = "sha256-iX5hEaQwCW9MuyafjXml8jV3EDnxRNUlOoy3Cur/Iyw=";
hash = "sha256-jbB0nmXtc95Ac+YfmyELh6n5OTRMmeDPT4OFIlJNrZc=";
};
cargoHash = "sha256-KljaAzYHbny7KHOO51MotdmNpHCKWdt6kc/FIpFN6c0=";
cargoHash = "sha256-m/KoXNJh00zYKZo7MIJsBvo4zldfKdofrUh8AItJqXI=";
nativeBuildInputs = [
makeBinaryWrapper
@@ -78,9 +78,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
# TODO: Investigate this.
doCheck = !stdenv.hostPlatform.isDarwin;
# Random failures when running tests in parallel.
preCheck = ''
export NIX_BUILD_CORES=1
'';
dontUseCargoParallelTests = true;
# skip failing tests
checkFlags = [
@@ -89,7 +87,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
"--skip=suite::cli_exact::check_updates_some"
"--skip=suite::cli_exact::check_updates_with_update"
# rustup-init is not used in nix rustup
"--skip=suite::cli_ui::rustup_init_ui_doc_text_tests"
"--skip=suite::cli_rustup_init_ui"
# reaches out to the network to test TLS roots, which can't be done in the
# build sandbox
"--skip=suite::static_roots::store_static_roots"
];
postInstall = ''
+4 -4
View File
@@ -53,14 +53,14 @@ let
in
{
nextcloud32 = generic {
version = "32.0.6";
hash = "sha256-RLwz/A4xplC7UguxI8CqplGbf3uThhM9Vhred+U/cTA=";
version = "32.0.7";
hash = "sha256-RQtPKybIO+TXuGgiKafYaOKAL9VK6PPuY2dhiZVjenY=";
packages = nextcloud32Packages;
};
nextcloud33 = generic {
version = "33.0.0";
hash = "sha256-b3cwkCJpyHn58q1KoKInyxa1QI7kbwk/aL0yYz90Gr8=";
version = "33.0.1";
hash = "sha256-0D8V3p36Zq1zjjfFDnek8BfCaAzcuYQlwg2rQwjQ+Ms=";
packages = nextcloud33Packages;
};
+12 -12
View File
@@ -30,9 +30,9 @@
]
},
"collectives": {
"hash": "sha256-BYgY9kC91ftpw/eXlFT5ryNhjz138pzPoIh89k46GZ8=",
"url": "https://github.com/nextcloud/collectives/releases/download/v4.1.0/collectives-4.1.0.tar.gz",
"version": "4.1.0",
"hash": "sha256-h6Krtrm9YLZ0TEfsInN2bmY+/2v4Gyef5x0TIo9n/Ns=",
"url": "https://github.com/nextcloud/collectives/releases/download/v4.2.0/collectives-4.2.0.tar.gz",
"version": "4.2.0",
"description": "Collectives is a Nextcloud App for activist and community projects to organize together.\nCome and gather in collectives to build shared knowledge.\n\n* 👥 **Collective and non-hierarchical workflow by heart**: Collectives are\n tied to a [Nextcloud Team](https://github.com/nextcloud/circles) and\n owned by the collective.\n* 📝 **Collaborative page editing** like known from Etherpad thanks to the\n [Text app](https://github.com/nextcloud/text).\n* 🔤 **Well-known [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax**\n for page formatting.\n\n## Installation\n\nIn your Nextcloud instance, simply navigate to **»Apps«**, find the\n**»Teams«** and **»Collectives«** apps and enable them.",
"homepage": "https://github.com/nextcloud/collectives",
"licenses": [
@@ -420,9 +420,9 @@
]
},
"twofactor_admin": {
"hash": "sha256-tZG2NCd4WxnPwf1KJq5mBX7Zfy0rDjigJGOw2qypUlU=",
"url": "https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.11.0/twofactor_admin-v4.11.0.tar.gz",
"version": "4.11.0",
"hash": "sha256-dx8bEsC/rSAKN9rwP2hf3d8G3f3J1RzCrSqU6BbcvRY=",
"url": "https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.11.1/twofactor_admin-v4.11.1.tar.gz",
"version": "4.11.1",
"description": "This two-factor auth (2FA) provider for Nextcloud allows admins to generate a one-time\n\t\tcode for users to log into a 2FA protected account. This is helpful in situations where\n\t\tusers have lost access to their other 2FA methods or mandatory 2FA without any previously\n\t\tenabled 2FA provider.",
"homepage": "",
"licenses": [
@@ -460,9 +460,9 @@
]
},
"user_oidc": {
"hash": "sha256-Xl35Ss/P6PvK6pvm7i/J+0EHJaLPbOCffR8ZT5c3XA4=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v8.6.1/user_oidc-v8.6.1.tar.gz",
"version": "8.6.1",
"hash": "sha256-wAAooaPTsCjCS6UCzUuFeSJ6EUnXPYo3TK6jXLs/Lfk=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v8.7.0/user_oidc-v8.7.0.tar.gz",
"version": "8.7.0",
"description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
"homepage": "https://github.com/nextcloud/user_oidc",
"licenses": [
@@ -470,9 +470,9 @@
]
},
"user_saml": {
"hash": "sha256-oezyc/YXOG1vlw8kNLfVkhA7/WVWfTnL/hb1KSY78ho=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v7.1.3/user_saml-v7.1.3.tar.gz",
"version": "7.1.3",
"hash": "sha256-A4e4LYCcrt+LcyrSK9vQoNGG/a+bZU6K4umajrgDBIM=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v7.1.4/user_saml-v7.1.4.tar.gz",
"version": "7.1.4",
"description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
"homepage": "https://github.com/nextcloud/user_saml",
"licenses": [
+12 -12
View File
@@ -30,9 +30,9 @@
]
},
"collectives": {
"hash": "sha256-BYgY9kC91ftpw/eXlFT5ryNhjz138pzPoIh89k46GZ8=",
"url": "https://github.com/nextcloud/collectives/releases/download/v4.1.0/collectives-4.1.0.tar.gz",
"version": "4.1.0",
"hash": "sha256-h6Krtrm9YLZ0TEfsInN2bmY+/2v4Gyef5x0TIo9n/Ns=",
"url": "https://github.com/nextcloud/collectives/releases/download/v4.2.0/collectives-4.2.0.tar.gz",
"version": "4.2.0",
"description": "Collectives is a Nextcloud App for activist and community projects to organize together.\nCome and gather in collectives to build shared knowledge.\n\n* 👥 **Collective and non-hierarchical workflow by heart**: Collectives are\n tied to a [Nextcloud Team](https://github.com/nextcloud/circles) and\n owned by the collective.\n* 📝 **Collaborative page editing** like known from Etherpad thanks to the\n [Text app](https://github.com/nextcloud/text).\n* 🔤 **Well-known [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax**\n for page formatting.\n\n## Installation\n\nIn your Nextcloud instance, simply navigate to **»Apps«**, find the\n**»Teams«** and **»Collectives«** apps and enable them.",
"homepage": "https://github.com/nextcloud/collectives",
"licenses": [
@@ -420,9 +420,9 @@
]
},
"twofactor_admin": {
"hash": "sha256-tZG2NCd4WxnPwf1KJq5mBX7Zfy0rDjigJGOw2qypUlU=",
"url": "https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.11.0/twofactor_admin-v4.11.0.tar.gz",
"version": "4.11.0",
"hash": "sha256-dx8bEsC/rSAKN9rwP2hf3d8G3f3J1RzCrSqU6BbcvRY=",
"url": "https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.11.1/twofactor_admin-v4.11.1.tar.gz",
"version": "4.11.1",
"description": "This two-factor auth (2FA) provider for Nextcloud allows admins to generate a one-time\n\t\tcode for users to log into a 2FA protected account. This is helpful in situations where\n\t\tusers have lost access to their other 2FA methods or mandatory 2FA without any previously\n\t\tenabled 2FA provider.",
"homepage": "",
"licenses": [
@@ -460,9 +460,9 @@
]
},
"user_oidc": {
"hash": "sha256-Xl35Ss/P6PvK6pvm7i/J+0EHJaLPbOCffR8ZT5c3XA4=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v8.6.1/user_oidc-v8.6.1.tar.gz",
"version": "8.6.1",
"hash": "sha256-wAAooaPTsCjCS6UCzUuFeSJ6EUnXPYo3TK6jXLs/Lfk=",
"url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v8.7.0/user_oidc-v8.7.0.tar.gz",
"version": "8.7.0",
"description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
"homepage": "https://github.com/nextcloud/user_oidc",
"licenses": [
@@ -470,9 +470,9 @@
]
},
"user_saml": {
"hash": "sha256-oezyc/YXOG1vlw8kNLfVkhA7/WVWfTnL/hb1KSY78ho=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v7.1.3/user_saml-v7.1.3.tar.gz",
"version": "7.1.3",
"hash": "sha256-A4e4LYCcrt+LcyrSK9vQoNGG/a+bZU6K4umajrgDBIM=",
"url": "https://github.com/nextcloud-releases/user_saml/releases/download/v7.1.4/user_saml-v7.1.4.tar.gz",
"version": "7.1.4",
"description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
"homepage": "https://github.com/nextcloud/user_saml",
"licenses": [
+22 -19
View File
@@ -5,24 +5,27 @@ import requests
import subprocess
REPOS = [
"libime",
"xcb-imdkit",
( "fcitx", "libime" ),
( "fcitx", "xcb-imdkit"),
"fcitx5",
"fcitx5-anthy",
"fcitx5-chewing",
"fcitx5-chinese-addons",
"fcitx5-configtool",
"fcitx5-gtk",
"fcitx5-hangul",
"fcitx5-lua",
"fcitx5-m17n",
"fcitx5-qt",
"fcitx5-rime",
"fcitx5-skk",
"fcitx5-table-extra",
"fcitx5-table-other",
"fcitx5-unikey"
( "fcitx", "fcitx5" ),
( "fcitx", "fcitx5-anthy" ),
( "fcitx", "fcitx5-chewing" ),
( "fcitx", "fcitx5-chinese-addons" ),
( "fcitx", "fcitx5-configtool" ),
( "fcitx", "fcitx5-gtk" ),
( "fcitx", "fcitx5-hangul" ),
( "fcitx", "fcitx5-lua" ),
( "fcitx", "fcitx5-m17n" ),
( "fcitx", "fcitx5-qt" ),
( "fcitx", "fcitx5-rime" ),
( "fcitx", "fcitx5-skk" ),
( "fcitx", "fcitx5-table-extra" ),
( "fcitx", "fcitx5-table-other" ),
( "fcitx", "fcitx5-unikey" ),
( "fcitx", "fcitx5-unikey" )
( "ray2501", "fcitx5-array" )
]
OWNER = "fcitx"
@@ -32,8 +35,8 @@ def get_latest_tag(repo, owner=OWNER):
return r.json()[0].get("name")
def main():
for repo in REPOS:
rev = get_latest_tag(repo)
for (owner, repo) in REPOS:
rev = get_latest_tag(repo, owner)
if repo == "fcitx5-qt":
subprocess.run(["nix-update", "--commit", "--version", rev, "qt6Packages.{}".format(repo)])
else:
+2 -5
View File
@@ -100,7 +100,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
inherit pname;
version = "2.58.02";
version = "2.66.01";
src = fetchzip {
url = "https://storage.tdarr.io/versions/${finalAttrs.version}/${platform}/${componentName}.zip";
@@ -160,9 +160,6 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = ''
makeWrapper $out/share/${pname}/${componentName} $out/bin/${pname} ${commonWrapperArgs}
''
# TODO: Check on each update to see if the Tdarr_Node_tray gets re-added to the aarch64-linux build. Reach out to upstream?
+ lib.optionalString (stdenv.hostPlatform.system != "aarch64-linux") ''
makeWrapper $out/share/${pname}/${componentTrayName} $out/bin/${pname}-tray ${commonWrapperArgs}
''
+ lib.optionalString installIcons ''
@@ -177,7 +174,7 @@ stdenv.mkDerivation (finalAttrs: {
''
+ "";
desktopItems = lib.optionals (stdenv.isLinux && stdenv.hostPlatform.system != "aarch64-linux") [
desktopItems = lib.optionals stdenv.isLinux [
(makeDesktopItem {
desktopName = "Tdarr ${componentUpper} Tray";
name = "Tdarr ${componentUpper} Tray";
+4 -4
View File
@@ -5,9 +5,9 @@ callPackage ./common.nix { } {
component = "node";
hashes = {
linux_x64 = "sha256-+vD5oaoYh/bOCuk/Bxc8Fsm9UnFICownSKvg9i726nk=";
linux_arm64 = "sha256-2uPtEno0dSdVBg5hCiUuvBCB5tuTOcpeU2BuXPiqdUU=";
darwin_x64 = "sha256-8O5J1qFpQxD6fzojxjWnbkS4XQoCZauxCtbl/drplfI=";
darwin_arm64 = "sha256-oA+nTkO4LDAX5/cGkjNOLnPu0Rss9el+4JF8PBEfsPQ=";
linux_x64 = "sha256-3dd8ouRfThm481rDJDnxxUuSkqNlFR+2aywPzyy7xrw=";
linux_arm64 = "sha256-LD/cQECal9dLZY/FQSFztOVzd7MaeHL1rdbMUJ2DPNY=";
darwin_x64 = "sha256-icgzoHqZ+P6gXJ8jQTau3O2D6uRvET4MtNoWJI/JnvM=";
darwin_arm64 = "sha256-Rw478IpDLLe+Ek3Jt5Duaq1sHL1D3pE0HkVqk+v1ECE=";
};
}
+4 -4
View File
@@ -5,10 +5,10 @@ callPackage ./common.nix { } {
component = "server";
hashes = {
linux_x64 = "sha256-+nxwSGAkA+BPf481N6KHW7s0iJzoGFPWp0XCbsVEwrI=";
linux_arm64 = "sha256-tA5VX27XmH3C4Bkll2mJlr1BYz5V7PPvzbJeaDht7uI=";
darwin_x64 = "sha256-jgHEezqtzUWTIvmxsmV1VgaXY9wHePkg6bQO16eSSGI=";
darwin_arm64 = "sha256-pcPpqFbqYsXf5Og9uC+eF/1kOQ1ZiletDzkk3qavPS0=";
linux_x64 = "sha256-YbEFgvOEAY5HGyTZw9vr4SC85zLQHUQKq++Qbsg1+5A=";
linux_arm64 = "sha256-PGguxjOGVUPV5CW3iAtoehnxqGkTe9UA6Vu+7bf6DlQ=";
darwin_x64 = "sha256-Gya1DmrLM5UCChwocEwdjYxSWECOl5Ew/e8LpmPQB7M=";
darwin_arm64 = "sha256-RJYQZ4L49WTwgMj+vZYFd5Kl3gX1DrkR+fF5E7L9fVs=";
};
includeInPath = [ ccextractor ];
+13 -4
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq unzip
set -euo pipefail
# Updates tdarr packages to the latest version
@@ -20,11 +21,12 @@ fi
echo "Latest version: $LATEST_VERSION" >&2
# Check current version in common.nix
CURRENT_VERSION=$(grep -oP '(?<=version = ")[^"]+' "$COMMON_FILE" 2>/dev/null)
# Use the current version injected by update.nix, falling back to grepping common.nix for standalone use
CURRENT_VERSION="${UPDATE_NIX_OLD_VERSION:-$(grep -oP '(?<=version = ")[^"]+' "$COMMON_FILE")}"
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
echo "Tdarr packages are already on the latest version ($LATEST_VERSION)" >&2
echo "[]"
exit 0
fi
@@ -32,7 +34,14 @@ echo "Updating from $CURRENT_VERSION to $LATEST_VERSION..." >&2
fetch_and_convert() {
local url=$1
nix-prefetch-url --unpack "$url" 2>/dev/null | xargs nix hash convert --hash-algo sha256 --to sri
local tmpdir
tmpdir=$(mktemp -d)
# Clean up temp directory on return
trap "rm -rf '$tmpdir'" RETURN
curl -sSL -o "$tmpdir/archive.zip" "$url" || { echo "Error: failed to download $url" >&2; return 1; }
unzip -q "$tmpdir/archive.zip" -d "$tmpdir/unpacked" || { echo "Error: failed to unzip $url" >&2; return 1; }
nix hash path "$tmpdir/unpacked"
}
# Fetch all hashes for both server and node
+5
View File
@@ -497,6 +497,7 @@ mapAliases {
clang_17 = throw "clang_17 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
clashmi = throw "'clashmi' has been removed, as it is unmaintained in nixpkgs"; # Added 2026-01-31
clasp = throw "'clasp' has been renamed to/replaced by 'clingo'"; # Converted to throw 2025-10-27
claude-code-acp = warnAlias "'claude-code-acp' has been renamed to 'claude-agent-acp'" claude-agent-acp; # Added 2026-03-31
clearlyU = clearly-u; # Added 2026-02-08
cli-visualizer = throw "'cli-visualizer' has been removed as the upstream repository is gone"; # Added 2025-06-05
clima = throw "'clima' has been removed, as it has been unmaintained upstream since December 2024, use glow instead"; # Added 2026-01-01
@@ -1070,6 +1071,8 @@ mapAliases {
libpthreadstubs = libpthread-stubs; # Added 2025-02-04
libpulseaudio-vanilla = throw "'libpulseaudio-vanilla' has been renamed to/replaced by 'libpulseaudio'"; # Converted to throw 2025-10-27
libqt5pas = throw "'libqt5pas' has been renamed to/replaced by 'libsForQt5.libqtpas'"; # Converted to throw 2025-10-27
libqtdbusmock = warnAlias "'libqtdbusmock' has been renamed to 'libsForQt5.libqtdbusmock'"; # Added 2026-03-10
libqtdbustest = warnAlias "'libqtdbustest' has been renamed to 'libsForQt5.libqtdbustest'"; # Added 2026-03-10
libquotient = throw "'libquotient' for qt5 was removed as upstream removed qt5 support. Consider explicitly upgrading to qt6 'libquotient'"; # Converted to throw 2025-07-04
LibreArp = throw "'LibreArp' has been renamed to/replaced by 'librearp'"; # Converted to throw 2025-10-27
LibreArp-lv2 = throw "'LibreArp-lv2' has been renamed to/replaced by 'librearp-lv2'"; # Converted to throw 2025-10-27
@@ -1241,6 +1244,7 @@ mapAliases {
llvmPackages_15 = throw "llvmPackages_15 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-12
llvmPackages_16 = throw "llvmPackages_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
llvmPackages_17 = throw "llvmPackages_17 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
lnreader = warnAlias "'lnreader' has been renamed to 'pdf-cli'" pdf-cli; # Added 2026-03-18
lockfileProgs = warnAlias "'lockfileProgs' has been renamed to 'lockfile-progs'" lockfile-progs; # Added 2026-02-08
loco-cli = throw "'loco-cli' has been renamed to/replaced by 'loco'"; # Converted to throw 2025-10-27
log4j-detect = throw "'log4j-detect' has been removed, as it was unmaintained upstream and no longer relevant given that the Log4Shell vulnerability has been fixed."; # Added 2025-11-15
@@ -1688,6 +1692,7 @@ mapAliases {
qflipper = throw "'qflipper' has been renamed to/replaced by 'qFlipper'"; # Converted to throw 2025-10-27
qMasterPassword = warnAlias "'qMasterPassword' has been renamed to/replaced by 'qmasterpassword'" qmasterpassword; # Added 2026-02-01
qMasterPassword-wayland = warnAlias "'qMasterPassword-wayland' has been renamed to/replaced by 'qmasterpassword-wayland'" qmasterpassword-wayland; # Added 2026-02-01
qmenumodel = warnAlias "'qmenumodel' has been renamed to 'libsForQt5.qmenumodel'"; # Added 2026-03-26
qnial = throw "'qnial' has been removed due to failing to build and being unmaintained"; # Added 2025-06-26
qrscan = throw "qrscan has been removed, as it does not build with supported LLVM versions"; # Added 2025-08-19
qscintilla = throw "'qscintilla' has been renamed to/replaced by 'libsForQt5.qscintilla'"; # Converted to throw 2025-10-27
+73 -22
View File
@@ -108,13 +108,62 @@ with pkgs;
gccStdenvNoLibs = mkStdenvNoLibs gccStdenv;
clangStdenvNoLibs = mkStdenvNoLibs clangStdenv;
/**
Recurse into an attribute set depending on which `config.recursionMode` is set.
This function only affects a single attribute set;
it does not apply itself recursively for nested attribute sets.
# Inputs
`modes`
: An attribute set containg keys from `config.recursionMode` defaulting to true.
`attrs`
: An attribute set to scan for derivations.
# Type
```
recurseIntoAttrsWith :: AttrSet -> AttrSet -> AttrSet
```
# Examples
:::{.example}
## `pkgs.recurseIntoAttrsWith` usage example
```nix
{ pkgs ? import <nixpkgs> {} }:
{
myTools = pkgs.recurseIntoAttrsWith { } {
inherit (pkgs) hello figlet;
};
}
```
:::
*/
recurseIntoAttrsWith =
{
hydra ? true,
eval ? true,
search ? true,
}:
attrs:
attrs
// {
recurseForDerivations =
let
modes = {
inherit hydra eval search;
};
in
modes.${config.recursionMode};
};
### Evaluating the entire Nixpkgs naively will likely fail, make failure fast
AAAAAASomeThingsFailToEvaluate = throw ''
This pseudo-package is likely not the only part of Nixpkgs that fails to evaluate.
You should not evaluate entire Nixpkgs without measures to handle failing packages.
'';
tests = recurseIntoAttrs (callPackages ../test { });
# Tests should not appear in search results
tests = recurseIntoAttrsWith { search = false; } (callPackages ../test { });
defaultPkgConfigPackages =
# We don't want nix-env -q to enter this, because all of these are aliases.
@@ -6718,14 +6767,6 @@ with pkgs;
inherit (callPackage ../development/libraries/libliftoff { }) libliftoff_0_4 libliftoff_0_5;
libliftoff = libliftoff_0_5;
libqtdbusmock = libsForQt5.callPackage ../development/libraries/libqtdbusmock {
inherit (lomiri) cmake-extras;
};
libqtdbustest = libsForQt5.callPackage ../development/libraries/libqtdbustest {
inherit (lomiri) cmake-extras;
};
libretranslate = with python3.pkgs; toPythonApplication libretranslate;
librsb = callPackage ../development/libraries/librsb {
@@ -7282,10 +7323,6 @@ with pkgs;
qdjango = libsForQt5.callPackage ../development/libraries/qdjango { };
qmenumodel = libsForQt5.callPackage ../development/libraries/qmenumodel {
inherit (lomiri) cmake-extras;
};
quarto = callPackage ../development/libraries/quarto { };
quartoMinimal = callPackage ../development/libraries/quarto {
@@ -7973,11 +8010,17 @@ with pkgs;
rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
rPackages = dontRecurseIntoAttrs (
callPackage ../development/r-modules {
overrides = (config.rPackageOverrides or (_: { })) pkgs;
}
);
rPackages =
recurseIntoAttrsWith
{
hydra = false;
eval = false;
}
(
callPackage ../development/r-modules {
overrides = (config.rPackageOverrides or (_: { })) pkgs;
}
);
### SERVERS
@@ -8699,7 +8742,12 @@ with pkgs;
};
mdadm = mdadm4;
minimal-bootstrap = recurseIntoAttrs (
# minimal-bootstrap packages aren't used for anything but bootstrapping our
# stdenv. They should not be used for any other purpose and therefore not
# show up in search results or repository tracking services that consume our
# packages.json https://github.com/NixOS/nixpkgs/issues/244966
minimal-bootstrap = recurseIntoAttrsWith { search = false; } (
import ../os-specific/linux/minimal-bootstrap {
inherit (stdenv) buildPlatform hostPlatform;
inherit lib config;
@@ -9395,9 +9443,11 @@ with pkgs;
pkgs' = pkgs; # default pkgs used for bootstrapping the emacs package set
};
# emacsPackages is exposed on search.nixos.org.
# Also see pkgs/top-level/packages-config.nix
emacsPackages = dontRecurseIntoAttrs emacs.pkgs;
# We want emacsPackages to be visible in search but not be build on hydra
emacsPackages = recurseIntoAttrsWith {
hydra = false;
eval = false;
} emacs.pkgs;
espeak-classic = callPackage ../applications/audio/espeak { };
@@ -11443,6 +11493,7 @@ with pkgs;
gnome-session-ctl = callPackage ../by-name/gn/gnome-session/ctl.nix { };
lomiri = recurseIntoAttrs (callPackage ../desktops/lomiri { });
lomiri-qt6 = recurseIntoAttrs (callPackage ../desktops/lomiri { useQt6 = true; });
lumina = recurseIntoAttrs (callPackage ../desktops/lumina { });
+15
View File
@@ -393,6 +393,21 @@ let
'';
};
recursionMode = mkOption {
type = types.uniq (
types.enum [
"hydra"
"eval"
"search"
]
);
default = "eval";
description = ''
In which way to recurse through Nixpkgs. In most cases you want keep this as the default.
You can use this to emulate how `hydra` and `search` are going through Nixpkgs.
'';
};
hashedMirrors = mkOption {
type = types.listOf types.str;
default = [ "https://tarballs.nixos.org" ];
+1 -25
View File
@@ -3,29 +3,5 @@
# Ensures no aliases are in the results.
allowAliases = false;
allowVariants = false;
# Enable recursion into attribute sets that nix-env normally doesn't look into
# so that we can get a more complete picture of the available packages for the
# purposes of the index.
packageOverrides =
super:
with super;
lib.mapAttrs (_: set: lib.recurseIntoAttrs set) {
inherit (super)
rPackages
;
# emacsPackages is an alias for emacs.pkgs
# Re-introduce emacsPackages here so that emacs.pkgs can be searched.
emacsPackages = emacs.pkgs;
# minimal-bootstrap packages aren't used for anything but bootstrapping our
# stdenv. They should not be used for any other purpose and therefore not
# show up in search results or repository tracking services that consume our
# packages.json https://github.com/NixOS/nixpkgs/issues/244966
minimal-bootstrap = { };
# This makes it so that tests are not appering on search.nixos.org
tests = { };
};
recursionMode = "search";
}
+2
View File
@@ -17241,6 +17241,8 @@ self: super: with self; {
scanpy = callPackage ../development/python-modules/scanpy { };
scantree = callPackage ../development/python-modules/scantree { };
scapy = callPackage ../development/python-modules/scapy {
inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
};
+12
View File
@@ -116,6 +116,14 @@ makeScopeWithSplicing' {
libqofono = callPackage ../development/libraries/libqofono { };
libqtdbusmock = callPackage ../development/libraries/libqtdbusmock {
inherit (pkgs.lomiri) cmake-extras;
};
libqtdbustest = callPackage ../development/libraries/libqtdbustest {
inherit (pkgs.lomiri) cmake-extras;
};
libqtpas = callPackage ../development/compilers/fpc/libqtpas.nix { };
libqaccessibilityclient = callPackage ../development/libraries/libqaccessibilityclient { };
@@ -161,6 +169,10 @@ makeScopeWithSplicing' {
qjson = callPackage ../development/libraries/qjson { };
qmenumodel = callPackage ../development/libraries/qmenumodel {
inherit (pkgs.lomiri) cmake-extras;
};
qmltermwidget = callPackage ../development/libraries/qmltermwidget { };
qoauth = callPackage ../development/libraries/qoauth { };
+8
View File
@@ -75,6 +75,14 @@ makeScopeWithSplicing' {
libqtpas = callPackage ../development/compilers/fpc/libqtpas.nix { };
libqtdbusmock = callPackage ../development/libraries/libqtdbusmock {
inherit (pkgs.lomiri-qt6) cmake-extras;
};
libqtdbustest = callPackage ../development/libraries/libqtdbustest {
inherit (pkgs.lomiri-qt6) cmake-extras;
};
libquotient = callPackage ../development/libraries/libquotient { };
mlt = pkgs.mlt.override {
qt = qt6;
+1
View File
@@ -40,6 +40,7 @@
allowAliases = false;
allowUnfree = false;
inHydra = true;
recursionMode = "hydra";
# Exceptional unsafe packages that we still build and distribute,
# so users choosing to allow don't have to rebuild them every time.
permittedInsecurePackages = [