Merge branch 'staging' into staging-next

This commit is contained in:
Vladimír Čunát
2023-12-20 12:09:56 +01:00
207 changed files with 2997 additions and 1489 deletions
+4 -3
View File
@@ -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
1 name src ref server version luaversion maintainers
7 busted
8 cassowary marsam alerque
9 cldr alerque
10 compat53 0.7-1 vcunat
11 cosmo marsam
12 coxpcall 1.17.0-1
13 cqueues vcunat
15 digestif https://github.com/astoff/digestif.git 5.3
16 dkjson
17 fennel misterio77
18 fidget.nvim mrcjkb
19 fifo
20 fluent alerque
21 fzy mrcjkb
55 lua-term
56 lua-toml
57 lua-zlib koral
58 lua_cliargs https://github.com/amireh/lua_cliargs.git
59 luabitop https://github.com/teto/luabitop.git
60 luacheck
61 luacov
86 luazip
87 lua-yajl pstn
88 lua-iconv 7.0.0
89 luuid 20120509-2
90 luv 1.44.2-1
91 lush.nvim https://github.com/rktjmp/lush.nvim teto
92 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.
+7 -9
View File
@@ -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");
};
};
};
}
+3
View File
@@ -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;
};
}
+4 -17
View File
@@ -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 ];
+2
View File
@@ -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 {};
+90
View File
@@ -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"
'';
})
+101
View File
@@ -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}'"
)
'';
})
+1 -7
View File
@@ -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
+6 -2
View File
@@ -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"
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
+1
View 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.
-2
View File
@@ -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])
+8 -13
View File
@@ -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" ([
+36
View File
@@ -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 ];
};
}
+41
View File
@@ -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
+3 -4
View File
@@ -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=";
};
+3 -2
View File
@@ -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
+2 -2
View File
@@ -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 = [
@@ -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 ];
+2 -11
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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";
+2 -2
View File
@@ -1,4 +1,4 @@
import ./generic.nix {
version = "6.0";
sha256 = "sha256-RVbgsafIbeUUNXmUbDQ03ZN42oaUo0njqROo7KOQgv0=";
version = "6.1";
hash = "sha256-NzhD2D16bCVCyCXo0TRwZYp3Ta5eFSfoQPa+iRkeNZg=";
}
+25 -24
View File
@@ -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:
+2 -2
View File
@@ -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 = [
+2 -2
View File
@@ -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
+5 -3
View File
@@ -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 = [
+2 -10
View File
@@ -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 = [
+11 -10
View File
@@ -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' )
@@ -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
+12 -6
View File
@@ -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;
+1 -14
View File
@@ -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;
};
+22 -2
View File
@@ -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