Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-03-16 18:01:28 +00:00 committed by GitHub
commit 8800b39c2b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
116 changed files with 2548 additions and 828 deletions

5
.github/CODEOWNERS vendored
View File

@ -359,3 +359,8 @@ nixos/tests/zfs.nix @raitobezarius
nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq
nixos/tests/buildbot.nix @Mic92 @zowoq
pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq
# Pretix
pkgs/by-name/pr/pretix/ @mweinelt
nixos/modules/services/web-apps/pretix.nix @mweinelt
nixos/tests/web-apps/pretix.nix @mweinelt

View File

@ -103,6 +103,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable).
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
@ -320,7 +322,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release.
- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
- MATE has been updated to 1.28.
- To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
- Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
- To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
- New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned.
@ -347,6 +354,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
- The EC2 image module now enables the [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) by default.
- The following options of the Nextcloud module were moved into [`services.nextcloud.settings`](#opt-services.nextcloud.settings) and renamed to match the name from Nextcloud's `config.php`:
- `logLevel` -> [`loglevel`](#opt-services.nextcloud.settings.loglevel),
- `logType` -> [`log_type`](#opt-services.nextcloud.settings.log_type),

View File

@ -30,7 +30,10 @@ in
ipu6-drivers
];
hardware.firmware = [ pkgs.ipu6-camera-bins ];
hardware.firmware = with pkgs; [
ipu6-camera-bins
ivsc-firmware
];
services.udev.extraRules = ''
SUBSYSTEM=="intel-ipu6-psys", MODE="0660", GROUP="video"

View File

@ -1358,6 +1358,7 @@
./services/web-apps/plausible.nix
./services/web-apps/powerdns-admin.nix
./services/web-apps/pretalx.nix
./services/web-apps/pretix.nix
./services/web-apps/prosody-filer.nix
./services/web-apps/rimgo.nix
./services/web-apps/sftpgo.nix

View File

@ -600,6 +600,7 @@ in
description = "Ensure that NetworkManager declarative profiles are created";
wantedBy = [ "multi-user.target" ];
before = [ "network-online.target" ];
after = [ "NetworkManager.service" ];
script = let
path = id: "/run/NetworkManager/system-connections/${id}.nmconnection";
in ''
@ -609,9 +610,7 @@ in
${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)}
'') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles)
+ ''
if systemctl is-active --quiet NetworkManager; then
${pkgs.networkmanager}/bin/nmcli connection reload
fi
${pkgs.networkmanager}/bin/nmcli connection reload
'';
serviceConfig = {
EnvironmentFile = cfg.ensureProfiles.environmentFiles;

View File

@ -1,99 +1,122 @@
{ config, pkgs, lib, ... }:
with lib;
{
config,
pkgs,
lib,
...
}:
let
cfg = config.services.komga;
in {
inherit (lib) mkOption mkEnableOption maintainers;
inherit (lib.types) port str bool;
in
{
options = {
services.komga = {
enable = mkEnableOption (lib.mdDoc "Komga, a free and open source comics/mangas media server");
enable = mkEnableOption "Komga, a free and open source comics/mangas media server";
port = mkOption {
type = types.port;
type = port;
default = 8080;
description = lib.mdDoc ''
The port that Komga will listen on.
'';
description = "The port that Komga will listen on.";
};
user = mkOption {
type = types.str;
type = str;
default = "komga";
description = lib.mdDoc ''
User account under which Komga runs.
'';
description = "User account under which Komga runs.";
};
group = mkOption {
type = types.str;
type = str;
default = "komga";
description = lib.mdDoc ''
Group under which Komga runs.
'';
description = "Group under which Komga runs.";
};
stateDir = mkOption {
type = types.str;
type = str;
default = "/var/lib/komga";
description = lib.mdDoc ''
State and configuration directory Komga will use.
'';
description = "State and configuration directory Komga will use.";
};
openFirewall = mkOption {
type = types.bool;
type = bool;
default = false;
description = lib.mdDoc ''
Whether to open the firewall for the port in {option}`services.komga.port`.
'';
description = "Whether to open the firewall for the port in {option}`services.komga.port`.";
};
};
};
config = mkIf cfg.enable {
config =
let
inherit (lib) mkIf getExe;
in
mkIf cfg.enable {
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
users.groups = mkIf (cfg.group == "komga") {
komga = {};
};
users.groups = mkIf (cfg.group == "komga") { komga = { }; };
users.users = mkIf (cfg.user == "komga") {
komga = {
group = cfg.group;
home = cfg.stateDir;
description = "Komga Daemon user";
isSystemUser = true;
};
};
systemd.services.komga = {
environment = {
SERVER_PORT = builtins.toString cfg.port;
KOMGA_CONFIGDIR = cfg.stateDir;
users.users = mkIf (cfg.user == "komga") {
komga = {
group = cfg.group;
home = cfg.stateDir;
description = "Komga Daemon user";
isSystemUser = true;
};
};
description = "Komga is a free and open source comics/mangas media server";
systemd.services.komga = {
environment = {
SERVER_PORT = builtins.toString cfg.port;
KOMGA_CONFIGDIR = cfg.stateDir;
};
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
description = "Komga is a free and open source comics/mangas media server";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
Type = "simple";
Restart = "on-failure";
ExecStart = "${pkgs.komga}/bin/komga";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
Type = "simple";
Restart = "on-failure";
ExecStart = getExe pkgs.komga;
StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
RemoveIPC = true;
NoNewPrivileges = true;
CapabilityBoundingSet = "";
SystemCallFilter = [ "@system-service" ];
ProtectSystem = "full";
PrivateTmp = true;
ProtectProc = "invisible";
ProtectClock = true;
ProcSubset = "pid";
PrivateUsers = true;
PrivateDevices = true;
ProtectHostname = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
];
LockPersonality = true;
RestrictNamespaces = true;
ProtectKernelLogs = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
SystemCallArchitectures = "native";
RestrictSUIDSGID = true;
RestrictRealtime = true;
};
};
};
};
meta.maintainers = with maintainers; [ govanify ];
}

View File

@ -0,0 +1,579 @@
{ config
, lib
, pkgs
, utils
, ...
}:
let
inherit (lib)
concatMapStringsSep
escapeShellArgs
filter
filterAttrs
getExe
getExe'
isAttrs
isList
literalExpression
mapAttrs
mkDefault
mkEnableOption
mkIf
mkOption
mkPackageOption
optionals
optionalString
recursiveUpdate
types
;
filterRecursiveNull = o:
if isAttrs o then
mapAttrs (_: v: filterRecursiveNull v) (filterAttrs (_: v: v != null) o)
else if isList o then
map filterRecursiveNull (filter (v: v != null) o)
else
o;
cfg = config.services.pretix;
format = pkgs.formats.ini { };
configFile = format.generate "pretix.cfg" (filterRecursiveNull cfg.settings);
finalPackage = cfg.package.override {
inherit (cfg) plugins;
};
pythonEnv = cfg.package.python.buildEnv.override {
extraLibs = with cfg.package.python.pkgs; [
(toPythonModule finalPackage)
gunicorn
]
++ lib.optionals (cfg.settings.memcached.location != null)
cfg.package.optional-dependencies.memcached
;
};
withRedis = cfg.settings.redis.location != null;
in
{
meta = with lib; {
maintainers = with maintainers; [ hexa ];
};
options.services.pretix = {
enable = mkEnableOption "pretix";
package = mkPackageOption pkgs "pretix" { };
group = mkOption {
type = types.str;
default = "pretix";
description = ''
Group under which pretix should run.
'';
};
user = mkOption {
type = types.str;
default = "pretix";
description = ''
User under which pretix should run.
'';
};
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/pretix-secrets.env";
description = ''
Environment file to pass secret configuration values.
Each line must follow the `PRETIX_SECTION_KEY=value` pattern.
'';
};
plugins = mkOption {
type = types.listOf types.package;
default = [];
example = literalExpression ''
with config.services.pretix.package.plugins; [
passbook
pages
];
'';
description = ''
Pretix plugins to install into the Python environment.
'';
};
gunicorn.extraArgs = mkOption {
type = with types; listOf str;
default = [
"--name=pretix"
];
example = [
"--name=pretix"
"--workers=4"
"--max-requests=1200"
"--max-requests-jitter=50"
"--log-level=info"
];
description = ''
Extra arguments to pass to gunicorn.
See <https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#start-pretix-as-a-service> for details.
'';
apply = escapeShellArgs;
};
celery = {
extraArgs = mkOption {
type = with types; listOf str;
default = [ ];
description = ''
Extra arguments to pass to celery.
See <https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker> for more info.
'';
apply = utils.escapeSystemdExecArgs;
};
};
nginx = {
enable = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to set up an nginx virtual host.
'';
};
domain = mkOption {
type = types.str;
example = "talks.example.com";
description = ''
The domain name under which to set up the virtual host.
'';
};
};
database.createLocally = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to automatically set up the database on the local DBMS instance.
Only supported for PostgreSQL. Not required for sqlite.
'';
};
settings = mkOption {
type = types.submodule {
freeformType = format.type;
options = {
pretix = {
instance_name = mkOption {
type = types.str;
example = "tickets.example.com";
description = ''
The name of this installation.
'';
};
url = mkOption {
type = types.str;
example = "https://tickets.example.com";
description = ''
The installations full URL, without a trailing slash.
'';
};
cachedir = mkOption {
type = types.path;
default = "/var/cache/pretix";
description = ''
Directory for storing temporary files.
'';
};
datadir = mkOption {
type = types.path;
default = "/var/lib/pretix";
description = ''
Directory for storing user uploads and similar data.
'';
};
logdir = mkOption {
type = types.path;
default = "/var/log/pretix";
description = ''
Directory for storing log files.
'';
};
currency = mkOption {
type = types.str;
default = "EUR";
example = "USD";
description = ''
Default currency for events in its ISO 4217 three-letter code.
'';
};
registration = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Whether to allow registration of new admin users.
'';
};
};
database = {
backend = mkOption {
type = types.enum [
"sqlite3"
"postgresql"
];
default = "postgresql";
description = ''
Database backend to use.
Only postgresql is recommended for production setups.
'';
};
host = mkOption {
type = with types; nullOr types.path;
default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null;
defaultText = literalExpression ''
if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql"
else null
'';
description = ''
Database host or socket path.
'';
};
name = mkOption {
type = types.str;
default = "pretix";
description = ''
Database name.
'';
};
user = mkOption {
type = types.str;
default = "pretix";
description = ''
Database username.
'';
};
};
mail = {
from = mkOption {
type = types.str;
example = "tickets@example.com";
description = ''
E-Mail address used in the `FROM` header of outgoing mails.
'';
};
host = mkOption {
type = types.str;
default = "localhost";
example = "mail.example.com";
description = ''
Hostname of the SMTP server use for mail delivery.
'';
};
port = mkOption {
type = types.port;
default = 25;
example = 587;
description = ''
Port of the SMTP server to use for mail delivery.
'';
};
};
celery = {
backend = mkOption {
type = types.str;
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1";
defaultText = literalExpression ''
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"
'';
description = ''
URI to the celery backend used for the asynchronous job queue.
'';
};
broker = mkOption {
type = types.str;
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2";
defaultText = literalExpression ''
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"
'';
description = ''
URI to the celery broker used for the asynchronous job queue.
'';
};
};
redis = {
location = mkOption {
type = with types; nullOr str;
default = "unix://${config.services.redis.servers.pretix.unixSocket}?db=0";
defaultText = literalExpression ''
"unix://''${config.services.redis.servers.pretix.unixSocket}?db=0"
'';
description = ''
URI to the redis server, used to speed up locking, caching and session storage.
'';
};
sessions = mkOption {
type = types.bool;
default = true;
example = false;
description = ''
Whether to use redis as the session storage.
'';
};
};
memcached = {
location = mkOption {
type = with types; nullOr str;
default = null;
example = "127.0.0.1:11211";
description = ''
The `host:port` combination or the path to the UNIX socket of a memcached instance.
Can be used instead of Redis for caching.
'';
};
};
tools = {
pdftk = mkOption {
type = types.path;
default = getExe pkgs.pdftk;
defaultText = literalExpression ''
lib.getExe pkgs.pdftk
'';
description = ''
Path to the pdftk executable.
'';
};
};
};
};
default = { };
description = ''
pretix configuration as a Nix attribute set. All settings can also be passed
from the environment.
See <https://docs.pretix.eu/en/latest/admin/config.html> for possible options.
'';
};
};
config = mkIf cfg.enable {
# https://docs.pretix.eu/en/latest/admin/installation/index.html
environment.systemPackages = [
(pkgs.writeScriptBin "pretix-manage" ''
cd ${cfg.settings.pretix.datadir}
sudo=exec
if [[ "$USER" != ${cfg.user} ]]; then
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} ${optionalString withRedis "-g redis-pretix"} --preserve-env=PRETIX_CONFIG_FILE'
fi
export PRETIX_CONFIG_FILE=${configFile}
$sudo ${getExe' pythonEnv "pretix-manage"} "$@"
'')
];
services = {
nginx = mkIf cfg.nginx.enable {
enable = true;
recommendedGzipSettings = mkDefault true;
recommendedOptimisation = mkDefault true;
recommendedProxySettings = mkDefault true;
recommendedTlsSettings = mkDefault true;
upstreams.pretix.servers."unix:/run/pretix/pretix.sock" = { };
virtualHosts.${cfg.nginx.domain} = {
# https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#ssl
extraConfig = ''
more_set_headers Referrer-Policy same-origin;
more_set_headers X-Content-Type-Options nosniff;
'';
locations = {
"/".proxyPass = "http://pretix";
"/media/" = {
alias = "${cfg.settings.pretix.datadir}/media/";
extraConfig = ''
access_log off;
expires 7d;
'';
};
"^~ /media/(cachedfiles|invoices)" = {
extraConfig = ''
deny all;
return 404;
'';
};
"/static/" = {
alias = "${finalPackage}/${cfg.package.python.sitePackages}/pretix/static.dist/";
extraConfig = ''
access_log off;
more_set_headers Cache-Control "public";
expires 365d;
'';
};
};
};
};
postgresql = mkIf (cfg.database.createLocally && cfg.settings.database.backend == "postgresql") {
enable = true;
ensureUsers = [ {
name = cfg.settings.database.user;
ensureDBOwnership = true;
} ];
ensureDatabases = [ cfg.settings.database.name ];
};
redis.servers.pretix.enable = withRedis;
};
systemd.services = let
commonUnitConfig = {
environment.PRETIX_CONFIG_FILE = configFile;
serviceConfig = {
User = "pretix";
Group = "pretix";
EnvironmentFile = optionals (cfg.environmentFile != null) [
cfg.environmentFile
];
StateDirectory = [
"pretix"
];
CacheDirectory = "pretix";
LogsDirectory = "pretix";
WorkingDirectory = cfg.settings.pretix.datadir;
SupplementaryGroups = optionals withRedis [
"redis-pretix"
];
AmbientCapabilities = "";
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProcSubset = "pid";
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
"@chown"
];
UMask = "0077";
};
};
in {
pretix-web = recursiveUpdate commonUnitConfig {
description = "pretix web service";
after = [
"network.target"
"redis-pretix.service"
"postgresql.service"
];
wantedBy = [ "multi-user.target" ];
preStart = ''
versionFile="${cfg.settings.pretix.datadir}/.version"
version=$(cat "$versionFile" 2>/dev/null || echo 0)
pluginsFile="${cfg.settings.pretix.datadir}/.plugins"
plugins=$(cat "$pluginsFile" 2>/dev/null || echo "")
configuredPlugins="${concatMapStringsSep "|" (package: package.name) cfg.plugins}"
if [[ $version != ${cfg.package.version} || $plugins != $configuredPlugins ]]; then
${getExe' pythonEnv "pretix-manage"} migrate
echo "${cfg.package.version}" > "$versionFile"
echo "$configuredPlugins" > "$pluginsFile"
fi
'';
serviceConfig = {
ExecStart = "${getExe' pythonEnv "gunicorn"} --bind unix:/run/pretix/pretix.sock ${cfg.gunicorn.extraArgs} pretix.wsgi";
RuntimeDirectory = "pretix";
};
};
pretix-periodic = recursiveUpdate commonUnitConfig {
description = "pretix periodic task runner";
# every 15 minutes
startAt = [ "*:3,18,33,48" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${getExe' pythonEnv "pretix-manage"} runperiodic";
};
};
pretix-worker = recursiveUpdate commonUnitConfig {
description = "pretix asynchronous job runner";
after = [
"network.target"
"redis-pretix.service"
"postgresql.service"
];
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}";
};
};
systemd.sockets.pretix-web.socketConfig = {
ListenStream = "/run/pretix/pretix.sock";
SocketUser = "nginx";
};
users = {
groups."${cfg.group}" = {};
users."${cfg.user}" = {
isSystemUser = true;
createHome = true;
home = cfg.settings.pretix.datadir;
inherit (cfg) group;
};
};
};
}

