Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-11-22 00:13:15 +00:00 committed by GitHub
commit 60a11d3822
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
347 changed files with 13155 additions and 4090 deletions

View File

@ -39,3 +39,10 @@ Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here
```
### Priorities
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -37,3 +37,10 @@ Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here
```
### Priorities
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -30,3 +30,9 @@ assignees: ''
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22
### Priorities
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -26,3 +26,10 @@ There's a high chance that you'll have the new version right away while helping
-----
Note for maintainers: Please tag this issue in your PR.
**Priorities**
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -17,3 +17,10 @@ assignees: ''
* source URL:
* license: mit, bsd, gpl2+ , ...
* platforms: unix, linux, darwin, ...
**Priorities**
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -85,3 +85,10 @@ nix log $(nix path-info --derivation nixpkgs#<package>)
(please share the relevant fragment of the diffoscope output here, and any
additional analysis you may have done)
### Priorities
Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -40,3 +40,10 @@ Thanks a lot if you do!
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-contributions
-->
### Priorities
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc

View File

@ -38,6 +38,10 @@ jobs:
into: staging-next-23.05
- from: staging-next-23.05
into: staging-23.05
- from: release-23.11
into: staging-next-23.11
- from: staging-next-23.11
into: staging-23.11
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v4

View File

@ -1 +1 @@
23.11
24.05

View File

@ -24,6 +24,7 @@ let
{ name = "cli"; description = "command-line serialization functions"; }
{ name = "gvariant"; description = "GVariant formatted string serialization functions"; }
{ name = "customisation"; description = "Functions to customise (derivation-related) functions, derivatons, or attribute sets"; }
{ name = "meta"; description = "functions for derivation metadata"; }
];
};

View File

@ -4,6 +4,8 @@
"mpd.conf(5)": "https://mpd.readthedocs.io/en/latest/mpd.conf.5.html",
"nix.conf(5)": "https://nixos.org/manual/nix/stable/command-ref/conf-file.html",
"portals.conf(5)": "https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in",
"journald.conf(5)": "https://www.freedesktop.org/software/systemd/man/journald.conf.html",
"logind.conf(5)": "https://www.freedesktop.org/software/systemd/man/logind.conf.html",
"networkd.conf(5)": "https://www.freedesktop.org/software/systemd/man/networkd.conf.html",

View File

@ -195,7 +195,7 @@ rec {
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
codeName = "Tapir";
codeName = "Uakari";
/* Returns the current nixpkgs version suffix as string. */
versionSuffix =

View File

@ -1530,6 +1530,11 @@
fingerprint = "3D2B B230 F9FA F0C5 1832 46DD 4FDC 96F1 61E7 BA8A";
}];
};
arthsmn = {
name = "Arthur Cerqueira";
github = "arthsmn";
githubId = 150680976;
};
arthur = {
email = "me@arthur.li";
github = "arthurl";
@ -2622,6 +2627,12 @@
github = "brianmcgee";
githubId = 1173648;
};
brianmcgillion = {
name = "Brian McGillion";
email = "bmg.avoin@gmail.com";
github = "brianmcgillion";
githubId = 1044263;
};
brodes = {
email = "me@brod.es";
github = "brhoades";

View File

@ -6,6 +6,8 @@
- PostgreSQL now defaults to major version 15.
- GNOME has been updated to version 45, see the [release notes](https://release.gnome.org/45/) for details. Notably, Loupe has replaced Eye of GNOME as the default image viewer, Snapshot has replaced Cheese as the default camera application, and Photos will no longer be installed.
- Support for WiFi6 (IEEE 802.11ax) and WPA3-SAE-PK was enabled in the `hostapd` package, along with a significant rework of the hostapd module.
- LXD now supports virtual machine instances to complement the existing container support
@ -172,6 +174,10 @@
- `python3.pkgs.fetchPypi` (and `python3Packages.fetchPypi`) has been deprecated in favor of top-level `fetchPypi`.
- xdg-desktop-portal has been updated to 1.18, which reworked how portal implementations are selected. If you roll your own desktop environment, you should either set `xdg.portal.config` or `xdg.portal.configPackages`, which allow fine-grained control over which portal backend to use for specific interfaces, as described in {manpage}`portals.conf(5)`.
If you don't provide configurations, a portal backend will only be considered when the desktop you use matches its deprecated `UseIn` key. While some NixOS desktop modules should already ship one for you, it is suggested to test portal availability by trying [Door Knocker](https://flathub.org/apps/xyz.tytanium.DoorKnocker) and [ASHPD Demo](https://flathub.org/apps/com.belmoussaoui.ashpd.demo). If things regressed, you may run `G_MESSAGES_DEBUG=all /path/to/xdg-desktop-portal/libexec/xdg-desktop-portal` for ideas on which config file and which portals are chosen.
- `pass` now does not contain `password-store.el`. Users should get `password-store.el` from Emacs lisp package set `emacs.pkgs.password-store`.
- `services.knot` now supports `.settings` from RFC42. The previous `.extraConfig` still works the same, but it displays a warning now.

View File

@ -0,0 +1,29 @@
# Release 24.05 (“Uakari”, 2024.05/??) {#sec-release-24.05}
Support is planned until the end of December 2024, handing over to 24.11.
## Highlights {#sec-release-24.05-highlights}
In addition to numerous new and upgraded packages, this release has the following highlights:
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
## New Services {#sec-release-24.05-new-services}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
## Other Notable Changes {#sec-release-24.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!

View File

@ -70,7 +70,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = "https://nixos.org/channels/nixos-unstable";
default = "https://nixos.org/channels/nixos-23.11";
description = lib.mdDoc "Default NixOS channel to which the root user is subscribed.";
};
};

View File

@ -8,6 +8,10 @@ let
mkRenamedOptionModule
teams
types;
associationOptions = with types; attrsOf (
coercedTo (either (listOf str) str) (x: lib.concatStringsSep ";" (lib.toList x)) str
);
in
{
@ -72,20 +76,76 @@ in
See [#160923](https://github.com/NixOS/nixpkgs/issues/160923) for more info.
'';
};
config = mkOption {
type = types.attrsOf associationOptions;
default = { };
example = {
x-cinnamon = {
default = [ "xapp" "gtk" ];
};
pantheon = {
default = [ "pantheon" "gtk" ];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
};
common = {
default = [ "gtk" ];
};
};
description = lib.mdDoc ''
Sets which portal backend should be used to provide the implementation
for the requested interface. For details check {manpage}`portals.conf(5)`.
Configs will be linked to `/etx/xdg/xdg-desktop-portal/` with the name `$desktop-portals.conf`
for `xdg.portal.config.$desktop` and `portals.conf` for `xdg.portal.config.common`
as an exception.
'';
};
configPackages = mkOption {
type = types.listOf types.package;
default = [ ];
example = lib.literalExpression "[ pkgs.gnome.gnome-session ]";
description = lib.mdDoc ''
List of packages that provide XDG desktop portal configuration, usually in
the form of `share/xdg-desktop-portal/$desktop-portals.conf`.
Note that configs in `xdg.portal.config` will be preferred if set.
'';
};
};
config =
let
cfg = config.xdg.portal;
packages = [ pkgs.xdg-desktop-portal ] ++ cfg.extraPortals;
configPackages = cfg.configPackages;
joinedPortals = pkgs.buildEnv {
name = "xdg-portals";
paths = packages;
pathsToLink = [ "/share/xdg-desktop-portal/portals" "/share/applications" ];
};
joinedPortalConfigs = pkgs.buildEnv {
name = "xdg-portal-configs";
paths = configPackages;
pathsToLink = [ "/share/xdg-desktop-portal" ];
};
in
mkIf cfg.enable {
warnings = lib.optional (cfg.configPackages == [ ] && cfg.config == { }) ''
xdg-desktop-portal 1.17 reworked how portal implementations are loaded, you
should either set `xdg.portal.config` or `xdg.portal.configPackages`
to specify which portal backend to use for the requested interface.
https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in
If you simply want to keep the behaviour in < 1.17, which uses the first
portal implementation found in lexicographical order, use the following:
xdg.portal.config.common.default = "*";
'';
assertions = [
{
@ -108,7 +168,14 @@ in
GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1";
NIXOS_XDG_OPEN_USE_PORTAL = mkIf cfg.xdgOpenUsePortal "1";
XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals";
NIXOS_XDG_DESKTOP_PORTAL_CONFIG_DIR = mkIf (cfg.configPackages != [ ]) "${joinedPortalConfigs}/share/xdg-desktop-portal";
};
etc = lib.concatMapAttrs
(desktop: conf: lib.optionalAttrs (conf != { }) {
"xdg/xdg-desktop-portal/${lib.optionalString (desktop != "common") "${desktop}-"}portals.conf".text =
lib.generators.toINI { } { preferred = conf; };
}) cfg.config;
};
};
}

View File

@ -27,6 +27,7 @@ let
HOME_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/";
DOCUMENTATION_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/learn.html";
SUPPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/community.html";
SUPPORT_END = "2024-06-30";
BUG_REPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://github.com/NixOS/nixpkgs/issues";
} // lib.optionalAttrs (cfg.variant_id != null) {
VARIANT_ID = cfg.variant_id;

View File

@ -64,6 +64,7 @@ in
xdg.portal = {
enable = mkDefault true;
extraPortals = [ finalPortalPackage ];
configPackages = mkDefault [ cfg.finalPackage ];
};
};

View File

@ -149,6 +149,8 @@ in {
"sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
};
};
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
xdg.portal.config.sway.default = mkDefault [ "wlr" "gtk" ];
# To make a Sway session available if a display manager like SDDM is enabled:
services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; }
(import ./wayland-session.nix { inherit lib pkgs; })

View File

@ -43,6 +43,8 @@ in
xdg.portal = {
enable = lib.mkDefault true;
wlr.enable = lib.mkDefault true;
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050914
config.wayfire.default = lib.mkDefault [ "wlr" "gtk" ];
};
};
}

View File

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }:
{ config, lib, ... }:
with lib;
@ -49,7 +49,7 @@ with lib;
};
script = ''
${pkgs.udev}/bin/udevadm settle
${config.systemd.package}/bin/udevadm settle
echo -n 1 >/proc/sys/kernel/modules_disabled
'';
};

View File

@ -18,6 +18,7 @@ in other cases, you will need to add something like the following to your
{file}`configuration.nix`:
```
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
xdg.portal.config.common.default = "gtk";
```
Then, you will need to add a repository, for example,

View File

@ -93,6 +93,9 @@ in
"gnome-initial-setup.service"
];
programs.dconf.profiles.gnome-initial-setup.databases = [
"${pkgs.gnome.gnome-initial-setup}/share/gnome-initial-setup/initial-setup-dconf-defaults"
];
};
}

View File

