Merge staging-next into staging
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
]);
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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,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 {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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/" ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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=";
|
||||
};
|
||||
}
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
+8
-17
@@ -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"}"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 { });
|
||||
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user