View File

@ -20,6 +20,22 @@ in
};
debug = mkEnableOption (lib.mdDoc "mate-session debug messages");
extraPanelApplets = mkOption {
default = [ ];
example = literalExpression "with pkgs.mate; [ mate-applets ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra applets to add to mate-panel.";
};
extraCajaExtensions = mkOption {
default = [ ];
example = lib.literalExpression "with pkgs.mate; [ caja-extensions ]";
type = types.listOf types.package;
description = lib.mdDoc "Extra extensions to add to caja.";
};
enableWaylandSession = mkEnableOption (lib.mdDoc "MATE Wayland session");
};
environment.mate.excludePackages = mkOption {
@ -31,55 +47,63 @@ in
};
config = mkIf cfg.enable {
config = mkMerge [
(mkIf (cfg.enable || cfg.enableWaylandSession) {
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
services.xserver.displayManager.sessionPackages = [
pkgs.mate.mate-session-manager
];
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Let caja find extensions
environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
(pkgs.mate.caja-with-extensions.override {
extensions = cfg.extraCajaExtensions;
})
(pkgs.mate.mate-panel-with-applets.override {
applets = cfg.extraPanelApplets;
})
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
# Let mate-panel find applets
environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets";
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
environment.systemPackages = utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
pkgs.desktop-file-utils
pkgs.glib
pkgs.gtk3.out
pkgs.shared-mime-info
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
pkgs.yelp # for 'Contents' in 'Help' menus
])
config.environment.mate.excludePackages;
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
programs.dconf.enable = true;
# Shell integration for VTE terminals
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true;
# Mate uses this for printing
programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
services.gnome.at-spi2-core.enable = true;
services.gnome.gnome-keyring.enable = true;
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
environment.pathsToLink = [ "/share" ];
})
(mkIf cfg.enableWaylandSession {
programs.wayfire.enable = true;
programs.wayfire.plugins = [ pkgs.wayfirePlugins.firedecor ];
security.pam.services.mate-screensaver.unixAuth = true;
xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
environment.pathsToLink = [ "/share" ];
};
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${pkgs.mate.mate-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
environment.systemPackages = [ pkgs.mate.mate-wayland-session ];
services.xserver.displayManager.sessionPackages = [ pkgs.mate.mate-wayland-session ];
})
];
}

View File

@ -79,6 +79,10 @@ in
serviceConfig.StandardOutput = "journal+console";
};
# Amazon-issued AMIs include the SSM Agent by default, so we do the same.
# https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html
services.amazon-ssm-agent.enable = true;
# Allow root logins only using the SSH key that the user specified
# at instance creation time.
services.openssh.enable = true;

View File

@ -513,6 +513,7 @@ in {
mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
mate = handleTest ./mate.nix {};
mate-wayland = handleTest ./mate-wayland.nix {};
matter-server = handleTest ./matter-server.nix {};
matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
@ -729,6 +730,7 @@ in {
pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
pretalx = runTest ./web-apps/pretalx.nix;
pretix = runTest ./web-apps/pretix.nix;
printing-socket = handleTest ./printing.nix { socket = true; };
printing-service = handleTest ./printing.nix { socket = false; };
privoxy = handleTest ./privoxy.nix {};

View File

@ -0,0 +1,63 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "mate-wayland";
meta.maintainers = lib.teams.mate.members;
nodes.machine = { ... }: {
imports = [
./common/user-account.nix
];
services.xserver.enable = true;
services.xserver.displayManager = {
sddm.enable = true; # https://github.com/canonical/lightdm/issues/63
sddm.wayland.enable = true;
defaultSession = "MATE";
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.mate.enableWaylandSession = true;
hardware.pulseaudio.enable = true;
# Need to switch to a different GPU driver than the default one (-vga std) so that wayfire can launch:
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
};
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-1")
with subtest("Check if MATE session components actually start"):
for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
machine.wait_for_text('(Applications|Places|System)')
# It is expected that this applet doesn't work in Wayland
machine.wait_for_text('WorkspaceSwitcherApplet')
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
machine.succeed(f"{cmd} | grep 'XDG_SESSION_DESKTOP' | grep 'MATE'")
machine.succeed(f"{cmd} | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if Wayfire config is properly configured"):
for i in ["button_style = mate", "firedecor", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"cat /home/${user.name}/.config/mate/wayfire.ini | grep '{i}'")
with subtest("Check if Wayfire has ever coredumped"):
machine.fail("coredumpctl --json=short | grep wayfire")
machine.sleep(10)
machine.screenshot("screen")
'';
})

View File

@ -54,6 +54,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.wait_for_text('(Applications|Places|System)')
machine.wait_for_text('(Computer|Home|Trash)')
with subtest("Check if various environment variables are set"):
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf marco)/environ | grep 'XDG_CURRENT_DESKTOP' | grep 'MATE'")
# From mate-panel-with-applets packaging
machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
with subtest("Check if applets are built with in-process support"):
# This is needed for Wayland support
machine.fail("pgrep -fa clock-applet")
with subtest("Lock the screen"):
machine.wait_until_succeeds("su - ${user.name} -c '${env} mate-screensaver-command -q' | grep 'The screensaver is inactive'")
machine.succeed("su - ${user.name} -c '${env} mate-screensaver-command -l >&2 &'")

View File

@ -0,0 +1,47 @@
{
lib,
pkgs,
...
}:
{
name = "pretix";
meta.maintainers = with lib.maintainers; [ hexa ];
nodes = {
pretix = {
networking.extraHosts = ''
127.0.0.1 tickets.local
'';
services.pretix = {
enable = true;
nginx.domain = "tickets.local";
plugins = with pkgs.pretix.plugins; [
passbook
pages
];
settings = {
pretix = {
instance_name = "NixOS Test";
url = "http://tickets.local";
};
mail.from = "hello@tickets.local";
};
};
};
};
testScript = ''
start_all()
pretix.wait_for_unit("pretix-web.service")
pretix.wait_for_unit("pretix-worker.service")
pretix.wait_until_succeeds("curl -q --fail http://tickets.local")
pretix.succeed("pretix-manage --help")
pretix.log(pretix.succeed("systemd-analyze security pretix-web.service"))
'';
}

View File