@ -37,7 +37,8 @@ let
autosave_only_on_server = true;
non_blocking_saving = cfg.nonBlockingSaving;
} // cfg.extraSettings;
serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings));
serverSettingsString = builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings);
serverSettingsFile = pkgs.writeText "server-settings.json" serverSettingsString;
serverAdminsFile = pkgs.writeText "server-adminlist.json" (builtins.toJSON cfg.admins);
modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods cfg.mods-dat;
in
@ -115,6 +116,23 @@ in
customizations.
'';
};
extraSettingsFile = mkOption {
type = types.nullOr types.path;
default = null;
description = lib.mdDoc ''
File, which is dynamically applied to server-settings.json before
startup.
This option should be used for credentials.
For example a settings file could contain:
```json
{
"game-password": "hunter1"
}
```
'';
};
stateDirName = mkOption {
type = types.str;
default = "factorio";
@ -186,6 +204,8 @@ in
default = null;
description = lib.mdDoc ''
Your factorio.com login credentials. Required for games with visibility public.
This option is insecure. Use extraSettingsFile instead.
'';
};
package = mkOption {
@ -202,6 +222,8 @@ in
default = null;
description = lib.mdDoc ''
Your factorio.com login credentials. Required for games with visibility public.
This option is insecure. Use extraSettingsFile instead.
'';
};
token = mkOption {
@ -216,6 +238,8 @@ in
default = null;
description = lib.mdDoc ''
Game password.
This option is insecure. Use extraSettingsFile instead.
'';
};
requireUserVerification = mkOption {
@ -251,14 +275,18 @@ in
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = toString [
"test -e ${stateDir}/saves/${cfg.saveName}.zip"
"||"
"${cfg.package}/bin/factorio"
preStart =
(toString [
"test -e ${stateDir}/saves/${cfg.saveName}.zip"
"||"
"${cfg.package}/bin/factorio"
"--config=${cfg.configFile}"
"--create=${mkSavePath cfg.saveName}"
(optionalString (cfg.mods != []) "--mod-directory=${modDir}")
];
])
+ (optionalString (cfg.extraSettingsFile != null) ("\necho ${lib.strings.escapeShellArg serverSettingsString}"
+ " \"$(cat ${cfg.extraSettingsFile})\" | ${lib.getExe pkgs.jq} -s add"
+ " > ${stateDir}/server-settings.json"));
serviceConfig = {
Restart = "always";
@ -272,7 +300,11 @@ in
"--port=${toString cfg.port}"
"--bind=${cfg.bind}"
(optionalString (!cfg.loadLatestSave) "--start-server=${mkSavePath cfg.saveName}")
"--server-settings=${serverSettingsFile}"
"--server-settings=${
if (cfg.extraSettingsFile != null)
then "${stateDir}/server-settings.json"
else serverSettingsFile
}"
(optionalString cfg.loadLatestSave "--start-server-load-latest")
(optionalString (cfg.mods != []) "--mod-directory=${modDir}")
(optionalString (cfg.admins != []) "--server-adminlist=${serverAdminsFile}")

View File

@ -77,7 +77,7 @@ in
serviceConfig = {
# Trigger the udev rule manually. This doesn't require replugging the
# device when first enabling the option to get it to work
ExecStartPre = "${pkgs.udev}/bin/udevadm trigger -s usb -a idVendor=${apple}";
ExecStartPre = "${config.systemd.package}/bin/udevadm trigger -s usb -a idVendor=${apple}";
ExecStart = "${cfg.package}/bin/usbmuxd -U ${cfg.user} -v";
};
};

View File

@ -202,6 +202,7 @@ in {
xdg.portal.extraPortals = with pkgs; [
xdg-desktop-portal-gtk # provides a XDG Portals implementation.
];
xdg.portal.configPackages = mkDefault [ pkgs.budgie.budgie-desktop ];
services.geoclue2.enable = mkDefault true; # for BCC's Privacy > Location Services panel.
services.upower.enable = config.powerManagement.enable; # for Budgie's Status Indicator and BCC's Power panel.

View File

@ -200,6 +200,9 @@ in
})
];
# https://salsa.debian.org/cinnamon-team/cinnamon/-/commit/f87c64f8d35ba406eb11ad442989a0716f6620cf#
xdg.portal.config.x-cinnamon.default = mkDefault [ "xapp" "gtk" ];
# Override GSettings schemas
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";

View File

@ -78,6 +78,9 @@ in
})
];
# https://github.com/NixOS/nixpkgs/pull/247766#issuecomment-1722839259
xdg.portal.config.deepin.default = mkDefault [ "gtk" ];
environment.sessionVariables = {
NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
DDE_POLKIT_AGENT_PLUGINS_DIRS = [ "${pkgs.deepin.dpa-ext-gnomekeyring}/lib/polkit-1-dde/plugins" ];

View File

@ -145,7 +145,7 @@ services.xserver.desktopManager.gnome = {
# Favorite apps in gnome-shell
[org.gnome.shell]
favorite-apps=['org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop']
favorite-apps=['org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop']
'';
extraGSettingsOverridePackages = [

View File

@ -19,7 +19,7 @@ let
defaultFavoriteAppsOverride = ''
[org.gnome.shell]
favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ]
favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop' ]
'';
nixos-background-light = pkgs.nixos-artwork.wallpapers.simple-blue;
@ -353,6 +353,7 @@ in
buildPortalsInGnome = false;
})
];
xdg.portal.configPackages = mkDefault [ pkgs.gnome.gnome-session ];
networking.networkmanager.enable = mkDefault true;
@ -462,15 +463,13 @@ in
++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
})
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/gnome-45/elements/core/meta-gnome-core-utilities.bst
(mkIf serviceCfg.core-utilities.enable {
environment.systemPackages =
with pkgs.gnome;
utils.removePackagesByName
([
baobab
cheese
eog
epiphany
pkgs.gnome-text-editor
gnome-calculator
@ -483,12 +482,13 @@ in
gnome-logs
gnome-maps
gnome-music
pkgs.gnome-photos
gnome-system-monitor
gnome-weather
pkgs.loupe
nautilus
pkgs.gnome-connections
simple-scan
pkgs.snapshot
totem
yelp
] ++ lib.optionals config.services.flatpak.enable [

View File

@ -70,6 +70,9 @@ in
services.xserver.libinput.enable = mkDefault true;
xdg.portal.lxqt.enable = true;
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050804
xdg.portal.config.lxqt.default = mkDefault [ "lxqt" "gtk" ];
};
}

View File

@ -77,6 +77,8 @@ in
security.pam.services.mate-screensaver.unixAuth = true;
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
environment.pathsToLink = [ "/share" ];
};

View File

@ -229,9 +229,6 @@ in
xdg.portal.enable = true;
xdg.portal.extraPortals = [
# Some Pantheon apps enforce portal usage, we need this for e.g. notifications.
# Currently we have buildPortalsInGnome enabled, if you run into issues related
# to https://github.com/flatpak/xdg-desktop-portal/issues/656 please report to us.
pkgs.xdg-desktop-portal-gtk
] ++ (with pkgs.pantheon; [
elementary-files
@ -239,6 +236,8 @@ in
xdg-desktop-portal-pantheon
]);
xdg.portal.configPackages = mkDefault [ pkgs.pantheon.elementary-default-settings ];
# Override GSettings schemas
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";

View File

@ -372,6 +372,7 @@ in
xdg.portal.enable = true;
xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
xdg.portal.configPackages = mkDefault [ plasma5.xdg-desktop-portal-kde ];
# xdg-desktop-portal-kde expects PipeWire to be running.
# This does not, by default, replace PulseAudio.
services.pipewire.enable = mkDefault true;

View File

@ -178,5 +178,7 @@ in
]) excludePackages;
security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver;
xdg.portal.configPackages = mkDefault [ pkgs.xfce.xfce4-session ];
};
}

View File

@ -12,7 +12,7 @@ let
version = fileContents ../.version;
versionSuffix =
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
(if stableBranch then "." else "beta") + "${toString (nixpkgs.revCount - 551362)}.${nixpkgs.shortRev}";
# Run the tests for each platform. You can run a test by doing
# e.g. nix-build release.nix -A tests.login.x86_64-linux,

View File

