Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-04-15 02:30:07 +00:00 committed by GitHub
commit 5fe48efa37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
230 changed files with 4776 additions and 2398 deletions

View File

@ -142,6 +142,7 @@ Many attributes [controlling the build phase](#variables-controlling-the-build-p
- [`patchFlags`](#var-stdenv-patchFlags)
- [`postPatch`](#var-stdenv-postPatch)
- [`preBuild`](#var-stdenv-preBuild)
- `env`: useful for passing down variables such as `GOWORK`.
To control test execution of the build derivation, the following attributes are of interest:

View File

@ -2752,6 +2752,12 @@
githubId = 150560585;
name = "Dmitry Ivankov";
};
bonsairobo = {
email = "duncanfairbanks6@gmail.com";
github = "bonsairobo";
githubId = 3229981;
name = "Duncan Fairbanks";
};
booklearner = {
name = "booklearner";
email = "booklearner@proton.me";
@ -5013,6 +5019,12 @@
github = "DimitarNestorov";
githubId = 8790386;
};
diniamo = {
name = "diniamo";
email = "diniamo53@gmail.com";
github = "diniamo";
githubId = 55629891;
};
diogotcorreia = {
name = "Diogo Correia";
email = "me@diogotc.com";
@ -8683,6 +8695,12 @@
githubId = 137306;
name = "Michele Catalano";
};
isabelroses = {
email = "isabel@isabelroses.com";
github = "isabelroses";
githubId = 71222764;
name = "Isabel Roses";
};
isaozler = {
email = "isaozler@gmail.com";
github = "isaozler";
@ -13318,6 +13336,12 @@
fingerprint = "E90C BA34 55B3 6236 740C 038F 0D94 8CE1 9CF4 9C5F";
}];
};
mksafavi = {
name = "MK Safavi";
email = "mksafavi@gmail.com";
github = "mksafavi";
githubId = 50653293;
};
mktip = {
email = "mo.issa.ok+nix@gmail.com";
github = "mktip";
@ -17671,7 +17695,7 @@
name = "Sanskar Gurdasani";
};
sarahec = {
email = "sarahec@nextquestion.net";
email = "seclark@nextquestion.net";
github = "sarahec";
githubId = 11277967;
name = "Sarah Clark";

View File

@ -74,6 +74,8 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
- The desktop mode of Lomiri (formerly known as Unity8), using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
## New Services {#sec-release-24.05-new-services}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -315,6 +317,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `cudaPackages` package scope has been updated to `cudaPackages_12`.
- The deprecated `cudaPackages.cudatoolkit` has been replaced with a
symlink-based wrapper for the splayed redistributable CUDA packages. The
wrapper only includes tools and libraries necessary to build common packages
like e.g. tensorflow. The original runfile-based `cudatoolkit` is still
available as `cudatoolkit-legacy-runfile`.
- The `halloy` package was updated past 2024.5 which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
- Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.

View File

@ -0,0 +1,165 @@
{ config, pkgs, lib, ... }:
let
cfg = config.services.desktopManager.lomiri;
in {
options.services.desktopManager.lomiri = {
enable = lib.mkEnableOption ''
the Lomiri graphical shell (formerly known as Unity8)
'';
};
config = lib.mkIf cfg.enable {
environment = {
systemPackages = (with pkgs; [
glib # XDG MIME-related tools identify it as GNOME, add gio for MIME identification to work
libayatana-common
ubports-click
]) ++ (with pkgs.lomiri; [
content-hub
hfd-service
history-service
libusermetrics
lomiri
lomiri-download-manager
lomiri-schemas # exposes some required dbus interfaces
lomiri-session # wrappers to properly launch the session
lomiri-sounds
lomiri-system-settings
lomiri-terminal-app
lomiri-thumbnailer
lomiri-url-dispatcher
lomiri-wallpapers
mediascanner2 # TODO possibly needs to be kicked off by graphical-session.target
morph-browser
qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
suru-icon-theme
telephony-service
]);
};
systemd.packages = with pkgs.lomiri; [
hfd-service
lomiri-download-manager
];
services.dbus.packages = with pkgs.lomiri; [
hfd-service
libusermetrics
lomiri-download-manager
];
fonts.packages = with pkgs; [
# Applications tend to default to Ubuntu font
ubuntu_font_family
];
# Copy-pasted basic stuff
hardware.opengl.enable = lib.mkDefault true;
fonts.enableDefaultPackages = lib.mkDefault true;
programs.dconf.enable = lib.mkDefault true;
# Xwayland is partly hardcoded in Mir so it can't really be fully turned off, and it must be on PATH for X11 apps *and Lomiri's web browser* to work.
# Until Mir/Lomiri can be properly used without it, force it on so everything behaves as expected.
programs.xwayland.enable = lib.mkForce true;
services.accounts-daemon.enable = true;
services.ayatana-indicators = {
enable = true;
packages = (with pkgs; [
ayatana-indicator-datetime
ayatana-indicator-messages
ayatana-indicator-session
]) ++ (with pkgs.lomiri; [
telephony-service
]);
};
services.udisks2.enable = true;
services.upower.enable = true;
services.geoclue2.enable = true;
services.gnome.evolution-data-server = {
enable = true;
plugins = with pkgs; [
# TODO: lomiri.address-book-service
];
};
services.telepathy.enable = true;
services.displayManager = {
defaultSession = lib.mkDefault "lomiri";
sessionPackages = with pkgs.lomiri; [ lomiri-session ];
};
services.xserver = {
enable = lib.mkDefault true;
displayManager.lightdm = {
enable = lib.mkDefault true;
greeters.lomiri.enable = lib.mkDefault true;
};
};
environment.pathsToLink = [
# Configs for inter-app data exchange system
"/share/content-hub/peers"
# Configs for inter-app URL requests
"/share/lomiri-url-dispatcher/urls"
# Splash screens & other images for desktop apps launched via lomiri-app-launch
"/share/lomiri-app-launch"
# TODO Try to get maliit stuff working
"/share/maliit/plugins"
# Data
"/share/locale" # TODO LUITK hardcoded default locale path, fix individual apps to not rely on it
"/share/sounds"
"/share/wallpapers"
];
systemd.user.services = {
# Unconditionally run service that collects system-installed URL handlers before LUD
# TODO also run user-installed one?
"lomiri-url-dispatcher-update-system-dir" = {
description = "Lomiri URL dispatcher system directory updater";
wantedBy = [ "lomiri-url-dispatcher.service" ];
before = [ "lomiri-url-dispatcher.service" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.lomiri.lomiri-url-dispatcher}/libexec/lomiri-url-dispatcher/lomiri-update-directory /run/current-system/sw/share/lomiri-url-dispatcher/urls/";
};
};
};
systemd.services = {
"dbus-com.lomiri.UserMetrics" = {
serviceConfig = {
Type = "dbus";
BusName = "com.lomiri.UserMetrics";
User = "usermetrics";
StandardOutput = "syslog";
SyslogIdentifier = "com.lomiri.UserMetrics";
ExecStart = "${pkgs.lomiri.libusermetrics}/libexec/libusermetrics/usermetricsservice";
} // lib.optionalAttrs (!config.security.apparmor.enable) {
# Due to https://gitlab.com/ubports/development/core/libusermetrics/-/issues/8, auth must be disabled when not using AppArmor, lest the next database usage breaks
Environment = "USERMETRICS_NO_AUTH=1";
};
};
};
users.users.usermetrics = {
group = "usermetrics";
home = "/var/lib/usermetrics";
createHome = true;
isSystemUser = true;
};
users.groups.usermetrics = { };
# TODO content-hub cannot pass files between applications without asking AA for permissions. And alot of the Lomiri stack is designed with AA availability in mind. This might be a requirement to be closer to upstream?
# But content-hub currently fails to pass files between applications even with AA enabled, and we can get away without AA in many places. Let's see how this develops before requiring this for good.
# security.apparmor.enable = true;
};
meta.maintainers = lib.teams.lomiri.members;
}

View File

@ -40,14 +40,19 @@ in
'';
};
acceleration = lib.mkOption {
type = types.nullOr (types.enum [ "rocm" "cuda" ]);
type = types.nullOr (types.enum [ false "rocm" "cuda" ]);
default = null;
example = "rocm";
description = ''
What interface to use for hardware acceleration.
- `rocm`: supported by modern AMD GPUs
- `cuda`: supported by modern NVIDIA GPUs
- `null`: default behavior
if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
otherwise defaults to `false`
- `false`: disable GPU, only use CPU
- `"rocm"`: supported by most modern AMD GPUs
- `"cuda"`: supported by most modern NVIDIA GPUs
'';
};
environmentVariables = lib.mkOption {

View File

@ -3,7 +3,6 @@
with lib;
let
cfg = config.services.paperless;
pkg = cfg.package;
defaultUser = "paperless";
defaultFont = "${pkgs.liberation_ttf}/share/fonts/truetype/LiberationSerif-Regular.ttf";
@ -25,7 +24,7 @@ let
} // optionalAttrs (cfg.settings.PAPERLESS_ENABLE_NLTK or true) {
PAPERLESS_NLTK_DIR = pkgs.symlinkJoin {
name = "paperless_ngx_nltk_data";
paths = pkg.nltkData;
paths = cfg.package.nltkData;
};
} // optionalAttrs (cfg.openMPThreadingWorkaround) {
OMP_NUM_THREADS = "1";
@ -38,7 +37,7 @@ let
manage = pkgs.writeShellScript "manage" ''
set -o allexport # Export the following env vars
${lib.toShellVars env}
exec ${pkg}/bin/paperless-ngx "$@"
exec ${cfg.package}/bin/paperless-ngx "$@"
'';
# Secure the services
@ -200,7 +199,17 @@ in
description = "User under which Paperless runs.";
};
package = mkPackageOption pkgs "paperless-ngx" { };
package = mkPackageOption pkgs "paperless-ngx" { } // {
apply = pkg: pkg.override {
tesseract5 = pkg.tesseract5.override {
# always enable detection modules
enableLanguages = if cfg.settings ? PAPERLESS_OCR_LANGUAGE then
[ "equ" "osd" ]
++ lib.splitString "+" cfg.settings.PAPERLESS_OCR_LANGUAGE
else null;
};
};
};
openMPThreadingWorkaround = mkEnableOption ''
a workaround for document classifier timeouts.
@ -237,7 +246,7 @@ in
wants = [ "paperless-consumer.service" "paperless-web.service" "paperless-task-queue.service" ];
serviceConfig = defaultServiceConfig // {
User = cfg.user;
ExecStart = "${pkg}/bin/celery --app paperless beat --loglevel INFO";
ExecStart = "${cfg.package}/bin/celery --app paperless beat --loglevel INFO";
Restart = "on-failure";
LoadCredential = lib.optionalString (cfg.passwordFile != null) "PAPERLESS_ADMIN_PASSWORD:${cfg.passwordFile}";
};
@ -250,8 +259,8 @@ in
versionFile="${cfg.dataDir}/src-version"
version=$(cat "$versionFile" 2>/dev/null || echo 0)
if [[ $version != ${pkg.version} ]]; then
${pkg}/bin/paperless-ngx migrate
if [[ $version != ${cfg.package.version} ]]; then
${cfg.package}/bin/paperless-ngx migrate
# Parse old version string format for backwards compatibility
version=$(echo "$version" | grep -ohP '[^-]+$')
@ -264,10 +273,10 @@ in
if versionLessThan 1.12.0; then
# Reindex documents as mentioned in https://github.com/paperless-ngx/paperless-ngx/releases/tag/v1.12.1
echo "Reindexing documents, to allow searching old comments. Required after the 1.12.x upgrade."
${pkg}/bin/paperless-ngx document_index reindex
${cfg.package}/bin/paperless-ngx document_index reindex
fi
echo ${pkg.version} > "$versionFile"
echo ${cfg.package.version} > "$versionFile"
fi
''
+ optionalString (cfg.passwordFile != null) ''
@ -277,7 +286,7 @@ in
superuserStateFile="${cfg.dataDir}/superuser-state"
if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
${pkg}/bin/paperless-ngx manage_superuser
${cfg.package}/bin/paperless-ngx manage_superuser
echo "$superuserState" > "$superuserStateFile"
fi
'';
@ -290,7 +299,7 @@ in
after = [ "paperless-scheduler.service" ];
serviceConfig = defaultServiceConfig // {
User = cfg.user;
ExecStart = "${pkg}/bin/celery --app paperless worker --loglevel INFO";
ExecStart = "${cfg.package}/bin/celery --app paperless worker --loglevel INFO";
Restart = "on-failure";
# The `mbind` syscall is needed for running the classifier.
SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
@ -308,7 +317,7 @@ in
after = [ "paperless-scheduler.service" ];
serviceConfig = defaultServiceConfig // {
User = cfg.user;
ExecStart = "${pkg}/bin/paperless-ngx document_consumer";
ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
Restart = "on-failure";
};
environment = env;
@ -340,8 +349,8 @@ in
echo "PAPERLESS_SECRET_KEY is empty, refusing to start."
exit 1
fi
exec ${pkg.python.pkgs.gunicorn}/bin/gunicorn \
-c ${pkg}/lib/paperless-ngx/gunicorn.conf.py paperless.asgi:application
exec ${cfg.package.python.pkgs.gunicorn}/bin/gunicorn \
-c ${cfg.package}/lib/paperless-ngx/gunicorn.conf.py paperless.asgi:application
'';
serviceConfig = defaultServiceConfig // {
User = cfg.user;
@ -357,7 +366,7 @@ in
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
};
environment = env // {
PYTHONPATH = "${pkg.python.pkgs.makePythonPath pkg.propagatedBuildInputs}:${pkg}/lib/paperless-ngx/src";
PYTHONPATH = "${cfg.package.python.pkgs.makePythonPath cfg.package.propagatedBuildInputs}:${cfg.package}/lib/paperless-ngx/src";
};
# Allow the web interface to access the private /tmp directory of the server.
# This is required to support uploading files via the web interface.

View File

@ -537,7 +537,7 @@ let
Refresh interval to re-read the instance list.
'';
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from. If using the public IP
address, this must instead be specified in the relabeling
rule.
@ -609,7 +609,7 @@ let
};
promTypes.digitalocean_sd_config = mkSdConfigModule {
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from.
'';
@ -626,7 +626,7 @@ let
'';
};
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from, when `role` is nodes, and for discovered
tasks and services that don't have published ports.
'';
@ -687,7 +687,7 @@ let
The type of DNS query to perform. One of SRV, A, or AAAA.
'';
port = mkOpt types.int ''
port = mkOpt types.port ''
The port number used if the query type is not SRV.
'';
@ -731,7 +731,7 @@ let
Refresh interval to re-read the instance list.
'';
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from. If using the public IP
address, this must instead be specified in the relabeling
rule.
@ -840,7 +840,7 @@ let
'';
};
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from.
'';
@ -999,7 +999,7 @@ let
Refresh interval to re-read the instance list.
'';
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule.
'';
@ -1007,7 +1007,7 @@ let
};
promTypes.linode_sd_config = mkSdConfigModule {
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from.
'';
@ -1148,7 +1148,7 @@ let
Refresh interval to re-read the instance list.
'';
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule.
'';
@ -1193,7 +1193,7 @@ let
Refresh interval to re-read the resources list.
'';
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from.
'';
};
@ -1231,7 +1231,7 @@ let
'';
};
port = mkDefOpt types.int "80" ''
port = mkDefOpt types.port "80" ''
The port to scrape metrics from.
'';
@ -1307,7 +1307,7 @@ let
If omitted all containers owned by the requesting account are scraped.
'';
port = mkDefOpt types.int "9163" ''
port = mkDefOpt types.port "9163" ''
The port to use for discovery and metric scraping.
'';

View File

