mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-12 04:35: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";
|
email = "nathaniel.brough@gmail.com";
|
||||||
name = "Nathaniel Brough";
|
name = "Nathaniel Brough";
|
||||||
};
|
};
|
||||||
|
nathanregner = {
|
||||||
|
email = "nathanregner@gmail.com";
|
||||||
|
github = "nathanregner";
|
||||||
|
githubId = 9659564;
|
||||||
|
name = "Nathan Regner";
|
||||||
|
};
|
||||||
nathanruiz = {
|
nathanruiz = {
|
||||||
email = "nathanruiz@protonmail.com";
|
email = "nathanruiz@protonmail.com";
|
||||||
github = "nathanruiz";
|
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 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.
|
- 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.
|
- 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.
|
- 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.
|
- 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" ''
|
askPasswordWrapper = pkgs.writeScript "ssh-askpass-wrapper" ''
|
||||||
#! ${pkgs.runtimeShell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')"
|
eval export $(systemctl --user show-environment | ${pkgs.coreutils}/bin/grep -E '^(DISPLAY|WAYLAND_DISPLAY|XAUTHORITY)=')
|
||||||
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')"
|
|
||||||
exec ${cfg.askPassword} "$@"
|
exec ${cfg.askPassword} "$@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = with lib.maintainers; [ ] ++ lib.teams.pantheon.members;
|
maintainers = with lib.maintainers; [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
|
@ -18,6 +18,13 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(lib.mkRenamedOptionModule
|
||||||
|
[ "services" "klipper" "mutableConfigFolder" ]
|
||||||
|
[ "services" "klipper" "configDir" ]
|
||||||
|
)
|
||||||
|
];
|
||||||
|
|
||||||
##### interface
|
##### interface
|
||||||
options = {
|
options = {
|
||||||
services.klipper = {
|
services.klipper = {
|
||||||
|
@ -52,23 +59,22 @@ in
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to copy the config to a mutable directory instead of using the one directly from the nix store.
|
Whether to manage the config outside of NixOS.
|
||||||
This will only copy the config if the file at `services.klipper.mutableConfigPath` doesn't exist.
|
|
||||||
|
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;
|
type = lib.types.path;
|
||||||
default = "/var/lib/klipper";
|
default = "/var/lib/klipper";
|
||||||
description = "Path to mutable Klipper config file.";
|
description = "Path to Klipper config file.";
|
||||||
};
|
};
|
||||||
|
|
||||||
configFile = lib.mkOption {
|
configFile = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = "Path to default Klipper config.";
|
||||||
Path to default Klipper config.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
octoprintIntegration = lib.mkOption {
|
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 {
|
services.klipper = lib.mkIf cfg.octoprintIntegration {
|
||||||
user = config.services.octoprint.user;
|
user = config.services.octoprint.user;
|
||||||
group = config.services.octoprint.group;
|
group = config.services.octoprint.group;
|
||||||
|
@ -178,9 +179,7 @@ in
|
||||||
"--input-tty=${cfg.inputTTY}"
|
"--input-tty=${cfg.inputTTY}"
|
||||||
+ lib.optionalString (cfg.apiSocket != null) " --api-server=${cfg.apiSocket}"
|
+ lib.optionalString (cfg.apiSocket != null) " --api-server=${cfg.apiSocket}"
|
||||||
+ lib.optionalString (cfg.logFile != null) " --logfile=${cfg.logFile}";
|
+ lib.optionalString (cfg.logFile != null) " --logfile=${cfg.logFile}";
|
||||||
printerConfigPath =
|
printerConfig =
|
||||||
if cfg.mutableConfig then cfg.mutableConfigFolder + "/printer.cfg" else "/etc/klipper.cfg";
|
|
||||||
printerConfigFile =
|
|
||||||
if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile;
|
if cfg.settings != null then format.generate "klipper.cfg" cfg.settings else cfg.configFile;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -188,19 +187,33 @@ in
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p ${cfg.mutableConfigFolder}
|
mkdir -p ${cfg.configDir}
|
||||||
${lib.optionalString (cfg.mutableConfig) ''
|
pushd ${cfg.configDir}
|
||||||
[ -e ${printerConfigPath} ] || {
|
if [ -e printer.cfg ]; then
|
||||||
cp ${printerConfigFile} ${printerConfigPath}
|
${
|
||||||
chmod +w ${printerConfigPath}
|
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"
|
||||||
|
''
|
||||||
}
|
}
|
||||||
''}
|
else
|
||||||
mkdir -p ${cfg.mutableConfigFolder}/gcodes
|
cat ${printerConfig} > printer.cfg
|
||||||
|
fi
|
||||||
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
restartTriggers = lib.optional (!cfg.mutableConfig) [ printerConfig ];
|
||||||
|
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{
|
{
|
||||||
ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${printerConfigPath}";
|
ExecStart = "${cfg.package}/bin/klippy ${klippyArgs} ${cfg.configDir}/printer.cfg";
|
||||||
RuntimeDirectory = "klipper";
|
RuntimeDirectory = "klipper";
|
||||||
StateDirectory = "klipper";
|
StateDirectory = "klipper";
|
||||||
SupplementaryGroups = [ "dialout" ];
|
SupplementaryGroups = [ "dialout" ];
|
||||||
|
|
|
@ -112,27 +112,23 @@ in
|
||||||
# https://github.com/elementary/greeter/issues/368
|
# https://github.com/elementary/greeter/issues/368
|
||||||
services.displayManager.defaultSession = mkDefault "pantheon";
|
services.displayManager.defaultSession = mkDefault "pantheon";
|
||||||
|
|
||||||
services.xserver.displayManager.sessionCommands = ''
|
environment.extraInit = ''
|
||||||
if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then
|
${concatMapStrings (p: ''
|
||||||
true
|
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||||
${concatMapStrings (p: ''
|
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||||
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
fi
|
||||||
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
|
if [ -d "${p}/lib/girepository-1.0" ]; then
|
||||||
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
|
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
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
|
||||||
fi
|
fi
|
||||||
'') cfg.sessionPath}
|
'') cfg.sessionPath}
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Default services
|
# Default services
|
||||||
hardware.bluetooth.enable = mkDefault true;
|
hardware.bluetooth.enable = mkDefault true;
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
services.accounts-daemon.enable = true;
|
services.accounts-daemon.enable = true;
|
||||||
services.bamf.enable = true;
|
|
||||||
services.colord.enable = mkDefault true;
|
services.colord.enable = mkDefault true;
|
||||||
services.fwupd.enable = mkDefault true;
|
services.fwupd.enable = mkDefault true;
|
||||||
# TODO: Enable once #177946 is resolved
|
# TODO: Enable once #177946 is resolved
|
||||||
|
@ -232,7 +228,8 @@ in
|
||||||
])) config.environment.pantheon.excludePackages;
|
])) config.environment.pantheon.excludePackages;
|
||||||
|
|
||||||
# Settings from elementary-default-settings
|
# 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.mime.enable = true;
|
||||||
xdg.icons.enable = true;
|
xdg.icons.enable = true;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
system.activationScripts.etc = lib.stringAfter [
|
system.activationScripts.etc = lib.stringAfter [
|
||||||
"users"
|
"users"
|
||||||
"groups"
|
"groups"
|
||||||
|
"specialfs"
|
||||||
] config.system.build.etcActivationCommands;
|
] config.system.build.etcActivationCommands;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +49,7 @@
|
||||||
boot.initrd.systemd = {
|
boot.initrd.systemd = {
|
||||||
mounts = [
|
mounts = [
|
||||||
{
|
{
|
||||||
where = "/run/etc-metadata";
|
where = "/run/nixos-etc-metadata";
|
||||||
what = "/etc-metadata-image";
|
what = "/etc-metadata-image";
|
||||||
type = "erofs";
|
type = "erofs";
|
||||||
options = "loop,ro";
|
options = "loop,ro";
|
||||||
|
@ -83,7 +84,7 @@
|
||||||
"relatime"
|
"relatime"
|
||||||
"redirect_dir=on"
|
"redirect_dir=on"
|
||||||
"metacopy=on"
|
"metacopy=on"
|
||||||
"lowerdir=/run/etc-metadata::/etc-basedir"
|
"lowerdir=/run/nixos-etc-metadata::/etc-basedir"
|
||||||
]
|
]
|
||||||
++ lib.optionals config.system.etc.overlay.mutable [
|
++ lib.optionals config.system.etc.overlay.mutable [
|
||||||
"rw"
|
"rw"
|
||||||
|
@ -113,7 +114,7 @@
|
||||||
unitConfig = {
|
unitConfig = {
|
||||||
RequiresMountsFor = [
|
RequiresMountsFor = [
|
||||||
"/sysroot/nix/store"
|
"/sysroot/nix/store"
|
||||||
"/run/etc-metadata"
|
"/run/nixos-etc-metadata"
|
||||||
];
|
];
|
||||||
DefaultDependencies = false;
|
DefaultDependencies = false;
|
||||||
};
|
};
|
||||||
|
|
|
@ -250,78 +250,100 @@ in
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
if config.system.etc.overlay.enable then
|
if config.system.etc.overlay.enable then
|
||||||
|
#bash
|
||||||
''
|
''
|
||||||
# This script atomically remounts /etc when switching configuration. On a (re-)boot
|
# This script atomically remounts /etc when switching configuration.
|
||||||
# this should not run because /etc is mounted via a systemd mount unit
|
# On a (re-)boot this should not run because /etc is mounted via a
|
||||||
# instead. To a large extent this mimics what composefs does. Because
|
# 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.
|
# it's relatively simple, however, we avoid the composefs dependency.
|
||||||
# Since this script is not idempotent, it should not run when etc hasn't
|
# Since this script is not idempotent, it should not run when etc hasn't
|
||||||
# changed.
|
# changed.
|
||||||
if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]] && [[ "${config.system.build.etc}/etc" != "$(readlink -f /run/current-system/etc)" ]]; then
|
if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]] && [[ "${config.system.build.etc}/etc" != "$(readlink -f /run/current-system/etc)" ]]; then
|
||||||
echo "remounting /etc..."
|
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 --type erofs -o ro ${config.system.build.etcMetadataImage} $tmpMetadataMount
|
||||||
|
|
||||||
# Mount the new /etc overlay to a temporary private mount.
|
# There was no previous /etc mounted. This happens when we're called
|
||||||
# This needs the indirection via a private bind mount because you
|
# directly without an initrd, like with nixos-enter.
|
||||||
# cannot move shared mounts.
|
if ! mountpoint -q /etc; then
|
||||||
tmpEtcMount=$(mktemp --directory -t nixos-etc.XXXXXXXXXX)
|
mount --type overlay overlay \
|
||||||
mount --bind --make-private $tmpEtcMount $tmpEtcMount
|
--options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
|
||||||
mount --type overlay overlay \
|
/etc
|
||||||
--options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
|
else
|
||||||
$tmpEtcMount
|
# 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
|
# Before moving the new /etc overlay under the old /etc, we have to
|
||||||
# move mounts on top of /etc to the new /etc mountpoint.
|
# move mounts on top of /etc to the new /etc mountpoint.
|
||||||
findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do
|
findmnt /etc --submounts --list --noheading --kernel --output TARGET | while read -r mountPoint; do
|
||||||
if [[ "$mountPoint" = "/etc" ]]; then
|
if [[ "$mountPoint" = "/etc" ]]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tmpMountPoint="$tmpEtcMount/''${mountPoint:5}"
|
tmpMountPoint="$tmpEtcMount/''${mountPoint:5}"
|
||||||
${
|
${
|
||||||
if config.system.etc.overlay.mutable then
|
if config.system.etc.overlay.mutable then
|
||||||
''
|
''
|
||||||
if [[ -f "$mountPoint" ]]; then
|
if [[ -f "$mountPoint" ]]; then
|
||||||
touch "$tmpMountPoint"
|
touch "$tmpMountPoint"
|
||||||
elif [[ -d "$mountPoint" ]]; then
|
elif [[ -d "$mountPoint" ]]; then
|
||||||
mkdir -p "$tmpMountPoint"
|
mkdir -p "$tmpMountPoint"
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
else
|
else
|
||||||
''
|
''
|
||||||
if [[ ! -e "$tmpMountPoint" ]]; then
|
if [[ ! -e "$tmpMountPoint" ]]; then
|
||||||
echo "Skipping undeclared mountpoint in environment.etc: $mountPoint"
|
echo "Skipping undeclared mountpoint in environment.etc: $mountPoint"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
mount --bind "$mountPoint" "$tmpMountPoint"
|
mount --bind "$mountPoint" "$tmpMountPoint"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Move the new temporary /etc mount underneath the current /etc mount.
|
# Move the new temporary /etc mount underneath the current /etc mount.
|
||||||
#
|
#
|
||||||
# This should eventually use util-linux to perform this move beneath,
|
# This should eventually use util-linux to perform this move beneath,
|
||||||
# however, this functionality is not yet in util-linux. See this
|
# however, this functionality is not yet in util-linux. See this
|
||||||
# tracking issue: https://github.com/util-linux/util-linux/issues/2604
|
# tracking issue: https://github.com/util-linux/util-linux/issues/2604
|
||||||
${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc
|
${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc
|
||||||
|
|
||||||
# Unmount the top /etc mount to atomically reveal the new mount.
|
# Unmount the top /etc mount to atomically reveal the new mount.
|
||||||
umount --lazy --recursive /etc
|
umount --lazy --recursive /etc
|
||||||
|
|
||||||
# Unmount the temporary mount
|
# Unmount the temporary mount
|
||||||
umount --lazy "$tmpEtcMount"
|
umount --lazy "$tmpEtcMount"
|
||||||
rmdir "$tmpEtcMount"
|
rmdir "$tmpEtcMount"
|
||||||
|
fi
|
||||||
|
|
||||||
# Unmount old metadata mounts
|
# Unmount old metadata mounts
|
||||||
# For some reason, `findmnt /tmp --submounts` does not show the nested
|
# 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
|
# mounts. So we'll just find all mounts of type erofs and filter on the
|
||||||
# name of the mountpoint.
|
# name of the mountpoint.
|
||||||
findmnt --type erofs --list --kernel --output TARGET | while read -r mountPoint; do
|
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
|
"$mountPoint" != "$tmpMetadataMount" ]]; then
|
||||||
umount --lazy $mountPoint
|
umount --lazy "$mountPoint"
|
||||||
rmdir "$mountPoint"
|
rmdir "$mountPoint"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -39,8 +39,8 @@
|
||||||
''
|
''
|
||||||
newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip()
|
newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip()
|
||||||
|
|
||||||
with subtest("/run/etc-metadata/ is mounted"):
|
with subtest("/run/nixos-etc-metadata/ is mounted"):
|
||||||
print(machine.succeed("mountpoint /run/etc-metadata"))
|
print(machine.succeed("mountpoint /run/nixos-etc-metadata"))
|
||||||
|
|
||||||
with subtest("No temporary files leaked into stage 2"):
|
with subtest("No temporary files leaked into stage 2"):
|
||||||
machine.succeed("[ ! -e /etc-metadata-image ]")
|
machine.succeed("[ ! -e /etc-metadata-image ]")
|
||||||
|
@ -91,10 +91,14 @@
|
||||||
|
|
||||||
machine.succeed(f"{newergen} switch")
|
machine.succeed(f"{newergen} switch")
|
||||||
|
|
||||||
tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip()
|
tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip()
|
||||||
metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").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"
|
numOfTmpMounts = len(tmpMounts.splitlines())
|
||||||
assert metaMounts == "1", f"Found {metaMounts} remaining metamounts"
|
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()
|
newergen = machine.succeed("realpath /run/current-system/specialisation/newer-generation/bin/switch-to-configuration").rstrip()
|
||||||
|
|
||||||
with subtest("/run/etc-metadata/ is mounted"):
|
with subtest("/run/nixos-etc-metadata/ is mounted"):
|
||||||
print(machine.succeed("mountpoint /run/etc-metadata"))
|
print(machine.succeed("mountpoint /run/nixos-etc-metadata"))
|
||||||
|
|
||||||
with subtest("No temporary files leaked into stage 2"):
|
with subtest("No temporary files leaked into stage 2"):
|
||||||
machine.succeed("[ ! -e /etc-metadata-image ]")
|
machine.succeed("[ ! -e /etc-metadata-image ]")
|
||||||
|
@ -68,10 +68,14 @@
|
||||||
machine.succeed(f"{newergen} switch")
|
machine.succeed(f"{newergen} switch")
|
||||||
assert machine.succeed("cat /etc/newergen") == "newergen"
|
assert machine.succeed("cat /etc/newergen") == "newergen"
|
||||||
|
|
||||||
tmpMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc\\..*' | wc -l").rstrip()
|
tmpMounts = machine.succeed("find /run -maxdepth 1 -type d -regex '/run/nixos-etc\\..*'").rstrip()
|
||||||
metaMounts = machine.succeed("find /tmp -maxdepth 1 -type d -regex '/tmp/nixos-etc-metadata\\..*' | wc -l").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"
|
numOfTmpMounts = len(tmpMounts.splitlines())
|
||||||
assert metaMounts == "1", f"Found {metaMounts} remaining metamounts"
|
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 {};
|
patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {};
|
||||||
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
|
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
|
||||||
pantheon = handleTest ./pantheon.nix {};
|
pantheon = handleTest ./pantheon.nix {};
|
||||||
|
pantheon-wayland = handleTest ./pantheon-wayland.nix {};
|
||||||
paperless = handleTest ./paperless.nix {};
|
paperless = handleTest ./paperless.nix {};
|
||||||
parsedmarc = handleTest ./parsedmarc {};
|
parsedmarc = handleTest ./parsedmarc {};
|
||||||
password-option-override-ordering = handleTest ./password-option-override-ordering.nix {};
|
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}")
|
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||||
|
|
||||||
with subtest("Check if Pantheon components actually start"):
|
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}")
|
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)
|
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}")
|
machine.wait_for_unit(i, "${user.name}")
|
||||||
|
|
||||||
with subtest("Check if various environment variables are set"):
|
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'")
|
machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'")
|
||||||
# Hopefully from login shell.
|
# Hopefully from login shell.
|
||||||
machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE' | grep '1'")
|
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"):
|
with subtest("Open elementary videos"):
|
||||||
machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.videos >&2 &'")
|
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.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||||
machine.sleep(5)
|
machine.sleep(5)
|
||||||
machine.screenshot("multitasking")
|
machine.screenshot("multitasking")
|
||||||
|
machine.succeed(f"su - ${user.name} -c '{env} {cmd}'")
|
||||||
|
|
||||||
with subtest("Check if gala has ever coredumped"):
|
with subtest("Check if gala has ever coredumped"):
|
||||||
machine.fail("coredumpctl --json=short | grep gala")
|
machine.fail("coredumpctl --json=short | grep gala")
|
||||||
|
|
|
@ -28,13 +28,13 @@ in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "tiled";
|
pname = "tiled";
|
||||||
version = "1.11.0";
|
version = "1.11.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mapeditor";
|
owner = "mapeditor";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-cFS1OSYfGMsnw+VkZD/HO4+D+pxNKuifWjNhy0FoxN0=";
|
sha256 = "sha256-9cgGweo0D43U/puS82JCmBrikKe/TclHsrghQ4OZVEo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
gobject-introspection,
|
gobject-introspection,
|
||||||
gsettings-desktop-schemas,
|
gsettings-desktop-schemas,
|
||||||
glib-networking,
|
glib-networking,
|
||||||
notify-osd,
|
|
||||||
gtk3,
|
gtk3,
|
||||||
glib,
|
glib,
|
||||||
gdk-pixbuf,
|
gdk-pixbuf,
|
||||||
|
@ -51,7 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
glib-networking
|
glib-networking
|
||||||
notify-osd
|
|
||||||
gtk3
|
gtk3
|
||||||
gstreamer
|
gstreamer
|
||||||
gst-libav
|
gst-libav
|
||||||
|
|
|
@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
|
||||||
asciidoctor
|
asciidoctor
|
||||||
cmake
|
cmake
|
||||||
gfortran
|
gfortran
|
||||||
|
hamlib_4 # rigctl
|
||||||
libtool
|
libtool
|
||||||
pkg-config
|
pkg-config
|
||||||
qttools
|
qttools
|
||||||
|
@ -53,6 +54,8 @@ stdenv.mkDerivation rec {
|
||||||
boost
|
boost
|
||||||
];
|
];
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Weak-signal digital communication modes for amateur radio";
|
description = "Weak-signal digital communication modes for amateur radio";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
|
|
||||||
python3Packages.buildPythonPackage rec {
|
python3Packages.buildPythonPackage rec {
|
||||||
pname = "arouteserver";
|
pname = "arouteserver";
|
||||||
version = "1.23.1";
|
version = "1.23.2";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pierky";
|
owner = "pierky";
|
||||||
repo = "arouteserver";
|
repo = "arouteserver";
|
||||||
rev = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-EZOBMDBsxbuVzzjQWU8V4n3gcLkRQxCq2eVK/Tyko4E=";
|
hash = "sha256-qPU1eBEAlF6wcI1KEBtSuf0a+pKsqoCN0mtAPjIr+0c=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -104,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
css-parser
|
css-parser
|
||||||
cssselect
|
cssselect
|
||||||
|
fonttools
|
||||||
python-dateutil
|
python-dateutil
|
||||||
dnspython
|
dnspython
|
||||||
faust-cchardet
|
faust-cchardet
|
||||||
|
@ -206,7 +207,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
|
|
||||||
doInstallCheck = true;
|
doInstallCheck = true;
|
||||||
installCheckInputs = with python3Packages; [
|
installCheckInputs = with python3Packages; [
|
||||||
fonttools
|
|
||||||
psutil
|
psutil
|
||||||
];
|
];
|
||||||
installCheckPhase = ''
|
installCheckPhase = ''
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
}:
|
}:
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "exo";
|
pname = "exo";
|
||||||
version = "0.0.4-alpha";
|
version = "0.0.5-alpha";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "exo-explore";
|
owner = "exo-explore";
|
||||||
repo = "exo";
|
repo = "exo";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-tB+/MtAAyBwoculoToiUgwqHOKEOu6Ip1Jvx0+FqC8o=";
|
hash = "sha256-bAbKmLoJbDVwGoWTxA3a0CUzVFoso6/Uz6e48MSJDgw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = with python3Packages; [ setuptools ];
|
build-system = with python3Packages; [ setuptools ];
|
||||||
|
|
|
@ -28,13 +28,13 @@ let
|
||||||
in
|
in
|
||||||
buildDotnetModule (finalAttrs: {
|
buildDotnetModule (finalAttrs: {
|
||||||
pname = "famistudio";
|
pname = "famistudio";
|
||||||
version = "4.3.0";
|
version = "4.3.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "BleuBleu";
|
owner = "BleuBleu";
|
||||||
repo = "FamiStudio";
|
repo = "FamiStudio";
|
||||||
tag = finalAttrs.version;
|
tag = finalAttrs.version;
|
||||||
hash = "sha256-Ldht7w1qgLTiqbRUJJvFQgl1VW6k+14w/jz58kAeMl0=";
|
hash = "sha256-ISOMsnsvsO3wOp9J/CilCr4wBgkHc29od2a2sBssN7k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
|
|
|
@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
|
||||||
pkg-config
|
pkg-config
|
||||||
];
|
];
|
||||||
|
|
||||||
|
env.FLTK_CONFIG = lib.getExe' (lib.getDev fltk13) "fltk-config";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Digital modem rig control program";
|
description = "Digital modem rig control program";
|
||||||
homepage = "https://sourceforge.net/projects/fldigi/";
|
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,
|
stdenv,
|
||||||
lib,
|
lib,
|
||||||
fetchpatch,
|
|
||||||
substituteAll,
|
substituteAll,
|
||||||
fetchurl,
|
fetchurl,
|
||||||
meson,
|
meson,
|
||||||
|
@ -13,7 +12,6 @@
|
||||||
glib,
|
glib,
|
||||||
libnotify,
|
libnotify,
|
||||||
libgnomekbd,
|
libgnomekbd,
|
||||||
lcms2,
|
|
||||||
libpulseaudio,
|
libpulseaudio,
|
||||||
alsa-lib,
|
alsa-lib,
|
||||||
libcanberra-gtk3,
|
libcanberra-gtk3,
|
||||||
|
@ -36,26 +34,22 @@
|
||||||
wrapGAppsHook3,
|
wrapGAppsHook3,
|
||||||
python3,
|
python3,
|
||||||
tzdata,
|
tzdata,
|
||||||
nss,
|
|
||||||
gcr_4,
|
gcr_4,
|
||||||
gnome-session-ctl,
|
gnome-session-ctl,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "gnome-settings-daemon";
|
pname = "gnome-settings-daemon";
|
||||||
version = "43.0";
|
version = "46.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major finalAttrs.version}/gnome-settings-daemon-${finalAttrs.version}.tar.xz";
|
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 = [
|
patches = [
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
|
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
|
||||||
(fetchpatch {
|
./add-gnome-session-ctl-option.patch
|
||||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
|
|
||||||
hash = "sha256-O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
|
|
||||||
})
|
|
||||||
|
|
||||||
(substituteAll {
|
(substituteAll {
|
||||||
src = ./fix-paths.patch;
|
src = ./fix-paths.patch;
|
||||||
|
@ -85,14 +79,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
libnotify
|
libnotify
|
||||||
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
|
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
|
||||||
gnome-desktop
|
gnome-desktop
|
||||||
lcms2
|
|
||||||
libpulseaudio
|
libpulseaudio
|
||||||
alsa-lib
|
alsa-lib
|
||||||
libcanberra-gtk3
|
libcanberra-gtk3
|
||||||
upower
|
upower
|
||||||
colord
|
colord
|
||||||
libgweather
|
libgweather
|
||||||
nss
|
|
||||||
polkit
|
polkit
|
||||||
geocode-glib_2
|
geocode-glib_2
|
||||||
geoclue2
|
geoclue2
|
|
@ -2,7 +2,6 @@
|
||||||
fetchurl,
|
fetchurl,
|
||||||
runCommand,
|
runCommand,
|
||||||
lib,
|
lib,
|
||||||
fetchpatch,
|
|
||||||
stdenv,
|
stdenv,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
gettext,
|
gettext,
|
||||||
|
@ -11,26 +10,43 @@
|
||||||
colord,
|
colord,
|
||||||
lcms2,
|
lcms2,
|
||||||
pango,
|
pango,
|
||||||
json-glib,
|
|
||||||
libstartup_notification,
|
libstartup_notification,
|
||||||
libcanberra,
|
libcanberra,
|
||||||
ninja,
|
ninja,
|
||||||
xvfb-run,
|
xvfb-run,
|
||||||
xkeyboard_config,
|
|
||||||
libxcvt,
|
libxcvt,
|
||||||
libxkbfile,
|
libICE,
|
||||||
|
libX11,
|
||||||
|
libXcomposite,
|
||||||
|
libXcursor,
|
||||||
libXdamage,
|
libXdamage,
|
||||||
libxkbcommon,
|
libXext,
|
||||||
|
libXfixes,
|
||||||
|
libXi,
|
||||||
libXtst,
|
libXtst,
|
||||||
|
libxkbfile,
|
||||||
|
xkeyboard_config,
|
||||||
|
libxkbcommon,
|
||||||
|
libXrender,
|
||||||
|
libxcb,
|
||||||
|
libXrandr,
|
||||||
|
libXinerama,
|
||||||
|
libXau,
|
||||||
libinput,
|
libinput,
|
||||||
libdrm,
|
libdrm,
|
||||||
|
libei,
|
||||||
|
libdisplay-info,
|
||||||
gsettings-desktop-schemas,
|
gsettings-desktop-schemas,
|
||||||
glib,
|
glib,
|
||||||
gtk3,
|
atk,
|
||||||
|
gtk4,
|
||||||
|
fribidi,
|
||||||
|
harfbuzz,
|
||||||
gnome-desktop,
|
gnome-desktop,
|
||||||
pipewire,
|
pipewire,
|
||||||
libgudev,
|
libgudev,
|
||||||
libwacom,
|
libwacom,
|
||||||
|
libSM,
|
||||||
xwayland,
|
xwayland,
|
||||||
mesa,
|
mesa,
|
||||||
meson,
|
meson,
|
||||||
|
@ -38,12 +54,11 @@
|
||||||
xorgserver,
|
xorgserver,
|
||||||
python3,
|
python3,
|
||||||
wayland-scanner,
|
wayland-scanner,
|
||||||
wrapGAppsHook3,
|
wrapGAppsHook4,
|
||||||
gi-docgen,
|
gi-docgen,
|
||||||
sysprof,
|
sysprof,
|
||||||
libsysprof-capture,
|
libsysprof-capture,
|
||||||
desktop-file-utils,
|
desktop-file-utils,
|
||||||
libcap_ng,
|
|
||||||
egl-wayland,
|
egl-wayland,
|
||||||
graphene,
|
graphene,
|
||||||
wayland,
|
wayland,
|
||||||
|
@ -52,7 +67,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "mutter";
|
pname = "mutter";
|
||||||
version = "43.8";
|
version = "46.7";
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
"out"
|
"out"
|
||||||
|
@ -63,33 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
|
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 = [
|
mesonFlags = [
|
||||||
"-Degl_device=true"
|
"-Degl_device=true"
|
||||||
"-Dinstalled_tests=false" # TODO: enable these
|
"-Dinstalled_tests=false" # TODO: enable these
|
||||||
|
"-Dtests=false"
|
||||||
"-Dwayland_eglstream=true"
|
"-Dwayland_eglstream=true"
|
||||||
"-Dprofiler=true"
|
"-Dprofiler=true"
|
||||||
"-Dxwayland_path=${lib.getExe xwayland}"
|
"-Dxwayland_path=${lib.getExe xwayland}"
|
||||||
|
@ -100,10 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
# required for pkg-config to detect mutter-clutter
|
# required for pkg-config to detect mutter-mtk
|
||||||
json-glib
|
|
||||||
libXtst
|
|
||||||
libcap_ng
|
|
||||||
graphene
|
graphene
|
||||||
mesa # actually uses eglmesaext
|
mesa # actually uses eglmesaext
|
||||||
];
|
];
|
||||||
|
@ -118,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
python3
|
||||||
wayland-scanner
|
wayland-scanner
|
||||||
wrapGAppsHook3
|
wrapGAppsHook4
|
||||||
gi-docgen
|
gi-docgen
|
||||||
xorgserver
|
xorgserver
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
|
@ -131,34 +123,50 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
gnome-desktop
|
gnome-desktop
|
||||||
gnome-settings-daemon
|
gnome-settings-daemon
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
gtk3
|
atk
|
||||||
|
fribidi
|
||||||
|
harfbuzz
|
||||||
libcanberra
|
libcanberra
|
||||||
libdrm
|
libdrm
|
||||||
|
libei
|
||||||
|
libdisplay-info
|
||||||
libgudev
|
libgudev
|
||||||
libinput
|
libinput
|
||||||
libstartup_notification
|
libstartup_notification
|
||||||
libwacom
|
libwacom
|
||||||
libxkbcommon
|
libSM
|
||||||
libxkbfile
|
|
||||||
libXdamage
|
|
||||||
colord
|
colord
|
||||||
lcms2
|
lcms2
|
||||||
pango
|
pango
|
||||||
pipewire
|
pipewire
|
||||||
sysprof # for D-Bus interfaces
|
sysprof # for D-Bus interfaces
|
||||||
libsysprof-capture
|
libsysprof-capture
|
||||||
xkeyboard_config
|
|
||||||
xwayland
|
xwayland
|
||||||
wayland
|
wayland
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
|
# X11 client
|
||||||
|
gtk4
|
||||||
|
libICE
|
||||||
|
libX11
|
||||||
|
libXcomposite
|
||||||
|
libXcursor
|
||||||
|
libXdamage
|
||||||
|
libXext
|
||||||
|
libXfixes
|
||||||
|
libXi
|
||||||
|
libXtst
|
||||||
|
libxkbfile
|
||||||
|
xkeyboard_config
|
||||||
|
libxkbcommon
|
||||||
|
libXrender
|
||||||
|
libxcb
|
||||||
|
libXrandr
|
||||||
|
libXinerama
|
||||||
|
libXau
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs src/backends/native/gen-default-modes.py
|
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 = ''
|
postInstall = ''
|
||||||
|
@ -168,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
||||||
# TODO: Move this into a directory devhelp can find.
|
# 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.
|
# Install udev files into our own tree.
|
||||||
|
@ -177,7 +185,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
separateDebugInfo = true;
|
separateDebugInfo = true;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
libdir = "${finalAttrs.finalPackage}/lib/mutter-11";
|
libdir = "${finalAttrs.finalPackage}/lib/mutter-14";
|
||||||
|
|
||||||
tests = {
|
tests = {
|
||||||
libdirExists = runCommand "mutter-libdir-exists" { } ''
|
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 = ''
|
preCheck = ''
|
||||||
export XDG_RUNTIME_DIR=$(mktemp -d)
|
export XDG_RUNTIME_DIR=$(mktemp -d)
|
||||||
|
# See https://github.com/YaLTeR/niri/issues/953
|
||||||
|
export RAYON_NUM_THREADS=1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|
|
@ -58,10 +58,11 @@ if [[ ! -e $mountPoint/etc/NIXOS ]]; then
|
||||||
exit 126
|
exit 126
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$mountPoint/dev" "$mountPoint/sys"
|
mkdir -p "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc"
|
||||||
chmod 0755 "$mountPoint/dev" "$mountPoint/sys"
|
chmod 0755 "$mountPoint/dev" "$mountPoint/sys" "$mountPoint/proc"
|
||||||
mount --rbind /dev "$mountPoint/dev"
|
mount --rbind /dev "$mountPoint/dev"
|
||||||
mount --rbind /sys "$mountPoint/sys"
|
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
|
# modified from https://github.com/archlinux/arch-install-scripts/blob/bb04ab435a5a89cd5e5ee821783477bc80db797f/arch-chroot.in#L26-L52
|
||||||
chroot_add_resolv_conf() {
|
chroot_add_resolv_conf() {
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "rss-bridge";
|
pname = "rss-bridge";
|
||||||
version = "2024-02-02";
|
version = "2025-01-02";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "RSS-Bridge";
|
owner = "RSS-Bridge";
|
||||||
repo = "rss-bridge";
|
repo = "rss-bridge";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-VycEgu7uHYwDnNE1eoVxgaWZAnC6mZLBxT8Le3PI4Rs=";
|
sha256 = "sha256-6Ise+qptY2wLkNveT/mzL0nWrX6OhxAlOJkF2+BmSTE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
cmake,
|
cmake,
|
||||||
ninja,
|
ninja,
|
||||||
llvm_17,
|
llvm,
|
||||||
clang_17,
|
clang,
|
||||||
z3,
|
z3,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
}:
|
}:
|
||||||
|
@ -48,13 +48,13 @@ stdenv.mkDerivation {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
ninja
|
ninja
|
||||||
llvm_17
|
llvm
|
||||||
clang_17
|
clang
|
||||||
makeWrapper
|
makeWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
llvm_17
|
llvm
|
||||||
z3
|
z3
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec {
|
||||||
pname = "typos-lsp";
|
pname = "typos-lsp";
|
||||||
# Please update the corresponding VSCode extension too.
|
# Please update the corresponding VSCode extension too.
|
||||||
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
|
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
|
||||||
version = "0.1.32";
|
version = "0.1.33";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tekumara";
|
owner = "tekumara";
|
||||||
repo = "typos-lsp";
|
repo = "typos-lsp";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-ezRyitmdcOki/thQGJ11+UYMIG2fYJ9HMcvD++s/ewM=";
|
hash = "sha256-FunbE4HxDmugLmR2XwFFAjvNBTVbLAhiHtacxuPXMVE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-J1XbhCP2EMFIHs2U9kTtNNdGF4UnZWNgIO7L3YlYkqo=";
|
cargoHash = "sha256-hmKm8mPIZlEDcAPuvyUUQZUpIy51mSksahcRknMnMW0=";
|
||||||
|
|
||||||
# fix for compilation on aarch64
|
# fix for compilation on aarch64
|
||||||
# see https://github.com/NixOS/nixpkgs/issues/145726
|
# 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 = 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-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-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 = 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-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.
|
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.
|
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.
|
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.
|
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.
|
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-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.
|
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
|
stdenv,
|
||||||
, fetchFromGitHub
|
lib,
|
||||||
, vala
|
fetchFromGitHub,
|
||||||
, atk
|
meson,
|
||||||
, cairo
|
ninja,
|
||||||
, dconf
|
pkg-config,
|
||||||
, glib
|
vala,
|
||||||
, gtk3
|
wayland-scanner,
|
||||||
, libwnck
|
wrapGAppsHook4,
|
||||||
, libX11
|
glib,
|
||||||
, libXfixes
|
granite7,
|
||||||
, libXi
|
gtk4,
|
||||||
, pango
|
libadwaita,
|
||||||
, pkg-config
|
wayland,
|
||||||
, libxml2
|
|
||||||
, bamf
|
|
||||||
, gdk-pixbuf
|
|
||||||
, libdbusmenu-gtk3
|
|
||||||
, gnome-menus
|
|
||||||
, libgee
|
|
||||||
, wrapGAppsHook3
|
|
||||||
, meson
|
|
||||||
, ninja
|
|
||||||
, granite
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "elementary-dock";
|
pname = "elementary-dock";
|
||||||
version = "unstable-2021-05-07";
|
version = "8.0.1";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [
|
||||||
|
"out"
|
||||||
|
"dev"
|
||||||
|
];
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "dock";
|
repo = "dock";
|
||||||
rev = "113c3b0bc7744501d2101dd7afc1ef21ba66b326";
|
rev = finalAttrs.version;
|
||||||
sha256 = "sha256-YlvdB02/hUGaDyHIHy21bgloHyVy3vHcanyNKnp3YbM=";
|
hash = "sha256-Q4Y9FVqzPXoz2Nti1qB5SOJQ0tETPcv2fZPOMkJaND8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
depsBuildBuild = [ pkg-config ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
libxml2 # xmllint
|
|
||||||
pkg-config
|
pkg-config
|
||||||
vala
|
vala
|
||||||
wrapGAppsHook3
|
wayland-scanner
|
||||||
|
wrapGAppsHook4
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
atk
|
|
||||||
bamf
|
|
||||||
cairo
|
|
||||||
gdk-pixbuf
|
|
||||||
glib
|
glib
|
||||||
gnome-menus
|
granite7
|
||||||
dconf
|
gtk4
|
||||||
granite
|
libadwaita
|
||||||
gtk3
|
wayland
|
||||||
libX11
|
|
||||||
libXfixes
|
|
||||||
libXi
|
|
||||||
libdbusmenu-gtk3
|
|
||||||
libgee
|
|
||||||
libwnck
|
|
||||||
pango
|
|
||||||
];
|
];
|
||||||
|
|
||||||
postInstall = ''
|
meta = {
|
||||||
# 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; {
|
|
||||||
description = "Elegant, simple, clean dock";
|
description = "Elegant, simple, clean dock";
|
||||||
homepage = "https://github.com/elementary/dock";
|
homepage = "https://github.com/elementary/dock";
|
||||||
license = licenses.gpl3Plus;
|
license = lib.licenses.gpl3Plus;
|
||||||
platforms = platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
|
maintainers = lib.teams.pantheon.members;
|
||||||
mainProgram = "plank";
|
mainProgram = "io.elementary.dock";
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
, libportal-gtk3
|
, libportal-gtk3
|
||||||
, granite
|
, granite
|
||||||
, pango
|
, pango
|
||||||
, bamf
|
|
||||||
, sqlite
|
, sqlite
|
||||||
, zeitgeist
|
, zeitgeist
|
||||||
, libcloudproviders
|
, libcloudproviders
|
||||||
|
@ -47,7 +46,6 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
bamf
|
|
||||||
glib
|
glib
|
||||||
granite
|
granite
|
||||||
gtk3
|
gtk3
|
||||||
|
|
|
@ -23,13 +23,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "switchboard-plug-keyboard";
|
pname = "switchboard-plug-keyboard";
|
||||||
version = "8.0.0";
|
version = "8.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-jOUrotgtSRmSVsxOXEbQfIi92BlpIPye7maCsa+ssT8=";
|
sha256 = "sha256-/jfUftlNL+B4570ajropS7/2fqro380kZzpPwm+A9fA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, nix-update-script
|
, nix-update-script
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
|
@ -25,24 +24,15 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "switchboard-plug-pantheon-shell";
|
pname = "switchboard-plug-pantheon-shell";
|
||||||
version = "8.0.0";
|
version = "8.1.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
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 = [
|
nativeBuildInputs = [
|
||||||
gettext
|
gettext
|
||||||
meson
|
meson
|
||||||
|
@ -67,13 +57,6 @@ stdenv.mkDerivation rec {
|
||||||
wingpanel-quick-settings # gsettings schemas
|
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 = {
|
passthru = {
|
||||||
updateScript = nix-update-script { };
|
updateScript = nix-update-script { };
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,10 +38,10 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||||
|
|
||||||
maintainers = lib.teams.pantheon.members;
|
maintainers = lib.teams.pantheon.members;
|
||||||
|
|
||||||
mutter = pkgs.mutter43;
|
mutter = pkgs.mutter46;
|
||||||
|
|
||||||
# Using 43 to match Mutter used in Pantheon
|
# 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 { };
|
elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, nix-update-script
|
, nix-update-script
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
|
@ -15,24 +14,15 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-default-settings";
|
pname = "elementary-default-settings";
|
||||||
version = "7.1.0";
|
version = "8.0.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "default-settings";
|
repo = "default-settings";
|
||||||
rev = version;
|
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 = [
|
nativeBuildInputs = [
|
||||||
glib # glib-compile-schemas
|
glib # glib-compile-schemas
|
||||||
meson
|
meson
|
||||||
|
@ -49,19 +39,8 @@ stdenv.mkDerivation rec {
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"--sysconfdir=${placeholder "out"}/etc"
|
"--sysconfdir=${placeholder "out"}/etc"
|
||||||
"-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
|
"-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 = ''
|
postFixup = ''
|
||||||
# https://github.com/elementary/default-settings/issues/55
|
# https://github.com/elementary/default-settings/issues/55
|
||||||
rm -r $out/share/cups
|
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
|
, granite
|
||||||
, libgee
|
, libgee
|
||||||
, libhandy
|
, libhandy
|
||||||
|
, gnome-desktop
|
||||||
, gnome-settings-daemon
|
, gnome-settings-daemon
|
||||||
, mutter
|
, mutter
|
||||||
, elementary-icon-theme
|
, elementary-icon-theme
|
||||||
|
@ -24,18 +25,19 @@
|
||||||
, gdk-pixbuf
|
, gdk-pixbuf
|
||||||
, dbus
|
, dbus
|
||||||
, accountsservice
|
, accountsservice
|
||||||
|
, wayland-scanner
|
||||||
, wrapGAppsHook3
|
, wrapGAppsHook3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-greeter";
|
pname = "elementary-greeter";
|
||||||
version = "7.0.0";
|
version = "8.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "greeter";
|
repo = "greeter";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-m/xuaMCAPoqhl/M547mdafBPBu3UhHmVmBIUKQoS5L8=";
|
sha256 = "sha256-fx3KHMF6UhIFXyJHQ4dKJnVidsNMBk7AvHzaF3ELH1k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -47,18 +49,22 @@ stdenv.mkDerivation rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
depsBuildBuild = [ pkg-config ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
desktop-file-utils
|
desktop-file-utils
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
vala
|
vala
|
||||||
|
wayland-scanner
|
||||||
wrapGAppsHook3
|
wrapGAppsHook3
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
accountsservice
|
accountsservice
|
||||||
elementary-icon-theme
|
elementary-icon-theme
|
||||||
|
gnome-desktop
|
||||||
gnome-settings-daemon
|
gnome-settings-daemon
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
granite
|
granite
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
, elementary-default-settings
|
, elementary-default-settings
|
||||||
, glib
|
, glib
|
||||||
, gala
|
, gala
|
||||||
, epiphany
|
|
||||||
, gnome-settings-daemon
|
, gnome-settings-daemon
|
||||||
, gtk3
|
, gtk3
|
||||||
, elementary-dock
|
, elementary-dock
|
||||||
|
@ -20,7 +19,6 @@ let
|
||||||
gsettingsOverridePackages = [
|
gsettingsOverridePackages = [
|
||||||
elementary-dock
|
elementary-dock
|
||||||
gnome-settings-daemon
|
gnome-settings-daemon
|
||||||
epiphany
|
|
||||||
gala
|
gala
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
gtk3
|
gtk3
|
||||||
|
|
|
@ -16,17 +16,18 @@
|
||||||
gtk4,
|
gtk4,
|
||||||
libadwaita,
|
libadwaita,
|
||||||
libgee,
|
libgee,
|
||||||
|
pantheon-wayland,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-onboarding";
|
pname = "elementary-onboarding";
|
||||||
version = "8.0.2";
|
version = "8.0.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "onboarding";
|
repo = "onboarding";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-tLqLGkcryXGe1wsupgwtnNtFj5aXXUPrwkpxUQmyJFM=";
|
sha256 = "sha256-e8eYBGQ+qTXsp+E3l0g5UI1nYD75z0ibTtzm0WbqlU4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
|
||||||
gtk4
|
gtk4
|
||||||
libadwaita
|
libadwaita
|
||||||
libgee
|
libgee
|
||||||
|
pantheon-wayland
|
||||||
];
|
];
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
, desktop-file-utils
|
, desktop-file-utils
|
||||||
, gettext
|
, gettext
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, writeScript
|
|
||||||
, gnome-keyring
|
, gnome-keyring
|
||||||
, gnome-session
|
, gnome-session
|
||||||
, wingpanel
|
, wingpanel
|
||||||
|
@ -20,76 +19,6 @@
|
||||||
, ninja
|
, 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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-session-settings";
|
pname = "elementary-session-settings";
|
||||||
version = "8.0.1";
|
version = "8.0.1";
|
||||||
|
@ -122,6 +51,7 @@ stdenv.mkDerivation rec {
|
||||||
"-Dfallback-session=GNOME"
|
"-Dfallback-session=GNOME"
|
||||||
"-Ddetect-program-prefixes=true"
|
"-Ddetect-program-prefixes=true"
|
||||||
"--sysconfdir=${placeholder "out"}/etc"
|
"--sysconfdir=${placeholder "out"}/etc"
|
||||||
|
"-Dwayland=true"
|
||||||
];
|
];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
@ -130,16 +60,10 @@ stdenv.mkDerivation rec {
|
||||||
mkdir -p $out/share/applications
|
mkdir -p $out/share/applications
|
||||||
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
|
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
|
||||||
|
|
||||||
# instantiates pantheon's dockitems
|
# absolute path patched sessions
|
||||||
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
|
substituteInPlace $out/share/{xsessions/pantheon.desktop,wayland-sessions/pantheon-wayland.desktop} \
|
||||||
|
--replace-fail "Exec=gnome-session" "Exec=${gnome-session}/bin/gnome-session" \
|
||||||
# script `Exec` to start pantheon
|
--replace-fail "TryExec=io.elementary.wingpanel" "TryExec=${wingpanel}/bin/io.elementary.wingpanel"
|
||||||
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
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -147,6 +71,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
providedSessions = [
|
providedSessions = [
|
||||||
"pantheon"
|
"pantheon"
|
||||||
|
"pantheon-wayland"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-shortcut-overlay";
|
pname = "elementary-shortcut-overlay";
|
||||||
version = "8.0.0";
|
version = "8.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "shortcut-overlay";
|
repo = "shortcut-overlay";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-HqF2eSNwAzgzwyfNQIeumaGkPYiSc+2OfaD3JRQp4/4=";
|
sha256 = "sha256-RWFzs4rw/KC0MXkNfA178FejMbuIBh5FVox1RxmxCJA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -1,60 +1,51 @@
|
||||||
{ lib
|
{
|
||||||
, stdenv
|
stdenv,
|
||||||
, fetchFromGitHub
|
lib,
|
||||||
, fetchpatch
|
fetchFromGitHub,
|
||||||
, nix-update-script
|
desktop-file-utils,
|
||||||
, pkg-config
|
gettext,
|
||||||
, meson
|
libxml2,
|
||||||
, python3
|
meson,
|
||||||
, ninja
|
ninja,
|
||||||
, vala
|
pkg-config,
|
||||||
, desktop-file-utils
|
vala,
|
||||||
, gettext
|
wayland-scanner,
|
||||||
, libxml2
|
wrapGAppsHook3,
|
||||||
, gtk3
|
at-spi2-core,
|
||||||
, granite
|
gnome-settings-daemon,
|
||||||
, libgee
|
gnome-desktop,
|
||||||
, bamf
|
granite,
|
||||||
, libcanberra-gtk3
|
granite7,
|
||||||
, gnome-desktop
|
gtk3,
|
||||||
, mutter
|
gtk4,
|
||||||
, gnome-settings-daemon
|
libcanberra,
|
||||||
, wrapGAppsHook3
|
libgee,
|
||||||
, gexiv2
|
libhandy,
|
||||||
, systemd
|
mutter,
|
||||||
|
sqlite,
|
||||||
|
systemd,
|
||||||
|
nix-update-script,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gala";
|
pname = "gala";
|
||||||
version = "7.1.3";
|
version = "8.1.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-0fDbR28gh7F8Bcnofn48BBP1CTsYnfmY5kG72ookOXw=";
|
hash = "sha256-C0Vct2xuGHd/G5x0Faif0DfpyNyCLJDxki+O9697c2s=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# We look for plugins in `/run/current-system/sw/lib/` because
|
# We look for plugins in `/run/current-system/sw/lib/` because
|
||||||
# there are multiple plugin providers (e.g. gala and wingpanel).
|
# there are multiple plugin providers (e.g. gala and wingpanel).
|
||||||
./plugins-dir.patch
|
./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 = [
|
nativeBuildInputs = [
|
||||||
desktop-file-utils
|
desktop-file-utils
|
||||||
gettext
|
gettext
|
||||||
|
@ -62,29 +53,27 @@ stdenv.mkDerivation rec {
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
|
||||||
vala
|
vala
|
||||||
|
wayland-scanner
|
||||||
wrapGAppsHook3
|
wrapGAppsHook3
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
bamf
|
at-spi2-core
|
||||||
gnome-settings-daemon
|
gnome-settings-daemon
|
||||||
gexiv2
|
|
||||||
gnome-desktop
|
gnome-desktop
|
||||||
granite
|
granite
|
||||||
|
granite7
|
||||||
gtk3
|
gtk3
|
||||||
libcanberra-gtk3
|
gtk4 # gala-daemon
|
||||||
|
libcanberra
|
||||||
libgee
|
libgee
|
||||||
|
libhandy
|
||||||
mutter
|
mutter
|
||||||
|
sqlite
|
||||||
systemd
|
systemd
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
chmod +x build-aux/meson/post_install.py
|
|
||||||
patchShebangs build-aux/meson/post_install.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
updateScript = nix-update-script { };
|
updateScript = nix-update-script { };
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, nix-update-script
|
, nix-update-script
|
||||||
, substituteAll
|
, substituteAll
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
, python3
|
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, vala
|
, vala
|
||||||
, granite
|
, granite
|
||||||
|
@ -14,8 +12,6 @@
|
||||||
, gettext
|
, gettext
|
||||||
, gtk3
|
, gtk3
|
||||||
, json-glib
|
, json-glib
|
||||||
, elementary-dock
|
|
||||||
, bamf
|
|
||||||
, switchboard-with-plugs
|
, switchboard-with-plugs
|
||||||
, libsoup_2_4
|
, libsoup_2_4
|
||||||
, wingpanel
|
, wingpanel
|
||||||
|
@ -26,13 +22,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "wingpanel-applications-menu";
|
pname = "wingpanel-applications-menu";
|
||||||
version = "2.11.1";
|
version = "8.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "applications-menu";
|
repo = "applications-menu";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-WlRrEkX0DGIHYWvUc9G4BbvofzWJwqkiJaJFwQ43GPE=";
|
sha256 = "sha256-HA82CcVC2+hJFksOuZ8pFmw7phpkCEjPCgE/5naaPcg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -40,14 +36,6 @@ stdenv.mkDerivation rec {
|
||||||
src = ./fix-paths.patch;
|
src = ./fix-paths.patch;
|
||||||
bc = "${bc}/bin/bc";
|
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 = [
|
nativeBuildInputs = [
|
||||||
|
@ -55,13 +43,10 @@ stdenv.mkDerivation rec {
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
|
||||||
vala
|
vala
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
bamf
|
|
||||||
elementary-dock
|
|
||||||
granite
|
granite
|
||||||
gtk3
|
gtk3
|
||||||
json-glib
|
json-glib
|
||||||
|
@ -83,11 +68,6 @@ stdenv.mkDerivation rec {
|
||||||
"--sysconfdir=${placeholder "out"}/etc"
|
"--sysconfdir=${placeholder "out"}/etc"
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
chmod +x meson/post_install.py
|
|
||||||
patchShebangs meson/post_install.py
|
|
||||||
'';
|
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
passthru = {
|
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
|
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
|
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
|
||||||
+++ b/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 {
|
@@ -73,7 +73,7 @@ namespace Synapse {
|
||||||
Pid pid;
|
Pid pid;
|
||||||
int read_fd, write_fd;
|
int read_fd, write_fd;
|
||||||
/* Must include math library to get non-integer results and to access standard math functions */
|
/* Must include math library to get non-integer results and to access standard math functions */
|
||||||
- string[] argv = {"bc", "-l"};
|
- string[] argv = {"bc", "-l"};
|
||||||
+ string[] argv = {"@bc@", "-l"};
|
+ string[] argv = {"@bc@", "-l"};
|
||||||
|
|
||||||
Process.spawn_async_with_pipes (
|
Process.spawn_async_with_pipes (
|
||||||
null, argv, null,
|
null, argv, null,
|
||||||
diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
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
|
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
||||||
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
|
||||||
@@ -49,9 +49,7 @@ namespace Synapse {
|
@@ -47,8 +47,7 @@ namespace Synapse {
|
||||||
_("Calculator"),
|
DataSink.PluginRegistry.get_default ().register_plugin (
|
||||||
_("Calculate basic expressions."),
|
typeof (CalculatorPlugin),
|
||||||
"accessories-calculator",
|
"accessories-calculator",
|
||||||
- register_plugin,
|
- register_plugin,
|
||||||
- Environment.find_program_in_path ("bc") != null,
|
- Environment.find_program_in_path ("bc") != null
|
||||||
- _("bc is not installed")
|
|
||||||
+ register_plugin
|
+ register_plugin
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/synapse-plugins/converter-plugin/converter-plugin.vala b/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
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
|
--- a/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
||||||
+++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
+++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala
|
||||||
@@ -46,9 +46,7 @@ namespace Synapse {
|
@@ -44,8 +44,7 @@ namespace Synapse {
|
||||||
_("Converter"),
|
DataSink.PluginRegistry.get_default ().register_plugin (
|
||||||
_("Convert between units."),
|
typeof (ConverterPlugin),
|
||||||
"accessories-converter",
|
"accessories-converter",
|
||||||
- register_plugin,
|
- register_plugin,
|
||||||
- Environment.find_program_in_path ("bc") != null,
|
- Environment.find_program_in_path ("bc") != null
|
||||||
- _("bc is not installed")
|
|
||||||
+ register_plugin
|
+ register_plugin
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, nix-update-script
|
, nix-update-script
|
||||||
|
, wayland-scanner
|
||||||
, wrapGAppsHook3
|
, wrapGAppsHook3
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, meson
|
, meson
|
||||||
|
@ -14,6 +14,7 @@
|
||||||
, granite
|
, granite
|
||||||
, gettext
|
, gettext
|
||||||
, mutter
|
, mutter
|
||||||
|
, wayland
|
||||||
, json-glib
|
, json-glib
|
||||||
, elementary-gtk-theme
|
, elementary-gtk-theme
|
||||||
, elementary-icon-theme
|
, elementary-icon-theme
|
||||||
|
@ -21,24 +22,21 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "wingpanel";
|
pname = "wingpanel";
|
||||||
version = "3.0.5";
|
version = "8.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-xowGdaH0e6y0Q2xSl0kUa01rxxoEQ0qXB3sUol0YDBA=";
|
sha256 = "sha256-c77ebUTs4D5M3//AfvtWI643n1a1sPb5Z70P+4tX3y8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./indicators.patch
|
./indicators.patch
|
||||||
|
];
|
||||||
|
|
||||||
# Add sorting for QuickSettings
|
depsBuildBuild = [
|
||||||
# https://github.com/elementary/wingpanel/pull/516
|
pkg-config
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/elementary/wingpanel/commit/cae197c953f4332e67cf0a5457b4e54f8adc3424.patch";
|
|
||||||
hash = "sha256-P7Cl6M3qvh9pa1qIwWQV4XG5NoCQId+buzEChcUOapk=";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -47,6 +45,7 @@ stdenv.mkDerivation rec {
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
vala
|
vala
|
||||||
|
wayland-scanner
|
||||||
wrapGAppsHook3
|
wrapGAppsHook3
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -58,6 +57,7 @@ stdenv.mkDerivation rec {
|
||||||
json-glib
|
json-glib
|
||||||
libgee
|
libgee
|
||||||
mutter
|
mutter
|
||||||
|
wayland
|
||||||
];
|
];
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
|
|
|
@ -17,13 +17,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elementary-notifications";
|
pname = "elementary-notifications";
|
||||||
version = "7.0.1";
|
version = "8.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "notifications";
|
repo = "notifications";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-of7Tw38yJAhHKICU3XxGwIOwqfUhrL7SGKqFd9Dps/I=";
|
sha256 = "sha256-40STrDpMx1WFaTriJNrvkkbzAM0DeBaPdc8o8URItQI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -44,12 +44,6 @@ stdenv.mkDerivation rec {
|
||||||
libhandy
|
libhandy
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
# https://github.com/elementary/notifications/issues/222
|
|
||||||
substituteInPlace src/FdoActionGroup.vala \
|
|
||||||
--replace-fail "out VariantType" "out unowned VariantType"
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
updateScript = nix-update-script { };
|
updateScript = nix-update-script { };
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,19 +10,20 @@
|
||||||
, libadwaita
|
, libadwaita
|
||||||
, libgee
|
, libgee
|
||||||
, granite7
|
, granite7
|
||||||
|
, pantheon-wayland
|
||||||
, polkit
|
, polkit
|
||||||
, wrapGAppsHook4
|
, wrapGAppsHook4
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pantheon-agent-polkit";
|
pname = "pantheon-agent-polkit";
|
||||||
version = "8.0.0";
|
version = "8.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-Hm4vEubj2VjObD2t7wBHGrjnp6Nza6Ze7AOcJ0n5Dmc=";
|
hash = "sha256-qqeB8SLuES/KoK7ycQ2J1YBA07HITovdnO8kSsrVcfs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
|
||||||
gtk4
|
gtk4
|
||||||
libadwaita
|
libadwaita
|
||||||
libgee
|
libgee
|
||||||
|
pantheon-wayland
|
||||||
polkit
|
polkit
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -11,19 +11,20 @@
|
||||||
, granite7
|
, granite7
|
||||||
, gsettings-desktop-schemas
|
, gsettings-desktop-schemas
|
||||||
, gtk4
|
, gtk4
|
||||||
|
, pantheon-wayland
|
||||||
, systemd
|
, systemd
|
||||||
, xorg
|
, xorg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "xdg-desktop-portal-pantheon";
|
pname = "xdg-desktop-portal-pantheon";
|
||||||
version = "7.2.0";
|
version = "8.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elementary";
|
owner = "elementary";
|
||||||
repo = "portals";
|
repo = "portals";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-0pXb4GPUThHfe0mCqoYuQzMgRCeejsEI3fK7PxjrtJM=";
|
sha256 = "sha256-pf7xQwsBRjjyOMUPe7fJp1vOhhBmuXJ6Uf4YosxbHtw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -39,6 +40,7 @@ stdenv.mkDerivation rec {
|
||||||
granite7
|
granite7
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
gtk4
|
gtk4
|
||||||
|
pantheon-wayland
|
||||||
systemd
|
systemd
|
||||||
xorg.libX11
|
xorg.libX11
|
||||||
];
|
];
|
||||||
|
|
|
@ -218,11 +218,7 @@ effectiveStdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
env = lib.optionalAttrs effectiveStdenv.cc.isClang {
|
env = lib.optionalAttrs effectiveStdenv.cc.isClang {
|
||||||
NIX_CFLAGS_COMPILE = toString [
|
NIX_CFLAGS_COMPILE = "-Wno-error";
|
||||||
"-Wno-error=deprecated-declarations"
|
|
||||||
"-Wno-error=deprecated-pragma"
|
|
||||||
"-Wno-error=unused-but-set-variable"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# aarch64-linux fails cpuinfo test, because /sys/devices/system/cpu/ does not exist in the sandbox
|
# 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;
|
platforms = platforms.unix;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ puffnfresh ck3d cbourjau ];
|
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: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "newlib";
|
pname = "newlib";
|
||||||
version = "4.4.0.20231231";
|
version = "4.5.0.20241231";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://sourceware.org/pub/newlib/newlib-${finalAttrs.version}.tar.gz";
|
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 [
|
patches = lib.optionals nanoizeNewlib [
|
||||||
|
|
|
@ -23,14 +23,14 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "bayesian-optimization";
|
pname = "bayesian-optimization";
|
||||||
version = "2.0.1";
|
version = "2.0.3";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bayesian-optimization";
|
owner = "bayesian-optimization";
|
||||||
repo = "BayesianOptimization";
|
repo = "BayesianOptimization";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-7XjbW/pKe5pbSDpoXdUxm/eRlD+KipCVLMEl5q0hjxo=";
|
hash = "sha256-vT8MlfAdzIKj6uyQedYngP6rCkIZwS8EdtKs4+8l9CA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ poetry-core ];
|
build-system = [ poetry-core ];
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "httpx-ws";
|
pname = "httpx-ws";
|
||||||
version = "0.7.0";
|
version = "0.7.1";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.9";
|
disabled = pythonOlder "3.9";
|
||||||
|
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||||
owner = "frankie567";
|
owner = "frankie567";
|
||||||
repo = "httpx-ws";
|
repo = "httpx-ws";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-/xhj27uMPvbVsieAjnd8Z9q18BLxaXP/1ndrgewN4Og=";
|
hash = "sha256-UO9O4d7QfPdIWL4CtlOuwQRsk/9sEFknahDLWIOfeA0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# we don't need to use the hatch-regex-commit plugin
|
# we don't need to use the hatch-regex-commit plugin
|
||||||
|
|
|
@ -14,22 +14,22 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "linode-api";
|
pname = "linode-api";
|
||||||
version = "5.25.0";
|
version = "5.26.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.9";
|
||||||
|
|
||||||
# Sources from Pypi exclude test fixtures
|
# Sources from Pypi exclude test fixtures
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "linode";
|
owner = "linode";
|
||||||
repo = "python-linode-api";
|
repo = "python-linode-api";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-rEBMZft4o7R2e0N7x1ZEaCisRmhKggMbZWdtDvraoD0=";
|
hash = "sha256-+Co8c0JJKzA2IBj/RUrY+iNTCI0nCvqQUW1F7Crd2mc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
dependencies = [
|
||||||
requests
|
requests
|
||||||
polling
|
polling
|
||||||
deprecated
|
deprecated
|
||||||
|
@ -48,10 +48,10 @@ buildPythonPackage rec {
|
||||||
|
|
||||||
pythonImportsCheck = [ "linode_api4" ];
|
pythonImportsCheck = [ "linode_api4" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "Python library for the Linode API v4";
|
description = "Python library for the Linode API v4";
|
||||||
homepage = "https://github.com/linode/python-linode-api";
|
homepage = "https://github.com/linode/python-linode-api";
|
||||||
license = licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
maintainers = with maintainers; [ glenns ];
|
maintainers = with lib.maintainers; [ glenns ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cjekel";
|
owner = "cjekel";
|
||||||
repo = "piecewise_linear_fit_py";
|
repo = "piecewise_linear_fit_py";
|
||||||
tag = "v.${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-TamFg+bX8QPRjY0HdrYviJRP8VwM7ucDFE2eZz5xNr0=";
|
hash = "sha256-TamFg+bX8QPRjY0HdrYviJRP8VwM7ucDFE2eZz5xNr0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "python-gitlab";
|
pname = "python-gitlab";
|
||||||
version = "5.3.0";
|
version = "5.3.1";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
pname = "python_gitlab";
|
pname = "python_gitlab";
|
||||||
inherit version;
|
inherit version;
|
||||||
hash = "sha256-GPEHZLasFK0MtSUu1mAlvf5ijOdHsau7z+dqgirGuuc=";
|
hash = "sha256-yqvLUAIQ9PWe+fj+7E+Z6CHWUqVccuyfW/gg9F/Bcpg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
|
|
@ -29,14 +29,14 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "vcmi";
|
pname = "vcmi";
|
||||||
version = "1.6.2";
|
version = "1.6.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vcmi";
|
owner = "vcmi";
|
||||||
repo = "vcmi";
|
repo = "vcmi";
|
||||||
rev = version;
|
rev = version;
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
hash = "sha256-IUE/19tknfvca84Jiybbq0zb00WxOgP9N+BMTbUfPzA=";
|
hash = "sha256-nq/2y0bV1UMMQVOpT/iG27Ulvux1aWS55XalMtayOtQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -14,12 +14,12 @@ let
|
||||||
# kernel config in the xanmod version commit
|
# kernel config in the xanmod version commit
|
||||||
variants = {
|
variants = {
|
||||||
lts = {
|
lts = {
|
||||||
version = "6.6.69";
|
version = "6.6.70";
|
||||||
hash = "sha256-ZU0vVea8CCR41Sc+bbM4GOnDsFUpTvBvCEHSHLmWHds=";
|
hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0=";
|
||||||
};
|
};
|
||||||
main = {
|
main = {
|
||||||
version = "6.12.8";
|
version = "6.12.9";
|
||||||
hash = "sha256-rEzSM71ACrBclunnJZ4qaEhPGIKCvyLVpeHgsiDxMu4=";
|
hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "ansible-lint";
|
pname = "ansible-lint";
|
||||||
version = "24.9.2";
|
version = "24.12.2";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "ansible_lint";
|
pname = "ansible_lint";
|
||||||
hash = "sha256-fP9sWvEO+Za3xgEMvUjJFZJ2SuCY8rBUCHJomaEGan8=";
|
hash = "sha256-9jYwnE5/ck/BpUTfUpxMI1T1TPNe3hHXUDZq+xFYpGQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -54,6 +54,8 @@ let
|
||||||
|
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
|
|
||||||
|
patches = [ ./disable-theme-tests.patch ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
|
patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
|
||||||
'';
|
'';
|
||||||
|
@ -103,8 +105,6 @@ let
|
||||||
license = with licenses; [ mit ];
|
license = with licenses; [ mit ];
|
||||||
maintainers = with maintainers; [ bbigras ];
|
maintainers = with maintainers; [ bbigras ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
# not compatible with bat 0.25.0
|
|
||||||
broken = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
script =
|
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
|
let
|
||||||
version = "0.1";
|
version = "0.3";
|
||||||
|
|
||||||
pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
|
pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
|
||||||
gstreamer
|
gstreamer
|
||||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
||||||
owner = "hzeller";
|
owner = "hzeller";
|
||||||
repo = "gmrender-resurrect";
|
repo = "gmrender-resurrect";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-FR5bMjwPnY1/PNdPRiaxoY1keogq40M06YOaoks4zVY=";
|
sha256 = "sha256-Zt8YYRqqX5L/MGLsFzR8JOdYoNX9ypXLX5i+fqkzPkk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -456,6 +456,7 @@ mapAliases {
|
||||||
gmtk = throw "'gmtk' has been removed due to lack of maintenance upstream"; # Added 2024-09-14
|
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
|
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-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
|
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
|
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
|
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
|
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
|
mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02
|
||||||
mutt-with-sidebar = mutt; # Added 2022-09-17
|
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-client = hiPrio mariadb.client;
|
||||||
mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17
|
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
|
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