Merge staging-next into staging
This commit is contained in:
commit
cff6995a9e
maintainers
nixos
pkgs
applications
networking
science/robotics/mujoco
version-management/git-town
virtualization/docker
by-name
an/ansible-navigator
cn/cnsprcy
di/digikam
do/dopamine
ge/gearlever
ku/kubectl-df-pv
md/md-tui
mi/microfetch
op/openapi-tui
po/powerjoular
pr/pretalx
qq/qq
desktops/lomiri
applications
lomiri-clock-app
lomiri-system-settings
lomiri
data/lomiri-session
default.nixservices/telephony-service
development
interpreters/spidermonkey
128.nixallow-system-s-nspr-and-icu-on-bootstrapped-sysroot-128.patchalways-check-for-pkg-config-128.patchcommon.nix
libraries/dlib
lua-modules
python-modules
aioairzone-cloud
aioairzone
aioautomower
aiobotocore
aioesphomeapi
aiohomekit
aiohttp-fast-url-dispatcher
aiolifx-themes
aionotion
aioqsw
aiorussound
anova-wifi
awesomeversion
behave
bimmer-connected
binance-connector
blinkpy
bluetooth-data-tools
boto3
botocore
brottsplatskartan
cashews
cffconvert
chacha20poly1305-reuseable
deebot-client
dio-chacon-wifi-api
doorbirdpy
dsmr-parser
elevenlabs
elmax-api
emborg
es-client
evolutionhttp
fontmake
hassil
hydrawiser
iottycloud
ipydatawidgets
israel-rail-api
knx-frontend
laundrify-aio
mkdocs-drawio-exporter
motionblinds
mujoco
ndindex
nettigo-air-monitor
openhomedevice
pure-protobuf
py-madvr2
py-sucks
py17track
pyblu
pycountry-convert
pydaikin
@ -9395,6 +9395,12 @@
|
||||
githubId = 9425955;
|
||||
name = "Jean-François Labonté";
|
||||
};
|
||||
jemand771 = {
|
||||
email = "willy@jemand771.net";
|
||||
github = "jemand771";
|
||||
githubId = 19669567;
|
||||
name = "Willy";
|
||||
};
|
||||
jensbin = {
|
||||
email = "jensbin+git@pm.me";
|
||||
github = "jensbin";
|
||||
|
@ -327,7 +327,7 @@ in
|
||||
hdfs = 295;
|
||||
mapred = 296;
|
||||
hadoop = 297;
|
||||
hydron = 298;
|
||||
#hydron = 298; # removed 2024-08-03
|
||||
cfssl = 299;
|
||||
cassandra = 300;
|
||||
qemu-libvirtd = 301;
|
||||
@ -637,7 +637,7 @@ in
|
||||
hdfs = 295;
|
||||
mapred = 296;
|
||||
hadoop = 297;
|
||||
hydron = 298;
|
||||
#hydron = 298; # removed 2024-08-03
|
||||
cfssl = 299;
|
||||
cassandra = 300;
|
||||
qemu-libvirtd = 301;
|
||||
|
@ -1501,7 +1501,6 @@
|
||||
./services/web-servers/fcgiwrap.nix
|
||||
./services/web-servers/garage.nix
|
||||
./services/web-servers/hitch/default.nix
|
||||
./services/web-servers/hydron.nix
|
||||
./services/web-servers/jboss/default.nix
|
||||
./services/web-servers/keter
|
||||
./services/web-servers/lighttpd/cgit.nix
|
||||
|
@ -67,6 +67,7 @@ in
|
||||
(mkRemovedOptionModule [ "services" "fprot" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
|
||||
(mkRemovedOptionModule [ "services" "homeassistant-satellite"] "The `services.homeassistant-satellite` module has been replaced by `services.wyoming-satellite`.")
|
||||
(mkRemovedOptionModule [ "services" "hydron" ] "The `services.hydron` module has been removed as the project has been archived upstream since 2022 and is affected by a severe remote code execution vulnerability.")
|
||||
(mkRemovedOptionModule [ "services" "ihatemoney" ] "The ihatemoney module has been removed for lack of downstream maintainer")
|
||||
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.")
|
||||
|
@ -28,19 +28,30 @@ with lib;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf config.services.goxlr-utility.enable
|
||||
{
|
||||
config =
|
||||
let
|
||||
goxlr-autostart = pkgs.stdenv.mkDerivation {
|
||||
name = "autostart-goxlr-daemon";
|
||||
priority = 5;
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/etc/xdg/autostart
|
||||
cp ${cfg.package}/share/applications/goxlr-utility.desktop $out/etc/xdg/autostart/goxlr-daemon.desktop
|
||||
chmod +w $out/etc/xdg/autostart/goxlr-daemon.desktop
|
||||
echo "X-KDE-autostart-phase=2" >> $out/etc/xdg/autostart/goxlr-daemon.desktop
|
||||
substituteInPlace $out/etc/xdg/autostart/goxlr-daemon.desktop \
|
||||
--replace-fail goxlr-launcher goxlr-daemon
|
||||
'';
|
||||
};
|
||||
in
|
||||
mkIf config.services.goxlr-utility.enable {
|
||||
services.udev.packages = [ cfg.package ];
|
||||
|
||||
xdg.autostart.enable = mkIf cfg.autoStart.xdg true;
|
||||
environment.systemPackages = mkIf cfg.autoStart.xdg
|
||||
[
|
||||
cfg.package
|
||||
(pkgs.makeAutostartItem
|
||||
{
|
||||
name = "goxlr-utility";
|
||||
package = cfg.package;
|
||||
})
|
||||
goxlr-autostart
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ config
|
||||
, pkgs
|
||||
, lib
|
||||
, ...
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
@ -32,26 +33,27 @@ in
|
||||
environment = {
|
||||
systemPackages = cfg.packages;
|
||||
|
||||
pathsToLink = [
|
||||
"/share/ayatana"
|
||||
];
|
||||
pathsToLink = [ "/share/ayatana" ];
|
||||
};
|
||||
|
||||
# libayatana-common's ayatana-indicators.target with explicit Wants & Before to bring up requested indicator services
|
||||
systemd.user.targets."ayatana-indicators" =
|
||||
systemd.user.targets =
|
||||
let
|
||||
indicatorServices = lib.lists.flatten
|
||||
(map
|
||||
(pkg:
|
||||
(map (ind: "${ind}.service") pkg.passthru.ayatana-indicators))
|
||||
cfg.packages);
|
||||
indicatorServices = lib.lists.flatten (
|
||||
map (pkg: (map (ind: "${ind}.service") pkg.passthru.ayatana-indicators)) cfg.packages
|
||||
);
|
||||
in
|
||||
{
|
||||
description = "Target representing the lifecycle of the Ayatana Indicators. Each indicator should be bound to it in its individual service file";
|
||||
partOf = [ "graphical-session.target" ];
|
||||
wants = indicatorServices;
|
||||
before = indicatorServices;
|
||||
};
|
||||
lib.attrsets.mapAttrs
|
||||
(_: 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;
|
||||
})
|
||||
{
|
||||
ayatana-indicators = "Ayatana Indicators";
|
||||
lomiri-indicators = "Ayatana/Lomiri Indicators that shall be run in Lomiri";
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
|
@ -3,10 +3,6 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
package = if cfg.allowAuxiliaryImperativeNetworks
|
||||
then pkgs.wpa_supplicant_ro_ssids
|
||||
else pkgs.wpa_supplicant;
|
||||
|
||||
cfg = config.networking.wireless;
|
||||
opt = options.networking.wireless;
|
||||
|
||||
@ -106,7 +102,7 @@ let
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
stopIfChanged = false;
|
||||
|
||||
path = [ package ];
|
||||
path = [ pkgs.wpa_supplicant ];
|
||||
# if `userControl.enable`, the supplicant automatically changes the permissions
|
||||
# and owning group of the runtime dir; setting `umask` ensures the generated
|
||||
# config file isn't readable (except to root); see nixpkgs#267693
|
||||
|
@ -1,164 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.hydron;
|
||||
in with lib; {
|
||||
options.services.hydron = {
|
||||
enable = mkEnableOption "hydron";
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/hydron";
|
||||
example = "/home/okina/hydron";
|
||||
description = "Location where hydron runs and stores data.";
|
||||
};
|
||||
|
||||
interval = mkOption {
|
||||
type = types.str;
|
||||
default = "weekly";
|
||||
example = "06:00";
|
||||
description = ''
|
||||
How often we run hydron import and possibly fetch tags. Runs by default every week.
|
||||
|
||||
The format is described in
|
||||
{manpage}`systemd.time(7)`.
|
||||
'';
|
||||
};
|
||||
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
default = "hydron";
|
||||
example = "dumbpass";
|
||||
description = "Password for the hydron database.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/run/keys/hydron-password-file";
|
||||
example = "/home/okina/hydron/keys/pass";
|
||||
description = "Password file for the hydron database.";
|
||||
};
|
||||
|
||||
postgresArgs = mkOption {
|
||||
type = types.str;
|
||||
description = "Postgresql connection arguments.";
|
||||
example = ''
|
||||
{
|
||||
"driver": "postgres",
|
||||
"connection": "user=hydron password=dumbpass dbname=hydron sslmode=disable"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
postgresArgsFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/run/keys/hydron-postgres-args";
|
||||
example = "/home/okina/hydron/keys/postgres";
|
||||
description = "Postgresql connection arguments file.";
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "127.0.0.1:8010";
|
||||
description = "Listen on a specific IP address and port.";
|
||||
};
|
||||
|
||||
importPaths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
example = [ "/home/okina/Pictures" ];
|
||||
description = "Paths that hydron will recursively import.";
|
||||
};
|
||||
|
||||
fetchTags = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Fetch tags for imported images and webm from gelbooru.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.hydron.passwordFile = mkDefault (pkgs.writeText "hydron-password-file" cfg.password);
|
||||
services.hydron.postgresArgsFile = mkDefault (pkgs.writeText "hydron-postgres-args" cfg.postgresArgs);
|
||||
services.hydron.postgresArgs = mkDefault ''
|
||||
{
|
||||
"driver": "postgres",
|
||||
"connection": "user=hydron password=${cfg.password} host=/run/postgresql dbname=hydron sslmode=disable"
|
||||
}
|
||||
'';
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "hydron" ];
|
||||
ensureUsers = [
|
||||
{ name = "hydron";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' 0750 hydron hydron - -"
|
||||
"d '${cfg.dataDir}/.hydron' - hydron hydron - -"
|
||||
"d '${cfg.dataDir}/images' - hydron hydron - -"
|
||||
"Z '${cfg.dataDir}' - hydron hydron - -"
|
||||
|
||||
"L+ '${cfg.dataDir}/.hydron/db_conf.json' - - - - ${cfg.postgresArgsFile}"
|
||||
];
|
||||
|
||||
systemd.services.hydron = {
|
||||
description = "hydron";
|
||||
after = [ "network.target" "postgresql.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = "hydron";
|
||||
Group = "hydron";
|
||||
ExecStart = "${pkgs.hydron}/bin/hydron serve"
|
||||
+ optionalString (cfg.listenAddress != null) " -a ${cfg.listenAddress}";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.hydron-fetch = {
|
||||
description = "Import paths into hydron and possibly fetch tags";
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "hydron";
|
||||
Group = "hydron";
|
||||
ExecStart = "${pkgs.hydron}/bin/hydron import "
|
||||
+ optionalString cfg.fetchTags "-f "
|
||||
+ (escapeShellArg cfg.dataDir) + "/images " + (escapeShellArgs cfg.importPaths);
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.hydron-fetch = {
|
||||
description = "Automatically import paths into hydron and possibly fetch tags";
|
||||
after = [ "network.target" "hydron.service" ];
|
||||
wantedBy = [ "timers.target" ];
|
||||
|
||||
timerConfig = {
|
||||
Persistent = true;
|
||||
OnCalendar = cfg.interval;
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
groups.hydron.gid = config.ids.gids.hydron;
|
||||
|
||||
users.hydron = {
|
||||
description = "hydron server service user";
|
||||
home = cfg.dataDir;
|
||||
group = "hydron";
|
||||
uid = config.ids.uids.hydron;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "hydron" "baseDir" ] [ "services" "hydron" "dataDir" ])
|
||||
];
|
||||
|
||||
meta.maintainers = with maintainers; [ Madouura ];
|
||||
}
|
@ -537,7 +537,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 = discoverTests (import ./lomiri.nix);
|
||||
lomiri-calculator-app = runTest ./lomiri-calculator-app.nix;
|
||||
lomiri-camera-app = runTest ./lomiri-camera-app.nix;
|
||||
lomiri-clock-app = runTest ./lomiri-clock-app.nix;
|
||||
|
@ -1,363 +1,496 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: let
|
||||
let
|
||||
makeTest = import ./make-test-python.nix;
|
||||
# Just to make sure everything is the same, need it for OCR & navigating greeter
|
||||
user = "alice";
|
||||
description = "Alice Foobar";
|
||||
password = "foobar";
|
||||
in {
|
||||
name = "lomiri";
|
||||
in
|
||||
{
|
||||
greeter = makeTest (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-greeter";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
};
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
};
|
||||
|
||||
nodes.machine = { config, ... }: {
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
];
|
||||
nodes.machine =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
users.users.${user} = {
|
||||
inherit description password;
|
||||
};
|
||||
virtualisation.memorySize = 2047;
|
||||
|
||||
# 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";
|
||||
users.users.${user} = {
|
||||
inherit description password;
|
||||
};
|
||||
normal = {
|
||||
green = primary.foreground;
|
||||
|
||||
services.desktopManager.lomiri.enable = lib.mkForce true;
|
||||
services.displayManager.defaultSession = lib.mkForce "lomiri";
|
||||
|
||||
# Help with OCR
|
||||
fonts.packages = [ pkgs.inconsolata ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
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")
|
||||
machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'")
|
||||
|
||||
# Start page shows current time
|
||||
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")
|
||||
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
|
||||
machine.wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_launched")
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
||||
desktop = makeTest (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-desktop";
|
||||
|
||||
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
|
||||
|
||||
# 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 toggle_maximise():
|
||||
"""
|
||||
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)
|
||||
|
||||
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
|
||||
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")
|
||||
|
||||
# Doing this here, since we need an in-session shell & separately starting a terminal again wastes time
|
||||
with subtest("polkit agent works"):
|
||||
machine.send_chars("pkexec touch /tmp/polkit-test\n")
|
||||
# There's an authentication notification here that gains focus, but we struggle with OCRing it
|
||||
# Just hope that it's up after a short wait
|
||||
machine.sleep(10)
|
||||
machine.screenshot("polkit_agent")
|
||||
machine.send_chars("${password}")
|
||||
machine.sleep(2) # Hopefully enough delay to make sure all the password characters have been registered? Maybe just placebo
|
||||
machine.send_chars("\n")
|
||||
machine.wait_for_file("/tmp/polkit-test", 10)
|
||||
|
||||
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")
|
||||
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")
|
||||
|
||||
# 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")
|
||||
|
||||
# If content-hub encounters a problem, it may have crashed the original application issuing the request.
|
||||
# Check that it's still alive
|
||||
machine.succeed("pgrep -u ${user} -f lomiri-system-settings")
|
||||
|
||||
machine.screenshot("content-hub_exchange")
|
||||
|
||||
# Testing any more would require more applications & setup, the fact that it's already being attempted is a good sign
|
||||
machine.send_key("esc")
|
||||
|
||||
machine.sleep(2) # sleep a tiny bit so morph can close & the focus can return to LSS
|
||||
machine.send_key("alt-f4")
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
||||
desktop-ayatana-indicators = makeTest (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lomiri-desktop-ayatana-indicators";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lomiri.members;
|
||||
};
|
||||
|
||||
variables = {
|
||||
# So we can test what content-hub is working behind the scenes
|
||||
CONTENT_HUB_LOGGING_LEVEL = "2";
|
||||
};
|
||||
nodes.machine =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/auto.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
# For a convenient way of kicking off content-hub peer collection
|
||||
lomiri.content-hub.examples
|
||||
virtualisation.memorySize = 2047;
|
||||
|
||||
# Forcing alacritty to run as an X11 app when opened from the starter menu
|
||||
(symlinkJoin {
|
||||
name = "x11-${alacritty.name}";
|
||||
users.users.${user} = {
|
||||
inherit description password;
|
||||
};
|
||||
|
||||
paths = [ alacritty ];
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
inherit user;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
# To control mouse via scripting
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/alacritty \
|
||||
--set WINIT_UNIX_BACKEND x11 \
|
||||
--set WAYLAND_DISPLAY ""
|
||||
'';
|
||||
services.desktopManager.lomiri.enable = lib.mkForce true;
|
||||
services.displayManager.defaultSession = lib.mkForce "lomiri";
|
||||
|
||||
inherit (alacritty) meta;
|
||||
})
|
||||
|
||||
# Polkit requests eventually time out.
|
||||
# Keep triggering them until we signal detection success
|
||||
(writeShellApplication {
|
||||
name = "lpa-check";
|
||||
text = ''
|
||||
while [ ! -f /tmp/lpa-checked ]; do
|
||||
pkexec echo a
|
||||
done
|
||||
'';
|
||||
})
|
||||
# Signal detection success
|
||||
(writeShellApplication {
|
||||
name = "lpa-signal";
|
||||
text = ''
|
||||
touch /tmp/lpa-checked
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
# 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";
|
||||
# Help with OCR
|
||||
fonts.packages = [ pkgs.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;
|
||||
enableOCR = true;
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
def toggle_maximise():
|
||||
"""
|
||||
Maximise the current window.
|
||||
"""
|
||||
machine.send_key("ctrl-meta_l-up")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
def mouse_click(xpos, ypos):
|
||||
"""
|
||||
Move the mouse to a screen location and hit left-click.
|
||||
"""
|
||||
|
||||
# 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)
|
||||
# Need to reset to top-left, --absolute doesn't work?
|
||||
machine.execute("ydotool mousemove -- -10000 -10000")
|
||||
machine.sleep(2)
|
||||
|
||||
def mouse_click(xpos, ypos):
|
||||
"""
|
||||
Move the mouse to a screen location and hit left-click.
|
||||
"""
|
||||
# Move
|
||||
machine.execute(f"ydotool mousemove -- {xpos} {ypos}")
|
||||
machine.sleep(2)
|
||||
|
||||
# Need to reset to top-left, --absolute doesn't work?
|
||||
machine.execute("ydotool mousemove -- -10000 -10000")
|
||||
machine.sleep(2)
|
||||
# Click (C0 - left button: down & up)
|
||||
machine.execute("ydotool click 0xC0")
|
||||
machine.sleep(2)
|
||||
|
||||
# Move
|
||||
machine.execute(f"ydotool mousemove -- {xpos} {ypos}")
|
||||
machine.sleep(2)
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
# Click (C0 - left button: down & up)
|
||||
machine.execute("ydotool click 0xC0")
|
||||
machine.sleep(2)
|
||||
# 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
|
||||
machine.wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_launched")
|
||||
|
||||
def open_starter():
|
||||
"""
|
||||
Open the starter, and ensure it's opened.
|
||||
"""
|
||||
# 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)")
|
||||
machine.screenshot("indicators_open")
|
||||
|
||||
# Using the keybind has a chance of instantly closing the menu again? Just click the button
|
||||
mouse_click(20, 30)
|
||||
# Indicator order within the menus *should* be fixed based on per-indicator order setting
|
||||
# Session is the one we clicked, but the last we should test (logout). Go as far left as we can test.
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
# Notifications are usually empty, nothing to check there
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
with subtest("ayatana indicator display works"):
|
||||
# We start on this, don't go right
|
||||
machine.wait_for_text("Lock")
|
||||
machine.screenshot("indicators_display")
|
||||
|
||||
# Lomiri in greeter mode should work & be able to start a session
|
||||
with subtest("lomiri greeter works"):
|
||||
machine.wait_for_unit("display-manager.service")
|
||||
machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'")
|
||||
with subtest("lomiri indicator network works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Flight|Wi-Fi)")
|
||||
machine.screenshot("indicators_network")
|
||||
|
||||
# Start page shows current time
|
||||
machine.wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_greeter_launched")
|
||||
with subtest("ayatana indicator sound works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Silent|Volume)")
|
||||
machine.screenshot("indicators_sound")
|
||||
|
||||
# Advance to login part
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_text("${description}")
|
||||
machine.screenshot("lomiri_greeter_login")
|
||||
with subtest("ayatana indicator power works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text(r"(Charge|Battery settings)")
|
||||
machine.screenshot("indicators_power")
|
||||
|
||||
# Login
|
||||
machine.send_chars("${password}\n")
|
||||
machine.wait_until_succeeds("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
|
||||
with subtest("ayatana indicator datetime works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text("Time and Date Settings")
|
||||
machine.screenshot("indicators_timedate")
|
||||
|
||||
# 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")
|
||||
with subtest("ayatana indicator session works"):
|
||||
machine.send_key("right")
|
||||
machine.wait_for_text("Log Out")
|
||||
machine.screenshot("indicators_session")
|
||||
|
||||
# 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")
|
||||
# We should be able to log out and return to the greeter
|
||||
mouse_click(720, 280) # "Log Out"
|
||||
mouse_click(400, 240) # confirm logout
|
||||
machine.wait_until_fails("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
||||
# 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")
|
||||
|
||||
# Doing this here, since we need an in-session shell & separately starting a terminal again wastes time
|
||||
with subtest("polkit agent works"):
|
||||
machine.send_chars("exec lpa-check\n")
|
||||
machine.wait_for_text(r"(Elevated permissions|Login)")
|
||||
machine.screenshot("polkit_agent")
|
||||
machine.execute("lpa-signal")
|
||||
|
||||
# polkit test will quit terminal when agent request times out after OCR success
|
||||
machine.wait_until_fails("pgrep -u ${user} -f lomiri-terminal-app")
|
||||
|
||||
# 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")
|
||||
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")
|
||||
|
||||
# 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")
|
||||
|
||||
# If content-hub encounters a problem, it may have crashed the original application issuing the request.
|
||||
# Check that it's still alive
|
||||
machine.succeed("pgrep -u ${user} -f lomiri-system-settings")
|
||||
|
||||
machine.screenshot("content-hub_exchange")
|
||||
|
||||
# Testing any more would require more applications & setup, the fact that it's already being attempted is a good sign
|
||||
machine.send_key("esc")
|
||||
|
||||
machine.sleep(2) # sleep a tiny bit so morph can close & the focus can return to LSS
|
||||
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.
|
||||
# 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)")
|
||||
machine.screenshot("indicators_open")
|
||||
|
||||
# Indicator order within the menus *should* be fixed based on per-indicator order setting
|
||||
# Session is the one we clicked, but the last we should test (logout). Go as far left as we can test.
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
machine.send_key("left")
|
||||
# Notifications are usually empty, nothing to check there
|
||||
|
||||
with subtest("ayatana indicator display works"):
|
||||
# We start on this, don't go right
|
||||
machine.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)")
|
||||
machine.screenshot("indicators_network")
|
||||
|
||||
with subtest("ayatana indicator sound works"):
|
||||
machine.send_key("right")
|
||||
machine.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)")
|
||||
machine.screenshot("indicators_power")
|
||||
|
||||
with subtest("ayatana indicator datetime works"):
|
||||
machine.send_key("right")
|
||||
machine.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")
|
||||
machine.screenshot("indicators_session")
|
||||
|
||||
# We should be able to log out and return to the greeter
|
||||
mouse_click(720, 280) # "Log Out"
|
||||
mouse_click(400, 240) # confirm logout
|
||||
machine.wait_until_fails("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
|
||||
machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'")
|
||||
'';
|
||||
})
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"version" = "1.11.72";
|
||||
"version" = "1.11.73";
|
||||
"hashes" = {
|
||||
"desktopSrcHash" = "sha256-eNK63Q3fWnc7+hQAKkvsjJ2DUL7AmtexvGTOox0dVVs=";
|
||||
"desktopSrcHash" = "sha256-o6uXn+ArwSneDMtS4AfVmSqQfAl0Gygvoj2suKI+VqU=";
|
||||
"desktopYarnHash" = "10a409klzzvm6dm27803c2cgwpx1aj035ad1mdnsqyhnd4nsigpw";
|
||||
"webSrcHash" = "sha256-ZLSCbt00R3azFz2lOuj8yqaLFyobnmGmQKYOYLHCA1w=";
|
||||
"webYarnHash" = "13w3j5k48540sr7rgcj0b3kma4b4bybw56k58ral0d7izs7dgmgc";
|
||||
"webSrcHash" = "sha256-/PS/hEuSKXKRwS2zmH7Q8IIE20kPnOKU3PHXGSLhZZE=";
|
||||
"webYarnHash" = "1j43rbn3sc6bnnf81p8y0b1jcck57d6yh07zpxlkgni1qkly809d";
|
||||
};
|
||||
}
|
||||
|
@ -1,9 +0,0 @@
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: 2024-06-17
|
||||
{
|
||||
version = "3.2.10";
|
||||
amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/944f8942/linuxqq_3.2.10-25234_amd64.deb";
|
||||
arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/944f8942/linuxqq_3.2.10-25234_arm64.deb";
|
||||
arm64_hash = "sha256-UY9UFbwQjXBd0+52iron1LZQWP/ncUZwylrtDzm5lW8=";
|
||||
amd64_hash = "sha256-CHVX5tBV/w//At2wBjLqgTzayi4NI5i06IDgyW++ha4=";
|
||||
}
|
@ -9,6 +9,7 @@
|
||||
, buildPackages
|
||||
, c-ares
|
||||
, cmake
|
||||
, fixDarwinDylibNames
|
||||
, flex
|
||||
, gettext
|
||||
, glib
|
||||
@ -49,7 +50,9 @@
|
||||
, withQt ? true
|
||||
, qt6 ? null
|
||||
}:
|
||||
|
||||
let
|
||||
isAppBundle = withQt && stdenv.isDarwin;
|
||||
in
|
||||
assert withQt -> qt6 != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -86,6 +89,8 @@ stdenv.mkDerivation rec {
|
||||
] ++ lib.optionals withQt [
|
||||
qt6.wrapQtAppsHook
|
||||
wrapGAppsHook3
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
fixDarwinDylibNames
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -139,7 +144,7 @@ stdenv.mkDerivation rec {
|
||||
"-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
|
||||
# Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
|
||||
"-DENABLE_APPLICATION_BUNDLE=${if isAppBundle then "ON" else "OFF"}"
|
||||
"-DLEMON_C_COMPILER=cc"
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
|
||||
@ -163,14 +168,20 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postInstall = ''
|
||||
cmake --install . --prefix "''${!outputDev}" --component Development
|
||||
'' + lib.optionalString (stdenv.isDarwin && withQt) ''
|
||||
'' + lib.optionalString isAppBundle ''
|
||||
mkdir -p $out/Applications
|
||||
mv $out/bin/Wireshark.app $out/Applications/Wireshark.app
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
local flags=()
|
||||
for file in $out/lib/*.dylib; do
|
||||
flags+=(-change @rpath/"$(basename "$file")" "$file")
|
||||
done
|
||||
|
||||
for f in $(find $out/Applications/Wireshark.app/Contents/PlugIns -name "*.so"); do
|
||||
for dylib in $(otool -L $f | awk '/^\t*lib/ {print $1}'); do
|
||||
install_name_tool -change "$dylib" "$out/lib/$dylib" "$f"
|
||||
done
|
||||
for file in $out/lib/wireshark/extcap/*; do
|
||||
if [ -L "$file" ]; then continue; fi
|
||||
echo "$file: fixing dylib references"
|
||||
# note that -id does nothing on binaries
|
||||
install_name_tool -id "$file" "''${flags[@]}" "$file"
|
||||
done
|
||||
'';
|
||||
|
||||
@ -178,6 +189,15 @@ stdenv.mkDerivation rec {
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
# This is done to remove some binary wrappers that wrapQtApps adds in *.app directories.
|
||||
# Copying because unfortunately pointing Wireshark (when built as an appbundle) at $out/lib instead is nontrivial.
|
||||
postFixup = lib.optionalString isAppBundle ''
|
||||
rm -rf $out/Applications/Wireshark.app/Contents/MacOS/extcap $out/Applications/Wireshark.app/Contents/PlugIns
|
||||
mkdir -p $out/Applications/Wireshark.app/Contents/PlugIns/wireshark
|
||||
cp -r $out/lib/wireshark/plugins/4-2 $out/Applications/Wireshark.app/Contents/PlugIns/wireshark/4-2
|
||||
cp -r $out/lib/wireshark/extcap $out/Applications/Wireshark.app/Contents/MacOS/extcap
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Powerful network protocol analyzer";
|
||||
longDescription = ''
|
||||
|
@ -129,7 +129,7 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "mujoco";
|
||||
version = "3.2.1";
|
||||
version = "3.2.2";
|
||||
|
||||
# Bumping version? Make sure to look though the MuJoCo's commit
|
||||
# history for bumped dependency pins!
|
||||
@ -137,7 +137,7 @@ in stdenv.mkDerivation rec {
|
||||
owner = "google-deepmind";
|
||||
repo = "mujoco";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Il1ZZdHXsBcamIILfae8n51W8wJ78a/H3gQx2/+n9kQ=";
|
||||
hash = "sha256-UUPB7AY6OYWaK5uBu92kmoIE116AfFa34sYmF943AOU=";
|
||||
};
|
||||
|
||||
patches = [ ./mujoco-system-deps-dont-fetch.patch ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-town";
|
||||
version = "14.2.2";
|
||||
version = "15.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-town";
|
||||
repo = "git-town";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bYCE3Ik0UbbjlZV8EY6pVRZzrTBp2uiZLJjO4UxfGE8=";
|
||||
hash = "sha256-Gp2X9DCnueSVbeqFBNxLfvlXh4PzlybVdh8xKjaFICQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
@ -32,6 +32,9 @@ buildGoModule rec {
|
||||
|
||||
preCheck = ''
|
||||
HOME=$(mktemp -d)
|
||||
|
||||
# this runs tests requiring local operations
|
||||
rm main_test.go
|
||||
'';
|
||||
|
||||
checkFlags =
|
||||
|
@ -296,8 +296,8 @@ rec {
|
||||
|
||||
docker_25 = callPackage dockerGen rec {
|
||||
version = "25.0.6";
|
||||
cliRev = "v25.0.5";
|
||||
cliHash = "sha256-CACMi3bXUN6oGc2f/Z+lNQqMgQ4llRWPRKgijdpiPGg=";
|
||||
cliRev = "v${version}";
|
||||
cliHash = "sha256-7ZKjlONL5RXEJZrvssrL1PQMNANP0qTw4myGKdtd19U=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-+zkhUMeVD3HNq8WrWQmLskq+HykvD5kzSACmf67YbJE=";
|
||||
runcRev = "v1.1.12";
|
||||
|
@ -1,23 +1,20 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
python3Packages,
|
||||
podman,
|
||||
fetchPypi,
|
||||
buildPythonPackage,
|
||||
pythonOlder,
|
||||
ansible-lint,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "ansible-navigator";
|
||||
version = "24.7.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
disabled = python3Packages.pythonOlder "3.10";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "ansible_navigator";
|
||||
inherit version;
|
||||
pname = "ansible_navigator";
|
||||
hash = "sha256-XMwJzDxo/VZ+0qy5MLg/Kw/7j3V594qfV+T6jeVEWzg=";
|
||||
};
|
||||
|
||||
@ -26,15 +23,16 @@ buildPythonPackage rec {
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
dependencies = with python3Packages; [
|
||||
ansible-builder
|
||||
ansible-runner
|
||||
podman
|
||||
pkgs.ansible-lint
|
||||
jinja2
|
||||
jsonschema
|
||||
tzdata
|
||||
pyyaml
|
||||
onigurumacffi
|
||||
ansible-lint
|
||||
podman
|
||||
];
|
||||
|
||||
# Tests want to run in tmux
|
||||
@ -42,11 +40,11 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "ansible_navigator" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Text-based user interface (TUI) for Ansible";
|
||||
homepage = "https://ansible.readthedocs.io/projects/navigator/";
|
||||
changelog = "https://github.com/ansible/ansible-navigator/releases/tag/v${version}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ melkor333 ];
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ melkor333 ];
|
||||
};
|
||||
}
|
33
pkgs/by-name/cn/cnsprcy/package.nix
Normal file
33
pkgs/by-name/cn/cnsprcy/package.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromSourcehut,
|
||||
rustPlatform,
|
||||
sqlite,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cnsprcy";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~xaos";
|
||||
repo = pname;
|
||||
rev = "v0.2.0";
|
||||
hash = "sha256-f+DauSU4bT3EljY8/ig7jLnUgyDPEo2NSBQcPN0iKx0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-e9+nMz/FCtd5pnHSHA1RenWzrgIHyCf5eEDO4xMxGHk=";
|
||||
|
||||
RUSTC_BOOTSTRAP = true;
|
||||
|
||||
buildInputs = [ sqlite ];
|
||||
|
||||
meta = {
|
||||
description = "End to end encrypted connections between trusted devices";
|
||||
homepage = "https://git.sr.ht/~xaos/cnsprcy";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ supinie ];
|
||||
mainProgram = "cnspr";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -125,6 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
kdePackages.qtnetworkauth
|
||||
kdePackages.qtscxml
|
||||
kdePackages.qtsvg
|
||||
kdePackages.qtwayland
|
||||
kdePackages.qtwebengine
|
||||
kdePackages.qt5compat
|
||||
kdePackages.qtmultimedia
|
||||
|
@ -6,11 +6,11 @@
|
||||
}:
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "dopamine";
|
||||
version = "3.0.0-preview.27";
|
||||
version = "3.0.0-preview.29";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/digimezzo/dopamine/releases/download/v${version}/Dopamine-${version}.AppImage";
|
||||
hash = "sha256-OTnpFtkdCVoyrDoLdKD382+ZD4FJYSDTBgRoB6YAKHE=";
|
||||
hash = "sha256-VBqnqDMLDC5XJIXygENWagXllq1P090EtumADDd2I8w=";
|
||||
};
|
||||
|
||||
extraInstallCommands =
|
||||
|
@ -20,14 +20,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "gearlever";
|
||||
version = "2.0.1";
|
||||
version = "2.0.6";
|
||||
pyproject = false; # Built with meson
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mijorus";
|
||||
repo = "gearlever";
|
||||
rev = version;
|
||||
hash = "sha256-f4rQXenJCZiDC9MRQkjy0mOiNkWzOPSS05GXHXlhUao=";
|
||||
hash = "sha256-+JuF0SL+2yVgkKPItt9Vq6SLcnxaMSWxIeVhY9XLX28=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
@ -37,14 +37,6 @@ python3Packages.buildPythonApplication rec {
|
||||
substituteInPlace build-aux/meson/postinstall.py \
|
||||
--replace-fail 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
|
||||
''
|
||||
# Some attempts to overcome flatpak assumptions
|
||||
+ ''
|
||||
substituteInPlace src/lib/utils.py \
|
||||
--replace-fail '/run/host/os-release' '/etc/os-release'
|
||||
|
||||
substituteInPlace src/lib/terminal.py \
|
||||
--replace-fail "cmd = ['flatpak-spawn', '--host', *command]" "cmd = [*command]"
|
||||
''
|
||||
# Use gtk4 instead of gtk3 to get smaller closure size
|
||||
+ ''
|
||||
substituteInPlace src/providers/AppImageProvider.py \
|
||||
|
27
pkgs/by-name/ku/kubectl-df-pv/package.nix
Normal file
27
pkgs/by-name/ku/kubectl-df-pv/package.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ buildGoModule
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubectl-df-pv";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yashbhutwala";
|
||||
repo = "kubectl-df-pv";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FxKqkxLMNfCXuahKTMod6kWKZ/ucYeIEFcS8BmpbLWg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-YkDPgN7jBvYveiyU8N+3Ia52SEmlzC0TGBQjUuIAaw0=";
|
||||
|
||||
meta = {
|
||||
description = "df (disk free)-like utility for persistent volumes on kubernetes";
|
||||
mainProgram = "df-pv";
|
||||
homepage = "https://github.com/yashbhutwala/kubectl-df-pv";
|
||||
changelog = "https://github.com/yashbhutwala/kubectl-df-pv/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ jemand771 ];
|
||||
};
|
||||
}
|
@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "md-tui";
|
||||
version = "0.8.3";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "henriklovhaug";
|
||||
repo = "md-tui";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-21h1r6rhjFTOhebMS9PO3/OLKKEeFPVpWThFdgxKhh4=";
|
||||
hash = "sha256-J1UtyxDT8+UmBwayUMtcPOtnVVkRZLg6ECXnqDSJ2Ew=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-wONvublKzJnVVUjf1z9V4RwSkHg+HSoTGYvnMdslAYg=";
|
||||
cargoHash = "sha256-wb5XF6KdroLbQOQg9bPrJjqLOluq/EH2dJzp2icNUIc=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
28
pkgs/by-name/mi/microfetch/package.nix
Normal file
28
pkgs/by-name/mi/microfetch/package.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "microfetch";
|
||||
version = "0.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NotAShelf";
|
||||
repo = "microfetch";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-iBfnui7xrx31euYnQxoJf1xXFYFiJnDMadLRAiRCN04=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-J+S6XIMUcWj4jXABQinEDx6dRG5Byc2UxJoKj2y1tQU=";
|
||||
|
||||
meta = {
|
||||
description = "Microscopic fetch script in Rust, for NixOS systems";
|
||||
homepage = "https://github.com/NotAShelf/microfetch";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ nydragon ];
|
||||
mainProgram = "microfetch";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -1,20 +1,27 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, openssl
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "openapi-tui";
|
||||
version = "0.5.0";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zaghaghi";
|
||||
repo = "openapi-tui";
|
||||
rev = version;
|
||||
hash = "sha256-flxQ5+nLacQAkrxJafw9D3iXYTFpHcmTshEySmFJ0Cc=";
|
||||
hash = "sha256-y8A43FV3PfYHaMMHE3uGRBaftga/pVSivCfV4iwUROA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-vfEDbUrIXc498QnMJJlMGyTUDvlHgquB5GpWTe7yCvM=";
|
||||
cargoHash = "sha256-I1eTJDtQM9WKluOZJGfQT4Wn9TFyTu6ZcPFuh8wZIWI=";
|
||||
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Terminal UI to list, browse and run APIs defined with openapi spec";
|
||||
@ -24,4 +31,3 @@ rustPlatform.buildRustPackage rec {
|
||||
mainProgram = "openapi-tui";
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "powerjoular";
|
||||
version = "1.0.1";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joular";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-1XNXe5EZHB1kK2C5oyRt4TzfjZivW9DOEvS1MxJHC8E=";
|
||||
hash = "sha256-zcG/R8isL7WcwsIFovnRKZ5DCtZu4vJWOximFY9ARuE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -29,13 +29,13 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
version = "2024.2.0";
|
||||
version = "2024.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pretalx";
|
||||
repo = "pretalx";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2HkxFS+T/lN/8EvAL3S4iVYn30y0OPmaUSneEPEA62k=";
|
||||
hash = "sha256-D0ju9aOVy/new9GWqyFalZYCisdmM7irWSbn2TVCJYQ=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
9
pkgs/by-name/qq/qq/sources.nix
Normal file
9
pkgs/by-name/qq/qq/sources.nix
Normal file
@ -0,0 +1,9 @@
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: 2024-08-05
|
||||
{
|
||||
version = "3.2.12-26740";
|
||||
amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/769073aa/linuxqq_3.2.12-26740_amd64.deb";
|
||||
arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/769073aa/linuxqq_3.2.12-26740_arm64.deb";
|
||||
arm64_hash = "sha256-y2qWXNtqIinXB91nvIT0FC8fM1r71qX5fXjrBAjZxzA=";
|
||||
amd64_hash = "sha256-SQQ6biLr1ZCpBq+2TzKpjipoCb1aFkxlr0CZYKmA8Zg=";
|
||||
}
|
@ -27,26 +27,18 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-clock-app";
|
||||
version = "4.0.3";
|
||||
version = "4.0.4";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/apps/lomiri-clock-app";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-q/hdnwHO97bhL0W3VsdHwjPvGs6GhWbDiVLCx4NiR50=";
|
||||
hash = "sha256-IWNLMYrebYQe5otNwZtRUs4YGPo/5OFic3Nh2pWxROs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix dispatching to clock app via LUD
|
||||
# Remove when version > 4.0.3
|
||||
(fetchpatch {
|
||||
name = "0001-lomiri-clock-app-Fix-non-click-lomiri-url-dispatcher-support.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/commit/493888b41489b360415d1a0d0e431754afdee2b0.patch";
|
||||
hash = "sha256-sI7YDrWjV0bSAq0vdSvNcWCLhmEEb10T7jd2kYfSfZU=";
|
||||
})
|
||||
|
||||
# Fix GNUInstallDirs variables usage
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/merge_requests/215 merged & in release
|
||||
# Remove when version > 4.0.4
|
||||
(fetchpatch {
|
||||
name = "0002-lomiri-clock-app-Fix-GNUInstallDirs-variable-concatenations-in-CMake.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/commit/33c62d0382f69462de0567628d7a6ef162944e12.patch";
|
||||
@ -54,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
})
|
||||
|
||||
# Fix installation of splash icon
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/merge_requests/216 merged & in release
|
||||
# Remove when version > 4.0.4
|
||||
(fetchpatch {
|
||||
name = "0003-lomiri-clock-app-Fix-splash-file-installation-in-non-clock-mode.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/commit/97fd6fd91ee787dfe107bd36bc895f2ff234b5e3.patch";
|
||||
@ -85,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
})
|
||||
|
||||
# Don't ignore PATH when looking for qmltestrunner, saves us a patch for hardcoded fallback
|
||||
# Remove when https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/merge_requests/218 merged & in release
|
||||
# Remove when version > 4.0.4
|
||||
(fetchpatch {
|
||||
name = "0008-lomiri-clock-app-tests-Drop-NO_DEFAULT_PATH.patch";
|
||||
url = "https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/commit/190ef47e2efaaf139920d0556e0522f95479ea95.patch";
|
||||
@ -102,10 +94,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Part of 493888b41489b360415d1a0d0e431754afdee2b0 patch, but neither fetchpatch nor fetchpatch2 can handle a rename-only change to a file
|
||||
# Remove when version > 4.0.3
|
||||
mv clock.ubports_clock.url-dispatcher lomiri-clock-app.url-dispatcher
|
||||
|
||||
# QT_IMPORTS_DIR returned by qmake -query is broken
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'qmake -query QT_INSTALL_QML' 'echo ''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}' \
|
||||
|
@ -1,57 +1,59 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, fetchpatch2
|
||||
, gitUpdater
|
||||
, testers
|
||||
, accountsservice
|
||||
, ayatana-indicator-datetime
|
||||
, cmake
|
||||
, cmake-extras
|
||||
, content-hub
|
||||
, dbus
|
||||
, deviceinfo
|
||||
, geonames
|
||||
, gettext
|
||||
, glib
|
||||
, gnome-desktop
|
||||
, gsettings-qt
|
||||
, gtk3
|
||||
, icu
|
||||
, intltool
|
||||
, json-glib
|
||||
, libqofono
|
||||
, libqtdbustest
|
||||
, libqtdbusmock
|
||||
, lomiri-indicator-network
|
||||
, lomiri-schemas
|
||||
, lomiri-settings-components
|
||||
, lomiri-ui-toolkit
|
||||
, maliit-keyboard
|
||||
, pkg-config
|
||||
, python3
|
||||
, qmenumodel
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, qtmultimedia
|
||||
, ubports-click
|
||||
, upower
|
||||
, validatePkgConfig
|
||||
, wrapGAppsHook3
|
||||
, wrapQtAppsHook
|
||||
, xvfb-run
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
gitUpdater,
|
||||
testers,
|
||||
accountsservice,
|
||||
ayatana-indicator-datetime,
|
||||
biometryd,
|
||||
cmake,
|
||||
cmake-extras,
|
||||
content-hub,
|
||||
dbus,
|
||||
deviceinfo,
|
||||
geonames,
|
||||
gettext,
|
||||
glib,
|
||||
gnome-desktop,
|
||||
gsettings-qt,
|
||||
gtk3,
|
||||
icu,
|
||||
intltool,
|
||||
json-glib,
|
||||
libqofono,
|
||||
libqtdbustest,
|
||||
libqtdbusmock,
|
||||
lomiri-indicator-network,
|
||||
lomiri-schemas,
|
||||
lomiri-settings-components,
|
||||
lomiri-ui-toolkit,
|
||||
maliit-keyboard,
|
||||
pkg-config,
|
||||
polkit,
|
||||
python3,
|
||||
qmenumodel,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtmultimedia,
|
||||
trust-store,
|
||||
ubports-click,
|
||||
upower,
|
||||
validatePkgConfig,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
xvfb-run,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-system-settings-unwrapped";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/lomiri-system-settings";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Po5eArO7zyaGatTf6kqci3DdzFDJSZakeglbiMx9kR8=";
|
||||
hash = "sha256-dWaXPr9Z5jz5SbwLSd3jVqjK0E5BdcKVeF15p8j47uM=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
@ -59,55 +61,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"dev"
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Remove when https://gitlab.com/ubports/development/core/lomiri-system-settings/-/merge_requests/433 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0001-lomiri-system-settings-plugins-language-Fix-linking-against-accountsservice.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri-system-settings/-/commit/75763ae2f9669f5f7f29aec3566606e6f6cb7478.patch";
|
||||
hash = "sha256-2CE0yizkaz93kK82DhaaFjKmGnMoaikrwFj4k7RN534=";
|
||||
})
|
||||
|
||||
# Remove when https://gitlab.com/ubports/development/core/lomiri-system-settings/-/merge_requests/434 merged & in release
|
||||
(fetchpatch {
|
||||
name = "0002-lomiri-system-settings-GNUInstallDirs-and-fix-absolute-path-handling.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri-system-settings/-/commit/93ee84423f3677a608ef73addcd3ddcbe7dc1d32.patch";
|
||||
hash = "sha256-lSKAhtE3oSSv7USvDbbcfBZWAtWMmuKneWawKQABIiM=";
|
||||
})
|
||||
|
||||
# Fixes tests with very-recent python-dbusmock
|
||||
# Remove when version > 1.1.0
|
||||
(fetchpatch {
|
||||
name = "0003-lomiri-system-settings-Revert-Pass-missing-parameter-to-dbusmock-bluez-PairDevice-function.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri-system-settings/-/commit/67d9e28ebab8bdb9473d5bf8da2b7573e6848fa2.patch";
|
||||
hash = "sha256-pFWNne2UH3R5Fz9ayHvIpDXDQbXPs0k4b/oRg0fzi+s=";
|
||||
})
|
||||
|
||||
(fetchpatch2 {
|
||||
name = "0004-lomiri-system-settings-QOfono-namespace-change.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri-system-settings/-/commit/c0b5b007d77993fabdd95be5ccbbba5151f0f165.patch";
|
||||
hash = "sha256-HB7qdlbY0AVG6X3hL3IHf0Z7rm1G0wfdqo5MXtY7bfE=";
|
||||
})
|
||||
] ++ [
|
||||
|
||||
./2000-Support-wrapping-for-Nixpkgs.patch
|
||||
|
||||
# Make it work with regular accountsservice
|
||||
# https://gitlab.com/ubports/development/core/lomiri-system-settings/-/issues/341
|
||||
(fetchpatch {
|
||||
name = "2001-lomiri-system-settings-disable-current-language-switching.patch";
|
||||
url = "https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/2001_disable-current-language-switching.patch";
|
||||
hash = "sha256-ZOFYwxS8s6+qMFw8xDCBv3nLBOBm86m9d/VhbpOjamY=";
|
||||
})
|
||||
];
|
||||
patches = [ ./2000-Support-wrapping-for-Nixpkgs.patch ];
|
||||
|
||||
postPatch = ''
|
||||
# Part of 0004-lomiri-system-settings-QOfono-namespace-change.patch, fetchpatch2 cannot handle rename-only changes
|
||||
for unmovedThing in tests/mocks/MeeGo/QOfono/*; do
|
||||
mv "$unmovedThing" "tests/mocks/QOfono/$(basename "$unmovedThing")"
|
||||
done
|
||||
rmdir tests/mocks/MeeGo/QOfono
|
||||
rmdir tests/mocks/MeeGo
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
|
||||
|
||||
@ -155,7 +111,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
gtk3
|
||||
icu
|
||||
json-glib
|
||||
polkit
|
||||
qtbase
|
||||
trust-store
|
||||
ubports-click
|
||||
upower
|
||||
];
|
||||
@ -163,6 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# QML components and schemas the wrapper needs
|
||||
propagatedBuildInputs = [
|
||||
ayatana-indicator-datetime
|
||||
biometryd
|
||||
content-hub
|
||||
libqofono
|
||||
lomiri-indicator-network
|
||||
@ -177,9 +136,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
||||
xvfb-run
|
||||
];
|
||||
|
||||
@ -194,19 +151,21 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_LIBDEVICEINFO" true)
|
||||
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
|
||||
# Hits OpenGL context issue inside lomiri-ui-toolkit, see derivation of that on details
|
||||
"^testmouse"
|
||||
"^tst_notifications"
|
||||
]})")
|
||||
]))
|
||||
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (
|
||||
lib.concatStringsSep ";" [
|
||||
# Exclude tests
|
||||
"-E"
|
||||
(lib.strings.escapeShellArg "(${
|
||||
lib.concatStringsSep "|" [
|
||||
# Hits OpenGL context issue inside lomiri-ui-toolkit, see derivation of that on details
|
||||
"^testmouse"
|
||||
"^tst_notifications"
|
||||
]
|
||||
})")
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
# CMake option had to be excluded from earlier patchset
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString (lib.strings.versionOlder python3.pkgs.python-dbusmock.version "0.30.1") "-DMODERN_PYTHON_DBUSMOCK";
|
||||
|
||||
# The linking for this normally ignores missing symbols, which is inconvenient for figuring out why subpages may be
|
||||
# failing to load their library modules. Force it to report them at linktime instead of runtime.
|
||||
env.NIX_LDFLAGS = "--unresolved-symbols=report-all";
|
||||
@ -218,7 +177,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
preCheck = ''
|
||||
export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
|
||||
export QML2_IMPORT_PATH=${lib.makeSearchPathOutput "bin" qtbase.qtQmlPrefix ([ qtdeclarative lomiri-ui-toolkit lomiri-settings-components ] ++ lomiri-ui-toolkit.propagatedBuildInputs)}
|
||||
export QML2_IMPORT_PATH=${
|
||||
lib.makeSearchPathOutput "bin" qtbase.qtQmlPrefix (
|
||||
[
|
||||
qtdeclarative
|
||||
lomiri-ui-toolkit
|
||||
lomiri-settings-components
|
||||
]
|
||||
++ lomiri-ui-toolkit.propagatedBuildInputs
|
||||
)
|
||||
}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
@ -244,8 +212,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mainProgram = "lomiri-system-settings";
|
||||
maintainers = teams.lomiri.members;
|
||||
platforms = platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"LomiriSystemSettings"
|
||||
];
|
||||
pkgConfigModules = [ "LomiriSystemSettings" ];
|
||||
};
|
||||
})
|
||||
|
@ -1,94 +0,0 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, biometryd
|
||||
, cmake
|
||||
, libqtdbusmock
|
||||
, libqtdbustest
|
||||
, lomiri-system-settings-unwrapped
|
||||
, pkg-config
|
||||
, polkit
|
||||
, python3
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, trust-store
|
||||
, xvfb-run
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-system-settings-security-privacy";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/lomiri-system-settings-security-privacy";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-d7OgxV362gJ3t5N+DEFgwyK+m6Ij6juRPuxfmbCg68Y=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# CMake pkg_get_variable cannot replace prefix variable yet
|
||||
for pcvar in plugin_manifest_dir plugin_private_module_dir plugin_qml_dir; do
|
||||
pcvarname=$(echo $pcvar | tr '[:lower:]' '[:upper:]')
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "pkg_get_variable($pcvarname LomiriSystemSettings $pcvar)" "set($pcvarname $(pkg-config LomiriSystemSettings --define-variable=prefix=$out --define-variable=libdir=$out/lib --variable=$pcvar))"
|
||||
done
|
||||
|
||||
# Compatibility with newer libqofono
|
||||
substituteInPlace plugins/security-privacy/{Ofono,PageComponent,SimPin}.qml \
|
||||
--replace-fail 'import MeeGo.QOfono' 'import QOfono'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
python3
|
||||
qtdeclarative
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
lomiri-system-settings-unwrapped
|
||||
polkit
|
||||
qtbase
|
||||
qtdeclarative
|
||||
trust-store
|
||||
];
|
||||
|
||||
# QML components and schemas the wrapper needs
|
||||
propagatedBuildInputs = [
|
||||
biometryd
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
xvfb-run
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
libqtdbusmock
|
||||
libqtdbustest
|
||||
];
|
||||
|
||||
# Plugin library & modules for LSS
|
||||
dontWrapQtApps = true;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
];
|
||||
|
||||
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
preCheck = ''
|
||||
export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Security and privacy settings plugin for Lomiri system settings";
|
||||
homepage = "https://gitlab.com/ubports/development/core/lomiri-system-settings-security-privacy";
|
||||
changelog = "https://gitlab.com/ubports/development/core/lomiri-system-settings-security-privacy/-/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = teams.lomiri.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
@ -1,13 +1,13 @@
|
||||
{ stdenvNoCC
|
||||
, lib
|
||||
, nixosTests
|
||||
, glib
|
||||
, lndir
|
||||
, lomiri-system-settings-unwrapped
|
||||
, lomiri-system-settings-security-privacy
|
||||
, wrapGAppsHook3
|
||||
, wrapQtAppsHook
|
||||
, plugins ? [ lomiri-system-settings-security-privacy ]
|
||||
{
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
nixosTests,
|
||||
glib,
|
||||
lndir,
|
||||
lomiri-system-settings-unwrapped,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
plugins ? [ ],
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
@ -1,90 +1,82 @@
|
||||
{ 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_2_15
|
||||
, nixos-icons
|
||||
, pam
|
||||
, pkg-config
|
||||
, properties-cpp
|
||||
, protobuf
|
||||
, python3
|
||||
, qmenumodel
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, qtmir
|
||||
, qtmultimedia
|
||||
, qtsvg
|
||||
, telephony-service
|
||||
, wrapGAppsHook3
|
||||
, wrapQtAppsHook
|
||||
, xwayland
|
||||
{
|
||||
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_2_15,
|
||||
nixos-icons,
|
||||
pam,
|
||||
pkg-config,
|
||||
properties-cpp,
|
||||
protobuf,
|
||||
python3,
|
||||
qmenumodel,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
qtmir,
|
||||
qtmultimedia,
|
||||
qtsvg,
|
||||
telephony-service,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
xwayland,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri";
|
||||
version = "0.2.1";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/lomiri";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-V5Lt870eHgmJ63OF8bTiNFLAFrxdgNihkd7aodSO3v8=";
|
||||
hash = "sha256-Godl/SQ0+NkI6kwH85SXHPQ5GRlih3xvCyeYxwiqH/s=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove when version > 0.2.1
|
||||
# Remove when version > 0.3.0
|
||||
(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=";
|
||||
name = "0001-lomiri-Fix-accountsservice-test.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri/-/commit/353153c4ebc40ffcc7702af42205d2075fc81503.patch";
|
||||
hash = "sha256-J9ySZgWd7KR7aU1cCRu5iirq7bi3NdLR9SZs9Pd1I8w=";
|
||||
})
|
||||
|
||||
# Fix greeter & related settings
|
||||
@ -116,62 +108,51 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-guq/Ykcq4WcuXxNKO1eA4sJFyGSpZo0gtyFTdeK/GeE=";
|
||||
})
|
||||
|
||||
# fetchpatch2 for renames
|
||||
# Remove when version > 0.2.1
|
||||
(fetchpatch2 {
|
||||
name = "1010-lomiri-QOfono-namespace.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lomiri/-/commit/d0397dadb5f05097f916c5b39e6d9b95d4ab9e4d.patch";
|
||||
hash = "sha256-wIkHlz2vYxF9eeH/sYYEdD9f8m4ylHEXXnX/DFG3HXg=";
|
||||
})
|
||||
|
||||
./9901-lomiri-Disable-Wizard.patch
|
||||
./9902-lomiri-Check-NIXOS_XKB_LAYOUTS.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'
|
||||
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'
|
||||
|
||||
# Part of QOfono namespace patch, fetchpatch2 cannot handle rename-only changes
|
||||
for unmovedThing in tests/mocks/MeeGo/QOfono/*; do
|
||||
mv "$unmovedThing" "tests/mocks/QOfono/$(basename "$unmovedThing")"
|
||||
done
|
||||
rmdir tests/mocks/MeeGo/QOfono
|
||||
rmdir tests/mocks/MeeGo
|
||||
# Written with a different qtmir branch in mind, but different branch breaks compat with some patches
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'qt5mir2server' 'qtmirserver'
|
||||
|
||||
# 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})'
|
||||
# Need to replace prefix
|
||||
substituteInPlace data/systemd-user/CMakeLists.txt \
|
||||
--replace-fail 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemd_user_unit_dir)' 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemd_user_unit_dir 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@/' ""
|
||||
# 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)' ""
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
'';
|
||||
# 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
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
dbus-test-runner
|
||||
glib # populates GSETTINGS_SCHEMAS_PATH
|
||||
pkg-config
|
||||
wrapGAppsHook3 # XDG_DATA_DIRS wrapper flags for schemas
|
||||
@ -224,11 +205,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
telephony-service
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
(python3.withPackages (ps: with ps; [
|
||||
python-dbusmock
|
||||
]))
|
||||
];
|
||||
nativeCheckInputs = [ (python3.withPackages (ps: with ps; [ python-dbusmock ])) ];
|
||||
|
||||
checkInputs = [
|
||||
libqtdbustest
|
||||
@ -243,6 +220,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck))
|
||||
(lib.cmakeBool "WITH_MIR2" true)
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
@ -266,7 +244,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wrapQtApp $out/bin/lomiri-mock-indicator-service
|
||||
|
||||
wrapProgram $out/bin/lomiri-greeter-wrapper \
|
||||
--prefix PATH : ${lib.makeBinPath [ coreutils dbus deviceinfo glib ]} \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
coreutils
|
||||
dbus
|
||||
deviceinfo
|
||||
glib
|
||||
]
|
||||
} \
|
||||
--set LOMIRI_BINARY "$out/bin/lomiri"
|
||||
|
||||
wrapProgram $out/libexec/Xwayland.lomiri \
|
||||
@ -277,12 +262,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.lomiri = nixosTests.lomiri;
|
||||
tests = {
|
||||
inherit (nixosTests.lomiri) greeter desktop desktop-ayatana-indicators;
|
||||
};
|
||||
updateScript = gitUpdater { };
|
||||
greeter = linkFarm "lomiri-greeter" [{
|
||||
path = "${finalAttrs.finalPackage}/share/lightdm/greeters/lomiri-greeter.desktop";
|
||||
name = "lomiri-greeter.desktop";
|
||||
}];
|
||||
greeter = linkFarm "lomiri-greeter" [
|
||||
{
|
||||
path = "${finalAttrs.finalPackage}/share/lightdm/greeters/lomiri-greeter.desktop";
|
||||
name = "lomiri-greeter.desktop";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,26 +1,18 @@
|
||||
From 30b5391c3f20180fe7427fe179ba26f846200d96 Mon Sep 17 00:00:00 2001
|
||||
From fa705235cafbeb4a016bdcb0067218b29506eb84 Mon Sep 17 00:00:00 2001
|
||||
From: OPNA2608 <opna2608@protonmail.com>
|
||||
Date: Mon, 3 Jun 2024 20:50:03 +0200
|
||||
Date: Fri, 19 Jul 2024 16:22:07 +0200
|
||||
Subject: [PATCH] Unset QT_QPA_PLATFORMTHEME
|
||||
|
||||
gtk3 value breaks Lomiri startup
|
||||
---
|
||||
lomiri-session | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
lomiri-session.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lomiri-session b/lomiri-session
|
||||
index 9d68249..b103840 100755
|
||||
--- a/lomiri-session
|
||||
+++ b/lomiri-session
|
||||
@@ -47,6 +47,7 @@ fi
|
||||
|
||||
# Set some envs
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
+export QT_QPA_PLATFORMTHEME=
|
||||
export QT_IM_MODULE=maliit
|
||||
export MALIIT_FORCE_DBUS_CONNECTION=1
|
||||
export UITK_ICON_THEME=suru
|
||||
@@ -55,6 +56,7 @@ dbus-update-activation-environment --systemd MALIIT_FORCE_DBUS_CONNECTION=1
|
||||
diff --git a/lomiri-session.in b/lomiri-session.in
|
||||
index 50dd4cb..ffc20c4 100755
|
||||
--- a/lomiri-session.in
|
||||
+++ b/lomiri-session.in
|
||||
@@ -55,6 +55,7 @@ dbus-update-activation-environment --systemd MALIIT_FORCE_DBUS_CONNECTION=1
|
||||
dbus-update-activation-environment --systemd QT_IM_MODULE=maliit
|
||||
dbus-update-activation-environment --systemd GTK_IM_MODULE=maliit
|
||||
dbus-update-activation-environment --systemd QT_QPA_PLATFORM=wayland
|
||||
|
@ -1,153 +1,40 @@
|
||||
{ stdenvNoCC
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, fetchpatch2
|
||||
, gitUpdater
|
||||
, nixosTests
|
||||
, bash
|
||||
, cmake
|
||||
, dbus
|
||||
, deviceinfo
|
||||
, inotify-tools
|
||||
, lomiri
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, runtimeShell
|
||||
, systemd
|
||||
{
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
bash,
|
||||
cmake,
|
||||
dbus,
|
||||
deviceinfo,
|
||||
inotify-tools,
|
||||
lomiri,
|
||||
makeWrapper,
|
||||
pkg-config,
|
||||
runtimeShell,
|
||||
systemd,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "lomiri-session";
|
||||
version = "0.2";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/lomiri-session";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-1ZpAn1tFtlXIfeejG0TnrJBRjf3tyz7CD+riWo+sd0s=";
|
||||
hash = "sha256-XduE3tPUjw/wIjFCACasxtN33KO4bDLWrpl7pZcYaAA=";
|
||||
};
|
||||
|
||||
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=";
|
||||
})
|
||||
|
||||
./1001-Unset-QT_QPA_PLATFORMTHEME.patch
|
||||
];
|
||||
patches = [ ./1001-Unset-QT_QPA_PLATFORMTHEME.patch ];
|
||||
|
||||
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 \
|
||||
substituteInPlace lomiri-session.in \
|
||||
--replace-fail '/usr/libexec/Xwayland.lomiri' '${lib.getBin lomiri}/libexec/Xwayland.lomiri'
|
||||
|
||||
substituteInPlace systemd/CMakeLists.txt \
|
||||
--replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -173,7 +60,13 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
postInstall = ''
|
||||
patchShebangs $out/bin/lomiri-session
|
||||
wrapProgram $out/bin/lomiri-session \
|
||||
--prefix PATH : ${lib.makeBinPath [ deviceinfo inotify-tools lomiri ]}
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
deviceinfo
|
||||
inotify-tools
|
||||
lomiri
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
@ -1,65 +1,72 @@
|
||||
{ lib
|
||||
, pkgs
|
||||
, libsForQt5
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
libsForQt5,
|
||||
}:
|
||||
|
||||
let
|
||||
packages = self: let
|
||||
inherit (self) callPackage;
|
||||
in {
|
||||
#### Core Apps
|
||||
lomiri = callPackage ./applications/lomiri { };
|
||||
lomiri-calculator-app = callPackage ./applications/lomiri-calculator-app { };
|
||||
lomiri-camera-app = callPackage ./applications/lomiri-camera-app { };
|
||||
lomiri-clock-app = callPackage ./applications/lomiri-clock-app { };
|
||||
lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
|
||||
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 { };
|
||||
lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { };
|
||||
morph-browser = callPackage ./applications/morph-browser { };
|
||||
teleports = callPackage ./applications/teleports { };
|
||||
packages =
|
||||
self:
|
||||
let
|
||||
inherit (self) callPackage;
|
||||
in
|
||||
{
|
||||
#### Core Apps
|
||||
lomiri = callPackage ./applications/lomiri { };
|
||||
lomiri-calculator-app = callPackage ./applications/lomiri-calculator-app { };
|
||||
lomiri-camera-app = callPackage ./applications/lomiri-camera-app { };
|
||||
lomiri-clock-app = callPackage ./applications/lomiri-clock-app { };
|
||||
lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
|
||||
lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
|
||||
lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
|
||||
lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { };
|
||||
morph-browser = callPackage ./applications/morph-browser { };
|
||||
teleports = callPackage ./applications/teleports { };
|
||||
|
||||
#### Data
|
||||
lomiri-schemas = callPackage ./data/lomiri-schemas { };
|
||||
lomiri-session = callPackage ./data/lomiri-session { };
|
||||
lomiri-sounds = callPackage ./data/lomiri-sounds { };
|
||||
lomiri-wallpapers = callPackage ./data/lomiri-wallpapers { };
|
||||
suru-icon-theme = callPackage ./data/suru-icon-theme { };
|
||||
#### Data
|
||||
lomiri-schemas = callPackage ./data/lomiri-schemas { };
|
||||
lomiri-session = callPackage ./data/lomiri-session { };
|
||||
lomiri-sounds = callPackage ./data/lomiri-sounds { };
|
||||
lomiri-wallpapers = callPackage ./data/lomiri-wallpapers { };
|
||||
suru-icon-theme = callPackage ./data/suru-icon-theme { };
|
||||
|
||||
#### Development tools / libraries
|
||||
cmake-extras = callPackage ./development/cmake-extras { };
|
||||
deviceinfo = callPackage ./development/deviceinfo { };
|
||||
geonames = callPackage ./development/geonames { };
|
||||
gmenuharness = callPackage ./development/gmenuharness { };
|
||||
libusermetrics = callPackage ./development/libusermetrics { };
|
||||
lomiri-api = callPackage ./development/lomiri-api { };
|
||||
lomiri-app-launch = callPackage ./development/lomiri-app-launch { };
|
||||
qtmir = callPackage ./development/qtmir { };
|
||||
trust-store = callPackage ./development/trust-store { };
|
||||
u1db-qt = callPackage ./development/u1db-qt { };
|
||||
#### Development tools / libraries
|
||||
cmake-extras = callPackage ./development/cmake-extras { };
|
||||
deviceinfo = callPackage ./development/deviceinfo { };
|
||||
geonames = callPackage ./development/geonames { };
|
||||
gmenuharness = callPackage ./development/gmenuharness { };
|
||||
libusermetrics = callPackage ./development/libusermetrics { };
|
||||
lomiri-api = callPackage ./development/lomiri-api { };
|
||||
lomiri-app-launch = callPackage ./development/lomiri-app-launch { };
|
||||
qtmir = callPackage ./development/qtmir { };
|
||||
trust-store = callPackage ./development/trust-store { };
|
||||
u1db-qt = callPackage ./development/u1db-qt { };
|
||||
|
||||
#### QML / QML-related
|
||||
lomiri-action-api = callPackage ./qml/lomiri-action-api { };
|
||||
lomiri-notifications = callPackage ./qml/lomiri-notifications { };
|
||||
lomiri-push-qml = callPackage ./qml/lomiri-push-qml { };
|
||||
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
|
||||
lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
|
||||
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
|
||||
qqc2-suru-style = callPackage ./qml/qqc2-suru-style { };
|
||||
#### QML / QML-related
|
||||
lomiri-action-api = callPackage ./qml/lomiri-action-api { };
|
||||
lomiri-notifications = callPackage ./qml/lomiri-notifications { };
|
||||
lomiri-push-qml = callPackage ./qml/lomiri-push-qml { };
|
||||
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
|
||||
lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
|
||||
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
|
||||
qqc2-suru-style = callPackage ./qml/qqc2-suru-style { };
|
||||
|
||||
#### Services
|
||||
biometryd = callPackage ./services/biometryd { };
|
||||
content-hub = callPackage ./services/content-hub { };
|
||||
hfd-service = callPackage ./services/hfd-service { };
|
||||
history-service = callPackage ./services/history-service { };
|
||||
lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
|
||||
lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
|
||||
lomiri-polkit-agent = callPackage ./services/lomiri-polkit-agent { };
|
||||
lomiri-thumbnailer = callPackage ./services/lomiri-thumbnailer { };
|
||||
lomiri-url-dispatcher = callPackage ./services/lomiri-url-dispatcher { };
|
||||
mediascanner2 = callPackage ./services/mediascanner2 { };
|
||||
telephony-service = callPackage ./services/telephony-service { };
|
||||
};
|
||||
#### Services
|
||||
biometryd = callPackage ./services/biometryd { };
|
||||
content-hub = callPackage ./services/content-hub { };
|
||||
hfd-service = callPackage ./services/hfd-service { };
|
||||
history-service = callPackage ./services/history-service { };
|
||||
lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
|
||||
lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
|
||||
lomiri-polkit-agent = callPackage ./services/lomiri-polkit-agent { };
|
||||
lomiri-thumbnailer = callPackage ./services/lomiri-thumbnailer { };
|
||||
lomiri-url-dispatcher = callPackage ./services/lomiri-url-dispatcher { };
|
||||
mediascanner2 = callPackage ./services/mediascanner2 { };
|
||||
telephony-service = callPackage ./services/telephony-service { };
|
||||
};
|
||||
in
|
||||
lib.makeScope libsForQt5.newScope packages
|
||||
lib.makeScope libsForQt5.newScope packages
|
||||
// lib.optionalAttrs config.allowAliases {
|
||||
lomiri-system-settings-security-privacy = lib.warn "`lomiri-system-settings-security-privacy` upstream was merged into `lomiri-system-settings`. Please use `pkgs.lomiri.lomiri-system-settings-unwrapped` if you need to directly access the plugins that belonged to this project." pkgs.lomiri.lomiri-system-settings-unwrapped; # Added on 2024-08-08
|
||||
}
|
||||
|
@ -136,11 +136,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# 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"
|
||||
]})")
|
||||
]))
|
||||
];
|
||||
|
4
pkgs/development/interpreters/spidermonkey/128.nix
Normal file
4
pkgs/development/interpreters/spidermonkey/128.nix
Normal file
@ -0,0 +1,4 @@
|
||||
import ./common.nix {
|
||||
version = "128.1.0";
|
||||
hash = "sha512-gFWn+DrPDKthJLpYCa/xwILoGg0w/zGOxxn4/T9K+apg4glMGr1smBGT11EHWpVpNwF24g5Q88GVn+J6FVETiA==";
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
From a26bb162d9403138d64b84e8fa4f0471084c45b2 Mon Sep 17 00:00:00 2001
|
||||
From: "Kirill A. Korinsky" <kirill@korins.ky>
|
||||
Date: Fri, 8 Jul 2022 21:21:25 +0200
|
||||
Subject: [PATCH] Allow system's nspr and icu on bootstrapped sysroot
|
||||
|
||||
This patch partially reverts https://github.com/mozilla/gecko-dev/commit/9aa3587bbf0416dd2eb5b614f7b301c71c64286b
|
||||
---
|
||||
build/moz.configure/nspr.configure | 2 +-
|
||||
js/moz.configure | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/build/moz.configure/nspr.configure b/build/moz.configure/nspr.configure
|
||||
index bc6d62982b87a..8346f08b86923 100644
|
||||
--- a/build/moz.configure/nspr.configure
|
||||
+++ b/build/moz.configure/nspr.configure
|
||||
@@ -19,7 +19,7 @@ def enable_nspr_build(enable):
|
||||
return enable
|
||||
|
||||
|
||||
-system_lib_option(
|
||||
+option(
|
||||
"--with-system-nspr",
|
||||
help="Use system NSPR",
|
||||
when=use_pkg_config,
|
||||
diff --git a/js/moz.configure b/js/moz.configure
|
||||
index 8fb51095876fa..7629b29d33c8f 100644
|
||||
--- a/js/moz.configure
|
||||
+++ b/js/moz.configure
|
||||
@@ -1296,7 +1296,7 @@ set_define(
|
||||
|
||||
# ECMAScript Internationalization API Support (uses ICU)
|
||||
# ======================================================
|
||||
-system_lib_option(
|
||||
+option(
|
||||
"--with-system-icu",
|
||||
help="Use system ICU",
|
||||
when=use_pkg_config,
|
@ -0,0 +1,22 @@
|
||||
From 9d3f6e9ff5e66af90a5d187d902f7893fb91c24b Mon Sep 17 00:00:00 2001
|
||||
From: "Kirill A. Korinsky" <kirill@korins.ky>
|
||||
Date: Fri, 1 Jul 2022 12:23:37 +0200
|
||||
Subject: [PATCH] Always check for pkg-config
|
||||
|
||||
---
|
||||
build/moz.configure/pkg.configure | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletions(-)
|
||||
|
||||
diff --git a/build/moz.configure/pkg.configure b/build/moz.configure/pkg.configure
|
||||
index 418331b874f47..09cc40eda03fa 100644
|
||||
--- a/build/moz.configure/pkg.configure
|
||||
+++ b/build/moz.configure/pkg.configure
|
||||
@@ -12,7 +12,7 @@ def pkg_config(prefixes):
|
||||
|
||||
@depends(compile_environment, target)
|
||||
def use_pkg_config(compile_environment, target):
|
||||
- return compile_environment and target.os not in ("WINNT", "OSX", "Android")
|
||||
+ return compile_environment
|
||||
|
||||
|
||||
pkg_config = check_prog(
|
@ -15,6 +15,8 @@
|
||||
, python3
|
||||
, python39
|
||||
, python311
|
||||
, rust-cbindgen
|
||||
, rustPlatform
|
||||
, rustc
|
||||
, which
|
||||
, zip
|
||||
@ -59,10 +61,14 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||
# - https://hg.mozilla.org/mozilla-central/rev/ec48f15d085c
|
||||
# - https://hg.mozilla.org/mozilla-central/rev/6803dda74d33
|
||||
./add-riscv64-support.patch
|
||||
] ++ lib.optionals (lib.versionAtLeast version "102") [
|
||||
] ++ lib.optionals (lib.versionAtLeast version "102" && lib.versionOlder version "128") [
|
||||
# use pkg-config at all systems
|
||||
./always-check-for-pkg-config.patch
|
||||
./allow-system-s-nspr-and-icu-on-bootstrapped-sysroot.patch
|
||||
] ++ lib.optionals (lib.versionAtLeast version "128") [
|
||||
# rebased version of the above 2 patches
|
||||
./always-check-for-pkg-config-128.patch
|
||||
./allow-system-s-nspr-and-icu-on-bootstrapped-sysroot-128.patch
|
||||
] ++ lib.optionals (lib.versionAtLeast version "91" && stdenv.hostPlatform.system == "i686-linux") [
|
||||
# Fixes i686 build, https://bugzilla.mozilla.org/show_bug.cgi?id=1729459
|
||||
./fix-float-i686.patch
|
||||
@ -94,6 +100,9 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||
rustc.llvmPackages.llvm # for llvm-objdump
|
||||
which
|
||||
zip
|
||||
] ++ lib.optionals (lib.versionAtLeast version "128") [
|
||||
rust-cbindgen
|
||||
rustPlatform.bindgenHook
|
||||
] ++ lib.optionals (lib.versionOlder version "91") [
|
||||
autoconf213
|
||||
yasm # to buid icu? seems weird
|
||||
@ -161,7 +170,9 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||
"class JS_PUBLIC_API SharedArrayRawBufferRefs {"
|
||||
'';
|
||||
|
||||
preConfigure = lib.optionalString (lib.versionOlder version "91") ''
|
||||
preConfigure = lib.optionalString (lib.versionAtLeast version "128") ''
|
||||
export MOZBUILD_STATE_PATH=$TMPDIR/mozbuild
|
||||
'' + lib.optionalString (lib.versionOlder version "91") ''
|
||||
export CXXFLAGS="-fpermissive"
|
||||
'' + ''
|
||||
export LIBXUL_DIST=$out
|
||||
|
@ -19,13 +19,13 @@
|
||||
}@inputs:
|
||||
(if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec {
|
||||
pname = "dlib";
|
||||
version = "19.24.4";
|
||||
version = "19.24.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davisking";
|
||||
repo = "dlib";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1A/9u+ThtUtmmSwnFSn8S65Yavucl2X+o3bNYgew0Oc=";
|
||||
sha256 = "sha256-ge35ZytgEbUVG2IWEPp6o9qhQ6z8UnuBR1k7sMRr4j0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -250,14 +250,14 @@ buildLuarocksPackage {
|
||||
commons-nvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "commons.nvim";
|
||||
version = "18.0.0-1";
|
||||
version = "19.0.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/commons.nvim-18.0.0-1.rockspec";
|
||||
sha256 = "073cmh0a1kqzw71ckir8rk6nrhi14rc96vmxzhl4zbfyr3ji05r7";
|
||||
url = "mirror://luarocks/commons.nvim-19.0.0-1.rockspec";
|
||||
sha256 = "0ispimmwx2zh8jpdhdqk0r837y6959l9r2y8iri6l67dnfy7j4ky";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/linrongbin16/commons.nvim/archive/75407685b543cdb2263e92366bc4f3c828f4ad69.zip";
|
||||
sha256 = "0zm0kjch5rzdkv6faksw16lmhxkil2sdhfl7xvdyc0z830d1k2km";
|
||||
url = "https://github.com/linrongbin16/commons.nvim/archive/ab59d5ab57d02bcb2b29234637c79ff74d7693b6.zip";
|
||||
sha256 = "0n7dpwhs1f6rmxvjhqj1vs29apmmcbdwcifjjxi13vdxmx1zn2dq";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -363,22 +363,22 @@ buildLuarocksPackage {
|
||||
};
|
||||
}) {};
|
||||
|
||||
cyan = callPackage({ argparse, buildLuarocksPackage, fetchFromGitHub, fetchurl, luafilesystem, tl }:
|
||||
cyan = callPackage({ argparse, buildLuarocksPackage, fetchFromGitHub, fetchurl, luafilesystem, luasystem, tl }:
|
||||
buildLuarocksPackage {
|
||||
pname = "cyan";
|
||||
version = "0.3.0-1";
|
||||
version = "0.3.1-2";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/cyan-0.3.0-1.rockspec";
|
||||
sha256 = "1bs5gwgdhibj2gm8y3810b0hh6s9n00fgij8nnjag9kpqrd80vsj";
|
||||
url = "mirror://luarocks/cyan-0.3.1-2.rockspec";
|
||||
sha256 = "1fsz3a05blm45qv690w51fa7scqc7l7f3fcj8s8isax89gjbqvgy";
|
||||
}).outPath;
|
||||
src = fetchFromGitHub {
|
||||
owner = "teal-language";
|
||||
repo = "cyan";
|
||||
rev = "992e573ca58e55ae33c420ea0f620b2daf5fa9c0";
|
||||
hash = "sha256-vuRB+0gmwUmFnt+A6m6aa0c54dPZSY4EohHjTcRQRZs=";
|
||||
rev = "v0.3.1";
|
||||
hash = "sha256-cqQoWR4lIvYAWp5o9jivpjiILO1ECFhCyXG1+vc2yIM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ argparse luafilesystem tl ];
|
||||
propagatedBuildInputs = [ argparse luafilesystem luasystem tl ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/teal-language/cyan";
|
||||
@ -422,7 +422,7 @@ buildLuarocksPackage {
|
||||
}).outPath;
|
||||
src = fetchurl {
|
||||
url = "http://dkolf.de/dkjson-lua/dkjson-2.8.tar.gz";
|
||||
hash = "sha256-JOjNO+uRwchh63uz+8m9QYu/+a1KpdBHGBYlgjajFTI=";
|
||||
sha256 = "0js9z5ja3ws1i9gj2m673459rwm0gadxbf86mcif7d8286h61yh9";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.5";
|
||||
@ -434,23 +434,25 @@ buildLuarocksPackage {
|
||||
};
|
||||
}) {};
|
||||
|
||||
fennel = callPackage({ buildLuarocksPackage, fetchurl, luaOlder }:
|
||||
fennel = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "fennel";
|
||||
version = "1.4.2-1";
|
||||
version = "1.5.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/fennel-1.4.2-1.rockspec";
|
||||
sha256 = "17ygacyqdvplyz3046ay3xr4z83sdjrxkcl21mklpxx29j8p0bv1";
|
||||
url = "mirror://luarocks/fennel-1.5.0-1.rockspec";
|
||||
sha256 = "0h3a8pinazcp3r3pwkm5inh0aynq9iizljhpk6sj8zhhp0s0bi4g";
|
||||
}).outPath;
|
||||
src = fetchurl {
|
||||
url = "https://fennel-lang.org/downloads/fennel-1.4.2.tar.gz";
|
||||
sha256 = "1inhy8rrywx8svdzhy1yaaa0cfyrmi21ckj7h8xmd7yqaw66ma86";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bakpakin";
|
||||
repo = "Fennel";
|
||||
rev = "1.5.0";
|
||||
hash = "sha256-4jF22lpfapxQvwH/vQh/ePiEfOc8pP2b7roOzPXZRTQ=";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
|
||||
meta = {
|
||||
homepage = "https://fennel-lang.org/";
|
||||
homepage = "https://fennel-lang.org";
|
||||
description = "A lisp that compiles to Lua";
|
||||
maintainers = with lib.maintainers; [ misterio77 ];
|
||||
license.fullName = "MIT";
|
||||
@ -553,14 +555,14 @@ buildLuarocksPackage {
|
||||
fzf-lua = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "fzf-lua";
|
||||
version = "0.0.1349-1";
|
||||
version = "0.0.1415-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/fzf-lua-0.0.1349-1.rockspec";
|
||||
sha256 = "0v9frrq896d3k3xvz0ch51r2chrw4kalp5d2jb365wpnk4zda1lj";
|
||||
url = "mirror://luarocks/fzf-lua-0.0.1415-1.rockspec";
|
||||
sha256 = "039hy10ml25z2kvm5xiayvswx42rj4di119vgl2ncrfvlr5lnxdf";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/ibhagwan/fzf-lua/archive/1ec6eeda11c3a3dcd544e1c61ad4b8c9b49903c4.zip";
|
||||
sha256 = "0iw3khl164qvypm7v591gyncjfpmwx6wy45a80zz922iiifgjfgd";
|
||||
url = "https://github.com/ibhagwan/fzf-lua/archive/e9413dc2b6e8ab7f62385c972df1dceba483492d.zip";
|
||||
sha256 = "09bh0rjx9g96vz0zfnpi4ych64qawrj1rgrpznkjn1cph8qayj35";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -604,8 +606,8 @@ buildLuarocksPackage {
|
||||
src = fetchFromGitHub {
|
||||
owner = "lewis6991";
|
||||
repo = "gitsigns.nvim";
|
||||
rev = "17e8fd66182c9ad79dc129451ad015af3d27529c";
|
||||
hash = "sha256-Mq3NC/DpEEOZlgKctjQqa1RMJHVSAy6jfL4IitObgzs=";
|
||||
rev = "562dc47189ad3c8696dbf460d38603a74d544849";
|
||||
hash = "sha256-NNoqXn24Fzkopx1/Xwcv41EpqHwpcMPrQWLfXcPtha4=";
|
||||
};
|
||||
|
||||
disabled = lua.luaversion != "5.1";
|
||||
@ -634,7 +636,7 @@ buildLuarocksPackage {
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mrcjkb/haskell-tools.nvim";
|
||||
description = "Supercharge your Haskell experience in neovim!";
|
||||
description = " 🦥 Supercharge your Haskell experience in neovim!";
|
||||
maintainers = with lib.maintainers; [ mrcjkb ];
|
||||
license.fullName = "GPL-2.0";
|
||||
};
|
||||
@ -1348,16 +1350,16 @@ buildLuarocksPackage {
|
||||
lua-resty-openssl = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl }:
|
||||
buildLuarocksPackage {
|
||||
pname = "lua-resty-openssl";
|
||||
version = "1.4.0-1";
|
||||
version = "1.5.1-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/lua-resty-openssl-1.4.0-1.rockspec";
|
||||
sha256 = "027fqpbhq0ygh9z7za2hv7wm6ylll8km4czvjfclscm4p55bj10q";
|
||||
url = "mirror://luarocks/lua-resty-openssl-1.5.1-1.rockspec";
|
||||
sha256 = "1xqwsh3r9dmasc46c3dwili7g9p427yh7xdvcpiz7pr25y35saps";
|
||||
}).outPath;
|
||||
src = fetchFromGitHub {
|
||||
owner = "fffonion";
|
||||
repo = "lua-resty-openssl";
|
||||
rev = "1.4.0";
|
||||
hash = "sha256-gmsKpt42hgjqhzibYXbdWyj2MqOyC8FlhMY7xiXdtFQ=";
|
||||
rev = "1.5.1";
|
||||
hash = "sha256-wkc/9t2jXM2yPEd9ozAMcNe3WsS3MbN01OQ/9sI37Eg=";
|
||||
};
|
||||
|
||||
|
||||
@ -2039,21 +2041,21 @@ buildLuarocksPackage {
|
||||
luarocks-build-rust-mlua = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl }:
|
||||
buildLuarocksPackage {
|
||||
pname = "luarocks-build-rust-mlua";
|
||||
version = "0.2.0-1";
|
||||
version = "0.2.2-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/luarocks-build-rust-mlua-0.2.0-1.rockspec";
|
||||
sha256 = "0mpxj2wpzgqffic1j6agisaawbfhh16gis29x6y60kyjq446mv0z";
|
||||
url = "mirror://luarocks/luarocks-build-rust-mlua-0.2.2-1.rockspec";
|
||||
sha256 = "0y9ms0cf0jp4b26m6qbxsj4s4ng4z112qq4wc79q7xm7zw9dha4p";
|
||||
}).outPath;
|
||||
src = fetchFromGitHub {
|
||||
owner = "khvzak";
|
||||
owner = "mlua-rs";
|
||||
repo = "luarocks-build-rust-mlua";
|
||||
rev = "0.2.0";
|
||||
hash = "sha256-f6trXv2/gzbitLXwHHrZnowEA/V5Yjb3Q9YlYr+9NBw=";
|
||||
rev = "0.2.2";
|
||||
hash = "sha256-vyFX5LFGrC+RXjmwLgBdmVawOCNatJva53MFvKa7ozM=";
|
||||
};
|
||||
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/khvzak/luarocks-build-rust-mlua";
|
||||
homepage = "https://github.com/mlua-rs/luarocks-build-rust-mlua";
|
||||
description = "A LuaRocks build backend for Lua modules written in Rust using mlua";
|
||||
maintainers = with lib.maintainers; [ mrcjkb ];
|
||||
license.fullName = "MIT";
|
||||
@ -2066,11 +2068,11 @@ buildLuarocksPackage {
|
||||
version = "4.1.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/luarocks-build-treesitter-parser-4.1.0-1.rockspec";
|
||||
sha256 = "0r3r8dvjn9zvpj06932ijqwypq636zv2vpq5pcj83xfvvi3fd2rw";
|
||||
sha256 = "sha256-PIvmRtzb9YEkuwXfLfY3w+DrOZZRjGSAvPsnK3dDeWQ=";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neorocks/luarocks-build-treesitter-parser/archive/v4.1.0.zip";
|
||||
sha256 = "1838q30n2xjb8cmhlzxax0kzvxhsdrskkk4715kkca8zk6i3zm98";
|
||||
sha256 = "sha256-KNU/opkfKTZnCYfMOXVuGvb9J+iqfworQ0t2YcHAaKA=";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2210,16 +2212,16 @@ buildLuarocksPackage {
|
||||
luasystem = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "luasystem";
|
||||
version = "0.4.0-1";
|
||||
version = "0.4.2-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/luasystem-0.4.0-1.rockspec";
|
||||
sha256 = "0brvqqxfz1w4l4nzaxds1d17flq7rx6lw8pjb565fyb2jhg39qc9";
|
||||
url = "mirror://luarocks/luasystem-0.4.2-1.rockspec";
|
||||
sha256 = "15z4n7pbggg1wy397k9mx0jls31snvw0dgr9yklwi4sayfcva3ip";
|
||||
}).outPath;
|
||||
src = fetchFromGitHub {
|
||||
owner = "lunarmodules";
|
||||
repo = "luasystem";
|
||||
rev = "v0.4.0";
|
||||
hash = "sha256-I1dG6ccOQAwpe18DjiYijKjerk+yDRic6fEERSte2Ks=";
|
||||
rev = "v0.4.2";
|
||||
hash = "sha256-xYfHK/OtOFtGHAZTPDp/BTywAcCqJIx8+zt3/HPon0w=";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2358,8 +2360,8 @@ buildLuarocksPackage {
|
||||
src = fetchFromGitHub {
|
||||
owner = "rktjmp";
|
||||
repo = "lush.nvim";
|
||||
rev = "7c0e27f50901481fe83b974493c4ea67a4296aeb";
|
||||
hash = "sha256-GVGIZPBrunaWexwdnkbc0LxM3xMHslrwON2FunN3TDE=";
|
||||
rev = "6a254139d077ad53be7e4f3602c8da0c84447fd9";
|
||||
hash = "sha256-gutr36WJRktDxmRjNo0v5tn030nMsAe8vRWx/vKFa2o=";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
||||
@ -2404,7 +2406,7 @@ buildLuarocksPackage {
|
||||
}).outPath;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/luvit/luv/releases/download/1.48.0-2/luv-1.48.0-2.tar.gz";
|
||||
sha256 = "2c3a1ddfebb4f6550293a40ee789f7122e97647eede51511f57203de48c03b7a";
|
||||
sha256 = "0yivq14dw0vjyl8ibrgdgrj9fbhjyy4yf3m4jc15bxmlxggisfic";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2625,14 +2627,14 @@ buildLuarocksPackage {
|
||||
neotest = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder, nvim-nio, plenary-nvim }:
|
||||
buildLuarocksPackage {
|
||||
pname = "neotest";
|
||||
version = "5.3.3-1";
|
||||
version = "5.4.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/neotest-5.3.3-1.rockspec";
|
||||
sha256 = "0bji9bfh129l9find3asakr97pxq76gdjp96gyibv02m4j0hgqjz";
|
||||
url = "mirror://luarocks/neotest-5.4.0-1.rockspec";
|
||||
sha256 = "0bk5z3p2v6m2nwxh82xk0xsqb23xa9i13vfgnd9h9qy3r42jqmmj";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neotest/neotest/archive/f30bab1faef13d47f3905e065215c96a42d075ad.zip";
|
||||
sha256 = "04jsfxq9xs751wspqbi850bwykyzf0d4fw4ar5gqwij34zja19h7";
|
||||
url = "https://github.com/nvim-neotest/neotest/archive/32ff2ac21135a372a42b38ae131e531e64833bd3.zip";
|
||||
sha256 = "144wzzadhrg48fkihffk6jf9c0ij8dg9gng6mcxq5z8mdcvz0124";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2701,8 +2703,8 @@ buildLuarocksPackage {
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrsh7th";
|
||||
repo = "nvim-cmp";
|
||||
rev = "a110e12d0b58eefcf5b771f533fc2cf3050680ac";
|
||||
hash = "sha256-7tEfEjWH5pneI10jLYpenoysRQPa2zPGLTNcbMX3x2I=";
|
||||
rev = "ae644feb7b67bf1ce4260c231d1d4300b19c6f30";
|
||||
hash = "sha256-NcodgUp8obTsjgc+5j2dKr0f3FelYikQTJngfZXRZzo=";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1" || luaAtLeast "5.4";
|
||||
@ -2717,14 +2719,14 @@ buildLuarocksPackage {
|
||||
nvim-nio = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "nvim-nio";
|
||||
version = "1.9.4-1";
|
||||
version = "1.10.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/nvim-nio-1.9.4-1.rockspec";
|
||||
sha256 = "05xccwawl82xjwxmpihb6v4l7sp0msc6hhgs8mgzbsclznf78052";
|
||||
url = "mirror://luarocks/nvim-nio-1.10.0-1.rockspec";
|
||||
sha256 = "1dkspn96vvk38l809c7bl2gnjxkj8yj4aj6s5859pz4pxvxzs8p6";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neotest/nvim-nio/archive/7969e0a8ffabdf210edd7978ec954a47a737bbcc.zip";
|
||||
sha256 = "0ip31k5rnmv47rbka1v5mhljmff7friyj4gcqzz4hqj1yccfl1l0";
|
||||
url = "https://github.com/nvim-neotest/nvim-nio/archive/a428f309119086dc78dd4b19306d2d67be884eee.zip";
|
||||
sha256 = "0n40q6znpy1xzywd1hwyivx7y1n0i0fcp3m7jp0vgipm6qssda4b";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2880,14 +2882,14 @@ buildLuarocksPackage {
|
||||
rocks-config-nvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder, rocks-nvim }:
|
||||
buildLuarocksPackage {
|
||||
pname = "rocks-config.nvim";
|
||||
version = "2.0.0-1";
|
||||
version = "2.2.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/rocks-config.nvim-2.0.0-1.rockspec";
|
||||
sha256 = "0vkzhz6szbm6cy4301c103kck36zgk8ig2ssipclca392cq36716";
|
||||
url = "mirror://luarocks/rocks-config.nvim-2.2.0-1.rockspec";
|
||||
sha256 = "129zvspn6ln9yzsxfcgai8vyz7jysxvdf08yy19zdqj0q7swh1iq";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neorocks/rocks-config.nvim/archive/v2.0.0.zip";
|
||||
sha256 = "1gzpcvb79s8a0mxq331fhwgik4bkaj254avri50wm1y5qxb4n3nx";
|
||||
url = "https://github.com/nvim-neorocks/rocks-config.nvim/archive/v2.2.0.zip";
|
||||
sha256 = "0vchi7274j4yhs0mv1j2na8k1240xj42kz6787s0vf05xcnywbh6";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2904,14 +2906,14 @@ buildLuarocksPackage {
|
||||
rocks-dev-nvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder, nvim-nio, rocks-nvim, rtp-nvim }:
|
||||
buildLuarocksPackage {
|
||||
pname = "rocks-dev.nvim";
|
||||
version = "1.2.3-1";
|
||||
version = "1.3.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/rocks-dev.nvim-1.2.3-1.rockspec";
|
||||
sha256 = "0xhl0rmklhhlcsn268brj7hhl5lk2djhkllzna2rnjaq80cwsh5j";
|
||||
url = "mirror://luarocks/rocks-dev.nvim-1.3.0-1.rockspec";
|
||||
sha256 = "0s8k4kvd7j72ja6qwwxdsqjffkja8pdp95vml5wy9mqwxgvcb5c6";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neorocks/rocks-dev.nvim/archive/v1.2.3.zip";
|
||||
sha256 = "17sv49wl366jxriy0cxy3b1z8vans58jmjg4ap5dc9fmg6687jgs";
|
||||
url = "https://github.com/nvim-neorocks/rocks-dev.nvim/archive/v1.3.0.zip";
|
||||
sha256 = "1fhd4mjbwizszxq3wrcdsczljgssgswqi4ibi8kdmnd9biyvbx65";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2928,14 +2930,14 @@ buildLuarocksPackage {
|
||||
rocks-git-nvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder, nvim-nio, rocks-nvim }:
|
||||
buildLuarocksPackage {
|
||||
pname = "rocks-git.nvim";
|
||||
version = "1.5.1-1";
|
||||
version = "2.0.1-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/rocks-git.nvim-1.5.1-1.rockspec";
|
||||
sha256 = "0if5vaxggf4ryik5szm1p5dv324sybm9h3jbpl78ydd1kf0702m6";
|
||||
url = "mirror://luarocks/rocks-git.nvim-2.0.1-1.rockspec";
|
||||
sha256 = "0r341vg7x49lnmx77smab5hpjpzwih7jmchfh24xhnv6319d70yx";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neorocks/rocks-git.nvim/archive/v1.5.1.zip";
|
||||
sha256 = "05g31js2k2jjrz0a633vdfz21ji1a2by79yrfhi6wdmp167a5w99";
|
||||
url = "https://github.com/nvim-neorocks/rocks-git.nvim/archive/v2.0.1.zip";
|
||||
sha256 = "121x32915sr8il95jjpza2awvh4jknhgb99c091sb4vmdkg3pj24";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2952,14 +2954,14 @@ buildLuarocksPackage {
|
||||
rocks-nvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, fidget-nvim, fzy, luaOlder, luarocks, nvim-nio, rtp-nvim, toml-edit }:
|
||||
buildLuarocksPackage {
|
||||
pname = "rocks.nvim";
|
||||
version = "2.31.3-1";
|
||||
version = "2.36.1-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/rocks.nvim-2.31.3-1.rockspec";
|
||||
sha256 = "1rrsshsi6c5njcyaibz1mdvhyjl4kf2973kwahyk84j52fmwzwjv";
|
||||
url = "mirror://luarocks/rocks.nvim-2.36.1-1.rockspec";
|
||||
sha256 = "165kij3rk0inh9g3d3jpczhji9bjc7biz5r30xgw9q5xnafy4q38";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/nvim-neorocks/rocks.nvim/archive/v2.31.3.zip";
|
||||
sha256 = "07500g0jvicbxqmsqdb3dcjpmvd6wgwk8g34649f94nhqk3lglx5";
|
||||
url = "https://github.com/nvim-neorocks/rocks.nvim/archive/v2.36.1.zip";
|
||||
sha256 = "0zsrvngwwj9qxsxfbfgfin73aacs763sygixgiibq8rrl6gannxs";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
@ -2999,21 +3001,21 @@ buildLuarocksPackage {
|
||||
rustaceanvim = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder }:
|
||||
buildLuarocksPackage {
|
||||
pname = "rustaceanvim";
|
||||
version = "5.0.0-1";
|
||||
version = "5.2.0-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/rustaceanvim-5.0.0-1.rockspec";
|
||||
sha256 = "0rabhsya9qx4lybd47b6s95yh6y7nnngpfpqxf2h8pf492790yxc";
|
||||
url = "mirror://luarocks/rustaceanvim-5.2.0-1.rockspec";
|
||||
sha256 = "15pz9m5livp0n2bhal8wmg8hbhvyb6195ayzjcm3xsivplc4drns";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/mrcjkb/rustaceanvim/archive/5.0.0.zip";
|
||||
sha256 = "07a0r6lhwxsk3asrnwmj39j51kqaz33qi3kv9788nms3mpvplxc1";
|
||||
url = "https://github.com/mrcjkb/rustaceanvim/archive/5.2.0.zip";
|
||||
sha256 = "1mswi4fy0ggikl3cpwhx1lar5pb8zcfp9az8zb9cn00cmzf749s4";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mrcjkb/rustaceanvim";
|
||||
description = "Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim";
|
||||
description = "🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim";
|
||||
maintainers = with lib.maintainers; [ mrcjkb ];
|
||||
license.fullName = "GPL-2.0";
|
||||
};
|
||||
@ -3218,8 +3220,8 @@ buildLuarocksPackage {
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope.nvim";
|
||||
rev = "f2bfde705ac752c52544d5cfa8b0aee0a766c1ed";
|
||||
hash = "sha256-0fS3RYO/9gwmdK2H9Y/4Z/P++4aEHTHJqR2mH0vWAFY=";
|
||||
rev = "3b1600d0fd5172ad9fae00987362ca0ef3d8895d";
|
||||
hash = "sha256-F5TGzfPSDQY+AOzaDXStswHjkGQvnLeTWW5/xdBalpo=";
|
||||
};
|
||||
|
||||
disabled = lua.luaversion != "5.1";
|
||||
@ -3286,14 +3288,14 @@ buildLuarocksPackage {
|
||||
toml-edit = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder, luarocks-build-rust-mlua }:
|
||||
buildLuarocksPackage {
|
||||
pname = "toml-edit";
|
||||
version = "0.3.6-1";
|
||||
version = "0.4.1-1";
|
||||
knownRockspec = (fetchurl {
|
||||
url = "mirror://luarocks/toml-edit-0.3.6-1.rockspec";
|
||||
sha256 = "18fw256vzvfavfwrnzm507k4h3x2lx9l93ghr1ggsi4mhsnjki46";
|
||||
url = "mirror://luarocks/toml-edit-0.4.1-1.rockspec";
|
||||
sha256 = "180zdqrzffr7jr9xls895gj5hrx6pfs98rlxwzg71382jy1n79qi";
|
||||
}).outPath;
|
||||
src = fetchzip {
|
||||
url = "https://github.com/vhyrro/toml-edit.lua/archive/v0.3.6.zip";
|
||||
sha256 = "19v6axraj2n22lmilfr4x9nr40kcjb6wnpsfhf1mh2zy9nsd6ji6";
|
||||
url = "https://github.com/vhyrro/toml-edit.lua/archive/v0.4.1.zip";
|
||||
sha256 = "1322p490p6yza3lczfzmwf5nkfj4ra6m9g6hvr2qgay405wnpgy7";
|
||||
};
|
||||
|
||||
disabled = luaOlder "5.1";
|
||||
|
@ -143,15 +143,6 @@ in
|
||||
'';
|
||||
});
|
||||
|
||||
fennel = prev.fennel.overrideAttrs(oa: {
|
||||
nativeBuildInputs = oa.nativeBuildInputs ++ [
|
||||
installShellFiles
|
||||
];
|
||||
postInstall = ''
|
||||
installManPage fennel.1
|
||||
'';
|
||||
});
|
||||
|
||||
# Until https://github.com/swarn/fzy-lua/pull/8 is merged,
|
||||
# we have to invoke busted manually
|
||||
fzy = prev.fzy.overrideAttrs(oa: {
|
||||
@ -511,6 +502,9 @@ in
|
||||
|
||||
propagatedBuildInputs = oa.propagatedBuildInputs ++ [ cargo rustPlatform.cargoSetupHook ];
|
||||
|
||||
# ld: symbol(s) not found for architecture arm64
|
||||
# clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
|
||||
meta.broken = stdenv.isDarwin;
|
||||
});
|
||||
|
||||
lush-nvim = prev.lush-nvim.overrideAttrs (drv: {
|
||||
@ -810,7 +804,7 @@ in
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
src = oa.src;
|
||||
hash = "sha256-2P+mokkjdj2PccQG/kAGnIoUPVnK2FqNfYpHPhsp8kw=";
|
||||
hash = "sha256-PLihirhJshcUQI3L1eTcnQiZvocDl29eQHhdBwJQRU8=";
|
||||
};
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin
|
||||
|
@ -9,16 +9,16 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioairzone-cloud";
|
||||
version = "0.5.5";
|
||||
version = "0.6.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
disabled = pythonOlder "3.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Noltari";
|
||||
repo = "aioairzone-cloud";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-8IMEolbeXzqUHo139B9hu4FwelLZ4ENEDLHcaUjU/KE=";
|
||||
hash = "sha256-0aqY8Bg/kDSaNGSQ8hrlUQpfwYM3sVxQHm75/khgRTM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioairzone";
|
||||
version = "0.7.7";
|
||||
version = "0.8.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
owner = "Noltari";
|
||||
repo = "aioairzone";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-0YChwHxxINwvhOAmDPn0IUMOItMDDRx6mGbsz6uSIEU=";
|
||||
hash = "sha256-mi8zRnZ9fZEOzX+ZqKsQ+OpvzGRKa4qyInENh+KVoNg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioautomower";
|
||||
version = "2024.6.4";
|
||||
version = "2024.7.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "Thomas55555";
|
||||
repo = "aioautomower";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-v+wg/2JRBJ0VgRYOey92WGwVzHmxU9h/ev2oICefaMg=";
|
||||
hash = "sha256-tjdpQglhg78DsmtIHo5QDsP1U8f0fnaasF0IYUtrGh4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiobotocore";
|
||||
version = "2.13.0";
|
||||
version = "2.13.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
owner = "aio-libs";
|
||||
repo = "aiobotocore";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-8fsZCmzjM6JlX3HoRGt7zsezYIXnv411kkHG8rJqMuY=";
|
||||
hash = "sha256-tSxCRms/YstYXWCJWirzhf87ZH4WUav/n7QfMvBwj2s=";
|
||||
};
|
||||
|
||||
# Relax version constraints: aiobotocore works with newer botocore versions
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioesphomeapi";
|
||||
version = "24.6.1";
|
||||
version = "25.0.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
|
||||
owner = "esphome";
|
||||
repo = "aioesphomeapi";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-wvfAkV+EjGytPog3ik7NAC0rW8nkHufenGfapeQr1X0=";
|
||||
hash = "sha256-XV7hVBtruQxhJ154/hPrsjqxwI9nBfBgvcgGWW6BBKk=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
@ -43,6 +43,8 @@ buildPythonPackage rec {
|
||||
cython
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "cryptography" ];
|
||||
|
||||
dependencies = [
|
||||
aiohappyeyeballs
|
||||
async-interrupt
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiohomekit";
|
||||
version = "3.1.5";
|
||||
version = "3.2.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
owner = "Jc2k";
|
||||
repo = "aiohomekit";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-F3PhZsuIgT3x1Y3/kx9juPwN2WKxvdbahrRm+r6ZPps=";
|
||||
hash = "sha256-bv+xt6rp3cs8FhAw8b8Que5ABeD5+7z+LOb5C1PbzXI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
@ -1,51 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
aiohttp,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
poetry-core,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiohttp-fast-url-dispatcher";
|
||||
version = "0.3.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bdraco";
|
||||
repo = "aiohttp-fast-url-dispatcher";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-RBS17LhbaAOxFYGjmoEyrq2DCEHeZNpkITPDdCd7Jk0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace " --cov=aiohttp_fast_url_dispatcher --cov-report=term-missing:skip-covered" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
||||
pythonRelaxDeps = [ "aiohttp" ];
|
||||
|
||||
propagatedBuildInputs = [ aiohttp ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "aiohttp_fast_url_dispatcher" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Faster URL dispatcher for aiohttp";
|
||||
homepage = "https://github.com/bdraco/aiohttp-fast-url-dispatcher";
|
||||
changelog = "https://github.com/bdraco/aiohttp-fast-url-dispatcher/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -6,13 +6,14 @@
|
||||
fetchFromGitHub,
|
||||
poetry-core,
|
||||
pytest-asyncio,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiolifx-themes";
|
||||
version = "0.4.27";
|
||||
version = "0.5.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -21,16 +22,9 @@ buildPythonPackage rec {
|
||||
owner = "Djelibeybi";
|
||||
repo = "aiolifx-themes";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-5wUyp1g1O0Ar+2sE+/XSi7l9CmvGLgT1b0IWI4bnTbg=";
|
||||
hash = "sha256-mqYFLn+QrFCt8t5XUm0sfJxCRfqC20RFnhdzQMQUXbk=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
# Don't run coverage, or depend on typer for no reason.
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail " --cov=aiolifx_themes --cov-report=term-missing:skip-covered" "" \
|
||||
--replace-fail "typer = " "# unused: typer = "
|
||||
'';
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [ aiolifx ];
|
||||
@ -39,6 +33,7 @@ buildPythonPackage rec {
|
||||
async-timeout
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
pytest-cov-stub
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "aiolifx_themes" ];
|
||||
|
@ -13,7 +13,7 @@
|
||||
pytest-aiohttp,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pythonOlder,
|
||||
yarl,
|
||||
}:
|
||||
@ -50,7 +50,7 @@ buildPythonPackage rec {
|
||||
aresponses
|
||||
pytest-aiohttp
|
||||
pytest-asyncio
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioqsw";
|
||||
version = "0.3.5";
|
||||
version = "0.4.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "Noltari";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-kSwTHwVSMGyXA0SF74f9gyBN82XhdjdN6DWrQV0PiaU=";
|
||||
hash = "sha256-xXbOIG9gw1rO+iWdXNWWmweM83FpTLMuaDTcRZoMvL8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
34
pkgs/development/python-modules/aiorussound/default.nix
Normal file
34
pkgs/development/python-modules/aiorussound/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiorussound";
|
||||
version = "2.2.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "noahhusby";
|
||||
repo = "aiorussound";
|
||||
rev = version;
|
||||
hash = "sha256-X7KdIjfPNZSsSXYN1gVqTpcgM00V1YG3ihxutmYnb6Y=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
doCheck = false; # no tests
|
||||
|
||||
pythonImportsCheck = [ "aiorussound" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Async python package for interfacing with Russound RIO hardware";
|
||||
homepage = "https://github.com/noahhusby/aiorussound";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
}
|
@ -8,11 +8,12 @@
|
||||
sensor-state-data,
|
||||
pytestCheckHook,
|
||||
pytest-asyncio,
|
||||
pytest-cov-stub,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "anova-wifi";
|
||||
version = "0.17.0";
|
||||
version = "0.17.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
@ -21,14 +22,9 @@ buildPythonPackage rec {
|
||||
owner = "Lash-L";
|
||||
repo = "anova_wifi";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-F/bd5BtHpF3778eoK0QBaSmdTOpLlz+fixCYR74BRZw=";
|
||||
hash = "sha256-TRiv5ljdVqc4qeX+fSH+aTDf5UyNII8/twlNx3KC6oI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "--cov=anova_wifi --cov-report=term-missing:skip-covered" ""
|
||||
'';
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
@ -39,6 +35,7 @@ buildPythonPackage rec {
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
pytest-cov-stub
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "awesomeversion";
|
||||
version = "24.2.0";
|
||||
version = "24.6.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "ludeeus";
|
||||
repo = "awesomeversion";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-bpLtHhpWc1VweVl5G8mM473Js3bXT11N3Zc0jiVqq5c=";
|
||||
hash = "sha256-lpG42Be0MVinWX5MyDvBPdoZFx66l6tpUxpAJRqEf88=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -4,46 +4,49 @@
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
python,
|
||||
pythonOlder,
|
||||
pytestCheckHook,
|
||||
assertpy,
|
||||
mock,
|
||||
path,
|
||||
pyhamcrest,
|
||||
pytest-html,
|
||||
glibcLocales,
|
||||
colorama,
|
||||
cucumber-tag-expressions,
|
||||
parse,
|
||||
parse-type,
|
||||
setuptools,
|
||||
six,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "behave";
|
||||
version = "1.2.7.dev2";
|
||||
format = "setuptools";
|
||||
version = "1.2.7.dev5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "behave";
|
||||
repo = pname;
|
||||
repo = "behave";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-B8PUN1Q4UAsDWrHjPZDlpaPjCKjI/pAogCSI+BQnaWs=";
|
||||
hash = "sha256-G1o0a57MRczwjGLl/tEYC+yx3nxpk6+E58RvR9kVJpA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
assertpy
|
||||
mock
|
||||
path
|
||||
pyhamcrest
|
||||
pytest-html
|
||||
];
|
||||
|
||||
# upstream tests are failing, so instead we only check if we can import it
|
||||
doCheck = false;
|
||||
doCheck = pythonOlder "3.12";
|
||||
|
||||
pythonImportsCheck = [ "behave" ];
|
||||
|
||||
buildInputs = [ glibcLocales ];
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
colorama
|
||||
cucumber-tag-expressions
|
||||
parse
|
||||
@ -60,15 +63,13 @@ buildPythonPackage rec {
|
||||
disabledTests = lib.optionals stdenv.isDarwin [ "test_step_decorator_async_run_until_complete" ];
|
||||
|
||||
postCheck = ''
|
||||
export LANG="en_US.UTF-8"
|
||||
export LC_ALL="en_US.UTF-8"
|
||||
|
||||
${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' features/
|
||||
${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' tools/test-features/
|
||||
${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' issue.features/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/behave/behave/blob/${src.rev}/CHANGES.rst";
|
||||
homepage = "https://github.com/behave/behave";
|
||||
description = "behaviour-driven development, Python style";
|
||||
mainProgram = "behave";
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bimmer-connected";
|
||||
version = "0.15.3";
|
||||
version = "0.16.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
owner = "bimmerconnected";
|
||||
repo = "bimmer_connected";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-0Z7W9Z5zl7N0WbvfOTs8wcloI5VfqrZ+OBWocFAnjwY=";
|
||||
hash = "sha256-rklWek0XDedJXxVlRLLVMOkU0wMOlv8+Uzn8aVAmc2k=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
@ -66,6 +66,7 @@ buildPythonPackage rec {
|
||||
|
||||
preCheck = ''
|
||||
export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "bimmer_connected" ];
|
||||
|
@ -7,7 +7,7 @@
|
||||
requests,
|
||||
websocket-client,
|
||||
# dependencies for tests
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pytest,
|
||||
sure,
|
||||
responses,
|
||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
pytest
|
||||
sure
|
||||
responses
|
||||
|
@ -2,8 +2,10 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
aiofiles,
|
||||
aiohttp,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
python-dateutil,
|
||||
python-slugify,
|
||||
@ -27,6 +29,14 @@ buildPythonPackage rec {
|
||||
hash = "sha256-MWXOxE0nxBFhkAWjy7qFPhv4AO6VjGf+fAiyaWXeiX8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
# Fix tests with aiohttp 3.10+
|
||||
url = "https://github.com/fronzbot/blinkpy/commit/e2c747b5ad295424b08ff4fb03204129155666fc.patch";
|
||||
hash = "sha256-FapgAZcKBWqtAPjRl2uOFgnYPoWq6UU88XGLO7oCmDI=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace ', "wheel~=0.40.0"' "" \
|
||||
@ -44,7 +54,10 @@ buildPythonPackage rec {
|
||||
sortedcontainers
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"blinkpy"
|
||||
|
@ -5,6 +5,8 @@
|
||||
cryptography,
|
||||
cython,
|
||||
poetry-core,
|
||||
pytest-benchmark,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
@ -12,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bluetooth-data-tools";
|
||||
version = "1.19.3";
|
||||
version = "1.19.4";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -21,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ofcGdHHd1P+R9ykJGtwHURTzHCeiJ603EqtgUgLPnmM=";
|
||||
hash = "sha256-VoldKrlD/1Crw0tJcHoMGiLR8uTUI25IlwZ/1AICx84=";
|
||||
};
|
||||
|
||||
# The project can build both an optimized cython version and an unoptimized
|
||||
@ -36,12 +38,13 @@ buildPythonPackage rec {
|
||||
|
||||
propagatedBuildInputs = [ cryptography ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
pytest-benchmark
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace " --cov=bluetooth_data_tools --cov-report=term-missing:skip-covered" ""
|
||||
'';
|
||||
pytestFlagsArray = [ "--benchmark-disable" ];
|
||||
|
||||
pythonImportsCheck = [ "bluetooth_data_tools" ];
|
||||
|
||||
|
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "boto";
|
||||
repo = "boto3";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-1qnWJjYsDc70VkHYbKt0X26f0f4TugqMiS1FeaPjhq4=";
|
||||
hash = "sha256-fiUguOzNF9T3CcGD1mYl2b5QFbvBG8wNOd3Or2NR66E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "botocore";
|
||||
version = "1.34.129"; # N.B: if you change this, change boto3 and awscli to a matching version
|
||||
version = "1.34.131"; # N.B: if you change this, change boto3 and awscli to a matching version
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-fFbiWvYRLWnF0UoVtC92unaHaHq8RjqWrF7coZwKnC0=";
|
||||
hash = "sha256-UC3a/h1if88eTAB8hkVOXdAR26fFi9jopTaKefPjh9w=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "urllib3" ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
requests,
|
||||
}:
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
lib,
|
||||
pytest,
|
||||
pytest-asyncio,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pytest-rerunfailures,
|
||||
pytestCheckHook,
|
||||
redis,
|
||||
@ -46,7 +46,7 @@ buildPythonPackage rec {
|
||||
hypothesis
|
||||
pytest
|
||||
pytest-asyncio
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
pytest-rerunfailures
|
||||
pytestCheckHook
|
||||
];
|
||||
|
@ -9,7 +9,7 @@
|
||||
pykwalify,
|
||||
jsonschema,
|
||||
pytestCheckHook,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -34,11 +34,9 @@ buildPythonPackage rec {
|
||||
jsonschema
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
checkInputs = [
|
||||
# addopts uses --no-cov
|
||||
pytest-cov
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-cov-stub
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
|
@ -40,6 +40,8 @@ buildPythonPackage {
|
||||
setuptools
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "cryptography" ];
|
||||
|
||||
propagatedBuildInputs = [ cryptography ];
|
||||
|
||||
pythonImportsCheck = [ "chacha20poly1305_reuseable" ];
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "deebot-client";
|
||||
version = "8.2.0";
|
||||
version = "8.3.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.12";
|
||||
@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
owner = "DeebotUniverse";
|
||||
repo = "client.py";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-foIRWZcv+i/UZMMr1LjNiUpvJVD9UOWHPKHpcGHXfxQ=";
|
||||
hash = "sha256-a6gFy+w+5FEs4YwS2Pfcyiv0grLcSzFpxxbcZ0AYIL4=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
@ -38,6 +38,8 @@ buildPythonPackage rec {
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "aiohttp" ];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
aiomqtt
|
||||
|
@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
poetry-core,
|
||||
|
||||
# dependencies
|
||||
aiohttp,
|
||||
|
||||
# tests
|
||||
aioresponses,
|
||||
pytest-aiohttp,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dio-chacon-wifi-api";
|
||||
version = "1.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cnico";
|
||||
repo = "dio-chacon-wifi-api";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TeunMvkiQw4TzLb2dsAHAg49nUzD3DGiO0DuXKGcICU=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [ aiohttp ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
aioresponses
|
||||
pytest-aiohttp
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "dio_chacon_wifi_api" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python API via wifi for DIO devices from Chacon. Useful for homeassistant or other automations";
|
||||
homepage = "https://github.com/cnico/dio-chacon-wifi-api";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
}
|
@ -2,33 +2,49 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitLab,
|
||||
requests,
|
||||
fetchpatch2,
|
||||
setuptools,
|
||||
aiohttp,
|
||||
aioresponses,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
requests-mock,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "doorbirdpy";
|
||||
version = "2.2.2";
|
||||
format = "setuptools";
|
||||
version = "3.0.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "klikini";
|
||||
repo = "doorbirdpy";
|
||||
rev = version;
|
||||
hash = "sha256-pgL4JegD1gANefp7jLYb74N9wgpkDgQc/Fe+NyLBrkA=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-6B4EMK41vEpmLoQLD+XN9yStLdxyHHk/Mym9J0o7Qvc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
patches = [
|
||||
# https://gitlab.com/klikini/doorbirdpy/-/merge_requests/15
|
||||
(fetchpatch2 {
|
||||
name = "aiohttp-3.10-compat.patch";
|
||||
url = "https://gitlab.com/klikini/doorbirdpy/-/commit/91f417433be36a0c9d2baaf0d6ff1a45042f94eb.patch";
|
||||
hash = "sha256-b/ORH6ygkiBreWYTH7rP8b68HlFUEyLQCzVo1KLffPQ=";
|
||||
})
|
||||
];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ aiohttp ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
aioresponses
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "doorbirdpy" ];
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://gitlab.com/klikini/doorbirdpy/-/tags/${version}";
|
||||
description = "Python wrapper for the DoorBird LAN API";
|
||||
homepage = "https://gitlab.com/klikini/doorbirdpy";
|
||||
license = licenses.mit;
|
||||
|
@ -4,18 +4,19 @@
|
||||
dlms-cosem,
|
||||
fetchFromGitHub,
|
||||
pyserial,
|
||||
pyserial-asyncio,
|
||||
pyserial-asyncio-fast,
|
||||
pytestCheckHook,
|
||||
pythonAtLeast,
|
||||
pythonOlder,
|
||||
pytz,
|
||||
setuptools,
|
||||
tailer,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dsmr-parser";
|
||||
version = "1.4.1";
|
||||
format = "setuptools";
|
||||
version = "1.4.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
@ -23,13 +24,17 @@ buildPythonPackage rec {
|
||||
owner = "ndokter";
|
||||
repo = "dsmr_parser";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-lP4KU3k7dGYHv24uNffTNe60u11Xg7YG05F/joVZu/Q=";
|
||||
hash = "sha256-NfleByW9MF7FS4n/cMv297382LucP6Z629CuA6chm20=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonRelaxDeps = [ "dlms-cosem" ];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
dlms-cosem
|
||||
pyserial
|
||||
pyserial-asyncio
|
||||
pyserial-asyncio-fast
|
||||
pytz
|
||||
tailer
|
||||
];
|
||||
@ -42,10 +47,10 @@ buildPythonPackage rec {
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
|
||||
mainProgram = "dsmr_console";
|
||||
homepage = "https://github.com/ndokter/dsmr_parser";
|
||||
changelog = "https://github.com/ndokter/dsmr_parser/releases/tag/v${version}";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
mainProgram = "dsmr_console";
|
||||
};
|
||||
}
|
||||
|
49
pkgs/development/python-modules/elevenlabs/default.nix
Normal file
49
pkgs/development/python-modules/elevenlabs/default.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
httpx,
|
||||
lib,
|
||||
poetry-core,
|
||||
pydantic,
|
||||
pydantic-core,
|
||||
requests,
|
||||
typing-extensions,
|
||||
websockets,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "elevenlabs";
|
||||
version = "1.6.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elevenlabs";
|
||||
repo = "elevenlabs-python";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-IjsAd2QLYFbYRFQoZgcrKNxBUbD6+mILKkwH6E/mjyU=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
httpx
|
||||
pydantic
|
||||
pydantic-core
|
||||
requests
|
||||
typing-extensions
|
||||
websockets
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "elevenlabs" ];
|
||||
|
||||
# tests access the API on the internet
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/elevenlabs/elevenlabs-python/releases/tag/v${version}";
|
||||
description = "Official Python API for ElevenLabs Text to Speech";
|
||||
homepage = "https://github.com/elevenlabs/elevenlabs-python";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -2,16 +2,18 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
httpx,
|
||||
pyjwt,
|
||||
pythonOlder,
|
||||
websockets,
|
||||
yarl,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "elmax-api";
|
||||
version = "0.0.5";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
@ -22,9 +24,12 @@ buildPythonPackage rec {
|
||||
hash = "sha256-57pmmH7f893H71CMhdnahvbN/5F2yfrVZ6MFpYQ4+mQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
httpx
|
||||
pyjwt
|
||||
websockets
|
||||
yarl
|
||||
];
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
flit-core,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
@ -60,14 +59,6 @@ buildPythonPackage rec {
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
# this patch fixes a whitespace issue in the message that a test is expecting, https://github.com/KenKundert/emborg/pull/67
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/KenKundert/emborg/commit/afac6d1ddcecdb4bddbec87b6c8eed4cfbf4ebf9.diff";
|
||||
sha256 = "3xg2z03FLKH4ckmiBZqE1FDjpgjgdO8OZL1ewrJlQ4o=";
|
||||
})
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "emborg" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -3,6 +3,7 @@
|
||||
buildPythonPackage,
|
||||
certifi,
|
||||
click,
|
||||
dotmap,
|
||||
ecs-logging,
|
||||
elastic-transport,
|
||||
elasticsearch8,
|
||||
@ -36,10 +37,10 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
|
||||
dependencies = [
|
||||
certifi
|
||||
click
|
||||
dotmap
|
||||
ecs-logging
|
||||
elastic-transport
|
||||
elasticsearch8
|
||||
@ -68,6 +69,8 @@ buildPythonPackage rec {
|
||||
"test_multiple_hosts_raises"
|
||||
"test_non_dict_passed"
|
||||
"test_skip_version_check"
|
||||
# es_client.exceptions.ConfigurationError: Must populate both username and password, or leave both empty
|
||||
"test_exit_if_not_master "
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
48
pkgs/development/python-modules/evolutionhttp/default.nix
Normal file
48
pkgs/development/python-modules/evolutionhttp/default.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
|
||||
# build-system
|
||||
hatchling,
|
||||
|
||||
# dependencies
|
||||
aiofiles,
|
||||
aiohttp,
|
||||
|
||||
# tests
|
||||
mock,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "evolutionhttp";
|
||||
version = "0.0.18";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-LZ9IQJ2qVdCbhOECbPOjikeJA0aGKLdZURG6tjIrkT4=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
dependencies = [
|
||||
aiofiles
|
||||
aiohttp
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "evolutionhttp" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An HTTP client for controlling a Bryant Evolution HVAC system";
|
||||
homepage = "https://github.com/danielsmyers/evolutionhttp";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
}
|
@ -1,14 +1,17 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
glyphslib,
|
||||
setuptools-scm,
|
||||
ufo2ft,
|
||||
fonttools,
|
||||
fetchFromGitHub,
|
||||
pytestCheckHook,
|
||||
fontmath,
|
||||
lxml,
|
||||
fonttools,
|
||||
glyphslib,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
skia-pathops,
|
||||
ttfautohint-py,
|
||||
ufo2ft,
|
||||
ufolib2,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -16,28 +19,45 @@ buildPythonPackage rec {
|
||||
version = "3.9.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-KrfT0fvE1fhaM2RH4LqRUda7yMHg2T59UdGi3SSZP7s=";
|
||||
extension = "zip";
|
||||
src = fetchFromGitHub {
|
||||
owner = "googlefonts";
|
||||
repo = "fontmake";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-q6ul9MYbq85RpZE0ozHOCBNAR4r9InIjumadT1GyJ6k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools-scm ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
glyphslib
|
||||
ufo2ft
|
||||
fonttools
|
||||
fontmath
|
||||
lxml
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
dependencies =
|
||||
[
|
||||
fontmath
|
||||
fonttools
|
||||
glyphslib
|
||||
ufo2ft
|
||||
ufolib2
|
||||
]
|
||||
++ fonttools.optional-dependencies.ufo
|
||||
++ fonttools.optional-dependencies.lxml
|
||||
++ fonttools.optional-dependencies.unicode;
|
||||
|
||||
optional-dependencies = {
|
||||
pathops = [ skia-pathops ];
|
||||
autohint = [ ttfautohint-py ];
|
||||
json = ufolib2.optional-dependencies.json;
|
||||
repacker = fonttools.optional-dependencies.repacker;
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.autohint;
|
||||
|
||||
pythonImportsCheck = [ "fontmake" ];
|
||||
|
||||
meta = {
|
||||
description = "Compiles fonts from various sources (.glyphs, .ufo, designspace) into binaries formats (.otf, .ttf)";
|
||||
homepage = "https://github.com/googlefonts/fontmake";
|
||||
changelog = "https://github.com/googlefonts/fontmake/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.BarinovMaxim ];
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
let
|
||||
pname = "hassil";
|
||||
version = "1.7.1";
|
||||
version = "1.7.4";
|
||||
in
|
||||
buildPythonPackage {
|
||||
inherit pname version;
|
||||
@ -29,7 +29,7 @@ buildPythonPackage {
|
||||
owner = "home-assistant";
|
||||
repo = "hassil";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-yrjzsJzyUFqTauEcNEOCQx2YxomkNS4J0JfQEQQ5m3E=";
|
||||
hash = "sha256-FRP5iVE2KBiHVriWhnYxWFff0y4q2/gC9iO8ZzN3AbI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@ -42,7 +42,7 @@ buildPythonPackage {
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
|
||||
changelog = "https://github.com/home-assistant/hassil/blob/${version}/CHANGELOG.md";
|
||||
description = "Intent parsing for Home Assistant";
|
||||
mainProgram = "hassil";
|
||||
homepage = "https://github.com/home-assistant/hassil";
|
||||
|
@ -3,7 +3,7 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pytest-asyncio,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
requests,
|
||||
@ -27,7 +27,7 @@ buildPythonPackage rec {
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest-asyncio
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
requests
|
||||
requests-mock
|
||||
|
42
pkgs/development/python-modules/iottycloud/default.nix
Normal file
42
pkgs/development/python-modules/iottycloud/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
aiohttp,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
hatchling,
|
||||
lib,
|
||||
pytestCheckHook,
|
||||
requests,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "iottycloud";
|
||||
version = "0.1.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pburgio";
|
||||
repo = "iottyCloud";
|
||||
# https://github.com/pburgio/iottyCloud/issues/1
|
||||
rev = "c328cc497bf58a1da148ea88e309129177d69af0";
|
||||
hash = "sha256-G06kvp4VG0OmZxDqvKnMJ+uD+6i5BFL/Iuke4vOdO/k=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
dependencies = [ aiohttp ];
|
||||
|
||||
pythonImportsCheck = [ "iottycloud" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
requests
|
||||
];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/pburgio/iottyCloud/releases/tag/v${version}";
|
||||
description = "Python library to interact with iotty CloudApi";
|
||||
homepage = "https://github.com/pburgio/iottyCloud";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
fetchPypi,
|
||||
isPy27,
|
||||
pytest,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
nbval,
|
||||
jupyter-packaging,
|
||||
ipywidgets,
|
||||
@ -38,7 +38,7 @@ buildPythonPackage rec {
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
nbval
|
||||
];
|
||||
|
||||
|
41
pkgs/development/python-modules/israel-rail-api/default.nix
Normal file
41
pkgs/development/python-modules/israel-rail-api/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
pytestCheckHook,
|
||||
pytz,
|
||||
requests,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "israel-rail-api";
|
||||
version = "0.1.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sh0oki";
|
||||
repo = "israel-rail-api";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-OiWK3gi7dQ7SF4fvusKtSFzdhrsvePlscX0EYQ/hlYk=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
pytz
|
||||
requests
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "israelrailapi" ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/sh0oki/israel-rail-api/releases/tag/v${version}";
|
||||
description = "Python wrapping of the Israeli Rail API";
|
||||
homepage = "https://github.com/sh0oki/israel-rail-api";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "knx-frontend";
|
||||
version = "2024.7.25.204106";
|
||||
version = "2024.8.6.211307";
|
||||
format = "pyproject";
|
||||
|
||||
# TODO: source build, uses yarn.lock
|
||||
src = fetchPypi {
|
||||
pname = "knx_frontend";
|
||||
inherit version;
|
||||
hash = "sha256-uy5by/abVeYTLpZM4fh1+3AUxhnkFtzcabf86LnC9SY=";
|
||||
hash = "sha256-WHZW3EXsLrbQZgmDRJK0yFUPgY2B9UgNfvenXHh2z9g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -3,25 +3,28 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
aiohttp,
|
||||
pyjwt,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "laundrify-aio";
|
||||
version = "1.2.1";
|
||||
format = "setuptools";
|
||||
version = "1.2.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "laundrify";
|
||||
repo = "laundrify-pypi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XhdIKitUyC5RWW/o98ZyhG7BuVCINsiNWlh3liITKCs=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-iFQ0396BkGWM7Ma/I0gbXucd2/yPmEVF4IC3/bMK2SA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
pyjwt
|
||||
];
|
||||
|
@ -5,26 +5,34 @@
|
||||
isPy3k,
|
||||
lib,
|
||||
mkdocs,
|
||||
poetry-core,
|
||||
livereload,
|
||||
tornado,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mkdocs-drawio-exporter";
|
||||
version = "0.9.1";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "mkdocs_drawio_exporter";
|
||||
inherit version;
|
||||
hash = "sha256-x8X8hvN/tL8C6VhgMCEHDh2hILjBoyLgQfsFD1+qXgo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
mkdocs
|
||||
drawio-headless
|
||||
livereload
|
||||
tornado
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "mkdocsdrawioexporter" ];
|
||||
pythonImportsCheck = [ "mkdocs_drawio_exporter" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Exports your Draw.io diagrams at build time for easier embedding into your documentation";
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "motionblinds";
|
||||
version = "0.6.23";
|
||||
version = "0.6.24";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -18,14 +18,14 @@ buildPythonPackage rec {
|
||||
owner = "starkillerOG";
|
||||
repo = "motion-blinds";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-f5R58p6tMVqmXAjybae8qjeNI3vxtGJ7qxZOl9H5iKw=";
|
||||
hash = "sha256-4ao0FalOFrr4or7iUqx5aAw93yqI2i3/uF4rdHOsa7M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [ pycryptodomex ];
|
||||
dependencies = [ pycryptodomex ];
|
||||
|
||||
# Project has no tests
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "motionblinds" ];
|
||||
|
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
# in the project's CI.
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-fLo4sQryDNNutDiNqWYHHNwS/bEBg4iQ/jwgyx1+ZsU=";
|
||||
hash = "sha256-HDN6KA2JYDZqad/MybsX1oV/VvXPshb0mi0UBZq47Qs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
# tests
|
||||
hypothesis,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
@ -31,7 +31,7 @@ buildPythonPackage rec {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pytest.ini \
|
||||
--replace "--cov=ndindex/ --cov-report=term-missing --flakes" ""
|
||||
--replace "--flakes" ""
|
||||
'';
|
||||
|
||||
passthru.optional-dependencies.arrays = [ numpy ];
|
||||
@ -40,7 +40,7 @@ buildPythonPackage rec {
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pytest-cov # uses cov markers
|
||||
pytest-cov-stub
|
||||
pytestCheckHook
|
||||
] ++ passthru.optional-dependencies.arrays;
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nettigo-air-monitor";
|
||||
version = "3.2.0";
|
||||
version = "3.3.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -26,7 +26,7 @@ buildPythonPackage rec {
|
||||
owner = "bieniu";
|
||||
repo = "nettigo-air-monitor";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-2INL6ZXi7f4HD0ilhQLSivk8TfYh3qRSPRsCCtCLAP8=";
|
||||
hash = "sha256-u4BfmdSP7UbwuS04MzsKRTWIsztBoNawcLXwhy4P4YA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "openhomedevice";
|
||||
version = "2.3";
|
||||
version = "2.3.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "bazwilliams";
|
||||
repo = "openhomedevice";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-q8UG+PYtJ7lLlnw2Rt5O/SxOrUtYmwO1cEG1WocaQ7M=";
|
||||
hash = "sha256-u05aciRFCnqMJRClUMApAPDLpXOKn4wUTLgvR7BVZTA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -8,7 +8,7 @@
|
||||
typing-extensions,
|
||||
pytestCheckHook,
|
||||
pytest-benchmark,
|
||||
pytest-cov,
|
||||
pytest-cov-stub,
|
||||
pydantic,
|
||||
}:
|
||||
|
||||
@ -39,7 +39,7 @@ buildPythonPackage rec {
|
||||
pydantic
|
||||
pytestCheckHook
|
||||
pytest-benchmark
|
||||
pytest-cov
|
||||
pytest-cov-stub
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "--benchmark-disable" ];
|
||||
|
41
pkgs/development/python-modules/py-madvr2/default.nix
Normal file
41
pkgs/development/python-modules/py-madvr2/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py-madvr2";
|
||||
version = "1.6.29";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iloveicedgreentea";
|
||||
repo = "py-madvr";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ibgmUpHSmOr5glSZPIJXTBDlEnQoWtmJzmEGsggQxnk=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonImportsCheck = [ "madvr" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# https://github.com/iloveicedgreentea/py-madvr/issues/12
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/iloveicedgreentea/py-madvr/releases/tag/${version}";
|
||||
description = "Control MadVR Envy over IP";
|
||||
homepage = "https://github.com/iloveicedgreentea/py-madvr";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
57
pkgs/development/python-modules/py-sucks/default.nix
Normal file
57
pkgs/development/python-modules/py-sucks/default.nix
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
click,
|
||||
pycountry-convert,
|
||||
pycryptodome,
|
||||
requests,
|
||||
sleekxmppfs,
|
||||
requests-mock,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py-sucks";
|
||||
version = "0.9.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mib1185";
|
||||
repo = "py-sucks";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-MjlE5HdxChAgV/O7cD3foqkmKie7FgRRxvOcW+NAtfA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
pycountry-convert
|
||||
pycryptodome
|
||||
requests
|
||||
sleekxmppfs
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "sucks" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
requests-mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# assumes $HOME is at a specific place
|
||||
"test_config_file_name"
|
||||
];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/mib1185/py-sucks/releases/tag/v${version}";
|
||||
description = "Library for controlling certain robot vacuums";
|
||||
homepage = "https://github.com/mib1185/py-sucks";
|
||||
license = lib.licenses.gpl3Only;
|
||||
mainProgram = "sucks";
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
aiohttp,
|
||||
aresponses,
|
||||
attrs,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
poetry-core,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
pytz,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py17track";
|
||||
version = "2021.12.2";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bachya";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-T0Jjdu6QC8rTqZwe4cdsBbs0hQXUY6CkrImCgYwWL9o=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This patch removes references to setuptools and wheel that are no longer
|
||||
# necessary and changes poetry to poetry-core, so that we don't need to add
|
||||
# unnecessary nativeBuildInputs.
|
||||
#
|
||||
# https://github.com/bachya/py17track/pull/80
|
||||
#
|
||||
(fetchpatch {
|
||||
name = "clean-up-build-dependencies.patch";
|
||||
url = "https://github.com/bachya/py17track/commit/3b52394759aa50c62e2a56581e30cdb94003e2f1.patch";
|
||||
hash = "sha256-iLgklhEZ61rrdzQoO6rp1HGZcqLsqGNitwIiPNLNHQ4=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
aiohttp
|
||||
attrs
|
||||
pytz
|
||||
];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
nativeCheckInputs = [
|
||||
aresponses
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Ignore the examples directory as the files are prefixed with test_
|
||||
"examples/"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "py17track" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library to track package info from 17track.com";
|
||||
homepage = "https://github.com/bachya/py17track";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
39
pkgs/development/python-modules/pyblu/default.nix
Normal file
39
pkgs/development/python-modules/pyblu/default.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
aiohttp,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
lib,
|
||||
poetry-core,
|
||||
xmltodict,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyblu";
|
||||
version = "0.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-qMbwrRD7ZUsHHOLF9yPvAxiTmJ8vJX1cyHX+4ONtsQ8=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
xmltodict
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pyblu" ];
|
||||
|
||||
# no tests on PyPI, no tags on GitHub
|
||||
# https://github.com/LouisChrist/pyblu/issues/19
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "BluOS API client";
|
||||
homepage = "https://github.com/LouisChrist/pyblu";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
pycountry,
|
||||
repoze-lru,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycountry-convert";
|
||||
version = "0.7.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-CV0xD3Rr8qXvcTs6gu6iiicmIoYiN2Wx576KXE+n6bk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace-fail "pytest-runner" ""
|
||||
'';
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonRemoveDeps = [
|
||||
"pprintpp"
|
||||
"pytest"
|
||||
"pytest-cov"
|
||||
"repoze-lru"
|
||||
"pytest-mock"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pycountry
|
||||
repoze-lru
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pycountry_convert" ];
|
||||
|
||||
# upstream has no tests
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Python conversion functions between ISO country codes, countries, and continents";
|
||||
homepage = "https://github.com/jefftune/pycountry-convert";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydaikin";
|
||||
version = "2.13.0";
|
||||
version = "2.13.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "fredrike";
|
||||
repo = "pydaikin";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-t4SyFAgrLpXlDx464OHBWT8b+vGfIGZH6lKjX0k6tNw=";
|
||||
hash = "sha256-UOHNMYcgf8NYwbmr+YcCKZvcrXnz38VKxLAYnpoKiVo=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user