mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 19:55:41 +03:00
Merge master into staging-next
This commit is contained in:
commit
507f7fe91e
76 changed files with 741 additions and 570 deletions
|
@ -15906,6 +15906,12 @@
|
|||
email = "nathaniel.brough@gmail.com";
|
||||
name = "Nathaniel Brough";
|
||||
};
|
||||
nathanregner = {
|
||||
email = "nathanregner@gmail.com";
|
||||
github = "nathanregner";
|
||||
githubId = 9659564;
|
||||
name = "Nathan Regner";
|
||||
};
|
||||
nathanruiz = {
|
||||
email = "nathanruiz@protonmail.com";
|
||||
github = "nathanruiz";
|
||||
|
|
|
@ -325,6 +325,10 @@
|
|||
- Following [changes in Mint 22](https://github.com/linuxmint/mintupgrade/commit/f239cde908288b8c250f938e7311c7ffbc16bd59) we are no longer overriding Qt application styles. You can still restore the previous default with `qt.style = "gtk2"` and `qt.platformTheme = "gtk2"`.
|
||||
- Following [changes in Mint 20](https://github.com/linuxmint/mintupgrade-legacy/commit/ce15d946ed9a8cb8444abd25088edd824bfb18f6) we are replacing xplayer with celluloid since xplayer is no longer maintained.
|
||||
|
||||
- Pantheon has been updated to 8, please check the [upstream announcement](https://blog.elementary.io/os-8-available-now/) for more details.
|
||||
- Same as elementary OS, the X11 session is named "Classic Session" and the Wayland session is named "Secure Session".
|
||||
- The dock has been rewritten, you need to manually migrate the dock items on update. You can check `~/.config/plank/dock1/launchers/` for your previous settings.
|
||||
|
||||
- Xfce has been updated to 4.20, please check the [upstream feature tour](https://www.xfce.org/about/tour420) for more details.
|
||||
- Wayland session is still [experimental](https://wiki.xfce.org/releng/wayland_roadmap) and requires opt-in using `enableWaylandSession` option.
|
||||
- Overriding Wayland compositor is possible using `enableWaylandSession` option, but you might need to take care [`xfce4-session`](https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/49), [`dbus-update-activation-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L234) and [`systemctl --user import-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L239) on startup.
|
||||
|
|
|
@ -13,9 +13,7 @@ let
|
|||
|
||||
askPasswordWrapper = pkgs.writeScript "ssh-askpass-wrapper" ''
|
||||
#! ${pkgs.runtimeShell} -e
|
||||
export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')"
|
||||
export XAUTHORITY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^XAUTHORITY=\(.*\)/\1/; t; d')"
|
||||
export WAYLAND_DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^WAYLAND_DISPLAY=\(.*\)/\1/; t; d')"
|
||||
eval export $(systemctl --user show-environment | ${pkgs.coreutils}/bin/grep -E '^(DISPLAY|WAYLAND_DISPLAY|XAUTHORITY)=')
|
||||
exec ${cfg.askPassword} "$@"
|
||||
'';
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
meta = with lib; {
|
||||
maintainers = with lib.maintainers; [ ] ++ lib.teams.pantheon.members;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
|
|
@ -18,6 +18,13 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "klipper" "mutableConfigFolder" ]
|
||||
[ "services" "klipper" "configDir" ]
|
||||
)
|
||||
];
|
||||
|
||||
##### interface
|
||||
options = {
|
||||
services.klipper = {
|
||||
|
@ -52,23 +59,22 @@ in
|
|||
default = false;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to copy the config to a mutable directory instead of using the one directly from the nix store.
|
||||
This will only copy the config if the file at `services.klipper.mutableConfigPath` doesn't exist.
|
||||
Whether to manage the config outside of NixOS.
|
||||
|
||||
It will still be initialized with the defined NixOS config if the file doesn't already exist.
|
||||
'';
|
||||
};
|
||||
|
||||
mutableConfigFolder = lib.mkOption {
|
||||
configDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/klipper";
|
||||
description = "Path to mutable Klipper config file.";
|
||||
description = "Path to Klipper config file.";
|
||||
};
|
||||
|
||||
configFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to default Klipper config.
|
||||
'';
|
||||
description = "Path to default Klipper config.";
|
||||
};
|
||||
|
||||
octoprintIntegration = lib.mkOption {
|
||||
|
@ -162,11 +168,6 @@ in
|
|||
}
|
||||
];
|
||||
|
||||
environment.etc = lib.mkIf (!cfg.mutableConfig) {
|
||||
"klipper.cfg".source =
|
||||
if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile;
|
||||
};
|
||||
|
||||
services.klipper = lib.mkIf cfg.octoprintIntegration {
|
||||
user = config.services.octoprint.user;
|
||||
group = config.services.octoprint.group;
|
||||
|
@ -178,9 +179,7 @@ in
|
|||
"--input-tty=${cfg.inputTTY}"
|
||||
+ lib.optionalString (cfg.apiSocket != null) " --api-server=${cfg.apiSocket}"
|
||||
+ lib.optionalString (cfg.logFile != null) " --logfile=${cfg.logFile}";
|
||||
printerConfigPath =
|
||||
if cfg.mutableConfig then cfg.mutableConfigFolder + "/printer.cfg" else "/etc/klipper.cfg";
|
||||
printerConfigFile =
|
||||
printerConfig =
|
||||
if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile;
|
||||
in
|
||||
{
|
||||
|
@ -188,19 +187,33 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.mutableConfigFolder}
|
||||
${lib.optionalString (cfg.mutableConfig) ''
|
||||
[ -e ${printerConfigPath} ] || {
|
||||
cp ${printerConfigFile} ${printerConfigPath}
|
||||
chmod +w ${printerConfigPath}
|
||||
mkdir -p ${cfg.configDir}
|
||||
pushd ${cfg.configDir}
|
||||
if [ -e printer.cfg ]; then
|
||||
${
|
||||
if cfg.mutableConfig then
|
||||
":"
|
||||
else
|
||||
''
|
||||
# Backup existing config using the same date format klipper uses for SAVE_CONFIG
|
||||
old_config="printer-$(date +"%Y%m%d_%H%M%S").cfg"
|
||||
mv printer.cfg "$old_config"
|
||||
# Preserve SAVE_CONFIG section from the existing config
|
||||
cat ${printerConfig} <(printf "\n") <(sed -n '/#*# <---------------------- SAVE_CONFIG ---------------------->/,$p' "$old_config") > printer.cfg
|
||||
${pkgs.diffutils}/bin/cmp printer.cfg "$old_config" && rm "$old_config"
|
||||
''
|
||||
}
|
||||
''}
|
||||
mkdir -p ${cfg.mutableConfigFolder}/gcodes
|
||||
else
|
||||
cat ${printerConfig} > printer.cfg
|
||||
fi
|
||||
popd
|
||||
'';
|
||||
|
||||
restartTriggers = lib.optional (!cfg.mutableConfig) [ printerConfig ];
|
||||
|
||||
serviceConfig =
|
||||
{
|
||||
ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${printerConfigPath}";
|
||||
ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${cfg.configDir}/printer.cfg";
|
||||
RuntimeDirectory = "klipper";
|
||||
StateDirectory = "klipper";
|
||||
SupplementaryGroups = [ "dialout" ];
|
||||
|
|
|
@ -112,27 +112,23 @@ in
|
|||
# https://github.com/elementary/greeter/issues/368
|
||||
services.displayManager.defaultSession = mkDefault "pantheon";
|
||||
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then
|
||||
true
|
||||
${concatMapStrings (p: ''
|
||||
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||
fi
|
||||
environment.extraInit = ''
|
||||
${concatMapStrings (p: ''
|
||||
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||
fi
|
||||
|
||||
if [ -d "${p}/lib/girepository-1.0" ]; then
|
||||
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
|
||||
fi
|
||||
'') cfg.sessionPath}
|
||||
fi
|
||||
if [ -d "${p}/lib/girepository-1.0" ]; then
|
||||
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
|
||||
fi
|
||||
'') cfg.sessionPath}
|
||||
'';
|
||||
|
||||
# Default services
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
security.polkit.enable = true;
|
||||
services.accounts-daemon.enable = true;
|
||||
services.bamf.enable = true;
|
||||
services.colord.enable = mkDefault true;
|
||||
services.fwupd.enable = mkDefault true;
|
||||
# TODO: Enable once #177946 is resolved
|
||||
|
@ -232,7 +228,8 @@ in
|
|||
])) config.environment.pantheon.excludePackages;
|
||||
|
||||
# Settings from elementary-default-settings
|
||||
environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
|
||||
# GTK4 will try both $XDG_CONFIG_DIRS/gtk-4.0 and ${gtk4}/etc/gtk-4.0, but not /etc/gtk-4.0.
|
||||
environment.etc."xdg/gtk-4.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-4.0/settings.ini";
|
||||
|
||||
xdg.mime.enable = true;
|
||||
xdg.icons.enable = true;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
system.activationScripts.etc = lib.stringAfter [
|
||||
"users"
|
||||
"groups"
|
||||
"specialfs"
|
||||
] config.system.build.etcActivationCommands;
|
||||
}
|
||||
|
||||
|
@ -48,7 +49,7 @@
|
|||
boot.initrd.systemd = {
|
||||
mounts = [
|
||||
{
|
||||
where = "/run/etc-metadata";
|
||||
where = "/run/nixos-etc-metadata";
|
||||
what = "/etc-metadata-image";
|
||||
type = "erofs";
|
||||
options = "loop,ro";
|
||||
|
@ -83,7 +84,7 @@
|
|||
"relatime"
|
||||
"redirect_dir=on"
|
||||
"metacopy=on"
|
||||
"lowerdir=/run/etc-metadata::/etc-basedir"
|
||||
"lowerdir=/run/nixos-etc-metadata::/etc-basedir"
|
||||
]
|
||||
++ lib.optionals config.system.etc.overlay.mutable [
|
||||
"rw"
|
||||
|
@ -113,7 +114,7 @@
|
|||
unitConfig = {
|
||||
RequiresMountsFor = [
|
||||
"/sysroot/nix/store"
|
||||
"/run/etc-metadata"
|
||||
"/run/nixos-etc-metadata"
|
||||
];
|
||||
DefaultDependencies = false;
|
||||
};
|
||||
|
|
|
@ -250,78 +250,100 @@ in
|
|||
);
|
||||
in
|
||||
if config.system.etc.overlay.enable then
|
||||
#bash
|
||||
''
|
||||
# This script atomically remounts /etc when switching configuration. On a (re-)boot
|
||||
# this should not run because /etc is mounted via a systemd mount unit
|
||||
# instead. To a large extent this mimics what composefs does. Because
|
||||
# This script atomically remounts /etc when switching configuration.
|
||||
# On a (re-)boot this should not run because /etc is mounted via a
|
||||
# systemd mount unit instead.
|
||||
# The activation script can also be called in cases where we didn't have
|
||||
# an initrd though, like for instance when using nixos-enter,
|
||||
# so we cannot assume that /etc has already been mounted.
|
||||
#
|
||||
# To a large extent this mimics what composefs does. Because
|
||||
# it's relatively simple, however, we avoid the composefs dependency.
|
||||
# Since this script is not idempotent, it should not run when etc hasn't
|
||||
# changed.
|
||||
if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]] && [[ "${config.system.build.etc}/etc" != "$(readlink -f /run/current-system/etc)" ]]; then
|
||||
echo "remounting /etc..."
|
||||
|
||||
tmpMetadataMount=$(mktemp --directory -t nixos-etc-metadata.XXXXXXXXXX)
|
||||
${lib.optionalString config.system.etc.overlay.mutable ''
|
||||
# These directories are usually created in initrd,
|
||||
# but we need to create them here when we didn't we're called directly,
|
||||
# for instance by nixos-enter
|
||||
mkdir --parents /.rw-etc/upper /.rw-etc/work
|
||||
chmod --recursive 0755 /.rw-etc
|
||||
''}
|
||||
|
||||
tmpMetadataMount=$(TMPDIR="/run" mktemp --directory -t nixos-etc-metadata.XXXXXXXXXX)
|
||||
mount --type erofs -o ro ${config.system.build.etcMetadataImage} $tmpMetadataMount
|
||||
|
||||
# Mount the new /etc overlay to a temporary private mount.
|
||||
# This needs the indirection via a private bind mount because you
|
||||
# cannot move shared mounts.
|
||||
tmpEtcMount=$(mktemp --directory -t nixos-etc.XXXXXXXXXX)
|
||||
mount --bind --make-private $tmpEtcMount $tmpEtcMount
|
||||
mount --type overlay overlay \
|
||||
--options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
|
||||
$tmpEtcMount
|
||||
# There was no previous /etc mounted. This happens when we're called
|
||||
# directly without an initrd, like with nixos-enter.
|
||||
if ! mountpoint -q /etc; then
|
||||
mount --type overlay overlay \
|
||||
--options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
|
||||
/etc
|
||||
else
|
||||
# Mount the new /etc overlay to a temporary private mount.
|
||||
# This needs the indirection via a private bind mount because you
|
||||
# cannot move shared mounts.
|
||||
tmpEtcMount=$(TMPDIR="/run" mktemp --directory -t nixos-etc.XXXXXXXXXX)
|
||||
mount --bind --make-private $tmpEtcMount $tmpEtcMount
|
||||
mount --type overlay overlay \
|
||||
--options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
|
||||
$tmpEtcMount
|
||||
|
||||
# Before moving the new /etc overlay under the old /etc, we have to
|
||||
# move mounts on top of /etc to the new /etc mountpoint.
|
||||
findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do
|
||||
if [[ "$mountPoint" = "/etc" ]]; then
|
||||
continue
|
||||
fi
|
||||
# Before moving the new /etc overlay under the old /etc, we have to
|
||||
# move mounts on top of /etc to the new /etc mountpoint.
|
||||
findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do
|
||||
if [[ "$mountPoint" = "/etc" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
tmpMountPoint="$tmpEtcMount/''${mountPoint:5}"
|
||||
${
|
||||
if config.system.etc.overlay.mutable then
|
||||
''
|
||||
if [[ -f "$mountPoint" ]]; then
|
||||
touch "$tmpMountPoint"
|
||||
elif [[ -d "$mountPoint" ]]; then
|
||||
mkdir -p "$tmpMountPoint"
|
||||
fi
|
||||
''
|
||||
else
|
||||
''
|
||||
if [[ ! -e "$tmpMountPoint" ]]; then
|
||||
echo "Skipping undeclared mountpoint in environment.etc: $mountPoint"
|
||||
continue
|
||||
fi
|
||||
''
|
||||
}
|
||||
mount --bind "$mountPoint" "$tmpMountPoint"
|
||||
done
|
||||
tmpMountPoint="$tmpEtcMount/''${mountPoint:5}"
|
||||
${
|
||||
if config.system.etc.overlay.mutable then
|
||||
''
|
||||
if [[ -f "$mountPoint" ]]; then
|
||||
touch "$tmpMountPoint"
|
||||
elif [[ -d "$mountPoint" ]]; then
|
||||
mkdir -p "$tmpMountPoint"
|
||||
fi
|
||||
''
|
||||
else
|
||||
''
|
||||
if [[ ! -e "$tmpMountPoint" ]]; then
|
||||
echo "Skipping undeclared mountpoint in environment.etc: $mountPoint"
|
||||
continue
|
||||
fi
|
||||
''
|
||||
}
|
||||
mount --bind "$mountPoint" "$tmpMountPoint"
|
||||
done
|
||||
|
||||
# Move the new temporary /etc mount underneath the current /etc mount.
|
||||
#
|
||||
# This should eventually use util-linux to perform this move beneath,
|
||||
# however, this functionality is not yet in util-linux. See this
|
||||
# tracking issue: https://github.com/util-linux/util-linux/issues/2604
|
||||
${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc
|
||||
# Move the new temporary /etc mount underneath the current /etc mount.
|
||||
#
|
||||
# This should eventually use util-linux to perform this move beneath,
|
||||
# however, this functionality is not yet in util-linux. See this
|
||||
# tracking issue: https://github.com/util-linux/util-linux/issues/2604
|
||||
${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc
|
||||
|
||||
# Unmount the top /etc mount to atomically reveal the new mount.
|
||||
umount --lazy --recursive /etc
|
||||
# Unmount the top /etc mount to atomically reveal the new mount.
|
||||
umount --lazy --recursive /etc
|
||||
|
||||
# Unmount the temporary mount
|
||||
umount --lazy "$tmpEtcMount"
|
||||
rmdir "$tmpEtcMount"
|
||||
# Unmount the temporary mount
|
||||
umount --lazy "$tmpEtcMount"
|
||||
rmdir "$tmpEtcMount"
|
||||
fi
|
||||
|
||||
# Unmount old metadata mounts
|
||||
# For some reason, `findmnt /tmp --submounts` does not show the nested
|
||||
# mounts. So we'll just find all mounts of type erofs and filter on the
|
||||
# name of the mountpoint.
|
||||
findmnt --type erofs --list --kernel --output TARGET | while read -r mountPoint; do
|
||||
if [[ "$mountPoint" =~ ^/tmp/nixos-etc-metadata\..{10}$ &&
|
||||
if [[ ("$mountPoint" =~ ^/run/nixos-etc-metadata\..{10}$ || "$mountPoint" =~ ^/run/nixos-etc-metadata$ ) &&
|
||||
"$mountPoint" != "$tmpMetadataMount" ]]; then
|
||||
umount --lazy $mountPoint
|
||||
umount --lazy "$mountPoint"
|
||||
rmdir "$mountPoint"
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -39,8 +39,8 @@
|
|||
''
|
||||
newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip()
|
||||
|
||||
with subtest("/run/etc-metadata/ is mounted"):
|
||||
print(machine.succeed("mountpoint /run/etc-metadata"))
|
||||
with subtest("/run/nixos-etc-metadata/ is mounted"):
|
||||
print(machine.succeed("mountpoint /run/nixos-etc-metadata"))
|
||||
|
||||
with subtest("No temporary files leaked into stage 2"):
|
||||
machine.succeed("[ ! -e /etc-metadata-image ]")
|
||||
|
@ -91,10 +91,14 @@
|
|||
|
||||
machine.succeed(f"{newergen} switch")
|
||||
|
||||
tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip()
|
||||
metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").rstrip()
|
||||
tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip()
|
||||
print(tmpMounts)
|
||||
metaMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc-metadata.*'").rstrip()
|
||||
print(metaMounts)
|
||||
|
||||
assert tmpMounts == "0", f"Found {tmpMounts} remaining tmpmounts"
|
||||
assert metaMounts == "1", f"Found {metaMounts} remaining metamounts"
|
||||
numOfTmpMounts = len(tmpMounts.splitlines())
|
||||
numOfMetaMounts = len(metaMounts.splitlines())
|
||||
assert numOfTmpMounts == 0, f"Found {numOfTmpMounts} remaining tmpmounts"
|
||||
assert numOfMetaMounts == 1, f"Found {numOfMetaMounts} remaining metamounts"
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
''
|
||||
newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip()
|
||||
|
||||
with subtest("/run/etc-metadata/ is mounted"):
|
||||
print(machine.succeed("mountpoint /run/etc-metadata"))
|
||||
with subtest("/run/nixos-etc-metadata/ is mounted"):
|
||||
print(machine.succeed("mountpoint /run/nixos-etc-metadata"))
|
||||
|
||||
with subtest("No temporary files leaked into stage 2"):
|
||||
machine.succeed("[ ! -e /etc-metadata-image ]")
|
||||
|
@ -68,10 +68,14 @@
|
|||
machine.succeed(f"{newergen} switch")
|
||||
assert machine.succeed("cat /etc/newergen") == "newergen"
|
||||
|
||||
tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip()
|
||||
metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").rstrip()
|
||||
tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip()
|
||||
print(tmpMounts)
|
||||
metaMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc-metadata.*'").rstrip()
|
||||
print(metaMounts)
|
||||
|
||||
assert tmpMounts == "0", f"Found {tmpMounts} remaining tmpmounts"
|
||||
assert metaMounts == "1", f"Found {metaMounts} remaining metamounts"
|
||||
numOfTmpMounts = len(tmpMounts.splitlines())
|
||||
numOfMetaMounts = len(metaMounts.splitlines())
|
||||
assert numOfTmpMounts == 0, f"Found {numOfTmpMounts} remaining tmpmounts"
|
||||
assert numOfMetaMounts == 1, f"Found {numOfMetaMounts} remaining metamounts"
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -798,6 +798,7 @@ in {
|
|||
patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {};
|
||||
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
|
||||
pantheon = handleTest ./pantheon.nix {};
|
||||
pantheon-wayland = handleTest ./pantheon-wayland.nix {};
|
||||
paperless = handleTest ./paperless.nix {};
|
||||
parsedmarc = handleTest ./parsedmarc {};
|
||||
password-option-override-ordering = handleTest ./password-option-override-ordering.nix {};
|
||||
|
|
105
nixos/tests/pantheon-wayland.nix
Normal file
105
nixos/tests/pantheon-wayland.nix
Normal file
|
@ -0,0 +1,105 @@
|
|||
import ./make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
name = "pantheon-wayland";
|
||||
|
||||
meta.maintainers = lib.teams.pantheon.members;
|
||||
|
||||
nodes.machine =
|
||||
{ nodes, ... }:
|
||||
|
||||
let
|
||||
videosAutostart = pkgs.writeTextFile {
|
||||
name = "autostart-elementary-videos";
|
||||
destination = "/etc/xdg/autostart/io.elementary.videos.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Videos
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Exec=io.elementary.videos %U
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
# Workaround ".gala-wrapped invoked oom-killer"
|
||||
virtualisation.memorySize = 2047;
|
||||
|
||||
services.xserver.enable = true;
|
||||
services.xserver.desktopManager.pantheon.enable = true;
|
||||
services.displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = nodes.machine.users.users.alice.name;
|
||||
defaultSession = "pantheon-wayland";
|
||||
};
|
||||
|
||||
# We ship pantheon.appcenter by default when this is enabled.
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# For basic OCR tests.
|
||||
environment.systemPackages = [ videosAutostart ];
|
||||
|
||||
# We don't ship gnome-text-editor in Pantheon module, we add this line mainly
|
||||
# to catch eval issues related to this option.
|
||||
environment.pantheon.excludePackages = [ pkgs.gnome-text-editor ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
user = nodes.machine.users.users.alice;
|
||||
in
|
||||
''
|
||||
machine.wait_for_unit("display-manager.service")
|
||||
|
||||
with subtest("Wait for wayland server"):
|
||||
machine.wait_for_file("/run/user/${toString user.uid}/wayland-0")
|
||||
|
||||
with subtest("Check that logging in has given the user ownership of devices"):
|
||||
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||
|
||||
with subtest("Check if Pantheon components actually start"):
|
||||
# We specifically check gsd-xsettings here since it is manually pulled up by gala.
|
||||
# https://github.com/elementary/gala/pull/2140
|
||||
for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock", "gsd-media-keys", "gsd-xsettings", "io.elementary.desktop.agent-polkit"]:
|
||||
machine.wait_until_succeeds(f"pgrep -f {i}")
|
||||
for i in ["io.elementary.files.xdg-desktop-portal.service"]:
|
||||
machine.wait_for_unit(i, "${user.name}")
|
||||
|
||||
with subtest("Check if various environment variables are set"):
|
||||
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf ${pkgs.pantheon.gala}/bin/gala)/environ"
|
||||
machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Pantheon'")
|
||||
machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
|
||||
# Hopefully from the sessionPath option.
|
||||
machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'")
|
||||
# Hopefully from login shell.
|
||||
machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE' | grep '1'")
|
||||
|
||||
with subtest("Wait for elementary videos autostart"):
|
||||
machine.wait_until_succeeds("pgrep -f io.elementary.videos")
|
||||
machine.wait_for_text("No Videos Open")
|
||||
machine.screenshot("videos")
|
||||
|
||||
with subtest("Trigger multitasking view"):
|
||||
cmd = "dbus-send --session --dest=org.pantheon.gala --print-reply /org/pantheon/gala org.pantheon.gala.PerformAction int32:1"
|
||||
env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus"
|
||||
machine.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||
machine.sleep(5)
|
||||
machine.screenshot("multitasking")
|
||||
machine.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||
|
||||
with subtest("Check if gala has ever coredumped"):
|
||||
machine.fail("coredumpctl --json=short | grep gala")
|
||||
# So we can see the dock.
|
||||
machine.execute("pkill -f -9 io.elementary.videos")
|
||||
machine.sleep(10)
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
}
|
||||
)
|
|
@ -56,11 +56,11 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||
|
||||
with subtest("Check if Pantheon components actually start"):
|
||||
for i in ["gala", "io.elementary.wingpanel", "plank", "gsd-media-keys", "io.elementary.desktop.agent-polkit"]:
|
||||
for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock", "gsd-media-keys", "io.elementary.desktop.agent-polkit"]:
|
||||
machine.wait_until_succeeds(f"pgrep -f {i}")
|
||||
for i in ["gala", "io.elementary.wingpanel", "plank"]:
|
||||
for i in ["gala", "io.elementary.wingpanel", "io.elementary.dock"]:
|
||||
machine.wait_for_window(i)
|
||||
for i in ["bamfdaemon.service", "io.elementary.files.xdg-desktop-portal.service"]:
|
||||
for i in ["io.elementary.files.xdg-desktop-portal.service"]:
|
||||
machine.wait_for_unit(i, "${user.name}")
|
||||
|
||||
with subtest("Check if various environment variables are set"):
|
||||
|
@ -70,8 +70,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'")
|
||||
# Hopefully from login shell.
|
||||
machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE' | grep '1'")
|
||||
# See elementary-session-settings packaging.
|
||||
machine.succeed(f"{cmd} | grep 'XDG_CONFIG_DIRS' | grep 'elementary-default-settings'")
|
||||
|
||||
with subtest("Open elementary videos"):
|
||||
machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.videos >&2 &'")
|
||||
|
@ -101,6 +99,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
machine.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||
machine.sleep(5)
|
||||
machine.screenshot("multitasking")
|
||||
machine.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||
|
||||
with subtest("Check if gala has ever coredumped"):
|
||||
machine.fail("coredumpctl --json=short | grep gala")
|
||||
|
|
|
@ -28,13 +28,13 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tiled";
|
||||
version = "1.11.0";
|
||||
version = "1.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mapeditor";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-cFS1OSYfGMsnw+VkZD/HO4+D+pxNKuifWjNhy0FoxN0=";
|
||||
sha256 = "sha256-9cgGweo0D43U/puS82JCmBrikKe/TclHsrghQ4OZVEo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
gobject-introspection,
|
||||
gsettings-desktop-schemas,
|
||||
glib-networking,
|
||||
notify-osd,
|
||||
gtk3,
|
||||
glib,
|
||||
gdk-pixbuf,
|
||||
|
@ -51,7 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
gobject-introspection
|
||||
gsettings-desktop-schemas
|
||||
glib-networking
|
||||
notify-osd
|
||||
gtk3
|
||||
gstreamer
|
||||
gst-libav
|
||||
|
|
|
@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
|
|||
asciidoctor
|
||||
cmake
|
||||
gfortran
|
||||
hamlib_4 # rigctl
|
||||
libtool
|
||||
pkg-config
|
||||
qttools
|
||||
|
@ -53,6 +54,8 @@ stdenv.mkDerivation rec {
|
|||
boost
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Weak-signal digital communication modes for amateur radio";
|
||||
longDescription = ''
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "arouteserver";
|
||||
version = "1.23.1";
|
||||
version = "1.23.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pierky";
|
||||
repo = "arouteserver";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EZOBMDBsxbuVzzjQWU8V4n3gcLkRQxCq2eVK/Tyko4E=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-qPU1eBEAlF6wcI1KEBtSuf0a+pKsqoCN0mtAPjIr+0c=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -104,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
beautifulsoup4
|
||||
css-parser
|
||||
cssselect
|
||||
fonttools
|
||||
python-dateutil
|
||||
dnspython
|
||||
faust-cchardet
|
||||
|
@ -206,7 +207,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
doInstallCheck = true;
|
||||
installCheckInputs = with python3Packages; [
|
||||
fonttools
|
||||
psutil
|
||||
];
|
||||
installCheckPhase = ''
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "exo";
|
||||
version = "0.0.4-alpha";
|
||||
version = "0.0.5-alpha";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "exo-explore";
|
||||
repo = "exo";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-tB+/MtAAyBwoculoToiUgwqHOKEOu6Ip1Jvx0+FqC8o=";
|
||||
hash = "sha256-bAbKmLoJbDVwGoWTxA3a0CUzVFoso6/Uz6e48MSJDgw=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
|
|
@ -28,13 +28,13 @@ let
|
|||
in
|
||||
buildDotnetModule (finalAttrs: {
|
||||
pname = "famistudio";
|
||||
version = "4.3.0";
|
||||
version = "4.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BleuBleu";
|
||||
repo = "FamiStudio";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Ldht7w1qgLTiqbRUJJvFQgl1VW6k+14w/jz58kAeMl0=";
|
||||
hash = "sha256-ISOMsnsvsO3wOp9J/CilCr4wBgkHc29od2a2sBssN7k=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
|
|
|
@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
|
|||
pkg-config
|
||||
];
|
||||
|
||||
env.FLTK_CONFIG = lib.getExe' (lib.getDev fltk13) "fltk-config";
|
||||
|
||||
meta = {
|
||||
description = "Digital modem rig control program";
|
||||
homepage = "https://sourceforge.net/projects/fldigi/";
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
From aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0 Mon Sep 17 00:00:00 2001
|
||||
From: WORLDofPEACE <worldofpeace@protonmail.ch>
|
||||
Date: Sun, 20 Sep 2020 16:09:36 -0400
|
||||
Subject: [PATCH] build: add a gnome_session_ctl_path option
|
||||
|
||||
In gsd.service.in the ExecStopPost expects g-s-d libexecdir to
|
||||
be from the same prefix as gnome-session's, and this is not necessarily
|
||||
true as there are linux distro's that install their packages into their
|
||||
own individual prefixes (like NixOS or Guix).
|
||||
---
|
||||
meson_options.txt | 1 +
|
||||
plugins/gsd.service.in | 2 +-
|
||||
plugins/meson.build | 6 ++++++
|
||||
3 files changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 3e04cf64f..21e003c61 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -1,4 +1,5 @@
|
||||
option('udev_dir', type: 'string', value: '', description: 'Absolute path of the udev base directory')
|
||||
+option('gnome_session_ctl_path', type: 'string', value: '', description: 'Absolute path to the gnome-session-ctl binary')
|
||||
option('systemd', type: 'boolean', value: true, description: 'Enable systemd integration')
|
||||
|
||||
option('alsa', type: 'boolean', value: true, description: 'build with ALSA support (not optional on Linux platforms)')
|
||||
diff --git a/plugins/gsd.service.in b/plugins/gsd.service.in
|
||||
index 79b5f5536..bfbde6d05 100644
|
||||
--- a/plugins/gsd.service.in
|
||||
+++ b/plugins/gsd.service.in
|
||||
@@ -23,4 +23,4 @@ BusName=@plugin_dbus_name@
|
||||
TimeoutStopSec=5
|
||||
# We cannot use OnFailure as e.g. dependency failures are normal
|
||||
# https://github.com/systemd/systemd/issues/12352
|
||||
-ExecStopPost=@libexecdir@/gnome-session-ctl --exec-stop-check
|
||||
+ExecStopPost=@gnome_session_ctl@ --exec-stop-check
|
||||
diff --git a/plugins/meson.build b/plugins/meson.build
|
||||
index 83e018854..266a0f093 100644
|
||||
--- a/plugins/meson.build
|
||||
+++ b/plugins/meson.build
|
||||
@@ -20,6 +20,11 @@ all_plugins = [
|
||||
|
||||
disabled_plugins = []
|
||||
|
||||
+gnome_session_ctl = get_option('gnome_session_ctl_path')
|
||||
+if gnome_session_ctl == ''
|
||||
+ gnome_session_ctl = join_paths(gsd_libexecdir, 'gnome-session-ctl')
|
||||
+endif
|
||||
+
|
||||
if not enable_smartcard
|
||||
disabled_plugins += ['smartcard']
|
||||
endif
|
||||
@@ -125,6 +130,7 @@ foreach plugin: all_plugins
|
||||
unit_conf.set('plugin_name', plugin_name)
|
||||
unit_conf.set('description', plugin_description)
|
||||
unit_conf.set('libexecdir', gsd_libexecdir)
|
||||
+ unit_conf.set('gnome_session_ctl', gnome_session_ctl)
|
||||
unit_conf.set('plugin_dbus_name', plugin_dbus_name)
|
||||
unit_conf.set('plugin_restart', plugin_restart_rule.get(plugin_name, 'on-failure'))
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchpatch,
|
||||
substituteAll,
|
||||
fetchurl,
|
||||
meson,
|
||||
|
@ -13,7 +12,6 @@
|
|||
glib,
|
||||
libnotify,
|
||||
libgnomekbd,
|
||||
lcms2,
|
||||
libpulseaudio,
|
||||
alsa-lib,
|
||||
libcanberra-gtk3,
|
||||
|
@ -36,26 +34,22 @@
|
|||
wrapGAppsHook3,
|
||||
python3,
|
||||
tzdata,
|
||||
nss,
|
||||
gcr_4,
|
||||
gnome-session-ctl,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnome-settings-daemon";
|
||||
version = "43.0";
|
||||
version = "46.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major finalAttrs.version}/gnome-settings-daemon-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-NRO7JPxvgYFmciOmSgZ1NP3M879mMmqUA9OLDw1gE9A=";
|
||||
hash = "sha256-C5oPZPoYqOfgm0yVo/dU+gM8LNvS3DVwHwYYVywcs9c=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
|
||||
hash = "sha256-O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
|
||||
})
|
||||
./add-gnome-session-ctl-option.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
|
@ -85,14 +79,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
libnotify
|
||||
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
|
||||
gnome-desktop
|
||||
lcms2
|
||||
libpulseaudio
|
||||
alsa-lib
|
||||
libcanberra-gtk3
|
||||
upower
|
||||
colord
|
||||
libgweather
|
||||
nss
|
||||
polkit
|
||||
geocode-glib_2
|
||||
geoclue2
|
|
@ -2,7 +2,6 @@
|
|||
fetchurl,
|
||||
runCommand,
|
||||
lib,
|
||||
fetchpatch,
|
||||
stdenv,
|
||||
pkg-config,
|
||||
gettext,
|
||||
|
@ -11,26 +10,43 @@
|
|||
colord,
|
||||
lcms2,
|
||||
pango,
|
||||
json-glib,
|
||||
libstartup_notification,
|
||||
libcanberra,
|
||||
ninja,
|
||||
xvfb-run,
|
||||
xkeyboard_config,
|
||||
libxcvt,
|
||||
libxkbfile,
|
||||
libICE,
|
||||
libX11,
|
||||
libXcomposite,
|
||||
libXcursor,
|
||||
libXdamage,
|
||||
libxkbcommon,
|
||||
libXext,
|
||||
libXfixes,
|
||||
libXi,
|
||||
libXtst,
|
||||
libxkbfile,
|
||||
xkeyboard_config,
|
||||
libxkbcommon,
|
||||
libXrender,
|
||||
libxcb,
|
||||
libXrandr,
|
||||
libXinerama,
|
||||
libXau,
|
||||
libinput,
|
||||
libdrm,
|
||||
libei,
|
||||
libdisplay-info,
|
||||
gsettings-desktop-schemas,
|
||||
glib,
|
||||
gtk3,
|
||||
atk,
|
||||
gtk4,
|
||||
fribidi,
|
||||
harfbuzz,
|
||||
gnome-desktop,
|
||||
pipewire,
|
||||
libgudev,
|
||||
libwacom,
|
||||
libSM,
|
||||
xwayland,
|
||||
mesa,
|
||||
meson,
|
||||
|
@ -38,12 +54,11 @@
|
|||
xorgserver,
|
||||
python3,
|
||||
wayland-scanner,
|
||||
wrapGAppsHook3,
|
||||
wrapGAppsHook4,
|
||||
gi-docgen,
|
||||
sysprof,
|
||||
libsysprof-capture,
|
||||
desktop-file-utils,
|
||||
libcap_ng,
|
||||
egl-wayland,
|
||||
graphene,
|
||||
wayland,
|
||||
|
@ -52,7 +67,7 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mutter";
|
||||
version = "43.8";
|
||||
version = "46.7";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
|
@ -63,33 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-TjTh8XWTS9hJqEvZX6Nb8G6EEuAt8loDbC8RNdUz8oE=";
|
||||
hash = "sha256-+7wVwLB2CS0WwB1cbwxvVNIR84Miy4wjseF9xW1MUl0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with separate sysprof.
|
||||
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2572
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/285a5a4d54ca83b136b787ce5ebf1d774f9499d5.patch";
|
||||
hash = "sha256-/npUE3idMSTVlFptsDpZmGWjZ/d2gqruVlJKq4eF4xU=";
|
||||
})
|
||||
|
||||
# Remove support for window shading.
|
||||
# The corresponding key was removed in gsettings-desktop-schemas 45.alpha.
|
||||
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2884
|
||||
#
|
||||
# Fetch the patch from magpie as they share same code base and this feature
|
||||
# is never supported on wayland (note that magpie 0.9.x won't support wayland).
|
||||
# https://github.com/BuddiesOfBudgie/magpie/issues/9
|
||||
(fetchpatch {
|
||||
url = "https://github.com/BuddiesOfBudgie/magpie/commit/4177c466375462ca8ed8fdb60913df4422f19144.patch";
|
||||
hash = "sha256-NVx40WDnlUL050D529KVohvNBdVrheXxmJ73U3+KSeQ=";
|
||||
})
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Degl_device=true"
|
||||
"-Dinstalled_tests=false" # TODO: enable these
|
||||
"-Dtests=false"
|
||||
"-Dwayland_eglstream=true"
|
||||
"-Dprofiler=true"
|
||||
"-Dxwayland_path=${lib.getExe xwayland}"
|
||||
|
@ -100,10 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
# required for pkg-config to detect mutter-clutter
|
||||
json-glib
|
||||
libXtst
|
||||
libcap_ng
|
||||
# required for pkg-config to detect mutter-mtk
|
||||
graphene
|
||||
mesa # actually uses eglmesaext
|
||||
];
|
||||
|
@ -118,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
pkg-config
|
||||
python3
|
||||
wayland-scanner
|
||||
wrapGAppsHook3
|
||||
wrapGAppsHook4
|
||||
gi-docgen
|
||||
xorgserver
|
||||
gobject-introspection
|
||||
|
@ -131,34 +123,50 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
atk
|
||||
fribidi
|
||||
harfbuzz
|
||||
libcanberra
|
||||
libdrm
|
||||
libei
|
||||
libdisplay-info
|
||||
libgudev
|
||||
libinput
|
||||
libstartup_notification
|
||||
libwacom
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libXdamage
|
||||
libSM
|
||||
colord
|
||||
lcms2
|
||||
pango
|
||||
pipewire
|
||||
sysprof # for D-Bus interfaces
|
||||
libsysprof-capture
|
||||
xkeyboard_config
|
||||
xwayland
|
||||
wayland
|
||||
wayland-protocols
|
||||
# X11 client
|
||||
gtk4
|
||||
libICE
|
||||
libX11
|
||||
libXcomposite
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXtst
|
||||
libxkbfile
|
||||
xkeyboard_config
|
||||
libxkbcommon
|
||||
libXrender
|
||||
libxcb
|
||||
libXrandr
|
||||
libXinerama
|
||||
libXau
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/backends/native/gen-default-modes.py
|
||||
|
||||
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3187
|
||||
substituteInPlace meson.build \
|
||||
--replace "dependency('sysprof-4')" "dependency('sysprof-6')"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
@ -168,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
postFixup = ''
|
||||
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
||||
# TODO: Move this into a directory devhelp can find.
|
||||
moveToOutput "share/mutter-11/doc" "$devdoc"
|
||||
moveToOutput "share/mutter-14/doc" "$devdoc"
|
||||
'';
|
||||
|
||||
# Install udev files into our own tree.
|
||||
|
@ -177,7 +185,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
separateDebugInfo = true;
|
||||
|
||||
passthru = {
|
||||
libdir = "${finalAttrs.finalPackage}/lib/mutter-11";
|
||||
libdir = "${finalAttrs.finalPackage}/lib/mutter-14";
|
||||
|
||||
tests = {
|
||||
libdirExists = runCommand "mutter-libdir-exists" { } ''
|
109
pkgs/by-name/mv/mvnd/package.nix
Normal file
109
pkgs/by-name/mv/mvnd/package.nix
Normal file
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
darwin,
|
||||
fetchFromGitHub,
|
||||
graalvmPackages,
|
||||
installShellFiles,
|
||||
lib,
|
||||
makeWrapper,
|
||||
maven,
|
||||
mvnd,
|
||||
nix-update-script,
|
||||
runCommand,
|
||||
stdenv,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
platformMap = {
|
||||
aarch64-darwin = "darwin-aarch64";
|
||||
aarch64-linux = "linux-aarch64";
|
||||
x86_64-darwin = "darwin-amd64";
|
||||
x86_64-linux = "linux-amd64";
|
||||
};
|
||||
in
|
||||
|
||||
maven.buildMavenPackage rec {
|
||||
pname = "mvnd";
|
||||
version = "1.0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "apache";
|
||||
repo = "maven-mvnd";
|
||||
rev = version;
|
||||
sha256 = "sha256-c1jD7m4cOdPWQEoaUMcNap2zvvX7H9VaWQv8JSgAnRU=";
|
||||
};
|
||||
|
||||
# need graalvm at build-time for the `native-image` tool
|
||||
mvnJdk = graalvmPackages.graalvm-ce;
|
||||
mvnHash = "sha256-Bx0XSnpHNxNX07uVPc18py9qbnG5b3b7J4vs44ty034=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
graalvmPackages.graalvm-ce
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk_11_0.frameworks.Foundation ];
|
||||
|
||||
mvnDepsParameters = mvnParameters;
|
||||
mvnParameters = lib.concatStringsSep " " [
|
||||
"-Dmaven.buildNumber.skip=true" # skip build number generation; requires a git repository
|
||||
"-Drat.skip=true" # skip license checks; they require manaul approval and should have already been run upstream
|
||||
"-Dspotless.skip=true" # skip formatting checks
|
||||
|
||||
# skip tests that fail in the sandbox
|
||||
"-pl"
|
||||
"!integration-tests"
|
||||
"-Dtest=!org.mvndaemon.mvnd.client.OsUtilsTest,!org.mvndaemon.mvnd.cache.impl.CacheFactoryTest"
|
||||
"-Dsurefire.failIfNoSpecifiedTests=false"
|
||||
|
||||
"-Pnative"
|
||||
# propagate linker args required by the darwin build
|
||||
# see `buildGraalvmNativeImage`
|
||||
''-Dgraalvm-native-static-opt="-H:-CheckToolchain $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n)"''
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/mvnd-home
|
||||
|
||||
cp -r dist/target/maven-mvnd-${version}-${platformMap.${stdenv.system}}/* $out/mvnd-home
|
||||
makeWrapper $out/mvnd-home/bin/mvnd $out/bin/mvnd \
|
||||
--set-default MVND_HOME $out/mvnd-home
|
||||
|
||||
installShellCompletion --cmd mvnd \
|
||||
--bash $out/mvnd-home/bin/mvnd-bash-completion.bash
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru =
|
||||
{
|
||||
updateScript = nix-update-script { };
|
||||
}
|
||||
// (lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
|
||||
tests.version = testers.testVersion {
|
||||
# `java` or `JAVA_HOME` is required to run mvnd
|
||||
# presumably the user already has a JDK installed if they're using maven; don't pull in an unnecessary runtime dependency
|
||||
package =
|
||||
runCommand "mvnd"
|
||||
{
|
||||
inherit version;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
}
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${mvnd}/bin/mvnd $out/bin/mvnd \
|
||||
--suffix PATH : ${lib.makeBinPath [ mvnJdk ]}
|
||||
'';
|
||||
};
|
||||
});
|
||||
|
||||
meta = {
|
||||
description = "The Apache Maven Daemon";
|
||||
homepage = "https://maven.apache.org/";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ nathanregner ];
|
||||
mainProgram = "mvnd";
|
||||
};
|
||||
}
|
|
@ -104,6 +104,8 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
preCheck = ''
|
||||
export XDG_RUNTIME_DIR=$(mktemp -d)
|
||||
# See https://github.com/YaLTeR/niri/issues/953
|
||||
export RAYON_NUM_THREADS=1
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
|
|
@ -58,10 +58,11 @@ if [[ ! -e $mountPoint/etc/NIXOS ]]; then
|
|||
exit 126
|
||||
fi
|
||||
|
||||
mkdir -p "$mountPoint/dev" "$mountPoint/sys"
|
||||
chmod 0755 "$mountPoint/dev" "$mountPoint/sys"
|
||||
mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc"
|
||||
chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc"
|
||||
mount --rbind /dev "$mountPoint/dev"
|
||||
mount --rbind /sys "$mountPoint/sys"
|
||||
mount --rbind /proc "$mountPoint/proc"
|
||||
|
||||
# modified from https://github.com/archlinux/arch-install-scripts/blob/bb04ab435a5a89cd5e5ee821783477bc80db797f/arch-chroot.in#L26-L52
|
||||
chroot_add_resolv_conf() {
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rss-bridge";
|
||||
version = "2024-02-02";
|
||||
version = "2025-01-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RSS-Bridge";
|
||||
repo = "rss-bridge";
|
||||
rev = version;
|
||||
sha256 = "sha256-VycEgu7uHYwDnNE1eoVxgaWZAnC6mZLBxT8Le3PI4Rs=";
|
||||
sha256 = "sha256-6Ise+qptY2wLkNveT/mzL0nWrX6OhxAlOJkF2+BmSTE=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
fetchFromGitHub,
|
||||
cmake,
|
||||
ninja,
|
||||
llvm_17,
|
||||
clang_17,
|
||||
llvm,
|
||||
clang,
|
||||
z3,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
@ -48,13 +48,13 @@ stdenv.mkDerivation {
|
|||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
llvm_17
|
||||
clang_17
|
||||
llvm
|
||||
clang
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
llvm_17
|
||||
llvm
|
||||
z3
|
||||
];
|
||||
|
||||
|
|
|
@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec {
|
|||
pname = "typos-lsp";
|
||||
# Please update the corresponding VSCode extension too.
|
||||
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
|
||||
version = "0.1.32";
|
||||
version = "0.1.33";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tekumara";
|
||||
repo = "typos-lsp";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ezRyitmdcOki/thQGJ11+UYMIG2fYJ9HMcvD++s/ewM=";
|
||||
hash = "sha256-FunbE4HxDmugLmR2XwFFAjvNBTVbLAhiHtacxuPXMVE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-J1XbhCP2EMFIHs2U9kTtNNdGF4UnZWNgIO7L3YlYkqo=";
|
||||
cargoHash = "sha256-hmKm8mPIZlEDcAPuvyUUQZUpIy51mSksahcRknMnMW0=";
|
||||
|
||||
# fix for compilation on aarch64
|
||||
# see https://github.com/NixOS/nixpkgs/issues/145726
|
||||
|
|
|
@ -91,7 +91,7 @@ in
|
|||
gnome-session = throw "The ‘gnome.gnome-session’ was moved to top-level. Please use ‘pkgs.gnome-session’ directly."; # Added on 2024-08-28.
|
||||
gnome-session-ctl = throw "The ‘gnome.gnome-session-ctl’ was moved to top-level. Please use ‘pkgs.gnome-session-ctl’ directly."; # Added on 2024-08-28.
|
||||
gnome-settings-daemon = throw "The ‘gnome.gnome-settings-daemon’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon’ directly."; # Added on 2024-08-28.
|
||||
gnome-settings-daemon43 = throw "The ‘gnome.gnome-settings-daemon43’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon43’ directly."; # Added on 2024-08-28.
|
||||
gnome-settings-daemon43 = throw "The ‘gnome.gnome-settings-daemon43’ was removed since it is no longer used by Pantheon."; # Added on 2024-08-28.
|
||||
gnome-shell = throw "The ‘gnome.gnome-shell’ was moved to top-level. Please use ‘pkgs.gnome-shell’ directly."; # Added on 2024-08-28.
|
||||
gnome-shell-extensions = throw "The ‘gnome.gnome-shell-extensions’ was moved to top-level. Please use ‘pkgs.gnome-shell-extensions’ directly."; # Added on 2024-08-11.
|
||||
gnome-software = throw "The ‘gnome.gnome-software’ was moved to top-level. Please use ‘pkgs.gnome-software’ directly."; # Added on 2024-08-11.
|
||||
|
@ -113,7 +113,7 @@ in
|
|||
lightsoff = throw "The ‘gnome.lightsoff’ was moved to top-level. Please use ‘pkgs.lightsoff’ directly."; # Added on 2024-08-11.
|
||||
metacity = throw "The ‘gnome.metacity’ was moved to top-level. Please use ‘pkgs.metacity’ directly."; # Added on 2024-08-11.
|
||||
mutter = throw "The ‘gnome.mutter’ was moved to top-level. Please use ‘pkgs.mutter’ directly."; # Added on 2024-08-28.
|
||||
mutter43 = throw "The ‘gnome.mutter43’ was moved to top-level. Please use ‘pkgs.mutter43’ directly."; # Added on 2024-08-28.
|
||||
mutter43 = throw "The ‘gnome.mutter43’ was removed since it is no longer used by Pantheon."; # Added on 2024-08-28.
|
||||
nautilus = throw "The ‘gnome.nautilus’ was moved to top-level. Please use ‘pkgs.nautilus’ directly."; # Added on 2024-06-13.
|
||||
networkmanager-openvpn = throw "The ‘gnome.networkmanager-openvpn’ was moved to top-level. Please use ‘pkgs.networkmanager-openvpn’ directly."; # Added on 2024-08-31.
|
||||
networkmanager-vpnc = throw "The ‘gnome.networkmanager-vpnc’ was moved to top-level. Please use ‘pkgs.networkmanager-vpnc’ directly."; # Added on 2024-08-31.
|
||||
|
|
|
@ -1,85 +1,61 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, vala
|
||||
, atk
|
||||
, cairo
|
||||
, dconf
|
||||
, glib
|
||||
, gtk3
|
||||
, libwnck
|
||||
, libX11
|
||||
, libXfixes
|
||||
, libXi
|
||||
, pango
|
||||
, pkg-config
|
||||
, libxml2
|
||||
, bamf
|
||||
, gdk-pixbuf
|
||||
, libdbusmenu-gtk3
|
||||
, gnome-menus
|
||||
, libgee
|
||||
, wrapGAppsHook3
|
||||
, meson
|
||||
, ninja
|
||||
, granite
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
wayland-scanner,
|
||||
wrapGAppsHook4,
|
||||
glib,
|
||||
granite7,
|
||||
gtk4,
|
||||
libadwaita,
|
||||
wayland,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "elementary-dock";
|
||||
version = "unstable-2021-05-07";
|
||||
version = "8.0.1";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "dock";
|
||||
rev = "113c3b0bc7744501d2101dd7afc1ef21ba66b326";
|
||||
sha256 = "sha256-YlvdB02/hUGaDyHIHy21bgloHyVy3vHcanyNKnp3YbM=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Q4Y9FVqzPXoz2Nti1qB5SOJQ0tETPcv2fZPOMkJaND8=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
libxml2 # xmllint
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook3
|
||||
wayland-scanner
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
atk
|
||||
bamf
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome-menus
|
||||
dconf
|
||||
granite
|
||||
gtk3
|
||||
libX11
|
||||
libXfixes
|
||||
libXi
|
||||
libdbusmenu-gtk3
|
||||
libgee
|
||||
libwnck
|
||||
pango
|
||||
granite7
|
||||
gtk4
|
||||
libadwaita
|
||||
wayland
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# elementary/dock/master is missing a Meson post
|
||||
# install script that does this. This has been
|
||||
# resolved after the dock rewrite (the `main` branch).
|
||||
# https://github.com/elementary/default-settings/issues/267
|
||||
glib-compile-schemas $out/share/glib-2.0/schemas
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Elegant, simple, clean dock";
|
||||
homepage = "https://github.com/elementary/dock";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
|
||||
mainProgram = "plank";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = lib.teams.pantheon.members;
|
||||
mainProgram = "io.elementary.dock";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
, libportal-gtk3
|
||||
, granite
|
||||
, pango
|
||||
, bamf
|
||||
, sqlite
|
||||
, zeitgeist
|
||||
, libcloudproviders
|
||||
|
@ -47,7 +46,6 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
glib
|
||||
granite
|
||||
gtk3
|
||||
|
|
|
@ -23,13 +23,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "switchboard-plug-keyboard";
|
||||
version = "8.0.0";
|
||||
version = "8.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-jOUrotgtSRmSVsxOXEbQfIi92BlpIPye7maCsa+ssT8=";
|
||||
sha256 = "sha256-/jfUftlNL+B4570ajropS7/2fqro380kZzpPwm+A9fA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
|
@ -25,24 +24,15 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "switchboard-plug-pantheon-shell";
|
||||
version = "8.0.0";
|
||||
version = "8.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-Cv1Ldvk0+VzNsKnDFwDtLZ5ixUOGV+PWYAqN9KV9g/s=";
|
||||
sha256 = "sha256-S6EJGF9jRiCzH0f7WNrbLtAX23fjD/Hzd8YLEzkXesw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Set preferred color theme for mutter
|
||||
# https://github.com/elementary/switchboard-plug-pantheon-shell/pull/413
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/bdc8c167fabe5a4642efd37b0289e235e5d0a504.patch";
|
||||
hash = "sha256-ueTAwURd8GM0U/qfPmoVLO7OVI/ppazq+ljnVzk0Npk=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
|
@ -67,13 +57,6 @@ stdenv.mkDerivation rec {
|
|||
wingpanel-quick-settings # gsettings schemas
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Hide these before we land the new dock
|
||||
substituteInPlace src/Views/Dock.vala \
|
||||
--replace-fail "box.append (icon_box);" "" \
|
||||
--replace-fail "box.append (hide_box);" ""
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
|
|
@ -38,10 +38,10 @@ lib.makeScope pkgs.newScope (self: with self; {
|
|||
|
||||
maintainers = lib.teams.pantheon.members;
|
||||
|
||||
mutter = pkgs.mutter43;
|
||||
mutter = pkgs.mutter46;
|
||||
|
||||
# Using 43 to match Mutter used in Pantheon
|
||||
gnome-settings-daemon = pkgs.gnome-settings-daemon43;
|
||||
gnome-settings-daemon = pkgs.gnome-settings-daemon46;
|
||||
|
||||
elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
|
@ -15,24 +14,15 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-default-settings";
|
||||
version = "7.1.0";
|
||||
version = "8.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "default-settings";
|
||||
rev = version;
|
||||
sha256 = "sha256-j4K8qYwfu6/s4qnTSzwv6KRsk9f+Qr/l1bhLywKMHMU=";
|
||||
sha256 = "sha256-vytjRlSXnC+cSIAn6v6wpoig4zjJZObGZ6MCLfsIwIA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Add pantheon-portals.conf
|
||||
# https://github.com/elementary/default-settings/pull/293
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/default-settings/commit/8201eeb6a356e6059b505756ef7a556a6848ad3b.patch";
|
||||
sha256 = "sha256-qhGj7WQTAWJTC1kouUZhBWKqyO4hQWJghEhLVl8QVUM=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
glib # glib-compile-schemas
|
||||
meson
|
||||
|
@ -49,19 +39,8 @@ stdenv.mkDerivation rec {
|
|||
mesonFlags = [
|
||||
"--sysconfdir=${placeholder "out"}/etc"
|
||||
"-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
|
||||
"-Dplank-dockitems=false"
|
||||
];
|
||||
|
||||
preInstall = ''
|
||||
# Install our override for plank dockitems as the desktop file path is different.
|
||||
schema_dir=$out/share/glib-2.0/schemas
|
||||
install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
|
||||
|
||||
# Our launchers that use paths at /run/current-system/sw/bin
|
||||
mkdir -p $out/etc/skel/.config/plank/dock1
|
||||
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# https://github.com/elementary/default-settings/issues/55
|
||||
rm -r $out/share/cups
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.appcenter.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.files.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.settings.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop
|
|
@ -1,2 +0,0 @@
|
|||
[net.launchpad.plank.dock.settings]
|
||||
dock-items=['gala-multitaskingview.dockitem','io.elementary.files.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.settings.dockitem','io.elementary.appcenter.dockitem']
|
|
@ -14,6 +14,7 @@
|
|||
, granite
|
||||
, libgee
|
||||
, libhandy
|
||||
, gnome-desktop
|
||||
, gnome-settings-daemon
|
||||
, mutter
|
||||
, elementary-icon-theme
|
||||
|
@ -24,18 +25,19 @@
|
|||
, gdk-pixbuf
|
||||
, dbus
|
||||
, accountsservice
|
||||
, wayland-scanner
|
||||
, wrapGAppsHook3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-greeter";
|
||||
version = "7.0.0";
|
||||
version = "8.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "greeter";
|
||||
rev = version;
|
||||
sha256 = "sha256-m/xuaMCAPoqhl/M547mdafBPBu3UhHmVmBIUKQoS5L8=";
|
||||
sha256 = "sha256-fx3KHMF6UhIFXyJHQ4dKJnVidsNMBk7AvHzaF3ELH1k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -47,18 +49,22 @@ stdenv.mkDerivation rec {
|
|||
})
|
||||
];
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wayland-scanner
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
elementary-icon-theme
|
||||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gdk-pixbuf
|
||||
granite
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
, elementary-default-settings
|
||||
, glib
|
||||
, gala
|
||||
, epiphany
|
||||
, gnome-settings-daemon
|
||||
, gtk3
|
||||
, elementary-dock
|
||||
|
@ -20,7 +19,6 @@ let
|
|||
gsettingsOverridePackages = [
|
||||
elementary-dock
|
||||
gnome-settings-daemon
|
||||
epiphany
|
||||
gala
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
|
|
|
@ -16,17 +16,18 @@
|
|||
gtk4,
|
||||
libadwaita,
|
||||
libgee,
|
||||
pantheon-wayland,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-onboarding";
|
||||
version = "8.0.2";
|
||||
version = "8.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "onboarding";
|
||||
rev = version;
|
||||
sha256 = "sha256-tLqLGkcryXGe1wsupgwtnNtFj5aXXUPrwkpxUQmyJFM=";
|
||||
sha256 = "sha256-e8eYBGQ+qTXsp+E3l0g5UI1nYD75z0ibTtzm0WbqlU4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
|
|||
gtk4
|
||||
libadwaita
|
||||
libgee
|
||||
pantheon-wayland
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
, desktop-file-utils
|
||||
, gettext
|
||||
, pkg-config
|
||||
, writeScript
|
||||
, gnome-keyring
|
||||
, gnome-session
|
||||
, wingpanel
|
||||
|
@ -20,76 +19,6 @@
|
|||
, ninja
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
#
|
||||
# ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ────────────────────────────
|
||||
#
|
||||
|
||||
#
|
||||
# Upstream relies on /etc/skel to initiate a new users home directory with plank's dockitems.
|
||||
#
|
||||
# That is not possible within nixos, but we can achieve this easily with a simple script that copies
|
||||
# them. We then use a xdg autostart and initialize it during the "EarlyInitialization" phase of a gnome session
|
||||
# which is most appropriate for installing files into $HOME.
|
||||
#
|
||||
|
||||
dockitems-script = writeScript "dockitems-script" ''
|
||||
#!${runtimeShell}
|
||||
|
||||
elementary_default_settings="${elementary-default-settings}"
|
||||
dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/*
|
||||
|
||||
if [ ! -d "$HOME/.config/plank/dock1" ]; then
|
||||
echo "Instantiating default Plank Dockitems..."
|
||||
|
||||
mkdir -p "$HOME/.config/plank/dock1/launchers"
|
||||
cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/"
|
||||
else
|
||||
echo "Plank Dockitems already instantiated"
|
||||
fi
|
||||
'';
|
||||
|
||||
dockitemAutostart = writeText "default-elementary-dockitems.desktop" ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Instantiate Default elementary dockitems
|
||||
Exec=${dockitems-script}
|
||||
StartupNotify=false
|
||||
NoDisplay=true
|
||||
OnlyShowIn=Pantheon;
|
||||
X-GNOME-Autostart-Phase=EarlyInitialization
|
||||
'';
|
||||
|
||||
executable = writeScript "pantheon" ''
|
||||
# gnome-session can find RequiredComponents for `pantheon` session (notably pantheon's patched g-s-d autostarts)
|
||||
export XDG_CONFIG_DIRS=@out@/etc/xdg:$XDG_CONFIG_DIRS
|
||||
|
||||
# Make sure we use our gtk-3.0/settings.ini
|
||||
export XDG_CONFIG_DIRS=${elementary-default-settings}/etc:$XDG_CONFIG_DIRS
|
||||
|
||||
# * gnome-session can find the `pantheon' session
|
||||
# * use pantheon-mimeapps.list
|
||||
export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
|
||||
|
||||
# Start pantheon session. Keep in sync with upstream
|
||||
exec ${gnome-session}/bin/gnome-session --session=pantheon "$@"
|
||||
'';
|
||||
|
||||
# Absolute path patched version of the upstream xsession
|
||||
xsession = writeText "pantheon.desktop" ''
|
||||
[Desktop Entry]
|
||||
Name=Pantheon
|
||||
Comment=This session provides elementary experience
|
||||
Exec=@out@/libexec/pantheon
|
||||
TryExec=${wingpanel}/bin/io.elementary.wingpanel
|
||||
Icon=
|
||||
DesktopNames=Pantheon
|
||||
Type=Application
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-session-settings";
|
||||
version = "8.0.1";
|
||||
|
@ -122,6 +51,7 @@ stdenv.mkDerivation rec {
|
|||
"-Dfallback-session=GNOME"
|
||||
"-Ddetect-program-prefixes=true"
|
||||
"--sysconfdir=${placeholder "out"}/etc"
|
||||
"-Dwayland=true"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
@ -130,16 +60,10 @@ stdenv.mkDerivation rec {
|
|||
mkdir -p $out/share/applications
|
||||
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
|
||||
|
||||
# instantiates pantheon's dockitems
|
||||
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
|
||||
|
||||
# script `Exec` to start pantheon
|
||||
mkdir -p $out/libexec
|
||||
substitute ${executable} $out/libexec/pantheon --subst-var out
|
||||
chmod +x $out/libexec/pantheon
|
||||
|
||||
# absolute path patched xsession
|
||||
substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out
|
||||
# absolute path patched sessions
|
||||
substituteInPlace $out/share/{xsessions/pantheon.desktop,wayland-sessions/pantheon-wayland.desktop} \
|
||||
--replace-fail "Exec=gnome-session" "Exec=${gnome-session}/bin/gnome-session" \
|
||||
--replace-fail "TryExec=io.elementary.wingpanel" "TryExec=${wingpanel}/bin/io.elementary.wingpanel"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
@ -147,6 +71,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
providedSessions = [
|
||||
"pantheon"
|
||||
"pantheon-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-shortcut-overlay";
|
||||
version = "8.0.0";
|
||||
version = "8.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "shortcut-overlay";
|
||||
rev = version;
|
||||
sha256 = "sha256-HqF2eSNwAzgzwyfNQIeumaGkPYiSc+2OfaD3JRQp4/4=";
|
||||
sha256 = "sha256-RWFzs4rw/KC0MXkNfA178FejMbuIBh5FVox1RxmxCJA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,60 +1,51 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, gettext
|
||||
, libxml2
|
||||
, gtk3
|
||||
, granite
|
||||
, libgee
|
||||
, bamf
|
||||
, libcanberra-gtk3
|
||||
, gnome-desktop
|
||||
, mutter
|
||||
, gnome-settings-daemon
|
||||
, wrapGAppsHook3
|
||||
, gexiv2
|
||||
, systemd
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
desktop-file-utils,
|
||||
gettext,
|
||||
libxml2,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
wayland-scanner,
|
||||
wrapGAppsHook3,
|
||||
at-spi2-core,
|
||||
gnome-settings-daemon,
|
||||
gnome-desktop,
|
||||
granite,
|
||||
granite7,
|
||||
gtk3,
|
||||
gtk4,
|
||||
libcanberra,
|
||||
libgee,
|
||||
libhandy,
|
||||
mutter,
|
||||
sqlite,
|
||||
systemd,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gala";
|
||||
version = "7.1.3";
|
||||
version = "8.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-0fDbR28gh7F8Bcnofn48BBP1CTsYnfmY5kG72ookOXw=";
|
||||
hash = "sha256-C0Vct2xuGHd/G5x0Faif0DfpyNyCLJDxki+O9697c2s=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# We look for plugins in `/run/current-system/sw/lib/` because
|
||||
# there are multiple plugin providers (e.g. gala and wingpanel).
|
||||
./plugins-dir.patch
|
||||
|
||||
# Start gala-daemon internally (needed for systemd managed gnome-session)
|
||||
# https://github.com/elementary/gala/pull/1844
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/gala/commit/351722c5a4fded46992b725e03dc94971c5bd31f.patch";
|
||||
hash = "sha256-RvdVHQjCUNmLrROBZTF+m1vE2XudtQZjk/YW28P/vKc=";
|
||||
})
|
||||
|
||||
# InternalUtils: Fix window placement
|
||||
# https://github.com/elementary/gala/pull/1913
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/gala/commit/2d30bee678788c5a853721d16b5b39c997b23c02.patch";
|
||||
hash = "sha256-vhGFaLpJZFx1VTfjY1BahQiOUvBPi0dBSXLGhYc7r8A=";
|
||||
})
|
||||
];
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
|
@ -62,29 +53,27 @@ stdenv.mkDerivation rec {
|
|||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wayland-scanner
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
at-spi2-core
|
||||
gnome-settings-daemon
|
||||
gexiv2
|
||||
gnome-desktop
|
||||
granite
|
||||
granite7
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
gtk4 # gala-daemon
|
||||
libcanberra
|
||||
libgee
|
||||
libhandy
|
||||
mutter
|
||||
sqlite
|
||||
systemd
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson/post_install.py
|
||||
patchShebangs build-aux/meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, substituteAll
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, pkg-config
|
||||
, vala
|
||||
, granite
|
||||
|
@ -14,8 +12,6 @@
|
|||
, gettext
|
||||
, gtk3
|
||||
, json-glib
|
||||
, elementary-dock
|
||||
, bamf
|
||||
, switchboard-with-plugs
|
||||
, libsoup_2_4
|
||||
, wingpanel
|
||||
|
@ -26,13 +22,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-applications-menu";
|
||||
version = "2.11.1";
|
||||
version = "8.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "applications-menu";
|
||||
rev = version;
|
||||
sha256 = "sha256-WlRrEkX0DGIHYWvUc9G4BbvofzWJwqkiJaJFwQ43GPE=";
|
||||
sha256 = "sha256-HA82CcVC2+hJFksOuZ8pFmw7phpkCEjPCgE/5naaPcg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -40,14 +36,6 @@ stdenv.mkDerivation rec {
|
|||
src = ./fix-paths.patch;
|
||||
bc = "${bc}/bin/bc";
|
||||
})
|
||||
|
||||
# Build against switchboard-3
|
||||
# https://github.com/elementary/applications-menu/pull/580
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/applications-menu/commit/9191ee5a2ee33477515d331b96945d51a13074a9.patch";
|
||||
excludes = [ ".github/workflows/githubci.yml" ];
|
||||
hash = "sha256-/LOIEOg9fVfKv/BWFsP1VyuUOIFYem9Gk+3e49M2b9E=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -55,13 +43,10 @@ stdenv.mkDerivation rec {
|
|||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
elementary-dock
|
||||
granite
|
||||
gtk3
|
||||
json-glib
|
||||
|
@ -83,11 +68,6 @@ stdenv.mkDerivation rec {
|
|||
"--sysconfdir=${placeholder "out"}/etc"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
|
|
|
@ -1,42 +1,40 @@
|
|||
diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
|
||||
index 542e7aa..228c6d7 100644
|
||||
index 84454146..fb082fe4 100644
|
||||
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
|
||||
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
|
||||
@@ -83,7 +83,7 @@ namespace Synapse {
|
||||
Pid pid;
|
||||
int read_fd, write_fd;
|
||||
/* Must include math library to get non-integer results and to access standard math functions */
|
||||
- string[] argv = {"bc", "-l"};
|
||||
+ string[] argv = {"@bc@", "-l"};
|
||||
@@ -73,7 +73,7 @@ namespace Synapse {
|
||||
Pid pid;
|
||||
int read_fd, write_fd;
|
||||
/* Must include math library to get non-integer results and to access standard math functions */
|
||||
- string[] argv = {"bc", "-l"};
|
||||
+ string[] argv = {"@bc@", "-l"};
|
||||
|
||||
Process.spawn_async_with_pipes (
|
||||
null, argv, null,
|
||||
Process.spawn_async_with_pipes (
|
||||
null, argv, null,
|
||||
diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
||||
index d14f1de..35c8621 100644
|
||||
index 089b8278..0e532bfc 100644
|
||||
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
||||
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
||||
@@ -49,9 +49,7 @@ namespace Synapse {
|
||||
_("Calculator"),
|
||||
_("Calculate basic expressions."),
|
||||
@@ -47,8 +47,7 @@ namespace Synapse {
|
||||
DataSink.PluginRegistry.get_default ().register_plugin (
|
||||
typeof (CalculatorPlugin),
|
||||
"accessories-calculator",
|
||||
- register_plugin,
|
||||
- Environment.find_program_in_path ("bc") != null,
|
||||
- _("bc is not installed")
|
||||
- Environment.find_program_in_path ("bc") != null
|
||||
+ register_plugin
|
||||
);
|
||||
}
|
||||
|
||||
diff --git a/src/synapse-plugins/converter-plugin/converter-plugin.vala b/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
||||
index 8d230cc..ed31927 100644
|
||||
index 34391e6a..a5bfc71e 100644
|
||||
--- a/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
||||
+++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
||||
@@ -46,9 +46,7 @@ namespace Synapse {
|
||||
_("Converter"),
|
||||
_("Convert between units."),
|
||||
@@ -44,8 +44,7 @@ namespace Synapse {
|
||||
DataSink.PluginRegistry.get_default ().register_plugin (
|
||||
typeof (ConverterPlugin),
|
||||
"accessories-converter",
|
||||
- register_plugin,
|
||||
- Environment.find_program_in_path ("bc") != null,
|
||||
- _("bc is not installed")
|
||||
- Environment.find_program_in_path ("bc") != null
|
||||
+ register_plugin
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, wayland-scanner
|
||||
, wrapGAppsHook3
|
||||
, pkg-config
|
||||
, meson
|
||||
|
@ -14,6 +14,7 @@
|
|||
, granite
|
||||
, gettext
|
||||
, mutter
|
||||
, wayland
|
||||
, json-glib
|
||||
, elementary-gtk-theme
|
||||
, elementary-icon-theme
|
||||
|
@ -21,24 +22,21 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel";
|
||||
version = "3.0.5";
|
||||
version = "8.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-xowGdaH0e6y0Q2xSl0kUa01rxxoEQ0qXB3sUol0YDBA=";
|
||||
sha256 = "sha256-c77ebUTs4D5M3//AfvtWI643n1a1sPb5Z70P+4tX3y8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./indicators.patch
|
||||
];
|
||||
|
||||
# Add sorting for QuickSettings
|
||||
# https://github.com/elementary/wingpanel/pull/516
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/wingpanel/commit/cae197c953f4332e67cf0a5457b4e54f8adc3424.patch";
|
||||
hash = "sha256-P7Cl6M3qvh9pa1qIwWQV4XG5NoCQId+buzEChcUOapk=";
|
||||
})
|
||||
depsBuildBuild = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -47,6 +45,7 @@ stdenv.mkDerivation rec {
|
|||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wayland-scanner
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
|
@ -58,6 +57,7 @@ stdenv.mkDerivation rec {
|
|||
json-glib
|
||||
libgee
|
||||
mutter
|
||||
wayland
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-notifications";
|
||||
version = "7.0.1";
|
||||
version = "8.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "notifications";
|
||||
rev = version;
|
||||
sha256 = "sha256-of7Tw38yJAhHKICU3XxGwIOwqfUhrL7SGKqFd9Dps/I=";
|
||||
sha256 = "sha256-40STrDpMx1WFaTriJNrvkkbzAM0DeBaPdc8o8URItQI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -44,12 +44,6 @@ stdenv.mkDerivation rec {
|
|||
libhandy
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# https://github.com/elementary/notifications/issues/222
|
||||
substituteInPlace src/FdoActionGroup.vala \
|
||||
--replace-fail "out VariantType" "out unowned VariantType"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
|
|
@ -10,19 +10,20 @@
|
|||
, libadwaita
|
||||
, libgee
|
||||
, granite7
|
||||
, pantheon-wayland
|
||||
, polkit
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pantheon-agent-polkit";
|
||||
version = "8.0.0";
|
||||
version = "8.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-Hm4vEubj2VjObD2t7wBHGrjnp6Nza6Ze7AOcJ0n5Dmc=";
|
||||
hash = "sha256-qqeB8SLuES/KoK7ycQ2J1YBA07HITovdnO8kSsrVcfs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
|
|||
gtk4
|
||||
libadwaita
|
||||
libgee
|
||||
pantheon-wayland
|
||||
polkit
|
||||
];
|
||||
|
||||
|
|
|
@ -11,19 +11,20 @@
|
|||
, granite7
|
||||
, gsettings-desktop-schemas
|
||||
, gtk4
|
||||
, pantheon-wayland
|
||||
, systemd
|
||||
, xorg
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdg-desktop-portal-pantheon";
|
||||
version = "7.2.0";
|
||||
version = "8.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "portals";
|
||||
rev = version;
|
||||
sha256 = "sha256-0pXb4GPUThHfe0mCqoYuQzMgRCeejsEI3fK7PxjrtJM=";
|
||||
sha256 = "sha256-pf7xQwsBRjjyOMUPe7fJp1vOhhBmuXJ6Uf4YosxbHtw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -39,6 +40,7 @@ stdenv.mkDerivation rec {
|
|||
granite7
|
||||
gsettings-desktop-schemas
|
||||
gtk4
|
||||
pantheon-wayland
|
||||
systemd
|
||||
xorg.libX11
|
||||
];
|
||||
|
|
|
@ -218,11 +218,7 @@ effectiveStdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
env = lib.optionalAttrs effectiveStdenv.cc.isClang {
|
||||
NIX_CFLAGS_COMPILE = toString [
|
||||
"-Wno-error=deprecated-declarations"
|
||||
"-Wno-error=deprecated-pragma"
|
||||
"-Wno-error=unused-but-set-variable"
|
||||
];
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error";
|
||||
};
|
||||
|
||||
# aarch64-linux fails cpuinfo test, because /sys/devices/system/cpu/ does not exist in the sandbox
|
||||
|
@ -275,9 +271,5 @@ effectiveStdenv.mkDerivation rec {
|
|||
platforms = platforms.unix;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ puffnfresh ck3d cbourjau ];
|
||||
badPlatforms = [
|
||||
# error: implicit capture of 'this' with a capture default of '=' is deprecated [-Werror,-Wdeprecated-this-capture]
|
||||
lib.systems.inspect.patterns.isDarwin
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "newlib";
|
||||
version = "4.4.0.20231231";
|
||||
version = "4.5.0.20241231";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://sourceware.org/pub/newlib/newlib-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-DBZqOeG/CVHfr81olJ/g5LbTZYCB1igvOa7vxjEPLxM=";
|
||||
sha256 = "sha256-M/EmBeAFSWWZbCXBOCs+RjsK+ReZAB9buMBjDy7IyFI=";
|
||||
};
|
||||
|
||||
patches = lib.optionals nanoizeNewlib [
|
||||
|
|
|
@ -23,14 +23,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bayesian-optimization";
|
||||
version = "2.0.1";
|
||||
version = "2.0.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bayesian-optimization";
|
||||
repo = "BayesianOptimization";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-7XjbW/pKe5pbSDpoXdUxm/eRlD+KipCVLMEl5q0hjxo=";
|
||||
hash = "sha256-vT8MlfAdzIKj6uyQedYngP6rCkIZwS8EdtKs4+8l9CA=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "httpx-ws";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
|||
owner = "frankie567";
|
||||
repo = "httpx-ws";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-/xhj27uMPvbVsieAjnd8Z9q18BLxaXP/1ndrgewN4Og=";
|
||||
hash = "sha256-UO9O4d7QfPdIWL4CtlOuwQRsk/9sEFknahDLWIOfeA0=";
|
||||
};
|
||||
|
||||
# we don't need to use the hatch-regex-commit plugin
|
||||
|
|
|
@ -14,22 +14,22 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "linode-api";
|
||||
version = "5.25.0";
|
||||
version = "5.26.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
# Sources from Pypi exclude test fixtures
|
||||
src = fetchFromGitHub {
|
||||
owner = "linode";
|
||||
repo = "python-linode-api";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rEBMZft4o7R2e0N7x1ZEaCisRmhKggMbZWdtDvraoD0=";
|
||||
hash = "sha256-+Co8c0JJKzA2IBj/RUrY+iNTCI0nCvqQUW1F7Crd2mc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
requests
|
||||
polling
|
||||
deprecated
|
||||
|
@ -48,10 +48,10 @@ buildPythonPackage rec {
|
|||
|
||||
pythonImportsCheck = [ "linode_api4" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Python library for the Linode API v4";
|
||||
homepage = "https://github.com/linode/python-linode-api";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ glenns ];
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ glenns ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "cjekel";
|
||||
repo = "piecewise_linear_fit_py";
|
||||
tag = "v.${version}";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-TamFg+bX8QPRjY0HdrYviJRP8VwM7ucDFE2eZz5xNr0=";
|
||||
};
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-gitlab";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "python_gitlab";
|
||||
inherit version;
|
||||
hash = "sha256-GPEHZLasFK0MtSUu1mAlvf5ijOdHsau7z+dqgirGuuc=";
|
||||
hash = "sha256-yqvLUAIQ9PWe+fj+7E+Z6CHWUqVccuyfW/gg9F/Bcpg=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
|
|
@ -29,14 +29,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vcmi";
|
||||
version = "1.6.2";
|
||||
version = "1.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vcmi";
|
||||
repo = "vcmi";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-IUE/19tknfvca84Jiybbq0zb00WxOgP9N+BMTbUfPzA=";
|
||||
hash = "sha256-nq/2y0bV1UMMQVOpT/iG27Ulvux1aWS55XalMtayOtQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -14,12 +14,12 @@ let
|
|||
# kernel config in the xanmod version commit
|
||||
variants = {
|
||||
lts = {
|
||||
version = "6.6.69";
|
||||
hash = "sha256-ZU0vVea8CCR41Sc+bbM4GOnDsFUpTvBvCEHSHLmWHds=";
|
||||
version = "6.6.70";
|
||||
hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0=";
|
||||
};
|
||||
main = {
|
||||
version = "6.12.8";
|
||||
hash = "sha256-rEzSM71ACrBclunnJZ4qaEhPGIKCvyLVpeHgsiDxMu4=";
|
||||
version = "6.12.9";
|
||||
hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "ansible-lint";
|
||||
version = "24.9.2";
|
||||
version = "24.12.2";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "ansible_lint";
|
||||
hash = "sha256-fP9sWvEO+Za3xgEMvUjJFZJ2SuCY8rBUCHJomaEGan8=";
|
||||
hash = "sha256-9jYwnE5/ck/BpUTfUpxMI1T1TPNe3hHXUDZq+xFYpGQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -54,6 +54,8 @@ let
|
|||
|
||||
dontConfigure = true;
|
||||
|
||||
patches = [ ./disable-theme-tests.patch ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
|
||||
'';
|
||||
|
@ -103,8 +105,6 @@ let
|
|||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ bbigras ];
|
||||
platforms = platforms.all;
|
||||
# not compatible with bat 0.25.0
|
||||
broken = true;
|
||||
};
|
||||
};
|
||||
script =
|
||||
|
|
42
pkgs/tools/misc/bat-extras/disable-theme-tests.patch
Normal file
42
pkgs/tools/misc/bat-extras/disable-theme-tests.patch
Normal file
|
@ -0,0 +1,42 @@
|
|||
Subject: [PATCH] skip tests depending on color theme
|
||||
===================================================================
|
||||
diff --git a/test/suite/batpipe.sh b/test/suite/batpipe.sh
|
||||
--- a/test/suite/batpipe.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1)
|
||||
+++ b/test/suite/batpipe.sh (date 1736621098865)
|
||||
@@ -29,6 +29,7 @@
|
||||
test:batpipe_term_width() {
|
||||
description "Test support for BATPIPE_TERM_WIDTH"
|
||||
snapshot STDOUT
|
||||
+ skip "bat-extras does not support `--theme` flag"
|
||||
|
||||
export BATPIPE=color
|
||||
export BATPIPE_DEBUG_PARENT_EXECUTABLE=less
|
||||
Index: test/suite/batgrep.sh
|
||||
===================================================================
|
||||
diff --git a/test/suite/batgrep.sh b/test/suite/batgrep.sh
|
||||
--- a/test/suite/batgrep.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1)
|
||||
+++ b/test/suite/batgrep.sh (date 1736621086239)
|
||||
@@ -58,6 +58,7 @@
|
||||
description "Snapshot test for colored output."
|
||||
snapshot stdout
|
||||
snapshot stderr
|
||||
+ skip "bat-extras does not support `--theme` flag"
|
||||
|
||||
require_rg
|
||||
|
||||
@@ -118,6 +119,7 @@
|
||||
description "Should respect the BAT_STYLE variable."
|
||||
snapshot stdout
|
||||
snapshot stderr
|
||||
+ skip "bat-extras does not support `--theme` flag"
|
||||
|
||||
require_rg
|
||||
|
||||
@@ -128,6 +130,7 @@
|
||||
description "Snapshot test for output without separator"
|
||||
snapshot stdout
|
||||
snapshot stderr
|
||||
+ skip "bat-extras does not support `--theme` flag"
|
||||
|
||||
require_rg
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "0.1";
|
||||
version = "0.3";
|
||||
|
||||
pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
|
||||
gstreamer
|
||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
|||
owner = "hzeller";
|
||||
repo = "gmrender-resurrect";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FR5bMjwPnY1/PNdPRiaxoY1keogq40M06YOaoks4zVY=";
|
||||
sha256 = "sha256-Zt8YYRqqX5L/MGLsFzR8JOdYoNX9ypXLX5i+fqkzPkk=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -456,6 +456,7 @@ mapAliases {
|
|||
gmtk = throw "'gmtk' has been removed due to lack of maintenance upstream"; # Added 2024-09-14
|
||||
gmtp = throw "'gmtp' has been removed due to lack of maintenance upstream. Consider using 'gnome-music' instead"; # Added 2024-09-14
|
||||
gnome-latex = throw "'gnome-latex' has been superseded by 'enter-tex'"; # Added 2024-09-18
|
||||
gnome-settings-daemon43 = throw "'gnome-settings-daemon43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22
|
||||
gnu-cobol = gnucobol; # Added 2024-09-17
|
||||
gnupg1orig = throw "'gnupg1orig' has been removed due to lack of active upstream maintainance. Consider using 'gnupg' instead"; # Added 2025-01-11
|
||||
gnupg22 = throw "'gnupg22' is end-of-life. Consider using 'gnupg24' instead"; # Added 2025-01-05
|
||||
|
@ -886,6 +887,7 @@ mapAliases {
|
|||
mupdf_1_17 = throw "'mupdf_1_17' has been removed due to being outdated and insecure. Consider using 'mupdf' instead."; # Added 2024-08-22
|
||||
mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02
|
||||
mutt-with-sidebar = mutt; # Added 2022-09-17
|
||||
mutter43 = throw "'mutter43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22
|
||||
mysql-client = hiPrio mariadb.client;
|
||||
mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17
|
||||
mesa_drivers = throw "'mesa_drivers' has been removed, use 'pkgs.mesa' or 'pkgs.mesa.drivers' depending on target use case."; # Converted to throw 2024-07-11
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue