Merge staging-next into staging
This commit is contained in:
@@ -7,9 +7,6 @@
|
||||
|
||||
let
|
||||
cfg = config.services.desktopManager.lomiri;
|
||||
nixos-gsettings-overrides = pkgs.lomiri.lomiri-gsettings-overrides.override {
|
||||
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages;
|
||||
};
|
||||
in
|
||||
{
|
||||
options.services.desktopManager.lomiri = {
|
||||
@@ -25,18 +22,6 @@ in
|
||||
type = lib.types.bool;
|
||||
default = config.services.xserver.displayManager.lightdm.greeters.lomiri.enable || cfg.enable;
|
||||
};
|
||||
|
||||
extraGSettingsOverrides = lib.mkOption {
|
||||
description = "Additional GSettings overrides.";
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
};
|
||||
|
||||
extraGSettingsOverridePackages = lib.mkOption {
|
||||
description = "List of packages for which GSettings are overridden.";
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
@@ -58,16 +43,26 @@ in
|
||||
"/share/wallpapers"
|
||||
];
|
||||
|
||||
# Override GSettings defaults
|
||||
sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
|
||||
systemPackages = [
|
||||
nixos-gsettings-overrides # GSettings default overrides
|
||||
]
|
||||
++ (with pkgs.lomiri; [
|
||||
systemPackages = with pkgs.lomiri; [
|
||||
lomiri-wallpapers # default + additional wallpaper
|
||||
suru-icon-theme # basic indicator icons
|
||||
]);
|
||||
];
|
||||
};
|
||||
|
||||
# Override GSettings defaults
|
||||
programs.dconf = {
|
||||
enable = true;
|
||||
profiles.user.databases = [
|
||||
{
|
||||
settings = {
|
||||
"com/lomiri/shell/launcher" = {
|
||||
logo-picture-uri = "file://${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
||||
home-button-background-color = "#5277C3";
|
||||
};
|
||||
};
|
||||
lockAll = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
@@ -156,7 +151,6 @@ in
|
||||
# Copy-pasted basic stuff
|
||||
hardware.graphics.enable = lib.mkDefault true;
|
||||
fonts.enableDefaultPackages = lib.mkDefault true;
|
||||
programs.dconf.enable = lib.mkDefault true;
|
||||
|
||||
services.accounts-daemon.enable = true;
|
||||
|
||||
|
||||
@@ -76,6 +76,11 @@ Each Netbird client service by default:
|
||||
peer-to-peer communication,
|
||||
- can be additionally configured with environment variables,
|
||||
- automatically determines whether `netbird-ui-<name>` should be available,
|
||||
- does not enable [routing features](#opt-services.netbird.useRoutingFeatures) by default
|
||||
If you plan to use routing features, you must explicitly enable them. By enabling them, the service will
|
||||
configure the firewall and enable IP forwarding on the system.
|
||||
When set to `client` or `both`, reverse path filtering will be set to loose instead of strict.
|
||||
When set to `server` or `both`, IP forwarding will be enabled.
|
||||
|
||||
[autoStart](#opt-services.netbird.clients._name_.autoStart) allows you to start the client (an actual systemd service)
|
||||
on demand, for example to connect to work-related or otherwise conflicting network only when required.
|
||||
|
||||
@@ -24,6 +24,7 @@ let
|
||||
mkMerge
|
||||
mkOption
|
||||
mkOptionDefault
|
||||
mkOverride
|
||||
mkPackageOption
|
||||
nameValuePair
|
||||
optional
|
||||
@@ -83,7 +84,7 @@ in
|
||||
type = bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enables backwards compatible Netbird client service.
|
||||
Enables backward-compatible NetBird client service.
|
||||
|
||||
This is strictly equivalent to:
|
||||
|
||||
@@ -112,6 +113,23 @@ in
|
||||
};
|
||||
ui.package = mkPackageOption pkgs "netbird-ui" { };
|
||||
|
||||
useRoutingFeatures = mkOption {
|
||||
type = enum [
|
||||
"none"
|
||||
"client"
|
||||
"server"
|
||||
"both"
|
||||
];
|
||||
default = "none";
|
||||
example = "server";
|
||||
description = ''
|
||||
Enables settings required for NetBird's routing features: Network Resources, Network Routes & Exit Nodes.
|
||||
|
||||
When set to `client` or `both`, reverse path filtering will be set to loose instead of strict.
|
||||
When set to `server` or `both`, IP forwarding will be enabled.
|
||||
'';
|
||||
};
|
||||
|
||||
clients = mkOption {
|
||||
type = attrsOf (
|
||||
submodule (
|
||||
@@ -125,7 +143,7 @@ in
|
||||
type = port;
|
||||
example = literalExpression "51820";
|
||||
description = ''
|
||||
Port the Netbird client listens on.
|
||||
Port the NetBird client listens on.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -146,9 +164,9 @@ in
|
||||
default = null;
|
||||
example = "127.0.0.123";
|
||||
description = ''
|
||||
An explicit address that Netbird will serve `*.netbird.cloud.` (usually) entries on.
|
||||
An explicit address that NetBird will serve `*.netbird.cloud.` (usually) entries on.
|
||||
|
||||
Netbird serves DNS on it's own (dynamic) client address by default.
|
||||
NetBird serves DNS on it's own (dynamic) client address by default.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -200,7 +218,7 @@ in
|
||||
description = ''
|
||||
Start the service with the system.
|
||||
|
||||
As of 2024-02-13 it is not possible to start a Netbird client daemon without immediately
|
||||
As of 2024-02-13 it is not possible to start a NetBird client daemon without immediately
|
||||
connecting to the network, but it is [planned for a near future](https://github.com/netbirdio/netbird/projects/2#card-91718018).
|
||||
'';
|
||||
};
|
||||
@@ -209,7 +227,7 @@ in
|
||||
type = bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Opens up firewall `port` for communication between Netbird peers directly over LAN or public IP,
|
||||
Opens up firewall `port` for communication between NetBird peers directly over LAN or public IP,
|
||||
without using (internet-hosted) TURN servers as intermediaries.
|
||||
'';
|
||||
};
|
||||
@@ -247,7 +265,7 @@ in
|
||||
"trace"
|
||||
];
|
||||
default = "info";
|
||||
description = "Log level of the Netbird daemon.";
|
||||
description = "Log level of the NetBird daemon.";
|
||||
};
|
||||
|
||||
ui.enable = mkOption {
|
||||
@@ -255,7 +273,7 @@ in
|
||||
default = nixosConfig.services.netbird.ui.enable;
|
||||
defaultText = literalExpression ''client.ui.enable'';
|
||||
description = ''
|
||||
Controls presence of `netbird-ui` wrapper for this Netbird client.
|
||||
Controls presence of `netbird-ui` wrapper for this NetBird client.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -292,7 +310,7 @@ in
|
||||
mkdir -p "$out/share/applications"
|
||||
substitute ${cfg.ui.package}/share/applications/netbird.desktop \
|
||||
"$out/share/applications/${mkBin "netbird"}.desktop" \
|
||||
--replace-fail 'Name=Netbird' "Name=Netbird @ ${client.service.name}" \
|
||||
--replace-fail 'Name=NetBird' "Name=NetBird @ ${client.service.name}" \
|
||||
--replace-fail '${lib.getExe cfg.ui.package}' "$out/bin/${mkBin "netbird-ui"}"
|
||||
'')
|
||||
];
|
||||
@@ -348,14 +366,14 @@ in
|
||||
type = path;
|
||||
default = "/var/lib/${client.dir.baseName}";
|
||||
description = ''
|
||||
A state directory used by Netbird client to store `config.json`, `state.json` & `resolv.conf`.
|
||||
A state directory used by NetBird client to store `config.json`, `state.json` & `resolv.conf`.
|
||||
'';
|
||||
};
|
||||
dir.runtime = mkOption {
|
||||
type = path;
|
||||
default = "/var/run/${client.dir.baseName}";
|
||||
description = ''
|
||||
A runtime directory used by Netbird client.
|
||||
A runtime directory used by NetBird client.
|
||||
'';
|
||||
};
|
||||
service.name = mkOption {
|
||||
@@ -415,11 +433,11 @@ in
|
||||
);
|
||||
default = { };
|
||||
description = ''
|
||||
Attribute set of Netbird client daemons, by default each one will:
|
||||
Attribute set of NetBird client daemons, by default each one will:
|
||||
|
||||
1. be manageable using dedicated tooling:
|
||||
- `netbird-<name>` script,
|
||||
- `Netbird - netbird-<name>` graphical interface when appropriate (see `ui.enable`),
|
||||
- `NetBird - netbird-<name>` graphical interface when appropriate (see `ui.enable`),
|
||||
2. run as a `netbird-<name>.service`,
|
||||
3. listen for incoming remote connections on the port `51820` (`openFirewall` by default),
|
||||
4. manage the `netbird-<name>` wireguard interface,
|
||||
@@ -467,19 +485,30 @@ in
|
||||
networking.dhcpcd.denyInterfaces = toClientList (client: client.interface);
|
||||
networking.networkmanager.unmanaged = toClientList (client: "interface-name:${client.interface}");
|
||||
|
||||
networking.firewall.allowedUDPPorts = concatLists (
|
||||
toClientList (client: optional client.openFirewall client.port)
|
||||
);
|
||||
# Required for the routing ("Exit node") feature(s) to work
|
||||
boot.kernel.sysctl = mkIf (cfg.useRoutingFeatures == "server" || cfg.useRoutingFeatures == "both") {
|
||||
"net.ipv4.conf.all.forwarding" = mkOverride 97 true;
|
||||
"net.ipv6.conf.all.forwarding" = mkOverride 97 true;
|
||||
};
|
||||
|
||||
# Ports opened on a specific
|
||||
networking.firewall.interfaces = listToAttrs (
|
||||
toClientList (client: {
|
||||
name = client.interface;
|
||||
value.allowedUDPPorts = optionals client.openFirewall [
|
||||
5353 # required for the DNS forwarding/routing to work
|
||||
];
|
||||
})
|
||||
);
|
||||
networking.firewall = {
|
||||
allowedUDPPorts = concatLists (toClientList (client: optional client.openFirewall client.port));
|
||||
|
||||
# Required for the routing ("Exit node") feature(s) to work
|
||||
checkReversePath = mkIf (
|
||||
cfg.useRoutingFeatures == "client" || cfg.useRoutingFeatures == "both"
|
||||
) "loose";
|
||||
|
||||
# Ports opened on a specific
|
||||
interfaces = listToAttrs (
|
||||
toClientList (client: {
|
||||
name = client.interface;
|
||||
value.allowedUDPPorts = optionals client.openFirewall [
|
||||
5353 # required for the DNS forwarding/routing to work
|
||||
];
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
systemd.network.networks = mkIf config.networking.useNetworkd (
|
||||
toClientAttrs (
|
||||
@@ -601,7 +630,7 @@ in
|
||||
# see https://github.com/systemd/systemd/blob/17f3e91e8107b2b29fe25755651b230bbc81a514/src/resolve/org.freedesktop.resolve1.policy#L43-L43
|
||||
# see all actions used at https://github.com/netbirdio/netbird/blob/13e7198046a0d73a9cd91bf8e063fafb3d41885c/client/internal/dns/systemd_linux.go#L29-L32
|
||||
security.polkit.extraConfig = mkIf config.services.resolved.enable ''
|
||||
// systemd-resolved access for Netbird clients
|
||||
// systemd-resolved access for NetBird clients
|
||||
polkit.addRule(function(action, subject) {
|
||||
var actions = [
|
||||
"org.freedesktop.resolve1.revert",
|
||||
|
||||
+22
-50
@@ -64,52 +64,16 @@ let
|
||||
];
|
||||
}
|
||||
''
|
||||
magick -size 640x480 canvas:white -pointsize 30 -fill black -annotate +100+100 '${wallpaperText}' $out
|
||||
magick -size 640x480 canvas:black -pointsize 30 -fill white -annotate +100+100 '${wallpaperText}' $out
|
||||
'';
|
||||
# gsettings tool with access to wallpaper schema
|
||||
lomiri-gsettings =
|
||||
pkgs:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "lomiri-gsettings";
|
||||
dontUnpack = true;
|
||||
nativeBuildInputs = with pkgs; [
|
||||
glib
|
||||
wrapGAppsHook3
|
||||
];
|
||||
buildInputs = with pkgs; [
|
||||
# Not using the Lomiri-namespaced setting yet
|
||||
# lomiri.lomiri-schemas
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
ln -s ${pkgs.lib.getExe' pkgs.glib "gsettings"} $out/bin/lomiri-gsettings
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
setLomiriWallpaperService =
|
||||
pkgs:
|
||||
let
|
||||
lomiriServices = [
|
||||
"lomiri.service"
|
||||
"lomiri-full-greeter.service"
|
||||
"lomiri-full-shell.service"
|
||||
"lomiri-greeter.service"
|
||||
"lomiri-shell.service"
|
||||
];
|
||||
in
|
||||
rec {
|
||||
description = "Set Lomiri wallpaper to something OCR-able";
|
||||
wantedBy = lomiriServices;
|
||||
before = lomiriServices;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
# Not using the Lomiri-namespaed settings yet
|
||||
# ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set com.lomiri.Shell background-picture-uri file://${wallpaperFile pkgs}";
|
||||
ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set org.gnome.desktop.background picture-uri file://${wallpaperFile pkgs}";
|
||||
|
||||
lomiriWallpaperDconfSettings = pkgs: {
|
||||
settings = {
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri = "file://${wallpaperFile pkgs}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sharedTestFunctions = ''
|
||||
def wait_for_text(text):
|
||||
@@ -413,12 +377,14 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
programs.dconf.profiles.user.databases = [
|
||||
(lomiriWallpaperDconfSettings pkgs)
|
||||
];
|
||||
|
||||
# Help with OCR
|
||||
systemd.tmpfiles.settings = {
|
||||
"10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; };
|
||||
};
|
||||
|
||||
systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs;
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
@@ -562,12 +528,14 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
programs.dconf.profiles.user.databases = [
|
||||
(lomiriWallpaperDconfSettings pkgs)
|
||||
];
|
||||
|
||||
# Help with OCR
|
||||
systemd.tmpfiles.settings = {
|
||||
"10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; };
|
||||
};
|
||||
|
||||
systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs;
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
@@ -710,7 +678,9 @@ in
|
||||
|
||||
environment.etc."${wallpaperName}".source = wallpaperFile pkgs;
|
||||
|
||||
systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs;
|
||||
programs.dconf.profiles.user.databases = [
|
||||
(lomiriWallpaperDconfSettings pkgs)
|
||||
];
|
||||
|
||||
# Help with OCR
|
||||
systemd.tmpfiles.settings = {
|
||||
@@ -733,7 +703,8 @@ in
|
||||
machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'")
|
||||
|
||||
# Start page shows current time
|
||||
wait_for_text(r"(AM|PM)")
|
||||
# And the greeter *actually* renders our wallpaper!
|
||||
wait_for_text(r"(AM|PM|Lorem|ipsum)")
|
||||
machine.screenshot("lomiri_greeter_launched")
|
||||
|
||||
# Advance to login part
|
||||
@@ -747,6 +718,7 @@ in
|
||||
|
||||
# Output rendering from Lomiri has started when it starts printing performance diagnostics
|
||||
machine.wait_for_console_text("Last frame took")
|
||||
# And the desktop doesn't render the wallpaper anymore. Grumble grumble...
|
||||
# Look for datetime's clock, one of the last elements to load
|
||||
wait_for_text(r"(AM|PM)")
|
||||
machine.screenshot("lomiri_launched")
|
||||
@@ -849,7 +821,7 @@ in
|
||||
ocr = [ "Log Out" ];
|
||||
extraCheck = ''
|
||||
# We should be able to log out and return to the greeter
|
||||
mouse_click(600, 280) # "Log Out"
|
||||
mouse_click(600, 250) # "Log Out"
|
||||
mouse_click(340, 220) # confirm logout
|
||||
machine.wait_until_fails("pgrep -u ${user} -f 'lomiri --mode=full-shell'")
|
||||
'';
|
||||
|
||||
@@ -2752,7 +2752,13 @@ in
|
||||
|
||||
nvim-unception = super.nvim-unception.overrideAttrs {
|
||||
# Attempt rpc socket connection
|
||||
nvimSkipModules = "client.client";
|
||||
nvimSkipModules = [
|
||||
"client.client"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
"server.server"
|
||||
"unception"
|
||||
];
|
||||
};
|
||||
|
||||
nvim-vtsls = super.nvim-vtsls.overrideAttrs {
|
||||
|
||||
@@ -97,6 +97,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Fix path to ps2pdf binary
|
||||
inherit ghostscript;
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-build-poppler-25.06.0.patch";
|
||||
url = "https://gitlab.com/inkscape/inkscape/-/commit/97bd8f29a61e691ceea98ca2444b974cf4256ae0.patch";
|
||||
hash = "sha256-bYRd/KUh/7qFb7x0EuUgQYA9P8abcTf5XS67gzaAiXA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-build-poppler-25.07.0.patch";
|
||||
url = "https://gitlab.com/inkscape/inkscape/-/commit/ce52c5f96106ae5747171663a46831f21aa52d95.patch";
|
||||
hash = "sha256-3Yj+neSRSSQPeeZkHJ0P6v3Sis/lg9xiygktI6Z+zDY=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -33,7 +33,10 @@ Use the following command, use the current version of azure-cli in nixpkgs as `c
|
||||
and the name of the extension you want to package as `extension`:
|
||||
|
||||
```sh
|
||||
./query-extension-index.sh --cli-version=2.61.0 --extension=azure-devops --download
|
||||
nix run .#azure-cli.extension-tool -- \
|
||||
--cli-version=2.61.0 \
|
||||
--extension=azure-devops \
|
||||
--init
|
||||
```
|
||||
|
||||
The output should look something like this:
|
||||
@@ -41,14 +44,13 @@ The output should look something like this:
|
||||
```json
|
||||
{
|
||||
"pname": "azure-devops",
|
||||
"description": "Tools for managing Azure DevOps.",
|
||||
"version": "1.0.1",
|
||||
"url": "https://github.com/Azure/azure-devops-cli-extension/releases/download/20240514.1/azure_devops-1.0.1-py2.py3-none-any.whl",
|
||||
"sha256": "f300d0288f017148514ebe6f5912aef10c7a6f29bdc0c916b922edf1d75bc7db",
|
||||
"version": "1.0.2",
|
||||
"url": "https://github.com/Azure/azure-devops-cli-extension/releases/download/20250624.2/azure_devops-1.0.2-py2.py3-none-any.whl",
|
||||
"hash": "sha256-4rDeAqOnRRKMP26MJxG4u9vBuos6/SQIoVgfNbBpulk=",
|
||||
"description": "Tools for managing Azure DevOps",
|
||||
"license": "MIT",
|
||||
"requires": [
|
||||
"distro (==1.3.0)",
|
||||
"distro==1.3.0"
|
||||
"requirements": [
|
||||
"distro (>=1.6.0)"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -59,9 +61,9 @@ Based on this, you can add an attribute to `extensions-manual.nix`:
|
||||
{
|
||||
azure-devops = mkAzExtension {
|
||||
pname = "azure-devops";
|
||||
version = "1.0.0";
|
||||
url = "https://github.com/Azure/azure-devops-cli-extension/releases/download/20240206.1/azure_devops-${version}-py2.py3-none-any.whl";
|
||||
sha256 = "658a2854d8c80f874f9382d421fa45abf6a38d00334737dda006f8dec64cf70a";
|
||||
version = "1.0.2";
|
||||
url = "https://github.com/Azure/azure-devops-cli-extension/releases/download/20250624.2/azure_devops-${version}-py2.py3-none-any.whl";
|
||||
hash = "sha256-4rDeAqOnRRKMP26MJxG4u9vBuos6/SQIoVgfNbBpulk=";
|
||||
description = "Tools for managing Azure DevOps";
|
||||
propagatedBuildInputs = with python3Packages; [ distro ];
|
||||
meta.maintainers = with lib.maintainers; [ katexochen ];
|
||||
@@ -71,7 +73,7 @@ Based on this, you can add an attribute to `extensions-manual.nix`:
|
||||
|
||||
* The attribute name should be the same as `pname`.
|
||||
* Replace the version in `url` with `${version}`.
|
||||
* The json output `requires` must be transformed into `propagetedBuildInputs`.
|
||||
* The json output `requirements` must be transformed into package `requirements`.
|
||||
* If `license` is `"MIT"`, it can be left out in the nix expression, as the builder defaults to that license.
|
||||
* Add yourself as maintainer in `meta.maintainers`.
|
||||
|
||||
|
||||
@@ -174,12 +174,12 @@ def _get_latest_version(versions: dict) -> dict:
|
||||
return max(versions, key=lambda e: parse(e["metadata"]["version"]), default=None)
|
||||
|
||||
|
||||
def processExtension(
|
||||
def find_extension_version(
|
||||
extVersions: dict,
|
||||
cli_version: Version,
|
||||
ext_name: Optional[str] = None,
|
||||
requirements: bool = False,
|
||||
) -> Optional[Ext]:
|
||||
) -> Optional[Dict[str, Any]]:
|
||||
versions = filter(_filter_invalid, extVersions)
|
||||
versions = filter(lambda v: _filter_compatible(v, cli_version), versions)
|
||||
latest = _get_latest_version(versions)
|
||||
@@ -189,6 +189,18 @@ def processExtension(
|
||||
return None
|
||||
if not requirements and "run_requires" in latest["metadata"]:
|
||||
return None
|
||||
return latest
|
||||
|
||||
|
||||
def find_and_transform_extension_version(
|
||||
extVersions: dict,
|
||||
cli_version: Version,
|
||||
ext_name: Optional[str] = None,
|
||||
requirements: bool = False,
|
||||
) -> Optional[Ext]:
|
||||
latest = find_extension_version(extVersions, cli_version, ext_name, requirements)
|
||||
if not latest:
|
||||
return None
|
||||
|
||||
return _transform_dict_to_obj(latest)
|
||||
|
||||
@@ -335,6 +347,11 @@ def main() -> None:
|
||||
action=argparse.BooleanOptionalAction,
|
||||
help="whether to commit changes to git",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--init",
|
||||
action=argparse.BooleanOptionalAction,
|
||||
help="whether you want to init a new extension",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
cli_version = parse(args.cli_version)
|
||||
|
||||
@@ -348,12 +365,44 @@ def main() -> None:
|
||||
assert index["formatVersion"] == "1" # only support formatVersion 1
|
||||
extensions_remote = index["extensions"]
|
||||
|
||||
# init just prints the json of the extension version that matches the cli version.
|
||||
if args.init:
|
||||
if not args.extension:
|
||||
logger.error("extension name is required for --init")
|
||||
exit(1)
|
||||
|
||||
for ext_name, ext_versions in extensions_remote.items():
|
||||
if ext_name != args.extension:
|
||||
continue
|
||||
ext = find_extension_version(
|
||||
ext_versions,
|
||||
cli_version,
|
||||
args.extension,
|
||||
requirements=True,
|
||||
)
|
||||
break
|
||||
if not ext:
|
||||
logger.error(f"Extension {args.extension} not found in index")
|
||||
exit(1)
|
||||
|
||||
ext_translated = {
|
||||
"pname": ext["metadata"]["name"],
|
||||
"version": ext["metadata"]["version"],
|
||||
"url": ext["downloadUrl"],
|
||||
"hash": _convert_hash_digest_from_hex_to_b64_sri(ext["sha256Digest"]),
|
||||
"description": ext["metadata"]["summary"].rstrip("."),
|
||||
"license": ext["metadata"]["license"],
|
||||
"requirements": ext["metadata"]["run_requires"][0]["requires"],
|
||||
}
|
||||
print(json.dumps(ext_translated, indent=2))
|
||||
return
|
||||
|
||||
if args.extension:
|
||||
logger.info(f"updating extension: {args.extension}")
|
||||
|
||||
ext = Optional[Ext]
|
||||
for _ext_name, extension in extensions_remote.items():
|
||||
extension = processExtension(
|
||||
extension = find_and_transform_extension_version(
|
||||
extension, cli_version, args.extension, requirements=True
|
||||
)
|
||||
if extension:
|
||||
@@ -402,7 +451,9 @@ def main() -> None:
|
||||
|
||||
extensions_remote_filtered = set()
|
||||
for _ext_name, extension in extensions_remote.items():
|
||||
extension = processExtension(extension, cli_version, args.extension)
|
||||
extension = find_and_transform_extension_version(
|
||||
extension, cli_version, args.extension
|
||||
)
|
||||
if extension:
|
||||
extensions_remote_filtered.add(extension)
|
||||
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "biome";
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "biomejs";
|
||||
repo = "biome";
|
||||
rev = "@biomejs/biome@${finalAttrs.version}";
|
||||
hash = "sha256-+fuOPdjfebgtwzckEu/ADd+bNLYtiDFlDJ0aVMKxgMY=";
|
||||
hash = "sha256-lRCSiNf2kMGkQyXvU1J/lvTH9nfq9otOBGWozFVNNLo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-4WrDWtNQkRUtYxGBl26meKLTn52/QWtn1bVOVFHpMz4=";
|
||||
cargoHash = "sha256-6BGIyVWU2AnoQAArE5KsNJeorpZTpE13CwhHQermxdM=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch2,
|
||||
makeWrapper,
|
||||
pkg-config,
|
||||
kronosnet,
|
||||
@@ -32,6 +33,14 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "sha256-IDNUu93uGpezxQoHbq6JxjX0Bt1nTMrvyUu5CSrNlTU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "CVE-2025-30472.patch";
|
||||
url = "https://github.com/corosync/corosync/commit/7839990f9cdf34e55435ed90109e82709032466a.patch??full_index=1";
|
||||
hash = "sha256-EgGTfOM9chjLnb1QWNGp6IQQKQGdetNkztdddXlN/uo=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
pkg-config
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "djview";
|
||||
version = "4.12";
|
||||
version = "4.12.3";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-VnPGqLfhlbkaFyCyQJGRW4FF3jSHnbEVi8k2sQDq8+M=";
|
||||
hash = "sha256-F7+5cxq4Bw4BI1OB8I5XsSMf+19J6wMYc+v6GJza9H0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dnf5";
|
||||
version = "5.2.15.0";
|
||||
version = "5.2.16.0";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "rpm-software-management";
|
||||
repo = "dnf5";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-WlQfvWDd9Eay9TPq2EfFlQGljEskJqL3xyNIJDdaNps=";
|
||||
hash = "sha256-k71UKcKF5IdK96Q3TnAwFGoTRYmTlSO2kkPD54Bd9s8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dunst";
|
||||
version = "1.12.2";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dunst-project";
|
||||
repo = "dunst";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-i5/rRlxs+voEXL3udY+55l2mU54yep8RpmLOZpGtDeM=";
|
||||
hash = "sha256-HPmIcOLoYDD1GEgTh1elA9xiZGFKt1In4vsAtRsOukE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gauge";
|
||||
version = "1.6.19";
|
||||
version = "1.6.20";
|
||||
|
||||
patches = [
|
||||
# adds a check which adds an error message when trying to
|
||||
@@ -18,10 +18,10 @@ buildGoModule rec {
|
||||
owner = "getgauge";
|
||||
repo = "gauge";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-bfmzRZliLU6p/pbKhdXrwukwp0ApsPeOMRUWvovIZ3Q=";
|
||||
hash = "sha256-Ynyi2ph1L9SfxDwgXqw55nieP5o9LyHxKw4HYQEhXEo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-c9uYVxlC2YEgSsNkte3yJpX8HmTnTMjw2PJAe5IROmY=";
|
||||
vendorHash = "sha256-vv77sD+H2PI06iaJWNGoT4Oe53Shc7QxlSL1nX4i4+Y=";
|
||||
|
||||
excludedPackages = [
|
||||
"build"
|
||||
|
||||
@@ -2,31 +2,31 @@
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
testers,
|
||||
github-release,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "github-release";
|
||||
version = "0.10.1-unstable-2024-06-25";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github-release";
|
||||
repo = "github-release";
|
||||
rev = "d250e89a7bf00d54e823b169c3a4722a55ac67b0";
|
||||
hash = "sha256-QDImy9VNJ3hfGVCpMoJ72Za3CiM3SVNH1D9RFHVM+4I=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-foQZsYfYM/Cqtck+xfdup6WUeoBiqBTP7USCyPMv5q0=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
ldflags = [ "-s" ];
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = github-release;
|
||||
version = "v${version}";
|
||||
};
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
meta = with lib; {
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Commandline app to create and edit releases on Github (and upload artifacts)";
|
||||
mainProgram = "github-release";
|
||||
longDescription = ''
|
||||
@@ -34,13 +34,11 @@ buildGoModule rec {
|
||||
delete releases of your projects on Github.
|
||||
In addition it allows you to attach files to those releases.
|
||||
'';
|
||||
|
||||
license = licenses.mit;
|
||||
license = lib.licenses.mit;
|
||||
homepage = "https://github.com/github-release/github-release";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
ardumont
|
||||
j03
|
||||
];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-compute-runtime";
|
||||
version = "25.22.33944.8";
|
||||
version = "25.27.34303.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "compute-runtime";
|
||||
tag = version;
|
||||
hash = "sha256-Sz9ELQkSq6CQOfoTlzJoUzj/GuHwQMgtUjmC0P2uzro=";
|
||||
hash = "sha256-AgdPhEAg9N15lNfcX/zQLxBUDTzEEvph+y0FYbB6iCs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -22,8 +22,8 @@ let
|
||||
vc_intrinsics_src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "vc-intrinsics";
|
||||
rev = "v0.22.1";
|
||||
hash = "sha256-dSK+kNEZoF4bBx24S0No9aZLZiHK0U9TR1jRyEBL+2U=";
|
||||
rev = "v0.23.1";
|
||||
hash = "sha256-7coQegLcgIKiqnonZmgrKlw6FCB3ltSh6oMMvdopeQc=";
|
||||
};
|
||||
|
||||
inherit (llvmPackages_15) lld llvm;
|
||||
@@ -42,13 +42,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-graphics-compiler";
|
||||
version = "2.12.5";
|
||||
version = "2.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "intel-graphics-compiler";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1no41/YUr63OwPEaFFP/7n5GxfZqprCLk37zq60O2eM=";
|
||||
hash = "sha256-PBUKLvP9h7AhYbaxjAC749sQqYJLAjNpWfME8t84D0k=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -85,16 +85,16 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "matrix-tuwunel";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-construct";
|
||||
repo = "tuwunel";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YiZuCdSs3f4Hlfdzhz/B/u8GLf8VPgaLN8KMPLjFoVk=";
|
||||
hash = "sha256-RuvGoXe/O48mQ4/rN+fh2N1NZ4uhvdtI1q4tRM/bRSE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-y3JXG/5a9x/KM1PxGW1qmpCeRFvWXWHHplCi+MdjhQ8=";
|
||||
cargoHash = "sha256-LwVJe9EqBT7x7eBTzvo4Lu1geNI7CWpsIDNWL8AAg+U=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -21,16 +21,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mise";
|
||||
version = "2025.7.29";
|
||||
version = "2025.8.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jdx";
|
||||
repo = "mise";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-rL1A6yMBJCgfbsFiSKZ/smxxSntOPYeobH04BXzyzhI=";
|
||||
hash = "sha256-MxWWq292tXGqKbBYq4vALc/2HLdY9ERO/RWc8WC4Enk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-WIxB8PO5Ia8u7xEoUJasdQ+5MJr/zgL1jA4suxTaaKI=";
|
||||
cargoHash = "sha256-/UODmKVRiRg03kQ7VD8BaXGtWRf44s6AoKUm+vmC6b4=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -9,20 +9,20 @@
|
||||
|
||||
let
|
||||
models-dev-node-modules-hash = {
|
||||
"aarch64-darwin" = "sha256-099Y+7cLtSQ0s71vxUGEochQSpCv1hbkwYbWx/eOvhY=";
|
||||
"aarch64-linux" = "sha256-fOmp7UyszqpR04f5TW0pU96IO7euaxX9fBMtwoqIMY4=";
|
||||
"x86_64-darwin" = "sha256-OsJDPCsEAAcXzgI/QrtfXXb2jc82pp6ldHuA4Ps8OpM=";
|
||||
"x86_64-linux" = "sha256-Enx27ag7D0Qeb/ss/7zTQ1XSukyPzOMMK7pTYHqQUMs=";
|
||||
"aarch64-darwin" = "sha256-VkqxZF2LkNBoIkbQGz98O+y7LgLqQ+FofV2WyMOOUEs=";
|
||||
"aarch64-linux" = "sha256-P7Dik1bXWdipzs4orPff53bDwEXYFHSC05RV789mrTI=";
|
||||
"x86_64-darwin" = "sha256-/VdwzrV+srDrexvXHLKtN2Od24XlXVDWu6pEk1zLtjM=";
|
||||
"x86_64-linux" = "sha256-hMiCOMskK9kwGKaixsvodUVsOuuageiUAwxp/AvzR44=";
|
||||
};
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "models-dev";
|
||||
version = "0-unstable-2025-08-01";
|
||||
version = "0-unstable-2025-08-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sst";
|
||||
repo = "models.dev";
|
||||
rev = "2e3f718c40e8868c2487b7275131b2e054feb462";
|
||||
hash = "sha256-P7Q03I68ih2eKNfPkpzkIuvKcHLsrk8yxWbFCw74Pjg=";
|
||||
rev = "f7d8b3932adea23b2cb4d0be615e7dff7870b8bc";
|
||||
hash = "sha256-4bzXnZhILxtVMKtj54gXXtuTvh6KY9bLNCLnB1INy/E=";
|
||||
};
|
||||
|
||||
node_modules = stdenvNoCC.mkDerivation {
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mysql";
|
||||
version = "8.4.5";
|
||||
version = "8.4.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-U2OVkqcgpxn9+t8skhuUfqyGwG4zMgLkdmeFKleBvRo=";
|
||||
hash = "sha256-oeUj3IvpbRilreEGmYZhKFygG29bRsCLJlQRDkDfL7c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -28,13 +28,13 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "opencloud";
|
||||
version = "3.2.0";
|
||||
version = "3.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opencloud-eu";
|
||||
repo = "opencloud";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-/kQH7a+ddKnHAF/ra2oGbX15lcaEknS5hwLWFWCeLeI=";
|
||||
hash = "sha256-8bVBkLzqQpSnNqCZzNxqglyd14FtaJvbrwCQDbwrn2Q=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
|
||||
let
|
||||
opencode-node-modules-hash = {
|
||||
"aarch64-darwin" = "sha256-AM+4jX1lroqBxslGK1by2q8MRsox4xrtlN95qPj0x2Y=";
|
||||
"aarch64-linux" = "sha256-iQIqv6r6uo9zj8kiQDJuPyFdySNHIj+F4C286K6icv0=";
|
||||
"x86_64-darwin" = "sha256-L6ae0C8AVzwMVfob38wdwNZoK02FMokzPGC2209r7NU=";
|
||||
"x86_64-linux" = "sha256-oZa8O0iK5uSJjl6fOdnjqjIuG//ihrj4six3FUdfob8=";
|
||||
"aarch64-darwin" = "sha256-LNp9sLhNUUC4ujLYPvfPx423GlXuIS0Z2H512H5oY8s=";
|
||||
"aarch64-linux" = "sha256-xeKZwNV4ScF9p1vAcVR+vk4BiEpUH+AOGb7DQ2vLl1I=";
|
||||
"x86_64-darwin" = "sha256-4NaHXeWf57dGVV+KP3mBSIUkbIApT19BuADT0E4X+rg=";
|
||||
"x86_64-linux" = "sha256-7Hc3FJcg2dA8AvGQlS082fO1ehGBMPXWPF8N+sAHh2I=";
|
||||
};
|
||||
bun-target = {
|
||||
"aarch64-darwin" = "bun-darwin-arm64";
|
||||
@@ -26,12 +26,12 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "opencode";
|
||||
version = "0.3.132";
|
||||
version = "0.4.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sst";
|
||||
repo = "opencode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-g++ByI4akYfOTHLhrgm3us77N0jeZwuQIt1mHOLh0GM=";
|
||||
hash = "sha256-LEFmfsqhCuGcRK7CEPZb6EZfjOHAyYpUHptXu04fjpQ=";
|
||||
};
|
||||
|
||||
tui = buildGoModule {
|
||||
@@ -40,7 +40,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
modRoot = "packages/tui";
|
||||
|
||||
vendorHash = "sha256-qsOL6gsZwEm7YcYO/zoyJAnVmciCjPYqPavV77psybU=";
|
||||
vendorHash = "sha256-jGaTgKyAvBMt8Js5JrPFUayhVt3QhgyclFoNatoHac4=";
|
||||
|
||||
subPackages = [ "cmd/opencode" ];
|
||||
|
||||
@@ -114,7 +114,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
patches = [
|
||||
# Patch `packages/opencode/src/provider/models-macro.ts` to get contents of
|
||||
# `api.json` from the file bundled with `bun build`.
|
||||
# `_api.json` from the file bundled with `bun build`.
|
||||
./local-models-dev.patch
|
||||
];
|
||||
|
||||
@@ -126,7 +126,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
env.MODELS_DEV_API_JSON = "${models-dev}/dist/api.json";
|
||||
env.MODELS_DEV_API_JSON = "${models-dev}/dist/_api.json";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
@@ -10,18 +10,18 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "openlist-frontend";
|
||||
version = "4.0.9";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenListTeam";
|
||||
repo = "OpenList-Frontend";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-QR5Rh09pO7j9ecmHTbm64Om/rhqX8XaczNqAHMO1XiU=";
|
||||
hash = "sha256-E1kdoTLL9SloSJBYB277BVYwgKp8rmFYmCj9yb6Otuw=";
|
||||
};
|
||||
|
||||
i18n = fetchzip {
|
||||
url = "https://github.com/OpenListTeam/OpenList-Frontend/releases/download/v${finalAttrs.version}/i18n.tar.gz";
|
||||
hash = "sha256-hBo9fUctSuQG5dP2e3VCNOnT7Koxkdk0olSef0vjR6I=";
|
||||
hash = "sha256-/g6TXeCo+tkqE5xF2foghATErGEWUZuxtg70uDA5UFA=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pnpmDeps = pnpm_10.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-ty9mElTSiDbXHm9vgguzszY/F+YP8hPfbAlQnjdAaJE=";
|
||||
hash = "sha256-lWrh7jRx8DkwPZkk5Eh9YndfLsPIwCOUeLdieonZBgI=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "openlist";
|
||||
version = "4.0.9";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenListTeam";
|
||||
repo = "OpenList";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-RsTcaq5w5EY+zddjTI5BJuDqmbFmZwxq4ng9NUXZvIk=";
|
||||
hash = "sha256-505rEnqIwn1EGhzqhcVWYgYqyPsV/obJzaHaK9W2tVA=";
|
||||
# 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;
|
||||
@@ -33,7 +33,7 @@ buildGoModule (finalAttrs: {
|
||||
frontend = callPackage ./frontend.nix { };
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-zDN2sw3oYVDTlP5qqe+RkcZ2Lup/vlB4jnluiA/wLLU=";
|
||||
vendorHash = "sha256-J8ssJbILb3Gf6Br/PYkRAn4Haduf82iCYCfSAEi3nO4=";
|
||||
|
||||
buildInputs = [ fuse ];
|
||||
|
||||
|
||||
@@ -1,27 +1,29 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
autoreconfHook,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
libpq,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
stdenv,
|
||||
|
||||
withLibiodbc ? false,
|
||||
libiodbc,
|
||||
|
||||
withUnixODBC ? true,
|
||||
unixODBC,
|
||||
}:
|
||||
|
||||
assert lib.xor withLibiodbc withUnixODBC;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "psqlodbc";
|
||||
version = "${builtins.replaceStrings [ "_" ] [ "." ] (lib.strings.removePrefix "REL-" src.tag)}";
|
||||
version = "17.00.0006";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "postgresql-interfaces";
|
||||
repo = "psqlodbc";
|
||||
tag = "REL-17_00_0006";
|
||||
tag = "REL-${lib.replaceString "." "_" finalAttrs.version}";
|
||||
hash = "sha256-iu1PWkfOyWtMmy7/8W+acu8v+e8nUPkCIHtVNZ8HzRg=";
|
||||
};
|
||||
|
||||
@@ -38,14 +40,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
}
|
||||
// lib.optionalAttrs withUnixODBC {
|
||||
fancyName = "PostgreSQL";
|
||||
driver = "lib/psqlodbcw.so";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
"CPPFLAGS=-DSQLCOLATTRIBUTE_SQLLEN" # needed for cross
|
||||
"--with-libpq=${lib.getDev libpq}"
|
||||
@@ -53,11 +47,21 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optional withLibiodbc "--with-iodbc=${libiodbc}"
|
||||
++ lib.optional withUnixODBC "--with-unixodbc=${unixODBC}";
|
||||
|
||||
meta = with lib; {
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=^REL-(\\d+)_(\\d+)_(\\d+)$" ];
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs withUnixODBC {
|
||||
fancyName = "PostgreSQL";
|
||||
driver = "lib/psqlodbcw.so";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://odbc.postgresql.org/";
|
||||
description = "ODBC driver for PostgreSQL";
|
||||
license = licenses.lgpl2;
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.lgpl2;
|
||||
platforms = lib.platforms.unix;
|
||||
teams = libpq.meta.teams;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -36,14 +36,14 @@
|
||||
|
||||
let
|
||||
pname = "pulsar";
|
||||
version = "1.128.0";
|
||||
version = "1.129.0";
|
||||
|
||||
sourcesPath =
|
||||
{
|
||||
x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
|
||||
x86_64-linux.hash = "sha256-LDr5H2VchlTzHtwcDo0za9GWfKZTpXx6LZVwtgKWxxY=";
|
||||
x86_64-linux.hash = "sha256-Iq+mYI8vldBroU/1ztVhWfbDUh9GiFjrSIzW0Qtgnvc=";
|
||||
aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
|
||||
aarch64-linux.hash = "sha256-tT55J2TDRiEcsh5vNVl2dapRdYj3yZsn0ZrfjO5qnqE=";
|
||||
aarch64-linux.hash = "sha256-hQBMxonnUSEoa0ATISuCoWh0scv/GPf6Tq55l+I1/n0=";
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
|
||||
Generated
-3803
File diff suppressed because it is too large
Load Diff
@@ -4,13 +4,16 @@
|
||||
appstream-glib,
|
||||
blueprint-compiler,
|
||||
cargo,
|
||||
dbus,
|
||||
desktop-file-utils,
|
||||
fetchFromGitea,
|
||||
glib,
|
||||
gst_all_1,
|
||||
gtk4,
|
||||
hicolor-icon-theme,
|
||||
lcms2,
|
||||
libadwaita,
|
||||
libseccomp,
|
||||
libxml2,
|
||||
meson,
|
||||
ninja,
|
||||
@@ -24,27 +27,20 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "recordbox";
|
||||
version = "0.9.3";
|
||||
version = "0.10.3";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "edestcroix";
|
||||
repo = "Recordbox";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-168L5i6mXeEqv7EKPMq4zHP5JRVxC7MNrUE9yj1zI60=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-o2cKVRpuAwE+/TI5mwtSvkCFaXN349GP9dDlgdh3Luk=";
|
||||
};
|
||||
|
||||
# Patch in our Cargo.lock and ensure AppStream tests don't use the network
|
||||
# TODO: Switch back to the default `validate` when the upstream file actually
|
||||
# passes it
|
||||
postPatch = ''
|
||||
ln -s ${./Cargo.lock} Cargo.lock
|
||||
|
||||
substituteInPlace data/meson.build \
|
||||
--replace-fail "['validate', appstream_file]" "['validate-relax', '--nonet', appstream_file]"
|
||||
'';
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-0/tKL5UW1QuhsddivU/r8n3T3xyRaGLRVpKuXcc4fmU=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -66,9 +62,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
gtk4
|
||||
hicolor-icon-theme
|
||||
lcms2
|
||||
libadwaita
|
||||
libseccomp
|
||||
sqlite
|
||||
]
|
||||
++ (with gst_all_1; [
|
||||
@@ -101,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = {
|
||||
description = "Relatively simple music player";
|
||||
homepage = "https://codeberg.org/edestcroix/Recordbox";
|
||||
changelog = "https://codeberg.org/edestcroix/Recordbox/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
mainProgram = "recordbox";
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"version": "1.8.4",
|
||||
"version": "1.8.5",
|
||||
"assets": {
|
||||
"aarch64-darwin": {
|
||||
"asset": "scala-cli-aarch64-apple-darwin.gz",
|
||||
"sha256": "1cvfsyzrfycpmd7ay9pvnh1z03n03gjrs1wpzkynj2dpks1qbvn5"
|
||||
"sha256": "1r2b46nbfzn4m18jgicnc13ipw469xij91s9gzb4xjv77fslbng6"
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"asset": "scala-cli-aarch64-pc-linux.gz",
|
||||
"sha256": "07mbdxqwf1zl30dg1djmpgry6q1dp0yq8w5qscys3wci2yfjidni"
|
||||
"sha256": "1yci9zjyv1ssdgc0kk6gk3yrb2j3jzryxvm5jk6hv0z4swiy6nvv"
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"asset": "scala-cli-x86_64-apple-darwin.gz",
|
||||
"sha256": "1m9zbndsai2p5gbfsby0b4a9371jdapaxhsib6jwx1ps2ay565h8"
|
||||
"sha256": "0abj0w47ycajc342avrzyw957qjm26lmhsc7612k5s9s892cfkgn"
|
||||
},
|
||||
"x86_64-linux": {
|
||||
"asset": "scala-cli-x86_64-pc-linux.gz",
|
||||
"sha256": "03nnd86qd8hy65di2rjqjp6vc3hv1rmw2agrrbg9v0yhh0r0in3q"
|
||||
"sha256": "1270asc9abijvasmiscy4gr58m903p3mr6qizpjblxnaz5dj1b5r"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,6 +106,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_build_with_poppler_25.02.0.patch?h=scribus-unstable";
|
||||
hash = "sha256-t9xJA6KGMGAdUFyjI8OlTNilewyMr1FFM7vjHOM15Xg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-build-poppler-25.06.0.patch";
|
||||
url = "https://github.com/scribusproject/scribus/commit/8dcf8d777bd85a0741c455961f2de382e3ed47ec.patch";
|
||||
hash = "sha256-JBHCgvEJnYrUdtLnFSXTfr1FFin4uUNUnddYwfRbn7k=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-build-poppler-25.07.0.patch";
|
||||
url = "https://github.com/scribusproject/scribus/commit/ff6c6abfa8683028e548a269dee6a859b6f63335.patch";
|
||||
hash = "sha256-N4jve5feehsX5H0RXdxR4ableKL+c/rTyqCwkEf37Dk=";
|
||||
})
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -40,13 +40,13 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
strictDeps = true;
|
||||
|
||||
pname = "ucc";
|
||||
version = "1.4.4";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openucx";
|
||||
repo = "ucc";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2OtMNI4teMnSBxsujf8LMrNOjqK/oJTrrmE2Awxgbd8=";
|
||||
hash = "sha256-8tUhwZNW39/J9Uz/b4arE1oWPaV0R3s4x12QqI8ovEA=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"aarch64-darwin": {
|
||||
"version": "1.11.3",
|
||||
"version": "1.11.5",
|
||||
"vscodeVersion": "1.99.3",
|
||||
"url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/b623f33d83cdc5b0d5eaf6ebc9e4d8193a0b5f50/Windsurf-darwin-arm64-1.11.3.zip",
|
||||
"sha256": "83df03ffe0ef8e03301355f101192e81734841e8c658b2bc2fb238e7a83679d4"
|
||||
"url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/f8b63909dde4ac913fee41e867b511a598b3b517/Windsurf-darwin-arm64-1.11.5.zip",
|
||||
"sha256": "7f3a4122c72701c087d02e9ffd64d9432400c1468dfbec5890207e3ede3453f2"
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"version": "1.11.3",
|
||||
"version": "1.11.5",
|
||||
"vscodeVersion": "1.99.3",
|
||||
"url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/b623f33d83cdc5b0d5eaf6ebc9e4d8193a0b5f50/Windsurf-darwin-x64-1.11.3.zip",
|
||||
"sha256": "e5bda964d69f52bf49d92bd0f2e0a824c2c45dc708f2dcfd93b9797d5fecb80c"
|
||||
"url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/f8b63909dde4ac913fee41e867b511a598b3b517/Windsurf-darwin-x64-1.11.5.zip",
|
||||
"sha256": "685f45fbae8906523baa4744ead97204b254cf190092491aa235fa236393f5ca"
|
||||
},
|
||||
"x86_64-linux": {
|
||||
"version": "1.11.3",
|
||||
"version": "1.11.5",
|
||||
"vscodeVersion": "1.99.3",
|
||||
"url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/b623f33d83cdc5b0d5eaf6ebc9e4d8193a0b5f50/Windsurf-linux-x64-1.11.3.tar.gz",
|
||||
"sha256": "d4f5848f152c5c185c9aa7c89a34700455d41d7388592fa90e05c0329f1943bd"
|
||||
"url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/f8b63909dde4ac913fee41e867b511a598b3b517/Windsurf-linux-x64-1.11.5.tar.gz",
|
||||
"sha256": "cc83879091be631757de224d0a5b0e0b3bdc74bcd939f423ec3e02926643a7da"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "zed-editor";
|
||||
version = "0.198.2";
|
||||
version = "0.198.3";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -112,7 +112,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "zed-industries";
|
||||
repo = "zed";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-0BX8LFoW4VpTN2jSJqp/Y+urpLy8Llxyvfr5O4brCSA=";
|
||||
hash = "sha256-icLiruC219iuT5vO1Cc77mz01z/Afx9Xt23uxXhbPPo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -138,7 +138,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
--replace-fail "inner.redirect(policy)" "inner.redirect_policy(policy)"
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-H8ns6LrHHgND41KyhpXjdtLToIEHBu0I3vNRLAjtPTY=";
|
||||
cargoHash = "sha256-z8xlU25L+LZxLOfSQowpVEnKM0BU+dgNqlFG3mh1HAQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
runCommand,
|
||||
glib,
|
||||
lomiri-schemas,
|
||||
lomiri-wallpapers,
|
||||
nixos-icons,
|
||||
writeText,
|
||||
extraGSettingsOverrides ? "",
|
||||
extraGSettingsOverridePackages ? [ ],
|
||||
nixos-artwork,
|
||||
}:
|
||||
|
||||
let
|
||||
# Overriding the background picture should be possible, but breaks within the VM tests.
|
||||
# It results in either a grey background (prolly indicating an error somewhere)
|
||||
# or hangs the session (also happens when using LSS, which sets it via AccountsService).
|
||||
#
|
||||
# So we can only override the launcher button details.
|
||||
# Button colour: https://github.com/NixOS/nixos-artwork/blob/51a27e4a011e95cb559e37d32c44cf89b50f5154/logo/README.md#colours
|
||||
gsettingsOverrides = writeText "lomiri-gschema-overrides" ''
|
||||
[com.lomiri.Shell.Launcher]
|
||||
logo-picture-uri='file://${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg'
|
||||
home-button-background-color='#5277C3'
|
||||
|
||||
${extraGSettingsOverrides}
|
||||
'';
|
||||
|
||||
gsettingsOverridePackages = [
|
||||
lomiri-schemas
|
||||
]
|
||||
++ extraGSettingsOverridePackages;
|
||||
in
|
||||
runCommand "lomiri-gsettings-overrides" { preferLocalBuild = true; } ''
|
||||
dataDir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
|
||||
schemaDir="$dataDir/glib-2.0/schemas"
|
||||
mkdir -p "$schemaDir"
|
||||
|
||||
${lib.strings.concatMapStringsSep "\n" (
|
||||
pkg:
|
||||
"cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schemaDir\""
|
||||
) gsettingsOverridePackages}
|
||||
|
||||
chmod -R a+w "$dataDir"
|
||||
cp --no-preserve=mode "${gsettingsOverrides}" "$schemaDir/zz-nixos-defaults.gschema.override"
|
||||
|
||||
${lib.getExe' glib.dev "glib-compile-schemas"} --strict "$schemaDir" | tee gcs.log
|
||||
|
||||
if grep 'No schema files found' gcs.log >/dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
''
|
||||
@@ -31,7 +31,6 @@ let
|
||||
teleports = callPackage ./applications/teleports { };
|
||||
|
||||
#### Data
|
||||
lomiri-gsettings-overrides = callPackage ./data/lomiri-gsettings-overrides { };
|
||||
lomiri-schemas = callPackage ./data/lomiri-schemas { };
|
||||
lomiri-session = callPackage ./data/lomiri-session { };
|
||||
lomiri-sounds = callPackage ./data/lomiri-sounds { };
|
||||
|
||||
@@ -55,13 +55,13 @@ let
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "poppler";
|
||||
repo = "test";
|
||||
rev = "91ee031c882634c36f2f0f2f14eb6646dd542fb9";
|
||||
hash = "sha256-bImTdlhMAA79kwbKPrHN3a9vVrtsgBh3rFjH3B7tEbQ=";
|
||||
rev = "c79c6839e859dbee6b73ac260788fa2de8618ba4";
|
||||
hash = "sha256-j66AsBUnFpO5athVgQmf4vcyXxYcJ/plJtHg+3vXG4Y=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "poppler-${suffix}";
|
||||
version = "25.05.0"; # beware: updates often break cups-filters build, check scribus too!
|
||||
version = "25.07.0"; # beware: updates often break cups-filters build, check scribus too!
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://poppler.freedesktop.org/poppler-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-mxYnxbdoFqxeQFKgP1tgW6QLRc8GsCyt0EeWILSZqzg=";
|
||||
hash = "sha256-xQSpBm29/r43etU87GQf2XHulsTh6Mp05snAPUbYF64=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nvidia-ml-py";
|
||||
version = "12.575.51";
|
||||
version = "13.580.65";
|
||||
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "nvidia_ml_py";
|
||||
inherit version;
|
||||
hash = "sha256-ZJDpP+qZ606WYyeuGMbuxiVhlMkh8jRZyHZ67ijFRYE=";
|
||||
hash = "sha256-e/GLA8fTZYcnARz18MbCFVs2zkOeZTWaCkqQYhT2o8k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -25,6 +25,10 @@ buildPythonPackage rec {
|
||||
setuptools
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"nvidia-ml-py"
|
||||
];
|
||||
|
||||
dependencies = [ nvidia-ml-py ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "treescope";
|
||||
version = "0.1.9";
|
||||
version = "0.1.10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google-deepmind";
|
||||
repo = "treescope";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rLrsG7psY3xkuvNtdRULiMWKzIiWZpJ7TVJhwTNGXRQ=";
|
||||
hash = "sha256-SfycwuI/B7S/rKkaqxtnJI26q89313pvj/Xsomg6qyA=";
|
||||
};
|
||||
|
||||
build-system = [ flit-core ];
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "apache-httpd";
|
||||
version = "2.4.62";
|
||||
version = "2.4.65";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
|
||||
hash = "sha256-Z0GI579EztgtqNtSLalGhJ4iCA1z0WyT9/TfieJXKew=";
|
||||
hash = "sha256-WLi+l9mUDsF/dlbAxrn0G2GKrEaLiUtTQUjjKWxTuLM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
bison,
|
||||
cmake,
|
||||
pkg-config,
|
||||
@@ -31,11 +30,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mysql";
|
||||
version = "8.0.42";
|
||||
version = "8.0.43";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-XrIsIMILdlxYlMkBBIW9B9iptuv7YovP0wYHAXFVJv4=";
|
||||
hash = "sha256-diUKgQFch49iUhz68w3/DqmyUJeNKx3/AHQIo5jV25M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -48,13 +47,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
patches = [
|
||||
./no-force-outline-atomics.patch # Do not force compilers to turn on -moutline-atomics switch
|
||||
# Fix compilation with LLVM 19, adapted from https://github.com/mysql/mysql-server/commit/3a51d7fca76e02257f5c42b6a4fc0c5426bf0421
|
||||
# in https://github.com/NixOS/nixpkgs/pull/374591#issuecomment-2615855076
|
||||
./libcpp-fixes.patch
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mysql/mysql-server/commit/4a5c00d26f95faa986ffed7a15ee15e868e9dcf2.patch";
|
||||
hash = "sha256-MEl1lQlDYtFjHk0+S02RQFnxMr+YeFxAyNjpDtVHyeE=";
|
||||
})
|
||||
];
|
||||
|
||||
## NOTE: MySQL upstream frequently twiddles the invocations of libtool. When updating, you might proactively grep for libtool references.
|
||||
|
||||
@@ -1,183 +0,0 @@
|
||||
diff --git a/include/my_char_traits.h b/include/my_char_traits.h
|
||||
new file mode 100644
|
||||
index 00000000..6336bc03
|
||||
--- /dev/null
|
||||
+++ b/include/my_char_traits.h
|
||||
@@ -0,0 +1,65 @@
|
||||
+/* Copyright (c) 2024, Oracle and/or its affiliates.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License, version 2.0,
|
||||
+ as published by the Free Software Foundation.
|
||||
+
|
||||
+ This program is designed to work with certain software (including
|
||||
+ but not limited to OpenSSL) that is licensed under separate terms,
|
||||
+ as designated in a particular file or component or in included license
|
||||
+ documentation. The authors of MySQL hereby grant you an additional
|
||||
+ permission to link the program and your derivative works with the
|
||||
+ separately licensed software that they have either included with
|
||||
+ the program or referenced in the documentation.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License, version 2.0, for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||
+
|
||||
+#ifndef MY_CHAR_TRAITS_INCLUDED
|
||||
+#define MY_CHAR_TRAITS_INCLUDED
|
||||
+
|
||||
+#include <cstring>
|
||||
+
|
||||
+template <class CharT>
|
||||
+struct my_char_traits;
|
||||
+
|
||||
+/*
|
||||
+ This is a standards-compliant, drop-in replacement for
|
||||
+ std::char_traits<unsigned char>
|
||||
+ We need this because clang libc++ is removing support for it in clang 19.
|
||||
+ It is not a complete implementation. Rather we implement just enough to
|
||||
+ compile any usage of char_traits<uchar> we have in our codebase.
|
||||
+ */
|
||||
+template <>
|
||||
+struct my_char_traits<unsigned char> {
|
||||
+ using char_type = unsigned char;
|
||||
+ using int_type = unsigned int;
|
||||
+
|
||||
+ static void assign(char_type &c1, const char_type &c2) { c1 = c2; }
|
||||
+
|
||||
+ static char_type *assign(char_type *s, std::size_t n, char_type a) {
|
||||
+ return static_cast<char_type *>(memset(s, a, n));
|
||||
+ }
|
||||
+
|
||||
+ static int compare(const char_type *s1, const char_type *s2, std::size_t n) {
|
||||
+ return memcmp(s1, s2, n);
|
||||
+ }
|
||||
+
|
||||
+ static char_type *move(char_type *s1, const char_type *s2, std::size_t n) {
|
||||
+ if (n == 0) return s1;
|
||||
+ return static_cast<char_type *>(memmove(s1, s2, n));
|
||||
+ }
|
||||
+
|
||||
+ static char_type *copy(char_type *s1, const char_type *s2, std::size_t n) {
|
||||
+ if (n == 0) return s1;
|
||||
+ return static_cast<char_type *>(memcpy(s1, s2, n));
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+#endif // MY_CHAR_TRAITS_INCLUDED
|
||||
diff --git a/sql/mdl_context_backup.h b/sql/mdl_context_backup.h
|
||||
index 89e7e23d..cf9c307e 100644
|
||||
--- a/sql/mdl_context_backup.h
|
||||
+++ b/sql/mdl_context_backup.h
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
+#include "my_char_traits.h"
|
||||
#include "sql/malloc_allocator.h"
|
||||
#include "sql/mdl.h"
|
||||
|
||||
@@ -47,7 +48,8 @@ class MDL_context_backup_manager {
|
||||
/**
|
||||
Key for uniquely identifying MDL_context in the MDL_context_backup map.
|
||||
*/
|
||||
- typedef std::basic_string<uchar> MDL_context_backup_key;
|
||||
+ using MDL_context_backup_key =
|
||||
+ std::basic_string<uchar, my_char_traits<uchar>>;
|
||||
|
||||
class MDL_context_backup;
|
||||
|
||||
diff --git a/sql/stream_cipher.h b/sql/stream_cipher.h
|
||||
index 606d4064..358fbb41 100644
|
||||
--- a/sql/stream_cipher.h
|
||||
+++ b/sql/stream_cipher.h
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
+#include "my_char_traits.h"
|
||||
+
|
||||
/**
|
||||
@file stream_cipher.h
|
||||
|
||||
@@ -35,7 +37,8 @@
|
||||
binary log files.
|
||||
*/
|
||||
|
||||
-typedef std::basic_string<unsigned char> Key_string;
|
||||
+using Key_string =
|
||||
+ std::basic_string<unsigned char, my_char_traits<unsigned char>>;
|
||||
|
||||
/**
|
||||
@class Stream_cipher
|
||||
diff --git a/unittest/gunit/binlogevents/transaction_compression-t.cc b/unittest/gunit/binlogevents/transaction_compression-t.cc
|
||||
index ba13f979..01af0e3a 100644
|
||||
--- a/unittest/gunit/binlogevents/transaction_compression-t.cc
|
||||
+++ b/unittest/gunit/binlogevents/transaction_compression-t.cc
|
||||
@@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include <array>
|
||||
+#include <string>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include "libbinlogevents/include/binary_log.h"
|
||||
@@ -51,14 +52,13 @@ class TransactionPayloadCompressionTest : public ::testing::Test {
|
||||
using Managed_buffer_t = Decompressor_t::Managed_buffer_t;
|
||||
using Size_t = Decompressor_t::Size_t;
|
||||
using Char_t = Decompressor_t::Char_t;
|
||||
- using String_t = std::basic_string<Char_t>;
|
||||
using Decompress_status_t =
|
||||
binary_log::transaction::compression::Decompress_status;
|
||||
using Compress_status_t =
|
||||
binary_log::transaction::compression::Compress_status;
|
||||
|
||||
- static String_t constant_data(Size_t size) {
|
||||
- return String_t(size, (Char_t)'a');
|
||||
+ static std::string constant_data(Size_t size) {
|
||||
+ return std::string(size, (Char_t)'a');
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -69,7 +69,7 @@ class TransactionPayloadCompressionTest : public ::testing::Test {
|
||||
void TearDown() override {}
|
||||
|
||||
static void compression_idempotency_test(Compressor_t &c, Decompressor_t &d,
|
||||
- String_t data) {
|
||||
+ const std::string &data) {
|
||||
auto debug_string = concat(
|
||||
binary_log::transaction::compression::type_to_string(c.get_type_code()),
|
||||
" ", data.size());
|
||||
@@ -104,8 +104,8 @@ class TransactionPayloadCompressionTest : public ::testing::Test {
|
||||
|
||||
// Check decompressed data
|
||||
ASSERT_EQ(managed_buffer.read_part().size(), data.size()) << debug_string;
|
||||
- ASSERT_EQ(data, String_t(managed_buffer.read_part().begin(),
|
||||
- managed_buffer.read_part().end()))
|
||||
+ ASSERT_EQ(data, std::string(managed_buffer.read_part().begin(),
|
||||
+ managed_buffer.read_part().end()))
|
||||
<< debug_string;
|
||||
|
||||
// Check that we reached EOF
|
||||
@@ -118,7 +118,7 @@ TEST_F(TransactionPayloadCompressionTest, CompressDecompressZstdTest) {
|
||||
for (auto size : buffer_sizes) {
|
||||
binary_log::transaction::compression::Zstd_dec d;
|
||||
binary_log::transaction::compression::Zstd_comp c;
|
||||
- String_t data{TransactionPayloadCompressionTest::constant_data(size)};
|
||||
+ std::string data{TransactionPayloadCompressionTest::constant_data(size)};
|
||||
TransactionPayloadCompressionTest::compression_idempotency_test(c, d, data);
|
||||
c.set_compression_level(22);
|
||||
TransactionPayloadCompressionTest::compression_idempotency_test(c, d, data);
|
||||
@@ -129,7 +129,7 @@ TEST_F(TransactionPayloadCompressionTest, CompressDecompressNoneTest) {
|
||||
for (auto size : buffer_sizes) {
|
||||
binary_log::transaction::compression::None_dec d;
|
||||
binary_log::transaction::compression::None_comp c;
|
||||
- String_t data{TransactionPayloadCompressionTest::constant_data(size)};
|
||||
+ std::string data{TransactionPayloadCompressionTest::constant_data(size)};
|
||||
TransactionPayloadCompressionTest::compression_idempotency_test(c, d, data);
|
||||
}
|
||||
}
|
||||
@@ -9,18 +9,18 @@
|
||||
|
||||
postgresqlBuildExtension (finalAttrs: {
|
||||
pname = "pg_squeeze";
|
||||
version = "${builtins.replaceStrings [ "_" ] [ "." ] (
|
||||
lib.strings.removePrefix "REL" finalAttrs.src.rev
|
||||
)}";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cybertec-postgresql";
|
||||
repo = "pg_squeeze";
|
||||
tag = "REL1_7_0";
|
||||
hash = "sha256-Kh1wSOvV5Rd1CG/na3yzbWzvaR8SJ6wmTZOnM+lbgik=";
|
||||
tag = "REL${lib.replaceString "." "_" finalAttrs.version}";
|
||||
hash = "sha256-RrG7qeX0NQ4cq6N+9uVfalNW+HfiSt4wcjeZjInnfgE=";
|
||||
};
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=REL(.*)" ]; };
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=^REL(\\d+)_(\\d+)_(\\d+)$" ];
|
||||
};
|
||||
passthru.tests.extension = postgresqlTestExtension {
|
||||
inherit (finalAttrs) finalPackage;
|
||||
postgresqlExtraSettings = ''
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
buildEnv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
postgresql,
|
||||
postgresqlBuildExtension,
|
||||
@@ -12,15 +13,13 @@
|
||||
|
||||
postgresqlBuildExtension (finalAttrs: {
|
||||
pname = "plr";
|
||||
version = "${builtins.replaceStrings [ "_" ] [ "." ] (
|
||||
lib.strings.removePrefix "REL" finalAttrs.src.rev
|
||||
)}";
|
||||
version = "8.4.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "postgres-plr";
|
||||
repo = "plr";
|
||||
tag = "REL8_4_7";
|
||||
hash = "sha256-PdvFEmtKfLT/xfaf6obomPR5hKC9F+wqpfi1heBphRk=";
|
||||
tag = "REL${lib.replaceString "." "_" finalAttrs.version}";
|
||||
hash = "sha256-FLL61HsZ6WaWBP9NqrJjhMFSVyVBIpVO0wv+kXMuAaU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
@@ -29,6 +28,9 @@ postgresqlBuildExtension (finalAttrs: {
|
||||
makeFlags = [ "USE_PGXS=1" ];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=^REL(\\d+)_(\\d+)_(\\d+)$" ];
|
||||
};
|
||||
withPackages =
|
||||
f:
|
||||
let
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
nix-update-script,
|
||||
nixosTests,
|
||||
postgresql,
|
||||
postgresqlBuildExtension,
|
||||
@@ -8,19 +9,20 @@
|
||||
|
||||
postgresqlBuildExtension (finalAttrs: {
|
||||
pname = "wal2json";
|
||||
version = "${builtins.replaceStrings [ "_" ] [ "." ] (
|
||||
lib.strings.removePrefix "wal2json_" finalAttrs.src.rev
|
||||
)}";
|
||||
version = "2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eulerto";
|
||||
repo = "wal2json";
|
||||
tag = "wal2json_2_6";
|
||||
tag = "wal2json_${lib.replaceString "." "_" finalAttrs.version}";
|
||||
hash = "sha256-+QoACPCKiFfuT2lJfSUmgfzC5MXf75KpSoc2PzPxKyM=";
|
||||
};
|
||||
|
||||
makeFlags = [ "USE_PGXS=1" ];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=^wal2json_(\\d+)_(\\d+)$" ];
|
||||
};
|
||||
passthru.tests = nixosTests.postgresql.wal2json.passthru.override postgresql;
|
||||
|
||||
meta = {
|
||||
|
||||
Reference in New Issue
Block a user