Merge branch 'staging' into staging-next
This commit is contained in:
@@ -7,7 +7,7 @@ binaryheap,,,,,,vcunat
|
||||
busted,,,,,,
|
||||
cassowary,,,,,,marsam alerque
|
||||
cldr,,,,,,alerque
|
||||
compat53,,,,0.7-1,,vcunat
|
||||
compat53,,,,,,vcunat
|
||||
cosmo,,,,,,marsam
|
||||
coxpcall,,,,1.17.0-1,,
|
||||
cqueues,,,,,,vcunat
|
||||
@@ -15,6 +15,7 @@ cyan,,,,,,
|
||||
digestif,https://github.com/astoff/digestif.git,,,,5.3,
|
||||
dkjson,,,,,,
|
||||
fennel,,,,,,misterio77
|
||||
fidget.nvim,,,,,,mrcjkb
|
||||
fifo,,,,,,
|
||||
fluent,,,,,,alerque
|
||||
fzy,,,,,,mrcjkb
|
||||
@@ -54,7 +55,7 @@ lua-subprocess,https://github.com/0x0ade/lua-subprocess,,,,5.1,scoder12
|
||||
lua-term,,,,,,
|
||||
lua-toml,,,,,,
|
||||
lua-zlib,,,,,,koral
|
||||
lua_cliargs,https://github.com/amireh/lua_cliargs.git,,,,,
|
||||
lua_cliargs,,,,,,
|
||||
luabitop,https://github.com/teto/luabitop.git,,,,,
|
||||
luacheck,,,,,,
|
||||
luacov,,,,,,
|
||||
@@ -85,7 +86,7 @@ luautf8,,,,,,pstn
|
||||
luazip,,,,,,
|
||||
lua-yajl,,,,,,pstn
|
||||
lua-iconv,,,,7.0.0,,
|
||||
luuid,,,,,,
|
||||
luuid,,,,20120509-2,,
|
||||
luv,,,,1.44.2-1,,
|
||||
lush.nvim,https://github.com/rktjmp/lush.nvim,,,,,teto
|
||||
lyaml,,,,,,lblasc
|
||||
|
||||
|
@@ -24,6 +24,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
|
||||
|
||||
- systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
|
||||
|
||||
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
|
||||
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
|
||||
|
||||
|
||||
@@ -13,11 +13,12 @@ in
|
||||
enable = mkEnableOption (lib.mdDoc "support for Intel IPU6/MIPI cameras");
|
||||
|
||||
platform = mkOption {
|
||||
type = types.enum [ "ipu6" "ipu6ep" ];
|
||||
type = types.enum [ "ipu6" "ipu6ep" "ipu6epmtl" ];
|
||||
description = lib.mdDoc ''
|
||||
Choose the version for your hardware platform.
|
||||
|
||||
Use `ipu6` for Tiger Lake and `ipu6ep` for Alder Lake respectively.
|
||||
Use `ipu6` for Tiger Lake, `ipu6ep` for Alder Lake or Raptor Lake,
|
||||
and `ipu6epmtl` for Meteor Lake.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -29,9 +30,7 @@ in
|
||||
ipu6-drivers
|
||||
];
|
||||
|
||||
hardware.firmware = with pkgs; [ ]
|
||||
++ optional (cfg.platform == "ipu6") ipu6-camera-bin
|
||||
++ optional (cfg.platform == "ipu6ep") ipu6ep-camera-bin;
|
||||
hardware.firmware = [ pkgs.ipu6-camera-bins ];
|
||||
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="intel-ipu6-psys", MODE="0660", GROUP="video"
|
||||
@@ -44,14 +43,13 @@ in
|
||||
|
||||
extraPackages = with pkgs.gst_all_1; [ ]
|
||||
++ optional (cfg.platform == "ipu6") icamerasrc-ipu6
|
||||
++ optional (cfg.platform == "ipu6ep") icamerasrc-ipu6ep;
|
||||
++ optional (cfg.platform == "ipu6ep") icamerasrc-ipu6ep
|
||||
++ optional (cfg.platform == "ipu6epmtl") icamerasrc-ipu6epmtl;
|
||||
|
||||
input = {
|
||||
pipeline = "icamerasrc";
|
||||
format = mkIf (cfg.platform == "ipu6ep") (mkDefault "NV12");
|
||||
format = mkIf (cfg.platform != "ipu6") (mkDefault "NV12");
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1467,6 +1467,9 @@
|
||||
./system/boot/systemd/initrd-secrets.nix
|
||||
./system/boot/systemd/initrd.nix
|
||||
./system/boot/systemd/journald.nix
|
||||
./system/boot/systemd/journald-gateway.nix
|
||||
./system/boot/systemd/journald-remote.nix
|
||||
./system/boot/systemd/journald-upload.nix
|
||||
./system/boot/systemd/logind.nix
|
||||
./system/boot/systemd/nspawn.nix
|
||||
./system/boot/systemd/oomd.nix
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.journald.gateway;
|
||||
|
||||
cliArgs = lib.cli.toGNUCommandLineShell { } {
|
||||
# If either of these are null / false, they are not passed in the command-line
|
||||
inherit (cfg) cert key trust system user merge;
|
||||
};
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
options.services.journald.gateway = {
|
||||
enable = lib.mkEnableOption "the HTTP gateway to the journal";
|
||||
|
||||
port = lib.mkOption {
|
||||
default = 19531;
|
||||
type = lib.types.port;
|
||||
description = ''
|
||||
The port to listen to.
|
||||
'';
|
||||
};
|
||||
|
||||
cert = lib.mkOption {
|
||||
default = null;
|
||||
type = with lib.types; nullOr str;
|
||||
description = lib.mdDoc ''
|
||||
The path to a file or `AF_UNIX` stream socket to read the server
|
||||
certificate from.
|
||||
|
||||
The certificate must be in PEM format. This option switches
|
||||
`systemd-journal-gatewayd` into HTTPS mode and must be used together
|
||||
with {option}`services.journald.gateway.key`.
|
||||
'';
|
||||
};
|
||||
|
||||
key = lib.mkOption {
|
||||
default = null;
|
||||
type = with lib.types; nullOr str;
|
||||
description = lib.mdDoc ''
|
||||
Specify the path to a file or `AF_UNIX` stream socket to read the
|
||||
secret server key corresponding to the certificate specified with
|
||||
{option}`services.journald.gateway.cert` from.
|
||||
|
||||
The key must be in PEM format.
|
||||
|
||||
This key should not be world-readable, and must be readably by the
|
||||
`systemd-journal-gateway` user.
|
||||
'';
|
||||
};
|
||||
|
||||
trust = lib.mkOption {
|
||||
default = null;
|
||||
type = with lib.types; nullOr str;
|
||||
description = lib.mdDoc ''
|
||||
Specify the path to a file or `AF_UNIX` stream socket to read a CA
|
||||
certificate from.
|
||||
|
||||
The certificate must be in PEM format.
|
||||
|
||||
Setting this option enforces client certificate checking.
|
||||
'';
|
||||
};
|
||||
|
||||
system = lib.mkOption {
|
||||
default = true;
|
||||
type = lib.types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Serve entries from system services and the kernel.
|
||||
|
||||
This has the same meaning as `--system` for {manpage}`journalctl(1)`.
|
||||
'';
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
default = true;
|
||||
type = lib.types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Serve entries from services for the current user.
|
||||
|
||||
This has the same meaning as `--user` for {manpage}`journalctl(1)`.
|
||||
'';
|
||||
};
|
||||
|
||||
merge = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Serve entries interleaved from all available journals, including other
|
||||
machines.
|
||||
|
||||
This has the same meaning as `--merge` option for
|
||||
{manpage}`journalctl(1)`.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
# This prevents the weird case were disabling "system" and "user"
|
||||
# actually enables both because the cli flags are not present.
|
||||
assertion = cfg.system || cfg.user;
|
||||
message = ''
|
||||
systemd-journal-gatewayd cannot serve neither "system" nor "user"
|
||||
journals.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
systemd.additionalUpstreamSystemUnits = [
|
||||
"systemd-journal-gatewayd.socket"
|
||||
"systemd-journal-gatewayd.service"
|
||||
];
|
||||
|
||||
users.users.systemd-journal-gateway.uid = config.ids.uids.systemd-journal-gateway;
|
||||
users.users.systemd-journal-gateway.group = "systemd-journal-gateway";
|
||||
users.groups.systemd-journal-gateway.gid = config.ids.gids.systemd-journal-gateway;
|
||||
|
||||
systemd.services.systemd-journal-gatewayd.serviceConfig.ExecStart = [
|
||||
# Clear the default command line
|
||||
""
|
||||
"${pkgs.systemd}/lib/systemd/systemd-journal-gatewayd ${cliArgs}"
|
||||
];
|
||||
|
||||
systemd.sockets.systemd-journal-gatewayd = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
listenStreams = [
|
||||
# Clear the default port
|
||||
""
|
||||
(toString cfg.port)
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.journald.remote;
|
||||
format = pkgs.formats.systemd;
|
||||
|
||||
cliArgs = lib.cli.toGNUCommandLineShell { } {
|
||||
inherit (cfg) output;
|
||||
# "-3" specifies the file descriptor from the .socket unit.
|
||||
"listen-${cfg.listen}" = "-3";
|
||||
};
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
options.services.journald.remote = {
|
||||
enable = lib.mkEnableOption "receiving systemd journals from the network";
|
||||
|
||||
listen = lib.mkOption {
|
||||
default = "https";
|
||||
type = lib.types.enum [ "https" "http" ];
|
||||
description = lib.mdDoc ''
|
||||
Which protocol to listen to.
|
||||
'';
|
||||
};
|
||||
|
||||
output = lib.mkOption {
|
||||
default = "/var/log/journal/remote/";
|
||||
type = lib.types.str;
|
||||
description = lib.mdDoc ''
|
||||
The location of the output journal.
|
||||
|
||||
In case the output file is not specified, journal files will be created
|
||||
underneath the selected directory. Files will be called
|
||||
{file}`remote-hostname.journal`, where the `hostname` part is the
|
||||
escaped hostname of the source endpoint of the connection, or the
|
||||
numerical address if the hostname cannot be determined.
|
||||
'';
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
default = 19532;
|
||||
type = lib.types.port;
|
||||
description = ''
|
||||
The port to listen to.
|
||||
|
||||
Note that this option is used only if
|
||||
{option}`services.journald.upload.listen` is configured to be either
|
||||
"https" or "http".
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
default = { };
|
||||
|
||||
description = lib.mdDoc ''
|
||||
Configuration in the journal-remote configuration file. See
|
||||
{manpage}`journal-remote.conf(5)` for available options.
|
||||
'';
|
||||
|
||||
type = lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
|
||||
options.Remote = {
|
||||
Seal = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Periodically sign the data in the journal using Forward Secure
|
||||
Sealing.
|
||||
'';
|
||||
};
|
||||
|
||||
SplitMode = lib.mkOption {
|
||||
default = "host";
|
||||
example = "none";
|
||||
type = lib.types.enum [ "host" "none" ];
|
||||
description = lib.mdDoc ''
|
||||
With "host", a separate output file is used, based on the
|
||||
hostname of the other endpoint of a connection. With "none", only
|
||||
one output journal file is used.
|
||||
'';
|
||||
};
|
||||
|
||||
ServerKeyFile = lib.mkOption {
|
||||
default = "/etc/ssl/private/journal-remote.pem";
|
||||
type = lib.types.str;
|
||||
description = lib.mdDoc ''
|
||||
A path to a SSL secret key file in PEM format.
|
||||
|
||||
Note that due to security reasons, `systemd-journal-remote` will
|
||||
refuse files from the world-readable `/nix/store`. This file
|
||||
should be readable by the "" user.
|
||||
|
||||
This option can be used with `listen = "https"`. If the path
|
||||
refers to an `AF_UNIX` stream socket in the file system a
|
||||
connection is made to it and the key read from it.
|
||||
'';
|
||||
};
|
||||
|
||||
ServerCertificateFile = lib.mkOption {
|
||||
default = "/etc/ssl/certs/journal-remote.pem";
|
||||
type = lib.types.str;
|
||||
description = lib.mdDoc ''
|
||||
A path to a SSL certificate file in PEM format.
|
||||
|
||||
This option can be used with `listen = "https"`. If the path
|
||||
refers to an `AF_UNIX` stream socket in the file system a
|
||||
connection is made to it and the certificate read from it.
|
||||
'';
|
||||
};
|
||||
|
||||
TrustedCertificateFile = lib.mkOption {
|
||||
default = "/etc/ssl/ca/trusted.pem";
|
||||
type = lib.types.str;
|
||||
description = lib.mdDoc ''
|
||||
A path to a SSL CA certificate file in PEM format, or `all`.
|
||||
|
||||
If `all` is set, then client certificate checking will be
|
||||
disabled.
|
||||
|
||||
This option can be used with `listen = "https"`. If the path
|
||||
refers to an `AF_UNIX` stream socket in the file system a
|
||||
connection is made to it and the certificate read from it.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.additionalUpstreamSystemUnits = [
|
||||
"systemd-journal-remote.service"
|
||||
"systemd-journal-remote.socket"
|
||||
];
|
||||
|
||||
systemd.services.systemd-journal-remote.serviceConfig.ExecStart = [
|
||||
# Clear the default command line
|
||||
""
|
||||
"${pkgs.systemd}/lib/systemd/systemd-journal-remote ${cliArgs}"
|
||||
];
|
||||
|
||||
systemd.sockets.systemd-journal-remote = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
listenStreams = [
|
||||
# Clear the default port
|
||||
""
|
||||
(toString cfg.port)
|
||||
];
|
||||
};
|
||||
|
||||
# User and group used by systemd-journal-remote.service
|
||||
users.groups.systemd-journal-remote = { };
|
||||
users.users.systemd-journal-remote = {
|
||||
isSystemUser = true;
|
||||
group = "systemd-journal-remote";
|
||||
};
|
||||
|
||||
environment.etc."systemd/journal-remote.conf".source =
|
||||
format.generate "journal-remote.conf" cfg.settings;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.journald.upload;
|
||||
format = pkgs.formats.systemd;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
options.services.journald.upload = {
|
||||
enable = lib.mkEnableOption "uploading the systemd journal to a remote server";
|
||||
|
||||
settings = lib.mkOption {
|
||||
default = { };
|
||||
|
||||
description = lib.mdDoc ''
|
||||
Configuration for journal-upload. See {manpage}`journal-upload.conf(5)`
|
||||
for available options.
|
||||
'';
|
||||
|
||||
type = lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
|
||||
options.Upload = {
|
||||
URL = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
example = "https://192.168.1.1";
|
||||
description = ''
|
||||
The URL to upload the journal entries to.
|
||||
|
||||
See the description of `--url=` option in
|
||||
{manpage}`systemd-journal-upload(8)` for the description of
|
||||
possible values.
|
||||
'';
|
||||
};
|
||||
|
||||
ServerKeyFile = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
example = lib.literalExpression "./server-key.pem";
|
||||
# Since systemd-journal-upload uses a DynamicUser, permissions must
|
||||
# be done using groups
|
||||
description = ''
|
||||
SSL key in PEM format.
|
||||
|
||||
In contrary to what the name suggests, this option configures the
|
||||
client private key sent to the remote journal server.
|
||||
|
||||
This key should not be world-readable, and must be readably by
|
||||
the `systemd-journal` group.
|
||||
'';
|
||||
default = null;
|
||||
};
|
||||
|
||||
ServerCertificateFile = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
example = lib.literalExpression "./server-ca.pem";
|
||||
description = ''
|
||||
SSL CA certificate in PEM format.
|
||||
|
||||
In contrary to what the name suggests, this option configures the
|
||||
client certificate sent to the remote journal server.
|
||||
'';
|
||||
default = null;
|
||||
};
|
||||
|
||||
TrustedCertificateFile = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
example = lib.literalExpression "./ca";
|
||||
description = ''
|
||||
SSL CA certificate.
|
||||
|
||||
This certificate will be used to check the remote journal HTTPS
|
||||
server certificate.
|
||||
'';
|
||||
default = null;
|
||||
};
|
||||
|
||||
NetworkTimeoutSec = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
example = "1s";
|
||||
description = ''
|
||||
When network connectivity to the server is lost, this option
|
||||
configures the time to wait for the connectivity to get restored.
|
||||
|
||||
If the server is not reachable over the network for the
|
||||
configured time, `systemd-journal-upload` exits. Takes a value in
|
||||
seconds (or in other time units if suffixed with "ms", "min",
|
||||
"h", etc). For details, see {manpage}`systemd.time(5)`.
|
||||
'';
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.additionalUpstreamSystemUnits = [ "systemd-journal-upload.service" ];
|
||||
|
||||
systemd.services."systemd-journal-upload" = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
# To prevent flooding the server in case the server is struggling
|
||||
RestartSec = "3sec";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."systemd/journal-upload.conf".source =
|
||||
format.generate "journal-upload.conf" cfg.settings;
|
||||
};
|
||||
}
|
||||
@@ -5,6 +5,10 @@ with lib;
|
||||
let
|
||||
cfg = config.services.journald;
|
||||
in {
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "journald" "enableHttpGateway" ] [ "services" "journald" "gateway" "enable" ])
|
||||
];
|
||||
|
||||
options = {
|
||||
services.journald.console = mkOption {
|
||||
default = "";
|
||||
@@ -71,14 +75,6 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.enableHttpGateway = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable the HTTP gateway to the journal.
|
||||
'';
|
||||
};
|
||||
|
||||
services.journald.forwardToSyslog = mkOption {
|
||||
default = config.services.rsyslogd.enable || config.services.syslog-ng.enable;
|
||||
defaultText = literalExpression "services.rsyslogd.enable || services.syslog-ng.enable";
|
||||
@@ -101,9 +97,6 @@ in {
|
||||
] ++ (optional (!config.boot.isContainer) "systemd-journald-audit.socket") ++ [
|
||||
"systemd-journald-dev-log.socket"
|
||||
"syslog.socket"
|
||||
] ++ optionals cfg.enableHttpGateway [
|
||||
"systemd-journal-gatewayd.socket"
|
||||
"systemd-journal-gatewayd.service"
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
@@ -124,12 +117,6 @@ in {
|
||||
};
|
||||
|
||||
users.groups.systemd-journal.gid = config.ids.gids.systemd-journal;
|
||||
users.users.systemd-journal-gateway.uid = config.ids.uids.systemd-journal-gateway;
|
||||
users.users.systemd-journal-gateway.group = "systemd-journal-gateway";
|
||||
users.groups.systemd-journal-gateway.gid = config.ids.gids.systemd-journal-gateway;
|
||||
|
||||
systemd.sockets.systemd-journal-gatewayd.wantedBy =
|
||||
optional cfg.enableHttpGateway "sockets.target";
|
||||
|
||||
systemd.services.systemd-journal-flush.restartIfChanged = false;
|
||||
systemd.services.systemd-journald.restartTriggers = [ config.environment.etc."systemd/journald.conf".source ];
|
||||
|
||||
@@ -834,6 +834,8 @@ in {
|
||||
systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; };
|
||||
systemd-initrd-vlan = handleTest ./systemd-initrd-vlan.nix {};
|
||||
systemd-journal = handleTest ./systemd-journal.nix {};
|
||||
systemd-journal-gateway = handleTest ./systemd-journal-gateway.nix {};
|
||||
systemd-journal-upload = handleTest ./systemd-journal-upload.nix {};
|
||||
systemd-machinectl = handleTest ./systemd-machinectl.nix {};
|
||||
systemd-networkd = handleTest ./systemd-networkd.nix {};
|
||||
systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||
{
|
||||
name = "systemd-journal-gateway";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ minijackson raitobezarius ];
|
||||
};
|
||||
|
||||
# Named client for coherence with the systemd-journal-upload test, and for
|
||||
# certificate validation
|
||||
nodes.client = {
|
||||
services.journald.gateway = {
|
||||
enable = true;
|
||||
cert = "/run/secrets/client/cert.pem";
|
||||
key = "/run/secrets/client/key.pem";
|
||||
trust = "/run/secrets/ca.cert.pem";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import json
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
tmpdir_o = tempfile.TemporaryDirectory()
|
||||
tmpdir = tmpdir_o.name
|
||||
|
||||
def generate_pems(domain: str):
|
||||
subprocess.run(
|
||||
[
|
||||
"${pkgs.minica}/bin/minica",
|
||||
"--ca-key=ca.key.pem",
|
||||
"--ca-cert=ca.cert.pem",
|
||||
f"--domains={domain}",
|
||||
],
|
||||
cwd=str(tmpdir),
|
||||
)
|
||||
|
||||
with subtest("Creating keys and certificates"):
|
||||
generate_pems("server")
|
||||
generate_pems("client")
|
||||
|
||||
client.wait_for_unit("multi-user.target")
|
||||
|
||||
def copy_pem(file: str):
|
||||
machine.copy_from_host(source=f"{tmpdir}/{file}", target=f"/run/secrets/{file}")
|
||||
machine.succeed(f"chmod 644 /run/secrets/{file}")
|
||||
|
||||
with subtest("Copying keys and certificates"):
|
||||
machine.succeed("mkdir -p /run/secrets/{client,server}")
|
||||
copy_pem("server/cert.pem")
|
||||
copy_pem("server/key.pem")
|
||||
copy_pem("client/cert.pem")
|
||||
copy_pem("client/key.pem")
|
||||
copy_pem("ca.cert.pem")
|
||||
|
||||
client.wait_for_unit("multi-user.target")
|
||||
|
||||
curl = '${pkgs.curl}/bin/curl'
|
||||
accept_json = '--header "Accept: application/json"'
|
||||
cacert = '--cacert /run/secrets/ca.cert.pem'
|
||||
cert = '--cert /run/secrets/server/cert.pem'
|
||||
key = '--key /run/secrets/server/key.pem'
|
||||
base_url = 'https://client:19531'
|
||||
|
||||
curl_cli = f"{curl} {accept_json} {cacert} {cert} {key} --fail"
|
||||
|
||||
machine_info = client.succeed(f"{curl_cli} {base_url}/machine")
|
||||
assert json.loads(machine_info)["hostname"] == "client", "wrong machine name"
|
||||
|
||||
# The HTTP request should have started the gateway service, triggered by
|
||||
# the .socket unit
|
||||
client.wait_for_unit("systemd-journal-gatewayd.service")
|
||||
|
||||
identifier = "nixos-test"
|
||||
message = "Hello from NixOS test infrastructure"
|
||||
|
||||
client.succeed(f"systemd-cat --identifier={identifier} <<< '{message}'")
|
||||
|
||||
# max-time is a workaround against a bug in systemd-journal-gatewayd where
|
||||
# if TLS is enabled, the connection is never closed. Since it will timeout,
|
||||
# we ignore the return code.
|
||||
entries = client.succeed(
|
||||
f"{curl_cli} --max-time 5 {base_url}/entries?SYSLOG_IDENTIFIER={identifier} || true"
|
||||
)
|
||||
|
||||
# Number of entries should be only 1
|
||||
added_entry = json.loads(entries)
|
||||
assert added_entry["SYSLOG_IDENTIFIER"] == identifier and added_entry["MESSAGE"] == message, "journal entry does not correspond"
|
||||
'';
|
||||
})
|
||||
@@ -0,0 +1,101 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
{
|
||||
name = "systemd-journal-upload";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ minijackson raitoezarius ];
|
||||
};
|
||||
|
||||
nodes.server = { nodes, ... }: {
|
||||
services.journald.remote = {
|
||||
enable = true;
|
||||
listen = "http";
|
||||
settings.Remote = {
|
||||
ServerCertificateFile = "/run/secrets/sever.cert.pem";
|
||||
ServerKeyFile = "/run/secrets/sever.key.pem";
|
||||
TrustedCertificateFile = "/run/secrets/ca.cert.pem";
|
||||
Seal = true;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ nodes.server.services.journald.remote.port ];
|
||||
};
|
||||
|
||||
nodes.client = { lib, nodes, ... }: {
|
||||
services.journald.upload = {
|
||||
enable = true;
|
||||
settings.Upload = {
|
||||
URL = "http://server:${toString nodes.server.services.journald.remote.port}";
|
||||
ServerCertificateFile = "/run/secrets/client.cert.pem";
|
||||
ServerKeyFile = "/run/secrets/client.key.pem";
|
||||
TrustedCertificateFile = "/run/secrets/ca.cert.pem";
|
||||
};
|
||||
};
|
||||
|
||||
# Wait for the PEMs to arrive
|
||||
systemd.services.systemd-journal-upload.wantedBy = lib.mkForce [];
|
||||
systemd.paths.systemd-journal-upload = {
|
||||
wantedBy = [ "default.target" ];
|
||||
# This file must be copied last
|
||||
pathConfig.PathExists = [ "/run/secrets/ca.cert.pem" ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
tmpdir_o = tempfile.TemporaryDirectory()
|
||||
tmpdir = tmpdir_o.name
|
||||
|
||||
def generate_pems(domain: str):
|
||||
subprocess.run(
|
||||
[
|
||||
"${pkgs.minica}/bin/minica",
|
||||
"--ca-key=ca.key.pem",
|
||||
"--ca-cert=ca.cert.pem",
|
||||
f"--domains={domain}",
|
||||
],
|
||||
cwd=str(tmpdir),
|
||||
)
|
||||
|
||||
with subtest("Creating keys and certificates"):
|
||||
generate_pems("server")
|
||||
generate_pems("client")
|
||||
|
||||
server.wait_for_unit("multi-user.target")
|
||||
client.wait_for_unit("multi-user.target")
|
||||
|
||||
def copy_pems(machine: Machine, domain: str):
|
||||
machine.succeed("mkdir /run/secrets")
|
||||
machine.copy_from_host(
|
||||
source=f"{tmpdir}/{domain}/cert.pem",
|
||||
target=f"/run/secrets/{domain}.cert.pem",
|
||||
)
|
||||
machine.copy_from_host(
|
||||
source=f"{tmpdir}/{domain}/key.pem",
|
||||
target=f"/run/secrets/{domain}.key.pem",
|
||||
)
|
||||
# Should be last
|
||||
machine.copy_from_host(
|
||||
source=f"{tmpdir}/ca.cert.pem",
|
||||
target="/run/secrets/ca.cert.pem",
|
||||
)
|
||||
|
||||
with subtest("Copying keys and certificates"):
|
||||
copy_pems(server, "server")
|
||||
copy_pems(client, "client")
|
||||
|
||||
client.wait_for_unit("systemd-journal-upload.service")
|
||||
# The journal upload should have started the remote service, triggered by
|
||||
# the .socket unit
|
||||
server.wait_for_unit("systemd-journal-remote.service")
|
||||
|
||||
identifier = "nixos-test"
|
||||
message = "Hello from NixOS test infrastructure"
|
||||
|
||||
client.succeed(f"systemd-cat --identifier={identifier} <<< '{message}'")
|
||||
server.wait_until_succeeds(
|
||||
f"journalctl --file /var/log/journal/remote/remote-*.journal --identifier={identifier} | grep -F '{message}'"
|
||||
)
|
||||
'';
|
||||
})
|
||||
@@ -6,17 +6,11 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
||||
maintainers = [ lewo ];
|
||||
};
|
||||
|
||||
nodes.machine = { pkgs, lib, ... }: {
|
||||
services.journald.enableHttpGateway = true;
|
||||
};
|
||||
nodes.machine = { };
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
machine.succeed("journalctl --grep=systemd")
|
||||
|
||||
machine.succeed(
|
||||
"${pkgs.curl}/bin/curl -s localhost:19531/machine | ${pkgs.jq}/bin/jq -e '.hostname == \"machine\"'"
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
, rocksdb
|
||||
, rust-jemalloc-sys-unprefixed
|
||||
, rustPlatform
|
||||
, rustc-wasm32
|
||||
, rustc
|
||||
, stdenv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
@@ -61,8 +61,8 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
rustc-wasm32
|
||||
rustc-wasm32.llvmPackages.lld
|
||||
rustc
|
||||
rustc.llvmPackages.lld
|
||||
];
|
||||
|
||||
# NOTE: jemalloc is used by default on Linux with unprefixed enabled
|
||||
|
||||
@@ -165,10 +165,14 @@ stdenv.mkDerivation rec {
|
||||
EOF
|
||||
|
||||
moveToOutput "bin" "$bin"
|
||||
'' + lib.optionalString (enableX11 || enableGL) ''
|
||||
'' + (lib.optionalString (stdenv.isDarwin) ''
|
||||
for exe in $bin/bin/*; do
|
||||
install_name_tool -change build/shared-release/libmupdf.dylib $out/lib/libmupdf.dylib "$exe"
|
||||
done
|
||||
'') + (lib.optionalString (enableX11 || enableGL) ''
|
||||
mkdir -p $bin/share/icons/hicolor/48x48/apps
|
||||
cp docs/logo/mupdf.png $bin/share/icons/hicolor/48x48/apps
|
||||
'' + (if enableGL then ''
|
||||
'') + (if enableGL then ''
|
||||
ln -s "$bin/bin/mupdf-gl" "$bin/bin/mupdf"
|
||||
'' else lib.optionalString (enableX11) ''
|
||||
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
, binaryen
|
||||
, gzip
|
||||
, nodejs
|
||||
, rustc-wasm32
|
||||
, rustc
|
||||
, wasm-bindgen-cli
|
||||
, wasm-pack
|
||||
}:
|
||||
@@ -66,8 +66,8 @@ rustPlatform.buildRustPackage rec {
|
||||
binaryen
|
||||
gzip
|
||||
nodejs
|
||||
rustc-wasm32
|
||||
rustc-wasm32.llvmPackages.lld
|
||||
rustc
|
||||
rustc.llvmPackages.lld
|
||||
wasm-bindgen-84
|
||||
wasm-pack
|
||||
];
|
||||
|
||||
@@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
|
||||
assert svnSupport -> perlSupport;
|
||||
|
||||
let
|
||||
version = "2.42.0";
|
||||
version = "2.43.0";
|
||||
svn = subversionClient.override { perlBindings = perlSupport; };
|
||||
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
|
||||
in
|
||||
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||
hash = "sha256-MnghDp/SmUuEhN1+Pd2eqLlA71IXDNtgbaqU2IfJOw0=";
|
||||
hash = "sha256-VEZgPnPZEXgdJZ5WV1Dc0nekKDbI45LKyRzxN6qbduw=";
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional withManual "doc";
|
||||
|
||||
@@ -21,11 +21,11 @@ let
|
||||
|
||||
self = python3Packages.buildPythonApplication rec {
|
||||
pname = "mercurial${lib.optionalString fullBuild "-full"}";
|
||||
version = "6.5.3";
|
||||
version = "6.6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "sha256-LNyB+t4SnPVrEoQXUn8ZC6cv13ZWc5TOVO7XZOZn59U=";
|
||||
sha256 = "sha256-opRlo/5Ao+jUm6g0MTSsKrooa2g//rg42gz25FIflpU=";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
@@ -35,7 +35,7 @@ let
|
||||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "mercurial-${version}";
|
||||
sha256 = "sha256-ob81zMUY4AVNIbkFKyImnj7QhHTh7LVOCcGeZDtTAXc=";
|
||||
sha256 = "sha256-wLV0qdCfMgGpZRxnZik/lRwZHm/66p0sJn/mYVRvRkQ=";
|
||||
sourceRoot = "mercurial-${version}/rust";
|
||||
} else null;
|
||||
cargoRoot = if rustSupport then "rust" else null;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
{ stdenv, fetchgit, lib, dtc }:
|
||||
{ stdenv, fetchzip, lib, dtc }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "kvmtool";
|
||||
version = "unstable-2023-07-12";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git";
|
||||
rev = "106e2ea7756d980454d68631b87d5e25ba4e4881";
|
||||
sha256 = "sha256-wpc5DfHnui0lBVH4uOq6a7pXVUZStjNLRvauu6QpRvE=";
|
||||
src = fetchzip {
|
||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/snapshot/kvmtool-106e2ea7756d980454d68631b87d5e25ba4e4881.tar.gz";
|
||||
hash = "sha256-wpc5DfHnui0lBVH4uOq6a7pXVUZStjNLRvauu6QpRvE=";
|
||||
};
|
||||
|
||||
patches = [ ./strlcpy-glibc-2.38-fix.patch ];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, hostPlatform
|
||||
, cargo
|
||||
, rustc
|
||||
, lld
|
||||
}:
|
||||
|
||||
@@ -24,12 +22,7 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
# inherit (cross) rustPlatform;
|
||||
# ^ breaks because we are doing a no_std embedded build with a custom sysroot,
|
||||
# but the fast_cross rustc wrapper already passes a sysroot argument
|
||||
rustPlatform = cross.makeRustPlatform {
|
||||
inherit rustc cargo;
|
||||
};
|
||||
inherit (cross) rustPlatform;
|
||||
|
||||
in
|
||||
|
||||
|
||||
@@ -33,6 +33,28 @@
|
||||
, useMacosReexportHack ? false
|
||||
, wrapGas ? false
|
||||
|
||||
# Note: the hardening flags are part of the bintools-wrapper, rather than
|
||||
# the cc-wrapper, because a few of them are handled by the linker.
|
||||
, defaultHardeningFlags ? with stdenvNoCC; [
|
||||
"bindnow"
|
||||
"format"
|
||||
"fortify"
|
||||
"fortify3"
|
||||
"pic"
|
||||
"relro"
|
||||
"stackprotector"
|
||||
"strictoverflow"
|
||||
] ++ lib.optional (
|
||||
# Musl-based platforms will keep "pie", other platforms will not.
|
||||
# If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}`
|
||||
# in the nixpkgs manual to inform users about the defaults.
|
||||
targetPlatform.libc == "musl"
|
||||
# Except when:
|
||||
# - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries.
|
||||
# - static armv7l, where compilation fails.
|
||||
&& !(hostPlatform.isAarch && hostPlatform.isStatic)
|
||||
) "pie"
|
||||
|
||||
# Darwin code signing support utilities
|
||||
, postLinkSignHook ? null, signingUtils ? null
|
||||
}:
|
||||
@@ -124,6 +146,8 @@ stdenv.mkDerivation {
|
||||
(setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib64"))))
|
||||
'(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
|
||||
'';
|
||||
|
||||
inherit defaultHardeningFlags;
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
@@ -380,6 +404,7 @@ stdenv.mkDerivation {
|
||||
wrapperName = "BINTOOLS_WRAPPER";
|
||||
inherit dynamicLinker targetPrefix suffixSalt coreutils_bin;
|
||||
inherit bintools_bin libc_bin libc_dev libc_lib;
|
||||
default_hardening_flags_str = builtins.toString defaultHardeningFlags;
|
||||
};
|
||||
|
||||
meta =
|
||||
|
||||
@@ -65,7 +65,7 @@ do
|
||||
done
|
||||
|
||||
# If unset, assume the default hardening flags.
|
||||
: ${NIX_HARDENING_ENABLE="fortify stackprotector pic strictoverflow format relro bindnow"}
|
||||
: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"}
|
||||
export NIX_HARDENING_ENABLE
|
||||
|
||||
# No local scope in sourced file
|
||||
|
||||
@@ -32,7 +32,7 @@ if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then
|
||||
fi
|
||||
|
||||
if (( "${NIX_DEBUG:-0}" >= 1 )); then
|
||||
declare -a allHardeningFlags=(fortify stackprotector pie pic strictoverflow format)
|
||||
declare -a allHardeningFlags=(fortify fortify3 stackprotector pie pic strictoverflow format)
|
||||
declare -A hardeningDisableMap=()
|
||||
|
||||
# Determine which flags were effectively disabled so we can report below.
|
||||
|
||||
@@ -218,6 +218,8 @@ let
|
||||
then guess
|
||||
else null;
|
||||
|
||||
defaultHardeningFlags = bintools.defaultHardeningFlags or [];
|
||||
|
||||
darwinPlatformForCC = optionalString stdenv.targetPlatform.isDarwin (
|
||||
if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx"
|
||||
else targetPlatform.darwinPlatform
|
||||
@@ -271,6 +273,8 @@ stdenv.mkDerivation {
|
||||
inherit expand-response-params;
|
||||
|
||||
inherit nixSupport;
|
||||
|
||||
inherit defaultHardeningFlags;
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
@@ -706,6 +710,7 @@ stdenv.mkDerivation {
|
||||
inherit suffixSalt coreutils_bin bintools;
|
||||
inherit libc_bin libc_dev libc_lib;
|
||||
inherit darwinPlatformForCC darwinMinVersion darwinMinVersionVariable;
|
||||
default_hardening_flags_str = builtins.toString defaultHardeningFlags;
|
||||
};
|
||||
|
||||
meta =
|
||||
|
||||
@@ -4,8 +4,7 @@ getTargetRoleWrapper
|
||||
export FC${role_post}=@named_fc@
|
||||
|
||||
# If unset, assume the default hardening flags.
|
||||
# These are different for fortran.
|
||||
: ${NIX_HARDENING_ENABLE="stackprotector pic strictoverflow relro bindnow"}
|
||||
: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"}
|
||||
export NIX_HARDENING_ENABLE
|
||||
|
||||
unset -v role_post
|
||||
|
||||
@@ -111,7 +111,7 @@ export CC${role_post}=@named_cc@
|
||||
export CXX${role_post}=@named_cxx@
|
||||
|
||||
# If unset, assume the default hardening flags.
|
||||
: ${NIX_HARDENING_ENABLE="fortify fortify3 stackprotector pic strictoverflow format relro bindnow"}
|
||||
: ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"}
|
||||
export NIX_HARDENING_ENABLE
|
||||
|
||||
# No local scope in sourced file
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
|
||||
# Mirrors from https://download.kde.org/ls-lR.mirrorlist
|
||||
kde = [
|
||||
"https://cdn.download.kde.org/"
|
||||
"https://download.kde.org/download.php?url="
|
||||
"https://ftp.gwdg.de/pub/linux/kde/"
|
||||
"https://mirrors.ocf.berkeley.edu/kde/"
|
||||
|
||||
@@ -1,6 +1,19 @@
|
||||
#!@shell@
|
||||
|
||||
extraBefore=(@sysroot@)
|
||||
defaultSysroot=(@sysroot@)
|
||||
|
||||
for arg; do
|
||||
case "$arg" in
|
||||
--sysroot)
|
||||
defaultSysroot=()
|
||||
;;
|
||||
--)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
extraBefore=("${defaultSysroot[@]}")
|
||||
extraAfter=($NIX_RUSTFLAGS)
|
||||
|
||||
# Optionally print debug info.
|
||||
|
||||
@@ -138,8 +138,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"CFLAGS=-D_FILE_OFFSET_BITS=64"
|
||||
"CXXFLAGS=-D_FILE_OFFSET_BITS=64"
|
||||
]
|
||||
# Workaround missing atomic ops with gcc <13
|
||||
++ lib.optional stdenv.hostPlatform.isRiscV "LDFLAGS=-latomic"
|
||||
++ [
|
||||
"--"
|
||||
# We should set the proper `CMAKE_SYSTEM_NAME`.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From a908a574daf8bac10bb2a0ee3771052d2167a85f Mon Sep 17 00:00:00 2001
|
||||
From: Randy Eckenrode <randy@largeandhighquality.com>
|
||||
Date: Sun, 3 Dec 2023 15:41:20 -0500
|
||||
Subject: [PATCH] Fix test failure on Darwin on a case-sensitive fs
|
||||
|
||||
This was encountered while looking into an issue with
|
||||
https://github.com/NixOS/nixpkgs/pull/268583.
|
||||
|
||||
I run my Nix store on case-sensitive APFS, so the test fails due to
|
||||
trying to link `-framework ldap` instead of `-framework LDAP`.
|
||||
---
|
||||
test cases/osx/5 extra frameworks/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test cases/osx/5 extra frameworks/meson.build b/test cases/osx/5 extra frameworks/meson.build
|
||||
index f6c01e63a1bd..96532846c632 100644
|
||||
--- a/test cases/osx/5 extra frameworks/meson.build
|
||||
+++ b/test cases/osx/5 extra frameworks/meson.build
|
||||
@@ -7,7 +7,7 @@ dep_main = dependency('Foundation')
|
||||
assert(dep_main.type_name() == 'extraframeworks', 'type_name is ' + dep_main.type_name())
|
||||
|
||||
# https://github.com/mesonbuild/meson/issues/10002
|
||||
-ldap_dep = dependency('ldap', method : 'extraframework')
|
||||
+ldap_dep = dependency('LDAP', method : 'extraframework')
|
||||
assert(ldap_dep.type_name() == 'extraframeworks', 'type_name is ' + ldap_dep.type_name())
|
||||
|
||||
stlib = static_library('stat', 'stat.c', install : true, dependencies: [opengl_dep, ldap_dep])
|
||||
@@ -1,11 +1,11 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, installShellFiles
|
||||
, coreutils
|
||||
, darwin
|
||||
, libxcrypt
|
||||
, openldap
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
@@ -14,17 +14,17 @@
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation OpenGL;
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation LDAP OpenGL;
|
||||
in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "meson";
|
||||
version = "1.2.3";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mesonbuild";
|
||||
repo = "meson";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-dgYYz3tQDG6Z4eE77WO2dXdardxVzzGaFLQ5znPcTlw=";
|
||||
hash = "sha256-Jt3PWnbv/8P6Rvf3E/Yli2vdtfgx3CmsW+jlc9CK5KA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -66,15 +66,8 @@ python3.pkgs.buildPythonApplication rec {
|
||||
# Nixpkgs cctools does not have bitcode support.
|
||||
./006-disable-bitcode.patch
|
||||
|
||||
# Fix passing multiple --define-variable arguments to pkg-config.
|
||||
# https://github.com/mesonbuild/meson/pull/10670
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mesonbuild/meson/commit/d5252c5d4cf1c1931fef0c1c98dd66c000891d21.patch";
|
||||
hash = "sha256-GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw=";
|
||||
excludes = [
|
||||
"docs/yaml/objects/dep.yaml"
|
||||
];
|
||||
})
|
||||
# https://github.com/mesonbuild/meson/pull/12587
|
||||
./007-darwin-case-sensitivity.patch
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals (python3.pythonOlder "3.9") [
|
||||
@@ -95,7 +88,9 @@ python3.pkgs.buildPythonApplication rec {
|
||||
AppKit
|
||||
Cocoa
|
||||
Foundation
|
||||
LDAP
|
||||
OpenGL
|
||||
openldap
|
||||
];
|
||||
|
||||
checkPhase = lib.concatStringsSep "\n" ([
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, json_c
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ucode";
|
||||
version = "0.0.20231102";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jow-";
|
||||
repo = "ucode";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dJjlwuQLS73D6W/bmhWLPPaT7himQyO1RvD+MXVxBMw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
json_c
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "JavaScript-like language with optional templating";
|
||||
homepage = "https://github.com/jow-/ucode";
|
||||
license = licenses.isc;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ mkg20001 ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, cmake
|
||||
, fetchgit
|
||||
, pkg-config
|
||||
, ubus
|
||||
, libubox
|
||||
, ucode
|
||||
, json_c
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "udebug";
|
||||
version = "unstable-2023-11-28";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.openwrt.org/project/udebug.git";
|
||||
rev = "d49aadabb7a147b99a3e6299a77d7fda4e266091";
|
||||
hash = "sha256-5I50q+oUQ5f82ngKl7bX50J+3pBviNk3iVEChNjt5wY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ubus
|
||||
libubox
|
||||
ucode
|
||||
json_c
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenWrt debugging helper library/service";
|
||||
homepage = "https://git.openwrt.org/?p=project/udebug.git;a=summary";
|
||||
license = licenses.free;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ mkg20001 ];
|
||||
};
|
||||
}
|
||||
@@ -9,7 +9,6 @@
|
||||
, itstool
|
||||
, desktop-file-utils
|
||||
, vala
|
||||
, gobject-introspection
|
||||
, libxml2
|
||||
, gtk4
|
||||
, glib
|
||||
@@ -43,7 +42,6 @@ stdenv.mkDerivation rec {
|
||||
wrapGAppsHook4
|
||||
desktop-file-utils
|
||||
libxml2
|
||||
gobject-introspection # for finding vapi files
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -57,10 +57,6 @@ stdenv.mkDerivation rec {
|
||||
gnupg
|
||||
desktop-file-utils
|
||||
gcr
|
||||
# error: Package `...' not found in specified Vala API directories or GObject-Introspection GIR directories
|
||||
# TODO: the vala setuphook should look for vala filess in targetOffset instead of hostOffset
|
||||
libhandy
|
||||
libsecret
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -36,10 +36,6 @@ stdenv.mkDerivation rec {
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
# Prevents “error: Package `libadwaita-1' not found in specified Vala API
|
||||
# directories or GObject-Introspection GIR directories” with strictDeps,
|
||||
# even though it should only be a runtime dependency.
|
||||
libadwaita
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
, glib
|
||||
, gtksourceview5
|
||||
, wrapGAppsHook4
|
||||
, gobject-introspection
|
||||
, gnome
|
||||
, mpfr
|
||||
, gmp
|
||||
@@ -40,7 +39,6 @@ stdenv.mkDerivation rec {
|
||||
gettext
|
||||
itstool
|
||||
wrapGAppsHook4
|
||||
gobject-introspection # for finding vapi files
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchurl, meson, ninja, vala, gobject-introspection, pkg-config, gnome, gtk3, wrapGAppsHook
|
||||
{ lib, stdenv, fetchurl, meson, ninja, vala, pkg-config, gnome, gtk3, wrapGAppsHook
|
||||
, librsvg, gettext, itstool, python3, libxml2, libgnome-games-support, libgee, desktop-file-utils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -10,9 +10,8 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "NQLps/ccs7LnEcDmAZGH/rzCvKh349RW3KtwD3vjEnI=";
|
||||
};
|
||||
|
||||
# gobject-introspection for finding vapi files
|
||||
nativeBuildInputs = [
|
||||
meson ninja vala gobject-introspection pkg-config gettext itstool python3
|
||||
meson ninja vala pkg-config gettext itstool python3
|
||||
libxml2 wrapGAppsHook desktop-file-utils
|
||||
];
|
||||
buildInputs = [ gtk3 librsvg gnome.adwaita-icon-theme libgnome-games-support libgee ];
|
||||
|
||||
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-gMwbWiP+YDCVafQMBWhTuJGWmkYtnhEdn/oofKaUT08=";
|
||||
};
|
||||
|
||||
# Fix build with Node 20
|
||||
# FIXME: remove for next release
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "nodejs-20.patch";
|
||||
url = "https://github.com/WebAssembly/binaryen/commit/889422e0c92552ff484659f9b41e777ba7ab35c1.patch";
|
||||
hash = "sha256-acM8mytL9nhm4np9tpUbd1X0wJ7y308HV2fvgcAW1lY=";
|
||||
})
|
||||
|
||||
@@ -45,7 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
# requires xvfb-run
|
||||
doCheck = !stdenv.isDarwin;
|
||||
doCheck = !stdenv.isDarwin
|
||||
&& false; # tests time out
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchgit
|
||||
, fetchzip
|
||||
, fetchpatch
|
||||
, meson
|
||||
, ninja
|
||||
@@ -18,9 +18,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dtc";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
src = fetchzip {
|
||||
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/dtc-v${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-FMh3VvlY3fUK8fbd0M+aCmlUrmG9YegiOOQ7MOByffc=";
|
||||
};
|
||||
|
||||
|
||||
@@ -406,8 +406,9 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
|
||||
passthru = {
|
||||
inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD langJava version;
|
||||
isGNU = true;
|
||||
} // lib.optionalAttrs (!atLeast12) {
|
||||
hardeningUnsupportedFlags = lib.optionals is48 [ "stackprotector" ] ++ [ "fortify3" ];
|
||||
hardeningUnsupportedFlags = lib.optional is48 "stackprotector"
|
||||
++ lib.optional (!atLeast12) "fortify3"
|
||||
++ lib.optionals (langFortran) [ "fortify" "format" ];
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -26,9 +26,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ cmake python3 bison jq ];
|
||||
|
||||
# Workaround missing atomic ops with gcc <13
|
||||
env.LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
|
||||
|
||||
postPatch = ''
|
||||
cp --no-preserve=mode -r "${spirv-tools.src}" External/spirv-tools
|
||||
ln -s "${spirv-headers.src}" External/spirv-tools/external/spirv-headers
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
} @ args:
|
||||
|
||||
import ./default.nix {
|
||||
rustcVersion = "1.74.0";
|
||||
rustcSha256 = "sha256-iCtYS8Mhxdz+d82qafJ3kGuTYlXveAj81cdJKSXPEEk=";
|
||||
rustcVersion = "1.74.1";
|
||||
rustcSha256 = "sha256-Z9s+IvyZIciFuq5ZU7oUT8R0zeKexpq1bUPOdkIGIx0=";
|
||||
|
||||
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_16.libllvm.override { enableSharedLibraries = true; };
|
||||
llvmSharedForHost = pkgsBuildHost.llvmPackages_16.libllvm.override { enableSharedLibraries = true; };
|
||||
|
||||
@@ -65,6 +65,8 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
# Increase codegen units to introduce parallelism within the compiler.
|
||||
RUSTFLAGS = "-Ccodegen-units=10";
|
||||
|
||||
RUSTDOCFLAGS = "-A rustdoc::broken-intra-doc-links";
|
||||
|
||||
# We need rust to build rust. If we don't provide it, configure will try to download it.
|
||||
# Reference: https://github.com/rust-lang/rust/blob/master/src/bootstrap/configure.py
|
||||
configureFlags = let
|
||||
@@ -100,6 +102,10 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
"--target=${concatStringsSep "," ([
|
||||
stdenv.targetPlatform.rust.rustcTargetSpec
|
||||
|
||||
# Other targets that don't need any extra dependencies to build.
|
||||
] ++ optionals (!fastCross) [
|
||||
"wasm32-unknown-unknown"
|
||||
|
||||
# (build!=target): When cross-building a compiler we need to add
|
||||
# the build platform as well so rustc can compile build.rs
|
||||
# scripts.
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
, llvm
|
||||
, spirv-headers
|
||||
, spirv-tools
|
||||
, disable-warnings-if-gcc13
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -37,7 +38,7 @@ let
|
||||
hash = "sha256-NoIoa20+2sH41rEnr8lsMhtfesrtdPINiXtUnxYVm8s=";
|
||||
} else throw "Incompatible LLVM version.";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
disable-warnings-if-gcc13 (stdenv.mkDerivation {
|
||||
pname = "SPIRV-LLVM-Translator";
|
||||
inherit (branch) version;
|
||||
|
||||
@@ -91,4 +92,4 @@ stdenv.mkDerivation {
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ gloaming ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -5,7 +5,7 @@ make_vala_find_vapi_files() {
|
||||
fi
|
||||
}
|
||||
|
||||
addEnvHooks "$hostOffset" make_vala_find_vapi_files
|
||||
addEnvHooks "$targetOffset" make_vala_find_vapi_files
|
||||
|
||||
disable_incompabile_pointer_conversion_warning() {
|
||||
# Work around incompatible function pointer conversion errors with clang 16
|
||||
|
||||
@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs:
|
||||
{
|
||||
pname = "lua";
|
||||
inherit version;
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.lua.org/ftp/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
|
||||
@@ -135,6 +136,9 @@ stdenv.mkDerivation (finalAttrs:
|
||||
ln -s "$out/lib/pkgconfig/lua.pc" "$out/lib/pkgconfig/lua-${luaversion}.pc"
|
||||
ln -s "$out/lib/pkgconfig/lua.pc" "$out/lib/pkgconfig/lua${luaversion}.pc"
|
||||
ln -s "$out/lib/pkgconfig/lua.pc" "$out/lib/pkgconfig/lua${lib.replaceStrings [ "." ] [ "" ] luaversion}.pc"
|
||||
|
||||
# Make documentation outputs of different versions co-installable.
|
||||
mv $out/share/doc/lua $out/share/doc/lua-${version}
|
||||
'';
|
||||
|
||||
# copied from python
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{ lib, stdenv, substituteAll, fetchurl
|
||||
, zlib ? null, zlibSupport ? true, bzip2, pkg-config, libffi, libunwind, Security
|
||||
, zlibSupport ? true, zlib
|
||||
, bzip2, pkg-config, libffi, libunwind, Security
|
||||
, sqlite, openssl, ncurses, python, expat, tcl, tk, tix, libX11
|
||||
, self, gdbm, db, xz
|
||||
, python-setup-hook
|
||||
, gdbm, db, xz, python-setup-hook
|
||||
, optimizationLevel ? "jit", boehmgc
|
||||
# For the Python package set
|
||||
, hash
|
||||
, self
|
||||
, packageOverrides ? (self: super: {})
|
||||
, pkgsBuildBuild
|
||||
, pkgsBuildHost
|
||||
@@ -12,7 +15,6 @@
|
||||
, pkgsTargetTarget
|
||||
, sourceVersion
|
||||
, pythonVersion
|
||||
, hash
|
||||
, passthruFun
|
||||
, pythonAttr ? "pypy${lib.substring 0 1 pythonVersion}${lib.substring 2 3 pythonVersion}"
|
||||
}:
|
||||
@@ -59,6 +61,8 @@ in with passthru; stdenv.mkDerivation rec {
|
||||
stdenv.cc.libc
|
||||
] ++ lib.optionals zlibSupport [
|
||||
zlib
|
||||
] ++ lib.optionals (lib.any (l: l == optimizationLevel) [ "0" "1" "2" "3"]) [
|
||||
boehmgc
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
libunwind Security
|
||||
];
|
||||
@@ -102,7 +106,7 @@ in with passthru; stdenv.mkDerivation rec {
|
||||
|
||||
${pythonForPypy.interpreter} rpython/bin/rpython \
|
||||
--make-jobs="$NIX_BUILD_CORES" \
|
||||
-Ojit \
|
||||
-O${optimizationLevel} \
|
||||
--batch pypy/goal/targetpypystandalone.py
|
||||
|
||||
runHook postBuild
|
||||
@@ -195,10 +199,11 @@ in with passthru; stdenv.mkDerivation rec {
|
||||
enableParallelBuilding = true; # almost no parallelization without STM
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://pypy.org/";
|
||||
homepage = "https://www.pypy.org/";
|
||||
description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})";
|
||||
license = licenses.mit;
|
||||
platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
|
||||
broken = optimizationLevel == "0"; # generates invalid code
|
||||
maintainers = with maintainers; [ andersk ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-auth";
|
||||
version = "0.7.0";
|
||||
version = "0.7.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = "aws-c-auth";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-DzUobQ8qZNb83CwVKK9E1V51uHHo22nlBGKdN55W7UY=";
|
||||
sha256 = "sha256-GO3Sfbi1dwsqQM6rlnEHyE7wolQjdVwD5BAu5ychEuY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-cal";
|
||||
version = "0.6.0";
|
||||
version = "0.6.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qsYQViMto5j6piCg6gBjzFfPJlLkJt4949o217QsV6Q=";
|
||||
sha256 = "sha256-m/RwGXeSjYOJQwCxfPyL4TdJ3gV66zHgVkWd3bpSaJE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-common";
|
||||
version = "0.8.23";
|
||||
version = "0.9.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HkRaQnlasayg5Nu2KaEA18360rxAH/tdJ1iqzoi6i2E=";
|
||||
sha256 = "sha256-xqNqyVtibR8oSMvl5RTU166FIxcbvGjZJOjJ9j6fU78=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-event-stream";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2MPTr1vSUPuemdlQIalZTp6eGXJl3Xr1eUEnZjikBzg=";
|
||||
sha256 = "sha256-uKprdBJn9yHDm2HCBOiuanizCtLi/VKrvUUScNv6OPY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-http";
|
||||
version = "0.7.11";
|
||||
version = "0.7.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = "aws-c-http";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-gKuWhXxWHqTS66yANdKLsCZRk7jeDmyYMlme4WXT5Wc=";
|
||||
sha256 = "sha256-HrNdePWNw/5tDBeybnUjK3LgftnGQ4CBXPG0URaxIeU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-io";
|
||||
version = "0.13.29";
|
||||
version = "0.13.36";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZeogbjgpbqdCioLeb34CRol1Fa5BJOloAxxgE50yfQs=";
|
||||
sha256 = "sha256-TwPcsTMBOE1uIInH6/eQdUMV6uD7d60773THzc1/G9Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-mqtt";
|
||||
version = "0.8.14";
|
||||
version = "0.9.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = "aws-c-mqtt";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LPhd4ygh/3BtqDZwWtigXWUGZ0fzkcWkFl6dpJIspow=";
|
||||
sha256 = "sha256-hxisqBUARJLtmZniXaZ2th0hqWiKn4XQIy6I0Oz/kUs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-c-s3";
|
||||
version = "0.3.13";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = "aws-c-s3";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SXMDyzQ8hjPx9q9GhE11lYjj3IZY35mvUWELlYQmgGU=";
|
||||
sha256 = "sha256-tb9h78Gd4N11DPB2ETq241lvDQqHIy2HYBsJrBlLpxA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
+18
-18
@@ -1,6 +1,6 @@
|
||||
From 2370ee92e78cfb0d55e3958b63ac71b16567b5fd Mon Sep 17 00:00:00 2001
|
||||
From fd3f3a28e7fce7fe4e10ed2d7edc4bfda8ab27df Mon Sep 17 00:00:00 2001
|
||||
From: Jan Tojnar <jtojnar@gmail.com>
|
||||
Date: Wed, 9 Nov 2022 17:59:17 +0100
|
||||
Date: Sun, 9 Jan 2022 01:57:18 +0100
|
||||
Subject: [PATCH] build: Make includedir properly overrideable
|
||||
|
||||
This is required by some package managers like Nix.
|
||||
@@ -9,33 +9,33 @@ This is required by some package managers like Nix.
|
||||
1 file changed, 13 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9f13d21..f6e62c7 100644
|
||||
index ec6d172..6514c23 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -66,6 +66,10 @@ elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||
set(CMAKE_INSTALL_LIBDIR "lib")
|
||||
@@ -49,6 +49,10 @@ if(${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
|
||||
set(FIND_LIBRARY_USE_LIB64_PATHS true)
|
||||
endif()
|
||||
|
||||
|
||||
+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
|
||||
+ set(CMAKE_INSTALL_INCLUDEDIR "include")
|
||||
+endif()
|
||||
+
|
||||
if(${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
|
||||
set(FIND_LIBRARY_USE_LIB64_PATHS true)
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif()
|
||||
@@ -322,7 +326,7 @@ endif()
|
||||
|
||||
@@ -307,7 +311,7 @@ endif()
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<BUILD_INTERFACE:${GENERATED_INCLUDE_DIR}>
|
||||
- $<INSTALL_INTERFACE:include>)
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
|
||||
|
||||
aws_use_package(aws-c-http)
|
||||
aws_use_package(aws-c-mqtt)
|
||||
@@ -336,14 +340,14 @@ aws_use_package(aws-c-s3)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} ${DEP_AWS_LIBS})
|
||||
|
||||
@@ -324,14 +328,14 @@ aws_add_sanitizers(${PROJECT_NAME})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS})
|
||||
|
||||
-install(FILES ${AWS_CRT_HEADERS} DESTINATION "include/aws/crt" COMPONENT Development)
|
||||
-install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include/aws/crt/auth" COMPONENT Development)
|
||||
-install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development)
|
||||
@@ -52,8 +52,8 @@ index 9f13d21..f6e62c7 100644
|
||||
+install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/mqtt" COMPONENT Development)
|
||||
+install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/http" COMPONENT Development)
|
||||
+install(FILES ${AWS_CRT_ENDPOINT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/endpoints" COMPONENT Development)
|
||||
|
||||
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
--
|
||||
2.37.3
|
||||
--
|
||||
2.42.0
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-crt-cpp";
|
||||
version = "0.20.3";
|
||||
version = "0.24.7";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "awslabs";
|
||||
repo = "aws-crt-cpp";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-70AchkuhuyumwpBYaj9mOVPJ8+6VSLTLtr3ghwqG3wM=";
|
||||
sha256 = "sha256-AYO0ckqEx2jG7HduvaxASQMOsxuHGkRkyVsUP5WOs98=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
--- a/cmake/AWSSDKConfig.cmake
|
||||
+++ b/cmake/AWSSDKConfig.cmake
|
||||
@@ -97,14 +98,18 @@ if (NOT AWSSDK_CORE_HEADER_FILE)
|
||||
message(FATAL_ERROR "AWS SDK for C++ is missing, please install it first")
|
||||
endif()
|
||||
|
||||
-# based on core header file path, inspects the actual AWSSDK_ROOT_DIR
|
||||
-get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_CORE_HEADER_FILE}" PATH)
|
||||
-get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
-get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
-get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
-
|
||||
-if (NOT AWSSDK_ROOT_DIR)
|
||||
- message(FATAL_ERROR "AWSSDK_ROOT_DIR is not set or can't be calculated from the path of core header file")
|
||||
+if (IS_ABSOLUTE ${AWSSDK_INSTALL_LIBDIR})
|
||||
+ set(AWSSDK_ROOT_DIR "")
|
||||
+else()
|
||||
+ # based on core header file path, inspects the actual AWSSDK_ROOT_DIR
|
||||
+ get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_CORE_HEADER_FILE}" PATH)
|
||||
+ get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
+ get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
+ get_filename_component(AWSSDK_ROOT_DIR "${AWSSDK_ROOT_DIR}" PATH)
|
||||
+
|
||||
+ if (NOT AWSSDK_ROOT_DIR)
|
||||
+ message(FATAL_ERROR "AWSSDK_ROOT_DIR is not set or can't be calculated from the path of core header file")
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
|
||||
diff --git a/cmake/utilities.cmake b/cmake/utilities.cmake
|
||||
index 283a14a138..646aea1da3 100644
|
||||
--- a/cmake/utilities.cmake
|
||||
+++ b/cmake/utilities.cmake
|
||||
@@ -43,7 +43,8 @@ macro(setup_install)
|
||||
EXPORT "${PROJECT_NAME}-targets"
|
||||
ARCHIVE DESTINATION ${ARCHIVE_DIRECTORY}
|
||||
LIBRARY DESTINATION ${LIBRARY_DIRECTORY}
|
||||
- RUNTIME DESTINATION ${BINARY_DIRECTORY} )
|
||||
+ RUNTIME DESTINATION ${BINARY_DIRECTORY}
|
||||
+ INCLUDES DESTINATION ${INCLUDE_DIRECTORY} )
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
install(
|
||||
@@ -57,7 +58,8 @@ macro(setup_install)
|
||||
install (TARGETS ${PROJECT_NAME}
|
||||
ARCHIVE DESTINATION ${ARCHIVE_DIRECTORY}/${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER}/\${CMAKE_INSTALL_CONFIG_NAME}
|
||||
LIBRARY DESTINATION ${LIBRARY_DIRECTORY}/${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER}/\${CMAKE_INSTALL_CONFIG_NAME}
|
||||
- RUNTIME DESTINATION ${BINARY_DIRECTORY}/${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER}/\${CMAKE_INSTALL_CONFIG_NAME})
|
||||
+ RUNTIME DESTINATION ${BINARY_DIRECTORY}/${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER}/\${CMAKE_INSTALL_CONFIG_NAME}
|
||||
+ INCLUDES DESTINATION ${INCLUDE_DIRECTORY}/${SDK_INSTALL_BINARY_PREFIX}/${PLATFORM_INSTALL_QUALIFIER}/\${CMAKE_INSTALL_CONFIG_NAME})
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
diff --git a/toolchains/pkg-config.pc.in b/toolchains/pkg-config.pc.in
|
||||
index 9b519d2772..a61069225c 100644
|
||||
--- a/toolchains/pkg-config.pc.in
|
||||
+++ b/toolchains/pkg-config.pc.in
|
||||
@@ -1,5 +1,5 @@
|
||||
-includedir=@CMAKE_INSTALL_PREFIX@/@INCLUDE_DIRECTORY@
|
||||
-libdir=@CMAKE_INSTALL_PREFIX@/@LIBRARY_DIRECTORY@
|
||||
+includedir=@INCLUDE_DIRECTORY@
|
||||
+libdir=@LIBRARY_DIRECTORY@
|
||||
|
||||
Name: @PROJECT_NAME@
|
||||
Description: @PROJECT_DESCRIPTION@
|
||||
@@ -8,6 +8,9 @@
|
||||
, aws-crt-cpp
|
||||
, CoreAudio
|
||||
, AudioToolbox
|
||||
, nix
|
||||
, arrow-cpp
|
||||
, aws-sdk-cpp
|
||||
, # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
|
||||
apis ? ["*"]
|
||||
, # Whether to enable AWS' custom memory management.
|
||||
@@ -24,19 +27,15 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-sdk-cpp";
|
||||
version = "1.11.118";
|
||||
version = "1.11.207";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "aws-sdk-cpp";
|
||||
rev = version;
|
||||
sha256 = "sha256-jqGXh8xLD2gIjV9kSvlldrxA5TxTTXQoC/B66FVprvk=";
|
||||
sha256 = "sha256-IsPDQJo+TZ2noLefroiWl/Jx8fXmrmY73WHNRO41sik=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./cmake-dirs.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Append the dev output to path hints in finding Aws.h to avoid
|
||||
# having to pass `AWS_CORE_HEADER_FILE` explicitly to cmake configure
|
||||
@@ -79,8 +78,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# propagation is needed for Security.framework to be available when linking
|
||||
propagatedBuildInputs = [ aws-crt-cpp ];
|
||||
# Ensure the linker is using atomic when compiling for RISC-V, otherwise fails
|
||||
LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_DEPS=OFF"
|
||||
@@ -109,6 +106,42 @@ stdenv.mkDerivation rec {
|
||||
# Builds in 2+h with 2 cores, and ~10m with a big-parallel builder.
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit nix arrow-cpp;
|
||||
cmake-find-package = stdenv.mkDerivation {
|
||||
pname = "aws-sdk-cpp-cmake-find-package-test";
|
||||
version = "0";
|
||||
dontUnpack = true;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ aws-sdk-cpp ];
|
||||
buildCommand = ''
|
||||
cat > CMakeLists.txt <<'EOF'
|
||||
find_package(AWSSDK)
|
||||
EOF
|
||||
|
||||
# Intentionally not using 'cmakeConfigurePhase' to test that find_package works without it.
|
||||
mkdir build && cd build
|
||||
if output=$(cmake -Wno-dev .. 2>&1); then
|
||||
if grep -Fw -- "Found AWS" - <<< "$output"; then
|
||||
touch "$out"
|
||||
else
|
||||
echo "'Found AWS' not found in the cmake output!" >&2
|
||||
echo "The output was:" >&2
|
||||
echo "$output" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -n "'cmake -Wno-dev ..'" >&2
|
||||
echo " returned a non-zero exit code." >&2
|
||||
echo "$output" >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A C++ interface for Amazon Web Services";
|
||||
homepage = "https://github.com/aws/aws-sdk-cpp";
|
||||
|
||||
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
|
||||
./cyrus-sasl-ac-try-run-fix.patch
|
||||
# make compatible with openssl3. can probably be dropped with any release after 2.1.28
|
||||
(fetchpatch {
|
||||
url = "https://github.com/cyrusimap/cyrus-sasl/compare/cb549ef71c5bb646fe583697ebdcaba93267a237...c2bd3afbca57f176d8c650670ce371444bb7fcc0.patch";
|
||||
hash = "sha256-bYeIkvle1Ms7Lnoob4eLd4RbPFHtPkKRZvfHNCBJY/s=";
|
||||
url = "https://github.com/cyrusimap/cyrus-sasl/compare/cb549ef71c5bb646fe583697ebdcaba93267a237...dfaa62392e7caecc6ecf0097b4d73738ec4fc0a8.patch";
|
||||
hash = "sha256-pc0cZqj1QoxDqgd/j/5q3vWONEPrTm4Pr6MzHlfjRCc=";
|
||||
})
|
||||
];
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{ lib, stdenv, fetchFromGitHub, meson, ninja }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "directx-headers";
|
||||
version = "1.610.2";
|
||||
version = "1.611.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "DirectX-Headers";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-se+/TgqKdatTnBlHcBC1K4aOGGfPEW+E1efpP34+xc0=";
|
||||
hash = "sha256-HG2Zj8hvsgv8oeSDp1eK+1A5bvFL6oQIh5mMFWOFsvk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja ];
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, aspell
|
||||
, groff
|
||||
, pkg-config
|
||||
@@ -14,23 +13,15 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "enchant";
|
||||
version = "2.6.2";
|
||||
version = "2.6.3";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-ZoanKOVudg+N7gmiLw+1O0bunb59ZM+eW7NaZYv/fh0=";
|
||||
hash = "sha256-wcVxnypZfOPgbJOM+5n7aX2gk96nuFfMAE3B3PG7oYI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix build with clang 16
|
||||
(fetchpatch {
|
||||
url = "https://github.com/AbiWord/enchant/commit/f71eb22e4af7f9917011807a41cf295d3ce0ccbc.patch";
|
||||
hash = "sha256-9WWvpU3HKzPlxNBYQAKPppW6G3kOIC2A+MqX5eheBDA=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
groff
|
||||
pkg-config
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ./generic.nix {
|
||||
version = "4.4.4";
|
||||
sha256 = "sha256-Q8bkuF/1uJfqttJJoObnnLX3BEduv+qxsvOrVhMvRjA=";
|
||||
hash = "sha256-Q8bkuF/1uJfqttJJoObnnLX3BEduv+qxsvOrVhMvRjA=";
|
||||
extraPatches = [
|
||||
{
|
||||
name = "libsvtav1-1.5.0-compat-compressed_ten_bit_format.patch";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ./generic.nix {
|
||||
version = "5.1.3";
|
||||
sha256 = "sha256-twfJvANLQGO7TiyHPMPqApfHLFUlOGZTTIIGEnjyvuE=";
|
||||
hash = "sha256-twfJvANLQGO7TiyHPMPqApfHLFUlOGZTTIIGEnjyvuE=";
|
||||
extraPatches = [
|
||||
{
|
||||
name = "libsvtav1-1.5.0-compat-compressed_ten_bit_format.patch";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import ./generic.nix {
|
||||
version = "6.0";
|
||||
sha256 = "sha256-RVbgsafIbeUUNXmUbDQ03ZN42oaUo0njqROo7KOQgv0=";
|
||||
version = "6.1";
|
||||
hash = "sha256-NzhD2D16bCVCyCXo0TRwZYp3Ta5eFSfoQPa+iRkeNZg=";
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ version, sha256, extraPatches ? [] }:
|
||||
{ version, hash, extraPatches ? [] }:
|
||||
|
||||
{ lib, stdenv, buildPackages, removeReferencesTo, addOpenGLRunpath, pkg-config, perl, texinfo, yasm
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
# Feature flags
|
||||
, withAlsa ? withHeadlessDeps && stdenv.isLinux # Alsa in/output supporT
|
||||
, withAom ? withFullDeps # AV1 reference encoder
|
||||
, withAribcaption ? withFullDeps && lib.versionAtLeast version "6.1" # ARIB STD-B24 Caption Decoder/Renderer
|
||||
, withAss ? withHeadlessDeps && stdenv.hostPlatform == stdenv.buildPlatform # (Advanced) SubStation Alpha subtitle rendering
|
||||
, withBluray ? withFullDeps # BluRay reading
|
||||
, withBs2b ? withFullDeps # bs2b DSP library
|
||||
@@ -179,8 +180,8 @@
|
||||
*/
|
||||
, alsa-lib
|
||||
, bzip2
|
||||
, clang
|
||||
, celt
|
||||
, clang
|
||||
, dav1d
|
||||
, fdk_aac
|
||||
, fontconfig
|
||||
@@ -188,27 +189,32 @@
|
||||
, frei0r
|
||||
, fribidi
|
||||
, game-music-emu
|
||||
, glslang
|
||||
, gnutls
|
||||
, gsm
|
||||
, libjack2
|
||||
, intel-media-sdk
|
||||
, ladspaH
|
||||
, lame
|
||||
, libass
|
||||
, libaom
|
||||
, libaribcaption
|
||||
, libass
|
||||
, libbluray
|
||||
, libbs2b
|
||||
, libcaca
|
||||
, libdc1394
|
||||
, libraw1394
|
||||
, libdrm
|
||||
, libGL
|
||||
, libGLU
|
||||
, libiconv
|
||||
, intel-media-sdk
|
||||
, libjack2
|
||||
, libmodplug
|
||||
, libmysofa
|
||||
, libogg
|
||||
, libopenmpt
|
||||
, libopus
|
||||
, libplacebo
|
||||
, libpulseaudio
|
||||
, libraw1394
|
||||
, librsvg
|
||||
, libssh
|
||||
, libtensorflow
|
||||
@@ -223,41 +229,37 @@
|
||||
, libwebp
|
||||
, libX11
|
||||
, libxcb
|
||||
, libXv
|
||||
, libXext
|
||||
, libxml2
|
||||
, xz
|
||||
, libXv
|
||||
, nv-codec-headers
|
||||
, nv-codec-headers-11
|
||||
, openal
|
||||
, nv-codec-headers-12
|
||||
, ocl-icd # OpenCL ICD
|
||||
, openal
|
||||
, opencl-headers # OpenCL headers
|
||||
, opencore-amr
|
||||
, libGL
|
||||
, libGLU
|
||||
, openh264
|
||||
, openjpeg
|
||||
, libpulseaudio
|
||||
, rav1e
|
||||
, svt-av1
|
||||
, rtmpdump
|
||||
, samba
|
||||
, SDL2
|
||||
, soxr
|
||||
, speex
|
||||
, srt
|
||||
, svt-av1
|
||||
, vid-stab
|
||||
, vo-amrwbenc
|
||||
, vulkan-headers
|
||||
, vulkan-loader
|
||||
, x264
|
||||
, x265
|
||||
, xavs
|
||||
, xvidcore
|
||||
, xz
|
||||
, zeromq4
|
||||
, zimg
|
||||
, zlib
|
||||
, vulkan-headers
|
||||
, vulkan-loader
|
||||
, glslang
|
||||
/*
|
||||
* Darwin frameworks
|
||||
*/
|
||||
@@ -334,7 +336,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchgit {
|
||||
url = "https://git.ffmpeg.org/ffmpeg.git";
|
||||
rev = "n${finalAttrs.version}";
|
||||
inherit sha256;
|
||||
inherit hash;
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -344,10 +346,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
--replace /usr/local/lib/frei0r-1 ${frei0r}/lib/frei0r-1
|
||||
substituteInPlace doc/filters.texi \
|
||||
--replace /usr/local/lib/frei0r-1 ${frei0r}/lib/frei0r-1
|
||||
'' + lib.optionalString withVulkan ''
|
||||
# FIXME: horrible hack, remove for next release
|
||||
substituteInPlace libavutil/hwcontext_vulkan.c \
|
||||
--replace VK_EXT_VIDEO_DECODE VK_KHR_VIDEO_DECODE
|
||||
'';
|
||||
|
||||
patches = map (patch: fetchpatch patch) (extraPatches
|
||||
@@ -441,6 +439,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
* External libraries
|
||||
*/
|
||||
(enableFeature withAlsa "alsa")
|
||||
# FIXME: see if jellyfin-ffmpeg is already on a version >= 6.1 to use enableFeature
|
||||
(optionalString withAribcaption "--enable-libaribcaption")
|
||||
(enableFeature withBzlib "bzlib")
|
||||
(enableFeature withCelt "libcelt")
|
||||
(enableFeature withCuda "cuda")
|
||||
@@ -553,9 +553,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# TODO This was always in buildInputs before, why?
|
||||
buildInputs = optionals withFullDeps [ libdc1394 ]
|
||||
++ optionals (withFullDeps && !stdenv.isDarwin) [ libraw1394 ] # TODO where does this belong to
|
||||
++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast version "6") then nv-codec-headers-11 else nv-codec-headers) ]
|
||||
++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast version "6") then nv-codec-headers-12 else nv-codec-headers) ]
|
||||
++ optionals withAlsa [ alsa-lib ]
|
||||
++ optionals withAom [ libaom ]
|
||||
++ optionals withAribcaption [ libaribcaption ]
|
||||
++ optionals withAss [ libass ]
|
||||
++ optionals withBluray [ libbluray ]
|
||||
++ optionals withBs2b [ libbs2b ]
|
||||
@@ -698,7 +699,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ optional withUnfree unfreeRedistributable;
|
||||
pkgConfigModules = [ "libavutil" ];
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ atemu ];
|
||||
maintainers = with maintainers; [ atemu arthsmn ];
|
||||
mainProgram = "ffmpeg";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, cmake, extra-cmake-modules, qtbase }:
|
||||
{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, qtbase }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "futuresql";
|
||||
version = "0.1.1";
|
||||
@@ -10,6 +10,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||
buildInputs = [ qtbase ];
|
||||
cmakeFlags = ["-DQT_MAJOR_VERSION=${lib.versions.major qtbase.version}"];
|
||||
|
||||
# a library, nothing to wrap
|
||||
dontWrapQtApps = true;
|
||||
|
||||
@@ -10,6 +10,7 @@ let
|
||||
"--disable-intl"
|
||||
"--enable-threads=posix"
|
||||
"--with-glibc-version=${glibc.version}"
|
||||
"--disable-plugin"
|
||||
|
||||
# these are required in order to prevent inhibit_libc=true,
|
||||
# which will cripple libgcc's unwinder; see:
|
||||
|
||||
@@ -31,13 +31,13 @@ let
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "gjs";
|
||||
version = "1.78.0";
|
||||
version = "1.78.1";
|
||||
|
||||
outputs = [ "out" "dev" "installedTests" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gjs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-+6og4JF2aIMIAPkpUWiPn8CPASlq/9XNtLNfdQvifck=";
|
||||
hash = "sha256-fpBRHEKRJ8OerABoxKyaNT335vu8ZG9fGOiWKILBhkE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -50,11 +50,11 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "glib";
|
||||
version = "2.78.1";
|
||||
version = "2.78.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/glib/${lib.versions.majorMinor finalAttrs.version}/glib-${finalAttrs.version}.tar.xz";
|
||||
sha256 = "kVvD0PhQfWUOrTgy4vj7Zw/OWarE13VKfatvHm/teLI=";
|
||||
sha256 = "YJgB3Tc3luUVlyv5X8Cy2qRFRUge4vRlxPIE0iSyvCE=";
|
||||
};
|
||||
|
||||
patches = lib.optionals stdenv.isDarwin [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build
|
||||
index 65faae9..4297513 100644
|
||||
index 65faae9b2..4297513d4 100644
|
||||
--- a/gio/gdbus-2.0/codegen/meson.build
|
||||
+++ b/gio/gdbus-2.0/codegen/meson.build
|
||||
@@ -20,7 +20,7 @@ gdbus_codegen_conf.set('DATADIR', glib_datadir)
|
||||
@@ -12,12 +12,12 @@ index 65faae9..4297513 100644
|
||||
configuration : gdbus_codegen_conf
|
||||
)
|
||||
diff --git a/gio/meson.build b/gio/meson.build
|
||||
index b19c59f..3b20e84 100644
|
||||
index 75686bb3e..2f1a73482 100644
|
||||
--- a/gio/meson.build
|
||||
+++ b/gio/meson.build
|
||||
@@ -879,14 +879,15 @@ pkg.generate(libgio,
|
||||
'datadir=' + '${prefix}' / get_option('datadir'),
|
||||
@@ -882,14 +882,15 @@ pkg.generate(libgio,
|
||||
'schemasdir=' + '${datadir}' / schemas_subdir,
|
||||
'dtdsdir=' + '${datadir}' / dtds_subdir,
|
||||
'bindir=' + '${prefix}' / get_option('bindir'),
|
||||
+ 'devbindir=' + get_option('devbindir'),
|
||||
'giomoduledir=' + pkgconfig_giomodulesdir,
|
||||
@@ -36,7 +36,7 @@ index b19c59f..3b20e84 100644
|
||||
'gsettings=' + '${bindir}' / 'gsettings',
|
||||
],
|
||||
version : glib_version,
|
||||
@@ -989,6 +990,7 @@ executable('gio', gio_tool_sources,
|
||||
@@ -992,6 +993,7 @@ executable('gio', gio_tool_sources,
|
||||
|
||||
executable('gresource', 'gresource-tool.c',
|
||||
install : true,
|
||||
@@ -44,7 +44,7 @@ index b19c59f..3b20e84 100644
|
||||
install_tag : 'bin',
|
||||
# intl.lib is not compatible with SAFESEH
|
||||
link_args : noseh_link_args,
|
||||
@@ -996,7 +998,7 @@ executable('gresource', 'gresource-tool.c',
|
||||
@@ -999,7 +1001,7 @@ executable('gresource', 'gresource-tool.c',
|
||||
|
||||
gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
|
||||
install : true,
|
||||
@@ -53,7 +53,7 @@ index b19c59f..3b20e84 100644
|
||||
install_tag : 'bin',
|
||||
c_args : gio_c_args,
|
||||
# intl.lib is not compatible with SAFESEH
|
||||
@@ -1006,7 +1008,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
|
||||
@@ -1009,7 +1011,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
|
||||
glib_compile_schemas = executable('glib-compile-schemas',
|
||||
['glib-compile-schemas.c'],
|
||||
install : true,
|
||||
@@ -62,7 +62,7 @@ index b19c59f..3b20e84 100644
|
||||
install_tag : 'bin',
|
||||
# intl.lib is not compatible with SAFESEH
|
||||
link_args : noseh_link_args,
|
||||
@@ -1015,6 +1017,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
|
||||
@@ -1018,6 +1020,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
|
||||
glib_compile_resources = executable('glib-compile-resources',
|
||||
[gconstructor_as_data_h, 'glib-compile-resources.c'],
|
||||
install : true,
|
||||
@@ -70,8 +70,49 @@ index b19c59f..3b20e84 100644
|
||||
install_tag : 'bin-devel',
|
||||
c_args : gio_c_args,
|
||||
# intl.lib is not compatible with SAFESEH
|
||||
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
|
||||
index 4ef3343ab..2a0a6b56b 100644
|
||||
--- a/gio/tests/meson.build
|
||||
+++ b/gio/tests/meson.build
|
||||
@@ -1131,16 +1131,18 @@ if have_bash and have_pkg_config
|
||||
|
||||
gio_binaries = [
|
||||
'gio',
|
||||
- 'glib-compile-resources',
|
||||
'gdbus',
|
||||
- 'gdbus-codegen',
|
||||
- 'gresource',
|
||||
'gsettings',
|
||||
]
|
||||
- gio_multiarch_binaries = [
|
||||
+ gio_dev_binaries = [
|
||||
+ 'glib-compile-resources',
|
||||
+ 'gdbus-codegen',
|
||||
+ 'gresource',
|
||||
'gio-querymodules',
|
||||
'glib-compile-schemas',
|
||||
]
|
||||
+ gio_multiarch_binaries = [
|
||||
+ ]
|
||||
|
||||
foreach binary: gio_binaries
|
||||
pkg_config_tests += [
|
||||
@@ -1149,6 +1151,13 @@ if have_bash and have_pkg_config
|
||||
prefix / get_option('bindir') / binary)
|
||||
]
|
||||
endforeach
|
||||
+ foreach binary: gio_dev_binaries
|
||||
+ pkg_config_tests += [
|
||||
+ 'test "$(pkg-config --variable=@0@ gio-2.0)" = "@1@"'.format(
|
||||
+ binary.underscorify(),
|
||||
+ prefix / get_option('devbindir') / binary)
|
||||
+ ]
|
||||
+ endforeach
|
||||
|
||||
foreach binary: gio_multiarch_binaries
|
||||
pkg_config_tests += [
|
||||
diff --git a/glib/meson.build b/glib/meson.build
|
||||
index c26a35e..38effe1 100644
|
||||
index c26a35e42..38effe12a 100644
|
||||
--- a/glib/meson.build
|
||||
+++ b/glib/meson.build
|
||||
@@ -447,9 +447,10 @@ pkg.generate(libglib,
|
||||
@@ -105,8 +146,24 @@ index c26a35e..38effe1 100644
|
||||
install_tag : 'bin-devel',
|
||||
configuration: report_conf,
|
||||
install_mode: 'rwxr-xr-x'
|
||||
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
|
||||
index 09ecd5ab3..9748d4122 100644
|
||||
--- a/glib/tests/meson.build
|
||||
+++ b/glib/tests/meson.build
|
||||
@@ -508,9 +508,9 @@ if have_bash and have_pkg_config
|
||||
'test "$(pkg-config --variable=datadir glib-2.0)" = "@0@"'.format(
|
||||
prefix / get_option('datadir')),
|
||||
'test "$(pkg-config --variable=gobject_query glib-2.0)" = "@0@"'.format(
|
||||
- prefix / get_option('bindir') / 'gobject-query'),
|
||||
+ prefix / get_option('devbindir') / 'gobject-query'),
|
||||
'test "$(pkg-config --variable=glib_mkenums glib-2.0)" = "@0@"'.format(
|
||||
- prefix / get_option('bindir') / 'glib-mkenums'),
|
||||
+ prefix / get_option('devbindir') / 'glib-mkenums'),
|
||||
'test "$(pkg-config --variable=glib_valgrind_suppressions glib-2.0)" = "@0@"'.format(
|
||||
prefix / get_option('datadir') /
|
||||
valgrind_suppression_file_install_subdir / fs.name(valgrind_suppression_file)),
|
||||
diff --git a/gobject/meson.build b/gobject/meson.build
|
||||
index 2129aaf..da84624 100644
|
||||
index 2129aaf8a..da8462428 100644
|
||||
--- a/gobject/meson.build
|
||||
+++ b/gobject/meson.build
|
||||
@@ -94,7 +94,7 @@ foreach tool: python_tools
|
||||
@@ -127,7 +184,7 @@ index 2129aaf..da84624 100644
|
||||
dependencies : [libglib_dep, libgobject_dep])
|
||||
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 517d575..198cc1b 100644
|
||||
index 517d5757c..198cc1b3c 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -4,6 +4,11 @@ option('runtime_libdir',
|
||||
@@ -143,7 +200,7 @@ index 517d575..198cc1b 100644
|
||||
type : 'string',
|
||||
value : '',
|
||||
diff --git a/tools/meson.build b/tools/meson.build
|
||||
index 257312e..f831539 100644
|
||||
index 257312ebf..f8315392b 100644
|
||||
--- a/tools/meson.build
|
||||
+++ b/tools/meson.build
|
||||
@@ -8,7 +8,7 @@ if have_sh
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
, swig2 ? null
|
||||
# only for passthru.tests
|
||||
, libsForQt5
|
||||
, qt6Packages
|
||||
, python3
|
||||
}:
|
||||
let
|
||||
@@ -26,11 +27,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gpgme";
|
||||
version = "1.23.0";
|
||||
version = "1.23.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
|
||||
hash = "sha256-BD4u/hi0rSK5bUNN3nY/vtMs+NbCINxp3w0P+53Gb8Y=";
|
||||
hash = "sha256-lJnosfM8zLaBVSehvBYEnTWmGYpsX64BhfK9VhvOUiQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -109,7 +110,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
passthru.tests = {
|
||||
python = python3.pkgs.gpgme;
|
||||
qt = libsForQt5.qgpgme;
|
||||
qt5 = libsForQt5.qgpgme;
|
||||
qt6 = qt6Packages.qgpgme;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
, Security
|
||||
, VideoToolbox
|
||||
, ipu6ep-camera-hal
|
||||
, ipu6epmtl-camera-hal
|
||||
}:
|
||||
|
||||
{
|
||||
@@ -47,6 +48,9 @@
|
||||
icamerasrc-ipu6ep = callPackage ./icamerasrc {
|
||||
ipu6-camera-hal = ipu6ep-camera-hal;
|
||||
};
|
||||
icamerasrc-ipu6epmtl = callPackage ./icamerasrc {
|
||||
ipu6-camera-hal = ipu6epmtl-camera-hal;
|
||||
};
|
||||
|
||||
# note: gst-python is in ../../python-modules/gst-python - called under python3Packages
|
||||
}
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
, libdrm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation {
|
||||
pname = "icamerasrc-${ipu6-camera-hal.ipuVersion}";
|
||||
version = "unstable-2023-03-09";
|
||||
version = "unstable-2023-10-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "icamerasrc";
|
||||
rev = "17841ab6249aaa69bd9b3959262bf182dee74111";
|
||||
hash = "sha256-j8ZYe4nyy5yfo10CGeXDwbAaAPvdr0ptMWB8hQDyESQ=";
|
||||
rev = "528a6f177732def4d5ebc17927220d8823bc8fdc";
|
||||
hash = "sha256-Ezcm5OpF/NKvJf5sFeJyvNc2Uq0166GukC9MuNUV2Fs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
, buildPackages
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, gettext
|
||||
, graphene
|
||||
@@ -69,7 +68,7 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gtk4";
|
||||
version = "4.12.3";
|
||||
version = "4.12.4";
|
||||
|
||||
outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
|
||||
outputBin = "dev";
|
||||
@@ -81,19 +80,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
|
||||
sha256 = "FIziYvbIZIdFX7HZeTw/WLw+HaR3opYX+tsEIPWHCok=";
|
||||
sha256 = "umfGSY5Vmfko7a+54IoyCt+qUKsvDab8arIlL8LVdSA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/NixOS/nixpkgs/pull/218143#issuecomment-1501059486
|
||||
./patches/4.0-fix-darwin-build.patch
|
||||
|
||||
# gdk: Fix compilation on macos
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6208
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/aa888c0b3f775776fe3b71028396b7a8c6adb1d6.patch";
|
||||
sha256 = "sha256-Jw6BvWDX0wIs4blUiX3qdQCR574yhcaO06Vy/IqfbJo=";
|
||||
})
|
||||
];
|
||||
|
||||
depsBuildBuild = [
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitea
|
||||
, autoreconfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gumbo";
|
||||
version = "0.10.1";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "grisha";
|
||||
repo = "gumbo-parser";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xslckwdh2i0g2qjsb6rnm8mjmbagvziz0hjlf7d1lbljfms1iw1";
|
||||
rev = version;
|
||||
hash = "sha256-d4V4bI08Prmg3U0KGu4yIwpHcvTJT3NAd4lbzdBU/AE=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [ autoconf automake libtool ];
|
||||
|
||||
preConfigure = "./autogen.sh";
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "C99 HTML parsing algorithm";
|
||||
|
||||
@@ -8,20 +8,32 @@
|
||||
|
||||
# runtime
|
||||
, expat
|
||||
, ipu6-camera-bin
|
||||
, ipu6-camera-bins
|
||||
, libtool
|
||||
, gst_all_1
|
||||
}:
|
||||
|
||||
# Pick one of
|
||||
# - ipu6 (Tiger Lake)
|
||||
# - ipu6ep (Alder Lake)
|
||||
# - ipu6epmtl (Meteor Lake)
|
||||
, ipuVersion ? "ipu6"
|
||||
}:
|
||||
let
|
||||
ipuTarget = {
|
||||
"ipu6" = "ipu_tgl";
|
||||
"ipu6ep" = "ipu_adl";
|
||||
"ipu6epmtl" = "ipu_mtl";
|
||||
}.${ipuVersion};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "${ipu6-camera-bin.ipuVersion}-camera-hal";
|
||||
version = "unstable-2023-02-08";
|
||||
pname = "${ipuVersion}-camera-hal";
|
||||
version = "unstable-2023-09-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "ipu6-camera-hal";
|
||||
rev = "884b81aae0ea19a974eb8ccdaeef93038136bdd4";
|
||||
hash = "sha256-AePL7IqoOhlxhfPRLpCman5DNh3wYS4MUcLgmgBUcCM=";
|
||||
rev = "9fa05a90886d399ad3dda4c2ddc990642b3d20c9";
|
||||
hash = "sha256-yS1D7o6dsQ4FQkjfwcisOxcP7Majb+4uQ/iW5anMb5c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -29,25 +41,23 @@ stdenv.mkDerivation {
|
||||
pkg-config
|
||||
];
|
||||
|
||||
PKG_CONFIG_PATH = "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}/pkgconfig";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DIPU_VER=${ipu6-camera-bin.ipuVersion}"
|
||||
"-DIPU_VER=${ipuVersion}"
|
||||
# missing libiacss
|
||||
"-DUSE_PG_LITE_PIPE=ON"
|
||||
# missing libipu4
|
||||
"-DENABLE_VIRTUAL_IPU_PIPE=OFF"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-Wno-error"
|
||||
"-I${lib.getDev ipu6-camera-bin}/include/ia_imaging"
|
||||
"-I${lib.getDev ipu6-camera-bin}/include/ia_camera"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
expat
|
||||
ipu6-camera-bin
|
||||
ipu6-camera-bins
|
||||
libtool
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
@@ -59,12 +69,13 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/lib/pkgconfig/libcamhal.pc \
|
||||
--replace 'prefix=/usr' "prefix=$out"
|
||||
for lib in $out/lib/*.so; do
|
||||
patchelf --add-rpath "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}" $lib
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (ipu6-camera-bin) ipuVersion;
|
||||
inherit ipuVersion;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ autoconf automake libtool ];
|
||||
|
||||
# `autogen.sh` runs `configure`, and expects that any flags needed
|
||||
# by `configure` (like `--host`) are passed to `autogen.sh`.
|
||||
configureScript = "./autogen.sh";
|
||||
|
||||
nativeCheckInputs = [ python3 ];
|
||||
doCheck = true;
|
||||
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
{ ffmpeg_6-full
|
||||
, nv-codec-headers-12
|
||||
, chromaprint
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
}:
|
||||
|
||||
(ffmpeg_6-full.override {
|
||||
nv-codec-headers-11 = nv-codec-headers-12;
|
||||
}).overrideAttrs (old: rec {
|
||||
ffmpeg_6-full.overrideAttrs (old: rec {
|
||||
pname = "jellyfin-ffmpeg";
|
||||
version = "6.0-7";
|
||||
version = "6.0.1-1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jellyfin";
|
||||
repo = "jellyfin-ffmpeg";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Z4getn/mVYIRANkIOyt7jMpcqHBvq5GXLK/ST5zV1r4=";
|
||||
hash = "sha256-LMwGxx++z6TpZLnpeRGraid4653Mp8T4pY5EP4Z7GXY=";
|
||||
};
|
||||
|
||||
buildInputs = old.buildInputs ++ [ chromaprint ];
|
||||
|
||||
@@ -120,7 +120,8 @@ let
|
||||
kwindowsystem = callPackage ./kwindowsystem {};
|
||||
modemmanager-qt = callPackage ./modemmanager-qt.nix {};
|
||||
networkmanager-qt = callPackage ./networkmanager-qt.nix {};
|
||||
oxygen-icons5 = callPackage ./oxygen-icons5.nix {};
|
||||
oxygen-icons = callPackage ./oxygen-icons.nix {};
|
||||
oxygen-icons5 = oxygen-icons;
|
||||
prison = callPackage ./prison.nix {};
|
||||
qqc2-desktop-style = callPackage ./qqc2-desktop-style.nix {};
|
||||
solid = callPackage ./solid {};
|
||||
|
||||
@@ -1 +1 @@
|
||||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.112/ -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.113/ -A '*.tar.xz' )
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "oxygen-icons5";
|
||||
pname = "oxygen-icons";
|
||||
meta.license = lib.licenses.lgpl3Plus;
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [ qtbase ];
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,15 @@
|
||||
{ mkDerivation
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, cmake
|
||||
, qtbase
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
let
|
||||
isQt6 = lib.versions.major qtbase.version == "6";
|
||||
cmakeName = if isQt6 then "KDSoap-qt6" else "KDSoap";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "kdsoap";
|
||||
version = "2.1.1";
|
||||
|
||||
@@ -16,15 +20,17 @@ mkDerivation rec {
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
nativeBuildInputs = [ cmake wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ qtbase ];
|
||||
|
||||
cmakeFlags = [ (lib.cmakeBool "KDSoap_QT6" isQt6) ];
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput bin/kdwsdl2cpp "$dev"
|
||||
sed -i "$out/lib/cmake/KDSoap/KDSoapTargets.cmake" \
|
||||
moveToOutput bin/kdwsdl2cpp* "$dev"
|
||||
sed -i "$out/lib/cmake/${cmakeName}/KDSoapTargets.cmake" \
|
||||
-e "/^ INTERFACE_INCLUDE_DIRECTORIES/ c INTERFACE_INCLUDE_DIRECTORIES \"$dev/include\""
|
||||
sed -i "$out/lib/cmake/KDSoap/KDSoapTargets-release.cmake" \
|
||||
sed -i "$out/lib/cmake/${cmakeName}/KDSoapTargets-release.cmake" \
|
||||
-e "s@$out/bin@$dev/bin@"
|
||||
'';
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{ lib
|
||||
, mkDerivation
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, extra-cmake-modules
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kquickimageeditor";
|
||||
version = "0.3.0";
|
||||
|
||||
@@ -17,6 +19,9 @@ mkDerivation rec {
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [ qtbase qtdeclarative ];
|
||||
cmakeFlags = ["-DQT_MAJOR_VERSION=${lib.versions.major qtbase.version}"];
|
||||
dontWrapQtApps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Set of QtQuick components providing basic image editing capabilities";
|
||||
|
||||
@@ -9,11 +9,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libaom";
|
||||
version = "3.7.1";
|
||||
version = "3.8.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
|
||||
hash = "sha256-v2SBiDE4zZe3LMrlo/tP9GzmG/PJZ42rKi1svKJR6ZA=";
|
||||
hash = "sha256-JxMz+XnjmUvk8TlTqdU2HP1Gq3bXfcLkXp5AEv9+7hM=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ index e8fff2e77..b8a73aad4 100644
|
||||
- "CMAKE_INSTALL_LIBDIR" "CMAKE_PROJECT_NAME"
|
||||
+ "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_FULL_INCLUDEDIR"
|
||||
+ "CMAKE_INSTALL_FULL_LIBDIR" "CMAKE_PROJECT_NAME"
|
||||
"CONFIG_MULTITHREAD" "HAVE_PTHREAD_H")
|
||||
"CONFIG_MULTITHREAD")
|
||||
|
||||
foreach(arg ${REQUIRED_ARGS})
|
||||
@@ -35,15 +35,15 @@ else()
|
||||
|
||||
@@ -19,13 +19,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libavif";
|
||||
version = "1.0.2";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AOMediaCodec";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Ku0UgVBba1tHBzHjx5yf9hRAtbmXf2n4gEdAaGr3qTY=";
|
||||
hash = "sha256-0MLr9wdIs3c4pOAF4rlC8QNQXlrK3YGXILS9foVKfVM=";
|
||||
};
|
||||
|
||||
# reco: encode libaom slowest but best, decode dav1d fastest
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, cmake
|
||||
, pkg-config
|
||||
|
||||
, callPackage
|
||||
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||
hash = "sha256-aZRtF4wYWxi/6ORNu7yVxFFdkvJTvBwPinL5lC0Mlqg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
||||
@@ -2,11 +2,6 @@
|
||||
, fetchurl, autoreconfHook, gettext, freebsd, netbsd
|
||||
}:
|
||||
|
||||
# Note: this package is used for bootstrapping fetchurl, and thus
|
||||
# cannot use fetchpatch! All mutable patches (generated by GitHub or
|
||||
# cgit) that are needed here should be included directly in Nixpkgs as
|
||||
# files.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libelf";
|
||||
version = "0.8.13";
|
||||
@@ -52,18 +47,10 @@ stdenv.mkDerivation rec {
|
||||
(if stdenv.hostPlatform.isFreeBSD then [ freebsd.gencat ]
|
||||
else if stdenv.hostPlatform.isNetBSD then [ netbsd.gencat ]
|
||||
else [ gettext ])
|
||||
# Need to regenerate configure script with newer version in order to pass
|
||||
# "mr_cv_target_elf=yes" and determine integer sizes correctly when
|
||||
# cross-compiling, but `autoreconfHook` brings in `makeWrapper` which
|
||||
# doesn't work with the bootstrapTools bash, so can only do this for
|
||||
# cross builds when `stdenv.shell` is a newer bash.
|
||||
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform
|
||||
# The provided `configure` script fails on clang 16 because some tests have a `main`
|
||||
# returning an implicit `int`, which clang 16 treats as an error. Running `autoreconf` fixes
|
||||
# the test and allows `configure` to detect clang properly.
|
||||
# This is done only for clang on Darwin because the Darwin stdenv bootstrap does not use
|
||||
# libelf, so should be safe because it will always be run with a compatible version of bash.
|
||||
|| (stdenv.cc.isClang && stdenv.isDarwin)) autoreconfHook;
|
||||
++ [ autoreconfHook ];
|
||||
|
||||
meta = {
|
||||
description = "ELF object file access library";
|
||||
|
||||
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
|
||||
-e 's/NOEXECSTACK_FLAGS=$/NOEXECSTACK_FLAGS="-Wa,--noexecstack"/'
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Make sure libraries are correct for .pc and .la files
|
||||
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
|
||||
postFixup = ''
|
||||
@@ -66,6 +68,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
enableParallelChecking = true;
|
||||
|
||||
passthru.tests = {
|
||||
inherit gnupg libotr rsyslog;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtk3
|
||||
, libgee
|
||||
, gettext
|
||||
@@ -24,7 +23,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitea
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libjodycode";
|
||||
version = "3.1";
|
||||
|
||||
outputs = [ "out" "man" "dev" ];
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "jbruchon";
|
||||
repo = "libjodycode";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-uhWQh5YwLwYRm34nY5HvcEepqlTSDt9s3PSoD403kQM=";
|
||||
};
|
||||
|
||||
env.PREFIX = placeholder "out";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Shared code used by several utilities written by Jody Bruchon";
|
||||
homepage = "https://github.com/jbruchon/libjodycode";
|
||||
changelog = "https://github.com/jbruchon/libjodycode/blob/${src.rev}/CHANGES.txt";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ pbsds ];
|
||||
};
|
||||
}
|
||||
@@ -117,7 +117,6 @@ stdenv.mkDerivation rec {
|
||||
"-DJPEGXL_FORCE_NEON=ON"
|
||||
];
|
||||
|
||||
LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
|
||||
CXXFLAGS = lib.optionalString stdenv.hostPlatform.isAarch32 "-mfp16-format=ieee";
|
||||
|
||||
# FIXME x86_64-darwin:
|
||||
|
||||
@@ -2,15 +2,16 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libqaccessibilityclient";
|
||||
version = "0.4.1";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/libqaccessibilityclient/libqaccessibilityclient-${version}.tar.xz";
|
||||
sha256 = "sha256-HHaLT0MU/K4qB8t958sq4FIrXwK0Fzrz7ti/sqTYNCk=";
|
||||
hash = "sha256-cEdyVDo7AFuUBhpT6vn51klE5oGLBMWcD7ClA8gaxKA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||
buildInputs = [ qtbase ];
|
||||
cmakeFlags = ["-DQT_MAJOR_VERSION=${lib.versions.major qtbase.version}"];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{ stdenv, lib, fetchFromGitHub, cmake, olm, openssl, qtbase, qtmultimedia, qtkeychain }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
isQt6 = lib.versions.major qtbase.version == "6";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "libquotient";
|
||||
version = "0.8.1.2";
|
||||
|
||||
@@ -19,6 +21,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
cmakeFlags = [
|
||||
"-DQuotient_ENABLE_E2EE=ON"
|
||||
(lib.cmakeBool "BUILD_WITH_QT6" isQt6)
|
||||
];
|
||||
|
||||
# https://github.com/quotient-im/libQuotient/issues/551
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "librsvg";
|
||||
version = "2.57.0";
|
||||
version = "2.57.1";
|
||||
|
||||
outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [
|
||||
"devdoc"
|
||||
@@ -50,13 +50,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-M1/i4MLL8be/BmhlEiSiPhNUUfCxeTzYE2Sb4r/6dOg=";
|
||||
hash = "sha256-B0Zxo+1vvNZ8ripA5TkQf08JfKikqxqJTAXiUk/zQO8=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit (finalAttrs) src;
|
||||
name = "librsvg-deps-${finalAttrs.version}";
|
||||
hash = "sha256-P8W4z/MwSpP0xqrxoVZPAip7ymdIUL2+uP88Q2Y3hVU=";
|
||||
hash = "sha256-zICI7sps5KYe8/yWXbCJv529KxGLjoyDOmpCgVAIsTs=";
|
||||
# TODO: move this to fetchCargoTarball
|
||||
dontConfigure = true;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, testers
|
||||
|
||||
# for passthru.tests
|
||||
, gtk3
|
||||
, gtk4
|
||||
, sassc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -18,13 +27,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2022-26592.CVE-2022-43357.CVE-2022-43358.patch";
|
||||
url = "https://github.com/sass/libsass/pull/3184/commits/5bb0ea0c4b2ebebe542933f788ffacba459a717a.patch";
|
||||
hash = "sha256-DR6pKFWL70uJt//drzq34LeTzT8rUqgUTpgfUHpD2s4=";
|
||||
})
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
export LIBSASS_VERSION=${finalAttrs.version}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
passthru.tests = {
|
||||
inherit gtk3 gtk4 sassc;
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A C/C++ implementation of a Sass compiler";
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libsecret";
|
||||
version = "0.21.1";
|
||||
version = "0.21.2";
|
||||
|
||||
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Z09RMjpfdOTLfjJ32mi1r93TM+yiW8n9LYIKkpcvkLE=";
|
||||
hash = "sha256-5KNBSWoIFeZMjTuPq6sz17rn796rd7hDZpcx1bGB3O4=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user