@ -6625,14 +6625,14 @@ final: prev:
neotest-pest = buildVimPlugin {
pname = "neotest-pest";
version = "2024-02-16";
version = "2024-03-04";
src = fetchFromGitHub {
owner = "theutz";
owner = "V13Axel";
repo = "neotest-pest";
rev = "94ed941af4ea6e7d0caa4de8afbf966f3cfe35e4";
sha256 = "1655rpr007ix9z4nxkabnvdk8c0kj080waxddaq656dhdzdj7l1q";
rev = "25501800b5b8da578a03bb178a007d6f8abe7ae3";
sha256 = "sha256-S36yvNrg6rroZbySOt9SKrHGSV6HUgRlSPUh79RNZ7M=";
};
meta.homepage = "https://github.com/theutz/neotest-pest/";
meta.homepage = "https://github.com/V13Axel/neotest-pest/";
};
neotest-phpunit = buildVimPlugin {

View File

@ -555,7 +555,7 @@ https://github.com/jfpedroza/neotest-elixir/,HEAD,
https://github.com/nvim-neotest/neotest-go/,HEAD,
https://github.com/MrcJkb/neotest-haskell/,HEAD,
https://github.com/haydenmeade/neotest-jest/,HEAD,
https://github.com/theutz/neotest-pest/,HEAD,
https://github.com/V13Axel/neotest-pest/,HEAD,
https://github.com/olimorris/neotest-phpunit/,HEAD,
https://github.com/nvim-neotest/neotest-plenary/,HEAD,
https://github.com/nvim-neotest/neotest-python/,HEAD,

View File

@ -98,9 +98,9 @@ in mkDerivation rec {
wrapGAppsHook
wrapQtAppsHook
bison
cmake
flex
bison
ninja
];

View File

@ -23,16 +23,18 @@ stdenv.mkDerivation rec {
checkTarget = "test";
nativeCheckInputs = [ which zstd pbzip2 ];
sharePath = "$out/share/${pname}";
installPhase = ''
runHook preInstall
installManPage makeself.1
install -Dm555 makeself.sh $out/bin/makeself
install -Dm444 -t $out/share/${pname}/ makeself.lsm README.md makeself-header.sh
install -Dm444 -t ${sharePath}/ makeself.lsm README.md makeself-header.sh
runHook postInstall
'';
fixupPhase = ''
sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself
sed -e "s|^HEADER=.*|HEADER=${sharePath}/makeself-header.sh|" -i $out/bin/makeself
'';
meta = with lib; {

View File

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "bosh-cli";
version = "7.5.4";
version = "7.5.5";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = pname;
rev = "v${version}";
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
sha256 = "sha256-LjqMCkEIl+0psxIys/tvJPkEQqDRzLOsaFUfAVG+RrE=";
};
vendorHash = null;

View File

@ -15,13 +15,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pjsip";
version = "2.14";
version = "2.14.1";
src = fetchFromGitHub {
owner = finalAttrs.pname;
repo = "pjproject";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-PWCeIvnBAOqbcNYPhIY7hykdvLzoD9lssSViCCPNT68=";
hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY=";
};
patches = [

View File

@ -8,34 +8,18 @@
mkDerivation rec {
pname = "mythtv";
version = "32.0";
version = "34.0";
src = fetchFromGitHub {
owner = "MythTV";
repo = "mythtv";
rev = "v${version}";
sha256 = "0i4fs3rbk1jggh62wflpa2l03na9i1ihpz2vsdic9vfahqqjxff1";
hash = "sha256-6/TEoyYIRq6pufYzGOmO5DB05JuDo9lqRAYT5N5M/L4=";
};
patches = [
# Disable sourcing /etc/os-release
./dont-source-os-release.patch
# Fix QMake variable substitution syntax - MythTV/mythtv#550
(fetchpatch {
name = "fix-qmake-var-syntax.patch";
url = "https://github.com/MythTV/mythtv/commit/a8da7f7e7ec069164adbef65a8104adc9bb52e36.patch";
stripLen = 1;
hash = "sha256-JfRME00YNNjl6SKs1HBa0wBa/lR/Rt3zbQtWhsC36JM=";
})
# Bachport the build against binutils-2.41
(fetchpatch {
name = "binutils-2.41.patch";
url = "https://github.com/MythTV/mythtv/commit/f9f9bba62ee2743c816cb2b9634b6b4397e5e2e3.patch";
stripLen = 1;
hash = "sha256-IcXgBtfqPZ42inYFe7l8mWvKUV13S/YEQAHcOFaDivI=";
})
];
setSourceRoot = "sourceRoot=$(echo */mythtv)";

View File

@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
@@ -5894,9 +5894,9 @@ else
@@ -5451,9 +5451,9 @@ else
die "ERROR: cannot find soundtouch 1.8.0 or later."
fi

View File

@ -19,12 +19,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-markad";
version = "3.4.6";
version = "3.4.12";
src = fetchFromGitHub {
repo = "vdr-plugin-markad";
owner = "kfb77";
sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g=";
sha256 = "sha256-yc/zWMGzsfZl3n+Qt5Se2duo3jwntCWaYq1yACsrPzM=";
rev = "V${version}";
};

View File

@ -14,12 +14,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "2.1.1";
version = "2.1.2";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-d/Cl0sE4laDdjMhd3xTHcY4OT5tWWCFCvLsNF157+zw=";
sha256 = "sha256-y6b0nOf597uxS9zDh0NQOwLN81nk4U7lHK2CalyVi8s=";
rev = "v${version}";
};

View File

@ -0,0 +1,73 @@
{ stdenv
, lib
, fetchFromGitHub
, meson
, ninja
, pkg-config
, boost
, cairo
, glib
, libGL
, libinput
, librsvg
, libxkbcommon
, pango
, udev
, wayfire
, wayland
, wf-config
, xcbutilwm
, mate
}:
stdenv.mkDerivation (finalAttrs: {
pname = "firedecor";
version = "2023-10-23";
src = fetchFromGitHub {
owner = "mntmn";
repo = "Firedecor";
rev = finalAttrs.version;
hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
boost
cairo
glib
libGL
libinput
librsvg
libxkbcommon
pango
udev
wayfire
wayland
wf-config
xcbutilwm
];
postPatch = ''
substituteInPlace src/firedecor-theme.cpp \
--replace-fail "/usr/share" "/run/current-system/sw/share"
'';
env = {
PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire";
PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
};
meta = with lib; {
homepage = "https://github.com/mntmn/Firedecor";
description = "Advanced window decoration plugin for the Wayfire window manager";
license = licenses.mit;
inherit (mate.mate-wayland-session.meta) maintainers;
inherit (wayfire.meta) platforms;
};
})

View File

@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self:
let
inherit (self) callPackage;
in {
firedecor = callPackage ./firedecor.nix { };
wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
wcm = callPackage ./wcm.nix { };
wf-shell = callPackage ./wf-shell.nix { };

View File

@ -44,13 +44,13 @@ in
stdenv.mkDerivation rec {
pname = "cockpit";
version = "312";
version = "313";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit";
rev = "refs/tags/${version}";
hash = "sha256-X3IsUaqXlg/SlqHo9jK+hONY/6LAIAfRO9rAwCQcq64=";
hash = "sha256-k/JbvotOcVs2OXwGOrnjY0xYRRgvk61p0o7VQTTPqz4=";
fetchSubmodules = true;
};

View File

@ -1,8 +1,9 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, nix-update-script
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-hgcGzRLB1L3yxJjw1ECDJPmbl1W+2OS4KDojclyVYrc=";
nativeBuildInputs = [
installShellFiles
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage target/man/hyprdim.1
installShellCompletion --cmd hyprdim \
--bash <(cat target/completions/hyprdim.bash) \
--fish <(cat target/completions/hyprdim.fish) \
--zsh <(cat target/completions/_hyprdim)
--bash target/completions/hyprdim.bash \
--fish target/completions/hyprdim.fish \
--zsh target/completions/_hyprdim
'';
passthru.updateScript = nix-update-script { };

View File

@ -1,8 +1,9 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, nix-update-script
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-DpbRs97sr5wpJSrYF99ZiQ0SZOZdoQjfaLhKIAU95HA=";
nativeBuildInputs = [
installShellFiles
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage target/man/hyprnome.1
installShellCompletion --cmd hyprnome \
--bash <(cat target/completions/hyprnome.bash) \
--fish <(cat target/completions/hyprnome.fish) \
--zsh <(cat target/completions/_hyprnome)
--bash target/completions/hyprnome.bash \
--fish target/completions/hyprnome.fish \
--zsh target/completions/_hyprnome
'';
passthru.updateScript = nix-update-script { };

View File

@ -146,18 +146,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "axum"
version = "0.6.20"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
dependencies = [
"async-trait",
"axum-core",
"bitflags 1.3.2",
"bytes",
"futures-util",
"http",
"http-body",
"hyper",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"hyper 1.2.0",
"hyper-util",
"itoa",
"matchit",
"memchr",
@ -178,17 +179,20 @@ dependencies = [
[[package]]
name = "axum-core"
version = "0.3.4"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
dependencies = [
"async-trait",
"bytes",
"futures-util",
"http",
"http-body",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"mime",
"pin-project-lite",
"rustversion",
"sync_wrapper",
"tower-layer",
"tower-service",
]
@ -310,6 +314,12 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]]
name = "cipher"
version = "0.4.4"
@ -504,9 +514,9 @@ dependencies = [
[[package]]
name = "etherparse"
version = "0.13.0"
version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990"
checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1"
dependencies = [
"arrayvec",
]
@ -691,7 +701,26 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
"http",
"http 0.2.11",
"indexmap",
"slab",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "h2"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
dependencies = [
"bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
"http 1.1.0",
"indexmap",
"slab",
"tokio",
@ -728,6 +757,17 @@ dependencies = [
"itoa",
]
[[package]]
name = "http"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [
"bytes",
"fnv",
"itoa",
]
[[package]]
name = "http-body"
version = "0.4.6"
@ -735,7 +775,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
dependencies = [
"bytes",
"http",
"http 0.2.11",
"pin-project-lite",
]
[[package]]
name = "http-body"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
dependencies = [
"bytes",
"http 1.1.0",
]
[[package]]
name = "http-body-util"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
dependencies = [
"bytes",
"futures-util",
"http 1.1.0",
"http-body 1.0.0",
"pin-project-lite",
]
@ -767,9 +830,9 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"h2 0.3.24",
"http 0.2.11",
"http-body 0.4.6",
"httparse",
"httpdate",
"itoa",
@ -782,17 +845,39 @@ dependencies = [
]
[[package]]
name = "hyper-rustls"
version = "0.24.2"
name = "hyper"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http",
"hyper",
"rustls",
"h2 0.4.2",
"http 1.1.0",
"http-body 1.0.0",
"httparse",
"httpdate",
"itoa",
"pin-project-lite",
"smallvec",
"tokio",
]
[[package]]
name = "hyper-util"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
dependencies = [
"bytes",
"futures-util",
"http 1.1.0",
"http-body 1.0.0",
"hyper 1.2.0",
"pin-project-lite",
"socket2",
"tokio",
"tokio-rustls",
]
[[package]]
@ -886,9 +971,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.152"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libloading"
@ -908,9 +993,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
[[package]]
name = "log"
version = "0.4.20"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "loom"
@ -972,9 +1057,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.8.10"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"wasi",
@ -983,7 +1068,7 @@ dependencies = [
[[package]]
name = "mycelium"
version = "0.4.2"
version = "0.4.3"
dependencies = [
"aes-gcm",
"axum",
@ -1002,7 +1087,7 @@ dependencies = [
"libc",
"log",
"network-interface",
"nix 0.27.1",
"nix 0.28.0",
"pretty_env_logger",
"quinn",
"rand",
@ -1119,6 +1204,18 @@ dependencies = [
"bitflags 2.4.2",
"cfg-if",
"libc",
]
[[package]]
name = "nix"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
"bitflags 2.4.2",
"cfg-if",
"cfg_aliases",
"libc",
"memoffset",
]
@ -1360,9 +1457,9 @@ dependencies = [
[[package]]
name = "rcgen"
version = "0.12.0"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d918c80c5a4c7560db726763020bd16db179e4d5b828078842274a443addb5d"
checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
dependencies = [
"pem",
"ring 0.17.7",
@ -1425,11 +1522,10 @@ dependencies = [
"encoding_rs",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"hyper",
"hyper-rustls",
"h2 0.3.24",
"http 0.2.11",
"http-body 0.4.6",
"hyper 0.14.28",
"ipnet",
"js-sys",
"log",
@ -1437,20 +1533,16 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
"rustls",
"rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
"system-configuration",
"tokio",
"tokio-rustls",
"tower-service",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"webpki-roots",
"winreg",
]
@ -1541,21 +1633,11 @@ version = "0.21.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
dependencies = [
"log",
"ring 0.17.7",
"rustls-webpki",
"sct",
]
[[package]]
name = "rustls-pemfile"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
"base64",
]
[[package]]
name = "rustls-webpki"
version = "0.101.7"
@ -1602,18 +1684,18 @@ checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
[[package]]
name = "serde"
version = "1.0.195"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.195"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
@ -1622,9 +1704,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.111"
version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
"itoa",
"ryu",
@ -1879,16 +1961,6 @@ dependencies = [
"syn 2.0.48",
]
[[package]]
name = "tokio-rustls"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
dependencies = [
"rustls",
"tokio",
]
[[package]]
name = "tokio-stream"
version = "0.1.14"
@ -1929,9 +2001,9 @@ dependencies = [
[[package]]
name = "toml"
version = "0.7.8"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
dependencies = [
"serde",
"serde_spanned",
@ -1950,9 +2022,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.19.15"
version = "0.22.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
dependencies = [
"indexmap",
"serde",
@ -2241,12 +2313,6 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "webpki-roots"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
[[package]]
name = "winapi"
version = "0.3.9"
@ -2459,9 +2525,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
[[package]]
name = "winnow"
version = "0.5.34"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
dependencies = [
"memchr",
]
@ -2504,9 +2570,9 @@ dependencies = [
[[package]]
name = "x25519-dalek"
version = "2.0.0"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
dependencies = [
"curve25519-dalek",
"rand_core",

View File

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec {
pname = "mycelium";
version = "0.4.2";
version = "0.4.3";
src = fetchFromGitHub {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${version}";
hash = "sha256-VWrWg9UpBSug0cvY/zuzGFI6Y0CRFcrh1Cy4mbYtg9Q=";
hash = "sha256-bA3ci+vqXBCPBaxMvfUdFcqdaZbAw/+r5UbH/as/fnc=";
};
cargoLock = {
@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/threefoldtech/mycelium";
changelog = "https://github.com/threefoldtech/mycelium/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ matthewcroughan ];
maintainers = with maintainers; [ flokli matthewcroughan ];
mainProgram = "mycelium";
};
}

View File

@ -0,0 +1,264 @@
{ lib
, buildNpmPackage
, fetchFromGitHub
, fetchPypi
, fetchpatch2
, nodejs
, python3
, gettext
, nixosTests
, plugins ? [ ]
}:
let
python = python3.override {
packageOverrides = self: super: {
django = super.django_4;
stripe = super.stripe.overridePythonAttrs rec {
version = "7.9.0";
src = fetchPypi {
pname = "stripe";
inherit version;
hash = "sha256-hOXkMINaSwzU/SpXzjhTJp0ds0OREc2mtu11LjSc9KE=";
};
};
pretix-plugin-build = self.callPackage ./plugin-build.nix { };
};
};
pname = "pretix";
version = "2024.2.0";
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix";
rev = "refs/tags/v${version}";
hash = "sha256-emtF5dDXEXN8GIucHbjF+m9Vkg1Jj6nmQdHhBOkXMAs=";
};
npmDeps = buildNpmPackage {
pname = "pretix-node-modules";
inherit version src;
sourceRoot = "${src.name}/src/pretix/static/npm_dir";
npmDepsHash = "sha256-kE13dcTdWZZNHPMcHEiK0a2dEcu3Z3/q815YhaVkLbQ=";
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir $out
cp -R node_modules $out/
runHook postInstall
'';
};
in
python.pkgs.buildPythonApplication rec {
inherit pname version src;
pyproject = true;
patches = [
# Discover pretix.plugin entrypoints during build and add them into
# INSTALLED_APPS, so that their static files are collected.
./plugin-build.patch
(fetchpatch2 {
# Allow customization of cache and log directory
# https://github.com/pretix/pretix/pull/3997
name = "pretix-directory-customization.patch";
url = "https://github.com/pretix/pretix/commit/e151d1d1f08917e547df49da0779b36bb73b7294.patch";
hash = "sha256-lO5eCKSqUaCwSm7rouMTFMwauWl9Tz/Yf0JE/IO+bnI=";
})
];
postPatch = ''
NODE_PREFIX=src/pretix/static.dist/node_prefix
mkdir -p $NODE_PREFIX
cp -R ${npmDeps}/node_modules $NODE_PREFIX/
chmod -R u+w $NODE_PREFIX/
# unused
sed -i "/setuptools-rust/d" pyproject.toml
substituteInPlace pyproject.toml \
--replace-fail phonenumberslite phonenumbers \
--replace-fail psycopg2-binary psycopg2 \
--replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
--replace-fail "bleach==5.0.*" bleach \
--replace-fail "dnspython==2.5.*" dnspython \
--replace-fail "importlib_metadata==7.*" importlib_metadata \
--replace-fail "protobuf==4.25.*" protobuf \
--replace-fail "pycryptodome==3.20.*" pycryptodome \
--replace-fail "pypdf==3.9.*" pypdf \
--replace-fail "python-dateutil==2.8.*" python-dateutil \
--replace-fail "sentry-sdk==1.40.*" sentry-sdk \
--replace-fail "stripe==7.9.*" stripe
'';
build-system = with python.pkgs; [
gettext
nodejs
pythonRelaxDepsHook
setuptools
tomli
];
dependencies = with python.pkgs; [
arabic-reshaper
babel
beautifulsoup4
bleach
celery
chardet
cryptography
css-inline
defusedcsv
dj-static
django
django-bootstrap3
django-compressor
django-countries
django-filter
django-formset-js-improved
django-formtools
django-hierarkey
django-hijack
django-i18nfield
django-libsass
django-localflavor
django-markup
django-oauth-toolkit
django-otp
django-phonenumber-field
django-redis
django-scopes
django-statici18n
djangorestframework
dnspython
drf-ujson2
geoip2
importlib-metadata
isoweek
jsonschema
kombu
libsass
lxml
markdown
mt-940
oauthlib
openpyxl
packaging
paypalrestsdk
paypal-checkout-serversdk
pyjwt
phonenumbers
pillow
pretix-plugin-build
protobuf
psycopg2
pycountry
pycparser
pycryptodome
pypdf
python-bidi
python-dateutil
pytz
pytz-deprecation-shim
pyuca
qrcode
redis
reportlab
requests
sentry-sdk
sepaxml
slimit
static3
stripe
text-unidecode
tlds
tqdm
vat-moss
vobject
webauthn
zeep
] ++ plugins;
optional-dependencies = with python.pkgs; {
memcached = [
pylibmc
];
};
postInstall = ''
mkdir -p $out/bin
cp ./src/manage.py $out/bin/pretix-manage
# Trim packages size
rm -rfv $out/${python.sitePackages}/pretix/static.dist/node_prefix
'';
dontStrip = true; # no binaries
nativeCheckInputs = with python.pkgs; [
pytestCheckHook
pytest-xdist
pytest-mock
pytest-django
pytest-asyncio
pytest-rerunfailures
freezegun
fakeredis
responses
] ++ lib.flatten (lib.attrValues optional-dependencies);
pytestFlagsArray = [
"--reruns" "3"
# tests fail when run before 4:30am
# https://github.com/pretix/pretix/pull/3987
"--deselect=src/tests/base/test_orders.py::PaymentReminderTests::test_sent_days"
"--deselect=src/tests/plugins/sendmail/test_rules.py::test_sendmail_rule_specified_subevent"
];
preCheck = ''
export PYTHONPATH=$(pwd)/src:$PYTHONPATH
export DJANGO_SETTINGS_MODULE=tests.settings
'';
passthru = {
inherit
npmDeps
python
;
plugins = lib.recurseIntoAttrs
(python.pkgs.callPackage ./plugins {
inherit (python.pkgs) callPackage;
}
);
tests = {
inherit (nixosTests) pretix;
};
};
meta = with lib; {
description = "Ticketing software that cares about your eventall the way";
homepage = "https://github.com/pretix/pretix";
license = with licenses; [
agpl3Only
# 3rd party components below src/pretix/static
bsd2
isc
mit
ofl # fontawesome
unlicense
# all other files below src/pretix/static and src/pretix/locale and aux scripts
asl20
];
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,37 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
django,
gettext,
}:
buildPythonPackage rec {
pname = "pretix-plugin-build";
version = "1.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-iLbqcCAbeK4PyLXiebpdE27rt6bOP7eXczIG2bdvvYo=";
};
build-system = [
setuptools
];
dependencies = [
django
gettext
];
doCheck = false; # no tests
meta = with lib; {
description = "";
homepage = "https://github.com/pretix/pretix-plugin-build";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,20 @@
diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py
index c03f56a1a..d1ea73b84 100644
--- a/src/pretix/_build_settings.py
+++ b/src/pretix/_build_settings.py
@@ -24,6 +24,8 @@
This file contains settings that we need at wheel require time. All settings that we only need at runtime are set
in settings.py.
"""
+from importlib_metadata import entry_points
+
from ._base_settings import * # NOQA
ENTROPY = {
@@ -47,3 +49,6 @@ HAS_MEMCACHED = False
HAS_CELERY = False
HAS_GEOIP = False
SENTRY_ENABLED = False
+
+for entry_point in entry_points(group='pretix.plugin'):
+ INSTALLED_APPS.append(entry_point.module) # noqa: F405

View File

@ -0,0 +1,13 @@
{ callPackage
, ...
}:
{
pages = callPackage ./pages.nix { };
passbook = callPackage ./passbook.nix { };
reluctant-stripe = callPackage ./reluctant-stripe.nix { };
stretchgoals = callPackage ./stretchgoals.nix { };
}

View File

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pretix-plugin-build
, setuptools
}:
buildPythonPackage rec {
pname = "pretix-pages";
version = "1.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix-pages";
rev = "v${version}";
hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
};
build-system = [
pretix-plugin-build
setuptools
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_pages"
];
meta = with lib; {
description = "Plugin to add static pages to your pretix event";
homepage = "https://github.com/pretix/pretix-pages";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,33 @@
diff --git a/pretix_passbook/apps.py b/pretix_passbook/apps.py
index e34eee1..a7ad382 100644
--- a/pretix_passbook/apps.py
+++ b/pretix_passbook/apps.py
@@ -22,15 +22,6 @@ class PassbookApp(AppConfig):
def ready(self):
from . import signals # NOQA
- @cached_property
- def compatibility_errors(self):
- import shutil
-
- errs = []
- if not shutil.which("openssl"):
- errs.append("The OpenSSL binary is not installed or not in the PATH.")
- return errs
-
@cached_property
def compatibility_warnings(self):
errs = []
diff --git a/pretix_passbook/forms.py b/pretix_passbook/forms.py
index 2a38604..aec38de 100644
--- a/pretix_passbook/forms.py
+++ b/pretix_passbook/forms.py
@@ -41,7 +41,7 @@ class CertificateFileField(forms.FileField):
return SimpleUploadedFile("cert.pem", content, "text/plain")
openssl_cmd = [
- "openssl",
+ "@openssl@",
"x509",
"-inform",
"DER",

View File

@ -0,0 +1,59 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, substituteAll
# build-system
, pretix-plugin-build
, setuptools
# runtime
, openssl
# dependencies
, googlemaps
, wallet-py3k
}:
buildPythonPackage rec {
pname = "pretix-passbook";
version = "1.13.1";
pyproject = true;
src = fetchFromGitHub {
owner = "pretix";
repo = "pretix-passbook";
rev = "v${version}";
hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
};
patches = [
(substituteAll {
src = ./passbook-openssl.patch;
openssl = lib.getExe openssl;
})
];
build-system = [
pretix-plugin-build
setuptools
];
dependencies = [
googlemaps
wallet-py3k
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_passbook"
];
meta = with lib; {
description = "Support for Apple Wallet/Passbook files in pretix";
homepage = "https://github.com/pretix/pretix-passbook";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pretix-plugin-build
, setuptools
}:
buildPythonPackage {
pname = "pretix-reluctant-stripe";
version = "unstable-2023-08-03";
pyproject = true;
src = fetchFromGitHub {
owner = "metarheinmain";
repo = "pretix-reluctant-stripe";
rev = "ae2d770442553e5fc00815ff4521a8fd2c113fd9";
hash = "sha256-bw9aDMxl4/uar5KHjj+wwkYkaGMRxHWY/c1N75bxu0o=";
};
build-system = [
pretix-plugin-build
setuptools
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_reluctant_stripe"
];
meta = with lib; {
description = "Nudge users to not use Stripe as a payment provider";
homepage = "https://github.com/metarheinmain/pretix-reluctant-stripe";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pretix-plugin-build
, setuptools
}:
buildPythonPackage {
pname = "pretix-avgchart";
version = "unstable-2023-11-27";
pyproject = true;
src = fetchFromGitHub {
owner = "rixx";
repo = "pretix-avgchart";
rev = "219816c7ec523a5c23778523b2616ac0c835cb3a";
hash = "sha256-1V/0PUvStgQeBQ0v6GoofAgyPmWs3RD+v5ekmAO9vFU=";
};
build-system = [
pretix-plugin-build
setuptools
];
doCheck = false; # no tests
pythonImportsCheck = [
"pretix_stretchgoals"
];
meta = with lib; {
description = "Display the average ticket sales price over time";
homepage = "https://github.com/rixx/pretix-avgchart";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
version = "unstable-2024-02-29";
version = "unstable-2024-03-12";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
rev = "a53f2f01039a462bdd7322d1fb315edd95033b6d";
hash = "sha256-DsHNS9pZu3ZWM3teG3pUi0EM+8znmCPTSGuzGmJ4IgU=";
rev = "eff98d616e3541e54ca783c84f598c9e348a76a8";
hash = "sha256-qNHj5WOSca04ceGeRNa60M6cH9/rRHLEF1YX75yYDO8=";
};
nativeBuildInputs = [

View File

@ -6,18 +6,18 @@
, withNativeLibs ? false
}:
rustPlatform.buildRustPackage {
rustPlatform.buildRustPackage rec {
pname = "wl-clipboard-rs";
version = "0.8.0-unstable-2023-11-27";
version = "0.8.1";
src = fetchFromGitHub {
owner = "YaLTeR";
repo = "wl-clipboard-rs";
rev = "be851408e0f91edffdc2f1a76805035847f9f8a9";
hash = "sha256-OfLn7izG1KSUjdd2gO4aaSCDlcaWoFiFmgwwhR1hRsQ=";
rev = "v${version}";
hash = "sha256-tNmpGBg21IuhKEzY15O2MKVpMB+eCjvRVwVUahADuJU=";
};
cargoHash = "sha256-rYFCPyWTUhyrEcoRM8I+iX7IaY/6i1tBVjhs47m3XY8=";
cargoHash = "sha256-0Ix+fF1QO1KU8FIOb8EV4iYXe4S69sZOxCdxYccL8m0=";
cargoBuildFlags = [
"--package=wl-clipboard-rs"
@ -47,14 +47,13 @@ rustPlatform.buildRustPackage {
"--skip=tests::copy::copy_test"
];
meta = {
meta = with lib; {
description = "Command-line copy/paste utilities for Wayland, written in Rust";
homepage = "https://github.com/YaLTeR/wl-clipboard-rs";
# TODO: add `${version}` once we switch to tagged release
changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/master/CHANGELOG.md";
platforms = lib.platforms.linux;
license = with lib.licenses; [ asl20 mit ];
changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/v${version}/CHANGELOG.md";
platforms = platforms.linux;
license = with licenses; [ asl20 mit ];
mainProgram = "wl-clip";
maintainers = with lib.maintainers; [ thiagokokada ];
maintainers = with maintainers; [ thiagokokada donovanglover ];
};
}

View File

@ -3,16 +3,17 @@
, fetchurl
, pkg-config
, gettext
, caja
, gtk3
, glib
, libxml2
, libarchive
, libsecret
, poppler
, mate-desktop
, itstool
, hicolor-icon-theme
, texlive
, mate
, wrapGAppsHook
, enableEpub ? true
, webkitgtk_4_1
@ -28,11 +29,11 @@
stdenv.mkDerivation rec {
pname = "atril";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "wwW51fVxP0Jiau4DggkTA0IrPXGlbd1lkyzNsjx86SY=";
sha256 = "ztRyX26bccTqY2dr/DzDvgnSnboIqnp6uXlk4LQ1UWI=";
};
nativeBuildInputs = [
@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
glib
itstool
@ -49,8 +51,7 @@ stdenv.mkDerivation rec {
libsecret
libxml2
poppler
mate.caja
mate.mate-desktop
mate-desktop
hicolor-icon-theme
texlive.bin.core # for synctex, used by the pdf back-end
]

View File

@ -5,8 +5,8 @@
, pkg-config
, gobject-introspection
, gdk-pixbuf
, caja
, gtk3
, mate
, python3
, dropbox
, mateUpdateScript
@ -17,11 +17,11 @@ let
in
stdenv.mkDerivation rec {
pname = "caja-dropbox";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "16w4r0zjps12lmzwiwpb9qnmbvd0p391q97296sxa8k88b1x14wn";
sha256 = "t0w4qZQlS9PPfLxxK8LsdRagypQqpleFJs29aqYgGWM=";
};
patches = [
@ -44,8 +44,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
python3
];

View File

@ -3,23 +3,24 @@
, fetchurl
, pkg-config
, gettext
, caja
, glib
, gst_all_1
, gtk3
, gupnp
, mate
, imagemagick
, mate-desktop
, wrapGAppsHook
, mateUpdateScript
, glib
, substituteAll
}:
stdenv.mkDerivation rec {
pname = "caja-extensions";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WJwZ4/oQJC1iOaXMuVhVmENqVuvpTS6ypQtZUMzh1SA=";
sha256 = "0phsXgdAg1/icc+9WCPu6vAyka8XYyA/RwCruBCeMXU=";
};
nativeBuildInputs = [
@ -29,31 +30,20 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
glib
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gtk3
gupnp
mate.caja
mate.mate-desktop
imagemagick
];
patches = [
(substituteAll {
src = ./hardcode-gsettings.patch;
caja_gsetttings_path = glib.getSchemaPath mate.caja;
desktop_gsetttings_path = glib.getSchemaPath mate.mate-desktop;
})
mate-desktop
];
postPatch = ''
substituteInPlace open-terminal/caja-open-terminal.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
substituteInPlace sendto/caja-sendto-command.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
substituteInPlace wallpaper/caja-wallpaper-extension.c --subst-var-by \
GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
for f in image-converter/caja-image-{resizer,rotator}.c; do
substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert"
substituteInPlace $f --replace-fail 'argv[0] = "convert"' 'argv[0] = "${imagemagick}/bin/convert"'
done
'';

View File

@ -1,169 +0,0 @@
diff --git a/open-terminal/caja-open-terminal.c b/open-terminal/caja-open-terminal.c
index e14a9bf..691afab 100644
--- a/open-terminal/caja-open-terminal.c
+++ b/open-terminal/caja-open-terminal.c
@@ -135,8 +135,18 @@ desktop_opens_home_dir (void)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (COT_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ COT_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_boolean (settings, COT_DESKTOP_KEY);
g_object_unref (settings);
return result;
@@ -147,8 +157,18 @@ set_desktop_opens_home_dir (gboolean val)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (COT_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ COT_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_set_boolean (settings, COT_DESKTOP_KEY, val);
g_object_unref (settings);
return result;
@@ -159,8 +179,18 @@ desktop_is_home_dir (void)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (CAJA_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@caja_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ CAJA_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_boolean (settings, CAJA_DESKTOP_KEY);
g_object_unref (settings);
return result;
@@ -171,8 +201,18 @@ default_terminal_application (void)
{
gchar *result;
GSettings* settings;
-
- settings = g_settings_new (TERM_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ TERM_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_get_string (settings, TERM_EXEC_KEY);
g_object_unref (settings);
@@ -189,8 +229,18 @@ set_default_terminal_application (const gchar* exec)
{
gboolean result;
GSettings* settings;
-
- settings = g_settings_new (TERM_SCHEMA);
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
+
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ TERM_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
result = g_settings_set_string (settings, TERM_EXEC_KEY, exec);
g_object_unref (settings);
return result;
diff --git a/sendto/caja-sendto-command.c b/sendto/caja-sendto-command.c
index 8181db6..579dc81 100644
--- a/sendto/caja-sendto-command.c
+++ b/sendto/caja-sendto-command.c
@@ -801,6 +801,8 @@ caja_sendto_init (void)
int main (int argc, char **argv)
{
GOptionContext *context;
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
GError *error = NULL;
#ifdef ENABLE_NLS
@@ -818,7 +820,15 @@ int main (int argc, char **argv)
return 1;
}
- settings = g_settings_new ("org.mate.Caja.Sendto");
+ schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ "org.mate.Caja.Sendto",
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
caja_sendto_init ();
if (caja_sendto_plugin_init () == FALSE) {
GtkWidget *error_dialog;
diff --git a/wallpaper/caja-wallpaper-extension.c b/wallpaper/caja-wallpaper-extension.c
index 3119e9f..4f80c88 100644
--- a/wallpaper/caja-wallpaper-extension.c
+++ b/wallpaper/caja-wallpaper-extension.c
@@ -47,6 +47,8 @@ set_wallpaper_callback (CajaMenuItem *item,
{
GList *files;
GSettings *settings;
+ GSettingsSchemaSource* schema_source;
+ GSettingsSchema* schema;
CajaFileInfo *file;
gchar *uri;
gchar *filename;
@@ -57,7 +59,15 @@ set_wallpaper_callback (CajaMenuItem *item,
uri = caja_file_info_get_uri (file);
filename = g_filename_from_uri(uri, NULL, NULL);
- settings = g_settings_new (WP_SCHEMA);
+ schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
+ g_settings_schema_source_get_default(),
+ TRUE, NULL);
+ schema = g_settings_schema_source_lookup(schema_source,
+ WP_SCHEMA,
+ FALSE);
+ settings = g_settings_new_full(schema, NULL, NULL);
+ g_settings_schema_source_unref(schema_source);
+ g_settings_schema_unref(schema);
g_settings_set_string (settings, WP_FILE_KEY, filename);

View File

@ -1,29 +0,0 @@
{ stdenv
, lib
, makeWrapper
, caja-extensions
, caja
, extensions ? [ caja-extensions ]
, mateUpdateScript
}:
stdenv.mkDerivation {
pname = "${caja.pname}-with-extensions";
version = caja.version;
dontUnpack = true;
nativeBuildInputs = [
makeWrapper
];
inherit caja;
installPhase = ''
mkdir -p $out/bin
makeWrapper $caja/bin/caja $out/bin/caja \
--set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions}
'';
inherit (caja.meta);
}

View File

@ -3,24 +3,26 @@
, fetchurl
, pkg-config
, gettext
, gtk-layer-shell
, gtk3
, libnotify
, libxml2
, libexif
, exempi
, mate
, mate-desktop
, hicolor-icon-theme
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "caja";
version = "1.26.3";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "gT7fCKNvmV7DwVBBMf+K+70CH24VhmQ/5dztXnPleQ0=";
sha256 = "HjAUzhRVgX7C73TQnv37aDXYo3LtmhbvtZGe97ghlXo=";
};
nativeBuildInputs = [
@ -30,13 +32,15 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gtk-layer-shell
gtk3
libnotify
libxml2
libexif
exempi
mate.mate-desktop
mate-desktop
hicolor-icon-theme
wayland
];
configureFlags = [ "--disable-update-mimedb" ];

View File

@ -0,0 +1,61 @@
{ stdenv
, lib
, glib
, wrapGAppsHook
, xorg
, caja
, cajaExtensions
, extensions ? [ ]
, useDefaultExtensions ? true
}:
let
selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions);
in
stdenv.mkDerivation {
pname = "${caja.pname}-with-extensions";
version = caja.version;
src = null;
nativeBuildInputs = [
glib
wrapGAppsHook
];
buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions
++ [ caja ] ++ caja.buildInputs;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
runHook preInstall
mkdir -p $out
${xorg.lndir}/bin/lndir -silent ${caja} $out
dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service"
rm -f $out/share/applications/* "$out/$dbus_service_path"
for file in ${caja}/share/applications/*; do
substitute "$file" "$out/share/applications/$(basename $file)" \
--replace-fail "${caja}" "$out"
done
substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \
--replace-fail "${caja}" "$out"
runHook postInstall
'';
preFixup = lib.optionalString (selectedExtensions != [ ]) ''
gappsWrapperArgs+=(
--set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions}
)
'';
inherit (caja.meta);
}

View File

@ -14,7 +14,7 @@ let
caja = callPackage ./caja { };
caja-dropbox = callPackage ./caja-dropbox { };
caja-extensions = callPackage ./caja-extensions { };
caja-with-extensions = callPackage ./caja-with-extensions { };
caja-with-extensions = callPackage ./caja/with-extensions.nix { };
engrampa = callPackage ./engrampa { };
eom = callPackage ./eom { };
libmatekbd = callPackage ./libmatekbd { };
@ -27,6 +27,7 @@ let
mate-common = callPackage ./mate-common { };
mate-control-center = callPackage ./mate-control-center { };
mate-desktop = callPackage ./mate-desktop { };
mate-gsettings-overrides = callPackage ./mate-gsettings-overrides { };
mate-icon-theme = callPackage ./mate-icon-theme { };
mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { };
mate-indicator-applet = callPackage ./mate-indicator-applet { };
@ -35,6 +36,7 @@ let
mate-netbook = callPackage ./mate-netbook { };
mate-notification-daemon = callPackage ./mate-notification-daemon { };
mate-panel = callPackage ./mate-panel { };
mate-panel-with-applets = callPackage ./mate-panel/with-applets.nix { };
mate-polkit = callPackage ./mate-polkit { };
mate-power-manager = callPackage ./mate-power-manager { };
mate-sensors-applet = callPackage ./mate-sensors-applet { };
@ -49,12 +51,13 @@ let
mate-user-guide = callPackage ./mate-user-guide { };
mate-user-share = callPackage ./mate-user-share { };
mate-utils = callPackage ./mate-utils { };
mate-wayland-session = callPackage ./mate-wayland-session { };
mozo = callPackage ./mozo { };
pluma = callPackage ./pluma { inherit (pkgs.gnome) adwaita-icon-theme; };
pluma = callPackage ./pluma { };
python-caja = callPackage ./python-caja { };
# Caja and mate-panel are managed in NixOS module.
basePackages = [
caja
libmatekbd
libmatemixer
libmateweather
@ -65,7 +68,6 @@ let
mate-icon-theme
mate-menus
mate-notification-daemon
mate-panel
mate-polkit
mate-session-manager
mate-settings-daemon
@ -75,7 +77,7 @@ let
extraPackages = [
atril
caja-extensions
caja-extensions # for caja-sendto
engrampa
eom
mate-applets
@ -86,7 +88,6 @@ let
mate-netbook
mate-power-manager
mate-screensaver
mate-sensors-applet
mate-system-monitor
mate-terminal
mate-user-guide
@ -96,6 +97,20 @@ let
pluma
];
cajaExtensions = [
caja-extensions
];
panelApplets = [
mate-applets
mate-indicator-applet
mate-netbook
mate-notification-daemon
mate-media
mate-power-manager
mate-sensors-applet
mate-utils
];
};
in lib.makeScope pkgs.newScope packages

View File

@ -5,22 +5,24 @@
, gettext
, itstool
, libxml2
, caja
, gtk3
, mate
, hicolor-icon-theme
, json-glib
, mate-desktop
, wrapGAppsHook
, mateUpdateScript
# can be defaulted to true once engrampa builds with meson (version > 1.27.0)
# can be defaulted to true once switch to meson
, withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, file
}:
stdenv.mkDerivation rec {
pname = "engrampa";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "cx9cR7UfNvyMiWUrbnfbT7K0Zjid6ZkMmFUpo9T/iEw=";
sha256 = "nFxMm8+LCO6qjydVONJLTJVQidWK7AMx6JwCuE2FOGo=";
};
nativeBuildInputs = [
@ -32,10 +34,11 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
hicolor-icon-theme
mate.mate-desktop
json-glib
mate-desktop
] ++ lib.optionals withMagic [
file
];

View File

@ -13,7 +13,7 @@
, libpeas
, shared-mime-info
, gtk3
, mate
, mate-desktop
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "eom";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "tSUSKUlPfmxi4J+yEeQzCN9PB0xVG6CiM9ws1oZLmWA=";
sha256 = "mgHKsplaGoxyWMhl6uXxgu1HMMRGcq/cOgfkI+3VOrw=";
};
nativeBuildInputs = [
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
shared-mime-info
gtk3
libpeas
mate.mate-desktop
mate-desktop
hicolor-icon-theme
];

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "libmatekbd";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Y5ONkSUpRe7qiP2DdNEjG9g9As2WXGu6F8GF7bOXvO0=";
sha256 = "XS5YSDwrI9M1A9JMiPi5CijMAYnX5AAbPic6YE9v6A4=";
};
nativeBuildInputs = [

View File

@ -7,6 +7,7 @@
, glib
, alsaSupport ? stdenv.isLinux
, alsa-lib
, udev
, pulseaudioSupport ? config.pulseaudio or true
, libpulseaudio
, ossSupport ? false
@ -15,11 +16,11 @@
stdenv.mkDerivation rec {
pname = "libmatemixer";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "SWD1mmufr4KgHUpLjMJgtIaN2ZHv1Kmxe10KFaHToa4=";
sha256 = "XXO5Ijl/YGiOPJUw61MrzkbDDiYtsbU1L6MsQNhwoMc=";
};
nativeBuildInputs = [
@ -29,9 +30,12 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
]
++ lib.optional alsaSupport alsa-lib
++ lib.optional pulseaudioSupport libpulseaudio;
] ++ lib.optionals alsaSupport [
alsa-lib
udev
] ++ lib.optionals pulseaudioSupport [
libpulseaudio
];
configureFlags = lib.optional ossSupport "--enable-oss";

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "libmateweather";
version = "1.26.3";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "XmzSRBiEfLRazxfaW0NacTHLTsKs/2joKPNCob8T70o=";
sha256 = "VUNz3rWzk7nYSydd0spmyaSi0ObskgRPq4qlPjAy0rU=";
};
strictDeps = true;

View File

@ -14,6 +14,7 @@
, gnome
, glib
, gtk3
, mate-desktop
, mate-settings-daemon
, wrapGAppsHook
, mateUpdateScript
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "marco";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "EvGiVP4QcvAwSIRxHgiaVoJ4CgEVk0Au043muUgOB6M=";
sha256 = "JJbl5A7pgM1oSUk6w+D4/Q3si4HGdNqNm6GaV38KwuE=";
};
nativeBuildInputs = [
@ -45,9 +46,15 @@ stdenv.mkDerivation rec {
libstartup_notification
gtk3
gnome.zenity
mate-desktop
mate-settings-daemon
];
postPatch = ''
substituteInPlace src/core/util.c \
--replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${gnome.zenity}/bin/zenity"'
'';
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -7,7 +7,7 @@
, dbus-glib
, glib
, gtk3
, gtksourceview3
, gtksourceview4
, gucharmap
, libmateweather
, libnl
@ -20,7 +20,6 @@
, polkit
, upower
, wirelesstools
, mate
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -28,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "mate-applets";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Orj2HbN23DM85MGHIsY6B/qz6OEnK34OCXrUWXsXwsI=";
sha256 = "G2vva9XTJvudyCj/kQ5LG5KUtGYMMR3ByQMQ/Zw1ZoY=";
};
nativeBuildInputs = [
@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
buildInputs = [
dbus-glib
gtk3
gtksourceview3
gtksourceview4
gucharmap
hicolor-icon-theme
libgtop
@ -61,7 +60,7 @@ stdenv.mkDerivation rec {
wirelesstools
];
configureFlags = [ "--enable-suid=no" ];
configureFlags = [ "--enable-suid=no" "--enable-in-process" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";

View File

@ -1,31 +1,21 @@
{ lib
, stdenv
, stdenvNoCC
, fetchurl
, fetchpatch
, meson
, ninja
, gettext
, mateUpdateScript
}:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "mate-backgrounds";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0379hngy3ap1r5kmqvmzs9r710k2c9nal2ps3hq765df4ir15j8d";
sha256 = "UNGv0CSGvQesIqWmtu+jAxFI8NSKguSI2QmtVwA6aUM=";
};
patches = [
# Fix build with meson 0.61, can be removed on next update.
# https://github.com/mate-desktop/mate-backgrounds/pull/39
(fetchpatch {
url = "https://github.com/mate-desktop/mate-backgrounds/commit/0096e237d420e6247a75a1c6940a818e309ac2a7.patch";
sha256 = "HEF8VWunFO+NCG18fZA7lbE2l8pc6Z3jcD+rSZ1Jsqg=";
})
];
nativeBuildInputs = [
gettext
meson

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "mate-calc";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0mddfh9ixhh60nfgx5kcprcl9liavwqyina11q3pnpfs3n02df3y";
sha256 = "gEsSXR4oZLHnSvgW2psquLGUcrmvl0Q37nNVraXmKPU=";
};
nativeBuildInputs = [

View File

@ -1,16 +1,16 @@
{ lib
, stdenv
, stdenvNoCC
, fetchurl
, mateUpdateScript
}:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "mate-common";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "014wpfqpqmfkzv81paap4fz15mj1gsyvaxlrfqsp9a3yxw4f7jaf";
sha256 = "QrfCzuJo9x1+HBrU9pvNoOzWVXipZyIYfGt2N40mugo=";
};
enableParallelBuilding = true;

View File

@ -5,17 +5,27 @@
, gettext
, itstool
, libxml2
, accountsservice
, caja
, dbus-glib
, libxklavier
, libcanberra-gtk3
, libgtop
, libmatekbd
, librsvg
, libappindicator-gtk3
, libayatana-appindicator
, glib
, desktop-file-utils
, dconf
, gtk3
, polkit
, mate
, marco
, mate-desktop
, mate-menus
, mate-panel
, mate-settings-daemon
, udisks2
, systemd
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -23,11 +33,11 @@
stdenv.mkDerivation rec {
pname = "mate-control-center";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "4F9JKjtleqVvxY989xvIyA344lNR/eTbT1I6uNtbVgg=";
sha256 = "6/LHBP1SSNwvmDb/KQKIae8p1QVJB8xhVzS2ODp5FLw=";
};
nativeBuildInputs = [
@ -39,32 +49,41 @@ stdenv.mkDerivation rec {
];
buildInputs = [
accountsservice
libxml2
dbus-glib
libxklavier
libcanberra-gtk3
libgtop
libmatekbd
librsvg
libappindicator-gtk3
libayatana-appindicator
gtk3
dconf
polkit
hicolor-icon-theme
mate.mate-desktop
mate.libmatekbd
mate.mate-menus
mate.mate-panel # for org.mate.panel schema, see m-c-c#678
mate.marco
mate.mate-settings-daemon
marco
mate-desktop
mate-menus
mate-panel # for org.mate.panel schema, see m-c-c#678
mate-settings-daemon
udisks2
systemd
];
postPatch = ''
substituteInPlace capplets/system-info/mate-system-info.c \
--replace-fail "/usr/bin/mate-about" "${mate-desktop}/bin/mate-about"
'';
configureFlags = [ "--disable-update-mimedb" ];
preFixup = ''
gappsWrapperArgs+=(
# WM keyboard shortcuts
--prefix XDG_DATA_DIRS : "${mate.marco}/share"
--prefix XDG_DATA_DIRS : "${marco}/share"
# Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.caja}"
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath caja}"
)
'';

View File

@ -4,7 +4,7 @@
, pkg-config
, gettext
, isocodes
, gnome
, libstartup_notification
, gtk3
, dconf
, wrapGAppsHook
@ -13,11 +13,13 @@
stdenv.mkDerivation rec {
pname = "mate-desktop";
version = "1.26.2";
version = "1.28.2";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "XtA/fFLXt+zknKHnNqp2au/rXGOeqz5oxwkMUw0CN2o=";
sha256 = "MrtLeSAUs5HB4biunBioK01EdlCYS0y6fSjpVWSWSqI=";
};
nativeBuildInputs = [
@ -28,10 +30,14 @@ stdenv.mkDerivation rec {
buildInputs = [
dconf
gtk3
isocodes
];
propagatedBuildInputs = [
gtk3
libstartup_notification
];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -0,0 +1,24 @@
{ lib
, runCommand
, gsettings-desktop-schemas
, mate-wayland-session
, glib
}:
let
gsettingsOverridePackages = [
gsettings-desktop-schemas
mate-wayland-session
];
in
runCommand "mate-gsettings-overrides" { preferLocalBuild = true; } ''
data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
schema_dir="$data_dir/glib-2.0/schemas"
mkdir -p "$schema_dir"
${lib.concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages}
chmod -R a+w "$data_dir"
${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
''

View File

@ -12,11 +12,11 @@
stdenv.mkDerivation rec {
pname = "mate-icon-theme";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0nha555fhhn0j5wmzmdc7bh93ckzwwdm8mwmzma5whkzslv09xa1";
sha256 = "lNYHkGDKXfdFQpId5O6ji30C0HVhyRk1bZXeh2+abTo=";
};
nativeBuildInputs = [

View File

@ -5,7 +5,7 @@
, gettext
, gtk3
, libayatana-indicator
, mate
, mate-panel
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
@ -13,17 +13,17 @@
stdenv.mkDerivation rec {
pname = "mate-indicator-applet";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "144fh9f3lag2cqnmb6zxlh8k83ya8kha6rmd7r8gg3z5w3nzpyz4";
sha256 = "zrPXA5cKPlWNfNffCxwhceOvdSolSVrO0uIiwemtSc0=";
};
postPatch = ''
# Find installed Unity & Ayatana (new-style) indicators
substituteInPlace src/applet-main.c \
--replace '/usr/share' '/run/current-system/sw/share'
--replace-fail '/usr/share' '/run/current-system/sw/share'
'';
nativeBuildInputs = [
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libayatana-indicator
mate.mate-panel
mate-panel
hicolor-icon-theme
];

View File

@ -4,32 +4,27 @@
, pkg-config
, gettext
, libtool
, libxml2
, libcanberra-gtk3
, gtk-layer-shell
, gtk3
, mate
, libcanberra-gtk3
, libmatemixer
, libxml2
, mate-desktop
, mate-panel
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-media";
version = "1.26.2";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "r0ZjlXTMOIUTCJyhC7FB/8Pm0awz5zDkII21dZZChQ8=";
sha256 = "vNwQLiL2P1XmMWbVxwjpHBE1cOajCodDRaiGCeg6mRI=";
};
buildInputs = [
libxml2
libcanberra-gtk3
gtk3
mate.libmatemixer
mate.mate-panel
mate.mate-desktop
];
nativeBuildInputs = [
pkg-config
gettext
@ -37,6 +32,19 @@ stdenv.mkDerivation rec {
wrapGAppsHook
];
buildInputs = [
gtk-layer-shell
gtk3
libcanberra-gtk3
libmatemixer
libxml2
mate-desktop
mate-panel
wayland
];
configureFlags = [ "--enable-in-process" ];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "mate-menus";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "RY1ZmuW2UMfSF0D5/pVMSoOL5F7WKrQOIOMG+vXdHYw=";
sha256 = "z0DHXH1vCq0dSWmCj8YgJcYiK8aoTwu51urX5FlwUI0=";
};
nativeBuildInputs = [

View File

@ -7,6 +7,7 @@
, libcanberra-gtk3
, libnotify
, libwnck
, gtk-layer-shell
, gtk3
, libxml2
, mate-desktop
@ -17,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "mate-notification-daemon";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Dq6SlsSKPHH9VvGTGWH5LSnkWgRf5fGgX4PHQAwxmSQ=";
sha256 = "pDEDSOrYZsvLm0xGP00mXMapahp4KpQRoIsjvWXbsuA=";
};
nativeBuildInputs = [
@ -35,11 +36,14 @@ stdenv.mkDerivation rec {
libcanberra-gtk3
libnotify
libwnck
gtk-layer-shell
gtk3
mate-desktop
mate-panel
];
configureFlags = [ "--enable-in-process" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -5,25 +5,31 @@
, gettext
, itstool
, glib
, gnome
, gtk-layer-shell
, gtk3
, libmateweather
, libwnck
, librsvg
, libxml2
, dconf
, gtk3
, mate
, mate-desktop
, mate-menus
, hicolor-icon-theme
, wayland
, gobject-introspection
, wrapGAppsHook
, marco
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-panel";
version = "1.26.4";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "IHD51RVlfl3c2g2H73KXE9upy3sq0GIjvWdKIcxrPa8=";
sha256 = "s70EoJTQ61vX3DOA728MSdmp1SCXM9fM17RtBmogjLo=";
};
nativeBuildInputs = [
@ -35,18 +41,29 @@ stdenv.mkDerivation rec {
];
buildInputs = [
glib
gtk-layer-shell
libmateweather
libwnck
librsvg
libxml2
gtk3
dconf
mate.libmateweather
mate.mate-desktop
mate.mate-menus
mate-desktop
mate-menus
hicolor-icon-theme
wayland
];
propagatedBuildInputs = [
glib
gtk3
# See https://github.com/mate-desktop/mate-panel/issues/1402
# This is propagated for mate_panel_applet_settings_new and applet's wrapGAppsHook
gnome.dconf-editor
];
# Needed for Wayland support.
configureFlags = [ "--with-in-process-applets=all" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
makeFlags = [
@ -57,7 +74,7 @@ stdenv.mkDerivation rec {
preFixup = ''
gappsWrapperArgs+=(
# Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.marco}"
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
)
'';

View File

@ -0,0 +1,61 @@
{ stdenv
, lib
, glib
, wrapGAppsHook
, xorg
, marco
, mate-panel
, panelApplets
, applets ? [ ]
, useDefaultApplets ? true
}:
let
selectedApplets = applets ++ (lib.optionals useDefaultApplets panelApplets);
in
stdenv.mkDerivation {
pname = "${mate-panel.pname}-with-applets";
version = mate-panel.version;
src = null;
paths = [ mate-panel ] ++ selectedApplets;
passAsFile = [ "paths" ];
nativeBuildInputs = [
glib
wrapGAppsHook
];
buildInputs = lib.forEach selectedApplets (x: x.buildInputs) ++ selectedApplets
++ [ mate-panel ] ++ mate-panel.buildInputs ++ mate-panel.propagatedBuildInputs;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
runHook preInstall
mkdir -p $out
for i in $(cat $pathsPath); do
${xorg.lndir}/bin/lndir -silent $i $out
done
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
--set MATE_PANEL_APPLETS_DIR "$out/share/mate-panel/applets"
--set MATE_PANEL_EXTRA_MODULES "$out/lib/mate-panel/applets"
# Workspace switcher settings
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
)
'';
inherit (mate-panel.meta);
}

View File

@ -5,19 +5,18 @@
, gettext
, gtk3
, gobject-introspection
, libappindicator-gtk3
, libindicator-gtk3
, libayatana-appindicator
, polkit
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-polkit";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "9bewtd/FMwLEBAMkWZjrkSGvP1DnFmagmrc7slRSA1c=";
sha256 = "NQod0KjtaiycGDz/KiHzlCmelo/MauLoyTxWXa5gSug=";
};
nativeBuildInputs = [
@ -28,8 +27,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libappindicator-gtk3
libindicator-gtk3
libayatana-appindicator
polkit
];

View File

@ -6,6 +6,7 @@
, glib
, itstool
, libxml2
, mate-desktop
, mate-panel
, libnotify
, libcanberra-gtk3
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-power-manager";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "IM2dIu0Eur+Yu1DnGg7F14qKR2KHcjJ4+H2nbKv7EEI=";
sha256 = "jr3LdLYH6Ggza6moFGze+Pl7zlNcKwyzv2UMWPce7iE=";
};
nativeBuildInputs = [
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
dbus-glib
upower
polkit
mate-desktop
mate-panel
];

View File

@ -8,20 +8,22 @@
, libXScrnSaver
, libnotify
, libxml2
, mate-desktop
, mate-menus
, mate-panel
, pam
, systemd
, mate
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-screensaver";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "2pcAziQUW9VdJJJ+7P5tMdClLq6G5WOyxlBUs1al/34=";
sha256 = "ag8kqPhKL5XhARSrU+Y/1KymiKVf3FA+1lDgpBDj6nA=";
};
nativeBuildInputs = [
@ -36,11 +38,11 @@ stdenv.mkDerivation rec {
dbus-glib
libXScrnSaver
libnotify
mate-desktop
mate-menus
mate-panel
pam
systemd
mate.mate-desktop
mate.mate-menus
mate.mate-panel
];
configureFlags = [ "--without-console-kit" ];

View File

@ -10,29 +10,26 @@
, libatasmart
, libnotify
, lm_sensors
, mate
, mate-panel
, hicolor-icon-theme
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-sensors-applet";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0s19r30fsicqvvcnz57lv158pi35w9zn5i7h5hz59224y0zpqhsc";
sha256 = "1GU2ZoKvj+uGGCg8l4notw22/RfKj6lQrG9xAQIxWoE=";
};
nativeBuildInputs = [
pkg-config
gettext
itstool
wrapGAppsHook
];
# maybe add nvidia-settings later on
buildInputs = [
gtk3
libxml2
@ -40,10 +37,12 @@ stdenv.mkDerivation rec {
libatasmart
libnotify
lm_sensors
mate.mate-panel
mate-panel
hicolor-icon-theme
];
configureFlags = [ "--enable-in-process" ];
enableParallelBuilding = true;
passthru.updateScript = mateUpdateScript { inherit pname; };

View File

@ -8,11 +8,13 @@
, systemd
, libSM
, libXtst
, glib
, gtk3
, libepoxy
, polkit
, hicolor-icon-theme
, mate
, mate-desktop
, mate-screensaver
, wrapGAppsHook
, fetchpatch
, mateUpdateScript
@ -20,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-session-manager";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "W4x9ZEH9nCk8hjiCq2enSTxTzfZOqyfAlFdfQj69Qng=";
sha256 = "0yzkWVuh2mUpB3cgPyvIK9lzshSjoECAoe9caJkKLXs=";
};
patches = [
@ -48,7 +50,8 @@ stdenv.mkDerivation rec {
libSM
libXtst
gtk3
mate.mate-desktop
mate-desktop
mate-screensaver # for gsm_manager_init
hicolor-icon-theme
libepoxy
polkit
@ -56,9 +59,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
postFixup = ''
substituteInPlace $out/share/xsessions/mate.desktop \
--replace "Exec=mate-session" "Exec=$out/bin/mate-session"
--replace-fail "Exec=mate-session" "Exec=$out/bin/mate-session"
'';
passthru.providedSessions = [ "mate" ];

View File

@ -4,15 +4,16 @@
, pkg-config
, gettext
, glib
, dbus-glib
, libxklavier
, libcanberra-gtk3
, libnotify
, libmatekbd
, libmatemixer
, nss
, polkit
, dconf
, gtk3
, mate
, mate-desktop
, pulseaudioSupport ? stdenv.config.pulseaudio or true
, libpulseaudio
, wrapGAppsHook
@ -21,11 +22,11 @@
stdenv.mkDerivation rec {
pname = "mate-settings-daemon";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "aX6mW1QpIcK3ZhRSktJo0wCcwtqDFtKnhphpBV5LGFk=";
sha256 = "TtfNraqkyZ7//AKCuEEXA7t24HLEHEtXmJ+MW0BhGjo=";
};
nativeBuildInputs = [
@ -35,17 +36,16 @@ stdenv.mkDerivation rec {
];
buildInputs = [
dbus-glib
libxklavier
libcanberra-gtk3
libnotify
libmatekbd
libmatemixer
nss
polkit
gtk3
dconf
mate.mate-desktop
mate.libmatekbd
mate.libmatemixer
mate-desktop
] ++ lib.optional pulseaudioSupport libpulseaudio;
configureFlags = lib.optional pulseaudioSupport "--enable-pulse";

View File

@ -7,21 +7,21 @@
, gtkmm3
, libxml2
, libgtop
, libwnck
, librsvg
, polkit
, systemd
, wrapGAppsHook
, mate-desktop
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-system-monitor";
version = "1.26.3";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WFthNBX3bucDt7XlK1WWKUKVB+A8kwVKSq3Pb5xlIkk=";
sha256 = "QtZj1rkPtTYevBP2VHmD1vHirHXcKuTxysbqYymWWiU=";
};
nativeBuildInputs = [
@ -35,13 +35,16 @@ stdenv.mkDerivation rec {
gtkmm3
libxml2
libgtop
libwnck
librsvg
polkit
systemd
];
configureFlags = [ "--enable-systemd" ];
postPatch = ''
# This package does not provide mate-version.xml.
substituteInPlace src/sysinfo.cpp \
--replace-fail 'DATADIR "/mate-about/mate-version.xml"' '"${mate-desktop}/share/mate-about/mate-version.xml"'
'';
enableParallelBuilding = true;

View File

@ -16,11 +16,11 @@
stdenv.mkDerivation rec {
pname = "mate-terminal";
version = "1.26.1";
version = "1.28.1";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "fBMCBvC0eIfoySdOc/jBn65RETRXKGmnwjERt4nh4dA=";
sha256 = "8TXrGp4q4ieY7LLcGRT9tM/XdOa7ZcAVK+N8xslGnpI=";
};
nativeBuildInputs = [

View File

@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "mate-user-guide";
version = "1.26.2";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "TTK241ZKyPTqqysVSC33+XaXUN+IEavtg30KLn7jgIs=";
sha256 = "U+8IFPUGVEYU7WGre+UiHMjTqfFPfvlpjJD+fkYBS54=";
};
nativeBuildInputs = [
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace mate-user-guide.desktop.in.in \
--replace "Exec=yelp" "Exec=${yelp}/bin/yelp"
--replace-fail "Exec=yelp" "Exec=${yelp}/bin/yelp"
'';
enableParallelBuilding = true;

View File

@ -5,6 +5,7 @@
, gettext
, itstool
, gtk3
, caja
, dbus-glib
, libnotify
, libxml2
@ -21,11 +22,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mate-user-share";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1wh0b4qw5wzpl7sg44lpwjb9r6xllch3xfz8c2cchl8rcgbh2kph";
sha256 = "iYVgmZkXllE0jkl+8I81C4YIG5expKcwQHfurlc5rjg=";
};
nativeBuildInputs = [
@ -38,10 +39,10 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
caja
dbus-glib
libnotify
libcanberra-gtk3
mate.caja
hicolor-icon-theme
# Should mod_dnssd and apacheHttpd be runtime dependencies?
# In gnome-user-share they are not.

View File

@ -1,43 +1,34 @@
{ lib
, stdenv
, fetchurl
, fetchpatch
, pkg-config
, gettext
, itstool
, glib
, gtk-layer-shell
, gtk3
, libxml2
, libgtop
, libcanberra-gtk3
, inkscape
, udisks2
, mate
, mate-desktop
, mate-panel
, hicolor-icon-theme
, wayland
, wrapGAppsHook
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "mate-utils";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "L1NHWxoJkd1ak9ndpY/KTkFvJZJTWG2UpbEQjxI3BiA=";
sha256 = "WESdeg0dkA/wO3jKn36Ywh6X9H/Ca+5/8cYYNPIviNM=";
};
patches = [
# Hopefully helps "libxml2.treeError: xmlSetProp() failed"
# This patch is not part of upstream yet.
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919058
# https://github.com/mate-desktop/mate-utils/issues/210
(fetchpatch {
url = "https://salsa.debian.org/debian-mate-team/mate-utils/-/raw/2b43d78f3fdbf0aa50716b62bcada2ef015957c6/debian/patches/1001_fix-gsearchtool-pt-help-translation.patch";
sha256 = "SZVpdup/bNv+3hEGQ0L13mgXyNm+wRcL53t9/Oi24wA=";
})
];
nativeBuildInputs = [
pkg-config
gettext
@ -47,15 +38,28 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gtk-layer-shell
gtk3
libgtop
libcanberra-gtk3
libxml2
udisks2
mate.mate-panel
mate-desktop
mate-panel
hicolor-icon-theme
wayland
];
postPatch = ''
# Workaround undefined version requirements
# https://github.com/mate-desktop/mate-utils/issues/361
substituteInPlace configure \
--replace-fail '>= $GTK_LAYER_SHELL_REQUIRED_VERSION' "" \
--replace-fail '>= $GDK_WAYLAND_REQUIRED_VERSION' ""
'';
configureFlags = [ "--enable-wayland" ];
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@ -0,0 +1,58 @@
{ stdenvNoCC
, lib
, fetchFromGitHub
, meson
, ninja
, glib
, mate-polkit
, mate-notification-daemon
, wayfire
, wayfirePlugins
, gitUpdater
}:
stdenvNoCC.mkDerivation rec {
pname = "mate-wayland-session";
version = "1.28.3";
src = fetchFromGitHub {
owner = "mate-desktop";
repo = "mate-wayland-session";
rev = "v${version}";
hash = "sha256-sUAq2BylsvjYn8Lt+nm4yIfVhzIEefxKZYnhJnuxjs0=";
};
nativeBuildInputs = [
meson
ninja
glib
];
postPatch = ''
substituteInPlace session/mate-wayland-components.sh \
--replace-fail "polkit-mate-authentication-agent-1" "${mate-polkit}/libexec/polkit-mate-authentication-agent-1" \
--replace-fail "mate-notification-daemon" "${mate-notification-daemon}/libexec/mate-notification-daemon" \
--replace-fail "cat /usr/bin/blueman-applet" "command -v blueman-applet" \
--replace-fail "cat /usr/bin/gnome-keyring-daemon" "command -v gnome-keyring-daemon"
# Ensure wayfire.ini is writable, as this script tries to modify it later.
substituteInPlace session/mate-wayland.sh \
--replace-fail "cp /usr/share/doc/wayfire/examples/wayfire.ini" "cp --no-preserve=mode,ownership ${wayfire.src}/wayfire.ini" \
--replace-fail "/usr/share/doc/wayfire/examples/wayfire.ini" "${wayfire.src}/wayfire.ini" \
--replace-fail "/usr/lib/x86_64-linux-gnu/wayfire/libfiredecor.so" "${wayfirePlugins.firedecor}/lib/wayfire/libfiredecor.so" \
--replace-fail "/usr/share/doc/firedecor/firedecor.config" "$out/share/doc/firedecor/firedecor.config"
'';
passthru = {
providedSessions = [ "MATE" ];
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = with lib; {
description = "Wayland session using Wayfire for the MATE desktop";
homepage = "https://mate-desktop.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = teams.mate.members;
};
}

View File

@ -3,7 +3,7 @@
, fetchurl
, pkg-config
, gettext
, mate
, mate-menus
, gtk3
, glib
, wrapGAppsHook
@ -13,14 +13,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "mozo";
version = "1.26.2";
version = "1.28.0";
format = "other";
doCheck = false;
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "RyxILg7y+xYp5h4X2qoaSH9kOSsCmEncmkCCr7OLye4=";
sha256 = "/piYT/1qqMNtBZS879ugPeObQtQeAHJRaAOE8870SSQ=";
};
nativeBuildInputs = [
@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
];
propagatedBuildInputs = [
mate.mate-menus
mate-menus
python3.pkgs.pygobject3
];

View File

@ -9,7 +9,6 @@
, enchant
, libxml2
, python3
, adwaita-icon-theme
, gtksourceview4
, libpeas
, mate-desktop
@ -19,11 +18,11 @@
stdenv.mkDerivation rec {
pname = "pluma";
version = "1.26.1";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "WVns49cRjhBmWfZNIC0O0XY60Qu7ul0qzYy/ui45lPE=";
sha256 = "qorflYk0UJOlDjCyft5KeKJCHRcnwn9GX8h8Q1llodQ=";
};
nativeBuildInputs = [
@ -37,7 +36,6 @@ stdenv.mkDerivation rec {
];
buildInputs = [
adwaita-icon-theme
enchant
gtksourceview4
libpeas

View File

@ -3,19 +3,19 @@
, fetchurl
, pkg-config
, gettext
, caja
, gtk3
, mate
, python3Packages
, mateUpdateScript
}:
stdenv.mkDerivation rec {
pname = "python-caja";
version = "1.26.0";
version = "1.28.0";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "181zcs1pi3762chm4xraqs8048jm7jzwnvgwla1v3z2nqzpp3xr1";
sha256 = "sFbCOdvf4z7QzIQx+zUAqTj3h7Weh19f+TV4umb2gNY=";
};
nativeBuildInputs = [
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
];
buildInputs = [
caja
gtk3
mate.caja
python3Packages.python
python3Packages.pygobject3
];

View File

@ -39,20 +39,9 @@ stdenv.mkDerivation (finalAttrs: {
"tools"
];
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
"-Wno-error=deprecated-copy"
"-Wno-error=pessimizing-move"
# Needed with GCC 12
"-Wno-error=format-truncation"
"-Wno-error=maybe-uninitialized"
] ++ lib.optionals stdenv.cc.isClang [
"-Wno-error=unused-private-field"
"-faligned-allocation"
] ++ lib.optionals (lib.versionOlder finalAttrs.version "8") [
"-Wno-error=unused-but-set-variable"
] ++ lib.optionals (lib.versionOlder finalAttrs.version "7") [
"-Wno-error=deprecated-copy"
]);
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
"-faligned-allocation"
]);
cmakeFlags = [
"-DPORTABLE=1"
@ -71,12 +60,25 @@ stdenv.mkDerivation (finalAttrs: {
"-DUSE_RTTI=1"
"-DROCKSDB_INSTALL_ON_WINDOWS=YES" # harmless elsewhere
(lib.optional sse42Support "-DFORCE_SSE42=1")
"-DFAIL_ON_WARNINGS=${if stdenv.hostPlatform.isMinGW then "NO" else "YES"}"
"-DFAIL_ON_WARNINGS=NO"
] ++ lib.optional (!enableShared) "-DROCKSDB_BUILD_SHARED=0";
# otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
hardeningDisable = lib.optional stdenv.hostPlatform.isWindows "format";
postPatch = lib.optionalString (lib.versionOlder finalAttrs.version "8") ''
# Fix gcc-13 build failures due to missing <cstdint> and
# <system_error> includes, fixed upstyream sice 8.x
sed -e '1i #include <cstdint>' -i db/compaction/compaction_iteration_stats.h
sed -e '1i #include <cstdint>' -i table/block_based/data_block_hash_index.h
sed -e '1i #include <cstdint>' -i util/string_util.h
sed -e '1i #include <cstdint>' -i include/rocksdb/utilities/checkpoint.h
'' + lib.optionalString (lib.versionOlder finalAttrs.version "7") ''
# Fix gcc-13 build failures due to missing <cstdint> and
# <system_error> includes, fixed upstyream sice 7.x
sed -e '1i #include <system_error>' -i third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h
'';
preInstall = ''
mkdir -p $tools/bin
cp tools/{ldb,sst_dump}${stdenv.hostPlatform.extensions.executable} $tools/bin/

View File

@ -31,7 +31,7 @@
buildPythonPackage rec {
pname = "arviz";
version = "0.17.0";
version = "0.17.1";
pyproject = true;
disabled = pythonOlder "3.9";
@ -40,7 +40,7 @@ buildPythonPackage rec {
owner = "arviz-devs";
repo = "arviz";
rev = "refs/tags/v${version}";
hash = "sha256-DqVwbiNJHdRxK3Ppfa6sqPJzDqMaj1mtlAJHFq09u2Y=";
hash = "sha256-V0/yboKpK/4QuCOzKDiyFpu/J2JLu0aQxRZ+rpMS9eY=";
};
propagatedBuildInputs = [

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "axis";
version = "54";
version = "55";
pyproject = true;
disabled = pythonOlder "3.11";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = "axis";
rev = "refs/tags/v${version}";
hash = "sha256-Atx9Lg0WgKcdnXqHieJFadjMPhK1F2qifSa89XxT8J8=";
hash = "sha256-WId4+xLr6VD79r5K+fgrxfyJGWmobTMpYGGNkFrlerQ=";
};
postPatch = ''

View File

@ -9,6 +9,7 @@
# native darwin dependencies
, libiconv
, Security
, SystemConfiguration
# tests
, pytestCheckHook
@ -52,6 +53,7 @@ buildPythonPackage rec {
buildInputs = lib.optionals stdenv.isDarwin [
libiconv
Security
SystemConfiguration
];
pythonImportsCheck = [
@ -66,6 +68,9 @@ buildPythonPackage rec {
disabledTests = [
# fails to connect to local server
"test_remote_stylesheet"
] ++ lib.optionals (stdenv.isDarwin) [
# pyo3_runtime.PanicException: event loop thread panicked
"test_invalid_href"
];
meta = with lib; {

View File

@ -1,24 +1,32 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonRelaxDepsHook
# build-system
, setuptools
# dependencies
, calmjs
, django-appconf
, jinja2
, rcssmin
, rjsmin
, django-appconf
# tests
, beautifulsoup4
, brotli
, pytestCheckHook
, django-sekizai
, pytest-django
, csscompressor
, calmjs
, jinja2
, python
, django-sekizai
, pytestCheckHook
, pytest-django
}:
buildPythonPackage rec {
pname = "django-compressor";
version = "4.4";
format = "setuptools";
pyproject = true;
src = fetchPypi {
pname = "django_compressor";
@ -26,7 +34,17 @@ buildPythonPackage rec {
hash = "sha256-GwrMnPup9pvDjnxB2psNcKILyVWHtkP/75YJz0YGT2c=";
};
propagatedBuildInputs = [
build-system = [
setuptools
pythonRelaxDepsHook
];
pythonRelaxDeps = [
"rcssmin"
"rjsmin"
];
dependencies = [
beautifulsoup4
calmjs
django-appconf
@ -35,7 +53,9 @@ buildPythonPackage rec {
rjsmin
];
checkInputs = [
env.DJANGO_SETTINGS_MODULE = "compressor.test_settings";
nativeCheckInputs = [
beautifulsoup4
brotli
csscompressor
@ -53,8 +73,6 @@ buildPythonPackage rec {
pythonImportsCheck = [ "compressor" ];
DJANGO_SETTINGS_MODULE = "compressor.test_settings";
meta = with lib; {
description = "Compresses linked and inline JavaScript or CSS into single cached files";
homepage = "https://django-compressor.readthedocs.org/";

View File

@ -1,46 +1,63 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, hatchling
, django
, freezegun
, pythonOlder
, qrcode
, pytest
, python
}:
buildPythonPackage rec {
pname = "django-otp";
version = "1.1.3";
format = "setuptools";
disabled = pythonOlder "3";
version = "1.3.0post1";
pyproject = true;
src = fetchFromGitHub {
owner = "django-otp";
repo = "django-otp";
rev = "v${version}";
hash = "sha256-Ac9p7q9yaUr3WTTGxCY16Yo/Z8i1RtnD2g0Aj2pqSXY=";
hash = "sha256-Q8YTCYERyoAXenSiDabxuxaWiD6ZeJKKKgaR/Rg3y20=";
};
postPatch = ''
patchShebangs manage.py
'';
build-system = [
hatchling
];
propagatedBuildInputs = [
dependencies = [
django
qrcode
];
env.DJANGO_SETTINGS_MODUOLE = "test.test_project.settings";
nativeCheckInputs = [
freezegun
pytest
];
checkPhase = ''
./manage.py test django_otp
runHook preCheck
export PYTHONPATH=$PYTHONPATH:test
export DJANGO_SETTINGS_MODULE=test_project.settings
${python.interpreter} -m django test django_otp
runHook postCheck
'';
pythonImportsCheck = [ "django_otp" ];
pytestFlagsArray = [
"src/django_otp/test.py"
];
pythonImportsCheck = [
"django_otp"
];
meta = with lib; {
homepage = "https://github.com/jazzband/django-model-utils";
homepage = "https://github.com/django-otp/django-otp";
changelog = "https://github.com/django-otp/django-otp/blob/${src.rev}/CHANGES.rst";
description = "Pluggable framework for adding two-factor authentication to Django using one-time passwords";
license = licenses.bsd2;
maintainers = with maintainers; [ ];

View File

@ -1,25 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, setuptools
# dependencies
, django
, django-appconf
# tests
, pytest-django
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "django-statici18n";
version = "2.3.1";
format = "setuptools";
version = "2.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "zyegfryed";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-2fFJJNdF0jspS7djDL8sToPTetzNR6pfNp5ohCNa30I=";
repo = "django-statici18n";
# https://github.com/zyegfryed/django-statici18n/issues/59
rev = "9b83a8f0f2e625dd5f56d53cfe4e07aca9479ab6";
hash = "sha256-KrIlWmN7um9ad2avfANOza579bjYkxTo9F0UFpvLu3A=";
};
propagatedBuildInputs = [
build-system = [
setuptools
];
dependencies = [
django
django-appconf
];
@ -28,7 +40,7 @@ buildPythonPackage rec {
"statici18n"
];
DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings";
env.DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings";
nativeCheckInputs = [
pytest-django

View File

@ -25,7 +25,7 @@
buildPythonPackage rec {
pname = "jsonargparse";
version = "4.27.5";
version = "4.27.6";
pyproject = true;
disabled = pythonOlder "3.11";
@ -34,7 +34,7 @@ buildPythonPackage rec {
owner = "omni-us";
repo = "jsonargparse";
rev = "refs/tags/v${version}";
hash = "sha256-MSvgOF/5X78HSSRvv1TBmaYZgcUVMKGaHfzXu3lIGVY=";
hash = "sha256-N34DRWty3QiXDPpHGUvLpQXtU4TQHxI32rizcwQdHBU=";
};
nativeBuildInputs = [

View File

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "langchain-core";
version = "0.1.31";
version = "0.1.32";
pyproject = true;
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "langchain_core";
inherit version;
hash = "sha256-1mDPIJu2zmHLHIUxB7CRqqgJAVpV3Ongzhm1HUyPKnA=";
hash = "sha256-1iaDvsvyD1HxKHV5GgQjIPReqgyHomfTC8A7waB/XsI=";
};
pythonRelaxDeps = [

View File

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "langsmith";
version = "0.1.23";
version = "0.1.26";
pyproject = true;
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "langchain-ai";
repo = "langsmith-sdk";
rev = "refs/tags/v${version}";
hash = "sha256-AiXTIk20T9symFUenCxnOUXhyNAkffbEt8acEU0EMBg=";
hash = "sha256-bvG4B7xUESbj3iX/SjsManv4itR2kkfixzxkKuZgPfw=";
};
sourceRoot = "${src.name}/python";

View File

@ -59,7 +59,7 @@ rec {
mypy-boto3-amp = buildMypyBoto3Package "amp" "1.34.39" "sha256-XOousDfEQsZ9z48iH2wVHuUaIwoECwbkHvIAlV3+zu4=";
mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.45" "sha256-hV0fg6Y39NkZ6Qa6GyIYicMERjCBAjZYcSsJ+1jXAfA=";
mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.63" "sha256-alOtCCZwBcx6g3lm80AzI5aF8WbEABd44A0e6gfZ42o=";
mypy-boto3-amplifybackend = buildMypyBoto3Package "amplifybackend" "1.34.0" "sha256-wP6fOHAUg4dvrlQ2rUNk/lgIr6JnpWu/0Tr2prTckOk=";
@ -105,7 +105,7 @@ rec {
mypy-boto3-autoscaling-plans = buildMypyBoto3Package "autoscaling-plans" "1.34.0" "sha256-16siojcxNe5MuSZSRJXPAz2UudJozEEyCYUrsGNDAM8=";
mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.0" "sha256-H4wIDyA+/6sH6X5zp/HGP2vfWIY5HzgTfa1ThXfXwYM=";
mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.64" "sha256-RvxhEmrOtkvagjaj8x2H7AAp+uK9qDIDe7T9p52rKRc=";
mypy-boto3-backup-gateway = buildMypyBoto3Package "backup-gateway" "1.34.0" "sha256-nSIEEDKJfI852/WBQ7OuDPuVijEiMr1vhpkzODbhRRc=";
@ -161,7 +161,7 @@ rec {
mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.0" "sha256-iUgoanqMSyxRopVctyFLiu+otFSgRvdgQPw4mKX3QIk=";
mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.59" "sha256-dkX5QeHjfBrY8mU+/5tKVkJlqAodBYqkW8oei1iqTl0=";
mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.64" "sha256-ZsTKKDanTLB4jFOGLQTLPEterhabpShrchHvvWcUBMo=";
mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.0" "sha256-TsXVy8bx6kaj84PJiNNU+075Tx3WW0mrtZFOyLx9yT4=";
@ -197,7 +197,7 @@ rec {
mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.61" "sha256-LbiRcZWmULytWtEy0J2mXqQtHofbbfbRV2PyvEFcRfA=";
mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.64" "sha256-ijgvxHI9taQXYZa1d4yLMp63bCrEFfE0Ug/vmKUGaNM=";
mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.34.0" "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k=";
@ -251,9 +251,9 @@ rec {
mypy-boto3-ebs = buildMypyBoto3Package "ebs" "1.34.0" "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs=";
mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.61" "sha256-rRK8Q3zUJuelfYvaUhrqxbsFUn1Xl6oxCahaRhI3+W8=";
mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.64" "sha256-fDsnEbTo5UAgPGCoUqGbvk68+9RNN8qZpScW7t/Bq+Q=";
mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.0" "sha256-95TXW9HJHciM+lZCdlUYOwcLhkKE8RJpRx9/dEnu3FU=";
mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.63" "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw=";
mypy-boto3-ecr = buildMypyBoto3Package "ecr" "1.34.0" "sha256-uD+wMR6WikLUyoIbAGwY1KPj42S4zr7nWOpPqXxaw0U=";
@ -275,7 +275,7 @@ rec {
mypy-boto3-elb = buildMypyBoto3Package "elb" "1.34.0" "sha256-5Eh5D872pVDd7Q+DDh3zpGMVgS8fUJsV+63H1fet73s=";
mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.32" "sha256-jDrQb4A0PVBSxH7vuPXehpEYdU8Hwgv2Sc2+j0OGVJg=";
mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.63" "sha256-snXMLMHLEpJjfX1GJp6FfYgIjkS8vkbf/hESBdhxIfk=";
mypy-boto3-emr = buildMypyBoto3Package "emr" "1.34.44" "sha256-zM1VpAaBSxqdZiSrNiaAKfvliNRXMLEmvFvXcFmkZO0=";
@ -297,7 +297,7 @@ rec {
mypy-boto3-firehose = buildMypyBoto3Package "firehose" "1.34.46" "sha256-Fgs7wrwKPK79cYduCR/RYQ2FEZvghDuWI1hXKzFLfJo=";
mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.0" "sha256-0TJ7iAF9hTOiKoW305p8a5fE0lZrdtoFDj/jjZzfdf0=";
mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.63" "sha256-TJnzgQGDcybpVqg+p7Tuvw/RoY79cQPPChyHWlMxhiY=";
mypy-boto3-fms = buildMypyBoto3Package "fms" "1.34.0" "sha256-tzaSecIXzkC+Zr5MGpU7GaoiGHGsywEglZ8+Ja0XDDo=";
@ -411,7 +411,7 @@ rec {
mypy-boto3-kinesisanalytics = buildMypyBoto3Package "kinesisanalytics" "1.34.0" "sha256-eEoSmwMTa/hsbKbuKuzAZv4jHljGKq3b5Rw7K2Pgc50=";
mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.62" "sha256-bL6EKRjfIIUUIMSpoE0BWeAg3xb2xbKi8NBpHSaEEFg=";
mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.64" "sha256-7sJyrWtBcbrWlCjR7pLdBLgW7sXcRazDPBW+OGwh4Xg=";
mypy-boto3-kinesisvideo = buildMypyBoto3Package "kinesisvideo" "1.34.48" "sha256-uYSkwOuYKF3B+sj5IWbDL789Xue2yNY9g14j/2b6k6w=";
@ -581,7 +581,7 @@ rec {
mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.58" "sha256-P3s5qNAV9UG6fMSxvkUevKACU3FGjhOne1D0LRi/eMk=";
mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.63" "sha256-1JsO69vElUUgZlDNejuZz8x7bPCtHkZAG1qEtvg+O5E=";
mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
@ -619,13 +619,13 @@ rec {
mypy-boto3-rum = buildMypyBoto3Package "rum" "1.34.49" "sha256-Mq2H+13cjxYRwFfxJpWTAb+W5bx+Vew+jl+zbreRIkQ=";
mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.62" "sha256-HWDLEJB667VrTYZYircK5C23oRSGnwWLu7tNWG6yLm0=";
mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.64" "sha256-6yjHKgKA6lOpr4yEmjm2RR2At+YQwfrhWR7o79OhkNM=";
mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.18" "sha256-53s5ii1gFX9toigiazEtS5Jogg3VFFr+1/uiLzoU7Uo=";
mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.53" "sha256-IgZzJstoOg1wzucKqPBx47baLbagrUk1kW4P8cI++cg=";
mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.64" "sha256-Sf1T1aqRMIEZmuA2KH5tzuhTDN8yfFID/+h0DCWxws0=";
mypy-boto3-sagemaker-a2i-runtime = buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0" "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA=";
@ -647,7 +647,7 @@ rec {
mypy-boto3-sdb = buildMypyBoto3Package "sdb" "1.34.0" "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU=";
mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.43" "sha256-q79WB3XC/g3Dg7f3DBahv3U9mz/8DKpeNUR+aFeDpos=";
mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.63" "sha256-oZM3PXGPdH1Th4tcx/7y6bj944kuR4isaQ/SsWo1Vkw=";
mypy-boto3-securityhub = buildMypyBoto3Package "securityhub" "1.34.20" "sha256-EcLY5SXSN2kJEuo8s2sYJJfq/X78BM1msyI9TfYD7Xw=";

View File

@ -0,0 +1,44 @@
{ buildPythonPackage
, fetchPypi
# build-system
, setuptools
# dependencies
, pyopenssl
, requests
, six
}:
buildPythonPackage rec {
pname = "paypalrestsdk";
version = "1.13.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
sha256 = "sha256-kZUfNtsw1oW5ceFASYSRo1bPHfjv9xZWYDrKTtcs81o=";
};
build-system = [
setuptools
];
dependencies = [
pyopenssl
requests
six
];
doCheck = false; # no tests
pythonImportsCheck = [
"paypalrestsdk"
];
meta = {
homepage = "https://developer.paypal.com/";
description = "Python APIs to create, process and manage payment";
license = "PayPal SDK License";
};
}

View File

@ -32,14 +32,14 @@
buildPythonPackage rec {
pname = "streamlit";
version = "1.32.1";
version = "1.32.2";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-7GQASW9niFIUPLwjxMQ4ifeLbJPC4nVv2OBgzM3kuP0=";
hash = "sha256-Eli5y8P/lXv30Jsb/IXO3DCPEGWzB0hUUpWpr41Vd6s=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchPypi
, substituteAll
, openssl
, setuptools
, six
}:
buildPythonPackage rec {
pname = "wallet-py3k";
version = "0.0.4";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-kyHSh8qHbzK6gFLGnL6dUJ/GLJHTNC86jjXa/APqIzI=";
};
patches = [
(substituteAll {
src = ./openssl-path.patch;
openssl = lib.getExe openssl;
})
];
build-system = [
setuptools
];
dependencies = [
six
];
doCheck = false; # no tests
pythonImportsCheck = [
"wallet"
];
meta = with lib; {
description = "Passbook file generator";
homepage = "https://pypi.org/project/wallet-py3k";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,13 @@
diff --git a/wallet/models.py b/wallet/models.py
index 1b75402..ad115de 100644
--- a/wallet/models.py
+++ b/wallet/models.py
@@ -320,7 +320,7 @@ class Pass(object):
def _createSignature(self, manifest, certificate, key,
wwdr_certificate, password):
openssl_cmd = [
- 'openssl',
+ '@openssl@',
'smime',
'-binary',
'-sign',

View File

@ -184,4 +184,13 @@ rec {
aarch64-darwin = "d64947fee370a3b111f170399969977959848f2a2f544a1ae5dc081fc2df75cf";
headers = "1lrwc03ffrf4bi2faampkx7yg0iqsrcp86znp9fw6ajwdwgqsc81";
};
electron_29-bin = mkElectron "29.1.4" {
armv7l-linux = "12a7e6a8ef214d104ee72eb6636a055c9c6d41bcc58f31a8dc48b9bc8fd0fcb5";
aarch64-linux = "0d41a51d45712d0312dd24d79a395e80280bd8365ebb8e46c252cadcb780354b";
x86_64-linux = "83a37103b67378a9073898541cfc4af8b5de708da15135f060bf26993ab426b5";
x86_64-darwin = "e7887396018840ca482eb481edbff2e9a5580998412ffd217f70fad02f23969d";
aarch64-darwin = "7ad63253fd6de9dbb337efbf4a6d0161f0e4c5953243bec27de488db98ef8a6c";
headers = "0plc831v1fva2yrwg1zal5n9wkgy0f6v1by6b3jh8wjgrsrkhk00";
};
}

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