Merge master into staging-next
This commit is contained in:
+7
-12
@@ -229,6 +229,7 @@ lib.mapAttrs mkLicense ({
|
||||
};
|
||||
|
||||
bsl11 = {
|
||||
spdxId = "BUSL-1.1";
|
||||
fullName = "Business Source License 1.1";
|
||||
url = "https://mariadb.com/bsl11";
|
||||
free = false;
|
||||
@@ -826,11 +827,6 @@ lib.mapAttrs mkLicense ({
|
||||
fullName = "PNG Reference Library version 2";
|
||||
};
|
||||
|
||||
libssh2 = {
|
||||
fullName = "libssh2 License";
|
||||
url = "https://www.libssh2.org/license.html";
|
||||
};
|
||||
|
||||
libtiff = {
|
||||
spdxId = "libtiff";
|
||||
fullName = "libtiff License";
|
||||
@@ -872,8 +868,6 @@ lib.mapAttrs mkLicense ({
|
||||
url = "https://opensource.org/licenses/MirOS";
|
||||
};
|
||||
|
||||
# spdx.org does not (yet) differentiate between the X11 and Expat versions
|
||||
# for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions
|
||||
mit = {
|
||||
spdxId = "MIT";
|
||||
fullName = "MIT License";
|
||||
@@ -884,6 +878,12 @@ lib.mapAttrs mkLicense ({
|
||||
fullName = "feh License";
|
||||
};
|
||||
|
||||
mit-modern = {
|
||||
# Also known as Zsh license
|
||||
spdxId = "MIT-Modern-Variant";
|
||||
fullName = "MIT License Modern Variant";
|
||||
};
|
||||
|
||||
mitAdvertising = {
|
||||
spdxId = "MIT-advertising";
|
||||
fullName = "Enlightenment License (e16)";
|
||||
@@ -1316,11 +1316,6 @@ lib.mapAttrs mkLicense ({
|
||||
fullName = "zlib License";
|
||||
};
|
||||
|
||||
zsh = {
|
||||
url = "https://github.com/zsh-users/zsh/blob/master/LICENCE";
|
||||
fullName = "Zsh License";
|
||||
};
|
||||
|
||||
zpl20 = {
|
||||
spdxId = "ZPL-2.0";
|
||||
fullName = "Zope Public License 2.0";
|
||||
|
||||
@@ -20,11 +20,12 @@ in
|
||||
example = lib.literalExpression "with pkgs; [ ayatana-indicator-messages ]";
|
||||
description = ''
|
||||
List of packages containing Ayatana Indicator services
|
||||
that should be brought up by the SystemD "ayatana-indicators" user target.
|
||||
that should be brought up by a SystemD "ayatana-indicators" user target.
|
||||
|
||||
Packages specified here must have passthru.ayatana-indicators set correctly.
|
||||
|
||||
If, how, and where these indicators are displayed will depend on your DE.
|
||||
Which target they will be brought up by depends on the packages' passthru.ayatana-indicators.
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -39,16 +40,36 @@ in
|
||||
# libayatana-common's ayatana-indicators.target with explicit Wants & Before to bring up requested indicator services
|
||||
systemd.user.targets =
|
||||
let
|
||||
indicatorServices = lib.lists.flatten (
|
||||
map (pkg: (map (ind: "${ind}.service") pkg.passthru.ayatana-indicators)) cfg.packages
|
||||
);
|
||||
namesToServices = map (indicator: "${indicator}.service");
|
||||
indicatorServices =
|
||||
target:
|
||||
lib.lists.flatten (
|
||||
map (
|
||||
pkg:
|
||||
if lib.isList pkg.passthru.ayatana-indicators then
|
||||
# Old format, add to every target
|
||||
(lib.warn "${pkg.name} is using the old passthru.ayatana-indicators format, please update it!" (
|
||||
namesToServices pkg.passthru.ayatana-indicators
|
||||
))
|
||||
else
|
||||
# New format, filter by target being mentioned
|
||||
(namesToServices (
|
||||
builtins.filter (
|
||||
service:
|
||||
builtins.any (
|
||||
targetPrefix: "${targetPrefix}-indicators" == target
|
||||
) pkg.passthru.ayatana-indicators.${service}
|
||||
) (builtins.attrNames pkg.passthru.ayatana-indicators)
|
||||
))
|
||||
) cfg.packages
|
||||
);
|
||||
in
|
||||
lib.attrsets.mapAttrs
|
||||
(_: desc: {
|
||||
(name: desc: {
|
||||
description = "Target representing the lifecycle of the ${desc}. Each indicator should be bound to it in its individual service file";
|
||||
partOf = [ "graphical-session.target" ];
|
||||
wants = indicatorServices;
|
||||
before = indicatorServices;
|
||||
wants = indicatorServices name;
|
||||
before = indicatorServices name;
|
||||
})
|
||||
{
|
||||
ayatana-indicators = "Ayatana Indicators";
|
||||
|
||||
@@ -141,7 +141,7 @@ in {
|
||||
authelia = handleTest ./authelia.nix {};
|
||||
avahi = handleTest ./avahi.nix {};
|
||||
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
|
||||
ayatana-indicators = handleTest ./ayatana-indicators.nix {};
|
||||
ayatana-indicators = runTest ./ayatana-indicators.nix;
|
||||
babeld = handleTest ./babeld.nix {};
|
||||
bazarr = handleTest ./bazarr.nix {};
|
||||
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
|
||||
|
||||
@@ -1,116 +1,148 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: let
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
user = "alice";
|
||||
in {
|
||||
in
|
||||
{
|
||||
name = "ayatana-indicators";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
};
|
||||
|
||||
nodes.machine = { config, ... }: {
|
||||
imports = [
|
||||
./common/auto.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
nodes.machine =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/auto.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
inherit user;
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
inherit user;
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.mate.enable = true;
|
||||
};
|
||||
services.displayManager.defaultSession = lib.mkForce "mate";
|
||||
|
||||
services.ayatana-indicators = {
|
||||
enable = true;
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
ayatana-indicator-datetime
|
||||
ayatana-indicator-display
|
||||
ayatana-indicator-messages
|
||||
ayatana-indicator-power
|
||||
ayatana-indicator-session
|
||||
ayatana-indicator-sound
|
||||
]
|
||||
++ (with pkgs.lomiri; [
|
||||
lomiri-indicator-network
|
||||
telephony-service
|
||||
]);
|
||||
};
|
||||
|
||||
# Setup needed by some indicators
|
||||
|
||||
services.accounts-daemon.enable = true; # messages
|
||||
|
||||
hardware.pulseaudio.enable = true; # sound
|
||||
|
||||
# Lomiri-ish setup for Lomiri indicators
|
||||
# TODO move into a Lomiri module, once the package set is far enough for the DE to start
|
||||
|
||||
networking.networkmanager.enable = true; # lomiri-network-indicator
|
||||
# TODO potentially urfkill for lomiri-network-indicator?
|
||||
|
||||
services.dbus.packages = with pkgs.lomiri; [ libusermetrics ];
|
||||
|
||||
environment.systemPackages = with pkgs.lomiri; [ lomiri-schemas ];
|
||||
|
||||
services.telepathy.enable = true;
|
||||
|
||||
users.users.usermetrics = {
|
||||
group = "usermetrics";
|
||||
home = "/var/lib/usermetrics";
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
users.groups.usermetrics = { };
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.mate.enable = true;
|
||||
};
|
||||
services.displayManager.defaultSession = lib.mkForce "mate";
|
||||
|
||||
services.ayatana-indicators = {
|
||||
enable = true;
|
||||
packages = with pkgs; [
|
||||
ayatana-indicator-datetime
|
||||
ayatana-indicator-display
|
||||
ayatana-indicator-messages
|
||||
ayatana-indicator-power
|
||||
ayatana-indicator-session
|
||||
ayatana-indicator-sound
|
||||
] ++ (with pkgs.lomiri; [
|
||||
lomiri-indicator-network
|
||||
telephony-service
|
||||
]);
|
||||
};
|
||||
|
||||
# Setup needed by some indicators
|
||||
|
||||
services.accounts-daemon.enable = true; # messages
|
||||
|
||||
hardware.pulseaudio.enable = true; # sound
|
||||
|
||||
# Lomiri-ish setup for Lomiri indicators
|
||||
# TODO move into a Lomiri module, once the package set is far enough for the DE to start
|
||||
|
||||
networking.networkmanager.enable = true; # lomiri-network-indicator
|
||||
# TODO potentially urfkill for lomiri-network-indicator?
|
||||
|
||||
services.dbus.packages = with pkgs.lomiri; [
|
||||
libusermetrics
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs.lomiri; [
|
||||
lomiri-schemas
|
||||
];
|
||||
|
||||
services.telepathy.enable = true;
|
||||
|
||||
users.users.usermetrics = {
|
||||
group = "usermetrics";
|
||||
home = "/var/lib/usermetrics";
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
users.groups.usermetrics = { };
|
||||
};
|
||||
|
||||
# TODO session indicator starts up in a semi-broken state, but works fine after a restart. maybe being started before graphical session is truly up & ready?
|
||||
testScript = { nodes, ... }: let
|
||||
runCommandOverServiceList = list: command:
|
||||
lib.strings.concatMapStringsSep "\n" command list;
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
runCommandOverServiceList = list: command: lib.strings.concatMapStringsSep "\n" command list;
|
||||
|
||||
runCommandOverAyatanaIndicators = runCommandOverServiceList
|
||||
(builtins.filter
|
||||
(service: !(lib.strings.hasPrefix "lomiri" service || lib.strings.hasPrefix "telephony-service" service))
|
||||
nodes.machine.systemd.user.targets."ayatana-indicators".wants);
|
||||
runCommandOverAyatanaIndicators = runCommandOverServiceList
|
||||
nodes.machine.systemd.user.targets.ayatana-indicators.wants;
|
||||
|
||||
runCommandOverAllIndicators = runCommandOverServiceList
|
||||
nodes.machine.systemd.user.targets."ayatana-indicators".wants;
|
||||
in ''
|
||||
start_all()
|
||||
machine.wait_for_x()
|
||||
runCommandOverLomiriIndicators = runCommandOverServiceList nodes.machine.systemd.user.targets.lomiri-indicators.wants;
|
||||
in
|
||||
''
|
||||
start_all()
|
||||
machine.wait_for_x()
|
||||
|
||||
# Desktop environment should reach graphical-session.target
|
||||
machine.wait_for_unit("graphical-session.target", "${user}")
|
||||
# Desktop environment should reach graphical-session.target
|
||||
machine.wait_for_unit("graphical-session.target", "${user}")
|
||||
|
||||
# MATE relies on XDG autostart to bring up the indicators.
|
||||
# Not sure *when* XDG autostart fires them up, and awaiting pgrep success seems to misbehave?
|
||||
machine.sleep(10)
|
||||
# MATE relies on XDG autostart to bring up the indicators.
|
||||
# Not sure *when* XDG autostart fires them up, and awaiting pgrep success seems to misbehave?
|
||||
machine.sleep(10)
|
||||
|
||||
# Now check if all indicators were brought up successfully, and kill them for later
|
||||
'' + (runCommandOverAyatanaIndicators (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
|
||||
machine.wait_until_succeeds("pgrep -u ${user} -f ${serviceExec}")
|
||||
machine.succeed("pkill -f ${serviceExec}")
|
||||
'')) + ''
|
||||
# Now check if all indicators were brought up successfully, and kill them for later
|
||||
''
|
||||
+ (runCommandOverAyatanaIndicators (
|
||||
service:
|
||||
let
|
||||
serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service;
|
||||
in
|
||||
''
|
||||
machine.wait_until_succeeds("pgrep -u ${user} -f ${serviceExec}")
|
||||
machine.succeed("pkill -f ${serviceExec}")
|
||||
''
|
||||
))
|
||||
+ ''
|
||||
|
||||
# Ayatana target is the preferred way of starting up indicators on SystemD session, the graphical session is responsible for starting this if it supports them.
|
||||
# Mate currently doesn't do this, so start it manually for checking (https://github.com/mate-desktop/mate-indicator-applet/issues/63)
|
||||
machine.systemctl("start ayatana-indicators.target", "${user}")
|
||||
machine.wait_for_unit("ayatana-indicators.target", "${user}")
|
||||
# Ayatana target is the preferred way of starting up indicators on SystemD session, the graphical session is responsible for starting this if it supports them.
|
||||
# Mate currently doesn't do this, so start it manually for checking (https://github.com/mate-desktop/mate-indicator-applet/issues/63)
|
||||
machine.systemctl("start ayatana-indicators.target", "${user}")
|
||||
machine.wait_for_unit("ayatana-indicators.target", "${user}")
|
||||
|
||||
# Let all indicator services do their startups, potential post-launch crash & restart cycles so we can properly check for failures
|
||||
# Not sure if there's a better way of awaiting this without false-positive potential
|
||||
machine.sleep(10)
|
||||
# Let all indicator services do their startups, potential post-launch crash & restart cycles so we can properly check for failures
|
||||
# Not sure if there's a better way of awaiting this without false-positive potential
|
||||
machine.sleep(10)
|
||||
|
||||
# Now check if all indicator services were brought up successfully
|
||||
'' + runCommandOverAllIndicators (service: ''
|
||||
machine.wait_for_unit("${service}", "${user}")
|
||||
'');
|
||||
})
|
||||
# Now check if all indicator services were brought up successfully
|
||||
''
|
||||
+ runCommandOverAyatanaIndicators (service: ''
|
||||
machine.wait_for_unit("${service}", "${user}")
|
||||
'')
|
||||
+ ''
|
||||
# Stop the target
|
||||
machine.systemctl("stop ayatana-indicators.target", "${user}")
|
||||
|
||||
# Let all indicator services do their shutdowns
|
||||
# Not sure if there's a better way of awaiting this without false-positive potential
|
||||
machine.sleep(10)
|
||||
|
||||
# Lomiri uses a different target, which launches a slightly different set of indicators
|
||||
machine.systemctl("start lomiri-indicators.target", "${user}")
|
||||
machine.wait_for_unit("lomiri-indicators.target", "${user}")
|
||||
|
||||
# Let all indicator services do their startups, potential post-launch crash & restart cycles so we can properly check for failures
|
||||
# Not sure if there's a better way of awaiting this without false-positive potential
|
||||
machine.sleep(10)
|
||||
|
||||
# Now check if all indicator services were brought up successfully
|
||||
''
|
||||
+ runCommandOverLomiriIndicators (service: ''
|
||||
machine.wait_for_unit("${service}", "${user}")
|
||||
'');
|
||||
}
|
||||
|
||||
+260
-59
@@ -38,6 +38,13 @@ in
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
def wait_for_text(text):
|
||||
"""
|
||||
Wait for on-screen text, and try to optimise retry count for slow hardware.
|
||||
"""
|
||||
machine.sleep(10)
|
||||
machine.wait_for_text(text)
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
@@ -47,12 +54,12 @@ in
|
||||
machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'")
|
||||
|
||||
# Start page shows current time
|
||||
machine.wait_for_text(r"(AM|PM)")
|
||||
wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_greeter_launched")
|
||||
|
||||
# Advance to login part
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_text("${description}")
|
||||
wait_for_text("${description}")
|
||||
machine.screenshot("lomiri_greeter_login")
|
||||
|
||||
# Login
|
||||
@@ -62,16 +69,16 @@ in
|
||||
# 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)")
|
||||
wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_launched")
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
||||
desktop = makeTest (
|
||||
desktop-basics = makeTest (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-desktop";
|
||||
name = "lomiri-desktop-basics";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
@@ -89,8 +96,6 @@ in
|
||||
|
||||
users.users.${user} = {
|
||||
inherit description password;
|
||||
# polkit agent test
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
|
||||
test-support.displayManager.auto = {
|
||||
@@ -128,15 +133,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
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}";
|
||||
@@ -205,6 +202,230 @@ in
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
def wait_for_text(text):
|
||||
"""
|
||||
Wait for on-screen text, and try to optimise retry count for slow hardware.
|
||||
"""
|
||||
machine.sleep(10)
|
||||
machine.wait_for_text(text)
|
||||
|
||||
def mouse_click(xpos, ypos):
|
||||
"""
|
||||
Move the mouse to a screen location and hit left-click.
|
||||
"""
|
||||
|
||||
# Need to reset to top-left, --absolute doesn't work?
|
||||
machine.execute("ydotool mousemove -- -10000 -10000")
|
||||
machine.sleep(2)
|
||||
|
||||
# Move
|
||||
machine.execute(f"ydotool mousemove -- {xpos} {ypos}")
|
||||
machine.sleep(2)
|
||||
|
||||
# Click (C0 - left button: down & up)
|
||||
machine.execute("ydotool click 0xC0")
|
||||
machine.sleep(2)
|
||||
|
||||
def open_starter():
|
||||
"""
|
||||
Open the starter, and ensure it's opened.
|
||||
"""
|
||||
|
||||
# Using the keybind has a chance of instantly closing the menu again? Just click the button
|
||||
mouse_click(20, 30)
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
# The session should start, and not be stuck in i.e. a crash loop
|
||||
with subtest("lomiri starts"):
|
||||
machine.wait_until_succeeds("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
|
||||
# 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
|
||||
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")
|
||||
wait_for_text(r"(${user}|machine)")
|
||||
machine.screenshot("terminal_opens")
|
||||
|
||||
# lomiri-terminal-app has a separate VM test to test its basic functionality
|
||||
|
||||
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")
|
||||
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")
|
||||
wait_for_text(r"(${user}|machine)")
|
||||
machine.screenshot("alacritty_opens")
|
||||
machine.send_key("alt-f4")
|
||||
|
||||
# Morph is how we go online
|
||||
with subtest("morph browser works"):
|
||||
open_starter()
|
||||
machine.send_chars("Morph\n")
|
||||
wait_for_text(r"(Bookmarks|address|site|visited any)")
|
||||
machine.screenshot("morph_open")
|
||||
|
||||
# morph-browser has a separate VM test to test its basic functionalities
|
||||
|
||||
machine.send_key("alt-f4")
|
||||
|
||||
# LSS provides DE settings
|
||||
with subtest("system settings open"):
|
||||
open_starter()
|
||||
machine.send_chars("System Settings\n")
|
||||
wait_for_text("Rotation Lock")
|
||||
machine.screenshot("settings_open")
|
||||
|
||||
# lomiri-system-settings has a separate VM test to test its basic functionalities
|
||||
|
||||
machine.send_key("alt-f4")
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
||||
desktop-appinteractions = makeTest (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-desktop-appinteractions";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/auto.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
virtualisation.memorySize = 2047;
|
||||
|
||||
users.users.${user} = {
|
||||
inherit description password;
|
||||
# polkit agent test
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
inherit user;
|
||||
};
|
||||
|
||||
# To control mouse via scripting
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.desktopManager.lomiri.enable = lib.mkForce true;
|
||||
services.displayManager.defaultSession = lib.mkForce "lomiri";
|
||||
|
||||
# Help with OCR
|
||||
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
|
||||
];
|
||||
};
|
||||
|
||||
# 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 wait_for_text(text):
|
||||
"""
|
||||
Wait for on-screen text, and try to optimise retry count for slow hardware.
|
||||
"""
|
||||
machine.sleep(10)
|
||||
machine.wait_for_text(text)
|
||||
|
||||
def toggle_maximise():
|
||||
"""
|
||||
Maximise the current window.
|
||||
@@ -252,20 +473,20 @@ in
|
||||
# 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)")
|
||||
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)")
|
||||
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
|
||||
wait_for_text(r"(/build/source|hub.cpp|handler.cpp|void|virtual|const)") # awaiting log messages from content-hub
|
||||
machine.send_key("ctrl-c")
|
||||
|
||||
# Doing this here, since we need an in-session shell & separately starting a terminal again wastes time
|
||||
@@ -282,40 +503,11 @@ in
|
||||
|
||||
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")
|
||||
|
||||
# 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")
|
||||
|
||||
# LSS provides DE settings
|
||||
with subtest("system settings open"):
|
||||
open_starter()
|
||||
machine.send_chars("System Settings\n")
|
||||
machine.wait_for_text("Rotation Lock")
|
||||
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
|
||||
@@ -331,7 +523,7 @@ in
|
||||
machine.send_key("tab")
|
||||
machine.send_key("tab")
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_text("Background image")
|
||||
wait_for_text("Background image")
|
||||
|
||||
# Try to load custom background
|
||||
machine.send_key("shift-tab")
|
||||
@@ -343,14 +535,14 @@ in
|
||||
machine.send_key("ret")
|
||||
|
||||
# Peers should be loaded
|
||||
machine.wait_for_text("Morph") # or Gallery, but Morph is already packaged
|
||||
wait_for_text("Morph") # or Gallery, but Morph is already packaged
|
||||
machine.screenshot("settings_content-hub_peers")
|
||||
|
||||
# Select Morph as content source
|
||||
mouse_click(370, 100)
|
||||
|
||||
# Expect Morph to be brought into the foreground, with its Downloads page open
|
||||
machine.wait_for_text("No downloads")
|
||||
wait_for_text("No downloads")
|
||||
|
||||
# If content-hub encounters a problem, it may have crashed the original application issuing the request.
|
||||
# Check that it's still alive
|
||||
@@ -403,6 +595,8 @@ in
|
||||
|
||||
# Help with OCR
|
||||
fonts.packages = [ pkgs.inconsolata ];
|
||||
|
||||
environment.systemPackages = with pkgs; [ qt5.qttools ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
@@ -410,6 +604,13 @@ in
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
def wait_for_text(text):
|
||||
"""
|
||||
Wait for on-screen text, and try to optimise retry count for slow hardware.
|
||||
"""
|
||||
machine.sleep(10)
|
||||
machine.wait_for_text(text)
|
||||
|
||||
def mouse_click(xpos, ypos):
|
||||
"""
|
||||
Move the mouse to a screen location and hit left-click.
|
||||
@@ -436,14 +637,14 @@ in
|
||||
# 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)")
|
||||
wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_launched")
|
||||
|
||||
# The ayatana indicators are an important part of the experience, and they hold the only graphical way of exiting the session.
|
||||
# There's a test app we could use that also displays their contents, but it's abit inconsistent.
|
||||
with subtest("ayatana indicators work"):
|
||||
mouse_click(735, 0) # the cog in the top-right, for the session indicator
|
||||
machine.wait_for_text(r"(Notifications|Rotation|Battery|Sound|Time|Date|System)")
|
||||
wait_for_text(r"(Notifications|Rotation|Battery|Sound|Time|Date|System)")
|
||||
machine.screenshot("indicators_open")
|
||||
|
||||
# Indicator order within the menus *should* be fixed based on per-indicator order setting
|
||||
@@ -457,32 +658,32 @@ in
|
||||
|
||||
with subtest("ayatana indicator display works"):
|
||||
# We start on this, don't go right
|
||||
machine.wait_for_text("Lock")
|
||||
wait_for_text("Lock")
|
||||
machine.screenshot("indicators_display")
|
||||
|
||||
with subtest("lomiri indicator network works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Flight|Wi-Fi)")
|
||||
wait_for_text(r"(Flight|Wi-Fi)")
|
||||
machine.screenshot("indicators_network")
|
||||
|
||||
with subtest("ayatana indicator sound works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Silent|Volume)")
|
||||
wait_for_text(r"(Silent|Volume)")
|
||||
machine.screenshot("indicators_sound")
|
||||
|
||||
with subtest("ayatana indicator power works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Charge|Battery settings)")
|
||||
wait_for_text(r"(Charge|Battery settings)")
|
||||
machine.screenshot("indicators_power")
|
||||
|
||||
with subtest("ayatana indicator datetime works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text("Time and Date Settings")
|
||||
wait_for_text("Time and Date Settings")
|
||||
machine.screenshot("indicators_timedate")
|
||||
|
||||
with subtest("ayatana indicator session works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text("Log Out")
|
||||
wait_for_text("Log Out")
|
||||
machine.screenshot("indicators_session")
|
||||
|
||||
# We should be able to log out and return to the greeter
|
||||
|
||||
@@ -99,6 +99,7 @@ mapAliases (with prev; {
|
||||
The_NERD_tree = nerdtree;
|
||||
open-browser = open-browser-vim;
|
||||
pathogen = vim-pathogen;
|
||||
peskcolor-vim = throw "peskcolor-vim has been removed: abandoned by upstream"; # Added 2024-08-23
|
||||
polyglot = vim-polyglot;
|
||||
prettyprint = vim-prettyprint;
|
||||
quickrun = vim-quickrun;
|
||||
|
||||
@@ -9233,18 +9233,6 @@ final: prev:
|
||||
meta.homepage = "https://github.com/folke/persistence.nvim/";
|
||||
};
|
||||
|
||||
peskcolor-vim = buildVimPlugin {
|
||||
pname = "peskcolor.vim";
|
||||
version = "2016-06-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "andsild";
|
||||
repo = "peskcolor.vim";
|
||||
rev = "cba4fc739bbebacd503158f6509d9c226651f363";
|
||||
sha256 = "15hw3casr5y3ckgcn6aq8vhk6g2hym41w51nvgf34hbj9fx1nvkq";
|
||||
};
|
||||
meta.homepage = "https://github.com/andsild/peskcolor.vim/";
|
||||
};
|
||||
|
||||
pest-vim = buildVimPlugin {
|
||||
pname = "pest.vim";
|
||||
version = "2024-04-25";
|
||||
|
||||
@@ -777,7 +777,6 @@ https://github.com/tmsvg/pear-tree/,,
|
||||
https://github.com/steelsojka/pears.nvim/,,
|
||||
https://github.com/olimorris/persisted.nvim/,HEAD,
|
||||
https://github.com/folke/persistence.nvim/,,
|
||||
https://github.com/andsild/peskcolor.vim/,,
|
||||
https://github.com/pest-parser/pest.vim/,HEAD,
|
||||
https://github.com/lifepillar/pgsql.vim/,,
|
||||
https://github.com/motus/pig.vim/,,
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
webrtc-audio-processing,
|
||||
zlib,
|
||||
|
||||
# for dhtnet
|
||||
expected-lite,
|
||||
|
||||
# for client
|
||||
cmake,
|
||||
git,
|
||||
@@ -65,14 +68,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jami";
|
||||
version = "20240627.0";
|
||||
version = "20240813.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.jami.net";
|
||||
owner = "savoirfairelinux";
|
||||
repo = "jami-client-qt";
|
||||
rev = "stable/${version}";
|
||||
hash = "sha256-aePF1c99ju9y7JEgC+F2BPfpSAZlLd5OI5Jm6i9VlQQ=";
|
||||
hash = "sha256-XRWbV1s87niwNiWf2KRpV+wUH6ptw3vnVXCEwqh2r7M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -128,16 +131,23 @@ stdenv.mkDerivation rec {
|
||||
|
||||
dhtnet = stdenv.mkDerivation {
|
||||
pname = "dhtnet";
|
||||
version = "unstable-2024-05-17";
|
||||
version = "unstable-2024-07-22";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.jami.net";
|
||||
owner = "savoirfairelinux";
|
||||
repo = "dhtnet";
|
||||
rev = "77331098ff663a5ac54fae7d0bedafe076c575a1";
|
||||
hash = "sha256-55LEnI1YgVujCtv1dGOFtJdvnzB2SKqwEptaHasZB7I=";
|
||||
rev = "cfe512b0632eea046f683b22e42d01eeb943d751";
|
||||
hash = "sha256-SGidaCi5z7hO0ePJIZIkcWAkb+cKsZTdksVS7ldpjME=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace dependencies/build.py \
|
||||
--replace-fail \
|
||||
"wget https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp -O" \
|
||||
"cp ${expected-lite}/include/nonstd/expected.hpp"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
|
||||
@@ -1,29 +1,30 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, ayatana-indicator-messages
|
||||
, cmake
|
||||
, dbus
|
||||
, dbus-test-runner
|
||||
, evolution-data-server
|
||||
, glib
|
||||
, gst_all_1
|
||||
, gtest
|
||||
, intltool
|
||||
, libaccounts-glib
|
||||
, libayatana-common
|
||||
, libical
|
||||
, libnotify
|
||||
, libuuid
|
||||
, lomiri
|
||||
, pkg-config
|
||||
, properties-cpp
|
||||
, python3
|
||||
, systemd
|
||||
, tzdata
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
ayatana-indicator-messages,
|
||||
cmake,
|
||||
dbus,
|
||||
dbus-test-runner,
|
||||
evolution-data-server,
|
||||
glib,
|
||||
gst_all_1,
|
||||
gtest,
|
||||
intltool,
|
||||
libaccounts-glib,
|
||||
libayatana-common,
|
||||
libical,
|
||||
libnotify,
|
||||
libuuid,
|
||||
lomiri,
|
||||
pkg-config,
|
||||
properties-cpp,
|
||||
python3,
|
||||
systemd,
|
||||
tzdata,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -36,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "AyatanaIndicators";
|
||||
repo = "ayatana-indicator-datetime";
|
||||
rev = finalAttrs.version;
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-lY49v2uZ7BawQoN/hmN6pbetHlSGjMHbS6S8Wl1bDmQ=";
|
||||
};
|
||||
|
||||
@@ -61,34 +62,35 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ayatana-indicator-messages
|
||||
evolution-data-server
|
||||
glib
|
||||
libaccounts-glib
|
||||
libayatana-common
|
||||
libical
|
||||
libnotify
|
||||
libuuid
|
||||
properties-cpp
|
||||
systemd
|
||||
] ++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
]) ++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-schemas
|
||||
lomiri-sounds
|
||||
lomiri-url-dispatcher
|
||||
]);
|
||||
buildInputs =
|
||||
[
|
||||
ayatana-indicator-messages
|
||||
evolution-data-server
|
||||
glib
|
||||
libaccounts-glib
|
||||
libayatana-common
|
||||
libical
|
||||
libnotify
|
||||
libuuid
|
||||
properties-cpp
|
||||
systemd
|
||||
]
|
||||
++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
])
|
||||
++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-schemas
|
||||
lomiri-sounds
|
||||
lomiri-url-dispatcher
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
dbus-test-runner
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
||||
tzdata
|
||||
];
|
||||
|
||||
@@ -109,13 +111,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
enableParallelChecking = false;
|
||||
|
||||
preCheck = ''
|
||||
export XDG_DATA_DIRS=${lib.strings.concatStringsSep ":" [
|
||||
# org.ayatana.common schema
|
||||
(glib.passthru.getSchemaDataDirPath libayatana-common)
|
||||
export XDG_DATA_DIRS=${
|
||||
lib.strings.concatStringsSep ":" [
|
||||
# org.ayatana.common schema
|
||||
(glib.passthru.getSchemaDataDirPath libayatana-common)
|
||||
|
||||
# loading EDS engines to handle ICS-loading
|
||||
edsDataDir
|
||||
]}
|
||||
# loading EDS engines to handle ICS-loading
|
||||
edsDataDir
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
# schema is already added automatically by wrapper, EDS needs to be added explicitly
|
||||
@@ -126,16 +130,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [
|
||||
"ayatana-indicator-datetime"
|
||||
];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-datetime = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests = {
|
||||
inherit (nixosTests) ayatana-indicators;
|
||||
};
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator providing clock and calendar";
|
||||
longDescription = ''
|
||||
This Ayatana Indicator provides a combined calendar, clock, alarm and
|
||||
@@ -143,8 +150,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,30 +1,31 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, gitUpdater
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
, accountsservice
|
||||
, cmake
|
||||
, cppcheck
|
||||
, dbus
|
||||
, geoclue2
|
||||
, glib
|
||||
, gsettings-desktop-schemas
|
||||
, gtest
|
||||
, intltool
|
||||
, libayatana-common
|
||||
, libgudev
|
||||
, libqtdbusmock
|
||||
, libqtdbustest
|
||||
, libsForQt5
|
||||
, lomiri
|
||||
, mate
|
||||
, pkg-config
|
||||
, properties-cpp
|
||||
, python3
|
||||
, systemd
|
||||
, wrapGAppsHook3
|
||||
, xsct
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
gitUpdater,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
accountsservice,
|
||||
cmake,
|
||||
cppcheck,
|
||||
dbus,
|
||||
geoclue2,
|
||||
glib,
|
||||
gsettings-desktop-schemas,
|
||||
gtest,
|
||||
intltool,
|
||||
libayatana-common,
|
||||
libgudev,
|
||||
libqtdbusmock,
|
||||
libqtdbustest,
|
||||
libsForQt5,
|
||||
lomiri,
|
||||
mate,
|
||||
pkg-config,
|
||||
properties-cpp,
|
||||
python3,
|
||||
systemd,
|
||||
wrapGAppsHook3,
|
||||
xsct,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -60,29 +61,30 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
# TODO Can we get around requiring every desktop's schemas just to avoid segfaulting on some systems?
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
geoclue2
|
||||
gsettings-desktop-schemas # gnome schemas
|
||||
glib
|
||||
libayatana-common
|
||||
libgudev
|
||||
libsForQt5.qtbase
|
||||
systemd
|
||||
] ++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-schemas # lomiri schema
|
||||
]) ++ (with mate; [
|
||||
mate.marco # marco schema
|
||||
mate.mate-settings-daemon # mate mouse schema
|
||||
]);
|
||||
buildInputs =
|
||||
[
|
||||
accountsservice
|
||||
geoclue2
|
||||
gsettings-desktop-schemas # gnome schemas
|
||||
glib
|
||||
libayatana-common
|
||||
libgudev
|
||||
libsForQt5.qtbase
|
||||
systemd
|
||||
]
|
||||
++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-schemas # lomiri schema
|
||||
])
|
||||
++ (with mate; [
|
||||
mate.marco # marco schema
|
||||
mate.mate-settings-daemon # mate mouse schema
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
cppcheck
|
||||
dbus
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
@@ -104,12 +106,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [ "ayatana-indicator-display" ];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-display = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests.vm = nixosTests.ayatana-indicators;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator for Display configuration";
|
||||
longDescription = ''
|
||||
This Ayatana Indicator is designed to be placed on the right side of a
|
||||
@@ -117,8 +124,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-display";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-display/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, testers
|
||||
, accountsservice
|
||||
, cmake
|
||||
, dbus-test-runner
|
||||
, withDocumentation ? true
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_45
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtest
|
||||
, gtk-doc
|
||||
, intltool
|
||||
, lomiri
|
||||
, pkg-config
|
||||
, python3
|
||||
, systemd
|
||||
, vala
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
testers,
|
||||
accountsservice,
|
||||
cmake,
|
||||
dbus-test-runner,
|
||||
withDocumentation ? true,
|
||||
docbook_xsl,
|
||||
docbook_xml_dtd_45,
|
||||
glib,
|
||||
gobject-introspection,
|
||||
gtest,
|
||||
gtk-doc,
|
||||
intltool,
|
||||
lomiri,
|
||||
pkg-config,
|
||||
python3,
|
||||
systemd,
|
||||
vala,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -30,49 +31,51 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "AyatanaIndicators";
|
||||
repo = "ayatana-indicator-messages";
|
||||
rev = finalAttrs.version;
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-D1181eD2mAVXEa7RLXXC4b2tVGrxbh0WWgtbC1anHH0=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
] ++ lib.optionals withDocumentation [
|
||||
"devdoc"
|
||||
];
|
||||
] ++ lib.optionals withDocumentation [ "devdoc" ];
|
||||
|
||||
postPatch = ''
|
||||
# Uses pkg_get_variable, cannot substitute prefix with that
|
||||
substituteInPlace data/CMakeLists.txt \
|
||||
--replace "\''${SYSTEMD_USER_DIR}" "$out/lib/systemd/user"
|
||||
postPatch =
|
||||
''
|
||||
# Uses pkg_get_variable, cannot substitute prefix with that
|
||||
substituteInPlace data/CMakeLists.txt \
|
||||
--replace "\''${SYSTEMD_USER_DIR}" "$out/lib/systemd/user"
|
||||
|
||||
# Bad concatenation
|
||||
substituteInPlace libmessaging-menu/messaging-menu.pc.in \
|
||||
--replace "\''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@' \
|
||||
--replace "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" '@CMAKE_INSTALL_FULL_INCLUDEDIR@'
|
||||
# Bad concatenation
|
||||
substituteInPlace libmessaging-menu/messaging-menu.pc.in \
|
||||
--replace "\''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@' \
|
||||
--replace "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" '@CMAKE_INSTALL_FULL_INCLUDEDIR@'
|
||||
|
||||
# Fix tests with gobject-introspection 1.80 not installing GLib introspection data
|
||||
substituteInPlace tests/CMakeLists.txt \
|
||||
--replace-fail 'GI_TYPELIB_PATH=\"' 'GI_TYPELIB_PATH=\"$GI_TYPELIB_PATH$\{GI_TYPELIB_PATH\:+\:\}'
|
||||
'' + lib.optionalString (!withDocumentation) ''
|
||||
sed -i CMakeLists.txt \
|
||||
'/add_subdirectory(doc)/d'
|
||||
'';
|
||||
# Fix tests with gobject-introspection 1.80 not installing GLib introspection data
|
||||
substituteInPlace tests/CMakeLists.txt \
|
||||
--replace-fail 'GI_TYPELIB_PATH=\"' 'GI_TYPELIB_PATH=\"$GI_TYPELIB_PATH$\{GI_TYPELIB_PATH\:+\:\}'
|
||||
''
|
||||
+ lib.optionalString (!withDocumentation) ''
|
||||
sed -i CMakeLists.txt \
|
||||
'/add_subdirectory(doc)/d'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
glib # For glib-compile-schemas
|
||||
intltool
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook3
|
||||
] ++ lib.optionals withDocumentation [
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_45
|
||||
gtk-doc
|
||||
];
|
||||
nativeBuildInputs =
|
||||
[
|
||||
cmake
|
||||
glib # For glib-compile-schemas
|
||||
intltool
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook3
|
||||
]
|
||||
++ lib.optionals withDocumentation [
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_45
|
||||
gtk-doc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
@@ -83,10 +86,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
(python3.withPackages (ps: with ps; [
|
||||
pygobject3
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (
|
||||
ps: with ps; [
|
||||
pygobject3
|
||||
python-dbusmock
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
@@ -133,9 +138,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [
|
||||
"ayatana-indicator-messages"
|
||||
];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-messages = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests = {
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
vm = nixosTests.ayatana-indicators;
|
||||
@@ -143,18 +151,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator Messages Applet";
|
||||
longDescription = ''
|
||||
The -messages Ayatana System Indicator is the messages menu indicator for Unity7, MATE and Lomiri (optionally for
|
||||
others, e.g. XFCE, LXDE).
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-messages";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
pkgConfigModules = [
|
||||
"messaging-menu"
|
||||
];
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
pkgConfigModules = [ "messaging-menu" ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, gitUpdater
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
, cmake
|
||||
, dbus
|
||||
, dbus-test-runner
|
||||
, glib
|
||||
, gtest
|
||||
, intltool
|
||||
, libayatana-common
|
||||
, libnotify
|
||||
, librda
|
||||
, lomiri
|
||||
, pkg-config
|
||||
, python3
|
||||
, systemd
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
gitUpdater,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
cmake,
|
||||
dbus,
|
||||
dbus-test-runner,
|
||||
glib,
|
||||
gtest,
|
||||
intltool,
|
||||
libayatana-common,
|
||||
libnotify,
|
||||
librda,
|
||||
lomiri,
|
||||
pkg-config,
|
||||
python3,
|
||||
systemd,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -50,24 +51,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libayatana-common
|
||||
libnotify
|
||||
librda
|
||||
systemd
|
||||
] ++ (with lomiri; [
|
||||
cmake-extras
|
||||
deviceinfo
|
||||
lomiri-schemas
|
||||
lomiri-sounds
|
||||
]);
|
||||
buildInputs =
|
||||
[
|
||||
glib
|
||||
libayatana-common
|
||||
libnotify
|
||||
librda
|
||||
systemd
|
||||
]
|
||||
++ (with lomiri; [
|
||||
cmake-extras
|
||||
deviceinfo
|
||||
lomiri-schemas
|
||||
lomiri-sounds
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
@@ -87,12 +88,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [ "ayatana-indicator-power" ];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-power = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests.vm = nixosTests.ayatana-indicators;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator showing power state";
|
||||
longDescription = ''
|
||||
This Ayatana Indicator displays current power management information and
|
||||
@@ -100,8 +106,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-power";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-power/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, cmake
|
||||
, dbus
|
||||
, glib
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
, gtest
|
||||
, intltool
|
||||
, libayatana-common
|
||||
, librda
|
||||
, lomiri
|
||||
, mate
|
||||
, pkg-config
|
||||
, systemd
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
cmake,
|
||||
dbus,
|
||||
glib,
|
||||
gnome,
|
||||
gsettings-desktop-schemas,
|
||||
gtest,
|
||||
intltool,
|
||||
libayatana-common,
|
||||
librda,
|
||||
lomiri,
|
||||
mate,
|
||||
pkg-config,
|
||||
systemd,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -26,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "AyatanaIndicators";
|
||||
repo = "ayatana-indicator-session";
|
||||
rev = finalAttrs.version;
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-p4nu7ZgnEjnnxNqyZIg//YcssnQcCY7GFDbpGIu1dz0=";
|
||||
};
|
||||
|
||||
@@ -61,13 +62,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mate.mate-settings-daemon
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
];
|
||||
nativeCheckInputs = [ dbus ];
|
||||
|
||||
checkInputs = [
|
||||
gtest
|
||||
];
|
||||
checkInputs = [ gtest ];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
@@ -81,12 +78,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
enableParallelChecking = false;
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [ "ayatana-indicator-session" ];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-session = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests.vm = nixosTests.ayatana-indicators;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator showing session management, status and user switching";
|
||||
longDescription = ''
|
||||
This Ayatana Indicator is designed to be placed on the right side of a
|
||||
@@ -98,8 +100,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-session";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-session/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,30 +1,31 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, gitUpdater
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
, accountsservice
|
||||
, cmake
|
||||
, dbus
|
||||
, dbus-test-runner
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtest
|
||||
, intltool
|
||||
, libayatana-common
|
||||
, libgee
|
||||
, libnotify
|
||||
, libpulseaudio
|
||||
, libqtdbusmock
|
||||
, libqtdbustest
|
||||
, libsForQt5
|
||||
, libxml2
|
||||
, lomiri
|
||||
, pkg-config
|
||||
, python3
|
||||
, systemd
|
||||
, vala
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
gitUpdater,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
accountsservice,
|
||||
cmake,
|
||||
dbus,
|
||||
dbus-test-runner,
|
||||
glib,
|
||||
gobject-introspection,
|
||||
gtest,
|
||||
intltool,
|
||||
libayatana-common,
|
||||
libgee,
|
||||
libnotify,
|
||||
libpulseaudio,
|
||||
libqtdbusmock,
|
||||
libqtdbustest,
|
||||
libsForQt5,
|
||||
libxml2,
|
||||
lomiri,
|
||||
pkg-config,
|
||||
python3,
|
||||
systemd,
|
||||
vala,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -61,27 +62,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
glib
|
||||
gobject-introspection
|
||||
libayatana-common
|
||||
libgee
|
||||
libnotify
|
||||
libpulseaudio
|
||||
libxml2
|
||||
systemd
|
||||
] ++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-api
|
||||
lomiri-schemas
|
||||
]);
|
||||
buildInputs =
|
||||
[
|
||||
accountsservice
|
||||
glib
|
||||
gobject-introspection
|
||||
libayatana-common
|
||||
libgee
|
||||
libnotify
|
||||
libpulseaudio
|
||||
libxml2
|
||||
systemd
|
||||
]
|
||||
++ (with lomiri; [
|
||||
cmake-extras
|
||||
lomiri-api
|
||||
lomiri-schemas
|
||||
]);
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
@@ -105,12 +106,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [ "ayatana-indicator-sound" ];
|
||||
ayatana-indicators = {
|
||||
ayatana-indicator-sound = [
|
||||
"ayatana"
|
||||
"lomiri"
|
||||
];
|
||||
};
|
||||
tests.vm = nixosTests.ayatana-indicators;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Indicator for managing system sound";
|
||||
longDescription = ''
|
||||
Ayatana Indicator Sound that provides easy control of the PulseAudio
|
||||
@@ -118,8 +124,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-sound";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-sound/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = with lib; {
|
||||
description = "Open Source File Synchronization & Backup Software";
|
||||
homepage = "https://freefilesync.org";
|
||||
license = [ licenses.gpl3Only licenses.openssl licenses.curl licenses.libssh2 ];
|
||||
license = [ licenses.gpl3Only licenses.openssl licenses.curl licenses.bsd3 ];
|
||||
maintainers = with maintainers; [ wegank ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "misconfig-mapper";
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intigriti";
|
||||
repo = "misconfig-mapper";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-VKjzHPLyBuV+SiHs4kA6ZWq0g5dEwJsnFCG2Dl8YVDk=";
|
||||
hash = "sha256-1ggiNO5ZYYmV44ub80IpzsHCcsEYhRlWcZtX012hJxQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-hx03o4LaqFNylStCkt/MFtgwvsOZFFcEC/c54g1kCNk=";
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "podman-tui";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman-tui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+YY7pq+jLwfdWBT5Ug5KtvMVy8DRWQ7kfC5U2bzYWAs=";
|
||||
hash = "sha256-Is4qpN6i8zBK0WNYbb/YhtzsrgOth9sQdUT81sx7i7g=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -263,7 +263,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit (nixosTests.lomiri) greeter desktop desktop-ayatana-indicators;
|
||||
inherit (nixosTests.lomiri)
|
||||
greeter
|
||||
desktop-basics
|
||||
desktop-appinteractions
|
||||
desktop-ayatana-indicators
|
||||
;
|
||||
};
|
||||
updateScript = gitUpdater { };
|
||||
greeter = linkFarm "lomiri-greeter" [
|
||||
|
||||
@@ -1,32 +1,34 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, testers
|
||||
, cmake
|
||||
, cmake-extras
|
||||
, coreutils
|
||||
, dbus
|
||||
, doxygen
|
||||
, gettext
|
||||
, glib
|
||||
, gmenuharness
|
||||
, gtest
|
||||
, intltool
|
||||
, libsecret
|
||||
, libqofono
|
||||
, libqtdbusmock
|
||||
, libqtdbustest
|
||||
, lomiri-api
|
||||
, lomiri-url-dispatcher
|
||||
, networkmanager
|
||||
, ofono
|
||||
, pkg-config
|
||||
, python3
|
||||
, qtdeclarative
|
||||
, qtbase
|
||||
, validatePkgConfig
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
fetchpatch,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
testers,
|
||||
cmake,
|
||||
cmake-extras,
|
||||
coreutils,
|
||||
dbus,
|
||||
doxygen,
|
||||
gettext,
|
||||
glib,
|
||||
gmenuharness,
|
||||
gtest,
|
||||
intltool,
|
||||
libsecret,
|
||||
libqofono,
|
||||
libqtdbusmock,
|
||||
libqtdbustest,
|
||||
lomiri-api,
|
||||
lomiri-url-dispatcher,
|
||||
networkmanager,
|
||||
ofono,
|
||||
pkg-config,
|
||||
python3,
|
||||
qtdeclarative,
|
||||
qtbase,
|
||||
validatePkgConfig,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -46,6 +48,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"doc"
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Move to new lomiri-indicators target
|
||||
# Remove when version > 1.0.2
|
||||
(fetchpatch {
|
||||
name = "0001-lomiri-indicator-network-lomiri-indicators-target.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/commit/b1e1f7da4b298964eba3caea37b1dace7a6182e9.patch";
|
||||
hash = "sha256-pZKpEn2OJtB1pG/U+6IjtPGiOchRDhdbBHEZbTW7Lx0=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Override original prefixes
|
||||
substituteInPlace data/CMakeLists.txt \
|
||||
@@ -78,11 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
qtbase
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
];
|
||||
nativeCheckInputs = [ (python3.withPackages (ps: with ps; [ python-dbusmock ])) ];
|
||||
|
||||
checkInputs = [
|
||||
gmenuharness
|
||||
@@ -109,9 +117,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [
|
||||
"lomiri-indicator-network"
|
||||
];
|
||||
ayatana-indicators = {
|
||||
lomiri-indicator-network = [ "lomiri" ];
|
||||
};
|
||||
tests = {
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
vm = nixosTests.ayatana-indicators;
|
||||
@@ -119,15 +127,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana indiator exporting the network settings menu through D-Bus";
|
||||
homepage = "https://gitlab.com/ubports/development/core/lomiri-indicator-network";
|
||||
changelog = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.lomiri.members;
|
||||
platforms = platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"lomiri-connectivity-qt1"
|
||||
];
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
pkgConfigModules = [ "lomiri-connectivity-qt1" ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,42 +1,45 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, ayatana-indicator-messages
|
||||
, bash
|
||||
, cmake
|
||||
, dbus
|
||||
, dbus-glib
|
||||
, dbus-test-runner
|
||||
, dconf
|
||||
, gettext
|
||||
, glib
|
||||
, gnome-keyring
|
||||
, history-service
|
||||
, libnotify
|
||||
, libphonenumber
|
||||
, libpulseaudio
|
||||
, libusermetrics
|
||||
, lomiri-url-dispatcher
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, protobuf
|
||||
, python3
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, qtfeedback
|
||||
, qtmultimedia
|
||||
, qtpim
|
||||
, telepathy
|
||||
, telepathy-glib
|
||||
, telepathy-mission-control
|
||||
, xvfb-run
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
fetchpatch,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
ayatana-indicator-messages,
|
||||
bash,
|
||||
cmake,
|
||||
dbus,
|
||||
dbus-glib,
|
||||
dbus-test-runner,
|
||||
dconf,
|
||||
gettext,
|
||||
glib,
|
||||
gnome-keyring,
|
||||
history-service,
|
||||
libnotify,
|
||||
libphonenumber,
|
||||
libpulseaudio,
|
||||
libusermetrics,
|
||||
lomiri-url-dispatcher,
|
||||
makeWrapper,
|
||||
pkg-config,
|
||||
protobuf,
|
||||
python3,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtfeedback,
|
||||
qtmultimedia,
|
||||
qtpim,
|
||||
telepathy,
|
||||
telepathy-glib,
|
||||
telepathy-mission-control,
|
||||
xvfb-run,
|
||||
}:
|
||||
|
||||
let
|
||||
replaceDbusService = pkg: name: "--replace \"\\\${DBUS_SERVICES_DIR}/${name}\" \"${pkg}/share/dbus-1/services/${name}\"";
|
||||
replaceDbusService =
|
||||
pkg: name:
|
||||
"--replace-fail \"\\\${DBUS_SERVICES_DIR}/${name}\" \"${pkg}/share/dbus-1/services/${name}\"";
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "telephony-service";
|
||||
@@ -65,23 +68,25 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Queries qmake for the QML installation path, which returns a reference to Qt5's build directory
|
||||
# Patch out failure if QMake is not found, since we don't use it
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${QMAKE_EXECUTABLE} -query QT_INSTALL_QML" "echo $out/${qtbase.qtQmlPrefix}" \
|
||||
--replace-fail 'QMAKE_EXECUTABLE STREQUAL "QMAKE_EXECUTABLE-NOTFOUND"' 'FALSE'
|
||||
postPatch =
|
||||
''
|
||||
# Queries qmake for the QML installation path, which returns a reference to Qt5's build directory
|
||||
# Patch out failure if QMake is not found, since we don't use it
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "\''${QMAKE_EXECUTABLE} -query QT_INSTALL_QML" "echo $out/${qtbase.qtQmlPrefix}" \
|
||||
--replace-fail 'QMAKE_EXECUTABLE STREQUAL "QMAKE_EXECUTABLE-NOTFOUND"' 'FALSE'
|
||||
|
||||
'' + lib.optionalString finalAttrs.finalPackage.doCheck ''
|
||||
substituteInPlace tests/common/dbus-services/CMakeLists.txt \
|
||||
${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.MissionControl5.service"} \
|
||||
${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.AccountManager.service"} \
|
||||
${replaceDbusService dconf "ca.desrt.dconf.service"}
|
||||
''
|
||||
+ lib.optionalString finalAttrs.finalPackage.doCheck ''
|
||||
substituteInPlace tests/common/dbus-services/CMakeLists.txt \
|
||||
${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.MissionControl5.service"} \
|
||||
${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.AccountManager.service"} \
|
||||
${replaceDbusService dconf "ca.desrt.dconf.service"}
|
||||
|
||||
substituteInPlace cmake/modules/GenerateTest.cmake \
|
||||
--replace '/usr/lib/dconf' '${lib.getLib dconf}/libexec' \
|
||||
--replace '/usr/lib/telepathy' '${lib.getLib telepathy-mission-control}/libexec'
|
||||
'';
|
||||
substituteInPlace cmake/modules/GenerateTest.cmake \
|
||||
--replace-fail '/usr/lib/dconf' '${lib.getLib dconf}/libexec' \
|
||||
--replace-fail '/usr/lib/telepathy' '${lib.getLib telepathy-mission-control}/libexec'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -106,10 +111,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libusermetrics
|
||||
lomiri-url-dispatcher
|
||||
protobuf
|
||||
(python3.withPackages (ps: with ps; [
|
||||
dbus-python
|
||||
pygobject3
|
||||
]))
|
||||
(python3.withPackages (
|
||||
ps: with ps; [
|
||||
dbus-python
|
||||
pygobject3
|
||||
]
|
||||
))
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtfeedback
|
||||
@@ -134,22 +141,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# These rely on libphonenumber reformatting inputs to certain results
|
||||
# Seem to be broken for a small amount of numbers, maybe libphonenumber version change?
|
||||
(lib.cmakeBool "SKIP_QML_TESTS" true)
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
|
||||
# Flaky, randomly failing to launch properly & stuck until test timeout
|
||||
# https://gitlab.com/ubports/development/core/lomiri-telephony-service/-/issues/70
|
||||
"^HandlerTest"
|
||||
"^OfonoAccountEntryTest"
|
||||
"^TelepathyHelperSetupTest"
|
||||
"^AuthHandlerTest"
|
||||
"^ChatManagerTest"
|
||||
"^AccountEntryTest"
|
||||
"^AccountEntryFactoryTest"
|
||||
"^PresenceRequestTest"
|
||||
"^CallEntryTest"
|
||||
]})")
|
||||
]))
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (
|
||||
lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E"
|
||||
(lib.strings.escapeShellArg "(${
|
||||
lib.concatStringsSep "|" [
|
||||
# Flaky, randomly failing to launch properly & stuck until test timeout
|
||||
# https://gitlab.com/ubports/development/core/lomiri-telephony-service/-/issues/70
|
||||
"^HandlerTest"
|
||||
"^OfonoAccountEntryTest"
|
||||
"^TelepathyHelperSetupTest"
|
||||
"^AuthHandlerTest"
|
||||
"^ChatManagerTest"
|
||||
"^AccountEntryTest"
|
||||
"^AccountEntryFactoryTest"
|
||||
"^PresenceRequestTest"
|
||||
"^CallEntryTest"
|
||||
]
|
||||
})")
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString ([
|
||||
@@ -165,7 +177,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
preCheck = ''
|
||||
export QT_QPA_PLATFORM=minimal
|
||||
export QT_PLUGIN_PATH=${lib.makeSearchPathOutput "bin" qtbase.qtPluginPrefix [ qtbase qtpim ]}
|
||||
export QT_PLUGIN_PATH=${
|
||||
lib.makeSearchPathOutput "bin" qtbase.qtPluginPrefix [
|
||||
qtbase
|
||||
qtpim
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
@@ -173,20 +190,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
# Still missing getprop from libhybris, we don't have it packaged (yet?)
|
||||
wrapProgram $out/bin/ofono-setup \
|
||||
--prefix PATH : ${lib.makeBinPath [ dbus dconf gettext glib telepathy-mission-control ]}
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
dbus
|
||||
dconf
|
||||
gettext
|
||||
glib
|
||||
telepathy-mission-control
|
||||
]
|
||||
}
|
||||
|
||||
# These SystemD services are referenced by the installed D-Bus services, but not part of the installation. Why?
|
||||
for service in telephony-service-{approver,indicator}; do
|
||||
install -Dm644 ../debian/telephony-service."$service".user.service $out/lib/systemd/user/"$service".service
|
||||
|
||||
# ofono-setup.service would be rovided by ubuntu-touch-session, we don't plan to package it
|
||||
# ofono-setup.service would be provided by ubuntu-touch-session, we don't plan to package it
|
||||
# Doesn't make sense to provide on non-Lomiri
|
||||
substituteInPlace $out/lib/systemd/user/"$service".service \
|
||||
--replace '/usr' "$out" \
|
||||
--replace 'Requires=ofono-setup.service' "" \
|
||||
--replace 'After=ofono-setup.service' "" \
|
||||
|
||||
sed -i $out/lib/systemd/user/"$service".service \
|
||||
-e '/ofono-setup.service/d'
|
||||
--replace-fail '/usr' "$out" \
|
||||
--replace-warn 'Requires=ofono-setup.service' "" \
|
||||
--replace-warn 'After=ofono-setup.service' "" \
|
||||
--replace-warn 'WantedBy=ayatana-indicators.target' 'WantedBy=lomiri-indicators.target'
|
||||
done
|
||||
|
||||
# Parses the call & SMS indicator desktop files & tries to find its own executable in PATH
|
||||
@@ -195,19 +219,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
ayatana-indicators = [
|
||||
"telephony-service-indicator"
|
||||
];
|
||||
ayatana-indicators = {
|
||||
telephony-service-indicator = [ "lomiri" ];
|
||||
};
|
||||
tests.vm = nixosTests.ayatana-indicators;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Backend dispatcher service for various mobile phone related operations";
|
||||
homepage = "https://gitlab.com/ubports/development/core/telephony-service";
|
||||
changelog = "https://gitlab.com/ubports/development/core/telephony-service/-/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.lomiri.members;
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
|
||||
description = "Client-side C library implementing the SSH2 protocol";
|
||||
homepage = "https://www.libssh2.org";
|
||||
platforms = platforms.all;
|
||||
license = with licenses; [ bsd3 libssh2 ];
|
||||
license = with licenses; [ bsd3 ];
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ mapAliases {
|
||||
inherit (pkgs) hyperpotamus; # added 2023-08-19
|
||||
immich = pkgs.immich-cli; # added 2023-08-19
|
||||
indium = throw "indium was removed because it was broken"; # added 2023-08-19
|
||||
inliner = throw "inliner was removed because it was abandoned upstream"; # added 2024-08-23
|
||||
ionic = throw "ionic was replaced by @ionic/cli"; # added 2023-08-19
|
||||
inherit (pkgs) jake; # added 2023-08-19
|
||||
inherit (pkgs) javascript-typescript-langserver; # added 2023-08-19
|
||||
|
||||
@@ -115,7 +115,6 @@
|
||||
, "he"
|
||||
, "hs-airdrop"
|
||||
, "ijavascript"
|
||||
, "inliner"
|
||||
, "imapnotify"
|
||||
, "insect"
|
||||
, "intelephense"
|
||||
|
||||
-220
@@ -72210,226 +72210,6 @@ in
|
||||
bypassCache = true;
|
||||
reconstructLock = true;
|
||||
};
|
||||
inliner = nodeEnv.buildNodePackage {
|
||||
name = "inliner";
|
||||
packageName = "inliner";
|
||||
version = "1.13.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/inliner/-/inliner-1.13.1.tgz";
|
||||
sha512 = "yoS+56puOu+Ug8FBRtxtTFnEn2NHqFs8BNQgSOvzh3J0ommbwNw8VKiaVNYjWK6fgPuByq95KyV0LC+qV9IwLw==";
|
||||
};
|
||||
dependencies = [
|
||||
sources."ajv-6.12.6"
|
||||
sources."align-text-0.1.4"
|
||||
sources."ansi-escapes-1.4.0"
|
||||
sources."ansi-regex-2.1.1"
|
||||
sources."ansi-styles-2.2.1"
|
||||
sources."argparse-1.0.10"
|
||||
sources."asap-2.0.6"
|
||||
sources."asn1-0.2.6"
|
||||
sources."assert-plus-1.0.0"
|
||||
sources."asynckit-0.4.0"
|
||||
sources."aws-sign2-0.7.0"
|
||||
sources."aws4-1.13.0"
|
||||
sources."bcrypt-pbkdf-1.0.2"
|
||||
sources."boolbase-1.0.0"
|
||||
sources."camelcase-1.2.1"
|
||||
sources."caseless-0.12.0"
|
||||
sources."center-align-0.1.3"
|
||||
sources."chalk-1.1.3"
|
||||
sources."charset-1.0.1"
|
||||
sources."cheerio-0.19.0"
|
||||
sources."clap-1.2.3"
|
||||
sources."cliui-2.1.0"
|
||||
sources."coa-1.0.4"
|
||||
sources."colors-1.1.2"
|
||||
sources."combined-stream-1.0.8"
|
||||
(sources."configstore-1.4.0" // {
|
||||
dependencies = [
|
||||
sources."uuid-2.0.3"
|
||||
];
|
||||
})
|
||||
sources."core-util-is-1.0.3"
|
||||
sources."css-select-1.0.0"
|
||||
sources."css-what-1.0.0"
|
||||
sources."csso-2.0.0"
|
||||
sources."dashdash-1.14.1"
|
||||
sources."debug-2.6.9"
|
||||
sources."decamelize-1.2.0"
|
||||
sources."deep-extend-0.6.0"
|
||||
sources."delayed-stream-1.0.0"
|
||||
sources."dom-serializer-0.1.1"
|
||||
sources."domelementtype-1.3.1"
|
||||
sources."domhandler-2.3.0"
|
||||
sources."domutils-1.4.3"
|
||||
(sources."duplexify-3.7.1" // {
|
||||
dependencies = [
|
||||
sources."isarray-1.0.0"
|
||||
sources."readable-stream-2.3.8"
|
||||
sources."safe-buffer-5.1.2"
|
||||
sources."string_decoder-1.1.1"
|
||||
];
|
||||
})
|
||||
sources."ecc-jsbn-0.1.2"
|
||||
sources."end-of-stream-1.4.4"
|
||||
sources."entities-1.1.2"
|
||||
sources."es6-promise-2.3.0"
|
||||
sources."escape-string-regexp-1.0.5"
|
||||
sources."esprima-2.7.3"
|
||||
sources."extend-3.0.2"
|
||||
sources."extsprintf-1.3.0"
|
||||
sources."fast-deep-equal-3.1.3"
|
||||
sources."fast-json-stable-stringify-2.1.0"
|
||||
sources."forever-agent-0.6.1"
|
||||
sources."form-data-2.3.3"
|
||||
sources."getpass-0.1.7"
|
||||
(sources."got-3.3.1" // {
|
||||
dependencies = [
|
||||
sources."object-assign-3.0.0"
|
||||
];
|
||||
})
|
||||
sources."graceful-fs-4.2.11"
|
||||
sources."har-schema-2.0.0"
|
||||
sources."har-validator-5.1.5"
|
||||
sources."has-ansi-2.0.0"
|
||||
(sources."htmlparser2-3.8.3" // {
|
||||
dependencies = [
|
||||
sources."domutils-1.5.1"
|
||||
sources."entities-1.0.0"
|
||||
];
|
||||
})
|
||||
sources."http-signature-1.2.0"
|
||||
sources."iconv-lite-0.4.24"
|
||||
sources."imurmurhash-0.1.4"
|
||||
sources."infinity-agent-2.0.3"
|
||||
sources."inherits-2.0.4"
|
||||
sources."ini-1.3.8"
|
||||
sources."is-buffer-1.1.6"
|
||||
sources."is-finite-1.1.0"
|
||||
sources."is-npm-1.0.0"
|
||||
sources."is-redirect-1.0.0"
|
||||
sources."is-stream-1.1.0"
|
||||
sources."is-typedarray-1.0.0"
|
||||
sources."isarray-0.0.1"
|
||||
sources."isstream-0.1.2"
|
||||
sources."js-yaml-3.6.1"
|
||||
sources."jsbn-0.1.1"
|
||||
sources."jschardet-1.6.0"
|
||||
sources."json-schema-0.4.0"
|
||||
sources."json-schema-traverse-0.4.1"
|
||||
sources."json-stringify-safe-5.0.1"
|
||||
sources."jsprim-1.4.2"
|
||||
sources."kind-of-3.2.2"
|
||||
sources."latest-version-1.0.1"
|
||||
sources."lazy-cache-1.0.4"
|
||||
sources."lodash-3.10.1"
|
||||
sources."lodash._arrayeach-3.0.0"
|
||||
sources."lodash._baseassign-3.2.0"
|
||||
sources."lodash._basecopy-3.0.1"
|
||||
sources."lodash._baseeach-3.0.4"
|
||||
sources."lodash._bindcallback-3.0.1"
|
||||
sources."lodash._createassigner-3.1.1"
|
||||
sources."lodash._getnative-3.9.1"
|
||||
sources."lodash._isiterateecall-3.0.9"
|
||||
sources."lodash.assign-3.2.0"
|
||||
sources."lodash.defaults-3.1.2"
|
||||
sources."lodash.foreach-3.0.3"
|
||||
sources."lodash.isarguments-3.1.0"
|
||||
sources."lodash.isarray-3.0.4"
|
||||
sources."lodash.keys-3.1.2"
|
||||
sources."lodash.restparam-3.6.1"
|
||||
sources."longest-1.0.1"
|
||||
sources."lowercase-keys-1.0.1"
|
||||
sources."mime-1.6.0"
|
||||
sources."mime-db-1.52.0"
|
||||
sources."mime-types-2.1.35"
|
||||
sources."minimist-1.2.8"
|
||||
sources."mkdirp-0.5.6"
|
||||
sources."ms-2.0.0"
|
||||
sources."nested-error-stacks-1.0.2"
|
||||
sources."nth-check-1.0.2"
|
||||
sources."oauth-sign-0.9.0"
|
||||
sources."object-assign-4.1.1"
|
||||
sources."once-1.4.0"
|
||||
sources."os-homedir-1.0.2"
|
||||
sources."os-tmpdir-1.0.2"
|
||||
sources."osenv-0.1.5"
|
||||
sources."package-json-1.2.0"
|
||||
sources."performance-now-2.1.0"
|
||||
sources."pinkie-2.0.4"
|
||||
sources."pinkie-promise-2.0.1"
|
||||
sources."prepend-http-1.0.4"
|
||||
sources."process-nextick-args-2.0.1"
|
||||
sources."promise-7.3.1"
|
||||
sources."psl-1.9.0"
|
||||
sources."punycode-2.3.1"
|
||||
sources."q-1.5.1"
|
||||
sources."qs-6.5.3"
|
||||
sources."rc-1.2.8"
|
||||
(sources."read-all-stream-3.1.0" // {
|
||||
dependencies = [
|
||||
sources."isarray-1.0.0"
|
||||
sources."readable-stream-2.3.8"
|
||||
sources."safe-buffer-5.1.2"
|
||||
sources."string_decoder-1.1.1"
|
||||
];
|
||||
})
|
||||
sources."readable-stream-1.1.14"
|
||||
sources."registry-url-3.1.0"
|
||||
sources."repeat-string-1.6.1"
|
||||
sources."repeating-1.1.3"
|
||||
sources."request-2.88.2"
|
||||
sources."right-align-0.1.3"
|
||||
sources."safe-buffer-5.2.1"
|
||||
sources."safer-buffer-2.1.2"
|
||||
sources."sax-1.2.4"
|
||||
sources."semver-5.7.2"
|
||||
sources."semver-diff-2.1.0"
|
||||
sources."slide-1.1.6"
|
||||
sources."source-map-0.5.7"
|
||||
sources."sprintf-js-1.0.3"
|
||||
sources."sshpk-1.18.0"
|
||||
sources."stream-shift-1.0.3"
|
||||
sources."string-length-1.0.1"
|
||||
sources."string_decoder-0.10.31"
|
||||
sources."strip-ansi-3.0.1"
|
||||
sources."strip-json-comments-2.0.1"
|
||||
sources."supports-color-2.0.0"
|
||||
sources."svgo-0.6.6"
|
||||
sources."then-fs-2.0.0"
|
||||
sources."timed-out-2.0.0"
|
||||
sources."tough-cookie-2.5.0"
|
||||
sources."tunnel-agent-0.6.0"
|
||||
sources."tweetnacl-0.14.5"
|
||||
sources."uglify-js-2.8.29"
|
||||
sources."uglify-to-browserify-1.0.2"
|
||||
sources."update-notifier-0.5.0"
|
||||
sources."uri-js-4.4.1"
|
||||
sources."util-deprecate-1.0.2"
|
||||
sources."uuid-3.4.0"
|
||||
(sources."verror-1.10.0" // {
|
||||
dependencies = [
|
||||
sources."core-util-is-1.0.2"
|
||||
];
|
||||
})
|
||||
sources."whet.extend-0.9.9"
|
||||
sources."window-size-0.1.0"
|
||||
sources."wordwrap-0.0.2"
|
||||
sources."wrappy-1.0.2"
|
||||
sources."write-file-atomic-1.3.4"
|
||||
sources."xdg-basedir-2.0.0"
|
||||
sources."yargs-3.10.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "Utility to inline images, CSS and JavaScript for a web page - useful for mobile sites";
|
||||
homepage = "http://github.com/remy/inliner";
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
reconstructLock = true;
|
||||
};
|
||||
imapnotify = nodeEnv.buildNodePackage {
|
||||
name = "imapnotify";
|
||||
packageName = "imapnotify";
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
lib,
|
||||
php,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -19,6 +20,14 @@ buildPecl {
|
||||
hash = "sha256-Ie31zak6Rqxm2+jGXWg6KN4czHe9e+190jZRQ5VoB+M=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with PHP 8.4.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/phpredis/phpredis/commit/a51215ce2b22bcd1f506780c35b6833471e0b8cb.patch";
|
||||
hash = "sha256-DoGPMyuI/IZdF+8jG5faoyG2aM+WDz0obH6S7HoOMX8=";
|
||||
})
|
||||
];
|
||||
|
||||
internalDeps = with php.extensions; [ session ];
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastembed";
|
||||
version = "0.3.4";
|
||||
version = "0.3.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@@ -33,7 +33,7 @@ buildPythonPackage rec {
|
||||
owner = "qdrant";
|
||||
repo = "fastembed";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-fsouRmBW56NJMsVsOaBUp920NVj/o0wd6DNsEd5qil8=";
|
||||
hash = "sha256-IdIGht4RcejXoBTJ8eHi5fNw2ffxIi/chuoQBNjA98g=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchpatch2,
|
||||
pythonOlder,
|
||||
hatchling,
|
||||
opentelemetry-api,
|
||||
@@ -20,6 +21,16 @@ buildPythonPackage {
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "grpcio-compatibility.patch";
|
||||
url = "https://github.com/open-telemetry/opentelemetry-python-contrib/commit/1c8d8ef5368c15d27c0973ce80787fd94c7b3176.patch";
|
||||
includes = [ "src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py" ];
|
||||
stripLen = 2;
|
||||
hash = "sha256-FH/VubT93kwh7nWQyPfECTIayMqWIjQYSEY5TER+4vY=";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-grpc";
|
||||
|
||||
build-system = [ hatchling ];
|
||||
@@ -53,7 +64,5 @@ buildPythonPackage {
|
||||
meta = opentelemetry-instrumentation.meta // {
|
||||
homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-grpc";
|
||||
description = "OpenTelemetry Instrumentation for grpc";
|
||||
# https://github.com/open-telemetry/opentelemetry-python-contrib/issues/2483
|
||||
broken = lib.versionAtLeast grpcio.version "1.63";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytouchlinesl";
|
||||
version = "0.1.1";
|
||||
version = "0.1.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
@@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "jnsgruk";
|
||||
repo = "pytouchlinesl";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-xyAy5QtNox1ZeXGQEYXWiEIQKSNQSnRTqr0kgQRmdcg=";
|
||||
hash = "sha256-TLKZ3mPNS7jRpbx3nllLlv5jPVQDLcTs44oJr6rNGeQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "quantile-forest";
|
||||
version = "1.3.8";
|
||||
version = "1.3.9";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "zillow";
|
||||
repo = "quantile-forest";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-/BY34xxEWpmUcbITBUX2nGZ8ZOjKDPwiA6Vui0CvsBc=";
|
||||
hash = "sha256-uvfY17ADyuLc3zx2Z2uEKOijqiuefiN2uSh0j+ZOz4w=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -14,21 +14,21 @@ let
|
||||
|
||||
channels = {
|
||||
stable = {
|
||||
version = "2.13.4";
|
||||
version = "2.13.5";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-vIqqVVJxKlxiKWsb9soy6yZQ9NQ8ZCjUqzu6k8m9MJE=";
|
||||
x86_64-darwin = "sha256-m7ZMVEaqIvmutTaQk3r8/p8h5zt4k/s34IdKjv89awA=";
|
||||
aarch64-linux = "sha256-fBHZijXeqRNr9zvmgaFhMaIIF9kgP7J32CwJgBvf9/0=";
|
||||
aarch64-darwin = "sha256-3QnxGDV4VRlxw3BayYD4akC6ZRjaUhEkptTGt3Zzecg=";
|
||||
x86_64-linux = "sha256-drg19B1YTjpLvKDGE8B38T08KyMvuoAse5hQzDaJn5k=";
|
||||
x86_64-darwin = "sha256-wj1zW6pJBx7eTFxdjBNiS6g+uixCUd1+O969K4JDj1k=";
|
||||
aarch64-linux = "sha256-z2iiz5RWoVsDkwKCvDYbFRsLyiIBhJKrCo6p8d4ImMg=";
|
||||
aarch64-darwin = "sha256-akuXh/izu9S9UQfIWhfdfcuez4FhZBz5PE5g9WmtpoQ=";
|
||||
};
|
||||
};
|
||||
mainline = {
|
||||
version = "2.14.1";
|
||||
version = "2.14.2";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-zOMcngzhG6SxN/Hjamf5g0Cb/nhrD3NcVKC8MdL2L80=";
|
||||
x86_64-darwin = "sha256-FzFrE3moll8D0of0Chs47XI9baAjFDzpcPJdpwteMpE=";
|
||||
aarch64-linux = "sha256-RsQ3sv5t+o6gObdG81hZ8dHng39qjlynENH30oAhZqM=";
|
||||
aarch64-darwin = "sha256-MPIm/d6fOe6DjVIewDeoxMs2OKz9urWgKMW6vmM9RGs=";
|
||||
x86_64-linux = "sha256-Qglz8F80QICwWOVwDELegewYHkPhhrTEuGKJgiw2mYg=";
|
||||
x86_64-darwin = "sha256-uyslQIAXOROSdtyiLSUcxEwYzK+iDup8/jRI74QGcEo=";
|
||||
aarch64-linux = "sha256-rzTBfO8+DSxJjhjIhl8qNji8bWe/EGZ4dG17D8wjlkA=";
|
||||
aarch64-darwin = "sha256-+lFWz6qDuhtDNn7DID/lmpqltpEwftVP3U+2CseVMnY=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
let
|
||||
version = "2.2.2";
|
||||
version = "2.2.3";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "go-toml";
|
||||
@@ -14,10 +14,10 @@ buildGoModule {
|
||||
owner = "pelletier";
|
||||
repo = "go-toml";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Z17977v2qMdf/e6iHEuRyCuC//HeFF8tkLt2P8Z/NT4=";
|
||||
sha256 = "sha256-+l89SvJ/4SxVItys1ROLOv2hZ5euU1MF21Yn0siQHUM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4t/ft3XTfc7yrsFVMSfjdCur8QULho3NI2ym6gqjexI=";
|
||||
vendorHash = "sha256-YkOcpzn5AKFMDWUYbKY8DzGMiIMSyaDfexFmXv5HNQI=";
|
||||
|
||||
excludedPackages = [
|
||||
"cmd/gotoml-test-decoder"
|
||||
|
||||
@@ -16,18 +16,23 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nfd";
|
||||
version = "22.12";
|
||||
version = "24.07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "named-data";
|
||||
repo = lib.toUpper pname;
|
||||
rev = "NFD-${version}";
|
||||
hash = "sha256-epY5qtET7rsKL3KIKvxfa+wF+AGZbYs+zRhy8SnIffk=";
|
||||
hash = "sha256-iEI8iS0eLLVe6PkOiCHL3onYNVYVZ1ttmk/aWrBkDhg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# These tests fail because they try to check for user/group permissions.
|
||||
rm tests/daemon/mgmt/general-config-section.t.cpp
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config sphinx wafHook ];
|
||||
buildInputs = [ libpcap ndn-cxx openssl websocketpp ] ++ lib.optional withSystemd systemd;
|
||||
buildInputs = [ boost179 libpcap ndn-cxx openssl websocketpp ] ++ lib.optional withSystemd systemd;
|
||||
|
||||
wafConfigureFlags = [
|
||||
"--boost-includes=${boost179.dev}/include"
|
||||
@@ -39,8 +44,7 @@ stdenv.mkDerivation rec {
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
build/unit-tests-core
|
||||
# build/unit-tests-daemon # 3 tests fail
|
||||
build/unit-tests-rib
|
||||
build/unit-tests-daemon
|
||||
build/unit-tests-tools
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
||||
bsd3
|
||||
isc
|
||||
mit
|
||||
zsh
|
||||
mit-modern
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.olejorgenb ];
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
let
|
||||
pname = "pgadmin";
|
||||
version = "8.10";
|
||||
yarnHash = "sha256-UydWtk2UJNsF8FEp6dNsKJGjrWhmdCog0kn9VMcOvVU=";
|
||||
version = "8.11";
|
||||
yarnHash = "sha256-2N1UsGrR9rTIP50kn+gB+iGz9D/Dj0K5Y/10A5wPKTY=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pgadmin-org";
|
||||
repo = "pgadmin4";
|
||||
rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
|
||||
hash = "sha256-b7k6A57yMh9vGwMHM9coG2b5tQ+AQoJDFvR/qQZdmtk=";
|
||||
hash = "sha256-6v7/jFkWooUHztL+x6falD04XyDYa1beoY/yEpfbX4U=";
|
||||
};
|
||||
|
||||
# keep the scope, as it is used throughout the derivation and tests
|
||||
|
||||
+750
-750
File diff suppressed because it is too large
Load Diff
@@ -28,13 +28,13 @@ let
|
||||
# This includes the complete source so the per-script derivations can run the tests.
|
||||
core = stdenv.mkDerivation rec {
|
||||
pname = "bat-extras";
|
||||
version = "2024.02.12";
|
||||
version = "2024.07.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eth-p";
|
||||
repo = "bat-extras";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EPDGQkwwxYFTJPJtwSkVrpBf27+VlMd/nqEkJupHlyA=";
|
||||
hash = "sha256-6IRAKSy5f/WcQZBcJKVSweTjHLznzdxhsyx074bXnUQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -68,6 +68,11 @@ let
|
||||
echo "Couldn't find any library test suites"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Skip the batdiff test because it's broken
|
||||
# https://github.com/eth-p/bat-extras/issues/126
|
||||
sed -i '/test:version/a skip "batdiff test is broken."' test/suite/batdiff.sh
|
||||
|
||||
./test.sh --compiled $(printf -- "--suite %q\n" "''${!test_suites[@]}")
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
, protobuf
|
||||
, capnproto
|
||||
, cmake
|
||||
, testers
|
||||
, veilid
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
@@ -52,8 +54,15 @@ rustPlatform.buildRustPackage rec {
|
||||
moveToOutput "lib" "$lib"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
veilid-version = testers.testVersion {
|
||||
package = veilid;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open-source, peer-to-peer, mobile-first, networked application framework";
|
||||
mainProgram = "veilid-server";
|
||||
homepage = "https://veilid.com";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ bbigras qbit ];
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "exploitdb";
|
||||
version = "2024-07-27";
|
||||
version = "2024-08-05";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "exploit-database";
|
||||
repo = "exploitdb";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-V0J/Pt1K1jC+ig8ofCrGb7lbQrRah80l1rHeRLXY0+A=";
|
||||
hash = "sha256-LXbcFX0yTtnZWyDr0O8d1U4CX/FrjmAqHzoDNAQiqLY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
Reference in New Issue
Block a user