mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-21 11:34:13 +00:00
Merge master into staging-next
This commit is contained in:
commit
b7dcef0598
@ -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:
|
||||
|
||||
|
@ -5019,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";
|
||||
@ -8689,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";
|
||||
|
@ -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.
|
||||
|
165
nixos/modules/services/desktop-managers/lomiri.nix
Normal file
165
nixos/modules/services/desktop-managers/lomiri.nix
Normal 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;
|
||||
}
|
@ -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.
|
||||
'';
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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}
|
||||
'';
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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
281
nixos/tests/lomiri.nix
Normal 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")
|
||||
'';
|
||||
})
|
@ -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 ];
|
||||
|
||||
|
@ -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
|
||||
|
@ -17,7 +17,7 @@ buildGoModule rec {
|
||||
hash = "sha256-1hZ7yAKTvkk20ho+QOqFEtspBvFztAtfmITs2uxhdmQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-d38s5sSvENIou+rlphXIrrOcGOdsvkNaMJlhiXVWN6c=";
|
||||
vendorHash = "sha256-DFssAic2YtXNH1Jm6zCDv1yPNz3YUXaFLs7j7rNHhlE=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -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 ]
|
||||
|
@ -13,7 +13,7 @@ buildGoModule rec {
|
||||
|
||||
vendorHash = "sha256-8YcJXvR0cdL9PlP74Qh6uN2XZoN16sz/yeeZlBsk5N8=";
|
||||
|
||||
GOWORK = "off";
|
||||
env.GOWORK = "off";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
@ -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;
|
||||
|
@ -12,7 +12,7 @@ buildGoModule rec {
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-xNM4qmpv+wcoiGrQ585N3VoKW6tio0cdHmUHRl2Pvio=";
|
||||
vendorHash = "sha256-/qZB/GGEkoqRoNhEmZw9Q2lsUPZRg5/xVxWgdBZTMLk=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
|
||||
|
||||
|
@ -17,7 +17,7 @@ buildGoModule rec {
|
||||
sha256 = "sha256-DFrA4bx+wSOxmt1CVA1oNiYVmcWeW6wpfR5F1tnhyDY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9uuLidieBMoKz/FLcBnp9wenyveOIzB0IvRBRasulZk=";
|
||||
vendorHash = "sha256-mQdKw3DeBEkCOtV2/B5lUIHv5EBp+8QSxpA13nFxESw=";
|
||||
proxyVendor = true;
|
||||
|
||||
doCheck = false;
|
||||
|
@ -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";
|
||||
};
|
||||
})
|
||||
|
@ -11,7 +11,7 @@ buildGoModule rec {
|
||||
sha256 = "sha256-txbs1SzAaV1nCl104m0Ht5DwzCmK+sBDn4rZ1newdLc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-1nolJLWkArzSKf11fzlvvgiCnvMYSu5MHRNAn1lryms=";
|
||||
vendorHash = "sha256-QbjiQVclT8paEKYQmMwj5MLq40mAVh5Ji5VJJTOmEZI=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -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=";
|
||||
|
@ -15,7 +15,7 @@ buildGoModule rec {
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
GOWORK = "off";
|
||||
env.GOWORK = "off";
|
||||
|
||||
subPackages = [ "cmd/talosctl" ];
|
||||
|
||||
|
@ -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=",
|
||||
|
@ -22,7 +22,7 @@ buildGoModule rec {
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-rycAGqZhO48bPTFO2y2J1d16oon24sEEUns4EayWDvg=";
|
||||
vendorHash = "sha256-AHEhIWa6PP8f+hhIdY+0brLF2HYhvTal7qXfCwG9iyo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
scdoc
|
||||
|
@ -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=";
|
||||
};
|
||||
}
|
||||
|
@ -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}"]
|
||||
|
@ -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";
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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=";
|
||||
|
@ -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=";
|
||||
|
@ -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=";
|
||||
|
@ -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 {
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -23,7 +23,7 @@ buildGoModule rec{
|
||||
hash = "sha256-ruOhPWNs1WWM3r6X+6ch0HoDCu/a+IkBQiCr0Wh6yS8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-SiggDy6vc19yIw15g45yjl8gscE91zUoR6woECbAtR0=";
|
||||
vendorHash = "sha256-Juie/Hq3i6rvAK19x6ah3SCQJL0uCrmV9gvzHih3crY=";
|
||||
|
||||
subPackages = [
|
||||
"cmd/cli"
|
||||
|
@ -31,7 +31,7 @@ buildGoModule rec {
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-CtBwc5mcgLvl2Bvg5gI+ULJMQEEibx1aN3IpmRNUtwE=";
|
||||
vendorHash = "sha256-GvUUCQ2BPW0HlXZljBWJ2Wyys9OEIM55dEWAa6J19Zg=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -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]}
|
||||
|
@ -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; } {
|
||||
|
@ -20,7 +20,7 @@ buildGoModule {
|
||||
|
||||
modRoot = "go/cli/mcap";
|
||||
|
||||
GOWORK="off";
|
||||
env.GOWORK="off";
|
||||
|
||||
# copy the local versions of the workspace modules
|
||||
postConfigure = ''
|
||||
|
@ -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;
|
||||
|
38
pkgs/by-name/pa/pace/package.nix
Normal file
38
pkgs/by-name/pa/pace/package.nix
Normal 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";
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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=";
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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 = [
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
289
pkgs/desktops/lomiri/applications/lomiri/default.nix
Normal file
289
pkgs/desktops/lomiri/applications/lomiri/default.nix
Normal 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;
|
||||
};
|
||||
})
|
@ -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; {
|
||||
|
198
pkgs/desktops/lomiri/data/lomiri-session/default.nix
Normal file
198
pkgs/desktops/lomiri/data/lomiri-session/default.nix
Normal 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;
|
||||
};
|
||||
})
|
@ -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 { };
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 = ''
|
||||
|
@ -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 = {
|
||||
|
@ -1,139 +0,0 @@
|
||||
{ lib, stdenv, llvm_meta
|
||||
, monorepoSrc, runCommand
|
||||
, substituteAll, cmake, ninja, libxml2, libllvm, version, python3
|
||||
, buildLlvmTools
|
||||
, fixDarwinDylibNames
|
||||
, enableManpages ? false
|
||||
}:
|
||||
|
||||
let
|
||||
self = stdenv.mkDerivation (finalAttrs: rec {
|
||||
pname = "clang";
|
||||
inherit version;
|
||||
|
||||
src = runCommand "${pname}-src-${version}" {} ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/${pname} "$out"
|
||||
cp -r ${monorepoSrc}/clang-tools-extra "$out"
|
||||
'';
|
||||
|
||||
sourceRoot = "${src.name}/${pname}";
|
||||
|
||||
nativeBuildInputs = [ cmake ninja python3 ]
|
||||
++ lib.optional (lib.versionAtLeast version "18" && enableManpages) python3.pkgs.myst-parser
|
||||
++ lib.optional enableManpages python3.pkgs.sphinx
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
|
||||
|
||||
buildInputs = [ libxml2 libllvm ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang"
|
||||
"-DCLANGD_BUILD_XPC=OFF"
|
||||
"-DLLVM_ENABLE_RTTI=ON"
|
||||
"-DLLVM_INCLUDE_TESTS=OFF"
|
||||
] ++ 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.buildPlatform.canExecute stdenv.hostPlatform) [
|
||||
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
|
||||
"-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
|
||||
# Added in LLVM15:
|
||||
# `clang-tidy-confusable-chars-gen`: https://github.com/llvm/llvm-project/commit/c3574ef739fbfcc59d405985a3a4fa6f4619ecdb
|
||||
# `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7
|
||||
"-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen"
|
||||
"-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen"
|
||||
];
|
||||
|
||||
patches = [
|
||||
./purity.patch
|
||||
# https://reviews.llvm.org/D51899
|
||||
./gnu-install-dirs.patch
|
||||
../../common/clang/add-nostdlibinc-flag.patch
|
||||
(substituteAll {
|
||||
src = ../../common/clang/clang-at-least-16-LLVMgold-path.patch;
|
||||
libllvmLibdir = "${libllvm.lib}/lib";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
(cd tools && ln -s ../../clang-tools-extra extra)
|
||||
'' + 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 $dev/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/
|
||||
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
|
||||
rm $out/bin/c-index-test
|
||||
patchShebangs $python/bin
|
||||
|
||||
mkdir -p $dev/bin
|
||||
cp bin/{clang-tblgen,clang-tidy-confusable-chars-gen,clang-pseudo-gen} $dev/bin
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit libllvm;
|
||||
isClang = true;
|
||||
hardeningUnsupportedFlags = [
|
||||
"fortify3"
|
||||
];
|
||||
hardeningUnsupportedFlagsByTargetPlatform = targetPlatform:
|
||||
lib.optional (!(targetPlatform.isx86_64 || targetPlatform.isAarch64)) "zerocallusedregs"
|
||||
++ (finalAttrs.passthru.hardeningUnsupportedFlags or []);
|
||||
};
|
||||
|
||||
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";
|
||||
|
||||
ninjaFlags = [ "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
|
@ -411,7 +411,7 @@ backendStdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A compiler for NVIDIA GPUs, math libraries, and tools";
|
||||
description = "The deprecated runfile-based CUDAToolkit installation (a compiler for NVIDIA GPUs, math libraries, and tools)";
|
||||
homepage = "https://developer.nvidia.com/cuda-toolkit";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = licenses.nvidiaCuda;
|
||||
|
86
pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
Normal file
86
pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
lib,
|
||||
symlinkJoin,
|
||||
backendStdenv,
|
||||
cudaOlder,
|
||||
cudatoolkit-legacy-runfile,
|
||||
cudaVersion,
|
||||
cuda_cccl ? null,
|
||||
cuda_cudart ? null,
|
||||
cuda_cuobjdump ? null,
|
||||
cuda_cupti ? null,
|
||||
cuda_cuxxfilt ? null,
|
||||
cuda_gdb ? null,
|
||||
cuda_nvcc ? null,
|
||||
cuda_nvdisasm ? null,
|
||||
cuda_nvml_dev ? null,
|
||||
cuda_nvprune ? null,
|
||||
cuda_nvrtc ? null,
|
||||
cuda_nvtx ? null,
|
||||
cuda_profiler_api ? null,
|
||||
cuda_sanitizer_api ? null,
|
||||
libcublas ? null,
|
||||
libcufft ? null,
|
||||
libcurand ? null,
|
||||
libcusolver ? null,
|
||||
libcusparse ? null,
|
||||
libnpp ? null,
|
||||
}:
|
||||
|
||||
let
|
||||
getAllOutputs = p: [
|
||||
(lib.getBin p)
|
||||
(lib.getLib p)
|
||||
(lib.getDev p)
|
||||
];
|
||||
hostPackages = [
|
||||
cuda_cuobjdump
|
||||
cuda_gdb
|
||||
cuda_nvcc
|
||||
cuda_nvdisasm
|
||||
cuda_nvprune
|
||||
];
|
||||
targetPackages = [
|
||||
cuda_cccl
|
||||
cuda_cudart
|
||||
cuda_cupti
|
||||
cuda_cuxxfilt
|
||||
cuda_nvml_dev
|
||||
cuda_nvrtc
|
||||
cuda_nvtx
|
||||
cuda_profiler_api
|
||||
cuda_sanitizer_api
|
||||
libcublas
|
||||
libcufft
|
||||
libcurand
|
||||
libcusolver
|
||||
libcusparse
|
||||
libnpp
|
||||
];
|
||||
|
||||
# This assumes we put `cudatoolkit` in `buildInputs` instead of `nativeBuildInputs`:
|
||||
allPackages = (map (p: p.__spliced.buildHost or p) hostPackages) ++ targetPackages;
|
||||
in
|
||||
|
||||
if cudaOlder "11.4" then
|
||||
cudatoolkit-legacy-runfile
|
||||
else
|
||||
symlinkJoin rec {
|
||||
name = "cuda-merged-${cudaVersion}";
|
||||
version = cudaVersion;
|
||||
|
||||
paths = builtins.concatMap getAllOutputs allPackages;
|
||||
|
||||
passthru = {
|
||||
cc = lib.warn "cudaPackages.cudatoolkit is deprecated, refer to the manual and use splayed packages instead" backendStdenv.cc;
|
||||
lib = symlinkJoin {
|
||||
inherit name;
|
||||
paths = map (p: lib.getLib p) allPackages;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A wrapper substituting the deprecated runfile-based CUDA installation";
|
||||
license = licenses.nvidiaCuda;
|
||||
};
|
||||
}
|
@ -20,7 +20,7 @@ buildGoModule {
|
||||
|
||||
nativeBuildInputs = [ cmake ninja perl ];
|
||||
|
||||
vendorHash = "sha256-McSmG+fMO8/T/bJR6YAJDYw9pxsWJoj1hcSTPv/wMsI=";
|
||||
vendorHash = "sha256-074bgtoBRS3SOxLrwZbBdK1jFpdCvF6tRtU1CkrhoDY=";
|
||||
proxyVendor = true;
|
||||
|
||||
# hack to get both go and cmake configure phase
|
||||
|
@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
cmakeFlags = lib.optionals doCheck [ "-DBUILD_CPP_TEST=ON" ]
|
||||
++ lib.optionals cudaSupport [ "-DUSE_CUDA=1" "-DCMAKE_CXX_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/cc" ]
|
||||
++ lib.optionals cudaSupport [ "-DUSE_CUDA=1" "-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/cc" ]
|
||||
++ lib.optionals openclSupport [ "-DUSE_GPU=ON" ]
|
||||
++ lib.optionals mpiSupport [ "-DUSE_MPI=ON" ]
|
||||
++ lib.optionals hdfsSupport [
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, cmake
|
||||
, CoreServices
|
||||
, curlHTTP3
|
||||
}:
|
||||
|
||||
@ -18,6 +19,9 @@ stdenv.mkDerivation rec {
|
||||
outputs = [ "out" "dev" "doc" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_STATIC_LIB" false)
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, cmake
|
||||
, brotli, libev, nghttp3, quictls
|
||||
, CoreServices
|
||||
, withJemalloc ? false, jemalloc
|
||||
, curlHTTP3
|
||||
}:
|
||||
@ -20,7 +21,14 @@ stdenv.mkDerivation rec {
|
||||
outputs = [ "out" "dev" "doc" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ brotli libev nghttp3 quictls ] ++ lib.optional withJemalloc jemalloc;
|
||||
buildInputs = [
|
||||
brotli
|
||||
libev
|
||||
nghttp3
|
||||
quictls
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
] ++ lib.optional withJemalloc jemalloc;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_STATIC_LIB" false)
|
||||
|
@ -39,7 +39,7 @@ assert blas.implementation == "openblas" && lapack.implementation == "openblas";
|
||||
assert enablePython -> pythonPackages != null;
|
||||
|
||||
let
|
||||
inherit (cudaPackages) cudatoolkit;
|
||||
inherit (cudaPackages) backendStdenv cudatoolkit;
|
||||
inherit (cudaPackages.cudaFlags) cudaCapabilities;
|
||||
|
||||
version = "3.4.18";
|
||||
@ -241,7 +241,7 @@ stdenv.mkDerivation {
|
||||
(opencvFlag "TBB" enableTbb)
|
||||
] ++ lib.optionals enableCuda [
|
||||
"-DCUDA_FAST_MATH=ON"
|
||||
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
|
||||
"-DCUDA_HOST_COMPILER=${backendStdenv.cc}/bin/cc"
|
||||
"-DCUDA_NVCC_FLAGS=--expt-relaxed-constexpr"
|
||||
"-DCUDA_ARCH_BIN=${lib.concatStringsSep ";" cudaCapabilities}"
|
||||
"-DCUDA_ARCH_PTX=${lib.last cudaCapabilities}"
|
||||
|
@ -75,8 +75,8 @@ stdenv.mkDerivation rec {
|
||||
"-DUSE_CUDA=ON"
|
||||
# Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
|
||||
# https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
|
||||
"-DCMAKE_C_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/gcc"
|
||||
"-DCMAKE_CXX_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/g++"
|
||||
"-DCMAKE_C_COMPILER=${cudaPackages.backendStdenv.cc}/bin/gcc"
|
||||
"-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/g++"
|
||||
] ++ lib.optionals
|
||||
(cudaSupport
|
||||
&& lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
|
||||
|
@ -1,18 +1,35 @@
|
||||
{ lib, buildPythonPackage, fetchPypi }:
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ansicolor";
|
||||
version = "0.3.2";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "3b840a6b1184b5f1568635b1adab28147947522707d41ceba02d5ed0a0877279";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "numerodix";
|
||||
repo = "ansicolor";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-a/BAU42AfMR8C94GwmrLkvSvolFEjV0LbDypvS9UuOA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "ansicolor" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/numerodix/ansicolor/";
|
||||
description = "A library to produce ansi color output and colored highlighting and diffing";
|
||||
homepage = "https://github.com/numerodix/ansicolor/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
|
@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-ipware";
|
||||
version = "6.0.4";
|
||||
version = "6.0.5";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-YU0PCpEfinZeVbbTWLFxW7he62PR67d0R9CdZF8TQ+g=";
|
||||
hash = "sha256-s54nQDKH1r6wUT5pQCQBfbpY0Sn9QQoQFKyKFYTnP84=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ django ];
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mdformat-mkdocs";
|
||||
version = "2.0.7";
|
||||
version = "2.0.8";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "KyleKing";
|
||||
repo = "mdformat-mkdocs";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-8fatoXZTi7yQhbs95AN8japcPfbqcpjsDiLlqsG0QWI=";
|
||||
hash = "sha256-HBRhmCqi13D+y+Vp2F27twU2eaRmJTcAzGOPCWMDtZU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyprecice";
|
||||
version = "3.0.0.0";
|
||||
version = "3.1.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "precice";
|
||||
repo = "python-bindings";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-iW3Mll28Z3Ew+eIJxeF1HR7JhVhXs9FiYaAb5TwYSpg=";
|
||||
hash = "sha256-5K6oVBhR6mBdkyOb/Ec0qg9x63tkoTnLIrE8dz8oCtc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -10,12 +10,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qdldl";
|
||||
version = "0.1.7.post0";
|
||||
version = "0.1.7.post1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-80ahFMg0LubU29ZHHu8xQZn7Jo0797lYhco1H94rAj8=";
|
||||
hash = "sha256-eY2IwW4CU2rmXHHwa2Tj+/MbdNfke8EP+YFnaGMrOmQ=";
|
||||
};
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
|
@ -13,12 +13,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "yq";
|
||||
version = "3.2.3";
|
||||
version = "3.3.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-Kcj+HTa09kFj9NATFMauIXU5hw9hAhbe5gJd+16vr7E=";
|
||||
hash = "sha256-0qtWLxGx4OW5ZUubBtQ/iiBSacx72izgdzJfWhI2Udw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -72,7 +72,9 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
"info" # Avoid `attribute 'info' missing` when using with wrapCC
|
||||
];
|
||||
|
||||
patches = extraPatches;
|
||||
patches = [
|
||||
./add-compression-to-clang-offload-bundler.patch
|
||||
] ++ extraPatches;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
@ -133,7 +135,14 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
"-DLLVM_EXTERNAL_LIT=${lit}/bin/.lit-wrapped"
|
||||
] ++ extraCMakeFlags;
|
||||
|
||||
postPatch = lib.optionalString finalAttrs.passthru.isLLVM ''
|
||||
prePatch = ''
|
||||
cd ../
|
||||
chmod -R u+w .
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
cd ${targetDir}
|
||||
'' + lib.optionalString finalAttrs.passthru.isLLVM ''
|
||||
patchShebangs lib/OffloadArch/make_generated_offload_arch_h.sh
|
||||
'' + lib.optionalString (buildTests && finalAttrs.passthru.isLLVM) ''
|
||||
# FileSystem permissions tests fail with various special bits
|
||||
@ -141,7 +150,7 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
rm unittests/Support/Path.cpp
|
||||
|
||||
substituteInPlace unittests/Support/CMakeLists.txt \
|
||||
--replace "Path.cpp" ""
|
||||
--replace-fail "Path.cpp" ""
|
||||
'' + extraPostPatch;
|
||||
|
||||
doCheck = buildTests;
|
||||
|
@ -2,13 +2,14 @@
|
||||
, callPackage
|
||||
, rocmUpdateScript
|
||||
, llvm
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
callPackage ../base.nix rec {
|
||||
inherit stdenv rocmUpdateScript;
|
||||
targetName = "clang-unwrapped";
|
||||
targetDir = "clang";
|
||||
extraBuildInputs = [ llvm ];
|
||||
extraBuildInputs = [ llvm makeWrapper ];
|
||||
|
||||
extraCMakeFlags = [
|
||||
"-DCLANG_INCLUDE_DOCS=ON"
|
||||
@ -20,7 +21,7 @@ callPackage ../base.nix rec {
|
||||
ln -s ../cmake/Modules/FindLibEdit.cmake cmake/modules
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)"
|
||||
--replace-fail "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)"
|
||||
|
||||
# `No such file or directory: '/build/source/clang/tools/scan-build/bin/scan-build'`
|
||||
rm test/Analysis/scan-build/*.test
|
||||
@ -41,6 +42,12 @@ callPackage ../base.nix rec {
|
||||
|
||||
extraPostInstall = ''
|
||||
mv bin/clang-tblgen $out/bin
|
||||
# add wrapper to compress embedded accelerator-specific code
|
||||
# this makes the output of composable_kernel significantly smaller right now
|
||||
# TODO: remove this once ROCm does it out of the box
|
||||
mv $out/bin/clang-offload-bundler $out/bin/clang-offload-bundler-unwrapped
|
||||
makeWrapper $out/bin/clang-offload-bundler-unwrapped $out/bin/clang-offload-bundler \
|
||||
--add-flags '-compress'
|
||||
'';
|
||||
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
@ -14,11 +14,11 @@ callPackage ../base.nix rec {
|
||||
# `Failed to match ... against ...` `Match value not within tolerance value of MPFR result:`
|
||||
# We need a better way, but I don't know enough sed magic and patching `CMakeLists.txt` isn't working...
|
||||
substituteInPlace ../libc/test/src/math/log10_test.cpp \
|
||||
--replace "i < N" "i < 0" \
|
||||
--replace "test(mpfr::RoundingMode::Nearest);" "" \
|
||||
--replace "test(mpfr::RoundingMode::Downward);" "" \
|
||||
--replace "test(mpfr::RoundingMode::Upward);" "" \
|
||||
--replace "test(mpfr::RoundingMode::TowardZero);" ""
|
||||
--replace-fail "i < N" "i < 0" \
|
||||
--replace-fail "test(mpfr::RoundingMode::Nearest);" "" \
|
||||
--replace-fail "test(mpfr::RoundingMode::Downward);" "" \
|
||||
--replace-fail "test(mpfr::RoundingMode::Upward);" "" \
|
||||
--replace-fail "test(mpfr::RoundingMode::TowardZero);" ""
|
||||
'';
|
||||
|
||||
checkTargets = [ "check-${targetName}" ];
|
||||
|
@ -1,36 +0,0 @@
|
||||
From f1d1e10ec7e1061bf0b90abbc1e298d9438a5e74 Mon Sep 17 00:00:00 2001
|
||||
From: Scott Linder <Scott.Linder@amd.com>
|
||||
Date: Mon, 11 Sep 2023 18:37:37 +0000
|
||||
Subject: [PATCH] [HeterogeneousDWARF] Update MLIR DI Metadata handling
|
||||
|
||||
Pass a default DW_MSPACE_LLVM_none to satisfy new API
|
||||
|
||||
Change-Id: I50df461f00b5510a715f55f61107122318102d22
|
||||
---
|
||||
lib/Target/LLVMIR/DebugTranslation.cpp | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/Target/LLVMIR/DebugTranslation.cpp b/lib/Target/LLVMIR/DebugTranslation.cpp
|
||||
index 2053f5bcef06aa6..635ee5d7e5fefdc 100644
|
||||
--- a/lib/Target/LLVMIR/DebugTranslation.cpp
|
||||
+++ b/lib/Target/LLVMIR/DebugTranslation.cpp
|
||||
@@ -148,7 +148,8 @@ llvm::DIDerivedType *DebugTranslation::translateImpl(DIDerivedTypeAttr attr) {
|
||||
/*File=*/nullptr, /*Line=*/0,
|
||||
/*Scope=*/nullptr, translate(attr.getBaseType()), attr.getSizeInBits(),
|
||||
attr.getAlignInBits(), attr.getOffsetInBits(),
|
||||
- /*DWARFAddressSpace=*/std::nullopt, /*Flags=*/llvm::DINode::FlagZero);
|
||||
+ /*DWARFAddressSpace=*/std::nullopt, llvm::dwarf::DW_MSPACE_LLVM_none,
|
||||
+ /*Flags=*/llvm::DINode::FlagZero);
|
||||
}
|
||||
|
||||
llvm::DIFile *DebugTranslation::translateImpl(DIFileAttr attr) {
|
||||
@@ -185,7 +186,8 @@ DebugTranslation::translateImpl(DILocalVariableAttr attr) {
|
||||
llvmCtx, translate(attr.getScope()), getMDStringOrNull(attr.getName()),
|
||||
translate(attr.getFile()), attr.getLine(), translate(attr.getType()),
|
||||
attr.getArg(),
|
||||
- /*Flags=*/llvm::DINode::FlagZero, attr.getAlignInBits(),
|
||||
+ /*Flags=*/llvm::DINode::FlagZero, llvm::dwarf::DW_MSPACE_LLVM_none,
|
||||
+ attr.getAlignInBits(),
|
||||
/*Annotations=*/nullptr);
|
||||
}
|
||||
|
@ -68,6 +68,6 @@ wrapCCWith rec {
|
||||
|
||||
# GPU compilation uses builtin `lld`
|
||||
substituteInPlace $out/bin/{clang,clang++} \
|
||||
--replace "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;"
|
||||
--replace-fail "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;"
|
||||
'';
|
||||
}
|
||||
|
@ -21,13 +21,13 @@ in callPackage ../base.nix rec {
|
||||
# `clspv` tests fail, unresolved calls
|
||||
extraPostPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
|
||||
--replace-fail "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
|
||||
"find_program( LLVM_CLANG clang PATHS \"${clang}/bin\" NO_DEFAULT_PATH )" \
|
||||
--replace "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
|
||||
--replace-fail "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
|
||||
"find_program( LLVM_SPIRV llvm-spirv PATHS \"${spirv}/bin\" NO_DEFAULT_PATH )" \
|
||||
--replace " spirv-mesa3d-" "" \
|
||||
--replace " spirv64-mesa3d-" "" \
|
||||
--replace "NOT \''${t} MATCHES" \
|
||||
--replace-fail " spirv-mesa3d-" "" \
|
||||
--replace-fail " spirv64-mesa3d-" "" \
|
||||
--replace-fail "NOT \''${t} MATCHES" \
|
||||
"NOT \''${ARCH} STREQUAL \"clspv\" AND NOT \''${ARCH} STREQUAL \"clspv64\" AND NOT \''${t} MATCHES"
|
||||
'';
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
, glslang
|
||||
, shaderc
|
||||
, lit
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
callPackage ../base.nix rec {
|
||||
@ -17,9 +18,12 @@ callPackage ../base.nix rec {
|
||||
targetDir = targetName;
|
||||
|
||||
# Fix `DebugTranslation.cpp:139:10: error: no matching function for call to 'get'`
|
||||
# We patch at a different source root, so we modify the patch and include it locally
|
||||
# https://github.com/ROCm/llvm-project/commit/f1d1e10ec7e1061bf0b90abbc1e298d9438a5e74.patch
|
||||
extraPatches = [ ./0000-mlir-fix-debugtranslation.patch ];
|
||||
extraPatches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ROCm/llvm-project/commit/f1d1e10ec7e1061bf0b90abbc1e298d9438a5e74.patch";
|
||||
hash = "sha256-3c91A9InMKxm+JcnWxoUeOU68y5I6w1AAXx6T9UByqI=";
|
||||
})
|
||||
];
|
||||
extraNativeBuildInputs = [ clr ];
|
||||
|
||||
extraBuildInputs = [
|
||||
@ -41,7 +45,7 @@ callPackage ../base.nix rec {
|
||||
extraPostPatch = ''
|
||||
# `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "EXISTS \''${UNITTEST_DIR}/googletest/include/gtest/gtest.h" "FALSE"
|
||||
--replace-fail "EXISTS \''${UNITTEST_DIR}/googletest/include/gtest/gtest.h" "FALSE"
|
||||
|
||||
# Mainly `No such file or directory`
|
||||
cat ${./1001-mlir-failing-tests.list} | xargs -d \\n rm
|
||||
|
@ -11,7 +11,7 @@ callPackage ../base.nix rec {
|
||||
extraPostPatch = ''
|
||||
# `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "NOT TARGET gtest" "FALSE"
|
||||
--replace-fail "NOT TARGET gtest" "FALSE"
|
||||
'';
|
||||
|
||||
checkTargets = [ "check-${targetName}" ];
|
||||
|
@ -16,7 +16,7 @@ buildGoModule rec {
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-bnQn6gdHhbUJUPWU3CKrw1sq5CL0Tkss4DINPwlsiPU=";
|
||||
vendorHash = "sha256-Ce2vXPKbyj517N3uJEGc00hCVZhcRrPvXUSuK+jjK3U=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -11,7 +11,7 @@ buildGoModule rec {
|
||||
sha256 = "sha256-nR9+6glX0oUJZq32XxyV4aVjfjVlNycZvMNaVHy+Q1s=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-iqoxlqSdHDfLlb1bcHLPAO2/wiwRpqFBIuoVi7lecKs=";
|
||||
vendorHash = "sha256-kFmoNd40YxUXVXk0F1Bf77KS5AM0jjOTwTjM5pYKkv4=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -17,7 +17,7 @@ buildGoModule rec {
|
||||
sha256 = "sha256-LLRNaY6ArUNoKSWSauCh2RKEGO5+G1OnoCAqMaAfOkY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-G6Patjrafg9VXXbisBDs/JVvy0SA6moTquKj66z9lzw=";
|
||||
vendorHash = "sha256-NVmgAlNQvRj/7poIEWjMyKw2qWMd/HwbdSFHpumnRlo=";
|
||||
proxyVendor = true;
|
||||
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
|
||||
|
@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fq";
|
||||
version = "0.10.0";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wader";
|
||||
repo = "fq";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-7Zprw1UgKEE8pEbmvR6LcT6Ng9oMRVDCy4HkgDNNYcU=";
|
||||
hash = "sha256-C9YvAHzpNwOVbFWxmdT5BUwsLug7k6ZLYboYJTgp82I=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-DodVm3Ga7+PD5ZORjVJcPruP8brT/aCGxCRlw3gVsJo=";
|
||||
vendorHash = "sha256-liNRrmcTbN9mLWvgcEFZbgBPAHFGCF/KMV6KwRBWgoU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -12,7 +12,7 @@ buildGoModule rec {
|
||||
};
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
vendorHash = "sha256-3otiRbswhENs/YvKKr+ZeodLWtK7fhCjEtlMDlkLOlY=";
|
||||
vendorHash = "sha256-q8wShIcVHZtpnhvZfsxiI5FLq0xneA8IBMDWd/vpz/0=";
|
||||
|
||||
subPackages = [ "cmd/migrate" ];
|
||||
|
||||
|
@ -21,7 +21,7 @@ buildGoModule rec {
|
||||
# avoid finding test and development commands
|
||||
modRoot = "kustomize";
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-6+8cwRH37lkQvnHBUlSqyNrZMfDpKbeUNJS4YMflBq0=";
|
||||
vendorHash = "sha256-inCBDIVdvkEdDJEwX7vdoWANk+f01VxhBGPKxrjR6Ao=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
@ -19,7 +19,7 @@ buildGoModule rec {
|
||||
|
||||
subPackages = [ "cmd/policy" ];
|
||||
# disable go workspaces
|
||||
GOWORK = "off";
|
||||
env.GOWORK = "off";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "protolint";
|
||||
version = "0.49.4";
|
||||
version = "0.49.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yoheimuta";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5z9R2LHwwb7aFMvJDYmMRny7lHG4JUSNhU1Hfm0Z1Mc=";
|
||||
hash = "sha256-wGAHc0I2ewXJeHPH2qO6V3ScixUAMIX5U7zCBi4fqew=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8yV/YyNSn6O2UjAQlzM90fOoi3TdxO+v4YPtmSQMFC0=";
|
||||
vendorHash = "sha256-0+GaTE/qKfPfZpkzUBglIXQoZD6fYkX6Z3QabkZ+IcE=";
|
||||
|
||||
# Something about the way we run tests causes issues. It doesn't happen
|
||||
# when using "go test" directly:
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-tally";
|
||||
version = "1.0.42";
|
||||
version = "1.0.43";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-xtnWk5+08fc/NR0kGIhdpvMLAjXKUwH0tCtUIMMRb5s=";
|
||||
hash = "sha256-LPqoq9iry8nNXphFdmjwepNB1bK8/myOEoT4UM0xF70=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fsKGd8W0Kdbjij8+44oxE6QiixUkwk0Mx3CefXMLSwg=";
|
||||
cargoHash = "sha256-FU4NYa2S9x0IXhPtWM0PyOBCGCGHj80QR7DRuDgDYJY=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
|
||||
DiskArbitration
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-temp";
|
||||
version = "0.2.19";
|
||||
version = "0.2.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yozhgoor";
|
||||
repo = "cargo-temp";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vLD7M+Pg0BHJq9zDPeJLY+v/Vri/XtV3pQu0+ZE84Ew=";
|
||||
hash = "sha256-zyzzYftoMNPHvCtGYsxEiiWXd3vjWTfmiIpEJ86ac9c=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-NKT5AijwNm/BVhHGVAXq6sWBJYjSpq90TXHjlrihldo=";
|
||||
cargoHash = "sha256-qkYvgKTT4wdYBRTwtDiHYCEBtbNjr6CWQB2y/kL0f8Y=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
|
||||
|
@ -23,7 +23,7 @@ buildGoModule rec {
|
||||
hash = "sha256-MHwIRanmgpjTKM+ILSQheCd9+XUwVTCVrREqntxpv7Q=";
|
||||
} + "/v2";
|
||||
|
||||
vendorHash = "sha256-0cGmJEi7OfMZS7ObPBLHOVqKfvnlpHBiGRjSdV6wxE4=";
|
||||
vendorHash = "sha256-6QFnLuRnSzIqkQkK1qg7VBYxwjK8fSQWz5RxpuyutoY=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
, mesa-demos
|
||||
, pciutils
|
||||
, udev
|
||||
, vulkan-loader
|
||||
, libusb1
|
||||
|
||||
, msaClientID ? null
|
||||
@ -100,6 +101,7 @@ symlinkJoin {
|
||||
glfw
|
||||
openal
|
||||
stdenv.cc.cc.lib
|
||||
vulkan-loader # VulkanMod's lwjgl
|
||||
|
||||
# oshi
|
||||
udev
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ananicy";
|
||||
stdenv.mkDerivation {
|
||||
pname = "ananicy-rules-cachyos";
|
||||
version = "unstable-2024-04-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preBuild
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r * $out
|
||||
rm $out/README.md
|
||||
runHook postBuild
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
|
||||
description = "ananicy-cpp-rules for CachyOS ";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ artturin johnrtitor ];
|
||||
maintainers = with maintainers; [ artturin johnrtitor diniamo ];
|
||||
};
|
||||
}
|
||||
|
@ -36,25 +36,23 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = writeShellApplication {
|
||||
name = "raycast-update-script";
|
||||
runtimeInputs = [ curl jq common-updater-scripts ];
|
||||
text = ''
|
||||
set -eo pipefail
|
||||
url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
|
||||
version=$(echo "$url" | jq -r '.version')
|
||||
update-source-version raycast "$version" --file=./pkgs/os-specific/darwin/raycast/default.nix
|
||||
'';
|
||||
};
|
||||
};
|
||||
passthru.updateScript = lib.getExe (writeShellApplication {
|
||||
name = "raycast-update-script";
|
||||
runtimeInputs = [ curl jq common-updater-scripts ];
|
||||
text = ''
|
||||
set -eo pipefail
|
||||
url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
|
||||
version=$(echo "$url" | jq -r '.version')
|
||||
update-source-version raycast "$version" --file=./pkgs/os-specific/darwin/raycast/default.nix
|
||||
'';
|
||||
});
|
||||
|
||||
meta = with lib; {
|
||||
description = "Control your tools with a few keystrokes";
|
||||
homepage = "https://raycast.app/";
|
||||
license = with licenses; [ unfree ];
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = with maintainers; [ lovesegfault stepbrobd ];
|
||||
maintainers = with maintainers; [ lovesegfault stepbrobd donteatoreo ];
|
||||
platforms = [ "aarch64-darwin" "x86_64-darwin" ];
|
||||
};
|
||||
})
|
||||
|
@ -1,38 +1,43 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchFromGitLab
|
||||
, cmake
|
||||
, pkg-config
|
||||
, hostname
|
||||
, libusb1
|
||||
, libftdi1
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "fw-ectool";
|
||||
version = "unstable-2022-12-03";
|
||||
version = "0-unstable-2023-12-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.howett.net";
|
||||
owner = "DHowett";
|
||||
repo = "fw-ectool";
|
||||
rev = "54c140399bbc3e6a3dce6c9f842727c4128367be";
|
||||
hash = "sha256-2teJFz4zcA+USpbVPXMEIHLdmMLem8ik7YrmrSxr/n0=";
|
||||
repo = "ectool";
|
||||
rev = "3ebe7b8b713b2ebfe2ce92d48fd8d044276b2879";
|
||||
hash = "sha256-s6PrFPAL+XJAENqLw5oJqFmAf11tHOJ8h3F5l3pOlZ4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
hostname
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
patchShebangs util
|
||||
make out=out utils
|
||||
'';
|
||||
buildInputs = [
|
||||
libusb1
|
||||
libftdi1
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -D out/util/ectool $out/bin/ectool
|
||||
runHook preInstall
|
||||
install -Dm555 src/ectool "$out/bin/ectool"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "EC-Tool adjusted for usage with framework embedded controller";
|
||||
homepage = "https://github.com/DHowett/framework-ec";
|
||||
homepage = "https://gitlab.howett.net/DHowett/ectool";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.mkg20001 ];
|
||||
platforms = platforms.linux;
|
||||
|
@ -11,7 +11,7 @@ buildGoModule rec {
|
||||
hash = "sha256-RSug3YSiqYLGs05Bee4NoaoCyPvUZ7IqlKWI1hmxbiA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-XDm6LU9D/rVQHiko7EFpocv+IktGe6tQhJYRrOJxeSs=";
|
||||
vendorHash = "sha256-QsGfINktk+rBj4b5h+NBVS6XV1SVz+9fDL1vtUqcKEU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "xcaddy";
|
||||
version = "0.3.5";
|
||||
version = "0.4.0";
|
||||
|
||||
subPackages = [ "cmd/xcaddy" ];
|
||||
|
||||
@ -10,7 +10,7 @@ buildGoModule rec {
|
||||
owner = "caddyserver";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XxklyOaKFPyWFabodNCcV1NnaPWS0AQ2Sj89ZZ5hJbk=";
|
||||
hash = "sha256-wzX6+O7hN8x3DDkTdNMBuWTCY8dp1gGrF2TW1d07PEc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -24,7 +24,7 @@ buildGoModule rec {
|
||||
"-X github.com/caddyserver/xcaddy/cmd.customVersion=v${version}"
|
||||
];
|
||||
|
||||
vendorHash = "sha256-RpbnoXyTrqGOI7DpgkO+J47P17T4QCVvM1CfS6kRO9Y=";
|
||||
vendorHash = "sha256-7yd/6h1DKw7X/1NbHtr2vbpyapF81HPmDm7O4oV5nlc=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/caddyserver/xcaddy";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user