@ -332,6 +332,7 @@ in {
gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {};
glusterfs = handleTest ./glusterfs.nix {};
gnome = handleTest ./gnome.nix {};
gnome-extensions = handleTest ./gnome-extensions.nix {};
gnome-flashback = handleTest ./gnome-flashback.nix {};
gnome-xorg = handleTest ./gnome-xorg.nix {};
gnupg = handleTest ./gnupg.nix {};

View File

@ -0,0 +1,151 @@
import ./make-test-python.nix (
{ pkgs, lib, ...}:
{
name = "gnome-extensions";
meta.maintainers = [ lib.maintainers.piegames ];
nodes.machine =
{ pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
# Install all extensions
environment.systemPackages = lib.filter (e: e ? extensionUuid) (lib.attrValues pkgs.gnomeExtensions);
# Some extensions are broken, but that's kind of the point of a testing VM
nixpkgs.config.allowBroken = true;
# There are some aliases which throw exceptions; ignore them.
# Also prevent duplicate extensions under different names.
nixpkgs.config.allowAliases = false;
# Configure GDM
services.xserver.enable = true;
services.xserver.displayManager = {
gdm = {
enable = true;
debug = true;
wayland = true;
};
autoLogin = {
enable = true;
user = "alice";
};
};
# Configure Gnome
services.xserver.desktopManager.gnome.enable = true;
services.xserver.desktopManager.gnome.debug = true;
systemd.user.services = {
"org.gnome.Shell@wayland" = {
serviceConfig = {
ExecStart = [
# Clear the list before overriding it.
""
# Eval API is now internal so Shell needs to run in unsafe mode.
# TODO: improve test driver so that it supports openqa-like manipulation
# that would allow us to drop this mess.
"${pkgs.gnome.gnome-shell}/bin/gnome-shell --unsafe-mode"
];
};
};
};
};
testScript = { nodes, ... }: let
# Keep line widths somewhat manageable
user = nodes.machine.users.users.alice;
uid = toString user.uid;
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus";
# Run a command in the appropriate user environment
run = command: "su - ${user.name} -c '${bus} ${command}'";
# Call javascript in gnome shell, returns a tuple (success, output), where
# `success` is true if the dbus call was successful and output is what the
# javascript evaluates to.
eval = command: run "gdbus call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval ${command}";
# False when startup is done
startingUp = eval "Main.layoutManager._startingUp";
# Extensions to keep always enabled together
# Those are extensions that are usually always on for many users, and that we expect to work
# well together with most others without conflicts
alwaysOnExtensions = map (name: pkgs.gnomeExtensions.${name}.extensionUuid) [
"applications-menu"
"user-themes"
];
# Extensions to enable and disable individually
# Extensions like dash-to-dock and dash-to-panel cannot be enabled at the same time.
testExtensions = map (name: pkgs.gnomeExtensions.${name}.extensionUuid) [
"appindicator"
"dash-to-dock"
"dash-to-panel"
"ddterm"
"emoji-selector"
"gsconnect"
"system-monitor"
"desktop-icons-ng-ding"
"workspace-indicator"
"vitals"
];
in
''
with subtest("Login to GNOME with GDM"):
# wait for gdm to start
machine.wait_for_unit("display-manager.service")
# wait for the wayland server
machine.wait_for_file("/run/user/${uid}/wayland-0")
# wait for alice to be logged in
machine.wait_for_unit("default.target", "${user.name}")
# check that logging in has given the user ownership of devices
assert "alice" in machine.succeed("getfacl -p /dev/snd/timer")
with subtest("Wait for GNOME Shell"):
# correct output should be (true, 'false')
machine.wait_until_succeeds(
"${startingUp} | grep -q 'true,..false'"
)
# Close the Activities view so that Shell can correctly track the focused window.
machine.send_key("esc")
# # Disable extension version validation (only use for manual testing)
# machine.succeed(
# "${run "gsettings set org.gnome.shell disable-extension-version-validation true"}"
# )
# Assert that some extension is in a specific state
def checkState(target, extension):
state = machine.succeed(
f"${run "gnome-extensions info {extension}"} | grep '^ State: .*$'"
)
assert target in state, f"{state} instead of {target}"
def checkExtension(extension, disable):
with subtest(f"Enable extension '{extension}'"):
# Check that the extension is properly initialized; skip out of date ones
state = machine.succeed(
f"${run "gnome-extensions info {extension}"} | grep '^ State: .*$'"
)
if "OUT OF DATE" in state:
machine.log(f"Extension {extension} will be skipped because out of date")
return
assert "INITIALIZED" in state, f"{state} instead of INITIALIZED"
# Enable and optionally disable
machine.succeed(f"${run "gnome-extensions enable {extension}"}")
checkState("ENABLED", extension)
if disable:
machine.succeed(f"${run "gnome-extensions disable {extension}"}")
checkState("DISABLED", extension)
''
+ lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
+ lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
;
}
)

View File

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
};
nodes.machine = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
in
{ imports = [ ./common/user-account.nix ];
@ -43,28 +43,28 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
};
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
uid = toString user.uid;
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus";
xauthority = "/run/user/${uid}/gdm/Xauthority";
display = "DISPLAY=:0.0";
env = "${bus} XAUTHORITY=${xauthority} ${display}";
gdbus = "${env} gdbus";
su = command: "su - ${user.name} -c '${env} ${command}'";
# Run a command in the appropriate user environment
run = command: "su - ${user.name} -c '${bus} ${command}'";
# Call javascript in gnome shell, returns a tuple (success, output), where
# `success` is true if the dbus call was successful and output is what the
# javascript evaluates to.
eval = "call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval";
eval = command: run "gdbus call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval ${command}";
# False when startup is done
startingUp = su "${gdbus} ${eval} Main.layoutManager._startingUp";
startingUp = eval "Main.layoutManager._startingUp";
# Start Console
launchConsole = su "${bus} gapplication launch org.gnome.Console";
launchConsole = run "gapplication launch org.gnome.Console";
# Hopefully Console's wm class
wmClass = su "${gdbus} ${eval} global.display.focus_window.wm_class";
wmClass = eval "global.display.focus_window.wm_class";
in ''
with subtest("Login to GNOME Xorg with GDM"):
machine.wait_for_x()

View File

@ -40,25 +40,25 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
testScript = { nodes, ... }: let
# Keep line widths somewhat manageable
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
uid = toString user.uid;
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus";
gdbus = "${bus} gdbus";
su = command: "su - ${user.name} -c '${command}'";
# Run a command in the appropriate user environment
run = command: "su - ${user.name} -c '${bus} ${command}'";
# Call javascript in gnome shell, returns a tuple (success, output), where
# `success` is true if the dbus call was successful and output is what the
# javascript evaluates to.
eval = "call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval";
eval = command: run "gdbus call --session -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval ${command}";
# False when startup is done
startingUp = su "${gdbus} ${eval} Main.layoutManager._startingUp";
startingUp = eval "Main.layoutManager._startingUp";
# Start Console
launchConsole = su "${bus} gapplication launch org.gnome.Console";
launchConsole = run "gapplication launch org.gnome.Console";
# Hopefully Console's wm class
wmClass = su "${gdbus} ${eval} global.display.focus_window.wm_class";
wmClass = eval "global.display.focus_window.wm_class";
in ''
with subtest("Login to GNOME with GDM"):
# wait for gdm to start

View File

