Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-04-13 00:02:05 +00:00 committed by GitHub
commit 5a301eda67
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
156 changed files with 4305 additions and 4346 deletions

View File

@ -2621,6 +2621,12 @@
githubId = 30630233;
name = "Timo Triebensky";
};
birkb = {
email = "birk@batchworks.de";
github = "birkb";
githubId = 10164833;
name = "Birk Bohne";
};
bjornfor = {
email = "bjorn.forsman@gmail.com";
github = "bjornfor";
@ -19615,6 +19621,12 @@
githubId = 2389333;
name = "Andy Tockman";
};
tcmal = {
email = "me@aria.rip";
github = "tcmal";
githubId = 4183876;
name = "Aria Shrimpton";
};
teatwig = {
email = "nix@teatwig.net";
name = "tea";
@ -20626,6 +20638,12 @@
githubId = 20206121;
name = "umlx5h";
};
uncenter = {
name = "uncenter";
email = "uncenter@uncenter.dev";
github = "uncenter";
githubId = 47499684;
};
unclamped = {
name = "Maru";
email = "clear6860@tutanota.com";

View File

@ -122,10 +122,7 @@ class KDERepoMetadata:
dep_graph={},
)
dep_specs = [
"dependency-data-common",
"dependency-data-kf6-qt6"
]
dep_specs = ["dependency-data-stable-kf6-qt6"]
dep_graph = collections.defaultdict(set)
for spec in dep_specs:

View File