@ -21,7 +21,7 @@ in
./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ../../desktop-managers/plasma6.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix
./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
./cinnamon.nix ./budgie.nix ./deepin.nix
./cinnamon.nix ./budgie.nix ./deepin.nix ../../desktop-managers/lomiri.nix
];
options = {

View File

@ -145,7 +145,7 @@ in
services.xserver.desktopManager.session = [{
name = "xfce";
desktopNames = [ "XFCE" ];
bgSupport = true;
bgSupport = !cfg.noDesktop;
start = ''
${pkgs.runtimeShell} ${pkgs.xfce.xfce4-session.xinitrc} &
waitPID=$!

View File

@ -0,0 +1,34 @@
{ config, lib, pkgs, ... }:
let
dmcfg = config.services.displayManager;
ldmcfg = config.services.xserver.displayManager.lightdm;
cfg = ldmcfg.greeters.lomiri;
in
{
meta.maintainers = lib.teams.lomiri.members;
options = {
services.xserver.displayManager.lightdm.greeters.lomiri = {
enable = lib.mkEnableOption "lomiri's greeter as the lightdm greeter";
};
};
config = lib.mkIf (ldmcfg.enable && cfg.enable) {
services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
services.xserver.displayManager.lightdm.greeter = lib.mkDefault {
package = pkgs.lomiri.lomiri.greeter;
name = "lomiri-greeter";
};
# Greeter needs to be run through its wrapper
# Greeter doesn't work with our set-session.py script, need to set default user-session
services.xserver.displayManager.lightdm.extraSeatDefaults = ''
greeter-wrapper = ${lib.getExe' pkgs.lomiri.lomiri "lomiri-greeter-wrapper"}
user-session = ${dmcfg.defaultSession}
'';
};
}

View File

@ -81,6 +81,7 @@ in
./lightdm-greeters/mini.nix
./lightdm-greeters/enso-os.nix
./lightdm-greeters/pantheon.nix
./lightdm-greeters/lomiri.nix
./lightdm-greeters/tiny.nix
./lightdm-greeters/slick.nix
./lightdm-greeters/mobile.nix

View File

@ -503,6 +503,7 @@ in {
lxd = pkgs.recurseIntoAttrs (handleTest ./lxd { inherit handleTestOn; });
lxd-image-server = handleTest ./lxd-image-server.nix {};
#logstash = handleTest ./logstash.nix {};
lomiri = handleTest ./lomiri.nix {};
lomiri-system-settings = handleTest ./lomiri-system-settings.nix {};
lorri = handleTest ./lorri/default.nix {};
maddy = discoverTests (import ./maddy { inherit handleTest; });

281
nixos/tests/lomiri.nix Normal file
View File

@ -0,0 +1,281 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: let
# Just to make sure everything is the same, need it for OCR & navigating greeter
user = "alice";
description = "Alice Foobar";
password = "foobar";
in {
name = "lomiri";
meta = {
maintainers = lib.teams.lomiri.members;
};
nodes.machine = { config, ... }: {
imports = [
./common/user-account.nix
];
users.users.${user} = {
inherit description password;
};
services.desktopManager.lomiri.enable = lib.mkForce true;
services.displayManager.defaultSession = lib.mkForce "lomiri";
fonts.packages = [ pkgs.inconsolata ];
environment = {
# Help with OCR
etc."xdg/alacritty/alacritty.yml".text = lib.generators.toYAML { } {
font = rec {
normal.family = "Inconsolata";
bold.family = normal.family;
italic.family = normal.family;
bold_italic.family = normal.family;
size = 16;
};
colors = rec {
primary = {
foreground = "0x000000";
background = "0xffffff";
};
normal = {
green = primary.foreground;
};
};
};
variables = {
# So we can test what content-hub is working behind the scenes
CONTENT_HUB_LOGGING_LEVEL = "2";
};
systemPackages = with pkgs; [
# For a convenient way of kicking off content-hub peer collection
lomiri.content-hub.examples
# Forcing alacritty to run as an X11 app when opened from the starter menu
(symlinkJoin {
name = "x11-${alacritty.name}";
paths = [ alacritty ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/alacritty \
--set WINIT_UNIX_BACKEND x11 \
--set WAYLAND_DISPLAY ""
'';
inherit (alacritty) meta;
})
];
};
# Help with OCR
systemd.tmpfiles.settings = let
white = "255, 255, 255";
black = "0, 0, 0";
colorSection = color: {
Color = color;
Bold = true;
Transparency = false;
};
terminalColors = pkgs.writeText "customized.colorscheme" (lib.generators.toINI {} {
Background = colorSection white;
Foreground = colorSection black;
Color2 = colorSection black;
Color2Intense = colorSection black;
});
terminalConfig = pkgs.writeText "terminal.ubports.conf" (lib.generators.toINI {} {
General = {
colorScheme = "customized";
fontSize = "16";
fontStyle = "Inconsolata";
};
});
confBase = "${config.users.users.${user}.home}/.config";
userDirArgs = {
mode = "0700";
user = user;
group = "users";
};
in {
"10-lomiri-test-setup" = {
"${confBase}".d = userDirArgs;
"${confBase}/terminal.ubports".d = userDirArgs;
"${confBase}/terminal.ubports/customized.colorscheme".L.argument = "${terminalColors}";
"${confBase}/terminal.ubports/terminal.ubports.conf".L.argument = "${terminalConfig}";
};
};
};
enableOCR = true;
testScript = { nodes, ... }: ''
def open_starter():
"""
Open the starter, and ensure it's opened.
"""
machine.send_key("meta_l-a")
# Look for any of the default apps
machine.wait_for_text(r"(Search|System|Settings|Morph|Browser|Terminal|Alacritty)")
def toggle_maximise():
"""
Send the keybind to maximise the current window.
"""
machine.send_key("ctrl-meta_l-up")
# For some reason, Lomiri in these VM tests very frequently opens the starter menu a few seconds after sending the above.
# Because this isn't 100% reproducible all the time, and there is no command to await when OCR doesn't pick up some text,
# the best we can do is send some Escape input after waiting some arbitrary time and hope that it works out fine.
machine.sleep(5)
machine.send_key("esc")
machine.sleep(5)
start_all()
machine.wait_for_unit("multi-user.target")
# Lomiri in greeter mode should work & be able to start a session
with subtest("lomiri greeter works"):
machine.wait_for_unit("display-manager.service")
# Start page shows current tie
machine.wait_for_text(r"(AM|PM)")
machine.screenshot("lomiri_greeter_launched")
# Advance to login part
machine.send_key("ret")
machine.wait_for_text("${description}")
machine.screenshot("lomiri_greeter_login")
# Login
machine.send_chars("${password}\n")
# Best way I can think of to differenciate "Lomiri in LightDM greeter mode" from "Lomiri in user shell mode"
machine.wait_until_succeeds("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
# The session should start, and not be stuck in i.e. a crash loop
with subtest("lomiri starts"):
# Output rendering from Lomiri has started when it starts printing performance diagnostics
machine.wait_for_console_text("Last frame took")
# Look for datetime's clock, one of the last elements to load
machine.wait_for_text(r"(AM|PM)")
machine.screenshot("lomiri_launched")
# Working terminal keybind is good
with subtest("terminal keybind works"):
machine.send_key("ctrl-alt-t")
machine.wait_for_text(r"(${user}|machine)")
machine.screenshot("terminal_opens")
# lomiri-terminal-app has a separate VM test to test its basic functionality
# for the LSS content-hub test to work reliably, we need to kick off peer collecting
machine.send_chars("content-hub-test-importer\n")
machine.wait_for_text(r"(/build/source|hub.cpp|handler.cpp|void|virtual|const)") # awaiting log messages from content-hub
machine.send_key("ctrl-c")
machine.send_key("alt-f4")
# We want the ability to launch applications
with subtest("starter menu works"):
open_starter()
machine.screenshot("starter_opens")
# Just try the terminal again, we know that it should work
machine.send_chars("Terminal\n")
machine.wait_for_text(r"(${user}|machine)")
machine.send_key("alt-f4")
# We want support for X11 apps
with subtest("xwayland support works"):
open_starter()
machine.send_chars("Alacritty\n")
machine.wait_for_text(r"(${user}|machine)")
machine.screenshot("alacritty_opens")
machine.send_key("alt-f4")
# LSS provides DE settings
with subtest("system settings open"):
open_starter()
machine.send_chars("System Settings\n")
machine.wait_for_text("Rotation Lock")
machine.screenshot("settings_open")
# lomiri-system-settings has a separate VM test, only test Lomiri-specific content-hub functionalities here
# Make fullscreen, can't navigate to Background plugin via keyboard unless window has non-phone-like aspect ratio
toggle_maximise()
# Load Background plugin
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("ret")
machine.wait_for_text("Background image")
# Try to load custom background
machine.send_key("shift-tab")
machine.send_key("shift-tab")
machine.send_key("shift-tab")
machine.send_key("shift-tab")
machine.send_key("shift-tab")
machine.send_key("shift-tab")
machine.send_key("ret")
# Peers should be loaded
machine.wait_for_text("Morph") # or Gallery, but Morph is already packaged
machine.screenshot("settings_content-hub_peers")
# Sadly, it doesn't seem possible to actually select a peer and attempt a content-hub data exchange with just the keyboard
machine.send_key("alt-f4")
# Morph is how we go online
with subtest("morph browser works"):
open_starter()
machine.send_chars("Morph\n")
machine.wait_for_text(r"(Bookmarks|address|site|visited any)")
machine.screenshot("morph_open")
# morph-browser has a separate VM test, there isn't anything new we could test here
machine.send_key("alt-f4")
# The ayatana indicators are an important part of the experience, and they hold the only graphical way of exiting the session.
# Reaching them via the intended way requires wayland mouse control, but ydotool lacks a module for its daemon:
# https://github.com/NixOS/nixpkgs/issues/183659
# Luckily, there's a test app that also displays their contents, but it's abit inconsistent. Hopefully this is *good-enough*.
with subtest("ayatana indicators work"):
open_starter()
machine.send_chars("Indicators\n")
machine.wait_for_text(r"(Indicators|Client|List|datetime|session)")
machine.screenshot("indicators_open")
# Element tab order within the indicator menus is not fully deterministic
# Only check that the indicators are listed & their items load
with subtest("ayatana indicator datetime works"):
# Select ayatana-indicator-datetime
machine.send_key("tab")
machine.send_key("ret")
machine.wait_for_text("Time and Date Settings")
machine.screenshot("indicators_timedate")
machine.send_key("shift-tab")
machine.send_key("ret")
machine.wait_for_text(r"(Indicators|Client|List|datetime|session)")
with subtest("ayatana indicator session works"):
# Select ayatana-indicator-session
machine.send_key("tab")
machine.send_key("down")
machine.send_key("ret")
machine.wait_for_text("Log Out")
machine.screenshot("indicators_session")
'';
})

View File

@ -14,17 +14,17 @@
rustPlatform.buildRustPackage rec {
pname = "listenbrainz-mpd";
version = "2.3.3";
version = "2.3.4";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "elomatreb";
repo = "listenbrainz-mpd";
rev = "v${version}";
hash = "sha256-4FNFaVi+fxoXo2tl+bynHqh8yRt0Q4z/El/4m0GXZUY=";
hash = "sha256-QHhSrmBNvUTffPzjns670Tn3Z3UDcDvarq605Qx9k4w=";
};
cargoHash = "sha256-FS7OYzKx/lQh86QQ8Dk9v1JrWUxPHNz3kITiEJ3sNng=";
cargoHash = "sha256-vtU439Pd3zWx+qakh1xTENQhun7S+WsJMndXqPWrPWU=";
nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ];

View File

@ -28,13 +28,13 @@ let
in
stdenv.mkDerivation rec {
pname = "reaper";
version = "7.13";
version = "7.14";
src = fetchurl {
url = url_for_platform version stdenv.hostPlatform.qemuArch;
hash = if stdenv.isDarwin then "sha256-g9t1vCPKTw68w6/b401OAdMNth4UlT9Obht6oPArqKY=" else {
x86_64-linux = "sha256-Zj+3LXNoHD6+v0dDn8mKqN14Y9Tk2+fZ4W343VjZoLw=";
aarch64-linux = "sha256-kbonwYlEd13AIzy1DNbsFwy+rRrQpOTrup3NZpJOmUA=";
hash = if stdenv.isDarwin then "sha256-cPxHriUNIG1EUmvOoW00V2Y0j+7BuxSIEbPy+qy5ZEM=" else {
x86_64-linux = "sha256-RgKteq157r4r088mr9wvPPa/rhmX88/lmVJ7mS17px4=";
aarch64-linux = "sha256-Qnb6ZoDIkfRct6dvqXKeYHgXyyEFLSj9R0hwa2bUiXo=";
}.${stdenv.hostPlatform.system};
};

View File

@ -9,13 +9,13 @@
mkDerivation rec {
pname = "spotify-qt";
version = "3.9";
version = "3.11";
src = fetchFromGitHub {
owner = "kraxarn";
repo = pname;
rev = "v${version}";
sha256 = "sha256-8rLpasgXiaL2KpGnYMQdNN2ayjcSkmz5hDkNBnKNWHk=";
sha256 = "sha256-Dm+ELHtYZGSzJSrERtvpuuV5cVZ9ah9WQ0iTTJqGqVg=";
};
buildInputs = [ libxcb qtbase qtsvg ];

View File

@ -18,8 +18,8 @@ let
sha256Hash = "sha256-zROBKzQiP4V2P67HgOIkHgn8q/M0zy5MkZozVSiQsWU=";
};
latestVersion = {
version = "2024.1.1.2"; # "Android Studio Koala | 2024.1.1 Canary 4"
sha256Hash = "sha256-d/bzgKimps0Tw7GQD9sc2LLDNaVpWlqNTKkuyxKrCWo=";
version = "2024.1.1.3"; # "Android Studio Koala | 2024.1.1 Canary 5"
sha256Hash = "sha256-JL2cloR0RhSnr8e62fHhxIzF286fT9sahTuv2OoQVRY=";
};
in {
# Attributes are named by their corresponding release channels

View File

@ -14,14 +14,14 @@ let
in
stdenv.mkDerivation rec {
pname = "aseprite";
version = "1.3.2";
version = "1.3.6";
src = fetchFromGitHub {
owner = "aseprite";
repo = "aseprite";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-8PXqMDf2ATxmtFqyZlGip+DhGrdK8M6Ztte7fGH6Fmo=";
hash = "sha256-17f6pIGsOIswnyY63pjHKEEYuCo43kf25mPLBv4vQAs=";
};
nativeBuildInputs = [

View File

@ -1,21 +1,23 @@
{ trivialBuild
, haskellPackages
}:
trivialBuild rec {
let
Agda = haskellPackages.Agda.bin;
in
trivialBuild {
pname = "agda-mode";
version = haskellPackages.Agda.version;
version = Agda.version;
dontUnpack = true;
# already byte-compiled by Agda builder
buildPhase = ''
agda=`${haskellPackages.Agda}/bin/agda-mode locate`
agda=`${Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* .
'';
meta = {
inherit (haskellPackages.Agda.meta) homepage license;
inherit (Agda.meta) homepage license;
description = "Agda2-mode for Emacs extracted from Agda package";
longDescription = ''
Wrapper packages that liberates init.el from `agda-mode locate` magic.

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "sameboy";
version = "0.16.2";
version = "0.16.3";
src = fetchFromGitHub {
owner = "LIJI32";
repo = "SameBoy";
rev = "v${version}";
sha256 = "sha256-KEbwug/cwGLS/uhY1rKasLJWaKtiYYzdZvbAU2orfbI=";
sha256 = "sha256-sQWmuF1dQgvW9WyOxgxaupTUcde3KzzYiGv+v1N5ssk=";
};
enableParallelBuilding = true;

View File

@ -37,16 +37,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "emulsion";
version = "10.4";
version = "10.5";
src = fetchFromGitHub {
owner = "ArturKovacs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-9M9FyDehony5+1UwtEk7bRjBAlV4GvhtABi0MpjYcIA=";
sha256 = "sha256-Wrb5jHr2rXDpXF/uHpNLKSc//Xdj0/VsXQcytit0hKY=";
};
cargoHash = "sha256-fcZCFD4XBHFIhwZtpYLkv8oDe+TmhvUEKFY3iJAMdFI=";
cargoHash = "sha256-zfR4sp/AmK3+UcFdqMMZE9O9+oGathqmuqFw11SmUWI=";
nativeBuildInputs = [
installShellFiles

View File

@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "structorizer";
version = "3.32-19";
version = "3.32-20";
desktopItems = [
(makeDesktopItem {
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
owner = "fesch";
repo = "Structorizer.Desktop";
rev = version;
hash = "sha256-bHD/E6FWzig73+v4ROZ00TyB79bnlx16/+bBsmboKco=";
hash = "sha256-kFgypwSmXRkIyb0ZMcoTSgQdODfn9F81ABlFWATvh3M=";
};
patches = [ ./makeStructorizer.patch ./makeBigJar.patch ];

View File

@ -12,6 +12,7 @@
, qtdeclarative
, qtwayland
, qt5compat
, qttools
, wrapQtAppsHook
, nix-update-script
, pkg-config
@ -19,13 +20,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "albert";
version = "0.22.17";
version = "0.23.0";
src = fetchFromGitHub {
owner = "albertlauncher";
repo = "albert";
rev = "v${finalAttrs.version}";
sha256 = "sha256-2wu4bOQDKoZ4DDzTttXXRNDluvuJth7M1pCvJmYQ+f4=";
sha256 = "sha256-L6qHaksArgwySk6J7N5zamUDWh5qa6zTtPFdpxU2NTM=";
fetchSubmodules = true;
};
@ -45,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
qtdeclarative
qtwayland
qt5compat
qttools
] ++ (with python3Packages; [ python pybind11 ]);
postPatch = ''

View File

@ -32,11 +32,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
version = "7.7.0";
version = "7.8.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
hash = "sha256-+kz3Fz1RDQ+ROgv7y0WNAWvIESKvHKID8UnSeCh8yA4=";
hash = "sha256-FxYuQzzuaWZihSsmeJc6ssG3VBr2YNEi3TkXyyymLUQ=";
};
patches = [

View File

@ -17,7 +17,7 @@ buildGoModule rec {
hash = "sha256-1hZ7yAKTvkk20ho+QOqFEtspBvFztAtfmITs2uxhdmQ=";
};
vendorHash = "sha256-d38s5sSvENIou+rlphXIrrOcGOdsvkNaMJlhiXVWN6c=";
vendorHash = "sha256-DFssAic2YtXNH1Jm6zCDv1yPNz3YUXaFLs7j7rNHhlE=";
proxyVendor = true;

View File

@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "far2l";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub {
owner = "elfmz";
repo = "far2l";
rev = "v_${version}";
sha256 = "sha256-fLBWHhvfqEiaZkFyNs8CKr5vFMQ5mrbo/X3oGwJmFoo=";
sha256 = "sha256-fFwO06edv2f/remnKc5snAjgmqveVNqxHiUcTlfe+4Y=";
};
nativeBuildInputs = [ cmake ninja pkg-config m4 perl makeWrapper ];

View File

@ -22,16 +22,16 @@
assert svgSupport -> enableCairo;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "fuzzel";
version = "1.9.2";
version = "1.10.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = pname;
rev = version;
hash = "sha256-X1P/ghX97KCQcrNk44Cy2IAGuZ8DDwHBWzh1AHLDvd4=";
repo = "fuzzel";
rev = finalAttrs.version;
hash = "sha256-4wTwsjnmPsg+kc05izeyXilzDO0LpD3g3PRBqgLPK2I=";
};
depsBuildBuild = [
@ -73,4 +73,4 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ fionera polykernel rodrgz ];
platforms = with platforms; linux;
};
}
})

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "klipper-estimator";
version = "3.7.1";
version = "3.7.2";
src = fetchFromGitHub {
owner = "Annex-Engineering";
repo = "klipper_estimator";
rev = "v${version}";
hash = "sha256-zRHV8Bc4+diSfb/hhBxBTaSiZHlKZ9wgd8DZ4Kt6nf0=";
hash = "sha256-OvDdANowsz3qU2KV4WbUWyDrh3sG02+lBKNtcq6ecZ8=";
};
cargoHash = "sha256-zozZuVzn/xYjmP9+B5uzIBuu/rx/tymgvOuiKz617eo=";
cargoHash = "sha256-1O3kXeGPALSa/kNWRArk6ULG0+3UgTxVBzrsqDHHpDU=";
buildInputs =
[ openssl ]

View File

@ -13,7 +13,7 @@ buildGoModule rec {
vendorHash = "sha256-8YcJXvR0cdL9PlP74Qh6uN2XZoN16sz/yeeZlBsk5N8=";
GOWORK = "off";
env.GOWORK = "off";
nativeBuildInputs = [
installShellFiles

View File

@ -11,7 +11,7 @@ buildGoModule rec {
};
proxyVendor = true;
vendorHash = "sha256-6cpHDwnxdc/9YPj77JVuT5ZDFjKkF6nBX4RgZr/9fFY=";
vendorHash = "sha256-L8mDs9teQJW6P3dhKSLfzbpA7kzhJk61oR2q0ME+u0M=";
# tests try to access the internet to scrape websites
doCheck = false;

View File

@ -12,7 +12,7 @@ buildGoModule rec {
};
proxyVendor = true;
vendorHash = "sha256-xNM4qmpv+wcoiGrQ585N3VoKW6tio0cdHmUHRl2Pvio=";
vendorHash = "sha256-/qZB/GGEkoqRoNhEmZw9Q2lsUPZRg5/xVxWgdBZTMLk=";
ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];

View File

@ -17,7 +17,7 @@ buildGoModule rec {
sha256 = "sha256-DFrA4bx+wSOxmt1CVA1oNiYVmcWeW6wpfR5F1tnhyDY=";
};
vendorHash = "sha256-9uuLidieBMoKz/FLcBnp9wenyveOIzB0IvRBRasulZk=";
vendorHash = "sha256-mQdKw3DeBEkCOtV2/B5lUIHv5EBp+8QSxpA13nFxESw=";
proxyVendor = true;
doCheck = false;

View File

@ -151,7 +151,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://ladybird.dev";
license = licenses.bsd2;
maintainers = with maintainers; [ fgaz ];
platforms = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
mainProgram = "Ladybird";
};
})

View File

@ -11,7 +11,7 @@ buildGoModule rec {
sha256 = "sha256-txbs1SzAaV1nCl104m0Ht5DwzCmK+sBDn4rZ1newdLc=";
};
vendorHash = "sha256-1nolJLWkArzSKf11fzlvvgiCnvMYSu5MHRNAn1lryms=";
vendorHash = "sha256-QbjiQVclT8paEKYQmMwj5MLq40mAVh5Ji5VJJTOmEZI=";
proxyVendor = true;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "atmos";
version = "1.68.0";
version = "1.69.0";
src = fetchFromGitHub {
owner = "cloudposse";
repo = pname;
rev = "v${version}";
sha256 = "sha256-tyK45RWLZFC2yLqEvEE/U0QjNaQ0Kwx37BL/5d9Bmdc=";
sha256 = "sha256-H2RyxUeOgIiGpR50sDP6bjZ6BKRB47oLUpdtawSRnmo=";
};
vendorHash = "sha256-dJJPq2HcGZ+MqtJ848gsrvzD1rMVrwJQKwq+UpZsFB0=";

View File

@ -15,7 +15,7 @@ buildGoModule rec {
ldflags = [ "-s" "-w" ];
GOWORK = "off";
env.GOWORK = "off";
subPackages = [ "cmd/talosctl" ];

View File

@ -242,7 +242,7 @@
"repo": "terraform-provider-cloudfoundry",
"rev": "v0.52.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-g1T6kH8Rv9bpvb6Q3YHCseEi1ayydJIxlplH3k12s8c="
"vendorHash": "sha256-6MKWpiDq4yI3mfIJyzEsWLa7gi0+DScI5jKcOcM6Qs0="
},
"cloudinit": {
"hash": "sha256-etZeCGtYhO0szRGxnj1c3/WOelxScWiHEA9w1Jb7bEE=",
@ -316,7 +316,7 @@
"repo": "terraform-provider-dhall",
"rev": "v0.0.7",
"spdx": "BSD-3-Clause",
"vendorHash": "sha256-e/+czUeOACwRC7xY90pZp2EWDzDpLU6Ud9RPzuNKaOY="
"vendorHash": "sha256-quoFrJbB1vjz+MdV+jnr7FPACHuUe5Gx9POLubD2IaM="
},
"digitalocean": {
"hash": "sha256-wwb62tZZxpr7NXbiqcS40aF9E2msagj2Mqy4kogDsEA=",
@ -434,7 +434,7 @@
"repo": "terraform-provider-fortios",
"rev": "1.19.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-DwRfbD4AqB+4KLuYtqY5fUdzRrEpTIvL4VAM7nieJJA="
"vendorHash": "sha256-mE25KfP2+7K7nHpkQOn1pfilm+fz5kGDDW8U+P2zglY="
},
"gandi": {
"hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=",
@ -552,7 +552,7 @@
"repo": "terraform-provider-htpasswd",
"rev": "v1.0.4",
"spdx": "MIT",
"vendorHash": "sha256-+D8HxLRUSh7bCN6j+NSkPZTabvqknY7uJ9F5JxefomA="
"vendorHash": "sha256-6jaAgyHS5H63YKnm4xcYmjKVhPbWm6KK6qHzxg/78yU="
},
"http": {
"hash": "sha256-druSExXZeZMNWFIJQoQ/Xh0gCQQx0AnKbIAJQlRi8Po=",

View File

@ -11,11 +11,11 @@
}:
let
pname = "beeper";
version = "3.102.14";
version = "3.103.36";
name = "${pname}-${version}";
src = fetchurl {
url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.102.14-build-24040616ytycz8q-x86_64.AppImage";
hash = "sha256-A+0dXAddZq7GWMyi9v1g0B9f7b6COMkFlm8bX4XXvzU=";
url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.103.36-build-240411hw9xbpc7s-x86_64.AppImage";
hash = "sha256-qxu/a8eeWeOKCsno51J2IHUXTXH82KXBNajfoEkkid8=";
};
appimage = appimageTools.wrapType2 {
inherit version pname src;

View File

@ -45,14 +45,14 @@ let
pname = "slack";
x86_64-darwin-version = "4.37.94";
x86_64-darwin-sha256 = "01v7v977fq8mfsl0lipdc7ig55p2sknxzr1jmh8qxiq4f4y0rj5g";
x86_64-darwin-version = "4.37.101";
x86_64-darwin-sha256 = "03k4iv6y7y1z9ac7if35r3lk7kp7ic4aa4rdyzbrzihvpfb3nvdh";
x86_64-linux-version = "4.37.94";
x86_64-linux-sha256 = "1f1spl767ldrarvpxrayry2d0nyr22b8xacxl4g1r8raryvnyz0x";
x86_64-linux-version = "4.37.101";
x86_64-linux-sha256 = "0vmaam0aiqcqmm8n3zrjmf012d6pdi0g1d08v1zhgx2rhl614ff9";
aarch64-darwin-version = "4.37.94";
aarch64-darwin-sha256 = "0gh45gvlbjzxh0fn24z15glxqih5lggam8w6kpawsxgivkw6rjcc";
aarch64-darwin-version = "4.37.101";
aarch64-darwin-sha256 = "07qfqrq32sh5cw7vmq2x0s5zvkvcl7j1kkvdncg36fay9276f2pp";
version = {
x86_64-darwin = x86_64-darwin-version;

View File

@ -22,7 +22,7 @@ buildGoModule rec {
};
proxyVendor = true;
vendorHash = "sha256-rycAGqZhO48bPTFO2y2J1d16oon24sEEUns4EayWDvg=";
vendorHash = "sha256-AHEhIWa6PP8f+hhIdY+0brLF2HYhvTal7qXfCwG9iyo=";
nativeBuildInputs = [
scdoc

View File

@ -37,8 +37,11 @@ let
# https://github.com/NixOS/nixpkgs/issues/298719
# https://github.com/paperless-ngx/paperless-ngx/issues/5494
python = python3.override {
packageOverrides = self: super: {
uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: {
packageOverrides = final: prev: {
# tesseract5 may be overwritten in the paperless module and we need to propagate that to make the closure reduction effective
ocrmypdf = prev.ocrmypdf.override { tesseract = tesseract5; };
uvicorn = prev.uvicorn.overridePythonAttrs (_: {
version = "0.25.0";
src = fetchFromGitHub {
owner = "encode";
@ -245,7 +248,7 @@ python.pkgs.buildPythonApplication rec {
doCheck = !stdenv.isDarwin;
passthru = {
inherit python path frontend;
inherit python path frontend tesseract5;
nltkData = with nltk-data; [ punkt snowball_data stopwords ];
tests = { inherit (nixosTests) paperless; };
};

View File

@ -121,9 +121,9 @@ in
simulide_1_1_0 = generic {
version = "1.1.0";
release = "RC1";
release = "SR0";
branch = "1.1.0";
rev = "1912";
sha256 = "sha256-bgRAqt7h2LtU2Ze6Jiz8APhyPcV15v4ofxIilIeZV9E=";
rev = "1917";
sha256 = "sha256-qNBaGWl89Le9uC1VFK+xYhrLzIvOIWjkQbutnrAmZ2M=";
};
}

View File

@ -22,7 +22,7 @@
}:
let
inherit (cudaPackages) cudatoolkit nccl;
inherit (cudaPackages) backendStdenv cudatoolkit nccl;
# The default for cudatoolkit 10.1 is CUDNN 8.0.5, the last version to support CUDA 10.1.
# However, this caffe does not build with CUDNN 8.x, so we use CUDNN 7.6.5 instead.
# Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
"-DBLAS=open"
] ++ (if cudaSupport then [
"-DCUDA_ARCH_NAME=All"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
"-DCUDA_HOST_COMPILER=${backendStdenv.cc}/bin/cc"
] else [ "-DCPU_ONLY=ON" ])
++ ["-DUSE_NCCL=${toggle ncclSupport}"]
++ ["-DUSE_LEVELDB=${toggle leveldbSupport}"]

View File

@ -5,7 +5,7 @@
}:
let
inherit (cudaPackages) cudatoolkit cudaFlags cudnn;
inherit (cudaPackages) backendStdenv cudatoolkit cudaFlags cudnn;
in
assert cudnnSupport -> cudaSupport;
@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
++ (if cudaSupport then [
"-DUSE_OLDCMAKECUDA=ON" # see https://github.com/apache/incubator-mxnet/issues/10743
"-DCUDA_ARCH_NAME=All"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
"-DCUDA_HOST_COMPILER=${backendStdenv.cc}/bin/cc"
"-DMXNET_CUDA_ARCH=${builtins.concatStringsSep ";" cudaFlags.realArches}"
] else [ "-DUSE_CUDA=OFF" ])
++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "git-town";
version = "13.0.2";
version = "14.0.0";
src = fetchFromGitHub {
owner = "git-town";
repo = "git-town";
rev = "v${version}";
hash = "sha256-NT/d6JRecM2g7e+mREYEi1LbUcRkwxmMEuy+IrpCjFA=";
hash = "sha256-GF1nNb/poFDXKwpqYZvQrTZ7CkNgO39KrrDuc94o/tw=";
};
vendorHash = null;

View File

@ -1,15 +1,15 @@
{
"version": "16.10.1",
"repo_hash": "sha256-Bd2BvdWUJJm+hJZHFaW2PyMdaNTZWArpaQ3nY06BBBY=",
"version": "16.10.2",
"repo_hash": "sha256-hKd++fjBaCidBB9DbitWTJjvmiXU0iN1HY4S2gtscW8=",
"yarn_hash": "0yzywfg4lqxjwm5cqsm4bn97zcrfvpnrs8rjrv9wv3xqvi9h9skd",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v16.10.1-ee",
"rev": "v16.10.2-ee",
"passthru": {
"GITALY_SERVER_VERSION": "16.10.1",
"GITLAB_PAGES_VERSION": "16.10.1",
"GITALY_SERVER_VERSION": "16.10.2",
"GITLAB_PAGES_VERSION": "16.10.2",
"GITLAB_SHELL_VERSION": "14.34.0",
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.8.0",
"GITLAB_WORKHORSE_VERSION": "16.10.1"
"GITLAB_WORKHORSE_VERSION": "16.10.2"
}
}

View File

@ -6,7 +6,7 @@
}:
let
version = "16.10.1";
version = "16.10.2";
package_version = "v${lib.versions.major version}";
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
@ -18,7 +18,7 @@ let
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
hash = "sha256-YMvxSQcvFj/ugTGjTThmwi1V9M+rc3fldrmChWzXKR8=";
hash = "sha256-oV6MV9W5kC43orMn78A3UpuR71crN7tcN3xy56S/Ar0=";
};
vendorHash = "sha256-zaldiRg7fk/HncpfR7k+dDprsOp1ziQHgX8B4l7bwe0=";

View File

@ -2,7 +2,7 @@
buildGoModule rec {
pname = "gitlab-container-registry";
version = "3.91.0";
version = "3.92.0";
rev = "v${version}-gitlab";
# nixpkgs-update: no auto update
@ -10,7 +10,7 @@ buildGoModule rec {
owner = "gitlab-org";
repo = "container-registry";
inherit rev;
hash = "sha256-C6tCwVfVZ9CMP0X5NiOdPAuSz5yeu9LAnvOPrq2QLJo=";
hash = "sha256-NHpqfqv3RCbWZilhXLGnQTN+ytzifAix6mcLk5Bw124=";
};
vendorHash = "sha256-KZWdM8Q8ipsgm7OoLyOuHo+4Vg2Nve+yZtTSUDgjOW4=";

View File

@ -2,14 +2,14 @@
buildGoModule rec {
pname = "gitlab-pages";
version = "16.10.1";
version = "16.10.2";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-pages";
rev = "v${version}";
hash = "sha256-jUTUYbkUad2WrI8lkktd2pr3+GPraEUXT+efOb7JcKw=";
hash = "sha256-lJYQBNJFAVq9SKS1gc2rhdE3qFO7x7xcCXT4hlDwtB8=";
};
vendorHash = "sha256-WrR4eZRAuYkhr7ZqP7OXqJ6uwvxzn+t+3OdBNcNaq0M=";

View File

@ -5,7 +5,7 @@ in
buildGoModule rec {
pname = "gitlab-workhorse";
version = "16.10.1";
version = "16.10.2";
# nixpkgs-update: no auto update
src = fetchFromGitLab {

View File

@ -18,16 +18,16 @@ let
gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
in rustPlatform.buildRustPackage rec {
pname = "gitoxide";
version = "0.34.0";
version = "0.35.0";
src = fetchFromGitHub {
owner = "Byron";
repo = "gitoxide";
rev = "v${version}";
hash = "sha256-CHlLValZnO5Jd7boMWnK9bYCSjjM4Dj6xvn6tBlvP8c=";
hash = "sha256-Sl7nNYoiCdTZ50tIfJcq5x9KOBkgJsb5bq09chWbyQc=";
};
cargoHash = "sha256-7nc6eIuY08nTeHMVwKukOdd0zP6xbUPo7NcZ8EEGUNI=";
cargoHash = "sha256-G1NWRkhcmFrcHaIxQ7nzvRejPZUuZQDiNonZykkt4qM=";
nativeBuildInputs = [ cmake pkg-config installShellFiles ];

View File

@ -65,6 +65,12 @@ python.pkgs.buildPythonApplication rec {
url = "https://github.com/blakeblackshear/frigate/commit/56bdacc1c661eff8a323e033520e75e2ba0a3842.patch";
hash = "sha256-s/goUJxIbjq/woCEOEZECdcZoJDoWc1eM63sd60cxeY=";
})
(fetchpatch2 {
# https://github.com/blakeblackshear/frigate/pull/10967
name = "frigate-wsdl-path.patch";
url = "https://github.com/blakeblackshear/frigate/commit/b65656fa8733c1c2f3d944f716d2e9493ae7c99f.patch";
hash = "sha256-taPWFV4PldBGUKAwFMKag4W/3TLMSGdKLYG8bj1Y5mU=";
})
];
postPatch = ''

View File

@ -9,13 +9,13 @@
mkDerivation rec {
pname = "mlv-app";
version = "1.11";
version = "1.14";
src = fetchFromGitHub {
owner = "ilia3101";
repo = "MLV-App";
rev = "QTv${version}";
sha256 = "0s5sjdxi8a17ddvih4ara7mlb2xrc9xqx52jmhfaca6ng341gi4x";
sha256 = "sha256-RfZXHmWSjZBxNFwQ/bzHppsLS0LauURIdnkAzxAIBcU=";
};
patches = if stdenv.isAarch64 then ./aarch64-flags.patch else null;

View File

@ -40,13 +40,14 @@ let
allPackages = withPackages (filter self.lib.isUnbrokenAgdaPackage (attrValues self));
};
};
inherit (Agda) meta;
# Agda is a split package with multiple outputs; do not inherit them here.
meta = removeAttrs Agda.meta [ "outputsToInstall" ];
} ''
mkdir -p $out/bin
makeWrapper ${Agda}/bin/agda $out/bin/agda \
makeWrapper ${Agda.bin}/bin/agda $out/bin/agda \
--add-flags "--with-compiler=${ghc}/bin/ghc" \
--add-flags "--library-file=${library-file}"
ln -s ${Agda}/bin/agda-mode $out/bin/agda-mode
ln -s ${Agda.bin}/bin/agda-mode $out/bin/agda-mode
'';
withPackages = arg: if isAttrs arg then withPackages' arg else withPackages' { pkgs = arg; };

View File

@ -84,6 +84,7 @@ let
preBuild = args.preBuild or "";
postBuild = args.modPostBuild or "";
sourceRoot = args.sourceRoot or "";
env = args.env or { };
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND"

View File

@ -0,0 +1,89 @@
{ lib
, fetchFromGitHub
, stdenv
, unzip
, alsa-lib
, gcc-unwrapped
, git
, godot3-export-templates
, godot3-headless
, libGLU
, libX11
, libXcursor
, libXext
, libXfixes
, libXi
, libXinerama
, libXrandr
, libXrender
, libglvnd
, libpulseaudio
, zlib
}:
stdenv.mkDerivation {
pname = "4d-minesweeper";
version = "2.0";
src = fetchFromGitHub {
owner = "gapophustu";
repo = "4D-Minesweeper";
rev = "db176d8aa5981a597bbae6a1a74aeebf0f376df4";
sha256 = "sha256-A5QKqCo9TTdzmK13WRSAfkrkeUqHc4yQCzy4ZZ9uX2M=";
};
nativeBuildInputs = [
godot3-headless
unzip
];
buildInputs = [
alsa-lib
gcc-unwrapped.lib
git
libGLU
libX11
libXcursor
libXext
libXfixes
libXi
libXinerama
libXrandr
libXrender
libglvnd
libpulseaudio
zlib
];
buildPhase = ''
runHook preBuild
# Cannot create file '/homeless-shelter/.config/godot/projects/...'
export HOME=$TMPDIR
# Link the export-templates to the expected location. The --export commands
# expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release
# with 3.2.3 being the version of godot.
mkdir -p $HOME/.local/share/godot
ln -s ${godot3-export-templates}/share/godot/templates $HOME/.local/share/godot
mkdir -p $out/bin/
cd source/
godot3-headless --export "Linux/X11" $out/bin/4d-minesweeper
runHook postBuild
'';
dontInstall = true;
dontFixup = true;
dontStrip = true;
meta = with lib; {
homepage = "https://github.com/gapophustu/4D-Minesweeper";
description = "A 4D Minesweeper game written in Godot";
license = licenses.mpl20;
platforms = platforms.linux;
maintainers = with maintainers; [ nayala ];
mainProgram = "4d-minesweeper";
};
}

View File

@ -119,6 +119,15 @@ stdenv.mkDerivation (finalAttrs: {
chmod +w doc/reference/html/*
'';
# Indicators that talk to it may issue requests to parse desktop files, which needs binaries in Exec on PATH
# messaging_menu_app_set_desktop_id -> g_desktop_app_info_new -...-> g_desktop_app_info_load_from_keyfile -> g_find_program_for_path
# When launched via systemd, PATH is very narrow
preFixup = ''
gappsWrapperArgs+=(
--suffix PATH : '/run/current-system/sw/bin'
)
'';
passthru = {
ayatana-indicators = [
"ayatana-indicator-messages"

View File

@ -23,7 +23,7 @@ buildGoModule rec{
hash = "sha256-ruOhPWNs1WWM3r6X+6ch0HoDCu/a+IkBQiCr0Wh6yS8=";
};
vendorHash = "sha256-SiggDy6vc19yIw15g45yjl8gscE91zUoR6woECbAtR0=";
vendorHash = "sha256-Juie/Hq3i6rvAK19x6ah3SCQJL0uCrmV9gvzHih3crY=";
subPackages = [
"cmd/cli"

View File

@ -31,7 +31,7 @@ buildGoModule rec {
proxyVendor = true;
vendorHash = "sha256-CtBwc5mcgLvl2Bvg5gI+ULJMQEEibx1aN3IpmRNUtwE=";
vendorHash = "sha256-GvUUCQ2BPW0HlXZljBWJ2Wyys9OEIM55dEWAa6J19Zg=";
doCheck = false;

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "clipcat";
version = "0.16.5";
version = "0.16.6";
src = fetchFromGitHub {
owner = "xrelkd";
repo = pname;
rev = "v${version}";
hash = "sha256-/YoEUZ6/aFqlIPAWi95yZHVwLXHf/vsx8L3NdmZfiVk=";
hash = "sha256-FSgBTQGl8LSLdv+SOAgQWLWiqFY+PRQBFYYdbmCttcY=";
};
cargoHash = "sha256-O1jL2ett8aI8lEwnhAELAP5zphjqf9CFrdCn00V5ImQ=";
cargoHash = "sha256-TrzHmWUDAe4gbwm+VoTOuC50CWWnFsF99zscM85ammo=";
nativeBuildInputs = [
protobuf

View File

@ -24,9 +24,11 @@
, stb
, wlroots
, libliftoff
, libdecor
, libdisplay-info
, lib
, makeBinaryWrapper
, patchelfUnstable
, nix-update-script
, enableExecutable ? true
, enableWsi ? true
@ -41,14 +43,14 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gamescope";
version = "3.14.2";
version = "3.14.3";
src = fetchFromGitHub {
owner = "ValveSoftware";
repo = "gamescope";
rev = "refs/tags/${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-Ym1kl9naAm1MGlxCk32ssvfiOlstHiZPy7Ga8EZegus=";
hash = "sha256-+6RyrdHRDk9aeM52wcgLo966jP70EAiXSMR3sffNeZM=";
};
patches = [
@ -99,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
glm
] ++ lib.optionals enableWsi [
vulkan-headers
] ++ lib.optionals enableExecutable [
] ++ lib.optionals enableExecutable (wlroots.buildInputs ++ [ # gamescope uses a custom wlroots branch
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
@ -114,7 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
libdrm
libliftoff
SDL2
wlroots
libdecor
libinput
libxkbcommon
gbenchmark
@ -122,9 +124,13 @@ stdenv.mkDerivation (finalAttrs: {
libcap
stb
libdisplay-info
];
]);
postInstall = lib.optionalString enableExecutable ''
# using patchelf unstable because the stable version corrupts the binary
${lib.getExe patchelfUnstable} $out/bin/gamescope \
--add-rpath ${vulkan-loader}/lib --add-needed libvulkan.so.1
# --debug-layers flag expects these in the path
wrapProgram "$out/bin/gamescope" \
--prefix PATH : ${with xorg; lib.makeBinPath [xprop xwininfo]}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "gatus";
version = "5.8.0";
version = "5.9.0";
src = fetchFromGitHub {
owner = "TwiN";
repo = "gatus";
rev = "v${version}";
hash = "sha256-FFnrtdJiN7B27sJXzoGsbPKX3NeuHOtA34WQrw6pvEI=";
hash = "sha256-obrdEnNxLdWtbGL57D/nTClaOdzJlLDU3+K9VdR8XI4=";
};
vendorHash = "sha256-VICVo7XYeHs/43knHA4CMSgHloyYSjOFe1TUb4u+egE=";

View File

@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation {
pname = "jrl-cmakemodules";
version = "0-unstable-2024-04-12";
src = fetchFromGitHub {
owner = "jrl-umi3218";
repo = "jrl-cmakemodules";
rev = "a914fa836ab4d2f01c191c93a763cfa322820dc7";
hash = "sha256-/VedtcRqy4SUTZfrtg01Z1lSPFRg/858hgve+nKTqPo=";
};
nativeBuildInputs = [ cmake ];
meta = {
description = "CMake utility toolbox";
homepage = "https://github.com/jrl-umi3218/jrl-cmakemodules";
license = lib.licenses.lgpl3Plus;
maintainers = [ lib.maintainers.nim65s ];
};
}

View File

@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}: let
version = "0.5.0";
in
rustPlatform.buildRustPackage {
pname = "kittysay";
inherit version;
src = fetchFromGitHub {
owner = "uncenter";
repo = "kittysay";
rev = "v${version}";
sha256 = "sha256-eOcHrEvU3nBKFokwE8CyDOUYoBA1+gBlnl7VRUuoFfE=";
};
cargoHash = "sha256-dVgPp5jY3ii8mO/HLTDESQzQyZXzqut8Bjm2KfWD0+U=";
meta = {
description = "Cowsay, but with a cute kitty :3";
homepage = "https://github.com/uncenter/kittysay";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [isabelroses uncenter];
mainProgram = "kittysay";
};
}

View File

@ -0,0 +1,66 @@
{
cmake,
doxygen,
fetchFromGitHub,
getopt,
ninja,
lib,
pkg-config,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "ktx-tools";
version = "4.3.2";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "KTX-Software";
rev = "v${version}";
hash = "sha256-zjiJ8B8FEZUJ3iFTYXRmuIEtcaCWtBIbYwz0DwjTDFo";
};
nativeBuildInputs = [
cmake
doxygen
getopt
ninja
pkg-config
];
cmakeBuildType = "RelWithDebInfo";
cmakeFlags = [ "-DKTX_FEATURE_DOC=ON" ];
postPatch = ''
patchShebangs .
'';
meta = with lib; {
description = "KTX (Khronos Texture) Library and Tools";
longDescription = ''
KTX (Khronos Texture) is a lightweight container for textures for OpenGL®,
Vulkan® and other GPU APIs. KTX files contain all the parameters needed
for texture loading. A single file can contain anything from a simple
base-level 2D texture through to a cubemap array texture with mipmaps.
This software package contains:
- libktx: a small library of functions for writing and reading KTX
files, and instantiating OpenGL®, OpenGL ES and Vulkan® textures
from them.
- ktx2check: a tool for validating KTX Version 2 format files.
- ktx2ktx2: a tool for converting a KTX Version 1 file to a KTX Version
2 file.
- ktxinfo: a tool to display information about a KTX file in human
readable form.
- ktxsc: a tool to supercompress a KTX Version 2 file that contains
uncompressed images.
- toktx: a tool to create KTX files from PNG, Netpbm or JPEG format
images. It supports mipmap generation, encoding to Basis Universal
formats and Zstd supercompression.
'';
homepage = "https://github.com/KhronosGroup/KTX-Software";
license = licenses.asl20;
maintainers = with maintainers; [ bonsairobo ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,55 @@
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, gst_all_1
, wrapGAppsHook4
, appstream-glib
, gtk4
, libadwaita
, desktop-file-utils
, libGL
}:
stdenv.mkDerivation rec {
pname = "livi";
version = "0.0.6";
src = fetchFromGitLab {
owner = "guidog";
repo = "livi";
domain = "gitlab.gnome.org";
rev = "v${version}";
sha256 = "sha256-DaIbBCJT4Da5noW6Q5z1yzTZ256HNqrvdXgwSY7p/D8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
appstream-glib
desktop-file-utils
];
buildInputs = [
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gtk4
libadwaita
libGL
];
strictDeps = true;
meta = with lib; {
homepage = "https://gitlab.gnome.org/guidog/livi";
description = "A small video player targeting mobile devices (also named μPlayer)";
license = licenses.gpl3Plus;
platforms = platforms.linux;
mainProgram = "livi";
maintainers = with maintainers; [ mksafavi ];
};
}

View File

@ -371,12 +371,12 @@ let
stdenv;
pname = "local-ai";
version = "2.12.3";
version = "2.12.4";
src = fetchFromGitHub {
owner = "go-skynet";
repo = "LocalAI";
rev = "v${version}";
hash = "sha256-/Q0t5OozpgqmjUOYHvVAj1k7VnIixfOS8gNAguuu6p0=";
hash = "sha256-piu2B6u4ZfxiOd9SXrE7jiiiwL2SM8EqXo2s5qeKRl0=";
};
self = buildGoModule.override { stdenv = effectiveStdenv; } {

View File

@ -20,7 +20,7 @@ buildGoModule {
modRoot = "go/cli/mcap";
GOWORK="off";
env.GOWORK="off";
# copy the local versions of the workspace modules
postConfigure = ''

View File

@ -8,18 +8,18 @@
buildGoModule rec {
pname = "mercure";
version = "0.15.10";
version = "0.15.11";
src = fetchFromGitHub {
owner = "dunglas";
repo = "mercure";
rev = "v${version}";
hash = "sha256-ot4Gb2Zg4VaF/ip9cLJYP69WGmKw/+WQSf20o1aQtpM=";
hash = "sha256-qPKfF0awRsMfXu7N/xNwFVmmuqTMGsDDqrVgt6LwviI=";
};
sourceRoot = "${src.name}/caddy";
vendorHash = "sha256-K+9LQ9wI0ltZI7N2mshiDsjEMc2FzenqSGP00fEWuMQ=";
vendorHash = "sha256-evUGa1kFWbj0ynDQruBRDx2opzh7Tc7eHnWn3H4xwxY=";
subPackages = [ "mercure" ];
excludedPackages = [ "../cmd/mercure" ];

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "minijinja";
version = "1.0.17";
version = "1.0.20";
src = fetchFromGitHub {
owner = "mitsuhiko";
repo = "minijinja";
rev = version;
hash = "sha256-NMDPOvSTBEw0469BKEAjL5T/OfVw807KESOpflNe3GI=";
hash = "sha256-NVG9Zpt/CRumlJYsILzjJLo5nY6IZxVdjf6asrglIW0=";
};
cargoHash = "sha256-50fJ7Pb4MLICv3JkeeqiXEcu5cYYU0653YYWEd8HlJU=";
cargoHash = "sha256-fMlk48H9qz8r3gwDD5tXHc+CEgOnQo0pWzhsD9dvl0I=";
# The tests relies on the presence of network connection
doCheck = false;

View File

@ -2,16 +2,16 @@
buildNpmPackage rec {
pname = "mystmd";
version = "1.1.52";
version = "1.1.53";
src = fetchFromGitHub {
owner = "executablebooks";
repo = "mystmd";
rev = "mystmd@${version}";
hash = "sha256-m3SjY5mmq+hzxVwpHgXNvE4PyLwMqPtZY5cOYlOPa6M=";
hash = "sha256-neJKlUk0NHdAh7y92Iyv2kouASPzv1PIl79+D0mgckI=";
};
npmDepsHash = "sha256-pFAf3ZIvJPM6AftwTtzAUBzlbwzT+jiEZm9w3xhQlMI=";
npmDepsHash = "sha256-bXvOzx89MR7KL9wsqzB1uorjGGjh++mw17Ni65LLz28=";
dontNpmInstall = true;

View File

@ -0,0 +1,38 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
}: let
version = "0.15.2";
in
rustPlatform.buildRustPackage {
pname = "pace";
inherit version;
src = fetchFromGitHub {
owner = "pace-rs";
repo = "pace";
rev = "refs/tags/pace-rs-v${version}";
hash = "sha256-gyyf4GGHIEdiAWvzKbaOApFikoh3RLWBCZUfJ0MjbIE=";
};
cargoHash = "sha256-D7jxju2R0S5wAsK7Gd8W32t/KKFaDjLHNZ2X/OEuPtk=";
nativeBuildInputs = [installShellFiles];
postInstall = ''
installShellCompletion --cmd pace \
--bash <($out/bin/pace setup completions bash) \
--fish <($out/bin/pace setup completions fish) \
--zsh <($out/bin/pace setup completions zsh)
'';
meta = {
description = "Command-line program for mindful time tracking";
homepage = "https://github.com/pace-rs/pace";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [isabelroses];
mainProgram = "pace";
};
}

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "quarkus-cli";
version = "3.9.2";
version = "3.9.3";
src = fetchurl {
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
hash = "sha256-olMkkvyEfMSktypmLBjJo/wL2zKOLvqms7TRucuAt78=";
hash = "sha256-VTgBwpE5b/OgM7kkzZijmj9H4d8jy0HNMGl5tfmBe4E=";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -0,0 +1,51 @@
{
lib,
stdenv,
autoreconfHook,
doxygen,
fetchFromGitHub,
gettext,
gnutls,
libabigail,
nettle,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "radcli";
version = "1.3.1";
src = fetchFromGitHub {
owner = "radcli";
repo = "radcli";
rev = "refs/tags/${version}";
hash = "sha256-KBgimvhuHvaVh9hxPr+CtibGWyscSi0KXk8S1/STk+Q=";
};
postUnpack = ''
touch ${src.name}/config.rpath
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
doxygen
gettext
gnutls
libabigail
nettle
];
meta = with lib; {
description = "A simple RADIUS client library";
homepage = "https://github.com/radcli/radcli";
changelog = "https://github.com/radcli/radcli/blob/${version}/NEWS";
license = licenses.bsd2;
maintainers = with maintainers; [ fab ];
mainProgram = "radcli";
platforms = platforms.all;
};
}

View File

@ -32,10 +32,10 @@
let
# Keep these separate so the update script can regex them
rpcs3GitVersion = "16271-4ecf8ecd0";
rpcs3Version = "0.0.31-16271-4ecf8ecd0";
rpcs3Revision = "4ecf8ecd06c15f0557e1d9243f31e4c2d7baebe2";
rpcs3Hash = "sha256-y7XLYo1qYYiNE4TXVxfUTCmyGkthpj3IU1gdKTgb8KY=";
rpcs3GitVersion = "16334-fba1db29b";
rpcs3Version = "0.0.31-16334-fba1db29b";
rpcs3Revision = "fba1db29b32b5cfeb66cb6bd3c2745e190557b10";
rpcs3Hash = "sha256-vCdZVecvFeWXYG9Hb0oT/gGdlLnTFOORTUdKGBD9onM=";
inherit (qt6Packages) qtbase qtmultimedia wrapQtAppsHook qtwayland;
in

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "sarasa-gothic";
version = "1.0.9";
version = "1.0.10";
src = fetchurl {
# Use the 'ttc' files here for a smaller closure size.
# (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
hash = "sha256-g9XtMIgQtqOei38OHMynyjqkWkFzaIq+/s7cKXPe1vA=";
hash = "sha256-P7A788hlyfb3bQsltMvGlbMn67643h6/ijEQP0yjIaU=";
};
sourceRoot = ".";

View File

@ -1,19 +1,20 @@
{ lib
, stdenv
, fetchurl
{
lib,
stdenv,
fetchurl,
, autoPatchelfHook
, dpkg
, makeBinaryWrapper
, makeWrapper
, undmg
, wrapGAppsHook
autoPatchelfHook,
dpkg,
makeBinaryWrapper,
makeWrapper,
undmg,
wrapGAppsHook,
, libappindicator
, libnotify
, libsecret
, mpv-unwrapped
, xdg-user-dirs
libappindicator,
libnotify,
libsecret,
mpv-unwrapped,
xdg-user-dirs,
}:
let
@ -28,15 +29,20 @@ let
as an audio source, eliminating the need for Spotify Premium
'';
downloadPage = "https://github.com/KRTirtho/spotube/releases";
homepage = "https://spotube.netlify.app/";
homepage = "https://spotube.krtirtho.dev/";
license = lib.licenses.bsdOriginal;
mainProgram = "spotube";
maintainers = with lib.maintainers; [ tomasajt ];
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
fetchArtifact = { filename, hash }:
fetchArtifact =
{ filename, hash }:
fetchurl {
url = "https://github.com/KRTirtho/spotube/releases/download/v${version}/${filename}";
inherit hash;
@ -52,7 +58,10 @@ let
sourceRoot = ".";
nativeBuildInputs = [ undmg makeBinaryWrapper ];
nativeBuildInputs = [
undmg
makeBinaryWrapper
];
installPhase = ''
runHook preInstall

View File

@ -1,7 +1,7 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub }:
let
version = "1.62.1";
version = "1.64.0";
in
buildGoModule {
pname = "tailscale-nginx-auth";
@ -11,9 +11,9 @@ buildGoModule {
owner = "tailscale";
repo = "tailscale";
rev = "v${version}";
hash = "sha256-gV1k+8n6vuL9q4hNaMdQLf6083Em+CC7/uTdUpehbUU=";
hash = "sha256-qBZoiqhBMBNbeytDBH+sOxxsVjOcH6vnSgIufx+Op04=";
};
vendorHash = "sha256-jyRjT/CQBlmjHzilxJvMuzZQlGyJB4X/yISgWjBVDxc=";
vendorHash = "sha256-pYeHqYd2cCOVQlD1r2lh//KC+732H0lj1fPDBr+W8qA=";
CGO_ENABLED = 0;

View File

@ -7,6 +7,15 @@ buildGoModule rec {
pname = "templ";
version = "0.2.663";
src = fetchFromGitHub {
owner = "a-h";
repo = "templ";
rev = "v${version}";
hash = "sha256-TU8QG6OmUzSNDAX9W0Ntmz5cucLqVQeTskfnJbm/YM0=";
};
vendorHash = "sha256-Upd5Wq4ajsyOMDiAWS2g2iNO1sm1XJc43AFQLIo5eDM=";
subPackages = [ "cmd/templ" ];
CGO_ENABLED = 0;
@ -17,20 +26,11 @@ buildGoModule rec {
"-extldflags -static"
];
src = fetchFromGitHub {
owner = "a-h";
repo = "templ";
rev = "refs/tags/v${version}";
hash = "sha256-TU8QG6OmUzSNDAX9W0Ntmz5cucLqVQeTskfnJbm/YM0=";
};
vendorHash = "sha256-Upd5Wq4ajsyOMDiAWS2g2iNO1sm1XJc43AFQLIo5eDM=";
meta = with lib; {
meta = {
description = "A language for writing HTML user interfaces in Go";
homepage = "https://templ.guide/";
license = licenses.mit;
maintainers = with maintainers; [ luleyleo ];
homepage = "https://github.com/a-h/templ";
license = lib.licenses.mit;
mainProgram = "templ";
maintainers = with lib.maintainers; [ luleyleo ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "tenv";
version = "1.7.0";
version = "1.7.1";
src = fetchFromGitHub {
owner = "tofuutils";
repo = "tenv";
rev = "v${version}";
hash = "sha256-yAwjNh4Qc09VNpVZ6/e6nnPrz61K/tkSa1df+sMXBj8=";
hash = "sha256-Iq1yv80qiQxISS0r1ShjJOXVtp/ryodgih1m3ykI8+0=";
};
vendorHash = "sha256-NMkR90+kJ3VsuhF45l5K68uOqenPfINZDEE0GfjULro=";

View File

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "unciv";
version = "4.11.2";
version = "4.11.4";
src = fetchurl {
url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
hash = "sha256-ZUDfJf+FgIX8gRoZYlYAJhpLwNWp3MCKEQOSQGQ88T8=";
hash = "sha256-QqnM1kTXHHpf8l99J8ydIjTkl/LetijzIJgLYt6OaRA=";
};
dontUnpack = true;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "VictoriaMetrics";
version = "1.100.0";
version = "1.100.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
hash = "sha256-jrKTic80y8r/1wOR8Prqe9PG57yo8qQIGsobu0I4kTY=";
hash = "sha256-OheW6sCn/yXgSrtUe1zqDGaH6G8HG4QRQhFznaZGvX0=";
};
vendorHash = null;

View File

@ -23,7 +23,7 @@ let
workDir = "console";
bufArgs = "../proto --include-imports --include-wkt";
outputPath = "src/app/proto";
hash = "sha256-h/5K6PvEFyjzS5p7SfuDIk91TkN1iPc+iXor8T/QSeE=";
hash = "sha256-BBXFt4f2SQphr106sQ0eEL4Z2ooAI8fxXhu2rKqhjb4=";
};
in
mkYarnPackage rec {

View File

@ -22,7 +22,7 @@ let
rev = "v${version}";
hash = "sha256-Uv0iEIFkTdBAi0WDBQHf0ATs4L2FOU4NmiE9p1MHSa0=";
};
goModulesHash = "sha256-PQch046YjYhAmVlNNdgDLWIqFvEpXRgXAYFMwSZmk4w=";
goModulesHash = "sha256-thd1bhbPVedYd+Yq1IYYUJFr66AWRTzA3DceCXFTEQo=";
buildZitadelProtocGen = name:
buildGoModule {
@ -92,7 +92,7 @@ let
protoc-gen-zitadel
];
outputPath = ".artifacts";
hash = "sha256-3qDVY2CvtY8lZDr+p5i0vV6zZ5KyTtxBLyV7Os9KuIw=";
hash = "sha256-ntIKudNFBs7kHjK7cfzbOfDCA6J8uvJRUbCTa6afK/I=";
};
in
buildGoModule rec {

View File

@ -18,7 +18,7 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
in
{
pname = "sketchybar-app-font";
version = "2.0.16";
version = "2.0.17";
srcs = selectedSources;
@ -52,15 +52,15 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
sources = {
font = fetchurl {
url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
hash = "sha256-mZ3LmkL54NNQzXuCyWVNlAIod3T5/aGKvnLZjZ/GYdw=";
hash = "sha256-iVSWFqhzf0ZxfQODAf+uvGIiWMjWbir6ZWurlx3n6/w=";
};
lua = fetchurl {
url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.lua";
hash = "sha256-8daDECZ8hsoyh4Rp3xbkYgPSamCylrzf8zzyu/iwZEc=";
hash = "sha256-/N16zLflQ2sONBFOZiIdC8KR1rd5pZvXftiXjXJvTVA=";
};
shell = fetchurl {
url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.sh";
hash = "sha256-h0rGkzy1smDL2guvvgeUVUD0q4n9LDKDLQJahbWHgWA=";
hash = "sha256-nPBiNz+3oHwiertjMJ6YW6g6WZglGjassUGrsQVvnRM=";
};
};

View File

@ -22,13 +22,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "all" "black
stdenvNoCC.mkDerivation rec {
inherit pname;
version = "2023-10-28";
version = "2024-04-14";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
hash = "sha256-NxIWH3qLW8sEguovAv9wfgnlnmPlTipRJTmMo3rSHNY=";
hash = "sha256-DQYnR2V86KbIJfAA4ObRtKQq1IuECie1qdOBYVu8NtA=";
};
nativeBuildInputs = [

View File

@ -125,6 +125,11 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace plugins/language/{PageComponent,SpellChecking,ThemeValues}.qml plugins/language/onscreenkeyboard-plugin.cpp plugins/sound/PageComponent.qml \
--replace-fail 'com.lomiri.keyboard.maliit' 'org.maliit.keyboard.maliit'
# Gets list of available localisations from current system, but later drops any language that doesn't cover LSS
# So just give it its own prefix
substituteInPlace plugins/language/language-plugin.cpp \
--replace-fail '/usr/share/locale' '${placeholder "out"}/share/locale'
# Decide which entries should be visible based on the current system
substituteInPlace plugins/*/*.settings \
--replace-warn '/etc' '/run/current-system/sw/etc'

View File

@ -0,0 +1,30 @@
From b7757a71bbce18b4718474cab6a7ff7b613f8c86 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Sun, 19 Nov 2023 13:25:55 +0100
Subject: [PATCH] lomiri: Disable Wizard
NixOS does all of this configuration statically at generation build & setup time. For us this just ends up being series of screens
re-confirming abunch of things set in your configuration, so pointless.
---
plugins/Wizard/System.cpp | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/plugins/Wizard/System.cpp b/plugins/Wizard/System.cpp
index aee8184a8..06c867023 100644
--- a/plugins/Wizard/System.cpp
+++ b/plugins/Wizard/System.cpp
@@ -69,10 +69,7 @@ bool System::wizardPathExists() {
bool System::wizardEnabled() const
{
- if (!wizardPathExists()) {
- return true;
- }
- return isUpdate();
+ return false;
}
QString System::readCurrentFramework()
--
2.40.1

View File

@ -0,0 +1,289 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, fetchpatch2
, gitUpdater
, linkFarm
, nixosTests
, ayatana-indicator-datetime
, bash
, biometryd
, boost
, cmake
, cmake-extras
, coreutils
, dbus
, dbus-test-runner
, deviceinfo
, geonames
, glib
, glm
, gnome-desktop
, gsettings-qt
, gtk3
, hfd-service
, libevdev
, libqtdbustest
, libqtdbusmock
, libusermetrics
, libuuid
, lightdm_qt
, lomiri-api
, lomiri-app-launch
, lomiri-download-manager
, lomiri-indicator-network
, lomiri-ui-toolkit
, lomiri-settings-components
, lomiri-system-settings-unwrapped
, lomiri-schemas
, lomiri-notifications
, lomiri-thumbnailer
, maliit-keyboard
, mir
, nixos-icons
, pam
, pkg-config
, properties-cpp
, protobuf
, python3
, qmenumodel
, qtbase
, qtdeclarative
, qtmir
, qtmultimedia
, qtsvg
, telephony-service
, wrapGAppsHook
, wrapQtAppsHook
, xwayland
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri";
version = "0.2.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri";
rev = finalAttrs.version;
hash = "sha256-V5Lt870eHgmJ63OF8bTiNFLAFrxdgNihkd7aodSO3v8=";
};
patches = [
# Remove when version > 0.2.1
(fetchpatch {
name = "0001-lomiri-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch";
url = "https://gitlab.com/ubports/development/core/lomiri/-/commit/53190bf2f03c8a35491efb26222b8d67ff6caa34.patch";
hash = "sha256-sbwqOqpTf5OlEB4NZZZTFNXyKq4rTQAxJ6U8YP/DT5s=";
})
# fetchpatch2 for renames
# Use GNUInstallDirs variables better, replace more /usr references
# Remove when https://gitlab.com/ubports/development/core/lomiri/-/merge_requests/137 merged & in release
(fetchpatch2 {
name = "0002-lomiri-Make-less-FHS-assumptions.patch";
url = "https://gitlab.com/ubports/development/core/lomiri/-/commit/817ae1d8ed927e661fbc006851163ba99c46ae13.patch";
hash = "sha256-NLvpzI2MtjKcGrgTn6PbLXSy3/Jg8KxdSvVYO9KYu9g=";
})
# Fix greeter & related settings
# These patches are seemingly not submitted upstream yet
(fetchpatch {
name = "1000-lomiri-QT_IM_MODULE-maliit.patch";
url = "https://salsa.debian.org/ubports-team/lomiri/-/raw/ebbe0f3f568bd145bb58a2e47f7112442328a0a5/debian/patches/2003_maliit-not-maliitphablet-as-im-module-namespace.patch";
hash = "sha256-5HEMl0x1S9Hb7spxPRgu8OBebmpaLa6zko2uVEYtBmY=";
})
(fetchpatch {
name = "1001-lomiri-QT_QPA_PLATFORM-wayland.patch";
url = "https://salsa.debian.org/ubports-team/lomiri/-/raw/ebbe0f3f568bd145bb58a2e47f7112442328a0a5/debian/patches/2004_qt-qpa-platform-is-wayland.patch";
hash = "sha256-4C6X2TW+yjZhqYPIcQ3GJeTKbz785i7p/DpT+vX1DSQ=";
})
(fetchpatch {
name = "1002-lomiri-Fix-Lomiri-greeter.patch";
url = "https://salsa.debian.org/ubports-team/lomiri/-/raw/ebbe0f3f568bd145bb58a2e47f7112442328a0a5/debian/patches/1008_lomiri-greeter-wayland.patch";
excludes = [ "data/lomiri-greeter.desktop.in.in" ]; # conflict with GNUInstallDirs patch
hash = "sha256-XSSxf06Su8PMoqYwqevN034b/li8G/cNXjrqOXyhTRg=";
})
(fetchpatch {
name = "1003-lomiri-Hide-launcher-in-greeter-mode.patch";
url = "https://salsa.debian.org/ubports-team/lomiri/-/raw/ebbe0f3f568bd145bb58a2e47f7112442328a0a5/debian/patches/0002_qml-shell-hide-and-disallow-launcher-in-greeter-only-mode.patch";
hash = "sha256-R0aMlb7N7XACCthML4SQSd0LvbadADfdQJqrYFhmujk=";
})
(fetchpatch {
name = "1004-lomiri-Dont-reset-OSK-setting.patch";
url = "https://salsa.debian.org/ubports-team/lomiri/-/raw/ebbe0f3f568bd145bb58a2e47f7112442328a0a5/debian/patches/2005_dont-reset-alwaysShowOsk-to-system-defaults-on-login.patch";
hash = "sha256-guq/Ykcq4WcuXxNKO1eA4sJFyGSpZo0gtyFTdeK/GeE=";
})
./9901-lomiri-Disable-Wizard.patch
];
postPatch = ''
# Part of greeter fix, applies separately due to merge conflicts
substituteInPlace data/lomiri-greeter.desktop.in.in \
--replace-fail '@CMAKE_INSTALL_FULL_BINDIR@/lomiri-greeter-wrapper @CMAKE_INSTALL_FULL_BINDIR@/lomiri --mode=greeter' '@CMAKE_INSTALL_FULL_BINDIR@/lomiri --mode=greeter' \
--replace-fail 'X-LightDM-Session-Type=mir' 'X-LightDM-Session-Type=wayland'
# Need to replace prefix
substituteInPlace data/systemd-user/CMakeLists.txt \
--replace-fail 'pkg_get_variable(SYSTEMD_USERUNITDIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USERUNITDIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
# Don't embed full paths into regular desktop files (but do embed them into lightdm greeter one)
substituteInPlace data/{indicators-client,lomiri}.desktop.in.in \
--replace-fail '@CMAKE_INSTALL_FULL_BINDIR@/' ""
# Exclude tests that don't compile (Mir headers these relied on were removed in mir 2.9)
# fatal error: mirtest/mir/test/doubles/stub_surface.h: No such file or directory
substituteInPlace tests/mocks/CMakeLists.txt \
--replace-fail 'add_subdirectory(QtMir/Application)' ""
#substituteInPlace plugins/AccountsService/CMakeLists.txt \
# --replace-fail 'CMAKE_INSTALL_DATADIR' 'CMAKE_INSTALL_FULL_DATADIR'
# NixOS-ify
# Use Nix flake instead of Canonical's Ubuntu logo
rm qml/Launcher/graphics/home.svg
ln -s ${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg qml/Launcher/graphics/home.svg
# Look up default wallpaper in current system
substituteInPlace plugins/Utils/constants.cpp \
--replace-fail '/usr/share/backgrounds' '/run/current-system/sw/share/wallpapers'
'' + lib.optionalString finalAttrs.finalPackage.doCheck ''
patchShebangs tests/whitespace/check_whitespace.py
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # populates GSETTINGS_SCHEMAS_PATH
pkg-config
wrapGAppsHook # XDG_DATA_DIRS wrapper flags for schemas
wrapQtAppsHook
];
buildInputs = [
ayatana-indicator-datetime
bash
boost
cmake-extras
dbus
dbus-test-runner
deviceinfo
geonames
glib
glm
gnome-desktop
gsettings-qt
gtk3
libevdev
libusermetrics
libuuid
lightdm_qt
lomiri-api
lomiri-app-launch
lomiri-download-manager
lomiri-indicator-network
lomiri-schemas
lomiri-system-settings-unwrapped
lomiri-ui-toolkit
maliit-keyboard
mir
pam
properties-cpp
protobuf
qmenumodel
qtbase
qtdeclarative
qtmir
qtsvg
# QML import path
biometryd
hfd-service
lomiri-notifications
lomiri-settings-components
lomiri-thumbnailer
qtmultimedia
telephony-service
];
nativeCheckInputs = [
(python3.withPackages (ps: with ps; [
python-dbusmock
]))
];
checkInputs = [
libqtdbustest
libqtdbusmock
];
# Need its flags
dontWrapGApps = true;
# Manually calling, to avoid double & unnecessary wrapping
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck))
];
postInstall = ''
install -Dm755 ../data/lomiri-greeter-wrapper $out/bin/lomiri-greeter-wrapper
'';
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
preCheck = ''
export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
export XDG_DATA_DIRS=${libqtdbusmock}/share
'';
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postFixup = ''
wrapQtApp $out/bin/lomiri
wrapQtApp $out/bin/indicators-client
wrapQtApp $out/bin/lomiri-mock-indicator-service
wrapProgram $out/bin/lomiri-greeter-wrapper \
--prefix PATH : ${lib.makeBinPath [ coreutils dbus deviceinfo glib ]} \
--set LOMIRI_BINARY "$out/bin/lomiri"
wrapProgram $out/libexec/Xwayland.lomiri \
--prefix PATH : ${lib.makeBinPath [ deviceinfo ]}
wrapProgram $out/libexec/lomiri-systemd-wrapper \
--prefix PATH : ${lib.makeBinPath [ dbus ]}
'';
passthru = {
tests.lomiri = nixosTests.lomiri;
updateScript = gitUpdater { };
greeter = linkFarm "lomiri-greeter" [{
path = "${finalAttrs.finalPackage}/share/lightdm/greeters/lomiri-greeter.desktop";
name = "lomiri-greeter.desktop";
}];
};
meta = with lib; {
description = "Shell of the Lomiri Operating environment";
longDescription = ''
Shell of the Lomiri Operating environment optimized for touch based human-machine interaction, but also supporting
convergence (i.e. switching between tablet/phone and desktop mode).
Lomiri is the user shell driving Ubuntu Touch based mobile devices.
'';
homepage = "https://lomiri.com/";
changelog = "https://gitlab.com/ubports/development/core/lomiri/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only;
mainProgram = "lomiri";
maintainers = teams.lomiri.members;
platforms = platforms.linux;
};
})

View File

@ -56,9 +56,12 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace src/{Morph,Ubuntu}/CMakeLists.txt \
--replace '/usr/lib/''${CMAKE_LIBRARY_ARCHITECTURE}/qt5/qml' "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
# Don't use absolute paths in desktop file
# We normally don't want to use absolute paths in desktop file, but this one is special
# There appears to be some issue in lomiri-app-launch's lookup of relative Icon entries (while lomiri is starting up?)
# that makes the session segfault.
# As a compromise, hardcode /run/current-system
substituteInPlace src/app/webbrowser/morph-browser.desktop.in.in \
--replace 'Icon=@CMAKE_INSTALL_FULL_DATADIR@/morph-browser/morph-browser.svg' 'Icon=morph-browser' \
--replace 'Icon=@CMAKE_INSTALL_FULL_DATADIR@/morph-browser/morph-browser.svg' 'Icon=/run/current-system/sw/share/icons/hicolor/scalable/apps/morph-browser.svg' \
--replace 'X-Lomiri-Splash-Image=@CMAKE_INSTALL_FULL_DATADIR@/morph-browser/morph-browser-splash.svg' 'X-Lomiri-Splash-Image=lomiri-app-launch/splash/morph-browser.svg'
'' + lib.optionalString (!finalAttrs.doCheck) ''
substituteInPlace CMakeLists.txt \
@ -124,7 +127,13 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
updateScript = gitUpdater { };
tests.standalone = nixosTests.morph-browser;
tests = {
# Test of morph-browser itself
standalone = nixosTests.morph-browser;
# Lomiri-specific issues with the desktop file may break the entire session, make sure it still works
lomiri = nixosTests.lomiri;
};
};
meta = with lib; {

View File

@ -0,0 +1,198 @@
{ stdenvNoCC
, lib
, fetchFromGitLab
, fetchpatch
, fetchpatch2
, gitUpdater
, nixosTests
, bash
, cmake
, dbus
, deviceinfo
, inotify-tools
, lomiri
, makeWrapper
, pkg-config
, runtimeShell
, systemd
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "lomiri-session";
version = "0.2";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-session";
rev = finalAttrs.version;
hash = "sha256-1ZpAn1tFtlXIfeejG0TnrJBRjf3tyz7CD+riWo+sd0s=";
};
patches = [
# Properly gate of UBtouch-specific code
# Otherwise session won't launch, errors out on a removed Mir setting
# Remove when version > 0.2
(fetchpatch {
name = "0001-lomiri-session-Properly-differentiate-between-Ubuntu-Touch-and-Lomiri-Desktop-session.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/780c19d8b4f18ce24ceb64b8abfae70018579dce.patch";
hash = "sha256-eFiagFEpH43WpVGA6xkI1IiQ99HHizonhXYg1wYAhwU=";
})
# Export Lomiri-prefixed stop envvar
# Remove when version > 0.2
(fetchpatch {
name = "0002-lomiri-session-Use-LOMIRI_MIR_EMITS_SIGSTOP.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/452e38b489b5893aac3481410d708f4397b1fa1c.patch";
hash = "sha256-w/kifBLfDm8+CBliVjm4o8JtjaOByHf97XyPhVk6Gho=";
})
# Removes broken first-time wizard check
# Remove when version > 0.2
(fetchpatch {
name = "0003-lomiri-session-Drop-old-wizard-has-run-check.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/c16ae87d8848f9909850072f7728c03c894b1a47.patch";
hash = "sha256-AIwgztFOGwG2zUsaUen/Z3Mes9m7VgbvNKWp/qYp4g4=";
})
# Fix quoting on ps check
# Remove when version > 0.2
(fetchpatch {
name = "0004-lomiri-session-Put-evaluation-of-ps-call-in-quotes.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/2d7368eae99f07200c814c840636206b9eaa485d.patch";
hash = "sha256-6LqurJqi/I+Qw64hWTrvA8uA/EIRZbcS6TRRXK+9s1s=";
})
# Check for Xwayland presense to determine X11 support
# Remove when version > 0.2
(fetchpatch {
name = "0005-lomiri-session-Check-for-Xwayland-presence.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/707e43d3b1a6200535b7682e63817265a8e4ee7e.patch";
hash = "sha256-sI00P31QVF7ZKdwNep2r+0MetNGg/bbrd2YfEzZPLFI=";
})
# Fix systemd service startup things, drop upstart hacks
# Remove when https://gitlab.com/ubports/development/core/lomiri-session/-/merge_requests/13 merged & in release
(fetchpatch {
name = "0100-lomiri-session-Drop-Before-Wants-for-App-Indicator-targets.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/ccebdc1c47d7411a9cf4ad2e529471fb0403433a.patch";
hash = "sha256-vGFvcCjbwcuLrAUIsL5y/QmoOR5i0560LNv01ZT9OOg=";
})
(fetchpatch {
name = "0101-lomiri-session-Start-lal-application-end.target-on-stop-restart.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/9a945b09feff0c1d2b3203caaf3cec5230481e80.patch";
hash = "sha256-1vD+I5YDEh2wF7UDn6ZxPTBRrdUvwWVXt5x5QdkIAkY=";
})
(fetchpatch {
name = "0102-lomiri-session-Drop-manual-Xwayland-start-logic.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/6aee0d6cfd76ab1904876f4166621f9f6d833056.patch";
hash = "sha256-iW/Ko+Xm2ZuJuNE7ATeuMTSHby0fXD+D5nWjX6LLLwU=";
})
(fetchpatch {
name = "0103-lomiri-session-Set-SyslogIdentifier.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/09d378728685411a04333040279cdaef487dedc8.patch";
hash = "sha256-minJSxrn2d0+FBlf7bdN3ddSvsn6YWdeH6ZuCW7qbII=";
})
(fetchpatch {
name = "0104-lomiri-session-Use-LOMIRI_AS_SYSTEMD_UNIT-to-launch-session.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/9bd2552c2638c139a0abff527fda99f2ef94cc42.patch";
hash = "sha256-7ipsGrQRJ98uVSRp2e0U4q3iTuyeUalqZIohbxXpT9k=";
})
(fetchpatch {
name = "0105-lomiri-session-Allow-sd_notify-calls-for-NOTIFY_SOCKET.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/2157bfc472f2d35e7c81002a924a1f6aa85f7395.patch";
hash = "sha256-qtArOG4gysFWGnXbz3KpXEppaZ1PGDQKEGqnJvU6/RE=";
})
(fetchpatch {
name = "0106-lomiri-session-Change-envvar-for-1-time-binary.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/0cd1dbd30f3d5c6e50bce79146e8511e0ee56153.patch";
hash = "sha256-b8/Mrs36JPJE6l6/Dc/PN+zNV8Oq37HOFx+zMQvWPBY=";
})
(fetchpatch {
name = "0107-lomiri-session-Drag-lomiri-process-under-umbrella-of-wrapper-script.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/d8212b1862924eb283fd1ee7ea390a144d5ee97e.patch";
hash = "sha256-UJzV0pYEBBrXSpYxdFoBoMRzPeIQtvtPzDW2/Ljz+uI=";
})
(fetchpatch {
name = "0108-lomiri-session-Dont-hide-exit-code-from-systemd.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/9ac78d736caa891a4923be8d040fe8224e335215.patch";
hash = "sha256-yPg1K0IfaGYKqg9536i9AFCLTcAENlsJNdHjrElSeZ4=";
})
# Don't require a C & C++ compiler, nothing to compile
# Remove when https://gitlab.com/ubports/development/core/lomiri-session/-/merge_requests/14 merged & in release
(fetchpatch {
name = "0200-lomiri-session-Dont-require-a-compiler.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/6915a5678e09e5dbcb26d29a8e5585d032a19186.patch";
hash = "sha256-2SWiOLDLsdTjRHaJcnZe/WKcFMFmHtpZsuj7bQCtB4A=";
})
# Use GNUInstallDirs for install locations, find_program() for locations of used binaries
# fetchpatch2 due to renames, need to resolve merge conflict manually in postPatch
# Remove when https://gitlab.com/ubports/development/core/lomiri-session/-/merge_requests/15 merged & in release
(fetchpatch2 {
name = "0201-lomiri-session-Hardcode-less-locations.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-session/-/commit/d5b93ecaf08ba776a79c69e8a9dd05d0b6181947.patch";
excludes = [ "systemd/lomiri.service" ];
hash = "sha256-BICb6ZwU/sUBzmM4udsOndIgw1A03I/UEG000YvMZ9Y=";
})
];
postPatch = ''
# Resolving merge conflict
mv systemd/lomiri.service{,.in}
substituteInPlace systemd/lomiri.service.in \
--replace-fail '/usr/bin/lomiri-session' '@CMAKE_INSTALL_FULL_BINDIR@/lomiri-session' \
--replace-fail '/usr/bin/dbus-update-activation-environment' '@DUAE_BIN@'
substituteInPlace lomiri-session \
--replace-fail '/usr/libexec/Xwayland.lomiri' '${lib.getBin lomiri}/libexec/Xwayland.lomiri'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
];
buildInputs = [
bash
deviceinfo
dbus
inotify-tools
lomiri
systemd
];
cmakeFlags = [
# Requires lomiri-system-compositor -> not ported to Mir 2.x yet
(lib.cmakeBool "ENABLE_TOUCH_SESSION" false)
];
postInstall = ''
patchShebangs $out/bin/lomiri-session
wrapProgram $out/bin/lomiri-session \
--prefix PATH : ${lib.makeBinPath [ deviceinfo inotify-tools lomiri ]}
'';
passthru = {
providedSessions = [
"lomiri"
# not packaged/working yet
# "lomiri-touch"
];
tests.lomiri = nixosTests.lomiri;
updateScript = gitUpdater { };
};
meta = with lib; {
description = "Integrates Lomiri desktop/touch sessions into display / session managers";
homepage = "https://gitlab.com/ubports/development/core/lomiri-session";
changelog = "https://gitlab.com/ubports/development/core/lomiri-session/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only;
mainProgram = "lomiri-session";
maintainers = teams.lomiri.members;
platforms = platforms.linux;
};
})

View File

@ -8,6 +8,7 @@ let
inherit (self) callPackage;
in {
#### Core Apps
lomiri = callPackage ./applications/lomiri { };
lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
lomiri-system-settings-security-privacy = callPackage ./applications/lomiri-system-settings/plugins/lomiri-system-settings-security-privacy.nix { };
lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
@ -16,6 +17,7 @@ let
#### 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 { };

View File

@ -0,0 +1,21 @@
From cf8ba54d22f5ac839004c0d984fb402bde82b527 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Mon, 8 Apr 2024 15:22:55 +0200
Subject: [PATCH] Launch module-created systemd service
---
data/com.lomiri.UserMetrics.service.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/data/com.lomiri.UserMetrics.service.in b/data/com.lomiri.UserMetrics.service.in
index c2e6ae1..212e24f 100644
--- a/data/com.lomiri.UserMetrics.service.in
+++ b/data/com.lomiri.UserMetrics.service.in
@@ -3,3 +3,4 @@ Name=com.lomiri.UserMetrics
Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/libusermetrics/usermetricsservice
User=usermetrics
StandardOutput=syslog
+SystemdService=dbus-com.lomiri.UserMetrics.service
--
2.42.0

View File

@ -43,6 +43,10 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
# Not submitted yet, waiting for decision on how CMake testing should be handled
./2001-Remove-custom-check-target.patch
# Due to https://gitlab.com/ubports/development/core/libusermetrics/-/issues/8, we require knowledge about AppArmor availability at launch time
# Custom patch to launch a module-defined service that can handle this
./2002-Launch-module-created-systemd-service.patch
];
postPatch = ''
@ -91,6 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "ENABLE_CLICK" true)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
# Exclude tests

View File

@ -161,6 +161,7 @@ stdenv.mkDerivation (finalAttrs: {
moveToOutput share/applications/$exampleExe.desktop $examples
done
moveToOutput share/icons $examples
moveToOutput share/content-hub/peers $examples
'';
postFixup = ''

View File

@ -176,6 +176,10 @@ stdenv.mkDerivation (finalAttrs: {
sed -i $out/lib/systemd/user/"$service".service \
-e '/ofono-setup.service/d'
done
# Parses the call & SMS indicator desktop files & tries to find its own executable in PATH
wrapProgram $out/bin/telephony-service-indicator \
--prefix PATH : "$out/bin"
'';
passthru = {

View File

@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/plasma/5.27.10/ -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/plasma/5.27.11/ -A '*.tar.xz' )

View File

@ -1,486 +1,486 @@
# DO NOT EDIT! This file is generated automatically.
# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5
# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5/
{ fetchurl, mirror }:
{
aura-browser = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/aura-browser-5.27.10.tar.xz";
sha256 = "0rc5vsk3hy4i3fqzrj7kkshijkkrfin3km7n9agv9xs6bjrrca2k";
name = "aura-browser-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/aura-browser-5.27.11.tar.xz";
sha256 = "098s0r3lr5svdysc93nvv8xqj3dlslly733hf8pz1nlp621dhx7k";
name = "aura-browser-5.27.11.tar.xz";
};
};
bluedevil = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/bluedevil-5.27.10.tar.xz";
sha256 = "1051gx6xv514qa7g102mv51927b7408mv2jrfpryji8r5s6da7vp";
name = "bluedevil-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/bluedevil-5.27.11.tar.xz";
sha256 = "1134pm16db70h79q55c9ir1d1amqscdd8bvkf92nmmk6s2zsimdl";
name = "bluedevil-5.27.11.tar.xz";
};
};
breeze = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/breeze-5.27.10.tar.xz";
sha256 = "18h08w3ylgvhgcs63ai8airh59yb4kc0bz2zi6lm77fsa83rdg5y";
name = "breeze-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/breeze-5.27.11.tar.xz";
sha256 = "1ascvlkycbn4h0bi2cdjljnpi3cfp7whvzslm4fb2gdwwlpnlx8l";
name = "breeze-5.27.11.tar.xz";
};
};
breeze-grub = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/breeze-grub-5.27.10.tar.xz";
sha256 = "072zqs723phm27cn359lpaw29zqbx23w4gi4shk00x1n0j5s0spz";
name = "breeze-grub-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/breeze-grub-5.27.11.tar.xz";
sha256 = "03l6lpqj1fp2645qy23fcngfzwzhdgyj3xw563gx3gcgqwrc84h6";
name = "breeze-grub-5.27.11.tar.xz";
};
};
breeze-gtk = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/breeze-gtk-5.27.10.tar.xz";
sha256 = "1dk9f2l4jqdhzr5xd7ym107zayygjdmibl3jkhnbnq97rs6gk8qx";
name = "breeze-gtk-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/breeze-gtk-5.27.11.tar.xz";
sha256 = "1vkzyv65m37jg436brscgn61dd6mil50s8jyn2szwka0hyzx7gfw";
name = "breeze-gtk-5.27.11.tar.xz";
};
};
breeze-plymouth = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/breeze-plymouth-5.27.10.tar.xz";
sha256 = "1xabkvnpxh2qw1x5w1fkrcg31h8j0baq4ls6ckw6647gikvnf7h8";
name = "breeze-plymouth-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/breeze-plymouth-5.27.11.tar.xz";
sha256 = "16vp6a2bp6s57wb9cb4dhac650m93829xp7q44n172564lz0pn8d";
name = "breeze-plymouth-5.27.11.tar.xz";
};
};
discover = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/discover-5.27.10.tar.xz";
sha256 = "1a4z21qrc6wjwcv0hnw8wnkk8w0bli12hfm8bdd07b2rlzi8k48z";
name = "discover-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/discover-5.27.11.tar.xz";
sha256 = "0b79x5xfggymxmh0fr45ndc3k3xd2gjryhmy8xd370bd5d964arl";
name = "discover-5.27.11.tar.xz";
};
};
drkonqi = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/drkonqi-5.27.10.tar.xz";
sha256 = "1l3zcmjjndqq6y25v74kmzddkkqr8j4030z7rz5333hxraa4gsm3";
name = "drkonqi-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/drkonqi-5.27.11.tar.xz";
sha256 = "0g2q959wswjwpn2vj4mmfy3xr6yj4mch55lr8b2xyd0bxw4vb810";
name = "drkonqi-5.27.11.tar.xz";
};
};
flatpak-kcm = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/flatpak-kcm-5.27.10.tar.xz";
sha256 = "0masi1nciqzrymcq5i4b2jmhxliqf88z9g11607aqfgsli070lms";
name = "flatpak-kcm-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/flatpak-kcm-5.27.11.tar.xz";
sha256 = "0jnzxk9fhpck19k48fw2mcvr5512xnw3jss9c7xp5h27jhml8b4p";
name = "flatpak-kcm-5.27.11.tar.xz";
};
};
kactivitymanagerd = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kactivitymanagerd-5.27.10.tar.xz";
sha256 = "1nax1vbl5cxqf8rxmmqfnjnrh36ic16yrbdmcqzgp1s9dkxn5qlf";
name = "kactivitymanagerd-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kactivitymanagerd-5.27.11.tar.xz";
sha256 = "1mawqh3vkbibyjijh5797fzj5ldadzvbmkck23v6s34516rpgfxj";
name = "kactivitymanagerd-5.27.11.tar.xz";
};
};
kde-cli-tools = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kde-cli-tools-5.27.10.tar.xz";
sha256 = "0gsdl33bnxfg2zf8dgbg3wk40g0j4qjjzk9mz6a43qghkj4nvakv";
name = "kde-cli-tools-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kde-cli-tools-5.27.11.tar.xz";
sha256 = "0mc2n91124cxgfhdz6l0x87665q2jamiq14qlzapynjflvzgh9ca";
name = "kde-cli-tools-5.27.11.tar.xz";
};
};
kde-gtk-config = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kde-gtk-config-5.27.10.tar.xz";
sha256 = "0swfyvq687ankny7qj7imj691c0mmgifwircxw4w7d9qn5832fvg";
name = "kde-gtk-config-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kde-gtk-config-5.27.11.tar.xz";
sha256 = "02hdy55vp6yvx8p877jdr5l5hs46k1rxrwj90m93m2vv0ysib2d4";
name = "kde-gtk-config-5.27.11.tar.xz";
};
};
kdecoration = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kdecoration-5.27.10.tar.xz";
sha256 = "1plxczgqj8g99jh1c8jiy5ji086xs4gv12halmfval4b4nw6r5k4";
name = "kdecoration-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kdecoration-5.27.11.tar.xz";
sha256 = "0f7qy5y0352ib6lqq8fv22y3f5zvfbzm9ydn8li3m4lk3531gi3i";
name = "kdecoration-5.27.11.tar.xz";
};
};
kdeplasma-addons = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kdeplasma-addons-5.27.10.tar.xz";
sha256 = "139y1zsw720j19bzx9m6xlf46n7i7sz12bcdkzs5b8wav0yyyr4y";
name = "kdeplasma-addons-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kdeplasma-addons-5.27.11.tar.xz";
sha256 = "016dsfg54gyjk4l0qr8s7rdmyhrvf7b2n9nfkx65cb5ja2x6h875";
name = "kdeplasma-addons-5.27.11.tar.xz";
};
};
kgamma = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kgamma-5.27.10.tar.xz";
sha256 = "0w7m9via36qk8s92mflh27ngjl1a0zj9im1f93jgrr2wldibp0fx";
name = "kgamma-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kgamma-5.27.11.tar.xz";
sha256 = "0y6n2dp0d7snj72vhm63612a5649qscfv7zcgvdmz3mb8h1xhm5n";
name = "kgamma-5.27.11.tar.xz";
};
};
kgamma5 = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kgamma5-5.27.10.tar.xz";
sha256 = "0w7m9via36qk8s92mflh27ngjl1a0zj9im1f93jgrr2wldibp0fx";
name = "kgamma5-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kgamma5-5.27.11.tar.xz";
sha256 = "0y6n2dp0d7snj72vhm63612a5649qscfv7zcgvdmz3mb8h1xhm5n";
name = "kgamma5-5.27.11.tar.xz";
};
};
khotkeys = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/khotkeys-5.27.10.tar.xz";
sha256 = "1rznv44ixb8l5flcc4rqnj1cfldna0ikbmg50lqznsvsnbkm2p34";
name = "khotkeys-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/khotkeys-5.27.11.tar.xz";
sha256 = "0na4h225yrjfivyw3d1c3p2db1djymyz3wahjgmlz1s6wml7qjcb";
name = "khotkeys-5.27.11.tar.xz";
};
};
kinfocenter = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kinfocenter-5.27.10.tar.xz";
sha256 = "04fa5bdw84k9ikv7chl1nrh857sb1gzq43f7rc7vb1q7hhs2lp6f";
name = "kinfocenter-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kinfocenter-5.27.11.tar.xz";
sha256 = "01qdyklvr1ff83zlpgysa7qlkzv9m6ff1hjjnxcp007k5cal79r9";
name = "kinfocenter-5.27.11.tar.xz";
};
};
kmenuedit = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kmenuedit-5.27.10.tar.xz";
sha256 = "1mr09zx37wky8cnf3r2mcvnl8nmhdi9rwdawsz946l66jrz0n28w";
name = "kmenuedit-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kmenuedit-5.27.11.tar.xz";
sha256 = "0mrvqif3k7lsvwn7slmm7b4k27v2km04r7v5jr9dsl865h3dwkch";
name = "kmenuedit-5.27.11.tar.xz";
};
};
kpipewire = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kpipewire-5.27.10.tar.xz";
sha256 = "1vn3g3rmgwyhrzg9hv7y9249v1gzwid7q43r3ndhdvz2k8baag62";
name = "kpipewire-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kpipewire-5.27.11.tar.xz";
sha256 = "1h2czy5qz026gqid2klfnqim4j1p5r526vrp44jxrf1fjhj0z6mc";
name = "kpipewire-5.27.11.tar.xz";
};
};
kscreen = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kscreen-5.27.10.tar.xz";
sha256 = "0g0wk17fs0rg7myfv6wf4asw0ahlwk245zwhj0i7lqg8nk6vz1w9";
name = "kscreen-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kscreen-5.27.11.tar.xz";
sha256 = "0ly7rd519glhv25a4dsxnnxjizqj6j62gf2kfrbcimg7yj77lzvy";
name = "kscreen-5.27.11.tar.xz";
};
};
kscreenlocker = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kscreenlocker-5.27.10.tar.xz";
sha256 = "129xrdlg86qlcp2ssk46xq1h2v00z4cqha2wc5fr3d65gyw80kfp";
name = "kscreenlocker-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kscreenlocker-5.27.11.tar.xz";
sha256 = "1pynfzms3iihfpzhlma7769zaaslk9jnfpgmhx6kah227gmcxf1k";
name = "kscreenlocker-5.27.11.tar.xz";
};
};
ksshaskpass = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/ksshaskpass-5.27.10.tar.xz";
sha256 = "0sp275r8jqlh1as47r0df3lli17lnw6m2h5j9k85hglwrgfyg3fk";
name = "ksshaskpass-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/ksshaskpass-5.27.11.tar.xz";
sha256 = "1fqrw6n9fggdz6rhg0985s6dg6x2h1a8i9zic5zsv24wnbqvsy4y";
name = "ksshaskpass-5.27.11.tar.xz";
};
};
ksystemstats = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/ksystemstats-5.27.10.tar.xz";
sha256 = "0f723yq5wyfxfj9cx13cpvxhq28blglzpsgdh843has3xlnxlpjs";
name = "ksystemstats-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/ksystemstats-5.27.11.tar.xz";
sha256 = "1mawh8icgrx18z7dyqzxxikl0z9fq87z5a1hx6ykimcri345z3ip";
name = "ksystemstats-5.27.11.tar.xz";
};
};
kwallet-pam = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kwallet-pam-5.27.10.tar.xz";
sha256 = "1yx18j9823xfqwrhzy3wnzqzw7zhdya9r3xh84qg9j9psqa1f6dc";
name = "kwallet-pam-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kwallet-pam-5.27.11.tar.xz";
sha256 = "0h6qmrl4qa5m4csqvn3rvkvlqi6aa606bnfaxx77kqc65a7vhlvz";
name = "kwallet-pam-5.27.11.tar.xz";
};
};
kwayland-integration = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kwayland-integration-5.27.10.tar.xz";
sha256 = "17xxlfs63sxcziv8nl50qlpcy8w0h259mblxxvx99cmnc930azgk";
name = "kwayland-integration-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kwayland-integration-5.27.11.tar.xz";
sha256 = "1dmwd3mw5s67pngb0gd6ki0vfzj0aamkyxiqagn06jkvwsxlfjcb";
name = "kwayland-integration-5.27.11.tar.xz";
};
};
kwin = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kwin-5.27.10.tar.xz";
sha256 = "1inswsd078lbbr7pwc84a3smhnn4i089c2f6lfsjrdh0b492anmq";
name = "kwin-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kwin-5.27.11.tar.xz";
sha256 = "0vxmj50wran5glgzs3cwpyjk9qwgwnzlmq0gb4kcsm5x54xv40l9";
name = "kwin-5.27.11.tar.xz";
};
};
kwrited = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/kwrited-5.27.10.tar.xz";
sha256 = "0haddznfis4fhz7nkjpqakxwk4zh50q7g578ksng17gbd2x9x8as";
name = "kwrited-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/kwrited-5.27.11.tar.xz";
sha256 = "18f054ya2kkxsivh5pdfl7ja5g26m337bkp65famwd94gsnca487";
name = "kwrited-5.27.11.tar.xz";
};
};
layer-shell-qt = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/layer-shell-qt-5.27.10.tar.xz";
sha256 = "1hn3sjimplsbl5afid0rwj08qqydb8hl6lyzhv0k6c0l5b7q1v8a";
name = "layer-shell-qt-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/layer-shell-qt-5.27.11.tar.xz";
sha256 = "0l6kfqg0v5gm4dp9xs5kvhw4ahx45gr8ymp3x7zsxj8r2q4j3hzl";
name = "layer-shell-qt-5.27.11.tar.xz";
};
};
libkscreen = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/libkscreen-5.27.10.tar.xz";
sha256 = "167z7bgqzjclqvcqiplgnpjxscl8m6fznly3c2spzg19i449zx97";
name = "libkscreen-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/libkscreen-5.27.11.tar.xz";
sha256 = "1m8xl9z000pjbgk18mpaz8cfpx7prvlfx8p5i0wk0clz90fz848d";
name = "libkscreen-5.27.11.tar.xz";
};
};
libksysguard = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/libksysguard-5.27.10.tar.xz";
sha256 = "1r9wzx0r1m3m2gb9k4xgwra84vc05lxyjilcns8j69yb52q37z0p";
name = "libksysguard-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/libksysguard-5.27.11.tar.xz";
sha256 = "0ncnrg5g1h7c1w66mks73md3fz5n4axmxw5jb85a3kg8vm6gbx11";
name = "libksysguard-5.27.11.tar.xz";
};
};
milou = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/milou-5.27.10.tar.xz";
sha256 = "1hqa25grsdmwr1y3fra6k09czrd6iagf9fqq85cxz6yc2s5xs6bw";
name = "milou-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/milou-5.27.11.tar.xz";
sha256 = "06iyb2zn19xz837wfz86xz5i3rkfkyvyy6xgywhjknvsvi06k08b";
name = "milou-5.27.11.tar.xz";
};
};
oxygen = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/oxygen-5.27.10.tar.xz";
sha256 = "02q95nx0706p9zhzbvx89ssk20mv7cizvqf0kyavn4gfwpizc5jv";
name = "oxygen-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/oxygen-5.27.11.tar.xz";
sha256 = "0w7mnh4ds7avv3xdgd4rb6b5612krbpzm8dx3fgpr2yp7c1lfbxs";
name = "oxygen-5.27.11.tar.xz";
};
};
oxygen-sounds = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/oxygen-sounds-5.27.10.tar.xz";
sha256 = "0py37frx59f3c4dxv3llsxky1cb03ynyqfphdx3ndsgfma8g1893";
name = "oxygen-sounds-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/oxygen-sounds-5.27.11.tar.xz";
sha256 = "1ppikl4b9rldj9d0cgn52vi7jhjrkqkj0blq7c11x52ibb2lk8kg";
name = "oxygen-sounds-5.27.11.tar.xz";
};
};
plank-player = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plank-player-5.27.10.tar.xz";
sha256 = "04idirgwrgys6p4b6l86z46lxjw9m1chi3fhp9yk4s52grdwx3ib";
name = "plank-player-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plank-player-5.27.11.tar.xz";
sha256 = "1sg6zk97qawpmizdykl6q27h5aha6cfj0qcqx4l606mcixf4gskc";
name = "plank-player-5.27.11.tar.xz";
};
};
plasma-bigscreen = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-bigscreen-5.27.10.tar.xz";
sha256 = "06420vpfjjg5zy21r6l6vdj2vs37aqy02hw351n5q3l2kc3snc9p";
name = "plasma-bigscreen-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-bigscreen-5.27.11.tar.xz";
sha256 = "0rv0hcff6z6xnxpx10by5mxmi6pm16wsa9akd9nf8m5jbm1b7r43";
name = "plasma-bigscreen-5.27.11.tar.xz";
};
};
plasma-browser-integration = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-browser-integration-5.27.10.tar.xz";
sha256 = "1kncrxz08w9fvvl2ag3gk3iw1gwbwm5kpc23iq6fypfjk6pbwzd1";
name = "plasma-browser-integration-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-browser-integration-5.27.11.tar.xz";
sha256 = "0k0jbhhvmgv1xqw8bz4kn7j1r8d69n1r1mbb1px8ibl6d4famrn4";
name = "plasma-browser-integration-5.27.11.tar.xz";
};
};
plasma-desktop = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-desktop-5.27.10.tar.xz";
sha256 = "17yhrz4i7d52ywgjcmcwbmgr67f8lyph72lrhlys4kfk474my0fy";
name = "plasma-desktop-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-desktop-5.27.11.tar.xz";
sha256 = "18s4zh8z1x0519xlh156xfay865hpyyhf172znvb9rsic9bix7yh";
name = "plasma-desktop-5.27.11.tar.xz";
};
};
plasma-disks = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-disks-5.27.10.tar.xz";
sha256 = "0ysqaky2bv7yk76swkrvyqcv2y41xr4m9b61bn5cj5lzb8a4v3qy";
name = "plasma-disks-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-disks-5.27.11.tar.xz";
sha256 = "1js1m46bh7hshcqx90b97rc5k9gk9rg4kyqc8h3bs767fbvp9l4q";
name = "plasma-disks-5.27.11.tar.xz";
};
};
plasma-firewall = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-firewall-5.27.10.tar.xz";
sha256 = "1k443ikbnny7xpi52xmbfnl5iy8alx7jnrx9grb6wlwghh06lnkm";
name = "plasma-firewall-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-firewall-5.27.11.tar.xz";
sha256 = "01f1429ks9rkh8wsmjw91ryrmifnsxq3q8mxawcwaswiykyykkil";
name = "plasma-firewall-5.27.11.tar.xz";
};
};
plasma-integration = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-integration-5.27.10.tar.xz";
sha256 = "1fzz581pfdzli62riw7mnfhqdp5pp929rkdw9g6il1c6hlgciwim";
name = "plasma-integration-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-integration-5.27.11.tar.xz";
sha256 = "0ydzy1fy6j6ais1y5zgfai6kxhinf8478jcsa7blg43061zsj55j";
name = "plasma-integration-5.27.11.tar.xz";
};
};
plasma-mobile = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-mobile-5.27.10.tar.xz";
sha256 = "0bjv890m9pf5f8zynhjnhhc3dbd5iz5fvhrsa7jjgds8v26gza1c";
name = "plasma-mobile-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-mobile-5.27.11.tar.xz";
sha256 = "167hm5p3bhpnf8c5xn4f4r6grldv31wcfbrpyfvkf4kv94pspsq4";
name = "plasma-mobile-5.27.11.tar.xz";
};
};
plasma-nano = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-nano-5.27.10.tar.xz";
sha256 = "170w5vf91dr8l3m6jljwrm1xlzha8nxixwnh9ic0j4kyy8dirxjb";
name = "plasma-nano-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-nano-5.27.11.tar.xz";
sha256 = "1yrgfhhj6vdc6ppnc8iys1b8wj3mfsf1p9w81d05fy5ka8ykjh0c";
name = "plasma-nano-5.27.11.tar.xz";
};
};
plasma-nm = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-nm-5.27.10.tar.xz";
sha256 = "1c6wngqmvdqkypifi5p0s0ax092wagiw6f7la3ipq4sfcakx6pdp";
name = "plasma-nm-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-nm-5.27.11.tar.xz";
sha256 = "0mlybqjnx9xgdmdbhzh65is62x8mwy6h8aw21n31g3nlwafq2spz";
name = "plasma-nm-5.27.11.tar.xz";
};
};
plasma-pa = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-pa-5.27.10.tar.xz";
sha256 = "021zdcqrhwmdkklzlv8hlnykycv2zfcwxn3qwviqf9a7y513fw8d";
name = "plasma-pa-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-pa-5.27.11.tar.xz";
sha256 = "1cr0lywxpidhmn0n62xsf4gs94g723rxv5lwdf26jfqnlwg6gaix";
name = "plasma-pa-5.27.11.tar.xz";
};
};
plasma-remotecontrollers = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-remotecontrollers-5.27.10.tar.xz";
sha256 = "0wzly5r4bhl1m661hww98008fpbgmz9ymsndj426xf3wnkgjc12i";
name = "plasma-remotecontrollers-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-remotecontrollers-5.27.11.tar.xz";
sha256 = "0w77bh27d948sznbs22j5jzlp06711x0g0v3sbm7cy3r6dw7rwsr";
name = "plasma-remotecontrollers-5.27.11.tar.xz";
};
};
plasma-sdk = {
version = "5.27.10";
version = "5.27.11.1";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-sdk-5.27.10.tar.xz";
sha256 = "08q1d74iqkg7aa1pvvk7p0gl4a8y6c0hf15kxlk032na1qfymagf";
name = "plasma-sdk-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-sdk-5.27.11.1.tar.xz";
sha256 = "0i073qv2drnjixv7p8kzzq05wggdsj2jdckhz1i46dwsd65s38lh";
name = "plasma-sdk-5.27.11.1.tar.xz";
};
};
plasma-systemmonitor = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-systemmonitor-5.27.10.tar.xz";
sha256 = "03laxgby4ms7rzxv96z0anqzh44vh88qn9g81gny2axljxbp18b4";
name = "plasma-systemmonitor-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-systemmonitor-5.27.11.tar.xz";
sha256 = "1zaxddrjhypf7pc40gyanymf0l5bbdijc3lf5bkl6p8vjaywpjha";
name = "plasma-systemmonitor-5.27.11.tar.xz";
};
};
plasma-thunderbolt = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-thunderbolt-5.27.10.tar.xz";
sha256 = "15k161q4qvx7zg9303074grc10z95q0137lk76mqqg9prgjmw92d";
name = "plasma-thunderbolt-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-thunderbolt-5.27.11.tar.xz";
sha256 = "1yw9bampcbjxqrxiri3ac933gk29rmn2jcfbxqsb5kcb6gbc5rsz";
name = "plasma-thunderbolt-5.27.11.tar.xz";
};
};
plasma-vault = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-vault-5.27.10.tar.xz";
sha256 = "0nqss7ijlamjzxycs5m8vsq61fxzhfk4wky1zv43ymdcc5bd1wbm";
name = "plasma-vault-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-vault-5.27.11.tar.xz";
sha256 = "1hkn4a61kwnhscl1cq3nza323p4l513d0c3va70vqa7psxwrsn8b";
name = "plasma-vault-5.27.11.tar.xz";
};
};
plasma-welcome = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-welcome-5.27.10.tar.xz";
sha256 = "008wga32j5f7cmwabxvlc3dzfj17fa0wkfj8dbvfd2gv34sf08w4";
name = "plasma-welcome-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-welcome-5.27.11.tar.xz";
sha256 = "02rjm23qqfwnasiqj4ksl4yayg0xijmdxzqqc4f5by17vplcmgng";
name = "plasma-welcome-5.27.11.tar.xz";
};
};
plasma-workspace = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-workspace-5.27.10.tar.xz";
sha256 = "0y4p6lk481byracfhvvqf7bbk13isl9m1zsl7prk0rqsqrjc2paj";
name = "plasma-workspace-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-workspace-5.27.11.tar.xz";
sha256 = "1pbsxssa8jgpy2kkhf43ck6gdkjr216b7ashy8sm7v306v29pmh7";
name = "plasma-workspace-5.27.11.tar.xz";
};
};
plasma-workspace-wallpapers = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plasma-workspace-wallpapers-5.27.10.tar.xz";
sha256 = "1l345rzg626krmriz54j480lh9zza7liq6bfz7vmifck558jv1l2";
name = "plasma-workspace-wallpapers-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plasma-workspace-wallpapers-5.27.11.tar.xz";
sha256 = "02p59m54g453pl3cjx932xpfhz73lc8yq1hxq9pzsyhjd3y2fg12";
name = "plasma-workspace-wallpapers-5.27.11.tar.xz";
};
};
plymouth-kcm = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/plymouth-kcm-5.27.10.tar.xz";
sha256 = "10p6ikppr1vzafx2qvb4pmzkgpja2bnqp60np46q1nnajgng4w3z";
name = "plymouth-kcm-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/plymouth-kcm-5.27.11.tar.xz";
sha256 = "1m645zw0vi1zj6sqplc7x23ycwkh9x41nxq413njz5sgmb76k8ig";
name = "plymouth-kcm-5.27.11.tar.xz";
};
};
polkit-kde-agent = {
version = "1-5.27.10";
version = "1-5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/polkit-kde-agent-1-5.27.10.tar.xz";
sha256 = "1nwbiwwz5x1h4xhx021izrm685pq5bh9mi5v85x32s74hlkjm5d3";
name = "polkit-kde-agent-1-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/polkit-kde-agent-1-5.27.11.tar.xz";
sha256 = "06swprc498fjbk0aw2ac6x4g7sx5whzbaci12nwl068h9y4hisf9";
name = "polkit-kde-agent-1-5.27.11.tar.xz";
};
};
powerdevil = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/powerdevil-5.27.10.tar.xz";
sha256 = "1wf89sh8b7v6hhjkr8vf2q7qm3anv24n20n8wdh21pc0k30a7h86";
name = "powerdevil-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/powerdevil-5.27.11.tar.xz";
sha256 = "0wvmdjrmlphxx2jcabsnqzayz50chvrgxsp5ynw3kgdw0lpapli8";
name = "powerdevil-5.27.11.tar.xz";
};
};
qqc2-breeze-style = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/qqc2-breeze-style-5.27.10.tar.xz";
sha256 = "0fwbgfm8n79zslmm4ww177zlk7gjklhyj1h71kzmdb7p32z6z2ix";
name = "qqc2-breeze-style-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/qqc2-breeze-style-5.27.11.tar.xz";
sha256 = "03v1wdl3wq5xn185b28ljj62qggjllw6s8xzi91s0g3sxfvp3fgx";
name = "qqc2-breeze-style-5.27.11.tar.xz";
};
};
sddm-kcm = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/sddm-kcm-5.27.10.tar.xz";
sha256 = "1bgljl6ybm7bgz2brv2a6nq81nyv2fwrnd0psv2v5mw3pxvk3r43";
name = "sddm-kcm-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/sddm-kcm-5.27.11.tar.xz";
sha256 = "1h3lg25hrggwd8f3ivgndwd9vwkvhxh22jgfmsvjxqcv6n0zx6rv";
name = "sddm-kcm-5.27.11.tar.xz";
};
};
systemsettings = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/systemsettings-5.27.10.tar.xz";
sha256 = "0f8dhqnbix813fkwa03mzsfr0wsfmgb6kbgai63wv9g3rgr4fk5g";
name = "systemsettings-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/systemsettings-5.27.11.tar.xz";
sha256 = "0jlj3wcf3npwi83yhgczkz116p0fiwvgkwnk39zmdba4kqkj8pqg";
name = "systemsettings-5.27.11.tar.xz";
};
};
xdg-desktop-portal-kde = {
version = "5.27.10";
version = "5.27.11";
src = fetchurl {
url = "${mirror}/stable/plasma/5.27.10/xdg-desktop-portal-kde-5.27.10.tar.xz";
sha256 = "0azggffvjxzxs3qibfdv9y5aslxgfrrb1qcjh9r96wp2qgq1ywxx";
name = "xdg-desktop-portal-kde-5.27.10.tar.xz";
url = "${mirror}/stable/plasma/5.27.11/xdg-desktop-portal-kde-5.27.11.tar.xz";
sha256 = "1cyr2scjrdvx0x2qcpky7qr5rxxjlsavwvyjwajlfm0l3s5qjxin";
name = "xdg-desktop-portal-kde-5.27.11.tar.xz";
};
};
}

View File

@ -1,132 +0,0 @@
{ lib, stdenv, llvm_meta, fetch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
, buildLlvmTools
, fixDarwinDylibNames
, enableManpages ? false
}:
let
self = stdenv.mkDerivation ({
pname = "clang";
inherit version;
src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf";
inherit clang-tools-extra_src;
unpackPhase = ''
unpackFile $src
mv clang-* clang
sourceRoot=$PWD/clang
unpackFile ${clang-tools-extra_src}
mv clang-tools-extra-* $sourceRoot/tools/extra
substituteInPlace $sourceRoot/tools/extra/clangd/quality/CompletionModel.cmake \
--replace ' ''${CMAKE_SOURCE_DIR}/../clang-tools-extra' ' ''${CMAKE_SOURCE_DIR}/tools/extra'
'';
nativeBuildInputs = [ cmake python3 ]
++ lib.optional enableManpages python3.pkgs.sphinx
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = [ libxml2 libllvm ];
cmakeFlags = [
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
"-DSPHINX_OUTPUT_MAN=ON"
"-DSPHINX_OUTPUT_HTML=OFF"
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
"-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
];
patches = [
./purity.patch
# https://reviews.llvm.org/D51899
./gnu-install-dirs.patch
(substituteAll {
src = ../../common/clang/clang-11-15-LLVMgold-path.patch;
libllvmLibdir = "${libllvm.lib}/lib";
})
];
postPatch = ''
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
lib/Driver/ToolChains/*.cpp
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
'';
outputs = [ "out" "lib" "dev" "python" ];
postInstall = ''
ln -sv $out/bin/clang $out/bin/cpp
# Move libclang to 'lib' output
moveToOutput "lib/libclang.*" "$lib"
moveToOutput "lib/libclang-cpp.*" "$lib"
substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
--replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
--replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
mkdir -p $python/bin $python/share/{clang,scan-view}
mv $out/bin/{git-clang-format,scan-view} $python/bin
if [ -e $out/bin/set-xcode-analyzer ]; then
mv $out/bin/set-xcode-analyzer $python/bin
fi
mv $out/share/clang/*.py $python/share/clang
mv $out/share/scan-view/*.py $python/share/scan-view
rm $out/bin/c-index-test
patchShebangs $python/bin
mkdir -p $dev/bin
cp bin/clang-tblgen $dev/bin
'';
passthru = {
inherit libllvm;
isClang = true;
hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" ];
};
meta = llvm_meta // {
homepage = "https://clang.llvm.org/";
description = "A C language family frontend for LLVM";
longDescription = ''
The Clang project provides a language front-end and tooling
infrastructure for languages in the C language family (C, C++, Objective
C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
It aims to deliver amazingly fast compiles, extremely useful error and
warning messages and to provide a platform for building great source
level tools. The Clang Static Analyzer and clang-tidy are tools that
automatically find bugs in your code, and are great examples of the sort
of tools that can be built using the Clang frontend as a library to
parse C/C++ code.
'';
mainProgram = "clang";
};
} // lib.optionalAttrs enableManpages {
pname = "clang-manpages";
buildPhase = ''
make docs-clang-man
'';
installPhase = ''
mkdir -p $out/share/man/man1
# Manually install clang manpage
cp docs/man/*.1 $out/share/man/man1/
'';
outputs = [ "out" ];
doCheck = false;
meta = llvm_meta // {
description = "man page for Clang ${version}";
};
});
in self

View File

@ -1,6 +1,6 @@
{ lowPrio, newScope, pkgs, lib, stdenv, cmake
, preLibcCrossHeaders
, substitute, fetchFromGitHub, fetchpatch
, substitute, substituteAll, fetchFromGitHub, fetchpatch
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross
@ -56,7 +56,7 @@ let
then tools.bintools
else bootBintools;
in {
in rec {
libllvm = callPackage ./llvm {
inherit llvm_meta;
@ -66,7 +66,17 @@ let
# we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
llvm = tools.libllvm;
libclang = callPackage ./clang {
libclang = callPackage ../common/clang {
src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf";
patches = [
./clang/purity.patch
# https://reviews.llvm.org/D51899
./clang/gnu-install-dirs.patch
(substituteAll {
src = ../common/clang/clang-11-15-LLVMgold-path.patch;
libllvmLibdir = "${libllvm.lib}/lib";
})
];
inherit clang-tools-extra_src llvm_meta;
};

Some files were not shown because too many files have changed in this diff Show More