@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "unifi-protect-backup";
version = "0.10.1";
version = "0.10.2";
format = "pyproject";
@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "ep1cman";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-5SarQw4xvLzL2JyBOqv5AtMAk3T4IHJN7fwk+OmujLM=";
hash = "sha256-EQCI7TkkOhDASMo5yKfAca/gB4ayyPOaDVK6WEaAIgc=";
};
pythonRelaxDeps = [

View File

@ -19,8 +19,9 @@
, libadwaita
, libdex
, libpanel
, libpeas
, libpeas2
, libportal-gtk4
, libsysprof-capture
, libxml2
, meson
, ninja
@ -41,13 +42,13 @@
stdenv.mkDerivation rec {
pname = "gnome-builder";
version = "44.2";
version = "45.0";
outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "z6aJx40/AiMcp0cVV99MZIKASio08nHDXRqWLX8XKbA=";
sha256 = "JC2gJZMpPUVuokEIpFk0cwoeMW2NxbGNnfDoZNt7pZY=";
};
patches = [
@ -82,7 +83,7 @@ stdenv.mkDerivation rec {
editorconfig-core-c
flatpak
libgit2-glib
libpeas
libpeas2
libportal-gtk4
vte-gtk4
enchant
@ -94,12 +95,12 @@ stdenv.mkDerivation rec {
libadwaita
libdex
libpanel
libsysprof-capture
libxml2
ostree
d-spy
pcre2
python3
sysprof
template-glib
vala
webkitgtk_6_0
@ -142,6 +143,8 @@ stdenv.mkDerivation rec {
buildPythonPath "$out $pythonPath"
gappsWrapperArgs+=(
--prefix PYTHONPATH : "$program_PYTHONPATH"
# For sysprof-agent
--prefix PATH : "${sysprof}/bin"
)
# Ensure that all plugins get their interpreter paths fixed up.

View File

@ -0,0 +1,58 @@
{ lib
, stdenv
, callPackage
, runCommand
, makeWrapper
, coq
, imagemagick
, python3
}:
# Jupyter console:
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel coq-kernel.definition'
# Jupyter console with packages:
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel (coq-kernel.definitionWithPackages [coqPackages.bignums])'
# Jupyter notebook:
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.coq = coq-kernel.definition; }'
let
python = python3.withPackages (ps: [ ps.traitlets ps.jupyter_core ps.ipykernel (callPackage ./kernel.nix {}) ]);
logos = runCommand "coq-logos" { buildInputs = [ imagemagick ]; } ''
mkdir -p $out
convert ${coq.src}/ide/coqide/coq.png -resize 32x32 $out/logo-32x32.png
convert ${coq.src}/ide/coqide/coq.png -resize 64x64 $out/logo-64x64.png
'';
in
rec {
launcher = runCommand "coq-kernel-launcher" {
nativeBuildInputs = [ makeWrapper ];
} ''
mkdir -p $out/bin
makeWrapper ${python.interpreter} $out/bin/coq-kernel \
--add-flags "-m coq_jupyter" \
--suffix PATH : ${coq}/bin
'';
definition = definitionWithPackages [];
definitionWithPackages = packages: {
displayName = "Coq " + coq.version;
argv = [
"${launcher}/bin/coq-kernel"
"-f"
"{connection_file}"
];
language = "coq";
logo32 = "${logos}/logo-32x32.png";
logo64 = "${logos}/logo-64x64.png";
env = {
COQPATH = lib.concatStringsSep ":" (map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages);
};
};
}

View File

@ -0,0 +1,30 @@
{ lib
, fetchFromGitHub
, python3
, coq
}:
python3.pkgs.buildPythonPackage rec {
pname = "coq-jupyter";
version = "1.6.0";
src = fetchFromGitHub {
owner = "EugeneLoy";
repo = "coq_jupyter";
rev = "v${version}";
sha256 = "sha256-+Pp51cxeqjg5MW4CEccNWVjNcY9iyFNATIEage9RWJ0=";
};
propagatedBuildInputs = (with python3.pkgs; [ ipykernel future ]) ++ [ coq ];
nativeBuildInputs = [ coq ];
doCheck = false;
meta = with lib; {
homepage = "https://github.com/EugeneLoy/coq_jupyter";
description = "Jupyter kernel for Coq";
license = licenses.asl20;
maintainers = with maintainers; [ thomasjm ];
};
}

View File

@ -6,13 +6,13 @@
}:
let
jupyterPath = (jupyter-kernel.create { inherit definitions; });
jupyter-notebook = (python3.buildEnv.override {
extraLibs = [ python3.pkgs.notebook ];
makeWrapperArgs = ["--set JUPYTER_PATH ${jupyterPath}"];
}).overrideAttrs(oldAttrs: {
meta = oldAttrs.meta // { mainProgram = "jupyter-notebook"; };
});
in
with python3.pkgs; toPythonModule (
notebook.overridePythonAttrs(oldAttrs: {
makeWrapperArgs = ["--set JUPYTER_PATH ${jupyterPath}"];
})
)
jupyter-notebook

View File

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "leo-editor";
version = "6.7.4";
version = "6.7.5";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
rev = version;
sha256 = "sha256-YKK46PeCMOTNOTpMrIgem+Au70Xj+tTHxOhC8alF3ms=";
sha256 = "sha256-Y0g4mpEf4+hApHFHaqB8esVep2OyqWLo7YGLf/7eCYg=";
};
dontBuild = true;

View File

@ -847,7 +847,7 @@ self: super: {
dependencies = with self; [ plenary-nvim ];
};
neotest = super.neorg.overrideAttrs {
neotest = super.neotest.overrideAttrs {
dependencies = with self; [ plenary-nvim ];
};

View File

@ -16,6 +16,7 @@
, hidapi
, imgui
, libpng
, libusb1
, libzip
, libXrender
, pugixml
@ -32,13 +33,13 @@
stdenv.mkDerivation rec {
pname = "cemu";
version = "2.0-47";
version = "2.0-59";
src = fetchFromGitHub {
owner = "cemu-project";
repo = "Cemu";
rev = "v${version}";
hash = "sha256-0N/bJJHWMHF+ZlVxNHV8t/1jFr3ER3GNF8CPAHVSsak=";
hash = "sha256-dw77UkhyJ+XJLYWT6adUuTd+spqNr3/ZOMLaAVWgzmc=";
};
patches = [
@ -68,6 +69,7 @@ stdenv.mkDerivation rec {
hidapi
imgui
libpng
libusb1
libzip
libXrender
pugixml

View File

@ -1,22 +1,37 @@
{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin }:
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, stdenv
, darwin
}:
rustPlatform.buildRustPackage rec {
pname = "joshuto";
version = "0.9.5";
version = "0.9.6";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = "joshuto";
rev = "v${version}";
hash = "sha256-b13CLfWidqfYhHC9wY84kd3elsjWGxBMGr5GXHzUhfs=";
hash = "sha256-d2r8xPGnH/299wjEijilgqy3u/xJgtRmwzJdHt0sA+o=";
};
cargoHash = "sha256-gMX8hvt20V4XUd0nnXGA4fyOUfB7ZY1eeme9HgYopL0=";
cargoHash = "sha256-amgqoL7NYfl3WzTtgvDoBX46rsL9248rbCis6MHVQhE=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Foundation
];
postInstall = ''
installShellCompletion --cmd joshuto \
--bash <($out/bin/joshuto completions bash) \
--zsh <($out/bin/joshuto completions zsh) \
--fish <($out/bin/joshuto completions fish)
'';
meta = with lib; {
description = "Ranger-like terminal file manager written in Rust";
homepage = "https://github.com/kamiyaa/joshuto";

View File

@ -1,22 +1,46 @@
{ lib, stdenv, fetchurl, fetchpatch, wrapGAppsHook4
, cargo, desktop-file-utils, meson, ninja, pkg-config, rustc
, gdk-pixbuf, glib, gtk4, gtksourceview5, libadwaita, darwin
{ lib
, stdenv
, fetchurl
, fetchpatch
, wrapGAppsHook4
, cargo
, desktop-file-utils
, meson
, ninja
, pkg-config
, rustc
, gdk-pixbuf
, glib
, gtk4
, gtksourceview5
, libadwaita
, darwin
}:
stdenv.mkDerivation rec {
pname = "icon-library";
version = "0.0.16";
version = "0.0.17";
src = fetchurl {
url = "https://gitlab.gnome.org/World/design/icon-library/uploads/5dd3d97acfdbaf69c7dc6b2f7bbf4cae/icon-library-${version}.tar.xz";
hash = "sha256-EO67foD/uRoeF+zmJyEia5Nr3eW+Se9bVjDxipMw75E=";
url = "https://gitlab.gnome.org/World/design/icon-library/uploads/8c4cad88809cd4ddc0eeae6f5170c001/icon-library-${version}.tar.xz";
hash = "sha256-Gspx3fJl+ZoUN3heGWaeMuxUsjWCrIdg4pJj7DeMTSY=";
};
nativeBuildInputs = [
cargo desktop-file-utils meson ninja pkg-config rustc wrapGAppsHook4
cargo
desktop-file-utils
meson
ninja
pkg-config
rustc
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf glib gtk4 gtksourceview5 libadwaita
gdk-pixbuf
glib
gtk4
gtksourceview5
libadwaita
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Foundation
];

File diff suppressed because it is too large Load Diff

View File

@ -26,20 +26,19 @@
stdenv.mkDerivation rec {
pname = "rnote";
version = "0.8.2";
version = "0.9.2";
src = fetchFromGitHub {
owner = "flxzt";
repo = "rnote";
rev = "v${version}";
hash = "sha256-cIy2+Q6HSLwbT0XXDK88Z0mdu46vWSZNTVl8MphXhw0=";
hash = "sha256-LLJurn5KJBlTtFrQXcc7HZqtIATOLgiwJqUsZe4cRIo=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"ink-stroke-modeler-rs-0.1.0" = "sha256-WfZwezohm8+ZXiKZlssTX+b/Izk1M4jFwxQejeTfc6M=";
"librsvg-2.57.0-beta.2" = "sha256-8k5KWhm9PIpdmf2DByTyrqX5mGAa+a7ZDGmVO2ERhTU=";
"piet-0.6.2" = "sha256-WrQok0T7uVQEp8SvNWlgqwQHfS7q0510bnP1ecr+s1Q=";
};
};
@ -81,7 +80,6 @@ stdenv.mkDerivation rec {
];
postPatch = ''
dos2unix build-aux/*.py # FIXME remove once updated to 0.9.0
chmod +x build-aux/*.py
patchShebangs build-aux
'';
@ -91,7 +89,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/flxzt/rnote/releases/tag/${src.rev}";
description = "Simple drawing application to create handwritten notes";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda yrd ];
maintainers = with maintainers; [ dotlambda gepbird yrd ];
platforms = platforms.unix;
};
}

View File

@ -40,11 +40,11 @@
stdenv.mkDerivation rec {
pname = "shotwell";
version = "0.32.2";
version = "0.32.3";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-pd5T6HMhbfj1mWyWgnvtlj1sY1TgReF5bf0ybGGIwmM=";
sha256 = "sha256-4AD+5bPzYseRFPDs/44is0yaKGW1nkGi2j5NxdLKLDw=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,78 @@
{ stdenv
, lib
, fetchurl
, fetchpatch
, cargo
, desktop-file-utils
, meson
, ninja
, pkg-config
, rustc
, wrapGAppsHook4
, glib
, gst_all_1
, gtk4
, libadwaita
, pipewire
, gnome
}:
stdenv.mkDerivation rec {
pname = "snapshot";
version = "45.0";
src = fetchurl {
url = "mirror://gnome/sources/snapshot/${lib.versions.major version}/snapshot-${version}.tar.xz";
hash = "sha256-7keO4JBzGgsIJLZrsXRr2ADcv+h6yDWEmUSa85z822c=";
};
patches = [
# Fix portal requests
# https://gitlab.gnome.org/GNOME/snapshot/-/merge_requests/168
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/snapshot/-/commit/6aec0f56d6bb994731c1309ac6e2cb822b82067e.patch";
hash = "sha256-6tnOhhTQ3Rfl3nCw/rliLKkvZknvZKCQyeMKaTxYmok=";
})
];
nativeBuildInputs = [
cargo
desktop-file-utils
meson
ninja
pkg-config
rustc
wrapGAppsHook4
];
buildInputs = [
glib
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk4
libadwaita
pipewire # for device provider
];
preFixup = ''
gappsWrapperArgs+=(
# vp8enc preset
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
)
'';
passthru.updateScript = gnome.updateScript {
packageName = "snapshot";
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/snapshot";
description = "Take pictures and videos on your computer, tablet, or phone";
maintainers = teams.gnome.members;
license = licenses.gpl3Plus;
platforms = platforms.unix;
mainProgram = "snapshot";
};
}

View File

@ -32,11 +32,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
version = "6.29.0";
version = "7.0.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
hash = "sha256-w9mvMKm76w5sDfW0OYxhZuhIOYKdUH3tpiGlpKNC2kM=";
hash = "sha256-VAnzacz/8LYCVMCjHXqd4B+NUFmiMqdxQqpyap+UMNc=";
};
patches = [
@ -123,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
zeroconf
jeepney
pycryptodome
xxhash
# the following are distributed with calibre, but we use upstream instead
odfpy
] ++ lib.optionals (lib.lists.any (p: p == stdenv.hostPlatform.system) pyqt6-webengine.meta.platforms) [

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,23 @@
{ lib, fetchFromGitHub, installShellFiles, rustPlatform, rustfmt, xorg
, pkg-config, llvmPackages, clang, protobuf, python3 }:
{ lib
, fetchFromGitHub
, installShellFiles
, rustPlatform
, rustfmt
, xorg
, pkg-config
, protobuf
, python3
}:
rustPlatform.buildRustPackage rec {
pname = "clipcat";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "xrelkd";
repo = pname;
rev = "v${version}";
sha256 = "0rxl3ksjinw07q3p2vjqg80k3c6wx2q7pzpf2344zyfb4gkqzx1c";
sha256 = "sha256-dV17xP6xG6Nyi6m0CdH8Mk4Y0giDtsv/QiM23jF58q0=";
};
cargoLock = {
@ -35,6 +43,7 @@ rustPlatform.buildRustPackage rec {
installShellFiles
];
buildInputs = [ xorg.libxcb ];
buildFeatures = [ "all" ];
@ -51,5 +60,6 @@ rustPlatform.buildRustPackage rec {
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ xrelkd ];
mainProgram = "clipcatd";
};
}

View File

@ -0,0 +1,55 @@
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkg-config
, wrapGAppsHook4
, glib
, gtk4
, libadwaita
, libxkbcommon
, wayland
, gnome
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tecla";
version = "45.0";
src = fetchurl {
url = "mirror://gnome/sources/tecla/${lib.versions.major finalAttrs.version}/tecla-${finalAttrs.version}.tar.xz";
hash = "sha256-XAK7QBmxz/tWY9phB1A+/4U4Nqh4PdRwXdBKSfetwls=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
glib
gtk4
libadwaita
libxkbcommon
wayland
];
passthru = {
updateScript = gnome.updateScript {
attrPath = "gnome-tecla";
packageName = "tecla";
};
};
meta = with lib; {
description = "Keyboard layout viewer";
homepage = "https://gitlab.gnome.org/GNOME/tecla";
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.unix;
mainProgram = "tecla";
};
})

View File

@ -1,4 +1,5 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, meson
, ninja
@ -7,23 +8,23 @@
, gettext
, libxml2
, desktop-file-utils
, wrapGAppsHook
, wrapGAppsHook4
, glib
, gtk3
, gtk4
, libadwaita
, libgee
, libgtop
, libdazzle
, gnome
, tracker
, libhandy
}:
stdenv.mkDerivation rec {
pname = "gnome-usage";
version = "3.38.1";
version = "45.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "mMdm4X4VZXEfx0uaJP0u0NX618y0VRlhLdTiFHaO05M=";
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "5nfE/iwBSXqE/x4RV+kTHp+ZmfGnjTUjSvHXfYJ18pQ=";
};
nativeBuildInputs = [
@ -34,17 +35,16 @@ stdenv.mkDerivation rec {
ninja
pkg-config
vala
wrapGAppsHook
wrapGAppsHook4
];
buildInputs = [
glib
gnome.adwaita-icon-theme
gtk3
libdazzle
gtk4
libadwaita
libgee
libgtop
tracker
libhandy
];
postPatch = ''
@ -60,7 +60,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A nice way to view information about use of system resources, like memory and disk space";
license = licenses.gpl3;
homepage = "https://gitlab.gnome.org/GNOME/gnome-usage";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members;
};

View File

@ -34,13 +34,13 @@
buildPythonApplication rec {
pname = "orca";
version = "44.1";
version = "45.1";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "9e1lUdcviXshJI1DMIWnuBesy7ApaoTD6FHZH7Lu5N4=";
sha256 = "v8wGv0vEe70CwVaNHkZL8Wox5iv3A7SaoTsI2zihqMo=";
};
patches = [

View File

@ -1,8 +1,8 @@
diff --git a/src/orca/debug.py b/src/orca/debug.py
index e79482ed4..cbf3a24ec 100644
index b7e11ea60..9ab996765 100644
--- a/src/orca/debug.py
+++ b/src/orca/debug.py
@@ -502,7 +502,7 @@ def traceit(frame, event, arg):
@@ -447,7 +447,7 @@ def traceit(frame, event, arg):
return traceit
def getOpenFDCount(pid):
@ -11,29 +11,20 @@ index e79482ed4..cbf3a24ec 100644
procs = procs.decode('UTF-8').split('\n')
files = list(filter(lambda s: s and s[0] == 'f' and s[1:].isdigit(), procs))
@@ -510,7 +510,7 @@ def getOpenFDCount(pid):
def getCmdline(pid):
try:
- openFile = os.popen('cat /proc/%s/cmdline' % pid)
+ openFile = os.popen('@cat@ /proc/%s/cmdline' % pid)
cmdline = openFile.read()
openFile.close()
except:
@@ -520,7 +520,7 @@ def getCmdline(pid):
@@ -465,7 +465,7 @@ def getCmdline(pid):
return cmdline
def pidOf(procName):
- openFile = subprocess.Popen('pgrep %s' % procName,
+ openFile = subprocess.Popen('@pgrep@ %s' % procName,
- openFile = subprocess.Popen(f'pgrep {procName}',
+ openFile = subprocess.Popen(f'@pgrep@ {procName}',
shell=True,
stdout=subprocess.PIPE).stdout
pids = openFile.read()
diff --git a/src/orca/orca.py b/src/orca/orca.py
index 2fe0a0bf2..087526556 100644
index d4e89f918..bb3e6cc1d 100644
--- a/src/orca/orca.py
+++ b/src/orca/orca.py
@@ -285,7 +285,7 @@ def updateKeyMap(keyboardEvent):
@@ -312,7 +312,7 @@ def updateKeyMap(keyboardEvent):
def _setXmodmap(xkbmap):
"""Set the keyboard map using xkbcomp."""
@ -42,7 +33,7 @@ index 2fe0a0bf2..087526556 100644
stdin=subprocess.PIPE, stdout=None, stderr=None)
p.communicate(xkbmap)
@@ -363,7 +363,7 @@ def _storeXmodmap(keyList):
@@ -389,7 +389,7 @@ def _storeXmodmap(keyList):
"""
global _originalXmodmap
@ -51,7 +42,7 @@ index 2fe0a0bf2..087526556 100644
def _restoreXmodmap(keyList=[]):
"""Restore the original xmodmap values for the keys in keyList.
@@ -375,7 +375,7 @@ def _restoreXmodmap(keyList=[]):
@@ -404,7 +404,7 @@ def _restoreXmodmap(keyList=[]):
global _capsLockCleared
_capsLockCleared = False
@ -61,19 +52,19 @@ index 2fe0a0bf2..087526556 100644
p.communicate(_originalXmodmap)
diff --git a/src/orca/orca_bin.py.in b/src/orca/orca_bin.py.in
index 8c9d40153..eec0d5437 100644
index 9d64af948..ca9c9e083 100644
--- a/src/orca/orca_bin.py.in
+++ b/src/orca/orca_bin.py.in
@@ -62,7 +62,7 @@ class ListApps(argparse.Action):
@@ -65,7 +65,7 @@ class ListApps(argparse.Action):
name = "[DEAD]"
try:
- cmdline = subprocess.getoutput('cat /proc/%s/cmdline' % pid)
+ cmdline = subprocess.getoutput('@cat@ /proc/%s/cmdline' % pid)
except:
except Exception:
cmdline = '(exception encountered)'
else:
@@ -197,7 +197,7 @@ def inGraphicalDesktop():
@@ -198,7 +198,7 @@ def inGraphicalDesktop():
def otherOrcas():
"""Returns the pid of any other instances of Orca owned by this user."""
@ -82,3 +73,16 @@ index 8c9d40153..eec0d5437 100644
shell=True,
stdout=subprocess.PIPE).stdout
pids = openFile.read()
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index ed8b155e4..0436cca42 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -144,7 +144,7 @@ class Utilities:
return ""
try:
- cmdline = subprocess.getoutput(f"cat /proc/{pid}/cmdline")
+ cmdline = subprocess.getoutput(f"@cat@ /proc/{pid}/cmdline")
except Exception:
return ""

View File

@ -9,6 +9,7 @@
, rsync
, wrapQtAppsHook
, qtbase
, qtpositioning
, qtsvg
, libGLU
, libGL
@ -28,13 +29,13 @@ let
};
in stdenv.mkDerivation rec {
pname = "organicmaps";
version = "2023.08.18-8";
version = "2023.11.17-17";
src = fetchFromGitHub {
owner = "organicmaps";
repo = "organicmaps";
rev = "${version}-android";
hash = "sha256-vdleO4jNKibyDlqrfZsOCScpQ9zreuYSw2BSoNpmeLY=";
hash = "sha256-3oGcupO49+ZXyW+ii4T+wov4qweDnLO+VkXSAIh7qJ4=";
fetchSubmodules = true;
};
@ -65,6 +66,7 @@ in stdenv.mkDerivation rec {
# Most dependencies are vendored
buildInputs = [
qtbase
qtpositioning
qtsvg
libGLU
libGL

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }:
{ stdenv, lib, fetchFromGitHub, pkg-config, meson, cmake, ninja, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia, layer-shell-qt }:
let
gstreamerPath = with gst_all_1; lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
gstreamer
@ -9,38 +9,39 @@ let
];
in stdenv.mkDerivation rec {
pname = "qt-video-wlr";
version = "2020-08-03";
version = "2023-07-22";
src = fetchFromGitHub {
owner = "xdavidwu";
repo = "qt-video-wlr";
rev = "f88a7aa43f28b879b18752069f4a1ec33d73f2fe";
sha256 = "135kfyg1b61xvfpk8vpk4qyw6s9q1mn3a6lfkrqrhl0dz9kka9lx";
rev = "1373c8eeb0a5d867927ba30a9a9bb2d5b0057a87";
hash = "sha256-mg0ROD9kV88I5uCm+niAI5tJuhkmYC7Z8dixxrNow4c=";
};
nativeBuildInputs = [ pkg-config meson ninja wrapQtAppsHook ];
nativeBuildInputs = [
pkg-config
meson
cmake # only used for find layer-shell-qt
ninja
wrapQtAppsHook
];
buildInputs = [
wayland
pixman
cairo
librsvg
wayland-protocols
wlroots
libxkbcommon
qtbase
qtmultimedia
qtbase
qtmultimedia
layer-shell-qt
];
qtWrapperArgs = [
"--prefix PATH : $out/bin/qt-video-wlr"
"--prefix GST_PLUGIN_PATH : ${gstreamerPath}"
"--prefix PATH : $out/bin/qt-video-wlr"
"--prefix GST_PLUGIN_PATH : ${gstreamerPath}"
];
meta = with lib; {
description = "Qt pip-mode-like video player for wlroots-based wayland compositors";
homepage = "https://github.com/xdavidwu/qt-video-wlr";
license = licenses.mit;
maintainers = with maintainers; [ fionera ];
maintainers = with maintainers; [ fionera rewine ];
platforms = with platforms; linux;
};
}

View File

@ -254,6 +254,20 @@ let
hash = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M=";
revert = true;
})
] ++ lib.optionals (!chromiumVersionAtLeast "119.0.6024.0") [
# Fix build with at-spi2-core ≥ 2.49
# This version is still needed for electron.
(githubPatch {
commit = "fc09363b2278893790d131c72a4ed96ec9837624";
hash = "sha256-l60Npgs/+0ozzuKWjwiHUUV6z59ObUjAPTfXN7eXpzw=";
})
] ++ lib.optionals (!chromiumVersionAtLeast "121.0.6104.0") [
# Fix build with at-spi2-core ≥ 2.49
# https://chromium-review.googlesource.com/c/chromium/src/+/5001687
(githubPatch {
commit = "b9bef8e9555645fc91fab705bec697214a39dbc1";
hash = "sha256-CJ1v/qc8+nwaHQR9xsx08EEcuVRbyBfCZCm/G7hRY+4=";
})
];
postPatch = ''

View File

@ -3,10 +3,10 @@
{
firefox = buildMozillaMach rec {
pname = "firefox";
version = "119.0.1";
version = "120.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "4f3201aee10e7b831cc384b2c7430a24f4de81f703115a917f9eb7acecb2ae1725f11af56c41257a056bb9d7a4d749d590cc9baffcd6e13852be45aaecf8163a";
sha512 = "31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c";
};
meta = {
@ -89,11 +89,11 @@
firefox-esr-115 = buildMozillaMach rec {
pname = "firefox-esr-115";
version = "115.4.0esr";
version = "115.5.0esr";
applicationName = "Mozilla Firefox ESR";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "3ee680c5c503df7e4913794b7029ccffc10889f8f259f16030b24c1c18c1528439123532374ccb3a7e7a0d5d64068949cb85638a29694a7d99b74dd403ddefdc";
sha512 = "5ee722884cd545cf5146f414526b4547286625f4f5996a409d7f64f115633fb7eb74d202e82f175fd5b2d24cce88deee70020fcb284055fcdea3d39da182074e";
};
meta = {

View File

@ -3,7 +3,7 @@
, jq, xdg-utils, writeText
## various stuff that can be plugged in
, ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc
, ffmpeg, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc
, gnome/*.gnome-shell*/
, browserpass, gnome-browser-connector, uget-integrator, plasma5Packages, bukubrow, pipewire
, tridactyl-native
@ -87,7 +87,7 @@ let
libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver cups pciutils ]
++ lib.optional pipewireSupport pipewire
++ lib.optional ffmpegSupport ffmpeg_5
++ lib.optional ffmpegSupport ffmpeg
++ lib.optional gssSupport libkrb5
++ lib.optional useGlvnd libglvnd
++ lib.optionals (cfg.enableQuakeLive or false)

View File

@ -7,17 +7,19 @@
((buildMozillaMach rec {
pname = "floorp";
packageVersion = "11.5.1";
packageVersion = "11.6.0";
applicationName = "Floorp";
binaryName = "floorp";
version = "155.4.0";
# Must match the contents of `browser/config/version.txt` in the source tree
version = "155.5.0";
src = fetchFromGitHub {
owner = "Floorp-Projects";
repo = "Floorp";
fetchSubmodules = true;
rev = "v${packageVersion}";
hash = "sha256-988jKyfIGZ2UPHTNO1cK2lxR/5j3U/QYR3ZI9WsvHUI=";
hash = "sha256-5OQZckST6l9OZ7jnj52nuALCWiH1hVdDoDHSpqwUUfA=";
};
extraConfigureFlags = [
@ -43,6 +45,7 @@
tests = [ nixosTests.floorp ];
}).override {
privacySupport = true;
webrtcSupport = true;
enableOfficialBranding = false;
}).overrideAttrs (prev: {
MOZ_REQUIRE_SIGNING = "";

View File

@ -6,12 +6,9 @@
, makeWrapper
, writeText
, wrapGAppsHook
, autoPatchelfHook
, callPackage
# Common run-time dependencies
, zlib
# libxul run-time dependencies
, atk
, cairo
, dbus
@ -30,19 +27,30 @@
, mesa
, pango
, pciutils
, zlib
, libnotifySupport ? stdenv.isLinux
, libnotify
, waylandSupport ? stdenv.isLinux
, libxkbcommon
, libdrm
, mediaSupport ? true
, ffmpeg
, audioSupport ? mediaSupport
, pulseaudioSupport ? mediaSupport
, pipewireSupport ? audioSupport
, pipewire
, pulseaudioSupport ? audioSupport
, libpulseaudio
, apulse
, alsa-lib
# Media support (implies audio support)
, mediaSupport ? true
, ffmpeg
, libvaSupport ? mediaSupport
, libva
# Extra preferences
, extraPrefs ? ""
@ -74,7 +82,10 @@ let
stdenv.cc.libc
zlib
] ++ lib.optionals libnotifySupport [ libnotify ]
++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
++ lib.optionals pipewireSupport [ pipewire ]
++ lib.optionals pulseaudioSupport [ libpulseaudio ]
++ lib.optionals libvaSupport [ libva ]
++ lib.optionals mediaSupport [ ffmpeg ]
);
@ -113,7 +124,13 @@ stdenv.mkDerivation rec {
src = sources.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook autoPatchelfHook ];
buildInputs = [
gtk3
alsa-lib
dbus-glib
libXtst
];
preferLocalBuild = true;
allowSubstitutes = false;

View File

@ -2,12 +2,9 @@
, fetchurl
, makeDesktopItem
, writeText
, autoPatchelfHook
, callPackage
# Common run-time dependencies
, zlib
# libxul run-time dependencies
, atk
, cairo
, dbus
@ -22,14 +19,32 @@
, libXext
, libXrender
, libXt
, libXtst
, mesa
, pango
, pciutils
, zlib
, libnotifySupport ? stdenv.isLinux
, libnotify
, waylandSupport ? stdenv.isLinux
, libxkbcommon
, libdrm
, audioSupport ? mediaSupport
, pulseaudioSupport ? mediaSupport
, pipewireSupport ? audioSupport
, pipewire
, pulseaudioSupport ? audioSupport
, libpulseaudio
, apulse
, alsa-lib
, libvaSupport ? mediaSupport
, libva
# Media support (implies audio support)
, mediaSupport ? true
, ffmpeg
@ -58,33 +73,37 @@ lib.warnIf (useHardenedMalloc != null)
"tor-browser: useHardenedMalloc is deprecated and enabling it can cause issues"
(let
libPath = lib.makeLibraryPath libPkgs;
libPkgs = [
alsa-lib
atk
cairo
dbus
dbus-glib
fontconfig
freetype
gdk-pixbuf
glib
gtk3
libxcb
libX11
libXext
libXrender
libXt
pango
stdenv.cc.cc
stdenv.cc.libc
zlib
]
++ lib.optionals pulseaudioSupport [ libpulseaudio ]
++ lib.optionals mediaSupport [
ffmpeg
];
libPath = lib.makeLibraryPath (
[
alsa-lib
atk
cairo
dbus
dbus-glib
fontconfig
freetype
gdk-pixbuf
glib
gtk3
libxcb
libX11
libXext
libXrender
libXt
libXtst
mesa # for libgbm
pango
pciutils
stdenv.cc.cc
stdenv.cc.libc
zlib
] ++ lib.optionals libnotifySupport [ libnotify ]
++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
++ lib.optionals pipewireSupport [ pipewire ]
++ lib.optionals pulseaudioSupport [ libpulseaudio ]
++ lib.optionals libvaSupport [ libva ]
++ lib.optionals mediaSupport [ ffmpeg ]
);
version = "13.0.1";
@ -129,6 +148,14 @@ stdenv.mkDerivation rec {
src = sources.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
gtk3
alsa-lib
dbus-glib
libXtst
];
preferLocalBuild = true;
allowSubstitutes = false;

View File

@ -5,6 +5,7 @@
, ninja
, pkg-config
, libhandy
, libsecret
, modemmanager
, gtk3
, gom
@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
buildInputs = [
modemmanager
libhandy
libsecret
evolution-data-server
folks
gom

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubeconform";
version = "0.6.3";
version = "0.6.4";
src = fetchFromGitHub {
owner = "yannh";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Tu1hAWAqnTGq9NL0kjG2VGzSKDh55HyAoa0nhsJdNLw=";
sha256 = "sha256-PUZ3zwgOQ362ikoX1D7SLThiaFpXJh9TKOdjZqZDtSg=";
};
vendorHash = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubeshark";
version = "51.0.14";
version = "51.0.27";
src = fetchFromGitHub {
owner = "kubeshark";
repo = "kubeshark";
rev = "v${version}";
hash = "sha256-aFeegAFGRofGa54roJ3EACvk9179YAwsgO97eeoOd6s=";
hash = "sha256-DGyvP2Z3fZNXqKuE42OPdaWfYpIGu9TIBBxbYzRPZ6M=";
};
vendorHash = "sha256-Vcn1Ky/J/3QiV6M5fLedDcpkLp5WsVcXRkOEgkKPYEQ=";

View File

@ -8,26 +8,25 @@
, gtk3
, jre
, libXtst
, coreutils
, gnugrep
, zulu
, preferGtk3 ? true
, preferZulu ? true
}:
let
rev = 3423;
rev = 3464;
jre' = if preferZulu then zulu else jre;
gtk' = if preferGtk3 then gtk3 else gtk2;
inherit (lib) makeLibraryPath versions;
in
stdenv.mkDerivation rec {
pname = "davmail";
version = "6.1.0";
version = "6.2.0";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-${toString rev}.zip";
sha256 = "sha256-/JsJFtGalNuOz21eeCPR/LvLueMtQAR7VSKN8SpnPvA=";
sha256 = "sha256-FatB0t/BhZRMofYE0KD5LDYGjDQ8hriIszKJP8qNvhw=";
};
postPatch = ''
@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
cp -vR ./* $out/share/davmail
makeWrapper $out/share/davmail/davmail $out/bin/davmail \
--set-default JAVA_OPTS "-Xmx512M -Dsun.net.inetaddr.ttl=60 -Djdk.gtk.version=${lib.versions.major gtk'.version}" \
--prefix PATH : ${jre'}/bin \
--prefix PATH : ${lib.makeBinPath [ jre' coreutils gnugrep ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk' libXtst ]}
runHook postInstall

View File

@ -12,6 +12,7 @@
, evolution-data-server
, feedbackd
, glibmm
, libsecret
, gnome-desktop
, gspell
, gtk3
@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
evolution-data-server
feedbackd
glibmm
libsecret
gnome-desktop
gspell
gtk3

View File

@ -1,8 +1,6 @@
{ lib
, fetchFromGitHub
, fetchurl
, fetchpatch
, fetchpatch2
, callPackage
, pkg-config
, cmake
@ -28,7 +26,6 @@
, libopus
, alsa-lib
, libpulseaudio
, perlPackages
, pipewire
, range-v3
, tl-expected
@ -57,7 +54,6 @@
, libpsl
, brotli
, microsoft-gsl
, mm-common
, rlottie
, stdenv
, darwin
@ -80,30 +76,6 @@ let
cxxStandard = "20";
};
};
glibmm = glibmm_2_68.overrideAttrs (attrs: {
version = "2.78.0";
src = fetchurl {
url = "mirror://gnome/sources/glibmm/2.78/glibmm-2.78.0.tar.xz";
hash = "sha256-XS6HJWSZbwKgbYu6w2d+fDlK+LAN0VJq69R6+EKj71A=";
};
patches = [
# Revert "Glib, Gio: Add new API from glib 2.77.0"
(fetchpatch2 {
url = "https://github.com/GNOME/glibmm/commit/5b9032c0298cbb49c3ed90d5f71f2636751fa638.patch";
revert = true;
hash = "sha256-UzrzIOnXh9pxuTDQsp6mnunDNNtc86hE9tCe1NgKsyo=";
})
];
mesonFlags = [
"-Dmaintainer-mode=true"
"-Dbuild-documentation=false"
];
nativeBuildInputs = attrs.nativeBuildInputs ++ [
mm-common
perlPackages.perl
perlPackages.XMLParser
];
});
mainProgram = if stdenv.isLinux then "telegram-desktop" else "Telegram";
in
stdenv.mkDerivation rec {
@ -185,7 +157,7 @@ stdenv.mkDerivation rec {
libpulseaudio
pipewire
hunspell
glibmm
glibmm_2_68
webkitgtk_6_0
jemalloc
# Transitive dependencies:

View File

@ -1,4 +1,4 @@
{ lib, python3Packages, fetchPypi, pkgs }:
{ lib, python3Packages, fetchPypi, pkgs, testers, afew }:
python3Packages.buildPythonApplication rec {
pname = "afew";
@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec {
chardet
dkimpy
notmuch
setuptools
];
nativeCheckInputs = [
@ -44,6 +45,12 @@ python3Packages.buildPythonApplication rec {
"man"
];
passthru.tests = {
version = testers.testVersion {
package = afew;
};
};
meta = with lib; {
homepage = "https://github.com/afewmail/afew";
description = "An initial tagging script for notmuch mail";

View File

@ -31,7 +31,7 @@
, enablePluginBsfilter ? true
, enablePluginClamd ? true
, enablePluginDillo ? true
, enablePluginFancy ? true, libsoup, webkitgtk
, enablePluginFancy ? true, webkitgtk
, enablePluginFetchInfo ? true
, enablePluginKeywordWarner ? true
, enablePluginLibravatar ? enablePluginRavatar
@ -67,7 +67,7 @@ let
{ flags = [ "dbus" ]; enabled = enableDbus; deps = [ dbus dbus-glib ]; }
{ flags = [ "dillo-plugin" ]; enabled = enablePluginDillo; }
{ flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; }
{ flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; }
{ flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ webkitgtk ]; }
{ flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; }
{ flags = [ "keyword_warner-plugin" ]; enabled = enablePluginKeywordWarner; }
{ flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; }
@ -96,11 +96,11 @@ let
];
in stdenv.mkDerivation rec {
pname = "claws-mail";
version = "4.1.1";
version = "4.2.0";
src = fetchurl {
url = "https://claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
hash = "sha256-sYnnAMGJb14N6wt21L+oIOt6wZNe4Qqpr7raPPU6A0Q=";
hash = "sha256-fIqxcy10GX3wbWGmt+vHxYDs9ukuse9q5bAQdTPxrwc=";
};
outputs = [ "out" "dev" ];
@ -136,8 +136,6 @@ in stdenv.mkDerivation rec {
"--disable-manual" # Missing docbook-tools, e.g., docbook2html
"--disable-compface" # Missing compface library
"--disable-jpilot" # Missing jpilot library
"--disable-gdata-plugin" # Complains about missing libgdata, even when provided
] ++
(map (feature: map (flag: lib.strings.enableFeature feature.enabled flag) feature.flags) features);

View File

@ -22,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "evolution-ews";
version = "3.48.2";
version = "3.50.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "UE2YAPW6vMXBcO9QxUZOTrwSAOQZAs2mn+j6v/L7cMA=";
sha256 = "577S3Z/AhFf3W6ufiWJV8w/TTHu8nIqV74fi4pEqCa0=";
};
patches = [

View File

@ -1,8 +1,33 @@
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
index 653a8fb..ad80283 100644
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
@@ -2406,7 +2406,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
if (schema) {
GSettings *settings;
- settings = g_settings_new ("org.gnome.evolution.calendar");
+ {
+ g_autoptr(GSettingsSchemaSource) schema_source;
+ g_autoptr(GSettingsSchema) schema;
+ schema_source = g_settings_schema_source_new_from_directory("@evo@",
+ g_settings_schema_source_get_default(),
+ TRUE,
+ NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ "org.gnome.evolution.calendar",
+ FALSE);
+ settings = g_settings_new_full(schema, NULL,
+ NULL);
+ }
if (g_settings_get_boolean (settings, "use-system-timezone"))
location = e_cal_util_get_system_timezone_location ();
diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
index 0707f72..1e71954 100644
index dbd9adb..a2372a4 100644
--- a/src/EWS/camel/camel-ews-utils.c
+++ b/src/EWS/camel/camel-ews-utils.c
@@ -1552,7 +1552,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
@@ -1553,7 +1553,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
evo_labels = g_ptr_array_new_full (5, g_free);
@ -47,7 +72,7 @@ index 6deda60..9b44cc7 100644
if (location) {
zone = i_cal_timezone_get_builtin_timezone (location);
diff --git a/src/Microsoft365/camel/camel-m365-store.c b/src/Microsoft365/camel/camel-m365-store.c
index ff1b8e3..4f876c0 100644
index 3db3564..a233d4d 100644
--- a/src/Microsoft365/camel/camel-m365-store.c
+++ b/src/Microsoft365/camel/camel-m365-store.c
@@ -309,7 +309,18 @@ m365_store_save_category_changes (GHashTable *old_categories, /* gchar *id ~> Ca

View File

@ -44,11 +44,11 @@
stdenv.mkDerivation rec {
pname = "evolution";
version = "3.48.4";
version = "3.50.1";
src = fetchurl {
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "oC+Z66BQp3HyxH1D/FLgCyJg/IbQYyD79S68fozni7c=";
sha256 = "5CA240m4Mrkbprxg+Zxkte0AjrDrM7wipU8p9I7r1Zg=";
};
nativeBuildInputs = [

View File

@ -29,13 +29,13 @@ stdenv.mkDerivation rec {
pname = "qbittorrent"
+ lib.optionalString (guiSupport && qtVersion == "5") "-qt5"
+ lib.optionalString (!guiSupport) "-nox";
version = "4.6.0";
version = "4.6.1";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
hash = "sha256-o9zMGjVCXLqdRdXzRs1kFPDMFJXQWBEtWwIfeIyFxJw=";
hash = "sha256-XpPRiWC4HO8t++Fv4Que6TjwSs+go0K/bJWzmGkbLOY=";
};
nativeBuildInputs = [

View File

@ -10,21 +10,15 @@
stdenv.mkDerivation rec {
pname = "dayon";
version = "12.0.1";
version = "13.0.0";
src = fetchFromGitHub {
owner = "RetGal";
repo = "dayon";
rev = "v${version}";
hash = "sha256-SCInonMTvBXtiDxWlN8QWNS+8MFB52vloonqfLcAEis=";
hash = "sha256-2Fo+LQvsrDvqEudZxzQBtJHGxrRYUyNyhrPV1xS49pQ=";
};
# https://github.com/RetGal/Dayon/pull/66
postPatch = ''
substituteInPlace resources/deb/dayon_assisted.desktop resources/deb/dayon_assistant.desktop \
--replace "Exec=/usr/bin/" "Exec="
'';
nativeBuildInputs = [
ant
jdk
@ -47,11 +41,15 @@ stdenv.mkDerivation rec {
runHook preInstall
install -Dm644 build/dayon.jar $out/share/dayon/dayon.jar
mkdir -p $out/bin
# jre is in PATH because dayon needs keytool to generate certificates
makeWrapper ${jre}/bin/java $out/bin/dayon \
--prefix PATH : "${lib.makeBinPath [ jre ]}" \
--add-flags "-jar $out/share/dayon/dayon.jar"
makeWrapper ${jre}/bin/java $out/bin/dayon_assisted \
--prefix PATH : "${lib.makeBinPath [ jre ]}" \
--add-flags "-cp $out/share/dayon/dayon.jar mpo.dayon.assisted.AssistedRunner"
makeWrapper ${jre}/bin/java $out/bin/dayon_assistant \
--prefix PATH : "${lib.makeBinPath [ jre ]}" \
--add-flags "-cp $out/share/dayon/dayon.jar mpo.dayon.assistant.AssistantRunner"
install -Dm644 resources/dayon.png $out/share/icons/hicolor/128x128/apps/dayon.png
runHook postInstall

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, meson, gettext, glib, gjs, ninja, python3, gtk3
, webkitgtk, gsettings-desktop-schemas, wrapGAppsHook, desktop-file-utils
, webkitgtk_4_1, gsettings-desktop-schemas, wrapGAppsHook, desktop-file-utils
, gobject-introspection, glib-networking }:
stdenv.mkDerivation rec {
@ -17,6 +17,9 @@ stdenv.mkDerivation rec {
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
substituteInPlace src/main.js \
--replace "'WebKit2': '4.0'" "'WebKit2': '4.1'"
'';
postFixup = ''
@ -30,7 +33,7 @@ stdenv.mkDerivation rec {
glib-networking
gjs
gtk3
webkitgtk
webkitgtk_4_1
desktop-file-utils
gsettings-desktop-schemas
];

View File

@ -3,8 +3,7 @@
, fetchurl
, desktop-file-utils
, gettext
, gspell
, gtkmm3
, gtkmm4
, itstool
, libsecret
, libuuid
@ -13,22 +12,21 @@
, meson
, ninja
, pkg-config
, wrapGAppsHook
, wrapGAppsHook4
, gnome
}:
stdenv.mkDerivation rec {
pname = "gnote";
version = "44.1";
version = "45.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-aWelUGgiMguuGcHrC8dFFmRPnp61TtwslCU+rhDHYE0=";
hash = "sha256-XRb9h9FA7HL7s1ewVp2u+4Io4HgUcBVG5r3mVyGTwko=";
};
buildInputs = [
gspell
gtkmm3
gtkmm4
libsecret
libuuid
libxml2
@ -42,7 +40,7 @@ stdenv.mkDerivation rec {
meson
ninja
pkg-config
wrapGAppsHook
wrapGAppsHook4
];
passthru = {

View File

@ -7,11 +7,11 @@ let
inherit (python3Packages) python pygobject3;
in stdenv.mkDerivation rec {
pname = "gnumeric";
version = "1.12.55";
version = "1.12.56";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "xpoJzRkLYirMpHa7w9TAPWjXzPWbumG/A2zmCIX5+2U=";
sha256 = "UaOPNaxbD3He+oueIL8uCFY3mPHLMzeamhdyb7Hj4bI=";
};
configureFlags = [ "--disable-component" ];

View File

@ -18,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "gnome-console";
version = "44.4";
version = "45.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-console/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "uR9E6abAQz6W2ZfzlVhSBtq6xiRzmTo8B1Uv5YiOWo0=";
sha256 = "50YhKNLfIySh10gGLEBCnNBQSvCeQHBnsz86nQxZyOE=";
};
nativeBuildInputs = [

View File

@ -1,16 +1,17 @@
{ lib, stdenv, fetchFromGitHub, automake, autoconf, intltool, pkg-config, gtk3, vte, wrapGAppsHook
, libxslt, docbook_xml_dtd_412, docbook_xsl, libxml2, findXMLCatalogs, nixosTests
, pcre2
}:
stdenv.mkDerivation rec {
pname = "lxterminal";
version = "0.3.2";
version = "0.4.0";
src = fetchFromGitHub {
owner = "lxde";
repo = "lxterminal";
rev = version;
sha256 = "sha256-5J21Xvx43Ie01IxB2usyixDl+WZEeFHn2HXZsRS5imo=";
sha256 = "sha256-bCF/V6yFe4vKqVMOtNlwYyw/ickj1LFuFn4IyypwIg0=";
};
configureFlags = [
@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
libxslt docbook_xml_dtd_412 docbook_xsl libxml2 findXMLCatalogs
];
buildInputs = [ gtk3 vte ];
buildInputs = [ gtk3 vte pcre2 ];
patches = [
./respect-xml-catalog-files-var.patch
@ -46,7 +47,7 @@ stdenv.mkDerivation rec {
'';
homepage = "https://wiki.lxde.org/en/LXTerminal";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.velovix ];
maintainers = [ lib.maintainers.pbsds ];
platforms = lib.platforms.linux;
};
}

View File

@ -1,28 +1,35 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, pkg-config
, libgit2_1_6
, libgit2
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "gex";
version = "0.6.3";
version = "0.6.4";
src = fetchFromGitHub {
owner = "Piturnah";
repo = pname;
rev = "v${version}";
hash = "sha256-ADVF+Kb0DDiR3dS43uzhefFFEg1O8IC22i5fmziEp6I=";
hash = "sha256-Xer7a3UtFIv3idchI7DfZ5u6qgDW/XFWi5ihtcREXqo=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libgit2_1_6
libgit2
] ++ lib.optionals stdenv.isDarwin [
Security
];
cargoHash = "sha256-XBBZ56jvBtYI5J/sSc4ckk/KXzCHNgM9A4jGolGKh2E=";
# force the libgit2-sys crate to use the system libgit2 library
LIBGIT2_NO_VENDOR = 1;
cargoHash = "sha256-HNz1wwn0eUhNR6ZLLPMse8LmAS4CzADx0ZR9gJgJQCg=";
meta = with lib; {
description = "Git Explorer: cross-platform git workflow improvement tool inspired by Magit";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "docker-buildx";
version = "0.11.2";
version = "0.12.0";
src = fetchFromGitHub {
owner = "docker";
repo = "buildx";
rev = "v${version}";
hash = "sha256-FPqXfIxuqwsnvsuWN5baIIn6o7ucP/Zgn+OsHfI61zU=";
hash = "sha256-O2oXswExH6OQLDZcgCGF62oZ7v6svZuOziw0SZgOVHI=";
};
doCheck = false;

View File

@ -6,42 +6,61 @@
}:
/*
Can be used as part of an update script to automatically create a patch
hardcoding the path of all GSettings schemas in C code.
For example:
passthru = {
hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
inherit src;
schemaIdToVariableMapping = {
...
};
};
Creates a patch that replaces every instantiation of GSettings in a C project
with a code that loads a GSettings schema from a hardcoded path.
updateScript =
let
updateSource = ...;
updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
in
_experimental-update-script-combinators.sequence [
updateSource
updatePatch
];
};
}
takes as input a mapping from schema path to variable name.
For example `{ "org.gnome.evolution" = "EVOLUTION_SCHEMA_PATH"; }`
hardcodes looking for `org.gnome.evolution` into `@EVOLUTION_SCHEMA_PATH@`.
All schemas must be listed.
This is useful so that libraries can find schemas even though Nix lacks
a standard location like /usr/share, where GSettings system could look for schemas.
The derivation is is somewhat dependency-heavy so it is best used as part of an update script.
For each schema id referenced in the source code (e.g. org.gnome.evolution),
a variable name such as `EVOLUTION` must be provided.
It will end up in the generated patch as `@EVOLUTION@` placeholder, which should be replaced at build time
with a path to the directory containing a `gschemas.compiled` file that includes the schema.
Arguments:
- `src`: source to generate the patch for.
- `schemaIdToVariableMapping`: attrset assigning schema ids to variable names.
All used schemas must be listed.
For example, `{ "org.gnome.evolution" = "EVOLUTION_SCHEMA_PATH"; }`
hardcodes looking for `org.gnome.evolution` into `@EVOLUTION_SCHEMA_PATH@`.
- `patches`: A list of patches to apply before generating the patch.
Example:
passthru = {
hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
inherit (finalAttrs) src;
schemaIdToVariableMapping = {
...
};
};
updateScript =
let
updateSource = ...;
updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
in
_experimental-update-script-combinators.sequence [
updateSource
updatePatch
];
};
}
*/
{
src,
patches ? [ ],
schemaIdToVariableMapping,
}:
runCommand
"hardcode-gsettings.patch"
{
inherit src;
inherit src patches;
nativeBuildInputs = [
git
coccinelle
@ -51,6 +70,7 @@ runCommand
''
unpackPhase
cd "''${sourceRoot:-.}"
patchPhase
set -x
cp ${builtins.toFile "glib-schema-to-var.json" (builtins.toJSON schemaIdToVariableMapping)} ./glib-schema-to-var.json
git init

View File

@ -1,11 +1,14 @@
/**
* Since Nix does not have a standard location like /usr/share,
* where GSettings system could look for schemas, we need to point the software to a correct location somehow.
* Since Nix does not have a standard location like /usr/share where GSettings system
* could look for schemas, we need to point the software to a correct location somehow.
* For executables, we handle this using wrappers but this is not an option for libraries like e-d-s.
* Instead, we hardcode the schema path when creating the settings.
* A schema path (ie org.gnome.evolution) can be replaced by @EVOLUTION_SCHEMA_ID@
* which is then replaced at build time by substituteAll.
* The mapping is provided in a json file ./glib-schema-to-var.json
* Instead, we patch the source code to look for the schema in a schema source
* through a hardcoded path to the schema.
*
* For each schema id referenced in the source code (e.g. org.gnome.evolution),
* a variable name such as `EVOLUTION` must be provided in the ./glib-schema-to-var.json JSON file.
* It will end up in the resulting patch as `@EVOLUTION@` placeholder, which should be replaced at build time
* with a path to the directory containing a `gschemas.compiled` file that includes the schema.
*/
@initialize:python@

View File

@ -62,7 +62,7 @@ in {
dontUnpack = src == null;
dontInstall = true;
nativeBuildInputs = [ prefetch-yarn-deps ];
nativeBuildInputs = [ prefetch-yarn-deps cacert ];
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
buildPhase = ''

View File

@ -17,6 +17,11 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-OFNqBkPAKaSqDQUWisupj6FlDbm3kw0xq5nbvj04H5U=";
# Work around https://github.com/NixOS/nixpkgs/issues/166205.
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
};
# error: linker `aarch64-linux-gnu-gcc` not found
postPatch = ''
rm .cargo/config.toml

View File

@ -1,7 +1,7 @@
{ lib
, perlPackages
, fetchFromGitHub
, makeWrapper
, wrapGAppsHook
, gobject-introspection
, perl
, clamav
@ -18,7 +18,7 @@ perlPackages.buildPerlPackage rec {
hash = "sha256-o6OaXOXLykTUuF/taKnEhZRV04/3nlU5aNY05ANr1Ko=";
};
nativeBuildInputs = [ makeWrapper gobject-introspection ];
nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
buildInputs = [ perl clamav ];
propagatedBuildInputs = with perlPackages; [ Glib LWP LWPProtocolHttps TextCSV JSON LocaleGettext Gtk3 ];
@ -51,11 +51,17 @@ perlPackages.buildPerlPackage rec {
install -D images/* -t $out/share/pixmaps
install -D clamtk.1.gz -t $out/share/man/man1
install -D -m755 clamtk -t $out/bin
wrapProgram $out/bin/clamtk --prefix PERL5LIB : $PERL5LIB --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH"
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix PERL5LIB : $PERL5LIB
--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH"
)
'';
meta = with lib; {
description = ''
Easy to use, lightweight front-end for ClamAV (Clam Antivirus).
@ -63,7 +69,7 @@ perlPackages.buildPerlPackage rec {
license = licenses.gpl1Plus;
homepage = "https://github.com/dave-theunsub/clamtk";
platforms = platforms.linux;
maintainers = with maintainers; [ jgarcia ];
maintainers = with maintainers; [ jgarcia ShamrockLee ];
};
}

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
version = "1.1.3";
version = "1.1.5";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
rev = "v${finalAttrs.version}";
hash = "sha256-RKAIZNty+iXeMfsjDOlOyvngx4XU5CSEi0Wap21lFAI=";
hash = "sha256-W0WrI58RgAzxV9WiDAqmz800lcU67uk4IFetUR4Embg=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,13 @@
diff --git a/vendor/glycin/src/dbus.rs b/vendor/glycin/src/dbus.rs
index aa5a876..4f37420 100644
--- a/vendor/glycin/src/dbus.rs
+++ b/vendor/glycin/src/dbus.rs
@@ -43,7 +43,7 @@ impl<'a> DecoderProcess<'a> {
let (bin, args, final_arg) = match sandbox_mechanism {
SandboxMechanism::Bwrap => (
- "bwrap".into(),
+ "@bwrap@".into(),
vec![
"--unshare-all",
"--die-with-parent",

View File

@ -0,0 +1,70 @@
{ stdenv
, lib
, fetchurl
, substituteAll
, bubblewrap
, cargo
, git
, meson
, ninja
, pkg-config
, rustc
, gtk4
, cairo
, libheif
, libxml2
, gnome
}:
stdenv.mkDerivation (finalAttrs: {
pname = "glycin-loaders";
version = "0.1.2";
src = fetchurl {
url = "mirror://gnome/sources/glycin-loaders/${lib.versions.majorMinor finalAttrs.version}/glycin-loaders-${finalAttrs.version}.tar.xz";
hash = "sha256-x2wBklq9BwF0WJzLkWpEpXOrZbHp1JPxVOQnVkMebdc=";
};
patches = [
# Fix paths in glycin library.
# Not actually needed for this package since we are only building loaders
# and this patch is relevant just to apps that use the loaders
# but apply it here to ensure the patch continues to apply.
finalAttrs.passthru.glycinPathsPatch
];
nativeBuildInputs = [
cargo
git
meson
ninja
pkg-config
rustc
];
buildInputs = [
gtk4 # for GdkTexture
cairo
libheif
libxml2 # for librsvg crate
];
passthru = {
updateScript = gnome.updateScript {
packageName = "glycin-loaders";
};
glycinPathsPatch = substituteAll {
src = ./fix-glycin-paths.patch;
bwrap = "${bubblewrap}/bin/bwrap";
};
};
meta = with lib; {
description = "Glycin loaders for several formats";
homepage = "https://gitlab.gnome.org/sophie-h/glycin";
maintainers = teams.gnome.members;
license = with licenses; [ mpl20 /* or */ lgpl21Plus ];
platforms = platforms.linux;
};
})

View File

@ -0,0 +1,42 @@
diff '--color=auto' -ru goredo-2.0.0/t/goredo-chmoding.t goredo-2.0.0.new/t/goredo-chmoding.t
--- goredo-2.0.0/t/goredo-chmoding.t 2023-10-08 18:50:45.000000000 +0200
+++ goredo-2.0.0.new/t/goredo-chmoding.t 2023-10-08 20:23:54.862618888 +0200
@@ -8,7 +8,7 @@
echo echo ok > foo.do
redo foo
test_expect_success "foo is non executable" '[ ! -x foo ]'
-inode0=`stat -f %i foo`
+inode0=`stat -c %i foo`
cat > foo.do <<EOF
echo ok > \$3
@@ -16,7 +16,7 @@
EOF
redo foo
test_expect_success "foo is executable" '[ -x foo ]'
-inode1=`stat -f %i foo`
+inode1=`stat -c %i foo`
test_expect_success "foo was not renamed" '[ $inode0 = $inode1 ]'
test_done
diff '--color=auto' -ru goredo-2.0.0/t/goredo-double-consideration.t goredo-2.0.0.new/t/goredo-double-consideration.t
--- goredo-2.0.0/t/goredo-double-consideration.t 2023-10-08 18:50:45.000000000 +0200
+++ goredo-2.0.0.new/t/goredo-double-consideration.t 2023-10-08 20:19:29.213465244 +0200
@@ -17,7 +17,7 @@
redo-stamp <"\$3"
EOF
cat > version.do <<EOF
-git rev-parse --short HEAD > "\$3"
+echo 012345 > "\$3"
redo-always
redo-stamp <"\$3"
EOF
diff '--color=auto' -ru goredo-2.0.0/t/redo-sh.tests/clean.do goredo-2.0.0.new/t/redo-sh.tests/clean.do
--- goredo-2.0.0/t/redo-sh.tests/clean.do 2023-10-08 18:50:45.000000000 +0200
+++ goredo-2.0.0.new/t/redo-sh.tests/clean.do 2023-10-08 20:19:29.213465244 +0200
@@ -1,4 +1,4 @@
for f in * ; do
[ -d $f ] || continue
- find $f ! -name test -delete
+ find $f ! -name test -delete || true
done

Some files were not shown because too many files have changed in this diff Show More