@ -414,6 +414,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
- `akkoma` now requires explicitly setting the base URL for uploaded media (`settings."Pleroma.Upload".base_url`), as well as for the media proxy if enabled (`settings."Media"`).
This is recommended to be a separate (sub)domain to the one Akkoma is hosted at.
See [here](https://meta.akkoma.dev/t/akkoma-stable-2024-03-securer-i-barely-know-her/681#explicit-upload-and-media-proxy-domains-5) for more details.
- The `crystal` package has been updated to 1.11.x, which has some breaking changes.
Refer to crystal's changelog for more information. ([v1.10](https://github.com/crystal-lang/crystal/blob/master/CHANGELOG.md#1100-2023-10-09), [v1.11](https://github.com/crystal-lang/crystal/blob/master/CHANGELOG.md#1110-2024-01-08))
@ -578,6 +582,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
- The `drbd` out-of-tree Linux kernel driver has been added in version `9.2.7`. With it the DRBD 9.x features can be used instead of the 8.x features provided by the `8.4.11` in-tree driver.
- The oil shell's c++ version is now available as `oils-for-unix`. The python version is still available as `oil`
- `documentation.man.mandoc` now by default uses `MANPATH` to set the directories where mandoc will search for manual pages.

View File

@ -10,7 +10,8 @@ let
resolvconfOptions = cfg.extraOptions
++ optional cfg.dnsSingleRequest "single-request"
++ optional cfg.dnsExtensionMechanism "edns0";
++ optional cfg.dnsExtensionMechanism "edns0"
++ optional cfg.useLocalResolver "trust-ad";
configText =
''
@ -27,9 +28,7 @@ let
resolv_conf_options='${concatStringsSep " " resolvconfOptions}'
'' + optionalString cfg.useLocalResolver ''
# This hosts runs a full-blown DNS resolver.
name_servers='127.0.0.1'
'' + optionalString (cfg.useLocalResolver && config.networking.enableIPv6) ''
name_servers='::1'
name_servers='127.0.0.1${optionalString config.networking.enableIPv6 " ::1"}'
'' + cfg.extraConfig;
in

View File

@ -60,6 +60,9 @@ in
# This prevents nixos-rebuild from killing greetd by activating getty again
systemd.services."autovt@${tty}".enable = false;
# Enable desktop session data
services.displayManager.enable = lib.mkDefault true;
systemd.services.greetd = {
aliases = [ "display-manager.service" ];

View File

@ -1,46 +1,52 @@
{ config, lib, pkgs, ... }:
with lib;
let
toStr = value:
if true == value then "yes"
else if false == value then "no"
else toString value;
inherit (lib.attrsets) optionalAttrs;
inherit (lib.generators) toINIWithGlobalSection;
inherit (lib.lists) optional;
inherit (lib.modules) mkIf;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.strings) escape;
inherit (lib.types) attrsOf bool int lines oneOf str submodule;
cfg = config.services.davfs2;
format = pkgs.formats.toml { };
configFile = let
settings = mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings;
in pkgs.writeText "davfs2.conf" ''
${concatStringsSep "\n" settings}
${cfg.extraConfig}
'';
escapeString = escape ["\"" "\\"];
formatValue = value:
if true == value then "1"
else if false == value then "0"
else if builtins.isString value then "\"${escapeString value}\""
else toString value;
configFile = pkgs.writeText "davfs2.conf" (
if (cfg.settings != { }) then
(toINIWithGlobalSection {
mkSectionName = escapeString;
mkKeyValue = k: v: "${k} ${formatValue v}";
} cfg.settings)
else
cfg.extraConfig
);
in
{
options.services.davfs2 = {
enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable davfs2.
'';
};
enable = mkEnableOption "davfs2";
davUser = mkOption {
type = types.str;
type = str;
default = "davfs2";
description = lib.mdDoc ''
description = ''
When invoked by root the mount.davfs daemon will run as this user.
Value must be given as name, not as numerical id.
'';
};
davGroup = mkOption {
type = types.str;
type = str;
default = "davfs2";
description = lib.mdDoc ''
description = ''
The group of the running mount.davfs daemon. Ordinary users must be
member of this group in order to mount a davfs2 file system. Value must
be given as name, not as numerical id.
@ -48,14 +54,19 @@ in
};
extraConfig = mkOption {
type = types.lines;
type = lines;
default = "";
example = ''
kernel_fs coda
proxy foo.bar:8080
use_locks 0
[/media/dav]
use_locks 1
[/home/otto/mywebspace]
gui_optimize 1
'';
description = lib.mdDoc ''
description = ''
Extra lines appended to the configuration of davfs2.
See {manpage}`davfs2.conf(5)` for available settings.
@ -66,18 +77,30 @@ in
};
settings = mkOption {
type = types.submodule {
freeformType = format.type;
type = submodule {
freeformType = let
valueTypes = [ bool int str ];
in
attrsOf (attrsOf (oneOf (valueTypes ++ [ (attrsOf (oneOf valueTypes)) ] )));
};
default = {};
default = { };
example = literalExpression ''
{
kernel_fs = "coda";
proxy = "foo.bar:8080";
use_locks = 0;
globalSection = {
proxy = "foo.bar:8080";
use_locks = false;
};
sections = {
"/media/dav" = {
use_locks = true;
};
"/home/otto/mywebspace" = {
gui_optimize = true;
};
};
}
'';
description = lib.mdDoc ''
description = ''
Extra settings appended to the configuration of davfs2.
See {manpage}`davfs2.conf(5)` for available settings.
'' ;
@ -86,16 +109,29 @@ in
config = mkIf cfg.enable {
warnings = lib.optional (cfg.extraConfig != null) ''
services.davfs2.extraConfig will be deprecated in future releases, please use the settings option now.
assertions = [
{
assertion = cfg.extraConfig != "" -> cfg.settings == { };
message = ''
services.davfs2.extraConfig and services.davfs2.settings cannot be used together.
Please prefer using services.davfs2.settings.
'';
}
];
warnings = optional (cfg.extraConfig != "") ''
services.davfs2.extraConfig will be deprecated in future releases;
please use services.davfs2.settings instead.
'';
environment.systemPackages = [ pkgs.davfs2 ];
environment.etc."davfs2/davfs2.conf".source = configFile;
services.davfs2.settings = {
dav_user = cfg.davUser;
dav_group = cfg.davGroup;
globalSection = {
dav_user = cfg.davUser;
dav_group = cfg.davGroup;
};
};
users.groups = optionalAttrs (cfg.davGroup == "davfs2") {

View File

@ -764,6 +764,21 @@ in {
};
};
"Pleroma.Upload" = let
httpConf = cfg.config.":pleroma"."Pleroma.Web.Endpoint".url;
in {
base_url = mkOption {
type = types.nonEmptyStr;
default = if lib.versionOlder config.system.stateVersion "24.05"
then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}/media/"
else null;
description = mdDoc ''
Base path which uploads will be stored at.
Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.
'';
};
};
":frontends" = mkOption {
type = elixirValue;
default = mapAttrs
@ -781,6 +796,30 @@ in {
[{option}`config.services.akkoma.frontends`](#opt-services.akkoma.frontends).
'';
};
":media_proxy" = let
httpConf = cfg.config.":pleroma"."Pleroma.Web.Endpoint".url;
in {
enabled = mkOption {
type = types.bool;
default = false;
description = mdDoc ''
Whether to enable proxying of remote media through the instance's proxy.
'';
};
base_url = mkOption {
type = types.nullOr types.nonEmptyStr;
default = if lib.versionOlder config.system.stateVersion "24.05"
then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}/media/"
else null;
description = mdDoc ''
Base path for the media proxy.
Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.
'';
};
};
};
":web_push_encryption" = mkOption {
@ -904,6 +943,9 @@ in {
};
config = mkIf cfg.enable {
assertions = optionals (cfg.config.":pleroma".":media_proxy".enabled && cfg.config.":pleroma".":media_proxy".base_url == null) [''
`services.akkoma.config.":pleroma".":media_proxy".base_url` must be set when the media proxy is enabled.
''];
warnings = optionals (with config.security; (!sudo.enable) && (!sudo-rs.enable)) [''
The pleroma_ctl wrapper enabled by the installWrapper option relies on
sudo, which appears to have been disabled through security.sudo.enable.
@ -1083,6 +1125,6 @@ in {
};
};
meta.maintainers = with maintainers; [ mvs ];
meta.maintainers = with maintainers; [ mvs tcmal ];
meta.doc = ./akkoma.md;
}

View File

@ -36,7 +36,8 @@ let
${pkgs.toot}/bin/toot timeline -1 | grep -F -q "hello world Jamy here"
# Test file upload
${pkgs.toot}/bin/toot upload <(dd if=/dev/zero bs=1024 count=1024 status=none)
echo "y" | ${pkgs.toot}/bin/toot upload <(dd if=/dev/zero bs=1024 count=1024 status=none) \
| grep -F -q "https://akkoma.nixos.test:443/media"
'';
checkFe = pkgs.writers.writeBashBin "checkFe" ''
@ -90,6 +91,9 @@ in
"Pleroma.Web.Endpoint" = {
url.host = "akkoma.nixos.test";
};
"Pleroma.Upload" = {
base_url = "https://akkoma.nixos.test:443/media/";
};
};
};

View File

@ -593,8 +593,8 @@ in {
nimdow = handleTest ./nimdow.nix {};
neo4j = handleTest ./neo4j.nix {};
netdata = handleTest ./netdata.nix {};
networking.networkd = handleTest ./networking.nix { networkd = true; };
networking.scripted = handleTest ./networking.nix { networkd = false; };
networking.scripted = handleTest ./networking/networkd-and-scripted.nix { networkd = false; };
networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; };
netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; };
netbox_3_7 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_7; };
netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {};

View File

@ -31,11 +31,11 @@ import ./make-test-python.nix (
}
on drbd1 {
address ${nodes.drbd1.config.networking.primaryIPAddress}:${toString drbdPort};
address ${nodes.drbd1.networking.primaryIPAddress}:${toString drbdPort};
}
on drbd2 {
address ${nodes.drbd2.config.networking.primaryIPAddress}:${toString drbdPort};
address ${nodes.drbd2.networking.primaryIPAddress}:${toString drbdPort};
}
}
'';
@ -45,7 +45,7 @@ import ./make-test-python.nix (
{
name = "drbd";
meta = with pkgs.lib.maintainers; {
maintainers = [ ryantm astro ];
maintainers = [ ryantm astro birkb ];
};
nodes.drbd1 = drbdConfig;

View File

@ -4,98 +4,19 @@
# bool: whether to use networkd in the tests
, networkd }:
with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib;
with import ../../lib/testing-python.nix { inherit system pkgs; };
let
qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
router = { config, pkgs, lib, ... }:
with pkgs.lib;
let
vlanIfs = range 1 (length config.virtualisation.vlans);
in {
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
virtualisation.vlans = [ 1 2 3 ];
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useDHCP = false;
useNetworkd = networkd;
firewall.checkReversePath = true;
firewall.allowedUDPPorts = [ 547 ];
interfaces = mkOverride 0 (listToAttrs (forEach vlanIfs (n:
nameValuePair "eth${toString n}" {
ipv4.addresses = [ { address = "192.168.${toString n}.1"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "fd00:1234:5678:${toString n}::1"; prefixLength = 64; } ];
})));
};
services.kea = {
dhcp4 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
dhcp-socket-type = "raw";
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet4 = map (n: {
id = n;
subnet = "192.168.${toString n}.0/24";
pools = [{ pool = "192.168.${toString n}.3 - 192.168.${toString n}.254"; }];
option-data = [{ name = "routers"; data = "192.168.${toString n}.1"; }];
reservations = [{
hw-address = qemu-common.qemuNicMac n 1;
hostname = "client${toString n}";
ip-address = "192.168.${toString n}.2";
}];
}) vlanIfs;
};
};
dhcp6 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet6 = map (n: {
id = n;
subnet = "fd00:1234:5678:${toString n}::/64";
interface = "eth${toString n}";
pools = [{ pool = "fd00:1234:5678:${toString n}::2-fd00:1234:5678:${toString n}::2"; }];
}) vlanIfs;
};
};
};
services.radvd = {
enable = true;
config = flip concatMapStrings vlanIfs (n: ''
interface eth${toString n} {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix fd00:1234:5678:${toString n}::/64 {
AdvAutonomous off;
};
};
'');
};
};
lib = pkgs.lib;
router = import ./router.nix { inherit networkd; };
clientConfig = extraConfig: lib.recursiveUpdate {
networking.useDHCP = false;
networking.useNetworkd = networkd;
} extraConfig;
testCases = {
loopback = {
name = "Loopback";
nodes.client = { pkgs, ... }: with pkgs.lib; {
networking.useDHCP = false;
networking.useNetworkd = networkd;
};
nodes.client = clientConfig {};
testScript = ''
start_all()
client.wait_for_unit("network.target")
@ -107,12 +28,10 @@ let
static = {
name = "Static";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = clientConfig {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
networking = {
useNetworkd = networkd;
useDHCP = false;
defaultGateway = { address = "192.168.1.1"; interface = "enp1s0"; };
defaultGateway6 = { address = "fd00:1234:5678:1::1"; interface = "enp1s0"; };
interfaces.enp1s0.ipv4.addresses = [
@ -125,8 +44,7 @@ let
];
};
};
testScript = { ... }:
''
testScript = ''
start_all()
client.wait_for_unit("network.target")
@ -139,35 +57,23 @@ let
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
client.wait_until_succeeds("ping -c 1 192.168.1.2")
client.wait_until_succeeds("ping -c 1 192.168.1.3")
client.wait_until_succeeds("ping -c 1 192.168.1.10")
router.wait_until_succeeds("ping -c 1 192.168.1.1")
router.wait_until_succeeds("ping -c 1 192.168.1.2")
router.wait_until_succeeds("ping -c 1 192.168.1.3")
router.wait_until_succeeds("ping -c 1 192.168.1.10")
with subtest("Test vlan 2"):
client.wait_until_succeeds("ping -c 1 192.168.2.1")
client.wait_until_succeeds("ping -c 1 192.168.2.2")
router.wait_until_succeeds("ping -c 1 192.168.2.1")
router.wait_until_succeeds("ping -c 1 192.168.2.2")
with subtest("Test default gateway"):
router.wait_until_succeeds("ping -c 1 192.168.3.1")
client.wait_until_succeeds("ping -c 1 192.168.3.1")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
'';
};
routeType = {
name = "RouteType";
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = clientConfig {
networking = {
useDHCP = false;
useNetworkd = networkd;
interfaces.eth1.ipv4.routes = [{
address = "192.168.1.127";
prefixLength = 32;
@ -184,7 +90,7 @@ let
dhcpDefault = {
name = "useDHCP-by-default";
nodes.router = router;
nodes.client = { lib, ... }: {
nodes.client = {
# Disable test driver default config
networking.interfaces = lib.mkForce {
# Make sure DHCP defaults correctly even when some unrelated config
@ -198,28 +104,22 @@ let
start_all()
client.wait_for_unit("multi-user.target")
client.wait_until_succeeds("ip addr show dev enp1s0 | grep '192.168.1'")
client.shell_interact()
client.succeed("ping -c 1 192.168.1.1")
router.succeed("ping -c 1 192.168.1.1")
router.succeed("ping -c 1 192.168.1.2")
client.succeed("ping -c 1 192.168.1.2")
'';
};
dhcpSimple = {
name = "SimpleDHCP";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = clientConfig {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.useDHCP = true;
interfaces.enp2s0.useDHCP = true;
};
};
testScript = { ... }:
''
testScript = ''
start_all()
client.wait_for_unit("network.target")
@ -234,44 +134,31 @@ let
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
client.wait_until_succeeds("ping -c 1 192.168.1.2")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::2")
router.wait_until_succeeds("ping -c 1 192.168.1.1")
router.wait_until_succeeds("ping -c 1 192.168.1.2")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::2")
with subtest("Test vlan 2"):
client.wait_until_succeeds("ping -c 1 192.168.2.1")
client.wait_until_succeeds("ping -c 1 192.168.2.2")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:2::1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:2::2")
router.wait_until_succeeds("ping -c 1 192.168.2.1")
router.wait_until_succeeds("ping -c 1 192.168.2.2")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:2::1")
router.wait_until_succeeds("ping -c 1 fd00:1234:5678:2::2")
'';
};
dhcpOneIf = {
name = "OneInterfaceDHCP";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = clientConfig {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
mtu = 1343;
useDHCP = true;
};
};
};
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to come up"):
@ -286,9 +173,6 @@ let
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
client.wait_until_succeeds("ping -c 1 192.168.1.2")
router.wait_until_succeeds("ping -c 1 192.168.1.1")
router.wait_until_succeeds("ping -c 1 192.168.1.2")
with subtest("Test vlan 2"):
@ -300,17 +184,15 @@ let
'';
};
bond = let
node = address: { pkgs, ... }: with pkgs.lib; {
node = address: clientConfig {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
networking = {
useNetworkd = networkd;
useDHCP = false;
bonds.bond0 = {
interfaces = [ "enp1s0" "enp2s0" ];
driverOptions.mode = "802.3ad";
};
interfaces.bond0.ipv4.addresses = mkOverride 0
interfaces.bond0.ipv4.addresses = lib.mkOverride 0
[ { inherit address; prefixLength = 30; } ];
};
};
@ -318,8 +200,7 @@ let
name = "Bond";
nodes.client1 = node "192.168.1.1";
nodes.client2 = node "192.168.1.2";
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to come up"):
@ -339,7 +220,7 @@ let
'';
};
bridge = let
node = { address, vlan }: { pkgs, ... }: with pkgs.lib; {
node = { address, vlan }: { pkgs, ... }: {
virtualisation.interfaces.enp1s0.vlan = vlan;
networking = {
useNetworkd = networkd;
@ -351,21 +232,20 @@ let
name = "Bridge";
nodes.client1 = node { address = "192.168.1.2"; vlan = 1; };
nodes.client2 = node { address = "192.168.1.3"; vlan = 2; };
nodes.router = { pkgs, ... }: with pkgs.lib; {
nodes.router = {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
networking = {
useNetworkd = networkd;
useDHCP = false;
bridges.bridge.interfaces = [ "enp1s0" "enp2s0" ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
interfaces.bridge.ipv4.addresses = mkOverride 0
interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [ ];
interfaces.eth2.ipv4.addresses = lib.mkOverride 0 [ ];
interfaces.bridge.ipv4.addresses = lib.mkOverride 0
[ { address = "192.168.1.1"; prefixLength = 24; } ];
};
};
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to come up"):
@ -389,7 +269,7 @@ let
macvlan = {
name = "MACVLAN";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = { pkgs, ... }: {
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
@ -404,8 +284,7 @@ let
interfaces.macvlan.useDHCP = true;
};
};
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to come up"):
@ -439,34 +318,31 @@ let
};
fou = {
name = "foo-over-udp";
nodes.machine = { ... }: {
nodes.machine = clientConfig {
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
fooOverUDP = {
fou1 = { port = 9001; };
fou2 = { port = 9002; protocol = 41; };
fou3 = mkIf (!networkd)
fou3 = lib.mkIf (!networkd)
{ port = 9003; local.address = "192.168.1.1"; };
fou4 = mkIf (!networkd)
fou4 = lib.mkIf (!networkd)
{ port = 9004; local = { address = "192.168.1.1"; dev = "enp1s0"; }; };
};
};
systemd.services = {
fou3-fou-encap.after = optional (!networkd) "network-addresses-enp1s0.service";
fou3-fou-encap.after = lib.optional (!networkd) "network-addresses-enp1s0.service";
};
};
testScript = { ... }:
''
testScript = ''
import json
machine.wait_for_unit("network.target")
fous = json.loads(machine.succeed("ip -json fou show"))
assert {"port": 9001, "gue": None, "family": "inet"} in fous, "fou1 exists"
assert {"port": 9002, "ipproto": 41, "family": "inet"} in fous, "fou2 exists"
'' + optionalString (!networkd) ''
'' + lib.optionalString (!networkd) ''
assert {
"port": 9003,
"gue": None,
@ -483,7 +359,7 @@ let
'';
};
sit = let
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
node = { address4, remote, address6 }: { pkgs, ... }: {
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
@ -493,9 +369,9 @@ let
local = address4;
dev = "enp1s0";
};
interfaces.enp1s0.ipv4.addresses = mkOverride 0
interfaces.enp1s0.ipv4.addresses = lib.mkOverride 0
[ { address = address4; prefixLength = 24; } ];
interfaces.sit.ipv6.addresses = mkOverride 0
interfaces.sit.ipv6.addresses = lib.mkOverride 0
[ { address = address6; prefixLength = 64; } ];
};
};
@ -506,7 +382,7 @@ let
# client2 does the reverse, sending in proto-41 and accepting only UDP incoming.
# that way we'll notice when either SIT itself or FOU breaks.
nodes.client1 = args@{ pkgs, ... }:
mkMerge [
lib.mkMerge [
(node { address4 = "192.168.1.1"; remote = "192.168.1.2"; address6 = "fc00::1"; } args)
{
networking = {
@ -516,7 +392,7 @@ let
}
];
nodes.client2 = args@{ pkgs, ... }:
mkMerge [
lib.mkMerge [
(node { address4 = "192.168.1.2"; remote = "192.168.1.1"; address6 = "fc00::2"; } args)
{
networking = {
@ -525,8 +401,7 @@ let
};
}
];
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
@ -546,7 +421,7 @@ let
'';
};
gre = let
node = { pkgs, ... }: with pkgs.lib; {
node = { ... }: {
networking = {
useNetworkd = networkd;
useDHCP = false;
@ -556,7 +431,7 @@ let
in {
name = "GRE";
nodes.client1 = args@{ pkgs, ... }:
mkMerge [
lib.mkMerge [
(node args)
{
virtualisation.vlans = [ 1 2 4 ];
@ -578,21 +453,21 @@ let
};
};
bridges.bridge.interfaces = [ "greTunnel" "eth1" ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [];
interfaces.bridge.ipv4.addresses = mkOverride 0 [
interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [];
interfaces.bridge.ipv4.addresses = lib.mkOverride 0 [
{ address = "192.168.1.1"; prefixLength = 24; }
];
interfaces.eth3.ipv6.addresses = [
{ address = "fd00:1234:5678:4::1"; prefixLength = 64; }
];
interfaces.gre6Tunnel.ipv6.addresses = mkOverride 0 [
interfaces.gre6Tunnel.ipv6.addresses = lib.mkOverride 0 [
{ address = "fc00::1"; prefixLength = 64; }
];
};
}
];
nodes.client2 = args@{ pkgs, ... }:
mkMerge [
lib.mkMerge [
(node args)
{
virtualisation.vlans = [ 2 3 4 ];
@ -614,21 +489,20 @@ let
};
};
bridges.bridge.interfaces = [ "greTunnel" "eth2" ];
interfaces.eth2.ipv4.addresses = mkOverride 0 [];
interfaces.bridge.ipv4.addresses = mkOverride 0 [
interfaces.eth2.ipv4.addresses = lib.mkOverride 0 [];
interfaces.bridge.ipv4.addresses = lib.mkOverride 0 [
{ address = "192.168.1.2"; prefixLength = 24; }
];
interfaces.eth3.ipv6.addresses = [
{ address = "fd00:1234:5678:4::2"; prefixLength = 64; }
];
interfaces.gre6Tunnel.ipv6.addresses = mkOverride 0 [
interfaces.gre6Tunnel.ipv6.addresses = lib.mkOverride 0 [
{ address = "fc00::2"; prefixLength = 64; }
];
};
}
];
testScript = { ... }:
''
testScript = ''
import json
start_all()
@ -658,8 +532,7 @@ let
'';
};
vlan = let
node = address: { pkgs, ... }: with pkgs.lib; {
#virtualisation.vlans = [ 1 ];
node = address: {
networking = {
useNetworkd = networkd;
useDHCP = false;
@ -667,9 +540,9 @@ let
id = 1;
interface = "eth0";
};
interfaces.eth0.ipv4.addresses = mkOverride 0 [ ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
interfaces.vlan.ipv4.addresses = mkOverride 0
interfaces.eth0.ipv4.addresses = lib.mkOverride 0 [ ];
interfaces.eth1.ipv4.addresses = lib.mkOverride 0 [ ];
interfaces.vlan.ipv4.addresses = lib.mkOverride 0
[ { inherit address; prefixLength = 24; } ];
};
};
@ -677,8 +550,7 @@ let
name = "vlan";
nodes.client1 = node "192.168.1.1";
nodes.client2 = node "192.168.1.2";
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
@ -695,14 +567,14 @@ let
vlanIP = number: "10.1.1.${number}";
baseInterface = "enp1s0";
vlanInterface = "vlan42";
node = number: {pkgs, ... }: with pkgs.lib; {
node = number: {
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
#useNetworkd = networkd;
useDHCP = false;
vlans.${vlanInterface} = { id = 42; interface = baseInterface; };
interfaces.${baseInterface}.ipv4.addresses = mkOverride 0 [{ address = baseIP number; prefixLength = 24; }];
interfaces.${vlanInterface}.ipv4.addresses = mkOverride 0 [{ address = vlanIP number; prefixLength = 24; }];
interfaces.${baseInterface}.ipv4.addresses = lib.mkOverride 0 [{ address = baseIP number; prefixLength = 24; }];
interfaces.${vlanInterface}.ipv4.addresses = lib.mkOverride 0 [{ address = vlanIP number; prefixLength = 24; }];
};
};
@ -713,8 +585,7 @@ let
name = "vlan-ping";
nodes.server = node serverNodeNum;
nodes.client = node clientNodeNum;
testScript = { ... }:
''
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
@ -778,7 +649,7 @@ let
machine.wait_until_succeeds("ip link show dev tun0 | grep 'mtu 1343'")
assert "02:de:ad:be:ef:01" in machine.succeed("ip link show dev tap0")
'' # network-addresses-* only exist in scripted networking
+ optionalString (!networkd) ''
+ lib.optionalString (!networkd) ''
with subtest("Test interfaces clean up"):
machine.succeed("systemctl stop network-addresses-tap0")
machine.sleep(10)
@ -792,13 +663,13 @@ let
};
privacy = {
name = "Privacy";
nodes.router = { ... }: {
nodes.router = {
virtualisation.interfaces.enp1s0.vlan = 1;
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.ipv6.addresses = singleton {
interfaces.enp1s0.ipv6.addresses = lib.singleton {
address = "fd00:1234:5678:1::1";
prefixLength = 64;
};
@ -819,34 +690,33 @@ let
'';
};
};
nodes.client_with_privacy = { pkgs, ... }: with pkgs.lib; {
nodes.client_with_privacy = {
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
tempAddress = "default";
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
ipv4.addresses = lib.mkOverride 0 [ ];
ipv6.addresses = lib.mkOverride 0 [ ];
useDHCP = true;
};
};
};
nodes.client = { pkgs, ... }: with pkgs.lib; {
nodes.client = {
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
tempAddress = "enabled";
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
ipv4.addresses = lib.mkOverride 0 [ ];
ipv6.addresses = lib.mkOverride 0 [ ];
useDHCP = true;
};
};
};
testScript = { ... }:
''
testScript = ''
start_all()
client.wait_for_unit("network.target")
@ -943,7 +813,7 @@ let
ipv6Table, targetIPv6Table
)
'' + optionalString (!networkd) ''
'' + lib.optionalString (!networkd) ''
with subtest("test clean-up of the tables"):
machine.succeed("systemctl stop network-addresses-eth0")
ipv4Residue = machine.succeed("ip -4 route list dev eth0 | head -n-3").strip()
@ -958,7 +828,7 @@ let
};
rename = if networkd then {
name = "RenameInterface";
nodes.machine = { pkgs, ... }: {
nodes.machine = {
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
@ -982,7 +852,7 @@ let
# (as it's handled by udev, not networkd)
link = {
name = "Link";
nodes.client = { pkgs, ... }: {
nodes.client = {
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
@ -1007,7 +877,7 @@ let
testMac = "06:00:00:00:02:00";
in {
name = "WlanInterface";
nodes.machine = { pkgs, ... }: {
nodes.machine = {
boot.kernelModules = [ "mac80211_hwsim" ];
networking.wlanInterfaces = {
wlan0 = { device = "wlan0"; };
@ -1033,10 +903,10 @@ let
];
in {
name = "naughtyInterfaceNames";
nodes.machine = { pkgs, ... }: {
nodes.machine = {
networking.useNetworkd = networkd;
networking.bridges = listToAttrs
(flip map ifnames
networking.bridges = lib.listToAttrs
(lib.flip builtins.map ifnames
(name: { inherit name; value.interfaces = []; }));
};
testScript = ''
@ -1048,7 +918,7 @@ let
};
caseSensitiveRenaming = {
name = "CaseSensitiveRenaming";
nodes.machine = { pkgs, ... }: {
nodes.machine = {
virtualisation.interfaces.enCustom.vlan = 11;
networking = {
useNetworkd = networkd;
@ -1063,6 +933,6 @@ let
};
};
in mapAttrs (const (attrs: makeTest (attrs // {
in lib.mapAttrs (lib.const (attrs: makeTest (attrs // {
name = "${attrs.name}-Networking-${if networkd then "Networkd" else "Scripted"}";
}))) testCases

View File

@ -0,0 +1,82 @@
{ networkd }: { config, pkgs, ... }:
let
inherit (pkgs) lib;
qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
vlanIfs = lib.range 1 (lib.length config.virtualisation.vlans);
in {
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
virtualisation.vlans = [ 1 2 3 ];
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useDHCP = false;
useNetworkd = networkd;
firewall.checkReversePath = true;
firewall.allowedUDPPorts = [ 547 ];
interfaces = lib.mkOverride 0 (lib.listToAttrs (lib.forEach vlanIfs (n:
lib.nameValuePair "eth${toString n}" {
ipv4.addresses = [ { address = "192.168.${toString n}.1"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "fd00:1234:5678:${toString n}::1"; prefixLength = 64; } ];
})));
};
services.kea = {
dhcp4 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
dhcp-socket-type = "raw";
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet4 = map (n: {
id = n;
subnet = "192.168.${toString n}.0/24";
pools = [{ pool = "192.168.${toString n}.3 - 192.168.${toString n}.254"; }];
option-data = [
{ data = "192.168.${toString n}.1"; name = "routers"; }
{ data = "192.168.${toString n}.1"; name = "domain-name-servers"; }
];
reservations = [{
hw-address = qemu-common.qemuNicMac n 1;
hostname = "client${toString n}";
ip-address = "192.168.${toString n}.2";
}];
}) vlanIfs;
};
};
dhcp6 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet6 = map (n: {
id = n;
subnet = "fd00:1234:5678:${toString n}::/64";
interface = "eth${toString n}";
pools = [{ pool = "fd00:1234:5678:${toString n}::2-fd00:1234:5678:${toString n}::2"; }];
}) vlanIfs;
};
};
};
services.radvd = {
enable = true;
config = lib.flip lib.concatMapStrings vlanIfs (n: ''
interface eth${toString n} {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
prefix fd00:1234:5678:${toString n}::/64 {
AdvAutonomous off;
};
};
'');
};
}

View File

@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec {
pname = "mopidy-jellyfin";
version = "1.0.4";
version = "1.0.5";
src = fetchPypi {
inherit version;
pname = "Mopidy-Jellyfin";
sha256 = "ny0u6HdOlZCsmIzZuQ1rql+bvHU3xkh8IdwhJVHNH9c=";
sha256 = "sha256-cZliraTxTAJ2dXaxttWI3x4wCkmEhEo33GTNtAYwgTc=";
};
propagatedBuildInputs = [ mopidy python3Packages.unidecode python3Packages.websocket-client ];

View File

@ -6,13 +6,13 @@
python3Packages.buildPythonApplication rec {
pname = "pyradio";
version = "0.9.3.1";
version = "0.9.3.2";
src = fetchFromGitHub {
owner = "coderholic";
repo = "pyradio";
rev = "refs/tags/${version}";
hash = "sha256-p3F4uN+hkxGp+216abUkFNM5uF/0e0sQHKk5WIpULso=";
hash = "sha256-aIWU68bdPUsIh8QRNnF0NcK7FemmYyUHbJg9KcUALBk=";
};
nativeBuildInputs = [

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "vgmstream";
version = "1896";
version = "1917";
src = fetchFromGitHub {
owner = "vgmstream";
repo = "vgmstream";
rev = "refs/tags/r${version}";
sha256 = "sha256-1BWJgV631MxxzdUtK8f+XRb9cqfhjlwN2LgWI0VmIHE=";
sha256 = "sha256-9HIa5/whdLouUWNFml7tPfXStIkO76dxUl5S4yiat64=";
};
passthru.updateScript = nix-update-script {

View File

@ -38,11 +38,11 @@ let
in
stdenv.mkDerivation rec {
pname = "bisq-desktop";
version = "1.9.14";
version = "1.9.15";
src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
sha256 = "0xbq94qbp59523xjp80bly38aisfwkfi0y9hmyhf8xlw084b82kz";
sha256 = "0bz4yzfrzn9rwsmwwnsqdgxsqd42dyiz3vxi53qxj36h49nh8lzg";
};
nativeBuildInputs = [

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "gridcoin-research";
version = "5.4.7.0";
version = "5.4.8.0";
src = fetchFromGitHub {
owner = "gridcoin-community";
repo = "Gridcoin-Research";
rev = "${version}";
sha256 = "sha256-wdXah7QnWohGAtC98exPSkhg5F3BaBOiFs6bklFxD7E=";
sha256 = "sha256-HZirzXkqM2aep+wq8k2UCFWHPtN0sBZXjamgt7RYPBo=";
};
nativeBuildInputs = [

View File

@ -8,13 +8,13 @@
mkDerivation rec {
pname = "heimer";
version = "4.3.0";
version = "4.4.0";
src = fetchFromGitHub {
owner = "juzzlin";
repo = pname;
rev = version;
hash = "sha256-VIlNahpSRQNpfOKXnI/GQANuhZ+vnoXsudwHmRbHIjs=";
hash = "sha256-47bQmT2bHcbWpeosuF/vpSJcws4SqTmalY/XFEf7cxQ=";
};
nativeBuildInputs = [

View File

@ -108,13 +108,13 @@ in {
application = mkSweetHome3D rec {
pname = lib.toLower module + "-application";
version = "7.2";
version = "7.3";
module = "SweetHome3D";
description = "Design and visualize your future home";
license = lib.licenses.gpl2Plus;
src = fetchzip {
url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
hash = "sha256-RVuwxL/YATqHoQuc25ZaYgZ+o2rMOqnzU8/LLxb5Ra4=";
hash = "sha256-adMQzQE+xAZpMJyQFm01A+AfvcB5YHsJvk+533BUf1Q=";
};
desktopName = "Sweet Home 3D";
icons = {

View File

@ -1,21 +1,24 @@
# Expression generated by update.sh; do not edit it by hand!
{ stdenv, callPackage }:
{ stdenv, callPackage, ... }@args:
if stdenv.isAarch64 then
callPackage ./make-brave.nix { } {
pname = "brave";
version = "1.64.116";
url = "https://github.com/brave/brave-browser/releases/download/v1.64.116/brave-browser_1.64.116_arm64.deb";
hash = "sha256-XC3GnutiTYdCOJPegj8MRYC5dRrBoKBg4k50ZFrlj4E=";
platform = "aarch64-linux";
}
else if stdenv.isx86_64 then
callPackage ./make-brave.nix { } {
pname = "brave";
version = "1.64.116";
url = "https://github.com/brave/brave-browser/releases/download/v1.64.116/brave-browser_1.64.116_amd64.deb";
hash = "sha256-mnvFPfZu44TZGdUb+AxaJbecQrXkIzJkYvB4GO55uv0=";
platform = "x86_64-linux";
}
else
throw "Unsupported platform."
callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
(
if stdenv.isAarch64 then
{
pname = "brave";
version = "1.64.122";
url = "https://github.com/brave/brave-browser/releases/download/v1.64.122/brave-browser_1.64.122_arm64.deb";
hash = "sha256-PBYiCTy/QaPfxvWAzUnXLEzBELISNSKX0kG/mYTDDEA=";
platform = "aarch64-linux";
}
else if stdenv.isx86_64 then
{
pname = "brave";
version = "1.64.122";
url = "https://github.com/brave/brave-browser/releases/download/v1.64.122/brave-browser_1.64.122_amd64.deb";
hash = "sha256-9tSoOn9XGbX/b8n9vD9Hmpi26jzmUVJomoCFdSJoaoU=";
platform = "x86_64-linux";
}
else
throw "Unsupported platform."
)

View File

@ -19,24 +19,27 @@ hashAmd64="$(nix hash to-sri --type sha256 \
cat > $SCRIPT_DIR/default.nix << EOF
# Expression generated by update.sh; do not edit it by hand!
{ stdenv, callPackage }:
{ stdenv, callPackage, ... }@args:
if stdenv.isAarch64 then
callPackage ./make-brave.nix { } {
pname = "brave";
version = "${latestVersionAarch64}";
url = "https://github.com/brave/brave-browser/releases/download/v${latestVersionAarch64}/brave-browser_${latestVersionAarch64}_arm64.deb";
hash = "${hashAarch64}";
platform = "aarch64-linux";
}
else if stdenv.isx86_64 then
callPackage ./make-brave.nix { } {
pname = "brave";
version = "${latestVersionAmd64}";
url = "https://github.com/brave/brave-browser/releases/download/v${latestVersionAmd64}/brave-browser_${latestVersionAmd64}_amd64.deb";
hash = "${hashAmd64}";
platform = "x86_64-linux";
}
else
throw "Unsupported platform."
callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
(
if stdenv.isAarch64 then
{
pname = "brave";
version = "${latestVersionAarch64}";
url = "https://github.com/brave/brave-browser/releases/download/v${latestVersionAarch64}/brave-browser_${latestVersionAmd64}_arm64.deb";
hash = "${hashAarch64}";
platform = "aarch64-linux";
}
else if stdenv.isx86_64 then
{
pname = "brave";
version = "${latestVersionAmd64}";
url = "https://github.com/brave/brave-browser/releases/download/v${latestVersionAmd64}/brave-browser_${latestVersionAmd64}_amd64.deb";
hash = "${hashAmd64}";
platform = "x86_64-linux";
}
else
throw "Unsupported platform."
)
EOF

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "signalbackup-tools";
version = "20240406";
version = "20240412-2";
src = fetchFromGitHub {
owner = "bepaald";
repo = pname;
rev = version;
hash = "sha256-Yc6QlEtN73zy3onckxC80QOmSrW5MPn4+rnWE7WEPug=";
hash = "sha256-e+QA8pqMz/XH+JpKErGYWKwsxHoFPTsFrSremfOaVbg=";
};
postPatch = ''

View File

@ -20,18 +20,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "teams-for-linux";
version = "1.4.17";
version = "1.4.22";
src = fetchFromGitHub {
owner = "IsmaelMartinez";
repo = "teams-for-linux";
rev = "v${finalAttrs.version}";
hash = "sha256-fpz3JzJ6RaSajCwc44Uavln572mT5ixLnIK8FFoKWMg=";
hash = "sha256-eNd12p9QvuYpiy9FaGaMSfQ3qVYzmYyO2/v/rdV3nN8=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-/8Jxly02EZxp5JZ3mVlv01aWX53V9eSy0pvVMfpb9I0=";
hash = "sha256-jBwyIyiWeqNmOnxmVOr7c4oMWwHElEjM25sShhTMi78=";
};
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ];

View File

@ -11,7 +11,7 @@
, configText ? ""
}:
let
version = "2312";
version = "2312.1";
sysArch =
if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@ -36,8 +36,8 @@ let
pname = "vmware-horizon-files";
inherit version;
src = fetchurl {
url = "https://download3.vmware.com/software/CART24FQ4_LIN_2312_TARBALL/VMware-Horizon-Client-Linux-2312-8.12.0-23149323.tar.gz";
sha256 = "15ca1d6028b9ca88e23fa363a2942fd76456c19e95ced4734595c3dc44db38d8";
url = "https://download3.vmware.com/software/CART25FQ1_LIN_2312.1_TARBALL/VMware-Horizon-Client-Linux-2312.1-8.12.1-23543969.tar.gz";
sha256 = "23d18be2955ba60ab3cca941a529fa3b804af97ebf1602d246ca6147cced8135";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''

View File

@ -129,7 +129,7 @@ let
in stdenv.mkDerivation rec {
pname = "mujoco";
version = "3.1.3";
version = "3.1.4";
# Bumping version? Make sure to look though the MuJoCo's commit
# history for bumped dependency pins!
@ -137,7 +137,7 @@ in stdenv.mkDerivation rec {
owner = "google-deepmind";
repo = "mujoco";
rev = "refs/tags/${version}";
hash = "sha256-22yH3zAD479TRNS3XSqy6PuuLqyWmjvwScUTVfKumzY=";
hash = "sha256-VgD6ditMDpHki7l23Gjip2roA8Oi4MGpxl+4gSLTEFs=";
};
patches = [ ./mujoco-system-deps-dont-fetch.patch ];

View File

@ -67,6 +67,7 @@ let
chapterskip = callPackage ./chapterskip.nix { };
convert = callPackage ./convert.nix { };
cutter = callPackage ./cutter.nix { };
dynamic-crop = callPackage ./dynamic-crop.nix { };
inhibit-gnome = callPackage ./inhibit-gnome.nix { };
modernx = callPackage ./modernx.nix { };
modernx-zydezu = callPackage ./modernx-zydezu.nix { };

View File

@ -0,0 +1,26 @@
{ lib
, fetchFromGitHub
, unstableGitUpdater
, buildLua
}:
buildLua {
pname = "dynamic-crop";
version = "0-unstable-2023-12-22";
src = fetchFromGitHub {
owner = "Ashyni";
repo = "mpv-scripts";
rev = "c79a46ba03631eb2a9b4f598aab0b723f03fc531";
hash = "sha256-W4Dj2tyJHeHLqAndrzllKs4iwMe3Tu8rfzEGBHuke6s=";
};
passthru.scriptName = "dynamic-crop.lua";
passthru.updateScript = unstableGitUpdater { };
meta = {
description = ''Script to "cropping" dynamically, hard-coded black bars detected with lavfi-cropdetect filter for Ultra Wide Screen or any screen (Smartphone/Tablet).'';
homepage = "https://github.com/Ashyni/mpv-scripts";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.iynaix ];
};
}

View File

@ -294,9 +294,23 @@ rec {
};
docker_25 = callPackage dockerGen rec {
version = "25.0.3";
version = "25.0.5";
cliRev = "v${version}";
cliHash = "sha256-Jvb0plV1O/UzrcpzN4zH5OulmTVF+p9UQQQ9xqkiObQ=";
cliHash = "sha256-CACMi3bXUN6oGc2f/Z+lNQqMgQ4llRWPRKgijdpiPGg=";
mobyRev = "v${version}";
mobyHash = "sha256-4QGz22fXxyAD77pyUWb2lF3VKqxmPIrGqcJGoyrEHew=";
runcRev = "v1.1.12";
runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
containerdRev = "v1.7.13";
containerdHash = "sha256-y3CYDZbA2QjIn1vyq/p1F1pAVxQHi/0a6hGWZCRWzyk=";
tiniRev = "v0.19.0";
tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
};
docker_26 = callPackage dockerGen rec {
version = "26.0.0";
cliRev = "v${version}";
cliHash = "sha256-jGg/AVnIzI8e+DdF0uKlSZApRxcwuOjCQpfnBaCY4fI=";
mobyRev = "v${version}";
mobyHash = "sha256-cDlRVdQNzH/X2SJUYHK1QLUHlKQtSyRYCVbz3wPx1ZM=";
runcRev = "v1.1.12";
@ -306,4 +320,5 @@ rec {
tiniRev = "v0.19.0";
tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
};
}

View File

@ -0,0 +1,57 @@
From: Geoffrey McRae <geoff@hostfission.com>
Date: Wed, 13 Mar 2024 11:17:25 +1100
Subject: [PATCH] [client] cmake: move X11 config directives to
`displayservers`
---
client/CMakeLists.txt | 7 -------
client/displayservers/CMakeLists.txt | 7 +++++++
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git client/CMakeLists.txt client/CMakeLists.txt
index 3755adcf..eeeb3eb0 100644
--- client/CMakeLists.txt
+++ client/CMakeLists.txt
@@ -42,19 +42,12 @@ add_feature_info(ENABLE_ASAN ENABLE_ASAN "AddressSanitizer support.")
option(ENABLE_UBSAN "Build with UndefinedBehaviorSanitizer" OFF)
add_feature_info(ENABLE_UBSAN ENABLE_UBSAN "UndefinedBehaviorSanitizer support.")
-option(ENABLE_X11 "Build with X11 support" ON)
-add_feature_info(ENABLE_X11 ENABLE_X11 "X11 support.")
-
option(ENABLE_PIPEWIRE "Build with PipeWire audio output support" ON)
add_feature_info(ENABLE_PIPEWIRE ENABLE_PIPEWIRE "PipeWire audio support.")
option(ENABLE_PULSEAUDIO "Build with PulseAudio audio output support" ON)
add_feature_info(ENABLE_PULSEAUDIO ENABLE_PULSEAUDIO "PulseAudio audio support.")
-if (NOT ENABLE_X11 AND NOT ENABLE_WAYLAND)
- message(FATAL_ERROR "Either ENABLE_X11 or ENABLE_WAYLAND must be on")
-endif()
-
add_compile_options(
"-Wall"
"-Wextra"
diff --git client/displayservers/CMakeLists.txt client/displayservers/CMakeLists.txt
index 5b5f827a..e7c4b25a 100644
--- client/displayservers/CMakeLists.txt
+++ client/displayservers/CMakeLists.txt
@@ -18,9 +18,16 @@ function(add_displayserver name)
add_subdirectory(${name})
endfunction()
+option(ENABLE_X11 "Build with X11 support" ON)
+add_feature_info(ENABLE_X11 ENABLE_X11 "X11 support.")
+
option(ENABLE_WAYLAND "Build with Wayland support" ON)
add_feature_info(ENABLE_WAYLAND ENABLE_WAYLAND "Wayland support.")
+if (NOT ENABLE_X11 AND NOT ENABLE_WAYLAND)
+ message(FATAL_ERROR "Either ENABLE_X11 or ENABLE_WAYLAND must be on")
+endif()
+
# Add/remove displayservers here!
if (ENABLE_WAYLAND)
add_displayserver(Wayland)
--
2.43.1

View File

@ -22,6 +22,7 @@
, libXinerama
, libXcursor
, libXpresent
, libXdmcp
, wayland
, wayland-protocols
@ -30,6 +31,7 @@
, pulseaudio
, libsamplerate
, openGLSupport ? true
, xorgSupport ? true
, waylandSupport ? true
, pipewireSupport ? true
@ -43,35 +45,39 @@ let
type = "Application";
exec = "looking-glass-client";
icon = "lg-logo";
terminal = true;
};
in
stdenv.mkDerivation rec {
pname = "looking-glass-client";
version = "B6";
version = "B7-rc1";
src = fetchFromGitHub {
owner = "gnif";
repo = "LookingGlass";
rev = version;
sha256 = "sha256-6vYbNmNJBCoU23nVculac24tHqH7F4AZVftIjL93WJU=";
sha256 = "sha256-ne1Q+67+P8RHcTsqdiSSwkFf0g3pSNT91WN/lsSzssU=";
fetchSubmodules = true;
};
patches = [
# Fix failing cmake assertion when disabling X11 whithout explicitly enabling Wayland.
./0001-client-cmake-move-X11-config-directives-to-displayse.patch
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ libGL libX11 freefont_ttf spice-protocol expat libbfd nettle fontconfig libffi ]
++ lib.optionals xorgSupport [ libxkbcommon libXi libXScrnSaver libXinerama libXcursor libXpresent libXext libXrandr ]
buildInputs = [ libX11 libGL freefont_ttf spice-protocol expat libbfd nettle fontconfig libffi ]
++ lib.optionals xorgSupport [ libxkbcommon libXi libXScrnSaver libXinerama libXcursor libXpresent libXext libXrandr libXdmcp ]
++ lib.optionals waylandSupport [ libxkbcommon wayland wayland-protocols ]
++ lib.optionals pipewireSupport [ pipewire libsamplerate ]
++ lib.optionals pulseSupport [ pulseaudio libsamplerate ];
cmakeFlags = [ "-DOPTIMIZE_FOR_NATIVE=OFF" ]
++ lib.optional (!xorgSupport) "-DENABLE_X11=no"
++ lib.optional (!waylandSupport) "-DENABLE_WAYLAND=no"
++ lib.optional (!pulseSupport) "-DENABLE_PULSEAUDIO=no"
++ lib.optional (!pipewireSupport) "-DENABLE_PIPEWIRE=no";
++ lib.optionals (!openGLSupport) [ "-DENABLE_OPENGL=no" ]
++ lib.optionals (!xorgSupport) [ "-DENABLE_X11=no" ]
++ lib.optionals (!waylandSupport) [ "-DENABLE_WAYLAND=no" ]
++ lib.optionals (!pulseSupport) [ "-DENABLE_PULSEAUDIO=no" ]
++ lib.optionals (!pipewireSupport) [ "-DENABLE_PIPEWIRE=no" ];
postUnpack = ''
echo ${src.rev} > source/VERSION

View File

@ -20,12 +20,12 @@
stdenv.mkDerivation rec {
pname = "phosh-mobile-settings";
version = "0.37.0";
version = "0.38.0";
src = fetchurl {
# This tarball includes the meson wrapped subproject 'gmobile'.
url = "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
hash = "sha256-HW3wM/lb8pvr+eDoeqa0iHXiKhBQ8ybBIy0wwHPsrOg=";
hash = "sha256-WDqgVsJx5y6IlWII9fRBsAeWn/tB8BaXRtlPvA0wmMk=";
};
nativeBuildInputs = [

View File

@ -16,7 +16,6 @@
, npm-lockfile-fix
, overrideSDK
, darwin
, fetchpatch
}:
let
@ -25,26 +24,18 @@ let
buildNpmPackage.override {
stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
};
# update package-lock to fix build errors. this will be resolved in the
# next patch version of Bruno at which point the patch can be removed entirely.
# upstream PR: https://github.com/usebruno/bruno/pull/1894
brunoLockfilePatch_1_12_2 = fetchpatch {
url = "https://github.com/usebruno/bruno/pull/1894/commits/e3bab23446623315ee674283285a86e210778fe7.patch";
hash = "sha256-8rYBvgu9ZLXjb9AFyk4yMBVjcyFPmlNi66YEaQGQaKw=";
};
in
buildNpmPackage' rec {
pname = "bruno";
version = "1.12.2";
version = "1.12.3";
src = fetchFromGitHub {
owner = "usebruno";
repo = "bruno";
rev = "v${version}";
hash = "sha256-C/WeEloUGF0PEfeanm6lHe/MgpcF+g/ZY2tnqXFl9LA=";
hash = "sha256-ubvsTJ/MSEguVeJg91LvgARWte+p5MHdqhXIVqbyPhQ=";
postFetch = ''
patch -d $out <${brunoLockfilePatch_1_12_2}
${lib.getExe npm-lockfile-fix} $out/package-lock.json
'';
};

View File

@ -0,0 +1,24 @@
{ fetchFromGitHub, lib, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "cargo-shear";
version = "0.0.24";
src = fetchFromGitHub {
owner = "Boshen";
repo = "cargo-shear";
rev = "v${version}";
sha256 = "sha256-7eBFDmeFOXqZhNE4RDlIq991xEoCGL6XLMmUQuLJvrE=";
};
cargoSha256 = "sha256-DQjLW6NtUPERT82zIlrGRk3FffU/EfLBMgAeFfFdDxE=";
meta = with lib; {
description = "Detect and remove unused dependencies from Cargo.toml";
mainProgram = "cargo-shear";
homepage = "https://github.com/Boshen/cargo-shear";
changelog = "https://github.com/Boshen/cargo-shear/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [ mit ];
maintainers = with maintainers; [ uncenter ];
};
}

View File

@ -7,16 +7,16 @@
}:
let
openShiftVersion = "4.14.12";
okdVersion = "4.14.0-0.okd-scos-2024-01-10-151818";
microshiftVersion = "4.14.12";
openShiftVersion = "4.15.3";
okdVersion = "4.15.0-0.okd-2024-02-23-163410";
microshiftVersion = "4.15.3";
podmanVersion = "4.4.4";
writeKey = "$(MODULEPATH)/pkg/crc/segment.WriteKey=cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp";
gitCommit = "c43b172866bc039a2a23d6c88aeb398635dc16ef";
gitHash = "sha256-DVsXxgywPrrdxfmXh3JR8YpFkv1/Y2LvDZ9/2nVbclc=";
gitCommit = "b470b5f68269c93abee8d7139cbd3e3fe3419f93";
gitHash = "sha256-80B6eGPnAAeUdKzk9/8VDHjv9tUh85rZSki9PSzqVvg=";
in
buildGoModule rec {
version = "2.33.0";
version = "2.34.1";
pname = "crc";
src = fetchFromGitHub {

View File

@ -0,0 +1,70 @@
{ lib
, stdenv
, fetchYarnDeps
, fetchFromGitHub
, prefetch-yarn-deps
, nodejs
, python3
, makeWrapper
, git
, docker
, yarn
, docker-compose
}:
stdenv.mkDerivation (finalAttrs: {
pname = "devcontainer";
version = "0.58.0";
src = fetchFromGitHub {
owner = "devcontainers";
repo = "cli";
rev = "v${finalAttrs.version}";
hash = "sha256-pnhyyTJMSlTdMsSFzbmZ6SkGdbfr9qCIkrBxxSM42UE=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-Wy0UP8QaQzZ1par7W5UhnRLc5DF2PAif0JIZJtRokBk=";
};
nativeBuildInputs = [ yarn prefetch-yarn-deps python3 makeWrapper ];
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror ${finalAttrs.yarnOfflineCache}
# Without this, yarn will try to download the dependencies
fixup-yarn-lock yarn.lock
# set nodedir to prevent node-gyp from downloading headers
export npm_config_nodedir=${nodejs}
yarn --offline --frozen-lockfile
yarn --offline --frozen-lockfile compile-prod
mkdir -p $out/bin
mkdir -p $out/libexec
cp -r dist $out/libexec
cp devcontainer.js $out/libexec/devcontainer.js
cp -r node_modules $out/libexec/node_modules
cp -r $src/scripts $out/libexec/scripts
runHook postBuild
'';
postInstall = ''
makeWrapper "${nodejs}/bin/node" "$out/bin/devcontainer" \
--add-flags "$out/libexec/devcontainer.js" \
--prefix PATH : ${lib.makeBinPath [ git docker docker-compose ]}
'';
meta = with lib; {
description = "Dev container CLI, run and manage your dev environments via a devcontainer.json";
homepage = "https://containers.dev/";
license = licenses.mit;
maintainers = with maintainers; [ rucadi ];
platforms = platforms.unix;
mainProgram = "devcontainer";
};
})

View File

@ -1,6 +1,6 @@
{ version
, dmdSha256
, phobosSha256
, dmdHash
, phobosHash
}:
{ stdenv
@ -22,7 +22,7 @@
, git
, unzip
, dmdBootstrap ? callPackage ./bootstrap.nix { }
, dmd_bin ? "${dmdBootstrap}/bin"
, dmdBin ? "${dmdBootstrap}/bin"
}:
let
@ -45,7 +45,7 @@ let
pathToDmd = "\${NIX_BUILD_TOP}/dmd/generated/${osname}/release/${bits}/dmd";
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "dmd";
inherit version;
@ -55,15 +55,15 @@ stdenv.mkDerivation rec {
(fetchFromGitHub {
owner = "dlang";
repo = "dmd";
rev = "v${version}";
sha256 = dmdSha256;
rev = "v${finalAttrs.version}";
hash = dmdHash;
name = "dmd";
})
(fetchFromGitHub {
owner = "dlang";
repo = "phobos";
rev = "v${version}";
sha256 = phobosSha256;
rev = "v${finalAttrs.version}";
hash = phobosHash;
name = "phobos";
})
];
@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
url = "https://github.com/dlang/dmd/commit/c4d33e5eb46c123761ac501e8c52f33850483a8a.patch";
stripLen = 1;
extraPrefix = "dmd/";
sha256 = "sha256-N21mAPfaTo+zGCip4njejasraV5IsWVqlGR5eOdFZZE=";
hash = "sha256-N21mAPfaTo+zGCip4njejasraV5IsWVqlGR5eOdFZZE=";
})
];
@ -102,18 +102,14 @@ stdenv.mkDerivation rec {
# https://issues.dlang.org/show_bug.cgi?id=23317
rm dmd/compiler/test/runnable/cdvecfill.sh
rm dmd/compiler/test/compilable/cdcmp.d
''
+ lib.optionalString (lib.versionAtLeast version "2.089.0" && lib.versionOlder version "2.092.2") ''
'' + lib.optionalString (lib.versionAtLeast version "2.089.0" && lib.versionOlder version "2.092.2") ''
rm dmd/compiler/test/dshell/test6952.d
'' + lib.optionalString (lib.versionAtLeast version "2.092.2") ''
substituteInPlace dmd/compiler/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
''
+ lib.optionalString stdenv.isLinux ''
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
substituteInPlace dmd/compiler/test/dshell/test6952.d --replace-fail "/usr/bin/env bash" "${bash}/bin/bash"
'' + lib.optionalString stdenv.isLinux ''
substituteInPlace phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
substituteInPlace phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
'';
nativeBuildInputs = [
@ -148,24 +144,23 @@ stdenv.mkDerivation rec {
runHook preBuild
export buildJobs=$NIX_BUILD_CORES
if [ -z $enableParallelBuilding ]; then
buildJobs=1
fi
[ -z "$enableParallelBuilding" ] && buildJobs=1
${dmd_bin}/rdmd dmd/compiler/src/build.d -j$buildJobs HOST_DMD=${dmd_bin}/dmd $buildFlags
make -C dmd/druntime -f posix.mak DMD=${pathToDmd} $buildFlags -j$buildJobs
${dmdBin}/rdmd dmd/compiler/src/build.d -j$buildJobs $buildFlags \
HOST_DMD=${dmdBin}/dmd
make -C dmd/druntime -j$buildJobs DMD=${pathToDmd} $buildFlags
echo ${tzdata}/share/zoneinfo/ > TZDatabaseDirFile
echo ${lib.getLib curl}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > LibcurlPathFile
make -C phobos -f posix.mak $buildFlags -j$buildJobs DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
echo ${lib.getLib curl}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} \
> LibcurlPathFile
make -C phobos -j$buildJobs $buildFlags \
DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
runHook postBuild
'';
doCheck = true;
checkFlags = buildFlags;
# many tests are disbled because they are failing
# many tests are disabled because they are failing
# NOTE: Purity check is disabled for checkPhase because it doesn't fare well
# with the DMD linker. See https://github.com/NixOS/nixpkgs/issues/97420
@ -173,15 +168,14 @@ stdenv.mkDerivation rec {
runHook preCheck
export checkJobs=$NIX_BUILD_CORES
if [ -z $enableParallelChecking ]; then
checkJobs=1
fi
[ -z "$enableParallelChecking" ] && checkJobs=1
CC=$CXX HOST_DMD=${pathToDmd} NIX_ENFORCE_PURITY= \
${dmdBin}/rdmd dmd/compiler/test/run.d -j$checkJobs
NIX_ENFORCE_PURITY= \
make -C dmd/compiler/test $checkFlags CC=$CXX SHELL=$SHELL -j$checkJobs N=$checkJobs
NIX_ENFORCE_PURITY= \
make -C phobos -f posix.mak unittest $checkFlags -j$checkJobs DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
make -C phobos unittest -j$checkJobs $checkFlags \
DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$PWD"
runHook postCheck
'';
@ -200,7 +194,7 @@ stdenv.mkDerivation rec {
cp phobos/generated/${osname}/release/${bits}/libphobos2.* $out/lib/
wrapProgram $out/bin/dmd \
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
--prefix PATH : "${targetPackages.stdenv.cc}/bin" \
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
substitute ${dmdConfFile} "$out/bin/dmd.conf" --subst-var out
@ -209,19 +203,19 @@ stdenv.mkDerivation rec {
'';
preFixup = ''
find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${dmd_bin}/dmd '{}' +
find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${dmdBin}/dmd '{}' +
'';
disallowedReferences = [ dmdBootstrap ];
meta = with lib; {
description = "Official reference compiler for the D language";
mainProgram = "dmd";
homepage = "https://dlang.org/";
# Everything is now Boost licensed, even the backend.
# https://github.com/dlang/dmd/pull/6680
license = licenses.boost;
mainProgram = "dmd";
maintainers = with maintainers; [ lionello dukc jtbx ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}
})

View File

@ -0,0 +1,5 @@
import ./generic.nix {
version = "2.108.0";
dmdHash = "sha256-tlWcFgKtXzfqMMkOq4ezhZHdYCXFckjN5+m6jO4VH0U=";
phobosHash = "sha256-uU8S4rABOfhpKh+MvSbclkbdf0hrsuKF8SIpWMnPpfU=";
}

View File

@ -8,13 +8,13 @@ let
in buildDotnetModule rec {
pname = "dotnet-outdated";
version = "4.6.0";
version = "4.6.1";
src = fetchFromGitHub {
owner = "dotnet-outdated";
repo = pname;
rev = "v${version}";
hash = "sha256-U5qCM+Um8bRafrDpbI5TnSN1nQ8mQpZ5W8Jao2hdAPw=";
hash = "sha256-cYEW++XKCBhB4fyGj4bDKOBuQ1CJwm9CfZfiZUiy7Sw=";
};
inherit dotnet-sdk;

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
version = "1.1.11";
version = "1.1.12";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
rev = "v${finalAttrs.version}";
hash = "sha256-8kxaJp9mSJ6fHOgVD5iFjecUU0Kt10KCAVSYMQt+bSw=";
hash = "sha256-8wwYyZ9Uq65jEmgA1yO001YSZuDLnXLrFjK6WIsppwU=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,11 @@
--- a/rdmd_test.d
+++ b/rdmd_test.d
@@ -616,7 +616,7 @@ void runTests(string rdmdApp, string compiler, string model)
enforce(res.status == 1, res.output);
}
- version (Posix)
+ version (none)
{
import std.conv : to;
auto makeVersion = execute(["make", "--version"]).output.splitLines()[0];

View File

@ -0,0 +1,102 @@
Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch
--- /dev/null
+++ b/osmodel.mak
@@ -0,0 +1,75 @@
+# osmodel.mak
+#
+# Detects and sets the macros:
+#
+# OS = one of {osx,linux,freebsd,openbsd,netbsd,dragonflybsd,solaris}
+# MODEL = one of { 32, 64 }
+# MODEL_FLAG = one of { -m32, -m64 }
+# ARCH = one of { x86, x86_64, aarch64 }
+#
+# Note:
+# Keep this file in sync between druntime, phobos, and dmd repositories!
+# Source: https://github.com/dlang/dmd/blob/master/src/osmodel.mak
+
+
+ifeq (,$(OS))
+ uname_S:=$(shell uname -s)
+ ifeq (Darwin,$(uname_S))
+ OS:=osx
+ endif
+ ifeq (Linux,$(uname_S))
+ OS:=linux
+ endif
+ ifeq (FreeBSD,$(uname_S))
+ OS:=freebsd
+ endif
+ ifeq (OpenBSD,$(uname_S))
+ OS:=openbsd
+ endif
+ ifeq (NetBSD,$(uname_S))
+ OS:=netbsd
+ endif
+ ifeq (DragonFly,$(uname_S))
+ OS:=dragonflybsd
+ endif
+ ifeq (Solaris,$(uname_S))
+ OS:=solaris
+ endif
+ ifeq (SunOS,$(uname_S))
+ OS:=solaris
+ endif
+ ifeq (,$(OS))
+ $(error Unrecognized or unsupported OS for uname: $(uname_S))
+ endif
+endif
+
+# When running make from XCode it may set environment var OS=MACOS.
+# Adjust it here:
+ifeq (MACOS,$(OS))
+ OS:=osx
+endif
+
+ifeq (,$(MODEL))
+ ifeq ($(OS), solaris)
+ uname_M:=$(shell isainfo -n)
+ else
+ uname_M:=$(shell uname -m)
+ endif
+ ifneq (,$(findstring $(uname_M),x86_64 amd64))
+ MODEL:=64
+ ARCH:=x86_64
+ endif
+ ifneq (,$(findstring $(uname_M),aarch64 arm64))
+ MODEL:=64
+ ARCH:=aarch64
+ endif
+ ifneq (,$(findstring $(uname_M),i386 i586 i686))
+ MODEL:=32
+ ARCH:=x86
+ endif
+ ifeq (,$(MODEL))
+ $(error Cannot figure 32/64 model and arch from uname -m: $(uname_M))
+ endif
+endif
+
+MODEL_FLAG:=-m$(MODEL)
--- a/Makefile
+++ b/Makefile
@@ -9,9 +9,8 @@ DUB=dub
WITH_DOC = no
DOC = ../dlang.org
-# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile from dmd
-$(shell [ ! -d $(DMD_DIR) ] && git clone --depth=1 https://github.com/dlang/dmd $(DMD_DIR))
-include $(DMD_DIR)/compiler/src/osmodel.mak
+# Load operating system $(OS) (e.g. linux, osx, ...) and $(MODEL) (e.g. 32, 64) detection Makefile
+include osmodel.mak
ifeq (windows,$(OS))
DOTEXE:=.exe
@@ -30,7 +29,7 @@ DFLAGS = $(MODEL_FLAG) $(if $(findstring windows,$(OS)),,-fPIC) -preview=dip1000
DFLAGS += $(WARNINGS)
# Default DUB flags (DUB uses a different architecture format)
-DUBFLAGS = --arch=$(subst 32,x86,$(subst 64,x86_64,$(MODEL)))
+DUBFLAGS = --arch=$(ARCH)
TOOLS = \
$(ROOT)/catdoc$(DOTEXE) \

View File

@ -0,0 +1,49 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, ldc
, curl
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dtools";
version = "2.108.0";
src = fetchFromGitHub {
owner = "dlang";
repo = "tools";
rev = "v${finalAttrs.version}";
hash = "sha256-YEBUgJPG/+WN4MnQUNAVftZM0ULxZZzpHoOozXua46U=";
name = "dtools";
};
patches = [
# Disable failing tests
./disabled-tests.diff
# Fix LDC arm64 build
./fix-ldc-arm64.diff
];
nativeBuildInputs = [ ldc ];
buildInputs = [ curl ];
makeFlags = [
"CC=${stdenv.cc}/bin/cc"
"DMD=${ldc.out}/bin/ldmd2"
"INSTALL_DIR=$(out)"
];
enableParallelBuilding = true;
doCheck = true;
checkTarget = "test_rdmd";
meta = with lib; {
description = "Ancillary tools for the D programming language";
homepage = "https://github.com/dlang/tools";
license = licenses.boost;
maintainers = with maintainers; [ jtbx ];
platforms = platforms.unix;
};
})

View File

@ -7,16 +7,16 @@
let
finalAttrs = {
pname = "fm";
version = "0.16.0";
version = "1.0.0";
src = fetchFromGitHub {
owner = "mistakenelf";
repo = "fm";
rev = "v${finalAttrs.version}";
hash = "sha256-wiACaszbkO9jBYmIfeQpcx984RY41Emyu911nkJxUFY=";
hash = "sha256-j92xf75JTLBaVr8GjAwlqgrieZCifVaIBy9ZMoDIaEY=";
};
vendorHash = "sha256-AfRGoKiVZGVIbsDj5pV1zCkp2FpcfWKS0t+cTU51RRc=";
vendorHash = "sha256-iDKDUpxaV/ZGKvTeNu4m5X/tqQA311Nb+2gvrehpdpw=";
meta = {
homepage = "https://github.com/mistakenelf/fm";

View File

@ -1,17 +1,27 @@
{ lib, buildNpmPackage, fetchFromGitHub }:
{ lib, stdenv, buildNpmPackage, fetchFromGitHub, cacert }:
buildNpmPackage rec {
pname = "inshellisense";
version = "0.0.1-rc.4";
version = "0.0.1-rc.12";
src = fetchFromGitHub {
owner = "microsoft";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-PYSonVyclGSH3ArbqJuKrBNGbJaQEp6XemwnHboVwPk=";
hash = "sha256-dDjIKVV1dSCIa2Y2d1AQQAw9Rcflh0AnKlwsQSblIhs=";
};
npmDepsHash = "sha256-sjr4Hy1/zWPAlVGsMkyQIQcBT86KLaN2/UAaAd7Mn6Q=";
npmDepsHash = "sha256-uBsPaUvEiR5oCl8rZvpyNPXSB/Vlcx937lT4WqgekHI=";
# Needed for dependency `@homebridge/node-pty-prebuilt-multiarch`
# On Darwin systems the build fails with,
#
# npm ERR! ../src/unix/pty.cc:413:13: error: use of undeclared identifier 'openpty'
# npm ERR! int ret = openpty(&master, &slave, nullptr, NULL, static_cast<winsi ze*>(&winp));
#
# when `node-gyp` tries to build the dep. The below allows `npm` to download the prebuilt binary.
makeCacheWritable = stdenv.isDarwin;
nativeBuildInputs = lib.optional stdenv.isDarwin cacert;
meta = with lib; {
description = "IDE style command line auto complete";

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec{
pname = "makima";
version = "0.4.3";
version = "0.4.4";
src = fetchFromGitHub {
owner = "cyber-sushi";
repo = "makima";
rev = "v${version}";
hash = "sha256-uoUevsQo+BLKPwNGp7qC9wLAVTRMNiuo+wWDLRKECb0=";
hash = "sha256-3S4J4fdCn/eqgT9g0WmS5kQHr7LysBn03RzHvagm5jg=";
};
cargoHash = "sha256-k7eelGCDnfYtyU6NAas22U3jlioIqQBZ4H63p30T+E0=";
cargoHash = "sha256-YCs37IYiYxjh2uBZvHliDZRu68J4mXCCYpWlPHtw+0Q=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "orchard";
version = "0.16.0";
version = "0.16.1";
src = fetchFromGitHub {
owner = "cirruslabs";
repo = pname;
rev = version;
hash = "sha256-XLml3/PoDS4BN+iApoEsjt1VPjsPEKTGTZcM7V5ZQaY=";
hash = "sha256-wuLlxyCyMgtKBW5MD7HJM3q+tsXOBTjGyNYuV9jDbEg=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;

View File

@ -26,13 +26,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "swayimg";
version = "2.1";
version = "2.2";
src = fetchFromGitHub {
owner = "artemsen";
repo = "swayimg";
rev = "v${finalAttrs.version}";
hash = "sha256-+ntunT1FbgGcxpKGTcs7G7FYmoAobu/p/8ATIoBzfKE=";
hash = "sha256-CTl1hlRE4MnA6WdQaR4VG5G/wop/9xK7thRiCY7teYU=";
};
strictDeps = true;

View File

@ -0,0 +1,5 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
]

View File

@ -0,0 +1,5 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
]

View File

@ -1,39 +1,60 @@
{
lib,
stdenvNoCC,
fetchurl,
makeWrapper,
dotnet-sdk_8,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
nixosTests,
}:
stdenvNoCC.mkDerivation rec {
let
technitium-library = buildDotnetModule rec {
pname = "TechnitiumLibrary";
version = "40a7bc7a52cf5d2c371215ea7f5f6fdf71dc1d9c";
src = fetchFromGitHub {
owner = "TechnitiumSoftware";
repo = "TechnitiumLibrary";
rev = version;
hash = "sha256-FNCZH8LZXYyrz5SRIV8P7MruN+t6Qvl96Aa73q3InMI=";
name = "${pname}-${version}";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
nugetDeps = ./library-nuget-deps.nix;
projectFile = [
"TechnitiumLibrary.ByteTree/TechnitiumLibrary.ByteTree.csproj"
"TechnitiumLibrary.Net/TechnitiumLibrary.Net.csproj"
];
};
in
buildDotnetModule rec {
pname = "technitium-dns-server";
version = "12.1";
src = fetchurl {
url = "https://download.technitium.com/dns/archive/${version}/DnsServerPortable.tar.gz";
hash = "sha256-G0M2xuYBZA3XXXaPs4pLrJmzAMbVJhiqISAvuCw3iZo=";
src = fetchFromGitHub {
owner = "TechnitiumSoftware";
repo = "DnsServer";
rev = "refs/tags/v${version}";
hash = "sha256-TfVWGomvKV7QeJUyFMNDAnHKY3YTEwWPxTlW6RhmsR4=";
name = "${pname}-${version}";
};
sourceRoot = ".";
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
nativeBuildInputs = [ makeWrapper ];
nugetDeps = ./nuget-deps.nix;
installPhase = ''
runHook preInstall
projectFile = [ "DnsServerApp/DnsServerApp.csproj" ];
mkdir -p $out/{bin,share/${pname}-${version}}
cp -r * $out/share/${pname}-${version}/.
rm $out/share/${pname}-${version}/start.{sh,bat}
rm $out/share/${pname}-${version}/DnsServerApp.exe
rm $out/share/${pname}-${version}/env-vars
# Remove systemd.service in favor of a separate module (including firewall configuration).
rm $out/share/${pname}-${version}/systemd.service
# move dependencies from TechnitiumLibrary to the expected directory
preBuild = ''
mkdir -p ../TechnitiumLibrary/bin
cp -r ${technitium-library}/lib/TechnitiumLibrary/* ../TechnitiumLibrary/bin/
'';
makeWrapper "${dotnet-sdk_8}/bin/dotnet" $out/bin/technitium-dns-server \
--add-flags "$out/share/${pname}-${version}/DnsServerApp.dll"
runHook postInstall
postFixup = ''
mv $out/bin/DnsServerApp $out/bin/technitium-dns-server
'';
passthru.tests = {
@ -47,6 +68,6 @@ stdenvNoCC.mkDerivation rec {
license = lib.licenses.gpl3Only;
mainProgram = "technitium-dns-server";
maintainers = with lib.maintainers; [ fabianrig ];
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
platforms = lib.platforms.linux;
};
}

View File

@ -15,22 +15,23 @@
rustPlatform.buildRustPackage rec {
pname = "tpnote";
version = "1.24.0";
version = "1.24.2";
src = fetchFromGitHub {
owner = "getreu";
repo = "tp-note";
rev = "v${version}";
hash = "sha256-VzBLstjOkaphkBpnhXXBwg48c2s20yZKBHUrQvnahlA=";
hash = "sha256-uNW1gb4zmLjOZFtxaBBEQGRGc9C2M8cSARZBa3+FC2k=";
};
cargoHash = "sha256-4oY1KOdMy9V9Y/sCiWx6160wvUItMvYwNp2TRZrgUZY=";
cargoHash = "sha256-pOiIQU/5z/g4NbdwoYaDdxTfTkxEdddVsmuH54pCOBM=";
nativeBuildInputs = [
cmake
pkg-config
installShellFiles
];
buildInputs = [
oniguruma
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [

View File

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "unciv";
version = "4.10.21";
version = "4.11.2";
src = fetchurl {
url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
hash = "sha256-JnuJbmKGqtEdFiMnA5RvCfdox2WTABwxNI3Zdk6wNU8=";
hash = "sha256-ZUDfJf+FgIX8gRoZYlYAJhpLwNWp3MCKEQOSQGQ88T8=";
};
dontUnpack = true;

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "uxn";
version = "unstable-2024-03-30";
version = "unstable-2024-04-05";
src = fetchFromSourcehut {
owner = "~rabbits";
repo = "uxn";
rev = "fc6ec0b387723940868133fade8854ad37648881";
hash = "sha256-Ver8oI3IzxwF6KeZ85d3mmiCwARVoH+RZoFNCxhGFDc=";
rev = "41567558bc1ec4721fee1cc316c3a3cdc627b102";
hash = "sha256-Qvq9/kNZAKRHH3NIxiX5+67ibeX5QzK97EhuoplTBDQ=";
};
outputs = [ "out" "projects" ];

View File

@ -9,6 +9,7 @@ dependencies = [
"anyhow",
"auto_update",
"editor",
"extension",
"futures 0.3.28",
"gpui",
"language",
@ -87,9 +88,9 @@ dependencies = [
[[package]]
name = "alacritty_terminal"
version = "0.23.0-rc1"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc2c16faa5425a10be102dda76f73d76049b44746e18ddeefc44d78bbe76cbce"
checksum = "f6d1ea4484c8676f295307a4892d478c70ac8da1dbd8c7c10830a504b7f1022f"
dependencies = [
"base64 0.22.0",
"bitflags 2.4.2",
@ -212,6 +213,24 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "anthropic"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.28",
"serde",
"serde_json",
"tokio",
"util",
]
[[package]]
name = "any_vec"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78f17bacc1bc7b91fef7b1885c10772eb2b9e4e989356f6f0f6a972240f97cd"
[[package]]
name = "anyhow"
version = "1.0.75"
@ -285,9 +304,9 @@ dependencies = [
[[package]]
name = "ashpd"
version = "0.7.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01992ad7774250d5b7fe214e2676cb99bf92564436d8135ab44fe815e71769a9"
checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093"
dependencies = [
"async-fs 2.1.1",
"async-net 2.0.0",
@ -298,7 +317,7 @@ dependencies = [
"serde",
"serde_repr",
"url",
"zbus 3.15.1",
"zbus",
]
[[package]]
@ -322,6 +341,7 @@ dependencies = [
"ctor",
"editor",
"env_logger",
"file_icons",
"fs",
"futures 0.3.28",
"gpui",
@ -351,16 +371,6 @@ dependencies = [
"workspace",
]
[[package]]
name = "async-broadcast"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
dependencies = [
"event-listener 2.5.3",
"futures-core",
]
[[package]]
name = "async-broadcast"
version = "0.7.0"
@ -2166,6 +2176,7 @@ dependencies = [
name = "collab"
version = "0.44.0"
dependencies = [
"anthropic",
"anyhow",
"async-trait",
"async-tungstenite",
@ -2218,6 +2229,7 @@ dependencies = [
"rustc-demangle",
"scrypt",
"sea-orm",
"semantic_version",
"semver",
"serde",
"serde_derive",
@ -2565,19 +2577,21 @@ dependencies = [
[[package]]
name = "cosmic-text"
version = "0.10.0"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75acbfb314aeb4f5210d379af45ed1ec2c98c7f1790bf57b8a4c562ac0c51b71"
checksum = "c578f2b9abb4d5f3fbb12aba4008084d435dc6a8425c195cfe0b3594bfea0c25"
dependencies = [
"fontdb 0.15.0",
"bitflags 2.4.2",
"fontdb 0.16.2",
"libm",
"log",
"rangemap",
"rustc-hash",
"rustybuzz 0.11.0",
"rustybuzz 0.12.1",
"self_cell",
"swash",
"sys-locale",
"ttf-parser 0.20.0",
"unicode-bidi",
"unicode-linebreak",
"unicode-script",
@ -2799,7 +2813,7 @@ dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset 0.9.0",
"memoffset",
"scopeguard",
]
@ -3254,6 +3268,8 @@ dependencies = [
"sum_tree",
"text",
"theme",
"time",
"time_format",
"tree-sitter-html",
"tree-sitter-rust",
"tree-sitter-typescript",
@ -3491,6 +3507,7 @@ dependencies = [
"fs",
"futures 0.3.28",
"gpui",
"isahc",
"language",
"log",
"lsp",
@ -3498,6 +3515,7 @@ dependencies = [
"parking_lot",
"project",
"schemars",
"semantic_version",
"serde",
"serde_json",
"serde_json_lenient",
@ -3544,10 +3562,13 @@ dependencies = [
"db",
"editor",
"extension",
"fs",
"fuzzy",
"gpui",
"language",
"picker",
"project",
"semantic_version",
"serde",
"settings",
"smallvec",
@ -3677,6 +3698,18 @@ dependencies = [
"workspace",
]
[[package]]
name = "file_icons"
version = "0.1.0"
dependencies = [
"collections",
"gpui",
"serde",
"serde_derive",
"serde_json",
"util",
]
[[package]]
name = "filetime"
version = "0.2.22"
@ -3793,16 +3826,16 @@ dependencies = [
[[package]]
name = "fontdb"
version = "0.15.0"
version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
dependencies = [
"fontconfig-parser",
"log",
"memmap2 0.8.0",
"memmap2 0.9.4",
"slotmap",
"tinyvec",
"ttf-parser 0.19.2",
"ttf-parser 0.20.0",
]
[[package]]
@ -3849,9 +3882,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
[[package]]
name = "form_urlencoded"
version = "1.2.0"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
"percent-encoding",
]
@ -3887,6 +3920,7 @@ dependencies = [
"collections",
"fsevent",
"futures 0.3.28",
"git",
"git2",
"gpui",
"lazy_static",
@ -4184,14 +4218,21 @@ dependencies = [
name = "git"
version = "0.1.0"
dependencies = [
"anyhow",
"clock",
"collections",
"git2",
"lazy_static",
"log",
"pretty_assertions",
"serde",
"serde_json",
"smol",
"sum_tree",
"text",
"time",
"unindent",
"url",
]
[[package]]
@ -4368,6 +4409,7 @@ dependencies = [
"resvg",
"schemars",
"seahash",
"semantic_version",
"serde",
"serde_derive",
"serde_json",
@ -4744,9 +4786,9 @@ checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
[[package]]
name = "idna"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@ -5295,15 +5337,12 @@ dependencies = [
"tree-sitter",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-c-sharp",
"tree-sitter-clojure",
"tree-sitter-cpp",
"tree-sitter-css",
"tree-sitter-dart",
"tree-sitter-elixir",
"tree-sitter-elm",
"tree-sitter-embedded-template",
"tree-sitter-erlang",
"tree-sitter-glsl",
"tree-sitter-go",
"tree-sitter-gomod",
@ -5318,7 +5357,6 @@ dependencies = [
"tree-sitter-nix",
"tree-sitter-nu",
"tree-sitter-ocaml",
"tree-sitter-php",
"tree-sitter-proto",
"tree-sitter-python",
"tree-sitter-racket",
@ -5326,11 +5364,9 @@ dependencies = [
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-scheme",
"tree-sitter-toml",
"tree-sitter-typescript",
"tree-sitter-vue",
"tree-sitter-yaml",
"tree-sitter-zig",
"unindent",
"util",
"workspace",
@ -5495,7 +5531,7 @@ name = "live_kit_client"
version = "0.1.0"
dependencies = [
"anyhow",
"async-broadcast 0.7.0",
"async-broadcast",
"async-trait",
"collections",
"core-foundation",
@ -5570,6 +5606,7 @@ dependencies = [
"serde_json",
"smol",
"util",
"windows 0.53.0",
]
[[package]]
@ -5742,15 +5779,6 @@ dependencies = [
"libc",
]
[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]
[[package]]
name = "memoffset"
version = "0.9.0"
@ -5988,18 +6016,6 @@ dependencies = [
"libc",
]
[[package]]
name = "nix"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
"memoffset 0.7.1",
]
[[package]]
name = "nix"
version = "0.27.1"
@ -6009,7 +6025,7 @@ dependencies = [
"bitflags 2.4.2",
"cfg-if",
"libc",
"memoffset 0.9.0",
"memoffset",
]
[[package]]
@ -6378,9 +6394,9 @@ dependencies = [
"rand 0.8.5",
"serde",
"sha2 0.10.7",
"zbus 4.0.1",
"zbus",
"zeroize",
"zvariant 4.0.2",
"zvariant",
]
[[package]]
@ -6391,9 +6407,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "open"
version = "5.0.1"
version = "5.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349"
checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
dependencies = [
"is-wsl",
"libc",
@ -6715,9 +6731,9 @@ dependencies = [
[[package]]
name = "percent-encoding"
version = "2.3.0"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "petgraph"
@ -6757,6 +6773,7 @@ dependencies = [
"env_logger",
"gpui",
"menu",
"serde",
"serde_json",
"ui",
"workspace",
@ -7066,6 +7083,7 @@ dependencies = [
"fs",
"futures 0.3.28",
"fuzzy",
"git",
"git2",
"globset",
"gpui",
@ -7107,6 +7125,7 @@ dependencies = [
"collections",
"db",
"editor",
"file_icons",
"gpui",
"language",
"menu",
@ -7447,11 +7466,9 @@ dependencies = [
name = "recent_projects"
version = "0.1.0"
dependencies = [
"collections",
"editor",
"fuzzy",
"gpui",
"itertools 0.11.0",
"language",
"menu",
"ordered-float 2.10.0",
@ -8046,11 +8063,11 @@ dependencies = [
[[package]]
name = "rustybuzz"
version = "0.11.0"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ee8fe2a8461a0854a37101fe7a1b13998d0cfa987e43248e81d2a5f4570f6fa"
checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.2",
"bytemuck",
"libm",
"smallvec",
@ -8286,6 +8303,7 @@ dependencies = [
name = "search"
version = "0.1.0"
dependencies = [
"any_vec",
"anyhow",
"bitflags 2.4.2",
"client",
@ -8299,7 +8317,6 @@ dependencies = [
"serde",
"serde_json",
"settings",
"smallvec",
"smol",
"theme",
"ui",
@ -8351,6 +8368,14 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
[[package]]
name = "semantic_version"
version = "0.1.0"
dependencies = [
"anyhow",
"serde",
]
[[package]]
name = "semver"
version = "1.0.18"
@ -9142,6 +9167,7 @@ dependencies = [
"ctrlc",
"dialoguer",
"editor",
"embed-manifest",
"fuzzy",
"gpui",
"indoc",
@ -9398,6 +9424,29 @@ dependencies = [
"winx",
]
[[package]]
name = "tab_switcher"
version = "0.1.0"
dependencies = [
"anyhow",
"collections",
"ctor",
"editor",
"env_logger",
"gpui",
"language",
"menu",
"picker",
"project",
"serde",
"serde_json",
"terminal_view",
"theme",
"ui",
"util",
"workspace",
]
[[package]]
name = "taffy"
version = "0.3.11"
@ -9451,6 +9500,7 @@ dependencies = [
"editor",
"fuzzy",
"gpui",
"itertools 0.11.0",
"language",
"menu",
"picker",
@ -9469,8 +9519,8 @@ dependencies = [
name = "telemetry_events"
version = "0.1.0"
dependencies = [
"semantic_version",
"serde",
"util",
]
[[package]]
@ -10151,24 +10201,6 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-c-sharp"
version = "0.20.0"
source = "git+https://github.com/tree-sitter/tree-sitter-c-sharp?rev=dd5e59721a5f8dae34604060833902b882023aaf#dd5e59721a5f8dae34604060833902b882023aaf"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-clojure"
version = "0.0.9"
source = "git+https://github.com/prcastro/tree-sitter-clojure?branch=update-ts#38b4f8d264248b2fd09575fbce66f7c22e8929d5"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-cpp"
version = "0.20.0"
@ -10224,16 +10256,6 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-erlang"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93ced5145ebb17f83243bf055b74e108da7cc129e12faab4166df03f59b287f4"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-glsl"
version = "0.1.4"
@ -10372,16 +10394,6 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-php"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0db3788e709a5adfb583683a4b686a084e41a0f9e5a2fcb9a8e358f11481036a"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-proto"
version = "0.0.2"
@ -10449,15 +10461,6 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-toml"
version = "0.5.1"
source = "git+https://github.com/tree-sitter/tree-sitter-toml?rev=342d9be207c2dba869b9967124c679b5e6fd0ebe#342d9be207c2dba869b9967124c679b5e6fd0ebe"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-typescript"
version = "0.20.2"
@ -10485,15 +10488,6 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-zig"
version = "0.0.1"
source = "git+https://github.com/maxxnino/tree-sitter-zig?rev=0d08703e4c3f426ec61695d7617415fff97029bd#0d08703e4c3f426ec61695d7617415fff97029bd"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "try-lock"
version = "0.2.4"
@ -10512,12 +10506,6 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ae2f58a822f08abdaf668897e96a5656fe72f5a9ce66422423e8849384872e6"
[[package]]
name = "ttf-parser"
version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
[[package]]
name = "ttf-parser"
version = "0.20.0"
@ -10575,7 +10563,7 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
dependencies = [
"memoffset 0.9.0",
"memoffset",
"tempfile",
"winapi",
]
@ -10712,9 +10700,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
version = "2.4.1"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
dependencies = [
"form_urlencoded",
"idna",
@ -10985,9 +10973,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.87"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@ -10995,9 +10983,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.87"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [
"bumpalo",
"log",
@ -11022,9 +11010,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.87"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -11032,9 +11020,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.87"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
@ -11045,9 +11033,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.87"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
name = "wasm-encoder"
@ -11295,7 +11283,7 @@ dependencies = [
"log",
"mach",
"memfd",
"memoffset 0.9.0",
"memoffset",
"paste",
"psm",
"rustix 0.38.32",
@ -11531,9 +11519,9 @@ dependencies = [
[[package]]
name = "weezl"
version = "0.1.7"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
[[package]]
name = "welcome"
@ -12132,6 +12120,7 @@ dependencies = [
name = "workspace"
version = "0.1.0"
dependencies = [
"any_vec",
"anyhow",
"async-recursion 1.0.5",
"bincode",
@ -12325,54 +12314,13 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "zbus"
version = "3.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5acecd3f8422f198b1a2f954bcc812fe89f3fa4281646f3da1da7925db80085d"
dependencies = [
"async-broadcast 0.5.1",
"async-executor",
"async-fs 1.6.0",
"async-io 1.13.0",
"async-lock 2.8.0",
"async-process 1.7.0",
"async-recursion 1.0.5",
"async-task",
"async-trait",
"blocking",
"byteorder",
"derivative",
"enumflags2",
"event-listener 2.5.3",
"futures-core",
"futures-sink",
"futures-util",
"hex",
"nix 0.26.4",
"once_cell",
"ordered-stream",
"rand 0.8.5",
"serde",
"serde_repr",
"sha1",
"static_assertions",
"tracing",
"uds_windows",
"winapi",
"xdg-home",
"zbus_macros 3.15.1",
"zbus_names 2.6.1",
"zvariant 3.15.1",
]
[[package]]
name = "zbus"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030"
dependencies = [
"async-broadcast 0.7.0",
"async-broadcast",
"async-executor",
"async-fs 2.1.1",
"async-io 2.3.1",
@ -12400,23 +12348,9 @@ dependencies = [
"uds_windows",
"windows-sys 0.52.0",
"xdg-home",
"zbus_macros 4.0.1",
"zbus_names 3.0.0",
"zvariant 4.0.2",
]
[[package]]
name = "zbus_macros"
version = "3.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2207eb71efebda17221a579ca78b45c4c5f116f074eb745c3a172e688ccf89f5"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
"regex",
"syn 1.0.109",
"zvariant_utils",
"zbus_macros",
"zbus_names",
"zvariant",
]
[[package]]
@ -12433,17 +12367,6 @@ dependencies = [
"zvariant_utils",
]
[[package]]
name = "zbus_names"
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
dependencies = [
"serde",
"static_assertions",
"zvariant 3.15.1",
]
[[package]]
name = "zbus_names"
version = "3.0.0"
@ -12452,12 +12375,12 @@ checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
dependencies = [
"serde",
"static_assertions",
"zvariant 4.0.2",
"zvariant",
]
[[package]]
name = "zed"
version = "0.129.2"
version = "0.130.6"
dependencies = [
"activity_indicator",
"anyhow",
@ -12488,6 +12411,7 @@ dependencies = [
"extensions_ui",
"feedback",
"file_finder",
"file_icons",
"fs",
"futures 0.3.28",
"go_to_line",
@ -12522,6 +12446,7 @@ dependencies = [
"settings",
"simplelog",
"smol",
"tab_switcher",
"task",
"tasks_ui",
"terminal_view",
@ -12550,14 +12475,28 @@ dependencies = [
name = "zed_astro"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_extension_api"
version = "0.0.4"
name = "zed_clojure"
version = "0.0.1"
dependencies = [
"wit-bindgen",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_csharp"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_erlang"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4",
]
[[package]]
@ -12570,45 +12509,82 @@ dependencies = [
]
[[package]]
name = "zed_gleam"
version = "0.0.1"
name = "zed_extension_api"
version = "0.0.5"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"wit-bindgen",
]
[[package]]
name = "zed_extension_api"
version = "0.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5f4ae4e302a80591635ef9a236b35fde6fcc26cfd060e66fde4ba9f9fd394a1"
dependencies = [
"wit-bindgen",
]
[[package]]
name = "zed_gleam"
version = "0.0.2"
dependencies = [
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_haskell"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_php"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_prisma"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_purescript"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_svelte"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_toml"
version = "0.0.2"
dependencies = [
"zed_extension_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "zed_uiua"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"zed_extension_api 0.0.4",
]
[[package]]
name = "zed_zig"
version = "0.0.1"
dependencies = [
"zed_extension_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -12687,21 +12663,6 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "zvariant"
version = "3.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5b4fcf3660d30fc33ae5cd97e2017b23a96e85afd7a1dd014534cd0bf34ba67"
dependencies = [
"byteorder",
"enumflags2",
"libc",
"serde",
"static_assertions",
"url",
"zvariant_derive 3.15.1",
]
[[package]]
name = "zvariant"
version = "4.0.2"
@ -12712,20 +12673,8 @@ dependencies = [
"enumflags2",
"serde",
"static_assertions",
"zvariant_derive 4.0.2",
]
[[package]]
name = "zvariant_derive"
version = "3.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0277758a8a0afc0e573e80ed5bfd9d9c2b48bd3108ffe09384f9f738c83f4a55"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
"syn 1.0.109",
"zvariant_utils",
"url",
"zvariant_derive",
]
[[package]]

View File

@ -27,13 +27,13 @@
rustPlatform.buildRustPackage rec {
pname = "zed";
version = "0.129.2";
version = "0.130.6";
src = fetchFromGitHub {
owner = "zed-industries";
repo = "zed";
rev = "refs/tags/v${version}";
hash = "sha256-5VNPgZR1E/s5mpwU46zG640KucdyS+vnieveMzVdPNs=";
hash = "sha256-ENlvjqoxPInTVpt7qpV+02AbAOCnfCrowfDTyyr4Y7A=";
fetchSubmodules = true;
};
@ -50,8 +50,6 @@ rustPlatform.buildRustPackage rec {
"taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
"tree-sitter-0.20.100" = "sha256-k8au4++UJyaOCNo0cqokaQ5Is3BmIiCBSxiUkbrzhFQ=";
"tree-sitter-bash-0.20.4" = "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=";
"tree-sitter-c-sharp-0.20.0" = "sha256-DlnGIky33CuRKkVVS+tOTBLVOVzASXqdaUrZawh6LZc=";
"tree-sitter-clojure-0.0.9" = "sha256-H0OEnsoJxcDqlJ32ac7KCS2stT02XKrZ/v4mGMoN2EI=";
"tree-sitter-cpp-0.20.0" = "sha256-2QYEFkpwcRmh2kf4qEAL2a5lGSa316CetOhF73e7rEM=";
"tree-sitter-css-0.19.0" = "sha256-5Qti/bFac2A1PJxqZEOuSLK3GGKYwPDKAp3OOassBxU=";
"tree-sitter-dart-0.0.1" = "sha256-FE6zXy0lAUWWayrM3urZFnQaEYBcnmaVANcUUnvw1q4=";
@ -72,11 +70,9 @@ rustPlatform.buildRustPackage rec {
"tree-sitter-proto-0.0.2" = "sha256-W0diP2ByAXYrc7Mu/sbqST6lgVIyHeSBmH7/y/X3NhU=";
"tree-sitter-racket-0.0.1" = "sha256-ie64no94TtAWsSYaBXmic4oyRAA01fMl97+JWcFU1E8=";
"tree-sitter-scheme-0.2.0" = "sha256-K3+zmykjq2DpCnk17Ko9LOyGQTBZb1/dgVXIVynCYd4=";
"tree-sitter-toml-0.5.1" = "sha256-5nLNBxFeOGE+gzbwpcrTVnuL1jLUA0ZLBVw2QrOLsDQ=";
"tree-sitter-typescript-0.20.2" = "sha256-cpOAtfvlffS57BrXaoa2xa9NUYw0AsHxVI8PrcpgZCQ=";
"tree-sitter-vue-0.0.1" = "sha256-8v2e03A/Uj6zCJTH4j6TPwDQcNFeze1jepMADT6UVis=";
"tree-sitter-yaml-0.0.1" = "sha256-S59jLlipBI2kwFuZDMmpv0TOZpGyXpbAizN3yC6wJ5I=";
"tree-sitter-zig-0.0.1" = "sha256-a3W7eBUN4V3HD3YPr1+3tpuWQfIQy1Wu8qxCQx0hEnI=";
};
};
@ -144,6 +140,9 @@ rustPlatform.buildRustPackage rec {
checkFlags = lib.optionals stdenv.hostPlatform.isLinux [
# Fails with "On 2823 Failed to find test1:A"
"--skip=test_base_keymap"
# Fails with "called `Result::unwrap()` on an `Err` value: Invalid keystroke `cmd-k`"
# https://github.com/zed-industries/zed/issues/10427
"--skip=test_disabled_keymap_binding"
];
postInstall = ''
@ -203,5 +202,7 @@ rustPlatform.buildRustPackage rec {
];
mainProgram = "zed";
platforms = platforms.all;
# Currently broken on darwin: https://github.com/NixOS/nixpkgs/pull/303233#issuecomment-2048650618
broken = stdenv.isDarwin;
};
}

View File

@ -55,16 +55,16 @@ assert (extraParameters != null) -> set != null;
buildNpmPackage rec {
pname = "Iosevka${toString set}";
version = "29.0.5";
version = "29.1.0";
src = fetchFromGitHub {
owner = "be5invis";
repo = "iosevka";
rev = "v${version}";
hash = "sha256-Ir/HS9MFqOO7CDDLnqFX+6vCg06U5cYAcNKFyh5Ioc8=";
hash = "sha256-LtbkumAAx77sG2Mw5gkjFK+wtwibKP6uVT2buEkERik=";
};
npmDepsHash = "sha256-tzrMAZv1ATYwPVBUiDm4GPVj+TVAA3hMdc3MrdblOIw=";
npmDepsHash = "sha256-hC5283V5olhZlwY8PgTywTrbx93acclc4N0YrZTaV7Y=";
nativeBuildInputs = [
remarshal

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-arcmenu";
version = "52";
version = "55";
src = fetchFromGitLab {
owner = "arcmenu";
repo = "ArcMenu";
rev = "v${version}";
sha256 = "sha256-nZRdNkS4JfSwtqQsROKa1+eqcgwMQwVsqgeWVPpZIi0=";
sha256 = "sha256-xLKvcrZkqcj7aHiv9JumLWSP5LbajITAyopCIwGqpkE=";
};
patches = [

View File

@ -1,14 +1,14 @@
{ fetchFromGitHub, lib, stdenv }:
{ fetchFromGitHub, lib, stdenv, unstableGitUpdater }:
stdenv.mkDerivation rec {
pname = "argos";
version = "unstable-2023-09-26";
version = "unstable-2024-04-03";
src = fetchFromGitHub {
owner = "p-e-w";
repo = "argos";
rev = "adfaa31e8c08f7b59e9492891a7e6f753c29b35e"; # https://github.com/p-e-w/argos/pull/150
hash = "sha256-st8AeMRtkvM4M/Z70qopjw9Yx0t9l0DsUke4ClQtcBU=";
rev = "0449229e11bc2bb5c66e6f1d8503635cdf276bcf";
hash = "sha256-szBk3zW+HzfxTI34lLB1DFdnwZ3W+BgeVgDkwf0UzQU=";
};
installPhase = ''
@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
passthru = {
extensionUuid = "argos@pew.worldwidemann.com";
extensionPortalSlug = "argos";
updateScript = unstableGitUpdater { };
};
meta = with lib; {

View File

@ -348,6 +348,24 @@
"battery-time": [
"batime@martin.zurowietz.de",
"batterytime@typeof.pw"
],
"power-profile-indicator": [
"power-profile-indicator@laux.wtf",
"power-profile@fthx"
]
},
"46": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"persian-calendar": [
"PersianCalendar@oxygenws.com",
"persian-calendar@iamrezamousavi.gmail.com"
],
"power-profile-indicator": [
"power-profile-indicator@laux.wtf",
"power-profile@fthx"
]
}
}

View File

@ -64,9 +64,10 @@ in rec {
gnome43Extensions = mapUuidNames (produceExtensionsList "43");
gnome44Extensions = mapUuidNames (produceExtensionsList "44");
gnome45Extensions = mapUuidNames (produceExtensionsList "45");
gnome46Extensions = mapUuidNames (produceExtensionsList "46");
# Keep the last three versions in here
gnomeExtensions = lib.trivial.pipe (gnome43Extensions // gnome44Extensions // gnome45Extensions) [
gnomeExtensions = lib.trivial.pipe (gnome44Extensions // gnome45Extensions // gnome46Extensions) [
(v: builtins.removeAttrs v [ "__attrsFailEvaluation" ])
# Apply some custom patches for automatically packaged extensions
(callPackage ./extensionOverrides.nix {})

View File

@ -106,6 +106,14 @@ super: lib.trivial.pipe super [
];
}))
(patchExtension "mullvadindicator@pobega.github.com" (old: {
patches = [
# Patch from https://github.com/Pobega/gnome-shell-extension-mullvad-indicator/pull/36
# tweaked to drop the Makefile changes to fix application
./extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
];
}))
(patchExtension "pano@elhan.io" (old: {
patches = [
(substituteAll {

View File

@ -0,0 +1,25 @@
From ea472538fc73e9ab81e50183444dbb256d32ecc0 Mon Sep 17 00:00:00 2001
From: Sergio Rubio <rubiojr@rbel.co>
Date: Wed, 27 Mar 2024 20:43:38 +0100
Subject: [PATCH] Bump GNOME desktop version
The extension is 46 compatible.
---
metadata.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletions(-)
diff --git a/metadata.json b/metadata.json
index bc0e272..e647258 100644
--- a/metadata.json
+++ b/metadata.json
@@ -3,7 +3,8 @@
"description": "Mullvad connection status indicator",
"uuid": "mullvadindicator@pobega.github.com",
"shell-version": [
- "45"
+ "45",
+ "46"
],
"url": "https://github.com/Pobega/gnome-shell-extension-mullvad-indicator",
"settings-schema": "org.gnome.shell.extensions.MullvadIndicator",

File diff suppressed because one or more lines are too long

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-impatience";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "timbertson";
repo = "gnome-shell-impatience";
rev = "refs/tags/version-${version}";
hash = "sha256-qvRPdRxAxlylR+MRp8RLzkxIMulzxPSWbhOQ2qNuyt4=";
hash = "sha256-yBRnhdCDeA0bL+kkrmnIqyXAlhZzO2Vthc4Dnba80j4=";
};
buildInputs = [

View File

@ -1,14 +1,14 @@
{ stdenv, lib, fetchFromGitHub, glib, gjs, typescript }:
{ stdenv, lib, fetchFromGitHub, glib, gjs, typescript, unstableGitUpdater }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-pop-shell";
version = "unstable-2023-11-10";
version = "unstable-2024-04-04";
src = fetchFromGitHub {
owner = "pop-os";
repo = "shell";
rev = "aafc9458a47a68c396933c637de00421f5198a2a";
hash = "sha256-74lZbEYHj7fufRSbuI2SN9rqbB3gpRa0V96qjAFc01s=";
rev = "cfa0c55e84b7ce339e5ce83832f76fee17e99d51";
hash = "sha256-IQJtTMYCkKyjqDKoR35qsgQkvXIrGLq+qtMDOTkvy08=";
};
nativeBuildInputs = [ glib gjs typescript ];
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
passthru = {
extensionUuid = "pop-shell@system76.com";
extensionPortalSlug = "pop-shell";
updateScript = unstableGitUpdater { };
};
postPatch = ''

View File

@ -21,6 +21,7 @@ supported_versions = {
"43": "43",
"44": "44",
"45": "45",
"46": "46",
}
# Some type alias to increase readability of complex compound types

View File

@ -1,5 +0,0 @@
import ./generic.nix {
version = "2.106.1";
dmdSha256 = "sha256-vjYa/Pxrz7J2htXT+fa+xaeen/Vxne++lELbHTSXBK8=";
phobosSha256 = "sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=";
}

View File

@ -1,5 +1,6 @@
{ lowPrio, newScope, pkgs, lib, stdenv, cmake
, preLibcCrossHeaders
, fetchpatch
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross
@ -114,7 +115,11 @@ let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
src = fetch "lld" "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9";
patches = [
./lld/gnu-install-dirs.patch
];
inherit llvm_meta;
inherit (libraries) libunwind;
};
@ -258,13 +263,24 @@ let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
src = fetch "libunwind" "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb";
patches = [
./libunwind/gnu-install-dirs.patch
];
inherit llvm_meta;
inherit (buildLlvmTools) llvm;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
src = fetch "openmp" "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0";
patches = [
# Fix cross.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
})
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,37 +0,0 @@
{ lib, stdenv, llvm_meta, version, fetch, libcxx, llvm, cmake
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
src = fetch pname "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb";
postUnpack = ''
ln -s ${libcxx.src}/libcxx .
ln -s ${libcxx.src}/llvm .
'';
patches = [
./gnu-install-dirs.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,48 +0,0 @@
{ lib
, stdenv
, llvm_meta
, fetch
, fetchpatch
, cmake
, llvm
, targetLlvm
, perl
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = fetch pname "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0";
patches = [
# Fix cross.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
})
];
patchFlags = [ "-p2" ];
nativeBuildInputs = [ cmake perl ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -1,5 +1,6 @@
{ lowPrio, newScope, pkgs, lib, stdenv, cmake
, preLibcCrossHeaders
, fetchpatch
, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross
@ -139,7 +140,10 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
];
inherit llvm_meta;
};
@ -296,12 +300,22 @@ in let
monorepoSrc = src;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
patches = [
./libunwind/gnu-install-dirs.patch
];
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
# Fix cross.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
})
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,33 +0,0 @@
{ lib, stdenv, llvm_meta, version, src, cmake
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
inherit src;
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,55 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, src
, cmake
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
inherit src;
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
];
# On Darwin the llvm-config is perhaps not working fine as the
# LLVM_MAIN_SRC_DIR is not getting set correctly, and the build fails as the
# include path is not correct.
postPatch = lib.optionalString stdenv.isDarwin ''
substituteInPlace MachO/CMakeLists.txt --replace \
'(''${LLVM_MAIN_SRC_DIR}/' '(../'
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ libllvm libxml2 ];
cmakeFlags = [
"-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -1,53 +0,0 @@
{ lib
, stdenv
, llvm_meta
, src
, fetchpatch
, cmake
, llvm
, targetLlvm
, perl
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
inherit src;
sourceRoot = "${src.name}/${pname}";
patches = [
# Fix cross.
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch";
hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
})
];
patchFlags = [ "-p2" ];
nativeBuildInputs = [ cmake perl ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
cmakeFlags = [
"-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL currently fails
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -136,7 +136,11 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
./lld/fix-root-src-dir.patch
];
inherit llvm_meta;
};
@ -294,12 +298,19 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
patches = [
./libunwind/gnu-install-dirs.patch
];
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/gnu-install-dirs.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,47 +0,0 @@
{ lib, stdenv, llvm_meta, version
, monorepoSrc, runCommand
, cmake
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
# I am not so comfortable giving libc++ and friends the whole monorepo as
# requested, so I filter it to what is needed.
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,58 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
# On Darwin the llvm-config is perhaps not working fine as the
# LLVM_MAIN_SRC_DIR is not getting set correctly, and the build fails as
# the include path is not correct.
./fix-root-src-dir.patch
];
nativeBuildInputs = [ cmake ];
buildInputs = [ libllvm libxml2 ];
cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -1,69 +0,0 @@
{ lib
, stdenv
, llvm_meta
, monorepoSrc
, runCommand
, cmake
, llvm
, targetLlvm
, lit
, clang-unwrapped
, perl
, pkg-config
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
./run-lit-directly.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake perl pkg-config lit ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
# Unsup:Pass:XFail:Fail
# 26:267:16:8
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
cmakeFlags = [
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -141,7 +141,10 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
];
inherit llvm_meta;
};
@ -312,12 +315,20 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
patches = [
./libunwind/gnu-install-dirs.patch
];
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/fix-find-tool.patch
./openmp/gnu-install-dirs.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,67 +0,0 @@
{ lib, stdenv, llvm_meta, version
, monorepoSrc, runCommand
, cmake
, ninja
, python3
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
# I am not so comfortable giving libc++ and friends the whole monorepo as
# requested, so I filter it to what is needed.
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/runtimes "$out"
'';
sourceRoot = "${src.name}/runtimes";
prePatch = ''
cd ../${pname}
chmod -R u+w .
'';
patches = [
./gnu-install-dirs.patch
];
postPatch = ''
cd ../runtimes
'';
postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
# libcxxabi wants to link to libunwind_shared.so (?).
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja python3 ];
cmakeFlags = [
"-DLLVM_ENABLE_RUNTIMES=libunwind"
] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,57 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
];
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libllvm libxml2 ];
cmakeFlags = [
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -1,74 +0,0 @@
{ lib
, stdenv
, llvm_meta
, monorepoSrc
, runCommand
, cmake
, ninja
, llvm
, targetLlvm
, lit
, clang-unwrapped
, perl
, pkg-config
, xcbuild
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./fix-find-tool.patch
./gnu-install-dirs.patch
./run-lit-directly.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja perl pkg-config lit ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun;
# Unsup:Pass:XFail:Fail
# 26:267:16:8
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
cmakeFlags = [
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -141,7 +141,11 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
./lld/add-table-base.patch
];
inherit llvm_meta;
};
@ -327,12 +331,20 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
patches = [
./libunwind/gnu-install-dirs.patch
];
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/fix-find-tool.patch
./openmp/gnu-install-dirs.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,67 +0,0 @@
{ lib, stdenv, llvm_meta, version
, monorepoSrc, runCommand
, cmake
, ninja
, python3
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
# I am not so comfortable giving libc++ and friends the whole monorepo as
# requested, so I filter it to what is needed.
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/runtimes "$out"
'';
sourceRoot = "${src.name}/runtimes";
prePatch = ''
cd ../${pname}
chmod -R u+w .
'';
patches = [
./gnu-install-dirs.patch
];
postPatch = ''
cd ../runtimes
'';
postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
# libcxxabi wants to link to libunwind_shared.so (?).
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja python3 ];
cmakeFlags = [
"-DLLVM_ENABLE_RUNTIMES=libunwind"
] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,58 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
./add-table-base.patch
];
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libllvm libxml2 ];
cmakeFlags = [
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -1,74 +0,0 @@
{ lib
, stdenv
, llvm_meta
, monorepoSrc
, runCommand
, cmake
, ninja
, llvm
, targetLlvm
, lit
, clang-unwrapped
, perl
, pkg-config
, xcbuild
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./fix-find-tool.patch
./gnu-install-dirs.patch
./run-lit-directly.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja perl pkg-config lit ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun;
# Unsup:Pass:XFail:Fail
# 26:267:16:8
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
cmakeFlags = [
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -136,7 +136,11 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
./lld/add-table-base.patch
];
inherit llvm_meta;
};
@ -312,12 +316,17 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/fix-find-tool.patch
./openmp/gnu-install-dirs.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,63 +0,0 @@
{ lib, stdenv, llvm_meta, version
, monorepoSrc, runCommand
, cmake
, ninja
, python3
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
# I am not so comfortable giving libc++ and friends the whole monorepo as
# requested, so I filter it to what is needed.
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/runtimes "$out"
'';
sourceRoot = "${src.name}/runtimes";
prePatch = ''
cd ../${pname}
chmod -R u+w .
'';
postPatch = ''
cd ../runtimes
'';
postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
# libcxxabi wants to link to libunwind_shared.so (?).
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja python3 ];
cmakeFlags = [
"-DLLVM_ENABLE_RUNTIMES=libunwind"
] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,58 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./gnu-install-dirs.patch
./add-table-base.patch
];
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libllvm libxml2 ];
cmakeFlags = [
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -1,74 +0,0 @@
{ lib
, stdenv
, llvm_meta
, monorepoSrc
, runCommand
, cmake
, ninja
, llvm
, targetLlvm
, lit
, clang-unwrapped
, perl
, pkg-config
, xcbuild
, version
}:
stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./fix-find-tool.patch
./gnu-install-dirs.patch
./run-lit-directly.patch
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja perl pkg-config lit ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun;
# Unsup:Pass:XFail:Fail
# 26:267:16:8
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
cmakeFlags = [
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
];
meta = llvm_meta // {
homepage = "https://openmp.llvm.org/";
description = "Support for the OpenMP language";
longDescription = ''
The OpenMP subproject of LLVM contains the components required to build an
executable OpenMP program that are outside the compiler itself.
Contains the code for the runtime library against which code compiled by
"clang -fopenmp" must be linked before it can run and the library that
supports offload to target devices.
'';
# "All of the code is dual licensed under the MIT license and the UIUC
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}

View File

@ -136,7 +136,10 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
];
inherit llvm_meta;
};
@ -312,12 +315,16 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/fix-find-tool.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

View File

@ -1,54 +0,0 @@
{ lib, stdenv, llvm_meta, version
, monorepoSrc, runCommand
, cmake
, ninja
, python3
, enableShared ? !stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
# I am not so comfortable giving libc++ and friends the whole monorepo as
# requested, so I filter it to what is needed.
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/runtimes "$out"
'';
sourceRoot = "${src.name}/runtimes";
postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
# libcxxabi wants to link to libunwind_shared.so (?).
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja python3 ];
cmakeFlags = [
"-DLLVM_ENABLE_RUNTIMES=libunwind"
] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
}

View File

@ -1,57 +0,0 @@
{ lib, stdenv, llvm_meta
, buildLlvmTools
, monorepoSrc, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
pname = "lld";
inherit version;
# Blank llvm dir just so relative path works
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'';
sourceRoot = "${src.name}/${pname}";
nativeBuildInputs = [ cmake ninja ];
buildInputs = [ libllvm libxml2 ];
patches = [
./gnu-install-dirs.patch
];
cmakeFlags = [
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
# Musl's default stack size is too small for lld to be able to link Firefox.
LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
outputs = [ "out" "lib" "dev" ];
meta = llvm_meta // {
homepage = "https://lld.llvm.org/";
description = "The LLVM linker (unwrapped)";
longDescription = ''
LLD is a linker from the LLVM project that is a drop-in replacement for
system linkers and runs much faster than them. It also provides features
that are useful for toolchain developers.
The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
WebAssembly in descending order of completeness. Internally, LLD consists
of several different linkers.
'';
};
}

View File

@ -0,0 +1,87 @@
{ lib
, stdenv
, release_version
, patches ? []
, src ? null
, llvm_meta
, version
, monorepoSrc ? null
, runCommand
, cmake
, ninja
, python3
, libcxx
, enableShared ? !stdenv.hostPlatform.isStatic
}:
let
pname = "libunwind";
src' = if monorepoSrc != null then
runCommand "${pname}-src-${version}" {} (''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
mkdir -p "$out/llvm"
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
'' + lib.optionalString (lib.versionAtLeast release_version "15") ''
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
cp -r ${monorepoSrc}/runtimes "$out"
'') else src;
hasPatches = builtins.length patches > 0;
postUnpack = lib.optionalString (lib.versions.major release_version == "12") ''
ln -s ${libcxx.src}/libcxx .
ln -s ${libcxx.src}/llvm .
'';
prePatch = lib.optionalString (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) ''
cd ../${pname}
chmod -R u+w .
'';
postPatch = lib.optionalString (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) ''
cd ../runtimes
'';
postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
# libcxxabi wants to link to libunwind_shared.so (?).
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
'';
in
stdenv.mkDerivation (rec {
inherit pname version patches;
src = src';
sourceRoot =
if lib.versionOlder release_version "13" then null
else if lib.versionAtLeast release_version "15" then "${src.name}/runtimes"
else "${src.name}/${pname}";
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ] ++ lib.optionals (lib.versionAtLeast release_version "15") [
ninja python3
];
cmakeFlags = lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind"
++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
meta = llvm_meta // {
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
description = "LLVM's unwinder library";
longDescription = ''
The unwind library provides a family of _Unwind_* functions implementing
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
I). It is a dependency of the C++ ABI library, and sometimes is a
dependency of other runtimes.
'';
};
} // (if postUnpack != "" then { inherit postUnpack; } else {})
// (if (lib.versionAtLeast release_version "15") then { inherit postInstall; } else {})
// (if prePatch != "" then { inherit prePatch; } else {})
// (if postPatch != "" then { inherit postPatch; } else {}))

View File

@ -1,35 +1,58 @@
{ lib, stdenv, llvm_meta
{ lib
, stdenv
, llvm_meta
, release_version
, patches ? []
, buildLlvmTools
, fetch
, libunwind
, monorepoSrc ? null
, src ? null
, libunwind ? null
, runCommand
, cmake
, ninja
, libxml2
, libllvm
, version
}:
stdenv.mkDerivation rec {
let
pname = "lld";
inherit version;
src' =
if monorepoSrc != null then
runCommand "lld-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
mkdir -p "$out/libunwind"
cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
mkdir -p "$out/llvm"
'' else src;
src = fetch pname "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9";
patches = [
./gnu-install-dirs.patch
];
postPatch = ''
postPatch = lib.optionalString (lib.versions.major release_version == "12") ''
substituteInPlace MachO/CMakeLists.txt --replace \
'(''${LLVM_MAIN_SRC_DIR}/' '('
mkdir -p libunwind/include
tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
'' + lib.optionalString (lib.versions.major release_version == "13" && stdenv.isDarwin) ''
substituteInPlace MachO/CMakeLists.txt --replace \
'(''${LLVM_MAIN_SRC_DIR}/' '(../'
'';
in
stdenv.mkDerivation (rec {
inherit pname version patches;
nativeBuildInputs = [ cmake ];
src = src';
sourceRoot =
if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
nativeBuildInputs = [ cmake ] ++ lib.optional (lib.versionAtLeast release_version "15") ninja;
buildInputs = [ libllvm libxml2 ];
cmakeFlags = [
cmakeFlags = lib.optionals (lib.versionOlder release_version "14") [
"-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals (lib.versionAtLeast release_version "15") [
"-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
];
@ -51,4 +74,4 @@ stdenv.mkDerivation rec {
of several different linkers.
'';
};
}
} // (if (postPatch == "" && lib.versions.major release_version != "13") then {} else { inherit postPatch; }))

View File

@ -1,7 +1,10 @@
{ lib
, stdenv
, llvm_meta
, monorepoSrc
, release_version
, patches ? []
, monorepoSrc ? null
, src ? null
, runCommand
, cmake
, ninja
@ -14,43 +17,47 @@
, xcbuild
, version
}:
stdenv.mkDerivation rec {
let
pname = "openmp";
inherit version;
src' =
if monorepoSrc != null then
runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'' else src;
in
stdenv.mkDerivation (rec {
inherit pname version patches;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
src = src';
sourceRoot = "${src.name}/${pname}";
sourceRoot =
if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
patches = [
./fix-find-tool.patch
./run-lit-directly.patch
outputs = [ "out" ]
++ lib.optionals (lib.versionAtLeast release_version "14") [ "dev" ];
patchFlags =
if lib.versionOlder release_version "14" then [ "-p2" ]
else null;
nativeBuildInputs = [
cmake
] ++ lib.optionals (lib.versionAtLeast release_version "15") [
ninja
] ++ [ perl ] ++ lib.optionals (lib.versionAtLeast release_version "14") [
pkg-config lit
];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ninja perl pkg-config lit ];
buildInputs = [
(if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
];
nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun;
# Unsup:Pass:XFail:Fail
# 26:267:16:8
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
cmakeFlags = [
cmakeFlags = lib.optionals (lib.versions.major release_version == "13") [
"-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL fails
] ++ lib.optionals (lib.versionAtLeast release_version "14") [
"-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
"-DOPT_TOOL=${llvm}/bin/opt"
"-DLINK_TOOL=${llvm}/bin/llvm-link"
@ -70,4 +77,10 @@ stdenv.mkDerivation rec {
# License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
};
}
} // (lib.optionalAttrs (lib.versionAtLeast release_version "14") {
doCheck = false;
checkTarget = "check-openmp";
preCheck = ''
patchShebangs ../tools/archer/tests/deflake.bash
'';
}))

View File

@ -81,6 +81,8 @@ stdenv.mkDerivation {
# `COMPILER_RT_DEFAULT_TARGET_ONLY` does not apply to Darwin:
# https://github.com/llvm/llvm-project/blob/27ef42bec80b6c010b7b3729ed0528619521a690/compiler-rt/cmake/base-config-ix.cmake#L153
"-DCOMPILER_RT_ENABLE_IOS=OFF"
] ++ lib.optionals (lib.versionAtLeast version "19" && stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
"-DSANITIZER_MIN_OSX_VERSION=10.10"
];
outputs = [ "out" "dev" ];

View File

@ -19,9 +19,9 @@
# LLVM release information; specify one of these but not both:
, gitRelease ? {
version = "19.0.0-git";
rev = "65058a8d732c3c41664a4dad1a1ae2a504d5c98e";
rev-version = "19.0.0-unstable-2024-03-16";
sha256 = "sha256-xV33kx/8OZ2KLtaz25RmudDrlIX7nScauTykf87jyTE=";
rev = "cebf77fb936a7270c7e3fa5c4a7e76216321d385";
rev-version = "19.0.0-unstable-2024-04-07";
sha256 = "sha256-616tscgsiFgHQcXW4KzK5srrudYizQFnJVM6K0qRf+I=";
}
# i.e.:
# {
@ -141,7 +141,10 @@ in let
extraBuildCommands = mkExtraBuildCommands cc;
};
lld = callPackage ./lld {
lld = callPackage ../common/lld {
patches = [
./lld/gnu-install-dirs.patch
];
inherit llvm_meta;
};
@ -317,12 +320,16 @@ in let
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
libunwind = callPackage ./libunwind {
libunwind = callPackage ../common/libunwind {
inherit llvm_meta;
stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
};
openmp = callPackage ./openmp {
openmp = callPackage ../common/openmp {
patches = [
./openmp/fix-find-tool.patch
./openmp/run-lit-directly.patch
];
inherit llvm_meta targetLlvm;
};
});

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